Professional Documents
Culture Documents
ECS Script
ECS Script
Bmniukhintng
Ni dung
Tiliutmttbiging
MU ................................................................................................................................5
1.1
1.2
1.3
1.4
TS.LuHngVit
2
CUTRCPHNCNGHNHNG........................................................................11
2.1
2.2
Ccthnhphnkintrccbn...........................................................................11
2.1.1 nvxltrungtmCPU.....................................................................11
2.1.2 Xungnhpvtrngthitnhiu ..............................................................13
2.1.3 Busach,dliuviukhin............................................................16
2.1.4 Bnh ..........................................................................................................17
2.1.5 Khnggianvphnvngach............................................................21
2.1.6 Ngoivi........................................................................................................21
2.1.7 Giaodin......................................................................................................33
Mtsnnphncngnhngthngdng(P/DSP/PLA) ...............................37
2.2.1 ChipVixl/Viiukhinnhng .......................................................37
2.2.2 ChipDSP......................................................................................................39
2.2.3 PAL...............................................................................................................41
CSKTHUTPHNMMNHNG....................................................................48
3.1
3.2
3.3
Cckhinimvhnhng......................................................................................5
Lnhvcngdngcahnhng...........................................................................7
cimcngnghvxuthphttrincahnhng .....................................8
1.3.1 cimcngngh.....................................................................................8
1.3.2 Xuthphttrinvstngtrngcahnhng .................................9
Mcchvnidungmnhc.............................................................................10
cimphnmmnhng ..................................................................................48
Biudinsvdliu ...........................................................................................48
3.2.1 Cchthngcs......................................................................................48
3.2.2 Snguyn ....................................................................................................48
3.2.3 Sduphytnh.........................................................................................50
3.2.4 Sduphyng.......................................................................................51
3.2.5 Mtsphptnhcbn ............................................................................52
Tplnh ....................................................................................................................55
3.3.1 CutrctplnhCISCvRISC...............................................................55
3.3.2 nhdnglnh ...........................................................................................57
3.3.3 Cckiutruynachtontlnh .......................................................57
3.3.4 Nguynlthchinpipeline.....................................................................60
3.3.5 Harzard ........................................................................................................61
3.4
HIUHNHNHNG ...............................................................................................73
4.1
4.2
4.3
4.4
Hiuhnh............................................................................................................73
Bnpkhito(Bootloader) ..................................................................................74
Ccyucuchung...................................................................................................76
Hiuhnhthigianthc ..................................................................................77
KTHTLPTRNHNHNG .....................................................................................81
5.1
5.2
5.3
5.4
6
Ngnngvmitrngphttrin .....................................................................63
3.4.1 Ngnng.....................................................................................................63
3.4.2 Bindch ......................................................................................................65
3.4.3 Simulator .....................................................................................................70
3.4.4 Emulator ......................................................................................................71
3.4.5 Thitkhthngbngmytnh .............................................................71
Tcvvqutrnh(process) ..................................................................................81
Lplch(Scheduling) ................................................................................................81
5.2.1 Cckhinim..............................................................................................81
5.2.2 Ccphngphplplchphbin ........................................................82
5.2.3 Kthutlplch .........................................................................................85
Truynthngvngb.......................................................................................87
5.3.1 Semaphore ...................................................................................................87
5.3.2 Monitor ........................................................................................................89
Xlngt .................................................................................................................90
THITKHNHNG:THPPHNCNGVMM.......................................93
6.1
6.2
6.3
6.4
Quitrnhphttrin .................................................................................................93
Phntchyucu.....................................................................................................93
Mhnhhoskinvtcv ..............................................................................93
6.3.1 PhngphpmhnhPetrinet................................................................93
6.3.2 QuicbiudinmhnhPetrinet ........................................................94
6.3.3 MtcctnhhunghotngcbnviPetrinet ............................95
6.3.4 Ngnngmtphncng(VHDL) ....................................................103
Thitkphnmmiukhin............................................................................104
6.4.1 Mhnhthcthibiukhinnhng .................................................104
6.4.2 VdthcthibiukhinPIDs ......................................................106
TILIUTHAMKHO ........................................................................................................108
M U
K nguyn cng ngh mi v ang tip tc pht trin khng ngng nhm thng
minhhohinihothngsutcchthng.Cthninhdusraivpht
trincahnhngtrctinphiknsraicaccbvixl,viiukhin.
NcnhdubisraicaChipvixlutin4004vonm1971chomc
chtnhtonthngmibimtcngtyNhtbnBusicomvsaucchp
cnhvphttrinvtbcbiInteltrthnhccbsiuxlnhccChipc
ngdngchoPCnhngynay.Thpk80cthccoilkhiimbtuk
nguyncasbngnvphttrincchnhng.Tkhinguncholnsngra
icahnglotccchngloivixlvgnlinlcchnhngthmnhprng
khptrongccngdnghngngycacucsngchngtavdnh,ccthitbin
tsdngchosinhhothngngy(lvisng,TV,tlnh,mygit,iuho...)v
vnphnglmvic(myfax,myin,myinthoi...)...Ccbvixlvphnmm
cngngycngcsdngrngritrongrtnhiucchthngnh.Ccloivix
lcsdngtrongcchthngnhnghinnayvtxasoviPCvslng
chng loi (chim n 79% s cc vi x l ang tn ti [2] ) v vn cn tip tc pht
trinnhmpngvthomnrtnhiungdngadng.Trongsvncn
ng dng c cc Chip vi x l 8 bit, 16 bit v hin nay ch yu vn l 32 bit (chim
khong75%).Gnlinvisphttrinphncng,phnmmcngphttrinvi
tcnhanhkhngthuakmthmchstngnhanhhnrtnhiutheosphttrin
hnhng.
1.1
Hnhng?
Trongthgiithccachngtabtkmtthitbhayhthngin/intckh
nng x l thng tin v iu khin u c th tim n trong mt thit b hay h
nhng, v d nh cc thit b truyn thng, thit b o lng iu khin, cc thit b
phcvsinhhothngngynhlvisng,mygit,cameraRtddngcth
k ra hng lot cc thit b hay h thng nh vy ang tn ti quanh ta, chng l h
nhng.Vyhnhngthcchtlgvnnhiuthnovhnhng?Hinnaycng
chacmtnhnghanothcsthongcchunhovthanhnrng
richohnhngmvnchlnhngkhinimdintvchngthngquanhngc
thchung.Tuynhinychngtacthhiuhnhnglmtphnhthngxl
thngtinnhngtrongcchthngln,phchpvclpvdnhtrongt,cc
thitbolng,iukhin,truynthngvthitbthngminhnichung.Chngl
nhngthpcaphncngvphnmmthchinmthocmtnhmchcnng
chuyn bit, c th (Tri ngc vi my tnh PC m chng ta thng thy c s
dngkhngphichomtchcnngmlrtnhiuchcnnghayphcvchungcho
nhiumcch).PCthcchtlilmththngln,thpcanhiuhthngnhng
vdnhcardmnhnh,mthanh,modem,cng,bnphmChnhiunylm
chngtadlngtngnuchinnhiuthnovPC,cphilhnhnghay
khng.
Hnh11:Mtvihnhnhvhnhng
Hthigianthc?
Trongccbitoniukhinvngdngchngtarthaygpthutngthigian
thc.Thigianthccphilthigianphnnhvtrungthccathigianhay
khng? Thi gian thc c phi l hin th chnh xc v ng b theo ng nh nhp
ng h m thi gian hay khng? Khng phi hon ton nh vy! Thc cht, theo
cchhiununitrongcchthngkthutcbitcchthngyucukhtkhev
srngbucthigian,thigianthcchiulyucucahthngphimbo
thomnvtnhtinnhtronghotngcahthng.Tnhtinnhnilnhnhvi
cahthngthchinngtrongmtkhungthigianchotrchontonxcnh.
Khungthigiannycquytnhbicimhocyucucahthng,cthl
vigiyvcngcthlvinanogiyhocnhhnna.ychngtaphnbit
yu t thi gian gn lin vi khi nim v thi gian thc. Khng phi h thng thc
hinrtnhanhlsmboctnhthigianthcvnhanhhaychmhontonl
php so snh c tnh tng i v mili giy c th l nhanh vi h thng iu khin
nhitnhnglilchmiviccitngiukhininnhdng,p.Hnth
nanuchnhanhkhngthchamphimboduytrnnhbngmtc
chhotngtincy.Chnhvvyhthngkhngkimsotchotngcan
(btnh)thkhngthlmththngmbotnhthigianthcmcdhthng
cthchopngrtnhanh,thmchnhanhhnrtnhiusoviyucutra.
Mt v d minh ho tiu biu l c ch truyn thng d liu qua ng truyn
chunEthernettruynthng,mcdaicngbittctruynlrtnhanhnhngvn
khngphihhotngthigianthcvkhngthomntnhtinnhtrongcch
truyndliu(cthlrtnhanhvcngcthlrtchmnucscanhtrnhv
giaothngngtruynbnghn).
Ngitaphnralmhailoiivikhinimthigianthclcng(hardrealtime)
vmm(softrealtime).Thigianthccnglkhihthnghotngviyucutho
mns rngbuc trong khung thi gian cng tc lnuviphm ths dnnhot
ngcatonhthngbsaihocbphhu.Vdvhotngiukhinchomt
lphnnghtnhn,nuchmraquytnhcthdnnthmhogyradophn
ngphnhchvdnnbngnchthng.Thigianthcmmlkhihthng
hotngviyucuthomnrngbuctrongkhungthigianmm,nuviphmv
sai lch nm trong khong cho php th h thng vn c th hot ng c v chp
nhnc.Vdnhhthngphtthanhtruynhnh,nuthngtintruynittrm
pht ti ngi nghe/nhn chm mt vi giy th cng khng nh hng ng k n
tnhthiscatinctruynivhontoncchpnhnbingitheodi.
Thctthyrnghuhthnhnglcchthigianthcvhuhtcchthigian
thclhnhng.iunyphnnhmiquanhmtthitgiahnhngvthigian
thcvtnhthigianthctrthnhnhmtthuctnhtiubiucahnhng.V
vyhinnaykhicpticchnhngngitaunitictnhcbncanl
tnhthigianthc.
H thi gian thc
Hnhngthi
gianthc
H Nhng
Hnh12:Phnbvquanhgiahnhngvthigianthc
1.2
Chngtacthkracrtnhiuccngdngcahthngnhngangcs
dnghinnay,vxuthscntiptctngnhanh.Mtscclnhvcvsnphm
thtrngrnglncacchnhngcthcnhmnhsau:
Ccthitbiukhin
t,tuin
Truynthng
Thitbyt
Hthngolngthmnh
Tonhthngminh
Thitbtrongccdytruynsnxut
Rbt
...
1.3
1.3.1
c im cng ngh
Khnngclpvthngminhho:iunycchrhnthngquamtscc
thuctnhyucu,cthnh:
; tincy
; Khnngbotrvnngcp
; Sphcpvtinsdng
; anton
; Tnhbomt
Hiuqu:Yucunycthhinthngquamtscccimcahthngnh
sau:
; Nnglngtiuth
; Kchthcvphncngvphnmm
; Hiuquvthigianthchin
; Kchthcvkhilng
; Githnh
Phnhochtcvvchcnngho:Ccbvixltrongcchnhngthngc
sdngmnhimvthchinmthocmtnhmchcnngrtclpvcng
cthchotngphnchcnngcahthnglnmncnhngvo.Vdnh
mtvixlthchinmtphniukhinchomtchcnngthuthp,xlvhin
thcathayhthngiukhinqutrnh.Khnngnylmtngthmschuyn
bithovchcnngcamththnglnvddnghnchoqutrnhxydng,
vnhnhvbotr.
Khnngthigianthc:Cchthngugnlinvivicmnhimmtchcnng
chnhvphicthchinngtheomtkhungthigianquinh.Thngthng
mtchcnngcahthngphicthchinvhonthnhtheomtyucuthi
gian nh trc m bo thng tin cp nht kp thi cho phn x l ca cc chc
nngkhcvcthnhhngtrctiptishotngngvchnhxccaton
hthng.Tuthucvotngbitonvyucucahthngmyucuvkhnng
thigianthccngrtkhcnhau.
cnglmtngthmtnhchuynbithocacch/thitbnhngmccthitba
nngkhngthcnhtranhc.
1.3.2
Vsphttrinhnhnglskthpnhunnhuyngiaphncngvphnmm
nncngnghgnlinvincngchnhlcngnghkthpgiaccgiiphpcho
phncng v mm.V tnh chuynbitcacc thitb /h nhng nh giithiu
nnccnnphncngcngcchtoutinpngchochcnnghaynhim
vcthcayucuthitktra.
Lp h nhng u tin pht trin theo tiu ch v kch thc nh gn, tiu th nng
lngt,githnhthp.Ccchpxlnhngcholphthngngdngthng
yucuvkhnngtnhtonthocvaphinnhuhtcxydngtrncs
bngxl8bt16bithoccnglml32bitvkhnghtrduphyngdos
hnchvdunglngvkhnngtnhton.
Lphnhngutinthcthikhnngxltnhtonvitcthchinnhanh.Cc
chpxlnhngchocchthngcngslccChippdngcccngnghcao
cpvikintrcxlsongsongpngccngtnhtonlnvtcm
ccChipxlachcnngthngthngkhngttic.
Lphthngutinchaitiuchphttrincahailptrn,tclkchthcnh
gn,mctiuthnnglngthp,tctnhtonnhanh.Tutheosthohipgia
ccyucuvxuthphttrinchnhvvycngkhngcgngcnhinkhichngta
thystntisongsongcartnhiuccChipvixlnhng,viiukhinnhng8
bit,16bithay32bitcngviccChpsiuxlkhcvnangcngdngrng
ri cho h nhng. cng l s kt hp a dng v s ra i ca cc h nhng ni
chungnhmthomnccngdngphttrinkhngngng.
Trong xu th pht trin khng ngng v nhm tho mn c nhu cu pht trin
nhanh v hiu qu c rt nhiu cc cng ngh cho php thc thi cc gii php h
nhng.ngsausphcprngricaccChipvixlviiukhinnhng,DSP
phi k n cc cng ngh cng ang rt c quan tm hin nay nh ASIC, CPLD,
1.4
Mc ch v ni dung mn hc
Hiukhinnhnglmtmnhcminhmcungcpkinthcchosinhvinv
khnngphntchvthitkhthngiukhinvthngminhhohthngtheo
chcnngtheogiiphpcngngh.Thitkthcthiiukhintrnnnphncng
nhng.
10
Bgiimchuyni(thngdch)cclnhlutrtrongbmchngtrnhthnh
ccmmALUcthhiucvthcthi.Btuntcnhimvqunldngd
liutraoiquabusdliucaVXL.CcthanhghicsdngCPUlutrtm
thiccdliuchnhchovicthcthicclnhvchngcththayinidungtrong
qutrnhhotngcaALU.HuhtccthanhghicaVXLulccbnhc
thamchiu(mapped)vhinhpvikhuvcbnhvcthcsdngnhbt
kkhuvcnhkhc.
CcthanhghicchcnnglutrtrngthicaCPU.Nuccnidungcabnh
VXLvccnidungcaccthanhghitimtthiimnoclugiy
thhontoncthtmdngthchinphnchngtrnhhintitrongmtkhong
thi gian bt k v c th tr li trng thi ca CPU trc . Thc t s lng cc
thanhghivtngicachngcngkhcnhautrongcchVXL/VKvthngdo
chnh cc nh ch to qui nh, nhng v c bn chng u c chung cc chc nng
nhnu.
Khithtbytetrongbnhcxcnhthngithitkphncngphithc
hinmtsquytnhxemCPUsludliunhthno.Cchnycngkhc
nhaututheokintrctplnhcpdng.Cbaloihnhcbn:
(1) Kintrcngnxp
(2) Kintrcbtchlu
(3) Kintrcthanhghimcchchung
Kin trc ngn xp s dng ngn xp thc hin lnh v cc ton t nhn c t
nhngnxp.Mcdcchnyhtrmtmttvmhnhnginchovic
nhgicchthhinchngtrnhnhngngnxpkhngthhtrkhnngtruy
nhpngunhinvhnchhiusutthchinlnh.
Kintrcbtchluvilnhmttontngmmcnhchatrongthanhghitchlu
cthgimcphctpbntrongcacutrcCPUvchophpcuthnhlnh
rtnhgn.Nhngthanhghitchluchlnichadliutmthinngiaothng
bnhrtln.
Kintrcthanhghimcchchungsdngcctpthanhghimcchchungvc
n nhn nh m hnh ca cc h thng CPU mi, hin i. Cc tp thanh ghi
nhanhhnbnhthngvddngchobbindchxlthcthivcthcs
dngmtcchhiuqu.Hnnagithnhphncngngycngcxuthgimng
kvtpthanhghicthtngnhanh.Nucchtruynhpbnhnhanhthkintrc
datrnngnxpcthlslachnltng;cnnutruynhpbnhchmth
kintrcthanhghislslachnphhpnht.
Mt s thanh ghi vi chc nng in hnh thng c s dng trong cc kin trc
CPUnhsau:
11
12
2.1
Hnh21:KintrcinhnhcaccchpVXL/VKnhng
2.1.1
n v x l trung tm CPU
Hnh22:CutrcCPU
Thanhghicontrngnxp(stackpointer):
Thanh ghi ny lu gi a ch tip theo ca ngn xp. Theo nguyn l gi tr a ch
chatrongthanhghicontrngnxpsgimnudliucluthmvongnxp
vstngkhidliuclyrakhingnxp.
Thanhghichs(indexregister)
Thanhghichscsdngluachkhimodeachcsdng.Ncn
cbittivitngilthanhghicontrhaythanhghilachntp(Microchip).
Thanhghiachlnh/Bmchngtrnh(ProgramCounter)
Mt trong nhng thanh ghi quan trng nht ca CPU l thanh ghi b m chng
trnh. Thanh ghi b m chng trnh lu a ch lnh tip theo ca chng trnh s
cCPUxl.MikhilnhctrtivcCPUxlthnidunggitrca
thanhghibmchngtrnhstnglnmt.Chngtrnhsktthckhithanhghi
PCcgitrbngachcuicngcachngtrnhnmtrongbnhchngtrnh.
Thanhghitchly(Accumulator)
ThanhghitchlylmtthanhghigiaotiptrctipviALU,csdnglu
gicctonthocktqucamtphptontrongqutrnhhotngcaALU.
2.1.2
nngtngthchkhicshotngphihpgiaccthitbghpnihaymrng
tronghthng.Thngthngthngtinvccnhpthigianhotngcngnhc
tnhkthutchititccungcphocquinhbiccnhchto.
Mtsctrngvthigiancacctrngthihotngcbncacctnhiuh
thnggmcnhsau:
9 Thigiantnghocgim
9 Thigiantrlantruyntnhiu
9 Thigianthitlp
9 Thigiangi
9 Trcmhotngvtrngthitreo(TriState)
9 rngxung
9 Tnsnhpxunghotng
Thigiantnghocgim
TrongVXLvccvimchsnichung,hotngcahthngcthchinng
bhocdbtheoccxungnhpchun.Ccnhpclytrctiphocgintip
tmtngunxungchunthnglccmchtoxunghocdaongthchanh.
mthotngcahthng,cctn hiudliuviukhinthngcmt
trngthitheoginthigianvmctnhiunhcchratrongHnh23:Mt
vtrngthitnhiuhotngtrongVXL
Hnh24:Mttrngthitnhiulogictngvgim
Thigiantngcnhnghalkhongthigian tnhiutngt20%n80%
mctnhiucnthit.Thigiangimlkhongthigiantnhiugimt80%n
20%mctnhiucnthit.
Thigiantrlantruyn:
Lkhongthigiantntkhithayitnhiuvochotikhicsthayitnhiu
ura.ctnhnythngdocutovkhnngtruyndntnhiuvtltrongh
thngtnhiu.
Hnh23:MtvtrngthitnhiuhotngtrongVXL
Mcchcavicmttrngthitnhiutheoginthigianvmctnhiul
phntchvxcnhchuiskinhotngchitittrongmichukbus.Nhvic
mtnychngtacthxemxtnkhnngpngthigiancaccskinthc
thitronghthngvthigiancnthitthcthihotngtuntcngnhlkh
13
Hnh25:Mttrngthivtrlantruyntnhiu
Thigianthitlpvlugi
Khongthigiancnthittnhiutrchmuttimttrngthinnhtrckhi
nhpxungchunnghthayicgilthigianthitlp.Thigianlugil
14
khong thi gian cn thit duy tr tn hiu trch mu n nh sau khi xung nhp
chunnghthayi.Thcchtkhongthigianthitlpvthigianlugilcn
thit m bo tn hiu c ghi nhn chnh xc v n nh trong qu trnh hot
ngvchuynmctrngthi.GinthigiantrongHnh26:Thigianthitlpv
lugiminhhathigianthitlpvlugitronghotngcaTrigerD.
Hnh28:Mtchuktnhiu3trngthivcontention
rngxungvtnsnhpxungchun
Hnh26:Thigianthitlpvlugi
Hnh29:rngvtnsxungnhpchun
Trongtrnghphotngchuyntrngthitnhiukhngngbvkhngm
bocthigianthitlpvlugiscthdnnsmtnnhhaykhngxc
nh mc tn hiu trong h thng. Hin tng ny c bit ti vi tn gi l
metastabilit. minh ha cho hin tng ny trong Hnh 27 m t hot ng li ca
mt Triger khi cc mc tn hiu vo khng tha mn yu cu v thi thit lp v lu
gi.
Hnh27:HintngMetastabilittronghotngcaTrigerD
Chuktnhiu3trngthivcontention
15
2.1.3
Busach
Busachlccngdntnhiulogicmtchiutruynachthamchiuti
cc khu vc b nh v ch ra d liu c lu gi u trong khng gian b nh.
Trong qa trnh hot ng CPU s iu khin bus a ch truyn d liu gia cc
khuvcbnhvCPU.Ccachthngthngthamchiuticckhuvcbnh
hoccckhuvcvora,hocngoivi.Dliuclucckhuvcthngl8
bit(1byte),16bit, hoc 32bittythucvo cutrctng loi vi x l/vi iu khin.
Huhtccviiukhinthngnhachdliutheokhi8bit.Ccloivixl
8bit,16bitv32bitnichungcngucthlmvictraoivikiudliu8bit
v16bit.
Chngtavnthngcbittikhinimachtruynhptrctip,lkhnng
CPUcththamchiuvtruynhptitrongmtchukbus.NuvixlcNbita
chtclncthnhachc2NkhuvcmCPUcththamchiutrctip
ti.Quiccckhuvccnhachbtutach0vtngdnn2N1.
Hinnayccvixlvviiukhinnichungchyuvnsdngphbinccbus
dliucrngl16,20,24,hoc32bit.Nunhachtheobytethmtvixl
16bit c th nh a ch c 216 khu vc b nh tc l 65,536 byte = 64Kbyte. Tuy
nhincmtskhuvcbnhmCPUkhngthtruynhptrctiptitclphi
sdngnhiunhpbustruynhp,thngthngphikthpviviciukhin
phnmm. K thutny ch yuc sdng m rngb nh v thngc
bit ti vi khi nim nh a ch trang nh khi nhu cu nh a ch khu vc nh
vtquphmvicthnhachtruynhptrctip.
V d: CPU 80286 c 24bit a ch s cho php nh a ch trc tip cho 224 byte (16
Mbyte)nh.CPU80386vccloivixlmnhhnckhnggianach32bitsc
thnhcti232byte(4Gbyte)achtrctip.
16
Busdliu
BusdliulccknhtruyntithngtintheohaichiugiaCPUvbnhhoccc
thitbngoivivora.BusdliuciukhinbiCPUchocvitccd
liuhocmlnhthcthitrongqatrnhhotngcaCPU.rngcabusdliu
ni chung s xc nh c lng d liu c th truyn v trao i trn bus. Tc
truynhaytraoidliuthngctnhtheonvl[byte/s].Slngng
bit d liu s cho php xc nh c s lng bit c th lu tr trong mi khu vc
thamchiutrctip.Numtbusdliuckhnngthchinmtlntruyntrong1
s, th bus d liu 8bit s c bng thng l 1Mbyte/s, bus 16bit s c bng thng l
2Mbyte/svbus32bitscbngthngl4Mbyte/s.Trongtrnghpbusdliu8
bitvichukbuslT=1s(tclstruync1byte/1chuk)thstruync1
Mbytetrong1shay2Mbytetrong2s.
Busiukhin
Busiukhinphcvtruynticcthngtindliuiukhinhotngcah
thng.Thngthngccdliuiukhinbaogmcctnhiuchukngb
cc nhp chuyn ng v hot ng ca h thng. Bus iu khin thng c iu
khinbiCPUngbhanhphotngvdliutraoitrnccbus.Trong
trnghpvixlsdngdnknhbusdliuvbusachtclmtphnhoc
tonbbusdliuscsdngchungchiasvibusachthcnmttnhiu
iukhinphnnhptruynhpchophpchtlutrthngtinachmikhibt
umtchu k truyn. Mtv dvcc chu k bus v sng b ca chngtrong
hotngcahthngbusachvdliudnknhcchratrongHnh210.
ylhotnginhnhtronghviiukhin8051vnhiuloitngt.
TrongkintrcvonNeumannkhngphnbitvngchadliuvmchngtrnh.
C chng trnh v d liu u c truy nhp theo cng mt ng. iu ny cho
phpadliuvovngmchngtrnhROM,vcngcthlumchngtrnh
vovngdliuRAMvthchint.
Hnh211:KintrcbnhvonNeumannvHavard
KintrcHavardtch/phnbitvnglumchngtrnhvdliu.Mchngtrnh
chcthcluvthchintrongvngchaROMvdliucngchcthlu
vtraoitrongvngRAM.Huhtccvixlnhngngynaysdngkintrcb
nhHavardhockintrcHavardmrng(tclbnhchngtrnhvdliutch
bitnhngvnchophpkhnnghnchlydliuratvngmchngtrnh).
TrongkintrcbnhHavardmrngthngsdngmtslngnhcccontr
lydliutvngmchngtrnhtheocchnhngvotrongcclnhtcthi.
Mts Chip vi iukhin nhng tiubiu hinnays dng cu trc Havardl8031,
PIC,AtmelAVR90S.NusdngChip8031chngtasnhnthyiunythngqua
vic truy nhp ly d liu ra t vng d liu RAM hoc t vng m chng trnh.
ChngtacmtvicontrcsdnglydliuratbnhdliuRAM,
nhngchcduynhtmtcontrDPTRcthcsdnglydliuratvng
m chng trnh. Hnh 211 m t nguyn l kin trc ca b nh von Neumann v
Harvard.
Hnh210:Chukhotngbusdnkch
2.1.4
B nh
Kintrcbnh
Kintrcbnhcchiaralmhailoichnhvcpdngrngritronghu
htccChipxlnhnghinnaylkintrcbnhvonNeumannvHavard.
17
18
BnhFlash
CnggingnhEPROMccutobimtmngtransistorkhtrnhnhngcth
xocbnginvchnhvvycthnplichngtrnhmkhngcntchra
khi nn phn cng VXL. u im ca b nh flash l c th lp trnh trc tip trn
mchcngmnangthcthitrn.
Hnh212:Nguynliukhintchknhtruynhpbusachvbusdliu
Hnh214:SnguynlghpniEPROMviVXL
BnhchngtrnhPROM(ProgrammableReadOnlyMemory)
Vnglumchngtrnh.CbaloibnhPROMthngdngcsdngcho
hnhngvscgiithiulnltsauy.
EPROM
Baogmmtmngcctransistorkhtrnh.Mchngtrnhscghitrctipvvi
x l c th c ra thc hin. EPROM c th xo c bng tia cc tm v c th
clptrnhli.CutrcvtlcaEPROMcmtnhtrongHnh213.
BnhdliuRAM
Vngluhoctraoidliutrunggiantrongqutrnhthchinchngtrnh.
Hnh215:CutrcnguynlbnhRAM
ChailoiSRAMvDRAM
Hnh213:NguynlcutovhotngxocaEPROM
19
20
dng ph bin trong cc nhim v m xung, o khong thi gian cc s kin, hoc
nhchukthigianthcthicctcv.Mttrongnhngngdngquantrngcab
nhthigianltonhptbtoxungthchanhchobtruynthngdbanng
hot ng. Thc cht l ng dng thc hin php chia tn s. t c
chnhxc, tnsthchanhthngcchnsaochoccphpchiasnguync
thc hin chnh xc m bo cho tc truyn thng d liu c to ra chnh xc.
Chnhvvyhviiukhin80C51thnghaysdngthchanhctnsdaong
l11.059thayv12MHztoranhphotngtruynthngtcchun9600.
Hnh216:CutrcmtphntnhDRAM
Hnh218:Bnhthi/bm8bitcaAVR
Biukhinngt
Hnh217:Nguynlghpni(mrng)RAMviVXL
2.1.5
2.1.6
Ngoi vi
Bnhthigian/Bm
Huhtccchipviiukhinngynayuctnhtmtbnhthigian/bmc
thcuhnhhotnglinhhottheoccmodephcvnhiumcchtrongccng
dngxl,iukhin.Ccbnhthigianchophptoraccchuixungvngt
thigianhocmtheocckhongthigiancthlptrnh.Chngthngcng
21
Ngtlmtskinxyralmdnghotngchngtrnhhintiphcvthc
thimttcvhaymtchngtrnhkhc.CchngtgipCPUlmtngtcp
ngphcvccskintrongchngtrnhhotngcaVXL/VK.CcVKkhc
nhausnhnghaccnguntongtkhcnhaunhngucchungmtcchhot
ng v d nh ngt truyn thng ni tip, ngt b nh thi gian, ngt cng, ngt
ngoi...Khi mt s kin yu cu ngt xut hin, nu c chp nhn CPU s lu ct
trngthihotngchochngtrnhhintiangthchinvdnhnidungb
mchngtrnh(contrlnh)ccnidungthanhghiludliuiukhinchng
trnh ni chung thc thi chng trnh phc v tc v cho s kin ngt. Thc cht
qu trnh ngt l CPU nhn dng tn hiu ngt, nu chp nhn s a con tr lnh
chngtrnhtrtivngmchachngtrnhphcvtcvngt.Vvymimt
ngt u gn vi mt vector ngt nh mt con tr lu thng tin a ch ca vng b
nh cha m chng trnh phc v tc v ca ngt. CPU s thc hin chng trnh
22
phcvtcvngtnkhinogplnhquaytrvchngtrnhtrcthiims
kinngtxyra.Cthphnra2loingunngt:NgtcngvNgtmm.
Ngtmm
Ngt mm thc cht thc hin mt li gi hm c bit m c kch hot bi cc
ngunngtlccskinxuthintbntrongchngtrnhvngoivitchhptrn
Chipvdnhngtthigian,ngtchuyniA/D,Cchngtnycnchiu
lloithchinngbvichngtrnhvnckchhotvthcthiticcthi
imxcnhtrongchngtrnh.Hmcgisthcthichcnngtngngvi
yucungt.Cchmthngctrbimtvectorngtmcnhngha
vgncnhbinhsnxutChip.VdnhhiuhnhcaPCsdngngts
21hexgnchongttruynhpcdliutacngvxutdliuramyin.
Ngtcng
Ngtcngcthcxemnhlmtligihmcbittrongngunkchhotl
mtskinntbnngoichngtrnhthngquamtcutrcphncng(thng
c kt ni vi th gii bn ngoi qua cc chn ngt). Ngt cng thng c hiu
hotngtheocchdbvccskinngtkchhottcctnhiungoivibn
ngoi v tng i c lp vi CPU, thng l khng xc nh c thi im kch
hot.KhiccngtcngckchhotCPUsnhndngvthchinligihmthc
thichcnngphcvskinngttngng.
Trongcccchngtkhongthigiantkhixuthinskinngt(cyucuphc
vngt)tikhidchvngtcthcthilxcnhvtuthucvocngnghphn
cngxlcaChip.
Hnh219:Snguynlhotngcabnhthichcanh
BnhthichcanhWatchdogTimer
Thng thng khi c mt s c xy ra lm h thng b treo hoc chy qun, CPU s
khngthtiptcthchinngchcnng.cbitkhihthngphilmvicch
vnhnhtngvkhngcscanthiptrctipthngxuynbingivn
hnh.thchincchtgimstvphthinscphnmm,mtsVXL/VK
cthmmtbnh thichcanh.Bnchtlmtbnh thicbitnh
ngha mt khung thi gian hot ng bnh thng ca h thng. Nu c s c phn
mmxyraslmhthngbtreokhibnhthichcanhsphthinvgip
h thng thot khi trng thi bng cch thc hin khi to li chng trnh.
Chngtrnhhotngkhicbnhthiphimboresetntrckhikhungthi
gianbviphm.Khungthigiannycnhnghaphthucvosnhgica
ngi thc hin phn mm, thit lp khong thi gian m bo chc chn h thng
thchinbnhthngkhngcscphnmm.
Cmtscchthchincitbnhthichocanhgimsthotngcah
thngnhsau:
23
(a)
(b)
Hnh220:Nguynlhotngbnhthichcanh
BiukhintruynhpbnhtrctipDMA
DMA(DirectMemoryAccess)lcchhotngchophphaihaynhiuvixlhoc
ngoivichiasbuschung. Thit bno ang cquyn iu khinbus scthton
24
quyntruynhpvtraoidliutrctipviccbnhnhhthngcmtvix
l.ngdngphbinnhtcaDMAlchiasbnhchunggiahaibvixlhoc
ccngoivitruyndliutrctipgiathitbngoivivo/ravbnhdliu
caVXL.
Truynhpbnhtrctipcsdngpngnhucutraoidliuvora
tc cao gia ngoi vi vi b nh. Thng thng cc ngoi vi kt ni vi h thng
phichiasbusdliuvciukhinbiCPUtrongqutrnhtraoidliu.
iunylmhnchtctraoi,tngcngtcvloibscanthipca
CPU, c bit trong trng hp cn truyn mt lng d liu ln. C ch hot ng
DMAcmtnhtrongHnh221.Thtccbtubngvicyucuthc
hinDMAviCPU.Saukhixl,nucchpnhnCPUstraoquyniukhin
buschongoivivthchinqutrnhtraoidliu.SaukhithchinxongCPUs
nhncthngbovnhnliquyniukhinbus.TrongcchDMA,chaicch
truyndliu:kiuDMAchukn,vkiuDMAchuknhm(burst).
cncmtbcxlquytnhxemthitbnoscnhnquyniukhin
trongtrnghpcnhiuhnmtthitbcnhucusdngDMA.Thngthng
kiuDMAchuknhmcntdliuthngtiniukhin(overhead)nnckhnng
traoivitccaonhnglichimnhiuthigiantruynhpbusdotruynckhi
dliuln.iunycthnhhngnhotngcachthngdotrongsut
qutrnhthchinDMAnhm,CPUsbkhoquyntruynhpbnhvkhngth
x l cc nhim v khc ca h thng m c nhu cu b nh, v d nh cc dch v
ngt,hoccctcvthigianthc...
Chukri(CycleStealing)
Trong kiu ny DMA s c thc hin trong nhng thi im chu k bus m CPU
khngsdngbusdokhngcnthchinthtcxlcpphtquyntruynhp
vthchinDMA.
Huhtccvixlhiniusdnggnnh100%dunglngbnhvbng
thngcabusnnskhngcnhiuthigiandnhchoDMAthchin.titkim
vtiutinguynthcncmttrngtiphnxvdliusctruynixp
chngtheothigian.NichungkiuDMAdngbursthiuqunhtkhikhongthi
giancnthchinDMAtnginh.TrongkhongthigianthchinDMA,ton
bbngthngcabusscsdngtiavtonbkhidliusctruyni
trong mt khong thi gian rt ngn. Nhng nhc im ca n l nu d liu cn
truynlnvcnmtkhongthigiandithsdnnvicblockCPUvcthb
quavicx l ccs kin v tc vkhc.ivi DMA chu k n th yu cutruy
nhpbnh,truynmttdliuvgiiphngbus.Cchnychophpthchin
truyninterleavevcbittivitngiinteleavedDMA.KiutruynDMAchuk
nphhptruyndliutrongmtkhongthigiandimcthigian
yucutruynhpvgiiphngbuschomilntruynmttdliu.Chnhvvys
gimbngthngtruynhpbusdophimtnhiuthigianyucutruynhpv
giiphngbus.TrongtrnghpnyCPUvccthitbkhcvncthchiasv
truyn d liu nhng trong mt di bng thng hp. Trong nhiu h thng bus thc
hincchxlvgiiquytyucutruynhp(trngti)thngquadliutruynv
vycngkhngnhhngnhiuntctruynDMA.
DMAcyucukhikhnngiukhincaCPUtruyndliuthchinqu
chm.DMAcngthcscnghakhiCPUangphithchincctcvkhcm
khngcnnhucutruynhpbus.
ICchcnngchuyndng
Hnh221:NhphotngDMA
DMAchuknvnhm
TrongkiuhotngDMAchuknhm,ngoivisnhncquyniukhinv
truynkhi d liu ri tr li quyniu khin cho CPU.Trongc chDMAchuk
nngoivisaukhinhncquyniukhinbuschtruynmttdliuritr
lingayquynkimsotbnhvbusdliuchoCPU.TrongcchthchinDMA
25
DAC/ADC
26
Hnh224:SnguynlcutrcADC1754A
Hnh222:SnguynlmchchuyniDAC
Hnh223:SnguynlmchchuyniADC
VdADC754A
cimkthut:
9 ChtotheocngnghCMOS.
9 12bitvigiaodintngthchviccloiVXL/VK8,12v16bit.Cthlp
trnhhotngchuyni8bithoc12bit.
9 Tn hiu d liu ra tng thch vi chun TTL v ghp ni thng qua loi cng
logic3trngthi.
9 Digitrinpuvocthlachnnhcuhnhgitrintrniu
vonhnccditnhiu(010)V,(020)V,(5+5)V,v(10+10)V.
9 CthmkhnngcungcpngunthamchiuniVref=+10V.
9 Nguncungcpcthl+5V,12V,hoc15V
9 Thigianchuyniccil25svithigiantruynhpbusl150ns.
27
Hnh225:SbtrchncaChipADC574A
Nguynliukhin
ADC574ciukhinbiccchntnhiunhmttrongbngsau:
Bng1:TnhiuiukhinADC574A
K hiu
nh ngha
CE (Pin 6)
Chip Enable
(active high)
Must be high (1) to either initiate a conversion or read output data. 0-1 edge may be used to
initiate a conversion.
CS
Chip Select
(active low)
Must be low (0) to either initiate a conversion or read output data. 1-0 edge may be used to
initiate a conversion.
(Pin 3)
Chc nng
28
R / C (Pin 5)
Read/Convert
(1 = read)
(0 = convert)
Must be low (0) to initiate either 8- or 12-bit conversions. 1-0 edge may be used to initiate a
conversion.
Must be high (1) to read output data. 0-1 edge may be used to initiate a read operation.
AO (Pin 4)
Byte Address
Short Cycle
In the start-convert mode, AO selects 8-bit (AO= 1) or 12-bit (AO= "0") conversion mode.
When reading output data in two 8-bit bytes, AO= 0 accesses 8 MSBs (high byte) and AO= 1
accesses 4 LSBs and trailing 0s (low byte).
12 / 8 (Pin 2)
Data Mode
Select
(1 = 12 bits)
(0 = 8 bits)
When reading output data, 12/8 = 1 enables all 12 output bits simultaneously. 12/8 = 0 will
enable the MSBs or LSBs as determined by the AOline.
(1) Thitlpchhotng:Modechuyni8bithay12bitcthitlpbi
tnhiuA0.Tnhiunyphicchttrckhinhnctnhiulnhbt
uthchinchuyni.
(2) Kch hot qu trnh chuyn i: B chuyn i thc hin chuyn i khi nhn
ctnhiumnhlnhtchcctchntnhiuhocCE/CS,hocR/Cviiu
kincctnhiuiukhinkhccxclp.
(3) Trngthichuyni:TnhiuuraSTATUSbotrngthichuynihin
hnh ca ADC; thit lp mc cao nu ang thc hin chuyn i v mc
thpnuhonthnh.Trongqutrnhchuynicctnhiuiukhinb
khovdliukhngthccvccngtnhiuracchuynsang
trngthicaotr.
(4) c d liu ra: Qu trnh c d liu ra c th c thc thi nu cc tn hiu
iu khin xc lp trng thi cho php c v tn hiu STATUS trng thi
thp.Tuthucvomodechuynicthitlpvnhdngdliucra
bithptrng 12 / 8 vA0.
Cngsongsongkhtrnh82C55A
82C55A l mt giao din ngoi vi cng song song kh trnh c ch to theo cng
nghCMOS.Nlmtthitbngoivivorakhtrnhamcchvcthcs
dngvinhiuloiVXL/VKkhcnhau.82C55Ac24chnvoraonChipcchia
rathnh2nhm,minhm12chnvcthcsdngtheo3chhotng
khcnhau.Hnh226mtginkhichcnngcachip82C55A.
29
Hnh226:Ginkhichcnngca82C55A
Chcnngvnghacaccchnonchipca82C55AcmttrongBng2:Chc
nngccchnonchipca82C55A.
Bng2:Chcnngccchnonchipca82C55A
K hiu
Kiu
GND
D0-D7
M t chc nng
VCC: The +5V power supply pin. A 0.1F capacitor between VCC and GND is recommended for
decoupling.
VCC
GROUND
I/O
DATA BUS: The Data Bus lines are bidirectional three-state pins connected to the system data bus.
RESET
RESET: A high on this input clears the control register and all ports (A, B, C) are set to the input
mode with the Bus Hold circuitry turned on
CS
CHIP SELECT: Chip select is an active low input used to enable the 82C55A onto the Data Bus for
CPU communications.
RD
READ: Read is an active low input control signal used by the CPU to read status information or data
via the data bus.
WR
WRITE: Write is an active low input control signal used by the CPU to load control words and data
into the 82C55A.
A0-A1
ADDRESS: These input signals, in conjunction with the RD and WR inputs, control the selection of
one of the three ports or the control word register. A0 and A1 are normally connected to the least
significant bits of the Address Bus A0, A1.
PA0-PA7
I/O
PORT A: 8-bit input and output port. Both bus hold high and bus hold low circuitry are present on
this port.
PB0-PB7
I/O
PORT B: 8-bit input and output port. Bus hold high circuitry is present on this port.
30
PC0-PC7
I/O
9 Ccngtnhiuvokhngccht
9 Cthcuhnh16kiuhotngvorakhcnhau
PORT C: 8-bit input and output port. Bus hold circuitry is present on this port.
82C55Acungcp3chhotngchnhvcthlptrnhlachn
Mode0:Hotngvoracbn
Mode1:Hotngvoranmbt(strobed)
Mode2:HotngBus2chiu
Viclachnchhotngcthchinthngquathanhghitiukhinv
cmtnhtrongHnh227.
Mode1(Voracbttay):Chhotngnycungcpkhnngtruyndliuti
hocitmtcngcthcngvicctnhiubttay.TrongchnycngA,B
csdngtruyndliuvcngChotngnhcngiukhincchng
bbttay.Chhotngnycungcpccchcnngchnhsau:
9 Hai nhm cng (Nhm A v Nhm B). Mi nhm bao gm 1 cng 8bit v mt
cngdliuiukhin4bit.
9 Cngdliu8bitcthhotngnhhoclcngvohoclcngravchai
chiudliuuccht.
9 The4bitportisusedforcontrolandstatusofthe8bitport.
Hnh227:Thanhghitiukhinchnchhotngcho82C55A
KhiuvoRESETciukhinmccaothttccccngscthitlphot
ng ch cng vo vi 24 ng tn hiu vo duy tr mc logic 1. Sau khi tn
hiuiukhinRESETmctchccbloibth82C55Acthduytrchhot
ngmkhngcnthmbtkvickhitonona.iunysgiploibc
ccintrtreocaohoctreothptrongccthitkchomchCMOS.Khikchhot
ch thit lp th thanh ghi t iu khin s cha gi tr 9Bh. Trong qa trnh thc
hinchngtrnhvncththayilachnchhotngkhcnhau,iuny
cho php 82C55 hot ng mt cch a dng p ng cho nhiu bi ton ng dng
khcnhau.Trongqatrnhthanhghitiukhinangcvitthttccccng
cthitlphotngchcngrasckhitobngzero.
Mode0(Voracbn):Cuhnhchhotngnycungcpcchotngvora
nginchoc3cngA,BvC.Dliuctraoitrctipvkhngcnphic
cchbttay.Chhotngnyhtrccchcnngcthnhsau:
9 Haicng8bitv2cng4bit
9 Btkcngnocngcthlcngvohoccngra
9 Ccngdliutnhiuraccht
31
ylbmtccaocungcp3bnhthi16bitclpvcthccuhnh
hotngnhiuchhotng.Mibmcccknhdliuviukhin
ring bit. H tr 2 kiu m ho m nh phn (0 65535) hoc BCD (binary coded
decimal)(09999).C4thanhghitchhpOnchiplugitrmvcuhnhhot
ng(tiukhin).
Tnshotngcabmcthlmvicvixungnhptns10MHzvhtr6
chhotngvcthcuhnhringl.
32
Giaodinnitip
USART
Hnh230:CutrcnginhocaUSART
Hnh228:Scutrcchcnng8254
2.1.7
Giao din
Giaodinsongsong8bit/16bit
Cccngsongsonglmtdnggiaodinvoranginvphbinnhtktni
thngtinvingoivi.Cnhiuloicutrcgiaodinvtlinttdngcngvo
ranginccCollectorTTLhtrongccngdngcngmyinnccloicutrc
giaodincngtccaonhccchunbusIEEE488haySCSI.Huhtccchipiu
khin nhng c mt vi cng vo ra song song kh trnh (c th cu hnh). Cc giao
dinphhpvicccngvoranginnhcckhochuyn.Chngcngph
hptrongccbitonphcvgiaodinktniiukhinvgimsttheoccgiao
dinnhkiurlebndn.
Hnh231:Modehotngtruynthngngb
Hnh229:Cutrcnguynlinhnhcamtcngvo/ralogic
Hnh232:Modehotngtruynthngdb
33
34
I2C(InterIC)
Giao thc u tin truyn thng ni tip c pht trin bi Philips Semiconductor v
cgilbusI2C.VngungcncthitkliukhinlinthngIC(Inter
IC)nnncttnlI2C.TtcccchpctchhpvtngthchviI2Cuc
thmmtgiaodintchhptrnChiptruynthngtrctipviccthitbtng
thchI2Ckhc.Victruyndliunitiptheohaihng8bitcthcthitheo3ch
sau:
Chun(Standard)100Kbits/sec
Nhanh(Fast)400Kbits/sec
Tccao(HighSpeed)3.4Mbits/sec
ngbusthchintruynthngnitipI2Cgmhainglngtruyndliu
nitipSDAvngtruynnhpxungnghnitipSCL.Vcchhotngl
ngbnnncncmtnhpxungtnhiungb.CcthitbhtrI2Cuc
mtachnhnghatrc,trongmtsbitachlthpcthcuhnh.nv
hocthitbkhitoqutrnhtruynthnglnvChvcnglnvtoxung
nhpng b,iu khin cho phpktthc qutrnhtruyn. NunvChmun
truynthngvinvkhcnsgikmthngtinachcanvmnmun
truyntrongdliutruyn.nvTucgnvnhachthngquan
vChcththitlptruynthngvtraoidliu.Busdliucthitkcho
phpthchinnhiunvChvTtrncngBus.
QutrnhtruynthngI2CcbtubngtnhiustarttorabinvCh.Sau
nvChstruynidliu7bitchaachcanvTmnmuntruyn
thng,theothtlccbitctrngslnnhtMSBsctruyntrc.Bitthtm
tiptheoschathngtinxcnhnvTsthchinvaitrnhn(0)haygi
(1)dliu.TiptheoslmtbitACKxcnhnbinvnhnnhnc1byte
trchaykhng.nvtruyn(gi)struyni1bytedliubtubiMSB.
Tiimcuicabytetruyn,nvnhnstoramtbitxcnhnACKmi.Khun
mu9bitny(gm8bitdliuv1bitxcnhn)sclplinucntruyntip
bytena.KhinvChtraoixongdliucnnsquanstbitxcnhnACK
cui cng ri sau s to ra mt tn hiu dng STOP kt thc qu trnh truyn
thng.
I2C l mt giao din truyn thng c bit thch hp cho cc ng dng truyn thng
giaccnvtrncngmtbomchvikhongcchngnvtcthp.Vdnh
truynthnggiaCPUvicckhichcnngtrncngmtbomchnhEEPROM,
cmbin,nghtothigianthc...HuhtccthitbhtrI2Chotngtc
400Kbps,mtschophphotngtccaoviMbps.I2Ckhnginthc
thiktninhiunvvnhtrcchxcnhach.
SPI
SPIlmtgiaodincngnitipngbbadychophpktnitruynthngnhiu
VKcphttrinbiMotorola.Trongcuhnhmngktnitruynthngnyphi
35
cmtVKgivaitrlCh(Master)vccVKcnlicthhoclChhocl
T.SPIc4tccthlptrnh,ccvphanhpnghkhtrnhvktthcngt
truynthng.Nhpnghkhngnmtrongdngdliuvphiccungcpnh
mttnhiutchclp.CbathanhghiSPSR,SPCRvSPDRchophpthchincc
chcnngiukhin,trngthivlutr.Cbnchncbncnthitthcthi
chungiaodintruynthngny.
DliuraMOSI(MasterOutputSlaveInput)
DliuvoMISO(MasterInputSlaveOutput)
NhpxungchunSCLK(SerialClock)
LachnthnhphntSS(SlaveSelect)
Hnh233:KtninguynltruynthngSPIgiamtMastervmtT
Hnh233chranguynlktnigiamtnvChvmtnvTtrongtruyn
thngSPI.TrongtnhiuSCLKsctorabinvChvltnhiuvoca
nvT.MOSIlngtruyndliuratnvChtinvTvMISOl
ngtruyndliuvonvChntnvT.nvTclachnkhi
nvChkchhottnhiu SS .
Hnh234:SktnitruynthngSPIcamtnvChvinhiunvT
NuhthngcnhiunvtnvChstophiracctnhiutchbitchn
nvT.CchcthchinnhsktninguynlmtnhtrongHnh
234.nvChstoratnhiuchnnvTnhccchntnhiulogicachc
nng.Cctnhiunyphiciukhinvmbonnhvthigiantrnh
trnghptnhiubthayitrongqutrnhangtruyndliu.Mtiudnhn
36
rarngSPIkhnghtrcchxcnhntrongqutrnhthchintruynthng.iu
nyphthucvogiaothcnhnghahocphithchinbsungthmmtscc
mrngphbnngoi.
2.2
CPU
Khi gii m a ch
v iu khin Logic
B nh
Ngoi vi
Trongphnnygiithiungngncutrcnguynlcaccchipxlnhngng
dngtrongccnnphncngnhnghinnay.
SphttrinnhanhchngccchngloiChipkhtrnhvimttchhpcaov
angcmttcngngknsthayitrongvicthit kccnnphncng
thitbxlviukhinstrongthpkgny.Michngloiucnhngc
imvphmviitngngdngvlunkhngngngphttrinpngmt
cchttnhtchoccyucucngngh.Chnganghngtitptrungchomtth
trng cng ngh tim nng rng ln l cc thit b x l v iu khin nhng.
Trongbivitnytcgigiithiungngnvccchngloichipxl,iukhin
nhnginhnhangtntivphttrinvmtscimvhngphmving
dngcachng.
2.2.1
hpthmccngoivi.Ccngoivithnglcckhichcnngngoivithngdng
nhbnhthigian,bm,bchuyniA/D,giaodinsongsong,nitipMc
tchhpngoivicngkhcnhaututhucvomcchngdngscthtm
cChipphhp.Thctviccngdngyucutchhpcaothssdng
giiphptchhptrnchip,nukhngthhuhtccChipucungcpgiiphp
mrngngoivipngchomtslngngdngrngvmmdo.
Bus a ch
Bus D liu
Bus iu khin
Hnh235:KintrcnguynlcaVKvicutrcHavard
VdvkintrccahVKAVR
37
Hnh236:KintrccahVKAVR
38
Hnh237:SkhichcnngkintrcPIC16F873A
2.2.2
Chip DSP
[Ref.SenKuo]
DSPvncbittinhmtloiviiukhincbitvikhnngxlnhanh
phcvccbitonyucukhilngvtcxltnhtonln.Viuimni
btvrngbngthngcabusvthanhghitchlu,chophpALUxlsongsong
vitccvxllnhnhanhhnccloiviiukhinthngthng.ChipDSP
chophpthchinnhiulnhtrongmtnhpnhvokintrcbnhHavard.
ThngthngkhiphisdngDSPtclpngccbitontnhtonlnvtc
caovvynhdngbiudintonhcslmtyutquantrngphnloiv
cquantm.Hinnaychyuchngvncphnloitheohaikiulduphy
ngvduphytnh.ycngchnhlmtyutquantrngphiquantmivi
ngi thit k la chn c mt DSP ph hp vi ng dng ca mnh. Cc loi
DSPduphytnhthnglloi16bithoc24bitcnccloiduphytnhthng
l32bit.MtvdinhnhvmtDSP16bitduphytnhlTMS320C55x,lucc
39
snguyn16bithocccsthctrongmtmingitrcnh.Tuynhinccgitr
vhstrunggiancthclutrvichnhxcl32bittrongthanhghitch
lu 40bit nhm gim thiu li tnh ton do php lm trn trong qu trnh tnh ton.
ThngthngccloiDSPduphytnhcgithnhrhnccloiDSPduphy
ngvyucuslngchnOnchipthnvcnsdnglngsiliconthn.
uimnibtcaccDSPduphynglcthxlvbiudinstrongdi
phmvigitrrngvng.Dovnvchuynivhnchvphmvibiu
dinskhngphiquantmnhiviloiDSPduphytnh.MtloiDSP32bit
du phy tnh in hnh l TMS320C67x c th x l v biu din s gm 24bit
mantissav8bitexponent.Phnmantissabiudinphnsltrongphmvi1.0+1.0
vphnexponentbiudinvtrcaduphynhphnvcthdchchuynsangtri
hocphitutheogitrsmnbiudin.iunytringcviccthitktrn
nn DSP du phy tnh, ngi pht trin chng trnh phi t qui c, tnh ton v
phnchiannhthangbiudinsvphilunlutmtikhnngtrnscth
xyratrongqutrnhxltnhton.Chnhiunygyrakhkhnkhngnh
i vi ngi lp trnh. Ni chung pht trin chng trnh cho DSP du phy ng
thngnginhnnhnggithnhlicaohnnhiuvnnglngtiuththng
thngcnglnhn.
Nhngnhthitkhthngphiquyt nhvngvchnhxccnthitchocc
ngdng.Ccvixlduphyngthngcsdngchoccngdngyucu
vchnhxccaovdibiudinslnphhpvihthngccutrcbnhln
HnnaccDSPduphyngchophpphttrinphnmmhiuquvngin
hnbngcctrnhbindchngnngbccaonhCdocthgimcgithnh
v thi gian pht trin. Tuy nhin gi thnh li cao nn cc DSP du phy ng ph
hpviccngdngkhcbitvthnglvislngt.
40
Hnh239:CutrcPROMvPLA
Lch s pht trin ca cc chng loi Chip kh trnh mng PLA (Programmable Logic
Array)c bt ngunt nguynl b nh chng trnh PROM (Programmable Read
OnlyMemory).Trongccuvoachngvaitrnhccngvocamch
logicvccngdliurangvaitrnhccngracamchlogic.VPROM
khng thc s ph hp cho mc ch thit k cc mch logic nn PLA ra i vo
uthpk70.Nrtphhpthchinmchlogiccdngtngcctch(vcu
thnhbiccphntlogicANDvOR).Nhngnhcimlchiphsnxutcaov
tchotngthp.khcphcnhcimnyPAL(ProgrammableArrayLogic)
cphttrin.NccuthnhtccphntANDkhtrnhvphntOR
gncnhvcchacphntflipflopurannckhnngthcthiccmch
logictunt.Hnh240mtcutrcchungcaPAL.
Hnh238:GinkhichcnngcaDSPTMS320C28xx
2.2.3
PAL
NgynaykhininccchngloiChipkhtrnhmngtathngbittimtstn
gi nh PAL, CPLD, FPGAMt cht lc s v s ra i v pht trin sau y s
gipchngtahnhdungccimvngungcraicachng.
Hnh240:CutrcchungcaPAL
TkhicraivphttrinPALtrthnhcschosraicahnglotcc
chngloiChipkhtrnhmngvicutrcphctphnnhSPLD(SimpleProgram
mable Logic Device), CPLD (Complex Programmable Logic Device), v sau ny l FPGA
(Field Programmable Gate Array). SPLD cng l tn gi cho nhm cc chng loi Chip
41
42
kiutngtnhPAL,PLA.VmtcutrcthSPLDchophptchhplogicvimt
caohnsoviPALthngthng,nhngkchthccanstnglnrtnhanh
nutiptcmrngvtngmttchhpsuvo.pngnhucumrng
mttchhpCPLDcphttrin.NlstchhpcanhiukhiSPLDv
cung cp thm kh nng kt ni kh trnh gia cc khi SPLD n l vi nhau. Vi
nguynlcutrcnyCPLDckhnngtchhpvimtcaotngngvi50
khiSPLDthngthng.
Hnh241:CutrcnguynlcaFPGA
FPGAthcsphhpchoccngdngihilngtnhtonlnnhtrongxl
tnhiu.FPGActhclptrnhhotngngthivimtsccngdliu
songsong.Chnglccngdliuhotngcathpnhiuccchcnngt
nginnphctpnhbcng,bnhn,bm,blutr,bsosnh,btnh
tngquan,
43
Hnh242:CutrcCLBvLAB
NgynaycthphnloiramtskiuchngloiFPGAdavocutocachng:
CutotSRAM:
ViloinyccmtktnikhtrnhcthchinbngccphntSRAM,chnhv
vychophpthchinlptrnhlplinhiuln.uimnibtcaloinylcc
tngthitkmicthcthcthivthnghimnhanhchng.HnnaSRAM
cnganglmthngphttrinrtmnhhinnaytrongnncngnghipsnxut
bnhvcnguthcthitheocngnghCMOSrtphhpvicngnghchto
FPGA.
TuynhinmtcimcthxemnhlnhcimcaFPGAcutotccphn
tSRAMlchngphicuhnhlimikhingunhthngccungcp.Cngvic
nythngcthchinbimtbnhngoichuyndnghocbimtbviiu
khinkmtheomch.ChnhvvycnglmgithnhcaFPGAtngthm.
Cutotcuch(antifused)
KhnggingnhloiFPGAcutotSRAM,FPGAvicutkiucuchclp
trnh offline bng mt thit b lp trnh chuyn dng. tng ch to loi FPGA ny
xutphttnhucuvmtthitbkhtrnhckhnnglucuhnhsaukhics
dng.Tclnkhngphilmcngviccuhnhmikhingunhthngccung
cp.KhiFPGAantifusedclptrnhthnkhngthbthayihayclp
trnhlina.Chnh nh iunynnnkhngcn btkmtbnhngoino
lutrcuhnhvcthtitkim,gimgithnhcathitb.
MtuimnibtcaFPGAantifusedlkiucutrclinktkhbnvngvicc
loi nhiu bc x. c im ny kh quan trng khi thit b phi lm vic trong mi
trngtimnngnhqunshochngkhngvtr.Vvyntrnhctrng
hp ri ro c th xy ra nu s dng cng ngh SRAM l hin tng lt trng thi
(flipped).Tuynhinhintngnycngcthckhcphcbngcchdphng
chp3nhnglilmtngthmchiphchto.
44
MtuimnibtcaloiFPGAantifusedlkhnngbovcngngh.Tcld
liu cuhnh lp trnh cho FPGAc thcbovbivicc bthpphphoc
khngchophpc.Trongqatrnhxlhocphttrin,ngilptrnhssdng
mt tp d liu cu hnh lp trnh v kim tra qu trnh np cu hnh cho FPGA.
Cngvicnychthchinmtlnvskhngththayicna.Khithchin
xongncthcthitlpthmmtthuctnhlchngctrctiptFPGAd
liulinquanncuhnh.NgoirachngtacngcthbitthmrngFPGAanti
fusedthngsdngtnnglnghnloiFPGASRAM,kchthccngnhhn,v
tccngnhanhhnmtchtnhkhongcchktnicnggiaccphntngn
hn.
TuynhinnhcimlnnhtcaFPGAantifusedlchcthclptrnhvcu
hnh mt ln. V vy n ch thc s ph hp khi thc thi hon chnh sn phm cui
cngvkhngphhpvimcchthitkphttrin.
CutotEEPROM/FLASH
EEPROMorFLASHbasedFPGAscngcnguynlcutotngtnhloiFPGA
SRAM. Cc phn t cu hnh cancktni da trn mtchuithanhghidch
di.Chngcthccuhnhofflinebngccthitblptrnhchuyndng.Cngc
mtscthlptrnhonlinenhngthigianlptrnhcuhnhsgpkhong3ln
thi gian thc thi vi nn FPGASRAM. Khi c cu hnh c lp trnh th
chngcthcduytrvkhngbmtinhnguynllugicaEEPROMhoc
FLASH. Loi FPGAEEPROM/FLASH c cu to nh hn so vi loi FPGASRAM v
vy cng c th gim c thi gian lan truyn tn hiu kt ni lin thng gia cc
phntlogic.
bovcngnghkhiFPGAccuhnhvarasdng,tacthbov
bngcchkhammm(cutotkhong50bitnvitrmbit).Muncc
thngtincuhnhtrctiptFPGA,ngitacnphicmkhavcngrtkh
hockhngthmctheonguynlthsai.Vmunvytheoctnhcngphi
mtnhngtriunmmihyvngthnhcngmrac.
TuynhincngnghchtoFPGAEEPROM/FLASHihithcthiquanhiucng
onxlhnsoviloiFPGASRAMvvymsphttrincachngcngchm
hn.Hnnannglngtiuthcachngcnglnhnvphinuirtnhiucc
phntintrko(pullupresistor).
CutotthpFLASHSRAM
NgynayngitacngphttrinchtoccloiFPGAcutotccthpSRAM
vFLASHtndngcccuimcachaichngloiny.Thngthngcc
phn tcuhnhFLASHscsdngluccnidungcuhnhsaochp
choccphntcuhnhSRAM.VccphntcuhnhSRAMhontoncthc
cuhnhlitheoyucuthitktrongkhivnduytrmtphnthitkcuhnhgc
lutrongccphntFLASH.
Ngi ta cng thng phn loi FPGA da vo phn t kin trc ca chng v bao
gm3loichnh:mn,thvtrungbnh.Bnchtvicphnloinyldavokiu
khilogickhtrnhcuthnhnnFPGA.ViloiFPGAmnthkintrccckhilogic
khtrnhthnglcccnglogicngin(kiuAND,OR,vccphntlugi
nhTrigerD).Kiukintrcnyphhpvthngsdnghiuquvikintrc
ASIC.GnyxuthphttrincaFPGAangtptrungvoloikintrcth.Tc
lcckhilogickhtrnhlcckhickhnngxllogiclnvinhiuthplin
ktvphctpvinhiuuvovralinkt.Tutheomccakhilogickh
trnhmngitaphnrathnhccloitrungbnh.
ChailoicutrccbncuthnhnncckhilogickhtrnhtrongkintrcFPGA
th hoc trung bnh l MUX (Multiplexer) v LUT (Lookup Table). Trong loi cu trc
MUX th cc phn t logic c cu thnh theo cu trc t hp cc u vo ra theo
nguynlMUXnhmttrongHnh243:KhilogicdngMUX.
45
46
Hnh243:KhilogicdngMUX
iviloicutrcLUTthccuvothcchtlccthpchnragitrtrong
bngchtlcahmchcnngcnthcthi.Nguynlcaloikhilogicnyc
mtnhtrongHnh244.
Hnh244:LUTthchinhmthpANDvOR
3.1
c im phn mm nhng
9
9
9
Hngchcnnghocth
Hnchvtinguynbnh
Yucuthigianthc
3.2
3.2.1
Hnh245:HnhnhcaChipcccctlcckhiRAMnhng
FPGAvihtnhnDSP
Thcchtlmtthpnhmtngtcvkhnngtnhton.Khinimnycng
tngtnhccbngxltonhctrongkintrcmytnh.Nguynllnhm
sansvgimbttisangFPGAthcthiccchcnngtnhtonln(thngthng
ihithchintrongnhiunhphotngcaChipDSP)vchophpChipDSPtp
trungthchinccchcnngnnhptiu.ThpFPGAvDSPlmtkintrc
rtlinhhotvcbitcithinchiusutthchinvtngtchnrtnhiuso
vikintrcnhiuChipDPShocASICsngthigithnhlithphn.
Cc h thng c s
Trongcchthngbiudinshinnayucbiudindngtngqutltng
luthatheocs,vcphnloitheogitrcs.Mtcchtngqutmthbiu
dinscsbvalmtsnguynnmtrongkhonggitrcsbcbiudin
nhsau:
n
A = an b n + an 1b n 1 + + a0 = ai bi
(1.1)
i =0
Vdnhcsbinary(nhphn),csdecimal(thpphn),cshexadecimal,cs8
Octal(btphn).
Vdvbiudinccgitrtrongcchcskhcnhau:
243.5110=2x102+4x101+3x100+5x101+1x102
2123=2x32+1x31+2x30=2310
101102=1x24+0x23+1x22+1x21+0x20=2210
Hailoicsbiudinthngdngnhthinnaychocchthngxlslcsnh
phnvcsmisu.
3.2.2
S nguyn
Trongbiudinscduphnbitsdngvsmngitasdngbittrngs
lnnhtquiclmbitduvccbitcnlicsdngbiudingitrln
cas.Vdmtt8bitcsdngbiudingitr1scdngnhphnl
10000001,vgitr+1scdng00000001.Nhvyvimtt8bitcthbiudin
Hnh246:SnguynlmchghpniVKvFPGA
47
48
cccstrongphmvit127n+127.MtcchtngqutmttNbitsbiu
dinc2(N1)1n+2(N1)1.
Chkhithchincnghaiscdu:
9 Nuhaiscngduththchinphpcngphnbiudingitrvsdngbit
ducngduvihais.
9 Nu hai s khc du th kt qu s nhn du ca ton t ln hn, v thc hin
phptrgiatontcgitrlnhnvitontbhn.
Vd1:Cnghaiscdu010011112v001000112.
1111
carries
01001111
(79)
0+0100011
+(35)
01110010
(114)
Vd2:Cnghaiscdu010011112v011000112.
carries
Nhcuicng
1 1111
Trn
0 1001111
(79)
bnh
0+ 1100011
+(99)
0
0110010
(50)
Vd3:Trhaiscdu010011112v011000112.
Hinnayngitasdnghaiquicbiudinsnguynphnbittheothtca
bytetrngstrongmttcbiudin:
Litteedian:bytetrngsnhnhtngtrcthunlichophpcnghoc
trv
Bigendian:bytetrngslnnhtngtrcthunlichophpnhnhoc
chia.
Vdxtmtsnhphn4byte
Theoquicbiudinlitteedianththtachlutrongbnhsl:
achcs+0=Byte0
achcs+1=Byte1
achcs+2=Byte2
achcs+3=Byte3
Vtheoquicbiudinsbigediansl:
achcs+0=Byte3
achcs+1=Byte2
achcs+2=Byte1
achcs+3=Byte0
3.2.3
S du phy tnh
Chngtacthsdngmtkhiuduchmobiudinmtsthc.Duchm
ocsdngtrongtdliudngphnbitvngncchgiaphnbiudin
gitrnguyncadliuvmtphnlthpphn.Vdvmtt8bitbiudins
duphyngcchranhtrongHnh31.Vicchbiudinny,gitrthcca
sctnhnhsau:
N = a4 24 + a3 23 + a2 22 + a1 21 + a0 20 + a1 21 + a2 22 + a3 23
0112
borrows
0
1100011
(99)
0 1001111
(79)
0
0010100
(20)
Vd4:Cnghaiskhcdu100100112(19)v000011012(+13)
012
borrows
1
0010011
(19)
0 0001101
+(13)
1
0000110
(6)
Thuttonthchinphptnhcdu:
(1) Khaibovxaccbinlugitrvduchunbthchinphptnh.
(2) Kimtraducatontthnhtxemcphismkhng.Nulsm
ththchinbduvbtont.Nukhngthchuynquathchinbc3.
(3) Kimtraducatontthhaixemcphismkhng.Nulsmth
thchinbduvbtont.Nukhngthchuynsangthchinbc4.
(4) Thchinphpnhnhocchiavicctontvaxl.
(5) Kimtradu.Nuzerothcoinhktthc.Nubng1(0ffh)ththchin
phptnhbhaiviktquthucvktthc.
49
= 0 24 + 1 23 + 0 22 + 1 21 + 1 20 + 1 21 + 0 22 + 1 23
= 8 + 2 + 1 + 1/ 2 + 1/ 8
= 11.625
Hnh31:nhdngbiudinsduphytnh8bit
Nhcimcaphngphpbiudinsduphytnhlvngbiudinsnguyn
bhnchbiduphytnhcgncnh.iunydxyrahintngtrns
khithchinccphpnhnhaisln.
50
3.2.4
S du phy ng
Phngphpbiudinschnhxcvlinhhotcsdngrngrihinnaylh
thng biu dins du phyng.ycng l mt phngphp biudins khoa
hcbaogm2phn:phnbiudinlutrsmantissavmtphnlutrbiudin
s exponent. V d trong h c s thp phn, mt s nguyn bng 5 c th c biu
dinhocl 0.5 101 , 50 101 ,hoc 0.05 102 ,Trongmytnhshochthngsni
chung,ccsduphyngnhphnthngcbiudindng
(1.2)
N = M 2E
Trong,Mlphngitrsmantissa,ElphnlythacasN.Mthnglcc
gitrlmphnthpphncanthngnmtrongkhong 0.5 M 1 .
Hnh32mtbiudinmtsduphyngcat8bitgm5bitbiudinphns
c ngha mantissa, v 3 bit biu din phn ly tha. V cc phn mantissa v ly tha
ucthnhnccgitrmvvyccbitutincaccphngitructh
csdngbiudindukhicnthit.
N min = 0.5 2 (2
e1
1)
(1.4)
TheotiuchunIEEE754v854c2nhdngchnhchosduphynglsthc
di(long)vsthcngn(short)chngkhcnhauvdibiudinvlnlutr
yucu.Theochunny,sthcdicnhdng8bytebaogm1bitdu,11bit
exponentv53bitlugitrscngha.Mtsthcngncnhdng4bytebao
gm1bitdu,8bitlythav24bitlugitrscngha.Mtsthcngncth
biudinvxlcscgitrnmtrongdi1038to1038vsthcdicthbiu
dinvxlcscgitrthucdi10308to10308 .biudinmtgitrtng
ngnhvybngsduphytnhthcnti256bithay32bytedliu.
3.2.5
Mt s php tnh c bn
Thchinphpnhn
VtrongccVKnhngthngkhnghtrccphpnhnnhiubyte.Cngvicny
phicthchinbingiphttrinchngtrnhvthhindidngmtthut
tondatrnccphptoncsnpdngchosnhphnlcng/trvdch.c
mtshiubitrrnghnvthuttonthchinphpnhn,chngtaxtmtvd
vmtphptnhnhnhaisnhphntngqutnhsau:
A = an 2n + + a1 21 + a0 20
B = bn 2n + + b1 21 + b0 20
bn ( A) 2n + + b1 ( A) 21 + b0 ( A) 20
Hnh32:Biudinduphyng8bt
TrongmtsVXL,VKdorngtnhphnnhnncthsdng2tbiu
dinmtsduphyng.Mttsdngbiudingitrmantissa,vmtphn
biudingitrexponent.
Nuphnmantissacchunhathnhmtslcgitrtrongkhong 0.5 M 1
thbitutinsaubitduthnglmtvscmtduphynhphnnngaysau
bitdu.
PhnbiudinexponentEsquytnhvtrcaduphyngsdchsangtri(E>0)
haysangphi(E<0)baonhiuvtr.Vdbiudinmtsthpphn6.5bngmtt
8bitduphyngnhsau:
N = .1101 2112
1 1 1
= + + 23 = 6.5
2 4 16
Trongtrnghpnyphnmantissagm4bitvphnexponentgm3bit.Nutadch
duphysangphi3vtrbitthchngtascmtsnhphnduphyngbiu
dincsl110.1.
Tngquthatrongtrnghpmtsnhphnduphyngnbitgmmbitbiu
dinphnmantissavebitbiudinphnexponentthgitrcaslnnhtcthbiu
dincsl
N max = (1 2 m +1 )2(2
e1
1)
(1.3)
Vsdngnhnhtcthbiudinl
51
a3 23 + a2 22 + a1 21 + a0 20
b3 23 + b2 22 + b1 21 + b0 20
a3 b0 23 + a2 b0 22 + a1 b0 21 + a0 b0 20
a3 b1 24 + a2 b1 23 + a1 b1 22 + a0 b1 21
a3 b2 25 + a2 b2 24 + a1 b2 23 + a0 b2 22
a3 b3 26 + a2 b3 25 + a1 b3 24 + a0 b3 23
Thuttonthchinphpnhn32bittheotrnhtsau:
(1) Cpphtvngnhlnluscnhn32bitvcththchinphp
dchtri32ln.tgitrkhitochobmbitbng32vxathanhghi
haybinlugiktquphpnhn.(Ch:Slngbitcnlugitrkt
quphibngtngslngbitcnluccshngphpnhn)
(2) Dchsnhnsangphimtvtrbitvkimtracnh.Nukhngccnh
thtiptcthchinbc3.Nuxuthincnhthcngthmvobinlu
ktquhinticaphpnhnmtgitrbnggitrcascnhn.
52
Vdphpnhntnhphn4bit1100x1101
0. A
1100(12)
B
1101(13)
Counter
100(4)
Product
0
1. A
11000(24)
B
0110(6)
Counter
011(3)
Product
1100(12)
2. A
110000(48)
B
0011(3)
Counter
010(2)
Product
1100(12)
3. A
1100000(96)
B
0001(1)
Counter
001(1)
111100(60)
Product
4. A
11000000(192)
B
0001(1)
Counter
000(0)
Product
10011100(156)
ThcthithuttonthchinphpnhnsnguynkhngdubngngnngC/C++:
long product = 0;
product += multiplicand;
multiplicand <<= 1;
Thchinphpchia
Phpchiacthcthchinbngcchchuynithnhphpnhnvphpdch.
Vdmunthchinphpchia5tronghthpphnchngtacththchinbimt
php nhn 2 v dch du phy ca kt qu thu c sang tri mt n v. Mt cch
tngqutcththchinchuynimtphpchiatngngnhsau:
x nx
=
a an
iviphpchianhphnthnscchnlmtslythaca2vphilnhn
a.
Thuttonthchinphpchiacthcthcthibiphpdch,cngvtrnhsau:
(1) Npbinlugitrthngsbnggitrcasbchia;sbcdchcnthc
hinbngsbitlusbchia.
(2) Dchtribinlugitrthngsvophnbinlugitrdcaphpchia.
(3) So snh s d vi s chia. Nu s d ln hn hoc bng s chia th thc hin
php tr s d i mt gi tr bng gi tr s chia. Nu khng th chuyn sang
thchinbctiptheo.
(4) Gim bin lu gi tr s ln lp v kim tra xem n bng khng cha. Nu
chabngkhngthquaytrlibc2thchintip,cnnubngkhngth
gitrcaphpchiaclutrongnhchasdvthngs.
ThcthithuttonbngngnngC/C++
i = 0; quotient = 0;
divisor >>= 1;
while (i != 0){
quotient <<= 1;
quotient ++;
divisor >>=1 ,
i--;
Trckhithchinphpchiayucucnphikimtralichiakhngcthxyra.
Thuttonthchinphpchiachyudatrnphpdchvphptr.Sbchias
dchsangtrivluvomtbin,phndscsosnhvischia.Nuphnd
bnghoclnhnschiathphndsctrimtgitrbngschiavsb
chia s c cng thm mt v dch sang tri mt v tr bit v chnh c gi l
thngs.Qutrnhnyclplivtiptcchonkhislndchbngngs
bitcatlusbchia.
Cc bin c s dng trong qu trnh thc hin php chia bao gm 5 bin s: s b
chia,schia,thngs,sdvslndch.Trongqutrnhthchinthsbchia,
thngs,vsdcngchiaschungmtvngnh.Sdvsbchiasthuc
cng mt t ln. S b chia nm trong phn t trng s thp v s d s nm trong
phnttrngscao.Saukhithchinxongphpchiathsbchiascdchton
bsangtrivophnbinsdvcthaythbngthngs.Ktqucnlithu
53
54
(3) Dchscnhnsangtrimtvtrbitvgimbmdchimt.Kim
tra xem gi tr ca b m dch c bng khng khng? Nu bng khng th
thchintipbc4,cnkhngthquaytrlithchinbc2.
(4) Ktqucuicngcaphpnhnclutrongthanhghibinktqu.
cchcnlsdvthngs.Hnhnhvbnhluccbinsthchintrong
thuttonnycminhhonhtrongHnh33.
bnhcncungcpchoCPU.Cclnhcnggnvphchpthscncngtkhng
gianbnhchngtrnh.Kintrctplnhphchpsdngcclnhvidibin
ituthucvophchpcacclnhtnginnphctp.Trongsc
mtslnglncclnhcthtruynhptrctipbnh.V vyvikintrctp
lnh phc hp chng ta s c c mt tp lnh a dng phc hp, gn, vi di
lnh thay i v dn n chu k thc hin lnh cng thay i tu theo phc hp
trongtnglnh.Mtvilnhphchp,cbitlcclnhtruynhpbnhcnti
vichcchukthchin.TrongmtstrnghpccnhthitkVXLthyrng
cnphigimchuknhp lnhcthigianchocclnh honthnhiuny
cngdnnthigianthchinbkodihn.
CISC
RISC
Btklnhnocngcththam Ch c cc lnh Np (Load)
chiutibnh
hoc Lu tr (Store) l c th
thamchiutibnh
Tntinhiulnhvkiuach Tntitlnhvkiuach
Khundnglnhadng
Khundnglnhcnh
Chcmttpthanhghi
Cnhiutpthanhghi
Cc lnh thc hin trong nhiu Cc lnh thc hin trong mt
nhpchuk
nhpchuk
C mt chng trnh nh Lnh c thc hin trc tip
thngdchlnh
ngaybiphncng
Chng trnh thng dch lnh Chng trnh bin dch m
phctp
ngunphctp
Khnghtrcchpipeline
Htrcchpipeline
Kchthcmchngtrnhnh Kchthcmchngtrnhln
gn
Hnh33:Thchinphpchia
3.3
Tp lnh
3.3.1
HuhtccviiukhinvVXLnhngccutrccphttrindatheokintrc
mytnhtplnhphchpCISC(ComplexInstructionSetComputer).CISClmtcu
trcxlcclnhphchp,tclmtlnhphchpsbaogmmtvilnhn.
Theo nguyn l ny c th gim bt c thi gian dng truy nhp v c m
chngtrnhtbnh.iunyrtcnghavicckintrcthitkxltnhton
theokiutunt.Ldochosraicatplnhphchpnhmgimthiudung
lngbnhcnthitlugichngtrnhthchin,vsgimcgithnhv
55
56
3.3.2
nh dng lnh
gilachhiudngcatontvthnglng.Chngtasxtmtsloihnh
nhachcbnhinangcsdngrngritrongcchthchinlnh.
nhachtcth(ImmediateAddressing)
Phngphpnychophptruyngitrtontlnhmtcchtcthnhmtphn
caculnhcthcthi.Vdnusdngkiunhachtcthichoculnh
Load0x0008thgitr0x0008scnpngayvoAC.Trngbitthngdng
chatontlnhschagitrthccatontchkhngphiachcatont
cntruyncholnhthcthi.Kiuachtcthichophpthcthilnhrtnhanhv
khngphithchintruyxutbnhnpgitrtontmgitrtontc
gpnhmtphntrongculnhvcththcthingay.Vtontthamgianhmt
phncnhcachngtrnhvvykiunhachnychphhpvicctont
hngvbittrctithiimthchinchngtrnh,hayxcnhtithiim
bindchchngtrnh.
nhachtrctip(DirectAddressing)
Phngphpnychophptruyntontlnhthngquaachtrctipchatont
trongbnh.Vdnusdngcchnhachtonttrctipthtrongcu
lnhLoad0x0008schiuldliuhaytontcnptrongculnhnynm
trongbnhtiach0x0008.Cchnhachtrctipcngthucloihnhkh
nhanh mc d khng nhanh c nh c ch truyn a ch tc thi nhng mm
docaohnvachcatontkhngnmtrongphnmlnhvgitrcththay
itrongqutrnhthcthichngtrnh.
nhachthanhghi(RegisterAddressing)
Trongcchnhachvtruyntontnythtontkhngnmtrongbnhnh
trng hp nh a ch trc tip m nm ti chnh trong thanh ghi. Khi ton t
cnpvothanhghithvicthchincthrtnhanhvtctruyxutthanhghi
nhanhhnsovibnh.Nhngslngthanhghichchnvphicchias
trongqutrnhthchinchngtrnhvvycctontphicnpvothanhghi
trckhincthcthi.
nhachgintip(IndirectAddressing)
Trongphngphptruyntontny,trngtonttrongculnhcsdng
thamchiutimtcontrnmtrongbnhtrtiachhiudngcatont.
C ch truyn ny c th ni l mm do nht so vi cc c ch truyn a ch khc
trongqutrnhthcthichngtrnh.Vdnupdngcchtruynachgintip
trongculnhLoad0x0008thschiulgitrdliucachti0x0008thc
chtlchaachhiudngcatontcntruynchoculnh.Githittivtr
nh 0x0008 ang cha gi tr 0x02A0 th 0x02A0 chnh l gi tr thc ca ton t s
cnpvoAC.Mtbinthkhccngcththchintheocchnyltruyn
thamchiuticontrnmtrongkhuvcthanhghi.Cchnycncbittivi
tngilnhachgintipthanhghi.VdmtculnhLoadR1sdngcch
57
58
Hnh34:nhdnglnhMIPS
Hnh35:Phnloiccphpthcthilnh
3.3.3
truynachgintipthanhghithchngtacthddngthngdchctont
truyntrongculnhnycachhiudngnmtrongthanhghiR1.
Cchnhachcsvchs(IndexedandBasedAddressing)
Trongcchnyngitasdngmtthanhghichaoffset(chnhlchtng
i)msccngvitonttoramtachhiudng.Vd,nutontX
calnhLoadXcnhachtheocchachchsvthanhghiR1lthanh
ghichachsvcgitrl1thachhiudngcatontthcchtslX+1.C
chnhachcscnggingnhvyngoitrmtiulthayvsdngthanh
ghiachoffsetthysdngthanhghiachcs.Vmtlthuytskhc
nhaugiahaicchthamchiuachnylchngcsdngthnochkhng
phicctontctnhtonthno.Mtthanhghichssluchsmsc
sdngnhmtoffsetsoviachcaratrongtrngachcalnhthc
thi.Thanhghicslumtachcsvtrngachtrongculnhthcthis
lu gi tr dch chuyn t a ch ny. Hai c ch tham chiu a ch ny rt hu ch
trong vic truy xut vi cc phn t kiu mng. Tu thuc vo thit k tp lnh cc
thanhghimcchchungthnghaycsdngtrongcchnhachny.
nhachngnxp(StackAddressing)
Trong c ch truyn a ch ny th ton t nhn c t nh ngn xp. Thay v s
dngthanhghimcchchunghaynhkintrcdatrnngnxplucctont
trnnhcangnxp,vcthtruyxutviCPU.Kintrcnykhngchhiuqu
trongviclugiccgitrtrunggiantrongccphptnhphctpmcncungcp
mtphngphphiuqutrongvictruynccthamstrongccligihmcng
nhluctcccutrcdliuccbvnhngharaphmvitnticaccbin
vcchmcon.Trongcccutrclnhtruyntontdatrnngnxp,huhtcc
lnhchbaogmphnm,tuynhincngcmtslnhcbitchcmttontv
dnhlnhctvo(push)hoclyra(pop)tngnxp.Chcmtslnhyucuhai
ton t thhaigitr chatrong 2 nh trnnhngnxpscs dng.V d
nhlnhAdd,CPUlyrakhingnxphaiphntnmtrnnhrithchinphp
cngvsauluktqutrlinhngnxp.
Cccchnhachkhc
Crtnhiubinthtobicccchnhachgiithiutrn.lsthp
trongvictorahocxcnhachhiudngcatonttruyncholnhthcthi.
Vdnhcchnhachchsgintipsdngngthichaicchnha
chngthi,tngtnhvycngccchnhachcs/offsetCngcmt
scchtngtnghocgimthanhghisdngtronglnhangthcthinhvy
mcthgimclncamchngtrnhcbitphhpchoccngdng
Nhng.
59
3.3.4
Hnh36:Nguynlthchinpipeline
Pipelinecthchindatrnnguynlxpchngcunchiuccphnontrong
mi mt lnh. Thng thng mi mt lnh c chia ra lm nhiu phn on thc
hin,phbinhinnayl5phnontuntnhsau:
(1) Tr lnh(Instruction Fetch): Thc hin tr ti lnh thc hin bngcch ca
chlnhtthanhghicontrlnh(PC),clnhratbnhchngtrnhv
tnhtonrinpgitrmivotrongthanhghicontrlnhtrtilnhs
thcthitiptheo.
(2) Giimlnh(Decode):Thchinthngdchvchuynimlnhthnhdng
mALUcthhiuvchunbthcthi.Qutrnhnythcchtlqutrnh
cvchuyninidungtrongccthanhghichngtrnh.
(3) Thchinlnh(Execute):ALUthcthilnhvacgiim.
(4) Truy nhpb nh d liu(Memory):crahocvitvob nh d liu nu
lnhthchincnhucuny.
(5) Vittrli(Writeback):Honthnhvcpnhtnidungccthanhghi.
Chngtacnphnbitcchpipelinevcchthchinsongsongmcdchaiu
nhmpngyucuthcthicnhtranhvtngtcthcthi.Cchpipelinegii
quytvncnhtranhvtngtcthchinbngcchchianhtnhtonthnh
ccbcnhtrongkhicchsongsongssdngnhiunguntinguynclp
thchin.
60
Hnh37:Qutrnhthchinlnhtheonguynlpipeline
3.3.5
Harzard
Trongcchthchinlnhpipelinethhinrcuimtrongvicthcyhiu
sutthchinlnh,tuynhincthxyrahintngthcthisaidosthiungb
vphthuclnnhaugiacclnhtrongnhmthcthipipeline.
Hazarddliu
Hintngharzardxyrakhicsphthuclngiacclnhnmtrongkhongxp
chngthchincunchiutheonguynlpipeline.iunycthddnghnhdung
khihaihocnhiulnhthchinxpchngkhic nhucucgitrcacngmt
tont.Dosphthucnhvynnkhivitchngtrnhchngtaphikimsot
cthtchngtrnhmcclnhscthchinnhthno.Mcchcavic
thcthillmsaohtrccchthchinsongsongvtngchiusut
61
Xthailnhivjtronglnhicthchintrclnhjtrongchngtrnh.Hin
tngHazarddliucthxyranhsau:
RAW(readafterwrite):csaukhivit
Khilnhivjucnsdngvtraoithngtinvicngmtgitrnh,trong
lnhicnphithchinxongvcpnhtgitrvonhrilnhjmicth
cvsdng.Nulnhichathchinxongmlnhjcgitrnhths
xyrahintngcgilhazarddliu.Lnhjcthngtintmtnhtrc
khilnhikpvitvovvylnhjschccgitrcchkhngphigitrmi
cnphisdng.Trongcchthchinpipeline5phnonsgpphihintng
hzarddliukhicmtlnhnp(load)theosaumtlnhALUsnguynvsdng
trctipktqunp.
WAW(writeafterwrite):Vitsaukhivit
Lnhjvitvomttonttrckhilnhivitvo.Myucuthcthingchng
trnhllnhiphivittrclnhjvgitrcuicnglutrongtontphidolnhj
arachkhngphilnhi.Hintngnycgilhazarddliukhicsph
thucuravnhiulnhcngcnhucutruynhpvitvocngmtbinhaymt
nh.
WAR(writeafterread):Vitsaukhic
jvitvotontchtrckhinccbilnhidolnhIsnhncgitr
sai. Hin tng Hazard ny xut hin khi c s ph thuc ton hng trong cc php
tnh
Hazarddosphthuciukhin
Kiuphthuccngkhphbinldocutrciukhin.Sphthuciukhin
cquytnhtrnhtthcthicamtlnhitheolnhrnhnhmbosaochon
cthcthingnhthtmongmun.Ttccclnhngoitrkhicbnu
tincachngtrnhuc iukhintheocutrclnhrnhnhvphic
mbothcthingtheotht.Mtvdnginnhtvsphthuciu
khin l s ph thuc iu khin theo cu trc ifthenPhn thc thi trong phn
thensphthucculnhiukinif.Vdonmchngtrnhminhhanh
sau:
if (p1) {
S1;
}
if (p2) {
S2;
}
62
Culnhciukhinphthucvop1vS2ciukhinphthucp2ch
khngphip1.
Nichung,c2rngbuccthgithittrongsphthuciukhin:
(1) Mt lnh thc hin ph c quyt nh bi mt lnh iu khin r nhnh th
khng th c php chuyn ln trc cu lnh thc hin kim tra iu kin. V d
chngtakhngthalnhtphnthenlntrcphnif.
(2)Mtlnhthchinclpvkhngphthucvolnhrnhnhkhngthc
chuynvokhuvcsauphnthchincanhnhthchinphthuc.Vdkhng
thamtlnhlntrcphnlnhifvchuynnvotrongphnthen.
Sphthuciukhinphicmbobi2thuctnhtrongcchpipelinen
gin. Th nht, cc lnh thc hin trong chng trnh phi ng theo trnh t c
iu khin ca n. Trnh t ny phi c m bo rng mt lnh m phi thc thi
trcmtnhnhiukhinthphithchintrcnhnh.Thhai,vicphthin
rasxungtviukhin(controlhazard)smborngmtlnhmciu
khinphthucvomtnhnhthkhngcthchinchngnohngthchin
canhnhrrng.Bomcsphthuciukhinlcnthitvcngl
mt cch n gin m bo ng trnh t thc hin chng trnh. S ph thuc
iu khin khng phi l mt s hn ch c bn v kh nng thc thi chng trnh.
Chngtacthsnsngthcthithmnhnglnhmlrakhngnncthcthi
nuchngkhnggynhhnggntnhngncachngtrnh,nukhngs
xungtgyrabisphthuciukhincthxyra.Sphthucviukhin
khng phi l mt thuc tnh kch tnh bt buc phi bo m. Thay v iu , hai
thuctnhkchtnhchoviclptrnhmtcchngnvthngcboml
phitrnhcxungtbicsphthucvdliuviukhinvchnhl
hnhvingoilcthxyratronglungdliuthcthichngtrnh.
3.4
3.4.1
Ngn ng
Mttrongnhngngnnglptrnhclphcprngrinhthinnaylngnng
C. So vi bt k ngn ng lp trnh no khc ang tn ti C thc s ph hp v tr
thnhmtngnngphttrincahnhng.iunykhngphilchuvstn
timi,nhngtithiimnythCcllmtngnnggnginhttrthnh
mt chun ngn ng trong th gii h nhng. Trong phn ny chng ta s cng tm
hiutisaoClitrthnhmtngnngphbinnvyvtisaochngtalachn
nnhmtngnngminhhachoviclptrnhhnhng.
Sthnhcngvphttrinphnmmthnglnhvoslachnngnngph
hpnhtchomtdntra.Cnphitmmtngnngcthpngcyu
culptrnhchoccbxlt8bitn64bit,trongcchthngchchuhnv
63
bnhviKbytehocMbyte.Chotinay,iunychcClthcscththamn
vphhpnht.
RrngCcmtsuimnibttiubiunhkhnhvddngchovichc,cc
chngtrnhbindchthngkhsnchohuhtccbxlangsdnghinnay,
vcrtnhiungibitvlmchcngnngnyri,haynicchkhccng
cphcptlu.HnnaCclithlkhngphthucvobxlthcthi
m ngun. Ngi lp trnh ch phi tp trung ch yu vo vic xy dng thut ton,
ngdngvthhinbngngnngthnthinthayvphitmhiusuvkinthc
phn cng, cng nh rt nhiu cc u im ni bt khc ca ngn ng bc cao ni
chung.
ClmtthmnhlnnhtcaClmtngnngbccaomcthpnht.Tclvi
ngnngCchngtavncthiukhinvtruynhptrctipphncngkhthun
tinmkhnghphihysinhhaynhibtkmtthmnhnocangnngbc
cao.Thcchtycnglmttrongnhngtiuchxydngcanhngngisng
lprangnngCmunhngti.Thctiunyccpnkhihainh
sng lp ra ngn ng C, Kernighan v Ritchie a vo trong phn gii thiu ca
cunschcahTheCProgrammingLanguagenhsau:
Cisarelativelylowlevellanguage.Thischaracterizationisnotpejorative;itsimplymeans
thatCdealswiththesamesortofobjectsthatmostcomputersdo.Thesemaybecombinedand
movedaboutwiththearithmeticandlogicaloperatorsimplementedbyrealmachines
TtnhinlCkhngphilngnngduynhtchoccnhlptrnhnhng.tnht
hinnayngitacngcthbittingoingnngClAssembly,C++,vAda.
64
Adacnglmtngnnghngitngmcdnkhngcphcprngri
nh C++.Adacxy dng bi c quan quc phngM phc vphttrincc
phn mm qun s chuyn dng c bit. Mc d cng c chun ha quc t
(Ada83vAda95)nhngnvnkhngcphcprngringoivicngdngch
yutrongcclnhvcqunsvhngkhngvtr.Vncngdndnbmtu
thvsphcptrongthigiangny,ycnglmtiungticvbnthn
Adacnglmtngnngcnhiucimphhpchovicphttrinphnmm
hnhngthayvphisdngC++.
3.4.2
Bin dch
Hnh38:Qutrnhphttrinvbindchphnmmnhng
Qutrnhbindch(Compiling)
Nhimvchnhcabbindchlchuynichngtrnhcvitbngngnng
thnthinviconngivdnhC,C++,thnhtpmlnhtngngcthc
vhiubibvixlch.Theocchhiunythbnchtmtbhpngcngl
mt b bin dch chuyni mtmtt mt dnglnh hpng thnhmtdng
m lnh tng ng cho b vi x l c th hiu v thc thi. Chnh v vy i khi
ngi ta vn nhm hiu gia khi nim b hp ng v b bin dch. Tuy nhin vic
bindchcabhp ngscthc thinginhnrtnhiusoviccbbin
dchchoccmngunvitbngngnngbccaokhc.
Mimtbxlthngcringngnngmyvvycnphichnlamtbbin
dchphhpcthchuynichnhxcthnhdngmmytngngvibx
lch.ivicchthngnhng,bbindchlmtchngtrnhngdnglun
65
cthcthitrnmych(mitrngphttrinchngtrnh)vcnctngilb
bindchcho(crosscompiler).Vbbindchchytrnmtnnphncngtora
mchngtrnhchytrnmitrngphncngkhc.Vicsdngbbindchcho
ny l mt thnh phn khng th thiu trong qu trnh pht trin phn mm cho h
nhng.Ccbbindchchothngcthcuhnhthcthivicchuynicho
nhiunnphncngkhcnhaumtcchlinhhot.Vviclachncuhnhbindch
tngngviccnnphncngikhicngkhclpvichngtrnhngdng
cabbindch.
Ktquutincaqutrnhbindchnhnclmtdngmlnhcbitti
vi tn gi l tp i tng (object file). Ni dung ca tp i tng ny c th c
xemnhlmtcutrcdliutrunggianvthngcnhnghanhmtnh
dngchunCOFF(CommonObjectFileFormat)haynhdngcablinktmrng
ELF (Extended Linker Format) Nu s dng nhiu b bin dch cho cc modul m
nguncamtchngtrnhlnthcnphimborngcctpitngcto
raphicchungmtkiunhdng.
Huhtnidungcacctpitngubtubimtphnheadermtcc
phntheosau.Mimtphnschamthocnhiukhimhocdliunhc
sdngtrongtpmngun.Tuynhincckhicnhmlibibbindchvo
trongccphnlinquan.Vdnhttccckhimcnhmlivotrongmt
phncgiltext,ccbintonccckhito(cngccgitrkhitoca
chng)votrongphndliu,vccbintonccchackhitovotrongphn
bss.
Qutrnhlinkt(Linking)
Tt c cc tp i tng nhn c sau bc thc hin bin dch u tin u phi
cthplitheomtcchcbittrckhincnpvchytrnmitrng
phn cng ch. Nh thy trn, bn thn cc tp i tng cng c th l cha
hon thin v vy b lin kt phi x l t hp cc tp i tng vi nhau v
honthinntphncnkhuytchoccbinhochmthamchiulinthnggiacc
tpmnguncbindchclp.
Ktquuracablinktlmttpitngmicchattcmvdliu
trongtpmngunvcngkiunhdngtp.Nthcthiciunybngccht
hpmtcchtngngccphntext,dliuvphnbsstcctpuvovto
ramttpitngtheonhdngmmythngnht.Trongqatrnhblinkt
thchinthpccphnnidungtngngncnthchinthmcvnhon
66
chnhccachthamchiucaccbinvhmchacytrongbcthc
hinbindch.
Ccblinktcthckchhotthchinclpvibbindchvcctpi
tng c to ra bi b bin dch c coi nh cc tham bin vo. i vi cc ng
dngnhngnthngchaphnmkhitocbindchcngphicgp
trongdanhschthambinvony.
Nucngmtbiutngckhaibohnmtlnnmtrongmttpitngth
b lin kt s khng th x l. N s kch hot c ch bo li ngi pht trin
chng trnh xem xt li. Hoc khi mt biu tng khng th tm c a ch tham
chiuthctrongtonbcctpitngthblinktscgngtgiiquyttheo
khnngchophpdavoccthngtinvdnhchatrongphnmtcathvin
chun. iu ny cng thng hoc c th gp vi trng hp cc hm tham chiu
trongchngtrnh.
Rtngticlcchmthvinchunthngyucumtvithayitrckhin
cthcsdngtrongchngtrnhngdngnhng.Vnylccthvin
chuncungcpchoccbcngcphttrinchdngnkhnngnhdngvto
ratpitng.Hnnachngtacngrttkhicthtruynhpcvomngun
cacc th vin chun c tht thay i.Hin naycngc mts nhcungcp
dch vphn mm h tr cng cchuyni haythayith vin C chunng
dng cho cc ng dng nhng, v d nh Cygnus. Gi phn mm ny c gi l
newlibvccungcpminph.ChngtacthtivtrangwebcaCygnus.Ns
htrchngtagiiquytvnmblinktcthgpphikhichngtrnhs
dngcchmthucthvinCchun.
Saukhihpnhtthnhcngttcccthnhphnmvphndliutngng
cng nh cc vn v tham chiu ti cc biu tng cha c thc thi trong qu
trnhbindchnl,blinktstoramtbnsaocbitcachngtrnhc
kh nng nh v li (relocatable). Hay ni cch khc, chng trnh c hon thin
ngoitrmtiu:Khngcachbnhnochacgnbntrongccphnm
v d liu. Nu chng ta khng phi l ang pht trin phn mm cho h nhng th
qutrnhbindchcthktthctiy.Tuynhin,vihnhngngaychthng
nhng bao gm c h iu hnh chng ta vn cn phi c mt m chng trnh
(image)nhphncnhvtuyti.Thctnucmthiuhnhthphnm
v d liu cng thng gp c vo bn trong chng trnh c kh nng nh v li.
Tonb ngdng nhng bao gmch iu hnh thnglinkttnh vinhauv
thchinnhmtmchngtrnhnhphnthngnht.
Qutrnhnhv(Locating)
Cngcthchinvicchuynimtchngtrnhckhnngnhvlithnhmt
dng m chng trnh nh phn c th thc thi c gi l b nh v. N s m
nhimvaitrcabcnginnhttrongccbcthcthibindchnichung.Thc
tchngtaphitlmhuhtcngviccabcnybngcchcungcpthngtinv
bnhccuhnhtrnnnphncngmchngtaangphttrinvchnh
lthamsuvochovicthcthicabnhv.Bnhvssdngthngtinny
gnccachvtlchomiphnmlnhvdliubntrongchngtrnhc
thcthimcthnhvli.Tiptheonstoramttpcchachngtrnhb
nhnhphncthnptrctipvobnhchngtrnhtrnnnphncngthc
thi.
Trongnhiutrnghpbnhvlmtchngtrnhkhclpviccphncng
ckhctronghthngphnmmphttrin.Tuynhintrongccbcngcphttrin
GNUchcnngnyctchhpluntrongblinkt.Tuynhinkhngnnnhm
lnvchcnngcachngtrongqutrnhthcthibindch.Thngthngchng
trnhchytrnccmytnhmcchchungthhiuhnhsthchinvicchuyn
ivgnchnhxcachthcchoccphnmvdliutrongchngtrnhng
dng,cnvichngtrnhphttrinchytrnhnhngthvicnyphicthc
hinbibnhv.ycngchnhlimkhcbitcbnkhithc hinbindch
mtchngtrnhngdngchohnhng.
Thngtinvbnhvtlcahthngphncngphttrinmcnphicungcpcho
bnhvGNUphicnhdngtheokiubiudincablinkt.Thngtinny
i khi c s dng iu khin mt cch chnh xc th t trong cc phn m
chngtrnhvdliubntrongchngtrnhcthnhvli.Nhngychng
ta cn phi thc hin nhiu hn th, tc l phi thit lp chnh xc khu vc ca mi
phntrongbnh.
Sauylmtvdminhhacamttpthngtinlinktccungcpchomt
nnphncngnhng,githitlc512KBRAMv512KBROM.
MEMORY
{
ram : ORIGIN = 0x00000, LENGTH = 512K
}
SECTIONS
{
_DataStart = . ;
*(.data)
_DataEnd = . ;
} >rom
67
68
bss : /* Uninitialized data. */
{
_BssStart = . ;
*(.bss)
_BssEnd = . ;
onmnyccungcpchochobnhvcablinktGNUvthngtinb
nhccuhnhtrnnnmchcnghnhngchvchraccphndliuv
bssscnhvtrongRAM(btutiach0x00000)vphnmchngtrnh
scnhvtrongROM(btutiach0x80000).Tuynhinccgitrkhito
trongccondliuscthchinmtphntrongROMbtutphnnh
nghacakhuvcnhvcuicngtrongmchngtrnh.
Ttccctnbtubidugchdi(_)lccbincthcthamchiutbn
trongmngun.Blinktssdngccbiutngxlccthamchiutrong
cctpitng.Vdcthcmtphnchngtrnhngdngnhng(thngl
thucphnmkhitochngtrnh)saochpccgitrkhitocaccbinc
khitotrongROMsangkhuvcdliutrongRAM.Ccachbtuvktthc
chohotngnycthcthitlpmtcchbiutngbithamchiuticcbin
snguyn_DataStartv_DataEnd.
69
Hnh39:VdvmtluphttrinphnmmchoDSPTMS320Cxx
3.4.3
Simulator
Simulatorlmtchngtrnhphnmmchophpngiphttrinmchngtrnh
chy m phng mt chng trnh vit cho mt nn VXL/VK (nn phn cng ch)
trnmtmitrngphncngkhc(haycngilmitrngphttrin).Thccht
lqutrnhmphnghotngcachngtrnhthcthitheongnhiukin
thchincamitrngchtrnmitrngphttrin.
Bmphngtrctip(bmphngphncng)baogmmtthitbphncngkt
nitrctipvihphttrinvchophpthcthiccphnnggingnhb
x l ch. B m phng trc tip trn mch c tt c cc chc nng ca mt b m
70
phngphnmmngthihtrcccchcnngemulationchocccngvoraca
VK.
3.4.4
Emulator
Emulatorlmtthitbphncngckhnngthchinnhmtnnphncngch.
Ncncbittinhmttngikhclcngcphttrinthigianthcbivn
chotaphnngviccskinnhVKchthcthi.CcbEmulatorthngckm
theo c phn chng trnh gim st (monitor program) cho php ngi pht trin
chngtrnhchoVKchkimtranidung,trngthiccthanhghivcckhuvc
bnhvthitlpccimdngkhithchinchychngtrnh.
3.4.5
HthngnymphngnnphncngthctrnPCchopnghnhvigingnhvi
vimchcngthcvmhnhitngcmhnhthcthitrnPC.Loihthng
ny cng tng t nh h thng m phng offline tuy nhin c u im hn v kh
nngmphng hnhvivpngcavimchnhngchnhxchnvtrungthc
hn.Vcngcmtnhcimlkhngthnghimcbitonthigianthc.
Mphngthigianthc(HardwareintheLoop)
Mphngoffline
Mhnhphttrinthc
Tronghthngphttrinnynnphncngnhngchcmphngbngmhnh
chytrnPCvitngiukhincnglmhnhmphngchytrnPC.Vvy
qu trnh pht trin thc cht l qu trnh chy m phng h thng c thc hin
hon ton trn PC. Vi h thng ny khng th th nghim cho cc s kin p ng
thi gian thc v thi gian ca m phng khc vi thi gian din bin thc ca h
thng.
Hthngphttrin(softwareintheloop)
71
Hthngnysdngnnphncngnhngchthcviitngthc.Tuynhinc
shtrcacngcphttrincthcitvthnghimtrctiptrnnnphn
cngthc.ylmtdngmhnhchoktqutrungthcvchnhxcnhttrongcc
dnghthngphttrinnutrn.Tuynhinccnnphncngnythngcpht
trinvhtrbiccnhcungcpcthtngthchvicngcphnmmkm
theo.
72
H IU HNH NHNG
4.1
H iu hnh
4.2
B np khi to (Boot-loader)
Thutngbootstrapbtnguntcchdintcxacnghaltmnhvnln
bngchnhnlccabnthnpullingyourselfupbyyourownbootstraps.Nc
sdngnhmtthutngrtphbingitnmtphnmmthcthivickhi
tochngtrnhthcthitrnccnnviintkhtrnhnichung.Chngtrnhny
thngrtnhgnvmnhimchcnngtinhotngcahiuhnh.Cng
rtphbinhinnayngitacngthngdngthutngbootloader(bnpkhi
to) thay v bootstrap. B np khi to thc cht l mt chng trnh nh thc hin
tronghthngvmnhimchcnngcnthitahiuhnhvohotng.
Trongcchnhng,cclnhcthchinutinthngnmtrongccvngnh
ROMvthngthucloichm.D,mttrongnhngtcvphbincabnp
khi to l sao chp chng trnh ng dng chnh (main program) vo trong vng b
nhnhanhtrckhichngcthchin.Bnpkhitocngcnhimvkhito
vngnhdliuvccthanhghihthngtrckhinhytichngtrnhngdng
chnh.Cngcrtnhiudng khcnhaucabnpkhito, tdngnginn
phctp.Dngnginnhtcthchlmtlnhnhytichngtrnhngdng
chnhngaysaukhiresetmkhngthchinbtkmttcvkhitohaynpchng
trnhg.Chngtrnhngdngchnhsphitthitlpthcthitcvcamnh.
Cc b np khi to phc tp hn c th thc hin nhim v chun on b nh v
khitohthng,kimtrachngtrnhvnpchngtrckhichobxlnhyti
thchinchngtrnhngdngchnh.
Sauychngtastmhiuvmtmitrngphttrinkhinhnhvtholun
vmtsccthuctnhnguynlcbncabnpkhito.
Hnh41:Kintrchiuhnh
Tmli,hiuhnhthcchtchnhlmtgiaodinquantrng,giaotiptrctip
vitngphncngcpthpphcvchocngisdngcngnhccchngtrnh
ng dng thc thi trn nn phn cng h thng. Hn na h iu hnh cn c vai tr
quantrngtrongvicmnhim3tcvnguynlchnh:(1)Qunlqutrnh,(2)
Qunltinguyn,(3)Bovtinguynkhisxmphmcaccqutrnhthcthi
sai.
73
Hnh42:NguynlthchincabnpkhitoBootloader
Trong mi trng pht trin h nhng in hnh, nn phn cng ch cn pht trin
cktnivitrmch(host)thngquamtgiaodintruynthng.Mtmitrng
phttrinbaogmmtchngtrnhgri(debugger)vdnhCodeComposerStudio
74
caTexasInstrument,chophpngiphttrinchngtrnhnpvthchinth
nghimccchngtrnhtrnphncngch.Mtscccngchtrvdnh
thit lp cc im dng (breakpoint)v cc nhim v ph tr khc bm st trng
thiqutrnhthcthithigianthccachngtrnhthnghim.iunyrtc
nghavtonnmtsddnghntrongqutrnhphttrinvgrimtchng
trnhngdngmichonnphncngch.
ThngthngccngdngcphttrintrongmitrngngnngCthchng
trnhngdngchnhcthcthiv nmtrongphmvihmmain()phnkhito
chngtrnhvnptinthchinchngtrnhchnhthngkhngtngminhhoc
bni.Thcchtiunychngivinhngngiphttrinmchngtrnh
ngdngchnhbngngnngbccao(cbitchoccngdngkhngphichoh
nhng)mkhngcnphiquantmnhiuncctcvcsmnhimvickhi
toccthanhghihthng,ngnxpvdliuiunycngrtcnghatora
mtcmgicvmitrngphttrinthnthinchongiphttrinchngtrnhv
chcntptrungphnthchinchcnngchnhcahthng.Tuynhintrongmi
trngphttrinhthngnhngvicthcthichngtrnhthngbtutiach
chngtrnhnibtutcvkhitohthngtrckhinhytithchinchng
trnh chnh main(). Qu trnh ny c bt u thc cht l thc thi mt tc v ngt
kchhotbiskinreset.
Bootloadercngcnhiudngkhcnhau.Hnh42mtmtbnpkhitochomt
ngdngCnhng.TrongvdnyvectorRESETtrtithtcc_int00thchintc
vkhito.Ngoivickhitoccthanhghi,ngnxpccbinCcngcnc
khitotrckhicthcthi.Qutrnhnyssaochptphn.cinitvvitvocc
achdliutngngcachngtrongphn.bss.Saukhihonthnhchngtrnh
chnhmain()micgivbtuthcthi.Trongvdnginnybnpkhi
to t hp vector RESET cng vi hm khi to c_int00 v gi thit rng c chng
trnhbnpkhitovchngtrnhngdngchnhunmcngtrongvngnh
vtlnonvolatile.Trongcctrnghphthngphctphn,bnpkhitocth
baohm ctcvsao chpchngtrnhchnhvo trong vng nh fast volatiletrc
khi n c gi v thc thi. B np khi to cng c th m nhim c chc nng
chunon,grivnngcphthngnuc.Chcnngchunoncthchl
kimtrabnh,ngoivivtngthchtchhptronghthng.Chcnnggri
cngcthlmtgiaodingimstcungcpthngtinvtrngthithigianthcv
hthngmngitavnthngbittivitngilchngtrnhmonitoring.Vic
nngcphocthayichngtrnhbnpkhitocngcthcthcthinhkh
nnglptrnhFLASHincircuitvnptbnhngoithngquagiaodinvitrm
chhocchcnngtngt.
75
Hnh43:CutrccabnpkhitoBootloader
4.3
Cc yu cu chung
Nhchngtacbitivicchthngthigianthc,yucuthitkmth
iu hnh kh c bit. H nhng thi gian thc li yu cu h iu hnh phi thc
hinvimtnguntinguynthngrthnhp.Mcdkchthcbnhtchhp
onchipscthtnglntrongtnglainhngvisphttrinhinnayhiuhnh
chocchnhngchnnckhongnhhn32Kbytes.
Hthngiuhnhmnhimviciukhinccchcnngcbncahthngbao
gmchyulqunlbnh,ngoivivvoragiaotipvihthngphncng.
Mt im khc bit c bn nh chng ta bit v h iu hnh vi cc phn mm
khclnthchinchcnngiukhinskinthcthitronghthng.Cnghal
nthchincctcvtheomnhlnhyucutccchngtrnhngdng,thitb
voravccskinngt.
Bnnhntchnhtcngtrctiptiqutrnhthitkhiuhnhl(1)khnng
thchin,(2)nnglngtiuth,(3)githnh,v(4)khnngtngthch.Hinnay
chng ta cng c th bt gp rt nhiu h iu hnh khc nhau c bit cho cc h
nhngcngvstcngca4nhntnutrn.Huhtchnguckiudngv
giao din kh ging nhau nhng c ch qun l v thc thi cc tc v bn trong rt
khc nhau. Mi h iu hnh c thit k phc v trc tip cc chc nng c th
phncngcahnhngvkhngddngsosnhcgiachngvinhau.
Hai thnh phn chnh trong thit k h iu hnh l: phn ht nhn (kernel) v cc
chng trnh h thng. Ht nhn n chnh l phn li ca h iu hnh. N c s
dngphcvchoccbqunlqutrnh,blplchbqunltinguynvb
qun l vo ra. Phn ht nhn m nhim chc nng lp lch, ng b v bo v h
thngbivicsdngsai,xlngtChcnngiukhinchnhcanlphcv
iukhinphncngbaogmngt,ccthanhghiiukhin,ccttrngthivcc
76
Haikintrcthitkphnhtnhnkinhinnhtlkintrcvihtnhnvnht
nhn(monolithic).Ccvihtnhncungcpccchcnngiuhnhcbnctli(th)
theocchccmoduletngiclpmnhimcctcvcthvchuynrirt
nhiu cc dch v in hnh iu hnh h thng thc thi trong khng gian ngi s
dng.Nhcchnymccdchvcthckhitohoccuhnhlimkhng
nhtthitphikhitolitonbhthng.Kintrcvihtnhncungcpanton
caobivdchvhthngchytngngisdngvihnchvtruynhpvoti
nguyn ca h thng v c th c gim st. Kin trc vi ht nhn c th c xy
dngmtcchmmdophhpvicuhnhphncngkhcnhaumtcchllinh
hothnsovikiukintrchtnhnmonilithic.Tuynhindotnhclptngi
giaccmodultrongvihtnhnnncnthitphicmtcchtraoithngtinhay
truynthnggiaccmodulvvycthlldolmchmtcvgimtnhhiu
qu hot ng ca h thng. c im ni bt v ct li ca kin trc vi ht nhn l
kchthcnhvddngsaicngnhxydnglinhhothn.Ccdchvthc
thitngtrncahtnhnvvytcantoncao.Kintrcvihtnhnc
pht trin mnh m trong cc h thng a x l v d nh Windows 2000, Mach v
QNX.
Kiukintrcmonolithiccungcpttcchcnng/dchvchnhyuthngquamt
qua trnh x l n l. Chnh v vy kch thc ca chng thng ln hn kiu kin
trcvihtnhn.Loihnhkintrcnythngcpdngchyuchoccphn
cngcthmhtnhnmonolithiccstngtctrctipviphncngnhvym
khnngtiucngddnghnsovipdngkiukintrcvihtnhn.Chnhv
vycnglldotisaokintrcmonolithickhngththayimmdolinhhotnh
kiu vi ht nhn. V d in hnh v loi hnh kin trc ht nhn monolithic bao gm
Linux,MacOS,vDOS.
Vhiuhnhcngihivtinguynvkimcchcnngqunlchngvvy
ngithitkcnphinmcthngtinvchngmtcchy.Vdnhi
vihthngiuhnhchoSunMicrosystemSolarisyucutithiukhnggianbnh
trnal8MB;Windows2000yucukhonggphailnnhvy.
4.4
Hnh44:SosnhkintrcRTOSvOSchun
Hthngiuhnhviphnlilhtnhnphimnhimcctcvchnhnhsau:
Xlngt
Lutrngcnhchngtrnhtithiimxuthinngt
Nhndngvlachnngbxlvphcvdchvngt
iukhinqutrnh
Tovktthcqutrnh/tcv
Lplchviuphihotnghthng
nhthi
iukhinngoivi
Xlngt
Khitogiaotipvora
QNXlmtvdinhnhvhthngthigianthcRTOScthitkpng
ccyucuvlplchrtkhtkhe.QNXcngchathcsphhpcthc
thc thi cho cc h thng nhng bi v n i hi dung lng b nh khng nh v
thngphhpchoccngdngihivantonvtincyln.
77
Hnh45:Cutrchiuhnhthigianthc
Tytheocchthchinvxydnghotngcahtnhnngitaphnloimt
sloihnh:
78
(1)Hthngthigianthcnh:Viloinyccphnmmcphttrinmkhng
cnchiuhnh,ngilptrnhphitqunlvxlccvnviukhin
hthngbaogm:
Xlngt
iukhinqutrnh/tcv
Qunlbnh
(2)Cngnghanhim
Miqutrnhcmtkhnggianbnhring
CcqutrnhphicchianhthnhccThreadcngchiaskhnggianb
nh.
(3)Ccdchvcungcpbihtnhn
Tovktthcqutrnh/tcv
Truynthnggiaccqutrnh
Ccdchvvnhthigian
cimcbncahtnhnthigianthcinhnh:
Kchthcnh(lutrtonbtrongROM)
Hthngngt
Khngnhtthitphiccccchbov
9 Chhtrphnkimtrachngtrnhngdng
9 Tngtcchuynngcnhvtruynthnggiaccqutrnh
9 Khiccqutrnhngdngangthchinthccyucuhthngiu
hnhcthcthchinthngquaccligihmthayvsdngc
chngtmm
Vihtnhn(Microkernel):Baogmmttpnhccdchvhtr
9 Qunlqutrnh
9 Ccdchvtruynthnggiaccqutrnhnucn
9 Ccphnmmiukhinthitblccqutrnhngdng
Htnhninhnhcbn
Loihtnhnnginnhtlmtvnglpvhnthmdccskinxut
hintronghthngvphnnglitheosthayinuc.
Vimtbxlcuhnhnhnht,khngphilcnoncngcthluct
ngcnhvkhngththayicontrngnxphocvngngnxprthn
ch.
Htnhncthcxydngsaochottccctnhiulogicciukhin
bivnglpvnhpciukhinbiccngt.
Cctcvlncnnhiuthigianthchincthcchianhthnhcctc
vnhvcthchinticcthiimkhcnhaunhvocchchuynv
sdngbm.
79
Cc ht nhn thc thi theo c ch ngt rt ging vi loi ht nhn thc hin
theocchvnglpthmd.Nxlttccctcvthngquaccdchv
ngt.
Cchtnhnlnvphctphnsbaogmmtsccdchvphphcv
chovictruynthnggiaccqutrnh.Vnucbsungynstr
thnhmthiuhnhy.
Cckiuloihtnhncbn
Htnhnthchinvnglpthmd
Htnhnthchintheocchngt
Htnhnqutrnhvnhnhqutrnh
Htnhnqutrnh
Cchtnhnqutrnhrrnglphctphncchtnhnthchintheocchthm
dviukhinngt.Ccngtruyntnhiulogicbntrongccqutrnhvcc
dchvngtctchhpvthchinthngquavictruyndliu.
Hnh46:Mhnhtrngthicaqutrnh
Htnhnsphimnhimchcnnglplchchoccqutrnhtheongmhnh
trngthi.
RUN:qutrnhcthchin
WAIT:ccqutrnhchmtskinhoctnhiuvorakchhotqutrnh
READY:ccqutrnhsnsngcthchin
80
5.1
Tc v v qu trnh (process)
Thiimktthc di (duetime):Thiimmtcvphihonthnh.
Tcv(task)?Lmtcngviccnthcthithamgiatronghthng
Qutrnh(process)lmtdinbinthcthimttcvcahthng.
ikhingitavndnglnhaikhinimnyvkhngphnbit.
Tcvchuk(period)vkhngchuk(aperiod)
Cctcvphithchinlplimtcchuntheonhngkhongthigianpc
gilcctcvcchukvpcgilchukcatcv.Ccloitcvkhcth
cgiltcvkhngchuk.
5.2
Lp lch (Scheduling)
Hnh51:GinthchincamttcvTi
Trncsblplchsphithchinbitontiuv:
Thigianpng(responsetime)
Hiu sut thc hin (s lng cng vic thc hin xong trong mt n v thi
gian)
Scngbngvthigianchi(cctcvkhngphichiqulu)
Vdvmtlchthchin2tcvcmtnhtrongHnh52.
Tisaophilplch?
mboccchthcthichiastinguynhuhnvthomnyucuthi
gian thc. Lp lch phi nhm tho mn hay t ti c s tho hip gia cc rng
bucvtinguyn,sphthuclnnhauhaythigianthchin.
5.2.1
Cc khi nim
Lplchlmtphpthchinphnbvgnquytrnhthcthicctcvchobxl
saochomitcvcthchinhonton.
Lplch=tmkimmtginphnbthigianthchinanhimhplvicc
iukinrngbucchotrc.Haynicchkhclblplchphixlquytnh
viuphiqutrnh/tcvthchin.
Cmtsthngtinvtcvlunphiquantmivibtkblplchthigian
thcno,baogm:
Thigianxuthin ai (arrivaltime):Khiskinxyravtcvtngngc
kchhot.
Thiimbtuthcthi ri (releasetime):Thiimsmnhtkhivicxl
snsngvcthbtu.
Thiimbtuthchin si (startingtime):Lthiimmtitcvbt
uvicthchincamnh.
Thigiantnhton/thcthi ci (Computationtime):Lkhongthigiancnthit
bxlthchinxongnhimvcamnhmkhngbngt.
Thiimhonthnh fi (finishingtime):Lthiimmtitcvhonthnh
victhchincamnh.
Thigianriro/xunht wi (worstcasetime):khongthigianthchinlunht
Hnh52:Ginlplchthchin2tcv
Trongtrnghpcavdnyccthngsvthigianthchincacctcvtnh
cnhsau:
Thigiantnhton C1 = 9 v C2 = 12 .
Thigianbtuthchin: s1 = 0 , s2 = 6 .
Thiimhonthnh: f1 = 18 , f 2 = 28 .
Khongthigianchnhlchthiimktthcvdeadline(Lateness) Li = fi di :
L1 = 4 , L2 = 1 .
Khongthigianri/dthagiathigianchophpthchinvthigiancn
thchintcv(Laxity) X i = di ai Ci : X 1 = 13 , X 2 = 11 .
5.2.2
cthxyra.
81
82
Hnh53:Phnloiccphngphplplch
Tuthucvoloihnhtcv,ngitarahaiphngphplplchlcchukv
khngcchuk.
Lplchoffline/tnh:Viclplchcthchindatrncchiubithocdbov
ccskintcvthchintronghthng(thiimxuthin,thigianthchin,
deadline) v c quyt nh ti thi im thit k v c p dng c nh trong
sutqutrnhhotngcahthng.Viclplchtrccmtsccuimsau:
Tcvtiptheocthclachnthcthitrongkhongthigianlhngs
Kh nng png yu cu thigian thcc thc bittrc vcm
bo
Nhcim:
o Khngththayilchtrnhthchincahthngtrongqutrnhthchin
o ihiphicthngtinthigianchnhxcvcctcvtnhtonlplch
Mtthuttonlplchtnhcgiltiununlunluncthtmcmt
lchiuphithomnccrngbucchotrongkhimtthuttontnhkhccng
tmcmtligii.
Lplchonline/ng:Bxlthchinviclplchtrongqutrnhthcthidatrn
csccthngtinhotnghinhnhcahthng.Slplchlkhngxcnh
trcvthayingtheoqutrnhthchin.
Ccthuttonlplchtnhtiukhngphiltiutronghthngng.
83
Mtthuttonlplchngcgiltiununcthtmracmtlchiu
phiiukhinhthngthomnccrngbucthigianchobtkkhinom
thuttontnhkhngtmrac.
Lplchtptrunghocphntn:Viclplchcthchinpdngchocctcv
thcthibimt(tptrung)hocnhiubxl(phntn).
LplchMonohayMultiprocessor:Nhimvlplchvthcthicmnhimbi
mt(mono)hocnhiubvixl(multi).Tuthucvophctpvthuttoncn
xlkhilplchmngitaquytnhphisdngphngphplplchmonohay
multiprocessor.
Tnhkhlplch:Mththngvimttpcctcvvcciukinrngbucc
gilkhlplchnutntitnhtmtcchlchtrnhthchinthomncctcv
viukinrngbuc.
Vdvlplchchohthnganhimvi2tcv.Tcv1thchintheochukv
tcv2thchinkhngtheochukvithigianthcthilnhnthigianchuklp
licatcv1.
Hnh54:Ginthigianthchinlchcatcv
84
5.2.3
K thut lp lch
FCFS
Trongcchlplchntrccphvtrcthccqutnhcxltheoth
tmnxuthinyucuvchonkhihonthnh.Cchlplchnythucloi
khngngtcvcuimlddngthcthi.Tuynhin,nkhngphhpcho
cc h thng m h tr nhiu ngi s dng v c mt s bin i ln v thi gian
trungbnhmmtqutrnhhaytcvphichicxl.Hnnadovic
xlkhngngtcnnchintngchimhucquynbxltrongthigian
divcthgyrastrbtthngtrongqutrnhthchincacctcvphich
ikhc.
ShortestJobFirstSJF
Trongcchlplchnytcvcthigianthcthingnnhtscquynutincao
nht v s c phc v trc. Vn chnh gp phi trong c ch lp lch ny l
khngbittrccthigianthcthicacctcvthamgiatrongchngtrnhv
thngthngphipdngcchtinonvnhgidavokinhnghimvcc
tcvthcthitronghthng.iunychcchnrtkhlunmboc
chnhxc.Cchlplchnycthpdngchocloingtcvkhngngtc.
Ratemonotonic(RM):
PhngphplplichRMclhinnylthuttoncbittinhiunhtpdng
chocctcvhayqutrnhclp.Phngphpnydatrnmtsgithitsau:
(1) Ttccctcvthamgiahthngphicdeadlinekiuchuk
(2) Ttccctcvclpvinhau
(3) Thigianthchincacctcvbittrcvkhngi
(4) Thigianchuyningcnhthchinlrtnhvcthbqua
ThuttonRMcthcthitheonguynlgnmcutinchocctcvdatrn
chukcachng.Tcvnocchuknhthsccgnmcutincao.Theo
nguynlnyvicctcvchukkhngthayithRMslphngphplplch
chophpngtvmcutincnh.TuynhinRMhtryucuhthngkhng
tt.
Earliestdeadlinefirst(EDF)
Nhngtngicaphngphp,thuttonlplichtheophngphpnysdng
deadlinecatcvhaynhiukinutinxliuphihotng.Tcvc
deadlinegnnhtscmcutincaonhtvcctcvcdeadlinexanhtsnhn
mcutinthpnht.uimnibtcaphngphpnylgiihncthlplch
pngc100%chottccctptcv.Hnnamcutingnchomitcv
trongqutrnhhotnglngvvychukcatcvcththayibtklc
notheothigian.
85
EDFcthcpdngchocctptcvchukvcngcthmrngpng
chocctrnghpccdeadlinethayikhcnhautheochuk.
VnchnhcathuttonlplichEDFlkhngthmboctcvnotrong
hthngcthkhngcthcthitrongtnhhungquhthngbquti.Trong
nhiutrnghpmcdmcsdngtrungbnhnhhn100%nhngvncth
trongmttnhhungnovnvtquakhnngpngcahthngtclsc
tcvkhngcmbothcthing.Trongnhngtrnghpnhvycnphi
iukhinbittcvnoblikhngthchinthnhcnghoctcvnoc
thchinthnhcngtrongqutrnhqu.
MinimumLaxityfirst(MLF)
Cchlplchnysutintcvnocntthigiancnlithchinnhttrc
khinphiktthcmboyucuthcthing.ycxemlcchlplch
gn quyn u tin ng v d t c s ti u v hiu sut thc hin v s cng
bngtronghthng.
RoundRobin
y l mt c ch lp lch phn b u n, ngt c v n gin. Mi mt tc v
cxl/phcvtrongmtkhongthigiannhtnhvlplitheomtchutrnh
xuynsuttonbcctcvthamgiatronghthng.Khongthigianphcvcho
mitcvtrongqutrnhlmtsthohipgiathigianthchincacctcv
vthigianthchinmtchutrnh.Cthchnkhongthigianrtnhvi
lcchngtakhngnhncrarngangcsphnbthchintronghthng.
Tuy nhin nu thi gian qu nh c th lm mt tnh hiu qu thc hin ton h
thng v cn nhiu thi gian trong vic chuyn i ng cnh cho mi tc v sau mi
chutrnhthchin.
86
5.3
Truyn thng v ng b
5.3.1
Semaphore
9 mboloitrxungttronghotngtruynhpngthicanhiutc
v,vchcmttcvcthcthitimithiim.
Countingsemaphore
9 iukhintinguynmcthphcvcngmtlcnhiutcvhocmt
nguntinguynchophpphcvmtsnhtnhcctcvkhngng
bvhotngngthi.
9 NhiulungcthtruynSemaphore
9 SlnglungcquytnhbibinmNcaSemaphore
ThcthiSemaphore
Hnh55:Truynthngqutrnh
Semaphoreshtrhaihotngchnhnhsau:
wait(semaphore):gimvkhochotikhisemaphorecm
signal(semaphore): tng v cho php thm mt lung mi c tham gia hot
ng
Tronghotngphihpcngvisemaphorecmthngigmcctcvcnc
thcthiscmtstnhhunghotngcbnnhsau:
Khimtlung(thread)giwait():
Nusemaphorecmthlungscgianhpvtiptcthcthi
Nu semaphore ang b ng th nhnh s b kho v phi nm ch
tronghngichotikhinosemaphorecm
signal()smsemaphore:
numtlungangnmtronghngivkhngbkho
nukhngclungnotronghngivtnhiusignalscnhv
dnhcholungtiptheo
CcloiSemaphore
Mutexsemaphore
9 Chophpiukhinhotngtruynhpnlvotinguynchiasca
hthng.
87
88
Nhnxt:
9 Semaphores c th c s dng gii quyt bt k mt bi ton hay vn
ngbtruynthngno
9 Tuynhinchngcmtsnhcim
o Chngchyusdngccbintoncctrongviciukhinhotng
ngbnncthtruynhpbtkutronghthngkhkimsot
o Khngcslinktchtchgiasemaphorevdliumcniu
khin.
o csdngngthichocvicloitrxungt(mutualexclusion)v
hotngngbchocctcv(scheduling)
5.3.2
Monitor
5.4
X l ngt
Tn hiu iu khin b VXL kch hot bi mt s kin tham gia trong qu trnh hot
ngcahthnglmhthngngngvchuynhngthcthicgiltnhiu
ngt.NsngtbVXLkhihotngmnangthcthivchuynsangthchin
mtcngvickhcphcvchoskinkchhotngttngng.Vdnhtrongqu
trnhthu thpd liu,VXL lun phich ithi imn nhn d liu vskch
hotskinngtCPUmikhicdliuxuthinkpthighidliuvobnh.
Saukhihon thnh, CPU phchili trng thica hthng v tr li tiptcthc
hinchngtrnhtthiimmnbngt.ivibxlngt,nsphithc
hinhainhimvchnhl:(1)Xcnhcskinngtv(2)nhndngskin
ngttrckhitcvphcvngttngngckchhot.Hnh56mtmtchu
trnhcbnthchinngttrongcchVXL/VK.
Hnh56:Chutrnhthchinngt
Hnh57:Vdvcutrcphncngxlngt
89
90
Ccngunngtngoi/cngcthcnhndngtheokiutnhiungt
Theosnxung(ngtckchhotkhi xuthinsnxungdngtichn
nhntnhiungt)
Theomc(ngtckchhotkhixuthinmttnhiuxungmctchccti
chnnhntnhiungt)
Mtskinngtcngcthckchhotchbimthotngchocvitvo
mtthanhghithitbngoivihocccthanhghiiukhinhoctrngthi.
S xung t tranh chp gia cc ngun ngt cng xut hin ti mt thi im c th
cgiiquytbngmcutinhocktnicngvibxl.Ccngunngt
ngoicthctiginvicxlbngskthpviphnmmvcngchiascc
ngtnhiungt.Cchthchinngtcstranhchpvgiiquytbngmc
utincmtnhtrongHnh510.
Hnh58:Cchthchinthtcngt
Hnh510:Cchthchinngttheomcutin
Hnh59:Vdvngunngt(DSPTMS320C2812)
91
92
6.1
nhiuthnhphnvmithnhphnthucccthuctnh.Ccthuctnhcth
thayivcctrng bi ccbin trng thi. Mtchuicctrngthis m t
qutrnhngcamththng.
Mng Petri c thit lp da trn 3 thnh phn chnh: (1) Cc iu kin, (2) cc s
kin,v(3)quanhlung.Cciukincthlthomnhockhngthomn.Cc
skinlcthxyrahockhng.Vquanhlungmtiukincahtrckhi
skinxyra.
Cciukinihiphithomnmtskinxyrahocchuyntrngthithc
hinthcgiliukintrc(precondition).Cciukinmcthomnkhi
mtskinnoxyrathcgiliukinsau(postcondition).
Qutrnhphttrinphnmmnhngthchintheochutrnhsau:
(1) Problemspecification
(2) Tool/chipselection
(3) Softwareplan
(4) Deviceplan
(5) Code/debug
(6) Test
(7) Integrate
6.3.2
TrongquicbiudinhnhhothmngPetrisdngccvngtrnbiudincc
iukin,cchpbiudinccskin,vmitnbiudinquanhlung.Mtv
dminhhovmngPetricmttrongHnh61,trong:
P = { p1 , p2 ,..., pnp } ltpgm np vtrcbiudintrongmhnh(cmt
Phn tch yu cu
6.3
M hnh ho s kin v tc v
6.3.1
hnh(cmtbicchnhchnht);
Ibiudinquanhivochuynivckhiubingmitntheo
hngtccvtrticcchuyni;
Obiudinquanhirakhichuynivckhiubiccngmi
tntheohngtccchuyniticcvtr;
M = {m1 , m2 ,...mnp } ldutrngthicaccchuynitronghthng.Ccgitr
mi lsccthbi(ckhiunhccchmtrnen)chabntrongccv
6.2
biccvngtrn);
T = {t1 , t2 ,..., tnt } ltpgm nt chuynitrongtpchuynibiudintrongm
tr pi trongtpdu M .
Nm1962CarlAdamPetricngbphngphpmhnhhnhhotcvhayqu
trnhtheosphthucnhnqucphcprngrivcbittinhngy
nyvitngilmngPetri.
MngPetricsdngphbinbiudinmhnhvphntchcchthngc
scnhtranhtrongqutrnhhotng.Mththngcthhiulmtthpca
93
94
kinlmvic,ccvtrp2vp4biudiniukinli,t1vt2lccskinlitrong
cctcvC1vC2mtcchtngng.
(a)
(b)
Hnh62:MhnhPetrinet2hotngsongsonga)clpvb)ngb
Hnh61:VdvmtmhnhmngPetri
HthngngcthcmtbimngPetrinhschuyndchccthbitrong
ccvtrcahthngmhnhvtunththeolutsau:
Mt chuyn i c php thc thi nu tt c cc v tr i vo chuyn i
chatnhtmtthbi.
Khimtchuynicthcthixong(honthnh)thmtthbisbloi
rakhivtrivochuyningthibsungthmmtthbivoccv
truratngngcachuyni.
Cctrngthingcahthngcmtbitp R ( M ) nhdubiccdutrong
tp M. Trong v d trn c 5 phn t du trong tp R ln lt l M 1 , M 2 , M 3 , M 4 , M 5 .
Tronghotngsongsong,cctcvhontonclp,tuynhinnuccskin
cnphiktthcvliukinchomtchuynikhcthhotngngbc
thcthchinnhbsungmtchuynit3nhmttrongHnh62(b).Khi
chuynit3cnthbingthicacp2vp4.
Chiasngb
Mtyutctrngtronghotngcahthngphntnlthngphichiasmt
s ti nguyn hu hn. S thiu thn v ti nguyn lm hn ch hot ng ca h
thngtrongqutrnhxlthmchlmtcnghnhthng.Vicmhnhvphntch
cc h thng c hin tng tc nghn l mt tc v kh khn trong hu ht cc qu
trnhmhnhcthgpphi.
Tngnglnltnhsau:
M 1 = (1, 0, 0, 0, 0) :
M 2 = (0,1,1, 0, 0) :
M 3 = (0,1, 0, 0,1) :
M 4 = (0, 0, 0,1,1) :
M 5 = (0, 0,1,1, 0) :
6.3.3
nghnh(Songsong)vngb
TrongmhnhPNmtnhtrongHnh62(a),ccchuynit1vt2cphpthc
hinngthi;hotngcachngkhngnhhngnnhau.Cchotngc
mhnhbihaichuynithchinsongsong.Tronghthngdphngvitin
cycao,mhnhnycsdngbiudinhaithnhphnC1vC2songsong
mbohotngdphng;trongtrnghpnyccvtrp1vp3biudiniu
95
Hnh63:Hotngcabmvidunglnghuhn
minhhotnhhungny,biudinhotngcabmvidunglnghuhn
cmtbiPNtrongHnh63.Vtrp3mhnhsccvtrbmcntrngvv
trp2mhnhsvtrciny;chrngtngccthbichatrongccv
96
trp2vp3lunlhngs(trongvdnyl3).Chuynit2mhnhqutrnhin
ymtvtrbmvhonthnhnuctnhtmtvtrbmcntrngcng
vithbichatrongvtrp1 vp3.Chuynit3cphpthchinnuctnht
mtvtrbmciny.Khihonthnhchuynit3,mtthbisc
chuyntvtrp2sangvtrp3.
Tunt
Hotngtuntscmtvminhhobihotngcabtovbsdng
thngquamtbm.Btossinhraccitngavotrongmtbmv
sclyrabibsdng.Qutrnhsdngsphicthchinmtcchtun
ttheoqutrnhtoraitng.MhnhchohotngnycdintbiPNnh
trongHnh64(a).Thbichatrongvtrp1cnghalbtosnsngthchin.
Khiccchuynit1vt2honthnhthmtitngctora(mtthbitng
ngcngscchuynvotrongbmmhnhbivtrp5)vbtolisnsng
trli.Nubsdngcnhucutiuth(cmhnhbithbichatrongvtr
p3)vangctnhtmtitngtrongbmthmtthbichatrongvtrp5s
clyivchuynit3shonthnh.
muntruynhpvotinguynchiasCS;p3vp7biudinCSangbchimdngbi
cctcvC1vC2mtcchtngng.Vtrp4mtquytnhxemtcvnocth
truynhptinguynCsvtrnhccvtrp3vp7bnhdungthi.Thctkhi
p2vp6cnhduthccchuynit2vt5xungt.Vichonthnhmttrong
haitcvskho/cmlnnhau.Vichonthnhchuynit3hoct6smhnhvic
giiphngnguntinguynchung(chuynthbitrlivtrp4)vtrviukin
lmvicbnhthng.
Hnh65:Hotngloitrcahaitcvsongsongchiaschungtinguyn
(a)
(b)
Hnh64:Hotngtovsdngvibma)vhnvb)huhn
TrongcchmttrongHnh64(a)thvictovsdngcthchinthngqua
mtbmvigithitlcdunglngvhn.Trongthctthccbmlhu
hn,mthotngvibmloinyHnh64(b)csdng.Vtrp6m
hnhccvtrbmcntrngvvtrp5mhnhccvtrbmciny.
Tngslngccthbichatrongccvtrp5vp6philunlhngs.Numt
thbicgnchovtrp5trongdukhitothbtoskhngthtothmi
tngchngnobsdngvnchatiuthitngtrongbm.
Loitrxungt
HaitcvC1vC2cphplmvicsongsongvcngchiastinguynCS,nhng
khngctruynhpvotinguynngthi.GinPNchohotngnyc
mtnhtrongHnh65.Ccvtrp1vp5biudincctcvC1vC2lmvicc
lp;vtrp2vp6biudinccyucucacctcvC1vC2mtcchtngngkhi
97
btulmquenvinguynlbiudinmhnhhabngmngPetrichngta
xthotngcamththngngbgiahotngtovsdngmthngmc
(item)thngquabmnhcmtttronghnhdi.
BtoProducer:
9
Torahngmcv
9
bsungvobm
Bsdng(tiuth)Consumer:
9
Lyhngmcrakhibmv
9
Sdnghngmc
Hnh66:Hotngcahthnggm1btov1bsdng
98
Trongtrnghpcnhiuhnmtbsdngthhthngcbiudinnhsau:
Hnh67:Hotngcahthnggm1btov2bsdng
Hthngc2bm
Hthngvaxtcmhnhhabiiukinvskin.Cciukincmt
biccvngtrnvnuiukinthamnthkhivngtrnscbiudinvi
mtchmtrnnmtrongtngngvimtthbi(token).
Skinckhiubicchphnhchnht.Vimimtskinthstnti
mttpcciukintrcvcnhnbitbiccmitnivoccskin
tcciukinv
mttpcciukinsaucnhnbitbiccmitnirakhiccskin
vivocciukin.
Mtskincthxyra(cthcthi)khivchkhi
9 ttccciukintrctngngcthamn(nhncthbi)v
9 ttccciukinsautngngchacthamn.
Numtskinxyrath
9 ttccciukintrctngngsbxab(reset)v
9 ttccciukinsautngngscthitlp(set).
99
ViloimngbiudinnhtrnngitagilmngPetricbn(ElementaryNet)v
khiuttlEN.
thuntinvnginhatrongvicbiudinngitacthsdngccmitn
c thm trng s nguyn m t h thng c chung nhiu iu kin trc v sau
tngngcngvimtskinhociukin.cbitkhishngmctraoigia
b to v b s dng ln hn 1. Vi loi mng nh vy ngi ta phn loi v gi l
mngPetriChuyni/Vtr(Transitions/Places)khiuttlP/Tnet.
CngtngtnhEN,P/Tnetbaogm:
Ccvtrckhiuvmtbiccvngtrn:Ccvtrcthchamts
nguyndngccthbi.
Ccchuynicmtbicchnhchnht:Ccchuynislyihoc
thmvosthbithoctimtvtr.
Ccmitnktnitrctipgiaccvtrvchuyni:Ccmitnckm
theocctrngstngngvislngthbimncthclyrahoc
thmvotrongccvtr.
Mtchuynicthxyra(thchin)khivchkhittcccvtrtrongtptinv
tr cha mt s lng ti thiu th bi nh c nh ngha bi cc trng s ca cc
mitntngng.
Khimtchuynicthcthins
9 loibbtsthbittptinvtrbngngslngcnhngha
chocctrngscaccmitntngngv
9 cngthmvoslngccthbivotphuvtrngbngvitrngsca
ccmitntngng.
Vdbiudinmtmthotnghthngvi2hngmccnngbgiabto
vbsdng.
100
Vd:MtchngtrnhiukhinlungtuinbngmngPetrinetiukin/s
kintrnhtrnghpxungttrnmtngraytheohaihngtuchy.
Hnh68:Hotngngbvihaihngmc
cthbiudinhthngmtcchkhoahcvlogiccncmtnhnghay
mtbimngPetri.
Mngiukin/skin
nhngha: N = (C , E , F ) cgilmtmngnuvchnunthomnccthuc
tnhsau:
5
CvElcctpclpv C E .
5
F ( E x C ) (C x E ) lquanhnhphnvcgilquanhlung.
CcgilcciukinvEcgilccskin.
nhngha:Chomttp (c, e) C x E
(c, e) cgilmtvnglpnu cFe eFc
MngNcgilthunnhtnuFkhngchabtkmtvnglpno.
nhngha:Mtmngcgilnginnukhngcbtkhaichuynit1,t2
noccngtpcciukintrcvcciukinsau.
Ccmngmkhngchabtkphnttchbitnocngnhkhngcthmbtk
mthnchnothcgilmngiukin/skin.
Mngchuyni/vtr
Trongccmngiukin/skinchchanhiunhtlmttokenchomimtiu
kin.hnchiunytclmtiukincthchanhiutokenvngitagi
101
Cciukin:
Tumunvongraytheochiusangphi.
Tuangchuynngtrnngraytheochiuphi.
Tuthotrakhingraytheochiuphi.
Tumunvongraytheochiusangtri.
Tuangchuynngtrnngraytheochiutri.
Tuthotrakhingraytheochiutri.
Ccskin:
Tuvongraytchiubntri
Turikhingraytheochiuphi
Turingray
Tuvongraytchiubnphi
Turikhingraytheochiutri
Token:ngraysnsngchotuvotheomttronghaichiu
102
6.4
6.4.1
6.3.4
VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanuage)lmtngnng
chung mtccthitkphncng mcphntlogiccbncuthnhnnh
thngvcphttrinbitchcqucphngM.Mcchchnhlthun
tin cho vic trao i d liu thit k phn cng theo mt nh dng chun m mi
ngicthhiuvthngdch,toiukinthunlitrongvicphihphayhptc
trongccdnthitk.cbitnrtthuntintrongvicchuynihaytnghp
bin dch thnh mt dng ngn ng thc thi phn cng thc. iu ny rt kh thc
hinbngccngnngbccaonhCnhngviVHDLiunychnhluimni
btvlthmnhtrongvicmhnhhohthng,mtmtcchchititccphnt
cngcuthnhthamgiatronghthng.
VHDLlmtchunIEEE(Std1076)cshtrbirtnhiunhcungcppht
trinphncng.ngdngmtcchchuynnghipngnngnylphcvchovic
mtccmchASICsphchp,chtothcthiccmchFPGA...
NgnngVHDLcthchiukhddngvicutrccphprrnggnging
nhngnngVisualBasicvPascal.Ncthphthuycthmnhvcphp
nhnghaxydngkiudliumivhtrchoviclptrnhtheonhm.Vixu
thhinnayccnhmphttrincththcthiviiukincchxanhauvkhong
cchal,vvyvicphihpvthitktheonhmlrtcnthit.
TomCantrellrecentlywrotethatthefutureisbrightforFPGAs,whichwillplayalargerolein
mainstreamapplications(MoreFlash,LessCash,CircuitCellar,178,May2005).Iagreewith
Tom, but Ill go further and predict that VHDL will become the premier technology used to
define FPGA content either as output from design tools or with direct programming. In
combination with VHDL, FPGAs provide a lowcost approach to defining complex hardware
designsthatwereinconceivableonlyafewdecadesago.Perhapsmostimportantly,usingVHDL
todefinehardwareisfun
Hnh69:Hthngiukhins
thcthimtbiukhinstrnthitbvtlthcphiihixtxembiu
khinvimhnhhmtruynchocthhinthchackhng.iukinphi
xtthcralmborngkhngcuranocahthnglixuthintrckhi
ctnhiuvo.Haynicchkhchthngxydngphitunthtnhnhnqu.
Nukhaitrinhmtruyncabiukhinscmtdngtngqut
b + b z 1 + + bm z m
GR ( z ) = 0 1 1
a0 + a1 z + + an z n
thnhchuilythatheozthnphikhngcphpchabtkphntnocha
lythadngcaz.Haynicchkhclbiukhincmtnh(1.5)phic
bc 0 tclbccatsphinhhnhocbngbccamus( n m ).
Saukhithitkcbiukhinsthviccnlillptrnhvnpvoccb
iukhinvtlkhtrnh.Thcchtqutrnhnylthcthihmtruyncabiu
khinsbnglptrnhstrnccbiukhinvtlc.ychngtasch
yuquantmnvictrinkhaichunbchobclptrnhcchmtruyncab
iukhins.Xutphttmthmtruyndngtngqutcabiukhins
U ( z ) b0 + b1 z 1 + + bm z m
=
GR ( z ) =
(1.6)
E ( z ) a0 + a1 z 1 + + an z n
trong, a0 0 nu b0 0 ; m v n lccsnguyndng.
Cthtrinkhaithcthimthmtruyncabiukhinstheo3cchnhsau:
Trinkhailptrnhstrctip
trinkhailptheophngphplptrnhtrctipthhmtruynbiukhin
chobiudintrongminzphicchuynivdnghmtruynrirc
103
(1.5)
k =1
k =0
a0u* (t ) + ak u * (t kT ) = bk e* (t kT )
(1.7)
104
Tngthc(1.7)ddngtnhracgitrcaura u * (t ) cabiukhins
6.4.2
chotheoccgitrhintivqukhcauvo e* (t ) cngnhccgitrqukh
cachnhn
1 m
1 n
u * (t ) = bk e* (t kT ) ak u * (t kT )
(1.8)
a0 k =0
a0 k =1
Xpxhothnhphnvitchphn
C3phngphpxpxginonphbinpdngchoccthnhphntchphn:
vttrc(forward),vtsau(backward),vtrapezoidal.
Xpxsaiphnvttrc
y f (kT + T ) y f (kT ) = Tx(kT )
(1.11)
thchinbiukhinnyyucuphilutrccgitrqukhcauvov
u ra ca b iu khin. Vi b iu khin choyu cu phi c n + m gi tr cn
philutrhaynicchkhccnphic n + m phntlutr.
Mtphngphpkhctrinkhailptrnhtrctiplsdngcchtchtrctip
u vo v u ra ca b iu khin theo mt bin trung gian X(z). Khng mt tnh
tngqutnuchngtanhnctvmucahmtruynbiukhinschovi
mtbinX(z).TrtrachmtruyncauvoE(z)theoX(z)vhmtruyn
cauraU(z)theoX(z).Phngphpnythchinnhsau:
1
U ( z ) = (b0 + b1 z 1 + + bm z m ) X ( z )
(1.9)
a0
1
1
X ( z ) = E ( z ) (a1 z 1 + a2 z 2 + + an z n ) X ( z )
(1.10)
a0
a0
Theophngphpnyyucusphntlutrchnhbnggitrn,bngbccaa
thcmustronghmtruynbiukhinscho.Tccngthc(1.9)v(1.10)
tacngddngxydngcgintrngthimthmtruyncabiukhin
s(githit m = n = 3 ).
b3
b2
b1
1
U ( z ) a3
1
z
b0
z
z 1
Y ( z)
3
2
z X
X
z
X
z X
a2 / a3
a1 / a3
a0 / a3
pdngchuynizcho(1.11)tathuc
y f ( z)
T
=
x( z ) z 1
Dxpxhotchphnsl:
1
T
s z 1
Hnh611:Xpxsaiphnvttrc
(1.12)
(1.13)
Xpxsaiphnvtsau
Tngtnhsaiphnvttrctacxpxtchphnnhsau:
1 Tz
s z 1
(1.14)
Hnh610:Gintrngthicahthngs
Trinkhilptrnhsghptng
Cchtrinkhainyyucuchuynibiukhinvdngtchcacchmtruyn
n gin c th d dng thc hin bng cc chng trnh n gin. Hay ni cch
khcbiukhinscholktqughptngcanhiubiukhinnh.
Hnh612:Xpxsaiphnvtsau
Trinkhailptrnhssongsong
Biukhinchosctchrathnhtngcaccbiukhinnginvc
ththchinlptrnhsongsongchoccbiukhin.
XpxTrapezoidal
Phpxpxtchphnthucsl:
1 T z +1
s 2 z 1
(1.15)
105
106
t(1.21)cthxpxhmtruynthnhphnviphn
z 1
GD ( z ) = K D
(1.22)
Tz
Nh vy hm truyn ca b iu khin PID s c th c xp x theo mt trong 3
dngnhsau:
Hnh613:XpxTrapezoidal
ngthcltngmtbiukhinPID
u (t ) = uP (t ) + uI (t ) + uD (t )
1
de(t )
= K e(t ) + e( )d + TD
T
dt
I
0
(1.16)
Xpxvttrc:
( K T + K D ) z 2 + ( K I T 2 K PT 2 K D ) z + K D
GPID = P
Tz ( z 1)
Xpxvtsau:
( K T + K D + K I T 2 ) z 2 ( K PT + 2 K D ) z + K D
GPID = P
Tz ( z 1)
XpxTrapezoidal:
(2 K PT + K I T 2 + 2 K D ) z 2 + ( K I T 2 2 K PT 4 K D ) z + 2 K D
GPID =
2Tz ( z 1)
(1.24)
(1.25)
T k 1
T
(1.17)
Tngthc(1.17)taddngnhnthyrngthcthibiukhinPIDcnthng
tin ca tt ccc sai lchetrongqukh. thun tinchovicthchinlptrnh,
dngquisphhphnvcthrtrat(1.17)nhsau:
T k 2
T
(1.18)
T(1.17)v(1.18)tartracalgorithmiukhincaPIDs:
u (k ) u (k 1) = a0 e(k ) + a1e(k 1) + a2 e(k 2)
trong,
(1.23)
T
a0 = K 1 + D
Ts
T T
a1 = K 1 + 2 D s
Ts TI
a2 = K
(1.19)
TD
Ts
[1]
PeterMarweden.EmbeddedSystemsDesign:Springer,2006.
[2]
MichaelBarr.ProgrammingEmbeddedSystemsinCandC++.OReilly,1999.
[3]
JackGanssle.TheArtofDesigningEmbeddedSystems.Newnes,1999.
[4]
StuartR.Ball.EmbeddedMicroprocessorSystems.Newnes,2002
[5]
Qing Li and Carolyn Yao. Realtime Concepts for Embedded Systems, CMP
Books,2003
[6]
Olli S., Jaakko A.. Embedded Systems, Lecture Notes, Helsinki University of
Tech.,2006.
[7]
[8]
[9]
Jerrry Lueke. Analog and Digital Circuits for Electronic Control System
Application.Newnes,2005.
[10] AdreaBobbio.SystemModellingwithPetriNets.A.G.Colombo,1990.
Mhnhbiukhindnghmtruyntac:
1
GPID = K P + K I + K D s
(1.20)
s
trong,thnhphntchphncthxpxtheomttrongbacchnhmttrong
phn6.1,thnhphnviphncthcxpxnhsau:
de(t )
e(kT ) e(kT T )
(1.21)
=
dt t =T
T
107
108
[11] Linda Null and Julia Lobur. The essentials of computer Organization and
Architecture:JonesandBartlettPublishers,2003.