14/17 RAM khác SSD ở đâu? Các chương

Vì sao RAM mất dữ liệu còn SSD thì không?

Cả RAM và SSD đều là chip nhớ. Tại sao tắt điện thì RAM quên sạch, còn SSD vẫn nhớ?

Ở bài trước, ta thấy RAM có thể đưa dữ liệu tới CPU rất nhanh. Nhưng có một điểm kỳ lạ:

rút điện

RAM → mất dữ liệu
SSD → dữ liệu vẫn còn

Trong khi cả hai đều là chip nhớ bằng silicon. Vì sao RAM quên còn SSD nhớ?

Thử ngay: gạt nguồn điện sang Đã rút, rồi Đang cắm lại.

Rút điện: RAM mất, SSD còn

RAM (DRAM) một tụ điện nhỏ giữ điện tích, rò dần, cần điện và refresh

  • 1
  • 0
  • 1
  • 1
  • 0
  • 1

còn điện · giữ 1 0 1 1 0 1

SSD (NAND) transistor có một "cổng nổi" cách điện, điện tích vào rồi bị nhốt lại

  • 1
  • 0
  • 1
  • 1
  • 0
  • 1

còn điện · giữ 1 0 1 1 0 1

Cả hai đang giữ cùng một dãy bit. Gạt nguồn điện sang "Đã rút" để xem bên nào còn nhớ.

Khác biệt nằm ở cách mỗi loại giữ một bit.

Vì sao RAM mất dữ liệu khi tắt điện?

Một ô nhớ DRAM có thể hình dung rất đơn giản:

transistor + tụ điện

Tụ giữ một lượng điện tích rất nhỏ. Có điện tích là 1, không có là 0.

Nhưng chiếc tụ đó không giữ điện hoàn hảo. Điện tích từ từ rò đi, giống một chiếc cốc có lỗ rất nhỏ:

████████
██████
████
██

Cứ để yên thì cuối cùng không còn đủ điện tích để biết ban đầu nó là 1 hay 0. Vì vậy, như bài về refresh đã nói, DRAM phải liên tục đọc lại rồi nạp lại điện tích:

giữ bit

điện tích rò

refresh

đầy lại

Refresh cần điện. Tắt nguồn:

không refresh

điện tích rò hết

dữ liệu mất

Muốn nhớ được khi tắt máy, bit phải được giữ theo một cách khác.

SSD làm gì khác RAM?

SSD dùng NAND flash. Cell NAND cũng dựa trên transistor, nhưng bên trong có một vùng giữ được electron sau lớp cách điện:

        electron
       ● ● ● ●
    ┌───────────┐
    │ vùng giữ  │
    └───────────┘
      cách điện

     transistor

Khi ghi, mạch đặt một điện áp đủ lớn để đẩy electron vào vùng giữ đó. Sau đó bỏ nguồn, electron không dễ thoát ra vì bị các lớp cách điện bao quanh:

có điện

electron → [ vùng giữ ]

tắt điện

          [ electron vẫn ở đây ]

DRAM giữ một lượng điện tích phải liên tục nạp lại. NAND giữ electron trong một vùng cách điện, nên chúng ở lại được khi mất nguồn.

Bộ nhớ mất dữ liệu khi mất điện gọi là volatile, loại vẫn giữ được gọi là non-volatile.

Những con chip đen lớn trên một ổ SSD chính là NAND:

Một ổ SSD M.2 đã bóc tem đặt dọc trên nền trắng với hai chip NAND đen lớn và chip điều khiển phía trên
Một ổ M.2 NVMe đã bóc tem: hai chip NAND lớn và chip điều phối. Ảnh: User5515 / Wikimedia Commons · CC0

Nhưng nếu electron bị nhốt kín như vậy, làm sao chip đọc được chúng?

SSD biết bit là 0 hay 1 bằng cách nào?

Electron bị nhốt bên trong cell, nhưng chúng vẫn ảnh hưởng tới transistor bên dưới.

Nhiều electron hơn thì transistor khó bật hơn. Ít electron hơn thì nó dễ bật hơn.

ít electron

dễ bật transistor

nhiều electron

khó bật transistor

Vì vậy khi đọc, SSD không cần lấy electron ra. Nó chỉ thử:

Với mức điện áp này, transistor có bật không?

Từ câu trả lời đó, mạch suy ra cell đang giữ trạng thái nào.

SSD biết cell đang giữ gì bằng cách nào?
Cell đang giữ
điện áp thử transistor

Cùng một mức điện áp thử, hai lượng electron cho hai kết quả khác nhau. Bấm thử với cả hai.

Đó là toàn bộ ý cần nhớ.

Nếu muốn biết chính xác hơn

Mức điện áp làm transistor bắt đầu dẫn gọi là điện áp ngưỡng. NAND hiện đại chia điện áp ngưỡng thành nhiều mức, nên một cell giữ được nhiều hơn một bit.

Vùng giữ electron ở NAND đời đầu là một cổng dẫn điện nằm lơ lửng giữa hai lớp oxide (floating gate); NAND 3D ngày nay thường giữ điện tích ngay trong một lớp vật liệu cách điện (charge trap).

Vậy sao không dùng SSD thay luôn RAM?

giữ electron thật lâuthay đổi electron thật nhanh là hai mục tiêu khác nhau.

RAM được làm để CPU thay đổi dữ liệu liên tục:

đọc → sửa → đọc → sửa → đọc...

SSD được làm để dữ liệu vẫn còn sau khi mất điện. Muốn thay đổi NAND, mạch phải đưa electron xuyên qua lớp cách điện. Việc đó chậm và phức tạp hơn đổi điện tích trong một cái tụ.

Vì vậy:

RAM SSD
rất nhanh chậm hơn RAM
mất dữ liệu khi tắt điện vẫn giữ dữ liệu
thay đổi dữ liệu liên tục phù hợp lưu dữ liệu lâu dài

SSD còn hai đặc điểm lạ: không ghi đè tuỳ ý một cell được như RAM, và ghi xoá nhiều lần thì cell mòn dần.

Vì sao SSD phải ghi theo page và xoá theo block?

Đẩy electron vào cell chỉ đổi bit theo một chiều. Muốn đổi ngược lại, mạch phải kéo electron ra bằng thao tác xoá, mà xoá chỉ làm được cho cả một khối lớn.

Vì vậy cell được gom thành page để ghi và nhiều page gom thành block để xoá: sửa một chút dữ liệu có khi phải đọc ra, xoá cả block rồi ghi lại. Mỗi lần ghi xoá cũng làm cell mòn thêm, nên chip điều phối rải việc ghi ra khắp ổ (wear leveling) để không vùng nào hỏng trước.

Không cần nhớ chi tiết đó để hiểu chương này. Chỉ cần nhớ:

RAM được tối ưu để thay đổi dữ liệu nhanh. SSD được tối ưu để giữ dữ liệu khi mất điện.

RAM và SSD chia việc thế nào?

Giả sử bạn cài một game. Khi máy đang tắt:

SSD
└── game vẫn nằm đây

Bạn bấm Play:

SSD

 │ Loading...

RAM

Những phần đang cần được chép từ SSD lên RAM. Trong lúc chơi:

SSD        giữ game lâu dài

RAM        giữ dữ liệu game đang chạy

cache      giữ thứ CPU vừa cần

CPU        thực hiện lệnh

Vì vậy:

SSD giống cái kho. RAM giống mặt bàn làm việc.

Bạn không làm việc ngay trong kho. Bạn lấy thứ đang cần ra bàn. Tắt máy thì thứ trên bàn biến mất, còn đồ trong kho vẫn còn.

Nhưng có một điều thú vị: nguyên lý của ô DRAM — một transistor và một tụ điện, phải refresh — gần như không đổi từ năm 1966. Trong khi đó dung lượng RAM tăng khổng lồ và tốc độ ngày càng cao.

Nếu ô nhớ cơ bản gần như vẫn vậy, RAM hiện đại đã thay đổi ở đâu?