1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Kỹ thuật máy tính: Thiết kế bộ điều khiển cache 2 mức

104 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

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 3

THONG 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 4

LỜ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 5

MỤ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 6

2.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 7

3.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 8

4.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 9

DANH 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 10

Hì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 11

Ký 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 12

Hì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 13

Hì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 14

DANH 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 15

DANH MỤC TỪ VIET TAT

Trang 16

TOM 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 17

Chươ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 18

Tậ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 19

1.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 20

e 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 21

Số 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 22

khố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 23

Index 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 24

1.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 25

1.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 27

như 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 28

nhau 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 29

Nế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 30

Việ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 31

tì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 32

1.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 33

Chươ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 34

nhớ 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 35

D_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 36

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

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 37

Tê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 38

2.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 39

2.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 40

Chươ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

Ngày đăng: 02/10/2024, 04:59

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN