Xem mẫu

15/11/2017

Bài 5
Tổ chức bộ nhớ
Phần BỘ NHỚ ĐỆM NHANH
(CACHE MEMORY)
(tham khảo trang 66
– KTMT Cần Thơ)

Ý tưởng thiết kế cache
Xác suất truy cập dữ liệu trong bộ nhớ trong
Một chương trình mất 90% thời gian thi hành lệnh
của nó để thi hành 10% số lệnh của chương trình.

Cache thiết kế dựa trên 2 nguyên tắc:
Nguyên tắc về thời gian: cho biết các ô nhớ được
hệ thống xử lý thâm nhập có khả năng sẽ được
thâm nhập trong tương lai gần.
Nguyên tắc về không gian: cho biết, bộ xử lý
thâm nhập vào một ô nhớ thì có nhiều khả năng
thâm nhập vào ô nhớ có địa chỉ kế

1

15/11/2017

Nguyên tắc chung
Cache có tốc độ nhanh
hơn bộ nhớ chính,
chứa dữ liệu và lệnh
thường dùng đến.
Cache được đặt giữa
CPU và bộ nhớ chính
nhằm tăng tốc độ truy
nhập bộ nhớ của CPU
Cache có thể được đặt
trên chip của CPU
(vận hành bằng bộ điều
khiển cache)

CPU

Bộ
nhớ

Cache

Chuyển
từng
từ

Chuyển
từng
khối

Ví dụ về thao tác của cache
CPU yêu cầu nội dung của ngăn nhớ
CPU kiểm tra trên cache với dữ liệu này
Nếu có, CPU nhận dữ liệu từ cache (nhanh)
(cache hit)
Nếu không có (cache miss),
đọc block nhớ chứa dữ liệu từ bộ nhớ chính
vào cache (lâu) (cache penalty).
Tiếp đó chuyển dữ liệu từ cache vào CPU

2

15/11/2017

Cấu trúc chung
của cache / bộ nhớ chính
Bộ nhớ chia thành các Block
cache chia làm các Line
có kích thước bằng nhau

Vận hành
Một số Block của bộ nhớ chính được nạp vào các
Line của cache.
Nội dung Tag (thẻ nhớ) cho biết block nào của bộ
nhớ chính hiện đang được chứa ở line đó.
Khi CPU truy nhập (đọc/ghi) một từ nhớ, có 2 khả
năng xảy ra:
Từ nhớ đó có trong cache (cache hit)
Từ nhớ đó không có trong cache (cache miss)

3

15/11/2017

Các vấn đề khi vận hành
Vì số line của cache ít hơn số block của bộ nhớ chính,
cần có một thuật giải ánh xạ thông tin trong bộ nhớ
chính vào cache.

Câu hỏi 1: Phải để một khối bộ nhớ vào chỗ
nào của cache (sắp xếp khối)?
Câu hỏi 2: Làm sao để tìm một khối khi nó
hiện diện trong cache (nhận diện khối)?
Câu hỏi 3: Khối nào phải được thay thế trong
trường hợp thất bại cache (thay thế khối)?
Câu hỏi 4: Việc gì xảy ra khi ghi vào bộ nhớ
(chiến thuật ghi)?

Các PP ánh xạ địa chỉ
a) Ánh xạ trực tiếp (Direct mapping)
Mỗi block của bộ nhớ chính chỉ có thể được nạp
vào 1 line duy nhất của cache.
Quy ước nạp: (với m là số line, đánh số: 0 đến m-1
B0 → L0 B1 → L1 ...... Bm-1 → Lm-1
Bm → L0 Bm+1 → L1
Vì thế:
L0 : B0, Bm, B2m ...
L1 : B1, Bm+1, B2m+1 ..
Kết luận: Bj chỉ có thể được nạp vào Li với i = j mod m

4

15/11/2017

Ví dụ 1(a)
Bộ nhớ trong có 32 khối, cache có 8 khối, mỗi
khối gồm 32 byte, khối thứ 12 của bộ nhớ trong
được đưa vào cache. Bộ nhớ có kích thước 1 KB

Thao tách trên bit của
Phép tính mod cho 2n: (8 = 23)
Tối đa 32 khối: 5 bit
12 giá trị nhị phân:
01100
12 mod 8 = 4, 3 bit cuối
100
12 / 8 = 1, 2 bit đầu
01
giá trị (01) được lưu trong Tag để phân biệt Block nào
đang nằm trong Line
Ví dụ: để phân biệt 4, 12, 20, 28
4/8=0
(00)
12 / 8 = 1
(01)
20 / 8 = 2
(10)
28 / 8 = 3
(11)

5

nguon tai.lieu . vn