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

Một sự khác nhau cơ bản nữa giữa Flash với phiếu bấm lỗ là ở chỗ, chip Flash không liên tục được thay thế những thẻ trắng như phiếu bấm
Kéo dài khả năng Ghi

 

Một sự khác nhau cơ bản nữa giữa Flash với phiếu bấm lỗ là ở chỗ, chip Flash không liên tục được thay thế những thẻ trắng như phiếu bấm . Thay vào đó, chúng được xóa như cách ở trên, nhưng qua một quy trình “Lập trình / Xóa” rất khắt khe. Tuy nhiên lý thuyết về phiếu bấm lỗ vẫn còn tác dụng, bởi mỗi chu kỳ Xóa tương đương với việc vá lỗ. Quy trình này cũng có giới hạn nhất định trong bộ nhớ Flash và không thể cứ thực hiện mãi. Giới hạn này được gọi là số giới hạn chu kỳ Lập trình / Xóa, Ghi càng ít càng tốt

Trên con đường chấm dứt hoạt động

Mỗi quy trình Lập trình sau khi Xóa được gọi là chu kỳ flash, hay chu kỳ Lập trình / Xóa ( P/E – Program / Erase ). NAND Flash có thể chịu được sô chu kỳ nhất định , tùy vào việc nó là loại SLC – Single Level Cell (100,000 chu kỳ) hay MLC – Multi Level Cell (10,000 – 3,000 chu kỳ tùy thuộc vào nhà sản xuất và cấu trúc hình học ). Tuy nhiên, việc lập chu kỳ P/E cho một ô NAND cần phải có điện trường cực cao, có thể quá 10 mV / cm, đủ lớn để đẩy Electron ra khỏi lớp oxit. Dần dần, điều này sẽ dẫn đến sự thoái hóa lớp Oxit do kết nối giữa các nguyên tử sẽ tan vỡ bên trong lớp Oxit và cả ở bề mặt của nó tại FG và chất nền.

Kết quả khiến cho các Electron bị kẹt trong các kết nối bị vỡ đó, trong khi lớp oxit thì chuyển sang điện tích âm. Cuối cùng, quá trình Xóa sẽ trở nên chậm hơn, trong khi việc Lập trình lại nhanh hơn.  

 \"/\"

Một ô NAND Flash  mới không có các Electron kẹt trong lớp Õxit

 \"/\"

Một ô NAND Flash  không còn khả năng làm việc . Các Electron bị kẹt trong lớp Oxit

Khi số chu kỳ Lập trình tăng lên , ngày càng nhiều Electron bị kẹt trong lớp oxit. Để đẩy các Electron này thì cần chu kỳ và các chu kỳ ngày càng dài ra tăng lên . Cần chú ý rằng trong đó sẽ có những ô chưa được lập trình xuống mức thấp hơn, sẽ có ít Electron trong FG, và điều này cũng được phản ánh trong điện tích còn dư tại lớp oxit. Nói cách khác, mức lập trình trung bình của ô luôn đóng một vai trò quan trọng liên quan tới tuổi thọ của khối nhớ. 

Kết quả cuối cùng là lớp Oxit tích lũy đủ điện tích để các ô không thể xóa được nữa (khi ấy giá trị của ô đó là “1”). Một khi điều này xảy ra, ô đó không thể được tiếp tục lập trình (trừ trường hợp ngẫu nhiên giá trị mong muốn trùng với giá trị “bị kẹt”) và ô đó đã chấm dứt sự tồn tại của nó. Mỗi khi thời gian xóa một khối vượt quá giá trị được xác định trước , khối đó sẽ không còn hoạt động nữa. Vì thế để duy trì dung lượng lưu trữ nhất định, cần có những khối lưu trữ dự phòng để kích hoạt làm việc .

Tăng tốc sửa lỗi / Khôi phục

Việc Electron bị kẹt trong lớp Oxit cũng không tồn tại vĩnh viễn. Trên thực tế, lớp Oxit sẽ “tự liền” sau một thời gian. Ngoài ra, với sự trợ giúp của nhiệt độ cao cũng đẩy nhanh quá trình giải phóng Electron khỏi lớp Oxit. Do đó, bất kì thiết bị Flash có những ô nhớ hoặc khối ô nhớ làm việc không đều thì sẽ làm việc được lâu hơn so với những ô nhớ thường xuyên được sử dụng .

Ngoài ra, nhiệt độ cũng ảnh hưởng đến sức chịu đựng của các ô (và các khối). Mặt khác, gần như không thể nào dựa vào nhiệt độ và dữ liệu tần số xung nhịp để dự đoán chính xác khi nào thì một khối ngừng hoạt động. Hơn nữa, bất kỳ khối nào cũng có thể gặp lỗi ghi vào bất kỳ lúc nào, tuy nhiên, các lỗi này lại hoàn toàn ngẫu nhiên và không có dấu hiệu báo trước. Trên thực tế, thường thì một Bit sẽ không hỏng 2 lần trong tương lai gần. Hiện tượng này được gọi tên là “ Ghi sai một cách thất thường - Erratic Nature of Write Errors”

Tóm lại, các tham số và hiện tượng nói trên liên quan tới vấn đề lỗi không thể khôi phục được dự đoán trước trong Khối và tất cả đều phụ thuộc vào Tỉ lệ Bit lỗi có khả năng khôi phục được - RBER ( recoverable bit error rate ) .

Vừa mới, vừa cũ …

Ban đầu, bộ nhớ Flash được phát triển như một phương tiện lưu trữ rẻ tiền cho máy Camera với số chu kỳ Ghi/Xóa hạn chế, và trừ một số Camera cao cấp dành cho dân nhiếp ảnh chuyên nghiệp, chúng ít khi tương tác với các phương tiện khác. 

Khá dễ dàng để biết được rằng việc áp dụng của công nghệ Flash này trong một giải pháp lưu trữ hoàn toàn khác, đặc biệt là việc sử dụng SSD có thể gây ra một số vấn đề. Hơn nữa, việc áp dụng công nghệ ATA và các hệ thống file liên quan nhằm điều chỉnh Flash NAND cũng gặp một số trở ngại, và hiện tại thì vẫn cần phải xem xét kỹ việc kết hợp hai công nghệ này. 

 \"/\"

Từ HDD đến SSD : Truyền Song song đối đầu với Nối tiếp

Ổ cứng dùng cơ cấu quay là một thiết bị tuân theo quy trình rất ngặt nghèo. Bất chấp số lượng đĩa có lớn đến đâu thì cũng chỉ có một đầu từ được kích hoạt trạng thái Đọc hoặc Ghi tại một thời điểm . Tương tự, cho dù cấu trúc dữ liệu có phức tạp thế nào thì bạn cũng không thể xử lý song song, trừ khi vài ổ vật lý được kết hợp lại trong một mảng RAID.

Điều này thay đổi hoàn toàn trong SSD. Một mạch điều khiển bình thường sử dụng từ 8 đến 10 kênh kết nối với những Chip Flash NAND, và thường mỗi kênh rộng 8-bit (1 Byte). Điều này dẫn đến rất nhiều thay đổi, nhất là về tốc độ. Trong HDD, tốc độ bề mặt của một sector nhất định và mật độ dữ liệu đĩa từ sẽ quyết định tốc độ truyền dữ liệu, tốc độ này thay đổi theo từng bước , dẫn đến các “vùng” dữ liệu đường kính ngoài đến đường kính trong của đĩa.  

Còn trong SSD, tần số Bus, bao gồm cả tốc độ của chip Flash NAND, đều có tốc độ truyền dữ liệu giới hạn theo lí thuyết . Tần số thường gặp trong môi trường dòng điện là khoảng 50-60 MHz nếu dùng giao thức tốc độ dữ liệu đơn . Với độ rộng I/O 8-bit, mỗi kênh đơn truyền được tối đa 50-60 MB/giây. Hẳn nhiên con số này mang tính lý thuyết bởi thực tế không thể có hiệu suất Bus 100% . Dù vậy, con số này cũng giúp ta ước lượng khá tốt tốc độ truyền NAND. Ở tốc độ 50 MHz, cấu hình 4-kênh, giới hạn tốc độ lý thuyết là 200 MB/giây, còn với cấu hình 8-kênh thì con số này là 400 MB/giây. Các con số này thường xuyên thay đổi khi chuyển từ Flash NAND sang Flash Toggle Mode dùng giao thức DDR và tần số cao hơn một chút: tốc độ xung nhịp 66 MHz và tốc độ dữ liệu 133 Mbps. Trong một ứng dụng Đọc điển hình, điều này sẽ làm tăng tốc độ truyền tối đa về lý thuyết lên khoảng 125%. Tốc độ Ghi cũng tăng lên, nhưng chỉ khoảng 50%.  

\"/\"Trong SSD, không có chức năng chuyển đổi tốc độ truyền dữ liệu tùy theo vị trí Track như trong HDD. Bởi trong HDD, các Track đường kính bên ngoài rõ ràng truyền nhanh hơn các Track có đường kính bên trong . Trong SSD, tất cả các chip và khối đều được đối xử như nhau, tuy nhiên cũng có các giới hạn khác. 

Từ Sector đến trang

HDD thông thường có đĩa được chia thành nhiều Sector, mỗi Sector là 512 Bytes, và Sector là đơn vị lưu trữ vật lý nhỏ nhất trên đĩa. Tuy nhiên việc quản lý đơn vị 512-Byte không hề dễ, nhất là với file lớn, nhưng lại không được thực tế cho lắm. Do vậy, các Sector được nhóm hành từng Cluster, trong đó kích thước Cluster tùy thuộc cấu trúc file và dung lượng đĩa (hệ thống FAT) hoặc có thể được đặt độc lập với hệ thống file ( NTFS ), thường có kích thước Cluster thông thường là 4-Kb (8 sector).

Mặt khác Flash NAND lại được tổ chức theo cách khác xếp thành các Khối, các Trang và các Cột. Một Trang bình thường có kích thước 4096-Bytes ( 4-kB ) và hầu hết các Khối đều có 128 trang, kết quả là khối có kích thước đang được thịnh hành là 512-KB .

Như đã nói ban đầu, Khối là đơn vị dữ liệu tối thiểu có thể xóa được. Tuy nhiên các Trang lại có thể lập trình riêng. Hơn nữa, các trang có thể được lập trình một phần, tức là phần dưới của trang có thể được lập trình bằng cách đặt phần đầu của trang ở giá trị “có thể lập trình lại là FF”, sau đó cập nhật trong các chu kỳ lập trình tiếp theo.   

 \"/\"