Tổng quan về giáo trình

Tài liệu bài giảng "Chương 3 Bộ Nhớ: Tổng quan RAM, ROM, Cache & Bộ nhớ ngoài" thuộc học phần Kiến trúc Máy tính (Computer Architecture) và Kỹ thuật Máy tính, được giảng dạy tại các chương trình đào tạo bậc đại học khối ngành Công nghệ Thông tin, Khoa học Máy tính và Kỹ thuật Phần mềm. Vị trí của học phần này nằm ở giai đoạn cơ sở ngành cốt lõi, đóng vai trò cầu nối trung gian giữa kiến thức điện tử số, mạch logic cơ bản với các học phần phần mềm hệ thống như Hệ điều hành, Hợp ngữ và Trình biên dịch.

Mục tiêu học tập của tài liệu tập trung vào việc cung cấp kiến thức toàn diện về nguyên lý tổ chức, phân cấp và quản lý hệ thống nhớ trong máy tính. Sinh viên sau khi học xong có khả năng:

  1. Phân loại các cấp bậc bộ nhớ dựa trên vị trí vật lý, dung lượng, đơn vị truyền và phương thức truy xuất dữ liệu.
  2. Nắm vững cấu trúc, nguyên lý lưu trữ và phân biệt các loại bộ nhớ bán dẫn như ROM (ROM, PROM, EPROM), RAM (SRAM, DRAM và các biến thể SDRAM, DDR-SDRAM, RDRAM).
  3. Thực hiện thiết kế ghép nối vi mạch nhớ bán dẫn để mở rộng độ dài từ nhớ hoặc số lượng từ nhớ bằng các cổng logic và bộ giải mã địa chỉ.
  4. Hiểu rõ nguyên lý hoạt động của bộ nhớ đệm (cache), thực hiện tính toán phân bổ các trường địa chỉ (Tag, Line/Set, Byte) trong các kỹ thuật ánh xạ (Direct, Fully Associative, Set Associative) và nắm bắt các giải thuật thay thế, chính sách ghi dữ liệu.
  5. Phân tích cấu trúc vật lý của bộ nhớ ngoài (đĩa từ, đĩa mềm, đĩa cứng) và các cấu hình mảng đĩa dự phòng RAID (từ RAID 0 đến RAID 3).

Cách tiếp cận của bài giảng đi từ lý thuyết tổng quan về phân cấp hệ thống nhớ, tiến tới phân tích cấu trúc phần cứng của từng tầng nhớ cụ thể, và kết thúc bằng các bài toán thiết kế kỹ thuật cùng ví dụ thực tế trên các vi xử lý của Intel.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Nội dung tài liệu được chia thành 4 chủ đề kỹ thuật nối tiếp nhau theo tiến trình phân cấp nhớ từ trong ra ngoài:

  1. Tổng quan về hệ thống nhớ:

    • Vị trí và phân cấp: Tập thanh ghi (Registers) bên trong CPU, bộ nhớ trong (bộ nhớ chính, bộ nhớ cache) và bộ nhớ ngoài (ổ đĩa quang, ổ đĩa từ).
    • Đơn vị đo lường và truyền tải: Dung lượng tính theo từ nhớ (word 16 bit, 32 bit) hoặc byte; đơn vị truyền là word hoặc block.
    • Phương pháp truy xuất:
      • Truy xuất tuần tự (Sequential access - Băng từ): Đọc tuần tự từ vị trí đầu tiên, thời gian truy cập phụ thuộc vào vị trí dữ liệu cần đọc và vị trí trước đó.
      • Truy xuất trực tiếp (Direct access - Ổ đĩa): Khối dữ liệu có địa chỉ riêng, truy xuất bằng cách nhảy đến vùng kế cận kết hợp tìm kiếm tuần tự/chờ quay đĩa, thời gian truy cập phụ thuộc vị trí đích và vị trí trước đó.
      • Truy xuất ngẫu nhiên (Random access - Bộ nhớ bán dẫn/RAM): Mỗi ô nhớ có địa chỉ riêng, thời gian truy cập độc lập với vị trí cần truy xuất.
      • Truy xuất liên kết (Associative access - Cache): Định vị bằng cách so sánh nội dung một phần dữ liệu, thời gian truy cập độc lập với vị trí.
    • Chỉ số hiệu năng: Thời gian truy cập ($T_A$), chu kỳ nhớ ($T_{\text{Chu kỳ}}$). Tốc độ truyền ngẫu nhiên tính bằng $1/T_{\text{Chu kỳ}}$; tốc độ truyền không ngẫu nhiên tính theo công thức: $$T_N = T_A + \frac{N}{R}$$ Trong đó $T_N$ là thời gian trung bình để đọc/ghi $N$ bit, $T_A$ là thời gian truy cập trung bình, $N$ là số bit và $R$ là tốc độ truyền dữ liệu (bit/giây - bps).
    • Đặc tính vật lý: Phân biệt khả biến/không khả biến (volatile/nonvolatile), xóa được/không xóa được.
  2. Bộ nhớ ROM và RAM:

    • Bộ nhớ chính: Chứa chương trình và dữ liệu đang thực thi, CPU đánh địa chỉ trực tiếp, dung lượng vật lý nhỏ hơn không gian địa chỉ CPU quản lý.
    • ROM (Read Only Memory): Bộ nhớ chỉ đọc lưu trữ BIOS, vi chương trình và thư viện hàm con. Phân loại gồm ROM (ghi cứng khi sản xuất), PROM (ghi 1 lần bằng thiết bị chuyên dụng), EPROM (xóa bằng tia cực tím, ghi lại nhiều lần).
    • RAM (Random Access Memory):
      • SRAM (Static RAM): Lưu trữ bằng Flip-Flop, cấu trúc phức tạp, tốc độ 6–8 ns, đắt tiền, dùng làm cache.
      • DRAM (Dynamic RAM): Lưu trữ bằng tụ điện, cần mạch làm tươi (refresh), cấu trúc đơn giản, dung lượng lớn, tốc độ 60–80 ns, dùng làm bộ nhớ chính.
      • Các dòng DRAM tiên tiến: Enhanced DRAM (tích hợp SRAM nhỏ), Cache DRAM (1 Mb DRAM + 8 KB SRAM), SDRAM (đồng bộ xung nhịp CPU), DDR-SDRAM (nhân đôi tốc độ, 184 chân), RDRAM (kiến trúc 2 kênh riêng biệt, tốc độ truyền 3.2 GB/s).
    • Tổ chức chip nhớ và thiết kế mô-đun: Chip nhớ có $n$ đường địa chỉ ($A_{n-1} \div A_0$) quản lý $2^n$ từ nhớ, $m$ đường dữ liệu ($D_{m-1} \div D_0$) cho từ nhớ $m$ bit, chân điều khiển $\overline{\text{CS}}$ (Chip Select), $\overline{\text{OE}}$ (Output Enable), $\overline{\text{WE}}$ (Write Enable) tích cực mức 0. Thiết kế mở rộng dung lượng qua ghép song song tăng độ dài từ nhớ (ví dụ ghép 2 chip 4K $\times$ 4 bit thành mô-đun 4K $\times$ 8 bit) hoặc dùng bộ giải mã địa chỉ tăng số lượng từ nhớ (ghép 2 chip 4K $\times$ 8 bit thành mô-đun 8K $\times$ 8 bit với 13 chân địa chỉ) và thiết kế đan xen băng nhớ (interleaved memory 2, 4, 8 băng).
  3. Bộ nhớ Cache:

    • Nguyên tắc hoạt động: Cache đặt giữa CPU và bộ nhớ chính để giảm độ lệch tốc độ. Khi CPU yêu cầu dữ liệu: nếu có trong cache (hit) thì lấy trực tiếp; nếu không có (miss) thì đọc một block nhớ từ bộ nhớ chính vào cache rồi mới chuyển vào CPU.
    • Kỹ thuật ánh xạ địa chỉ:
      • Ánh xạ trực tiếp (Direct mapping): Block $j$ của bộ nhớ chính nạp cố định vào Line $j \pmod m$ của cache. Địa chỉ CPU $N$ bit chia thành: Byte ($n_1$ bit xác định byte trong line, kích thước $2^{n_1}$), Line ($n_2$ bit xác định vị trí line trong cache, số line $= 2^{n_2}$), Tag ($n_3 = N - n_1 - n_2$ bit).
      • Ánh xạ liên kết toàn phần (Fully Associative mapping): Block nạp vào line bất kỳ trong cache; địa chỉ gồm 2 trường Tag và Byte; yêu cầu mạch so sánh song song tất cả các thẻ Tag.
      • Ánh xạ liên kết tập hợp (Set Associative mapping): Cache chia thành các Set (mỗi Set chứa 2, 4, 8 hoặc 16 line). Block nạp vào một line bất kỳ thuộc Set tương ứng. Địa chỉ chia thành 3 trường: Tag, Set, Byte.
    • Giải thuật thay thế block: Random (ngẫu nhiên), FIFO (vào trước ra trước), LFU (ít sử dụng nhất theo tần suất), LRU (lâu nhất chưa được truy cập - tối ưu nhất).
    • Phương pháp ghi dữ liệu: Write-through (ghi đồng thời cache và bộ nhớ chính, tốc độ chậm) và Write-back (chỉ ghi vào cache, ghi trả về bộ nhớ chính khi block bị thay thế, tốc độ nhanh).
    • Kiến trúc thực tế trên vi xử lý Intel: Intel 80386 (không có cache trên chip), 80486 (8 KB cache), Pentium (2 cache L1 tách biệt gồm 8 KB lệnh và 8 KB dữ liệu), Pentium 4 (L1 gồm 2 khối 8 KB với line 64 byte; L2 từ 256 KB đến 2 MB với line 128 byte).
  4. Bộ nhớ ngoài:

    • Cấu trúc vật lý đĩa từ: Đĩa quay (tốc độ phổ biến 5400 rpm, 7200 rpm), gồm các mặt (head), các đường tròn đồng tâm (track), tập hợp track cùng bán kính trên các mặt (cylinder), và các cung tròn (sector). Mỗi sector chứa 4096 điểm từ (tương đương 512 byte) và là đơn vị đọc/ghi tối thiểu. Phân biệt đĩa mềm (kích thước 8", 5.5", 3.5" dung lượng 1.44 MB, tốc độ 360 rpm) và đĩa cứng.
    • Hệ thống RAID (Redundant Array of Independent Disks):
      • RAID 0: Phân mảnh dữ liệu (Striping), không có tính năng dự phòng, tăng tốc độ truy xuất nhưng rủi ro mất dữ liệu cao.
      • RAID 1: Ghi bản sao song song (Mirroring), an toàn dữ liệu, khôi phục dễ dàng, không tăng tốc độ ghi.
      • RAID 2: Đồng bộ đĩa, phân chia mức byte/word, sử dụng mã sửa lỗi Hamming trên nhiều đĩa parity chuyên dụng (chi phí cao, ít sử dụng).
      • RAID 3: Tương tự RAID 2 nhưng gom thông tin sửa lỗi vào 1 đĩa parity duy nhất, tốc độ truy xuất cao và cho phép tái tạo dữ liệu khi một đĩa bị hỏng.
       [ CẤU TRÚC PHÂN CẤP HỆ THỐNG BỘ NHỚ ]
       
               / \
              /   \         Registers (CPU)
             / L1  \        Tốc độ: Rất nhanh | Dung lượng: Rất nhỏ | Chi phí: Rất cao
            /  L2   \       Cache (SRAM on-chip)
           /---------\
          /           \     Bộ nhớ chính (DRAM: SDRAM, DDR, RDRAM)
         /   RAM/ROM   \    Tốc độ: Trung bình | Dung lượng: Vừa | Chi phí: Vừa
        /---------------\
       /                 \  Bộ nhớ ngoài (HDD, RAID, Băng từ, Quang)
      /    Secondary      \ Tốc độ: Chậm | Dung lượng: Rất lớn | Chi phí: Thấp
     /_____________________\

Kiến thức nền tảng được xây dựng

Tài liệu thiết lập hệ thống lý thuyết cốt lõi phục vụ ngành kỹ thuật phần cứng và khoa học máy tính:

  • Mô hình cân bằng chi phí - hiệu năng: Giải quyết mâu thuẫn giữa tốc độ truy xuất của bộ xử lý và dung lượng lưu trữ thông qua kiến trúc phân cấp nhớ nhiều tầng.
  • Nguyên lý ánh xạ không gian địa chỉ: Cơ chế phân rã địa chỉ nhị phân do CPU phát ra thành các trường dữ liệu chức năng nhằm định vị dữ liệu trong cache và bộ nhớ chính.
  • Lý thuyết lưu trữ bán dẫn và từ tính: Nguyên lý chuyển mạch trạng thái của transistor, flip-flop và tụ điện trong vi mạch bán dẫn, cũng như hiện tượng từ hóa trên bề mặt đĩa kim loại.

Kỹ năng phát triển

  • Kỹ năng tính toán kỹ thuật: Tính toán kích thước các trường bit Tag, Line/Set, Byte khi biết dung lượng bộ nhớ chính, dung lượng cache và kích thước line. Tính toán thời gian truy xuất trung bình dựa trên xác suất trúng (hit rate) và thời gian chu kỳ.
  • Kỹ năng thiết kế phần cứng: Thiết kế sơ đồ giải mã địa chỉ, kết nối các đường bus dữ liệu, bus địa chỉ và chân điều khiển ($\overline{\text{CS}}, \overline{\text{OE}}, \overline{\text{WE}}$) để ghép nối các chip nhớ SRAM/DRAM thành mô-đun nhớ có dung lượng lớn hơn.
  • Kỹ năng phân tích hệ thống: Đánh giá và lựa chọn cấu hình RAID, phương pháp ghi cache (Write-through vs Write-back) và giải thuật thay thế (LRU, FIFO, LFU) phù hợp với từng bài toán kỹ thuật.

Phương pháp giảng dạy và học tập

Tài liệu sử dụng phương pháp giảng dạy diễn dịch kết hợp mô hình hóa kỹ thuật. Nội dung khởi đầu bằng các định nghĩa quy chuẩn, tiếp nối bằng sơ đồ khối logic vi mạch, sau đó đưa vào các công thức định lượng và bài toán thiết kế mẫu.

Bài tập và ví dụ mẫu tiêu biểu

Bài giảng cung cấp các dạng bài tập định lượng chuẩn hóa:

  1. Bài toán phân bổ trường địa chỉ Cache:
    • Dữ liệu giả định: Hệ thống có bộ nhớ chính $256\text{ MB}$ ($2^{28}\text{ Byte} \rightarrow N = 28\text{ bit}$), Cache $128\text{ KB}$, Line $16\text{ Byte}$ ($2^4\text{ Byte} \rightarrow n_1 = 4\text{ bit}$).
    • Trường hợp Ánh xạ trực tiếp: Số Line trong cache $= \frac{128 \times 2^{10}}{16} = 2^{13} \rightarrow n_2 = 13\text{ bit}$. Trường Tag $= 28 - (4 + 13) = 11\text{ bit}$.
    • Trường hợp Ánh xạ liên kết tập hợp 4 Line/Set: Số Set $= \frac{2^{13}}{4} = 2^{11} \rightarrow \text{Trường Set } n_2 = 11\text{ bit}$. Trường Tag $= 28 - (4 + 11) = 13\text{ bit}$.
  2. Bài toán thiết kế mô-đun nhớ bán dẫn:
    • Thiết kế mô-đun nhớ $4\text{K} \times 8\text{ bit}$ từ các chip nhớ SRAM $4\text{K} \times 4\text{ bit}$ (ghép song song dữ liệu, chung 12 đường địa chỉ).
    • Thiết kế mô-đun nhớ $8\text{K} \times 8\text{ bit}$ từ các chip nhớ SRAM $4\text{K} \times 8\text{ bit}$ (sử dụng 13 đường địa chỉ, đường $A_{12}$ kết hợp bộ giải mã để điều khiển chân chọn chip $\overline{\text{CS}}$).

Phương pháp đánh giá và tự học

  • Phương pháp đánh giá: Kiểm tra thông qua các bài tập tính toán phân rã địa chỉ, bài tập vẽ sơ đồ kết nối chân vi mạch bộ nhớ và các câu hỏi phân tích cơ chế hoạt động của các mức RAID.
  • Hướng dẫn tự học: Người học cần vẽ lại sơ đồ mạch logic, tự triển khai các phép chia modulo trong ánh xạ cache trực tiếp và luyện tập phân tích các trường hợp hit/miss của từng thuật giải thay thế block.

Điểm nổi bật và dữ liệu thực tế

Nội dung bài giảng tích hợp các số liệu kỹ thuật và ví dụ kiến trúc phần cứng thực tế từ các thế hệ vi xử lý và chuẩn công nghiệp:

  • Khảo sát dòng vi xử lý Intel:
    • Vi xử lý 80386: Chưa tích hợp bộ nhớ cache trên chip CPU.
    • Vi xử lý 80486: Bổ sung $8\text{ KB}$ cache trên chip.
    • Vi xử lý Pentium: Tách biệt $2$ khối cache L1 độc lập gồm $8\text{ KB}$ cho lệnh và $8\text{ KB}$ cho dữ liệu.
    • Vi xử lý Pentium 4: Tích hợp 2 mức cache trên chip; Cache L1 gồm 2 khối $8\text{ KB}$ (kích thước line $64\text{ byte}$), Cache L2 dung lượng từ $256\text{ KB}$ đến $2\text{ MB}$ (kích thước line $128\text{ byte}$).
Thông số / Thế hệ Intel 80386 Intel 80486 Intel Pentium Intel Pentium 4
Cache L1 trên chip Không có 8 KB (dùng chung) 16 KB (8 KB Lệnh + 8 KB Dữ liệu) 16 KB (2 $\times$ 8 KB, Line 64B)
Cache L2 trên chip Không có Không có Không tích hợp trên chip 256 KB – 2 MB (Line 128B)
Đặc điểm kiến trúc Không cache on-chip Bắt đầu tích hợp cache Tách riêng cache lệnh/dữ liệu Kiến trúc phân cấp 2 mức on-chip
  • Thông số kỹ thuật bộ nhớ bán dẫn:
    • So sánh tốc độ: SRAM đạt thời gian truy xuất $6–8\text{ ns}$, trong khi DRAM có thời gian truy xuất $60–80\text{ ns}$.
    • Chuẩn DRAM tốc độ cao: DDR-SDRAM sử dụng chân cắm 184-pin tăng gấp đôi tốc độ SDRAM; RDRAM sử dụng kiến trúc kênh đôi (Dual Channel) đạt băng thông truyền dữ liệu $3.2\text{ GB/s}$.
  • Thông số kỹ thuật thiết bị lưu trữ ngoài:
    • Đĩa mềm: Chuẩn 8", 5.5", 3.5" (dung lượng $1.44\text{ MB}$, tốc độ quay $360\text{ rpm}$).
    • Đĩa cứng: Tốc độ quay chuẩn $5400\text{ rpm}$ và $7200\text{ rpm}$, cấu trúc cung từ tiêu chuẩn $512\text{ byte/sector}$.

Đối tượng sử dụng giáo trình

Tài liệu bài giảng được thiết kế cho các nhóm đối tượng sau:

  1. Sinh viên đại học: Sinh viên năm thứ 2 hoặc năm thứ 3 thuộc các ngành Kỹ thuật Máy tính, Khoa học Máy tính, Công nghệ Thông tin, Kỹ thuật Điện tử - Viễn thông.
  2. Yêu cầu kiến thức tiên quyết (Prerequisites):
    • Kiến thức Toán rời rạc và Hệ thống số nhị phân (hệ nhị phân, thập lục phân, lũy thừa cơ số 2).
    • Kiến thức môn Kỹ thuật số hoặc Mạch logic (nguyên lý cổng logic cơ bản, mạch Flip-Flop, bộ giải mã Decoder).
    • Kiến thức tổng quan về cấu trúc máy tính cơ bản (chức năng bus địa chỉ, bus dữ liệu và chu kỳ xung nhịp CPU).
  3. Giảng viên: Sử dụng làm đề cương bài giảng lý thuyết, ngân hàng câu hỏi bài tập thiết kế mạch nhớ và đề bài kiểm tra đánh giá giữa kỳ.
  4. Kỹ sư và người tự học: Kỹ sư phần mềm nhúng, kỹ sư phát triển phần mềm hệ thống hoặc chuyên viên phần cứng cần củng cố hiểu biết về tổ chức bộ nhớ đệm, tối ưu hóa truy cập dữ liệu và thiết lập mảng lưu trữ RAID.

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

1. Giáo trình này phù hợp với ai?

Tài liệu được xây dựng cho sinh viên đại học chuyên ngành Công nghệ Thông tin, Kỹ thuật Máy tính và các kỹ sư phần cứng/phần mềm muốn nghiên cứu nguyên lý tổ chức các tầng bộ nhớ trong máy tính.

2. Cần kiến thức nền nào để học?

Người học cần nắm vững kiến thức về hệ số nhị phân, đại số Boole, các phần tử mạch logic cơ bản (cổng logic, Flip-Flop, bộ giải mã) và hiểu biết cơ bản về vai trò của vi xử lý (CPU) và các đường bus hệ thống.

3. Điểm khác biệt với giáo trình khác?

Tài liệu kết hợp chặt chẽ giữa lý thuyết định tính và bài toán thiết kế định lượng; cung cấp các bước giải chi tiết cho bài toán phân rã trường địa chỉ cache và thiết kế ghép nối vi mạch nhớ bằng sơ đồ chân thực tế ($\overline{\text{CS}}, \overline{\text{OE}}, \overline{\text{WE}}$).

4. Làm sao để tự học hiệu quả?

Người học nên phân chia học phần theo 4 khối kiến thức: Tổng quan $\rightarrow$ ROM/RAM $\rightarrow$ Cache $\rightarrow$ Bộ nhớ ngoài. Cần tự giải lại các ví dụ mẫu phân bổ bit địa chỉ và thực hành vẽ sơ đồ ghép nối chip nhớ.

5. Có tài liệu bổ trợ nào kèm theo?

Nội dung bài giảng gắn liền với các ví dụ thực tế trên kiến trúc vi xử lý Intel (80386, 80486, Pentium, Pentium 4) và các chuẩn giao tiếp phần cứng (DDR-SDRAM, RDRAM, cấu hình mảng đĩa RAID).


Kết luận

Bài giảng "Chương 3 Bộ Nhớ: Tổng quan RAM, ROM, Cache & Bộ nhớ ngoài" hệ thống hóa toàn diện các kiến thức nền tảng về tổ chức hệ thống nhớ máy tính. Từ các nguyên lý phân cấp vật lý, đặc tính kỹ thuật của vi mạch bán dẫn SRAM, DRAM, ROM đến các giải thuật ánh xạ cache phức tạp và cấu hình mảng đĩa ngoài RAID, tài liệu cung cấp đầy đủ công cụ phân tích và thiết kế phần cứng cho sinh viên ngành kỹ thuật.

Lộ trình tiếp thu đề xuất bắt đầu từ việc nắm vững các khái niệm phân cấp và công thức tính hiệu năng, tiếp tục với kỹ thuật ghép nối chip nhớ bán dẫn, thực hành tính toán các trường địa chỉ cache và hoàn thiện bằng việc nghiên cứu cơ chế lưu trữ an toàn trên các hệ thống RAID.