CÂ\ H]I VÀ BÀI T_P CHƯƠNG
8.3 .B NH TRONG (Main memory)
B! nh trong hay b! nh chắnh như tên g1i c"a nó là b! nh cung c*p nơi lưu trA chắnh trong máy tắnh. Hình 8.10 cho ta th*y sơ ựM kh$i giao ti6p cơ b,n giAa b! nh trong và CPU. Có hai thanh ghi ự?c bi t c"a CPU ựư/c dùng cho các thao tác giAa CPU và b! nh trong ựó là thanh ghi ựRa chS b! nhF (Memory Address Register Ờ MAR) và thanh ghi dA li u b! nh (Memory Data
Register Ờ MDR). Thanh ghi MDR ựư/c dùng ự9 giA t m th<i các dA li u cFn ghi vào (hay nh3n ựư/c tG) b! nh trong, nơi có ựRa chS ựư/c xác ựRnh trong thanh ghi MAR.
B! nh trong (RAM Ờ b! nh truy c3p ng[u nhiên) ựư/c ch6 t o bQng ch*t bán d[n và có c*u trúc t o thành tG nhAng hàng và c!t c"a các ô nh cơ b,n (basic cells), mDi ô nh ch a ự>ng m!t bắt thông tin. Hình 8.11 cho ta th*y m!t mo hình t0 ch c b! nh trong ựơn gi,n ựư/c c*u t o tG các hàng và c!t c"a các ô nh (cell). Các ựư<ng ựRa chS An−1An−2...A A1 0 ựư/c dùng như ựFu vào c"a b! gi,i mã ựRa chS theo ựó cho ra các ựư<ng l>a ch1n hàng
1 1 0
2n ...
W − W W . T i m!t th<i ựi9m nh*t ựRnh thì chS có m!t trong các ựư<ng W2n−1...W W1 0 ựư/c ch1n và các ô nh thu!c ựư<ng này (hàng này) s ựư/c kắch ho t ự9 cho phép truy n thông tin tG các ô nh ra các ựư<ng dA li u ho?c chuy9n thông tin tG ựư<ng dA li u vào trong các ô nh MAR MDR CPU b n B! nh trong b n ựư<ng ựRa chS b ựư<ng dA li u A0 An 1 D0 Db 1 Tắn hi u ựi u khi9n / R W 0 1 . . . 2nj1
Chương VIII: H th ng b nh
B! nh RAM ựư/c g1i là b! nh truy c3p ng[u nhiên do có ự?c tắnh là các ô nh có th9 ựư/c ự1c ho?c vi6t vào trong kho,ng th<i gian bQng nhau cho dù chúng a b*t kỳ vR trắ nào trong b! nh . MDi ô nh có m!t ựRa chS, thông thư<ng, mDi ô nh là m!t byte (8 bit), nhưng h th$ng có th9 ự1c ra hay vi6t vào nhi u byte (2,4, hay 8 byte). B! nh trong ựư/c ự?c trưng bQng dung lư/ng và t0 ch c c"a nó (s$ ô nh và s$ bit cho mDi ô nh ), th<i gian thâm nh3p (th<i gian tG lúc ựua ra ựRa chS ô nh ự6n lúc ự1c ựư/c n!i dung ô nh ựó) và chu kỳ b! nh (th<i gian giAa hai lFn liên ti6p thâm nh3p b! nh ).
Tuỳ theo công ngh ch6 t o, ngư<i ta phân bi t RAM tĩnh (SRAM: Static RAM) và RAM ự!ng (DRAM: Dynamic RAM).
RAM tĩnh ựư/c ch6 t o theo công ngh ECL (CMOS và BiCMOS). MDi bit nh gMm có các c0ng logic v i ự! 6 transistor MOS, vi c nh m!t dA li u là tMn t i n6u b! nh ựư/c cung c*p
đư<ng dA li u
Hình 8.11. T0 ch c b! nh trong trên CHIP ựơn gi,n
Chương VIII: H th ng b nh
ựi n. SRAM là b! nh nhanh, vi c ự1c không làm huh n!i dung c"a ô nh và th<i gian thâm nh3p bQng chu kỳ b! nh .
RAM ự!ng dùng kẠ thu3t MOS. MDi bit nh gMm có m!t transistor và m!t tL ựi n. Cũng như SRAM, vi c nh m!t dA li u là tMn t i n6u b! nh ựư/c cung c*p ựi n. Vi c ghi nh d>a vào vi c duy trì ựi n tắch n p vào tL ựi n và như v3y vi c ự1c m!t bit nh làm n!i dung bit này bR huh (do tu ựi n phóng ựi n tắch). V3y sau mDi lFn ự1c m!t ô nh , b! ph3n ựi u khi9n b! nh ph,i vi6t l i ô nh ựó n!i dung vGa ự1c và do ựó chu kỳ b! nh ự!ng ắt nh*t là g*p ựôi th<i gian thâm nh3p ô nh . Vi c lưu giA thông tin trong bit nh chS là t m th<i vì tL ựi n s phóng h6t ựi n tắch ựã n p vào và như v3y ph,i làm tươi b! nh sau mDi vài mili giây. Làm tươi b! nh là ự1c ô nh và vi6t l i n!i dung ựó vào l i ô nh . Vi c làm tươi ựư/c th>c hi n v i t*t c, các ô nh trong b! nh . Vi c làm tươi b! nh ựư/c th>c hi n t> ự!ng bai m!t vi m ch b! nh . B! nh DRAM ch3m nhưng r4 ti n hơn SRAM. Hình 8.12. cho ta th*y sơ ựM c*u t o cơ b,n c"a m!t bit nh c"a hai lo i b! nh này. Ô nh SRAM ch a m!t trong hai tr ng thái b n vAng. Vắ dL trong hình 8.12 a) n6u A = 1 thì transistor N2 s ựư/c b3t lên và nó ựóng vai trò như m!t dây d[n kéo ựi n th6 t i ựi9m B xu$ng 0 (B = 0), ựi u ựó l i d[n ự6n transistor P1 ựư/c b3t lên và kéo ựi n th6 A bQng ựi n th6 nguMn (A = 1). Ta g1i tr ng thái b n vAng này là tr ng thái 1, hay ô nh ựang ch a giá trR tương ng v i bit 1. L3p lu3n tương t> n6u A = 0 ta s có tr ng thái tương ng v i bit 0.
Khi ự1c dA li u s theo các bư c:
j đư<ng dA li u ựư/c kắch ho t và ựư/c n p a m c cao (b = 1).
j đư<ng ựRa chS ựư/c kắch ho t (=1) làm b3t 2 transistor N3 và N4.
j PhL thu!c vào ựi n th6 t i ựi9m A mà ta ự1c ựư/c giá
trR c"a bit nh này. N6u ựi n th6 t i A cao thì ựi n th6 này chuy9n sang ựư<ng b làm ựi n th6 b cũng cao, hay
ta nh n ựư/c giá trR bit nh là 1. Ngư/c l i, n6u ựi n th6 t i A th*p thì ựi n th6 a ựư<ng b s truy n qua ựi9m A do ựó làm suy gi,m ựi n th6 trên b và ta xác ựRnh ựư/c bit nh có giá trR là 0.
L3p lu3n tương t> cho trư<ng h/p ghi m!t giá trR vào bit nh .
Trong các b! nh RAM l i chia ra làm nhi u lo i cơ b,n như sau: SDRAM (Synchronous DRAM Ờ DRAM ựMng b!), m!t d ng DRAM ựMng b! bus b! nh . T$c ự! SDRAM ự t tG 66j 133MHz (th<i gian truy nh3p b! nh tG 75nsj150ns).
đư<ng dA li u b đư<ng dA li u b đư<ng ựRa chS a) Ô nh SRAM đư<ng dA li u đư<ng ựRa chS a) Ô nh DRAM
Hình 8.12. C*u t o ô nh SRAM và DRAM
DDR SDRAM (Double Data Rate SDRAM) là c,i ti6n c"a b! nh SDRAM v i t$c ự! truy n t,i g*p ựôi SDRAM nh< vào vi c truy n t,i hai lFn trong m!t chu kỳ b! nh . T$c ự! DDR SDRAM ự t tG 200j400MHz. Trong th<i gian gFn ựây xu*t hi n chu}n RAM m i d>a trên n n t,ng DDR là DDRjII, DDRj III có t$c ự! cao hơn nh< c,i ti6n thi6t k6.
RDRAM (Rambus RAM) là m!t lo i DRAM ựư/c thi6t k6 v i
kẠ thu3t hoàn toàn m i so v i kẠ thu3t SDRAM. RDRAM ho t ự!ng ựMng b! theo m!t h th$ng l?p và truy n dA li u theo m!t hư ng. M!t kênh b! nh RDRAM có th9 hD tr/ ự6n 32 chip DRAM. MDi chip ựư/c ghép n$i tuFn t> trên m!t module g1i là
RIMM (Rambus Inline Memory Module) nhưng vi c truy n dA
li u giAa các m ch ựi u khi9n và tGng chắp riêng bi t ch không truy n giAa các chip v i nhau. Bus b! nh RDRAM là ựư<ng d[n liên tLc ựi qua các chip và module trên bus, mDi module có các chân vào và ra trên các ựFu ự$i di n. Do ựó, n6u các khe c8m không ch a RIMM s ph,i g8n m!t module liên tLc ự9 ự,m b,o ựư<ng truy n ựư/c n$i li n. T$c ự! RDRAM ự t tG 400j800MHz
8.4. B NH *O
Ngư<i ta ựã sZ dLng cơ ch6 bT nhF Xo nhQm gi,i quy6t v*n ự v kắch thư c b! nh v3t lý không ự" ch a c, h ựi u hành cùng v i các chương trình c"a ngư<i sZ dLng, ựMng th<i v*n ự các vùng nh ph,i ựư/c b,o v m!t cách ch8c ch8n ự9 kh7i bR chương trình c"a ngư<i sZ dLng làm h7ng. B! nh ,o có ựư/c d>a trên s> k6t h/p các b! nh v i t$c ự! r*t cao như b! nh trong (RAM) và b! nh có t$c ự! ch3m như b! nh phL ( 0 ựĩa c ng), ho t ự!ng dư i s> qu,n lý c"a MMU, sao cho dư i quan ựi9m c"a ngư<i l3p trình và ự$i v i ngư<i sZ dLng thì t3p h/p các b! nh trên ựư/c quan ni m là m!t b! nh thuFn nh*t v i dung lư/ng l n (gFn ho?c bQng dung lư/ng 0 ựĩa c ng) nhưng l i làm vi c a t$c ự! cao (gFn bQng t$c ự! b! nh trong).
Chương VIII: H th ng b nh
C*u trúc phân c*p b! nh ựư/c minh h1a như sơ ựM hình 8.13.
B! nh ,o có th9 ựư/c qu,n lý bQng cách chia b! nh thành các m,ng nh7 có ự! l n tắnh theo ựoNn, cơ ch6 này g1i là phân ựoNn (ự$i v i h1 Intel có tG các b! VXL 80286 tra ựi) ho?c trang, cơ ch6 này g1i là phân trang ( ự$i v i h1 Intel có tG các b! VXL 80386) tra ựi. Trong b! nh ,o như v3y, tGng m,ng mã l nh và m,ng dA li u dùng cho chương trình hi n t i ựư/c t,i tG 0 ựĩa vào b! nh trong (RAM) và ựư/c truy nh3p ự6n bai b! ựi u khi9n c"a b! nh khi cFn thi6t. N6u chương trình ựang ch y cFn ự6n m!t m,ng mã l nh hay m!t m,ng dA li u nào ựó mà không ch a trong RAM thì nó s ựư/c t,i vào RAM. N6u RAM không còn ự" không gian ự9 ch a thì m!t m,ng nào ựó c"a RAM s ựư/c xác ựRnh theo các tiêu chu}n nh*t ựRnh ự9 bR ự}y l i 0 ựĩa, như<ng chD cho m,ng ựang cFn l*y vào.
Cách ho t ựông c"a b! nh ,o giAa b! nh chắnh và b! nh phL r*t gi$ng nguyên lý ho t ựông giAa b! nh cache và b! nh chắnh mà ta ựã trình bày trong phFn trên. B! nh RAM ựóng vai trò là b! nh ch a b,n sao c"a m!t phFn b! nh phL, b! nh cache dóng vai trò là b! nh ch a b,n sao c"a m!t phFn b! nh chắnh. Tuy có nguyên lý ho t ựông gi$ng nhau nhưng s> khác bi t l n nh*t là khi th*t b i cache, s> thay th6 m!t kh$i trong cache ựư/c ựi u khi9n bQng phFn c ng, trong khi s> thay th6 trong b! nh ,o là ch" y6u do h ựi u hành. Ngoài ra khi th*t b i cache thì th<i gian bR ph t chS tương ựương v i kho,ng 5j10 lFn trong trư<ng h/p thành
Chương VIII: H th ng b nh
công cache, trong khi n6u có lDi trang thì có th9 ph,i m*t m!t th<i gian g*p 1000 lFn khi không có lDi trang.
Trong các máy tắnh hi n ự i 1 ựo n có th9 có ự! l n tG 1 byte ự6n 4GB còn 1 trang thông thư<ng có ự! l n tG 2KB ự6n 16 K bytes.
đ9 truy c3p ự6n b! nh ,o ta dùng ựRa chS ,o (ựRa chS lôgic), còn truy nh3p ự6n b! nh v3t lý ta ph,i dùng ựRa chS v3t lý. Khi cFn truy c3p ự6n m!t ựo n dA li u nào ựó thì CPU phát ra m!t yêu cFu truy c3p ự6n m!t ựRa chS, ựó chắnh là ựRa chS ,o. MMU nh3n ựRa chS ,o và dRch (chuy9n ự0i) nó ra ựRa chS v3t lý, ựRa chS này ựư/c ựưa lên bus ựRa chS ự9 truy nh3p b! nh v3t lý.
Tương t> như khi làm vi c v i cache, ự9 hi9u rõ nguyên lý v3n hành c"a b! nh ,o, ta cũng ph,i tr, l<i ựư/c 4 câu h7i cơ b,n sau:
j M!t kh$i b! nh ngoài s ựư/c ự?t t i ựâu trong b! nh trong?
j Làm th6 nào ự9 tìm m!t kh$i khi nó ựang nQm trong b!
nh trong?
j Kh$i nào ph,i ựư/c thay th6 khi có th*t b i trang?
j Vi c gì x,y ra khi cFn ghi s$ li u?
đ9 ự?t m!t kh$i nh vào trong b! nh trong cũng có 3 kẠ thu3t là tương ng tr>c ti6p, hoàn toàn ph$i h/p và ph$i h/p theo t3p h/p. Vi c trGng ph t b! nh ,o khi có th*t b i, tương ng v i vi c ph,i thâm nh3p vào 0 ựĩa. Vi c thâm nh3p này r*t ch3m nên ngư<i ta ch1n phương án hoàn toàn ph$i h/p trong ựó các kh$i (trang) có th9 nQm a b*t kỳ vR trắ nào trong b! nh trong. Cách này cho tS l th*t b i th*p.
đ9 tìm m!t kh$i nh ta cFn phân bi t hai d ng ựRnh vR, ựó là ựRnh vR trang và ựRnh vR ựo n. đRa chS phát ra bai CPU là ựRa chS ,o và trong c, hai lo i ựRnh vR, ựRa chS này ự u ch a m!t trư<ng ự9 lưu s$ th t> trang ho?c s$ th t> ựo n.
Trong trư<ng h/p ựRnh vR trang, d>a vào b,ng trang, ựRa chS trong b! nh v3t lý ựư/c xác ựRnh bQng cách ự?t k nhau s$ th c"a trang v3t lý v i ựRa chS trong trang như trong hình 8.14.
Trong trư<ng h/p ựRnh vR ựo n, d>a vào thông tin trên b,ng ựo n, vi c ki9m tra tắnh h/p l c"a ựRa chS ựư/c ti6n hành. đRa chS v3t lý ựư/c xác ựRnh bQng cách c!ng ựRa chS ựo n và ự! d<i trong ựo n như trong hình 8.15.
Khi có th*t b i trang thì kh$i cFn ựư/c thay th6 s tuân theo các chi6n thu3t thay th6 trang gi$ng như các chi6n thu3t thay th6 kh$i trong cache gMm có: Thay th* ngAu nhiên, Kh i xưa nhEt, Vào trưFc ra trưFc, TGn s sH d9ng ắt nhEt. tuy nhiên hFu h6t các h ựi u hành ngày nay ự u c$ g8ng dùng chi6n thu3t thay th6 kh$i ắt dùng gFn ựây nh*t (LRU: Least Recent Utilized) vì cho rQng ựây là kh$i ắt cFn nh*t.
đ$i v i chi6n thu3t trong b! nh ,o thì luôn sZ dLng chi6n thu3t ghi l i (writejback), nghĩa là thông tin chS ựư/c vi6t vào trong
CPU p d f f d B! nh v3t lý đRa chS ,o đRa chS v3t lý
Hình 8.14. Ánh x ựRa chS ,o sang ựRa chS v3t lý trong ựRnh vR trang