Một thế giới mới với SSD - Phần 1

Ổ SSD ( Solid State Drive ) đang dần chiếm lĩnh thị phần, không chỉ trên máy tính cá nhân mà cả trong lĩnh vực doanh nghiệp. Điều này đặc biệt đúng trong các trung tâm dữ liệu, nơi mà thời gian trễ, độ ổn định và khả năng tiết kiệm điện là những yếu tố tài chính đầu tiên cần xét đến.
Ổ SSD ( Solid State Drive ) đang dần chiếm lĩnh thị phần, không chỉ trên máy tính cá nhân mà cả trong lĩnh vực doanh nghiệp. Điều này đặc biệt đúng trong các trung tâm dữ liệu, nơi mà thời gian trễ, độ ổn định và khả năng tiết kiệm điện là những yếu tố tài chính đầu tiên cần xét đến.   

 

Và thống trị thị trường SSD hiện tại vẫn là bộ nhớ Flash NAND, điều này có khả năng duy trì trong một thời gian dài, bất chấp các công nghệ mới như bộ nhớ đổi phase, bộ nhớ kháng từ, bộ nhớ điện trở, , bộ nhớ hữu cơ , bộ nhớ nanotube và cả bộ nhớ flash NOR sắp xuất hiện. Đó là bởi bộ nhớ Flash NAND có một số điểm đặc biệt khiến chúng trở thành lựa chọn của ngành công nghệ máy tính, tuy rằng chúng cũng có một số hạn chế về khả năng ứng dụng.

Đầu tiên chúng ta sẽ tìm hiểu về công nghệ NAND, sau đó là các cách để tối ưu hóa tốc độ, giảm thiểu độ mài mòn, và quan trọng nhất là duy trì hiệu suất làm việc trong một thời gian dài.   

 \"/\"

SSD cạnh tranh HDD

Suốt 30 năm nay, ổ cứng ( HDD ) đã đóng vai trò phương tiện lưu trữ thống trị, được phát triển bởi những công ty như IBM (giờ là Hitachi), Seagate và Western Digital. Nhiều công ty trong lĩnh vực này không còn tồn tại như Conner, Quantum (Bigfoot), Maxtor, Micropolis...., trong khi một số công ty Đông Á như Samsung và Fujitsu vẫn đứng vững. Nhưng dù sao đi nữa, điều muốn nói ở đây là lúc nào trên thị trường cũng có không quá 12 công ty tham gia.   

Bởi vì để tham gia sản xuất HDD cần một nguồn lực khổng lồ. Bản chất phức tạp của các thiết bị điện cơ khí này khiến cho HDD cần có sự hỗ trợ tốt nhất từ ngành điện tử cũng như ngành cơ học. Yêu cầu tối thiểu là phải có phòng rộng và sạch để lắp ráp và sửa chữa, bởi ổ cứng quay với tốc độ 100 dặm/giờ, và chỉ một hạt bụi nhỏ cũng ảnh hưởng lớn tới đầu Đọc/Ghi. Điều cần nhớ là bạn phải có một công ty thật lớn mới tham gia vào được thị trường này, và càng lớn thì càng tốt .

Bước vào thế giới công nghệ SSD

\"/\"Khoảng 2 năm trước, thị trường bộ nhớ bỗng thay đổi đột ngột . Những thiết bị Media đã khiến cho bộ nhớ Flash NAND gây nên cơn sốt mới. Ổ nhớ dựa trên bộ nhớ flash NAND đã xuất hiện gần một thập kỷ nay, do SimpleTech tiên phong, và có giá thành cao hơn hẳn so với HDD. Tuy nhiên, trong những năm gần đây việc sản xuất bộ nhớ Flash ngày càng tăng mạnh . Sản lượng flash NAND lần đầu vượt qua sản lượng DRAM xét về tổng số lượng bit được sản xuất, và đến năm 2009, tổng số bit flash NAND được sản xuất sẽ vượt qua tổng số bit bộ nhớ từng được sản xuất trong thời kì đầu.   

Một trong những thay đổi lớn nhất nhưng thường bị bỏ qua trên thị trường thiết bị lưu trữ, đi cùng với sự xuất hiện của bộ nhớ flash NAND dựa trên ổ SSD, chính là chi phí để tham gia sản xuất không còn quá lớn nữa. Tất cả những gì bạn cần là một mạch điều khiển, vài firmware, một bảng mạch in, bộ nhớ flash kèm theo một xưởng hàn để lắp ráp tất cả những bộ phận này lại với nhau. Đây là một trong những điều thu hút ngày càng nhiều công ty lớn nhỏ tham gia vào  thị trường mới nổi này với tỉ lệ tăng trưởng lên tới 1000% hàng năm. Tuy nhiên thực tế lại không được suôn sẻ cho lắm.   

Steffen Helmold của Sandforce đã tóm tắt lại bản chất của ổ SSD tại một hội nghị về JEDEC Flash gần đây: “Khi loại bỏ các bộ phận cơ học của ổ cứng và chuyển sang ổ SSD, chúng tôi nghĩ mình đã giải quyết được mọi vấn đề, nhưng rồi lại phát hiện ra một lô vấn đề nữa.” Nói cách khác, điều tưởng chừng đơn giản lại hóa ra là một trở ngại lớn trong việc nâng cao độ ổn định và tốc độ của SSD.   

Dưới đây là hai vấn đề chính với ổ SSD: 

§  1) HDD có thể dùng được cả thập kỷ, miễn là vẫn có những hệ thống cũ kỹ hỗ trợ giao diện đó, chúng có thể truy cập bất cứ lúc nào bạn muốn. Còn ổ SSD Flash NAND thì sẽ mất dần dữ liệu theo thời gian, ngay cả nếu được tắt và lưu giữ cẩn thận. 

§  2) HDD sẽ giảm dần hiệu suất làm việc theo thời gian, chủ yếu liên quan đến việc lấp đầy các rãnh phía ngoài và phân mảnh ổ đĩa, nhưng quá trình chắp liền mảnh , sắp xếp lại dữ liệu , sẽ giúp khôi phục lại tốc độ . Bên cạnh đó HDD còn tùy thuộc vào tốc độ kim quay và mật độ dữ liệu – các thông số không bao giờ thay đổi. Còn SSD có thể đạt đến đỉnh cao tốc độ nhưng lại xuống dốc nhanh chóng nếu dùng quá nhiều. 

Và để tránh các vấn đề trên, bạn cần có một số kiến thức cơ bản về công nghệ này. 

Đơn vị cấu thành

Chúng ta sẽ bắt đầu với các đơn vị nhỏ nhất – các ô bộ nhớ tạo thành cấu trúc IC NAND, các thế hệ mạch điều khiển khác nhau và những bộ phận cần thiết để cấu thành SSD  

Hoạt động cơ bản của Flash NAND  

\"/\"Bộ nhớ Flash tạo nên từ nhiều mảng Transistor cấu tạo từ Oxit kim loại bán dẫn hoạt động như các công tắc bằng cách cho phép hoặc ngăn dòng điện chạy qua. Cần một điện áp ngưỡng để bật Transistor và cho dòng điện chạy qua được dùng để lưu trữ dữ liệu.

Nói cách khác, nếu điện áp ngưỡng này thấp hơn điện áp Cổng ( Gate ) , ô đó sẽ bật lên thành “On” và cho dòng điện tử ( Electron ) chạy qua (1), còn nếu điện áp ngưỡng đủ cao để điện áp Cổng không vượt quá, thì ô đó sẽ đóng lại và không có dòng điện chạy qua (0).

Các điện áp ngưỡng khác nhau đạt được bằng cách sử dụng một Cổng nổi (FG – Floating Gate ) giữa Cổng trên ( TG- Top Gate; còn gọi là Cổng điều khiển) và một chất điện môi xung quanh FG , gọi là Đường hầm Oxide ( Tunnel ) ngăn cách Kênh với FG.

Điện tích nạp vào FG thay đổi bằng cách cấp thêm Electron và phụ thuộc vào sự không có mặt hoặc sự dư thừa Electron trong FG . Nó sẽ tăng lên hoặc chống lại việc nạp vàp FG .

Như vậy, các ô khác nhau có thể đặt ở các điện áp ngưỡng khác nhau nhằm cho phép hoặc ngăn chặn dòng điện đi qua ở một mức điện áp điều khiển cố định. Dòng Electron sẽ được dẫn tới mạch điện cảm biến để biết đến kết quả “0” hoặc “1.” Nói cách khác, số lượng Electron trong FG và việc Tắt / Mở của Transistor là nguyên tắc lưu trữ dữ liệu cơ bản trong ô bộ nhớ Flash.   

 \"/\"

Ô nhớ NAND có FG nằm giữa TG và Kênh.

Bộ nhớ SLC ( Single-Level Cell ) chỉ sử dụng một điện áp ngưỡng , còn bộ nhớ MLC ( Multi-Level Cell ) thì dùng nhiều điện áp ngưỡng để chứa nhiều hơn 1 bit trong mỗi ô bộ nhớ. 

Xóa và Lập trình

Cơ chế thực sự trong việc lập trình ô bộ nhớ Flash là cấp điện áp cao cho TG. Điện áp này sẽ đẩy Electron từ Cổng ( Gate ) qua Đường hầm Oxide ( Tunnel ) vào FG, từ đó thay đổi điện áp ngưỡng. Quá trình này được gọi là Đường hầm cơ cấu Lượng tử .

Để đảo ngược quy trình này cần cấp điện áp cao vào Chất nền để đẩy Electron khỏi FG. Tuy nhiên, quá trình đảo ngược này chỉ có thể áp dụng cho toàn bộ khối. Do đó, Flash NAND chỉ có thể được lập trình  từ “1” đến “0”, còn nếu từ “0” thì đến “1” thì sẽ phải xóa toàn bộ khối. Điều này khiến bộ nhớ không thể ghi đè dữ liệu, mà các dữ liệu cập nhật phải được lưu vào một vị trí mới đã được xóa trước và chứa tất cả các giá trị “1.” 

 \"/\"

Để lập trình, phải cấp điện áp dương vào TG. Điện áp này sẽ đẩy Electron từ chất nền qua lớp oxit để đi vào FG. 

\"/\" 

Để xóa dữ liệu, cần đưa  +20V vào chất nền, từ đó đẩy electron khỏi FG và đi qua lớp oxit. ,

Cách dễ dàng nhất là tưởng tượng Flash NAND giống như 1 cái phiếu đục lỗ. Các lỗ ở đây chính là dữ liệu, nhưng cũng có những vùng không có dữ liệu. Nếu bạn đã đục 1 lỗ thì bạn không thể “lập trình lại” nó bằng cách phủ giấy lên.

Tóm tắt cách hoạt động của Flash NAND . Trong chu kì xóa , tất cả các ô đều được đặt giá trị 1 ( phiếu đục lỗi chưa bị phá ) , sau đó có thể được lập trình bằng cách giữ nguyên giá trị 1 hoặc thay đổi FG để giá trị tại Cổng đó chuyển từ 1 sang 0. Nhưng bạn không thể làm ngược lại, tức là không thể lập trình bất kì một ô lên gái trị cao hơn mà chỉ có thể giữ nguyên , hoặc thấp hơn.   

Còn cách hoạt động của SLC Flash NAND lại đơn giản hơn nhiều, bạn có 2 mức: 1 và 0. Với MLC, bạn có 1, 2/3, 1/3, và 0 – các giá trị là các mức điện áp cấp lên TG cần thiết để cho phép dòng điện đi qua Cổng đó. 

Các mức điện áp này được dịch thành “0”, “1”, “2” hoặc “3” tương ứng với “00”, “01”, “10”, và “11” trong hệ nhị phân. Điều đó cho phép chuyển hóa mỗi mức thành 2-bit . Do đó, cần 4 ô nhớ mới được 1 Byte.

Ví dụ, nếu 4 ô Flash NAND MLC được lập trình với các giá trị dịch là 0, 2, 3, 0, thì kết quả sẽ ra một Byte có giá trị 0010 1100 hay 2C [hex]. Về lý thuyết, ô này có thể được lập trình thêm bằng cách chuyển từng giá trị (1)-(2)-(3) sang một giá trị thấp hơn, nhưng nếu bạn muốn lập trình một Byte thì bạn đừng hy vọng rằng không có bit nào cần lập trình để lên giá trị cao hơn. Ví dụ, bạn không thể đi từ 2C [hex] sang 21 [hex] bởi dãy nhị phân đó sẽ là 0010 0001, và tuy rằng đây chỉ là một bit cần chuyển từ 0 sang 1 nhưng cũng không thể thực hiện điều đó, trừ khi Byte đó đã được xóa hoàn toàn và tất cả các bit đều được đặt lại thành 1 (1111 1111 hay FF [hex]).

Đây là điều rất quan trọng, bởi bạn không thể nào viết số 0 vào 1 ô, sau đó lại xóa đi và thay bằng 1. Cũng như một tờ phiếu đục lỗ, bạn không thể xóa dữ liệu khỏi mảng bằng cách đục thêm lỗ, mà tất cả các khoảng cách đều cần phải được lấp đầy (hoặc thay bằng phiếu mới) , có nghĩa là tất cả khối phải chuyển thành “1”. 

Trên đây là sự khác nhau cơ bản giữa việc xóa dữ liệu trong HDD và trong Flash NAND. Như vậy trong bộ nhớ Flash NAND phải thực hiện quá trình Xóa từng khối ô nhớ rồi mới có thể ghi dữ liệu được vào từng vùng ô nhớ trong khối đó và đây là hạn chế của Flash NAND .

 

 \"/\"