Kiến trúc hệ thống nhớ
4.1. Công nghệ hệ thống nhớ.
4.2. Hệ thống nhớ chính.
Các đặc trưng của hệ thống nhớ
Vị trí
Bên trong CPU:
Bộ nhớ trong:
Tập thanh ghi
Bộ nhớ chính
Bộ nhớ cache
Bộ nhớ ngồi: các thiết bị nhớ
Dung lượng
Độ dài từ nhớ (tính bằng bit)
Số lượng từ nhớ
Các đặc trưng của hệ thống nhớ
(tiếp)
Đơn vị truyền
Từ nhớ
Khối nhớ
Phương pháp truy nhập
Truy nhập tuần tự (băng từ)
Truy nhập trực tiếp (các loại đĩa)
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn)
Truy nhập liên kết (cache)
Các đặc trưng của hệ thống nhớ
(tiếp)
Hiệu năng (performance)
Thời gian truy nhập
Chu kỳ nhớ
Tốc độ truyền
Kiểu vật lý
Bộ nhớ bán dẫn
Bộ nhớ từ
Bộ nhớ quang
Các đặc trưng của hệ thống nhớ
(tiếp)
Các đặc tính vật lý
Khả biến / Khơng khả biến
(volatile / nonvolatile)
Xố được / khơng xố được
Phân cấp hệ thống nhớ
Bộ nhớ đệm (cache)
Nguyên tắc chung của cache
Nguyên
lý
cục
nhớ:
bộ
hoá
tham
chiếu
bộ
Thời gian: Một lệnh hoặc dữ liệu vừa được truy nhập thì thường sẽ được truy nhập
ngay sau đó.
Khơng gian: Một lệnh hoặc một dữ liệu vừa được truy nhập thì thường những lệnh
hoặc dữ liệu lân cận sẽ được truy nhập ngay sau đó.
Ví dụ:
Cấu trúc chương trình tuần tự
Vịng lặp có thân nhỏ
Cấu trúc dữ liệu mảng
Nguyên tắc chung của cache
(tiếp)
Cache có tốc độ nhanh hơn bộ nhớ chính.
Cache
được
đặt
giữa
nhằm tăng tốc độ CPU truy cập bộ nhớ.
Cache có thể được đặt trên chip CPU.
CPU
và
bộ
nhớ
chính
Ví dụ hoạt động 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ữ
(nhanh) – Hit cache
Nếu
khơng
có,
đọc
Block
liệu từ bộ nhớ chính vào cache – Miss cache
Tiếp
đó
chuyển
dữ
liệu
CPU.
liệu
từ
nhớ
chứa
từ
cache
cache
dữ
vào
Tổ chức bộ nhớ cache và bộ nhớ
chính
Tổ chức bộ nhớ cache và bộ nhớ
chính (tiếp)
Bộ nhớ chính có 2N byte nhớ
Bộ
nhớ
chính
và
cache
các khối có kích thước bằng nhau
Bộ nhớ chính: B0, B1, B2, ... , Bp-1 (p Blocks)
Bộ nhớ cache: L0, L1, L2, ... , Lm-1 (m Lines)
m<
Kích
thước
của
Block
=
được
chia
8,16,32,64,128
thành
byte
Tổ chức bộ nhớ cache và bộ nhớ
chính (tiếp)
Khi CPU truy nhập (đọc/ghi) một từ nhớ có
2 khả năng xảy ra:
•
Từ nhớ có trong cache (hit cache)
• Từ nhớ khơng có trong cache (miss cache)
•
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 đó.
Bit F báo hiệu nội dung của Line
có thay đổi hay không. F = 0 không
đổi; F = 1 có thay đổi.
Các phương pháp ánh xạ
Ánh xạ trực tiếp (direct mapping)
Ánh xạ liên kết toàn phần (Fully associative mapping)
Ánh xạ liên kết tập (Set associative mapping)
Ánh xạ trực tiếp
Mỗi Block của bộ nhớ chính chỉ có thể được nạp vào một Line của cache:
B0 → L0
B1 → L1
....
Bm-1 → Lm-1
Bm → L0
Bm+1 → L1
....
Tổng quát
Bj chỉ có thể nạp vào L j mod m
m là số Line của cache.
Mod là phép chia lấy phần dư.
Ví dụ: Cache có 16
lines. Hỏi block 100
nạp vào line nào
của cache?
100 mod 16 = 4
Minh họa ánh xạ trực tiếp
Đặc điểm của ánh xạ trực tiếp
Mỗi
một
ba trường:
N
bit
của
gồm
W
bit
bộ
xác
nhớ
định
chính
một
từ
gồm
nhớ
2W = kích thước của Block hay Line
Trường Line (n2) gồm L bit xác định một trong số các Line trong cache:
2L = số Line trong cache = m dung lượng cache = 2L+W
Trường Tag (n3) gồm T bit xác định block nhớ cần truy cập dựa vào số block: 2T = số
block.
chỉ
Trường
Word
(n1)
trong Block hay Line:
địa
N = T+L+W
Bộ so sánh đơn giản
Xác suất cache hit thấp
Ví dụ minh họa
CPU có 24 bit địa chỉ (224 byte = 16MB), bộ nhớ chính 256 KB chia làm
512 block nhớ, bộ nhớ cache có dung lượng 8 KB. Khi CPU được lệnh
phát ra địa chỉ truy nhập bộ nhớ là 308842h. Hãy trình bày chi tiết
phương pháp đọc cache theo kỹ thuật ánh xạ trực tiếp cho trường hợp
phát ra địa chỉ trên và cho biết địa chỉ ô nhớ cần truy cập trong bộ nhớ
chính.
Đỉa chỉ có hợp lệ khơng? Xác định chiều dài địa chỉ hợp lệ là bảo nhiêu
bit? Block có nạp đúng line của cache không? T, L, W (n 3,n2,n1).
Giải ví dụ minh họa
Bước 1: Xác định dung lượng của 1 block (line) nhớ.
Cmemory
256 KB 28 210
9
Bước
C2:block
cache
2 (byte)
Xác
định số line của
9
nblock
512
2
→ W (n1) = 9 bits
→ L (n2) = 4 bits. Dùng 4 bits để đánh số hiệu cho line (0 – 15)
nline
Ccache
8 KB
16 2 4 (lines)
Cblock 0.5 KB
Giải ví dụ minh họa (tiếp)
Bước 3: Xác định số bits để đánh số hiệu block trong bộ nhớ.
Số block = 512 = 29
→ T (n3)= 9 (bits)
Bước 4: Xác định số bits địa chỉ hợp lệ
N = W + L + T = 9 + 4 + 9 = 22 (bits)
Bước 5: Đọc bộ nhớ địa chỉ 308842h
Xác định tính hợp lệ của địa chỉ
308842h = 1100001000100001000010b
→ Địa chỉ hợp lệ vì số bits là 22 bits. thỏa mãn chiều dài (số bít <=N)
Xác đinh số line trong cache cần truy cập: 0100b = 4 → Truy cập line 4
trong cache.
Bước 5 (tiếp)
Xác định số hiệu block của bộ nhớ cần truy cập.
BI (Block index) = 1100001002 = 28 + 27 + 22 = 256 + 128 + 4 = 388.
→ block nhớ cần truy cập là 388.
Xác định block có nạp đúng line của cache khơng.
Số hiệu line = số hiệu block mod số line của cache
→ số hiệu line = 388 mod 16 = 4 → block nạp đúng → địa chỉ hợp lệ
CPU phát địa chỉ của ô nhớ cần truy cập ra bus địa chỉ.
Bước 6. Bộ điều khiển cache (MMU – Memory Management Unit) sẽ
truy cập vào line 4 của cache và đọc trường Tag của line này, sau đó
đem so sánh với số hiệu block cần truy cập 388. Có 2 khả năng xảy ra.