Do đó hiện thực đề tài thiết kế bộ điều khiển Cache 2 mức với mong muốn đưa ra được giải pháp giảm thiểu thời gian truy xuất dir liệu xuống Bộ nhớ chính hơn từ đó cải thiện hiệu suất hoạ
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH
TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN THE DAT
KHOA LUAN TOT NGHIEP
THIET KE BO DIEU KHIEN CACHE 2 MUC
DESIGN 2-LEVEL CACHE CONTROLLER
KY SU KỸ THUAT MAY TÍNH
TP HO CHi MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN
KHOA KY THUAT MAY TÍNH
NGUYEN THE ĐẠT - 16520198
KHÓA LUẬN TÓT NGHIỆP
THIET KE BO DIEU KHIỂN CACHE 2 MUC
DESIGN 2-LEVEL CACHE CONTROLLER
KỸ SƯ KỸ THUAT MAY TÍNH
GIẢNG VIÊN HƯỚNG DẪN
THS HO NGỌC DIEM
TP HO CHÍ MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số 70/QD-DHCNTT
ngày 27 tháng 01 năm 2021 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4LỜI CẢM ƠN
Để hoàn thành tốt được đề tài khoá luận tốt nghiệp này, em xin chân thành cảm ơn các thầy cô trường Đại học Công nghệ Thông tin - Đại học Quốc Gia
Thành phố Hồ Chí Minh nói chung và các thầy cô thuộc khoa Kỹ thuật Máy tính
nói riêng, đã truyền đạt cho em những kiến thức và kinh nghiệm quý báu trong suốt
4.5 năm qua.
Em xin trân thành cảm ơn Th.S Hồ Ngọc Diễm và thầy Trần Đại Dương, đã dành thời gian hướng dẫn em trong suốt quá trình thực hiện đề tài để em có thể
hoàn thành bài báo cáo này.
Lời sau cùng, em xin chúc quý thầy cô thật nhiều sức khoẻ và thành công
trong công việc.
Sinh viên
Nguyễn Thế Đạt
Trang 5MỤC LỤC
Chương l Tổng quan để tài -: -22222222+c22222221212 1222121111 re 2
1.1 Kiến trúc bộ nhớ phân cấp 22++++2222EE++vrrrttrEErkrtrrrrrrrrrrrrrree 2
1.2 Cache Ă SH SH" HH HH HT 4 1.3 Các phương pháp tổ chức Cache -2-22++2222+z+222EEE+rerrEkerrerrrecree 6 1.3.1 Tổ chức Cache theo phương pháp Anh xạ trực tiếp - 6 3.2 Té chức Cache theo phương pháp Ánh xạ toàn phan 9
3.3 Tổ chức Cache theo phương pháp Kết hợp . -+ 0
1.4 Giải thuật thay thé khối -¿ 22+++222+++2E2ES++tEEEEErretrrkrrrrrrkrree 2
Al, Mô tả 4 7722 5EE TG ng, coi 2
A.2 Phương pháp Tối ưu c2cccce+cccvvvvvrrrrrrrrrrrrerrcee 2
4.3 Phương pháp FIFO 5cccSxSsterererrrrererree 3
1.4.4 Phương pháp LRU - c5 St StekEeerrrerrrrrrrsee 3
1.5 Chiến lược cập nhật bộ nhớ - ¿ ¿+5 + 22++*+E+Eexsrerrkerrrerrreree 3
1.5.1 1) (i) ee en 2 2c, 2n nàn HH Hang nhờ 3 1.5.2 Mô hình Ghi dữ liệu Write-through -5- -c5c<cccxsc++ 4
1.5.3 Mô hình Ghi dữ liệu Write-back ¿cà Street 4
1.6 Ảnh hưởng của kích thước Khối đến tỉ lệ Hit -.¿s+2 5
1.7 Ưu điểm và lý do chon Cache kết hợp 4—way -:©ccsccccccsscee 6 1.7.1 So sánh Cache 2-way với Cache Ánh xạ trực tiếp 7
1.7.2 So sánh Cache 2-way với Cache 4-way
Chương 2 Thiết kế hệ thống -+£222VEV2S2+++ttttEEEvvvrrrrrrrrrrrxer §
2.1 Giao tiếp giữa CPU và Bộ nhớ chính
2.2 Giao tiếp giữa CPU va Cache 1 mức -v2+c+++222vvvvvrrrerrrrrr 9
Trang 62.2.1 Độ rộng các trường địa chỉ Cache - ¿+ + +c+ssc+xzxecsr 19
2.3 Giao tiếp giữa Cache mức 1 va Cache mức 2
2.3.1 Thông số chính của Cache mức 2 ¿ c++22++c+czvscee 21
2.3.2 Độ rộng các trường địa chỉ Cache
2.4 Mô tả giao tiếp giữa Cache mức 2 và Bộ nhớ chính - - 23 2.5 Mô tả giao tiếp giữa RISC-V và Cache 2 mức.
Chương 3 Thiết kế chỉ tiết -2¿-22222++22EE+2EE2E11222221112272112 227112 Xe 25 3.1 Thiết kế chỉ tiết Cache 1 mức
3.1.1 _ Sơ đồ khối Cache mức l ¿¿+++2c++z+ccrvvrrrrrrrree 25
3.1.2 Sơ đồ khối chi tiết Cache mức L c¿22sccz+ccssce2 25
3.1.3 Sơ đồ khối Cache mức 2 -¿+++++22++ztttrrxerrrrrrsree 27
3.2 Thiết kế chỉ tiết khối dữ liệu Cache mức Ï : ccc++c++ 30
3.3 Thiết kế chỉ tiết khối điều khién Cache mức l -c + 31
3.4 Khối DataCache Cache mức .-ccccc:-ccccsssccccssccccssscc rcex3 3.5 Cấu tạo chỉ tiết khối DataCache -. -cccccccccccvsscccesrrccseccce 32
3.5.1 Thanh ghi 32 bit -222222cc+22222EESvrvrrtrrrrkkreerrerrrer 34 3.5.2 Thanh ghi 128 bit tạo thành từ 4 thanh ghi 32 bit - 35
3.5.3 Tập 16 thanh ghi 128 bit -cc2-:222222222c+ttEEEEEEeecrrrrrrer 36
3.5.4 Khối cho phép nạp thanh ghi 128 bit -ccccccc+++ce+ 37
3.5.5 _ Khối tín hiệu nạp cho tập 16 thanh ghi - +52 38
3.5.6 _ Tập dữ liệu 16 thanh ghi cho một way -.-« -«c« - DD
3.5.7 Khối DataCache Cache mức l -.-: -vc++2cv++c+ccsscez 40
3.5.8 Khối dit liệu Cache mức 2 - 2 5s E+2E£EEEEEEEEEEEerEkrrrrerrree 4I
3.6 Thiết kế chỉ tiết khối Direction -¿¿22v++ec2cvvvrervvrvrrerrrsrrrrrg 42
Trang 73.6.1 Khối VTDP -:22222ct22CvvrrrtErktrrrrrrrrrrrrrrrree 45
3.6.2 Mô tả tín hiệu cho phép nap Valid
3.6.3 Tập 16 thanh ghi Valid -¿- 55 ccStsxsxexerereeererree 47 3.6.4 Mô tả tín hiệu cho phép nạp Dirty bit.
3.6.5 _ Tập 16 thanh ghi Dirty 6S ưư 48 3.6.6 Mô tả tín hiệu cho phép nạp thanh ghi Tag
3.6.7 _ Tập 16 thanh ghi Tag — 26 bÍt 5252 S+2c+ccrsrsreerrerrrrre 50
3.6.8 _ Tập 16 thanh ghi Priority
3.6.9 Khối so sánh bằng 2 thanh ghi 26 bits .-:c-5-cc+ 53
3.7 Thiết kế chỉ tiết khối FIFO update priority -:-c5scz2 53
3.7.1 Các thành phần của khối FIEFO -¿¿©+c++22+scz+czsscee 54
3.7.2 Các khối Encoder -.-c-c 5222cvvvccrrrrrrrrvrerrrrrrrer 55 3.7.3 Khối so sánh lớn hơn cccc:+222vvvc+rttrrcrvvvrrrrrrrrer 57 3.7.4 Khối xét ưu tiên cho Way( -222¿+222++ztSEEkxetrtrrrerrrrrrscee 57 3.7.5 Khối xét ưu tiên cho Wayl .cccccc22222vvvcrrrerccrrvserrrrrrrrr 59
3.7.6 Khối xét ưu tiên cho Way2 :-522c+c2ccvvrrrsrrkvrrrrrrrrrrrrrrrree 60
3.7.7 Khối xét ưu tiên cho Way3 -cccc222vvzrrecrkvrrrrrrkrrrrrrrrvee 61
3.7.8 Khối cập nhật độ ưu tiên FIFO -2c+++22222vvseccrrrrr 62
3.8 Thiết kế khối Điều khiển Cache 1 mức - -¿scz+2sczz-x 63
3.8.1 Finite state machine cho bộ điều khiển Cache mức I 63
3.8.2 Bảng trang thái Mealy của bộ điều khiển -. -©ccccce+ 65
Chương 4 Đánh giá kết quả - 2¿©222+++22222++tSEESE+ttEEvvrrrrrrvrrrrrrrrree 67
4.1 Xem xét các trường hợp cần kiểm tra của hệ thống - : 67
4.1.1 Mô tả các trường hợp cần kiểm tra giữa CPU va Cache mức I 67
Trang 84.1.2 Mô tả các trường hợp kiểm tra giữa Cache mức 1 va Cache mức 2.68
4.2 Tiến hành cài đặt và kiểm tra tính năng của hệ thống 69
4.2.1 | Trường hợp ghi CPU-L1 Miss Clean, L1-L2 Miss Clean 69
4.2.2 _ Trường hợp đọc CPU-LI Miss Clean, L1-L2 Miss Clean
4.2.3 _ Trường hợp ghi Miss Dirty CPU-LI và Miss Clean L1-L2 74
4.2.4 Trường hợp ghi Miss Dirty cả hai CPU-LI và L1-L2
4.2.5 Đánh giá kết quả 22cccccccccCcvvvvrrrrrrrrrrrrrrrrerrrrer 82 4.3 Kiểm tra tích hợp vi xử lý RISC-V
4.3.1 Kiểm tra các lệnh R, [va S type -.c:52cvvccrccrvvrrerrrrrrrrrr 83
43.2 So sánh tốc độ bằng thực thi chương trình - -: -:-+ 85
4.3.3 So sánh với các đề tài liên quan -ccccc+z++2ccvvvvecrrrrrrr 87
Chương 5 Kết luận và Hướng phát triển 2¿+2++z++222++zz+zzxseez 88
5.1 Kếtluận 6 CN vem ii 88 5.2 Hướng phát triển -22c:+-222V2222+z+t22EEEEEYvrrrrtrtrrrrxrrrrrrrrrrrrrev 88
Trang 9DANH MỤC HÌNH
Hình 1.1: Mô hình bộ nhớ phân cấp -: ¿2++++22v+++++22v+zrztrrxecree 2
Hình 1.2: Mô hình sao chép dữ liệu giữa các lớp bộ nhớ [2] - -+-+-+ 3
Hình 1.3: (a) Trước khi truy xuất khối Xn; (b) Sau khi truy xuất Xạ - 4
Hình 1.4: Các thành phan trong một khối của Cache - - -¿+ccsccc++:-Š Hình 1.5: Tổ chức Cache theo phương pháp ánh xạ trực tiếp - 6
Hình 1.6: Sao chép các khối từ theo phương pháp Ánh xạ trực tiếp [1] 7
Hình 1.7: Minh hoạ truy xuất Cache theo phương pháp anh xạ trực tiếp [1] 8
Hình 1.8: Tag va Độ dời byte (Offset) trong phương pháp Anh xạ toàn phần 9
Hình 1.9: Phương pháp kết hợp 4-way, 256 Set, mỗi Set có 4 khối [1] 1
Hình 1.10: Mô ta tỉ lệ Miss đữ liệu với kích thước khối [I] - 15
Hình 1.11: Tim 6 nhớ của các phương pháp: Trực tiếp, Toàn phan, Kết hợp [1] 16
Hình 2.1: Hình 2.2: Hình 2.3: Hình 2.4: Hình 2.5: Hình 2.6: Hình 2.7: Hình 3.1: Hình 3.2: Hình 3.3: Hình 3.4: Hình 3.5: So đồ khối mô tả giao tiếp giữa CPU và Bộ nhớ chính - 18
Truong dia chỉ 32 bit của Cache mức Ï -¿- +55 5+csx+esecervxsee 19 Sơ đồ khối mô tả giao tiếp giữa CPU va Cache 1 mức - 20
Truong địa chỉ 32 bit Cache mức 2 ¿+5 5+£++zv+xsxexerxzxe 21 Sơ đồ mô tả giao tiếp giữa Cache mức 1 và Cache mức 2 22
Sơ đồ mô tả giao tiếp giữa Cache mức 2 và Bộ nhớ chính 23
Sơ đỗ mô tả thiết kế hệ thống Cache 2 mức ¿s2 24 Sơ đồ khối Cache mức 1 kèm Bộ điều khiển 2+ 25 Ký hiệu khối Cache mức 1 kèm Bộ điều khiển Sơ đồ khối Cache mức 2 +¿-22++++222222v++rrrtrttrrrvrrrrrrrrrrr 28 Sơ đồ khối chỉ tiết Cache mức 2 kèm Bộ điều khiển
Sơ đỗ mô tả chỉ tiết khối đữ liệu -22¿¿222+2zt2222vzerrvrrvrerrrrke 30
Trang 10Hình 3.6: Mô tả chi tiết khối điều khiển - 22 S223 +E+E+ESESEEEEEEEE+E+ErEsErrsrssz 31Hình 3.7: Khối Data_Cache mirc 1 ĐINH <-t 32Hình 3.8: Cấu tao khối DataCache Cache mức Le.e.ceccseccscssesesssesecsseseceesesecesseeeeeeees 33Hinh 3.9: Cau tao thanh ghi dữ liệu 32 ĐI( - eee eseeeesseeeseeeeeeeeeeesseeeeseeeaes 34
Hình 3.10: Ký hiệu thanh ghi 32 Đi( -ó- 5 5 S5 31919 HH ng gưkt 35
Hình 3.11: Cấu trúc thanh ghi 128 bit với 4 tín hiệu nạp riêng biệt - 35
Hình 3.12: Ký hiệu thanh ghi 128 ĐI( - 5 5 5 +11 ng ng it 36
Hình 3.13: Cấu trúc tập 16 thanh ghi 128 bit 2-2 ©5225£SE+£EezEzEsrxerxzex 36Hình 3.14: Cấu tạo chi tiết khối cho phép nạp thanh ghi 128 bit 37Hình 3.15: Ký hiệu khối cho phép nạp thanh ghi 128 bit 2 5- 5552552 38Hình 3.16: Mô tả cau trúc tín hiệu cho phép nạp cho tập 16 thanh ghi 38Hình 3.17: Cấu trúc tập dữ liệu 16 thanh ghi cho 1 Way -: -: 5+ 39Hình 3.18: Ký hiệu khối Set dữ liệu 16 thanh ghi cho 1 way -z-5 39Hình 3.19: Cấu tạo chi tiết khối DataCache mức Ì - s- x+secx+xerxexzxers 40Hình 3.20: Cấu tạo chỉ tiết khối DataCache mức 2 -ccccc+cccxeerrrrrreee 41Hình 3.21: Ký hiệu khối Direction c.cceccccccccccsscessssessessessessessesscssesessscsessessessessessease 42Hình 3.22: Cấu tạo chi tiết khối DirectiOn -c- 5s Sk+Et+E£EE+EeEEeEeEkererkererrrrs 44
Hình 3.23: Cấu tạo khối VTDP cho một Way - 2-2 52+ £+x+£E+zEzEzrxerxezex 45
Hình 3.24: Ký hiệu khối VTDP_ Wayy -2- 55c 55c2222EEEEEE2E2EEEEEEEEErkrrrrerkerrrree 46Hình 3.25: Cấu tạo khối cho phép nap tín hiệu Valid 2 5¿©5sz55+2>s+ 46Hình 3.26: Ký hiệu khối cho phép nạp tín hiệu Valid 2 2¿ ¿5s s52 46Hình 3.27: Cấu tạo chỉ tiết tập 16 thanh ghi Valid -2-©5¿©cxz+csccsssrsz 41
Hình 3.28: Ký hiệu tập 16 thanh ghi Vali - 5 s1 nen reeesee 47
Hình 3.29: Cấu tạo tín hiệu NAP DILLY 07 48
Trang 11Ký hiệu tập 16 thanh ghi Dirty - 5 S5 + +sErseeeresereeere 49
Cấu tạo tín hiệu cho phép nạp 'Tag - ¿- 2 2s x+£x+E++E+2EzzEezxerxeei 50
Ký hiệu khối cho phép nạp Tag ¿5-55 5sS*+S+2E£2E+£EezEerxerxsrxee 50
Cấu tạo tập 16 thanh ghi Tag - ¿5c 5t+SE+EE+E2EE2E2EEEEeEEerkerkerree 51
Ký hiệu tập 16 thanh ghi Tag 2-22 5¿©5+2S£+£E+2£x2Exvzxeerxesrxee 51
Cấu tạo tập 16 thanh ghi PriOrity ¿ 2 2++++E2E++Eerxerxerresred 52
Ký hiệu tập 16 thanh ghi PTIOTIEY -. 5 5 + ninh 52
Cấu tạo khối so Sdn v.ecseeccscscccessecesecevscevsecscssssessssecsesussesussesassesessneatencens 53
Ký hiệu khối so sánh 2 thanh ghi 26 bits -2- 2 2s s2 s+zs+cszz 53Khối FIFƠZ Mage đ>.@ 54Các thành phần chính của khối FIFO - 2-2 2+2+£++£x+zxzzzz 55Cấu tạo chỉ tiết khối PriorityEneoder -¿ 2 s+s+2s++z++zx+zxzzsz 55
Ký hiệu khối PriorityEncoder -¿- s¿x++s++£x++zx+zzx+zxeerxesrxez 56Cấu tạo chỉ tiết khối Valid Replace Encoder -. 2s s2 56
Ký hiệu khối Valid Replace Encoder -:-¿-©s¿cs+22x+2s++zx+scxe2 57
Cấu tạo khối so sánh lớn hơn -. ¿- 2 +2++22+++£x++2zxv+rxrerseez 57
Ký hiệu khối so sánh lớn hơn 2-2: ©5¿25£22++£x+£xzE+zzzrxrrxeres 57Cấu tạo khối xét ưu tiên cho Way Ô ¿ 5¿©25¿22+2cx2zxcrxerrserseee 58
Ký hiệu khối xét ưu tiên cho Way0 -2¿-75¿©5cccxvcxcczxerreerseee 58Cấu tạo khối xét ưu tiên cho Wayl -¿ 5¿©2+2c++cxszxerxerxeerseee 59
Ký hiệu khối xét ưu tiên cho Wayl 2:©2¿25+2cxcSzxcrxeerxeerxee 59Cấu tạo khối xét ưu tiên cho WWay2 - -:-52S++E+2E2E2EEEerkerkerrerree 60
Trang 12Hình 3.54: Ký hiệu khối xét ưu tiên cho Way2 ¿-©5¿©2+c22++cxc2cxsrxrrreerer 60 Hình 3.55: Cấu tạo khối xét ưu tiên cho Way3 -2-©2¿2+2cx2Exvzxeerxrsrxrre 61 Hình 3.56: Ký hiệu khối xét ưu tiên cho Way3 ¿- 2-52 2+c+Eckerkerkerxersrree 61 Hình 3.57: Cấu tạo khối cập nhật độ ưu tiên FIFO - 2 s+5++ ++£z+xerxerxee 62
Hình 3.58: Ký hiệu khối cập nhật độ ưu tiên FIFO 2 255 s+cx+csz£sse2 62
Hình 3.59: Minh hoạ sơ đồ 4 trạng thái của Bộ điều khiển Cache - 63
Hình 4.1: Mô tả các trường hợp kiểm tra khi CPU truy xuất Cache mức l 67
Hình 4.2: Mô tả các trường hợp kiểm tra khi Cache mức 1 truy xuất Cache mức 268 Hình 4.3: Các bước xử lý ghi Miss Clean CPU-LI, LI-L2 - -« «+ 69
Hình 4.4: Kết quả mô phỏng Timing - ghi CPU-L1 Miss Clean, LI-L⁄2 71
Hình 4.5: Mô ta dữ liệu trong bộ nhớ chính 5+5 + + + + ++seseeexeeerseeers 71 Hình 4.6: Mô ta dữ liệu sau khi sao chép lên Cache 2 mc ee eee -s«++<+ 71 Hình 4.7: Các bước xử ly đọc Miss clean CPU-L1, L1-L2 ‹ -++ 72
Hình 4.8: Kết quả mô phỏng Timing — Read Hit LI -2 5:©5¿55s25s>x+>s+ 73 Hình 4.9: Mô tả dữ liệu trong bộ nhớ chính -¿ + s+sx++x£sv£sveeseeeeesessee 73 Hình 4.10: Mô ta dữ liệu sau khi sao chép lên Cache 2 mức - «++-««++ 74
Hình 4.11: Các bước xử lý ghi Miss Dirty CPU-LI, Miss Clean L1-L2 75
Hình 4.12: Kết quả mô phỏng Timing Miss Dirty CPU-L1, Miss Clean L1-L2 76
Hình 4.13: Mô ta dữ liệu trong bộ nhớ chính: 5 55s *+sk+seeeseerseeers 76 Hình 4.14: Mô ta dữ liệu sau khi ghi Miss Dirty CPU-L1 và L1-L2 77
Hình 4.15: Mô ta dữ liệu sau ghi sao chép lên Cache 2 mức -«: 77
Hình 4.16: Các bước thực hiện ghi Miss Dirty ca hai CPU-L1, L1-L2 78
Hình 4.17: Kết quả mô phỏng Timing ghi Miss Dirty CPU-L1, L1-L2 79
Hình 4.18: Mô ta dữ liệu sau khi sao chép lên Cache 2 mức - ‹ -««++ 80
Trang 13Hình 4.19: Kết quả kiểm tra các khối dữ liệu đã truy xuất trước đó 81Hình 4.20: So đồ khối mô ta giao tiếp giữa RISC-V va Cache 2 mức 83Hình 4.21: Mô tả lệnh LW khi truy xuất Miss ¿- 2-52 2cz+tcEerkerxerxersrree 84Hình 4.22: Mô tả lệnh SW khi truy xuất Hit -¿- 2-52 cSxSE‡EeE2EzErkerkerxee 84
Trang 14DANH MỤC BANG
Bang 1.1: Mô tả các thành phần một khối của Cache 2-2 5z 5z+z+cs+cxzez 5
Bang 2.1: Mô tả các tín hiệu giao tiếp giữa CPU và Bộ nhớ chính - 18
Bảng 2.2: Mô tả chỉ tiết tín hiệu giao tiếp giữa CPU và Cache mức 1 20
Bảng 2.3: Mô tả chỉ tiết tính hiệu giao tiếp Cache mức 1 và mức 2 - - 22
Bang 2.4: Mô tả chỉ tiết tín hiệu giao tiếp giữa Cache mức 2 và Bộ nhớ chính 23
Bảng 3.1: Mô tả chỉ tiết các tín hiệu giữa khối dữ liệu và khối điều khiên 26
Bảng 3.2: Mô tả chỉ tiết các tín hiệu giữa khối dữ liệu và khối điều khiển Cache 0011 29
Bang 3.3: Mô tả tín hiệu thanh ghi 32 bit dữ liệu - - 5 5 55+ +<<+*x+s+s+2 34 Bang 3.4: Mô tả tín hiệu khối Direction 2-52 E+SE+££+E£+E+E£Eerkerxerxerssee 42 Bang 3.5: Mô tả tín hiệu khối FIEO -¿- 2 2 2S2S22EE£EEEEEEEEEEEEEEEEEEErEkrrkerrrrkx 54 Bảng 3.6 Bảng chân trị mô tả khối Valid Replace Encoder « -«« 56
Bảng 3.7: Mô tả tín hiệu FSM input cho Bộ điều khiển Cache -. 5: 65 Bảng 3.8: Mô tả tín hiệu FSM output cho bộ điều khiển Cache - 66 Bang 4.1: Tốc độ Cache mức l - 2 2 2 2E +E£EE£EEEEESEEEEEEEEEEEEerkerkerkrrkrree 82 Bang 4.2: Tốc độ Cache mitre 2 ¿- 2 252 E2 E£2E£EE£EEEEEEEEEEEEEEEEE2E217121 2122 xe 82 Bang 4.3: Tốc độ thực thi của từng nhóm lệnh 2 2 +£x+2E£+£++zx+zxzzsz 85 Bảng 4.4: Kết quả sau khi chạy chương trình - 2 s2522£+x+£xezEezEzrxerxrex 86 Bảng 4.5: Bang so sánh kết quả đề tài -2¿-55¿ 252 2+22St2Ex2EEeEEverkrsrkrrrrsree 87
Trang 15DANH MỤC TỪ VIET TAT
Trang 16TOM TAT KHÓA LUẬN
Bộ nhớ đóng vai trò cung cấp các lệnh và dữ liệu cho các chương trình đang thực thi trong Bộ xử lý (Central Processing Unit - CPU) Do đó, tốc độ
truy xuất bộ nhớ có ảnh hưởng quan trọng đến hiệu xuất của hệ thống máy tính Tuy nhiên, các bộ nhớ có tốc độ truy xuất càng nhanh thì giá thành càng cao Vì vậy, tô chức một hệ thong bộ nhớ hợp lý sao cho có thê truy xuất các thành phần cần cho các chương trình một cách nhanh chóng nhất là một yêu
câu cap thiết.
Các máy tính ngày nay xử dụng kiến trúc Bộ nhớ phân cấp — một kiến trúc bộ nhớ nhiều lớp bộ nhớ khác nhau các về mặt dung lượng và tốc độ truy xuất dữ liệu Bộ nhớ có tốc độ truy xuất nhanh hơn sẽ có giá thành trên một đơn vị bộ nhớ cao hơn, đo đó các lớp bộ nhớ có tốc độ truy xuất nhanh sẽ có dung lượng nhỏ trong hệ thong bộ nhớ phan cap Các hệ thong may tinh ngay nay thường có nhiều lớp bộ nhớ khác nhau nhưng chúng có thé được chia
thành ba lớp chính là Cache, Bộ nhớ chính (Main Memory) và Bộ nhớ thứ
cấp (Secondary Memory).
Cache đóng vai trò rất quan trọng trong việc nâng cao hiệu suất của các
bộ Bộ xử lý bởi vì tốc độ của các Vi xử lý ngày nay nhanh hơn Bộ nhớ chính
rất nhiều, vậy nên nhu cầu có một lớp bộ nhớ trung gian có tốc độ truy xuất
dữ liệu cao để giảm thời gian truy xuất trung bình từ Bộ xử lý đến Bộ nhớ
chính Do đó hiện thực đề tài thiết kế bộ điều khiển Cache 2 mức với mong
muốn đưa ra được giải pháp giảm thiểu thời gian truy xuất dir liệu xuống Bộ
nhớ chính hơn từ đó cải thiện hiệu suất hoạt động của vi xử lý.
Trang 17Chương 1 Tổng quan đề tài
này, lớp tiếp theo sẽ được tìm kiếm Nếu dữ liệu cần truy xuất được tìm thấy ở lớptiếp theo thì nó sẽ được chép vào lớp gần xử ly hơn Ngược lại, CPU sẽ tiến hành
tìm kiếm ở lớp thấp hơn nữa Dữ liệu tại một thời điểm sẽ chỉ được sao chép giữahai lớp liên tục nhau, giữa lớp trên (gần CPU hon) và lớp dưới (xa CPU hơn) Quátrình sao chép như trong Hình 1.2 tiếp tục được thực hiện cho đến khi dữ liệu cầntìm kiếm được sao chép tới lớp bộ nhớ gần CPU nhất
Trang 18Tập thanh ghi Registers
BND mức 1 ——> LCache
BND mức2 |L—> ”“*
Bộ nhớ chính
Hình 1.2: Mô hình sao chép dữ liệu giữa các lớp bộ nhớ [2]
Khi đữ liệu cần truy xuất được tìm thấy trong một khối nào đó tại một lớp cụthé thì sẽ được gọi là một lần Hit Ngược lại, nếu đữ liệu không tìm thấy tại một lớp
cụ thê thì sẽ được gọi là một lần Miss, trong trường hợp này, cần phải tìm tại lớp kếtiếp với lớp hiện tại
Kèm với hai hành vi Hit và Miss là thời gian để xử lý tương ứng cho hai hành
vi này Thời gian xử lý Hit (Hit time) là thời gian đề truy xuất dữ liệu tại một lớpnào đó bao gồm cả thời gian quyết định xem dữ liệu có tồn tại tại lớp đó hay không.Ngược lại, khi xảy ra Miss thì phải thi hành truy xuất lớp bộ nhớ thấp hơn và chépnguyên khối chứa dit liệu cần tìm vào một vị trí nào đó ở lớp hiện tại Tổng thờigian tìm kiếm ở lớp thấp hơn và chép vào lớp hiện tại cộng với thời gian gửi dữ liệu
cần tìm về cho CPU được gọi Miss penalty
Trang 191.2 Cache
Cache là thuật ngữ tổng quát dùng dé miêu tả một nơi lưu trữ dữ liệu tạm thời
để tận dụng ưu thế của hai nguyên tắc cục bộ về mặt thời gian và cục bộ về mặt
không gian.
Khi dữ liệu cần truy xuất được tìm thấy trong Bộ nhớ chính và Cache sẽ được
chia thành các khối có kích thước bằng nhau Hình 1.3 minh hoạ cách Cache hoạt
Hình 1.3: (a) Trước khi truy xuất khối Xn; (b) Sau khi truy xuất Xn
Gia sử Cache đang chứa nội dung các khối có địa chi từ Xi cho đến Xn1 vàcòn một số khối trống chưa chứa dữ liệu như trong Hình 1.3 (a) Có thé nhận thayrằng các khối từ X1 đến Xa.¡ được chứa trong Cache không theo một thứ tự nào cả.Giả xử CPU cần truy xuất nội dung của khối có địa chỉ Xn trong Bộ nhớ chính, khối
này chưa tổn tại trong Cache Theo như nguyên tắc truy xuất, CPU trước tiên sẽ tìm
trong Cache đầu tiên và trong trường hợp này sẽ có một lần Miss ở mức Cache xảy
ra Do đó, nội dung của khối Xa sẽ được chép lên từ Bộ nhớ chính vào một khối còntrong trong Cache như trong Hình 1.3(b)
Tuy nhiên trong quá trình thực hiện việc tim kiếm và sao chép khối Xa, ta cần phải:
Trang 20e Xác định được nội dung của khối cần tìm có đang ton tại trong Cache
hay không
e Néu nội dung khối can tìm đang được nam trong Cache, phải xác định
được nội dung đó đang nằm ở khối nào trong CacheGiải pháp là gán cho mỗi khối trong Cache một Tag nhằm xác định nội dung
nó đang thuộc về khối nào trong Bộ nhớ chính Khi tìm kiếm, CPU sẽ dựa vào cácTag để phân biệt nội dung đang chứa trong các khối của Cache thuộc về khối nàotrong Bộ nhớ chính Từ đó, CPU quyết định dữ liệu đang cần tìm có tồn tại trongCache hay không Các cách tổ chức bộ nhớ khác nhau sẽ hiện thực các Tag nay
khác nhau.
Đề phân biệt được một khối đang chứa dữ liệu có phải là bản sao với một khối nào đó trong Bộ nhớ chính ta cần thêm một bit cho mỗi khối trong Cache , được gọi
là valid (V) Nếu V là 1 thì khối tương ứng đang chứa dữ liệu của một khối nào đó
trong Bộ nhớ chính, ngược lại (V là 0) thì khối này không chứa dữ liệu của bất kì
khối nào trong Bộ nhớ chính Tổng số bit cho từng khối trong Cache được thé hiện
trong công thức 1.1.
1
Hình 1.4: Các thành phan trong một khối của Cache
Bang 1.1: Mô tả các thành phần một khối của Cache
Tên tín hiệu Độ rộng Mô tả
V 1 Cho biết khôi có phải ban sao của lớp
bộ nhớ thấp hơn hay không
Tag t Cho biết Tag của mỗi khối tương ứng
Data d Dữ liệu chứa trong khối đó
Trang 21Số Bit của một khéi=1+t+d (1.1)
Trong đó chỉ có d bit dùng để chứa dữ liệu và t + 1 bit dùng dé quản lý dữ
liệu Nếu một Cache có n khối (n thường có dạng 2" với m là số nguyên) như được
minh hoạ trong Hình 1.5 thì tổng số bit nhớ cần thiết để hiện thực Cache sẽ được
tính theo công thức (1.2).
Hình 1.5: Tổ chức Cache theo phương pháp ánh xạ trực tiếp
n khối
Tổng số bit = (số Bit / một khối) * n (1.2)
1.3 Các phương pháp tô chức Cache
1.3.1 Tổ chức Cache theo phương pháp Ánh xạ trực tiếp
Tổng quan:
Phương pháp ánh xạ trực tiếp (direct mapped) sẽ luôn luôn đặt một khối trong
Bộ nhớ chính tại một vị trí có định trong Cache Do đó, khi khối trong Bộ nhớ chính
được truy xuất, CPU có thé dễ dàng xác định vị trí chính xác cần phải tìm trongCache dé có thé xác định xem khối cần truy xuất hiện có đang trong Cache hay
không.
Ý tướng thực hiện:
Trong phương pháp Ánh xạ trực tiếp, mỗi khối trong Cache sẽ có một địa chỉxác định Tuy nhiên, dé dễ phân biệt với địa chỉ của Bộ nhớ chính thì địa chỉ các
Trang 22khối Cache thường được gọi là các Index Tức là, mỗi khối trong Cache sẽ được
gan một Index xác định theo thứ tự vi trí các khối và tăng dan từ 0 đến n-1, với n là
số khối trong Cache Ta sẽ phân biệt Index là địa chỉ của khối trong Cache, còn địa
chỉ khối tức là địa chỉ của khối trong Bộ nhớ chính
Khi một khối trong bộ nhớ chính được truy xuất, nếu nó chưa tồn tại trongCache thì nó sẽ luôn được sao chép vào khối có Index được xác định bằng Công
thức 1.3.
Index khối = (Địa chỉ khối) % (Số lượng khối của Cache) (1.3)
Bởi vì mỗi khối trong Bộ nhớ chính sẽ luôn được chép vào duy nhất mộtIndex xác định nên phương pháp này được gọi là phương pháp Ánh xạ trực tiếp,
phương pháp nay được mô ta trong Hình 1.6.
00001 00101 01001 01101 10001 10101 11001 11101
Memory
Hình 1.6: Sao chép các khối từ theo phương pháp Ánh xa trực tiếp [1]
Bởi vì Bộ nhớ chính có tất cả 32 khối nên để đánh địa chỉ cho các khối nàycần dung 5 bit và các khối sẽ có địa chỉ từ 000002 cho đến 111112 Tương tự, bởi vìCache có tất cả 8 khối nên cần dung 3 bit để đánh Index cho các khối và các khối cóIndex từ 0002 cho đến 1112
Theo phương pháp ánh xạ trực tiếp thi các khối có địa chỉ 00001 (1),
010012(9), 100012 (17) và 110012 (25) nếu được truy xuất sẽ được ghép và khối có
Trang 23Index là 0012 (1) bởi vì địa chỉ của các khối này khi chia cho 8 đều dư là 1 Trong
khi đó, các khối có địa chỉ là 001002(4), 011002 (12), 101002(20) và 111002(28) nếuđược truy xuất thì sẽ chép vào khối có Index 1002(4) vì địa chỉ của các khối nàychia cho 8 đều dư 4
Đề phân biệt khối đang chứa ở Index là 0012 là bản sao của khối ở địa chỉ
000012, 010012, 100012 hay 110012 thì cần phải lưu Tag của khối đang được chứa
tại Index là 0012 Cách đơn giản nhất là dùng 2 bit có trọng số cao nhất trong địa chỉcủa Bộ nhớ chính cần ánh xạ vào Cache làm Tag
Phương pháp ánh xạ trực tiếp được mô tả trong Hình 1.7
Address (showing bit positions)
Hình 1.7: Minh hoạ truy xuất Cache theo phương pháp ánh xạ trực tiếp [1]
Trong phương pháp ánh xạ trực tiếp, để tìm được chính xác một khối dữ liệu,
Cache sẽ tiến hành so sánh Tag của địa chỉ và Tag của khối Cache có địa chỉ làIndex, nếu kết quả bằng nhau thì đó là một lần Hit ngược lại thì đó là lần truy xuất
dữ liệu Miss.
Trang 241.3.2 Tổ chức Cache theo phương pháp Ánh xạ toàn phần
Tổng quan:
Cache theo phương pháp Anh xạ trực tiếp có ưu điểm là tìm kiếm dữ liệu
nhanh vì căn cứ vào địa chỉ có thể ngay lập tức xác định được số khối có khả năngchứa dit liệu cần tìm và qua đó nhanh chóng xác định được dữ liệu có tn tại trongCache hay không Tuy nhiên, nhược điểm lớn nhất của phương pháp này là một
khối trong Bộ nhớ chính sẽ được đặt tại duy nhất một vị trí trong Cache mà vị tri
này có thể chứa nhiều dữ liệu khác nhau của Bộ nhớ chính Do đó tính cạnh tranhgiữa các khối trong Bộ nhớ chính có cùng vị trí trong Cache là rất cao
Ý tưởng thực hiện:
Trái ngược hoàn toàn với phương pháp Ánh xạ trực tiếp, phương pháp Ánh xạ
toàn phan (fully associative), còn được gọi là phương pháp Da ánh xạ, cho phépmột khối được sao chép từ Bộ nhớ chính có thê được đặt ở bất kì khối nào trong cáckhối của Cache Do đó, khi tìm kiếm một khối nào đó phải tìm tất cả các khối trongCache, thay vì tìm tại một vi trí như đối với trường hợp Cache được tổ chứ theophương pháp Ánh xạ trực tiếp
Nếu thực hiện tìm kiếm tuần tự từng khối trong Cache thì thời gian tìm kiếm
sẽ khá lớn Do đó trong thực tế sẽ cần xây dựng nhiều bộ so sánh dé tìm kiếm songsong Tuy nhiên, như vậy sẽ làm tăng chi phí thực hiện phan cứng Vì vậy, phươngpháp Ánh xạ toàn phần chỉ được hiện thực cho các Cache có số lượng khối nhỏ
Do các khối khi được sao chép từ bộ nhớ chính lên đến Cache sẽ được đặt tạibất kỳ vị trí nào trong Cache nên không thể dùng trường Index để xác định vị tríkhối như trong phương pháp Ánh xạ trực tiếp Như vậy, địa chỉ khối trong bộ nhớchính sẽ chỉ được phân chia thành hai phan là Tag va Offset như Hình 1.8
Tag
Hình 1.8: Tag và Độ dời byte (Offset) trong phương pháp Anh xa toàn phan
Trang 251.3.3 Tổ chức Cache theo phương pháp Kết hợp
Tổng quan:
Nếu như phương pháp Ánh xạ trực tiếp có ưu điểm là giúp cho việc tìm kiếm
dữ liệu trong Cache nhanh và chi phí phần cứng cần hiện thực Cache thấp thìphương pháp Ánh xạ toàn phần có ưu điểm là độ linh động cao và tận dụng được ưu
Phương pháp kết hợp được gọi chính xác là phương pháp kết hợp n-way (n —
way set associative) Các khối trong Cache được chia thành nhiều Set (m Set) mỗi
Set có chính xác n khối (số lượng Set m sẽ được quyết định bởi số lượng khối trongCache) Các Set trong Cache cũng sẽ được đánh Index từ 0 đến m-1
Tương tự như việc kết hợp nhiều Word để tạo thành một khối, các khối được
kết hợp thành Set cũng tuân theo quy tắc là các khối phải liên tục nhau và Index củakhối có Index thấp nhất trong Set phải chia hết cho n Tức là các khối có Index từ 0đến n — 1 sẽ thuộc về Set có Index 0, các khối có Index từ n đến 2n — 1 sẽ thuộc về
Set có Index là 1.
Khi một khối trong Bộ nhớ chính được chép vào Cache thì nó sẽ được đặttrong một Set nhất định (Tính chất của phương pháp Ánh xạ trực tiếp) Tương tựnhư phương pháp Ánh xạ trực tiếp, Index của Set sẽ được dùng để chứa khối này
được tính theo công thức 1.4.
Index tập hợp = (Địa chỉ khối) % Set (1.4)Tuy nhiên, khác với phương pháp Ánh xạ trực tiếp, trong mỗi Set sẽ có n khốinên khối được chép lên từ bộ nhớ chính sẽ được đặt ở một trong n khối của Set
10
Trang 26(Tính chất của phương pháp Ánh xạ toàn phần) Như vậy, khi cần tìm một dữ liệutrong Cache thì có thể dùng địa chỉ của dữ liệu để quyết định xem cần phải tìm
trong Set nào Khi xác định được Set thì cần phải tiến hành kiểm tra n khối thuộc
Set đó dé xác định dữ liệu cần tìm có tốn tại trong Cache hay không
Hình 1.9: Phương pháp kết hợp 4-way, 256 Set, mỗi Set có 4 khối [1]
Như vậy, nếu so với phương pháp Ánh xạ trực tiếp thì phương pháp Kết hợp
n- way sẽ linh động hơn vì mỗi khối khi được chép lên từ Bộ nhớ chính sẽ có théđược đặt trong n khối khác nhau Do đó, việc cạnh tranh cho các vị trí trong Cache
Sẽ giảm xuống và có thé tận dụng được ưu điểm cục bộ về mặt thời gian Khi so
sánh với phương pháp toàn phan thì phương pháp này yêu cầu CPU tìm kiếm tại ít
khối hơn, n khối, thay vì phải tìm tất cả các khối trong Cache Do đó, thời gian tìmkiếm và chi phí phần cứng dùng hiện thực sẽ giảm nhiều so với phương pháp toànphan
Bởi vì một khối khi được chép lên từ Bộ nhớ chính sẽ thuộc về duy nhất mộtSet có Index nao đó nên địa chỉ của dữ liệu cần truy xuất sẽ được chia thành 3 phần
11
Trang 27như trong phương pháp Ánh xạ trực tiếp Kích thước phan doi Byte phụ thuộc vàokích thước khối (số Byte trong một khối), kích thước phần Index sẽ phụ thuộc vào
số lượng Set trong Cache và phần còn lại là Tag
1.4 Giải thuật thay thế khối
1.4.1 Mô tả
Thay thế khối là việc chọn một khối trong các khối tiềm năng (candi — dates)trong Cache có thé dùng chứa khối đang được đọc lên từ bộ nhớ chính trong trườnghợp tat cả các khối tiềm năng đều đang chứa dữ liệu (Bit hợp lệ của các khối này là
1).
Các phương pháp lựa chọn khối dé thay thế được gọi là Giải thuật thay thé
khối Cache (Cache replace-ment algoriths) hay phương pháp thay thế khối Cache(cache re-placement policies) Có rất nhiều phương pháp thay thế khối Cache khác
nhau, trong đó các phương pháp dang chú ý là : phương pháp FIFO, phương pháp
LRU, phương pháp giả LRU và phương pháp Ngẫu nhiên Phương pháp tốt nhất là
và được dùng làm cơ sở để so sánh với các phương pháp khác là Phương pháp tối
ưu, nhưng phương pháp này không thé áp dụng trong thực tế do không thé biết
trước được tương lai khối nào sẽ cần thay thé Chi tiết các phương pháp thay thế sẽ
được giới thiệu chỉ tiết ngay sau đây
1.4.2 Phương pháp Tối ưu
Phương pháp tối ưu (Optimial replacement policy) tìm trong số các khối tiềmnăng trong các Cache và thay thế khối không được sử dụng trong tương lai Trong
trường hợp tất cả các khối tiềm năng đều được sử dụng trong tương lai thì phương
pháp này sẽ lựa chọn khối nào sẽ được sử dụng sau thời gian lâu nhất Do đó, thuộctính cục bộ về mặt thời gian sẽ được tận dụng tối đa Tuy nhiên phương pháp nàykhông thê áp dụng trong thực tế vì không biết được tính chính xác khối nào sẽ được
sử dụng trong tương lai do hành vi của các ứng dụng có thé sẽ khác nhau trongtương lai đo hành vi của các ứng dụng có thể khác nhau trong các lần thực thi khác
12
Trang 28nhau Phương pháp này chỉ dùng để đánh giá và so sánh với các phương pháp còn
lại.
1.4.3 Phuong pháp FIFO
Phương pháp FIFO (First in first out) sẽ tìm kiếm trong số các khối tiềm năng
và thay thế khối có thời gian ở trong Cache lâu nhất Phương pháp FIFO là phươngpháp hiện thực đơn giản nhất bằng cách xây dựng một Cache Tuy nhiên, phươngpháp này không sử dụng nhiều trong thực tế vì nó không tận dụng được ưu thé củađặc tính cục bộ về mặt thời gian
1.4.4 Phuong pháp LRU
Phương pháp LRU (least recently used) sẽ tìm kiếm trong số các khối tiềm
năng và thay thế khối nào có lần cuối cùng được truy xuất là lâu nhất tính tới thời
điểm hiện tại Phương pháp này thường được sử dụng nhiều trong thực tế vì tậndụng triệt để ưu thế của đặc tính cục bộ về mặt thời gian do những khối nào vừađược truy xuất gần đây trong số khác khối tiềm năng dé thay thé sẽ được giữ lại
Tuy nhiên, so với phương pháp FIFO thì phương pháp LRU cần nhiều tàinguyên phần cứng hơn khi hiện thực và tốn nhiều thời gian xử lý hơn
1.5 Chiến lược cập nhật bộ nhớ
1.5.1 Mô tả
Khác với Đọc bộ nhớ, cập nhật bộ nhớ (hay Ghi bộ nhớ) đòi hỏi nhiều hành vi
hơn Nếu như khi tiến hành đọc bộ nhớ mà dit liệu cần đọc được tìm thấy trong
Cache thì CPU sẽ tiếp tục xử lý sẽ tiếp tục xử lý với dữ liệu này mà không cần truy
xuất Bộ nhớ chính Ngược lại, nếu dit liệu không tìm thấy trong Cache thì cần truyxuất Bộ nhớ chính đề tìm dữ liệu
Tuy nhiên, Ghi bộ nhớ không đơn giản như vậy, quá trình quản lý bộ nhớ
phân cấp cần phải đảm bảo rằng dữ liệu trong Cache và Bộ nhớ chính phải Đồng
nhất (Consistent) với nhau
13
Trang 29Nếu tiến hành ghi bộ nhớ mà Word cần cập nhật giá trị đang được chứa trongmột khối nào đó trong Cache và CPU chỉ cập nhật giá trị của Word trong Cache thì
sẽ gây ra vấn đề không đồng nhất (Inconsistent) Bởi vì khi đó giá trị Word này
trong Cache (mới hơn) sẽ khác với giá trị trong Bộ nhớ chính (cũ hơn) Có hai cách
khác nhau dé giải quyết van đề Ghi bộ nhớ là mô hình Write-through và mô hình
Write-back.
1.5.2 M6 hình Ghi dữ liệu Write-through
Mô hình Write-through là mô hình ghi dữ liệu đơn giản nhất CPU sẽ tiến
hành ghi dữ liệu ở ca hai mức là Cache và Bộ nhớ chính mỗi khi thực hiện lệnh Ghi
dữ liệu Do đó, sự đồng nhất dữ liệu giữa hai mức Cache và Bộ nhớ chính là luôn
được đảm bảo.
Trong trường hợp Word cần ghi đang được chứa trong Cache ( một lần Hit)thì việc ghi theo chiến lược Write-through là đơn giản Ngược lại, khi Word cần ghikhông nam trong Cache (một lần Miss) thì cần chép khối Word cần khi từ Bộ nhớ
chính lên Cache và sau đó thực hiện thao tác ghi như trường hợp Hit Tức là cập
nhật Word cần ghi trong Cache và ngay sau đó cập nhật giá trị của Word này trong
Bộ nhớ chính.
Tuy nhiên hiệu xuất của chiến lược Write-through rất thấp vì như đã trình bay
ở trên, truy xuất Bộ nhớ chính tốn rất nhiều thời gian so với Cache Trong chiếnlược Write-through, tất cả các lần ghi dữ liệu đều thực hiện việc truy xuất bộ nhớ dé
cập nhật lại giá trị Word cần ghi
1.5.3 M6 hình Ghi dữ liệu Write-back
Đối với chiến lược ghi dữ liệu Write-back, khi thực hiện ghi dữ liệu, CPU chỉ
cập nhật giá trị của Word trong Cache mà không cập nhật giá trị của nó trong Bộ
nhớ chính như trong phương pháp Write-through Giá tri này chỉ được cập nhật vào
Bộ nhớ chính khi khối chứa Word này trong Cache bị thay thế
14
Trang 30Việc không thực hiện Ghi giá trị vào Bộ nhớ chính ở mỗi lệnh ghi dữ liệu như
phương pháp Write-through sẽ cải thiện hiệu suất đáng kể Tuy nhiên, việc hiện
thực phương pháp Write-back sẽ phức tạp hơn phương pháp Write-through, phương
pháp này sẽ cần dùng thêm các Bit nhớ ở mỗi khối trong Cache để ghi nhận lại
trạng thái của khối đó đã cập nhật giá trị hay chưa Khi một khối trong Cache bị
thay thế, dựa vào Bit trạng thái này mà CPU sẽ tiến hành cập nhật giá trị cũa khối
trong Bộ nhớ chính hay không.
1.6 Anh hưởng của kích thước Khối đến tỉ lệ Hit
Khi tăng kích thước khối thì có thể tận dụng thuộc tính cục bộ về mặt khônggian ghi truy xuất bộ nhớ dé giảm tỉ lệ Miss Tuy nhiên, khi kích thước vùng dit liệu
của Cache có định, tăng kích thước khối sẽ làm giảm số khối có trong Cache đó,
qua đó làm tăng tính cạnh tranh vị trí giữa các khối được chép lên từ Bộ nhớ chính
Kết quả là các khối có thể bị đây ra khỏi Cache dù các Word hoặc Byte nhớ của nó
chưa được tham khảo hết Điều này dẫn đến tỉ lệ Miss có thể sẽ tăng lên như trong
Hình 1.10: Mô tả ti lệ Miss đữ liệu với kích thước khối [1]
Ngoài ra, một vấn đề gặp phải khi tăng kích thước vùng dữ liệu của khối làthời gian truyền dữ liệu từ Bộ nhớ chính đến Cache (chi phí trong trường hợp không
15
Trang 31tìm thấy dữ liệu cần truy xuất trong Cache) sẽ tăng theo Thời gian truyền dữ liệu
bao gồm 2 phan, thứ nhất là thời gian tìm kiếm Word đầu tiên trong khối, thứ hai là
thời gian truyền toàn bộ các Word trong khối từ bộ nhớ chính đến Cache Như vậy,
kích thước dữ liệu cần truyền càng lớn thì càng cần nhiều thời gian Do đó lựa chonkích thước khối tối ưu là một bài toán không đơn giản và phụ thuộc vào từng nhóm
ứng dụng.
1.7 Ưu điểm và lý do chon Cache kết hợp 4—way
So với hai phương pháp còn lại, phương pháp Kết hợp cho thấy sự cân bằng
giữa việc tìm kiếm khối và cách tổ chức khối trong Cache nên mang lại hiệu quảcao hơn cho hệ thông máy tính - Hình 1.11
Direct mapped Set associative Fully associative
Hình 1.11: Tim ô nhớ của các phương pháp: Trực tiếp, Toàn phan, Kết hợp [1]
Trong cả ba phương pháp tô chức Cache trên, đối với phương pháp ánh xạ
trực tiếp thì việc tìm kiếm dữ liệu sẽ nhanh nhất nhưng tỉ lệ cạnh tranh cao, phươngpháp ánh xạ toàn phần phải tìm khối dữ liệu cùng lúc toàn bộ Cache nên việc tìmkiếm sẽ làm giảm hiệu suất hệ thống, trong khi đó phương pháp ánh xạ kết hợp giớihạn việc tìm kiếm bang cách chia Cache thành các Set nhỏ từ đó giúp cải thiện dang
kế thời gian trung bình truy xuất hệ thống bộ nhớ
16
Trang 321.7.1 So sánh Cache 2-way với Cache Ánh xạ trực tiếp
Với Cache 2 way, số lần thay thế khối giảm (do đó tỉ lệ Miss giảm) so với
phương pháp Ánh xạ trực tiếp Tuy nhiên, số lượng Tag phải được tìm kiếm chomỗi lần tìm nạp cao gấp đôi
Tuỳ vào kích thước tương đối giữa Cache và Bộ nhớ chính , ta cần cân nhắclựa chọn phương pháp phù hợp đề hiện thực Cache để mang lại hiệu suất tốt
1.7.2 So sánh Cache 2-way với Cache 4-way
Mặc dù Cache 2-way có độ trễ khi truy xuất dữ liệu thấp hơn so với Cache
4-way, nhưng lại có tỉ lệ Miss cao hơn Do đó, ta cần cân nhắc lựa chọn Cache dựa
vào nhu cau dé cho ra hiệu năng tốt nhất
17
Trang 33Chương 2 Thiết kế hệ thống
2.1 Giao tiếp giữa CPU và Bộ nhớ chính
Trước khi có Cache, CPU được truy xuất trực tiếp với bộ nhớ chính, sơ đồ giao
tiếp giữa CPU và bộ nhớ chính được mô tả trong Hình 2.1 và Bảng 2.1 mô tả các ngõ
vào và ngõ ra tín hiệu giao tiếp giữa CPU và Bộ nhớ chính
memReady
DataAddress CPU_Valid WR_CPU
DFetchAddress CPU_Valid WR_CPU
BO NHỚ CHÍNH
memReady
Hình 2.1: Sơ đồ khối mô tả giao tiếp giữa CPU và Bộ nhớ chính
Bảng 2.1: Mô tả các tín hiệu giao tiếp giữa CPU và Bộ nhớ chính
Tên tín hiệu Độ rộng Mô tả
D_Mem 32 bit Ngõ vào đữ liệu cua CPU được cấp từ ngõ ra dữ liệu
D_Mem của Bộ nhớ chính.
memReady 1 bit Tín hiệu bao Bộ nhớ chính đã hoàn thành yêu cầu
truy xuất đữ liệu trước đó của CPU và sẵn sàng cho
yêu cầu tiếp theo
D CPU 32 bit Ngõ ra dữ liệu của CPU dùng dé ghi dữ liệu vào Bộ
18
Trang 34nhớ chính.
DataAddress 32 bịt Dia chỉ yêu cau truy xuất dir liệu từ CPU
CPU_ Valid 1 bit Tín hiệu yêu cau truy xuất dir liệu từ CPU.
WR_CPU 1 bít Tín hiệu mô tả truy xuất đọc hay ghi dữ liệu từ CPU.
DFetchAddress | 32 bit Ngõ vào dia chi của Bộ nhớ chính.
2.2 Giao tiếp giữa CPU va Cache 1 mức
Thong số của Cache mức 1 (Cache L1)
Tổ chức theo phương pháp kết hợp 4 Set, có 16 khối, mỗi khối có 4
Word, mỗi Word có 4 byte — 32 bit.
Bao gồm 64 khối (Block — 32 bit)
Cache sử dụng mô hình ghi dữ liệu Write-Back.
Sử dụng giải thuật thay thé khối FIFO
Kích thước vùng dtr liệu Cache LI là: 64 x 4 (word) x 4 = 1024 byte
Cache có 1 bit dirty bit (D), 1 valid bit (V) mỗi khối (block) và 2
priority bit (P)
Kích thước vùng quan lý : (1 D+ 1 V +2 P+ 26 bit Tag)x64 = 240 byte
32 Bit dinh dia chi.
Tag —24bit Index—6 bit Offset — 2 bit
Hình 2.2: Trường dia chỉ 32 bit của Cache mức 1 2.2.1 DO rộng các trường địa chỉ Cache
Kích thước vùng Tag : 32 — 4— 2 = 26 bit
Kích thước vùng Index Cache : 4 bits (16 Set)
Kích thước vùng quản lý khối (Offset) : 2 bit ( 1 khối có 4 word gồm 16
byte dữ liệu)
Hình 2.3 Mô tả các tín hiệu ngõ vào và ngõ ra giao tiếp giữa CPU và Cache mức
1 Bảng 2.2 mô tả chỉ tiết tín hiệu giao tiếp giữa CPU va Cache mức 1
19
Trang 35D_Cache_CPU LiReady
D_Cache_CPU
CPU
DataAddress CPU_Valid WR CPU
DFetchAddress CPU_Valid WR_CPU L2Ready
Cache mức 1
Hình 2.3: Sơ đồ khối mô tả giao tiếp giữa CPU và Cache 1 mứcBảng 2.2: Mô tả chỉ tiết tín hiệu giao tiếp giữa CPU và Cache mức 1
Tên tín hiệu Độ rộng Mô tả
D_Cache_CPU | 32 bit Ngõ vào dữ liệu của CPU được cấp từ ngõ ra dit liệu
của Bộ nhớ chính.
LIReady 1 bit Tin hiệu báo Cache mức 1 đã hoàn thành yêu cầu
truy xuất dữ liệu trước đó của CPU và sẵn sàng choyêu cầu tiếp theo
D_ CPU 32 bịt Ngõ ra dữ liệu của CPU dùng dé ghi dữ liệu vào Bộ
nhớ chính.
DataAddress 32 bit Địa chỉ yêu cau truy xuat dir liệu từ CPU
WR_CPU 1 bit Tin hiệu mô tả truy xuất đọc hay ghi dit liệu từ CPU
DFetchAddress | 32 bit Ngõ vào địa chỉ của Bộ nhớ chính.
CPU_Valid 1 bit Tín hiệu yêu câu truy xuất đữ liệu từ CPU
20
Trang 362.3 Giao tiếp giữa Cache mức 1 va Cache mức 2
2.3.1 Thông số chính của Cache mức 2
Tổ chức theo phương pháp kết hợp 4 Set, có 32 khối, mỗi khối có 4
Word, mỗi Word có 4 byte — 32bit.
Bao gồm 128 khối (Block 128 bit)
Cache sử dụng mô hình ghi dữ liệu Write-Back.
Sử dụng giải thuật thay thế khối FIFO
Kích thước vùng dữ liệu Cache L2 là: 128 x 4(word) x 4 = 2048 byte
Cache có 1 dirty bit (D), 1 valid bit (V) và 2 priority bit (P) mỗi khối
(block) Kích thước vùng quản lý: (1D+ 1 V +2 P + 25 bit Tag) x 128 = 480
byte
32 Bit dinh dia chi
Tag—25 bit Index—5 bit Offset — 2 bit
Hình 2.4: Trường dia chỉ 32 bit Cache mức 2 2.3.2 Độ rộng các trường địa chi Cache:
Kích thước vùng Tag: 32 — 5 — 2 = 25 bit
Kích thước vùng Index Cache: 5 bits (32 Set)
Kích thước vùng quan lý khối (Offset): 2 bit (1 khối có 4 word gồm 16
byte dữ liệu)
Hình 2.5 mô tả giao tiếp giữa Cache mức 1 va Cache mức 2 và Bang 2.3 mô ta
các tín hiệu ngõ vào và ngõ ra giao tiép giữa Cache mức 1 va Cache mức 2.
21
Trang 37Tên tín hiệu Độ rộng Mô tả
D L2 128 bit Ngõ vào dữ liệu của Cache mức 1 được cấp từ ngõ
ra dữ liệu của Cache mức 2.
L2Ready 1 bit Tin hiệu báo Cache mức 2 đã hoàn thành yêu cầu
truy xuất dir liệu trước đó của Cache mức | và sẵnsàng cho yêu cầu tiếp theo
D_LI1 128 bit Ngõ ra đữ liệu của Cache mức 1 dùng dé ghi dit
liệu vào Cache mức 2.
DFetchAddressL1 | 32 bit Địa chỉ yêu cầu truy xuất dữ liệu từ Cache mức I
Trang 382.4 Mô tả giao tiếp giữa Cache mức 2 và Bộ nhớ chính
Cuôi cùng, Cache mức 2 được kêt nôi với bộ nhớ chính, các tín hiệu kêt nôi
được mô tả chỉ tiết ở Hình 2.6
DL DFetchAddress L1Valid memReady WR_L2
Hình 2.6: So đồ mô ta giao tiếp giữa Cache mức 2 và Bộ nhớ chính
Bảng 2.4: Mô tả chỉ tiết tín hiệu giao tiếp giữa Cache mức 2 và Bộ nhớ chính
Tên tín hiệu Độrộng | Mô tả
D_Mem 128 bit Ngõ vào dữ liệu của Cache mức 2 được cấp từ ngõ ra
dữ liệu của Bộ nhớ chính.
memReady 1 bít Tín hiệu báo Bộ nhớ chính đã hoàn thành yêu cầu
truy xuất đữ liệu trước đó của Cache mức 2 và sẵn
sàng cho yêu cầu tiếp theo
D_L2 128 bit | Ngõ ra dir liệu của Cache mức 2 dùng dé ghi dữ liệu
vào Bộ nhớ chính.
DFetchAddressL2 | 32 bit Địa chỉ yêu cầu truy xuất đữ liệu từ Cache mức 2 đến
Bộ nhớ chính.
L2Valid 1 bit Tin hiệu yêu cau truy xuất đữ liệu của Cache mức 2
WR_Mem 1 bit Tín hiệu mô tả truy xuất đọc hay ghi dữ liệu từ
Cache mức 2.
23
Trang 392.5 Mô tả giao tiếp giữa RISC-V va Cache 2 mức
Trong Hình 2.7, CPU được tích hop với Cache mức 1 va Cache mức 2, các tin
hiệu được mô tả chỉ tiết ở các Bảng 2.3 và Bảng 2.4
D_Cache CPU
D_CPU DataAddress CPU _Valid WR CPU
DCPU DataAddress CPU Valid wR cpu L2Ready
Cache mức 1
D_Cache_CPU D_LI DFetchAddressL1 1,1 Valid LIReady WR_ L2
D.LI DFetchAddressL1 LIValid memReady WR_L2
Cache mức 2
L2Ready DFetchAddressL2 L2Valid WR_Mem
DFetchAddressL2 L2VaHd WR Mem
BỘ NHỚ CHÍNH
memReady
Hình 2.7: Sơ đồ mô tả thiết kế hệ thống Cache 2 mức
24
Trang 40Chương 3 Thiết kế chỉ tiết
3.1 Thiết kế chỉ tiết Cache 1 mức
3.1.1 Sơ đồ khối Cache mức 1
Khối Cache mức 1 được minh hoạ như Hình 3.1 đây là khối Cache nằm giữa
Hình 3.1: Sơ đồ khối Cache mức 1 kèm Bộ điều khiển
Các tín hiệu của khối cache mức 1 được mô tả trong các Bảng 2.2 và Bảng 2.3
ở Chương 2.
3.1.2 Sơ đồ khối chỉ tiết Cache mức 1
Cache mức | được câu tạo bao gôm hai khôi chính là khôi dữ liệu và khôi điêu
khiển Được mô tả trong Hình 3.2
25