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 (Write­Once­Read­Many)

– 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  đ c­ghi (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 Flip­Flop ự ấ ữ ệ

– 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)

– DDR­SDRAM (Double Data Rate­SDRAM)

ố ộ

• 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) – SO­DIMM (Small Outline DIMM) – SO­RIMM (Small Outline RIMM)

Bộ nhớ bán dẫn

• T  ch c c a chip nh ớ n­1 ÷ A0  có 2n  ườ ng đ a ch : A

t

ườ

ổ ứ ủ – Các đ  nhừ ớ – Các đ

m­1 ÷ 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 m­bit. ớ 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 Bp­1 (p Blocks) ớ • B  nh  cache: L Lm­1 (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 • • Bm­1  Lm­1 • 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  4­way 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 • 4­way 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 : 4­way 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

– Write­through:

ả ộ ớ

– Write­back: ỉ

ậ ữ ệ ặ ừ • 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: CD­ROM, CD­R, CD­RW ả ọ • Đ 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: DVD­ROM, DVD±R, DVD±RW,

DVD­RAM

ố ặ ố ớ ườ ố ộ

ượ

– S  m t/ s  l p: 1­2 m t, 1­2 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

• HD­DVD (15­60GB) • Blue ray (25­50GB)

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 (swap­out) đ  l y  ỗ ố ch  tr ng n p thông tin c n thi t vào BN (swap­in) 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 swap­out S7 swap­in

S4 swap­out S5 swap­in

S3 swap­out S6 swap­in

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)

Câu hỏi