← Máy tính hoạt động thế nào?

Bài 5 · Vận dụng · 22 phút· Cập nhật 11/06/2026

Bộ nhớ & RAM

Biên soạn bởi Nguyễn Anh Tuấn

Ô nhớ & địa chỉ, truy cập ngẫu nhiên, RAM “bay hơi” khi tắt máy, phân cấp bộ nhớ và vì sao cache giúp CPU nhanh.

Sau khi đã biết một byte là gì (Bài Hệ nhị phân), câu hỏi tiếp theo là: máy cất các byte ấy ở đâu? Câu trả lời là bộ nhớ (RAM) - hãy hình dung một dãy dài các ô, mỗi ô được đánh số và giữ đúng một byte (0-255). Bấm thử để chọn, đọc, ghi:

012120027342499506255716địa chỉ →CPU: “đọc ô số 3” → nhận về 42gọi ô nào cũng nhanh như nhau → “truy cập ngẫu nhiên” (RAM)
RAM như dãy tủ khoá đánh số: CPU gọi đúng ô bằng địa chỉ, ô nào cũng nhanh như nhau.

Ô địa chỉ 0100 (= 4) đang giữ 8.

Ghi giá trị:

16 ô nhớ, đánh số 0–15. Mỗi ô giữ một byte (0–255). Địa chỉ 4-bit chọn đúng một ô - bấm để chọn, rồi đọc hoặc ghi.

  • Mỗi ô nhớ giữ 1 byte = 8 bit (đúng như Bài Hệ nhị phân).
  • Mỗi ô có một số thứ tự riêng - gọi là địa chỉ (address).
  • Mô hình CPU 8-bit dùng đúng 16 ô như thế này.

Địa chỉ giống số nhà trên một con phố: muốn lấy/đặt dữ liệu ở ô nào, CPU chỉ cần nói ra số của ô đó. Với n bit địa chỉ, ta đánh số được 2ⁿ ô. Mô hình CPU dùng địa chỉ 4-bit → đúng 2⁴ = 16 ô.

Đếm ô cần mấy bit?

16 ô → 4 bit · 256 ô → 8 bit · 1024 ô → 10 bit. Cứ mỗi lần thêm 1 bit địa chỉ, số ô gấp đôi - đó là lý do dung lượng nhớ hay là luỹ thừa của 2 (KB, MB, GB).

CPU làm hai việc với bộ nhớ: đọc (lấy byte ở một địa chỉ) và ghi (đặt byte vào một địa chỉ). Điều hay là có thể chạm tới bất kỳ ô nào trong cùng một khoảng thời gian, không cần đi tuần tự - nên mới có tên RAM = Random Access Memory (bộ nhớ truy cập ngẫu nhiên).

  • Đọc: CPU đưa địa chỉ → bộ nhớ trả về byte ở ô đó.
  • Ghi: CPU đưa địa chỉ + byte → bộ nhớ lưu byte vào ô đó (đè giá trị cũ).
  • “Ngẫu nhiên” = tới thẳng ô bất kỳ, khác với băng từ phải tua lần lượt.

Có một sự thật quan trọng: RAM cần điện để nhớ. Mất điện hay tắt máy là toàn bộ nội dung RAM biến mất - gọi là bay hơi (volatile). Muốn giữ lâu dài, dữ liệu phải được chép xuống ổ đĩa (SSD/HDD) - nơi không cần điện vẫn giữ được. Đó chính là ý nghĩa của nút “Lưu”.

Vì sao mất điện là mất việc chưa lưu

Tài liệu bạn đang gõ nằm trong RAM. Chưa bấm “Lưu” nghĩa là nó chưa được chép xuống ổ đĩa - mất điện đột ngột thì RAM trắng trơn, không cách nào lấy lại.

Không có loại nhớ nào vừa nhanh, vừa to, vừa rẻ. Nên máy tính xếp nhiều lớp thành phân cấp bộ nhớ: lớp trên cùng cực nhanh nhưng tí xíu và đắt, càng xuống dưới càng chậm nhưng to và rẻ.

Thanh ghiCacheRAMỔ đĩa / SSDnhanhchậmnhỏ, đắtto, rẻ
Kim tự tháp bộ nhớ: trên cùng nhanh-nhỏ-đắt (thanh ghi), xuống dần chậm-to-rẻ (ổ đĩa).
LớpTốc độDung lượngVí dụ
Thanh ghi (registers)Nhanh nhấtVài chục byteA, B, PC trong CPU
Cache (L1/L2/L3)Rất nhanhKB → vài chục MBĐệm cho RAM
RAMNhanhVài GBChương trình đang chạy
Ổ đĩa (SSD/HDD)ChậmHàng trăm GB → TBLưu trữ lâu dài

Ý tưởng cốt lõi

CPU nhanh hơn RAM rất nhiều lần. Nếu mỗi lần tính đều phải chờ RAM thì CPU “ngồi không” phần lớn thời gian. Cache là lớp đệm tốc độ cao nằm giữa, giữ sẵn dữ liệu hay dùng để CPU khỏi phải chờ.

Cache nhỏ, không chứa hết được RAM - vậy nó giữ cái gì? Câu trả lời nằm ở tính cục bộ (locality) của chương trình thật:

  • Cục bộ thời gian (temporal): vừa dùng một ô thì sắp tới hay dùng lại nó (vd biến đếm vòng lặp).
  • Cục bộ không gian (spatial): vừa dùng một ô thì sắp tới hay dùng ô bên cạnh (vd duyệt mảng).
  • Nên cache nạp cả một “khối” ô lân cận, và giữ lại những khối vừa dùng.

Bấm các ô để CPU truy cập. Bấm gần nhau / lặp lại sẽ thấy nhiều HIT; nhảy lung tung vượt sức chứa cache sẽ thấy nhiều MISS:

Cache giữ được: (mỗi khối = 4 ô)

Bộ nhớ (16 ô) - bấm một ô để CPU truy cập:

ô có khối đang nằm trong cache → bấm vào sẽ HIT.

Cache đang giữ khối: (trống)

Hit: 0/0 · Tỉ lệ trúng: 0%

Truy cập gần nhau / lặp lại → nhiều HIT (đó là tính cục bộ). Còn nhảy lung tung vượt sức chứa cache → nhiều MISS.

Khép lại chuỗi bài phần cứng

Vậy là đủ mảnh ghép: xung nhịp giữ nhịp, cổng logic tính, nhị phân là ngôn ngữ, bộ nhớ lưu lệnh và dữ liệu. Bài tiếp theo - Mô hình CPU 8-bit - ráp tất cả lại và cho bạn chạy một chương trình thật trên 16 ô nhớ này.

Câu hỏi thường gặp

RAM nhanh hơn rất nhiều và là nơi giữ những gì đang chạy, nhưng “bay hơi” - mất điện là mất sạch. Ổ cứng chậm hơn nhưng giữ dữ liệu lâu dài, kể cả khi tắt máy. Vì vậy ta “lưu” (save) để chép từ RAM xuống ổ cứng.

Vì càng nhanh thì càng đắt và càng nhỏ. Cache cực nhanh nhưng chỉ vài MB và rất tốn tiền/diện tích chip; ổ đĩa rẻ và to nhưng chậm. Phân cấp bộ nhớ là cách cân bằng: phần lớn dữ liệu nằm ở lớp rẻ-chậm, phần đang dùng được kéo lên lớp nhanh.

Nghĩa là RAM chứa được khoảng 8 tỉ byte cùng lúc - tức số chương trình/dữ liệu có thể “đang mở” song song. Hết RAM, máy phải mượn tạm ổ đĩa (chậm hơn nhiều) nên ì ạch.

Không. Cache do phần cứng tự động quản lý - nó đoán theo “tính cục bộ” để giữ sẵn dữ liệu hay dùng. Khác với RAM: chương trình chủ động đọc/ghi RAM theo địa chỉ, còn cache làm việc âm thầm phía sau.

Vì việc bạn đang làm nằm trong RAM, mà RAM cần điện để giữ trạng thái (bay hơi). Khi bạn bấm “Lưu”, dữ liệu mới được chép xuống ổ đĩa - nơi không cần điện vẫn giữ được.

ROM (Read-Only Memory) là bộ nhớ chỉ đọc, không bay hơi - giữ phần mềm khởi động (firmware) để máy biết cách “tỉnh dậy” khi bật nguồn. Nó luôn ở đó kể cả khi mất điện.

Tick những điều em tự tin làm được. Càng lên cao, em càng hiểu sâu.

Tick những điều em tự tin làm được sau khi học bài này. 0/6

Trả lời vài câu để chắc rằng em đã nắm bài.

Câu 1/3 Điểm: 0

Vì sao RAM được gọi là “bộ nhớ truy cập ngẫu nhiên” (Random Access Memory)?

  1. 1

    Bao nhiêu bit địa chỉ?

    Cần bao nhiêu bit địa chỉ để đánh số: 16 ô? 64 ô? 1024 ô?

    Hoàn thành khi: 16 = 2⁴ → 4 bit; 64 = 2⁶ → 6 bit; 1024 = 2¹⁰ → 10 bit.

  2. 2

    Đọc & ghi

    Dùng công cụ ở Bước 1: ghi số 7 vào ô địa chỉ 10, rồi đọc lại ô đó.

    Hoàn thành khi: Ô 1010 (= 10) giữ giá trị 7 sau khi ghi.

  3. 3

    Tỉ lệ trúng cache

    Dùng công cụ ở Bước 6, đặt cache 2 khối, chạy mẫu “Tuần tự 0→15”. Tỉ lệ trúng là bao nhiêu, vì sao?

    Hoàn thành khi: 12 HIT / 16 = 75%. Mỗi khối 4 ô: ô đầu MISS (nạp khối), 3 ô sau HIT (tính cục bộ không gian).

  4. 4

    Hai kiểu cục bộ

    Trong vòng lặp cộng dồn một mảng, hãy chỉ ra một ví dụ cục bộ THỜI GIAN (temporal) và một ví dụ cục bộ KHÔNG GIAN (spatial).

    Hoàn thành khi: Temporal: biến tổng được đọc/ghi lại liên tục. Spatial: các phần tử mảng nằm cạnh nhau được duyệt lần lượt.

  5. 5

    Xếp theo tốc độ

    Xếp các loại bộ nhớ sau theo tốc độ giảm dần: RAM, thanh ghi, SSD, cache.

    Hoàn thành khi: Thanh ghi → cache → RAM → SSD.

  6. 6

    Vì sao phải “lưu”?

    Giải thích bằng lời vì sao mất điện đột ngột làm mất tài liệu chưa lưu, dù máy có “8 GB RAM”.

    Hoàn thành khi: Tài liệu đang nằm trong RAM (bay hơi). Dung lượng RAM lớn không giúp gì - chỉ khi chép xuống ổ đĩa (lưu) mới giữ được khi mất điện.