1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Kiến trúc máy tính: Chương 5 - Tổ chức bộ nhớ (Phần bộ nhớ đệm nhanh)

11 304 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 237,09 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung sau: Ý tưởng thiết kế cache, nguyên tắc chung, cấu trúc chung của cache / bộ nhớ chính, các vấn đề khi vận hành, các PP ánh xạ địa chỉ,...

Trang 1

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ế

Trang 2

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)

Chuyển từng từ

Chuyển từng khối

CPU Cache nhớ Bộ

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

Trang 3

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)

Trang 4

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

Trang 5

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: 0 1 1 0 0

12 mod 8 = 4, 3 bit cuối 1 0 0

12 / 8 = 1, 2 bit đầu 0 1

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)

Trang 6

(cơ chế)

Địa chỉ CPU phát ra có N bit, được chia thành 3

trường:

Trường Byte (có n1 bit) để xác định byte nhớ trong

Line (Block)

2n1 = kích thước 1 Line

Trường Line (có n2 bit) để xác định Line trong

Cache

2n2 = số Line trong Cache

Dung lượng Cache = 2n1 x 2n2 = 2n1+n2

Trường Tag (có n3 bit): số bit còn lại

n3 = N - (n1 + n2) > 0 vì 2N >> 2n1+n2

Trang 7

Ví dụ 1(b)

Trường Byte:

Địa chỉ từ (byte) nhớ: 5 bit

Trường Line: 3 bit

Trường Tag: 2 bit

Ví dụ: truy cập từ nhớ có địa chỉ (10 bit) 195h

0 1 /1 0 0/1 0 1 0 1

b) Ánh xạ liên kết toàn phần (Fully Associative Mapping)

Mỗi Block có thể được nạp vào bất kỳ Line nào của

cache

Địa chỉ bộ nhớ do CPU phát ra được chia thành 2

phần: Tag và Byte

Để kiểm tra xem một Block có trong cache hay không,

phải đồng thời kiểm tra tất cả Tag của các Line trong

cache

Cần các mạch phức tạp để kiểm tra

Trang 8

c) Ánh xạ liên kết tập hợp (Set Associative Mapping)

Là phương pháp dung hòa của 2 phương pháp trên

Chia cache thành các tập: S0, S1, S2

Mỗi Set có một số Line (2, 4, 8, 16 Line)

Vd mỗi Set có 2 line

Mỗi block được nạp vào 1 line nào đó trong Set nhất

định:

B0 → S0 B1→ S1 Bk-1→ Sk-1

Bk → S0

Địa chỉ do CPU phát ra có 3 trường: Tag, Set, Byte

Ví dụ 2

Hệ thống có:

bộ nhớ chính = 256 MB

Cache = 128 KB

Line = 16 Byte

Xác định số bit của các trường địa chỉ khi

Ánh xạ trực tiếp

Ánh xạ liên kết tập hợp 4 Line/Set

Trang 9

1) 2 N = 256 x 2 20 = 2 28 ⇒N = 28 bit

Tính cho trường Byte:

Kích thước line = 16 = 2 4 Byte ⇒ n1 = 4 bit

Tính cho trường Line:

Số line trong Cache: 128 x 2 10 / 16 = 2 13 ⇒ n2 = 13 bit

Tính cho trường Tag:

n3 = N - (n1 + n2) = 28 - (4 + 13) = 11 bit

2)

Trường Byte:

n1 = 4 bit

Trường Set:

Số Set = Số line / 4 = 2 13 / 4 = 2 11 ⇒n2 = 11 bit

Trường Tag:

n3 = N - (n1 + n2) = 28 - (4 + 11) = 13 bit

3 Các thuật giải thay thế block trong cache

Khi CPU truy nhập một thông tin mà không có

trong cache (cache miss) thì nạp block chứa

thông tin đó vào trong cache để thay thế block cũ

trong cache

Ánh xạ trực tiếp chỉ có 1 cách nạp không cần

thuật giải để nạp

Hai phương pháp ánh xạ liên kết cần có thuật giải

để lựa chọn thay thế

Trang 10

Các thuật giải thay thế block trong cache

1 Random: thay block một cách ngẫu nhiên.

2 FIFO (First In, First Out): thay thế block đã tồn tại lâu

nhất trong toàn cache đối với ánh xạ liên kết toàn

phần, trong set đối với ánh xạ liên kết tập hợp.

3 LFU (Least Frequently Used): thay block có số lần

truy nhập ít nhất.

4 LRU (Least Recently Used): thay block có khoảng

thời gian dài nhất không được truy nhập được đánh

giá là hiệu quả nhất.

4 Phương pháp ghi dữ liệu khi cache hit

(để đồng bộ dữ liệu giữa cache và bộ nhớ)

Ghi xuyên qua (Write through)

ghi cả cache và bộ nhớ chính

tốc độ chậm

Ghi trả sau (Write back)

chỉ ghi ra cache

tốc độ nhanh

khi block trong cache bị thay thế cần phải ghi trả

cả block về bộ nhớ chính

Trang 11

Các mức cache

Việc dùng cache trong có thể làm cho sự cách

biệt giữa kích thước và thời gian thâm nhập giữa

cache trong và bộ nhớ trong càng lớn

Người ta đưa vào nhiều mức cache:

Cache mức một (L1 cache): thường là cache

trong (on-chip cache; nằm bên trong CPU)

Cache mức hai (L2 cache) thường là cache ngoài

(off-chip cache; cache này nằm bên ngoài CPU)

Ngoài ra, trong một số hệ thống còn có tổ chức

cache mức ba (L3 cache), đây là mức cache

trung gian giữa cache L2 và một thẻ bộ nhớ

Ngày đăng: 30/01/2020, 17:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w