Bài giảng Vi xử lý nâng cao - Phần 2: Các hướng dẫn - Hướng dẫn 9: Bộ nhớ và cache

Hệ thống thứ bậc bộ nhớ
 Một hệ thống thứ bậc bộ nhớ gồm có nhiều
mức bộ nhớ, những mức này có tốc độ và
kích thước khác nhau.
 CPU ? Các cache ? bộ nhớ chính ? Các bộ
nhớ thứ cấp.
 Chip giống nhau (register) ? SRAM ?
DRAM ? đĩa/băng từ, đĩa quang.
 (Tham chiếu tài liệu “Thiết kế vi mạch
CMOS VLSI” tập 3 để biết thêm về cấu trúc
các bộ nhớ)
pdf 24 trang thamphan 27/12/2022 2980
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý nâng cao - Phần 2: Các hướng dẫn - Hướng dẫn 9: Bộ nhớ và cache", để 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:

  • pdfbai_giang_vi_xu_ly_nang_cao_phan_2_cac_huong_dan_huong_dan_9.pdf

Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 2: Các hướng dẫn - Hướng dẫn 9: Bộ nhớ và cache

  1. Bài giảng “Vi xử lý nâng cao” Phần 2: Các hướng dẫn Hướng dẫn 9: Bộ nhớ và cache 1
  2. Hệ thống thứ bậc bộ nhớ . Một hệ thống thứ bậc bộ nhớ gồm có nhiều mức bộ nhớ, những mức này có tốc độ và kích thước khác nhau. . CPU  Các cache  bộ nhớ chính  Các bộ nhớ thứ cấp. . Chip giống nhau (register)  SRAM  DRAM  đĩa/băng từ, đĩa quang. . (Tham chiếu tài liệu “Thiết kế vi mạch CMOS VLSI” tập 3 để biết thêm về cấu trúc các bộ nhớ). 3
  3. Hệ thống thứ bậc bộ nhớ . Một số thuật ngữ tổng quát: Mức cao. Mức thấp. Khối Hit. Miss. Tỉ lệ hit. Tỉ lệ miss. Miss penalty – thời gian để thay thế một khối ở mức cao bằng khối tương ứng từ mức thấp và thời gian để phân phối khối này đến CPU. . Ta muốn giảm tối thiểu tỉ lệ miss và miss penalty. 5
  4. Cache . Các bước tìm dữ liệu từ (word data): – 1. Kiểm tra cache bằng cách tính chỉ số (index). – 2. Nếu tag tương thích với địa chỉ và bit valid là 1, lấy dữ liệu. – 3. Nếu không, cache miss. A. Tính PC-4 (đối với miss tìm nạp lệnh). B. Đọc từ bộ nhớ và ghi vào cache. C. Thiết lập bit valid và tag. D. Đọc lần nữa. 7
  5. Cache . Còn miss ghi thì sao? – Ghi tới (write through) với sự giúp đỡ của bộ đệm ghi (write buffer). – i.e. ghi cả cache lẫn bộ nhớ mỗi khi có miss ghi. – Bộ đệm ghi sẽ thực hiện việc ghi đến bộ nhớ CPU có thể tiếp tục thực thi những lệnh khác. 9
  6. Hiệu suất của cache = CPI average × × + %of _ mem _ access _ instr miss _ rate DataCache miss _ penalty × + Miss _ rate Instructio n _ cache miss _ penalty CPI Perfect %of_mem_access_instr = % of lw + % of sw + % of lb + % of sb+% of lh = 21%+12%+1%+1%+1% =36% CPI average = 36%*4%*40+2%*40+2 = 1.376 + 2 = 3.376 13
  7. Giảm cache miss . Sắp xếp linh hoạt hơn. – Direct mapped – phần cứng ít nhất, linh hoạt kém nhất. – Fully associative – phần cứng nhiều hơn, linh hoạt tốt hơn. – Set associative o n-way: n ô nhớ cho một khối. o Một khối được ánh xạ trực tiếp vào trong một tập và tất cả khối trong tập này được tìm kiếm sự tương thích. – Tính linh hoạt càng cao (số của khối trong tập), tỉ lệ miss càng thấp. Tuy nhiên, thời gian hit sẽ dài hơn. . Có phải tỉ lệ miss (miss rate) là nhỏ nhất trong fully associative? – (Chỉ hữu dụng khi tỉ lệ miss cao). 15
  8. Bài tập (tiếp theo) . Các khối 1-từ => byte offset là 2 bit. . Số các khối cần được định chỉ số: = 64KB / 4B = 16K = 2 14 o Số bit của tag cho mỗi khối: = 32 – 14 – 2 = 16 o Số bit tổng cộng trong mỗi khối (valid bit + số tag bit + số data bit): = 1 + 16 + 32 = 49 o Số bit tổng cộng trong cache: =49 * 2 14 = 784 Kbit 17
  9. Bài tập (tiếp theo) . Directed Mapped – Số tập (set) = Số khối (block) = 4K = 2 12 – Số bit để định địa chỉ cho các tập = 12 – Số bit của tag = 32-12=20 – Tổng số bit của tag = 20 * 2 12 = 80 Kbit . Two-way – Số tập giảm còn 2 = 2K = 2 11 – Số bit của tag = 32-11 = 21 – Tổng số bit của tag = 21 * 2 11 * 2 = 84 Kbit 19
  10. Bài tập (tiếp theo) . Với 3 cache nhỏ, mỗi cache chứa 4 khối 1-từ. Một cache là direct mapped, một cache là 2-way và một cache là fully associative. Cho trình tự sau đây của địa chỉ khối : 0,8,0,6,8. Số miss trong mỗi trường hợp là bao nhiêu? 21
  11. Bài tập (tiếp theo) 0,8,0,6,8 Step 1 MISS! set00 set00 set01 set01 set00 set00 set01 set01 Mem[0] Step 2 MISS! Step 3 HIT! set00 set00 set01 set01 set00 set00 set01 set01 Mem[0] Mem[8] Mem[0] Mem[8] Step 4 MISS! Step 5 MISS! set00 set00 set01 set01 set00 set00 set01 set01 Mem[0] Mem[6] Mem[8] Mem[6] 23