Professional Documents
Culture Documents
412 - ĐHBK.Hệ Thống Điều Khiển Nhúng - Ts. Lưu Hồng Việt, 108 Trang PDF
412 - ĐHBK.Hệ Thống Điều Khiển Nhúng - Ts. Lưu Hồng Việt, 108 Trang PDF
Bmniukhintng
Ni dung
Tiliutmttbiging
1 MU ................................................................................................................................5
2.1 Ccthnhphnkintrccbn...........................................................................11
2.1.1 nvxltrungtmCPU.....................................................................11
2.1.3 Busach,dliuviukhin............................................................16
2.1.5 Khnggianvphnvngach............................................................21
2.1.6 Ngoivi........................................................................................................21
2.1.7 Giaodin......................................................................................................33
2.2.2 ChipDSP......................................................................................................39
2.2.3 PAL...............................................................................................................41
3 CSKTHUTPHNMMNHNG....................................................................48
3.1 cimphnmmnhng ..................................................................................48
3.2 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
3.3 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
1 2
3.4 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
4 HIUHNHNHNG ...............................................................................................73
4.1 Hiuhnh............................................................................................................73
4.2 Bnpkhito(Bootloader) ..................................................................................74
4.3 Ccyucuchung...................................................................................................76
4.4 Hiuhnhthigianthc ..................................................................................77
5 KTHTLPTRNHNHNG .....................................................................................81
5.1 Tcvvqutrnh(process) ..................................................................................81
5.2 Lplch(Scheduling) ................................................................................................81
5.2.1 Cckhinim..............................................................................................81
5.2.2 Ccphngphplplchphbin ........................................................82
5.2.3 Kthutlplch .........................................................................................85
5.3 Truynthngvngb.......................................................................................87
5.3.1 Semaphore ...................................................................................................87
5.3.2 Monitor ........................................................................................................89
5.4 Xlngt .................................................................................................................90
6 THITKHNHNG:THPPHNCNGVMM.......................................93
6.1 Quitrnhphttrin .................................................................................................93
6.2 Phntchyucu.....................................................................................................93
6.3 Mhnhhoskinvtcv ..............................................................................93
6.3.1 PhngphpmhnhPetrinet................................................................93
6.3.2 QuicbiudinmhnhPetrinet ........................................................94
6.3.3 MtcctnhhunghotngcbnviPetrinet ............................95
6.3.4 Ngnngmtphncng(VHDL) ....................................................103
6.4 Thitkphnmmiukhin............................................................................104
6.4.1 Mhnhthcthibiukhinnhng .................................................104
6.4.2 VdthcthibiukhinPIDs ......................................................106
TILIUTHAMKHO ........................................................................................................108
3 4
1 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
Hnh11:Mtvihnhnhvhnhng
chng loi (chim n 79% s cc vi x l ang tn ti [2] ) v vn cn tip tc pht
trinnhmpngvthomnrtnhiungdngadng.Trongsvncn Hthigianthc?
ng dng c cc Chip vi x l 8 bit, 16 bit v hin nay ch yu vn l 32 bit (chim Trongccbitoniukhinvngdngchngtarthaygpthutngthigian
khong75%).Gnlinvisphttrinphncng,phnmmcngphttrinvi thc.Thigianthccphilthigianphnnhvtrungthccathigianhay
tcnhanhkhngthuakmthmchstngnhanhhnrtnhiutheosphttrin khng? Thi gian thc c phi l hin th chnh xc v ng b theo ng nh nhp
hnhng. ng h m thi gian hay khng? Khng phi hon ton nh vy! Thc cht, theo
cchhiununitrongcchthngkthutcbitcchthngyucukhtkhev
1.1 Cc khi nim v h nhng
srngbucthigian,thigianthcchiulyucucahthngphimbo
Hnhng? thomnvtnhtinnhtronghotngcahthng.Tnhtinnhnilnhnhvi
Trongthgiithccachngtabtkmtthitbhayhthngin/intckh cahthngthchinngtrongmtkhungthigianchotrchontonxcnh.
nng x l thng tin v iu khin u c th tim n trong mt thit b hay h Khungthigiannycquytnhbicimhocyucucahthng,cthl
nhng, v d nh cc thit b truyn thng, thit b o lng iu khin, cc thit b vigiyvcngcthlvinanogiyhocnhhnna.ychngtaphnbit
phcvsinhhothngngynhlvisng,mygit,cameraRtddngcth yu t thi gian gn lin vi khi nim v thi gian thc. Khng phi h thng thc
k ra hng lot cc thit b hay h thng nh vy ang tn ti quanh ta, chng l h hinrtnhanhlsmboctnhthigianthcvnhanhhaychmhontonl
nhng.Vyhnhngthcchtlgvnnhiuthnovhnhng?Hinnaycng php so snh c tnh tng i v mili giy c th l nhanh vi h thng iu khin
chacmtnhnghanothcsthongcchunhovthanhnrng nhitnhnglilchmiviccitngiukhininnhdng,p.Hnth
richohnhngmvnchlnhngkhinimdintvchngthngquanhngc nanuchnhanhkhngthchamphimboduytrnnhbngmtc
thchung.Tuynhinychngtacthhiuhnhnglmtphnhthngxl chhotngtincy.Chnhvvyhthngkhngkimsotchotngcan
thngtinnhngtrongcchthngln,phchpvclpvdnhtrongt,cc (btnh)thkhngthlmththngmbotnhthigianthcmcdhthng
thitbolng,iukhin,truynthngvthitbthngminhnichung.Chngl cthchopngrtnhanh,thmchnhanhhnrtnhiusoviyucutra.
nhngthpcaphncngvphnmmthchinmthocmtnhmchcnng Mt v d minh ho tiu biu l c ch truyn thng d liu qua ng truyn
chuyn bit, c th (Tri ngc vi my tnh PC m chng ta thng thy c s chunEthernettruynthng,mcdaicngbittctruynlrtnhanhnhngvn
dngkhngphichomtchcnngmlrtnhiuchcnnghayphcvchungcho khngphihhotngthigianthcvkhngthomntnhtinnhtrongcch
nhiumcch).PCthcchtlilmththngln,thpcanhiuhthngnhng truyndliu(cthlrtnhanhvcngcthlrtchmnucscanhtrnhv
vdnhcardmnhnh,mthanh,modem,cng,bnphmChnhiunylm giaothngngtruynbnghn).
chngtadlngtngnuchinnhiuthnovPC,cphilhnhnghay
khng.
5 6
Ngitaphnralmhailoiivikhinimthigianthclcng(hardrealtime) 1.3 c im cng ngh v xu th pht trin ca h nhng
vmm(softrealtime).Thigianthccnglkhihthnghotngviyucutho
mns rngbuc trong khung thi gian cng tc lnuviphm ths dnnhot 1.3.1 c im cng ngh
ngcatonhthngbsaihocbphhu.Vdvhotngiukhinchomt Cc h thng nh vy u c chung mt s c im nh yu cu v kh nng thi
lphnnghtnhn,nuchmraquytnhcthdnnthmhogyradophn gianthc,tincy,tnhclpvhiuqu.Mtcuhitraltisaohthng
ngphnhchvdnnbngnchthng.Thigianthcmmlkhihthng nhngliphttrinvcphcpmtcchnhanhchngnhhinnay.Cutrli
hotngviyucuthomnrngbuctrongkhungthigianmm,nuviphmv thcranmccyucutnglnkhngngngtrongccngdngcngnghhin
sai lch nm trong khong cho php th h thng vn c th hot ng c v chp nay.Mttrongnhngyucucbnl:
nhnc.Vdnhhthngphtthanhtruynhnh,nuthngtintruynittrm
pht ti ngi nghe/nhn chm mt vi giy th cng khng nh hng ng k n Khnngclpvthngminhho:iunycchrhnthngquamtscc
tnhthiscatinctruynivhontoncchpnhnbingitheodi. thuctnhyucu,cthnh:
; tincy
Thctthyrnghuhthnhnglcchthigianthcvhuhtcchthigian ; Khnngbotrvnngcp
thclhnhng.iunyphnnhmiquanhmtthitgiahnhngvthigian ; Sphcpvtinsdng
thcvtnhthigianthctrthnhnhmtthuctnhtiubiucahnhng.V ; anton
vyhinnaykhicpticchnhngngitaunitictnhcbncanl ; Tnhbomt
tnhthigianthc.
H thi gian thc Hiuqu:Yucunycthhinthngquamtscccimcahthngnh
sau:
Hnhngthi ; Nnglngtiuth
; Kchthcvphncngvphnmm
gianthc
; Hiuquvthigianthchin
; Kchthcvkhilng
H Nhng
; Githnh
Hnh12:Phnbvquanhgiahnhngvthigianthc
Phnhochtcvvchcnngho:Ccbvixltrongcchnhngthngc
1.2 Lnh vc ng dng ca h nhng sdngmnhimvthchinmthocmtnhmchcnngrtclpvcng
cthchotngphnchcnngcahthnglnmncnhngvo.Vdnh
Chngtacthkracrtnhiuccngdngcahthngnhngangcs
mtvixlthchinmtphniukhinchomtchcnngthuthp,xlvhin
dnghinnay,vxuthscntiptctngnhanh.Mtscclnhvcvsnphm
thcathayhthngiukhinqutrnh.Khnngnylmtngthmschuyn
thtrngrnglncacchnhngcthcnhmnhsau:
bithovchcnngcamththnglnvddnghnchoqutrnhxydng,
Ccthitbiukhin
vnhnhvbotr.
t,tuin
Truynthng
Khnngthigianthc:Cchthngugnlinvivicmnhimmtchcnng
Thitbyt
chnhvphicthchinngtheomtkhungthigianquinh.Thngthng
Hthngolngthmnh
mtchcnngcahthngphicthchinvhonthnhtheomtyucuthi
Tonhthngminh
gian nh trc m bo thng tin cp nht kp thi cho phn x l ca cc chc
Thitbtrongccdytruynsnxut
nngkhcvcthnhhngtrctiptishotngngvchnhxccaton
Rbt
hthng.Tuthucvotngbitonvyucucahthngmyucuvkhnng
...
thigianthccngrtkhcnhau.
Tuy nhin, trong thc t khng phi h nhng no cng u c th tho mn tt c
nhngyucunutrn,vchnglktqucasthohipcanhiuyucuviu
kin nhm u tin cho chc nng c th m chng c thit k. Chnh iu ny li
7 8
cnglmtngthmtnhchuynbithocacch/thitbnhngmccthitba FPGA, PSOC v s t hp ca chng...Km theo l cc k thut pht trin phn
nngkhngthcnhtranhc. mmchophpmnhimcccbitonyucukhtkhetrncsmtnnphn
cng hu hn v kh nng x l v khng gian b nh. Gii quyt cc bi ton thi
1.3.2 Xu th pht trin v s tng trng ca h nhng gianthcnhphnchiatcvvgiiquytcnhtranhchiastinguynchung.Hin
Vsphttrinhnhnglskthpnhunnhuyngiaphncngvphnmm nay cng c nhiu nh pht trin cng ngh phn mm ln ang hng vo th
nncngnghgnlinvincngchnhlcngnghkthpgiaccgiiphpcho trnghnhngbaogmcMicrosoft.NgoimtscchiuhnhWindowsquen
phncng v mm.V tnh chuynbitcacc thitb /h nhng nh giithiu thuc dng cho PC, Microsoft cng tung ra cc phin bn mini nh WindowsCE,
nnccnnphncngcngcchtoutinpngchochcnnghaynhim WindowsXPEmbeddedvcccngcphttrinngdngkmtheophcvchocc
vcthcayucuthitktra. thitbnhng,inhnhnhccthitbPDA,mtsthitbiukhincngnghip
nhccmytnhnhng,IPCcaSiemens...
Lp h nhng u tin pht trin theo tiu ch v kch thc nh gn, tiu th nng
lngt,githnhthp.Ccchpxlnhngcholphthngngdngthng C th ni h nhng tr thnh mt gii php cng ngh v pht trin mt cch
yucuvkhnngtnhtonthocvaphinnhuhtcxydngtrncs nhanh chng, ha hn nhiu thit b nhng s chim lnh c th trng rng ln
bngxl8bt16bithoccnglml32bitvkhnghtrduphyngdos trong tng lai nhm p ng nhu cu ng dng khng ngng trong cuc sng ca
hnchvdunglngvkhnngtnhton. chngta.ivilnhvccngnghipviukhinvtngho,hnhngcngl
mtgiiphpytimnngvangcngdngrngri.Nrtphhp
Lphnhngutinthcthikhnngxltnhtonvitcthchinnhanh.Cc thcthiccchcnngthngminhho,chuynbittrongcchthngvthitbcng
chpxlnhngchocchthngcngslccChippdngcccngnghcao nghip,tcchthngtptrungncchthngphntn.Giiphphnhngcth
cpvikintrcxlsongsongpngccngtnhtonlnvtcm thcthitcpthpnhtcahthngcngnghipnhccuchphnhchoncc
ccChipxlachcnngthngthngkhngttic. cpcaohnnhgimstiukhinqutrnh.
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,
9 10
Bgiimchuyni(thngdch)cclnhlutrtrongbmchngtrnhthnh
2 CU TRC PHN CNG H NHNG ccmmALUcthhiucvthcthi.Btuntcnhimvqunldngd
liutraoiquabusdliucaVXL.CcthanhghicsdngCPUlutrtm
2.1 Cc thnh phn kin trc c bn 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
Hnh21:KintrcinhnhcaccchpVXL/VKnhng nhaututheokintrctplnhcpdng.Cbaloihnhcbn:
2.1.1 n v x l trung tm CPU (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
Hnh22:CutrcCPU nhanhhnbnhthngvddngchobbindchxlthcthivcthcs
Ngi ta vn bit ti phn li x l ca cc b VXL l n v x l trung tm CPU dngmtcchhiuqu.Hnnagithnhphncngngycngcxuthgimng
(Central Processing Unit) ng vai tr nh b no chu trch nhim thc thi cc php kvtpthanhghicthtngnhanh.Nucchtruynhpbnhnhanhthkintrc
tnh v thc hin cc lnh. Phn chnh ca CPU m nhim chc nng ny l n v datrnngnxpcthlslachnltng;cnnutruynhpbnhchmth
logictonhc(ALUArthimeticLogicUnit).NgoirahtrchohotngcaALU kintrcthanhghislslachnphhpnht.
cncthmmtsccthnhphnkhcnhbgiim(decoder),btunt(sequencer)
vccthanhghi. Mt s thanh ghi vi chc nng in hnh thng c s dng trong cc kin trc
CPUnhsau:
11 12
nngtngthchkhicshotngphihpgiaccthitbghpnihaymrng
Thanhghicontrngnxp(stackpointer): tronghthng.Thngthngthngtinvccnhpthigianhotngcngnhc
Thanh ghi ny lu gi a ch tip theo ca ngn xp. Theo nguyn l gi tr a ch tnhkthutchititccungcphocquinhbiccnhchto.
chatrongthanhghicontrngnxpsgimnudliucluthmvongnxp
vstngkhidliuclyrakhingnxp. Mtsctrngvthigiancacctrngthihotngcbncacctnhiuh
thnggmcnhsau:
Thanhghichs(indexregister) 9 Thigiantnghocgim
Thanhghichscsdngluachkhimodeachcsdng.Ncn 9 Thigiantrlantruyntnhiu
cbittivitngilthanhghicontrhaythanhghilachntp(Microchip). 9 Thigianthitlp
9 Thigiangi
Thanhghiachlnh/Bmchngtrnh(ProgramCounter) 9 Trcmhotngvtrngthitreo(TriState)
Mt trong nhng thanh ghi quan trng nht ca CPU l thanh ghi b m chng 9 rngxung
trnh. Thanh ghi b m chng trnh lu a ch lnh tip theo ca chng trnh s 9 Tnsnhpxunghotng
cCPUxl.MikhilnhctrtivcCPUxlthnidunggitrca
thanhghibmchngtrnhstnglnmt.Chngtrnhsktthckhithanhghi Thigiantnghocgim
PCcgitrbngachcuicngcachngtrnhnmtrongbnhchngtrnh.
Thanhghitchly(Accumulator)
ThanhghitchlylmtthanhghigiaotiptrctipviALU,csdnglu
gicctonthocktqucamtphptontrongqutrnhhotngcaALU.
Hnh23:MtvtrngthitnhiuhotngtrongVXL
Mcchcavicmttrngthitnhiutheoginthigianvmctnhiul Hnh25:Mttrngthivtrlantruyntnhiu
phntchvxcnhchuiskinhotngchitittrongmichukbus.Nhvic
Thigianthitlpvlugi
mtnychngtacthxemxtnkhnngpngthigiancaccskinthc
Khongthigiancnthittnhiutrchmuttimttrngthinnhtrckhi
thitronghthngvthigiancnthitthcthihotngtuntcngnhlkh
nhpxungchunnghthayicgilthigianthitlp.Thigianlugil
13 14
khong thi gian cn thit duy tr tn hiu trch mu n nh sau khi xung nhp Hnh28:Mtchuktnhiu3trngthivcontention
chunnghthayi.Thcchtkhongthigianthitlpvthigianlugilcn rngxungvtnsnhpxungchun
thit m bo tn hiu c ghi nhn chnh xc v n nh trong qu trnh hot
ngvchuynmctrngthi.GinthigiantrongHnh26:Thigianthitlpv
lugiminhhathigianthitlpvlugitronghotngcaTrigerD.
Hnh26:Thigianthitlpvlugi
Hnh29:rngvtnsxungnhpchun
Trongtrnghphotngchuyntrngthitnhiukhngngbvkhngm
bocthigianthitlpvlugiscthdnnsmtnnhhaykhngxc 2.1.3 Bus a ch, d liu v iu khin
nh mc tn hiu trong h thng. Hin tng ny c bit ti vi tn gi l Busach
metastabilit. minh ha cho hin tng ny trong Hnh 27 m t hot ng li ca Busachlccngdntnhiulogicmtchiutruynachthamchiuti
mt Triger khi cc mc tn hiu vo khng tha mn yu cu v thi thit lp v lu cc khu vc b nh v ch ra d liu c lu gi u trong khng gian b nh.
gi. 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
Hnh27:HintngMetastabilittronghotngcaTrigerD ti.Quiccckhuvccnhachbtutach0vtngdnn2N1.
Chuktnhiu3trngthivcontention 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.
15 16
Busdliu TrongkintrcvonNeumannkhngphnbitvngchadliuvmchngtrnh.
BusdliulccknhtruyntithngtintheohaichiugiaCPUvbnhhoccc C chng trnh v d liu u c truy nhp theo cng mt ng. iu ny cho
thitbngoivivora.BusdliuciukhinbiCPUchocvitccd phpadliuvovngmchngtrnhROM,vcngcthlumchngtrnh
liuhocmlnhthcthitrongqatrnhhotngcaCPU.rngcabusdliu vovngdliuRAMvthchint.
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
Hnh211:KintrcbnhvonNeumannvHavard
thng.Thngthngccdliuiukhinbaogmcctnhiuchukngb
cc nhp chuyn ng v hot ng ca h thng. Bus iu khin thng c iu KintrcHavardtch/phnbitvnglumchngtrnhvdliu.Mchngtrnh
khinbiCPUngbhanhphotngvdliutraoitrnccbus.Trong chcthcluvthchintrongvngchaROMvdliucngchcthlu
trnghpvixlsdngdnknhbusdliuvbusachtclmtphnhoc vtraoitrongvngRAM.Huhtccvixlnhngngynaysdngkintrcb
tonbbusdliuscsdngchungchiasvibusachthcnmttnhiu nhHavardhockintrcHavardmrng(tclbnhchngtrnhvdliutch
iukhinphnnhptruynhpchophpchtlutrthngtinachmikhibt bitnhngvnchophpkhnnghnchlydliuratvngmchngtrnh).
umtchu k truyn. Mtv dvcc chu k bus v sng b ca chngtrong TrongkintrcbnhHavardmrngthngsdngmtslngnhcccontr
hotngcahthngbusachvdliudnknhcchratrongHnh210. lydliutvngmchngtrnhtheocchnhngvotrongcclnhtcthi.
ylhotnginhnhtronghviiukhin8051vnhiuloitngt. 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.
u im ni bt ca cu trc b nh Harvard so vi kin trc von Neumann l c hai
knhtchbittruynhpvovngbnhmchngtrnhvdliunhvym
mchngtrnhvdliucthctruynhpngthivlmtngtclung
traoivibxl.
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
BnhchngtrnhPROM(ProgrammableReadOnlyMemory) Hnh214:SnguynlghpniEPROMviVXL
Vnglumchngtrnh.CbaloibnhPROMthngdngcsdngcho BnhdliuRAM
hnhngvscgiithiulnltsauy.
Vngluhoctraoidliutrunggiantrongqutrnhthchinchngtrnh.
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.
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
Ngtlmtskinxyralmdnghotngchngtrnhhintiphcvthc
thimttcvhaymtchngtrnhkhc.CchngtgipCPUlmtngtcp
ngphcvccskintrongchngtrnhhotngcaVXL/VK.CcVKkhc
nhausnhnghaccnguntongtkhcnhaunhngucchungmtcchhot
Hnh217:Nguynlghpni(mrng)RAMviVXL 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
2.1.5 Khng gian v phn vng a ch
trngthihotngchochngtrnhhintiangthchinvdnhnidungb
2.1.6 Ngoi vi mchngtrnh(contrlnh)ccnidungthanhghiludliuiukhinchng
trnh ni chung thc thi chng trnh phc v tc v cho s kin ngt. Thc cht
Bnhthigian/Bm qu trnh ngt l CPU nhn dng tn hiu ngt, nu chp nhn s a con tr lnh
Huhtccchipviiukhinngynayuctnhtmtbnhthigian/bmc chngtrnhtrtivngmchachngtrnhphcvtcvngt.Vvymimt
thcuhnhhotnglinhhottheoccmodephcvnhiumcchtrongccng ngt u gn vi mt vector ngt nh mt con tr lu thng tin a ch ca vng b
dngxl,iukhin.Ccbnhthigianchophptoraccchuixungvngt nh cha m chng trnh phc v tc v ca ngt. CPU s thc hin chng trnh
thigianhocmtheocckhongthigiancthlptrnh.Chngthngcng
21 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
Hnh219:Snguynlhotngcabnhthichcanh
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.
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. (a) (b)
Hnh220:Nguynlhotngbnhthichcanh
Cmtscchthchincitbnhthichocanhgimsthotngcah BiukhintruynhpbnhtrctipDMA
thngnhsau:
DMA(DirectMemoryAccess)lcchhotngchophphaihaynhiuvixlhoc
23 24
quyntruynhpvtraoidliutrctipviccbnhnhhthngcmtvix cncmtbcxlquytnhxemthitbnoscnhnquyniukhin
l.ngdngphbinnhtcaDMAlchiasbnhchunggiahaibvixlhoc trongtrnghpcnhiuhnmtthitbcnhucusdngDMA.Thngthng
ccngoivitruyndliutrctipgiathitbngoivivo/ravbnhdliu kiuDMAchuknhmcntdliuthngtiniukhin(overhead)nnckhnng
caVXL. traoivitccaonhnglichimnhiuthigiantruynhpbusdotruynckhi
dliuln.iunycthnhhngnhotngcachthngdotrongsut
Truynhpbnhtrctipcsdngpngnhucutraoidliuvora qutrnhthchinDMAnhm,CPUsbkhoquyntruynhpbnhvkhngth
tc cao gia ngoi vi vi b nh. Thng thng cc ngoi vi kt ni vi h thng x l cc nhim v khc ca h thng m c nhu cu b nh, v d nh cc dch v
phichiasbusdliuvciukhinbiCPUtrongqutrnhtraoidliu. ngt,hoccctcvthigianthc...
iunylmhnchtctraoi,tngcngtcvloibscanthipca
CPU, c bit trong trng hp cn truyn mt lng d liu ln. C ch hot ng Chukri(CycleStealing)
DMAcmtnhtrongHnh221.Thtccbtubngvicyucuthc Trong kiu ny DMA s c thc hin trong nhng thi im chu k bus m CPU
hinDMAviCPU.Saukhixl,nucchpnhnCPUstraoquyniukhin khngsdngbusdokhngcnthchinthtcxlcpphtquyntruynhp
buschongoivivthchinqutrnhtraoidliu.SaukhithchinxongCPUs vthchinDMA.
nhncthngbovnhnliquyniukhinbus.TrongcchDMA,chaicch
truyndliu:kiuDMAchukn,vkiuDMAchuknhm(burst). 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.
Hnh221:NhphotngDMA ICchcnngchuyndng
DMAchuknvnhm DAC/ADC
TrongkiuhotngDMAchuknhm,ngoivisnhncquyniukhinv
truynkhi d liu ri tr li quyniu khin cho CPU.Trongc chDMAchuk
nngoivisaukhinhncquyniukhinbuschtruynmttdliuritr
lingayquynkimsotbnhvbusdliuchoCPU.TrongcchthchinDMA
25 26
Hnh224:SnguynlcutrcADC1754A
Hnh222:SnguynlmchchuyniDAC
Hnh223:SnguynlmchchuyniADC
VdADC754A
cimkthut:
9 ChtotheocngnghCMOS. Hnh225:SbtrchncaChipADC574A
9 12bitvigiaodintngthchviccloiVXL/VK8,12v16bit.Cthlp
trnhhotngchuyni8bithoc12bit. Nguynliukhin
9 Tn hiu d liu ra tng thch vi chun TTL v ghp ni thng qua loi cng ADC574ciukhinbiccchntnhiunhmttrongbngsau:
logic3trngthi.
Bng1:TnhiuiukhinADC574A
9 Digitrinpuvocthlachnnhcuhnhgitrintrniu
vonhnccditnhiu(010)V,(020)V,(5+5)V,v(10+10)V. K hiu nh ngha Chc nng
9 CthmkhnngcungcpngunthamchiuniVref=+10V.
Chip Enable Must be high (1) to either initiate a conversion or read output data. 0-1 edge may be used to
9 Nguncungcpcthl+5V,12V,hoc15V CE (Pin 6) (active high) initiate a conversion.
9 Thigianchuyniccil25svithigiantruynhpbusl150ns. Chip Select Must be low (0) to either initiate a conversion or read output data. 1-0 edge may be used to
CS (Pin 3) (active low) initiate a conversion.
27 28
Read/Convert Must be low (0) to initiate either 8- or 12-bit conversions. 1-0 edge may be used to initiate a
R / C (Pin 5) (1 = read) conversion.
(0 = convert) Must be high (1) to read output data. 0-1 edge may be used to initiate a read operation.
In the start-convert mode, AO selects 8-bit (AO= 1) or 12-bit (AO= "0") conversion mode.
Byte Address
AO (Pin 4) Short Cycle
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).
Data Mode
Select When reading output data, 12/8 = 1 enables all 12 output bits simultaneously. 12/8 = 0 will
12 / 8 (Pin 2) (1 = 12 bits) enable the MSBs or LSBs as determined by the AOline.
(0 = 8 bits)
(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
Hnh226:Ginkhichcnngca82C55A
bithptrng 12 / 8 vA0.
Chcnngvnghacaccchnonchipca82C55AcmttrongBng2:Chc
Cngsongsongkhtrnh82C55A nngccchnonchipca82C55A.
82C55A l mt giao din ngoi vi cng song song kh trnh c ch to theo cng
nghCMOS.Nlmtthitbngoivivorakhtrnhamcchvcthcs Bng2:Chcnngccchnonchipca82C55A
rathnh2nhm,minhm12chnvcthcsdngtheo3chhotng VCC
VCC: The +5V power supply pin. A 0.1F capacitor between VCC and GND is recommended for
decoupling.
khcnhau.Hnh226mtginkhichcnngcachip82C55A.
GND GROUND
D0-D7 I/O DATA BUS: The Data Bus lines are bidirectional three-state pins connected to the system data bus.
RESET: A high on this input clears the control register and all ports (A, B, C) are set to the input
RESET I
mode with the Bus Hold circuitry turned on
CHIP SELECT: Chip select is an active low input used to enable the 82C55A onto the Data Bus for
CS I
CPU communications.
READ: Read is an active low input control signal used by the CPU to read status information or data
RD I
via the data bus.
WRITE: Write is an active low input control signal used by the CPU to load control words and data
WR I
into the 82C55A.
ADDRESS: These input signals, in conjunction with the RD and WR inputs, control the selection of
A0-A1 I 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.
PORT A: 8-bit input and output port. Both bus hold high and bus hold low circuitry are present on
PA0-PA7 I/O
this port.
PB0-PB7 I/O PORT B: 8-bit input and output port. Bus hold high circuitry is present on this port.
29 30
PC0-PC7 I/O PORT C: 8-bit input and output port. Bus hold circuitry is present on this port.
9 Ccngtnhiuvokhngccht
9 Cthcuhnh16kiuhotngvorakhcnhau
82C55Acungcp3chhotngchnhvcthlptrnhlachn
Mode1(Voracbttay):Chhotngnycungcpkhnngtruyndliuti
Mode0:Hotngvoracbn
hocitmtcngcthcngvicctnhiubttay.TrongchnycngA,B
Mode1:Hotngvoranmbt(strobed)
csdngtruyndliuvcngChotngnhcngiukhincchng
Mode2:HotngBus2chiu
bbttay.Chhotngnycungcpccchcnngchnhsau:
Viclachnchhotngcthchinthngquathanhghitiukhinv
9 Hai nhm cng (Nhm A v Nhm B). Mi nhm bao gm 1 cng 8bit v mt
cmtnhtrongHnh227.
cngdliuiukhin4bit.
9 Cngdliu8bitcthhotngnhhoclcngvohoclcngravchai
chiudliuuccht.
9 The4bitportisusedforcontrolandstatusofthe8bitport.
Mode 2 (Bus vo ra hai chiu c bt tay): Ch hot ng ny cung cp kh nng
truynthngviccngoivihocccbusdliu8bitchovictruynnhndliu.
Cctnhiubttayccungcpduytrdngtnhiubustngtnhch1.
Cc c ch to ngt cng c th c thc hin ch ny. Mt s cc chc nng
chnhhtrtrongchnybaogm:
9 ChsdngnhmA
9 Mtcngbus2chiu8bit(cngA)vmtcngiukhin5bit(CngC)
9 Chaichiudliuvovrauccht.
9 Cngiukhin5bit(CngC)csdngchomcchiukhinvtrng
thichocngAtraoidliu2chiu8bit.
Bnhthi/BmC8254
Hnh227:Thanhghitiukhinchnchhotngcho82C55A
ylbmtccaocungcp3bnhthi16bitclpvcthccuhnh
hotngnhiuchhotng.Mibmcccknhdliuviukhin
KhiuvoRESETciukhinmccaothttccccngscthitlphot ring bit. H tr 2 kiu m ho m nh phn (0 65535) hoc BCD (binary coded
ng ch cng vo vi 24 ng tn hiu vo duy tr mc logic 1. Sau khi tn decimal)(09999).C4thanhghitchhpOnchiplugitrmvcuhnhhot
hiuiukhinRESETmctchccbloibth82C55Acthduytrchhot ng(tiukhin).
ngmkhngcnthmbtkvickhitonona.iunysgiploibc
ccintrtreocaohoctreothptrongccthitkchomchCMOS.Khikchhot Tnshotngcabmcthlmvicvixungnhptns10MHzvhtr6
ch thit lp th thanh ghi t iu khin s cha gi tr 9Bh. Trong qa trnh thc chhotngvcthcuhnhringl.
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 32
Giaodinnitip
USART
Hnh228:Scutrcchcnng8254 Hnh230:CutrcnginhocaUSART
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) cmtVKgivaitrlCh(Master)vccVKcnlicthhoclChhocl
Giao thc u tin truyn thng ni tip c pht trin bi Philips Semiconductor v T.SPIc4tccthlptrnh,ccvphanhpnghkhtrnhvktthcngt
cgilbusI2C.VngungcncthitkliukhinlinthngIC(Inter truynthng.Nhpnghkhngnmtrongdngdliuvphiccungcpnh
IC)nnncttnlI2C.TtcccchpctchhpvtngthchviI2Cuc mttnhiutchclp.CbathanhghiSPSR,SPCRvSPDRchophpthchincc
thmmtgiaodintchhptrnChiptruynthngtrctipviccthitbtng chcnngiukhin,trngthivlutr.Cbnchncbncnthitthcthi
thchI2Ckhc.Victruyndliunitiptheohaihng8bitcthcthitheo3ch chungiaodintruynthngny.
sau:
Chun(Standard)100Kbits/sec DliuraMOSI(MasterOutputSlaveInput)
Nhanh(Fast)400Kbits/sec DliuvoMISO(MasterInputSlaveOutput)
Tccao(HighSpeed)3.4Mbits/sec NhpxungchunSCLK(SerialClock)
LachnthnhphntSS(SlaveSelect)
ngbusthchintruynthngnitipI2Cgmhainglngtruyndliu
nitipSDAvngtruynnhpxungnghnitipSCL.Vcchhotngl
ngbnnncncmtnhpxungtnhiungb.CcthitbhtrI2Cuc
mtachnhnghatrc,trongmtsbitachlthpcthcuhnh.nv
hocthitbkhitoqutrnhtruynthnglnvChvcnglnvtoxung
nhpng b,iu khin cho phpktthc qutrnhtruyn. NunvChmun
Hnh233:KtninguynltruynthngSPIgiamtMastervmtT
truynthngvinvkhcnsgikmthngtinachcanvmnmun
truyntrongdliutruyn.nvTucgnvnhachthngquan Hnh233chranguynlktnigiamtnvChvmtnvTtrongtruyn
vChcththitlptruynthngvtraoidliu.Busdliucthitkcho thngSPI.TrongtnhiuSCLKsctorabinvChvltnhiuvoca
phpthchinnhiunvChvTtrncngBus. nvT.MOSIlngtruyndliuratnvChtinvTvMISOl
ngtruyndliuvonvChntnvT.nvTclachnkhi
QutrnhtruynthngI2CcbtubngtnhiustarttorabinvCh.Sau nvChkchhottnhiu SS .
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,
Hnh234:SktnitruynthngSPIcamtnvChvinhiunvT
cmbin,nghtothigianthc...HuhtccthitbhtrI2Chotngtc
400Kbps,mtschophphotngtccaoviMbps.I2Ckhnginthc NuhthngcnhiunvtnvChstophiracctnhiutchbitchn
thiktninhiunvvnhtrcchxcnhach. nvT.CchcthchinnhsktninguynlmtnhtrongHnh
234.nvChstoratnhiuchnnvTnhccchntnhiulogicachc
SPI nng.Cctnhiunyphiciukhinvmbonnhvthigiantrnh
SPIlmtgiaodincngnitipngbbadychophpktnitruynthngnhiu trnghptnhiubthayitrongqutrnhangtruyndliu.Mtiudnhn
VKcphttrinbiMotorola.Trongcuhnhmngktnitruynthngnyphi
35 36
rarngSPIkhnghtrcchxcnhntrongqutrnhthchintruynthng.iu hpthmccngoivi.Ccngoivithnglcckhichcnngngoivithngdng
nyphthucvogiaothcnhnghahocphithchinbsungthmmtscc nhbnhthigian,bm,bchuyniA/D,giaodinsongsong,nitipMc
mrngphbnngoi. tchhpngoivicngkhcnhaututhucvomcchngdngscthtm
cChipphhp.Thctviccngdngyucutchhpcaothssdng
Kh nng truyn thng ng thi hai chiu vi tc ln n khong vi Mbit/s v giiphptchhptrnchip,nukhngthhuhtccChipucungcpgiiphp
nguynlkhnginnnSPIhontonphhpthchintruynthnggiacc mrngngoivipngchomtslngngdngrngvmmdo.
thitbyucutruynthngtcchm,cbithiuqutrongccngdngmt
nvChvmtnvT.TuynhintrongccngdngvinhiunvTvic
thcthilikhphctpvthiucchxcnhach,vsphctpstnglnkhi
snvTtng. Khi gii m a ch
CPU v iu khin Logic B nh Ngoi vi
2.2 Mt s nn phn cng nhng thng dng (P/DSP/PLA)
Trongphnnygiithiungngncutrcnguynlcaccchipxlnhngng
Bus a ch
dngtrongccnnphncngnhnghinnay.
Bus D liu
SphttrinnhanhchngccchngloiChipkhtrnhvimttchhpcaov
angcmttcngngknsthayitrongvicthit kccnnphncng
Bus iu khin
thitbxlviukhinstrongthpkgny.Michngloiucnhngc
imvphmviitngngdngvlunkhngngngphttrinpngmt Hnh235:KintrcnguynlcaVKvicutrcHavard
cchttnhtchoccyucucngngh.Chnganghngtitptrungchomtth
VdvkintrccahVKAVR
trng cng ngh tim nng rng ln l cc thit b x l v iu khin nhng.
Trongbivitnytcgigiithiungngnvccchngloichipxl,iukhin
nhnginhnhangtntivphttrinvmtscimvhngphmving
dngcachng.
37 38
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.
V d chnh xc ca DSP du phy ng 32 bit l 223 vi 24 bit biu din phn
mantissa.Vngngl1.181038x3.41038.
Nhngnhthitkhthngphiquyt nhvngvchnhxccnthitchocc
ngdng.Ccvixlduphyngthngcsdngchoccngdngyucu
vchnhxccaovdibiudinslnphhpvihthngccutrcbnhln
HnnaccDSPduphyngchophpphttrinphnmmhiuquvngin
Hnh237:SkhichcnngkintrcPIC16F873A hnbngcctrnhbindchngnngbccaonhCdocthgimcgithnh
v thi gian pht trin. Tuy nhin gi thnh li cao nn cc DSP du phy ng ph
2.2.2 Chip DSP hpviccngdngkhcbitvthnglvislngt.
[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 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.
43 44
MtuimnibtcaloiFPGAantifusedlkhnngbovcngngh.Tcld
liu cuhnh lp trnh cho FPGAc thcbovbivicc bthpphphoc Ngi ta cng thng phn loi FPGA da vo phn t kin trc ca chng v bao
khngchophpc.Trongqatrnhxlhocphttrin,ngilptrnhssdng gm3loichnh:mn,thvtrungbnh.Bnchtvicphnloinyldavokiu
mt tp d liu cu hnh lp trnh v kim tra qu trnh np cu hnh cho FPGA. khilogickhtrnhcuthnhnnFPGA.ViloiFPGAmnthkintrccckhilogic
Cngvicnychthchinmtlnvskhngththayicna.Khithchin khtrnhthnglcccnglogicngin(kiuAND,OR,vccphntlugi
xongncthcthitlpthmmtthuctnhlchngctrctiptFPGAd nhTrigerD).Kiukintrcnyphhpvthngsdnghiuquvikintrc
liulinquanncuhnh.NgoirachngtacngcthbitthmrngFPGAanti ASIC.GnyxuthphttrincaFPGAangtptrungvoloikintrcth.Tc
fusedthngsdngtnnglnghnloiFPGASRAM,kchthccngnhhn,v lcckhilogickhtrnhlcckhickhnngxllogiclnvinhiuthplin
tccngnhanhhnmtchtnhkhongcchktnicnggiaccphntngn ktvphctpvinhiuuvovralinkt.Tutheomccakhilogickh
hn. trnhmngitaphnrathnhccloitrungbnh.
TuynhinnhcimlnnhtcaFPGAantifusedlchcthclptrnhvcu ChailoicutrccbncuthnhnncckhilogickhtrnhtrongkintrcFPGA
hnh mt ln. V vy n ch thc s ph hp khi thc thi hon chnh sn phm cui th hoc trung bnh l MUX (Multiplexer) v LUT (Lookup Table). Trong loi cu trc
cngvkhngphhpvimcchthitkphttrin. MUX th cc phn t logic c cu thnh theo cu trc t hp cc u vo ra theo
nguynlMUXnhmttrongHnh243:KhilogicdngMUX.
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. Hnh243:KhilogicdngMUX
iviloicutrcLUTthccuvothcchtlccthpchnragitrtrong
TuynhincngnghchtoFPGAEEPROM/FLASHihithcthiquanhiucng bngchtlcahmchcnngcnthcthi.Nguynlcaloikhilogicnyc
onxlhnsoviloiFPGASRAMvvymsphttrincachngcngchm mtnhtrongHnh244.
hn.Hnnannglngtiuthcachngcnglnhnvphinuirtnhiucc
phntintrko(pullupresistor).
CutotthpFLASHSRAM
NgynayngitacngphttrinchtoccloiFPGAcutotccthpSRAM
vFLASHtndngcccuimcachaichngloiny.Thngthngcc
phn tcuhnhFLASHscsdngluccnidungcuhnhsaochp
choccphntcuhnhSRAM.VccphntcuhnhSRAMhontoncthc
cuhnhlitheoyucuthitktrongkhivnduytrmtphnthitkcuhnhgc Hnh244:LUTthchinhmthpANDvOR
lutrongccphntFLASH.
45 46
Hu ht cc ng dng u c nhu cu v b nh RAM on Chip v vy mt s dng
FPGA hin nay cng tch hp thm c cc phn t nh RAM v c gi l RAM
3 C S K THUT PHN MM NHNG
nhng (embedded RAM). Cc phn t RAM c t chc thnh tng khi v tu 3.1 c im phn mm nhng
thucvokintrccaFPGAnscphnblinhhot,thnglxungquanhcc
phntngoivihocphnbutrnbmtChip.Mthnhnhminhhovphn 9 Hngchcnnghocth
bRAMtrongkintrcFPGAcmtnhtrongHnh245. 9 Hnchvtinguynbnh
9 Yucuthigianthc
rtlinhhotvcbitcithinchiusutthchinvtngtchnrtnhiuso Vdnhcsbinary(nhphn),csdecimal(thpphn),cshexadecimal,cs8
vikintrcnhiuChipDPShocASICsngthigithnhlithphn. 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
Hnh246:SnguynlmchghpniVKvFPGA 10000001,vgitr+1scdng00000001.Nhvyvimtt8bitcthbiudin
47 48
cccstrongphmvit127n+127.MtcchtngqutmttNbitsbiu Hinnayngitasdnghaiquicbiudinsnguynphnbittheothtca
dinc2(N1)1n+2(N1)1. bytetrngstrongmttcbiudin:
Litteedian:bytetrngsnhnhtngtrcthunlichophpcnghoc
Chkhithchincnghaiscdu: trv
9 Nuhaiscngduththchinphpcngphnbiudingitrvsdngbit Bigendian:bytetrngslnnhtngtrcthunlichophpnhnhoc
ducngduvihais. chia.
9 Nu hai s khc du th kt qu s nhn du ca ton t ln hn, v thc hin Vdxtmtsnhphn4byte
phptrgiatontcgitrlnhnvitontbhn.
Vd1:Cnghaiscdu010011112v001000112.
Theoquicbiudinlitteedianththtachlutrongbnhsl:
1111 carries
achcs+0=Byte0
01001111 (79)
achcs+1=Byte1
0+0100011 +(35)
achcs+2=Byte2
01110010 (114)
achcs+3=Byte3
Vtheoquicbiudinsbigediansl:
Vd2:Cnghaiscdu010011112v011000112.
achcs+0=Byte3
Nhcuicng 1 1111 carries
achcs+1=Byte2
Trn 0 1001111 (79)
achcs+2=Byte1
bnh 0+ 1100011 +(99)
achcs+3=Byte0
0 0110010 (50)
3.2.3 S du phy tnh
Vd3:Trhaiscdu010011112v011000112.
Chngtacthsdngmtkhiuduchmobiudinmtsthc.Duchm
0112 borrows ocsdngtrongtdliudngphnbitvngncchgiaphnbiudin
0 1100011 (99) gitrnguyncadliuvmtphnlthpphn.Vdvmtt8bitbiudins
0 1001111 (79) duphyngcchranhtrongHnh31.Vicchbiudinny,gitrthcca
0 0010100 (20) sctnhnhsau:
N = a4 24 + a3 23 + a2 22 + a1 21 + a0 20 + a1 21 + a2 22 + a3 23
Vd4:Cnghaiskhcdu100100112(19)v000011012(+13)
= 0 24 + 1 23 + 0 22 + 1 21 + 1 20 + 1 21 + 0 22 + 1 23
012 borrows
= 8 + 2 + 1 + 1/ 2 + 1/ 8
1 0010011 (19)
0 0001101 +(13) = 11.625
1 0000110 (6)
Thuttonthchinphptnhcdu:
(1) Khaibovxaccbinlugitrvduchunbthchinphptnh.
(2) Kimtraducatontthnhtxemcphismkhng.Nulsm
ththchinbduvbtont.Nukhngthchuynquathchinbc3.
(3) Kimtraducatontthhaixemcphismkhng.Nulsmth Hnh31:nhdngbiudinsduphytnh8bit
thchinbduvbtont.Nukhngthchuynsangthchinbc4. Nhcimcaphngphpbiudinsduphytnhlvngbiudinsnguyn
(4) Thchinphpnhnhocchiavicctontvaxl. bhnchbiduphytnhcgncnh.iunydxyrahintngtrns
(5) Kimtradu.Nuzerothcoinhktthc.Nubng1(0ffh)ththchin khithchinccphpnhnhaisln.
phptnhbhaiviktquthucvktthc.
49 50
3.2.4 S du phy ng N min = 0.5 2 (2
e1
1)
(1.4)
Phngphpbiudinschnhxcvlinhhotcsdngrngrihinnaylh TheotiuchunIEEE754v854c2nhdngchnhchosduphynglsthc
thng biu dins du phyng.ycng l mt phngphp biudins khoa di(long)vsthcngn(short)chngkhcnhauvdibiudinvlnlutr
hcbaogm2phn:phnbiudinlutrsmantissavmtphnlutrbiudin yucu.Theochunny,sthcdicnhdng8bytebaogm1bitdu,11bit
s exponent. V d trong h c s thp phn, mt s nguyn bng 5 c th c biu exponentv53bitlugitrscngha.Mtsthcngncnhdng4bytebao
dinhocl 0.5 101 , 50 101 ,hoc 0.05 102 ,Trongmytnhshochthngsni gm1bitdu,8bitlythav24bitlugitrscngha.Mtsthcngncth
chung,ccsduphyngnhphnthngcbiudindng biudinvxlcscgitrnmtrongdi1038to1038vsthcdicthbiu
N = M 2E (1.2) dinvxlcscgitrthucdi10308to10308 .biudinmtgitrtng
Trong,Mlphngitrsmantissa,ElphnlythacasN.Mthnglcc ngnhvybngsduphytnhthcnti256bithay32bytedliu.
gitrlmphnthpphncanthngnmtrongkhong 0.5 M 1 .
3.2.5 Mt s php tnh c bn
Hnh32mtbiudinmtsduphyngcat8bitgm5bitbiudinphns Thchinphpnhn
c ngha mantissa, v 3 bit biu din phn ly tha. V cc phn mantissa v ly tha VtrongccVKnhngthngkhnghtrccphpnhnnhiubyte.Cngvicny
ucthnhnccgitrmvvyccbitutincaccphngitructh phicthchinbingiphttrinchngtrnhvthhindidngmtthut
csdngbiudindukhicnthit. 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 Nguynlthchinphp nhncngging nh tathchinphpnhn haia thc.
dinmtsduphyng.Mttsdngbiudingitrmantissa,vmtphn Trongtrnghpnhnhaisnhphnthmiphntlmtbit,bytehoct.Vd
biudingitrexponent. cthvihaisnhphn4bittathucphpnhnthchinnhsau:
Nuphnmantissacchunhathnhmtslcgitrtrongkhong 0.5 M 1
thbitutinsaubitduthnglmtvscmtduphynhphnnngaysau a3 23 + a2 22 + a1 21 + a0 20
bitdu.
b3 23 + b2 22 + b1 21 + b0 20
PhnbiudinexponentEsquytnhvtrcaduphyngsdchsangtri(E>0)
haysangphi(E<0)baonhiuvtr.Vdbiudinmtsthpphn6.5bngmtt a3 b0 23 + a2 b0 22 + a1 b0 21 + a0 b0 20
8bitduphyngnhsau: a3 b1 24 + a2 b1 23 + a1 b1 22 + a0 b1 21
N = .1101 2112 a3 b2 25 + a2 b2 24 + a1 b2 23 + a0 b2 22
1 1 1
a3 b3 26 + a2 b3 25 + a1 b3 24 + a0 b3 23
= + + 23 = 6.5
2 4 16
Trongtrnghpnyphnmantissagm4bitvphnexponentgm3bit.Nutadch Thuttonthchinphpnhn32bittheotrnhtsau:
duphysangphi3vtrbitthchngtascmtsnhphnduphyngbiu (1) Cpphtvngnhlnluscnhn32bitvcththchinphp
dincsl110.1. dchtri32ln.tgitrkhitochobmbitbng32vxathanhghi
Tngquthatrongtrnghpmtsnhphnduphyngnbitgmmbitbiu haybinlugiktquphpnhn.(Ch:Slngbitcnlugitrkt
dinphnmantissavebitbiudinphnexponentthgitrcaslnnhtcthbiu quphibngtngslngbitcnluccshngphpnhn)
dincsl (2) Dchsnhnsangphimtvtrbitvkimtracnh.Nukhngccnh
e1
N max = (1 2 m +1 )2(2 1)
(1.3) thtiptcthchinbc3.Nuxuthincnhthcngthmvobinlu
Vsdngnhnhtcthbiudinl ktquhinticaphpnhnmtgitrbnggitrcascnhn.
51 52
(3) Dchscnhnsangtrimtvtrbitvgimbmdchimt.Kim x nx
=
tra xem gi tr ca b m dch c bng khng khng? Nu bng khng th a an
thchintipbc4,cnkhngthquaytrlithchinbc2. iviphpchianhphnthnscchnlmtslythaca2vphilnhn
(4) Ktqucuicngcaphpnhnclutrongthanhghibinktqu. a.
Vdphpnhntnhphn4bit1100x1101 Thuttonthchinphpchiacthcthcthibiphpdch,cngvtrnhsau:
(1) Npbinlugitrthngsbnggitrcasbchia;sbcdchcnthc
0. A 1100(12) hinbngsbitlusbchia.
B 1101(13) (2) Dchtribinlugitrthngsvophnbinlugitrdcaphpchia.
Counter 100(4) (3) So snh s d vi s chia. Nu s d ln hn hoc bng s chia th thc hin
Product 0 php tr s d i mt gi tr bng gi tr s chia. Nu khng th chuyn sang
1. A 11000(24) thchinbctiptheo.
B 0110(6) (4) Gim bin lu gi tr s ln lp v kim tra xem n bng khng cha. Nu
Counter 011(3) chabngkhngthquaytrlibc2thchintip,cnnubngkhngth
Product 1100(12) gitrcaphpchiaclutrongnhchasdvthngs.
2. A 110000(48)
B 0011(3) ThcthithuttonbngngnngC/C++
Counter 010(2) i = 0; quotient = 0;
Product 1100(12) if (divisor == 0) goto error;
3. A 1100000(96)
while (dividend > divisor) divisor <<= 1; i++;
B 0001(1)
divisor >>= 1;
Counter 001(1)
while (i != 0){
Product 111100(60)
quotient <<= 1;
4. A 11000000(192)
if (divisor < dividend ) dividend -= divisor;
B 0001(1)
quotient ++;
Counter 000(0)
Product 10011100(156) divisor >>=1 ,
i--;
ThcthithuttonthchinphpnhnsnguynkhngdubngngnngC/C++: }
long product = 0;
Trckhithchinphpchiayucucnphikimtralichiakhngcthxyra.
while (multipier != 0){
Thuttonthchinphpchiachyudatrnphpdchvphptr.Sbchias
if (multiplier & 1){
dchsangtrivluvomtbin,phndscsosnhvischia.Nuphnd
product += multiplicand; bnghoclnhnschiathphndsctrimtgitrbngschiavsb
53 54
cchcnlsdvthngs.Hnhnhvbnhluccbinsthchintrong bnhcncungcpchoCPU.Cclnhcnggnvphchpthscncngtkhng
thuttonnycminhhonhtrongHnh33. 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.
Mt s VK c pht trin theo kin trc my tnh tp lnh rt gn RISC (Reduced
Instruction Set Computer). RISC ph hp vi cc thit k kin trc x l cc lnh n.
Thutngrtgn(reduced)ikhibhiukhngthtchnhxctheonghaenca
nthcchttnggcxutphttkhnngcungcpmttplnhtithiuthc
hinttccchotngchnhnh:chuyndliu,cchotngALUvrnhnh
iu khin chng trnh. Ch c cc lnh np (load), lu tr (store) l c php truy
nhptrctipbnh.
B1:SosnhcimcaCISCvRISC
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
Hnh33:Thchinphpchia phctp ngunphctp
Khnghtrcchpipeline Htrcchpipeline
3.3 Tp lnh Kchthcmchngtrnhnh Kchthcmchngtrnhln
gn
3.3.1 Cu trc tp lnh CISC v RISC
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
Hnh34:nhdnglnhMIPS lnhLoad0x0008schiuldliuhaytontcnptrongculnhnynm
trongbnhtiach0x0008.Cchnhachtrctipcngthucloihnhkh
57 58
truynachgintipthanhghithchngtacthddngthngdchctont 3.3.4 Nguyn l thc hin pipeline
truyntrongculnhnycachhiudngnmtrongthanhghiR1.
Vi x l c th thc thi cc lnh vi mt tc rt nhanh. RISC s dng k thut
pipelinetngcngtcxlcclnhngthinhvokhnngthchinxp
Cchnhachcsvchs(IndexedandBasedAddressing)
chngcunchiulintccclnhtheoccphnonthchinlnh.Vdmtlnhc
Trongcchnyngitasdngmtthanhghichaoffset(chnhlchtng
thcctbnhtrongkhimtlnhkhcangcgiimchunbavo
i)msccngvitonttoramtachhiudng.Vd,nutontX
xlvmtlnhkhcthangcthchin.CngcmtsVKctngilmy
calnhLoadXcnhachtheocchachchsvthanhghiR1lthanh
tnh tp lnhc bitSISC (SpecificInstruction SetComputer) v chng cphttrin
ghichachsvcgitrl1thachhiudngcatontthcchtslX+1.C
datrntplnhcthitkcchngchomcchiukhin.
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) Hnh36:Nguynlthchinpipeline
Trong c ch truyn a ch ny th ton t nhn c t nh ngn xp. Thay v s Pipelinecthchindatrnnguynlxpchngcunchiuccphnontrong
dngthanhghimcchchunghaynhkintrcdatrnngnxplucctont mi mt lnh. Thng thng mi mt lnh c chia ra lm nhiu phn on thc
trnnhcangnxp,vcthtruyxutviCPU.Kintrcnykhngchhiuqu hin,phbinhinnayl5phnontuntnhsau:
trongviclugiccgitrtrunggiantrongccphptnhphctpmcncungcp (1) Tr lnh(Instruction Fetch): Thc hin tr ti lnh thc hin bngcch ca
mtphngphphiuqutrongvictruynccthamstrongccligihmcng chlnhtthanhghicontrlnh(PC),clnhratbnhchngtrnhv
nhluctcccutrcdliuccbvnhngharaphmvitnticaccbin tnhtonrinpgitrmivotrongthanhghicontrlnhtrtilnhs
vcchmcon.Trongcccutrclnhtruyntontdatrnngnxp,huhtcc thcthitiptheo.
lnhchbaogmphnm,tuynhincngcmtslnhcbitchcmttontv (2) Giimlnh(Decode):Thchinthngdchvchuynimlnhthnhdng
dnhlnhctvo(push)hoclyra(pop)tngnxp.Chcmtslnhyucuhai mALUcthhiuvchunbthcthi.Qutrnhnythcchtlqutrnh
ton t thhaigitr chatrong 2 nh trnnhngnxpscs dng.V d cvchuyninidungtrongccthanhghichngtrnh.
nhlnhAdd,CPUlyrakhingnxphaiphntnmtrnnhrithchinphp (3) Thchinlnh(Execute):ALUthcthilnhvacgiim.
cngvsauluktqutrlinhngnxp. (4) Truy nhpb nh d liu(Memory):crahocvitvob nh d liu nu
lnhthchincnhucuny.
Cccchnhachkhc (5) Vittrli(Writeback):Honthnhvcpnhtnidungccthanhghi.
Crtnhiubinthtobicccchnhachgiithiutrn.lsthp
trongvictorahocxcnhachhiudngcatonttruyncholnhthcthi. Chngtacnphnbitcchpipelinevcchthchinsongsongmcdchaiu
Vdnhcchnhachchsgintipsdngngthichaicchnha nhmpngyucuthcthicnhtranhvtngtcthcthi.Cchpipelinegii
chngthi,tngtnhvycngccchnhachcs/offsetCngcmt quytvncnhtranhvtngtcthchinbngcchchianhtnhtonthnh
scchtngtnghocgimthanhghisdngtronglnhangthcthinhvy ccbcnhtrongkhicchsongsongssdngnhiunguntinguynclp
mcthgimclncamchngtrnhcbitphhpchoccngdng thchin.
Nhng.
59 60
thcthichng trnh.Vic pht hinv trnhc hin tng hazard lcnthit
mbochngtrnhcthcthing.Tutheonguynnhngyrahazardngi
taphnra3loihnhchnhtuthucvothtchocvittruynhplnhcacc
nhmlnhphthucnhautrongcchthchinsongsong.
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
Hnh37:Qutrnhthchinlnhtheonguynlpipeline
tincachngtrnhuc iukhintheocutrclnhrnhnhvphic
3.3.5 Harzard mbothcthingtheotht.Mtvdnginnhtvsphthuciu
khin l s ph thuc iu khin theo cu trc ifthenPhn thc thi trong phn
Trongcchthchinlnhpipelinethhinrcuimtrongvicthcyhiu thensphthucculnhiukinif.Vdonmchngtrnhminhhanh
sutthchinlnh,tuynhincthxyrahintngthcthisaidosthiungb sau:
vphthuclnnhaugiacclnhtrongnhmthcthipipeline.
if (p1) {
Hazarddliu S1;
Hintngharzardxyrakhicsphthuclngiacclnhnmtrongkhongxp }
chngthchincunchiutheonguynlpipeline.iunycthddnghnhdung if (p2) {
khihaihocnhiulnhthchinxpchngkhic nhucucgitrcacngmt S2;
tont.Dosphthucnhvynnkhivitchngtrnhchngtaphikimsot }
cthtchngtrnhmcclnhscthchinnhthno.Mcchcavic
thcthillmsaohtrccchthchinsongsongvtngchiusut
61 62
Culnhciukhinphthucvop1vS2ciukhinphthucp2ch bnhviKbytehocMbyte.Chotinay,iunychcClthcscththamn
khngphip1. vphhpnht.
Nichung,c2rngbuccthgithittrongsphthuciukhin: RrngCcmtsuimnibttiubiunhkhnhvddngchovichc,cc
(1) Mt lnh thc hin ph c quyt nh bi mt lnh iu khin r nhnh th chngtrnhbindchthngkhsnchohuhtccbxlangsdnghinnay,
khng th c php chuyn ln trc cu lnh thc hin kim tra iu kin. V d vcrtnhiungibitvlmchcngnngnyri,haynicchkhccng
chngtakhngthalnhtphnthenlntrcphnif. cphcptlu.HnnaCclithlkhngphthucvobxlthcthi
(2)Mtlnhthchinclpvkhngphthucvolnhrnhnhkhngthc m ngun. Ngi lp trnh ch phi tp trung ch yu vo vic xy dng thut ton,
chuynvokhuvcsauphnthchincanhnhthchinphthuc.Vdkhng ngdngvthhinbngngnngthnthinthayvphitmhiusuvkinthc
thamtlnhlntrcphnlnhifvchuynnvotrongphnthen. phn cng, cng nh rt nhiu cc u im ni bt khc ca ngn ng bc cao ni
chung.
Sphthuciukhinphicmbobi2thuctnhtrongcchpipelinen
gin. Th nht, cc lnh thc hin trong chng trnh phi ng theo trnh t c ClmtthmnhlnnhtcaClmtngnngbccaomcthpnht.Tclvi
iu khin ca n. Trnh t ny phi c m bo rng mt lnh m phi thc thi ngnngCchngtavncthiukhinvtruynhptrctipphncngkhthun
trcmtnhnhiukhinthphithchintrcnhnh.Thhai,vicphthin tinmkhnghphihysinhhaynhibtkmtthmnhnocangnngbc
rasxungtviukhin(controlhazard)smborngmtlnhmciu cao.Thcchtycnglmttrongnhngtiuchxydngcanhngngisng
khinphthucvomtnhnhthkhngcthchinchngnohngthchin lprangnngCmunhngti.Thctiunyccpnkhihainh
canhnhrrng.Bomcsphthuciukhinlcnthitvcngl sng lp ra ngn ng C, Kernighan v Ritchie a vo trong phn gii thiu ca
mt cch n gin m bo ng trnh t thc hin chng trnh. S ph thuc cunschcahTheCProgrammingLanguagenhsau:
iu khin khng phi l mt s hn ch c bn v kh nng thc thi chng trnh.
Chngtacthsnsngthcthithmnhnglnhmlrakhngnncthcthi Cisarelativelylowlevellanguage.Thischaracterizationisnotpejorative;itsimplymeans
nuchngkhnggynhhnggntnhngncachngtrnh,nukhngs thatCdealswiththesamesortofobjectsthatmostcomputersdo.Thesemaybecombinedand
xungtgyrabisphthuciukhincthxyra.Sphthucviukhin movedaboutwiththearithmeticandlogicaloperatorsimplementedbyrealmachines
khng phi l mt thuc tnh kch tnh bt buc phi bo m. Thay v iu , hai
thuctnhkchtnhchoviclptrnhmtcchngnvthngcboml TtnhinlCkhngphilngnngduynhtchoccnhlptrnhnhng.tnht
phitrnhcxungtbicsphthucvdliuviukhinvchnhl hinnayngitacngcthbittingoingnngClAssembly,C++,vAda.
hnhvingoilcthxyratronglungdliuthcthichngtrnh.
Trong nhng bui u pht trin h nhng th ngn ng Assembly ch yu c s
dngchoccvixlch.Vingnngnychophpngilptrnhiukhinv
3.4 Ngn ng v mi trng pht trin kimsothontonvixlcngnhphncnghthngtrongvicthcthichng
trnh.TuynhinngnngAssemblycnhiunhcimmcngchnhlldoti
3.4.1 Ngn ng
sao hin nay n t c ph cp v s dng. l, vic hc v s dng ngn ng
Mttrongnhngngnnglptrnhclphcprngrinhthinnaylngnng Assemblyrtkhkhnvcbitkhkhntrongvicphttrinccchngtrnhng
C. So vi bt k ngn ng lp trnh no khc ang tn ti C thc s ph hp v tr dnglnphctp.Hinnaynchcsdngchyunhimnigiangnng
thnhmtngnngphttrincahnhng.iunykhngphilchuvstn bccaovbcthpvcsdngkhicyucucbitvhiusutthchinv
timi,nhngtithiimnythCcllmtngnnggnginhttrthnh tiuvtcmkhngthtcbngngnngkhc.NgnngAssemblych
mt chun ngn ng trong th gii h nhng. Trong phn ny chng ta s cng tm thcsphhpchonhngngickinhnghimvhiubitttvcutrcphncng
hiutisaoClitrthnhmtngnngphbinnvyvtisaochngtalachn chcngnhnguynlthchincablnhvchpxl.
nnhmtngnngminhhachoviclptrnhhnhng.
C++lmtngnng kthat Cnhmvocclpngdngvtduylptrnh
Sthnhcngvphttrinphnmmthnglnhvoslachnngnngph hng i tng v cng bt u chim c s lng ln quan tm trong vic ng
hpnhtchomtdntra.Cnphitmmtngnngcthpngcyu dngchophttrinhnhng.TtccccimctlicaCvnckthahon
culptrnhchoccbxlt8bitn64bit,trongcchthngchchuhnv tontrongngnngC++vngoiracnhtrkhnngmivtrutnghadliu
vphhpvitduylptrnhhini;hngitng.Tuynhiniunybnh
63 64
i bi hiu sut v thi gian thc thi do ch ph hp vi cc d n pht trin cthcthitrnmych(mitrngphttrinchngtrnh)vcnctngilb
chngtrnhlnvkhngchuscplnvthigianthcthi. bindchcho(crosscompiler).Vbbindchchytrnmtnnphncngtora
mchngtrnhchytrnmitrngphncngkhc.Vicsdngbbindchcho
Adacnglmtngnnghngitngmcdnkhngcphcprngri ny l mt thnh phn khng th thiu trong qu trnh pht trin phn mm cho h
nh C++.Adacxy dng bi c quan quc phngM phc vphttrincc nhng.Ccbbindchchothngcthcuhnhthcthivicchuynicho
phn mm qun s chuyn dng c bit. Mc d cng c chun ha quc t nhiunnphncngkhcnhaumtcchlinhhot.Vviclachncuhnhbindch
(Ada83vAda95)nhngnvnkhngcphcprngringoivicngdngch tngngviccnnphncngikhicngkhclpvichngtrnhngdng
yutrongcclnhvcqunsvhngkhngvtr.Vncngdndnbmtu cabbindch.
thvsphcptrongthigiangny,ycnglmtiungticvbnthn
Adacnglmtngnngcnhiucimphhpchovicphttrinphnmm Ktquutincaqutrnhbindchnhnclmtdngmlnhcbitti
hnhngthayvphisdngC++. vi tn gi l tp i tng (object file). Ni dung ca tp i tng ny c th c
xemnhlmtcutrcdliutrunggianvthngcnhnghanhmtnh
3.4.2 Bin dch 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.
Cng kh ph bin thng c mt bng biu tng cha trong ni dung ca tp i
tng.Nchatnvachcattcccbinvhmcthamchiutrongtpm
ngun. Cc phn cha trong bng ny khng phi lc no cng y v c mt s
binvhmcnhnghavchatrongcctpmngunkhc.Chnhvvycn
Hnh38:Qutrnhphttrinvbindchphnmmnhng phicblinktthcthixlvnny.
Qutrnhbindch(Compiling)
Qutrnhlinkt(Linking)
Nhimvchnhcabbindchlchuynichngtrnhcvitbngngnng
Tt c cc tp i tng nhn c sau bc thc hin bin dch u tin u phi
thnthinviconngivdnhC,C++,thnhtpmlnhtngngcthc
cthplitheomtcchcbittrckhincnpvchytrnmitrng
vhiubibvixlch.Theocchhiunythbnchtmtbhpngcngl
phn cng ch. Nh thy trn, bn thn cc tp i tng cng c th l cha
mt b bin dch chuyni mtmtt mt dnglnh hpng thnhmtdng
hon thin v vy b lin kt phi x l t hp cc tp i tng vi nhau v
m lnh tng ng cho b vi x l c th hiu v thc thi. Chnh v vy i khi
honthinntphncnkhuytchoccbinhochmthamchiulinthnggiacc
ngi ta vn nhm hiu gia khi nim b hp ng v b bin dch. Tuy nhin vic
tpmnguncbindchclp.
bindchcabhp ngscthc thinginhnrtnhiusoviccbbin
dchchoccmngunvitbngngnngbccaokhc.
Ktquuracablinktlmttpitngmicchattcmvdliu
trongtpmngunvcngkiunhdngtp.Nthcthiciunybngccht
Mimtbxlthngcringngnngmyvvycnphichnlamtbbin
hpmtcchtngngccphntext,dliuvphnbsstcctpuvovto
dchphhpcthchuynichnhxcthnhdngmmytngngvibx
ramttpitngtheonhdngmmythngnht.Trongqatrnhblinkt
lch.ivicchthngnhng,bbindchlmtchngtrnhngdnglun
thchinthpccphnnidungtngngncnthchinthmcvnhon
65 66
chnhccachthamchiucaccbinvhmchacytrongbcthc tchngtaphitlmhuhtcngviccabcnybngcchcungcpthngtinv
hinbindch. bnhccuhnhtrnnnphncngmchngtaangphttrinvchnh
lthamsuvochovicthcthicabnhv.Bnhvssdngthngtinny
Ccblinktcthckchhotthchinclpvibbindchvcctpi gnccachvtlchomiphnmlnhvdliubntrongchngtrnhc
tng c to ra bi b bin dch c coi nh cc tham bin vo. i vi cc ng thcthimcthnhvli.Tiptheonstoramttpcchachngtrnhb
dngnhngnthngchaphnmkhitocbindchcngphicgp nhnhphncthnptrctipvobnhchngtrnhtrnnnphncngthc
trongdanhschthambinvony. thi.
Nucngmtbiutngckhaibohnmtlnnmtrongmttpitngth Trongnhiutrnghpbnhvlmtchngtrnhkhclpviccphncng
b lin kt s khng th x l. N s kch hot c ch bo li ngi pht trin ckhctronghthngphnmmphttrin.Tuynhintrongccbcngcphttrin
chng trnh xem xt li. Hoc khi mt biu tng khng th tm c a ch tham GNUchcnngnyctchhpluntrongblinkt.Tuynhinkhngnnnhm
chiuthctrongtonbcctpitngthblinktscgngtgiiquyttheo lnvchcnngcachngtrongqutrnhthcthibindch.Thngthngchng
khnngchophpdavoccthngtinvdnhchatrongphnmtcathvin trnhchytrnccmytnhmcchchungthhiuhnhsthchinvicchuyn
chun. iu ny cng thng hoc c th gp vi trng hp cc hm tham chiu ivgnchnhxcachthcchoccphnmvdliutrongchngtrnhng
trongchngtrnh. dng,cnvichngtrnhphttrinchytrnhnhngthvicnyphicthc
hinbibnhv.ycngchnhlimkhcbitcbnkhithc hinbindch
Rtngticlcchmthvinchunthngyucumtvithayitrckhin mtchngtrnhngdngchohnhng.
cthcsdngtrongchngtrnhngdngnhng.Vnylccthvin
chuncungcpchoccbcngcphttrinchdngnkhnngnhdngvto Thngtinvbnhvtlcahthngphncngphttrinmcnphicungcpcho
ratpitng.Hnnachngtacngrttkhicthtruynhpcvomngun bnhvGNUphicnhdngtheokiubiudincablinkt.Thngtinny
cacc th vin chun c tht thay i.Hin naycngc mts nhcungcp i khi c s dng iu khin mt cch chnh xc th t trong cc phn m
dch vphn mm h tr cng cchuyni haythayith vin C chunng chngtrnhvdliubntrongchngtrnhcthnhvli.Nhngychng
dng cho cc ng dng nhng, v d nh Cygnus. Gi phn mm ny c gi l ta cn phi thc hin nhiu hn th, tc l phi thit lp chnh xc khu vc ca mi
newlibvccungcpminph.ChngtacthtivtrangwebcaCygnus.Ns phntrongbnh.
htrchngtagiiquytvnmblinktcthgpphikhichngtrnhs
dngcchmthucthvinCchun. Sauylmtvdminhhacamttpthngtinlinktccungcpchomt
nnphncngnhng,githitlc512KBRAMv512KBROM.
Saukhihpnhtthnhcngttcccthnhphnmvphndliutngng
cng nh cc vn v tham chiu ti cc biu tng cha c thc thi trong qu MEMORY
trnhbindchnl,blinktstoramtbnsaocbitcachngtrnhc {
kh nng nh v li (relocatable). Hay ni cch khc, chng trnh c hon thin ram : ORIGIN = 0x00000, LENGTH = 512K
ngoitrmtiu:Khngcachbnhnochacgnbntrongccphnm rom : ORIGIN = 0x80000, LENGTH = 512K
v d liu. Nu chng ta khng phi l ang pht trin phn mm cho h nhng th }
qutrnhbindchcthktthctiy.Tuynhin,vihnhngngaychthng SECTIONS
nhng bao gm c h iu hnh chng ta vn cn phi c mt m chng trnh {
(image)nhphncnhvtuyti.Thctnucmthiuhnhthphnm data ram : /* Initialized data. */
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
_DataStart = . ;
thchinnhmtmchngtrnhnhphnthngnht.
*(.data)
_DataEnd = . ;
Qutrnhnhv(Locating)
} >rom
Cngcthchinvicchuynimtchngtrnhckhnngnhvlithnhmt
dng m chng trnh nh phn c th thc thi c gi l b nh v. N s m
nhimvaitrcabcnginnhttrongccbcthcthibindchnichung.Thc
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 Hnh39:VdvmtluphttrinphnmmchoDSPTMS320Cxx
thucphnmkhitochngtrnh)saochpccgitrkhitocaccbinc
khitotrongROMsangkhuvcdliutrongRAM.Ccachbtuvktthc 3.4.3 Simulator
chohotngnycthcthitlpmtcchbiutngbithamchiuticcbin Simulatorlmtchngtrnhphnmmchophpngiphttrinmchngtrnh
snguyn_DataStartv_DataEnd. chy m phng mt chng trnh vit cho mt nn VXL/VK (nn phn cng ch)
trnmtmitrngphncngkhc(haycngilmitrngphttrin).Thccht
Kt qu ca bc cui cng ny ca qu trnh bin dch l mt m chng trnh nh lqutrnhmphnghotngcachngtrnhthcthitheongnhiukin
phncthcnptrctipvchyctrnnnphncnghnhngch,tcl thchincamitrngchtrnmitrngphttrin.
c np vo b nh chng trnh ca h thng ch. Trong v d trn m chng
trnhnhphnctoracdunglngchnhxcl1MB.Tuynhinbivccgitr S dng b m phng m chng trnh c th c chy th tng bc hoc tng
cho phn d liu c khi to nm trong ROM nn na phn thp 512KB ca m phnvcthcchnhsatrctipthnghimccgiiphpkhcnhauchocc
chngtrnhnhphnnychchagitrzerovchcnaphncaocsdngl bitonthcthiphnmm.Tuynhinccbmphngkhnghtrccngtthcv
chyu. ccthitbngoiv.
Bmphngtrctip(bmphngphncng)baogmmtthitbphncngkt
nitrctipvihphttrinvchophpthcthiccphnnggingnhb
x l ch. B m phng trc tip trn mch c tt c cc chc nng ca mt b m
69 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 HthngnymphngnnphncngthctrnPCchopnghnhvigingnhvi
chngtrnhchoVKchkimtranidung,trngthiccthanhghivcckhuvc vimchcngthcvmhnhitngcmhnhthcthitrnPC.Loihthng
bnhvthitlpccimdngkhithchinchychngtrnh. ny cng tng t nh h thng m phng offline tuy nhin c u im hn v kh
nngmphng hnhvivpngcavimchnhngchnhxchnvtrungthc
3.4.5 Thit k h thng bng my tnh hn.Vcngcmtnhcimlkhngthnghimcbitonthigianthc.
Mphngthigianthc(HardwareintheLoop)
Trong qu trnh pht trin phn mm cn phi c th nghim vi i tng iu H thng ny s dng nn phn cng nhng ch thc nhng i tng th ch l m
khin.Tuthucvotngmitrngphttrinchngtacthtinhnhtheomts hnhthigianthckhngphiitngthc.uimlkhmmdovthayi
ccphngphpsau. cuhnhngintrongqutrnhphttrinthnghimvicchnhvikhcnhau
caitng.Rtngtvnginhacngvicxydngitng.
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 Hthngnysdngnnphncngnhngchthcviitngthc.Tuynhinc
thi gian thc v thi gian ca m phng khc vi thi gian din bin thc ca h shtrcacngcphttrincthcitvthnghimtrctiptrnnnphn
thng. cngthc.ylmtdngmhnhchoktqutrungthcvchnhxcnhttrongcc
dnghthngphttrinnutrn.Tuynhinccnnphncngnythngcpht
Hthngphttrin(softwareintheloop) trinvhtrbiccnhcungcpcthtngthchvicngcphnmmkm
theo.
71 72
4.2 B np khi to (Boot-loader)
4 H IU HNH NHNG
Thutngbootstrapbtnguntcchdintcxacnghaltmnhvnln
4.1 H iu hnh bngchnhnlccabnthnpullingyourselfupbyyourownbootstraps.Nc
sdngnhmtthutngrtphbingitnmtphnmmthcthivickhi
Ngun gc ra i ca h iu hnh l m nhim vai tr trung gian tng tc
tochngtrnhthcthitrnccnnviintkhtrnhnichung.Chngtrnhny
trc tip vi phn cng ca my tnh, phc v cho nhiu ng dng a dng. Cc h
thngrtnhgnvmnhimchcnngtinhotngcahiuhnh.Cng
iu hnh cung cp mt tp cc chc nng cn thit cho php cc gi phn mm
rtphbinhinnayngitacngthngdngthutngbootloader(bnpkhi
iu khin phn cng my tnh m khng cn phi can thip trc tip su. H iu
to) thay v bootstrap. B np khi to thc cht l mt chng trnh nh thc hin
hnhcamytnhcththynbaogmccdriverschoccngoivitchhpvimy
tronghthngvmnhimchcnngcnthitahiuhnhvohotng.
tnh nh card mn hnh, card m thanh... Cc cng c qun l ti nguyn nh b
Trongcchnhng,cclnhcthchinutinthngnmtrongccvngnh
nhvccthitbngoivinichung.iunytoramtgiaodinrtthunlicho
ROMvthngthucloichm.D,mttrongnhngtcvphbincabnp
cc ng dng v ngi s dng pht trin phn mm trn cc nn phn cng c.
khi to l sao chp chng trnh ng dng chnh (main program) vo trong vng b
ngthi trnhc yucu vhiu bit su scv phncng vc th phttrin
nhnhanhtrckhichngcthchin.Bnpkhitocngcnhimvkhito
datrnccngnngbccao.
vngnhdliuvccthanhghihthngtrckhinhytichngtrnhngdng
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)
Hnh42:NguynlthchincabnpkhitoBootloader
Qunltinguyn,(3)Bovtinguynkhisxmphmcaccqutrnhthcthi
sai. Trong mi trng pht trin h nhng in hnh, nn phn cng ch cn pht trin
cktnivitrmch(host)thngquamtgiaodintruynthng.Mtmitrng
phttrinbaogmmtchngtrnhgri(debugger)vdnhCodeComposerStudio
73 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 Hnh43:CutrccabnpkhitoBootloader
mtcmgicvmitrngphttrinthnthinchongiphttrinchngtrnhv
chcntptrungphnthchinchcnngchnhcahthng.Tuynhintrongmi 4.3 Cc yu cu chung
trngphttrinhthngnhngvicthcthichngtrnhthngbtutiach
Nhchngtacbitivicchthngthigianthc,yucuthitkmth
chngtrnhnibtutcvkhitohthngtrckhinhytithchinchng
iu hnh kh c bit. H nhng thi gian thc li yu cu h iu hnh phi thc
trnh chnh main(). Qu trnh ny c bt u thc cht l thc thi mt tc v ngt
hinvimtnguntinguynthngrthnhp.Mcdkchthcbnhtchhp
kchhotbiskinreset.
onchipscthtnglntrongtnglainhngvisphttrinhinnayhiuhnh
chocchnhngchnnckhongnhhn32Kbytes.
Bootloadercngcnhiudngkhcnhau.Hnh42mtmtbnpkhitochomt
ngdngCnhng.TrongvdnyvectorRESETtrtithtcc_int00thchintc
Hthngiuhnhmnhimviciukhinccchcnngcbncahthngbao
vkhito.Ngoivickhitoccthanhghi,ngnxpccbinCcngcnc
gmchyulqunlbnh,ngoivivvoragiaotipvihthngphncng.
khitotrckhicthcthi.Qutrnhnyssaochptphn.cinitvvitvocc
Mt im khc bit c bn nh chng ta bit v h iu hnh vi cc phn mm
achdliutngngcachngtrongphn.bss.Saukhihonthnhchngtrnh
khclnthchinchcnngiukhinskinthcthitronghthng.Cnghal
chnhmain()micgivbtuthcthi.Trongvdnginnybnpkhi
nthchincctcvtheomnhlnhyucutccchngtrnhngdng,thitb
to t hp vector RESET cng vi hm khi to c_int00 v gi thit rng c chng
voravccskinngt.
trnhbnpkhitovchngtrnhngdngchnhunmcngtrongvngnh
vtlnonvolatile.Trongcctrnghphthngphctphn,bnpkhitocth
Bnnhntchnhtcngtrctiptiqutrnhthitkhiuhnhl(1)khnng
baohm ctcvsao chpchngtrnhchnhvo trong vng nh fast volatiletrc
thchin,(2)nnglngtiuth,(3)githnh,v(4)khnngtngthch.Hinnay
khi n c gi v thc thi. B np khi to cng c th m nhim c chc nng
chng ta cng c th bt gp rt nhiu h iu hnh khc nhau c bit cho cc h
chunon,grivnngcphthngnuc.Chcnngchunoncthchl
nhngcngvstcngca4nhntnutrn.Huhtchnguckiudngv
kimtrabnh,ngoivivtngthchtchhptronghthng.Chcnnggri
giao din kh ging nhau nhng c ch qun l v thc thi cc tc v bn trong rt
cngcthlmtgiaodingimstcungcpthngtinvtrngthithigianthcv
khc nhau. Mi h iu hnh c thit k phc v trc tip cc chc nng c th
hthngmngitavnthngbittivitngilchngtrnhmonitoring.Vic
phncngcahnhngvkhngddngsosnhcgiachngvinhau.
nngcphocthayichngtrnhbnpkhitocngcthcthcthinhkh
nnglptrnhFLASHincircuitvnptbnhngoithngquagiaodinvitrm
Hai thnh phn chnh trong thit k h iu hnh l: phn ht nhn (kernel) v cc
chhocchcnngtngt.
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
75 76
b nh thi gian. N np cc phn mm iu khin thit b cung cp cc tin ch H thng iu hnh thi gian thc l h iu hnh h tr kh nng xy dng cc h
chungvphihpvicchotngvoravihthng.Phnhtnhncvaitriu thngthigianthc.
khinrtquantrngmbottcccphncahthngcthlmvicnnh
vthngnht.
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 Hnh44:SosnhkintrcRTOSvOSchun
nguyn ca h thng v c th c gim st. Kin trc vi ht nhn c th c xy
Hthngiuhnhviphnlilhtnhnphimnhimcctcvchnhnhsau:
dngmtcchmmdophhpvicuhnhphncngkhcnhaumtcchllinh
Xlngt
hothnsovikiukintrchtnhnmonilithic.Tuynhindotnhclptngi
Lutrngcnhchngtrnhtithiimxuthinngt
giaccmodultrongvihtnhnnncnthitphicmtcchtraoithngtinhay
Nhndngvlachnngbxlvphcvdchvngt
truynthnggiaccmodulvvycthlldolmchmtcvgimtnhhiu
iukhinqutrnh
qu hot ng ca h thng. c im ni bt v ct li ca kin trc vi ht nhn l
Tovktthcqutrnh/tcv
kchthcnhvddngsaicngnhxydnglinhhothn.Ccdchvthc
Lplchviuphihotnghthng
thitngtrncahtnhnvvytcantoncao.Kintrcvihtnhnc
nhthi
pht trin mnh m trong cc h thng a x l v d nh Windows 2000, Mach v
iukhinngoivi
QNX.
Xlngt
Khitogiaotipvora
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.
77 78
(1)Hthngthigianthcnh:Viloinyccphnmmcphttrinmkhng Cc ht nhn thc thi theo c ch ngt rt ging vi loi ht nhn thc hin
cnchiuhnh,ngilptrnhphitqunlvxlccvnviukhin theocchvnglpthmd.Nxlttccctcvthngquaccdchv
hthngbaogm: ngt.
Xlngt Cchtnhnlnvphctphnsbaogmmtsccdchvphphcv
iukhinqutrnh/tcv chovictruynthnggiaccqutrnh.Vnucbsungynstr
Qunlbnh thnhmthiuhnhy.
(2)Cngnghanhim
Miqutrnhcmtkhnggianbnhring Cckiuloihtnhncbn
CcqutrnhphicchianhthnhccThreadcngchiaskhnggianb Htnhnthchinvnglpthmd
nh. Htnhnthchintheocchngt
(3)Ccdchvcungcpbihtnhn Htnhnqutrnhvnhnhqutrnh
Tovktthcqutrnh/tcv
Truynthnggiaccqutrnh Vic la chn loi ht nhn no hon ton ty thuc vo cc b x l v kch thc
Ccdchvvnhthigian phnmm,tuynhinringloihtnhnvnhnhtheoqutrnhkhngphhpvi
Mt s cc dchv cungcph tr victhcthilin quanniukhinh ccbxlnh.
thng
Htnhnqutrnh
cimcbncahtnhnthigianthcinhnh: Cchtnhnqutrnhrrnglphctphncchtnhnthchintheocchthm
Kchthcnh(lutrtonbtrongROM) dviukhinngt.Ccngtruyntnhiulogicbntrongccqutrnhvcc
Hthngngt dchvngtctchhpvthchinthngquavictruyndliu.
Khngnhtthitphiccccchbov
9 Chhtrphnkimtrachngtrnhngdng
9 Tngtcchuynngcnhvtruynthnggiaccqutrnh
9 Khiccqutrnhngdngangthchinthccyucuhthngiu
hnhcthcthchinthngquaccligihmthayvsdngc
chngtmm
Vihtnhn(Microkernel):Baogmmttpnhccdchvhtr
9 Qunlqutrnh
9 Ccdchvtruynthnggiaccqutrnhnucn
9 Ccphnmmiukhinthitblccqutrnhngdng Hnh46:Mhnhtrngthicaqutrnh
Htnhnsphimnhimchcnnglplchchoccqutrnhtheongmhnh
Htnhninhnhcbn
trngthi.
Loihtnhnnginnhtlmtvnglpvhnthmdccskinxut
RUN:qutrnhcthchin
hintronghthngvphnnglitheosthayinuc.
WAIT:ccqutrnhchmtskinhoctnhiuvorakchhotqutrnh
Vimtbxlcuhnhnhnht,khngphilcnoncngcthluct
READY:ccqutrnhsnsngcthchin
ngcnhvkhngththayicontrngnxphocvngngnxprthn
ch.
Cc phn t thuc tnh ca mt qutrnh: Cc phnt nycn thit phcv cho
Thay v s dng cc thanh ghi thit b, vng lp thm d c th gim st cc
viclplch.Vdivicchlplchtheomcutinsyucuthngtinsau
binmchusthayicpnhtbiccbxlngt.
vimiqutrnh:
Htnhncthcxydngsaochottccctnhiulogicciukhin
9 Tn(achbnhcaphntqutrnh)
bivnglpvnhpciukhinbiccngt.
9 Trngthi:RUN,WAIT,READY
Cctcvlncnnhiuthigianthchincthcchianhthnhcctc
9 Mcutin
vnhvcthchinticcthiimkhcnhaunhvocchchuynv
9 Ngcnh(dngcontrqunlluctthngtintrongngnxp)
sdngbm.
79 80
Thiimktthc di (duetime):Thiimmtcvphihonthnh.
5 K THT LP TRNH NHNG
5.1 Tc v v qu trnh (process)
Tcv(task)?Lmtcngviccnthcthithamgiatronghthng
Qutrnh(process)lmtdinbinthcthimttcvcahthng.
Hnh51:GinthchincamttcvTi
ikhingitavndnglnhaikhinimnyvkhngphnbit. Trncsblplchsphithchinbitontiuv:
Tcvchuk(period)vkhngchuk(aperiod) Thigianpng(responsetime)
Hiu sut thc hin (s lng cng vic thc hin xong trong mt n v thi
Cctcvphithchinlplimtcchuntheonhngkhongthigianpc gian)
gilcctcvcchukvpcgilchukcatcv.Ccloitcvkhcth Scngbngvthigianchi(cctcvkhngphichiqulu)
cgiltcvkhngchuk.
Vdvmtlchthchin2tcvcmtnhtrongHnh52.
5.2 Lp lch (Scheduling)
Tisaophilplch?
mboccchthcthichiastinguynhuhnvthomnyucuthi
gian thc. Lp lch phi nhm tho mn hay t ti c s tho hip gia cc rng
bucvtinguyn,sphthuclnnhauhaythigianthchin.
cnhsau:
Lplch=tmkimmtginphnbthigianthchinanhimhplvicc
Thigiantnhton C1 = 9 v C2 = 12 .
iukinrngbucchotrc.Haynicchkhclblplchphixlquytnh
Thigianbtuthchin: s1 = 0 , s2 = 6 .
viuphiqutrnh/tcvthchin.
Thiimhonthnh: f1 = 18 , f 2 = 28 .
Cmtsthngtinvtcvlunphiquantmivibtkblplchthigian Khongthigianchnhlchthiimktthcvdeadline(Lateness) Li = fi di :
thcno,baogm: L1 = 4 , L2 = 1 .
Thigianxuthin ai (arrivaltime):Khiskinxyravtcvtngngc Khongthigianri/dthagiathigianchophpthchinvthigiancn
kchhot. thchintcv(Laxity) X i = di ai Ci : X 1 = 13 , X 2 = 11 .
Thiimbtuthcthi ri (releasetime):Thiimsmnhtkhivicxl
snsngvcthbtu. 5.2.2 Cc phng php lp lch ph bin
Thiimbtuthchin si (startingtime):Lthiimmtitcvbt
uvicthchincamnh.
Thigiantnhton/thcthi ci (Computationtime):Lkhongthigiancnthit
bxlthchinxongnhimvcamnhmkhngbngt.
Thiimhonthnh fi (finishingtime):Lthiimmtitcvhonthnh
victhchincamnh.
Thigianriro/xunht wi (worstcasetime):khongthigianthchinlunht
cthxyra.
81 82
Khng tn ti mt li gii ti u cho vic lp lch trong h thng nhiu b x l nu
thiimxuthinyucuthcthicacctcvkhngcbittrc.
Cc ht nhn c iu khin theo c ch ngt thng thc thi c ch lp lch non
preemtivengtrongkhiloihtnhnvnhnhtheoqutrnhlithcthitheocch
preemptiveng.
Mtthuttonlplchngcgiltiununcthtmracmtlchiu
phiiukhinhthngthomnccrngbucthigianchobtkkhinom
thuttontnhkhngtmrac.
Lplchtptrunghocphntn:Viclplchcthchinpdngchocctcv
thcthibimt(tptrung)hocnhiubxl(phntn).
LplchMonohayMultiprocessor:Nhimvlplchvthcthicmnhimbi
Hnh53:Phnloiccphngphplplch
mt(mono)hocnhiubvixl(multi).Tuthucvophctpvthuttoncn
Tuthucvoloihnhtcv,ngitarahaiphngphplplchlcchukv xlkhilplchmngitaquytnhphisdngphngphplplchmonohay
khngcchuk. multiprocessor.
Lp lch nonpreemptive: Phng php ny m bo cc tc v c thc hin hon Tnhkhlplch:Mththngvimttpcctcvvcciukinrngbucc
thnhmikhithcthi,vvythigianpngchoccskinkhccthlu. gilkhlplchnutntitnhtmtcchlchtrnhthchinthomncctcv
viukinrngbuc.
Lp lch preemptive: Phng php ny khc phc nhc im ca lp lch non
preemptivekhithigianthcthicctcvlu.Cctcvscthchinvcthb Vdvlplchchohthnganhimvi2tcv.Tcv1thchintheochukv
ngtgiachngphcvthcthicctcvkhc.Cchlplchnychophpm tcv2thchinkhngtheochukvithigianthcthilnhnthigianchuklp
bothigianpngchoccskinvtcvngnvnhanhhn. licatcv1.
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.
Hnh54:Ginthigianthchinlchcatcv
Ccthuttonlplchtnhtiukhngphiltiutronghthngng.
83 84
5.2.3 K thut lp lch EDFcthcpdngchocctptcvchukvcngcthmrngpng
FCFS chocctrnghpccdeadlinethayikhcnhautheochuk.
Trongcchlplchntrccphvtrcthccqutnhcxltheoth
tmnxuthinyucuvchonkhihonthnh.Cchlplchnythucloi VnchnhcathuttonlplichEDFlkhngthmboctcvnotrong
khngngtcvcuimlddngthcthi.Tuynhin,nkhngphhpcho hthngcthkhngcthcthitrongtnhhungquhthngbquti.Trong
cc h thng m h tr nhiu ngi s dng v c mt s bin i ln v thi gian nhiutrnghpmcdmcsdngtrungbnhnhhn100%nhngvncth
trungbnhmmtqutrnhhaytcvphichicxl.Hnnadovic trongmttnhhungnovnvtquakhnngpngcahthngtclsc
xlkhngngtcnnchintngchimhucquynbxltrongthigian tcvkhngcmbothcthing.Trongnhngtrnghpnhvycnphi
divcthgyrastrbtthngtrongqutrnhthchincacctcvphich iukhinbittcvnoblikhngthchinthnhcnghoctcvnoc
ikhc. thchinthnhcngtrongqutrnhqu.
ShortestJobFirstSJF MinimumLaxityfirst(MLF)
Trongcchlplchnytcvcthigianthcthingnnhtscquynutincao Cchlplchnysutintcvnocntthigiancnlithchinnhttrc
nht v s c phc v trc. Vn chnh gp phi trong c ch lp lch ny l khinphiktthcmboyucuthcthing.ycxemlcchlplch
khngbittrccthigianthcthicacctcvthamgiatrongchngtrnhv gn quyn u tin ng v d t c s ti u v hiu sut thc hin v s cng
thngthngphipdngcchtinonvnhgidavokinhnghimvcc bngtronghthng.
tcvthcthitronghthng.iunychcchnrtkhlunmboc
chnhxc.Cchlplchnycthpdngchocloingtcvkhngngtc. RoundRobin
y l mt c ch lp lch phn b u n, ngt c v n gin. Mi mt tc v
Ratemonotonic(RM): cxl/phcvtrongmtkhongthigiannhtnhvlplitheomtchutrnh
PhngphplplichRMclhinnylthuttoncbittinhiunhtpdng xuynsuttonbcctcvthamgiatronghthng.Khongthigianphcvcho
chocctcvhayqutrnhclp.Phngphpnydatrnmtsgithitsau: mitcvtrongqutrnhlmtsthohipgiathigianthchincacctcv
(1) Ttccctcvthamgiahthngphicdeadlinekiuchuk vthigianthchinmtchutrnh.Cthchnkhongthigianrtnhvi
(2) Ttccctcvclpvinhau lcchngtakhngnhncrarngangcsphnbthchintronghthng.
(3) Thigianthchincacctcvbittrcvkhngi Tuy nhin nu thi gian qu nh c th lm mt tnh hiu qu thc hin ton h
(4) Thigianchuyningcnhthchinlrtnhvcthbqua thng v cn nhiu thi gian trong vic chuyn i ng cnh cho mi tc v sau mi
chutrnhthchin.
ThuttonRMcthcthitheonguynlgnmcutinchocctcvdatrn
chukcachng.Tcvnocchuknhthsccgnmcutincao.Theo
nguynlnyvicctcvchukkhngthayithRMslphngphplplch
chophpngtvmcutincnh.TuynhinRMhtryucuhthngkhng
tt.
Earliestdeadlinefirst(EDF)
Nhngtngicaphngphp,thuttonlplichtheophngphpnysdng
deadlinecatcvhaynhiukinutinxliuphihotng.Tcvc
deadlinegnnhtscmcutincaonhtvcctcvcdeadlinexanhtsnhn
mcutinthpnht.uimnibtcaphngphpnylgiihncthlplch
pngc100%chottccctptcv.Hnnamcutingnchomitcv
trongqutrnhhotnglngvvychukcatcvcththayibtklc
notheothigian.
85 86
5.3 Truyn thng v ng b 9 mboloitrxungttronghotngtruynhpngthicanhiutc
v,vchcmttcvcthcthitimithiim.
5.3.1 Semaphore
Countingsemaphore
9 iukhintinguynmcthphcvcngmtlcnhiutcvhocmt
nguntinguynchophpphcvmtsnhtnhcctcvkhngng
bvhotngngthi.
9 NhiulungcthtruynSemaphore
9 SlnglungcquytnhbibinmNcaSemaphore
Thc cht mutex semaphore l mt dng c bit ca counting semaphore vi bin m
N=1.
ThcthiSemaphore
Hnh55:Truynthngqutrnh
Semaphoreshtrhaihotngchnhnhsau:
wait(semaphore):gimvkhochotikhisemaphorecm
signal(semaphore): tng v cho php thm mt lung mi c tham gia hot
ng S dng Semaphore trong vic ng b hai qu trnh to v s dng hng mc thng
Tronghotngphihpcngvisemaphorecmthngigmcctcvcnc quabmtrunggian.
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: 5.4 X l ngt
9 Semaphores c th c s dng gii quyt bt k mt bi ton hay vn
ngbtruynthngno Tn hiu iu khin b VXL kch hot bi mt s kin tham gia trong qu trnh hot
9 Tuynhinchngcmtsnhcim ngcahthnglmhthngngngvchuynhngthcthicgiltnhiu
o Chngchyusdngccbintoncctrongviciukhinhotng ngt.NsngtbVXLkhihotngmnangthcthivchuynsangthchin
ngbnncthtruynhpbtkutronghthngkhkimsot mtcngvickhcphcvchoskinkchhotngttngng.Vdnhtrongqu
o Khngcslinktchtchgiasemaphorevdliumcniu trnhthu thpd liu,VXL lun phich ithi imn nhn d liu vskch
khin. hotskinngtCPUmikhicdliuxuthinkpthighidliuvobnh.
o csdngngthichocvicloitrxungt(mutualexclusion)v Saukhihon thnh, CPU phchili trng thica hthng v tr li tiptcthc
hotngngbchocctcv(scheduling) hinchngtrnhtthiimmnbngt.ivibxlngt,nsphithc
hinhainhimvchnhl:(1)Xcnhcskinngtv(2)nhndngskin
5.3.2 Monitor ngttrckhitcvphcvngttngngckchhot.Hnh56mtmtchu
Monitor l mt ngn ng lp trnh c xy dng iu khin vic truy nhp vo trnhcbnthchinngttrongcchVXL/VK.
vngdliuchiastronghotngcahthng.Mchngtrnhngbcb
sungvotrongbbindchvthcthikhichychngtrnh.
3Monitorlmtmodulnggi
Cccutrcdliucchias
Ccthtchotngthaotctrncccutrcdliuchias
ngbcclungthcthingthimcthkchhotccthtctrong
hotnghthng
3Monitorcthbovdliukhistruynhpkhngccutrc.Nmborng
cclungtruynhpvodliuthngquaccthtctngtctheonhngcchhp
phpvckimsot.
3Monitormboloitrxungt
Ch c mt lung c th thc thi bt k th tc no ti mi mt thi im
(lungtrongmonitor)
Nucmtlungangthcthibntrongmtmonitornskhocclung Hnh56:Chutrnhthchinngt
khcmunvo,domonitorcngphicmthngi.
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
Th tc kch hot mt tc v phc v s kin ngt c m t nh trong Hnh 58.
ThngthngngitahayquantmnhiunpngcaCPUviskinngtv
thigianthchintcvngt.ythigianpngphthucvquytnhbi
tc v kh nngx l caphn cng cnthi gianthc hin tcv ngtchyu
quytnhbitcvngtdihayngnvdochngtrnhquytnh.
Hnh510:Cchthchinngttheomcutin
Hnh59:Vdvngunngt(DSPTMS320C2812)
91 92
nhiuthnhphnvmithnhphnthucccthuctnh.Ccthuctnhcth
6 THIT K H NHNG: T HP PHN CNG V MM thayivcctrng bi ccbin trng thi. Mtchuicctrngthis m t
6.1 Qui trnh pht trin qutrnhngcamththng.
Qutrnhphttrinphnmmnhngthchintheochutrnhsau: Mng Petri thc s l mt gii php m t h thng ng vi cc s kin ri rc tc
(1) Problemspecification nglmthayitrngthicaccitngtronghthngtheotngiukinc
(2) Tool/chipselection thtrngthicahthng.
(3) Softwareplan
(4) Deviceplan Mng Petri c thit lp da trn 3 thnh phn chnh: (1) Cc iu kin, (2) cc s
(5) Code/debug kin,v(3)quanhlung.Cciukincthlthomnhockhngthomn.Cc
(6) Test skinlcthxyrahockhng.Vquanhlungmtiukincahtrckhi
(7) Integrate skinxyra.
Cciukinihiphithomnmtskinxyrahocchuyntrngthithc
hinthcgiliukintrc(precondition).Cciukinmcthomnkhi
mtskinnoxyrathcgiliukinsau(postcondition).
mi lsccthbi(ckhiunhccchmtrnen)chabntrongccv
tr pi trongtpdu M .
6.2 Phn tch yu cu
6.3 M hnh ho s kin v tc v
6.3.1 Phng php m hnh Petrinet
Nm1962CarlAdamPetricngbphngphpmhnhhnhhotcvhayqu
trnhtheosphthucnhnqucphcprngrivcbittinhngy
nyvitngilmngPetri.
MngPetricsdngphbinbiudinmhnhvphntchcchthngc
scnhtranhtrongqutrnhhotng.Mththngcthhiulmtthpca
93 94
kinlmvic,ccvtrp2vp4biudiniukinli,t1vt2lccskinlitrong
cctcvC1vC2mtcchtngng.
(a) (b)
Hnh62:MhnhPetrinet2hotngsongsonga)clpvb)ngb
Tronghotngsongsong,cctcvhontonclp,tuynhinnuccskin
cnphiktthcvliukinchomtchuynikhcthhotngngbc
thcthchinnhbsungmtchuynit3nhmttrongHnh62(b).Khi
Hnh61:VdvmtmhnhmngPetri
chuynit3cnthbingthicacp2vp4.
HthngngcthcmtbimngPetrinhschuyndchccthbitrong
ccvtrcahthngmhnhvtunththeolutsau: Chiasngb
Mt chuyn i c php thc thi nu tt c cc v tr i vo chuyn i Mtyutctrngtronghotngcahthngphntnlthngphichiasmt
chatnhtmtthbi. s ti nguyn hu hn. S thiu thn v ti nguyn lm hn ch hot ng ca h
Khimtchuynicthcthixong(honthnh)thmtthbisbloi thngtrongqutrnhxlthmchlmtcnghnhthng.Vicmhnhvphntch
rakhivtrivochuyningthibsungthmmtthbivoccv cc h thng c hin tng tc nghn l mt tc v kh khn trong hu ht cc qu
truratngngcachuyni. trnhmhnhcthgpphi.
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 .
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) :
95 96
trp2vp3lunlhngs(trongvdnyl3).Chuynit2mhnhqutrnhin muntruynhpvotinguynchiasCS;p3vp7biudinCSangbchimdngbi
ymtvtrbmvhonthnhnuctnhtmtvtrbmcntrngcng cctcvC1vC2mtcchtngng.Vtrp4mtquytnhxemtcvnocth
vithbichatrongvtrp1 vp3.Chuynit3cphpthchinnuctnht truynhptinguynCsvtrnhccvtrp3vp7bnhdungthi.Thctkhi
mtvtrbmciny.Khihonthnhchuynit3,mtthbisc p2vp6cnhduthccchuynit2vt5xungt.Vichonthnhmttrong
chuyntvtrp2sangvtrp3. haitcvskho/cmlnnhau.Vichonthnhchuynit3hoct6smhnhvic
giiphngnguntinguynchung(chuynthbitrlivtrp4)vtrviukin
Tunt lmvicbnhthng.
Hotngtuntscmtvminhhobihotngcabtovbsdng
thngquamtbm.Btossinhraccitngavotrongmtbmv
sclyrabibsdng.Qutrnhsdngsphicthchinmtcchtun
ttheoqutrnhtoraitng.MhnhchohotngnycdintbiPNnh
trongHnh64(a).Thbichatrongvtrp1cnghalbtosnsngthchin.
Khiccchuynit1vt2honthnhthmtitngctora(mtthbitng
ngcngscchuynvotrongbmmhnhbivtrp5)vbtolisnsng
trli.Nubsdngcnhucutiuth(cmhnhbithbichatrongvtr
p3)vangctnhtmtitngtrongbmthmtthbichatrongvtrp5s
clyivchuynit3shonthnh.
Hnh65:Hotngloitrcahaitcvsongsongchiaschungtinguyn
btulmquenvinguynlbiudinmhnhhabngmngPetrichngta
xthotngcamththngngbgiahotngtovsdngmthngmc
(item)thngquabmnhcmtttronghnhdi.
BtoProducer:
9 Torahngmcv
9 bsungvobm
(a) (b) Bsdng(tiuth)Consumer:
Hnh64:Hotngtovsdngvibma)vhnvb)huhn 9 Lyhngmcrakhibmv
TrongcchmttrongHnh64(a)thvictovsdngcthchinthngqua 9 Sdnghngmc
mtbmvigithitlcdunglngvhn.Trongthctthccbmlhu
hn,mthotngvibmloinyHnh64(b)csdng.Vtrp6m
hnhccvtrbmcntrngvvtrp5mhnhccvtrbmciny.
Tngslngccthbichatrongccvtrp5vp6philunlhngs.Numt
thbicgnchovtrp5trongdukhitothbtoskhngthtothmi
tngchngnobsdngvnchatiuthitngtrongbm.
Loitrxungt
HaitcvC1vC2cphplmvicsongsongvcngchiastinguynCS,nhng
khngctruynhpvotinguynngthi.GinPNchohotngnyc
mtnhtrongHnh65.Ccvtrp1vp5biudincctcvC1vC2lmvicc
lp;vtrp2vp6biudinccyucucacctcvC1vC2mtcchtngngkhi Hnh66:Hotngcahthnggm1btov1bsdng
97 98
Trongtrnghpcnhiuhnmtbsdngthhthngcbiudinnhsau: 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.
Hnh67:Hotngcahthnggm1btov2bsdng
Ccmitnktnitrctipgiaccvtrvchuyni:Ccmitnckm
Hthngc2bm theocctrngstngngvislngthbimncthclyrahoc
thmvotrongccvtr.
Qui c: Mt tp v tr kt ni vi chuyn i thng qua mt mi tn trc tip theo
chiutvtrtichuynicgiltpcctinchuyni.Ngcli,mttpv
trktnivichuynithngquamtmitntrctiptheochiungctvtrti
chuynithcgiltpcchuchuyni.
Mtchuynicthxyra(thchin)khivchkhittcccvtrtrongtptinv
tr cha mt s lng ti thiu th bi nh c nh ngha bi cc trng s ca cc
mitntngng.
Hthngvaxtcmhnhhabiiukinvskin.Cciukincmt Khimtchuynicthcthins
biccvngtrnvnuiukinthamnthkhivngtrnscbiudinvi 9 loibbtsthbittptinvtrbngngslngcnhngha
mtchmtrnnmtrongtngngvimtthbi(token). chocctrngscaccmitntngngv
9 cngthmvoslngccthbivotphuvtrngbngvitrngsca
Skinckhiubicchphnhchnht.Vimimtskinthstnti ccmitntngng.
mttpcciukintrcvcnhnbitbiccmitnivoccskin Vdbiudinmtmthotnghthngvi2hngmccnngbgiabto
tcciukinv vbsdng.
mttpcciukinsaucnhnbitbiccmitnirakhiccskin
vivocciukin.
Mtskincthxyra(cthcthi)khivchkhi
9 ttccciukintrctngngcthamn(nhncthbi)v
9 ttccciukinsautngngchacthamn.
Numtskinxyrath
9 ttccciukintrctngngsbxab(reset)v
9 ttccciukinsautngngscthitlp(set).
99 100
l mng chuyn i/v tr. Cc v tr tng ng vi cc iu kin v cc chuyn i
tngngviccskintrongmngiukin/skin.
S lng token cho mi mt iu kin c gi l Marking. Vmt ton hc, Marking
chnhlmtnhxtonhcchophpchuynmttpccvtrvomttpccst
nhincmrngbiccbiutngcbit .
Vd:MtchngtrnhiukhinlungtuinbngmngPetrinetiukin/s
kintrnhtrnghpxungttrnmtngraytheohaihngtuchy.
Hnh68:Hotngngbvihaihngmc
cthbiudinhthngmtcchkhoahcvlogiccncmtnhnghay
mtbimngPetri.
Mngiukin/skin
nhngha: N = (C , E , F ) cgilmtmngnuvchnunthomnccthuc
tnhsau:
5 CvElcctpclpv C E . Cciukin:
5 F ( E x C ) (C x E ) lquanhnhphnvcgilquanhlung. Tumunvongraytheochiusangphi.
CcgilcciukinvEcgilccskin. Tuangchuynngtrnngraytheochiuphi.
Tuthotrakhingraytheochiuphi.
nhngha:ChomtmngNv x (C E ) . x := { y | yFx} cgiltpcciukin Tumunvongraytheochiusangtri.
trccaxv x := { y | xFy} cgiliukinsaucax. Tuangchuynngtrnngraytheochiutri.
Haynicchkhclmtiukincnphicthomnmtskinnoxy Tuthotrakhingraytheochiutri.
rathcgiliukintrcvmtiukincthomnsaukhimtskin
noxyrathcgiliukinsaucaskin. Ccskin:
Tuvongraytchiubntri
nhngha:Chomttp (c, e) C x E Turikhingraytheochiuphi
(c, e) cgilmtvnglpnu cFe eFc Turingray
MngNcgilthunnhtnuFkhngchabtkmtvnglpno. Tuvongraytchiubnphi
Turikhingraytheochiutri
nhngha:Mtmngcgilnginnukhngcbtkhaichuynit1,t2
noccngtpcciukintrcvcciukinsau. Token:ngraysnsngchotuvotheomttronghaichiu
Ccmngmkhngchabtkphnttchbitnocngnhkhngcthmbtk
mthnchnothcgilmngiukin/skin.
Mngchuyni/vtr
Trongccmngiukin/skinchchanhiunhtlmttokenchomimtiu
kin.hnchiunytclmtiukincthchanhiutokenvngitagi
101 102
6.4 Thit k phn mm iu khin
6.4.1 M hnh thc thi b iu khin nhng
ngicthhiuvthngdch,toiukinthunlitrongvicphihphayhptc Hnh69:Hthngiukhins
trongccdnthitk.cbitnrtthuntintrongvicchuynihaytnghp thcthimtbiukhinstrnthitbvtlthcphiihixtxembiu
bin dch thnh mt dng ngn ng thc thi phn cng thc. iu ny rt kh thc khinvimhnhhmtruynchocthhinthchackhng.iukinphi
hinbngccngnngbccaonhCnhngviVHDLiunychnhluimni xtthcralmborngkhngcuranocahthnglixuthintrckhi
btvlthmnhtrongvicmhnhhohthng,mtmtcchchititccphnt ctnhiuvo.Haynicchkhchthngxydngphitunthtnhnhnqu.
cngcuthnhthamgiatronghthng. Nukhaitrinhmtruyncabiukhinscmtdngtngqut
b + b z 1 + + bm z m
VHDLlmtchunIEEE(Std1076)cshtrbirtnhiunhcungcppht GR ( z ) = 0 1 1 (1.5)
a0 + a1 z + + an z n
trinphncng.ngdngmtcchchuynnghipngnngnylphcvchovic
thnhchuilythatheozthnphikhngcphpchabtkphntnocha
mtccmchASICsphchp,chtothcthiccmchFPGA...
lythadngcaz.Haynicchkhclbiukhincmtnh(1.5)phic
bc 0 tclbccatsphinhhnhocbngbccamus( n m ).
NgnngVHDLcthchiukhddngvicutrccphprrnggnging
nhngnngVisualBasicvPascal.Ncthphthuycthmnhvcphp Saukhithitkcbiukhinsthviccnlillptrnhvnpvoccb
nhnghaxydngkiudliumivhtrchoviclptrnhtheonhm.Vixu iukhinvtlkhtrnh.Thcchtqutrnhnylthcthihmtruyncabiu
thhinnayccnhmphttrincththcthiviiukincchxanhauvkhong khinsbnglptrnhstrnccbiukhinvtlc.ychngtasch
cchal,vvyvicphihpvthitktheonhmlrtcnthit. yuquantmnvictrinkhaichunbchobclptrnhcchmtruyncab
iukhins.Xutphttmthmtruyndngtngqutcabiukhins
U ( z ) b0 + b1 z 1 + + bm z m
TomCantrellrecentlywrotethatthefutureisbrightforFPGAs,whichwillplayalargerolein GR ( z ) = = (1.6)
mainstreamapplications(MoreFlash,LessCash,CircuitCellar,178,May2005).Iagreewith E ( z ) a0 + a1 z 1 + + an z n
Tom, but Ill go further and predict that VHDL will become the premier technology used to trong, a0 0 nu b0 0 ; m v n lccsnguyndng.
define FPGA content either as output from design tools or with direct programming. In Cthtrinkhaithcthimthmtruyncabiukhinstheo3cchnhsau:
combination with VHDL, FPGAs provide a lowcost approach to defining complex hardware
designsthatwereinconceivableonlyafewdecadesago.Perhapsmostimportantly,usingVHDL
Trinkhailptrnhstrctip
todefinehardwareisfun
trinkhailptheophngphplptrnhtrctipthhmtruynbiukhin
chobiudintrongminzphicchuynivdnghmtruynrirc
n m
a0u* (t ) + ak u * (t kT ) = bk e* (t kT ) (1.7)
k =1 k =0
103 104
Tngthc(1.7)ddngtnhracgitrcaura u * (t ) cabiukhins 6.4.2 V d trin khai b iu khin PID s
chotheoccgitrhintivqukhcauvo e* (t ) cngnhccgitrqukh Xpxhothnhphnvitchphn
cachnhn C3phngphpxpxginonphbinpdngchoccthnhphntchphn:
1 m 1 n
u * (t ) = bk e* (t kT ) ak u * (t kT )
vttrc(forward),vtsau(backward),vtrapezoidal.
(1.8)
a0 k =0 a0 k =1
thchinbiukhinnyyucuphilutrccgitrqukhcauvov Xpxsaiphnvttrc
u ra ca b iu khin. Vi b iu khin choyu cu phi c n + m gi tr cn y f (kT + T ) y f (kT ) = Tx(kT ) (1.11)
philutrhaynicchkhccnphic n + m phntlutr. pdngchuynizcho(1.11)tathuc
y f ( z) T
= (1.12)
Mtphngphpkhctrinkhailptrnhtrctiplsdngcchtchtrctip x( z ) z 1
u vo v u ra ca b iu khin theo mt bin trung gian X(z). Khng mt tnh Dxpxhotchphnsl:
tngqutnuchngtanhnctvmucahmtruynbiukhinschovi 1 T
(1.13)
mtbinX(z).TrtrachmtruyncauvoE(z)theoX(z)vhmtruyn s z 1
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 ).
Hnh611:Xpxsaiphnvttrc
b3 Xpxsaiphnvtsau
b2
b1 Tngtnhsaiphnvttrctacxpxtchphnnhsau:
1
1 Tz
U ( z ) a3 1 1 (1.14)
z z z 1 b0 Y ( z) s z 1
1
X z X 2
z X z 3
X
a2 / a3
a1 / a3
a0 / a3
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 XpxTrapezoidal
Biukhinchosctchrathnhtngcaccbiukhinnginvc Phpxpxtchphnthucsl:
ththchinlptrnhsongsongchoccbiukhin. 1 T z +1
(1.15)
s 2 z 1
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:
Xpxvttrc:
( K T + K D ) z 2 + ( K I T 2 K PT 2 K D ) z + K D
GPID = P (1.23)
Tz ( z 1)
Xpxvtsau:
Hnh613:XpxTrapezoidal
( K T + K D + K I T 2 ) z 2 ( K PT + 2 K D ) z + K D
GPID = P (1.24)
ngthcltngmtbiukhinPID Tz ( z 1)
u (t ) = uP (t ) + uI (t ) + uD (t ) XpxTrapezoidal:
1
t
de(t ) (1.16) (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
= K e(t ) + e( )d + TD GPID = (1.25)
TI 0
dt 2Tz ( z 1)
trong,Klhskhuchi, TI lhngsthigiantchphn, TD lhngsthi
gianviphn.
TI LIU THAM KHO
Trong trng hp chu k trch mu nh, ng thc (1.16) c th c chuyn sang
dngngthcsaiphnbngphngphprircho.Trong,thnhphnviphn
[1] PeterMarweden.EmbeddedSystemsDesign:Springer,2006.
cthcxpxnhphptnhsaiphnbcnhtvthnhphntchphncxp
[2] MichaelBarr.ProgrammingEmbeddedSystemsinCandC++.OReilly,1999.
xdngvttrc.Bngphprircnytathucngthcmtbiukhin
PIDsnhsau: [3] JackGanssle.TheArtofDesigningEmbeddedSystems.Newnes,1999.
T k 1 T [4] StuartR.Ball.EmbeddedMicroprocessorSystems.Newnes,2002
u (k ) = K P e(k ) + s e(i ) + D ( e(k ) e(k 1) ) (1.17)
[5] Qing Li and Carolyn Yao. Realtime Concepts for Embedded Systems, CMP
TI i =0 T s
Books,2003
Tngthc(1.17)taddngnhnthyrngthcthibiukhinPIDcnthng
[6] Olli S., Jaakko A.. Embedded Systems, Lecture Notes, Helsinki University of
tin ca tt ccc sai lchetrongqukh. thun tinchovicthchinlptrnh,
Tech.,2006.
dngquisphhphnvcthrtrat(1.17)nhsau:
[7] Lothar Thiele. Embedded Systems, Lecture Notes, Swiss Federal Institute of
T k 2 T
u (k 1) = K e( k 1) + s e(i) + D ( e(k 1) e(k 2) ) (1.18) Tech.,2006.
TI i =0 Ts
[8] Don Morgan. Numerical Methods: Realtime and Embedded Systems
T(1.17)v(1.18)tartracalgorithmiukhincaPIDs:
Programming.M&T,1992.
u (k ) u (k 1) = a0 e(k ) + a1e(k 1) + a2 e(k 2) (1.19)
[9] Jerrry Lueke. Analog and Digital Circuits for Electronic Control System
T T T TD Application.Newnes,2005.
trong, a0 = K 1 + D , a1 = K 1 + 2 D s , a2 = K
Ts Ts TI Ts [10] AdreaBobbio.SystemModellingwithPetriNets.A.G.Colombo,1990.
Mhnhbiukhindnghmtruyntac: [11] Linda Null and Julia Lobur. The essentials of computer Organization and
1 Architecture:JonesandBartlettPublishers,2003.
GPID = K P + K I + K D s (1.20)
s [12] Hennessy, J. L., & Patterson, D. A. Computer Architecture: A Quantitative
trong,thnhphntchphncthxpxtheomttrongbacchnhmttrong Approach,SanFrancisco:MorganKaufmann,1990.
phn6.1,thnhphnviphncthcxpxnhsau: [13] Sen M. Kuo, Bob H. Lee, Wenshun Tian. Realtime Digital Signal Processing:
de(t ) e(kT ) e(kT T ) ImplementationsandApplications,JohnWiley&Son,2006.
= (1.21)
dt t =T T [14] Kuo.DigitalControlSystems,Oxford,2005.
107 108