DANH MỤC TÀI LIỆU
Tìm hiểu về bộ nhớ Cache
Tìm hi u v b nh Cache ề ộ
B n đã bao gi b l c trong m t núi các thông s , thu t ng k thu t ị ạ
trên máy tính hay đi n tho i ch a? N u r i thì nên tham kh o bài vi t ư ế ồ ế
d i đây. L u ý ch ng ch đ nh v i nh ng ng i không quan tâm, vì ướ ư ỉ ị ườ
nó s r t bu n t đ y.ẽ ấ
Trên th c t , các thi t k c a chip SoC (h th ng trên m t chip) có m t ế ế ế ủ
v n đ r t l n, đó là B nh Truy c p Ng u nhiên RAM (Random Access ề ấ
Memory) ch m, quá ch m. Vì v y, ng i ta ph i đ a ra m t cách gi i ườ ả ư
quy t khác và nó đ c g i là b nh đ m. N u b n mu n bi t v b nh ế ượ ộ ớ ế ạ ế ộ ớ
đ m, hãy đ c bài d i đây. ọ ướ
Có th b n th y l khi nghe nói RAM ch m. B n đã t ng nghe c ng ổ ứ
ch m, CDROM ch m, nh ng b nh chính thì không th tin đ c. ư ộ ớ ượ
Nh ng đó l i là s th c.ư ự ự
T i trung tâm c a chip SoC là CPU. Nó n m quy n chi ph i t i cao v i ố ố
thi t b và t c đ c a nó đòi h i ph i r t cao. M t CPU trung bình c a di ế ộ ủ
đ ng có xung nh p t 1,5 GHz đ n kho ng 2,2 GHz. Trong khi đó, xung ị ừ ế
nh p trung bình c a module RAM ch kho ng 200 MHz. V y đi u đó nghĩa ậ ề
là thanh RAM trung bình ch y t c đ xung nh p ch m h n kho ng 10 l n ở ố ơ
so v i CPU. Đi u này qu th t nh m t kho ng th i gian vô t n. M i khi ả ậ ư ộ
CPU c n cái gì đó t RAM, nó s ph i ch đ i, ch đ i và ch đ i trong ờ ợ ờ ợ ờ ợ
khi d li u đ c n p.ữ ệ ượ
Đáng l ra th i gian đó CPU có th làm đi u gì đó khác, nh ng không th ẽ ờ ư
vì nó ph i ch đ i. ờ ợ
S chênh l ch gi a t c đ xung nh p c a CPU và c a RAM. ữ ố
Nh v y chúng ta đã th y đ c m u ch t c a v n đ . Tuy nhiên, tình hìnhư ậ ượ
không th c s x u đ n m c nh v y, b i vì nh ng công ngh nh Double- ự ấ ế ư ậ ư
Data-Rate (DDR) RAM có th g i đi l ng d li u g p đôi trong m i chu ể ử ượ
kỳ xung nh p. T ng t nh v y, các thông s k thu t nh LPDDR3 (Low ươ ư ậ ố ỹ ư
Power DDR3) cho phép truy n d li u v i t c đ g p 8 l n so v i xung ộ ấ
nh p bên trong. Ngoài ra còn các k thu t đ c tích h p bên trong CPU, đ ậ ượ
đ m b o d li u s đ c yêu c u s m nh t có th , tr c khi nó th c s ẽ ượ ướ
c n đ n.ầ ế
T i th i đi m c a bài vi t, các chip SoC m i nh t đang s d ng LPDDR4 ế ử ụ
v i t c đ hi u qu lên đ n 1866 MHz, v y n u xung nh p c a CPU là ớ ố ế ế
1,8GHz ho c ch m h n, b nh gi ch c h n s đu i k p CPU r i ch ? ơ ớ ờ ổ ị
Không h n v y, v n đ là các b x lý hi n đ i s d ng 4 đ n 8 nhân, vì ộ ử ử ụ ế
v y s không ch có m t CPU truy c p vào b nh , mà s có 8 CPU, chúngậ ẽ
đ u c n d li u, và chúng c n nó càng nhanh càng t t. ữ ệ
S h n ch hi u năng này đ c g i là nút th t c chai Von Neumann, l y ự ạ ế ượ
theo tên c a m t trong nh ng ng i ch ch t phát minh ra máy tính hi n ườ ủ ố
đ i ngày nay. Nh c đi m c a ki n trúc Von Neumann là nút th t c chai ượ ế ắ ổ
v hi u năng xu t hi n khi d li u đi qua b gi i h n do s khác bi t ữ ệ
t ng đ i v t c đ gi a CPU và RAM.ươ ề ố
Có m t s ph ng pháp đ c i thi n tình tr ng này và gi m s khác bi t ươ ệ ạ ự ệ
v hi u năng, m t trong s đó là s d ng b nh đ m. V y b nh đ m là ộ ớ ậ ộ ớ
gì? Nói m t cách đ n gi n, nó là m t l ng nh c a b nh đ c đ t trên ơ ượ ỏ ủ ượ
chip SoC, và ch y cùng t c đ v i CPU. Đi u này có nghĩa là CPU không ộ ớ
c n ph i ch đ i m i khi c n d li u t b nh đ m n a, d li u s đ c ữ ệ ữ ệ ư
g i th ng t i CPU v i cùng t c đ mà CPU ho t đ ng. H n n a, b nh ơ ữ ộ ớ
đ m đ c cài đ t trên m i m t nhân CPU, nên m i nhân CPU s có b ượ ỗ ộ
nh đ m riêng và s không có b t kỳ tranh ch p nào v vi c ai đ c truy ớ ệ ượ
c p vào nó.
N u v y, sao không làm t t c b nh gi ng nh b nh đ m. Câu tr l i ế ả ộ ư ộ ớ ệ
r t đ n gi n. B nh đ m có th ch y v i t c đ đó r t đ t. Giá thành (và ấ ơ ấ ắ
do nh ng gi i h n c a công ngh ch t o) là m t rào c n th c s . Đó là lý ế ạ
do t i sao trên di đ ng, l ng b nh đ m trung bình th ng đ c tính ượ ớ ệ ườ ượ
b ng Kilobyte, có th 32K hay 64K, thay vì hàng Megabyte nh th ng ư ườ
th y.
M t CPU v i b nh đ m 256KB. ớ ệ
V y gi m i nhân CPU s có vài Kilobyte b nh siêu nhanh, có th dùng ờ ỗ
đ l u b n sao c a m t ph n trên b nh chính. N u b n sao trong vùng ể ư ế
đ m th c s là b nh mà CPU c n, nó s không c n truy c p vào b nh ộ ớ ộ ớ
chính ch m ch p đ l y d li u n a. T t nhiên, th thu t là đ m b o r ng ể ấ
b nh trên vùng đ m là d li u t t nh t và đ c t i u, đ CPU có th ượ ố ư
s d ng b nh đ m nhi u h n và b nh chính ít h n. ộ ớ ơ ộ ớ ơ
Do b nh đ m ch có vài Kilobyte nên s có nh ng lúc vùng đ m có đúng ớ ệ
n i dung b nh , còn đ c bi t đ n nh m t “cache hit” (trùng b nh ộ ớ ượ ế ế ư ộ ớ
đ m), và có nh ng lúc không, còn đ c g i là “cache miss” (l ch b nh ượ ọ
đ m). T l trùng b nh đ m càng cao càng t t. ỷ ệ
Phân chia b nh đ m và h th ng phân c p ớ ệ
Đ giúp c i thi n s l n hit so v i miss, có m t s k thu t đ c s d ng. ố ầ ượ
M t trong s đó là chia b nh đ m thành hai, m t cho các câu l nh và m t ớ ệ
cho d li u. Nguyên nhân c a vi c này là do vi c l p đ y m t vùng đ m ữ ệ
câu l nh s d h n nhi u so v i d li u, khi câu l nh ti p theo đ c th c ẽ ễ ơ ế ư
thi có th là câu l nh k ti p trong b nh . Đi u đó cũng có nghĩa là câu ế ế
l nh k ti p đ c th c thi, có th đ c truy xu t t vùng đ m câu l nh ế ế ượ ể ượ
trong khi CPU v n đang làm vi c trên ph n b nh trong vùng đ m d ầ ộ ớ
li u. (Do c hai vùng đ m là đ c l p). ộ ậ
B nh đ m L1 và L2 trên chíp ARM Cortex-A72. ớ ệ
M t k thu t khác là c i thi n s l n trúng b nh đ m cache hit là s ố ầ
d ng h th ng phân c p c a các b nh đ m, th ng đ c g i là b nh ớ ệ ườ ượ
đ m L1 (level 1) và b nh đ m L2 (level 2). L2 th ng có b nh đ m ớ ệ ườ ớ ệ
l n h n (th ng là 4MB, nh ng có th còn l n h n), tuy nhiên nó l i ch mớ ơ ườ ư ớ ơ
h n (nghĩa là chi phí r h n) và nó đ c dùng chung b i t t c các nhân ơ ẻ ơ ượ
CPU, làm nó tr thành m t b nh đ m duy nh t cho toàn b chip SoC. ớ ệ
Ý t ng dành cho vi c phân c p này là, n u d li u đòi h i không n m ưở ế ữ ệ
trên b nh đ m L1, CPU s c l y ra d li u t b nh đ m L2, tr c ộ ớ ộ ớ ướ
khi th trên b nh chính. Cho dù L2 ch m h n L1, nh ng nó v n nhanh ộ ớ ơ ư
h n b nh chính, và do có kích th c tăng lên nên nó có c h i cao h n ơ ộ ớ ướ ơ ơ
đ d li u n m trên đó. M t s thi t k chíp th m chí còn s d ng b nhể ữ ế ế ử ụ
đ m L3. Cũng nh L2 ch m h n nh ng l n h n L1, L3 l n h n nh ng ư ơ ư ớ ơ ớ ơ ư
ch m h n L2. Trên di đ ng, L3 th ng không đ c s d ng, tuy nhiên, ơ ườ ượ ử ụ
trên các b x lý ki n trúc ARM dùng cho máy ch (nh chíp SoC 24 lõi ộ ử ế ư
c a Qualcomm s p ra m t hay chíp Opteron 1100 c a AMD) có tùy ch n ắ ắ
b sung b nh đ m L3 32MB. ớ ệ
Tính liên k tế
V n còn m t m nh ghép trong b x p hình v b nh đ m. Đó là làm th ộ ế ề ộ ớ ệ ế
nào CPU bi t n i dung t b nh chính đ c l u đâu trên b nh đ m? ế ừ ộ ượ ư ở ớ ệ
N u vùng đ m ch là m t danh sách dài (m t b ng tính) c a các khe c m ế ộ ả
b nh đ m, CPU c n tìm ki m trong danh sách đó, t đ u đ n cu i đ ớ ệ ế ừ ầ ế
tìm n i dung nó c n. T t nhiên, vi c đó s ch m h n là truy xu t nh ng ẽ ậ ơ
n i dung t b nh chính. V y đ đ m b o r ng n i dung b nh có th ộ ớ ậ ể ộ ớ
đ c tìm th y m t cách nhanh chóng, m t k thu t đ c g i là hashing ượ ộ ỹ ậ ượ
(k thu t băm) c n đ c s d ng. ượ ử ụ
M t hàm băm (hash function) s l y m t giá tr (trong tr ng h p này s ẽ ấ ườ
đ a ch c a n i dung b nh , đang đ c ph n chi u trong b nh đ m) và ộ ớ ượ ế ộ ớ
t o ra m t giá tr riêng cho nó. Cùng m t đ a ch s luôn t o ra cùng m t ỉ ẽ
giá tr băm. Vì v y, cách b nh đ m làm vi c là đ a ch c a n i dung b ỉ ủ
nh s đ c băm, và nó đ a ra m t câu tr l i c đ nh, có th v a v n v i ư ư ả ờ
kích th c c a b nh đ m, (ví d nh 32K). Do 32K s nh h n nhi u soướ ớ ệ ư ỏ ơ
v i kích th c c a RAM, giá tr băm đó c n đ c l p, nghĩa là sau 32768 ướ ượ ặ
đ a ch , hash (d li u băm) s cho ra cùng k t qu m t l n n a. Đi u này ữ ệ ế ộ ầ
còn đ c g i là phép ánh x tr c ti p (direct mapping).ượ ạ ự ế
Nh c đi m c a cách ti p c n này là khi có n i dung c a hai đ a ch c n ượ ế ỉ ầ
đ c l u trên b nh đ m nh ng hai đ a ch này tr v cùng m t khe trên ượ ư ớ ệ ư ả ề
b nh đ m (ví d chúng có cùng giá tr băm). Trong nh ng tr ng h p ớ ệ ườ
nh v y, ch m t v trí trên b nh đ m có th đ c l u và đ a ch còn l i ư ậ ể ượ ư
s v n n m trên b nh chính.ẽ ẫ
Cách ti p c n khác là s d ng m t hash (giá tr băm) đi thành c p, vì v y ế ử ụ
b t c đ a ch nào cũng có th là m t trong m t c p v trí trên b nh đ m, ặ ị ộ ớ
ví d nh giá tr hash và hash 1. Đi u đó nghĩa là hai đ a ch tr c đây có ư ỉ ướ
th b xung đ t, do có cùng giá tr hash, gi có th cùng t n t i. Nh ng gi ể ị ư
đ tìm th y đúng ch trên b nh đ m, CPU c n ph i ki m tra hai v trí, ớ ệ
tuy nhiên đi u này v n nhanh h n nhi u so v i tìm ki m trong 32768 đ a ơ ề ế
ch ! Tên c a k thu t ánh x này đ c g i là liên k t 2 chi u (2-way ủ ỹ ượ ọ ế
associative). Cách ti p c n theo h ng liên k t này có th m r ng lên ế ướ ế ở ộ
thành 4 chi u, 8 chi u và 16 chi u, tuy nhiên, có nh ng gi i h n c a cách ớ ạ
ti p c n này khi hi u su t tăng thêm không bù đ p đ c s ph c t p và ế ượ ứ ạ
chi phí.
T ng k tổ ế
Có m t nút th t c chai v hi u su t trên m i thi t k chip SoC, do s ề ệ ế ế
khác bi t v t c đ gi a b nh chính và CPU. Nó còn đ c bi t đ n d iệ ề ộ ữ ượ ế ế ướ
tên nút th t c chai Von Neumann và nó t n t i trên các máy ch , máy bàn ắ ổ
cũng nh các thi t b di đ ng. M t trong nh ng cách đ gi m b t nút th t ư ế ị ể ả
c chai là s d ng b nh đ m, m t l ng nh b nh có hi u su t cao, ộ ớ ượ ộ ớ
đ c đ t trên con chip v i CPU.ượ ặ
thông tin tài liệu
Tài liệu cung cấp kiến thức cơ bản về bộ nhớ cache
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×