Một bài toán gần 100 năm vẫn chưa kết thúc
Từ thẻ đục lỗ tới HBM, máy tính nhớ một bit bằng cách nào?
Ở bài trước, ta thấy DDR, LPDDR và HBM chỉ đổi chỗ đặt chip DRAM. Bên trong vẫn là điện tích trong tụ.
Khoá học bắt đầu từ một nhu cầu rất đơn giản: CPU tính được, nhưng số và lệnh phải nằm ở đâu đó trước đã.
Từ thẻ đục lỗ tới HBM, máy tính nhớ một bit bằng cách nào?
Câu trả lời chưa bao giờ đổi:
Tìm một thứ có hai trạng thái vật lý phân biệt được, giữ được đủ lâu và đọc lại được, rồi gọi một trạng thái là 0, trạng thái kia là 1.
Năm cách giữ một bit
| Công nghệ | Vật mang bit | Trạng thái 0 / 1 |
|---|---|---|
| Thẻ đục lỗ | tấm bìa | không lỗ / có lỗ |
| Lõi từ | vòng ferrite | từ hoá hướng này / hướng kia |
| SRAM | mạch tự giữ | nghiêng về bên này / bên kia |
| DRAM | tụ điện rất nhỏ | ít điện tích / nhiều điện tích |
| NAND | electron nhốt sau lớp cách điện | điện áp ngưỡng thấp / cao |
Máy tính chưa bao giờ “hiểu” 0 và 1 như con người hiểu con số. Nó chỉ có vật chất: có lỗ hay không, từ trường quay hướng nào, mạch nghiêng về bên nào, tụ nhiều hay ít điện tích.
Ta gọi những trạng thái đó là 0 và 1, rồi xây toàn bộ phần mềm lên trên.
Nhưng nếu nguyên tắc không đổi, vì sao mỗi thời lại phải tìm một vật khác để giữ bit?
Mỗi cách mới sinh ra từ chỗ vướng của cách cũ
Dòng thời gian dưới đây cho thấy các mốc lớn.
- 1890 Thẻ đục lỗ có lỗ / không lỗ trên tấm bìa
- Thập niên 1940 Relay, đèn điện tử mạch tự giữ một trong hai trạng thái ổn định
- 1946–49 Ống thuỷ ngân, ống Williams xung chạy vòng trong ống; chấm điện tích trên màn
- 1953 Lõi từ hướng từ hoá của một vòng ferrite
- 1970 Bộ nhớ bán dẫn, DRAM một chút điện tích trong tụ điện
- Nay DDR · LPDDR · HBM vẫn là điện tích trong tụ; đổi cách đóng gói và đưa tới CPU
Mốc nào cũng có lý do. Xếp theo thứ tự các bài trong khoá, mỗi dòng là câu trả lời cho chỗ vướng của dòng trên:
| Cách giữ bit | Giải được gì | Còn vướng gì |
|---|---|---|
| Thẻ đục lỗ | giữ bit rất lâu, không cần điện | đọc bằng kim cơ học, không ghi lại tại chỗ |
| Mạch tự giữ bằng đèn | bit nằm ngay trong mạch, đổi rất nhanh | mỗi bit một cụm đèn to, nóng; ENIAC chỉ giữ được 20 số |
| Ống thuỷ ngân, ống Williams | giữ nhiều bit hơn, rẻ hơn mạch đèn | phải chờ bit chạy tới; phải ghi lại liên tục |
| Lõi từ | chọn bit nào cũng đọc ngay, không mất khi mất điện | mỗi vòng xâu dây bằng tay |
| Chip bán dẫn: SRAM | hàng loạt ô trên một miếng silicon, rất nhanh | nhiều transistor cho một bit |
| DRAM | một transistor, một tụ: nhỏ và rẻ | tụ rò, phải refresh |
| Hàng, cột, địa chỉ | tìm đúng một ô trong hàng tỷ ô | mỗi lần đọc phải mở hàng, CPU chờ |
| Cache | giữ bản sao sát CPU, đỡ phần lớn lần chờ | hụt cache vẫn phải chờ RAM |
| SSD (NAND) | giữ dữ liệu khi tắt máy | chậm hơn RAM hàng nghìn lần, mòn dần |
| DDR, LPDDR, HBM | đặt DRAM đúng chỗ cho từng loại máy | mỗi cách một cái giá |
Không cách nào là đích cuối. Mỗi cách giải một chỗ vướng và để lại chỗ vướng mới.
Nhìn cả chuỗi thì thấy nguyên tắc đứng yên. Vậy thứ gì đã thật sự đổi?
Thứ thật sự đổi là quy mô
Thời thẻ đục lỗ, một bit là một cái lỗ nhìn thấy bằng mắt. Thập niên 1950, một bit là một vòng ferrite đường kính khoảng 1,6 mm, vẫn nhìn thấy được.
Năm 1970, chip Intel 1103 chứa 1.024 bit. Năm 2000, một chip DRAM đã chứa 1 tỷ bit: gấp một triệu lần, trong 30 năm.
Hôm nay, một thanh RAM 16 GB chứa khoảng 137 tỷ cell mà mắt thường không thấy.
Nhưng lớn lên không xoá được các đánh đổi. Nó chỉ đổi chỗ của chúng:
- tụ càng nhỏ, điện tích càng ít, mạch càng khó đọc cho chắc
- nhanh thì đắt, nên SRAM chỉ đủ làm cache
- lớn thì xa và chậm, nên CPU vẫn phải chờ RAM
- xa thì tốn điện, nên HBM kéo bộ nhớ về sát GPU
- nhớ được khi tắt máy thì chậm và mòn, nên SSD không thay được RAM
Vì thế bài toán giữ một bit vẫn chưa kết thúc. Mỗi đời bộ nhớ chỉ chọn lại đánh đổi cho hợp với máy của thời mình.
Chính những đánh đổi này là gốc của vài câu hỏi hay gặp khi mua máy.
Vài câu hỏi hay gặp
Thêm RAM có làm máy nhanh hơn không?
Không trực tiếp, vì RAM không tính toán. Thêm RAM chỉ giúp khi máy đang thiếu chỗ và hệ điều hành phải đẩy dữ liệu xuống ổ đĩa, nơi chậm hơn DRAM hàng nghìn lần. Đủ rồi thì thêm nữa không nhanh hơn.
Cache có phải là RAM không?
Cache là SRAM nằm trong chip CPU. Thanh RAM là DRAM. Cả hai đều mất dữ liệu khi mất điện, nhưng khác nhau ở cách giữ bit, tốc độ và giá mỗi bit.
VRAM trên card đồ hoạ là gì?
Là DRAM dành riêng cho GPU, thường là loại GDDR hoặc HBM, đặt sát GPU để có băng thông lớn.
Unified memory của Apple có phải một loại bộ nhớ mới?
Không. Đó là một vùng bộ nhớ chung đặt trong cùng vỏ chip, để CPU, GPU và các khối khác dùng cùng dữ liệu mà không phải chép qua lại.
Bài kiểm tra cuối khoá không hỏi tên viết tắt. Nó hỏi bạn có kể lại được chuỗi vừa rồi không.
Thử xem bạn đã kể lại được máy tính nhớ một bit bằng cách nào chưa.