Chương 6
ớ B nhộ (Memory)
Nội dung
ớ
ổ ộ ộ ộ ộ ộ
• 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 nh o ớ ả
Tổng quan về hệ thống nhớ
ủ ệ ố
ớ
ư
• Các đ c tr ng c a h th ng nh
ế ị ư
ữ
t b l u tr
ằ
nh (tính b ng bit)
ặ – V trí ị • Bên trong CPU: – T p thanh ghi ậ • B nh trong: ớ ộ – B nh chính ộ ớ – B nh cache ớ ộ • B nh ngoài: các thi ộ ớ – Dung l ngượ • Đ dài t ộ • S l ố ượ
ừ ớ ng t
ừ ớ nh
Tổng quan về hệ thống nhớ
ủ ệ ố
ớ ế
ư
ặ
• Các đ c tr ng c a h th ng nh (ti p)
– Ph
c pậ ừ (băng t ) ạ
ẫ
ớ
– Đ n v truy n ề ị ơ • T nh (word) ừ ớ • Kh i nh (block) ố ớ ươ ng pháp truy • Truy c p tu n t ầ ự ậ • Truy c p tr c ti p (các lo i đĩa) ự ế ậ • Truy c p ng u nhiên (b nh bán d n) ộ ẫ ậ • Truy c p k t h p (cache) ế ợ ậ
Tổng quan về hệ thống nhớ
ủ ệ ố
ớ ế
ư
• Các đ c tr ng c a h th ng nh (ti p)
– Hi u năng (performance)
m t (volatile/ nonvolatile)
ượ
ặ ệ • Th i gian truy c p ờ ậ • T c đ truy n ề ố ộ – Ki u v t lý ậ ể • B nh bán d n ẫ ớ ộ • B nh t ớ ừ ộ • B nh quang ớ ộ – Các đ c tính v t lý ặ ậ • T m t/ Không t ự ấ • Xoá đ ượ
ự ấ c/ không xoá đ
c
Tổng quan về hệ thống nhớ
ệ ố
ấ
ớ
• Phân c p h th ng nh
Tổng quan về hệ thống nhớ
ậ
ộ
ớ
• Đ tin c y b nh
ầ ạ
ư
ữ
ắ
ộ – Nguyên t c chung: c n t o ra và l u tr thêm
thông tin
ớ
ữ ừ ộ mã: k bit
ữ ệ ầ ẻ ẵ ỗ ể (parity): M i byte d li u c n 1 bit ki m tra
ư ừ d th a. • T d li u c n ghi vào b nh : m bit ừ ữ ệ ầ • C n t o ra và l u tr t ầ ạ ư • L u tr (m+k) bit ữ ư – Phát hi n l ệ ỗ i • Ki m tra ch n/ l ể • Checksum • CRC (Cyclic Redandancy Check) ử ỗ i ộ c mã hoá b ng các b mã có kh năng s a l
– Phát hi n và s a l ệ • D li u đ
ữ ệ ượ ằ ử ỗ i ECC
ụ ả (Error Correction Code), ví d : Mã Hamming
ề ể ặ ỗ • M i byte ho c block d li u c n nhi u bit ki m tra h n ơ ữ ệ ầ
Tổng quan về hệ thống nhớ
ớ ế
ậ
ộ
ộ
• Đ tin c y b nh (ti p)
Bộ nhớ bán dẫn
• Phân lo iạ
ệ
ắ
– ROM (Read Only Memory) • B nh ch đ c ớ ỉ ọ ộ • Không t
m t d li u khi c t ngu n đi n
ồ ự ấ ữ ệ – RAM (Random Access Memory)
ắ
ồ
• B nh đ c/ ghi ớ ọ ộ • T m t d li u khi c t ngu n đi n ệ ự ấ ữ ệ
– Cache ộ
ớ
ố ộ
ượ
ấ ng th p
ợ ẵ
ượ
ườ
• B nh có t c đ cao nh ng dung l ư • Trung gian gi a b nh chính và thanh ghi trong CPU ữ ộ • Ngày nay th ng đ
ớ c tích h p s n trong CPU
Bộ nhớ bán dẫn
• ROM
ượ
ả ử ượ ộ
ử ụ
ấ c ghi khi s n xu t c n i dung khi s d ng
Ứ
ươ
ệ ố
ể
ấ ơ ả
ậ
– Thông tin đ – Không xoá/ s a đ – ụ ng d ng: • Th vi n các ch ư ệ • Các ch ươ
ng trình con ề ng trình đi u khi n h th ng
nh p xu t c b n
BIOS (Basic Input Output System)
ề
ể
• Ph n m m ki m tra khi b t máy POST (Power On Self ậ
ở ộ
ầ Test) • Ph n m m kh i đ ng máy tính (OS loader) ầ • Vi ch
ề ươ ng trình
Bộ nhớ bán dẫn
ượ
ả ấ c ghi khi s n xu t ử ượ ộ c n i dung
• Phân lo i ROM ạ – Mask ROM • Thông tin đ • Không xoá/ s a đ • Giá thành r t đ t ấ ắ – PROM (Programmable ROM) ấ ế ị
ư ộ ắ
ể
ượ ọ
• Khi s n xu t ch a có n i dung (ROM tr ng) ả • C n thi ụ ầ t b chuyên d ng đ ghi • Cho phép ghi đ ộ ầ , g i là OTP (One Time c m t l n ặ Programmable) ho c WORM (WriteOnceReadMany)
– EPROM (Erasable PROM) • Có th ể xóa b ng tia c c tím ằ UV (Ultra Violet) • C n thi ể ầ • Ghi/ xoá đ
ế ị ượ ự ụ t b chuyên d ng đ ghi ề ầ c nhi u l n
Bộ nhớ bán dẫn
ế
ạ
• Phân lo i ROM (ti p)
– EEPROM (Electrically EPROM)
ầ
ầ
• Xóa b ng ằ m ch ạ đi nệ , không c n tia UV
Không c n tháo
chip ROM ra kh i máy tính
ể
ỏ • Có th ghi theo t ng byte ừ • 2 ch đ đi n áp: ế ộ ệ
ệ ệ
– Đi n áp cao : Ghi + Xoá – Đi n áp th p : Ch đ c ỉ ọ ấ
ớ ự
– Flash memory (B nh c c nhanh) ệ
ố ộ
• EEPROM s n xu t b ng công ngh NAND, t c đ truy
ậ ộ
ộ ấ ằ ả ậ c p nhanh, m t đ cao
ộ
ừ c s d ng r ng rãi d
ổ
• Xóa b ng ằ m ch ạ đi nệ ; Ghi theo t ng block • Ngày nay đ ướ ạ ế SSD (thay th cho
ượ ử ụ ổ SD,…) , thanh USB,
ớ ẻ i d ng th nh (CF, ứ đĩa c ng)
Bộ nhớ bán dẫn
• RAM ộ
ớ ọ ể
– B nh đ cghi (Read/Write Memory) – Có th ghi/ xoá trong quá trình s d ng
ử ụ Làm b ộ
nh chính trong máy tính
– T m t d li u khi c t ngu n đi n. Ch l ỉ
ắ ồ ờ khi ch y ch ạ ầ ư
ộ
ữ ư ệ u tr ế ươ ạ ng trình, khi k t ớ ữ ữ ệ ng trình c n l u tr d li u ra b nh
ớ ự ấ ữ ệ thông tin t m th i ươ thúc ch ngoài
– Có hai lo i: ạ
• SRAM (Static RAM): RAM tĩnh • DRAM (Dynamic RAM): RAM đ ngộ
Bộ nhớ bán dẫn
• SRAM
ượ ư ị
c l u tr b ng các FlipFlop ự ấ ữ ệ
ổ
– Các bit đ – Thông tin n đ nh
ữ ằ , không t
m t d li u theo
th i gian
ỏ
ộ
ớ
ờ – C u trúc ph c t p ứ ạ ấ – Dung l ượ ng chip nh – T c đ ố ộ truy c p ậ nhanh – Đ t ti n ắ ề – Dùng làm b nh cache
Bộ nhớ bán dẫn
• DRAM
m ch ạ t
ụ ệ đi n ầ
ả
c n ph i có
ớ
– Các bit đ ượ ư ữ c l u tr trên – T m t d li u theo th i gian ự ấ ữ ệ ờ ạ ươ (refresh) i m ch làm t – C u trúc đ n gi n ả ơ ấ – Dung l ớ ượ ng l n – T c đ ch m h n ơ ố ộ ậ – R ti n h n ơ ẻ ề – Dùng làm b nh chính ộ
Bộ nhớ bán dẫn
ơ ế
ạ ộ
ạ
• Phân lo i DRAM theo c ch ho t đ ng
– FPM (Fast Page Mode) ậ
ừ
ộ
ớ
• Truy c p theo t ng trang b nh (cùng hàng khác c t) ộ – EDO (Enhanced Data Out) ể ồ ấ ữ ệ
ờ ọ ị
ỉ ủ
• Khi xu t d li u có th đ ng th i đ c đ a ch c a ô nh k ớ ế
ti pế
ấ
ọ
ườ
• Cho phép đ c nhanh g p đôi so v i RAM th
ng
ồ
ỳ ờ
ầ
CPU không c n chu k ch
ộ ớ ề ữ ệ
ớ – SDRAM (Synchronous DRAM) • Đ ng b v i system clock • Truy n d li u theo block – RDRAM (Rambus DRAM) ớ ố ộ
ộ
ấ ể ử ụ
• B nh t c đ cao, truy n d li u theo block ề ữ ệ • Do công ty Rambus và Intel s n xu t đ s d ng cho CPU ả
ệ
ấ
ử ụ
ắ
ớ Pentium 4 khi m i xu t hi n năm 2000 • Giá thành đ t nên ngày nay ít s d ng
Bộ nhớ bán dẫn
ơ ế
ạ ộ
ế
ạ
• Phân lo i DRAM theo c ch ho t đ ng (ti p)
– DDRSDRAM (Double Data RateSDRAM)
ố ộ
ằ
• Phiên b n c i ti n c a SDRAM nh m nâng cao t c đ truy
ả ả ế ủ ư
ẻ ơ
ậ c p nh ng có giá thành r h n RDRAM ở ữ ệ
ầ
ỳ
• G i d li u 2 l n trong 1 chu k clock ặ
ở ữ ệ
ầ
– DDR2/ DDR3: G i d li u 4 ho c 8 l n trong 1 chu
ỳ k clock
Bộ nhớ bán dẫn
ạ
ứ
• Phân lo i DRAM theo hình th c đóng gói – SIMM (Single Inline Memory Module) – DIMM (Dual Inline Memory Module) – RIMM (Rambus Inline Memory Module) – SODIMM (Small Outline DIMM) – SORIMM (Small Outline RIMM)
Bộ nhớ bán dẫn
ỉ
ị
• T ch c c a chip nh ớ n1 ÷ A0 có 2n ườ ng đ a ch : A
t
ườ
ổ ứ ủ – Các đ nhừ ớ – Các đ
m1 ÷ D0 đ ộ
n * m bit
ớ ể
ề
– Dung l – Các đ
ọ
ể ể
ườ
ệ
ề
ữ ệ ng d li u: D ớ dài từ nh = m bit ượ ng chip nh = 2 ườ ng đi u khi n: • Tín hi u ch n chip CS (Chip Select) ọ ệ • Tín hi u đi u khi n đ c OE (Output Enable) ề ệ • Tín hi u đi u khi n ghi WE (Write Enable) ề ệ • Các tín hi u đi u khi n th ự ớ ể
ng tích c c v i
m c 0ứ
Bộ nhớ bán dẫn
ổ ứ ộ
ề
• T ch c b nh 1 chi u và 2 chi u ề ớ
Bộ nhớ bán dẫn
• T ch c b nh hai chi u ề
ỉ
ớ ị
ng đ a ch : n = n1 + n2
ổ ứ ộ – Có n đ ườ • 2n1 hàng, • m i hàng có 2 ỗ ườ ỗ ừ ớ ượ
ủ
– Có m đ • m i t – Dung l
ừ ớ n2 t nh , ữ ệ ng d li u: ộ nh có đ dài mbit. ớ ng c a chip nh :
• [2n1 x (2n2 x m)] bit = (2n1+n2 x m) bit = (2n x m) bit.
– Ho t đ ng gi ạ ộ ướ ướ
ộ
ủ
n1 hàng. ộ nhừ ớ (c t) c a
ả • B c 1: b gi ộ ả • B c 2: b gi ộ ả ượ hàng đã đ
ỉ ị i mã đ a ch : ọ i mã hàng ch n 1 trong 2 ọ i mã c t ch n 1 trong 2 n2 t ọ c ch n.
Bộ nhớ bán dẫn
• 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
ỉ
ị
ệ
ệ
ị
ượ
ng DRAM = 2
2n x m
– Tín hi u ch n đ a ch hàng ọ RAS (Row Address Strobe) – Tín hi u ch n đ a ch c t ỉ ộ ọ CAS (Column Address Strobe) – Dung l bit
Bộ nhớ bán dẫn
• Thi
ng:
ừ ớ nh ả ộ
ố ượ
ng t
ế ế – Dung l – C n thi ầ • Thi ế ế • Thi ế ế • Thi ế ế ế ợ ố ắ ặ ố ế
ớ ạ
ả
ẫ ớ t k môđun nh bán d n ớ n x m bit ượ ng chip nh 2 ượ ế ế ể t k đ tăng dung l ừ ớ ộ nh t k tăng đ dài t ố ượ ng t t k tăng s l ừ ớ nh t k k t h p: tăng c đ dài và s l – Qui t c: ghép n i các chip nh song song (tăng ằ i mã (tăng
ộ đ dài) ho c n i ti p b ng m ch gi ố ượ s l
ng)
Bộ nhớ bán dẫn
ộ
• Tăng đ dài t
ừ ớ nh
– VD:
ớ
– Gi
ế ế ớ
12 x 4 bit
ượ ớ ng chip nh = 2
– 12 chân đ a ch ỉ ị – 4 chân d li u ữ ệ • môđun nh c n có: ớ ầ – 12 chân đ a ch ỉ ị – 8 chân d li u ữ ệ
– T ng quát
• Cho chip nh SRAM 4K x 4 bit • Thi t k môđun nh 4K x 8 bit i:ả • Dung l • chip nh có:ớ
ổ • Cho chip nh 2ớ n x m bit • Thi ế ế t k môđun nh 2 • Dùng k chip nhớ
ớ n x (k.m) bit
Bộ nhớ bán dẫn
ộ
• Ví d : ụ Tăng đ dài t
ừ ớ nh
Bộ nhớ bán dẫn
ố ượ
ng t
ừ ớ nh
• Tăng s l – VD:
ớ
ớ
ế ế
– Gi
ượ
ớ
ng chip nh = 2
12 x 8 bit
ớ
ng môđun nh = 2
• Dung l
13 x 8 bit
• Cho chip nh SRAM 4K x 8 bit • Thi t k môđun nh 8K x 8 bit i:ả • Dung l • Chip nh có:ớ – 12 chân đ a ch ỉ ị – 8 chân d li u ữ ệ ượ – 13 chân đ a ch ỉ ị – 8 chân d li u ữ ệ
Bộ nhớ bán dẫn
ố ượ
• Ví d : ụ Tăng s l
ng t
ừ ớ nh
Bộ nhớ bán dẫn
• Bài t pậ
ầ
ừ ấ
ố ượ
– Tăng s l
ế ế
t k môđun nh 16K x 8 bit 4
ố ượ
– Tăng s l
ế ế
t k môđun nh 32K x 8 bit 8
i mã 3
ng t g p 4 l n: • Cho chip nh SRAM 4K x 8 bit ớ • Thi ớ • G i ý: Dùng m ch gi ả ạ ợ i mã 2 ầ ừ ấ ng t g p 8 l n: • Cho chip nh SRAM 4K x 8 bit ớ • Thi ớ • G i ý: Dùng m ch gi ạ ợ ả ế ế ế ợ t k k t h p:
– Thi
ớ
ế ế
ớ
• Cho chip nh SRAM 4K x 4 bit • Thi t k môđun nh 8K x 8 bit
Bộ nhớ chính
ự
ệ
• Các đ c tr ng c b n ơ ả ư ng trình đang th c hi n và các
ữ ệ d li u
ươ c s d ng
ở
ặ – Ch a các ch ứ đang đ – T n t ồ ạ – Bao g m các ồ
ượ ử ụ ọ ệ ố i trên m i h th ng máy tính ớ ượ ô nh đ
ị c đánh đ a ch tr c
ế ỉ ự ti p b i
ủ ộ
ớ
trên th c t
ng c a b nh chính ỉ ộ
ớ
ị
ự ế ườ th gian đ a ch b nh mà CPU
ng có th ể
ớ
ộ
– Vi c qu n lý logic b nh chính tu thu c vào
ộ ườ ậ
ộ
h ệ ỳ ớ ỉ ử ụ i l p trình ch s d ng b nh
ng
CPU – Dung l ượ ỏ ơ nh h n không ả qu n lý. ệ ả ề đi u hành logic.
Bộ nhớ chính
ớ
ổ ứ ộ
ộ ộ
• T ch c b nh đan xen (interleaved memory) – Đ r ng c a bus d li u đ ể ộ ổ ớ b nh : m = 8,
ữ ệ ủ ớ trao đ i v i 16, 32, 64,128 bit ...
– Các ô nh đ
ớ ượ ổ ứ ch c c t ớ ổ ứ ộ ch c b nh
theo byte t ậ v t lý khác nhau
ộ
– m=8 bit m t băng nh ớ
ế
tuy n tính
Bộ nhớ chính
• T ch c b nh đan xen (ti p)ế ớ
ớ ổ ứ ộ – m = 16 bit hai băng nh đan xen
Bộ nhớ chính
ớ
• T ch c b nh đan xen
(ti p)ế ớ
ổ ứ ộ – m = 32 bit b nố băng nh đan xen
Bộ nhớ chính
ớ
• T ch c b nh đan xen
(ti p)ế ớ
ổ ứ ộ – m = 64 bit tám băng nh đan xen
Bộ nhớ cache
ủ
• Nguyên t c chung c a cache ươ
ườ
ắ – Nguyên lý c c b :
ng trình th
ụ ộ M t ch ử ộ ng s ệ ỉ ể ờ ụ d ng 90% th i gian ch đ thi hành 10% câu l nh – Cache đ nh m ằ ượ ặ
c đ t gi a CPU và b nh chính
ố ộ
ộ
ữ ậ
tăng t c đ truy c p b nh
ớ ộ ớ c a ủ CPU
– Ví d :ụ ấ
ươ
ầ ự
ặ
ữ ệ
ấ
• C u trúc ch ng trình tu n t • Vòng l p có thân nh ỏ • C u trúc d li u m ng ả
Bộ nhớ cache
ớ
ộ ộ
ủ ô nhớ
ể
ớ ữ ệ
cache (nhanh) c sau: ớ
b nh chính vào cache
ậ
(ch m h n)
ể ữ ệ ừ
• Thao tác trên b nh cache – CPU yêu c u n i dung c a ầ – CPU ki m tra trên cache v i d li u này – N u có, CPU nh n d li u t ậ ữ ệ ừ ế – N u không có ướ ệ ự ế th c hi n 2 b • Đ c Block ch a d ệ ừ ộ ứ ữ li u t ọ ơ • Chuy n d li u t
cache vào
CPU
Bộ nhớ cache
• C u trúc chung c a cache
ủ ấ – B nh chính có 2 ớ
N byte
ộ nhớ
ộ ớ • B nh chính và cache đ c
ố
ượ chia thành các kh i có kích th
0, B1, B2, ... ,
ướ ằ ộ
0, L1, L2, ... ,
ộ
• Kích th c c a Block =
c b ng nhau ớ • B nh chính: B Bp1 (p Blocks) ớ • B nh cache: L Lm1 (m Lines) ướ ủ 8,16,32,64,128 byte
Bộ nhớ cache
ế
ủ ủ ộ
ộ ố
ớ
• C u trúc chung c a cache (ti p) ấ – M t s Block c a b nh chính đ
ạ ượ n p vào
c
ủ các Line c a cache. ẻ
ớ
nào c a ủ
ớ
t Block ứ ở
ế ượ ch a
– N i dung Tag (th nh ) cho bi c
ộ ộ b nh chính hi n đang đ
Line đó.
ọ
ộ ừ ớ có hai nh ,
ả
ả
ừ ớ ừ ớ
ệ – Khi CPU truy c p (đ c/ghi) m t t ậ kh năng x y ra: • T nh đó có trong cache (cache hit) • T nh đó không có trong cache (cache
miss)
Bộ nhớ cache
• T ch c b nh cache ổ ứ ộ – Kích th ướ
ớ c cache • Cache càng l n càng hi u qu nh ng đ t ti n ắ ề ả ư ớ ệ • C n nhi u th i gian đ gi ậ ờ ể ả i mã và truy c p ị ươ ạ ỹ
ậ
ữ ệ
ị
ầ
ng pháp xác đ nh v trí d li u
trong cache
i thu t thay th
– Gi
ế ọ ự
ề – K thu t ánh x : Ph
ư ể ớ ạ ự ế ạ ế ợ ạ ế ợ ậ ng pháp ch n l a vùng nh nào l u trong cache đ tăng
• Ánh x tr c ti p (Direct mapping) • Ánh x k t h p toàn ph n (Fully associative mapping) ầ • Ánh x k t h p theo b (Set associative mapping) ộ ả • Ph ươ ệ ấ ử ụ hi u su t s d ng cache
Bộ nhớ cache
• Ánh x tr c ti p ạ ự ế
ủ ộ
ớ
ỉ
– M i Block c a b nh chính ch có th đ
ể ượ ạ vào c n p
ủ
m t Line c a cache:
....
Cache line Main Memory blocks s
0 0, m, 2m, 3m…2s–m
1 1, m+1, 2m+1…2s–m+1
ỗ ộ • B0 L0 • B1 L1 • • Bm1 Lm1 • Bm L0 • Bm+1 L1 •
.... – T ng quát
m–1 m–1, 2m–1, 3m–1…2s–1
ể ạ ỉ L(j mod m)
ổ • Bj ch có th n p vào • m là s Line c a cache.
ủ ố
Bộ nhớ cache
ế
• Ánh x tr c ti p (ti p) ạ ự ế
Bộ nhớ cache
ể
ủ ộ ị
ặ – M i m t đ a ch N bit c a b nh chính g m
ồ ba vùng:
• Đ c đi m c a ánh x tr c ti p ạ ự ế ớ ủ ộ ỗ • Vùng Word g m W bit xác đ nh m t t ộ ừ ớ trong Block hay Line: ị ướ ủ Block hay Line
ỉ ồ – 2W = kích th
c c a
nh
– 2L = s ố Line trong cache = m
ộ ồ ố ị • Vùng Line g m L bit xác đ nh m t trong s các Line trong cache:
ồ
ộ
ơ
ỷ ệ
ấ
– B so sánh đ n gi n ả – Giá thành rẻ – T l
cache hit th p (vd: 2 block cùng map vào 1 line)
• Vùng Tag g m T bit: – T = N (W+L)
Bộ nhớ cache
ạ ế ợ
ủ
ấ ỳ ồ
ỉ ủ ộ
• Ánh x k t h p toàn ph n ầ – M i Block có th n p vào b t k Line nào c a cache. ể ạ – Đ a ch c a b nh chính bao g m hai vù ớ
ỗ ị • Vùng Word gi ng nh tr ư ườ • Vùng Tag dùng đ xác đ nh Block c a ị ể
ng: ạ ự ế . ng h p ánh x tr c ti p ớ ủ b nh chính. ộ
ằ ở
ị
Line đó
ể
• Đ c đi m
ớ ấ ả
ờ Block nh ớ v i t
t c các Tag
m t ấ
– Tag xác đ nh Block đang n m ặ – So sánh đ ng th i ồ ờ nhi u th i gian
cache hit cao. ứ ạ
ề – T l ỷ ệ – B so sánh ph c t p. ộ
ố ợ
Bộ nhớ cache
ạ ế ợ
ế
ầ
• Ánh x k t h p toàn ph n (ti p)
Bộ nhớ cache
ộ
bộ (Set)
c chia thành các ộ ố
ứ
• Ánh x k t h p theo b ạ ế ợ – Cache đ ươ – M i m t Set ch a m t s Line ộ ỗ – Ví d :ụ
• 4 Line/Set 4way associative mapping
ắ
ạ
– Ánh x theo nguyên t c sau:
• B0 S0 • B1 S1 • B2 S2 • .......
Bộ nhớ cache
ạ ế ợ
ộ ế
• Ánh x k t h p theo b (ti p)
Bộ nhớ cache
ộ
ạ ế ợ ể ánh x k t h p theo b
ộ
ị
• Đ c đi m ặ – Kích th ướ c Block = 2 – Vùng Set có S bit dùng đ xác đ nh
ể
W Word ể ố m t trong s ị V = 2S Set (dùng đ xác đ nh Set nào trong cache)
ể
– Vùng Tag có T bit: T = N (W+S) dùng đ xác
ỗ
ạ
trong 1 Set t ươ
ươ
ị đ nh Line nào có trong Set – M i Block b nh có th ánh x vào Line b t k ớ ấ ỳ ể ộ ươ ứ ng ng ổ ng pháp t ng h p
ợ từ hai ph
ng pháp
– Là ph trên
ườ
– Thông th
ng
ử ụ 2, 4, 8, 16 Lines/Set s d ng
Bộ nhớ cache
ụ ề
ạ ị
ỉ
• Ví d v ánh x đ a ch
ị
ớ
ộ
ượ ướ
ườ
ỉ cho ba
ủ ợ ổ ứ ch c:
– Không gian đ a ch b nh chính = 4GB ỉ ộ – Dung l ớ ng b nh cache là 256KB – Kích th c Line (Block) = 32byte. – Xác đ nh s bit c a các tr ị ố ị ng đ a ch ườ ng h p t tr • Direct mapping • Fully associative mapping • 4way set associative mapping
Bộ nhớ cache
ớ
ụ ộ
32 byte N = 32 bit
• Ví d : Direct mapping – B nh chính : 4GB = 2 – Cache : 256 KB = 218 byte. – Line : 32 byte = 25 byte W = 5 bit – Line trong cache : 218/ 25 = 213 Line L = 13 bit – T = 32 (13 + 5) = 14 bit
Bộ nhớ cache
• Ví d : Fully associative mapping
ụ ộ
ớ
32 byte N = 32 bit
ố
– B nh chính : 4GB = 2 – Line : 32 byte = 25 byte W = 5 bit – S bit c a
ủ vùng Tag : T = 32 5 = 27 bit
Bộ nhớ cache
• Ví d : 4way set associative mapping
ụ ộ
ớ
32 byte N = 32 bit
ộ
2 Line
ố
– B nh chính : 4GB = 2 – Line : 32 byte = 25 byte W = 5 bit – Line trong cache = 218/ 25 = 213 Line – M t Set có 4 Line = 2 – Set trong cache = 213/ 22 = 211 Set S = 11 bit – S bit c a ủ vùng Tag : T = 32 (11 + 5) = 16 bit
Bộ nhớ cache
ậ
ả
• Gi
i thu t thay th cache ả ụ
ế ậ
– M c đích: Gi
i thu t thay th dùng đ xác đ nh
ẽ ượ
ị ể ế ể ư ữ c ch n đ đ a d
Line nào trong cache s đ li u vào cache khi không còn ch tr ng
ể
ặ ằ
ọ ỗ ố ầ ứ
ệ – Th
c cài đ t b ng ph n c ng đ tăng
ả ự ỉ
ộ
ỗ
ượ ườ ng đ ố ộ ử t c đ x lý – Đ i v i ánh x tr c ti p: ạ ự ế ố ớ • Không ph i l a ch n ọ • M i Block ch ánh x vào m t Line xác ạ
đ nhị
Bộ nhớ cache
ả
ậ
ạ ế ợ
• Gi
ế
ế ớ i thu t thay th v i ánh x k t h p – FIFO (First In First Out): Thay th Block nào
n m ằ
ấ ở
lâu nh t
trong Set đó
ế
ậ
ấ
ố ầ ờ
ả
ộ
– LFU (Least Frequently Used): Thay th Block nào trong Set có s l n truy c p ít nh t trong cùng m t kho ng th i gian
ế
– LRU (Least Recently Used): Thay th Block
ở
ấ không
ố ư
ậ
trong Set t ượ đ – Gi ả
ươ ứ c tham chi u t i thu t t
ờ ng ng có th i gian lâu nh t ế ớ i. ấ i u nh t: LRU
Bộ nhớ cache
ể ghi d li u
ữ ệ ra cache
• Đ c đi m ỉ
ộ
ặ – Ch ghi vào 1 block trong cache khi n i dung
ộ
ớ
ớ ươ ứ
ị ạ
ổ trong b nh chính thay đ i – N u CPU ghi ra cache, ô nh t
ng ng b l c ượ
ầ
c n update ra BN chính. Ng ộ ạ
ầ
ế ậ c h u (invalid) ạ ế l i, n u ghi vào BN chính, n i dung trong cache ẽ ị s b invalid
c n update l ử
ề
i cache ớ
ệ
ẽ ị
– Trong h đa x lý có nhi u CPU v i cache riêng, khi ghi vào 1 cache, các cache khác s b invalid
Bộ nhớ cache
ươ
• Ph
ữ ệ ng pháp ghi d li u khi cache hit
– Writethrough:
ả ộ ớ
– Writeback: ỉ
ậ ữ ệ ặ ừ • Ghi c cache và c b nh chính ả • T c đ ch m ố ộ ậ • Cho phép CPU khác ho c IO truy c p d li u đã ghi t BN
ố ộ
ớ c d li u m i trong BN
ọ ượ ữ ệ ả ế ầ ị • Ch ghi ra cache • T c đ nhanh • CPU khác ho c IO không đ c đ ặ • Khi Block trong cache b thay th c n ph i ghi Block này v b ề ộ
ớ nh chính
Bộ nhớ cache
ồ
ươ
• Cache tách bi ấ ệ t và cache đ ng nh t – Cache tách bi ổ ứ ệ t (Split Cache): T ch c cache ệ ữ ệ
ng
ạ
riêng cho d li u và cache riêng cho l nh ch trình • T i u cho t ng lo i cache ừ • H tr ki n trúc pipeline • Ph n c ng ph c t p ứ ạ ấ
ố ư ỗ ợ ế ầ ứ ồ
ử ụ
ả ữ ệ ẫ ệ
ươ
– Cache đ ng nh t (Unified Cache): S d ng 1 ng
l
cache chung cho c d li u l n l nh ch trình • Cân b ng v t ằ ề ỷ ệ cache hit • Ph n c ng đ n gi n ả ơ ầ ứ
Bộ nhớ cache
ụ ệ ố
• Ví d : H th ng cache trong CPU Intel Pentium 4
Bộ nhớ cache
ụ ệ ố
• Ví d : H th ng cache trong CPU Intel Core i7
Bộ nhớ ngoài
ớ
ể
ử ụ
ữ
ầ
ố
phân ph i ph n m m
• Các ki u b nh ngoài ộ – Tr ng t ố ừ (Drum): Ngày nay không còn s d ng – Băng từ (Tape): Chuyên dùng cho backup d li u ữ ệ – Đĩa từ: Đang s d ng r ng rãi nh t ấ ộ ử ụ – Đĩa quang: Dùng đ trao đ i d li u gi a các máy tính và ể ổ ữ ệ ề ạ ộ
ắ
ổ
ỏ ọ
ẫ ể
ậ
ớ USB, nh g n và thu n ti n đ trao đ i d li u
ế
ớ
ớ
ự ổ ố
ố
ộ ươ ng l n giao ti p v i máy tính t ồ ượ
ậ ợ
ể
ớ
– Flash Disk: Lo i b nh bán d n g n ngoài qua c ng ệ ổ ữ ệ – SSD (Solid State Disk): Cũng là b nh bán d n có dung ẫ ớ ố ứ ượ đĩa c ng, t c l ng t ố ố ệ ộ đ truy c p cao, ít t n đi n, không n, ch ng s c t t ắ ấ r t phù h p v i máy xách tay. Nh c đi m giá thành đ t.
Bộ nhớ ngoài
• Đĩa từ
ứ
ề
ồ
– Bao g m đĩa m m (floppy disk) và đĩa c ng (hard
disk)
ừ
ộ di đ ng ượ
c (removable)
– Các đ c tính đĩa t ầ ừ ố ị ố ị ặ
ộ
hay nhi u ề t m ấ đĩa (đĩa c ng)ứ
ặ • Đ u t ầ ừ c đ nh hay đ u t • Đĩa c đ nh hay thay đ i ổ đ • M t m t hay hai m t ặ • M t ộ t m ấ đĩa (đĩa m m) ề • C ch đ u t ế
ơ ế ầ ừ – Ti p xúc (đĩa m m) – Không ti p xúc ế
ề
Bộ nhớ ngoài
• Đĩa t
(ti p)
ừ ế – Đĩa m mề
ượ ỉ ớ ỏ ng nh : ch t i 1.44M B
ả • 8”, 5.25”, 3.5” • Dung l • T c đ ch m ố ộ ậ • Hi n nay không s n xu t n a ấ ữ ệ
nhi u ề t m ấ đĩa
ộ
– Đĩa c ngứ • Th ườ ng có • Đang s d ng r ng rãi ử ụ • Dung l ệ ượ ớ ng l n (hi n nay có • T c đ đ c/ghi nhanh ố ộ ọ • R ti n ẻ ề
ổ 3TB – 2011)
Bộ nhớ ngoài
ứ
• C u trúc v t lý đĩa c ng ậ
ấ – M t đĩa ặ – Track (cylinder) – Sector
Bộ nhớ ngoài
ứ
ế
ậ
• C u trúc v t lý đĩa c ng (ti p)
ấ • Track là các vòng tròn
ồ ơ ừ
đ ng tâm • Đ n v đ c ghi: t ng ị ọ sector (~ 512Byte), có th đ c ghi theo block nhi u sector (cluster)
ể ọ ề ờ
• Th i gian đ c ghi: ọ • Seek time • Latency time • Transfer time
ớ ậ ố
• Đĩa quay v i v n t c góc constant
ổ không đ i CAV ( angular velocity)
Bộ nhớ ngoài
ậ
ế
ứ ế ự
• C u trúc v t lý đĩa c ng (ti p) ấ – Longitudial recording: Ghi tuy n tính – Perpendicular recording: Ghi tr c giao – Cluster: M t b g m nhi u sector ộ ộ ồ
ề
Bộ nhớ ngoài
ị
• Đ nh d ng sector ạ
Bộ nhớ ngoài
• K thu t RAID ậ
ề ổ
ể
ậ
ậ
ư ổ ậ
ỹ – RAID: Redundant Array of Independent Disks – Ghép nhi u
đĩa v t lý đ truy c p nh 1
lu n
ọ
ố ộ ộ
ậ ữ ệ
ư ừ
ư ỏ
lý • Tăng t c đ truy c p (đ c ghi luân phiên và song song) • Tăng đ an toàn d li u khi đĩa h h ng (ghi d th a
ặ
ho c ghi thêm thông tin ECC/parity)
ủ ơ
ữ
ố
ị ư i đa c a đ n v l u tr (nhi u đĩa)
ng t
• Tăng dung l ượ ạ
ụ
ệ
ề – Hi n có 7 lo i thông d ng: RAID0 – RAID6
Bộ nhớ ngoài
• RAID 0, 1 và 2
Bộ nhớ ngoài
• RAID 3 và 4
Bộ nhớ ngoài
• RAID 5 và 6
Bộ nhớ ngoài
ắ ỹ
• Tóm t
ậ t k thu t RAID
Bộ nhớ ngoài
• Đĩa quang (optical disk) – CD (compact disk)
ượ
ng: 700MB, 200MB ướ ố ộ ổ ng tâm, t c đ dài không đ i CLV
• Kh năng đ c/ghi: CDROM, CDR, CDRW ả ọ • Đ ng kính: 12cm, 8cm ườ • Dung l • Track: Ghi theo các vòng h (constant linear velocity)
ố ộ ọ
ạ ẩ ị • T c đ đ c ghi: 1x – 52x (1x= ??) • Chu n đ nh d ng: ISO 9660, UDF (Universal Disk Format)
Bộ nhớ ngoài
• Đĩa quang (ti p)ế
ạ
ượ
– DVD (Digital Versatile Disk): Lo i đĩa dung l
ừ
ấ
ng cao đĩa phim video (Digital Video
ớ (so v i CD), xu t phát t Disk) ả
ọ
– Kh năng đ c ghi: DVDROM, DVD±R, DVD±RW,
DVDRAM
ớ
ố ặ ố ớ ườ ố ộ
ượ
– S m t/ s l p: 12 m t, 12 l p/m t ặ ặ Sides Layers – Đ ng kính: 12cm, 8cm – T c đ : 1x – 24x (1x=?) – Đĩa DVD dung l ng cao
Diameter (cm) 8 8 8 8 12 12 12 12
Capacity (GB) 1.46 2.66 2.92 5.32 4.7 8.54 9.4 17.08
1 2 2 4 1 2 2 4
1 1 2 2 1 1 2 2
• HDDVD (1560GB) • Blue ray (2550GB)
Bộ nhớ ảo
• B nh th t ớ ậ
ị ỉ
ự ế ớ ậ ộ ỉ ng trình trùng v i không gian đ a ch i l p trình truy c p tr c ti p vào 1 ô
ộ – Không gian đ a ch trong ch ươ ị ườ ậ ớ trong b nh . Cho phép ng nh ớ Khó b o v b nh . ớ ả ệ ề ộ
ạ ộ ươ ộ
ệ ộ – Khi thi hành, h đi u hành n p toàn b ch ả ủ ớ ớ c c p phát 1 vùng nh có đ a ch liên t c (c p phát
ớ ượ ấ ẽ ươ
ớ ng trình vào b nh ướ b nh máy tính ph i đ l n đ ch y các CT l n ạ ớ ể ạ (n p tr c) – Ch ấ ụ ỉ ươ ng trình đ ụ ng trình k t thúc ể ự ớ ầ ệ ề – Đ th c hi n đa ch
ị ồ ế liên t c). HĐH s thu h i vùng nh sau khi ch ng, HĐH c n chia BN ra nhi u vùng ấ ươ (partition), m i vùng c p phát cho 1 CT
ớ ố
ế ầ
ớ ủ
ế
ể
ạ
ấ
ổ
ỹ
• HĐH không c p ti p, các CT ph i ch đ n khi có 1 vùng nh tr ng ờ ế ả • HĐH c p ti p: C n k thu t tráo đ i (swapping) đ ghi t m vùng nh c a 1 CT
ấ
ấ
ậ ỗ ố
ớ khác ra BN ngoài, l y ch tr ng c p cho CT m i
ỗ – Khi b nh đ y ớ ầ ộ ấ
Bộ nhớ ảo
ế
ộ
• B nh th t (ti p) ớ ậ
Bộ nhớ ảo
ớ ả
• B nh o (Virtual Memory) ị
ỉ ả
ỉ
ị
ượ
ệ
ộ – Không gian đ a ch trong CT (đ a ch o) đ
t
ỉ
ị
ẽ
ị
ị ố ợ ị ạ
ả ượ
ự
ệ
ơ
c tách bi ỉ ự CPU và ớ v i không gian đ a ch trong BN (đ a ch th c) ỉ ả ạ HĐH s ph i h p đ ánh x (mapping) đ a ch o trong CT thành đ a ch th t trong BN – Vi c ánh x và qu n lý BN o đ
ệ c th c hi n qua đ n
ể ỉ ậ ả ị v MMU (Memory Management Unit)
Bộ nhớ ảo
ế
• B nh o (ti p) ớ ả
ầ ầ
ệ ề
ỉ ạ
ộ – Khi thi hành, h đi u hành ch n p các ph n c n thi
ớ ạ
ầ
ầ
ộ
ế t ạ ủ c a CT vào b nh (n p theo yêu c u), không c n n p toàn b CT
ộ tránh lãng phí BN
ề
ớ
ị
ỉ
ượ ấ c c p phát nhi u vùng nh có đ a ch tách ụ ấ
bi
t nhau (c p phát không liên t c).
– Các CT đ ệ ử ụ
ỹ
ể
ạ
ổ
ờ ể ấ
ế
ậ ớ ư ầ ạ
ế
ầ
– S d ng k thu t tráo đ i (swapping) đ ghi t m th i các vùng nh ch a c n đ n ra BN ngoài (swapout) đ l y ỗ ố ch tr ng n p thông tin c n thi t vào BN (swapin) khi ế ầ c n đ n
ứ
ụ ả
ậ
ỹ
– BN ngoài thông d ng là đĩa c ng – Có 2 k thu t BN o: ậ ậ
ướ ướ ỹ ỹ ạ ớ ố ị ớ • K thu t phân trang : Kích th • K thu t phân đo n : Kích th c các vùng nh c đ nh ổ c các vùng nh thay đ i
Bộ nhớ ảo
ậ
• K thu t phân trang (paging)
ỹ – Không gian đ a ch o trong CT đ
ỉ ả ị ề ả
ọ ắ ơ ỗ t là page) có kích th ượ c chia đ u ra các trang o (virtual ị ướ ằ c b ng nhau, m i trang là 1 đ n v
ủ
page, g i t ấ c p phát BN c a HĐH ỉ ậ ị – Không gian đ a ch th t trong BN cũng đ c chia đ u thành các
ọ ắ ề ượ ướ ằ t là frame) có kích th c b ng 1 trang
ườ khung trang (page frame, g i t (th ng là 4KB)
ầ ấ ể ạ ầ – Khi có yêu c u c p phát BN, HĐH có th n p 1 trang theo yêu c u
ấ ứ
ậ ư ượ ấ ẽ ỗ c c p phát s gây ra l i trang
ớ
ậ vào b t c frame nào trong BN th t – Khi CT truy c p vào 1 trang ch a đ (page fault) HĐH ph i x lý b ng cách swapping v i 1 trang khác ằ ch a c n s d ng đ n (ch m)
ư ầ ử ụ ả ế ả ầ c n p vào
ả ử ậ – HĐH c n 1 b ng qu n lý đ theo dõi trang nào đang đ ể ỗ ả ọ ượ ạ frame nào trong BN cho m i CT, g i là b ng trang (page table)
Bộ nhớ ảo
ế
ậ
ỹ
• K thu t phân trang (ti p)
Bộ nhớ ảo
• Ví d v BN phân trang
ồ
ỗ
ụ ề – BN o trong CT g m 64KB ả c chia ra 16 trang, m i
ượ đ trang 4KB
ượ
– BN th c g m 32KB đ ự ồ
c chia
ư c c p phát nh
ra 8 frame – BN đang đ ể ệ
ượ ấ ả
th hi n trong b ng trang
• 10.000 • 20.000 • 30.000
Bài tập: Hãy tính địa chỉ thật từ các địa chỉ ảo
Bộ nhớ ảo
ề
• K thu t phân đo n (segmentation) ạ ậ ỹ – Quan đi m ng ườ ậ ể i l p trình v BN ề ồ ươ ng trình bao g m nhi u module ề ữ ệ ứ
ố ủ ệ ng đ i c a module (l nh
ứ ấ • Ch • D li u bao g m nhi u array, chu i, … ỗ • Khi truy c p s căn c vào đ a ch t ỉ ươ ị ầ ử ứ ấ th m y) ồ ậ ẽ th m y) hay array (ph n t
Bộ nhớ ảo
ạ
• K thu t phân đo n (ti p)
ế ạ
ỹ – HĐH s c p phát BN theo t ng đo n (segment) có kích th ừ
ướ
ậ ẽ ấ ầ ậ yêu c u l p trình, ng segment ỉ ả
ườ ậ ậ c theo ừ i l p trình truy c p BN theo offset trong t ng
ị
ể ạ
– Đ a ch o có d ng (segment, offset) ạ – Khi có yêu c u c p phát BN, HĐH có th n p 1 segment theo yêu ầ ấ ủ ớ ậ ố ế ố
ể ạ ầ ồ ầ c u vào vùng tr ng trong BN th t. N u không có vùng tr ng đ l n HĐH c n d n BN đ t o ra vùng tr ng đ l n.
ẽ ậ ỗ ố – Khi CT truy c p vào 1 segment ch a đ ủ ớ ư ượ ấ c c p phát s gây ra l i
ặ ằ ế ậ
ượ ạ ầ ả ả segment (segment fault) HĐH ph i x lý b ng cách swapping v i ớ ả ử ư ầ ử ụ 1 ho c vài segment khác ch a c n s d ng đ n (ch m) – HĐH c n 1 b ng qu n lý đ theo dõi segment nào đang đ ể
ả ỗ ọ
c n p ị vào v trí nào trong BN cho m i CT, g i là b ng segment (segment table)
Bộ nhớ ảo
ụ ề
• Ví d v BN phân đo n ạ
ồ
ộ
ớ
Ban đ uầ
D n b nh
S1 swapout S7 swapin
S4 swapout S5 swapin
S3 swapout S6 swapin
Bộ nhớ ảo
ệ
ậ
ớ
ộ
• T ng quát vi c truy c p b nh trong máy
ổ tính
Bộ nhớ ảo
•
ơ
ượ
ể
• Nh
ỉ ạ ẫ ế ầ ầ ế ệ c ti t ki m BN
Ư ể ả u đi m BN o – Cho phép CT l n h n BN v n ch y đ ớ ạ ượ – Ch n p ph n CT nào c n đ n vào BN ả c đi m BN o ệ ố ổ ỉ ậ ố
ố ỉ ả ị – Tăng phí t n h th ng (overhead): T n th i gian tính toán đ a ch o
ờ ứ ả
ị ậ ự ậ ầ ớ ơ
ấ ậ ệ ậ
ắ
sang đ a ch th t, t n không gian BN ch a b ng trang/ segment – Truy c p BN ch m h n so v i qu n lý BN th c: C n g p đôi th i ờ ả ế gian truy c p BN. Khi có page/ segment fault vi c truy c p BN bi n thành truy c p IOậ
• Cách kh c ph c ụ – C n ph n c ng đ c bi ầ ứ ầ – C n gi ậ ả ầ i thu t thay trang/ segment t
ệ ỗ ợ ặ ả
ể t h tr HĐH đ qu n lý BN ố ư i u
Bộ nhớ ảo
ụ
ả
• Ví d : BN o trong CPU Intel Pentium 4 – Phân segment k t h p phân trang 2 c p ấ ế ợ
ế
ỉ
• Phân segment: Segment 16 bit, Offset: 32 bit. • Phân trang: Đ a ch tuy n tính 32 bit chia ra: Directory 10 bit, page 10 bit
ị và offset 12 bit (4KB/trang)