Bài giảng Kiến trúc máy tính - Chương 5: Bộ nhớ máy tính
Công nghệ và thuật ngữ liên quan đến bộ nhớ
Tổ chức / thiết kế bộ nhớ
Sự cần thiết phải có bộ nhớ đệm
Phân loại bộ nhớ đệm
Đánh giá hiệu năng của bộ nhớ đệm
Tổ chức / thiết kế bộ nhớ
Sự cần thiết phải có bộ nhớ đệm
Phân loại bộ nhớ đệm
Đánh giá hiệu năng của bộ nhớ đệm
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 5: Bộ nhớ máy tính", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
- bai_giang_kien_truc_may_tinh_chuong_5_bo_nho_may_tinh.pdf
Nội dung text: Bài giảng Kiến trúc máy tính - Chương 5: Bộ nhớ máy tính
- dce 2017 Chapter 5 Bộ nhớ máy tính Computer Architecture – Chapter 5 ©Fall 2017, CS 2
- dce 2017 Máy tính PC Nhìn từ bên ngoài, bộ RAM CPU RAM xử lý kết nối với RAM và chip cầu bắc (quản lý các kết nối vào bus Card Chip cầu bắc tốc độ cao như card đồ đồ họa Khe cắm PCI họa, khe PCI), chip cầu bắc nối với chip cầu Chip nam (quản lý USB bus, cầu nam network, ổ cứng, ổ CD ) Computer Architecture – Chapter 5 ©Fall 2017, CS 4
- dce Hệ thống bộ nhớ phân cấp trong Pipline 2017 MIPS CPU Imm16 E Imm ALU result 32 0 32 1 I-Cache 2 A Rs 5 BusA D-Cache 0 RA 3 A L Address Instruction Rt 5 ALUout 32 RB BusB 0 U Address Data_out 1 1 WBData PC 1 Instruction RW B 0 Data_in Register File Register 2 BusW D 3 32 32 0 Rd2 Rd3 1 Rd4 Rd clk I-Cache miss hoặc D-Cache miss làm quá trình pipeline bị stall Cache miss Cache - Cache miss Cache - Block Address Block I InstructionBlock Address Block D DataBlock Interface to L2 Cache or Main Memory Computer Architecture – Chapter 5 ©Fall 2017, CS 6
- dce 2017 Chi tiết bộ thanh ghi Bộ thanh ghi MIPS gồm 32 thanh ghi 32 bit; RA, RB là 2 đầu vào yêu cầu truy xuất dữ liệu, dữ liệu được đưa ra BusA, BusB; để ghi dữ liệu cần chỉ ra nơi lưu RW, giá trị lưu BusW, yêu cầu ghi RegWrite và thời điểm ghi được đồng bộ với xung nhịp Clock Register 5 32 RA File BusA 5 RB 32 5 BusB RW Clock BusW 32 RegWrite Computer Architecture – Chapter 5 ©Fall 2017, CS 8
- dce 2017 Công nghệ bộ nhớ Static RAM (SRAM) dùng cho bộ nhớ đệm 1 bit nhớ cần 6 transistor Tốc độ truy xuất dữ liệu cao (~ 1ns) Cần ít năng lượng để duy trì giá trị lưu trữ Dynamic RAM (DRAM) dùng cho bộ nhớ chính 1 bit nhớ cần 1 transistor + 1 capacitor Tốc độ truy xuất dữ liệu thấp (~ 100ns) Cần phải ghi lại giá trị vào ô nhớ sau khi đọc Cần phải định kỳ “làm tươi” . Mỗi hàng có thể được làm tươi đồng thời Computer Architecture – Chapter 5 ©Fall 2017, CS 10
- dce 2017 Cấu tạo DRAM Computer Architecture – Chapter 5 ©Fall 2017, CS 12
- dce 2017 Chu kỳ làm tươi DRAM Chu kỳ làm tươi (refresh cycle) vào khoảng 10ms Việc làm tươi được thực hiện cho toàn bộ nhớ Mỗi hàng sẽ được đọc và ghi trở lại để phục hồi điện tích Băng thông bộ nhớ bị giảm bởi việc làm tươi Voltage 1 Written Refreshed Refreshed Refreshed for 1 Threshold voltage 0 Stored Refresh Cycle Voltage Time for 0 Computer Architecture – Chapter 5 ©Fall 2017, CS 14
- dce 2017 Ví dụ cấu trúc của DRAM Row decoder Lựa chọn hàng để đọc/ghi 2r × 2c × m bits Column decoder r . . . . . Cell Matrix Lựa chọn cột để đọc/ghi Row address Row Row Row Decoder Cell Matrix Mảng 2 chiều các phần tử nhớ Sense/write amplifiers m Data c Sense/Write amplifiers Row Latch 2 × m bits . . . Làm rõ mức 0/1 khi đọc/ghi Column Decoder Sử dụng chung đường dữ liệu vào/ra c Column address Computer Architecture – Chapter 5 ©Fall 2017, CS 16
- dce 2017 SDRAM và DDR SDRAM SDRAM: Synchronous Dynamic RAM Thêm tín hiệu clock vào DRAM SDRAM được đồng bộ với xung nhịp hệ thống DRAM với công nghệ cũ là loại bất đồng bộ Khi xung nhịp hệ thống tăng, SDRAM có hiệu năng cao hơn DRAM bất đồng bộ DDR: Double Data Rate SDRAM Giống với SDRAM, DDR đồng bộ với xung nhịp hệ thống, nhưng khác ở chỗ DDR độc dữ liệu tại cạnh lên và cạnh xuống của tín hiệu xung nhịp Computer Architecture – Chapter 5 ©Fall 2017, CS 18
- dce 2017 Nội dung trình bày Công nghệ và thuật ngữ liên quan đến bộ nhớ Tổ chức / thiết kế bộ nhớ Sự cần thiết phải có bộ nhớ đệm Phân loại bộ nhớ đệm Đánh giá hiệu năng của bộ nhớ đệm Computer Architecture – Chapter 5 ©Fall 2017, CS 20
- dce 2017 Tổ chức theo dung lượng A15 – A0 64K x 8 bit 64K x 8 bit 64K x 8 bit 2 4 64K x 8 bit A17 Giải mã A16 địa chỉ Tổng cộng có 256K x 8 bit D7 – D0 ©2010, Dr. Dinh Duc Anh Vu 22 Computer Architecture – Chapter 5 ©Fall 2017, CS 22
- dce 2017 Giải mã địa chỉ bộ nhớ A12 A11 00 0000 0000 08 0000 1000 Bộ nhớ 0000 0000 07FF Bank 0 07FF 0800 Tuyến địa chỉ 0000 0FFF Mạch 1000 giải mã Bank 1 07FF 17FF địa chỉ 0000 1800 Bank 2 07FF 1FFF 0000 10 0001 0000 Bank 3 07FF 18 0001 1000 ©2010, Dr. Dinh Duc Anh Vu 24 Computer Architecture – Chapter 5 ©Fall 2017, CS 24
- dce 2017 Mạch chi tiết U5 U3 8 9 8 9 A0 D0 A0 D0 7 A0 D0 10 7 A0 D0 10 A1 D1 A1 D1 6 A1 D1 11 6 A1 D1 11 A2 D2 A2 D2 5 A2 D2 13 5 A2 D2 13 A3 D3 A3 D3 4 A3 D3 14 4 A3 D3 14 A4 D4 A4 D4 3 A4 D4 15 3 A4 D4 15 A5 D5 A5 D5 2 A5 D5 16 2 A5 D5 16 A6 D6 A6 D6 1 A6 D6 17 1 A6 D6 17 A7 D7 A7 D7 23 A7 D7 23 A7 D7 A8 A8 A8 A8 A9 22 A9 22 19 A9 19 A9 A10 A10 A10 A10 18 18 CS CS RD 20 20 21 OE RD 21 OE WR WE WR WE HM6116/SO HM6116/SO U6 U4 A0 8 9 D0 A0 8 9 D0 7 A0 D0 10 7 A0 D0 10 A1 A1 D1 D1 A1 A1 D1 D1 A2 6 11 D2 A2 6 11 D2 5 A2 D2 13 5 A2 D2 13 A3 D3 A3 D3 4 A3 D3 14 4 A3 D3 14 A4 A4 D4 D4 A4 A4 D4 D4 A5 3 15 D5 A5 3 15 D5 2 A5 D5 16 2 A5 D5 16 A6 A6 D6 D6 A6 A6 D6 D6 A7 1 17 D7 A7 1 17 D7 23 A7 D7 23 A7 D7 A8 A8 22 A8 22 A8 A9 A9 19 A9 19 A9 A10 A10 A10 A10 18 18 20 CS 20 CS RD RD U2A 21 OE 21 OE WR WR A11 2 4 WE WE A Y0 A12 3 5 HM6116/SO HM6116/SO B Y1 6 1 Y2 7 MREQ G Y3 74LS139 ©2010, Dr. Dinh Duc Anh Vu 26 Computer Architecture – Chapter 5 ©Fall 2017, CS 26
- dce 2017 Bài tập (2) 4) Hãy xác định tầm địa chỉ làm cho các tín hiệu CS1, CS2, CS3 trong mạch giải mã địa chỉ sau đây tích cực. U1 1 15 U2A A10 A Y0 2 14 2 4 U3A A11 B Y1 A8 A Y0 3 13 3 5 1 A12 C Y2 A9 B Y1 12 6 2 12 Y3 Y2 11 1 7 13 CS3 Y4 G Y3 6 10 A15 G1 Y5 CS1 4 9 74LS139 74LS11 A14 G2A Y6 5 7 MREQ G2B Y7 74LS138 U2B 14 12 A7 A Y0 13 11 A8 B Y1 10 Y2 CS2 15 9 G Y3 74LS139 ©2010, Dr. Dinh Duc Anh Vu 28 Computer Architecture – Chapter 5 ©Fall 2017, CS 28
- dce 2017 Nội dung trình bày Công nghệ và thuật ngữ liên quan đến bộ nhớ Tổ chức / thiết kế bộ nhớ Sự cần thiết phải có bộ nhớ đệm Phân loại bộ nhớ đệm Đánh giá hiệu năng của bộ nhớ đệm Computer Architecture – Chapter 5 ©Fall 2017, CS 30
- dce 2017 Quy luật cục bộ của tham khảo Chương trình có xu hướng sử dụng lại dữ liệu và lệnh đã sử dụng hoặc đã tham khảo gần đây Cục bộ về mặt thời gian Nếu một phần tử (biến, hàm, đối tượng ) được tham khảo, sẽ được tham khảo lại ngay sau đó VD: các lệnh trong vòng lặp được nạp lại sau mỗi lần lặp; hàm printf có thể được gọi và thực thi nhiều lần Cục bộ về mặt không gian Một lệnh đang được thực thi, lệnh kế tiếp nhiều khả năng được thực thi Một phần tử được tham khảo, các phần tử gần đó có khả truy xuất sau đó VD: Các lệnh được thực thi tuần tự; duyệt các phần tử mảng liên tiếp nhau Computer Architecture – Chapter 5 ©Fall 2017, CS 32
- dce 2017 VD tính cục bộ của tham khảo Sinh viên mượn sách tham khảo từ thư viện Cục bộ về mặt thời gian Sách “Computer Architecture” được tham khảo lại hàng tuần trong học kỳ này Cục bộ về mặt không gian Sách của những môn khác (vd: Cấu trúc dữ liệu – giải thuật) được giảng dạy trong kỳ này cũng được tham khảo Computer Architecture – Chapter 5 ©Fall 2017, CS 34
- dce 2017 Bộ nhớ đệm là gì ? Bộ nhớ nhanh (SRAM), dung lượng ít Đệm một phần dữ liệu và lệnh của chương trình đang thực thi Được sử dụng để giảm thời gian truy xuất trung bình đến bộ nhớ chính Bộ nhớ đệm tận dụng tính cục bộ về thời gian bởi Giữ dữ liệu truy xuất gần đây gần với bộ xử lý Bộ nhớ đệm tận dụng tính cục bộ về không gian bởi Đưa cả những dữ liệu gần dữ liệu đang truy xuất vào bộ nhớ đệm Mục đích để đạt được Tốc độ truy xuất nhanh của SRAM dùng trong bộ nhớ đệm Cân bằng chi phí của hệ thống bộ nhớ Computer Architecture – Chapter 5 ©Fall 2017, CS 36
- dce 2017 Đặc tính của bộ nhớ phân cấp Đơn vị dịch Processor chuyển Tính bao gộp giữa mỗi 4-8 bytes (word) – những gì ở cấp trong L1$ là Chiều tăng L1$ tập con của của thời 8-32 bytes (block) những gì ở gian truy L2$ trong L2$ và xuất theo 1 to 4 blocks là tập con của khoảng những gì ở Main Memory cách đến trong bộ nhớ bộ xử lý 1,024+ bytes chính và là tập (disk sector = page) con của bộ Secondary Memory nhớ thứ cấp Kích thước tương đối củ bộ nhớ ở mỗi cấp 38 Computer Architecture – Chapter 5 ©Fall 2017, CS 38
- dce 2017 Các khác niệm về bộ nhớ đệm Chương trình đang tham khảo dữ liệu w ở trong block b Cache hit: Cấp k: Chương trình tìm thấy b ở bộ nhớ đệm cấp k (vd: block 14) Cache miss: b (vd: 12) không có ở cấp k, phải lấy từ cấp k+1, đồng thời được đưa vào cấp k . Cách ánh xạ? b sẽ được đưa vào vị trí nào (vd: 12 mod 4 = 0) Cấp k+1: Nếu bộ nhớ đệm cấp k đầy, một block nào đó sẽ được thay thế: . Chiến lược thay thế? vd: thay thế bock đã được đưa vào sớm nhất Computer Architecture – Chapter 5 ©Fall 2017, CS 40
- dce 2017 Nội dung trình bày Công nghệ và thuật ngữ liên quan đến bộ nhớ Tổ chức / thiết kế bộ nhớ Sự cần thiết phải có bộ nhớ đệm Phân loại bộ nhớ đệm Đánh giá hiệu năng của bộ nhớ đệm Computer Architecture – Chapter 5 ©Fall 2017, CS 42
- dce 2017 Q1: Đưa một block vào bộ nhớ đệm Block 12 được Bất kỳ vị trí Bất kỳ vị trí Tại vị trí 4 đưa vào vị trí nào nào trong set (12 mod 8) nào? 0 (12 mod 4) Computer Architecture – Chapter 5 ©Fall 2017, CS 44
- dce 2017 Q2: Tìm một block trong bộ nhớ đệm Index: để tìm đến set nào; so sánh Tag ở địa chỉ truy xuất với tất cả giá trị ở trường tags trong set đã tìm đến (với Valid bit V là hợp lệ) Hình trên: 2-way associative, 8 Byte/block, 4 line cache Offset: 3 bit; Index: 1 bit; Tag: 32 – (3 + 1) = 28 bit Computer Architecture – Chapter 5 ©Fall 2017, CS 46
- dce 2017 Ví dụ Cache Hits & Misses Xét một bộ nhớ đệm direct-mapped có 32 block Bộ nhớ đệm ban đầu rỗng, Block size = 16 bytes Các địa chỉ sau (dạng thập phân) được tham khảo: 1000, 1004, 1008, 2548, 2552, 2556. Ánh xạ những địa chỉ đó vào block trong bộ nhớ đệm và xác định hit/miss 23 5 4 Tag Index offset Lời giải: 1000 = 0x3E8 cache index = 0x1E Miss (truy xuất lần đầu) 1004 = 0x3EC cache index = 0x1E Hit 1008 = 0x3F0 cache index = 0x1F Miss (V = không hợp lệ) 2548 = 0x9F4 cache index = 0x1F Miss (khác tag) 2552 = 0x9F8 cache index = 0x1F Hit 2556 = 0x9FC cache index = 0x1F Hit Computer Architecture – Chapter 5 ©Fall 2017, CS 48
- dce 2017 Q3: Thay thế một block khi đầy + miss Không có lựa chọn trong bộ nhớ đệm “direct-mapped” Vớ bộ nhớ đệm “associative”, block nào được thay thế khi đầy và miss? Ngẫu nhiên Least Recently Used (LRU) Thay thế block không được tham khảo lâu nhất Cập nhật thứ tự của block mỗi khi “hit” First In First Out (FIFO) Thay thế block đưa vào trước ở một set Một bộ đếm theo dõi được tăng mỗi khi “miss” Computer Architecture – Chapter 5 ©Fall 2017, CS 50
- dce 2017 Nội dung trình bày Công nghệ và thuật ngữ liên quan đến bộ nhớ Tổ chức / thiết kế bộ nhớ Sự cần thiết phải có bộ nhớ đệm Phân loại bộ nhớ đệm Đánh giá hiệu năng của bộ nhớ đệm Computer Architecture – Chapter 5 ©Fall 2017, CS 52
- dce 2017 Memory Stall Cycles Bộ xử lý stall trong trường hợp Cache miss Khi nạp lệnh từ Instruction Cache (I-cache) Khi load/store dữ liệu tại Data Cache (D-cache) Memory stall cycles = Combined Misses Miss Penalty Miss Penalty: số chu kỳ xung nhịp cần để xử lý “miss” Combined Misses = I-Cache Misses + D-Cache Misses I-Cache Misses = I-Count × I-Cache Miss Rate D-Cache Misses = LS-Count × D-Cache Miss Rate LS-Count (Load & Store) = I-Count × LS Frequency Computer Architecture – Chapter 5 ©Fall 2017, CS 54
- dce 2017 Ví dụ vệ Memory Stall Cycles Xét một chương trình có các thông số sau: Instruction count (I-Count) = 106 lệnh 30% là lệnh load & store D-cache miss rate là 5%; I-cache miss rate là 1% Miss penalty: 100 clock cycles (chu kỳ xung nhịp Tính combined misses per instruction và memory stall cycles Combined misses per instruction in I-Cache and D-Cache 1% + 30% 5% = 0.025 combined misses per instruction 25 lần miss trên 1000 lệnh Memory stall cycles 0.025 100 (miss penalty) = 2.5 stall cycles per instruction Total memory stall cycles = 106 2.5 = 2,500,000 Computer Architecture – Chapter 5 ©Fall 2017, CS 56
- dce 2017 Ví dụ CPI với Memory Stalls Một bộ xử lý có CPI là 1.5 cho trường hợp không miss Cache miss rate là 2% cho I-cache và 5% cho D-cache (load & store) 20% lệnh là load & store Cache miss penalty: 100 clock cycles cho cả I-cache & D-cache Tính CPI khi tính tới cache miss? Lời giải: Instruction data Mem Stalls per Instruction = 0.02×100 + 0.2×0.05×100 = 3 CPIMemoryStalls = 1.5 + 3 = 4.5 cycles per instruction CPIMemoryStalls / CPIPerfectCache = 4.5 / 1.5 = 3 Bộ xử lý chạy chậm đi 3 lần vì memory stall cycles CPINoCache = 1.5 + (1 + 0.2) × 100 = 121.5 (rất lớn) Computer Architecture – Chapter 5 ©Fall 2017, CS 58
- dce 2017 Cải tiến hiệu năng của bộ nhớ đệm Average Memory Access Time (AMAT) AMAT = Hit time + Miss rate * Miss penalty Công thức AMAT được sử dụng để thực hiện cải tiến Giảm Hit time Bộ nhớ đệm phải nhỏ và đơn giản Giảm Miss Rate Bộ nhớ đệm phải lớn, associativity nhiều, block size lớn Giảm Miss Penalty Bộ nhớ đệm phải nhiều cấp Computer Architecture – Chapter 5 ©Fall 2017, CS 60
- dce 2017 Phân loại Miss Compulsory misses độc lập với cache size Rất nhỏ khi chạy chương trình dài Miss Rate 14% Capacity misses giảm khi tăng dung 1-way lượng bộ nhớ đệm 12% 2-way 10% Conflict misses khi tăng 4-way tính associativity 8% 8-way 6% Capacity 4% Compulsory 2% 0 1 2 4 8 16 32 64 128 KB Dung lượng Computer Architecture – Chapter 5 ©Fall 2017, CS 62