Hệ thống nhớ máy tính
Tổng quan về hệ thống nhớ Bộ nhớ bán dẫn Bộ nhớ chính Bộ nhớ cache Bộ nhớ ngoài.
Bạn đang xem trước 20 trang tài liệu Hệ thống nhớ máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1
KiÕn tróc m¸y tÝnh
Ch¬ng 3-
Hệ thống nhớ máy tính
thuhienktv@gmail.com
2
Néi dung về hệ thống nhớ
Tæng quan vÒ hÖ thèng nhí
Bé nhí b¸n dÉn
Bé nhí chÝnh
Bé nhí cache
Bé nhí ngoµi.
3
1. Tổng quan về hệ thống nhớ
Bộ nhớ (memmory) là không gian làm việc
của bộ vi xử lý. Đó là nơi cất giữ tạm thời các
chương trình và dữ liệu đang được thao tác với
bộ vi xử lý. Việc lưu trữ bộ nhớ được xem tạm
thời vì dữ liệu chỉ tồn tại trong thời gian máy
đang hoạt động và không bị khởi động lại.
Trước khi khởi động lại hay tắt máy, dữ liệu đã
thay đổi cần được ghi vào các thiết bị lưu trữ
lâu dài – storage – (thường là ổ đĩa cứng) để
sau này có thể nạp lại vào bộ nhớ.
4
Tổng quan về hệ thống nhớ
Một điểm quan trọng mà chúng ta cần ghi
nhớ đó là: một file khi được nạp vào trong bộ
nhớ, nó chỉ là bản sao của file đó, còn thực chất
file đó vẫn tồn tại trong ổ đĩa. Vì tính chất tạm
thời của bộ nhớ cho nên file đã bị thay đổi cần
được ghi lại vào đĩa cứng trước khi tắt máy, vì
khi tắt máy dữ liệu trong bộ nhớ sẽ bị xoá.
5
Tổng quan về hệ thống nhớ
Bộ nhớ lưu trữ các chương trình đang chạy
và dữ liệu của chúng sử dụng. Các chip nhớ có
lúc được gọi là “lưu trữ không ổn định” (volatile
storage) bởi vì khi tắt máy hoặc có sự cố về
nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản
chất bất ổn định như vậy cho nên nhiều người
dùng có thói quen ghi lại thường xuyên (một số
chương trình ứng dụng có thể ghi một cách tự
động theo thời gian đã định).
6
2. C¸c ®Æc trng cña hÖ thèng nhí
VÞ trÝ (location)
„ Bªn trong Bé xö lý: TËp c¸c thanh ghi, cache
„ Bé nhí trong: Bé nhí chÝnh
Bé nhí cache
„ Bé nhí ngoµi: C¸c thiÕt bÞ nhí, §Üa tõ, b¨ng tõ
§Üa quang
Dung lîng (capacity)
„ §é dµi tõ nhí (®¬n vÞ lµ bit)- KÝch thíc trªn 1 ®¬n vÞ lu
tr÷.
„ Sè lîng tõ nhí- Dung lîng bé nhí
7
C¸c ®Æc trng cña hÖ thèng nhí
§¬n vÞ truyÒn (unit of transfer)
„ TruyÒn theo tõ nhí- TruyÒn tuÇn tù tõng Word
„ TruyÒn theo khèi nhí- TruyÒn 1 khèi gåm n Word
HiÖu n¨ng
„ Thêi gian truy cËp.
„ Chu kú truy xuÊt bé nhí.
„ Tèc ®é truyÒn.
8
C¸c ®Æc trng cña hÖ thèng nhí
Ph¬ng ph¸p truy nhËp (access method)
„ Truy nhËp tuÇn tù (b¨ng tõ)- §Ó ®Õn ®îc ®iÓm n ®Çu tõ
ph¶i duyÖt qua n-1 vÞ trÝ tríc.
„ Truy nhËp trùc tiÕp (®Üa tõ, ®Üa quang)- §Çu tõ di chuyÓn
trùc tiÕp ®Õn vÞ trÝ cÇn ®äc.
„ Truy nhËp ngÉu nhiªn (bé nhí trong)- « nhí cÇn ®äc sÏ
®îc gi¶i m· ®Ó lÊy th«ng tin ngay lËp tøc.
„ Truy nhËp liªn kÕt (bé nhí cache)- Truy cËp th«ng qua
b¶n sao cña « nhí cÇn ®äc.
9
C¸c ®Æc trng cña hÖ thèng nhí
KiÓu vËt lý cña bé nhí (physical type)
„ Bé nhí b¸n dÉn- Lu tr÷ b»ng ®iÖn
„ Bé nhí tõ- Lu tr÷ dïng tõ tÝnh.
„ Bé nhí quang: Lu tr÷ sö dông c«ng nghÖ Laze
C¸c ®Æc trng vËt lý (physical characteristics)
„ Bé nhí kh¶ biÕn / kh«ng kh¶ biÕn
„ Bé nhí xãa ®îc / kh«ng xãa ®îc
10
3. M« h×nh ph©n cÊp hÖ thèng nhí
Việc trao đổi dữ liệu giữa BVXL và BNC là
một thao tác quan trọng, chiếm đa số trong các
lệnh xử lý dữ liệu nên nó quyết định hiệu suất
của hệ thống VXL nói chung và máy tính nói
riêng. Bộ nhớ chính và bộ nhớ ngoài thường có
tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so
với tốc độ làm việc của CPU (kể cả việc vận
chuyển dữ liệu trong BVXL). Để nâng cao tốc độ
xử lý dữ liệu chung của toàn hệ thống, người ta
tìm cách nâng cao tốc độ trao đổi dữ liệu (kể cả
lệnh) giữa BVXL và bộ nhớ. Dựa trên nguyên lý
cục bộ về không gian và thời gian mà người ta
xây dựng hệ thống nhớ 5 cấp như sau:
11
3. M« h×nh ph©n cÊp hÖ thèng nhí
CPU Registers
100s Bytes
1s ns
Cache
K Bytes
4 ns
1-0.1 cents/bit
Main Memory
M Bytes
100ns- 300ns
$.0001-.00001 cents /bit
Disk
G Bytes, 10 ms
(10,000,000 ns)
10 - 10 cents/bit
Capacity
Access Time
Cost
Tape
infinite
sec-min
10 -8
Upper Level
-5 -6
Registers
Cache
Memory
Disk
Tape
Instr. Operands
Blocks
Pages
Files
Staging
Xfer Unit
prog./compiler
1-8 bytes
cache cntl
8-128 bytes
OS
512-4K bytes
user/operator
Mbytes
Lower Level
faster
Larger
12
3. M« h×nh ph©n cÊp hÖ thèng nhí
Cấp 0: Tập các thanh ghi nằm trong bộ
vi xử lý. Thanh ghi là bộ nhớ kiểu SRAM
nên tác động nhanh và thông tin ổn định.
Đây là thành phần nhớ có tốc độ trao đổi
dữ liệu nhanh nhất trong hệ thống vì nó
gần ALU và CU. Tuy nhiên nó có dung
lượng nhỏ.
13
3. M« h×nh ph©n cÊp hÖ thèng nhí
Cấp 1: Primary cache (cache sơ cấp): Là
bộ nhớ có tốc độ trao đổi dữ liệu rất nhanh
(nhỏ hơn thanh ghi), có dung lượng nhỏ và
được đặt trong bộ vi xử lý, nhưng cũng có
thể nằm ngoài bộ vi xử lý. Trong các bộ vi
xử lý tiên tiến, bộ nhớ cache thường được
tách (chia) làm 2 với mục đích tránh xung
đột trong xử lý song song (đại diện là
pipeline) là Icache: dành cho lệnh và
Dcache: dành cho dữ liệu.
14
3. M« h×nh ph©n cÊp hÖ thèng nhí
Cấp 2: Secondary cache (cache thứ
cấp): Cũng giống như Primary cache,
nhưng loại này nằm ngoài bộ vi xử lý. Nó
chỉ có khi có Primary cache (ngược lại, nó
chính là Primary cache). Dung lượng của
Secondary cache thường lớn hơn Primary
cache và nhỏ hơn bộ nhớ.
15
3. M« h×nh ph©n cÊp hÖ thèng nhí
Cấp 3: Main Memory (Bộ nhớ chính):
Chứa chương trình và dữ liệu đang hoạt
động. BN này được BVXL đánh địa chỉ trực
tiếp và quản lý thông qua địa chỉ đó. Một
phần của chương trình đang được thi hành
có thể nằm trong cache (lệnh và dữ liệu)
nhằm tăng tốc độ hoạt động của hệ thống.
Dung lượng của BN chính thường lớn hơn
rất nhiều lần dung lượng BN cache. Như
đã biết, trong các hệ thống máy tính hiện
đại ngày nay thì BNC thường là DRAM.
16
3. M« h×nh ph©n cÊp hÖ thèng nhí
Cấp 4: Secondary memory (Bộ nhớ thứ
cấp – bộ nhớ ngoài): Bộ nhớ này có dung
lượng rất lớn nhưng tốc độ trao đổi dữ liệu
chậm. Bộ nhớ này để lưu trữ chương trình
và dữ liệu một cách lâu dài, cho nhiều
người sử dụng (ghi/đọc, mất nguồn điện
vẫn còn thông tin). Đại diện cho các bộ
nhớ loại này đó chính là các ổ đĩa cứng,
mềm CD ROM, CD – WOM, CD WR, băng
từ, …
17
3. M« h×nh ph©n cÊp hÖ thèng nhí
Tõ tr¸i sang ph¶i:
„ Dung lîng t¨ng dÇn
„ Tèc ®é trao ®æi d÷ liÖu gi¶m dÇn
„ Gi¸ thµnh /1 bit gi¶m dÇn
„ TÇn suÊt BXL truy nhËp gi¶m dÇn
„ Møc tr¸i chøa mét phÇn d÷ liÖu cña møc ph¶i
TËp
thanh
ghi
Cache
L1
Cache
L2
Bé
nhí
chÝnh
Bé
nhí
ngoµi
Bé xö lý
18
4. Bé nhí b¸n dÉn
Ph©n lo¹i
Tæ chøc chip nhí b¸n dÉn
ThiÕt kÕ c¸c modul nhí b¸n dÉn
Bµi tËp
19
Bé nhí b¸n dÉn
KiÓu bé nhí Tiªu chuÈn Kh¶ n¨ng xãa C¬ chÕ ghi TÝnh
thay ®æi
Read Only Memory
(ROM)
Bé nhí
chØ ®äc
Kh«ng
xãa ®îc
MÆt n¹
Kh«ng
kh¶ biÕn
Programmable ROM
(PROM)
B»ng ®iÖn
Erasable PROM
(EPROM)
Bé nhí
hÇu nh
chØ ®äc
B»ng tia cùc tÝm,
c¶ chip
Electrically Erasable PROM
(EEPROM)
B»ng ®iÖn,
møc tõng byte
Flash memory
Bé nhí
®äc - ghi
B»ng ®iÖn,
tõng khèi
Random Access Memory
(RAM)
B»ng ®iÖn,
tõng byte
Kh¶ biÕn
20
ROM (Read Only Memory)
Lµ lo¹i bé nhí kh«ng kh¶ biÕn
Lu tr÷ c¸c th«ng tin:
„ Th viÖn c¸c ch¬ng tr×nh con
„ C¸c ch¬ng tr×nh hÖ thèng (BIOS)
„ C¸c b¶ng chøc n¨ng
„ Vi ch¬ng tr×nh
21
C¸c kiÓu ROM
ROM mÆt n¹ (ROM cè ®Þnh):
„ Th«ng tin ®îc ghi ngay khi s¶n xuÊt
„ RÊt ®¾t
PROM (Programmble ROM):
„ Khi s¶n xuÊt cha ghi d÷ liÖu
„ CÇn thiÕt bÞ chuyªn dïng ®Ó ghi b»ng ch¬ng tr×nh, chØ
ghi ®îc mét lÇn
EPROM (Erasable PROM):
„ Khi s¶n xuÊt cha ghi d÷ liÖu
„ CÇn thiÕt bÞ chuyªn dông ®Ó ghi b»ng ch¬ng tr×nh, ghi ®-
îc nhiÒu lÇn
„ Tríc khi ghi l¹i, ph¶i xãa b»ng tia cùc tÝm
22
C¸c kiÓu ROM
EEPROM (Electrically Erasable PROM):
„ Cã thÓ ghi theo tõng byte
„ Xãa b»ng ®iÖn
„ Ghi l©u h¬n ®äc
Flash memory (bé nhí cùc nhanh)
„ Ghi theo khèi
„ Xãa b»ng ®iÖn
23
RAM (Random Access Memory)
Bé nhí ®äc / ghi
Kh¶ biÕn
Lu tr÷ th«ng tin t¹m thêi
Cã hai lo¹i RAM:
„ SRAM (Static RAM)
„ DRAM (Dynamic RAM)
24
C¸c kiÓu RAM
DRAM
„ C¸c bit ®îc lu tr÷ trªn tô ®iÖn cÇn ph¶i cã
m¹ch lµm t¬i
„ CÊu tróc ®¬n gi¶n
„ Dung lîng lín
„ Tèc ®é chËm h¬n SRAM
„ RÎ h¬n SRAM
„ Dïng lµm bé nhí chÝnh
25
C¸c kiÓu RAM
SRAM
„ C¸c bit ®îc lu tr÷ b»ng c¸c Flip-Flop
„ Kh«ng cÇn m¹ch lµm t¬i
„ CÊu tróc phøc t¹p h¬n DRAM
„ Dung lîng nhá
„ Tèc ®é nhanh h¬n DRAM
„ §¾t h¬n DRAM
„ Dïng lµm bé nhí cache
26
VÝ dô vÒ DRAM
27
Tæ chøc « nhí
¤ nhí lµ phÇn tö nhí ®îc 1 bit th«ng tin
C¸c tÝn hiÖu:
„ TÝn hiÖu chän ®îc göi ®Õn ®Ó chän « nhí
„ TÝn hiÖu ®iÒu khiÓn chØ thÞ viÖc ghi hay ®äc
„ TÝn hiÖu thø ba lµ ®êng d÷ liÖu
Chän
§iÒu khiÓn
D÷ liÖu vµo Chän
§iÒu khiÓn
D÷ liÖu ra
¤ nhí ¤ nhí
a) Ghi b) §äc
28
Tæ chøc cña chip nhí (SRAM)
Chip nhí
D
0
D
1
D
m - 1
A
0
A
1
A
n - 1
CS
RD WR
.
.
.
.
.
.
.
.
29
C¸c tÝn hiÖu cña chip nhí (SRAM)
C¸c ®êng ®Þa chØ: A0 An - 1 cã 2
n ng¨n
nhí.
C¸c ®êng d÷ liÖu: D0 Dm - 1 ®é dµi ng¨n
nhí lµ m bit.
Dung lîng chip nhí: 2n x m bit
C¸c ®êng ®iÒu khiÓn:
„ TÝn hiÖu chän chip: CS (Chip Select)/CE
„ TÝn hiÖu ®iÒu khiÓn ®äc: RD / OE
„ TÝn hiÖu ®iÒu khiÓn ghi: WR / WE
30
Tæ chøc cña DRAM
Dïng n ®êng ®Þa chØ dån kªnh cho phÐp
truyÒn 2n bit ®Þa chØ
TÝn hiÖu chän ®Þa chØ hµng RAS (Row
Address Select)
TÝn hiÖu chän ®Þa chØ cét CAS (Column
Address Select)
Dung lîng cña DRAM: 22n x m bit
31
VÝ dô: chip 16Mb DRAM (4M x 4 bit)
32
C¸c chip nhí (nh×n bªn ngoµi)
33
ThiÕt kÕ modul nhí b¸n dÉn
Dung lîng chip nhí lµ 2n x m bit
CÇn thiÕt kÕ ®Ó t¨ng dung lîng:
„ T¨ng ®é dµi ng¨n nhí (t¨ng m)
„ T¨ng sè lîng ng¨n nhí (t¨ng n)
„ KÕt hîp c¶ hai lo¹i (t¨ng m vµ n)
34
T¨ng ®é dµi ng¨n nhí
VÝ dô 1:
„ Cho chip nhí SRAM: 8K x 4 bit
„ H·y thiÕt kÕ modul nhí 8K x 8 bit
Gi¶i:
„ Dung lîng chip nhí: 213 x 4 bit
„ Chip nhí cã:
13 ®êng ®Þa chØ (A0
A12), 4 ®êng d÷ liÖu (D0 D3)
„ Modul nhí cÇn cã:
13 ®êng ®Þa chØ (A0
A12), 8 ®êng d÷ liÖu (D0 D7)
35
H×nh vÏ (vÝ dô 1)
A0 A12
8K x 4 bit
D0 D3
CS
WE OE
A0 A12
A0 A12
8K x 4 bit
D0 D3
CS
WE OE
CS
WE
OE
D0D3
D4D7
36
T¨ng ®é dµi ng¨n nhí
Bµi to¸n t¨ng ®é dµi tæng qu¸t:
Cho chip nhí 2n x m bit
CÇn thiÕt kÕ modul nhí 2n x (k.m) bit
CÇn ghÐp nèi k chip nhí (k>=1)
37
T¨ng sè lîng ng¨n nhí
VÝ dô 2:
„ Cho chip nhí SRAM: 4K x 4 bit
„ H·y thiÕt kÕ modul nhí 8K x 4 bit
Gi¶i:
„ Dung lîng chip nhí: 212 x 4 bit
„ Chip nhí cã:
12 ®êng ®Þa chØ (A0
A11), 4 ®êng d÷ liÖu (D0
D3)
„ Modul nhí cÇn cã:
13 ®êng ®Þa chØ (A0
A12), 4 ®êng d÷ liÖu (D0
D3)
38
H×nh vÏ (vÝ dô 2)
A0A11
D0D3
CS
WE OE
A0A11
D0D3
CS
WE OE
G A Y1 Y0
0
0
0
1
0
1
1
0
1 X 1 1
A0 A11
WE
OE
A Y0
G Y1
A12
D0 D3
CS
39
T¨ng sè lîng ng¨n nhí
Bµi to¸n t¨ng sè lîng tæng qu¸t:
Cho chip nhí 2n x m bit
CÇn ghÐp nèi modul nhí: 2k+n x m bit
CÇn ghÐp nèi 2k chip
vµ ph¶i dïng bé gi¶i m· k: 2k (k 2k)
40
T¨ng sè lîng vµ ®é dµi ng¨n nhí
VÝ dô 3:
„ Cho chip nhí SRAM: 8K x 4 bit
„ H·y thiÕt kÕ modul nhí 16K x 8 bit
Gi¶i:
„ Dung lîng chip nhí: 213 x 4 bit
„ Chip nhí cã:
13 ®êng ®Þa chØ (A0
A12), 4 ®êng d÷ liÖu (D0
D3)
„ Modul nhí cÇn cã:
14 ®êng ®Þa chØ (A0
A13), 8 ®êng d÷ liÖu (D0
D7)
41
H×nh vÏ (vÝ dô 3)
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A0A12
D0D3
CS
WE OE
A Y0
G Y1
A0A12
WE
OE
A13
CS
D0D7
D0D7
42
T¨ng sè lîng vµ ®é dµi ng¨n nhí
Bµi to¸n t¨ng sè lîng vµ ®é dµi tæng qu¸t:
Cho chip nhí 2n x m bit
CÇn ghÐp nèi modul nhí: 2p+n x (q.m) bit
CÇn ghÐp nèi q.2p chip thµnh 2p bé, mçi bé q
chip vµ ph¶i dïng bé gi¶i m· p: 2p (p 2p)
43
5. Bé nhí chÝnh
C¸c ®Æc trng c¬ b¶n
„ Chøa c¸c ch¬ng tr×nh ®ang thùc hiÖn vµ c¸c d÷
liÖu ®ang ®îc sö dông
„ Tån t¹i trªn mäi hÖ thèng m¸y tÝnh
„ §îc ®¸nh ®Þa chØ trùc tiÕp bëi CPU: cã nhiÒu
ng¨n nhí, mçi ng¨n nhí ®îc g¸n mét ®Þa chØ x¸c
®Þnh
„ ViÖc qu¶n lý l«gic BNC tïy thuéc vµo tõng H§H
„ VÒ nguyªn t¾c, ngêi lËp tr×nh cã thÓ can thiÖp
trùc tiÕp vµo toµn bé BNC cña m¸y tÝnh
44
Bé nhí chÝnh
Tæ chøc bé nhí ®an xen
„ §é réng cña bus d÷ liÖu ®Ó trao ®æi víi bé nhí:
m = 8, 16, 32, 64, ... bit
„ C¸c ng¨n nhí tæ chøc theo byte
45
VÝ dô: m = 8 bit
Bus hÖ thèng
Bank nhí §Þa chØ
0
1
2
3
n
. . . . .
46
m = 16 bit
Bus hÖ thèng
Bank 0 Bank 1 §Þa chØ
. . . . .
0
2
4
6
2n
§Þa chØ
1
3
5
7
2n+1
. . . . .
47
m = 32 bit
Bus hÖ thèng
Bank 0 §Þa chØ
. . . . .
0
4
8
12
4n
Bank 1 §Þa chØ
. . . . .
1
5
9
13
4n+1
Bank 2 §Þa chØ
. . . . .
2
6
10
14
4n+2
Bank 3
. . . . .
3
7
11
15
4n+3
§Þa chØ
48
6. Bé nhí cache
Nguyªn t¾c chung
C¸c kü thuËt ¸nh x¹ ®Þa chØ
C¸c thuËt to¸n thay thÕ
Ho¹t ®éng cña cache
Bµi tËp
49
Nguyªn t¾c chung
Cache cã tèc ®é nhanh h¬n bé nhí chÝnh
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 CPU
50
C¸c kh¸i niÖm
Cache hit, cache miss:
„ Cache hit (tróng cache): khi CPU truy nhËp mét tõ nhí
mµ tõ nhí ®ã ®ang cã trong cache.
„ Cache miss (trît cache): khi CPU truy nhËp mét tõ nhí
mµ tõ nhí ®ã kh«ng cã trong cache.
Nguyªn lý ®Þnh vÞ tham sè bé nhí:
„ §Þnh vÞ vÒ thêi gian: Mét môc th«ng tin võa ®îc truy
nhËp th× cã x¸c suÊt lín lµ ngay sau ®ã nã ®îc truy
nhËp l¹i.
„ §Þnh vÞ vÒ kh«ng gian: Mét môc th«ng tin võa ®îc truy
nhËp th× cã x¸c suÊt lín lµ ngay sau ®ã c¸c môc l©n cËn
sÏ ®îc truy nhËp.
51
C¸c kh¸i niÖm
Trao ®æi th«ng tin gi÷a cache vµ BNC:
„ BNC ®îc chia thµnh c¸c Block nhí
„ Cache ®îc chia thµnh c¸c Line nhí
„ KÝch thíc Line b»ng kÝch thíc Block
Sè lîng Line << Sè lîng Block
Mçi Line trong cache ®îc g¾n thªm mét Tag
®Ó x¸c ®Þnh Block nµo (cña BNC) ®ang ë
trong Line
52
H×nh vÏ minh häa
BXL
Tag D÷ liÖu
Bé nhí cache
Bé nhí chÝnh
L
0
L
1
L
m-2
L
m-1
B
0
B
1
B
2
B
p-2
B
p-1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
C¸c kü thuËt ¸nh x¹ ®Þa chØ
Ánh x¹ trùc tiÕp (direct mapping)
Ánh x¹ liªn kÕt hoµn toµn
(fully associative mapping)
Ánh x¹ liªn kÕt tËp hîp
(set associative mapping)
54
Ánh x¹ trùc tiÕp
Mçi Block cña BNC chØ ®îc ¸nh x¹ vµo mét
Line duy nhÊt:
i = j mod m
„ i: sè hiÖu Line trong cache
„ j: sè hiÖu Block trong BNC
„ m: sè lîng Line trong cache
Cô thÓ: B0 L0 Bm L0 . . .
B1 L1 Bm+1 L1 . . .
. . . . . .
Bm-1 Lm-1 B2m-1 Lm-1 . . .
55
Ánh x¹ trùc tiÕp
Nh vËy:
L0 : B0, Bm, B2m, ..., Bnm
L1 : B1, Bm+1, B2m+1, ..., Bnm+1
. . . . . . .
Lm-1: Bm-1, B2m-1, B3m-1, ..., B(n+1)m-1
56
Ánh x¹ trùc tiÕp
Khi ®ã, ®Þa chØ do CPU ph¸t ra gåm 3 trêng:
„ Word: x¸c ®Þnh sè hiÖu ng¨n nhí trong Block
Block (Line) cã 2w ng¨n nhí
„ Line: x¸c ®Þnh sè hiÖu Line trong cache
Cache cã 2r Line, cache chøa 2r + w ng¨n nhí
„ Tag: x¸c ®Þnh Block nµo ®ang ë trong Line
BNC chøa 2(s - r) + r + w = 2s + w ng¨n nhí
Tag Line Word
s - r bit w bit r bit
57
VÝ dô 1
Cho m¸y tÝnh cã dung lîng:
„ BNC = 128 MB, cache = 256 KB, line = 32 byte,
„ §é dµi ng¨n nhí = 1 byte.
T×m d¹ng ®Þa chØ do BXL ph¸t ra?
Gi¶i: Ta cã:
„ BNC = 128 MB = 27 * 220 byte = 227 byte
„ Cache = 256 KB = 28 * 210 byte = 218 byte
„ Line = 32 byte = 25 byte w = 5
„ Sè lîng Line trong cache: 218/25 = 213 r = 13
„ Sè bit cña phÇn Tag: 27 - 13 - 5 = 9, s - r = 9
5 13 9
58
VÝ dô 2
Cho m¸y tÝnh cã dung lîng:
„ BNC = 256 MB, cache = 64 KB, line = 16 byte,
„ §é dµi ng¨n nhí = 4 byte.
T×m d¹ng ®Þa chØ do BXL ph¸t ra?
Gi¶i: Ta cã:
„ BNC = 256 MB = 228 byte = 228/22 = 226 ng/nhí
„ Cache = 64 KB = 216 byte = 216/22 = 214 ng/nhí
„ Line = 16 byte =24/22 = 22 ng/nhí w = 2
„ Sè lîng Line trong cache: 214/22 = 212 r = 12
„ Sè bit cña phÇn Tag: 26 - 12 - 2 = 12, s - r = 12
2 12 12
59
S¬ ®å thùc hiÖn
60
NhËn xÐt
Ưu ®iÓm:
„ DÔ thùc hiÖn, v× mét Block ®îc ¸nh x¹ cè ®Þnh
vµo mét Line kh«ng cÇn thuËt to¸n chän Line.
„ ThiÕt kÕ m¹ch ®¬n gi¶n.
Nhîc ®iÓm:
„ TØ lÖ cache hit thÊp.
61
Ánh x¹ liªn kÕt hoµn toµn
Mçi Block trong BNC ®îc ¸nh x¹ vµo mét Line bÊt
kú trong Cache
Khi ®ã, ®Þa chØ do BXL ph¸t ra cã d¹ng:
„ Word: x¸c ®Þnh ng¨n nhí trong Block
Block cã 2w ng¨n nhí
„ Tag: x¸c ®Þnh Block ®ang ë trong Line
Sè lîng Block: 2s
Dung lîng BNC: 2s + w ng¨n nhí
Tag Word
s bit w bit
62
S¬ ®å thùc hiÖn
63
NhËn xÐt
Ưu ®iÓm:
„ TØ lÖ cache hit cao h¬n ¸nh x¹ trùc tiÕp v× mét
Block ®îc phÐp vµo mét Line bÊt kú.
Nhîc ®iÓm:
„ ThiÕt kÕ m¹ch t¬ng ®èi phøc t¹p, thÓ hiÖn ë
m¹ch so s¸nh.
64
Ánh x¹ liªn kÕt tËp hîp
Cache ®îc chia thµnh nhiÒu Set, mçi Set gåm
nhiÒu Line liªn tiÕp
Mét Block cña BNC chØ ®îc ¸nh x¹ vµo mét
Set duy nhÊt trong cache, nhng ®îc ¸nh x¹
vµo Line bÊt kú trong set ®ã:
i = j mod v
„ i: sè hiÖu Set trong cache
„ j: sè hiÖu Block trong BNC
„ v: sè lîng Set trong cache
65
Ánh x¹ liªn kÕt tËp hîp
Khi ®ã, ®Þa chØ do BXL ph¸t ra gåm:
„ Word: x¸c ®Þnh sè hiÖu ng¨n nhí trong Block
Block (Line) cã 2w ng¨n nhí
„ Set: x¸c ®Þnh sè hiÖu Set trong cache
Cache cã 2d Set
„ Tag: x¸c ®Þnh Block nµo ®ang ë trong Line
BNC chøa 2(s - d) + d + w = 2s + w ng¨n nhí
Tag Set Word
s - d bit w bit d bit
66
VÝ dô 1
Cho m¸y tÝnh cã dung lîng:
„ BNC = 512 MB, cache = 128 KB, line = 32 byte,
„ Set = 8 Line, ®é dµi ng¨n nhí = 1 byte.
T×m d¹ng ®Þa chØ do BXL ph¸t ra?
Gi¶i: Ta cã:
„ BNC = 512 MB = 229 byte; Cache = 128 KB = 217 byte
„ Line = 25 byte w = 5
„ Dung lîng Set: 23 * 25 = 28 byte
sè lîng Set trong Cache: 217/28 = 29 d = 9
„ Sè bit cña phÇn Tag: 29 - 9 - 5 = 15, s - d = 15
5 9 15
67
VÝ dô 2
Cho m¸y tÝnh cã dung lîng:
„ BNC = 256 MB, cache = 128 KB, line = 64 byte,
„ Set = 4 Line, ®é dµi ng¨n nhí = 4 byte.
T×m d¹ng ®Þa chØ do BXL ph¸t ra?
Gi¶i: Ta cã:
„ BNC = 228 byte = 228/22 = 226 ng/nhí
„ Cache = 217 byte = 217/22 = 215 ng/nhí
„ Line = 26/22 = 24 ng/nhí w = 4
„ D/l Set: 22 * 24= 26 s/l Set: 215/26 = 29 d = 9
„ Sè bit cña phÇn Tag: 26 - 9 - 4 = 13, s - d = 13
4 9 13
68
S¬ ®å thùc hiÖn
69
NhËn xÐt
Ưu ®iÓm:
„ TØ lÖ cache hit cao v× mét Block ®îc phÐp vµo
mét Line bÊt kú trong Set, vµ dÔ so s¸nh.
„ §©y lµ kü thuËt ¸nh x¹ tèt nhÊt trong 3 kü thuËt.
Nhîc ®iÓm:
„ ThiÕt kÕ m¹ch phøc t¹p.
70
C¸c thuËt to¸n thay thÕ
Kü thuËt ¸nh x¹ trùc tiÕp: Kh«ng thay ®îc
Hai kü thuËt ¸nh x¹ liªn kÕt: cã 4 thuËt to¸n
„ Random: thay ngÉu nhiªn mét Block cò nµo ®ã
DÔ thùc hiÖn, nhanh nhÊt, tØ lÖ cache hit thÊp.
„ FIFO (First In - First Out): thay Block ë ®Çu tiªn trong sè
c¸c Block ®ang cã trong cache
tØ lÖ cache hit kh«ng cao
„ LFU (Least Frequently Used): thay Block ®îc dïng víi
tÇn suÊt Ýt nhÊt tØ lÖ cache hit t¬ng ®èi cao
„ LRU (Least Recently Used): thay Block ®îc dïng gÇn
®©y Ýt nhÊt tØ lÖ cache hit cao
71
Ho¹t ®éng cña cache
§äc:
„ NÕu cache hit: ®äc ng¨n nhí tõ cache
„ NÕu cache miss: thay Block cache hit
Ghi:
„ NÕu cache hit: cã 2 ph¬ng ph¸p:
Write through: ghi d÷ liÖu vµo c¶ cache vµ c¶ BNC
kh«ng cÇn thiÕt, tèc ®é chËm, m¹ch ®¬n gi¶n.
Write back: chØ ghi vµo cache, khi nµo Block (trong
cache) ®îc ghi bÞ thay ®i ghi vµo BNC
tèc ®é nhanh, m¹ch phøc t¹p.
„ NÕu cache miss: thay Block cache hit
72
Ho¹t ®éng cña cache
BXL Cache BNC
a) Write Through
BXL Cache BNC
b) Write Back
73
VÝ dô cache trªn c¸c bé xö lý Intel