Mt s lưu ý v cách thc mapping gia b nh đệm (cache) và b nh chính
(RAM)
1. Cách lưu tr
- C cache ln RAM đều được phân thành nhiu ô nh, mi ô nh có dung lượng mc
định là 1 byte
oCache = 256 KB = 218 byte Cache có tng cng 218 ô nh
oRAM = 4 GB = 232 byte RAM có tng cng 232 ô nh
-Đối vi cache, nó s gom W ô nh liên tiếp nhau (tc W byte) để to thành 1 Line
-Đới vi RAM, do quy định kích thước 1 Block = 1 Line nên W ô nh liên tiếp trong
RAM cũng s to thành 1 Block
Nếu ta dùng w bit để đánh địa ch các ô nh trong 1 Line (hoc 1 Block) thì ta có
công thc W = 2w
oKích thước 1 Line = 1 Block = W = 32 byte (25) Mi Line (Block) có 32 ô
nh Ta cn w = 5 bit để có th đánh địa ch tt c ô nh trong 1 Line
(Block)
- Trong quá trình lưu chuyn để thc thi lnh CPU cn truy xut giá tr 1 ô nh nào đó,
nó s đi tìm trong Cache xem ô nh đó có nm trong đó sn hay chưa, do đó có 2
kh năng:
oCache hit: Ô nh CPU đang cn đang nm sn trong Cache, do vy ch cn
ly ra là xong
oCache miss: Ô nh CPU đang cn không nm sn trong Cache mà vn còn
nm trong RAM, do vy cn phi chuyn Block cha ô nh đó t RAM sang
Cache để CPU truy xut
- Câu hi đặt ra là:
oGi s CPU mun tìm 1 ô nh có địa ch là X (bit), làm sao nó biết được X
đang nm trong Cache (cache hit) hay vn còn nm trong RAM (Cache
miss) ?
oNếu xy ra cache miss thì nhng Block cha ô nh chuyn t RAM vào
Cache s nm Line nào trong Cache ? Vic chuyn vào xy ra lúc nào ?
Trong Cache người ta cn phi có 1 trường Tag kết ni vi tng Line để cha thông
tin trước đó Block nào RAM đã được đưa vào Line này
Do lượng ô nh trong Cache và RAM rt ln, người ta buc phi có 1 cách thc lưu tr
hp lý và c th, nếu không thì khi tìm kiếm phi vét cn (duyt hết tt c các ô nh)
2. Các thut toán mapping (ánh x) gia Cache và RAM
2.1. Direct mapping
-Đây là phương pháp ánh x trc tiếp, có nghĩa là:
oBlock 0 đưa vào Cache chc chn s được đưa vào Line th 0 ca Cache
oBlock 1 đưa vào Cache chc chn s được đưa vào Line th 1 ca Cache
o
oBlock m – 1 đưa vào Cache chc chn s được đưa vào Line th m - 1 ca
Cache
- Gi s ti đây s lượng Line trong Cache ch là m Line trong khi s lượng Block ln
hơn rt nhiu, vy Block th m s được đưa vào Line nào? Câu tr li là Line th 0
(xoay vòng)
oBlock m đưa vào Cache chc chn s được đưa vào Line th 0 ca Cache
oBlock m + 1 đưa vào Cache chc chn s được đưa vào Line th 1 ca Cache
o
- Suy ra tng quát Block th j đưa vào Cache chc chn s được đưa vào Line th j %
m ca Cache (vi m là tng s lượng Line trong Cache)
- Do vy để biết được Block nào được đưa vào Line đang xét, ta s s dng trường
Tag ca Line đó để xác định.
- Vy bây gi gi s CPU cn truy xut ô nh có địa ch là X gm N bit, nếu b nh
đang s dng phương pháp Direct mapping thì N bit đó phi được t chc như thế
nào để tr li được các câu hi đã đặt ra trên?
- Tr li: N bit đó s được chia thành 3 phn: Tag (bit) – Line (bit) – Word (bit) vi ý
nghĩa
oWord (có W bit chính là s bit để đánh địa ch các ô nh trong 1 Line hay 1
Block) Giá tr ca trường Word cho biết ô nh CPU đang tìm nm chính xác
v trí nào trong Line / Block (vì nó lưu giá tr địa ch ô nh trong Line / Block)
oLine (có L bit chính là s bit để đánh địa ch các Line trong Cache): Giá tr ca
trường Line cho biết ô nh CPU đang tìm nm chính xác Line nào trong
Cache
oTag (có T bit = N – L – W): Ý nghĩa ca Tag cho biết Block nào ca RAM s
được lưu Line đang xét, do vy giá tr ca trường Tag (T bit) đây dùng để
kim tra xem Line đang xét có thc s lưu thông tin ca ô nh (được cha bi
Block trong RAM) đang tìm hay không
oVí d: Xem ví d trong slide B nh (Slide 33, 34, 35)
- Vy vi cách thc lưu tr mapping như vy, khi xác định ô nh cn tìm nm Cache
(màu hng) hay RAM (màu xanh) thì quy trình làm thế nào?
- Bước 1: Ly giá tr Line trong N bit ca X ra, đây là giá tr cho biết ô nh đang tìm
nếu nm trong Cache ch có th nm Line này
- Bước 2: Ly giá tr Tag ca Line đó ra, so khp vi giá tr Tag ca X, có 2 kh năng:
oBng nhau (Cache hit): Chc chn ô nh cn tìm đang nm Line này, vn
đề còn li ch là nm ô nh nào trong các ô nh ca Line đó thôi D
dàng xác định nh vào giá tr Word (địa ch ô nh trong Line/Block)
oKhông bng nhau (Cache miss): Chc chn ô nh cn tìm không nm Line
đó nó nm RAM. Để xác định nm Block nào trong RAM, ch cn kết
hp 2 giá tr Tag và Line ca X ta s có địa ch ca Block đang cha ô nh đó
trong RAM (Xem ví d trong slide 35). Vn đề còn li ch là nm ô nh nào