CH04-Cache Pub

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 45

2

+
Chương 4
Bộ nhớ Cache
4.1 Tổng quan Hệ thống bộ nhớ máy tính
Các đặc tính của hệ thống bộ nhớ
Phân cấp bộ nhớ
4.2 nguyên tắc Bộ nhớ Cache
4.3 Các thành phần của Thiết kế Cache
Cache Addresses
Cache Size
+
Ánh xạ Chức năng
Các thuật toán thay thế
Chính sách ghi
Kích thước line
Số bộ nhớ Cache
4.4 Tổ chức Cache Pentium 4
NỘI DUNG
3
4

Đặc điểm chính của hệ thống bộ nhớ


máy tính

Bảng 4.1 Các đặc điểm chính của hệ thống bộ nhớ máy tính
+ 5

Đặc điểm của hệ thống bộ nhớ

„ Vị trí
„ Bộ nhớ có thể ở trong và ngoài máy tính
„ Bộ nhớ trong thường tương đương với bộ nhớ chính
„ Bộ xử lý cần có bộ nhớ cục bộ riêng của nó, dưới dạng thanh ghi
„ Cache là một dạng khác của bộ nhớ trong
„ Bộ nhớ ngoài bao gồm các thiết bị lưu trữ ngoại vi có thể truy cập
vào bộ xử lý thông qua bộ điều khiển I / O
„ Dung lượng
„ Bộ nhớ thường được biểu diễn dưới dạng byte
„ Đơn vị truyền
„ Đối với bộ nhớ trong, đơn vị truyền bằng số lượng đường dây điện
đi vào và ra khỏi module bộ nhớ
Phương pháp truy cập các khối dữ liệu 6

Truy cập Truy cập Truy cập


Kết hợp
tuần tự trực tiếp ngẫu nhiên
Bộ nhớ được Mỗi vị trí trong 1 từ được lấy ra
Dùng cơ chế bộ nhớ có một dựa trên 1 phần
tổ chức thành
đọc-ghi chia cơ chế định địa nội dung chứ
các đơn vị dữ
sẻ chỉ riêng không dựa trên
liệu - records địa chỉ của nó
Thời gian truy
Truy cập phải các block cập vào 1 vị trí mỗi vị trí có cơ
thực hiện theo hoặc record nhất định không chế định địa chỉ
một dãy tuần có địa chỉ duy đổi, không phụ riêng; thời gian
nhất dựa trên thuộc vào chuỗi truy cập không
tự các truy cập
vị trí thực tế đổi, không phụ
trước đó
thuộc vị trí hoặc
các mẫu truy
Thời gian truy Thời gian truy
1 vị trí bất kỳ có cập trước
cập biến động thể được lựa
cập biến chọn ngẫu nhiên,
động đánh địa chỉ và
Bộ nhớ cache
truy cập trực tiếp
có thể sử dụng
truy cập kết hợp
Bộ nhớ chính và
một số hệ thống
cache là truy
cập ngẫu nhiên
Dung lượng và Hiệu năng:
7

Hai đặc điểm quan trọng nhất của bộ nhớ

Ba tham số hiệu năng được sử dụng:

Thời gian truy cập


(độ trễ) Chu kỳ bộ nhớ
Tốc độ truyền tải
• Đối với bộ nhớ truy • Thời gian truy cập cộng
cập ngẫu nhiên, nó với thời gian cần trước • Tốc độ truyền dữ
là thời gian cần để khi truy cập thứ hai có liệu vào hoặc ra
thực hiện 1 thao tác thể bắt đầu khỏi bộ nhớ
đọc hoặc ghi • Liên quan đến hệ thống • Đối với bộ nhớ truy
• Đối với bộ nhớ truy bus, không liên quan cập ngẫu nhiên,
cập không ngẫu bộ xử lý tốc độ truyền tải
nhiên, nó là thời gian bằng 1/(chu kỳ)
cần để đặt cơ chế
đọc-ghi đến vị trí
mong muốn
+ Bộ nhớ 8

- Các dạng phổ biến nhất: Bộ nhớ bán dẫn, Bộ nhớ bề mặt
từ, Bộ nhớ quang, Bộ nhớ quang từ
- Với bộ nhớ truy cập ngẫu nhiên, vấn đề quan trọng khi
thiết kế là tổ chức hay sự sắp xếp vật lý của các bit để tạo
thành các từ word
+ Bộ nhớ 9

Một số đặc điểm vật lý quan trọng của lưu trữ dữ liệu:
„ Bộ nhớ khả biến (Volatile memory)
„ Thông tin bị phân rã tự nhiên hoặc bị mất khi nguồn điện tắt
„ Bộ nhớ bất biến (Non-volatile memory)
„ Thông tin một khi đã được ghi thì sẽ không bị hư hỏng cho
đến khi được cố tình thay đổi
„ Không cần cấp điện để giữ lại thông tin
„ Bộ nhớ bề mặt từ (Magnetic-surface memories)
„ Bất biến
„ Bộ nhớ bán dẫn (Semiconductor memory)
„ Khả biến hoặc bất biến
„ Bộ nhớ không xoá được (Nonerasable memory)
„ Không thể thay đổi, trừ khi phá hủy các khối lưu trữ
„ Bộ nhớ chỉ đọc (ROM) là bộ nhớ bán dẫn thuộc loại này
+ 10

Phân cấp bộ nhớ

„ Thiết kế bộ nhớ của máy tính cần trả lời ba câu hỏi:
„ How much, how fast, how expensive

„ Cần có sự cân đối giữa dung lượng, thời gian truy cập và chi
phí
„ Thời gian truy cập nhanh hơn, chi phí lớn hơn cho mỗi bit
„ Dung lượng lớn hơn, chi phí nhỏ hơn cho mỗi bit
„ Dung lượng lớn hơn, thời gian truy cập chậm hơn

„ Giải pháp cho tình trạng khó xử khi thiết kế bộ nhớ:


„ Không dựa vào một thành phần hoặc công nghệ bộ nhớ
„ Sử dụng một hệ thống phân cấp bộ nhớ
+ Bộ nhớ phân cấp 11

- Sơ đồ
a Giảm chi phí cho mỗi bit
a.
bb. Tăng dung lượng
cc. Tăng thời gian truy cập
dài hơn
d
d. Giảm tần suất truy cập
d
bộ nhớ của bộ vi xử lý
b
+
2. NGUYÊN LÝ BỘ NHỚ CACHE

12
13
Bộ nhớ cache và bộ nhớ chính
BXL kiểm tra
xem từ có trong
cache hay
không:
- Nếu có, cache
gửi từ này đến
BXL (nhanh)
- Nếu không,
cache đọc 1
block trong bộ
nhớ chính, rồi
cache gửi word
đến BXL
Cấu trúc bộ nhớ chính/cache
14
15

Thao tác đọc


Cache
+ 16

Tổ chức bộ nhớ cache điển hình


17

3. Các yếu tố khi Thiết kế Cache

Table 4.2 Elements of Cache Design


+ 18

Địa chỉ bộ nhớ cache


Bộ nhớ ảo
„ Cơ sở cho phép các chương trình định địa chỉ bộ nhớ theo
quan điểm logic, không liên quan đến số lượng bộ nhớ
chính vật lý có sẵn

„ Khi
bộ nhớ ảo được sử dụng, trường địa chỉ trong lệnh
chứa địa chỉ ảo

„ Đểđọc ra và ghi vào bộ nhớ chính, một khối phần cứng


quản lý bộ nhớ (memory management unit - MMU) sẽ
dịch từng địa chỉ ảo sang địa chỉ vật lý trong
bộ nhớ chính
+

Cache vật lý

cache logic

Ưu điểm? Nhược điểm?


20

Bảng 4.3

Kích
thước
cache
trong
một số
bộ xử lý

a, Hai giá trị cách


nhau bằng dấu /
là cache lệnh và
cache dữ liệu.
b, Cả hai cache
đều là cache lệnh;
Không có cache
dữ liệu.
21

Hàm ánh xạ
„ Bởi vì số dòng (line) của cache ít hơn số khối (block) bộ nhớ
chính, cần có một thuật toán ánh xạ các khối bộ nhớ chính
vào các dòng bộ nhớ cache
„ Ba kỹ thuật có thể được sử dụng:

Trực tiếp Kết hợp Kết hợp Set


• Cho phép 1 khối bộ nhớ • Thể hiện ưu điểm
• Đơn giản nhất chính được tải vào bất của cả phương pháp
kỳ dòng cache nào trực tiếp và kết hợp,
• Ánh xạ mỗi khối của
• Logic điều khiển cache đồng thời giảm
bộ nhớ chính vào diễn giải địa chỉ bộ nhớ nhược điểm
một line cache xác bằng trường Tag và
định trường Word
• Để xác định một khối có
ở trong cache không,
logic điều khiển cache
phải cùng lúc kiểm tra
Tag của tất cả các line
22

Ánh xạ trực tiếp

Hàm ánh xạ: i = j mod m


trong đó i = số chỉ line cache
j = số chỉ block bộ nhớ chính
m = tổng số line trong cache
Tổ chức cache ánh xạ trực tiếp
23
+ 24

Ví dụ

„ Cache 64 Kbyte

„1 word = 1 byte

„ Block dữ liệu 4 byte (word)

„ Cache gồm 16K = 214 line, mỗi line 4 byte

„ Địa chỉ bộ nhớ 24 bit


„ 224 = 16M

„ Bộ nhớ chính 16Mbyte, chia thành 4M block


25

Ví dụ
ánh
xạ
trực
tiếp
+ 26

Tổng kết ánh xạ trực tiếp

„ Độ dài địa chỉ nhớ = (s + w) bits

„ Số lượng đơn vị địa chỉ= 2s+w words or bytes

„ Kích thước khối= kích thước line = 2w words or bytes

„ Số khối trong bộ nhớ chính = 2s+ w/2w = 2s

„ Số line trong bộ nhớ cache = m = 2r

„ Kích thước của tag = (s – r) bits


27

Ánh xạ kết hợp

Cho phép 1 khối bộ nhớ chính được tải vào bất kỳ dòng cache nào
28

Tổ chức Cache kết hợp


29

Ví dụ
ánh
xạ
kết
hợp
+ 30

Tổng kết ánh xạ kết hợp

„ Độ dài địa chỉ = (s + w) bit

„ Số lượng đơn vị địa chỉ = 2s+w word hoặc byte

„ Kích thước block = Kích thước line = 2w word hoặc byte

„ Số lượng block trong bộ nhớ chính = 2s+ w/2w = 2s

„ Số lượng line trong cache = không xác định

„ Kích thước tag = s bit


31

Ánh xạ kết hợp tập hợp

„ Thể hiện ưu điểm của cả phương pháp trực tiếp và kết hợp
đồng thời giảm nhược điểm
„ Cache bao gồm một số set (v)
„ Mỗi set chứa một số line (k)
„ 1 khối được ánh xạ vào 1 line bất kỳ trong 1 set nhất định
„ Mối quan hệ:
„ m = v* k
„ i = j modulo v

„ Ví dụ: 1 set có 2 line


„ Ánh xạ kết hợp 2 chiều
„ Một khối có thể nằm trong 1 trong 2 line của 1 set
+
Ánh xạ
Kết hợp
tập hợp
k chiều
33
Tổ chức cache kết hợp tập hợp k chiều
34
+ 35

Tổng kết ánh xạ kết hợp tập hợp

„ Độ dài địa chỉ = (s + w) bits


„ Số lượng đơn vị địa chỉ = 2s+w words or bytes
„ Kích thước khối= kích thước line = 2w words or bytes
„ Số khối trong bộ nhớ chính = 2s+w/2w=2s
„ Số line trong set = k
„ Số set = v = 2d
„ Số line trong cache = m=kv = k * 2d
„ Kích thước của cache = k * 2d+w words or bytes
„ Kích thước của tag = (s – d) bits
+ Sự kết hợp thay đổi theo kích thước cache 36
+ 37

Thuật toán Thay thế

„ Khibộ nhớ cache đã đầy, nếu một khối mới được đưa
vào cache, một trong những khối hiện có phải được
thay thế
„ Đốivới ánh xạ trực tiếp: chỉ có một line có thể cho một
khối bất kỳ và không có sự lựa chọn nào khác
„ Đối
với các kỹ thuật kết hợp và kết hợp tập hợp, cần có
một thuật toán thay thế
„ Để đạt được tốc độ cao, thuật toán phải được thực hiện
trong phần cứng
+ 38

Các thuật toán thay thế phổ biến

„ Least recently used (LRU)


„ Hiệu quả nhất
„ Thay thế khối nằm trong cache lâu nhất mà không có tham chiếu đến

„ Do triển khai đơn giản, LRU là thuật toán thay thế phổ biến nhất

„ First-in-first-out (FIFO)
„ Thay thế khối đã nằm trong cache lâu nhất
„ Dễ dàng thực hiện như một kỹ thuật vòng đệm hoặc round-robin

„ Least frequently used (LFU)


„ Thay thế khối có ít tham chiếu đến nó nhất
„ Có thể thực hiện bằng cách kết hợp một bộ đếm với mỗi line
39
Chính sách ghi

Khi một khối trong cache


được thay thế, có 2 trường Có hai vấn đề phải đối mặt:
hợp cần xem xét:

Nếu khối cũ trong cache chưa thay Nhiều thiết bị có thể truy cập vào bộ
đổi, có thể ghi đè khối mới lên mà nhớ chính
không cần ghi khối cũ ra trước

Nếu ít nhất 1 thao tác ghi đã được Một vấn đề phức tạp hơn xảy ra khi
thực hiện trên 1 word trong line của nhiều bộ xử lý được gắn vào cùng
cache thì bộ nhớ chính phải được một bus và mỗi bộ xử lý lại có
cập nhật bằng cách ghi line của cache cục bộ riêng - nếu một word
cache ra khối của bộ nhớ trước khi bị thay đổi trong một cache, nó có
đưa khối mới vào thể làm mất hiệu lực một word
trong các cache khác
+ 40

Write Through
và Write Back
„ Write through
„ Kỹ thuật đơn giản nhất
„ Tất cả các thao tác ghi được thực hiện cho bộ nhớ chính cũng
như cache
„ Nhược điểm: tạo ra lưu lượng bộ nhớ đáng kể và có thể tạo ra
nút cổ chai
„ Write back
„ Giảm ghi bộ nhớ
„ Chỉ cập nhật trong bộ nhớ cache
„ Nhiều phần bộ nhớ chính không hợp lệ. Do đó truy cập bằng các
mô-đun I / O chỉ có thể được cho phép thông qua cache
„ Nhược điểm: mạch phức tạp và khả năng có nút cổ chai
+ 41

Ghi vào cache


„ Đầu tiên, giả sử rằng địa chỉ mà ta muốn ghi vào đã được nạp
vào cache. Giả sử cache dùng ánh xạ trực tiếp.

„ Nếu ghi 1 giá trị mới vào địa chỉ đó để lưu trữ dữ liệu mới trong cache
+ 42

Write through

„ Ghi để cập nhật cả bộ nhớ cache và bộ nhớ chính

+ Đơn giản

-- Mất ý nghĩa của cache


+ Write-back 43

„ Ghi dữ liệu vào cache trước, không cập nhật main memory luôn

„ Các lệnh đọc sau đó được phục vụ bởi cache


„ Lưu dữ liệu mới về main memory chỉ khi block trong cache bị thay thế
Kích thước Line
44

Khi 1 khối dữ liệu được lấy ra và đặt trong cache, sẽ thu được không
chỉ word mong muốn mà còn 1 số word liền kề

Khi kích thước khối tăng, ban đầu tỷ lệ truy cập sẽ tăng do nguyên tắc
cục bộ

Khi kích thước khối tăng thêm, nhìều dữ liệu hữu ích hơn được đưa
vào cache

Tỷ lệ truy cập bắt đầu giảm khi khối lớn hơn và xác suất sử dụng
thông tin mới truy xuất sẽ thấp hơn xác suất tái sử dụng thông tin đã
thay thế
2 tác động:
1, Khối lớn hơn làm giảm số lượng khối trong 1 cache
2, Khi 1 khối lớn hơn, mỗi word thêm vào lại càng khác word yêu cầu
+ 45

Cache nhiều cấp

„ Khi mật độ logic tăng lên, cache có thể nằm trên cùng chip với bộ xử lý
„ Cache trên chip làm giảm hoạt động bus ngoài của bộ xử lý; tăng tốc
thời gian xử lý và tăng hiệu năng toàn hệ thống
„ Khi chỉ thị yêu cầu hoặc dữ liệu được tìm thấy trong cache trên chip,
truy cập bus được loại bỏ
„ Truy cập bộ nhớ cache trên chip sẽ nhanh hơn đáng kể so với các chu
trình bus trạng thái zero-wait
„ Trong giai đoạn này, bus tự do hỗ trợ các lượt truyền khác
„ Cache 2 cấp: Cache bên trong là cấp1 (L1), Cache bên ngoài là cấp 2
(L2)
„ Tiết kiệm tiềm năng do sử dụng cache L2 phụ thuộc vào tỷ lệ truy cập
vào cả cache L1 và L2
„ Việc sử dụng cache nhiều cấp làm cho các vấn đề thiết kế liên quan đến
cache phức tạp hơn, gồm kích thước, thuật toán thay thế, chính sách ghi
Tỉ lệ truy cập (L1 & L2) cho 8 Kbyte và 16 Kbyte L1 46

You might also like