1 điểm bởi GN⁺ 2024-05-20 | 1 bình luận | Chia sẻ qua WhatsApp
  • Một thử nghiệm tái cấu hình QLC NAND của Crucial BX500 sang chế độ pSLC bằng MPTools, chấp nhận giảm dung lượng từ 500GB xuống khoảng 120GB để đổi lấy độ bền và một phần hiệu năng cao hơn đáng kể
  • Việc chuyển đổi là thao tác firmware/cấu hình dành riêng cho tổ hợp controller Silicon Motion SM2259XT2 và NAND Micron N48R; nếu thất bại có thể làm hỏng SSD, mất bảo hành và xóa dữ liệu
  • TBW tính toán ở trạng thái QLC mặc định là 120TB, nhưng ở chế độ pSLC có thể tăng lên 4.000TB TBW dựa trên 60.000 chu kỳ P/E, dung lượng 120GB và WAF 1,8
  • Trong benchmark tuần tự ngắn, khác biệt là nhỏ, nhưng ở hiệu năng ngẫu nhiên, độ trễ, bài test năng suất PCMark 10 và ghi kéo dài thì chế độ pSLC cho thấy khác biệt rõ rệt
  • Ở trạng thái mặc định, sau khoảng 45GB bộ nhớ đệm SLC, tốc độ giảm xuống trung bình khoảng 50MB/s; sau khi chuyển sang pSLC, ổ duy trì khoảng 498~500MB/s trên toàn bộ 120GB và cả khi ghi lặp lại

Đối tượng thử nghiệm và các yếu tố rủi ro

  • Đối tượng thử nghiệm là SSD Crucial BX500 đã được test nhiều lần
  • Dù bản thân quy trình có thể an toàn hơn ép xung, nó vẫn bao gồm flash firmware nên cần cẩn trọng
  • Khi flash firmware, toàn bộ dữ liệu sẽ bị xóa, vì vậy cần sao lưu
  • Thực hiện chuyển đổi sẽ làm mất hiệu lực bảo hành SSD
  • Công cụ cần thiết gồm bộ chuyển đổi SATA-USB 3.0 dùng chip cầu nối Jmicron JMS578 Bridge Chip, cùng kẹp để chập các chân ROM/Safe Mode trên PCB của SSD

Cấu hình phần cứng của BX500

  • Controller là Silicon Motion SM2259XT2, một biến thể của SM2259XT
    • Controller đơn nhân
    • Kiến trúc ARC 32-bit
    • Có thể hoạt động tối đa 550MHz
    • Trên SSD này chạy ở 437,5MHz
  • SM2259XT2 hỗ trợ tối đa 2 kênh và tối đa 8 Chip Enable mỗi kênh, có thể giao tiếp tối đa 16 die qua interleaving
  • SM2259XT dùng để so sánh hỗ trợ cấu hình 4 kênh và 4 C.E., tối đa 16 die
  • SSD SATA này có thiết kế DRAM-Less và cũng không hỗ trợ Host Memory Buffer

NAND và đặc tính hoạt động mặc định

  • Mẫu 500GB được trang bị 2 chip flash NAND đánh dấu “NY240”
  • Sau khi giải mã, đây được xác nhận là NAND Micron MT29F2T08GELCEJ4-QU:C, N48R Media Grade
    • 1Tb mỗi die, tức 128GiB
    • 176 lớp dữ liệu và tổng cộng 195 gate
    • Hiệu suất mảng 90,2%
  • Mỗi chip NAND chứa 2 die, tương đương 256GB mỗi chip, tổng cộng khoảng 500GB
  • NAND giao tiếp với controller ở 262,5MHz, tức 525MT/s
  • Die N48R có thể chạy tới 800MHz, tức 1600MT/s theo khả năng của nó, nhưng trên SSD này được cấu hình thấp hơn nhiều
  • Cài đặt tốc độ thấp có thể liên quan đến giảm điện năng/nhiệt, không đạt tiêu chuẩn chất lượng cho hoạt động tốc độ cao, khả năng độ bền thấp hơn, hoặc nguồn NAND giá rẻ

Quy trình chuyển đổi bằng MPTools

  • Sử dụng MPTools, công cụ sản xuất hàng loạt dành cho controller Silicon Motion
  • Công cụ được dùng là “SMI SM2259XT2 MPTool FIMN48 V0304A FWV0303B0”, và phải phù hợp với cả controller lẫn NAND flash
  • Trước tiên cần đọc và lưu lại các tham số hiện có của SSD
    • Flash IO Driving và các mục con
    • Flash Control Driving
    • Flash DQS/Data Driving
    • Control ODT
    • Flash ODT
    • Schmitt Window Trigger
  • Dùng chức năng Scan của MPTools để tìm SSD, rồi kiểm tra mục “Ready (FW: M6CR061, MN48R)” để xác nhận thiết lập gốc và tốc độ controller/NAND
  • Để so sánh công bằng, tần số controller và NAND được giữ nguyên như ban đầu

Thiết lập kích hoạt chế độ pSLC

  • Trong “Edit Config”, đặt tên dự án và thẻ phiên bản firmware
    • Ví dụ tên model là “SSD SLC Test”
    • Ví dụ phiên bản firmware là “SSD-SLC”
  • Flash Control Driving và Flash DQS/Data Driving được giữ nguyên ở giá trị 66(hex)
  • Tần số CPU và NAND cũng giữ theo điều kiện so sánh ban đầu, còn Output driving để ở 03H
  • Chỉnh sửa file Setting.set của MPTools để hiển thị các tùy chọn liên quan đến pSLC
    • Đổi ENFWTAG=1 trong [Function] thành ENFWTAG=0
    • Thêm EnSLCMode=1 vào [Option]
  • Sau đó, tùy chọn Force SLC Mode sẽ xuất hiện trong MPTools
  • Cần sao chép các file boot/khởi tạo trong thư mục firmware sang một thư mục cụ thể thì mới có thể chuyển đổi thực sự
  • Quy trình file này được tinh chỉnh cho tổ hợp SM2259XT2 + NAND N48R; với NAND khác, tên thư mục và cấu trúc file sẽ khác
  • Một số mẫu NAND có thể không tương thích 100%, và NAND đã được kiểm thử là NAND của Intel và Micron

Tính toán độ bền

  • Để tính độ bền cần Write Amplification Factor, số chu kỳ Program/Erase của NAND và dung lượng SSD
  • Tính toán chính xác hơn còn dùng thêm các tham số như tiêu chuẩn JEDEC JESD218A và Wear-Leveling Efficiency
  • SSD ở trạng thái QLC mặc định có TBW 120TB, từ đó suy ra NAND N48R Media Grade có khoảng 900 chu kỳ P/E
  • WAF của trạng thái mặc định được tính là 3,75, và trong thử nghiệm thực tế gần khoảng 3,8
  • Ở trạng thái pSLC, die NAND theo datasheet có thể chịu tối đa 60.000 chu kỳ P/E
  • Sau khi chuyển sang pSLC, dung lượng giảm xuống khoảng 0,12TB, tức 120GB
  • Với WAF 1,8, TBW tính ra là 4.000TB
  • TBW tăng từ 120TB ở trạng thái QLC 500GB lên 4.000TB ở trạng thái pSLC 120GB, tức tăng hơn 3333%

Môi trường thử nghiệm hiệu năng

  • Hệ điều hành là Windows 11 Pro 64-bit 23H2
  • CPU là Intel Core i7-13700K, đặt tất cả nhân ở 5,7GHz
  • RAM là cấu hình 2×16GB DDR4-3200MHz CL16 Netac
  • Mainboard là MSI Z790-P PRO WIFI D4, BIOS phiên bản 7E06v18
  • GPU là RTX 4060 Galax 1-Click OC
  • Ổ hệ điều hành là Solidigm P44 Pro 2TB, còn SSD thử nghiệm được dùng dưới tên BX500 “SLC-Test”
  • Windows indexing, update, ứng dụng nền và antivirus được tắt để giảm biến động khi test
  • SSD thử nghiệm được dùng như ổ phụ, và có cả bài test ở mức sử dụng 0% lẫn 50%
  • Bài test điện năng dùng Quarch PPM QTL1999 để đo idle, bài test ghi 1 giờ và mức tiêu thụ điện trung bình

Kết quả CrystalDiskMark

  • Bài test tuần tự dùng cấu hình 2×1GiB, block 1MiB, 8 queues, 1 thread
  • Bài test ngẫu nhiên dùng cấu hình 2×1GiB, block 4KiB, 1 queue, 1/2/4/8/16 threads
  • Ở bài test tuần tự, gần như không có khác biệt
    • Vì chỉ với bộ nhớ đệm pSLC mặc định cũng đã đạt băng thông tối đa của SSD SATA và tốc độ tuần tự công bố của nhà sản xuất
    • Khác biệt chỉ lộ rõ ở benchmark dài và nặng hơn
  • Độ trễ giảm đáng kể
    • Ở trạng thái mặc định, sau idle thì NAND bắt đầu đọc/ghi ở chế độ native QLC, rồi mới được lập trình lại sang SLC nên có độ trễ
    • Ở chế độ pSLC, NAND luôn ở trạng thái pSLC nên độ trễ thấp hơn
  • Tốc độ ngẫu nhiên chênh lệch rõ hơn tốc độ tuần tự
  • Ở QD1, tốc độ đọc tăng hơn 16% và tốc độ ghi tăng hơn 30%

Kết quả ATTO, 3DMark, PCMark 10

  • ATTO Disk Benchmark được chạy với block size từ 512B đến 8MiB, file size 256MB và Queue Depth 1·4
  • Trong ATTO, SSD ở chế độ pSLC vượt SSD mặc định ở mọi block size
  • Ở QD1 cũng lặp lại cùng xu hướng, dù ở một số block size mức chênh lệch nhỏ hơn QD4
  • 3DMark Storage Benchmark gồm tải game, ghi hình/phát trực tiếp OBS 1080p 60FPS, cài đặt game và truyền file thư mục game
  • Ngay cả trong môi trường thực tế nhẹ như 3DMark, vẫn có chênh lệch về hiệu năng và độ trễ, nhưng có thể chưa đủ để người dùng cảm nhận rõ trong sử dụng thường ngày
  • PCMark 10 Full System Drive Benchmark thiên về năng suất làm việc và có tỷ trọng ghi cao hơn 3DMark
  • Trong PCMark 10, khác biệt trong thực tế rất rõ rệt, với hiệu năng gần gấp đôi

Premiere Pro, khởi động, tải game

  • Bài test Adobe Premiere Pro 2021 đo thời gian mở một dự án khoảng 16,5GB, độ phân giải 4K, bitrate 120Mbps, nhiều hiệu ứng, đến trạng thái có thể chỉnh sửa
  • Việc tải dự án Premiere Pro chủ yếu là kịch bản đọc tuần tự nên gần như không có khác biệt, ở mức biến động giữa các lần chạy
  • Dùng benchmark Final Fantasy XIV để so sánh thời gian tải game
  • Tải game khó tạo ra khác biệt lớn do các giới hạn API khác với DirectStorage
  • Khởi động Windows cũng không khác biệt nhiều, dù là trên hệ thống mới, vì không tận dụng được các đặc tính áp dụng cho SSD này

Bộ nhớ đệm SLC và ghi kéo dài

  • Hiện nay nhiều SSD dùng một phần dung lượng làm SLC Caching
    • Một phần NAND MLC, TLC, QLC được dùng làm vùng lưu 1 bit mỗi cell như bộ đệm đọc/ghi
    • Khi bộ đệm cạn, controller sẽ ghi vào vùng NAND native
  • Theo kết quả IOmeter, bộ nhớ đệm pSLC mặc định của SSD này là động và khoảng 45GB
  • Ở trạng thái mặc định, SSD duy trì trung bình khoảng 493MB/s cho đến khi hết cache
  • Sau khi ghi 45GB, quá trình folding bắt đầu và điểm yếu của SSD QLC bộc lộ
  • Tốc độ ghi duy trì sau cache giảm xuống trung bình khoảng 50MB/s
  • Sau khi chuyển sang pSLC, toàn bộ 120GB đều được ghi ở mức trung bình 498MB/s
  • Ngay cả khi ghi tới 500GB và lặp lại hơn 4 vòng đầy dung lượng, tốc độ vẫn giữ gần 500MB/s
  • Chênh lệch tốc độ ghi trung bình khi cộng cả pSLC cache, folding và vùng native gần đạt mức 10 lần

Sao chép file, nhiệt độ, điện năng

  • Bài test sao chép file thực hiện từ RAM Disk sang SSD với file ISO Windows 10 21H1 6,25GB và thư mục cài đặt CSGO 25,2GB
  • Cả hai đều nhỏ hơn bộ nhớ đệm SLC 45GB của SSD mặc định, nên trong bài test sao chép thực tế không có khác biệt
  • Lý do không test file lớn hơn là vì bộ nhớ dùng cho RAM Disk bị giới hạn ở 32GB
  • Trong bài test nhiệt độ, SSD không nóng lên đáng kể, và cảm biến được cho là cảm biến NAND Flash
  • Trong bài test điện năng, hiệu suất tăng mạnh sau khi chuyển sang pSLC
    • Trạng thái QLC mặc định phải chạy lâu dưới 55MB/s trong bài test vượt xa bộ đệm 45GB nên hiệu quả thấp
    • Chế độ pSLC không bị tụt băng thông khi ghi lượng dữ liệu gấp đôi dung lượng của chính nó, và mức tiêu thụ điện cũng thấp hơn
  • Lý do điện năng giảm ở chế độ pSLC là vì NAND SLC chỉ dùng 2 mức logic nên cần threshold voltage thấp hơn
  • NAND QLC dùng 16 mức logic nên cần threshold voltage cao hơn
  • Ngay cả ở trạng thái idle, mức tiêu thụ điện của chế độ pSLC cũng thấp hơn

Kết luận

  • Nếu thực hiện sai quy trình, SSD có thể bị hỏng nên cần hết sức cẩn thận
  • Khác biệt hiệu năng của việc chuyển sang pSLC thay đổi theo từng kịch bản
    • Ở benchmark tuần tự ngắn, sao chép file nhỏ, tải game và khởi động Windows, khác biệt là nhỏ
    • Ở hiệu năng ngẫu nhiên, độ trễ, bài test năng suất và ghi kéo dài, khác biệt là lớn
  • Thay đổi lớn nhất là độ bền, với TBW tính toán tăng từ 120TB lên 4.000TB
  • Đổi lại, dung lượng khả dụng giảm từ 500GB xuống khoảng 120GB

1 bình luận

 
GN⁺ 2024-05-20
Ý kiến trên Hacker News
  • Không cần phải vất vả đến mức đó chỉ để dùng SSD giá rẻ không có DRAM ở chế độ pSLC
    Chỉ cần over-provisioning bằng cách chỉ dùng 25–33% tổng dung lượng là được
    Hầu hết controller giá rẻ không có DRAM hoạt động ở chế độ cache toàn đĩa, nên ban đầu mọi thao tác ghi đều được ghi dưới dạng pSLC, và chỉ sau khi các cell đã đầy mới gom lại một phần cell thành TLC/QLC để giải phóng không gian
    Nếu là TLC thì chỉ tạo phân vùng bằng 1/3 dung lượng đĩa, nếu là QLC thì 1/4, rồi để phần trống còn lại ở trạng thái đã TRIM và tuyệt đối không ghi vào, như vậy nó sẽ luôn ghi như pSLC
    Để kiểm tra SSD bạn quan tâm có hoạt động kiểu này không, hãy tìm benchmark ghi toàn đĩa "HD Tune" của model đó. Nếu 1/3–1/4 đầu tiên nhanh rồi phần còn lại chậm thảm hại, có thể xem đó là chế độ cache toàn đĩa

    • Tôi tò mò làm sao có thể xác nhận trạng thái này được duy trì liên tục
      Cách chỉ lấy một phần đĩa làm phân vùng nghe giống kiểu “chỉ dùng các sector ngoài” thời SCSI 160GB
    • Nếu chỉ truy cập một phần LBA thì một FTL lý tưởng thực sự sẽ hoạt động như vậy
      Tuy nhiên như đã nói, nhà sản xuất có thể tinh chỉnh firmware khác đi, còn bản mod này về cơ bản đảm bảo toàn bộ không gian được dùng như SLC
    • Xem phần “SLC CACHING” ở cuối bài gốc là được
      Cách tiếp cận này có lẽ chỉ hoạt động tốt đến 45GB dù cache SLC thực tế là 120GB, vì tiến trình dành cho paging sẽ bắt đầu trước khi SLC bị dùng hết hoàn toàn
      Nếu không cần tới 66% dung lượng SLC của ổ, cách dùng phân vùng nhỏ đúng là dễ hơn và an toàn hơn
    • Làm sao đảm bảo phần trống đã được TRIM? Tôi tò mò liệu có thể TRIM chỉ một vùng nào đó của đĩa không
  • Bản hack này về cơ bản biến SSD 480GB thành SSD 120GB
    Đổi lại, độ bền ghi, tức lượng dữ liệu có thể ghi trước khi dự đoán hỏng, tăng từ 120TB lên 4000TB, nên có thể là một đánh đổi rất hữu ích cho các ổ lưu log chẳng hạn
    Tôi chưa từng thấy nhà sản xuất cung cấp tùy chọn như vậy, không rõ vì sao họ không làm

    • Có những công ty bán SSD SLC cho công nghiệp
      Ví dụ như Swissbit bán các sản phẩm công nghiệp dùng flash TLC hoặc QLC nhưng không dùng ở chế độ đó
    • Tôi không hiểu tác giả tính kiểu gì khi nói đã giảm hệ số khuếch đại ghi từ 3,8 xuống 2,0 mà độ bền tăng 30 lần
      Mức đó thì tôi kỳ vọng chỉ khoảng gấp 2 lần
      Nhìn thì có vẻ giá trị ban đầu dùng con số bảo hành OEM là 120TBW, còn giá trị cuối dùng thông số chu kỳ P/E của NAND, nên khá đáng ngờ
      Nếu có gì tôi bỏ sót thì có thể là chế độ pSLC làm giảm mạnh điện áp lập trình cell, khiến chu kỳ P/E tăng đột biến; nhưng điều đó có vẻ nên được tính vào hệ số khuếch đại ghi
    • Không biết dùng làm đĩa cache cho ZFS hoặc Synology có hữu ích không. Chắc vẫn cần tinh chỉnh thêm
    • Các nhà sản xuất đã cung cấp thứ tương tự dưới dạng ổ TLC rồi
      Bản hack này có thể gây mất dữ liệu và không được hỗ trợ, còn ổ TLC thì được hỗ trợ
      Cách này cho 120GB với độ bền ghi 4000TB, nhưng với 200 đô la có thể mua ổ TLC 4TB có độ bền ghi 3000TB
    • Khả năng lưu giữ dữ liệu phụ thuộc vào cách firmware được triển khai, mà người dùng hoàn toàn không nhìn thấy bên trong
      Phần lớn ổ tiêu dùng rất có thể sẽ giảm khả năng lưu giữ dữ liệu
  • Điều bài viết không nhấn mạnh là độ bền và khả năng lưu giữ dữ liệu có liên hệ rất chặt chẽ
    Cell flash hao mòn theo kiểu rò rỉ tăng dần qua các chu kỳ, nên càng nhiều chu kỳ thì càng mất điện tích nhanh hơn
    SLC chỉ cần phân biệt 2 trạng thái thay vì 16 trạng thái như QLC, vì vậy với cùng số chu kỳ, dữ liệu ở chế độ SLC được giữ lâu hơn nhiều
    Tức là bản mod này không chỉ có độ bền cực cao mà còn có cả khả năng lưu giữ dữ liệu tốt hơn
    Nhà sản xuất thường ghi kiểu “N năm sau M chu kỳ”; SLC đời đầu được đánh giá 10 năm sau 100K chu kỳ, còn QLC này có thể là 1 năm sau 900 chu kỳ ở chế độ QLC, và 1 năm sau 60K chu kỳ ở chế độ SLC
    Nếu các block thực tế không bị quay vòng nhiều đến vậy thì khả năng lưu giữ dữ liệu sẽ cao hơn nhiều
    Tôi không biết firmware có dùng nguyên mã sửa lỗi mạnh hơn cần cho QLC cả trên các block chế độ SLC hay không, nhưng nếu có thì độ tin cậy cũng sẽ tăng thêm

  • Khoảng 10 năm trước, tôi từng kiếm được vài card FusionIO SLC gần như thuộc lô sản xuất cuối cùng để dùng benchmark
    Phần mềm là một cơ sở dữ liệu in-memory mà khách hàng muốn mở rộng dung lượng sử dụng, và đúng nghĩa là chỉ dùng card Fusion làm swap
    Sau khi tải dữ liệu vài phút, kernel ổn định lại và mọi thứ chạy thực sự tốt
    Trên một máy tính 500 đô la, nó xử lý hàng tỷ bản ghi với hàng triệu giao dịch mỗi giây, còn cái card thì đắt hơn cả xe của tôi
    Ngày nay tôi chắc chắn sẽ không làm vậy, nhưng đó là một thiết bị cực kỳ ấn tượng

    • Có thể nói ở nơi tôi từng làm, FusionIO đã cứu công ty
      Phần lớn ứng dụng được chống đỡ bởi một cơ sở dữ liệu Postgres duy nhất, và chúng tôi đã định bắt đầu dự án mở rộng theo chiều ngang nhưng không đạt được mấy kết quả. Chúng tôi nhận ra partitioning trong một codebase phức tạp và lâu đời là rất khó
      Tình cờ có được một card FusionIO, và với card 2TB rẻ nhất, QPS đọc trong pgbench nhảy từ khoảng 5.000 lên 300k
      Từ đó chúng tôi bắt đầu thấy mở rộng theo chiều dọc khả thi hơn nhiều so với tưởng tượng. Phần cứng có thể làm được nhiều việc hơn rất nhiều so với chúng ta nghĩ
    • Thời các SSD Intel đời đầu xuất hiện, tôi từng làm với một ISP dùng mảng RAID-10 gồm 8 đĩa 10K cho máy chủ mail
      Vì có rất nhiều I/O ngẫu nhiên nhỏ nên hệ thống luôn ở trạng thái sát ngưỡng chịu tải
      Để thử nghiệm, tôi gửi cho họ một SSD Intel 600GB dạng ổ laptop, họ hạ node phụ xuống, lắp SSD rồi đưa lên lại
      Sau khi đồng bộ mảng bằng DRBD, họ failover node chính sang node SSD, thêm SSD vào logical volume, rồi dùng pvmove để chuyển các block của mảng 8 đĩa sang SSD
      Trong vài giờ, tải giảm đều và cuối cùng gần như biến mất
      Thật thú vị khi một thứ nằm gọn trong lòng bàn tay có thể thay thế 8 ổ đĩa 3,5 inch 10K
    • Vào thập niên 90, người ta cũng từng dùng RAM có pin dự phòng đắt hơn xe mới cho dữ liệu WAL của những cơ sở dữ liệu cực kỳ cần mở rộng cao hơn
  • Nếu dùng eMMC trong thiết bị nhúng thì tôi cũng khuyến nghị cách này
    Trên hệ thống Linux, có thể dùng lệnh mmc của mmc-utils để đặt thiết bị sang chế độ pSLC
    Trong U-Boot cũng làm được, nhưng lệnh khó hiểu hơn một chút. Vì chỉ có thể lập trình một lần nên sau khi thiết lập sẽ không thể hoàn tác
    Nếu là số lượng sản xuất hàng loạt, bên lập trình có thể cấu hình sẵn thiết lập này cùng các thiết lập eMMC khác

  • Ước gì các phân tích đi sâu tới cả tốc độ truyền của bus kiểu này phổ biến hơn
    Sẽ rất tốt nếu với mọi SSD đều có sơ đồ khối ghi rõ tên model IC quan trọng, tần số xung hoạt động, độ rộng bus giữa các IC và tốc độ hoạt động

  • Một số SSD Kingston có thể quản lý over-provisioning bằng công cụ phần mềm do nhà sản xuất cung cấp
    Tức là có thể tự chọn điểm đánh đổi giữa dung lượng và độ bền

    • Dù vậy có lẽ số bit lưu trên mỗi cell vẫn sẽ không thay đổi
      Ví dụ nếu đặt over-provisioning là 80%, thì 80% dung lượng QLC sẽ được để làm vùng dự phòng, còn 20% còn lại vẫn sẽ dùng ở chế độ QLC
      Có lẽ nó sẽ không được nhận diện như thể có thể dùng giống SLC với 20% dung lượng SLC được over-provisioning
  • Ước gì nhà sản xuất cung cấp cách hạ SSD xuống dùng như SLC bằng kiểu thiết lập driver

    • Dù bản thân SSD không như vậy, mọi chip flash đều có thể làm được
      Nếu tự làm SSD hoặc nối trực tiếp flash vào các chân dư của SoC thì có thể lập trình theo kiểu đó
      Nếu nhu cầu đủ lớn, có vẻ cũng có thể mở rộng NVMe để cung cấp tính năng này
    • Điểm hay của đĩa là ngay từ đầu nó không cần driver
      Ngay cả nếu có tính năng như vậy, ứng dụng thiết lập driver cho Windows cũng sẽ không được mở nguồn mở đâu
    • Làm vậy thì nhà sản xuất còn cách nào kiếm thêm tiền nữa đâu
  • Tôi đã nghĩ đây là khác biệt ở cấp phần cứng, nên khá bất ngờ

    • Một chip NAND cụ thể có thể lưu bao nhiêu bit trên mỗi cell có lẽ là vấn đề ở cấp phần cứng
      Nhưng tôi nghĩ dù hỗ trợ TLC hay QLC thì vẫn có thể triển khai SLC trên tất cả chúng
      SSD NVMe Silicon Power trong máy tôi hiện cũng có vẻ dùng SLC cho thao tác ghi, rồi sau đó trong lúc nhàn rỗi chuyển dữ liệu đó sang TLC
      Chạy NAND ở chế độ SLC là một tính năng của những ổ như vậy, và được gọi là “SLC caching”
    • Với cell của SSD TLC, nếu ghi 0 là 000 và 1 là 111 thì rõ ràng việc biến nó thành SSD SLC về bản chất là đơn giản
      Nhưng chỉ thế thôi không giải thích được vì sao đọc và ghi lại nhanh hơn TLC nhiều đến vậy
      Ví dụ nếu lưu dữ liệu bằng điện tích trong tụ điện như DRAM, ta có thể tưởng tượng ghi giá trị bằng DAC thang R-2R và đọc giá trị bằng ADC flash. Trong trường hợp đó, nếu bỏ qua nhiễu, v.v. thì sẽ không có khác biệt tốc độ theo số mức hiệu dụng trên mỗi cell
      Lý do pSLC nhanh hơn có vẻ nằm ở cách flash được lập trình và đọc, cũng như đặc tính analog của bộ nhớ flash
      Nó cũng dùng điện tích để lưu giá trị như DRAM, nhưng không phải trong một tụ điện đơn giản mà trong cổng MOSFET kép
      Lượng điện tích làm thay đổi điện áp ngưỡng hiệu dụng của transistor, và khi đọc phải đặt nhiều mức điện áp để xem khi nào transistor bắt đầu dẫn
      Khi lập trình cell, cần bơm một lượng điện tích sao cho đạt điện áp ngưỡng tương ứng với mẫu bit mong muốn. Vì chỉ có thể bơm điện tích vào, nên để tránh bơm quá mức, người ta cấp nhiều xung ngắn rồi lặp lại quá trình kiểm tra bằng chu kỳ đọc xem đã đạt mức cần thiết hay chưa
      Vì vậy càng có nhiều mức trên mỗi cell thì càng cần xung ngắn hơn và nhiều chu kỳ đọc hơn
      Nếu lập trình cell đa mức ở chế độ đơn mức, một lần bơm điện tích lớn hơn cũng đủ, và khi đọc cũng chỉ cần xem nó có dẫn tại một ngưỡng tham chiếu duy nhất hay không
      Tóm lại, pSLC không cần thay đổi bản thân cell đa mức, nhưng phải thay đổi cách lập trình và đọc cell đó. Vì thế khả năng cao là các mạch liên quan phải khác đi ở một mức nào đó, và sẽ không thể triển khai chỉ bằng firmware thuần túy
      https://en.wikipedia.org/wiki/Flash_memory#Floating-gate_MOS...
      https://dr.ntu.edu.sg/bitstream/10356/80559/1/Read%20and%20w...
      https://people.engr.tamu.edu/ajiang/CellProgram.pdf
      http://nyx.skku.ac.kr/publications/papers/ComboFTL.pdf
  • Tôi tò mò liệu có thể dùng cách này để kéo dài tuổi thọ của SSD đã bị mòn hay không
    Biết đâu ở đâu đó tại Trung Quốc có dịch vụ thu gom những SSD như vậy, flash lại rồi bán dưới dạng “hàng mới”