Cấu trúc của bộ nhớ cache

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 92 - 97)

- Bộ nhớ cache được chia thành các line (C line), mỗi line chia thành 2 trường, trường Tag và Block. Trường Tag lưu địa chỉ của ô nhớ được chuyển vào cache từ main memmory (RAM). Trường Block lưu dữ liệu của block chuyển từ MainMem vào.

- Trên MainMem cũng được chia thành các block có kích thước bằng kích thước block trên Cache.

- Trong mỗi block lại được chia thành k word. Vậy:

o Trên MainMem có 2n word => số block = 2n/k

o Kích thước của cache = C * k word

5.3.3 Các phương pháp ánh xạ cache

a) Ánh xạ trực tiếp

Nguyên tắc: Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một vị trí Line duy nhất của cache:

- B0 -> L0 - B1 -> L1 - ....

- Bm+1 -> L1 - ....

Tổng quát: B(j) chỉ có thể được nạp vào L(j mod m) (với m là số Line của cache).

Mô tả:

Đặc điểm của ánh xạ trực tiếp

Mỗi một địa chỉ N bit của bộ nhớ chính gồm ba trường:

o Trường Word gồm W bit xác định một từ nhớ trong Block hay Line: 2w = kích thước của Block hay Line

o Trường Line gồm L bit xác định một trong số các Line trong cache: 2L

Line 0 1 2 Block 0 1 2 3 4 5 6 7 8

o Trường Tag gồm T bit: T = N - (W+L), 2 = số block của bộ nhớ chính

Khi CPU phát ra một địa chỉ A có N bit với 3 trường trên, đầu tiên CPU sẽ truy cập vào line (L mod m) trên cache, so sánh trường tag của line này với trường tag trong địa chỉ A, nếu giống nhau (Cache hit) thì word thứ W trong line này sẽ được tải vào CPU. Nếu khác nhau (Cache miss) tức trong cache chưa có ô nhớ cần truy xuất, hệ thống sẽ truy xuất tới block thứ T (trường tag trong A) để tải block đó vào cache.

Ưu điểm:

o Bộ so sánh đơn giản vì chỉ thực hiện một lần với 2 toán hạng vào

Nhược điểm:

o Xác suất cache hit thấp và hiệu xuất của cache không cao vì mỗi một block chỉ có thể đưa vào một vị trí xác định trong khi các vị trí khác có thể đang trống.

Ví dụ:

Hãy xác định giá trị của Line(block), Tag và Word trong địa chỉ có kích thước 32 bit là 3FE9704Ah, biết rằng:

o Bộ nhớ sử dụng cơ chế ánh xạ trực tiếp.

o 1 word=2 byte:

o Kích thước cache 16K line

o Kích thước của 1 bock = 1 line = 16 word

Giải:

o 3FE9704Ah = 0011 1111 1110 1001 0111 0000 0100 1010 b (adsbygoogle = window.adsbygoogle || []).push({});

o Kích thước cache 16K line = 214 line => L=14 bit

o Kích thước 1 block = 16 word = 24 => k = 4 bit

o => Số bít cho trường Tag = 32 – 4 – 14 = 14

o Kết quả là:

Tag Line Word

Size 14 bit 14 bit 4 bit

Hệ nhị phân 0011 1111 1110 10 01 0111 0000 0100 1010

Hệ 10 4090 5892 10

b) Ánh xạ toàn phần

Để khắc phục nhược điểm của phương pháp trực tiếp là, có thể rất nhiều block tranh chấp 1 line trên cache trong kh các vị trí khác bỏ trống, thì phương pháp

này cho phép một block trên MainMem được tải vào một vị tri line bất kỳ còn trống trên cache.

Nguyên tắc:

• Mỗi Block có thể nạp vào bất kỳ Line nào của cache. • Địa chỉ của bộ nhớ chính bao gồm hai trường:

o Trường Word giống như trường hợp ở trên.

o Trường Tag dùng để xác định Block của bộ nhớ chính. Tag xác định Block đang nằm ở Line đó

Mô tả:

Đặc điểm của ánh xạ toàn phần

Khi CPU phát ra một địa chỉ A gồm N bit trong đó có 2 trường tag + word. Đầu tiên CPU sẽ duyệt từ line 0 cho đến hết, lần lượt kiêm tra trường Tag cua line hiện thời nếu trùng với trường Tag của A tức cache hit thì ô nhớ Word sẽ được tải vào CPU. Trái lại không tìm thấy line nào có tag trùng với Tag của A tức cache miss thì CPU phải truy xuất vào block thứ Tag trên MainMem.

Ưu điểm:

- Hiệu xuất cache tối đa, cache hit cao.

Nhược điểm:

Đây là phương pháp án dụng cacr hai phương pháp trên, trên cache và MainMem nhóm các line hay block lại thành các SET, khi đó một block thuộc một SET thứ S trên MainMem chỉ được nạp vào SET thứ (S mod x) với x là số SET trên cache, còn trong phạm vi một SET thì block đó có thể dặt vào vị trí bất kỳ nào có line đang trông.

Mô tả:

Đặc điểm của ánh xạ thành bộ

CPU phát ra một địa chỉ A n bit gồm 3 trường Tag + Set + Word, đầu tiên CPU sẽ truy xuất vào SET thứ (Set mod x) với x là số SET của cache, sau dó lấy trường tag của A so sánh lầ lượt với các Tag của các line trong cache, nếu trùng thì Word đượct tải vào CPU, trái lại CPU phải tỉ từ bock thứ Tag trên MainMem.

- Kích thước Block = 2W Word

- Trường Set có S bit dùng để xác định một trong số V = 2S Set - Trường Tag có T bit: T = N - (W+S)

- Thông thường 2,4,8,16Lines/Set Ưu điểm:

- Tăng tốc độ tìm kiếm nhớ ứng dụng cơ ánh xạ trực tiếp đối với các SET.

5.4 Bộ nhớ trong (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Bài giảng kiến trúc máy tính pot (Trang 92 - 97)