Tải bản đầy đủ (.pdf) (87 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 87 trang )

- 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i Phòng – 2009

- 2 -

MC LC


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
2. Phân loi máy tính
II. BIU DIN THÔNG TIN TRÊN MÁY TÍNH
H đm
3. Các loi mã
4. Biu din s nguyên theo mã nh phân
5. Biu din s thc theo mã nh phân.
6. Biu din các dng thông tin khác
III. CÁC LOI HÌNH MÁY TÍNH CÁ NHÂN.
Chng II: B X LÝ TRUNG TÂM
1. T chc b x lý
2. T chc thanh ghi
3. n v s hc và logic ALU (Arithmetic and logic unit)
4. n v điu khin CU(Control Unit)
5. Mt s m rng ca vi x lý máy tính cho đn ngày nay
6. BUS
Chng III:

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

- 3 -

III. CÁC PHNG PHÁP IU KHIN VÀO RA
1. Vào ra điu khin bng cách thm dò
2. Vào ra điu khin bng Ngt
3. Vào ra điu khin bng DMA
4. Khi điu khin DMAC
Chng VI: MÀN HÌNH
I. Nhng khái nim c bn
1. Nguyên lý ca phng pháp hin th hình nh video.
2. Nhng đc đim chung ca màn hình
II. Màn hình màu CRT (Cathod Ray Tube)
1. Cu to
2. Phng pháp quét dòng
Chng VII: BÀN PHÍM
1. Khái nim
2. K thut dò phím
Chng VIII:  A
1. a t (Magetic)
2. a Quang (Optical Disk)
Chng IX: THIT B GHÉP NI VÀ TRUYN THÔNG
1. B chuyn đi tín hiu
2. Modem (Modulation - Demodulation)
3. Các chun giao tip
TÀI LIU THAM KHO
- 4 -





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

lng b nh đt vài MB (Megabytes).
• V phn mm: Xut hin nhiu h điu hành khác nhau.X lí song song. Phn mm đa
dng, cht lng cao, cho phép khai thác máy tính theo nhi
u ch đ khác nhau.
• V ng dng: tham gia trong nhiu lnh vc ca xã hi.
Th h th 4 (1974-199?):

• V k thut: X dng mch tích hp c ln (Very large scale integration) VLSI, thit k các
cu trúc đa x lí. Tc đ đt ti hàng chc triu phép tính /giây.
 đây chúng ta ch yu nói v cu trúc máy vi tính tng thích IBM nên lch s ca
chic máy PC gn lin vi s phát trin ca IBM-PC.chic máy tính cá nhân đã phát trin cùng
vi s phát trin ca các b vi x lý .
Máy IBM_PC coi nh đc khi đu t mt công trình ca phòng thí nghim ti
Atlanta ca IBM.
o T nm 1979-1980 IBM hoàn thành chic máy Datamaster. Máy này dùng vi x lý 16
bit ca Intel.
- 5 -

o Nm 1980 k hoch sn xut máy PC bt đu đc thc hin. Chic máy IBM_PC
đu tiên dùng mt b vi x lý 8 bits ca Intel, b VXL 8085.
o Nm 1981-1982 IBM sn xut máy tính PC s dng b vi x lý 8086,8088.
o Nm 1984 máy tính x dng chíp 80286.
o Nm 1987 máy tính x dng b VXL 32bits 80386.
o Nm 1990 b VXL 80486 ra đi vi nhiu tính nng hn.
o Nm 1993 B VXL Pentium ra đi m ra mt th h vi tính cá nhân mi vi 64 bits
d liu, 32 bit đa ch.
o 1995-1999 các th h VXL mi nh MMX,Pentium II,III vi kh nng biu din không
gian 3 chiu, nhn dng ting nói
o T nm 2000 cùng vi Merced mt th h VXL 64 bit vi cu trúc hoàn toàn mi ra
đi đã to ra mt th h máy vi tính mi.

• 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.

Trm làm vic (workstation)
cng là mt loi máy vi tính,đc đim khác bit so vi máy tính cá nhân
PC là có kh nng đc nhiu ngi cùng x dng cùng mt lúc.
Máy tính cá nhân PC (Personal Computer)
ch đc mt ngi s dng. Giá thành ca chúng
r do cu hình đn gin, đc chun hoá, và đc sn xut hàng lot vi s lng ln.Cùng vi s
phát trin ca khoa hc công ngh mà máy tính cá nhân ngày nay đã có th làm đc nhng công
vic mà trc kia vn ch là đc quyn ca máy tính ln.
b. Phân loi theo nguyên lý
• Máy tính c khí.
• Máy tính tng t
- 6 -

• Máy tính s
c. Phân loi theo kin trúc
*Kin trúc tun t (kin trúc VonNewman c đin)

Máy tính gm CPU, Memory, I/O.
X CPU gm:
X thanh ghi (regiser)
X ALU (Arithmetic Logical Unit)
X CU (Control Unit).
c đim :
X Thc hin ln lt tng lnh mt
X Tc đ chm
Còn đc gi là kin trúc SISD(Single Instruction Stream-Single Data Stream)
*Kin trúc song song

+SIMD(Single Instruction Stream-Multiple Data Stream)
c đim: Có mt đn v điu khin, n phn t x lý

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 -


Tt c CPU cùng x dng chung các thit b vào ra, có th dùng chung mt s kênh
hoc dùng các kênh khác nhau dn đn cùng mt thit b.
H thng đc điu khin bi h thng hot đng tích hp .Nó cung cp s nh
hng ln nhau gia CPU và các chng trình chy trên chúng  task, file,các thành
phn d liu
+MISD(Multiple Instruction Stream-Single Data Stream)

c đim: Có nhiu đn v điu khin
Thc hin lnh theo các công đon, ti mt thi đim mi đn v điu khin
x lý mt công đon nh vy có th tit kim đc s chu k máy cn đ x
lý lnh.
ây cng là nguyên tc ca Pipeling khi chia lnh thành các công đon: nhn
lnh F(Fetch), gii mã lnh D(Decode), thc hin lnh E(Execute), và ghi kt
qu W(write back). Nh vy vi 4 lnh có th tit kim ti 9 chu k máy(hình
v)

II. BIU DIN THÔNG TIN TRÊN MÁY TÍNH
H đm
a. H đm bt k
Bt k mt h đm nào đu biu din mt s nguyên theo nguyên tc sau:
N=a
n-1
a
0
=a
0
.s
0
+a
1

.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

phát minh ra s 0 mi có kh nng biu din s nguyên theo đúng nguyên tc đã nêu trong phng
trình (1.1).
Ngoài ra nh chúng ta đã bit mt s nn vn minh khác cng phát minh ra h đm ca mình nh
Trung Quc, La Mã c Tuy nhiên vì không có ký t s 0 nên các h đm này đu cn nhiu hn 10
ký t đ biu din s nguyên.
Ví d biu din s nguyên:
N=1547D=1.10
3
+5.10
2
+3.10
1
+7.10
0
.
c. H đm nh phân
c hình thành trên c s đi s lô gic Boole, xut hiên t cui th k 19. H đm này và các môn
toán liên quan đn nó thc s phát huy đc sc mnh khi có mch đin hai trng thái .Vi hai con
s 0,1 có th biu din mt s nguyên bt k .Mi ký t (hay mi tr s) ca h nh phân đc gi là
- 8 -

mt bit (binary digit). i vi máy tính đin t các bit đc biu din bng mt hiu đin th tng
ng: mc 0 (0V-1 V), mc 1 (2v-5v).
 gin tin trong vic s dng s nh phân, ngi ta còn đt nhiu bi s ca h nh phân nh sau:
• 4 bit là mt nibble.
• 8 bit là mt byte.
• 16 bit là mt t (word).
• 32 bit là mt t kép (double word)
• 2
10

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

0
=11201D.
i s thp phân ra s nh phân hoc ngc li
 đi s s thp phân ra s nh phân hay thp lc phân, ta ch cn chia s thp phân cho c s ca
h (2 hoc 16).S d là tr s, thng s đc chia tip đ tính tr s tip theo. Trong h nh phân, tr
s đu tiên (ngoài cùng bên phi) đc gi lsg LSB (least significant bit) và tr s cui cùng (ngoài
cùng bên trái) đc gi là MSB (most signifcant bit).
Ví d:
N=113D
Nh phân Thp lc phân
113/2=56 d 1 LSB 113/16=7 d 1
56/2=28 d 0 7/16=0 d 7
28/2=14 d 0
14/2=7 d 0
7/2=3 d 1
3/2=1 d 1MSB
Kt qu=113D=110001B=71H
3. Các loi mã
a. Mã BCD
Dùng 4 bit h 2 đ biu din mt s h 10
b. Mã ASCII
Dùng 7 bit đ mã hoá, bit cui cùng là bit kim tra chn l, phát hin li khi truyn

- 9 -

4. Biu din s nguyên theo mã nh phân
Dùng s nh phân không du:
n bit biu din 2
n
s t 0 đn 2

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

sa ⋅


=
1
0
+
i
n
i
i
sa ⋅


=
1
0

Trong đó R s thc cn biu din gm n tr s đng trc và m tr s đng sau du chm. Tu thuc
vào h thp phân hay nh phân mà c s s có giá tr là 2 hay 10.
b. Biu din du chm đng
Chia làm 4 thành phn:
M: phn đnh tr
• E: phn m
• R: c s
• S: du
Nh vy X=(-1)
S
.M.R
E


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

)
Ví d:
428CE9FCH=0100 0010 1000 1100 1110 1001 1111 1100
Phn du(bit cao nht): 0 = s dng
Phn m: 2
8
+ 2
2
+ 2
0
-127= 133-127

=6
Phn đnh tr: 2
-4
+ 2
-5
+ 2
-8
+ 2
-10
+ 2
-12
+ 2
-15
+ 2
-16
+ 2
-17
+ 2

-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

Loi xỏch tay
(notebook).
Loi b tỳi
(palmtop,palmpilot).
Kin trỳc chung ca mỏy tớnh
in t
1. B nh trung tõm
(Central Memory or
Main Memory) Cú nhim
v cha nhng chng
trỡnh v d liu trc khi chng trỡnh c thc thi
2. B iu khin (Control Unit -CU) Cú nhim v iu khin s hot
ng ca tt c cỏc thnh
phn ca h thng mỏy tớnh theo chng trỡnh m nú c giao thi hnh.
3. B s hc v logic (Arithmetic Logical Unit, thng c vit tt l ALU) . Cú nhim v thc
hin cỏc thao tỏc tớnh toỏn theo s iu khin ca CU.
4. Thit b vo (Input Device). Cú nhim v nhn cỏc thụng tin t th gii bờn ngoi, bin i
sang dng s mt cỏch thớch hp ri a vo b nh trong.
5. Thit b ra (Output Device) Cú nhim v
a thụng tin s t b nh trong ra ngoi di dng
nhng dng m con ngi yờu cu.
Thiết bị vào
INPUTDEVICE
Bộ nhớ ngoài
Thiết Bị Ra
MAIN MEMORY
Bộ Số học -logic
ALU
Bộ điều khiển CU
Các đơn vị chức năng cơ bản của máy tính điện tử

(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à

đn v s h
c và logic (ALU) và
đn v điu khin (CU). ALU làm
công vic tính toán thc s hoc
x lý d liu. n v điu khin CU
chuyn d liu và các ch lnh vào
và ra khi CPU và điu khin các thao
tác ca ALU. Thêm na, hình trên còn
mô t mt b nh trong, là ch cha
tm thi gi là thanh ghi (Register)
Hình 1.2 mô t hình nh chi tit hn
cu trúc CPU. Các đng truyn d
liu và các đng điu khin logic đu
đc xác đnh, bao gm mt thành
phn gn nhãn internal CPU bus.
Thành phn này đc yêu cu chuyn
d liu gia các thanh ghi khác nhau
và ALU, t ALU thc t hot đng ch
trên d liu trong b nh trong CPU.
Hình v cng mô t các thành phn c
bn tiêu biu ca ALU. Chú ý s tng t gia cu trúc trong ca máy tính và cu trúc trong ca
CPU. Trong c hai trng hp, có mt s tp hp ca các thành phn chính (computer: CPU, I/O, b
nh; CPU: CU,ALU, các thanh ghi) đc kt ni bng các đng d liu.
2. T chc thanh ghi
Registers
Control Unit
ALU
CPU
Control
BUS

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

trình đm là thanh ghi user-visible(ví d VAX) nhng trên nhiu máy khác li không phi vy. Cho các
mc đích s đc tho lun di đây, chúng ta s s dng hai loi này
User-Visible Registers:
Thanh ghi User-Visible là mt trong nhng thành phn đc tham chiu bi cách thc ca
ngôn ng máy đc CPU thi hành. Thc s tt c các thit k CPU đng thi cung cp mt
s các thanh ghi User-Visible đi lp vi mt thanh ghi tng đn gin. Chúng ta có th mô t
đc đim ca chúng trong các loi sau:
X Mc đích chung
X D liu
X a ch
X Mã điu kin
Các thanh ghi mc đích chung (general-purpose registers) có th b phân chia cho các chc
nng khác nhau bi ngi lp trình. Thnh thong, chúng s dng trong tp lnh trc giao vi
thao tác. ó là,bt c mt thanh ghi mc đích chung nào có th cha đng toán hng cho
opcode. Nó cung cp s dng thanh ghi mc đích chung thc s. Thông thòng, có các gii
hn ví d có th có các thanh ghi cho các thao tác con tr đng.
Trong mt s trng hp các thanh ghi mc đích chung có th đc dùng cho các chc nng
đc ch hoá (ví d thanh ghi gián tip, dch chuyn). Trong các trng hp khác, có mt
phnhoc s phân chia rõ ràng giã thanh ghi d liu và thanh ghi đa ch . Các thanh ghi d liu
có th đc s dng ch đ gi d liu và không th đc dùng trong vic tính toán ca mt
đi ch toán hng.Các thanh ghi đa ch có th t bn thân là thanh ghi mc đích chung, hoc nó
có th đc dành ht cho ch đ đa ch riêng.
X Con tr đon:
Trong mt máy vi phng pháp đa ch đon, mt thanh ghi đon gi
đa ch c s ca đon. Có th có nhiu thanh ghi: ví d, mt cho h thng điu
khin và mt cho tin trình hin ti.
X Thanh ghi ch s:
c dùng trong ch đ đa ch ch svà có th đc t đng đánh
ch s.
X Con tr ngn xp:

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

cho nó ch đn đa ch ca t lnh k tip trong b nh.
• 8 thanh ghi chung
• 4 thanh ghi d liu AX,BX, CX, DX.
‚ AX: (Accumulator Register) thanh ghi tích lu các kt qu tính toán.
‚ BX (Base Register) thanh ghi c s: ch đa ch c s ca vùng nh thuc b
nh.
‚ CX (Counter Register) thanh ghi đm: Khai báo s ln 1 thao tác nào đó phi
đc thc hin trong các vòng lp, phép dch, quay.
‚ DX (Data Register) thanh ghi s liu: lu tr sl làm thông s chuyn giao CT (2
byte).
Khi cn truy nhp ch vi 1 byte thì byte cao hay thp đc nhn din H,L.
*Các thanh ghi con tr, ch s:

• SP (Stack pointer) con tr ngn xp: đa ch đnh ngn xp. SP cho phép truy xut d dàng
các đa ch trong đon ngn xp SS (stack segment). Giá tr trong SP mô t phi offset ca đa
ch ngn xp k tip so vi đa ch hin ti đang đc lu trong SS.
• BP (Base pointer) con tr c s: mô t offset tính t SS nhng còn đc s dng truy nhp
DL trong SS.
• I (index) thanh ghi ch s: lu đa ch offset đi vi nhng lnh truy nhp DL ct trong đon DL
*Thanh ghi đon:

B nh đc chia thành các đon logic (segment) dài 64kb. CPU có th truy nhp 1 ln ti 4 đon.
a ch đon cha trong thanh ghi đon.
• Thanh ghi đon mã CS (code Segment) nhn din C bt đu ca đon chng trình hin
hành trong b nh.
• DS (data Segment) đon DL : đa ch bt đu đon s liu.
- 14 -

• SS (Stack Segment) đon ngn xp: đa ch logic đon ngn xp.
• EX (extra Segment) đon m rng: /c DL các chui.


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










Các phép toán c bn ca ALU
B c
ng, tr:

ALU
Flags

Control Unit

Shiffer A&L
MUX
R
BUS
BUS
- 15 -

4. n v điu khin CU(Control Unit)
Nh đã bit các thành phn chc nng c bn ca CPU là:
- n v s hc và Logic (ALU)
- Tp các Thanh ghi
- Các đng d liu trong
- Các đng d liu ngoài

- 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.

Các yêu cu ca phn này là liên quan vi s
tng tác gia đn v điu khin và các thành
phn khác ca CPU.
Hình 14.4 là mô hình chung ca mt đn v điu
khin, trình bày tt c các tín hiu vào và ra. Tín
hiu vào là:
- Clock:
đây là cách đn v điu khin
“gi thi gian” n v điu khin to ra
mt vi thao tác (hoc mt tp các thao
Control Unit
Instruction Register
C
on
t
r
ol

B
u
s
Control Signals From
System bus
Control Signals to
System Bus
Control Signals
Within CPU
Flag
Clock
- 16 -


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.

2. B nh đc tín hiu điu khin trên bus điu khin.
3. Mt tín hiu điu khin các cng cho phép ni dung bus d liu đc cha trong MBR.
4. Các tín hiu điu khin thêm mt vào ni dung ca PC và cha kt qu tr li cho PC
Theo đó, đn v điu khin gi tín hiu điu khin m các cng gia MBR và IR
(Memory buffer register)
(Instruction Register)
n v điu khin vi chng trình:

Các chc nng chính ca đn v điu
khin này:
 thc hin mt lnh, đn v logic tun
t đa ra mt lnh đc ti b nh điu
khin
1. T mà đa ch đc xác đnh trong
thanh ghi đa ch điu khin đc
đc vào thanh ghi b đm điu
khin.
2. Ni dung ca thanh ghi b đm
điu khin phát ra tín hiu điu
ALU
Flags
Clock
Instruction Registers
Decorder
Control Address Register
Sequencing
Logic
Control Memory
Control Buffer Register
Decorder

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

Pipelining:
Mt bin pháp đa tính toán song song vào bn cht tun t ca mt chng trình ch
lnh máy. Các ví d là ng dn ch lnh và x lý vector
Instruction Pipelining
Nh s tin hoá ca các h thng máy tính, hiu sut cao hn có th đc đt đoc bi vic nm bt
các tin b ca s phát trin công ngh.Hn na, s ci tin t chc ca CPU có th làm tng hiu
sut. Chúng ta đã có mt s ví d ví nh s dng các thanh ghi bi hon là s dng mt thanh ghi
cha đn, và s dng b nh cache. Mt phng pháp t chc khác rt thông dng là Instruction
Pipe. (Còn thiu)
Chin lc ng dn
ng dn ch lnh tng t vic s dng mt dây chuyn trong k hoch sn xut. Mt dây chuyn to
ra các thun li trong thc t mt sn phm đi qua nhiu trng thái khác nhau ca quá trình sn xut.
Bng cách b trí tin trình sn xut trong mt dây truyn, các sn phm  nhng trng thái khác nhau
có th đc làm đng thi. Tin trình này cng đc quy cho là pipelining, Bi vì nh trong mt ng
dn, mt sn phm vào mi đc chp nhn  mt đu cui trc các sn phm vào đc chp
nhn trc đó xut hin nh sn phm ra  đu cui khác.
6. BUS
Mt máy tính bao gm các b phn hay các đn v ca ba thành phn chính: CPU, h thng nh, thit
b vào ra, đc liên lc vi nhau. V thc cht máy tính đc coi là mt mng ca các đn v c bn.
Hn na cn phi có các đng đ kt ni các đn v vi nhau. Tp hp các đng kt ni các đn
v đc gi là Interconnection Structure.
Cu trúc kt ni thông dng nht đc s dng trong máy tính là BUS
BUS là tp hp các đng dây kt ni hai hay nhiu thit b vi nhau. Rt nhiu thit b kt ni vi
BUS, mt tín hiu đc truyn đi t bt kì mt thíêt b nào cng có th đc gi đn tt c các thit b
kt ni vi BUS. Nu có hai thit b cùng truyn d liu đng thi trong mt thi đim, nhng tín hiu
này s gi lên nhau và s b sai lc, nh vy ch mt thit b có th truyn d liu thành công trong
mt thi đim. Trong nhiu trng hp, BUS thc s gm nhiu đng liên lc, mi đng có kh
- 18 -

nng truyn các tín hiu mô t các giá tr nh phân 0, 1. Các s nh phân đc truyn liên tc thông

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:

điu khin vic nhn d liu t cng vào/ra chuyn vào BUS
• Transfer ACK:
ch ra d liu đã đc chp nhn
• BUS request:
ch ra module cn chim quyn điu khin BUS
• BUS grant:
ch ra module đang yêu cu đã đc cp quyn điu khin BUS
• Interrupt request:
yêu cu ngt t thit b ngoi vi
• Interrupt ACK:
chp nhn ngt t CPU
• Clock:
xung đng h dùng trong quá trình đng b
• Reset:
khi đng li các module
Phân loi BUS theo đng truyn
BUS đng b: đc điu khin bi nhp đng h vi chu kì nht đnh. Hot đng ca vi x lý đòi hi
thi gian là bi s ca chu kì máy
BUS không đng b: không hot đng theo xung đng h nht đnh, khi truyn tín hiu thit b truyn
phát tín hiu MSYN báo cho thit b nhn chy nhanh nht có th, sau đó khi hoàn thành thit b nhn
phát li tín hiu SSYN.

- 19 -


Chng III: H THNG NH

I. KHÁI QUÁT V H THNG NH CA MÁY TÍNH
• V trí:


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

mt t đc tìm li đc da vào chính ni dung ca nó thay vì đa ch ca nó.Vi
truy nhp ngu nhiên thông thng, mi v trí có đa ch c khí ca mình, và thi gian
tìm là hng s đc lp vi v trí hay mu hình truy nhp u tiên.B nh cache dùng
cách truy nhp này.
• S thi hành.

X Thi gian truy nhp: (access time)
: đi vi truy nhp ngu nhiên đó là thi gian đ
thc hin hot đng đc ghi. ó là thi gian t khi đa ch đã sn sàng trong b nh
đn khi d liu đc ct tr hoc đc làm có th s dng đc. i v truy nhp
không phi là ngu nhiên thi gian truy nhp là thi gian đa v trí đc vit c khí đn
v trí mong mun.
X Cycle time (chu k thi gian):

X Transfer rate: đó là tc đ d liu có th đc truyn vào hoc ra khi đn v nh.
• Kiu vt lý

X Bán dn
X T (magnetic)
- 20 -

X quang (optical)
• c tính vt lý

X Có th thay đi/ không thay đi
X Có th xoá đc/ không th xoá đc

II. PHÂN CP B NH
Vic phân cp b nh theo các tiêu chun:
X gim giá/bit

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

 dng liên tc.
X Các chng trình h thng.
Magnetic Tape
Thanh ghi
Cache
Main memory
Disk Cache
Magnetic disk
Optical Disk
Phan cap memory
- 21 -

X Các bng chc nng.
ROM đc sn xut tng t nh các mch đin tích hp khác., vi d liu đc ghi vào chip
trong quá trình ch to.
Phân loi:
X Maskable ROM: ghi khi ch to
X PROM (Programable ROM) ch ghi mt ln.
X EPROM (Erasable PROM) xoá đc bng tia cc tím.
X Flash Rom : Flash memory có th xoá đc bng tín hiu đin .
X Flash Rom có th xoá và ghi li đc bng tín hiu đin. Thêm na nó có th
ch xoá các khi nh thay vì phi xoá toàn b chíp. Flash memory s dng mt
transistor trên mt bit, và do đó giành đc mt đ cao.
2. T chc b nh
Da trên các mch Flip- flop
Có 2
N
ngn nh -> N chân đa ch.
 dài mi ngn nh m bits
dung lng 2

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ào trong cache và sau dó t nh đc cung cp cho CPU. Bi vì hin tng tham vn cc b, khi
khi d liu đc đem v trong cache đ tho mãn tín hiu tham chiu b nh, hu nh nhng tham
chiu tng lai s là nhng t nh khác ca khi nh.
Hình trên mô t cu trúc ca h thng cache/Main memory. B nh chính bao gm ti 2
n
t nh có
th đánh đa ch, vi mi t nh có mt đa ch n bit duy nht. Cho mc đích ánh x, b nh này coi
nh bao gm mt s ca đ dài nhng khi c đnh ca mi K t nh. Tc là có M=2
n
/ k khi nh.
Cache bao gm C khe ca mi K t nh, và s ca các khe,hoc các hàng, nó coi nh ít hn s khi
nh ca b nh chính (C<< M). Ti bt k thi đim nào, mt vài tp con ca khi ca b nh lu trú
in các khe ca cache.Nu t nh trong khi nh ca b nh đc đc, khi nh đó đc truyn vào
1 trong các khe ca b nh cache.Bi có nhiu khi nh hn các khe, m khe riêng bit không th
đc nht và thng xuyên dành cho mt khi riêng bit.Vì vy, mi khe bao gm 1 nhãn đ nhn
dng khi riêng bit hin đang đc tr. Nhãn thng là mt phn ca đa ch b nh chính,.
Hot đng đc ca cache:
khi CPU phát đa ch, RA ca t nh s đc đc. Nu t nh đc
cha trong Cache,, nó s đc cung cp cho CPU. Ngc li, khi nh cha t nh đó s đc ti
vào trong b nh và t nh đó s đc cung cp cho CPU.
2. K thut ánh x b nh cache
B nh chính có 2
N
byte nh dùng N bit đa ch d đa ch hóa cho b nh.
Chia b nh chính thành các khi, mi khi có K=2
N1
byte có M=2
N
/k khi.
Chia Cache thành C đng,mi đng k byte nh: C<<M. Vic trao đi thông tin gia b nh chính

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

Block Length
( K Words)
a) Main memory
b) Cache
- 23 -

X Block 1-> line 1
X Block C-> line 0
X Bock i -> line (i mod C)
Gi x cache có 2
n2
ngn nh (đng)
đa ch do CPU phát ra là n bit
Tag n2 n1
n
1
xác đnh s byte trong khi 2
n1
->byte
n-n
1
bit còn li : xác đnh khi nm trong b nh chính.
n
2
bít tip theo xác đnh đng trong cache
còn li là trng Tag
Mi 1 block đc ghi vào cache thì cn 1 ch đ ghi Tag (bit đc đng nào nm trong cache)
B so sánh : thông dch đa ch và so sánh ni vào.
Nhc đim ca phng pháp
ánh x này là có mt v trí c đnh ca cache cho bt c khi đã cho

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

W
0
W
1
W
2
W
3
Memory Address
Tag Word
Tag
Data
Cache
L
0
L
1
L
2
Miss in cache
Tag word
- 24 -

=Khi CPU phát ra đa ch thì nó so sánh vi tt c các Tag đc ghi trong cache, nu có 1 Tag nào
trong cache trùng vi Tag đa ch thì hit in cache
c. ánh x liên kt tp hp (cache 2 đng)
Chia cache thành các tp hp
Mi tp hp có m đng
ánh x:
X Block 0 -> set 0

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

Vi liên kt hoàn toàn Tag=27
Vi liên kt tp hp (2 đng) Tag=19
> Trc tip

Hoàn toàn

Tp hp


VI. QUN LÝ B NH
1. Các k thut qun lý b nh
Trong mt h thng lp trình đn nhim, b nh chính đc chia thành hai phn: mt phn cho h
điu hành(resident monitor) và mt phn cho chng trình đang đc thc hin. Trong mt h thng
lp trình đa nhim, “user” phn ca b nh phi đc chia nh hn na cung cp cho các tin trình
X
W
0
W
1
W
2
W
3
Memory Address
Tag
Word
Tag
Data
Cache
L

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

là chm hn rt nhiu so vi s
tính toán. và bi vy cho nên
CPU trong các h thng lp trình đn nhim là nhàn ri trong hu ht thi gian.
Nhng s sp xp trong hình 7.14 không gii thích toàn b vn đ, Thc s trong trng hp này, b
nh gi các tin trình và CPU có th chuyn ti tin trình khác khi mt tin trình đang đi. Nhng vi
x lý nhanh hn thit b vào ra đi vi tt c các tin trình trong b nh đang đi I/O. Vì vy thm chí
vi lp trình đa nhim, mt b CPU có th nhàn ri trong hu ht thi gian.
B nh chính có th đc m rng, và có th điu tit cho nhiu tin trình.Nhng có hai tr ngi
trong cách tip cn này. u tiên, b nh chính là rt đt. Th hai, s yêu cu b nh ca các
chng trình phát trin rt nhanh khi giá b nh gim xung. Kt qu các tin trình cha chc tng
lên khi dung lng b nh ln hn.
Mt gii pháp khác là tráo đi (swapping). đc mô
t trong hình 7.15. Chúng ta có mt hàng đi (long-
term queue) ca các yêu cu tin trình đc tr
trên đa. Nó đc np vào mt ln khi không gian
b nh cho phép. Khi các tin trình hoàn thành,
chúng đc chuyn ra khi b nh chính. Bây gi,
trng thái s xut hin là không có bt k tin trình
nào trong b nh nm  trng thái sn sàng. úng
hn trong thi gian ri còn li. CPU tráo đi mt
trong nhng tin trình tr li đa vào trong mt
hàng đi trung gian. ây là hàng đi ca các tin
trình đã tn ti đã đc tm thi đa ra khi b
nh. H điu hành sau đó np mt tin trình khác
t hàng đi trung gian hoc thc hin mt yêu cu
tin trình mi t hàng đi (long-term queue).
K thut tráo đi, dù sao cng là thao tác vào
ra(I/O) và vì vy có mt tim nng to ra vn đ
nguy him hn, không tt hn. Nhng, khi disk I/O là thit b vào ra nhanh nht trên h thng(ví d so
sánh vi bng t hoc vi vào ra máy in), tráo đi s nâng cao s thc thi. mt gin đ tinh vi hn là

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

Queue
Disk
Storage
Disk
Storage
(a) Simple Job Scheduling
(b) Swapping
Figure 7.15. The use of swapping

×