OPEN.PTIT.EDU.VN
LI NÓI U
Các b vi x lý ra đi đem li bc ngot trong khoa hc k thut, các thit b tr nên
thông minh hn nh s điu khin theo chng trình. Vi x lý đang dn có mt trong hu ht các
máy móc thit b dân dng cng nh công nghip. Vì vy vic hc tp nghiên cu ng dng vi x
lý trong trng hc là mt nhu cu ht sc cn thit.
phc v cho nhu cu ging dy môn hc K thut vi x lý cho các lp đi hc t xa
chuyên nghành đin t vin thông, bài ging vi x lý đc biên son vi mc đích cung cp cho
sinh viên các kin thc c s cn thit s dng cho vic nghiên cu ng dng các h thng vi x
lý trong k thut và đi sng. Bài ging bao gm 8 chng vi các ni dung chính nh sau:
Chng 1 cung cp các khái nim c bn v vi x lý và h thng ca nó.
Chng 2 mô t cu trúc, các khi chc nng trong các b vi x lý h Intel 80x86, mà ch
yu là CPU 80286. Ngoài ra trong chng này còn gii thiu v các tính nng ca các b vi x lý
th h sau 80286 nh 80386, 80486, Pentium.
Chng 3 mô t v cu trúc lnh, các ch đ đnh v đa ch và tp lnh chi tit ca vi x
lý 80286. Cho phép sinh viên rút ra đc các kin thc chung nht v các lnh vi x lý và cách
tip cn trong vic lp trình bng các lnh hp ng. Ngoài ra chng này còn đ cp ti các vn
đ v lp trình hp ng trên máy vi tính bao gm: cu trúc câu lnh, cách khai báo d liu, khung
chng trình hp ng, các cu trúc lp trình c bn, và các ví d c bn rèn luyn k nng lp
trình bng các lnh gi nh ca vi x lý.
Chng 4 cung cp các kin thc v vic thit k các h thng vi x lý chuyên dng bao
gm c vic thit k h thng phn cng và phn mm vi x lý.
Chng 5 mô t v cu trúc hot đng ca các vi mch h tr vào ra song song 8255 và
vào ra ni tip 8251.
Chng 6 mô t v vi điu khin 8051 bao gm v cu trúc các khi mch phn cng, v
tp lnh và lp trình cho vi điu khin 8051.
Chng 7 mô t vic thit k h thng đo đ rng xung và truyn d liu ni tip bng
8051. Vi các ví d này sinh viên có th tip cn v vic thit k các ng dng nh dùng vi điu
khin.
Chng 8 là các gii thiu v b vi điu khin 32 bit ca Motorola MC68332. ây là b
vi điu khin có các tính nng rt mnh đc ng dng nhiu trong các thit b điu khin hin
nay.
Mong rng tp bài ging này đáp ng đc nhu cu ging dy môn hc k thut vi x lý
ti hc vin, và kích thích đc s hng thú ca hc sinh – sinh viên trong vic nghiên cu ng
dng vi x lý trong k thut và đi sng hàng ngày. Rt mong nhn đc nhiu ý kin đóng góp
đ bài ging ngày càng đc hoàn thin hn.
Tác gi
OPEN.PTIT.EDU.VN
MC LC Trang
Chng 1 : Kin trúc ca h vi x lý (2 tit)
1.1 T chc chung ca h vi x lý
1.1.1. Công ngh LSI và s ra đi ca b vi x lý.
1.1.2. Phn cng và phn mm ca h thng vi x lý.
1.1.3. Tng quan v phn cng h thng vi x lý.
1.1.4. Tng quan v phn mm và s phát trin ca ngôn ng phn mm.
1.2 T chc b nh ca h vi x lý
1.2.1 Cu trúc và nguyên tc làm vic ca b nh ROM , EPROM .
1.2.2 Cu trúc và nguyên tc làm vic ca b nh SRAM , DRAM .
1.2.3 T chc b nh
1.3 Vào ra trong h thng vi x lý.
1.3.1 Cu trúc và nguyên tc làm vic ca cng vào / ra.
1.3.2 Mch ba trng thái và mch cài
1.3.3 Các cng vào / ra đn gin.
Chng 2 : Nguyên tc làm vic ca b vi x lý h 80X86 Intel (6 tit)
2.1 Cu trúc ca b vi x lý 80286 Intel
2.1.1 S đ khi ca b vi x lý 80286 Intel
2.1.2 Khi to đa ch (AU)
2.1.3 Khi ghép kênh (BU)
2.1.4 Khi lnh (IU)
2.1.5 Khi thc hin lnh (EU)
2.2 Các thanh ghi ca b vi x lý 80286 Intel .
2.2.1 Chc nng và nhim v ca các thanh ghi đa nng .
2.2.2 Các thanh ghi qun lý đon
2.2.3 Thanh ghi c trng thái
2.2.4 Các thanh ghi đc bit
2.3 Nguyên tc làm vic ca b vi x lý 80286 Intel .
2.3.1 nh ngha chu k lnh và chu k máy
2.3.2 Qun lý b nh thc và b nh o
2.3.3 Trng thái b vi x lý khi khi đng
2.3.4 Ch đ ngt và các đu ngt ca b vi x lý
2.4 Các b vi x lý cp cao ca Intel
Chng 3 : Lp trình Assembly cho h vi x lý Intel (6 tit)
3.1 Cu trúc ca hp ng.
3.1.1 B ký t t khóa ca hp ng
3.1.2 Các lnh ch dn trong hp ng
3.1.3 Khung ca file chng trình ngun Assembly
3.2 Tp lnh ca b vi x lý 80X86 Intel
3.2.1 Nhóm lnh chuyn d liu
1
1
1
2
3
4
4
5
7
7
10
10
10
11
14
14
15
15
15
15
15
15
16
17
18
20
21
21
25
35
36
40
43
43
44
44
48
50
54
OPEN.PTIT.EDU.VN
3.2.2 Nhóm lnh x lý d liu.
3.2.3 Nhóm lnh chuyn điu khin
3.3 Lp trình hp ng cho h vi x lý Intel
3.3.1 Lp trình chuyn mng d liu
3.3.2 Lp trình chuyn đi mã (nh phân , hexa , thp phân , ascii)
3.3.3 Lp trình điu khin thit b ngoi vi
Chng 4 : Thit k h vi x lý chuyên dng (6 tit)
4.1 Trình t thit k h vi x lý chuyên dng
4.2 T chc phn cng cho h vi x lý chuyên dng .
4.2.1 La chn b vi x lý
4.2.2 T chc không gian nh thc và đnh v ROM , RAM
4.2.3 Thit k các ngoi vi theo yêu cu
4.3 Xây dng phn mm cho h vi x lý
4.3.1 Xây dng thut toán và lu đ thut toán cho h vi x lý
4.3.2 Vit chng trình ngun bng Assembly cho h vi x lý
4.4 Dch và np chng trình vào ROM cho h vi x lý
Chng 5 : Các chip IC h tr cho h vi x lý (4 tit)
5.1 Chip vào / ra lp trình 8255
5.1.1 Cu trúc ca chip 8255
5.1.2 Các ch đ làm vic ca chip 8255
5.1.3 Kt ni 8255 vi h thng vi x lý
5.1.4 Lp trình khi to ch đ làm vic cho chip 8255
5.2 Chip truyn tin ni tip USART 8251
5.2.1 Ch đ truyn tin đng b và cn đng b
5.2.2 Cu trúc ca chip USART 8251
5.2.3 Các ch đ làm vic ca chip USART 8251
5.2.4 Ghép chip USART 8251 vi h vi x lý
5.2.5 Lp trình khi to ch đ làm vic cho chip USART 8251
Chng 6 : Vi điu khin 8 bit 8051 (8 tit)
6.1 Cu trúc và chc nng ca vi điu khin 8051.
6.1.1. Gii thiu v các b vi điu khin.
6.1.2. Cu trúc tng quát ca các b vi điu khin.
6.1.3. Mô t phn cng các b vi điu khin h MSC-51
6.2 Giao tip vi b nh ngoài cho vi điu khin 8051.
6.2.1. Truy xut b nh chng trình bên ngoài.
6.2.2. Truy xut b nh d liu bên ngoài.
6.2.3. B nh ngoài s dng chung cho chng trình và d liu
6.3 Hot đng timer ca 8051
6.3.1. Gii thiu.
6.3.2. Các ch đ timer và c báo tràn.
6.3.3. Ngun xung nhp.
6.3.4. Cho chy, dng và điu khin các timer.
6.3.5. Khi đng và truy xut các thanh ghi timer.
56
61
62
63
64
67
72
72
74
74
74
78
82
82
87
87
92
92
92
93
98
99
101
101
104
106
107
110
120
120
120
120
121
130
131
131
134
134
134
136
137
138
139
OPEN.PTIT.EDU.VN
6.4 B điu khin truyn tin ni tip UART ca 8051.
6.4.1 Gii thiu.
6.4.2 Thanh ghi điu khin cng ni tip.
6.4.3 Các ch đ hot đng
6.4.4 Khi đng và truy xut các thanh ghi cng ni tip
6.4.5 Truyn thông tin trong h thng đa x lý.
6.4.6 Tc đ cng ni tip.
6.5 Ngt ca vi điu khin 8051.
6.5.1. Gii thiu.
6.5.2. T chc ngt ca 8051.
6.5.3. Các vector x lý ngt.
6.5.4. Thit k chng trình dùng các ngt.
6.5.5. Các ngt ca 8051
6.6 Tp lnh và hng dn lp trình trên 8051.
6.6.1 Các ch đ đa ch.
6.6.2 Tp lnh ca 8051.
6.6.3 Chng trình hp ng 8051.
6.7 B nh ROM ca vi điu khin 8051.
Chong 7 : Thit k h thng chuyên dng trên on – chip 80C51 (4 tit)
7.1 Thit k h đo thông s tín hiu xung
7.1.1 Nguyên tc đo đ rng xung
7.1.2 S đ phn cng ca h đo
7.1.3 Xây dng chng trình điu khin
7.2 Thit k h truyn tín hiu ni tip
7.2.1 S đ kt ni phn cng h thng vi điu khin truyn d liu ni tip.
7.2.2 Xây dng chng trình điu khin.
Chng 8 : Vi điu khin 32 bit MC68332 (9 tit)
8.1 Cu trúc và chc nng thành phn ca on – chip 32 bit MC68332
8.2. Mô đun tích hp h thng SIM.
8.2.1. Khi đnh cu hình và bo v h thng.
8.2.2. Khi to clock cho h thng.
8.2.3. Khi giao tip BUS bên ngoài.
8.2.4. Khi to tín hiu chn mch.
8.2.5. Các ngõ vào ra đa dng.
8.2.6. Reset
8.2.7. Ngt
8.2.8. Khi kim tra phn cng
8.3 B vi x lý
8.3.1. Các mô hình lp trình.
8.3.2. Thanh ghi trng thái chng trình
8.3.3. Ch đ g ri.
8.4 Khi x lý thi gian TPU
8.4.1. Các khi chc nng trong TPU.
8.4.2. Các chc nng thi gian ca TPU.
8.5 Mô đun ni tip theo hàng đi QSM
140
140
140
141
143
145
145
147
147
148
149
151
152
153
153
157
159
168
173
173
173
174
175
181
181
181
189
189
191
195
195
195
196
197
198
199
200
200
201
202
203
203
204
206
210
OPEN.PTIT.EDU.VN
8.6 TRURAM
8.6.1. Khi thanh ghi ca TPU RAM.
8.6.2. Hot đng ca TPURAM
8.7 Lp trình hp ng cho vi điu khin MC68332
8.7.1 Các ch đ đa ch trong chng trình hp ng MC68332.
8.7.2 Tp lnh ca MC68332
8.7.3 Khuôn dng chng trình ngun.
8.7.4 Lp trình khi đng SIM.
8.7.5 Lp trình đnh cu hình cho RAM ni.
8.7.6 Lp trình cho QSM.
8.7.7 Lp trình cho TPU.
HNG DN VÀ ÁP S BÀI TP
CÁC CH VIT TT
TÀI LIU THAM KHO
212
213
214
214
214
215
225
227
229
229
232
237
246
251
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
CHNG 1: KIN TRÚC CA H THNG VI X LÝ
Gii thiu:
Trc ht trong chng này sinh viên cn nm đc các khái nim v b vi x lý nh :
mc đích s ra đi ca b vi x lý, các khi chc nng c bn ca b vi x lý, nguyên tc x lý
các công vic và bài toán ca b vi x lý, lnh ca b vi x lý, chng trình mà các b vi x lý
thc hin, chc nng ca phn cng và phn mm trong h thng vi x lý, các khi chc nng
phn cng trong h thng vi x lý và chc nng ca chúng, các tín hiu kt ni các khi chc
nng phn cng, phn mm phát trin ca ngôn ng phn mm h thng vi x lý, lnh mã máy,
lnh gi nh, nguyên tc hình thành ngôn ng cp cao, các chng trình hp ng, các chng
trnh ngôn ng cp cao và vic thc hin các chng trình này trong h thng vi x lý.
Tip theo chng này cung cp các kin thc v b nh bán dn. Sinh viên cn nm đc
nguyên tc hot đng ca b nh bán dn, s khác nhau gia các b nh ROM và các b nh
RAM, gia các loi b nh ROM và gia các loi b nh RAM, và quan trng nht là các t chc
các b nh trong h thng vi x lý, phng pháp gii mã đa ch b nh trong các h thng vi x
lý.
Phn cui cùng sinh viên cn nm đc các kin thc v vào ra, cu trúc ca các vi mch
s đm, cài và nguyên tc làm vic ca chúng trong các h thng vi x lý, trng thái tr kháng cao
và ý ngha ca chúng trong kt ni h thng vi x lý. Và cng ging nh b nh cn nm rõ
nguyên tc gii mã đa ch vào ra trong các h thng vi x lý.
1.1. T CHC CHUNG CA H THNG VI X LÝ
1.1.1. Công ngh LSI và s ra đi ca các b vi x lý
Trong k thut s, chúng ta đã đc làm quen vi công ngh ch to bán dn cho phép đt
nhiu cng logic trong mt vi mch (hay mt mch tích hp IC – Integrated Circuits) vi din tích
khong vài mm
2
. Nu s cng nh hn 15 đn v cng, chúng đc gi là mch tích hp mt đ
nh SSI (Small Scale Integration). T 15 ti 100 đn v cng đc gi là mch tích hp mt đ
va MSI, trên 100 cng là mch tích hp mt đ cao LSI và hàng triu đn v cng đc gi là
mch tích hp mt đ rt cao VLSI.
Vi công ngh ch to bán dn trên, hàng ngàn loi IC s khác nhau ra đi vi các chc nng
khác nhau, nhng chúng đu có các tính cht chung nh:
- u đc kt ni t các cng logic c bn.
- D liu s đa ti các ngõ vào s đc bin đi theo mt hàm s nht đnh thành d liu trên
các ngõ ra.
Vi cu hình ni cng các cng logic c bn đ to thành mt IC s vi mt chc nng c
th nh trên, làm vic s dng các IC s có các nhc đim nh: cùng mt chc nng nhng s
dng nhiu ln trong mch, s phi s dng nhiu IC s. Khi mun thc hin các công vic khác
nhau, cn thc hin các mch s khác nhau. Ví d, mt công vic yêu cu hai phép cng nh phân
s phi s dng hai IC cng khác nhau. Nu có nhiu hn mt phép tính so vi mch đã thc hin
s cn phi làm mt mch khác.
Vi s ra đi ca công ngh LSI, cho phép tích hp rt nhiu cng logic trong mt vi mch
nh, ngi ta ngh đn chuyn thit k mt IC s có th thc hin mi chc nng s mà không cn
phi thay đi mch đin. Nguyên tc thc hin ca loi IC s này có th biu din trong s đ
khi hình 1.1.
1
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
S đ bao gm khi các hàm s c bn và các b đm đc kt ni vi nhau thông qua
các mch kim soát (không kt ni c đnh, mà ch kt ni khi có các tín hiu cho phép). D liu
có th di chuyn t b đm này ti b đm khác và t các b đm ti x lý ti các hàm c bn khi
có các tín hiu cho phép thích hp. Mt chc nng s phc tp (mt bài toán hay mt công vic
nào đó), thay vì phi thc hin bng mt mch s ni cng, có th thc hin tng bc bng cách
tun t thc hin các hàm s c bn trong IC này. Vi cu hình này, s đ có th thc hin mi
chc nng s phc tp mà không cn thay đi mch kt ni các IC s. ây là cu hình c bn nht
ca mt b vi x lý.
Chn hàm
x lý d
liu
Chn b đm
cung cp d
liu
Các hàm s c bn
B đm B đm B đm B đm
…
Hình 1.1: S đ khi cu to c bn ca vi x lý.
Nh vy vi x lý là mt IC s có tt c các hàm s c bn, đ thc hin mt chc nng s
phc tp nó s tun t thc hin các chc nng s c bn theo mt trình t thích hp. thc
hin mt chc nng s c bn, cn phi cung cp cho vi x lý các tín hiu chn d liu trong các
b đm và tín hiu chn hàm s x lý d liu đó. Công vic này đc gi là cung cp mt lnh
cho vi x lý. thc hin mt bài toán hay mt công vic nào đó, cn phi thc hin tun t các
hàm s c bn theo mt trình t nht đnh, có ngha là phi cung cp cho vi x lý mt tp hp các
lnh sp xp theo mt gii thut hp lý gi là mt chng trình.
1.1.2. Phn cng và phn mm ca h thng vi x lý
Vi cu to bao gm các hàm s c bn và các b đm nh đã mô t trên, các b vi x
lý không th hot đng mt mình, mà chúng cn đc kt ni ghép vi các mch ph cn nh:
mch cung cp xung nhp, b nh lu tr chng trình, các giao tip đ liên lc vi ngi s dng
hay thit b điu khin. Nguyên tc cu to và cách thc kt ni gia vi x lý và các mch ph cn
cn thit ca nó đc gi là công ngh phn cng ca h thng vi x lý (Hardware).
H thng mch
đin t s
Các thit b xut
nhp và chp hành
điu khin
Các chng trình
phn mm
Hình 1.2: S đ khi mô t hot đng ca h thng vi x lý.
h thng mch phn cng đã đc kt ni đúng có th thc hin mt bài toán, mt
công vic, cn cung cp cho vi x lý mt chng trình thích hp. Công vic to ra các chng
2
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
trình cung cp cho các h thng vi x lý hot đng đc gi chung là công ngh phn mm
(Software). Có th mô t c ch ca mt h thng vi x lý trên hình 1.2.
1.1.3. Tng quát v phn cng h thng vi x lý
Phn cng mt h thng vi x lý bao gm 3 khi mch chính trên hình 1.3 bao gm:
- B vi x lý, hay còn đc gi là đn v x lý trung tâm CPU (Central Processing Unit) có
nhim v thc hin tt c các lnh mà chng trình yêu cu. Nó đóng vai trò là ch trong h
thng, quyt đnh s hot đng ca các linh kin khác trong mch.
- Khi b nh lu tr các chng trình cung cp cho vi x lý thc hin, ngoài ra nó còn s
dng lu tr các bin trung gian cng nh cui cùng trong các quá trình tính toán.
- Các b vào ra kim soát vic truyn d liu gia CPU và các thit b ngoi vi nh bàn phím,
màn hình,…. Các thit b ngoi vi có th là các thit b cho phép h thng vi x lý và ngi
s dng có th liên lc vi nhau, hoc các thit b thc hin mt công vic nào đó theo s
điu khin ca vi x lý.
Trong h thng vi x lý, CPU đóng vài trò là thành phn điu khin kim soát mi hot
đng ca các vi mch ph tr (b nh và vào ra) khác. Vì vy, các mch ph tr s đc kt ni
vi CPU bng mt h thng đng dn đin gi là BUS. BUS đc chia thành 3 loi: BUS d
liu, BUS đa ch và BUS điu khin.
BUS d liu có nhim v truyn d liu gia CPU và các b nh hoc vào ra đ các thành
phn trong h thng có th hiu đc nhau. Ví d nh: các lnh đc CPU ly t b nh qua BUS
d liu, hot đng ca các thit b ngoi vi đc CPU điu khin và kim soát bng BUS d liu.
Các CPU truyn thng s dng mt BUS d liu duy nht đ truyn d liu vi tt c mi ni
trong h thng, vì vy đ điu khin đc tng thành phn mt cách đc lp, ti mt thi đim
thông thng CPU ch truyn d liu vi mt v trí duy nht, v trí này đc xác đnh bng trng
thái ca BUS đa ch. H thng phi đc kt ni sao cho ng vi mt đa ch mà CPU to ra, ch
có mt v trí duy nht đc xác đnh ti, công vic này đc gi là gii mã đa ch trong h thng
vi x lý. Ngoài ra b nh hoc vào ra, (xác đnh bng BUS đa ch) có th có nhiu ch đ hot
đng khác nhau vi CPU, các ch đ này đc thông báo qua li vi CPU thông qua BUS điu
khin. Ví d, khi đc d liu t b nh CPU thông báo bng tín hiu MEMRD (memory read)
tích cc, còn khi ghi d liu ti b nh nó thông báo bng tín hiu MEMWR.
CPU
B
nh
I/O
Thit
b
ngoi
vi
Chng
trình
Hình 1.3: S đ khi h thng vi x lý
3
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
1.1.4. Tng quát v phn mm và s phát trin ca các ngôn ng phn mm
Nh đã bit, h thng vi x lý là mt h thng mch đin t s hot đng theo chng
trình. Vì là h thng mch đin t s, nên các chng trình cung cp cho vi x lý hot đng phi
di dng 0, 1 gi là chng trình mã máy. Nhng do ngôn ng máy ch đn gin là t hp ca
các bit 0 và 1 nên rt khó nh, khó kim tra đi vi ngi s dng. khc phc nhc đim
này, ngi ta đt cho mi lnh mã máy thc hin mt chc nng s c bn mt tên d nh hn gi
là mã gi nh. Khi lp trình ngi ta s dng các lnh gi nh này, to thành chng trình hp
ng (assembly), đ vi x lý thc hin đc chng trình cn phi dch nó ra chng trình mã
máy. Quá trình dch mt chng trình hp ng thành mt chng trình mã máy, đc gi là quá
trình hp dch (assembler). Hp dch có th thc hin bng cách tra bng tp lnh, khi có máy vi
tính và các công c son tho lu tr, ngi ta thc hin các chng trình hp dch đ quá trình
hp dch nhanh chóng và chính xác hn.
Do ch đn gin là tên ca mt lnh c bn ca vi x lý, nên các mã gi nh vn cha
thc s d dàng khi lp trình, các chng trình hp ng thng không có cu trúc và rt khó kim
tra phát hin li cng nh lu tr s dng lâu dài. Cng theo cách trên, ngi ta vit ra các
chng trình con hp ng thc hin mt chc nng thông dng ri đt thành mt lnh ngôn ng
cp cao. Có rt nhiu ngôn ng cp cao khác nhau ra đi nh Pascal, C, basic …. thc hin
các chng trình ngôn ng cp cao, cng cn phi dch chúng v dng mã máy. Quá trình này
đc gi là thông dch hoc biên dch. Thông dch là quá trình dch tng lnh ngôn ng cp cao ra
mt chui lnh mã máy đ vi x lý thc hin, sau đó mi tip tc vi lnh cp cao k tip. Còn
biên dch là dch đng thi chng trình ngôn ng cp cao ra chng trình mã máy, sau đó mi
cung cp cho vi x lý thc hin chng trình mã máy đó.
Chng trình ngôn
ng cp cao
H thng mch
đin t s
Chng trình hp
ng
(các lnh gi nh)
Chng trình mã
máy
(tp hp các bit 0
và 1
)
Hình 1.4: S phát trin ca ngôn ng phn mm.
1.2. T CHC B NH CA H THNG VI X LÝ
Trong h thng mch đin t phn cng ca h thng vi x lý mô t trên hình 1.3, b nh
là các IC nh đc gi là b nh bán dn hay b nh chính ca h thng vi x lý. Ngoài b nh
bán dn, h thng vi x lý còn có các thit b khác s dng đ lu tr d liu và chng trình, đó
là các thit b nh ngoài nh: đa cng, đa mm, đa quang hc …. Chúng đóng vai trò là
các thit b ngoi vi ca h thng. Phn này ch mô t v cu to và nguyên tc hot đng ca các
loi b nh bán dn.
B nh bán dn đc chia thành hai loi chính: b nh ch đc ROM (Read Only
Memory) và b nh có th đc ghi đc hay còn gi là b nh truy cp ngu nhiên RAM
(Random Access Memory). Tuy nhiên các tên gi trên ch mang tính cht tng đi, b nh ROM
cn phi đc ghi d liu trc khi đc, mi loi ROM khác nhau s có cách ghi d liu khác
nhau. B nh truy cp ngu nhiên, khác vi b nh truy cp tun t là có th truy cp bt k d
liu nào mt cách tc thi, mà không phi truy cp tun t. Các b nh ROM và RAM đu có th
truy cp tun t.
4
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
Trong các h thng vi x lý, b nh ROM đc s dng đ ghi các chng trình và d
liu c đnh nh: chng trình khi đng h thng, chng trình ROM BIOS ca máy tính, các
chng trình điu khin hot đng ca các h thng vi x lý không có b nh ngoài ….
Các loi b nh ROM bao gm: Mask ROM là ROM đc ghi d liu ngay t khi sn
xut không th thay đi đc. PROM là loi ROM lp trình đc mt ln bi ngi s dng.
EPROM là b nh ROM có th lp trình bng đin và xoá bng tia cc tím, EEPROM là ROM
lp trình và xoá nhiu ln bng đin.
B nh RAM đc s dng làm ni lu tr các bin s ca chng trình, nó cng có th
s dng làm ni cha các chng trình np vào t các thit b nh ngoài đ CPU thc hin. B
nh RAM đc chia thành hai loi chính là: RAM tnh SRAM và RAM đng DRAM. SRAM lu
tr d liu theo nguyên tc ca các Flip – Flop, nên nó s lu tr d liu ghi vào nó cho đn khi
có mt d liu khác đc ghi đè lên, hoc cho đn khi mt ngun cung cp. DRAM lu tr d
liu bng các t nh nên các mc 1 sau mt thi gian s b tiêu hao qua các mch ph cn, vì vy
DRAM yêu cu chu k làm ti.
1.2.1. Cu trúc và nguyên tc làm vic ca b nh ROM
Hình 1.5 mô t nguyên tc cu to ca b nh PROM. Trong hình v ma trn nh bao
gm 4 hàng và 8 ct. Ti mt thi đim tng ng vi trng thái hai ngõ vào A1A0 s có 1 trong
4 hàng mang trng thái 0. Trng thái ca 8 ct s tu thuc vic ni hay không ni hàng và ct
tng ng bng diode. Tng ng vi đim ni trng thái ca ct s bng 0, không ni là 1. ng
vi trng thái ca ngõ vào A2 b multiplex s chn 4 ct T3 – T0 hoc P3 – P0 cung cp ra các
đng D3 – D0. Nh vy b nh s bao gm 8 ô nh, mi ô nh cha 4 bit d liu. ng vi mt
trng thái ca A2A1A0 s có mt ô nh đc chn.
+Vcc
T3 P3 T2 P2 T1 P1 T0 P0
D3 D2 D1 D0
A0
A1
A2
Gii
mã đa
ch
Multiplex
Hình 1.5: Nguyên tc cu to ca b nh ROM.
Mi loi b nh ROM s có cách kt ni các đim ca ma trn nh khác nhau nh trên
hình 1.6. Mask ROM có các đim ca ma trn nh đc kt ni ngay khi sn xut. B nh PROM
kt ni các đim ma trn nh bng các diode và các cu chì mnh, khi lp trình cn cung cp dòng
đin đ ln đ làm đt các cu chì ti các đim mun lu tr các bit 1. i vi các b nh
EPROM và EEPROM các đim ma trn nh đc kt ni bng các transistor MOS, khi lp trình
cn cung cp đin trng ca đin áp cao đ các ht him đ nng lng chuyn qua bán dn cc
cng, kênh dn mt kh nng dn đin, đim ma trn gi bit 1. Nu mun xoá các bit 1 đã ghi có
5
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
th dùng đin trng đin áp cao (EEPROM) hoc nng lng cung cp bng tia cc tím
(EPROM) đ các đin t t do tr v kênh dn.
W
B
W
B
1
W
B
W
B
W
B
0
V
D
W
B
G
N
Diode MOS ROM MOS ROM
Hình 1.7: Ni các đim ma trn nh ca các loi ROM.
Ngoài các tín hiu đa ch và điu khin các b nh ROM còn có các tín hiu điu khin,
hình 1.8 mô t các tín hiu ca EPROM 2764 trong đó:
A12 – A0 : Các đng đa ch.
D7 – D0 : Các đng d liu.
CE (Chip Enable): Tín hiu chn mch, tín hiu này không tích cc BUS d liu s trng thái
tr kháng cao.
OE (Output Enale): Tín hiu cho phép xut cho phép b đm d liu ngõ ra đ cung cp d liu t
bên trong ra ngoài các đng D7 – D0.
VPP : Ngõ vào đin áp cao cung cp ngun lp trình cho EPROM.
PGM: Ngõ vào cung cp xung lp trình cho EPROM.
U1
2764
10
9
8
7
6
5
4
3
25
24
21
23
2
11
12
13
15
16
17
18
19
22
27
1
20
A
0
A
1
A
2
A
3
A
4
A
5
A
6
A
7
A
8
A
9
A
10
A
11
A
12
D0
D1
D2
D3
D4
D5
D6
D7
OE
PGM
VPP
CE
Hình 1.8: Các tín hiu EPROM 2764.
6
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
1.2.2. Cu trúc và nguyên tc làm vic ca b nh RAM
Hình 1.9: Cu to mt bit nh SRAM.
Hình 1.9 mô t cu to ca mt bit nh SRAM, trong s đ khi cp ngun mt trong hai
transistor M1 hoc M2 dn, gi s M2 dn Q = 0 nên M1 không dn, lúc này các đng BL và
BL\ s đc cung cp ti mch khuch đi đc đ cung cp d liu mc 0 khi đc chn. ghi
mt d liu, chn bit nh bng cách cung cp mc 1 ti WL làm các transistor M3 và M4 dn,
cung cp mc 1 ti đng BL (BL\ = 0) làm M2 tt, M1 dn, bit nh s lu tr d liu 1.
Ngoài tín hiu chn mch CE cho phép xut d liu OE nh b nh EPROM, các b nh
SRAM còn có thêm tín hiu cho phép ghi WE, ch ghi tín hiu này tích cc d liu mi đc lu
tr vào b nh.
Cu to mt bit nh DRAM mt transistor mô t trên hình 1.10. ghi d liu ti bit nh
này cn cung cp mc 1 ti WWL và cung cp d liu ghi ti BL1, transistor BL1 s dn, đin áp
s đc np cho t Cs. Khi đc cp mc 1 ti RWL làm M3 dn, khi Cs gi mc 1 M2 dn ngõ ra
BL2 tng ng vi mc 0 và mch khuch đi đc s cp ra ngoài mc 1.
M
3
R
L
R
L
V
D
WL
Q Q
M
1
M
2
M
4
BL BL
WWL
BL
1
M
1
X
M
3
M
2
C
S
BL
2
RWL
V
D
D
V
D
D
2
V
T
D
V
V
D
D
2
V
T
B
L 2
B
L 1
X
R
WL
WWL
Hình 1.10: Cu to bit nh DRAM.
1.2.3.
T chc b nh
Nh đã mô t trên, b nh lu tr các d liu theo các đa ch duy nht, trên hình 1.11
7
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
tng ng vi trng thái 1 đng Si = 0 mt ô nh s đc chn. gim bt s tín hiu chn
phi cung cp có th dùng b gii mã đa ch, nu cn N tín hiu cho vic chn N ô nh ch cn
cung cp K đng đa ch (K = logN).
Word 0
Word 1
Word 2
Word
N
-2
Word
N
-1
T bào
N
h
M
bits
M
bits
S
0
S
1
S
2
S
N
-2
A
0
A
1
A
K
-1
K
=
log
2
N
S
N
-1
Word 0
Word 1
Word 2
Word
N
-2
Word
N
-1
T bào
nh
S
0
Vào - Ra
(
M
bits)
Vào - Ra
(
M
bits)
Hình 1.11: T chc lu tr các bit trong b nh.
Vi cu trúc trên vi dung lng nh ln, ma trn nh s mt đi xng (nhiu hàng, ít
ct), đ ma trn nh đi xng có th s dng thêm b gii mã ct nh hình 1.12. Tng ng vi
mt trng thái ca các đa ch ct s chn đc mt nhóm ct duy nht cung cp d liu ra bên
ngoài.
Row Decoder
Bit line
2
L 2 K
Word line
A
K
A
K 11
A
L 21
A
0
M.2
K
A
K 21
Sense amplifiers / Drivers
Column decoder
Input-Output
(M bits)
Storage cel
l
Selects
word
Hình 1.12: T chc các khi chc nng trong b nh.
Khi CPU mun truy cp (đc ghi) d liu t b nh, trc ht nó phi cung cp đa ch đ
xác đnh ti v trí cn truy cp, sau đó cn cung cp tín hiu chn mch (CE) cho phép b nh
8
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
hot đng, tip theo trong ch đ đc CPU cn cung cp tín hiu OE và nhn d liu t BUS d
liu, trong ch đ ghi CPU cn cp d liu ti BUS d liu và tín hiu cho phép ghi WE.
Các đi lng đc trng cho b nh là dung lng và thi gian truy xut b nh
. Thi
gian tru
h có
A đn
Hình 1.13: Gii mã kt ni 4 b nh trong h thng vi x lý.
B nh s dn t là byte, các
IC nh
u, hình 1.13 s dng b gii
mã 2 ra
đa ch riêng bit vùng đa ch
cho tn
: 000000H 3FFFFH
y xut b nh là khon thi gian t lúc b nh nhn đc đa ch và các tín hiu điu
khin cho đn khi đa đc d liu ra tuyn d liu trong ch đ đc và lu xong d liu vào các
bit nh trong ch đ ghi. B nh có thi gian truy xut càng nh thì hot đng càng nhanh.
Dung lng b nh tu thuc vào s đng d liu và s đng đa ch ca nó. B n
g đa ch, D đng d liu s có dung lng 2
A
x D bit. B nh có dung lng càng ln thì
càng cha đc nhiu thông tin.
g trong h thng vi x lý thng t chc theo đn v truy xu
đc kt ni sao cho truyn d liu vi CPU theo bi s ca byte. Trong thc t, b nh
bán dn đc sn xut theo dng các linh kin có dung lng hn ch (t vài KB cho đn c vài
chc MB). Trong h thng vi x lý thng có ít nht hai loi b nh (ROM và RAM), mt khác
trong trng hp dung lng các IC b nh không đ đáp ng dung lng b nh ca h thng
khi thit k, nhà thit k phi ghép nhiu IC nh li. Các IC nh s s dng chung các BUS d
liu và đa ch, vì vy ti mt thi đim truy xut h thng phi đc kt ni sao cho ch có mt
IC nh đc chn, công vic này đc gi là gii mã đa ch b nh.
Vic gii mã đa ch có th thc hin theo nhiu cách khác nha
4 đ kt ni 4 IC nh 256 KB thành dung lng nh 1 MB.
Theo s đ kt ni, mi IC nh trong mch s có mt vùng
g IC nh trong hình 1.13 nh sau:
256KB đu tiên
256KB th hai : 400000H 7FFFFH
256KB th ba : 800000H BFFFFH và
256KB th t : C00000H FFFFFH.
8088
Minimum
Mode
A
17
A
0
:
D 7
D 0
:
M
EM
R
M
EMW
A
18
256 KB
#3
A
1
7
A
0
:
D
7
D 0
:
R
D
WR
C
S
A
19
256 KB
#2
A
1
7
A
0
:
D 7
D
0
:
R
D
WR
C
S
256 KB
#1
A
1
7
A
0
:
D 7
D
0
:
R
D
WR
C
S
1
7
A
A
:
0
256 KB
#4
D 7
D
:
0
R
D
WR
C
S
I
1
O
3
I 0
O
2
O 1
O
0
9
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
Công vi IC nh trong mt h thng vi xc xác đnh vùng đa ch cho t ng lý đc gi là
lp bn
1.3. ÀO RA TRONG H THNG VI X LÝ
.3.1. Cu trúc và nguyên tc làm vic ca cng vào ra
hit b ngoi vi khác nhau, các thit
trên tt c các đng d liu vi
ng cng có các
it b
ó các tín hiu bt tay vi
it b
.3.2.
Mch ba trng thái và mch cài
bn nht thng đc s dng trong tt c các loi
Vi các cng ba trng thái, d liu s đc truyn qua nó khi tín hiu cho phép OC trng
cng cài s gi nguyên trng thái logic ngõ ra ca nó khi tín hiu
đ b nh.
V
1
Trong h thng vi x lý, thông thng s dng nhiu t
b ngoi vi này s dng đ giao tip vi ngi s dng, hoc là các thit b chp hành s điu
khin ca h thng vi x lý trong mt ng dng nào đó. điu khin các thit b ngoi vi hot
đng, CPU cn truyn d liu vi chúng. CPU s dng chung mt BUS d liu đ truyn d liu
vi tt c các b nh và thit b ngoi vi. Các cng vào ra đóng vai trò là các cng ngn cách gia
các thit b ngoi vi và BUS d liu, các cng này ch m khi đc CPU cung cp đúng đa ch
ca nó, và các cng còn li có đa ch khác s không đc m.
CPU luôn s dng các lnh truyn đng thi nhiu bit
bên ngoài. Tuy nhiên các cng vào ra sau khi nhn d liu t CPU có th truyn đng thi tt c
các bit hoc có th truyn tng bit ti thit b. Các cng vào ra truyn đng thi tt c các bit đc
gi là các cng vào ra song song, các cng truyn tng bit là cng vào ra ni tip. Các cng vào ra
ni tip s có li đim là s lng dây dn truyn d liu s ít hn loi song song, và tránh đc
nhiu gia các đng truyn song song khi d liu đc truyn vi tc đ cao.
Ngoài ra có nhng loi thit b truyn nhn d liu di dng s 0, 1. Nh
th truyn nhn d liu di dng tín hiu thay đi liên tc theo thi gian, khi đó cn phi s
dng các ADC cho chiu nhn d liu và DAC cho chiu truyn d liu.
Các vào ra cng có th truyn d liu mt cách th đng, hoc c
th đ chc chn là thit b đã đc kt ni vi vào ra và d liu đc thit b truyn nhn vi
vào ra.
1
Mch ba trng thái là cu trúc s c
cng vào ra ca h thng vi x lý. Cu to ca cng ba trng thái đc mô t trên hình 1.14.
D
Q
G
Cng đm 3 trng thái
Cng cài
Hình 1.14: Các cng vào ra s c bn
OC
thái tích cc, vì vy tín hiu cho phép này thng đc cp t b gii mã đa ch, nh trên hình
1.15 cng đm 3 trng thái s m khi đa ch cung co t CPU là FFFFH = 1111 1111 1111
1111B. Khi tín hiu cho phép không tích cc, ngõ ra ca cng đm s trng thái tr kháng cao,
ngõ vào s không nh hng ti ngõ ra, nh vy BUS d liu s đc ngn cách vi thit b ngoi
vi mà nó điu khin, lúc này CPU có th s BUS d liu đ liên lc vi mt thit b khác, tng
ng vi mt đa ch khác.
Khác vi cng đm,
10
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
cho phép ht tích cc (nó không chuyn qua trng thái tr kháng cao). Các cng cài s thích hp
vi các thit b ra cn gi nguyên logic điu khin sau tác đng ca lnh, ví d bóng đèn LED ni
vi cng đm s tt khi CPU thc hin xong lnh truyn d liu, vì CPU ngng cp đa ch làm
ngõ ra cng đm chuyn qua trng thái tr kháng cao. Nu s dng làm cng vào, ngõ ra cng cài
cn đc ni tip vi mt cng đm trc khi ni ti BUS d liu.
1.3.3. Các cng vào ra đn gin
ác mch tích hp ca các cng đm cài c bn, các mch vào
ào D ti
u
ó
c khái nim:
c hin đc tt c các chc nng ca các vi mch s khác
• p đ vi x lý thc hin đc mt chc
• t chui các lnh đc sp xp theo gii thut ca bài toán hay
• ot đng đc cn có kt ni phn cng đúng và chng trình phn
• lý bao gm: CPU, b nh và vào ra. CPU thc hin các chng trình
• n,
Các cng vào ra đn gin là c
ra mt chiu c bn thông dng nht là các IC 74244 và 74373 vi cu to nh hình 1.15.
IC 74244 đc tích hp tám cng đm c bn, nó s truyn đng thi 8 bit s t các ngõ v
các ngõ ra Q khi OC tích cc mc 0. Vi mch cài mt chiu 74373 d liu vào các ngõ D s
đc gi các ngõ ra Q ca các Flip – Flop, khi OC tích cc mc thp d liu s cung cp ti các
ngõ ra Q. Nh vy khi s dng làm ngõ vào, CPU cn cung cp đa ch đ tích cc OC, còn khi s
dng làm cng ra có th tác đng tích cc ti chân G, còn OC có th luôn cung cp mc 0.
IC74374 khác 74373 ch tín hiu cho phép G s tác đng cnh lên (thay vì tác đng mc cao).
Mt s thit b vào ra cn truyn d liu theo c hai chiu vi CPU, IC đm cài hai chi
74245 thng đc s dng cho các ng dng này. Vi IC 74245 mi đng d liu s bao gm
hai cng đm ni ngc chiu, tín hiu DIR s quyt đnh chiu truyn d liu nh mô t trên
hình 1.16.
T m tt ni dung hc tp:
Trong chng này cn nh cá
• Vi x lý là mt vi mch s có th th
bng cách thc hin tun t các chc nng s c bn.
Mt lnh ca b vi x lý là chui các bit 0, 1 cung c
nng s c bn ca nó.
Mt chng trình vi x lý là m
công vic cn thc hin.
có h thng vi x lý h
mm hot đng đúng.
Phn cng h thng v x
đ điu khin hot đng ca toàn b h thng. B nh là ni lu tr các chng trình, là ni
khai báo các hng và bin trong chng trình. Vào ra đ giao tip vi các thit b bên ngoài.
Các khi trong h thng vi x lý đc kt ni vi nhau bng mt lot các đng dây dn đi
mi đng này đc gi là mt tín hiu ca h thng, các tín hiu đc chia thành 03 nhóm
D0
D7
Q0
74LS244
Q7
OC
.
.
.
.
.
.
.
.
.
G
D
Q
.
.
.
74LS373
D0
Q0
OC
Hình 1.15: Các cng vào ra mt chiu c bn.
G
11
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
chính gi là ba BUS: BUS đa ch, BUS d liu và BUS điu khin. BUS d liu đ truyn d
liu gia các khi. CPU s dng mt BUS d liu đ truyn d liu vi mi ni nên nó cn
BUS đa ch đ xác đnh v trí nào s truyn d liu vi nó. BUS điu khin s xác đnh các
ch đ làm vic khác nhau ca h thng.
B nh bán dn có ba ch đ làm vic ch
• ính là đc, ghi và không chn. Khi không chn các
• hi bng các logic điu khin thông thng ca vi x lý, b nh
• in mch đin sao cho ng vi mt đa ch mà CPU cung cp
• truyn d liu ngõ vào ti ngõ ra khi có tín hiu chn mch. Khi không
• b đm cài đc s dng làm các cng vào ra đ cho phép thit b truyn d liu vi CPU
• ch sao cho ng vi mt đa ch mà
ÀI TP:
ài 1:
Cho bit đa ch bt đu ca mt vùng nh Ram là 00000H và dung lng ca vùng nh
Bài 2 t, v bn đ b nh
Bài 3: h sau:
BUS đa ch và d liu ca b nh trng thái tr kháng cao. Khi mun đc b nh cn tác
đng tín hiu chn b nh, cung cp đa ch xác đnh ô nh s đc trong b nh, cung cp tín
hiu yêu cu đc và b nh s cung cp d liu ra BUS d liu. Khi mun ghi b nh cng
cn cung cp tín hiu chn b nh, cung cp đa ch ô nh s ghi, cung cp d liu cn ghi và
cung cp tín hiu yêu cu ghi.
Các b nh RAM có th đc g
ROM ch có th đc bng các logic điu khin thông thng, mun ghi d liu vào nó cn có
các ch đ điu khin đc bit.
Gii mã đa ch b nh là thc h
ch có mt vi mch nh duy nht đc cung cp tín hiu chn mch, các vi mch nh còn li
s không đc chn và có các BUS trng thái tr kháng cao và chúng s không kt ni v
đin vi h thng.
Các b đm và cài s
đc chn các b đm s có ngõ ra tr kháng cao, còn các b cài s gi li trng thái ra trc
đó.
Các
ch khi CPU cp đúng đa ch đ chn nó, trong khi các cng không đúng đa ch s không
đc chn và chúng không kt ni v mt đin vi CPU.
Tng t nh gii mã b nh, gii mã vào ra s là mt m
CPU cung cp ch có mt cng vào ra duy nht đc chn.
B
B
này là 641KB. Hãy xác đnh đa ch vt lý cui cùng ca vùng nh này.
: Thit k vùng nh RAM 1MB x 8bit t các b nh RAM 256K x 4 bi
và cho bit vùng đa ch mà các b nh đc chn.
Thc hin mch gii mã đa ch cho các bn đ b n
EPROM
(
256KB
)
EPROM
(
256KB
)
SRAM
(
256KB
)
SRAM
(
256KB
)
EPROM
(
256KB
)
SRAM (512KB)
EPROM
(
256KB
)
EPROM
(
256KB
)
SRAM (512KB)
EPROM
(
256KB
)
SRAM
(
128KB
)
SRAM
(
128KB
)
SRAM (256KB)
EPROM (512KB)
SRAM
(
128KB
)
SRAM (256KB)
SRAM
(
128KB
)
EPROM (512KB)
SRAM (256KB)
SRAM (256KB)
SRAM
(
128KB
)
EPROM
(
512KB
)
12
OPEN.PTIT.EDU.VN
Chng 1: Kin trúc ca h thng vi x lý
Cho bit vùng đa ch ca tng b nh trong các bn đ (các b nh đu có 8 bit d liu).
Bài 4: T
0H.
ai cng vào s dng
hc hin cng ra điu khin tám LED đn có đa ch là F000H.
Bài 5: Thc hin cng vào nhn d liu t 8 phím nhn có đa ch là F00
Bài 6: Thc hin mch gii mã đa ch vào ra trong h thng có 2 cng ra và h
các b đm cài 8 bit.
13
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
CHNG 2: NGUYÊN TC LÀM VIC CA B VI X LÝ
H INTEL 80X86
Gii thiu:
Ni dung chng này trc ht gii thiu v cu trúc ca b vi x lý 80286 và chc nng các
khi mch ca nó nh: khi giao tip BUS (BU) tác đng mi tín hiu đ giao tip vi th gii
bên ngoài., khi gii mã lnh (IU) thc hin chc nng to ra các tín hiu điu khin các khi
mch trong CPU hot đng đ thc hin lnh, khi EU thc hin các lnh, khi AU to ra đa ch
đ giao tip vi b nh và vào ra.
có th thc hin đc các chng trình hp ng vit cho vi x lý h Intel (chng 3), sinh
viên cn nh các thanh ghi ca 80286, và các chc nng mà chúng đm nhn bao gm: các thanh
ghi đa nng, các thanh ghi đon, thanh ghi c trng thái và các thanh ghi đc bit. c bit chú ý
ti s tác đng ca các c trng thái trong thanh ghi c.
hiu đc nguyên lý hot đng ca h thng vi x lý cn đc bit quan tâm ti các chu k
máy ca CPU. Trong bn chu k máy: đc, ghi b nh và đc ghi vào ra cn chú ý ti thi đim
tác đng ca các tín hiu trong h thng, và chc nng ca chúng s dng làm gì trong h thng.
Ngoài ra cng cn chú ý ti trng thái ca các c các thanh ghi ca 80286 sau khi khi đng
và c ch ngt ca CPU. C ch ngt đc s dng rt ph bin trong các h thng vi x lý trong
các ng dng thc t, đc bit là đi vi các h thng điu khin hot đông ca máy móc thit b.
Các c ch qun lý b nh o rt quan trng khi lp trình h thng chy trong các môi trng
đa nhim, tuy nhiên đi vi các chc nng ng dng nh s cha cn chú ý ti các c ch này.
Phn cui cùng ca chng gii thiu v các b vi x lý th h tip theo ca 80286 vi các
chc nng tiên tin nh: b nh đm, c ch pipeline, c ch siêu phân lung …
2.1. CU TRÚC CA B VI X LÝ 80286 INTEL
Hình 2.1: S đ khi b vi x lý 80286
EXECUTION UNIT (EU)
ADDRESS UNIT (AU)
INSTRUCTION
UNIT (IU)
INSTRUCTION
DECODER
3 DECODER
INSTRUCTION
QUEUE
ADDRESS
LATCH AND DRIVER
PREFETCH
PROCESSOR
EXTENTION
INTERFACE
BUS CONTROL
DATA
TRANSCEIVERS
6 BYTE
PREFETCH
QUEUE
BUS
UNIT (BU)
PHYSICAL
ADDRESS
ADDER
SEGMENT
BASE
SEGMENT
SIZE
SEGMENT
LIMIT
CHECK
OFFSET
ADDER
REGISTER
LIMIT
CHECK
ALU
CONTROL
14
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
2.1.1. S đ khi ca vi x lý 80286 Intel
B vi x lý 80286 đc cu to t 4 khi chc nng có th làm vic song song:
- Khi giao tip BUS : BU (Bus Unit).
- Khi gii mã lnh : IU (Instruction Unit)
- Khi thc hin lnh : EU (Execution Unit)
- Khi to đa ch : AU (Address Unit)
2.1.2. Khi to đa ch (AU)
AU đm bo vic qun lý, bo v b nh, tu theo ch đ đa ch các chng trình s s dng
các loi đa ch logic khác nhau, AU có nhim v chuyn các đa ch logic qun lý trong chng
trình phn mm thành đa ch vt lý cung cp ti BU đ giao tip vi bên ngoài. a ch vt lý là
đa ch cung cp trc tip cho b nh và vào ra, còn đa ch logic là các giá tr đc chng trình
qun lý s dng đ to ra đa ch vt lý, đó chính là các đa ch đon (segment) và đa ch đ di
(offset).
2.1.3. Khi giao tip BUS (BU)
BU cung cp các tín hiu đa ch, d liu và điu khin đ truy cp các b nh và vào ra. Khi
này cng cho phép giao tip vi b đng x lý hoc các b vi x lý khác.
Chc nng quan trong nht ca BU là t đng kích hot quá trình ly lnh t b nh bng b
tin truy cp lnh (Prefetch). BU còn có chc nng cho phép quá trình ly lnh t b nh thc
hin song song vi các quá trình khác nh hàng đi lnh 6 byte (Prefetch queue).
Các đa ch mà AU to ra cung cp ti các b cài (Address Latch) và s đc đnh thi cung
cp ra bên ngoài ti các thi đim thích hp. D liu truyn vi CPU s đc chuyn qua các
cng đm hai chiu (Data Transceivers).
2.1.4. Khi gii mã lnh (IU)
Lnh đc BU ly vào hàng đi, trong khi IU ly lnh đã ly trc đó gii mã và chuyn ti
hàng đi lnh đã gii mã (Decoded Istruction queue) đ EU thc hin.
Vi chc nng gii mã lnh, các lnh ngoài b nh có th mã hoá ngn nht có th, IU s to
ra các tín hiu điu khin cn thit t các mã lnh này. Bng cách s dng h gii mã lnh, dung
lng nh ca h thng s yu cu ít hn, thi gian ly lnh s đc gim ngn.
2.1.5. Khi thc hin lnh (EU)
EU thc hin các lnh x lý d liu mà IU đã gii mã, nó giao tip d liu vi bên ngoài
thông qua BU.
Các khi chc nng ca EU bao gm: B điu khin (Control) thc hin vic điu khin vic
thc hin các lnh trong EU. ALU là khi thc hin các phép toán s hc logic, cu trúc ca ALU
thông thng có hai ngõ vào nhn hai toán hng và mt ngõ ra cung cp kt qu.
Các thanh ghi s dng làm ni lu tr d liu s dng trong các phép tính và các giá tr đa
ch cho phép EU ly các toán hng t bên ngoài.
2.2. CÁC THANH GHI CA B VI X LÝ 80286
Các thanh ghi là mt b phn rt quan trng trong mt CPU. Chúng là mt s ít các ô nh
có tc đ truy xut rt nhanh, cách đánh đa ch đn gin đ CPU có th truy xut d liu mt
15
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
cách nhanh chóng. CPU có càng nhiu thanh ghi, thì tc đ thc hin mt chng trình càng cao,
do gim đc thi gian truy xut các hng, bin ngoài b nh. Gim đc s byte lnh do không
phi cung cp đa ch các d liu toán hng. Nhng tt nhiên khi s lng thanh ghi quá ln thì
vic truy cp chúng cng tr nên phc tp nh đi vi các ô nh.
d dàng truy xut, các thanh ghi đc chia ra các nhóm vi các chc nng riêng bit nào
đó. Các hãng sn xut khác nhau đa ra các tên gi các thanh ghi khác nhau. 80286 có các nhóm
thanh ghi: Các thanh ghi đa nng, các thanh ghi qun lý mng, các thanh ghi điu khin và trng
thái và các thanh ghi đc bit.
2.2.1. Các thanh ghi đa nng
Các thanh ghi đa nng có th s dng cho nhiu chc nng khác nhau. Thông thng các
thanh ghi đa nng trc ht đm nhim chc nng cha d liu, ngoài ra các thanh ghi này có th
s dng cho các chc nng khác nh: cha đa ch, làm b đm,
Intel 80286 có tám thanh ghi đa nng 16 bit, các thanh ghi này đu có th s dng làm thanh
ghi cha d liu 16 bit nh mô t trên hình 2.2.
Các thanh ghi AX, BX, CX và DX có th chia thành hai phn 8 bit riêng bit s dng cho
vic lu tr các d liu 8 bit: AH, AL, BH, BL, CH, CL, DH, DL.
Thanh ghi AX (Accumulator) còn mang chc nng thanh ghi cha trong các lnh nhân và
chia, trong các lnh này thanh ghi AX gi mt toán hng và kt qu cui cùng. Ví d trong lnh
MUL BX d liu trong thanh ghi AX s nhân vi d liu trong thanh ghi BX và kt qu cha
trong thanh ghi DX và AX.
Thanh ghi BX (base) trc ht có th s dng làm thanh ghi gi đa ch b nh, ví d trong
lnh MOV DH,[BX] d liu ti ô nh có đa ch gi trong BX s chuyn vào thanh ghi DH. BX
còn gi chc nng thanh ghi con tr c s, khi s dng trong chc nng này thanh ghi BX gi giá
tr đa ch c s, đa ch truy cp b nh s bng giá tr cha trong BX cng vi mt giá tr ch th
trong lnh. Ví d trong lnh MOV DL,[BX+03] d liu trong b nh t đa ch [BX+03] đc di
chuyn vào trong thanh ghi DL.
Thanh ghi BX còn s dng trong ch đ đa ch tng đi ch s
c s, trong lnh MOV CH,[BX+DI+08] d liu ti ô nh có đa ch BX+DI+08 đc ly vào
thanh ghi CH.
Hình 2.2: Các thanh ghi đa nng ca b vi x lý Intel 80286.
Thanh ghi CX (Counter) đc s dng làm b đm s ln lp trong các cu trúc lp. Ví d
lnh LOOP L1 s gim CX đi 1, nu CX ≠ 0 điu khin chng trình s chuyn ti nhãn L1.
16
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
Thanh ghi DX (data) là thanh ghi cha d liu cho các lnh nhân chia 16 bit, nh trong lnh
MUL BX thanh ghi DX cha 16 phn cao ca kt qu lnh nhân. Ngoài ra thanh ghi DX còn là
thanh ghi duy nht lu tr đa ch cng trong các lnh vào ra. Ví d trong lnh IN CL,[DX] d
liu ti cng vào ra có đa ch cha trong DX s đc chuyn vào thanh ghi CL.
Thanh ghi ch s ngun SI (Source Index) và thanh ghi ch s đích DI (Destination Index), s
dng cho các lnh x lý chui d liu. Ví d lnh MOVSB d liu trong b nh ti đa ch gi
trong SI s chuyn ti đa ch gi trong DI, sau đó SI và DI s t đng đc tng hoc gim chun
b cho ln chuyn k tip. SI và DI còn s dng làm thanh ghi đa ch và đa ch c s (ging nh
BX) và làm thanh ghi ch s đa ch cng thêm trong ch đ tng đi ch s. Ví d lnh MOV
DL,[BP+SI+03] ly d liu ti ô nh có đa ch BP+SI+03 vào thanh ghi DL.
Thanh ghi con tr c s BP (Base Pointer) gi vai trò làm thanh ghi đa ch trong các ch đ
truy cp b nh ging nh thanh ghi BX.
Thanh ghi con tr ngn xp SP (Stack Pointer) đóng vai trò gi đa ch đnh ngn xp trong
các lnh truy cp ti ngn xp nh: lnh np ngn xp PUSH, lnh ly d liu khi ngn xp POP,
lnh gi chng trình con CALL
Ngn xp là vùng nh đc truy cp theo nguyên tc vào trc ra sau FILO (Fist IN Last Out)
nh vào c ch t đng thay đi ca SP nh mô t trên hình 2.3. Khi khi đng SP gi đa ch ca
đnh ngn xp, tr ti giá tr cui cùng cha trong ngn xp (LastValue). Sau mi lnh PUSH giá
tr d liu s đc np vào đnh ngn xp và SP t đng gim đi đ gi đa ch giá tr mi này.
Trên hình 2.3 sau 3 lnh PUSH thanh ghi SP s gi đa ch ô nh cha giá tr ca thanh ghi CX.
lastvalue
????
????
????
????
????
????
????
????
đ
a ch cao
đ
a ch th
p
← SP
trc các l
nh PUSH
lastvalue
ax
bx
cx
????
????
????
????
????
sau các l
nh PUSH
PUSH AX
PUSH BX
PUSH CX
←
SP
đ
a ch cao
đ
a ch th
p
Hình 2.3: Thao tác np ngn xp và s thay đi ca thanh ghi SP
2.2.2. Các thanh qun lý đon
Các thanh ghi qun lý đon ca Intel 80286 chia thành hai phn: phn cha b chn đon và
phn cha b mô t đon. Phn cha b chn đon (còn gi là thanh ghi chn đon) có th np
bng chng trình nên thng đc gi là phn h. Phn cha b mô t đon (còn gi là các
thanh ghi mô t đon) đc CPU np t đng, không th truy cp bng chng trình nên thng
đc gi là phn kín. Trong ch đ bo v (Protect Mode) kích thc ca mt đon thay đi t 1
đn 5 GB, còn trong ch đ thc kích thc cc đi ca mt đon là 64KB. Ti mt thi đim s
có 4 đon nh xác đnh bi 4 thanh ghi chn đon 16 bit CS, SS, DS và ES trong đó:
17
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
+ Thanh ghi đon mã lnh (CS - Code Segment) cha đa ch đon mã lnh ca chng trình
hin hành.
+ Thanh ghi đon ngn xp (SS - Stack Segment) cha đa ch đon vùng nh ngn xp.
+ Các thanh ghi đon d liu (DS - Data Segment), đon m rng (ES - Extra Segment) cha
đa ch ca các đon d liu s dng trong chng trình.
Trong ch đ đa ch thc CPU to ra đa ch vt lý truy cp b nh bng các đa ch logic là
đa ch đon (segment) và đa ch đ di (offset).
Trong đó: đa ch vt lý 20 bit = đa ch đon 16 bit x 10H + đa ch đ di 16 bit.
2.2.3. Thanh ghi c trng thái
Thanh ghi c còn đc gi là thanh ghi mã trng thái CCR (Condition Code Register) bao
gm các bit đc lp. Mi bit ch có hai trng thái 0 hoc 1 đc gi là các c. Các c rt ít khi
tác đng ln nhau, chúng ch tác đng mt cách đc lp tùy theo trng thái ca các phép tính mà
ALU thc hin. Trng thái các c là c s đ CPU thc hin các quyt đnh, nu tha điu kin
chng trình thc hin theo hng này, còn ngc li s theo mt hng khác, to ra s r nhánh
cho các chng trình phù hp vi bài toán thc t. Ngoài ra còn có các c s dng cho vic điu
khin các ch đ hot đng khác nhau ca CPU, các c này thông thng đc lp xoá bng các
lnh riêng. Thanh ghi c ca 80286 bao gm 16 bit vi v trí các bit nh mô t trên hình 2.5.
* * P A * Z S T I C D O PL * IO NT
D15 D0
Hình 2.5: Cu to thanh ghi c.
Các c trng thái: Các c trng thái tác đng theo trng thái ca kt qu các phép tính mà CPU
thc hin, các CPU thông thng có 6 c trng thái sau:
C nh CF (Carry Flag)
C nh đc s dng làm bit d tr khi kt qu các phép tính mà ALU thc hin vt ra
ngoài gii hn lu tr cho phép ca thanh cha. Ví d khi s dng các thanh ghi 8 bit đ cng
hai s 8 bit, kt qu có th là 9 bit và c C s gi bit th 9. Tng t khi cng hai s 16 bit c C
s gi bit th 17 ca kt qu.
C nh cng đc thit lp mc 1 khi ALU thc hin phép tr, gim hoc so sánh có kt qu
âm. Tc là c CF =1 khi s b tr nh hn s tr.
Ngoài ra c nh còn đc s dng nh bit thêm trong các lnh quay dch, ví d khi dch trái bit
MSB s b rt ra ngoài, c C s gi ly bit đó.
C chn l PF (Parity Flag)
C chn l đc s dng thông báo s các bit 1 trong kt qu ca phép tính logic là chn hay
l, khi PF = 1 s bit 1 trong kt qu là mt s chn. C chn l thng đc s dng trong các
chng trình truyn các d liu ni tip, trng thái ca c có th đc phát ra đ bên thu có th
kim tra xem d liu nhn đc đúng hay sai. Chú ý là c chn l không tác đng khi ALU thc
hin các phép tính s hc.
C du SF ( Sign Flag)
Trong h thng vi x lý có hai cách biu din mt s: Cách th nht nó dùng tt c các bit
ca mt thanh ghi đ biu din mt s dng. Ví d mt thanh ghi 8 bit có th biu din các s
thp phân dng t 1 ti 255. Cách th hai CPU s dng bit trng s cao nht đ làm bit du. Ví
18
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
d nh thanh ghi 8 bit thì bit D7 s là bit du. Khi D7 mc 0 thì các bit D0 D6 gi mt s nh
phân dng nm trong khong 0 ti 127. Khi D7=1 thì thanh ghi s gi s nh phân âm trong
khong –128 ti -1
T hp nh phân t 0000 0000 0111 1111 biu din các s t 0 127 t hp tip theo 1000
0000 trong s có du đc xem nh là -128 và tip theo 1000 0001 = -127. Khi tip tc đm lên
ti t hp 1111 1111 = -1.
C du S s báo khi du thay đi, c du =0 khi kt qu phép tính trong b cha là s dng
(bit D7=0). Nu bit D7=1 kt qu là mt s âm 7 bit thì SF=1. Da vào c này mà các chng
trình này s có cách tính thích hp vi các s có du.
C tràn OF (Overflow Flag)
C tràn OF đc dùng trong các phép tính s hc có du, nó ch th kt qu là mt s dng
ln hn hoc là mt s dng nh hn kh nng cha ca thanh ghi cha kt qu. Ví d khi cng
hai s dng trong hai thanh ghi 8 bit, CFs đc thit lp mc 1 khi có s tràn bit 1 t D6 sang
D7, tc là khi du ca s 7 bit thay đi t (+) sang (-) mc dù kt qu phi là mt s dng, nh
vy kt qu này cn phi đc bin din bng mt s 9 bit. C OF luôn đc thit lp khi có tràn,
vì vy cn phi kim tra nó tu theo trng hp só biu din là có du hay không có du, đ nó
không nh hng gì đn chng trình. C tràn s b xóa khi D7 tr v mc 0.
C ZERO ZF (Zero Flag)
Khi ALU thc hin các phép tính có kt qu trong thanh ghi cha bng 0, lúc đó ZF s đc
thit lp lên mc 1. Còn ngc li ZF=0. Thông thng ZF đ thông báo trng thái so sánh bng,
kt qu ca phép tr = 0 , các phép logic = 0. Khi thc hin các phép cng, mc dù kt qu có d
ra bit th 9 nhng nu thanh cha có giá tr 0 thì ZF vn = 1. Ví d cng FFH+01H kt qu là
100H thì s 1 c CF còn thanh cha có giá tr 00 do đó ZF =1.
C Z đc bit tin li cho các vòng lp s dng b đm xung. Vòng lp có th gim mt
thanh ghi nào đó, cho đn khi nó tr v 0 thì ngng. Vi các công dng nh trên ZF cùng vi CF
đc s dng rt nhiu trong các chng trình.
C nh ph AF (Auxiliary Carry Flag )
Không ging nh CF, đóng vai trò bit th 9 ca thanh cha, c ging c tràn nhiu hn, c
AF s đc thit lp mc 1 khi có s tràn bit 1 t D3 qua D4 s dng cho các phép tính BCD.
Tám bit ca b cha bao gm 2 nibble riêng bit, các bit 7-4 gi là nibble trng s ln MS(Most
Significant) và 3-0 là nibble trong s nh LS(Least Significant). Mi nibble là mã s thp phân
hoc HEXA đn. Khi thc hin các phép tính vi s BCD (tc s thp phân) cn phi ghi nhn
s nh ca 4 bit thp trong đn v 8 bit. Ta gi s nh này là s na nh.
Các c điu khin: Các c điu khin s dng đ xác đnh các ch đ hot đng khác nhau ca
CPU, Intel 80286 có các c điu khin sau:
C đnh hng DF (Direction Flag)
C này đc s dng đnh hng cho các lnh x lý chui d liu. Ví d nh di chuyn chui
t vùng nh này sang vùng nh khác, so sánh chui…. Khi thc hin CPU ln lt x lý tng
byte 1 trong chui. có đc các thao tác này CPU s dng các thanh ghi đa ch SI và DI và
sau mi ln x lý 1 byte nó t đng tng hoc gim các thanh ghi này. Vic tng hay gim SI và
DI cho phép x lý chui đc t di lên trên hay t trên xung di. Khi DF=1 các lnh x lý
chui s thc hin t đa ch cao đn đa ch thp, còn mc đnh DF = 0.
Trong mt s CPU các lnh x lý chui tng và gim đa ch khác nhau, ngha là cùng là di
chuyn chui nhng có mt lnh thc hin theo chiu tng đa ch, và mt lnh thc hin theo
chiu gim đa ch. Các CPU nh th s không có c đnh hng.
19
OPEN.PTIT.EDU.VN
Chng 2: Nguyên tc làm vic ca b vi x lý h Intel 80x86
C đnh hng có th thit lp bng lnh STD và xoá bng lnh CLD hoc x lý thông qua
ngn xp bng cách ct thanh ghi c vào ngn xp, x lý bit DF trong ngn xp sau đó lt tr li
thanh ghi c.
C ngt IF : (Interrupt Flag)
C ngt đc thit lp =1 bng lnh STI (Set Interrupt ) và xóa bng lnh CLI(Clear
Interrupt). Khi c ngt=1 cho phép CPU ghi nhn tín hiu yêu cu ngt t ngõ vào INTR, và thc
hin chng trình ngt. Khi c ngt =0, mc dù có tín hiu yêu cu, chng trình ngt s không
đc thc hin. Vi các yêu cu ngt không che NMI (Non-Mask able Interrupt) c ngt không
có ý ngha.
C by TF: (Trap Flag)
C by ch có th thay đi giá tr thông qua ngn xp, khi c by bng 1, CPU hot đng
ch đ chy tng bc đ g ri sa sai chng trình. C th là khi CPU thc hin xong mt lnh
nó chuyn qua chng trình con giám sát (Monitor), TF đc t đng ct vào ngn xp và TF
đc xoá v 0, các lnh ca chng trình con giám sát s đc thc hin. Chng trình con giám
sát đc thc hin bi ngi s dng đ kim tra li kt qu ca lnh va thc hin các ô nh,
các thanh ghi, các c. Khi kt thúc chng trình con giám sát, thanh ghi c đc phc hi, TF li
bng 1, điu khin đc quay v lnh tip theo ca chng trình chính. Và sau khi thc hin xong
lnh này, chng trình con giám sát li tip tc đc thc hin.
C nhim v lng nhau NT (Nested Tast)
NT cho bit lnh đang thc hin tin trin trong cùng mt nhim v hay s gây ra vic chuyn
nhim v. NT ch đc dùng trong ch đ bo v ca Intel 80286.
C ch th mc đc quyn vào ra (IOPL)
Hai bit này ch th mc đc quyn thp nht mà tác nhim đang thc hin cn có đ đc phép
thc hin các lnh vào ra. Hai bit này cng ch đc s dng trong ch đ bo v.
2.2.4. Các thanh ghi đc bit
Thanh ghi con tr lnh: (IP - Instruction Pointer) S dng trong vic cung cp đa ch đ di
(offset) ca vùng nh mã lnh. Sau khi ly vào mt lnh BIU s đi giá tr trong IP đ tr ti mã
lnh s thc hin trong chu k k tip. các lnh thông thng sau khi ly vào mt byte mã lnh
IP s t đng tng lên 1. các lnh nhy giá tr ca IP s đc xóa đi đ np mt giá tr mi, giá
tr mi này đc cung cp trong lnh nhy. Trong các lnh gi chng trình con trc khi xóa giá
tr c đ np giá tr mi giá tr c ca IP đc ct vào đnh ngn xp, và khi có lnh quay v nó s
đc phc hi. Khi phc v ngt quá trình bin đi IP cng thc hin tng t nh khi xy ra
lnh gi chng trình con.
Thanh ghi trng thái máy: Thanh ghi MSW 16 bit, trong đó s dng 4 bit nh mô t trên hình
2.6, các bit còn li d phòng cho th h k tip:
- TS (Task Set): là bit chuyn nhim v, bit này bng 1 xy ra vic chuyn nhim v.
- EM (Emulate Processor Extention): Cho phép mô phng b đng x lý toán hc.
- MP (Monitor Coprocesor Extention): Cho bit h thng có b đng x lý toán hc đang
làm vic.
- PE (Protect Mode Enable): Cho phép ch đ bo v, khi bit này đc lp 80286 chuyn
qua hoc đng ch đ bo v. Khi đã thit lp, ch khi RESET bit này mi đc xoá.
MP TS EM
PE
D15 D0
Hình 2.6: Cu to thanh ghi trng thái máy MSW.
20