Ổ 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 .
theo Tuvantinhoc