Giáo trình bài giảng môn học kiến trúc máy tính & thiết bị ngoại vi trường đại học hàng hải - Pdf 12

- 1 - TRNG I HC HÀNG HI
KHOA CÔNG NGH THÔNG TIN
B MÔN K THUT MÁY TÍNH BÀI GING MÔN HC
KIN TRÚC MÁY TÍNH
VÀ THIT B NGOI VI
H THNG NH
I. KHÁI QUÁT V H THNG NH CA MÁY TÍNH
II. PHÂN CP B NH
III. B NH BÁN DN
1. Các loi b nh bán dn
2. T chc b nh
IV. CACHE MEMORY
1. Nguyên tc (principle)
2. K thut ánh x b nh cache
IV. QUN LÝ B NH
1. Các k thut qun lý b nh
2. B nh o
3. S phân đon
V. K THUT GII MÃ A CH
1. Cu to mt vi mch nh
2. Gii mã đa ch cho b nh
3. Gii mã đa ch bng các mch NAND
4. Gii mã dùng mch gii mã kiu 74LS138
Chng IV: TP LNH VÀ CÁC MODE A CH
1. Tp lnh ca CPU
2. Các nhóm lnh ca CPU
3. Hp ng(Assembly)
4. Các Mode đa ch
Chng V: H THNG VÀO RA
I. GII THIU CHUNG
1. Các thit b ngoi vi
2. Modul vào ra
II. GHÉP NI MÁY TÍNH VI THIT B NGOI VI
1. Ghép ni ni tip
2. Ghép ni song song

Chng I: GII THIU CHUNG

• LCH S PHÁT TRIN VÀ PHÂN LOI
1. Lch s phát trin
Nhiu th h trôi qua con ngi đã thc hin các phép toán vi các con s ch yu bng tay hay
bng các công c tính thô s (bng tính, thc tính ).
Nm 1943,John Mauchley và các hc trò ca ông đã ch to ra chic máy tính đin t đu tiên  M -
chic máy tính đc đt tên là ENIAC (Electronic Numerial Itergrator And Calculator).Nó gm 18.000
đèn đ
in t, 1500 r le, nng 30 tn, tiêu th công sut đin 140KW.Chic máy này mc đích phc v
quân đi trong chin tranh th gii ln th 2 nhng đn nm 1946 nó mi hoàn thành.
Cho đn ngày nay máy tính đã có nhng s phát trin vt bc, ng dng trong hu ht các hot
đng ca xã hi vi rt nhiu chng loi th h tu theo công vic. Tuy nhiên k t đó đn nay có th
phân máy tính ra thành các th h sau:
Th h 1: (1950-1959):

• V k thut: linh kin dùng đèn đin t, đ tin cy thp, tn hao nng lng. Tc đ tính
toán t vài nghìn đn vài trm nghìn phép tính/giây.
• V phn mm:ch yu dùng ngôn ng máy đ lp trình.
• V ng dng: mc đích nghiên cu khoa hc k thuât.
Th h 2: (1959-1964):

• V k thut:linh kin bán dn ch yu là transistor. B nh có dung lng khá ln.
• V phn mm: đã bt đu s dng mt s ngôn ng lp trình bc cao:Fortran,Algol,
Cobol,
• V ng dng: tham gia gii các bài toán kinh t xã hi.
Th h 3 (1964-1974)

• V k thut: linh kin ch yu s dng các mch tích hp (IC),các thit b ngoi vi đc ci
tin, đa t đc s dng rng rãi.Tc đ tính toán đt vài triu phép toán trên giây;dung

• V ng dng : Máy tính đã đc áp dng trong hu ht các lnh vc ca xã hi.
Th h th 5:
Theo đ án ca ngi Nht chic máy tính đin t th h th 5 có cu trúc hoàn toàn
mi, bao gm 4 khi c bn.Mt trong các khi c bn là máy tính đin t có cu trúc nh hin nay
và liên h trc tip vi ngi s dng thông qua khi giao tip trí thc gm 3 khi con: b x lý giao
tip, c s tri thc và khi lp trình.
2. Phân loi máy tính
Máy tính (computer) là mt khái nim tng đi rng, tu theo cu trúc, chc nng, hình dáng mà
có th phân ra nhiu loi khác nhau. V cn bn máy tính đc phân làm các loi chính sau:
a. Phân loi theo kh nng
• Máy tính ln (mainframe computer)
• Máy tính con (mini computer)
• máy vi tính (Microcomputer).
Máy tính ln (mainframe computer)
: có kh nng gii nhng bài toán ln tc đ tính toán
nhanh.Chúng đc thit k đc bit vi chiu dài bus d liu rng 64 bit hoc hn. Kích thc b
nh làm vic rt ln. Giá thành cao ch đc chuyên dùng cho các ng dng trong quân s, ngân
hàng, khí tng. Máy tính ln đc dùng trong khoa hc đ mô phng nghiên cu các hin tng vt
lý nh các v n ht nhân. Ví d nh máy tính ln IBM 4381, Honeywell DSP8, hay Deepblue
Máy tính con (mini computer)
là mt dng thu nh ca máy tính ln. Chiu rng d liu vào khong
32 bit đn 64 bit. Do giá thành thp hn máy tính ln,tính nng mnh nên máy tính con rt đc a
dùng trong nghiên cu khoa hc.
Máy vi tính (MicroComputer)
: Nhng máy dùng b vi x lý (h Intel, Motorola) làm ct l õi, vi điu
khin (microcontroler)và máy tính trong mt vi mch (one-chip microcomputer)đu thuc h máy vi
tính.c đim chung v công ngh ca h này mc đ t hp ln VLSI (very large scale integration)
và dùng công ngh CMOS (complementary metal oxide silicon) đ ch to các mch logic. Tc đ
phát trin các vi x lý 32 bit và 64 bit hin đi làm khong cách gia máy tính ln và máy vi tính ngày
càng thu hp.

n v điu khin: điu khin đng thi tt c các phn t ti cùng mt thi
đim các phn t x lý thc hin cùng mt thao tác trên các tp d liu khác
nhau.
+ MIMD (Multiple Instruction Stream-Multiple Data Stream)

c đim:
Máy gm hai hoc nhiu b vi x lý tng t v kh nng, có th thc hin nhng
phép toán khác nhau tren các DL khác nhau.
Tt c các CPU cùng chia x mt b nh chung. Mt s b nh cc b cng có th
đc dùng.
M em ory
Register ALU
CU
I/O
CU ALU2ALU1
TÝn hiÖu ®iÒu khiÓn
memory
lÖnh
DL
DL
CU1 CU2ALU1
TÝn hiÖu ®iÒu khiÓn
memory
lÖnh
DL
DL
ALU2
TÝn hiÖu ®iÒu khiÓn
- 7 -


.s
1
+ +a
n-1
.s
n-1
=
i
n
i
i
sa ⋅


=
1
0
(1.1)
Trong đó N là mt s nguyên có n ch s. Ch s a
i
ti v trí i (i=0 n-1) đc gi là tr s (hay còn gi
là trng s). Giá tr s là c s ca h đm . H đm đc đt tên theo giá tr c s s. Chng hn, vi
s=2 ta có h đm c s 2, vi s=10 ta có h đm c s 10 và vi s=16 ta có h đm 16. Giá tr s cng
xác đnh s ký t cn dùng đ biu din tr s. Chng hn vi s=2 h đm s cn hai ký t đ biu
din, vì th ta có khái nim h nh phân(chia ra làm hai). Tng t nh vy, h đm 10 và 16 còn
đc gi là h thp phân và h thp lc phân.
b. H đm thp phân
nh ngha: là h đm quen thuc nht ca nhân loi. Có l h đm này bt ngun t vic ngi tin
s dùng mi đu ngón tay đ đm các đ vt xung quanh. Ngày nay toàn th gii thng nht s
dng nhng ký t s  Rp đ biu din h thp phân.Các ký t s đó là: 0,1,2,3,4,5,6,7,8,9. Vic

bit là mt kilobit (Kbit).
• 2
20
bit là mt Megabit (Mbit).
• 2
30
bit là mt Gigabit (Gbit).
Ví d biu din mt s nguyên:
N=1011B=1.2
3
+0.2
2
+1.2
1
+1.2
0
=8+0+2+1=11D
d. H thp lc phân (hexa).
Xut hin nh mt cách biu din gin tin trong công ngh tin hc. Vì mt s nh phân quá dài và bt
tin khi vit và tính toán. 4 ch s nh phân đc gp thành mt ch s thp lc phân.Nh vy có s
ca h thp lc phân là s=16.iu này có ngha là cn có 16 ký t khác nhau đ biu din h thp lc
phân.Các ký t đó là :0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.
Ví d biu din mt s nguyên:
N=2BC1h=2.16
3
+11.16
2
+12.16
1
+1.16

n
-1
Dùng s nh phân có du:
n bit biu din 2
n
s t -2
n-1
đn +2
n-1
-1
S bù 2:
S bù 1: 1 đi thành 0, 0 đi thành 1
S bù 2: s bù 1 cng 1
5. Biu din s thc theo mã nh phân.
a. Biu din du chm c đnh:
Cách biu din du chm c đnh trong h nh phân hoàn toàn ging cách biu din s thc thông
thng ca h thp phân
R=a
n-1
a
0
, b
0
b
m-1
=
i
n
i
i


Ví d: R=-750 = -0,75.10
3
= -0,75E3
 đnh dng du chm đng có th dùng chun IEEE754-1985 (Institute of Electrical and Electronic
Engineering) 32 bit hoc 64 bit:
ây là chun đc mi hãng chp nhn và đc dùng trong b x lý toán hc ca Intl. Bit du nm
 v trí cao nht, kích thc phn m và khuôn dng phn đnh tr thay đi theo tng loi s thc
Giá tr s thc IEEE754-1985 đc tính nh sau:
R = (-1)
S
.(1 + M
1
.2
-1
+ +M
n
2
-n
).2
E7 E0-127

S E
7
-E
0
nh tr(M
1
- M
23

-18
+ 2
-19
+ 2
-20
+ 2
-21
= 0,1008906
nh vy giá tr ngm đnh là 1,1008906
Quy tc đi ngc li:
- 10 -

Chuyn s du phy ng v dng nh phõn
a v dng 1.xxxxEyyyy
xỏc nh bit 31: du
Xỏc nh bit t 30-23: yyyy+7Fh
Xỏc nh bit 22-0: xxxx00 00
6. Biu din cỏc dng thụng tin khỏc
Biu din hỡnh nh
Biu din õm thanh
Cỏc i lng vt lý khỏc

III. CC LOI HèNH MY TNH C NHN.
m bo tớnh tng thớch, cu trỳc phn cng bờn trong cỏc mỏy vi tớnh cỏ nhõn v c bn l
ging nhau. Vỡ th chỳng ch c phõn loi theo hỡnh dng vt lý.
Loi bn(desktop),
loi bn thu nh
(desktop slim-line)
Loi t ng
(tower),mini-tower

(Các đờng vẽ nét đứt chỉ mối quan hệ. Các đờng nét liền là đờng truyền dữ liệu)
- 11 - Chng II: B X LÝ TRUNG TÂM

1. T chc b x lý
 hiu đc t chc ca CPU, chúng ta hãy xem xét nhng yêu cu đt ra trên CPU, nhng th nó
phi làm:
• Fetch Instructions(ch lnh tìm np):
CPU phi đc các ch lnh t b nh.
• Interpret Instructions:
ch lnh phi đc gii mã đ xác đnh hành đng nào đc yêu cu.
• Fetch data (d liu tìm np):
S thi hành mt ch lnh có th yêu cu thc hin mt vài thao
tác s hc hoc lôgi trên d liu.
• Write Data:
Nhng kt qu ca s thi hành có th yêu cu vit d liu vào b nh hoc
module vào ra.
Thông thng CPU phi thc hin các công vic này, nó có th rõ dàng CPU cn mt ch cha tm
thi đ cha d liu . Nó phi nh v trí ca ch lnh sau cùng đn mc nó có th bit ni nào cha
lnh tip theo. Nó cn cha các ch lnh và d liu tm thi trong khi mt lnh đc thc thi. Nói
cách khác CPU cn mt b nh trong nh.
Hình 1.1 là 1 hình nh đn gin
ca CPU, xác đnh các kt ni ca
nó vi phn còn li ca h thng
thông qua bus h thng. Mt giao
din tng t có th cn đn cho
tt các các cu trúc kt ni khác.
Các b phn chính ca mt CPU là

Data
BUS
Address
BUS
SystemBUS
S
tatus Flags
Shifter
Complementer
Arithmetic and
Boolean Logic
Registers
Control Unit
Internal CPU Bus
Control BUS
Arthimetic and Logic Unit
- 12 -

Mt h thng máy tính dùng mt h thng cp bc b nh. Ti các mc cao hn trong h thng cp
bc, b nh nhanh hn, nh hn, và đt hn (tính theo bit). Trong CPU, có tp hp các thanh ghi
chc nng là mc nh trên b nh chính và b nh cache trong h thng cp bc. Các thanh ghi
trong CPU phc v 2 chc nng chính:
• User-Visible Registers:
Nó cho phép ngi lp trình ngôn ng máy hoc ngôn ng Asembly
thu nh b nh chính bng ti u hoá vic s dng các thanh ghi.
• Control and Status Registers:
Các thanh ghi này đc s dng bi đn v điu khin CU đ
điu khin các thao tác ca CPU và bng phân quyn, các chng trình điu khin h thng
điu khin s thc thi ca các chng trình khác.
Không có s riêng bit rõ ràng gia các thanh ghi trong hai loi trên. Ví d trên mt s máy chng

Nu có user-visible stack addressing, sau đó ngn xp tiêu biu là
trong b nh và có mt thanh ghi ch đn đu ngn xp.Nó cho phép đánh đa ch
tuyt đi; đó là push,pop, và các ch lnh ngn xp khác cn không cha mt toán
hng ngn xp rõ ràng.
Control and Status Registers:
Có rt nhiu thanh ghi CPU khác nhau đc s dng đ điu khin thao tác ca CPU. Hu ht chúng
trên đa s máy là không hu hình vi ngi dùng. Mt vài thanh ghi có th hu hình vi các lnh máy
thc thi trong ch đ điu khin hoc trong operating-system mode.
- 13 -

Tt nhiên, các máy khác nhau s có t chc thanh ghi khác nhau và s dng thut ng khác nhau.
Chúng tôi lit kê ra đây mt danh sách hoàn toàn hp lý ca các loi thanh ghi vi mt mô t ngn
gn:
Bn thanh ghi là ct tu đi vi s thi hành lnh.
• Program Counter(PC): cha đa ch ca mt ch lnh đc tìm np.
• Thanh ghi lnh (Instruction Register): cha ch lnh đc tìm np gn nht.
• Thanh ghi đa ch b nh(Memory Address Register): cha đa ch ca các v trí trong b
nh.
• Thanh ghi b nh đm (Memy Fuffer Register): ch mt t d liu đc ghi vao trong
b nh hoc t đc đc gn đây nht.
Ví d các t chc thanh ghi vi x lý.

Các ví d cung cp tài liu đ nghiên cu và so sánh t chc thanh ghi ca các h thng có th so
sánh đc.Trong phn này, chúng ta s xem xét 3 b vi x lý 16 bit đc thit k  cùng mt thi
đim: Zilog Z8000(PEUT79), Intel 8086 [MORS78,HEYW83], Và Motorola MC6800 [STRI79].
Ví d vi b x lý 8086:

Bao gm:
• 1 thanh ghi con tr lnh IP (instruction Pointer): Lu tr đa ch lnh k tip s đc chy
trong đon CT hin thi. Mi 1 t lnh đc đc t b nh BIU s thay đi giá tr IP sao


*Thanh ghi c: Flag Register

9 trong s 16 bit ca thanh ghi này đc s dng, mi bit có th đc thit lp hay xoá d ch th kt
qu ca mi thao tác trc đó hoc trng thái hin thi b XL
‚ CF Carry : nh
‚ PF perity: chn l
‚ ZF zero : kt qu phép toán =0
‚ SF sign : 0 dng, 1 âm.
‚ OF overflow : tràn
3. n v s hc và logic ALU (Arithmetic and logic unit)
n v s hc và logic (ALU) là mt phn ca máy tính thc s th
c hin các thao tác s hc và logic
trên d liu. Tt c các thành phn khác ca h thng máy tính-đn v điu khin, thanh ghi, b nh,
ch yu mang d liu vào cho ALU đ ALU x lý và sau đó đa kt qu ra ngoài.
n v s hc và logic và tt c các thành phn đin t trong máy tính đu da trên vic s dng các
thit b s đn gin có th cha các con s nh phân, và thc hin các thao tác boolean logic đn
gin.

Hình trên ch ra trong mt gii hn chung, ALU đc kt ni vi phn còn li ca CPU nh th nào.
D liu đc sn sàng cho ALU trong các thanh ghi, và kt ca ca mt thao tác đc cha trong
các thanh ghi khác. Các thanh ghi là ch cha tm thi trong CPU đc kt ni bi các đng tín
hiu ti ALU. ALU s đt c nh là kt qu ca mt thao tác. Ví d có tràn đc đt lên 1 nu kt qu
ca vic tính toán vt quá chiu dài ca thanh ghi cha.Giá tr c đc cha trong các thanh ghi
trong CPU. n v điu khin cung cp tín hiu điu khin thao tác ca ALU, và s di chuyn d liu
vào và ra khi ALU. (Cu to ca ALU đc mô t trong hình 1.2)


- n v điu khin(CU)
ALU là thành phn chc nng thc s ca máy tính, Các thanh ghi dùng đ cha d liu trong CPU,
Mt vài thanh ghi cha thông tin trng thái cn đ qun lý ch lnh sp xp liên tc (ví d t trng thái
chng trình). Nhng thanh ghi khác cha d liu đa đn hoc ly t ALU, b nh, module vào ra.
Các đng d liu trong đc dùng chuyn d liu gia các thanh ghi, gia các thanh ghi và ALU.
Các đng d liu ngoài liên kt các thanh ghi vi b nh và module vào ra. thng bng phng
tin ca bus h thng. n v điu khin to ra các thao tác xy ra trong CPU.
S thi hành mt chng trình bao gm các thao tác liên quan đn các thành phn CPU. Nh chúng
ta đã thy, các thao tác này bao gm s liên tc ca các vi thao tác (vi điu khin). Tt c các vi thao
tác là mt trong các loi sau:
• Truyn d liu t mt thanh ghi đn thanh ghi khác.
• Truyn d liu t mt thanh ghi đn mt giao din ngoài (ví d system bus)
• Truyn d liu t mt giao din ngoài ti thanh ghi.
• Thc hin thao tác s hc và logic, s dng thanh ghi đ nhn và ghi d liu.
Tt c các vi thao tác cn thc hin trong mt chu k ch lnh (bao gm tt c các vi thao tác đ thc
hin mi ch lnh trong tp ch lnh, nm trong mt trong nhng loi trên)
n v điu khin thc hin hai công tác chính:
- S sp xp chui (sequencing) :
n v điu khin khin CPU sp xp chui vi thao
tác vào mt chui liên tc thích hp, da trên chng trình đang đc thc hin
- S thi hành (Execution):
n v điu khin khin mi vi thao tác đc thc hin.
đn v điu khin thao tác da vào vic s dng các tín hiu điu khin.
Tín hiu điu khin:

Chúng ta đã đnh ngha các thành phn đã to ra CPU (ALU, thanh ghi, đng dn d liu) và các vi
thao tác đang đc thc hin. i vi đn v điu khin đ thc hin các chc nng ca nó, nó phi
có d liu vào cho phép nó xác đnh trng thái ca h thng và mc ra cho phép nó điu khin tác
đng ca h thng. Có các chi tit k thut ngoài ca đn v điu khin. Ni ti, đn v điu khin phi
có logíc yêu cu thc hin chui vi thao tác và thi hành các chc nng.


tác đng thi) đc thc hin vi mi xung đng h. ây là m vài ln nhc đn nh là chu
k thi gian x lý, hoc chu kì thi gian đng h.
- Thanh ghi ch lnh:
mã ch lnh hin ti đc dùng đ xác đnh vi thao tác nào đc thc
hin trong chu kì thi hành.
- C: Có các yêu cu bi đn v điu khin đ xác đnh trng thái ca CPU và kt qu ca thao
tác ALU trc. Ví d, đi vi ch lnh Increment and skip-if rezo (ISZ), đn v điu kin s
lng gia PC nu c Rezo đc đt.
- Các tín hiu điu khin t bus điu khin:
Khu phn bus điu khin ca bus h thng cung
cp tín hiu cho đn v điu khin, nh là tín hiu ngt và s công nhn.
Mc ra là:
- Tín hiu điu khin trong CPU
: có 2 loi: Nó khin d liu b di chuyn t mt thanh ghi ti
các thanh ghi khác, và làm hot đng các chc nng ALU c th.
- Các tín hiu điu khin điu khin bus:
Cng có 2 loi: các tín hiu điu khin b nh, và tín
hiu điu khin module vào ra.
Thành phn mi đã đc gii thiu trong hình này là tín hiu điu khin. Ba kiu tín hiu đc s
dng : kích hot mt chc nng ALU, kích hot các đng d liu, và là các tín hiu trên bus h
thng ngoài hoc giao din ngoài. Tt c các dng tín hiu này đc cung cp cui cùng trc tip
nh các tín hiu vào hay các cng logic riêng bit.
Chúng ta hãy xem xét li chu k tìm np đ xem cách đn v điu khin duy tri diu khin. n v điu
khin gi du vt ni nó là trong chu k tìm np. Ti đim quy đnh, nó bit chu k tìm np đoc thc
hin tip. Bc đu tiên là di chuyn các ni dung ca PC và MAR. n v điu khin dùng nó bng
vic kích hot tín hiu điu khin m các cng gia các bit ca PC và các bit ca MAR. Bc tip
theo là đc mt t trong b nh vào MBR và gia lng PC. n v điu khin làm vic này bng vc
gi các tín hiu kèm theo đng thi.
1. Mt tín hiu điu khin m các cng cho phép ni dung ca MAR đa vào bus đa ch.

Read
Control Unit
Next Address Control
Control Signals
Within CPU
Control Signals to
System Bus
- 17 -

khin và thong tin đa ch tip theo cho đn v lôgic tun t.
3. n v logic tun t ti đa ch mi vào trong thanh ghi đa ch điu khin da vào thông tin đa
ch tip theo t thanh ghi b đm điu khin và các c ALU.
Tt c xy ra trong mt xung đng h.
5. Mt s m rng ca vi x lý máy tính cho đn ngày nay
T s phát trin ca các máy tính cha chng trình đu tiên nhng nm 1950, đã có mt s s
cách tân thc s rõ rt trong các khu vc ca t chc máy tính. Sau đây không phi là mt danh sách
hoàn chnh, mà ch là mt vài tin b chính k t ngày sinh ca máy tính.
The Family Concept:
đc gii thiu bi IBM vi h thng System/360 nm 1964, tip theo ngay
sau đó là DEC vi PDP-S.Khái nim gia đình tách riêng kin trúc ca máy t s thi hành ca nó. M
tp hp các máy tính đc đ ngh, vi s khác nhau gia đc trng giá/tính nng đa ra cùng mt
kin trúc cho ngi dùng.S khác nhau trong giá và hiu sut là bi ti s thi hành khác nhau ca
cùng mt kin trúc.
n v điu khin vi chng trình (Microprogrammed Control Unit):
c đ xut bi Wikes
nm 1951, và đc gii thiu bi IBM trên h thng S/360 line trong nm 1964. Lp trình vi chng
trình làm gim bt công tác thit k và thc hin đn v điu khin và h tr cho family concept.
B nh Cache (cache Memory): u tiên đc gii thiu rng rãi trên h thng IBM S/360 Model 85
nm 1968.S thêm vào thành phn này trong h thng phân cp b nh ci thin rõ rt hiu su
t

qua mt đng, mt s đng ca BUS truyn các bit nh phân đng thi(kt ni song song).
Mt h thng máy tính cha đng mt s loi BUS khác nhau tu thuc các đng kt ni gia các
b phn  các mc khác nhau ca h thng. BUS kt ni các b phn chính ca máy gi là BUS h
thng.
BUS h thng bao gm t 50 đn 100 đng truyn riêng bit, mi đng đc phân chia mt chc
nng hay mt ý ngha riêng bit. Mc dù có rt nhiu cách thíêt k BUS khác nhau, nhng trên bt k
cách nào các đng BUS cng phân loi thành ba nhóm chính: BUS d liu, BUS đa ch, BUS điu
khin, ngoài ra có th có mt s đng cung cp nng lng cho các module tham gia BUS.
BUS d liu
: truyn ti d liu ti các thit b. Mt BUS d liu tiêu biu bao
gm 8, 16 hay 32 đng, s đng đc coi là đ rng ca BUS d liu. Mi đng ch có th mang
mt bit d liu ti mt thi đim, s lng đng xác đnh s lng bit có th đc truyn trong mt
thi đim.
BUS đa ch
: dùng ch đnh rõ ngun gc hay đích đn ca d liu trên BUS d liu. a ch thng là
đa ch các cng vào/ra, t nh trong ngn nh.
BUS điu khin
: điu khin vic truy nhp và vic s dng các đng đa ch và d liu. Các đng
d liu và đa ch đc chia s cho tt c các b phn, phi có s điu khin vic s dng các đng
đó. Các tín hiu điu khin truyn c lnh và thông tin thi gian gia các module h thng. Tín hiu
thi gian ch ra nhng thông tin v đa ch và d liu hp l. Các tín hiu lnh đnh rã thao tác đc
thc hin
Nhng đng điu khin tiêu biu:
• Memory write:
điu khin d liu trên BUS đc vit vào v trí đã đc xác đnh bng đa ch
• Memory read:
điu khin vic đa d liu t mt v trí xác đnh vào BUS
• I/O write:
điu khin đa d liu t BUS ra cng vào/ra đã xác đnh
• I/O read:

X bên trong CPU (register)
X Internal memory (main memory)
X B nh ngoài (đa cng, đa quang)
• Dung lng
X kích thc t nh (word size) :thng là 8,16,32 bits
X s lng t nh
• n v truyn

X Word: đn v t nhiên  t chc b nh. Kích thc t nh thng là s bit dùng đ
biu din s hoc đ dài lnh .
X Khi (block) là đn v truyn d liu ln hn t nh, thng đc dng truyn d liu
vi b nh ngoài.
• Phng pháp truy nhp

X Sequential access (truy nhp tun t)
thng đc dùng truy cp bng t.
X Truy nhp trc tip (direct memory)
ging nh truy nhp tun t, truy nhp trc tip
bao hàm vic chia s đc vit c khí.Nhng t nh ca bn ghi có đa ch c s duy
nht trên v trí vt lý. Vic truy nhp đc hoàn thành bi truy nhp trc tip là đi đn
vùng lân cn chung cng vi tìm kim tun t, đm hoc đi đ đi đn v trí cui
cùng.Thi gian truy nhp có th thay đi đc. Các loi đa s dng phng pháp
truy nhp trc tip.
X Truy nhp ngu nhiên (Random access) : mi v trí đa ch trong b nh là đc nht.
Thi gian truy nhp các v trí đã cho là đc lp vi dãy truy nhp u tiên và là hng
s.Nh vy, v trí nào cng có th đc chn ngu nhiên, và đa ch trc tip.B nh
chính là truy nhp ngu nhiên.
X Truy nhp liên kt:
đây là kiu truy nhp ngu nhiên có th làm s so sánh v trí bít
trong t cho mt phép toán c th và làm vic này cho tt c các t đng thi. Vì vy

X tng dung lng
X tng thi gian truy nhp
X gim tn s truy nhp ca b nh bi CPU.
Theo chiu t trên xung di:
X dung lng tng dn
X tc đ truy nhp gim d
n.
III. B NH BÁN DN
1. Các loi b nh bán dn
Tt c các loi b nh đc trình by sau đây là truy nhp ngu nhiên. ó là nhng t nh riêng bit
đc truy nhp trc tip qua đa ch logic
• RAM (random- access memory) :
đc đim phân bit là có th đc d liu t b nh và d
dàng ghi d liu vào.Vic đc và ghi d liu đc hoàn thành nh các tín hiu đin.
Mt đc tính khác ca RAM là thay đi đc. RAM đc nuôi bng mt ngun đin n đnh
.Nu ngun nuôi b ngt d liu trên RAM s mt. Vì Vy RAM đc dùng làm ch tr tm thi.
Công ngh RAM chia làm 2 loi: RAM tnh và RAM đng
X RAM tnh:
giá tr nh phân đc ct tr dùng các flip-flop truyn thng cu hình cng
logic. Static RAM s gi đc d liu n đnh,tc đ nhanh.
X RAM đng (Dinamic RAM): s dng các t bào cha d liu da trên s np đin cho
các t đin.Vì các t đin có xu hng phóng đin nên RAM đng yêu cu np đin
làm ti đnh k đ gi thông tin .
• ROM (Read only Memory)

Tng phn vi Ram là Rom. Rom cha đng các kiu d liu không th b thay đi trong mt
thi gian dài. Mt đc tính ca Rom là ch có th đc d liu t đó mà không th ghi d liu mi
vào nó. Mt ng dng quan trng ca Rom là cha đng các vi chng trình . Nhng ng
dng tim tàng khác bao gm:
X Th vin th tc con cho các chc nng đc s

N
*m
IV. CACHE MEMORY
1. Nguyên tc (principle)
Cache memory đc dùng cho tc đ nh gn bng tc đ ca các b nh nhanh nht có sn, và ti
cùng thi gian cung cp mt kích thc b nh rng vi giá không đt hn các kiu b nh bán dn. CAS
Memory
RAS
Buffer
Truy nhËp
Address
Data
CAS: Colum Address Select
RAS: Row Address Select
CPU
Cache
Main Memory
Word Transfer
Block trasfer
Cache and Main Memor
y
- 22 -

ây là mi quan h gia b nh chính ln và chm hn vi b nh cache nh nhng nhanh hn.B
nh cache sao chép mt phn ca b nh chính. Khi CPU c gng đc mt t nh ca b nh,s
kim tra đc làm đ xác đnh rõ nu t nh nm trong cache. Trong trng hp đó, t nh đc
cung cp cho CPU. Nu không khi nh ca b nh chính, bao gm mt s t nh c đnh đc đc

và cache theo đn v khi.
Vì có có ít đng cache hn các khi nh ca b nh chính, mt thut toán là cn thit cho vic ánh
x khi nh ca b nh chính vào các đng ca cache. Hn na, có ngha là cn xác đnh khi b
nh chính đang s dng cache line. Vic la chn hàm ánh x ra lnh cho vic t chc cache ntn.
Có 3 k thut ánh x

X ánh x trc tip: Direct Mapping
X ánh x liên kt hoàn toàn: Full Associative Mapping
X ánh x liên kt tp hp: Set Associative Mapping
a. ánh x trc tip
K thut đn gin nht đc bit đn là ánh x trc tip. ánh x mi khi nh ca b nh chínhvào
mt đng cache có th.
X Block 0-> line 0
Memory
Address
Data
1
2
3
Block
(K word)
2^n-1
Word
Length
0
1
2
3
Tag
Block

nào. Hn na nu xy ra
chng trình mun tham vn
li t nh t 2 khi khác nhau
đc ánh x vào cùng mt
đng, khi đó các khi s tip
tc đc trao đi trong cache,
và t l thành công s gim
xung.
b. ánh x liên kt hoàn
toàn
Ánh x liên kt s khc phc
nhc đim trên bng cách
cho phép mi khi b nh
chính đc np vào trong bt
k đng nào ca cache.
Trong trng hp này n bit
chia ra 2 trng:

Compare
x x
Tag Line Word
Memory Address
Hit in cache
Miss in cache
Tag Data
Main Memory
Compare
X
Hit in Cache
X

X
X Block i -> Set (i mod S)
a ch
Tag Set n1
Ví d :
B nh chính 4 GB
Kích thc cache 16 kB
Block 32 byte
S Bit đa ch là n=32 (2
32
=4 G)
Xét trong trng hp ánh x trc tip
a ch do CPU phát ra n=32 bit
1 khi (block) 32 byte-> n1=5 (2
5
=32)
n2=s đng trong cache
9
5
14
2
2
2
32
16
==
byte
kb
->n2=9 bit
î Tag=32-9-5=18 bit

0
L
1
L
2
Miss in cache
Main memory
Compare
Set
X
Hit in cache
- 25 -

phc tp. Công tác chia nh đc qun lý đng bi h điu hành và còn đc bit dui tên qun lý b
nh (memory management).
qun lý b nh thc s là quan trng trong mt h thng đa nhim. Nu ch là mt vài tin trình trong
b nh, trong hu ht thi gian tt c các tin trình s phi đi vic truy nhp vào ra và b vi x lý s
b nhàn ri. Nh vy, b nh cn phi đnh v hiu qu đ sp đt càng nhiu tin trình trong b nh
càng tt.
a. Swapping (hoán đi)
Trong hình 7.14 chúng ta đã
tho lut 3 kiu hàng đi
(queues): hàng đi cho các tin
trình mi, hàng đi cho các tin
trình sn sàng s dng CPU,
hàng đi cho các tin trình
không sn sàng s dng CPU.
Nhc li lý ro ca thit b phc
tp này là các ho
t đng vào ra

b nh o s ci thin s thi hành hn s tráo đi đn gin. B nh o s đc đ cp ngay sau
đây, nhng trc tiên, chúng ta phi chun b nn tng bng vic gii thích phân vùng và phân trang.

END
Process
Request
Figure 7.14 Queuing diagram representation of processor scheduling
Long Term
Queue
Short Term
Queue
CPU
I/O I/O Queue
I/O I/O Queue
I/O I/O Queue
Main Memory
Operating
System
Completed Jobs
and User
Sessions
Main Memory
Completed Jobs
and User
Sessions
Operating
System
Intermediate
Queue
Long Term


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status