Bài giảng Kiến trúc máy tính - Chương 8: Bộ nhớ trong trình bày tổng quan hệ thống bộ nhớ máy tính, phân cấp bộ nhớ, bộ nhớ bán dẫn, tổ chức bộ nhớ. Ngoài ra, với những bài tập được đưa ra ở cuối bài sẽ giúp các bạn nắm bắt kiến thức một cách tốt hơn.
BÀI BỘ NHỚ TRONG Nguyễn Hồng Sơn Khoa CNTT, PTITHCM 1/44 Tổng quan hệ thống nhớ máy tính Đặc trưng hệ thống nhớ Vò trí: hay ngoài, CPU Dung lượng: kích thước từ nhớ, số lượng từ nhớ Đơn vò truyền tải: từ hay khối Phương pháp truy xuất: truy xuất tuần tự, truy xuất trực tiếp, truy xuất ngẫu nhiên, truy xuất liên kết (cache) Hiệu suất: thời gian truy xuất, tốc độ truyền, chu kỳ Dạng vật lý: bán dẫn hay băng từ Đặc tính vật lý: thay đổi/không thay đổi, xóa được/không thể xóa Tổ chức nhớ: xếp vật lý bit để hình thành từ Phân cấp nhớ Thanh ghi cache Main memory Disk cache -Giảm giá thành -Dung lượng tăng -Thời gian truy xuất tăng -Tần suất truy xuất CPU giảm Đóa từ Băng từ Đóa quang Bộ nhớ chính_các loại nhớ bán dẫn RAM (Random Access Memory) RAM động: làm từ tụ điện, cần làm tươi, mật độ cao RAM tónh: làm flip-flop, nhanh ROM (Read Only Memory) PROM (Programmable ROM) EPROM(Erasable PROM) EEPROM (Electrically EPROM) Flash Memory: lập trình lại nhanh, mật độ cao, xóa điện cần vài giây Bộ nhớ chính_tổ chức nhớ Cell nhớ phần tử có thuộc tính: Hai trạng thái: Có thể cài đặt trạng thái, hoạt động ghi Có thể đọc trạng thái, hoạt động đọc Điều khiển Chọn Cell Ghi Điều khiển Data vào Chọn Cell Data Đọc Bộ nhớ chính_chip logic Mỗi chip gồm dãy cell nhớ Dãy tổ chức thành W từ B bit (vd: 16_Mbit chip tổ chức từ 1M từ 16 bit) 1bit chip: data đọc ghi lần bit RAS CAS WE OE Đònh thời điều khiển Bộ đếm làm tươi MUX A0 A1 A10 Đệm đòa hàng Đệm đòa cột Giải mã hàng Dãy nhớ 2048x2048 Bộ khuếch đại cổng I/O Đệm nhập D1 D2 D3 Đệm xuất D4 Giải mã cột Bộ nhớ chính_chip logic RAS (row address select), CAS (column address select) Hàng kết nối đến ngõ Chọn (select) cell Cột kết nối đến ngõ vào/ra data Số đường đòa cần = log2W 10 Bộ nhớ chính_tổ chức module Nếu chip bit cần số chip số bit/từ RAM Tổ chức RAM vào dung lượng yêu cầu loại chip 11 Decode 1/512 256K 1bit Decode 1/512 Bit #1 Decode 1/512 256K 1bit Decode 1/512 MAR Bit #7 Decode 1/512 256K 1bit Decode 1/512 Bit #8 MBR Bộ nhớ 256 Kbyte 12 13 Bài tập Thiết kế nhớ DRAM dung lượng 1Mbyte với chip 1bit (dung lượng chip tùy chọn)? Từ nhớ byte Thiết kế DRAM 1Mbyte với chip bit co dung lượng 256Kbit? Từ nhớ byte Hãy vẽ sơ đồ thiết kế DRAM 256Mbyte với chip bit có dung lượng 128Mbit? Từ nhớ byte Thiết kế DRAM 1Mbyte với 16 chip bit co dung lượng 256Kbit va cac chip bit co dung luong 1Mbit? Từ nhớ byte Thiết kế nhớ DRAM dung lượng 4Mbyte với chip 2bit (dung lượng chip tùy choïn) 14 Decode 1/1024 1M 1bit Decode 1/1024 Bit #1 10 Decode 11024 10 1M 1bit Decode 1/1024 MAR Bit #7 Decode 1/1024 1M 1bit Decode 1/1024 Bit #8 MBR Bộ nhớ 1Mbyte 15 Bộ nhớ cache Nguyên lý: Bộ nhớ cache giải pháp tăng tốc truy xuất nhớ Cache chứa phần nhớ Vì muốn truy xuất từ nhớ, CPU tìm cache, có lấy từ nhớ nhanh, khơng thấy lấy từ nhớ nạp nguyên khối nhớ chứa từ vào cache Lý nạp khối nhớ vào cache: sở dự đoán truy xuất tham chiếu đến từ nhớ lân cận từ nhớ vừa truy xuất truy xuất nhanh 16 CPU Truyền vào từ (word) Cache Truyền vào khối (block) Bộ nhớ 17 Chỉ số line Đòa Noäi dung Tag Block 0 1 Block (K từ) 2 C-1 K từ Block (K từ) Cache Block (K từ) 2n-1 Chiều dài từ Bộ Nhớ Chính 18 Bắt đầu Hoạt động đọc cache Nhận đòa từ CPU Có block chứa đòa không? có Lấy nội dung chuyển cho CPU Kết thúc không Truy xuất nhớ Cấp line cho khối nhớ chứa đòa Chuyển nội dung cho CPU Nạp khối nhớ vào cache 19 Kích thước cache Bộ nhớ có kích thước 2n, chia làm M khối, khối có K từ => M=2n/K Cache có C line, line chứa tag khối K từ M>>C Cache đủ nhỏ để chi phí ~ main memory không trở nên chậm Cache đủ lớn để truy xuất nhanh Phẩm chất cache∈công nghệ vi mạch Hệ số tìm thấy (hit ratio): khả lấy số 20 liệu cần thiết từ cache 10 Anh xạ nhớ vào cache Tổ chức cache phụ thuộc vào phương pháp ánh xạ dùng Có ba phương pháp ánh xạ chủ yếu Trực tiếp Liên kết tồn Liên kết nhóm 21 Anh xạ trực tiếp i= j modulo c i : số line j : số khối nhớ c : số lượng line cache Hàm ánh xạ dễ dàng thực đòa Để phục vụ cho việc truy xuất, đòa nhớ chia thành ba phần: w bit thấp đònh danh cho từ hay byte khối s bit lại 2s khối nhớ Trong s-r bit cao danh đònh tag r bit lại danh đònh cache line 22 11 Anh xạ trực tiếp… Bộ nhớ s+w W0 W1 W2 W3 Cache Line Tag Nội dung Đòa nhớ tag line s-r r B0 K0 từ w s-r S w So sánh Ki w W4j W(4j+1) W(4j+2) W(4j+3) Bj Coù cache C-1 Kc-1 Không có cache 23 Anh xạ trực tiếp… Cache line Các khối nhớ gán 0,c,…,2s-c 1,c+1,…,2s-c+1 c-1 c-1,2c-1,….,2s-1 24 12 Anh xạ trực tiếp… Đơn giản, chi phí thực thấp Một khối nhớ cho trước gán vò trí cache cố đònh => hệ số tìm thấy thấp số trường hợp, không tận dụng tối đa hiệu suất cache 25 Anh xạ trực tiếp… Vi du Kích thước cache 64Kbyte K=4byte Bộ nhớ 16Mbyte=224 (24 đường đòa chỉ) 22 Block, C=214 ⇒ M=2 Trình bày hoạt động ánh xạ cho biết khối nhớ vào line cache? 26 13 27 Anh xạ liên kết tồn (full associative mapping) Cho phép khối nhớ ánh xạ vào line cache Đòa nhớ gồm có hai phần: Tag: đònh danh cho khối nhớ Từ: vò trí nội dung cần lấy khối nhớ 28 14 Anh xạ liên kết tồn bộ… Bộ nhớ s+w W0 W1 W2 W3 Cache Line Tag Nội dung Đòa nhớ tag s s B0 K0 từ w s S w w So saùnh Ki W4j W(4j+1) W(4j+2) W(4j+3) Bj Có cache s C-1 Kc-1 Không có cache 29 Anh xạ liên kết tồn bộ… Để xác đònh khối có cache hay không, logic điều khiển cache phải kiểm tra tag line => mạch thực kiểm tra phức tạp Linh hoạt chọn block để thay đọc block vào cache => thiết kế thuật toán thay để tối đa hệ số tìm thấy 30 15 Anh xạ liên kết nhóm (set associative mapping) Dung hòa ưu điểm hai phương pháp Toàn cache chia thành v nhóm, nhóm có k line Phép ánh xạ sau: c=v.k i=j modulo v i: số nhóm cache j: số khối nhớ c: tổng số line cache 31 Anh xạ liên kết nhóm (tt) Khối Bj ánh xạ vào line nhóm i Đòa nhớ có ba phần: Tag Nhóm Từ d bit có 2d nhóm, s-d số bit phần tag Như nhớ chia thành 2s khối 32 16 Anh xạ liên kết nhóm… Bộ nhớ s+w B0 Cache B1 line Tag Nội dung Đòa nhớ tag nhóm s-d d từ F0 F1 Nhoùm w s-d s+w FK-1 Bj FK So sánh w Có cache FK+i F2K-1 s-d Không có cache Nhóm C-1 33 Ví dụ line/nhóm (two way associative mapping) 34 17 Thuật toán thay Least-recently used FIFO Least-frequently used Random 35 Chính sách ghi Hai vấn đề Thay đổi từ cache hợp lệ Thay đổi từ nhớ hợp lệ từ nhớ không từ cache không Kỹ thuật ghi Write througth Write back : dùng UPDATE bit 36 18 Chính sách ghi… Tổ chức bus với nhiều thiết bò (bộ xử lý) có cache riêng dùng chung main memory vấn đề Cache coherency system Bus watching with Write Througth: điều khiển cache giám sát đường đòa để phát hoạt động nhớ với bus master khác, có ghi vào vò trí nhớ mà line cache có chứa điều khiển đặt line vào trạng thái bất hợp lệ Hardware Transparency: bổ sung phần cứng để đảm bảo cập nhật nhớ thông báo với tất cache No-cachable memory: phần nhớ chia sẻ cho nhiều xử lý (thiết bò) Không copy phần nhớ chia sẻ vào cache 37 Kích thước khối Khi khối bắt đầu gia tăng kích thước từ nhỏ đến lớn Thoạt đầu hit ratio tăng, kích thước khối lớn đến mức hit ratio lại giảm Khối lớn số line giảm Khi khối lớn từ thêm vào trở nên xa với từ tham chiếu tham chiếu tương lai gần Quan hệ kích thước khối hit ratio phức tạp, khó tìm xác quan hệ hit ratio tối ưu 38 19 Số lượng cache Cache đơn On-chip cache (internal cache): Cache nằm chip với CPU Off-chip cache (external cache) : Cache đọc qua external bus Cache hai mức: dùng hai loại internal cache_L1 external cache _L2 (thường dùng SRAM) 39 40 20 Số lượng cache… Hợp Khi xuất on-chip cache, nhiều thiết kế dùng cache để chứa data instruction Có hit ratio cao, có điều kiện làm việc theo Databound hay Instruction-bound Đơn giản cho thiết kế thực Tách biệt Những thiết kế gần chia cache thành hai phần: chứa data chứa insruction Hỗ trợ xử lý song song, pipelining thò Ngăn chặn tranh chấp xử lý thò đơn vò thực thi 41 Điều khiển cache Cache bên điều khiển hai bit ghi điều khiển, gọi CD (cache disable) NW (not write-througth) Có hai thò INVD: hủy bỏ nội dung cache báo cho cache WBINVD: có chức tương tự báo cho cache thực ghi vào nhớ khối hiệu chỉnh 42 21 Sơ đồ cache Pentium IV 43 Sơ đồ cache PowerPC G5 44 22 Tính tốn với cache Hiệu suất cache đánh giá qua: CPU execution time =(CPU clock cycles + Memory stall cycles)× Clock cycle time Giả sử CPU clock cycles bao gồm thời gian xử lý cache hit CPU bị treo cache miss 45 Tính tốn với cache (tt) Số chu kỳ treo đợi nhớ là: Average memory access time = Hit time+Miss rate.Miss penalty 46 23 Ví dụ Một máy tính cần clock cho thị tìm thấy cache Số thị cần truy xuất data chiếm 50% Chi phí khơng tìm thấy cache 25 chu kỳ clock hệ số hit 98% Nếu tất thị tìm thấy cache máy tính chạy nhanh gấp lần so với trường hợp này? 47 Giải -Tính thời gian thực thi ln tìm thấy cache: TCPU-EX = (Số chu kỳ CPU+ Số chu kỳ treo đợi).Tck = (IC.CPI + 0).Tck= IC.1.Tck -Tính thời gian thực thi có miss rate: Thời gian treo = IC.(1+0,5).(1-0,98).25=0,75IC Thời gian thực thi = (IC.1+0,75IC).Tck Số lần nhanh = (IC.1+0,75IC).Tck/IC.1.Tck= 1,75 48 24 Tính số hit hoạt động ghi Có hai tùy chọn với hoạt động ghi: -Write allocate: Cấp block cache cho hoạt động ghi -No-write allocate: Không cấp block, block cập nhật nhớ 49 Ví dụ Giả sử ánh xạ cache liên kết với write-back Xem xét đoạn chương trình sau: write M[100] write M[100] read M[200] write M[200] write M[100] Hãy tính số hit miss: a, với write allocate b, với no-write allocate 50 25 ... MBR Bộ nhớ 1Mbyte 15 Bộ nhớ cache Nguyên lý: Bộ nhớ cache giải pháp tăng tốc truy xuất nhớ Cache chứa phần nhớ Vì muốn truy xuất từ nhớ, CPU tìm cache, có lấy từ nhớ nhanh, khơng thấy lấy từ nhớ. .. xạ liên kết nhóm… Bộ nhớ s+w B0 Cache B1 line Tag Nội dung Đòa nhớ tag nhóm s-d d từ F0 F1 Nhoùm w s-d s+w FK-1 Bj FK So sánh w Có cache FK+i F2K-1 s-d Không có cache Nhóm C-1 33 Ví dụ line/nhóm... Anh xạ trực tiếp… Cache line Các khối nhớ gán 0,c,…,2s-c 1,c+1,…,2s-c+1 c-1 c-1,2c-1,….,2s-1 24 12 Anh xạ trực tiếp… Đơn giản, chi phí thực thấp Một khối nhớ cho trước gán vò trí cache cố đònh