Computer Architecture Chapter 5: Memory Hierarchy Dr. Phạm Quốc Cường Adapted from Computer Organization the Hardware/Software Interface – 5th Computer Engineering – CSE – HCMUT 1 Principle of Locality • Programs access a small proportion of their address space at any time • Temporal locality – Items accessed recently are likely to be accessed again soon – e., instructions in a loop, induction variables • Spatial locality – Items near those accessed recently are likely to be accessed soon – E., sequential instruction access, array data Chapter 5 — Memory Hierarchy 2 Taking Advantage of Locality • Memory hierarchy • Store everything on disk • Copy recently accessed (and nearby) items from disk to smaller DRAM memory – Main memory • Copy more recently accessed (and nearby) items from DRAM to smaller SRAM memory – Cache memory attached to CPU Chapter 5 — Memory Hierarchy 3 Memory Hierarchy Levels • Block (aka line): unit of copying – May be multiple words • If accessed data is present in upper level – Hit: access satisfied by upper level • Hit ratio: hits/accesses • If accessed data is absent – Miss: block copied from lower level • Time taken: miss penalty • Miss ratio: misses/accesses = 1 – hit ratio – Then accessed data supplied from upper level Chapter 5 — Memory Hierarchy 4 Memory Technology • Static RAM (SRAM) – 0.5ns, $2000 – $5000 per GB • Dynamic RAM (DRAM) – 50ns – 70ns, $20 – $75 per GB • Flash Memory – 5s – 50s, $0.75 - $1 per GB • Magnetic disk – 5ms – 20ms, $0.20 – $2 per GB • Ideal memory – Access time of SRAM – Capacity and cost/GB of disk Chapter 5 — Memory Hierarchy 5 Cache Memory • Cache memory – The level of the Mem. hierarchy closest to the CPU • Given accesses X1, …, Xn–1, Xn • How do we know if the data is present? • Where do we look? Chapter 5 — Memory Hierarchy 6 Direct Mapped Cache • Location determined by address • Direct mapped: only one choice – (Block address) modulo (#Blocks in cache) • #Blocks is a power of 2 • Use low-order address bits Chapter 5 — Memory Hierarchy 7 Tags and Valid Bits • How do we know which particular block is stored in a cache location? – Store block address as well as the data – Actually, only need the high-order bits – Called the tag • What if there is no data in a location? – Valid bit: 1 = present, 0 = not present – Initially 0 Chapter 5 — Memory Hierarchy 8 Cache Example • 8-blocks, 1 word/block, direct mapped • Initial state Index V Tag Data 000 N 001 N 010 N 011 N 100 N 101 N 110 N 111 N Chapter 5 — Memory Hierarchy 9 Cache Example Word addr Binary addr Hit/miss Cache block 22 10 110 Miss 110 Index V Tag Data 000 N 001 N 010 N 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Chapter 5 — Memory Hierarchy 10 Cache Example Word addr Binary addr Hit/miss Cache block 26 11 010 Miss 010 Index V Tag Data 000 N 001 N 010 Y 11 Mem[11010] 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Chapter 5 — Memory Hierarchy 11 Cache Example Word addr Binary addr Hit/miss Cache block 22 10 110 Hit 110 26 11 010 Hit 010 Index V Tag Data 000 N 001 N 010 Y 11 Mem[11010] 011 N 100 N 101 N 110 Y 10 Mem[10110] 111 N Chapter 5 — Memory Hierarchy 12 Cache Example Word addr Binary addr Hit/miss Cache block 16 10 000 Miss 000 3 00 011 Miss 011 16 10 000 Hit 000 Index V Tag Data 000 Y 10 Mem[10000] 001 N 010 Y 11 Mem[11010] 011 Y 00 Mem[00011] 100 N 101 N 110 Y 10 Mem[10110] 111 N Chapter 5 — Memory Hierarchy 13 Cache Example Word addr Binary addr Hit/miss Cache block 18 10 010 Miss 010 Index V Tag Data 000 Y 10 Mem[10000] 001 N 010 Y 10 Mem[10010] 011 Y 00 Mem[00011] 100 N 101 N 110 Y 10 Mem[10110] 111 N Chapter 5 — Memory Hierarchy 14 Address Subdivision Chapter 5 — Memory Hierarchy 15 Example: Larger Block Size • 64 blocks, 16 bytes/block – To what block number does address 1200 map? • Block address = 1200/16 = 75 • Block number = 75 modulo 64 = 11 31 10 9 4 3 0 Tag Index Offset 22 bits 6 bits 4 bits Chapter 5 — Memory Hierarchy 16 Block Size Considerations • Larger blocks should reduce miss rate – Due to spatial locality • But in a fixed-sized cache – Larger blocks fewer of them • More competition increased miss rate – Larger blocks pollution • Larger miss penalty – Can override benefit of reduced miss rate – Early restart and critical-word-first can help Chapter 5 — Memory Hierarchy 17 Cache Misses • On cache hit, CPU proceeds normally • On cache miss – Stall the CPU pipeline – Fetch block from next level of hierarchy – Instruction cache miss • Restart instruction fetch – Data cache miss • Complete data access Chapter 5 — Memory Hierarchy 18 Write-Through • On data-write hit, could just update the block in cache – But then cache and memory would be inconsistent • Write through: also update memory • But makes writes take longer – e., if base CPI = 1, 10% of instructions are stores, write to memory takes 100 cycles • Effective CPI = 1 + 0.1×100 = 11 • Solution: write buffer – Holds data waiting to be written to memory – CPU continues immediately • Only stalls on write if write buffer is already full Chapter 5 — Memory Hierarchy 19 Write-Back • Alternative: On data-write hit, just update the block in cache – Keep track of whether each block is dirty • When a dirty block is replaced – Write it back to memory – Can use a write buffer to allow replacing block to be read first Chapter 5 — Memory Hierarchy 20 Write Allocation • What should happen on a write miss? • Alternatives for write-through – Allocate on miss: fetch the block – Write around: don’t fetch the block • Since programs often write a whole block before reading it (e., initialization) • For write-back – Usually fetch the block Chapter 5 — Memory Hierarchy 21 Example: Intrinsity FastMATH • Embedded MIPS processor – 12-stage pipeline – Instruction and data access on each cycle • Split cache: separate I-cache and D-cache – Each 16KB: 256 blocks × 16 words/block – D-cache: write-through or write-back • SPEC2000 miss rates – I-cache: 0.2% Chapter 5 — Memory Hierarchy 22 Example: Intrinsity FastMATH Chapter 5 — Memory Hierarchy 23 Main Memory Supporting Caches • Use DRAMs for main memory – Fixed width (e., 1 word) – Connected by fixed-width clocked bus • Bus clock is typically slower than CPU clock • Example cache block read – 1 bus cycle for address transfer – 15 bus cycles per DRAM access – 1 bus cycle per data transfer • For 4-word block, 1-word-wide DRAM – Miss penalty = 1 + 4×15 + 4×1 = 65 bus cycles – Bandwidth = 16 bytes / 65 cycles = 0.25 B/cycle Chapter 5 — Memory Hierarchy 24 Increasing Memory Bandwidth • 4-word wide memory - Miss penalty = 1 + 15 + 1 = 17 bus cycles - Bandwidth = 16 bytes / 17 cycles = 0.94 B/cycle • 4-bank interleaved memory - Miss penalty = 1 + 15 + 4×1 = 20 bus cycles - Bandwidth = 16 bytes / 20 cycles = 0.8 B/cycle Chapter 5 — Memory Hierarchy 25 Measuring Cache Performance • Components of CPU time – Program execution cycles • Includes cache hit time – Memory stall cycles • Mainly from cache misses • With simplifying assumptions: Memory accesses Memory stall cycles Miss rate Miss penalty Program Instructions Misses Miss penalty Program Instruction Chapter 5 — Memory Hierarchy 26 Cache Performance Example • Given – I-cache miss rate = 2% – D-cache miss rate = 4% – Miss penalty = 100 cycles – Base CPI (ideal cache) = 2 – Load & stores are 36% of instructions • Miss cycles per instruction – I-cache: 0.44 – Ideal CPU is 5.72 times faster Chapter 5 — Memory Hierarchy 27 Average Access Time • Hit time is also important for performance • Average memory access time (AMAT) – AMAT = Hit time + Miss rate × Miss penalty • Example – CPU with 1ns clock, hit time = 1 cycle, miss penalty = 20 cycles, I-cache miss rate = 5% – AMAT = 1 + 0.05 × 20 = 2ns • 2 cycles per instruction Chapter 5 — Memory Hierarchy 28 Performance Summary • When CPU performance increased – Miss penalty becomes more significant • Decreasing base CPI – Greater proportion of time spent on memory stalls • Increasing clock rate – Memory stalls account for more CPU cycles • Can’t neglect cache behavior when evaluating system performance Chapter 5 — Memory Hierarchy 29 Associative Caches • Fully associative – Allow a given block to go in any cache entry – Requires all entries to be searched at once – Comparator per entry (expensive) • n-way set associative – Each set contains n entries – Block number determines which set • (Block number) modulo (#Sets in cache) – Search all entries in a given set at once – n comparators (less expensive) Chapter 5 — Memory Hierarchy 30 Associative Cache Example Chapter 5 — Memory Hierarchy 31 Spectrum of Associativity • For a cache with 8 entries Chapter 5 — Memory Hierarchy 32 Associativity Example • Compare 4-block caches – Direct mapped, 2-way set associative, fully associative – Block access sequence: 0, 8, 0, 6, 8 • Direct mapped Block Cache Hit/miss Cache content after access address index 0 1 2 3 0 0 miss Mem[0] 8 0 miss Mem[8] 0 0 miss Mem[0] 6 2 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] Chapter 5 — Memory Hierarchy 33 Associativity Example • 2-way set associative Block Cache Hit/miss Cache content after access address index Set 0 Set 1 0 0 miss Mem[0] 8 0 miss Mem[0] Mem[8] 0 0 hit Mem[0] Mem[8] 6 0 miss Mem[0] Mem[6] 8 0 miss Mem[8] Mem[6] • Fully associative Block Hit/miss Cache content after access address 0 miss Mem[0] 8 miss Mem[0] Mem[8] 0 hit Mem[0] Mem[8] 6 miss Mem[0] Mem[8] Mem[6] 8 hit Mem[0] Mem[8] Mem[6] Chapter 5 — Memory Hierarchy 34 How Much Associativity • Increased associativity decreases miss rate – But with diminishing returns • Simulation of a system with 64KB D-cache, 16-word blocks, SPEC2000 – 1-way: 10.
Tổng quan về giáo trình
Tài liệu bài giảng "Computer Architecture – Chapter 5: Memory Hierarchy" (Kiến trúc Máy tính – Chương 5: Hệ thống phân cấp bộ nhớ) được biên soạn bởi TS. Phạm Quốc Cường thuộc Bộ môn Kỹ thuật Máy tính, Khoa Khoa học và Kỹ thuật Máy tính, Trường Đại học Bách Khoa – ĐHQG-HCM (CSE – HCMUT). Nội dung bài giảng được chuyển thể và chuẩn hóa từ giáo trình quốc tế Computer Organization and Design: The Hardware/Software Interface (Tái bản lần thứ 5) của hai tác giả David A. Patterson và John L. Hennessy.
Trong chương trình đào tạo kỹ sư Kỹ thuật Máy tính và Khoa học Máy tính, môn học Kiến trúc Máy tính giữ vị trí trung tâm trong khối kiến trúc hệ thống phần cứng và giao tiếp phần mềm. Chương 5 tập trung xử lý vấn đề chênh lệch tốc độ giữa bộ xử lý trung tâm (CPU) và bộ nhớ chính thông qua mô hình phân tầng lưu trữ.
Mục tiêu học tập cốt lõi của giáo trình bao gồm:
- Giải thích cơ chế hoạt động của nguyên lý cục bộ (Principle of Locality) bao gồm tính cục bộ theo thời gian (temporal locality) và không gian (spatial locality).
- Phân tích các mô hình ánh xạ bộ nhớ đệm (Cache): trực tiếp (Direct Mapped), liên kết tập hợp (Set Associative), và liên kết toàn phần (Fully Associative).
- Đánh giá định lượng hiệu năng truy xuất thông qua các chỉ số: Thời gian truy xuất bộ nhớ trung bình (AMAT), chu kỳ trễ bộ nhớ (Memory stall cycles), và số chu kỳ trên mỗi lệnh (CPI).
- Khảo sát các chính sách ghi dữ liệu (Write-Through, Write-Back), giải thuật thay thế khối (LRU, Random), và kiến trúc bộ nhớ đệm đa cấp (L1, L2, L3).
- Ứng dụng kỹ thuật tối ưu hóa phần mềm (Loop Blocking/Tiling) và phân tích các độ đo độ tin cậy hệ thống (Dependability, mã Hamming SEC).
Tài liệu tiếp cận vấn đề theo phương pháp phân tích kỹ thuật định lượng kết hợp giữa thiết kế phần cứng và lập trình cấp thấp.
Nội dung kiến thức cốt lõi
Các chương/chủ đề chính
Nội dung bài giảng được cấu trúc thành các khối kiến thức tuần tự:
-
Nguyên lý cục bộ và Công nghệ bộ nhớ (Slides 1–5):
- Định nghĩa Temporal Locality (dữ liệu vừa truy xuất có xu hướng được tái truy xuất sớm, ví dụ: biến chạy trong vòng lặp) và Spatial Locality (dữ liệu nằm gần vị trí vừa truy xuất có xu hướng được truy xuất kế tiếp, ví dụ: mảng dữ liệu, dòng lệnh tuần tự).
- Bảng so sánh thông số công nghệ lưu trữ:
- SRAM: Tốc độ truy xuất 0.5ns; giá thành $2000 – $5000/GB.
- DRAM: Tốc độ truy xuất 50ns – 70ns; giá thành $20 – $75/GB.
- Flash Memory: Tốc độ truy xuất 5μs – 50μs; giá thành $0.75 – $1/GB.
- Magnetic Disk: Tốc độ truy xuất 5ms – 20ms; giá thành $0.20 – $2/GB.
-
Cơ chế Ánh xạ trực tiếp và Phân chia địa chỉ (Slides 6–16):
- Vị trí khối nhớ trong cache xác định theo công thức:
(Địa chỉ khối) modulo (Số khối trong cache). - Cấu trúc địa chỉ gồm 3 trường: Tag, Index, và Block Offset.
- Minh họa: Với hệ thống 64 khối, 16 bytes/khối; địa chỉ byte 1200 tương ứng với địa chỉ khối
1200 / 16 = 75, khối nhớ ánh xạ vào chỉ số75 modulo 64 = 11. Trường Tag gồm 22 bits, Index 6 bits, và Offset 4 bits cho không gian địa chỉ 32-bit. - Khảo sát chuỗi vết truy xuất (Memory trace) trên cache 8 khối (Word addresses: 22, 26, 22, 26, 16, 3, 16, 18) để minh họa hiện tượng Hit, Miss và việc thay thế khối dữ liệu.
- Vị trí khối nhớ trong cache xác định theo công thức:
-
Xử lý Cache Miss và Các chính sách ghi (Slides 17–23):
- Tác động khi xảy ra miss: CPU stall pipeline, nạp khối từ cấp dưới của hệ thống phân cấp.
- Chính sách ghi đồng thời (Write-Through): Cập nhật dữ liệu vào cả Cache và DRAM; sử dụng Write Buffer để giảm thiểu thời gian chờ của CPU.
- Chính sách ghi trả sau (Write-Back): Chỉ cập nhật tại Cache và sử dụng bit dơ (Dirty bit) để ghi dữ liệu về DRAM khi khối bị thay thế.
- Chính sách cấp phát khi ghi miss: Write Allocate (nạp khối vào cache) và Write Around (ghi thẳng vào bộ nhớ chính).
- Khảo sát kiến trúc vi xử lý nhúng Intrinsity FastMATH (MIPS pipeline 12 tầng, bộ nhớ đệm phân tách 16KB I-cache và 16KB D-cache, 256 khối × 16 words/khối, tỷ lệ miss I-cache SPEC2000 là 0.2%).
-
Băng thông bộ nhớ chính và Đo lường hiệu năng (Slides 24–29):
- Tổ chức DRAM và bus kết nối: So sánh cấu trúc DRAM 1-word chuẩn (Miss penalty = 65 cycles, Bandwidth = 0.25 B/cycle), DRAM độ rộng 4-word (Miss penalty = 17 cycles, Bandwidth = 0.94 B/cycle), và DRAM xen kẽ 4 ngân hàng (4-bank interleaved memory: Miss penalty = 20 cycles, Bandwidth = 0.8 B/cycle).
- Công thức tính toán chu kỳ trễ: $$\text{Memory stall cycles} = \frac{\text{Instructions}}{\text{Program}} \times \frac{\text{Misses}}{\text{Instruction}} \times \text{Miss penalty}$$
- Công thức Thời gian truy xuất bộ nhớ trung bình: $$\text{AMAT} = \text{Hit time} + (\text{Miss rate} \times \text{Miss penalty})$$
-
Bộ nhớ đệm liên kết và Phân cấp đa tầng (Slides 30–41):
- Phân loại: n-way Set Associative và Fully Associative; sử dụng mạch so sánh Tag đồng thời.
- Giải thuật thay thế khối: Least-Recently Used (LRU) và Random.
- Khảo sát hệ thống đa tầng L1, L2, L3: Phân tích cấu hình CPU 4GHz, base CPI = 1, miss rate L1 = 2%, bộ nhớ chính trễ 100ns (400 chu kỳ); bổ sung L2 cache trễ 5ns (20 chu kỳ) giúp giảm CPI hiệu dụng từ 9 xuống mức tối ưu.
-
Tương tác phần mềm và Độ tin cậy hệ thống (Slides 42–50):
- Tối ưu hóa vòng lặp phần mềm bằng kỹ thuật phân khối (Cache Blocked DGEMM) với hằng số
#define BLOCKSIZE 32trong phép nhân ma trận đa chiều. - Các chỉ số đo độ tin cậy (Dependability Measures): MTTF (Mean Time To Failure), MTTR (Mean Time To Repair), MTBF (Mean Time Between Failures = MTTF + MTTR), và Độ khả dụng: $$\text{Availability} = \frac{\text{MTTF}}{\text{MTTF} + \text{MTTR}}$$
- Kỹ thuật kiểm soát lỗi: Khoảng cách Hamming (Hamming Distance), mã phát hiện 1 bit lỗi (Distance = 2), mã tự sửa 1 bit lỗi và phát hiện 2 bit lỗi (Hamming SEC/DED, Distance = 3).
- Tối ưu hóa vòng lặp phần mềm bằng kỹ thuật phân khối (Cache Blocked DGEMM) với hằng số
+-------------------------------------------------------------------------+
| HỆ THỐNG PHÂN CẤP BỘ NHỚ (MEMORY HIERARCHY) |
+-------------------------------------------------------------------------+
| Cấp độ | Công nghệ | Tốc độ (Access Time) | Giá thành ($/GB) |
+---------------+------------+----------------------+---------------------+
| CPU Registers| Flip-Flops | < 0.5 ns | Rất cao |
| Cache (L1-L3)| SRAM | 0.5 ns - 5 ns | $2000 - $5000 / GB |
| Main Memory | DRAM | 50 ns - 70 ns | $20 - $75 / GB |
| Solid State | Flash | 5 μs - 50 μs | $0.75 - $1 / GB |
| Secondary | Mag Disk | 5 ms - 20 ms | $0.20 - $2 / GB |
+---------------+------------+----------------------+---------------------+
Kiến thức nền tảng được xây dựng
- Lý thuyết phân tầng lưu trữ (Storage Hierarchy Theory) và sự đánh đổi giữa dung lượng, tốc độ, giá thành.
- Đại số nhị phân và kỹ thuật phân chia trường địa chỉ logic (Tag, Index, Offset).
- Mô hình định lượng hiệu năng thực thi của bộ xử lý dựa trên chu kỳ lệnh (CPI) và độ trễ truy xuất.
- Lý thuyết mã hóa Hamming trong kiểm soát tính toàn vẹn dữ liệu phần cứng.
Kỹ năng phát triển
- Kỹ năng phân tích vết truy xuất bộ nhớ và tính toán tỷ lệ Hit/Miss của các cấu hình Cache khác nhau.
- Kỹ năng tính toán thiết kế phần cứng: định kích thước các trường địa chỉ, thiết kế Write Buffer, lựa chọn cấu hình bộ nhớ chính xen kẽ (Interleaved memory).
- Kỹ năng tái cấu trúc thuật toán và tối ưu hóa mã nguồn lập trình C/C++ nhằm tận dụng tối đa tính cục bộ của bộ nhớ đệm.
Phương pháp giảng dạy và học tập
Phương pháp tiếp cận sư phạm
Bài giảng áp dụng mô hình phân tích định lượng (Quantitative Approach). Thay vì chỉ mô tả sơ đồ khối, tài liệu dẫn dắt người học qua các bài toán tính toán cụ thể từ các thông số vật lý thực tế của linh kiện bán dẫn (SRAM, DRAM) đến các chỉ số hiệu năng tổng thể của hệ thống.
+-------------------------------------------------------+
| Truy xuất địa chỉ bộ nhớ từ CPU (Memory Access) |
+-------------------------------------------------------+
|
v
+-----------------------------+
| Dữ liệu có trong Cache? |
| (Check Tag & Valid Bit) |
+-----------------------------+
/ \
CÓ (Hit)/ \ KHÔNG (Miss)
/ \
v v
+-----------------------+ +-------------------------------+
| Trả dữ liệu về CPU | | Stall CPU Pipeline |
| (Hit Time: ~1 cycle) | | Nạp khối từ DRAM (Miss Penalty|
+-----------------------+ | Ghi vào Cache & cập nhật Tag |
+-------------------------------+
|
v
+-------------------------------+
| Tiếp tục luồng thực thi lệnh |
+-------------------------------+
Bài tập và Tình huống nghiên cứu (Case Studies)
- Bài toán vết truy xuất Cache (Slide 9–14): Thực hiện mô phỏng từng bước chuỗi địa chỉ thực tế (22, 26, 22, 26, 16, 3, 16, 18) trên bộ nhớ đệm 8 block trực tiếp để theo dõi sự thay đổi của các trường
Index,Valid bit,Tag, và dữ liệuMem[...]. - Nghiên cứu kiến trúc vi xử lý nhúng Intrinsity FastMATH (Slide 22–23): Phân tích thiết kế hệ thống nhúng MIPS 12 tầng pipeline, kiểm chứng tỷ lệ miss rate dựa trên tập chuẩn chuẩn hóa SPEC2000.
- Tình huống tính toán hệ thống nhớ đa tầng (Slide 39–40): Đặt ra kịch bản bộ xử lý 4GHz, phân tích định lượng sự thay đổi của CPI hiệu dụng khi có và không có L2 cache kết nối với bộ nhớ chính có độ trễ 100ns.
Bài tập thực hành và Hướng dẫn tự học
- Thực hành lập trình thuật toán DGEMM (Slide 44–47): Người học phân tích đoạn mã nguồn C thực thi nhân ma trận chuẩn và phiên bản được chia khối (
do_blockvớiBLOCKSIZE 32) để quan sát sự suy giảm các thao tác truy xuất bộ nhớ trùng lặp. - Tự học và kiểm tra: Tính toán phân rã địa chỉ cho các kích thước khối khác nhau (16 bytes, 32 bytes, 64 bytes) và tự xây dựng bảng trạng thái của cache liên kết 2-way, 4-way với các vết truy xuất tự định nghĩa.
Điểm nổi bật và cập nhật
- Dữ liệu chuẩn hóa từ ấn bản 5th Edition: Kế thừa toàn bộ hệ thống số liệu, đồ thị mô phỏng và ví dụ chuẩn xác từ giáo trình của Patterson & Hennessy (Đại học UC Berkeley & Đại học Stanford).
- Phản ánh công nghệ bán dẫn thực tế: Cung cấp thông số vật lý cụ thể về thời gian trễ và giá thành trên gigabyte của từng công nghệ nhớ (SRAM, DRAM, Flash, Magnetic disk).
- Tích hợp kiến trúc vi xử lý nâng cao: Phân tích sự tương tác giữa bộ nhớ đệm với các bộ xử lý thực thi ngoài thứ tự (Out-of-order CPUs), cơ chế trạm bảo lưu (Reservation stations) và đơn vị nạp/lưu (Load/Store units).
- Liên kết chặt chẽ giữa phần cứng và phần mềm: Chỉ rõ tác động của thuật toán và trình biên dịch đối với hiệu năng phần cứng thông qua ví dụ tối ưu hóa nhân ma trận thực tế.
- Hệ thống hóa độ tin cậy: Không chỉ dừng lại ở hiệu năng, bài giảng mở rộng sang khía cạnh an toàn phần cứng thông qua lý thuyết độ tin cậy (MTTF, MTTR, Availability) và kỹ thuật sửa lỗi mã Hamming.
Đối tượng sử dụng giáo trình
+--------------------------------------------------------------------------+
| ĐỐI TƯỢNG SỬ DỤNG VÀ YÊU CẦU |
+--------------------------------------------------------------------------+
| Nhóm người dùng | Mục đích sử dụng | Yêu cầu tiên quyết (Prereq)|
+-----------------+---------------------------+----------------------------+
| Sinh viên ĐH | Học phần Kiến trúc máy | - Kỹ thuật lập trình (C/C++)|
| (Năm 2 - Năm 3) | tính, Hệ thống nhúng | - Kiến trúc tập lệnh (MIPS)|
| | | - Mạch logic số |
+-----------------+---------------------------+----------------------------+
| Giảng viên | Khung bài giảng chuẩn, | - Nắm vững giáo trình |
| | xây dựng bài tập số học | Patterson & Hennessy |
+-----------------+---------------------------+----------------------------+
| Kỹ sư phần cứng/| Thiết kế Cache vi mạch, | - Kiến trúc máy tính |
| Lập trình nhúng | tối ưu hóa mã nguồn thấp | - Cấu trúc dữ liệu nâng cao|
+--------------------------------------------------------------------------+
- Sinh viên đại học: Sinh viên năm thứ 2 và 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.
- Kiến thức tiên quyết (Prerequisites):
- Kiến thức về mạch logic số và hệ thống số nhị phân.
- Nguyên lý cơ bản về tổ chức máy tính, kiến trúc tập lệnh vi xử lý (như MIPS Assembly).
- Kỹ năng lập trình ngôn ngữ C/C++ căn bản.
- Giảng viên và Nghiên cứu viên: Sử dụng làm tài liệu khung để triển khai bài giảng lý thuyết, bài tập trên lớp và bài tập lớn môn Kiến trúc Máy tính.
- Kỹ sư hệ thống và Tự học: Tài liệu tham khảo cho các kỹ sư phát triển phần mềm hiệu năng cao (HPC), kỹ sư nhúng cần hiểu rõ luồng di chuyển dữ liệu để tối ưu hóa bộ nhớ đệm.
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 thiết kế trực tiếp cho sinh viên đại học ngành Kỹ thuật Máy tính và Khoa học Máy tính đang theo học học phần Kiến trúc Máy tính hoặc Tổ chức Máy tính nâng cao. Ngoài ra, tài liệu phù hợp cho các kỹ sư phát triển phần mềm nhúng và thiết kế phần cứng vi mạch muốn củng cố lý thuyết về phân cấp bộ nhớ.
2. Cần kiến thức nền nào để học?
Người học cần hoàn thành các môn học nền tảng về Nhập môn Mạch Logic (Digital Logic Design), Ngôn ngữ lập trình C/C++, và Kiến trúc tập lệnh vi xử lý cơ bản (đặc biệt là tập lệnh MIPS, các thao tác nạp/lưu bộ nhớ như lw, sw).
3. Điểm khác biệt với giáo trình khác?
Tài liệu của TS. Phạm Quốc Cường (CSE – HCMUT) bám sát cấu trúc chuẩn quốc tế từ giáo trình của Patterson & Hennessy (5th Edition), kết hợp việc diễn giải lý thuyết phần cứng bằng các công thức toán học định lượng rõ ràng, chuỗi vết truy xuất mẫu chi tiết và mã nguồn C cụ thể minh họa cho việc tối ưu hóa phần mềm.
4. Làm sao để tự học hiệu quả?
Người học nên kết hợp giải lại các bài tập vết truy xuất địa chỉ (Memory trace) trên giấy, tính toán các bảng phân chia địa chỉ (Tag/Index/Offset) và tự viết chương trình nhân ma trận C/C++ để đo lường sự chênh lệch thời gian thực thi giữa mã nguồn thông thường và mã nguồn áp dụng kỹ thuật phân khối (Blocked DGEMM).
5. Có tài liệu bổ trợ nào kèm theo?
Tài liệu được bổ trợ tốt nhất khi đọc kèm cuốn sách gốc Computer Organization and Design: The Hardware/Software Interface (5th Edition) của David A. Patterson và John L. Hennessy, kết hợp với các bộ công cụ mô phỏng kiến trúc máy tính và các tài liệu thực hành phòng thí nghiệm của Bộ môn Kỹ thuật Máy tính – CSE – HCMUT.
Kết luận
Bài giảng "Computer Architecture – Chapter 5: Memory Hierarchy" cung cấp một hệ thống kiến thức hoàn chỉnh, chuẩn xác và mang tính định lượng cao về cấu trúc phân cấp bộ nhớ trong máy tính hiện đại. Tài liệu giải quyết thấu đáo bài toán tối ưu hóa giữa tốc độ truy xuất, dung lượng và giá thành thông qua các cơ chế bộ nhớ đệm, kỹ thuật ánh xạ, chính sách quản lý dữ liệu và các độ đo tin cậy phần cứng. Lộ trình học tập hiệu quả bắt đầu từ việc nắm vững nguyên lý cục bộ, thực hành phân tích vết địa chỉ cache, tính toán hiệu năng AMAT/CPI và áp dụng kỹ thuật lập trình hệ thống tối ưu hóa dữ liệu.