Bài giảng Kiến trúc máy tính - Chương 4: Bộ nhớ Cache cung cấp cho người học các kiến thức: Tổng quan Hệ thống bộ nhớ máy tính, nguyên tắc Bộ nhớ Cache, các thành phần của Thiết kế Cache, tổ chức Cache Pentium 4. Mời các bạn cùng tham khảo.
Trang 1+
KIẾN TRÚC MÁY TÍNH
Trang 2+ Chương 4
Bộ nhớ Cache
Trang 3+
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
Trang 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
Trang 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ớ
Trang 6Phương pháp truy cập các khối dữ liệu
Dùng cơ chế đọc-ghi chia
sẻ
các block hoặc record
có địa chỉ duy nhất dựa trên
vị trí thực tế
Thời gian truy cập biến động
Truy cập ngẫu nhiên
Mỗi vị trí trong
bộ nhớ có một
cơ chế định địa chỉ riêng
Thời gian truy cập vào 1 vị trí nhất định không đổi, không phụ thuộc vào chuỗi các truy cập trước đó
1 vị trí bất kỳ có thể được lựa chọn ngẫu nhiên, đánh địa chỉ và truy cập trực tiếp
Bộ nhớ chính và một số hệ thống cache là truy cập ngẫu nhiên
Kết hợp
1 từ được lấy ra dựa trên 1 phần nội dung chứ không dựa trên địa chỉ của nó
mỗi vị trí có cơ chế định địa chỉ riêng; thời gian truy cập không đổi, không phụ thuộc vị trí hoặc các mẫu truy cập trước
Bộ nhớ cache
có thể sử dụng truy cập kết hợp
Trang 7Dung lượng và Hiệu năng:
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
• Liên quan đến hệ thống bus, không liên quan
bộ xử lý
Tốc độ truyền tải
• Tốc độ truyền dữ liệu vào hoặc ra khỏi bộ nhớ
• Đối với bộ nhớ truy cập ngẫu nhiên, tốc độ truyền tải bằng 1/(chu kỳ)
Trang 8+ Bộ nhớ
- 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
Trang 9+ Bộ nhớ
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
Trang 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ớ
Trang 11+ Bộ nhớ phân cấp
- Sơ đồ
a Giảm chi phí cho mỗi bit
b Tăng dung lượng
c Tăng thời gian truy cập
dài hơn
d Giảm tần suất truy cập
bộ nhớ của bộ vi xử lý
Trang 12+
2 NGUYÊN LÝ BỘ NHỚ CACHE
12
Trang 14Cấu trúc bộ nhớ chính/cache
Trang 15Thao tác đọc Cache
Trang 16+
Tổ chức bộ nhớ cache điển hình
Trang 173 Các yếu tố khi Thiết kế Cache
Table 4.2 Elements of Cache Design
Trang 18+
Địa chỉ bộ nhớ cache
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
Bộ nhớ ảo
Trang 19+
Cache vật lý
và cache logic
Ưu điểm? Nhược điểm?
Trang 20là cache lệnh và
cache dữ liệu
b, Cả hai cache
đều là cache lệnh; Không có cache
dữ liệu
Trang 21kỳ dòng cache nào
• Logic điều khiển cache diễn giải địa chỉ bộ nhớ bằng trường Tag và 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
Kết hợp Set
• 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
Trang 23Tổ chức cache ánh xạ trực tiếp
Trang 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
Trang 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
Trang 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
Trang 28Tổ chức Cache kết hợp
Trang 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
Trang 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
Trang 32+
Ánh xạ Kết hợp tập hợp
k chiều
Trang 33Tổ chức cache kết hợp tập hợp k chiều
Trang 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
Trang 36+ Sự kết hợp thay đổi theo kích thước cache
Trang 37+
Thuật toán Thay thế
Khi bộ 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ế
Đối vớ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
Trang 38+
Các thuật toán thay thế phổ biến
Least recently used (LRU)
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
Trang 39Khi một khối trong cache
được thay thế, có 2 trường
hợp cần xem xét:
Nếu khối cũ trong cache chưa thay
đổi, có thể ghi đè khối mới lên mà
không cần ghi khối cũ ra trước
Nếu ít nhất 1 thao tác ghi đã được
thực hiện trên 1 word trong line của
cache thì bộ nhớ chính phải được
cập nhật bằng cách ghi line của
cache ra khối của bộ nhớ trước khi
đưa khối mới vào
Có hai vấn đề phải đối mặt:
Nhiều thiết bị có thể truy cập vào bộ
nhớ chính
Một vấn đề phức tạp hơn xảy ra khi nhiều bộ xử lý được gắn vào cùng một bus và mỗi bộ xử lý lại có cache cục bộ riêng - nếu một word
bị thay đổi trong một cache, nó có thể làm mất hiệu lực một word
trong các cache khác
Chính sách ghi
Trang 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
Trang 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
Trang 43+ Write-back
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ế
Trang 44Tỷ 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
Trang 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
Trang 46Tỉ lệ truy cập (L1 & L2) cho 8 Kbyte và 16 Kbyte L1
Trang 47+
Cache thống nhất / cache phân chia
Phân chia cache trở nên phổ biến:
1 dành cho chỉ thị / 1 cho dữ liệu
Tồn tại ngang hàng, thường là 2 cache L1
Ưu điểm của cache thống nhất:
Tốc độ truy cập cao hơn
Cân bằng tải chỉ thị và dữ liệu được nạp tự động
Chỉ cần thiết kế và thực hiện một bộ nhớ cache
Xu hướng: cache phân chia ở L1 và cache thống nhất ở các cấp cao hơn
Ưu điểm của cache phân chia:
Loại bỏ sự cạnh tranh cache giữa khối tìm nạp / giải mã lệnh và khối thực hiện
Quan trọng trong pipelining
Trang 484
Cache Pentium
4
Bảng 4.4 Intel
Cache Evolution
Bộ nhớ ngoài chậm hơn bus hệ
thống
Thêm cache ngoài dùng công nghệ bộ nhớ nhanh hơn 386
Tăng tốc độ xử lý dẫn đến bus ngoài
trở thành nút cổ chai đối với truy cập
cache
Di chuyển cache ngoài lên chip, hoạt động ở cùng tốc độ với bộ vi xử lý
Có cạnh tranh khi cả khối truy xuất
lệnh và khối thực thi đồng thời yêu
cầu truy cập vào cache Khi đó, khối
truy xuất bị đình trệ trong khi truy
cập dữ liệu của khối thực thi diễn ra
Tạo cache dữ liệu và lệnh riêng
Pentium
Tăng tốc độ xử lý dẫn đến bus ngoài
trở thành nút cổ chai cho truy cập
cache L2
Tạo back-side bus chạy ở tốc
độ cao hơn bus ngoài chính (phía trước) BSB dành riêng cho cache L2
Pentium Pro
Di chuyển L2 cache lên chip
xử lý Pentium II
Một số ứng dụng xử lý cơ sở dữ liệu
khổng lồ và phải truy cập nhanh
tới lượng lớn dữ liệu Cache trên
chip là quá nhỏ
Thêm cache L3 bên ngoài Pentium III
Di chuyển L3 cache lên chip
xử lý Pentium 4
48
Trang 49Sơ đồ khối Pentium 4
Trang 50Các chế độ hoạt động Cache Pentium 4
Note: CD = 0; NW = 1 là kết hợp không hợp lệ
Trang 52+
Câu hỏi chương 4
1 Phân biệt truy cập tuần tự, truy cập trực tiếp, và truy cập ngẫu nhiên?
2 Mối quan hệ giữa thời gian truy cập, giá bộ nhớ, và dung lượng là gì?
3 Tính cục bộ của tham hiếu ảnh hưởng thế nào đến việc sử dụng nhiều cấp độ
8 Phân biệt write through và write back?
9 Ưu và nhược điểm của cache phân chia?