ECE243 Final Exam Notes

99 Pages
141 Views
Unlock Document

Department
Electrical & Computer Engineering
Course
ECE385H1
Professor
Hadas Moshonov
Semester
Fall

Description
26/04/2012 Lecture 2 ecue 9 prn 208 ndes osoos   toe Poga ad ntrctonRprsettin   o a, e ae ee evra eapls fa IO I roras W hv itetinll aode t isus i etilwere hi rora xitsisie hemchne owintucios r rprsntd ndhw heCU eqece trog tem. heewil ocen sintoaysletue W js aluedtatintucios r sordinmeoy us lk dtais ndtatth PUussth P t ccsstemfrmmeor. ehae lo ee oeexmpeofho heinoraio is ncdd n ntrctos.   heNOSIIvrymuhlie nyohe poesoruesth cnep o  sord rgrm.Tatiste nsruton tat omrseth rora e an t xeut rerersete uig inr nmbrsad resord nid te eor. o, nsd acopte isrutinsa epetd reto epesnedusn acoletonofbts Te ae ls toedin emr vrymchlieanthngeseinie hecmpte. o deste PUknwifsoehig sanintrcio o ot? t os ot nymeoy octinma ptntalycotan aa r ntrcton.Wht ifeenite te w i ntto e ondinmmoy tel. heolythn tatdffretits n ntrctonfomdaaisth oit n ie heCU efrncs t Rcaltht  CUgos houh h fllwigstpsrpetely:   .Gt ex nsruton .Dcoe ie. itrpetis eain)th isrutin .RadSore peads .PrfrmOertin(eg. ddtw nmer) .Wit Rslt .Dtemiewhchi te et nsruton   ha aks oe emr cntnt n nsrctoni tatitteyar efrece n te . imlrl watmke sme emr cntns at s ha te ae o rfeece i se 1(i urdecrpio sc dtawllbereeenedin tes3 nd5bu dpndngonte roeso adth istutin h nmbr fstpsw dsciedma ntbea od athwih ht hepocssr cualydes.   n IS I eca rfneth dsritinofth PUexcuin tesasfolos:   .Radforbyesfomth emryloaio pite t y hecotnt o C: .Dcoe. .RadSores .PrfrmOertin .Wit Rslt .Ate P o ha t owpins o h nxtistucin e an o xeue.Thsiseihe C  4o smeoher cacuaio i heintrcio i  cnto fowon uc a  banh ra al.   s o cn e nw tp  i dsriedi mredtal.Intuciosar sordinmeoy ndte onensofth C egserar se a hestrtn adrs fomwer te et o eexcuedistucin s ed.Beaueth lnth f  IO isrutinisalay ou bts ethngan dcdig r cncptalysipe:jutred ou yts rm emr ad ok t hm;thy el ouwatth nsrutinisan ene ha reth tes euiedtoeecte t.   te  wic s deemie ha s henxtintucio” simleete b cagig h vlu f hereite P. hi ay we w rtrntostp1 orte ex nsrutin te Cshul b oitigatth ddes wee hebtes epeenin hi nx istucin resord.   t simorat o mhaiz ta ay eor lctin anhlddaaorintrcios n tatbthar js bnay uattis.Ter i otin i emrytatdifretite nsruton fomdta I  mmoyaces i on a tep  te te iar qatiy ea il b ntrpeedasanistucin thrws i wl b ue a dtab te uret nsrcton.   o,watisa istutin?Anistucin epeens n lmeta peatontatth roeso i cpal of eromig.Al peaios hepocssriscaaleofar epesnedasintucios ad ah nsruton orepodst oe rceso oeaton. henxtqusio i wht s otane n heistucio?. heistucio s n nodngtatunqul rprsnts llte nfratonncesay opefomeah n o te i sep f nsrutonexcte dtild efr. er re xapesofwatned t b rpesntdbyanistucio:   1.Te praio ha ms b prfred eg, n d o a bach. 2.Te orc addetiaio oern nme e..,rgite nms s nor“r,r9 r0” ndifncesay vaus e.. te mmdat i adi 9 r, 0”. 3.Te a te Cmut eupatd tth ed Ntetatths sanexmlewhr ifomain ayb rprsntd imlcily orexmpe al o­cnto­fowintuciosdono epictl onai nyinoraio o ow toudae h P. t simlidtht Couhttobcoe P +4” Ol cnto­fowistucioscotan exlci ifrmtin uh s h ofsttoth tretin“eqr9 r,lael.   owNOSIIEcoesIstucios.   IO I s ereenaiv o wa ae ale “OD/TOE”o “IS”intrcto st rhiecues Ohe xapls, ncue IP ndSPR, A­IS ndtoalese xtntPoePC AlNIS I ntrctos refurbyeslng Tee www.eecg.toronto.edu/…/l19-instruction-representation-stored-program.html 1/5 26/04/2012 Lecture 2 reolya e dffrntintrcio frat. nintrcto frmtdeins h ode ndtyeofinoraio feds n h istutin.   er reth IO I nsrutinfomas:   ­FRAT:   hi oraticlde woreise nmefels  ndB f  it ec (ine hrear 2 egser),animeiaeof 6 is nda6­itocoe ied Te ube cnaiedinte pcd fel (P uiqey detfis heprtcuar nsrcton ha i,threisn ohe nsrutontht il av hesae i pttr o tecorepodngbis. hewy hefels pea i teintrcio i s olow:     hi orati uedb istucinsthtreuietw rgitrs ada 6­itimeiae Tes nsrutin icld: 1.Aitmti adloiclopraiossuh sadi n oi. 2.Ladad toeintrcios. 3.Ad rnc isrutin.   owd w ko wete a istutin ss heIFOMA? esipl ee t lo a teOPfil ad hekwhthrthe alethrecrrspns o neo tes nsruton. owd w ko wic toe nsrcton re Teyae ise in hepocssrmaua ndar hrwiedi te eodngcicit: h pocssrwa bit it hi kowegeand onansthsinoraio itenll. hnkofi a i teprcesr asa alethtlitsal pcde ndwhter he seth ­FRMTorno.   er refe xaplsofI­ORAedintucios:   1.adir1,r9 29 B  11 A=r9 Im1  19 n O =004 S i inryfrmth isrutinis:   Inhxaecml,ths s 04a0044   2.bq 1, 7,­00 A  15 B=r7 Im1  ­00=11111101100 ndOP=0x6.So n inr te ntrctoni: Inhxaecml,ths s 03bf726   oucn hekth ecdig f ntrctos y opiin adusngnos­ef­bdup dprg.l.   hefllwigtalelst te Penodn o alI­ORATistucins Ntietht n O ecdig 0xA is esredfo ­TPEo RFOMA nsruton. hs orati epliednet.   www.eecg.toronto.edu/…/l19-instruction-representation-stored-program.html 2/5 26/04/2012 Lecture 2   ­FRAT:   efr w tl aou heR­ORA, etsdicusth JFOMT.Thsisusd yth cl istutin nl.Th J­ ORA iclds  6bt P iedwhchmsthodth vlu x0 ada 6­itimeiaefild hefoma s:     MMD6 iedenodsth trgtadresfo tecal.Th aretadrssisclclae a: it 1 hruh 8 fth cllP, onaente it IME2, onaente wt to  it.   ­FRAT:   heRfoma roidsfo tre egstrnaesA Ban Co 5biseah,an n xtnedOP pcdefil o 6bts, lu n or ied,X o 5bis Te ­oratistuciosalo nlue heO fel f heIFOMA isrutins utue heuiqe aueof0xAtodifretit fomI­OMA isrutins o,atdcoe,NOSIIfis lok t heO fel bis  hrug 5 ndiftes cnai te aue0xAthn t nws ta i ms asolokatth PX iedtodeemie ht heintucio s.Th ctalfomt s sfolos: hefllwigtalelst al P vlusan tecorepodngintucios:   www.eecg.toronto.edu/…/l19-instruction-representation-stored-program.html 3/5 26/04/2012 Lecture 2   ot ha ntal psibe ale fr P ae sd.Th uuedvaus aybeuedfo utreepasin,ie. fr ntoucngnw nsrcton. ot f h istutin seX= . oe seth  fel oradiioalinomaio.The etis anb fun n heprcssr aua psedonth ousewbste.   er’ hw xr 21 3,r9 i ncde:    =r1,A  3 ndB= 9,OP  01Ead P  x3A   r,01aaf3.   owte roeso Dcde Istutins   e ae ee owwecn oner nsruton it tei bnryfom Hw oe heprcssr udestnd ha ech nsrctoni? hi roes i aleddcoe.Dcoe s osilebcaseintucio ncdigisa neo­oe apig.Th uls fintrcto ecoig rebil­i it te adwredein f h pocsor Hreae xapes f o w cndeod nsrutin:   . e’ssa ha tenet nsrctoni: xda204.   irtle’swit i n inry 10 01 110000000 00 00 10. irtle’slokatte owr i bts hee om heOPfel wih s reet n l istutins Telat ix it re 0 10. nheadcia tisi 004 ooin a abe ­, x0 i heOPecoin orADI.Nw e nw owt dcoeth rs o te is.Th nsrutonisADIB,A,IM1 i teI­ORA dsciedprviuly Nwwe no ha:    =1010  =1010 mm6=  1 00 01 00000.   o h istutin sADI 26 26 IM6,whr IM1 =100000100 00,or0x00.Im1 i t b ntrpeed s  ’scopemntsgnd ntgr.So t’ ataly 011111 00 00, r­364.   . o aou x3cd8a,or001001 10 10 00 100011100 Aai, e’sstr wthte P ied te at ixbts 1 01, r0xa n e. o,tisisa RFOMA nsrutonaspe abe ­. oww hvetolokatte PXfel, is 6 houh 1 100, r0x1.Tbl 82 hwsthtths s nAD. o nw eknw ha e av o oo t ied A B ndC,an ha teintrcio i ADC,A,B A= 010 B= 011 adC  011.So te nsrctoni AD 6 r, 7.   enrl bsraton bot nsrctonEcoing www.eecg.toronto.edu/…/l19-instruction-representation-stored-program.html 4/5 26/04/2012 Lecture 2   he heNISIIdeines er ecdigabutte IO I nsrutonenodn teyoerte ndr  stof eqiemnt nda e o dsialeprprtes:   . EUIEMNS: Th ecdig hul b sc tati cn nqulyenoe llpssbl (aid cmintin o: a peato (.g,ad ad u) b attye (.g or, yt) c peansfo sucean dsintin.    Th ecdig ut e evribe,ie. oetoon. qivlety,itshud e osilegve atetal epeenato of anintucio ad r, 2 r) odeerie tsenoin i inryan he i holdb pssbl ivnq a inr ecoig o etrin wa i teintrcto tiscrrspnd o.   . EIRBL ROERIS:    a.Th monto mmoy euiedt rprsnta rorm hol b a sal s osile.    b.Itsoud easeay sposil t dcdeanintucio.    c.Th nsrutonse soldbea uifr a pssbe.Thsishad odein reisl bt nefce o t s ht heeshul  b a fwspcilcaesa pssbl.Fo eapl, f ditoncn setre rgitr peads he llote aitmti oerton  soud eabe o s tre egstr prads hi smliie cd gneaion y ain i as t onidr eerl leratvs.    I adiin,unfomtyimlesthtth vriu felsin heistucin ora soud pea eatl i ostin ndifeet intrcios.Fr xapl,ifth esintonopradapeasinbis 1thouh17inad he i oud e nie fth dsintin prad lo ppaedinth am bt fr or hi poery iplfis adwread alow om otmiaton xaplsofwhc w wllse he e xpai owtobil    wrkngpocssr.   ftnreuieens . ad .bae t ds.Th IO I dsgnrsgveprfeeceto2b nsed f .a hey esgedanistucin etthtisveysipl o ecdea te xene f lay uig ou yts eristucin. thrintrcio st schastos frx8 mcins ndAM emede sstmprcesr)us  vribl enth nsrctonecoin.Tht s ntrctos o o ue hesmenubr f ytsfo ter epeenaton hee r at eattw bts utter my emoe.NOSIIlkear ohr oa/toe PUfmiie se afxe lnghintrcion ncdngwhr al ntrcton seth am nmerofbisfo ter epesnaton.   s nexmpeofho ncdig a b dn asue tatweae skdtocoe pwih nodngfr  mchn taths: 2 eiser ac o  bte, 6difeet peaios,1 osiledtayp ( yts)ad nsrcton o hefomdst  sc O sc wer st sc1ad rc rereites wewul ne ohe isrutin fr cesin mmryand eqecig u fr lriy ndwthutlssofgnealtylt s sum tattes aeth ol istucinstht hi acin as. o cn e nod tee nsrcton? heear mn dffrntwas.Hres n.   .Hw an it d e ee o ncdete oprtin?Snc ter re16oertin 4bis hul b uficet. So lts sete ou ms sgnfcat is orthspupoe W tenw hvet cmeu wtha apig f for i bnayqunttisan oeaton.Fo eaml, e olddein ha 00 i franadito, 00 s fo sbratinan s o.An ecdig svaid. .Bsieste peaio w holdbealetosecfyte attye Snc hee sony nedtayp e o o ned todietl ecdeths sngbis Tiscn e mpid. .Fnaly e ee o ncd te hreoprad. e sumd ha hee eertorgites.Ter ae32reites, le’scllthmX0thouhX3. oreert echon f hoe32reises a ie itnmeissufcint hat nae a b md t ecoeth bnryfomofth rgstr nmbr n nXn. icethr ae hreoprad, wewilned heefie i nme.   urecoin anthnbe:    4bts 5 is 5 is 5 is OPRTIN DST SR1 SR2   s nexmpe lt’ eeho w oud hn ncd AD 1,X5,X31   heecoin il b:   00 001 1111111   hefrs fu bts(00) tadfo AD henxtfiear frth dstntin eiserX1 henxtfiear frth frs oucergite 15 ndte as iv aefo te eon sucereite X1.   www.eecg.toronto.edu/…/l19-instruction-representation-stored-program.html 5/5 26/04/2012 Lecture 2 Lctr 23 Adra Mshvos   Istutin etAchtetre: hrateiaton   Tusfr e av ee todifeet nsrctonst rcitcurs:te 800an te smpeintrcto st eusd nth lcurs hreweexlind o aCP anbe dsind. Ter s  vrit o isrutinses u ter.Inths etue ewil icus a fw fth atrbte ta cn eusd ochratrie heeintrcio st i a mannfu wy.I oe a o aohe, itull llintrcio st tateist tda anbeclsifeduin tee ttiuts.   Atrbte#1 Tenube f peads   Tisatrbue eer t henubr f eplci*opradstatexs in istutinsthtpefomcacuaios ie. a ddtin).    a 0opradarhietueso sac­asd rhiecurs.  Ter aenoexlci oeans l ae mliitan he rfr o oatons i ahrdar sporedsac.    Fr xape,intes acitctrs  =B+  i ipemntdas:         US C        US B        DD        OPA         eyadatae:cdedesty        ot ta dtamveen nsruton ta rfe t emrysil uea sngeoprad A BorC wic s headrsswer te aa esds.      b 1opradoracuulto­asd        neoprndisiplci NDitsth acmuatr.Te ccmlaori a rgitr nsdete PU hee r n ohr egser.              OA B        DDC        TOE A    .2­pean e..,6k,IA3)       hee r to xliitoernd ndintucios ae hegnealfrmof:       peato suredetiaio, orce       neofte peadsisbtha orc addetiato.      =B   bcoe:       oa r,B        oa r,C        ddr1 2        toe 1 A     .3­pean e..,MPS SAC,POEpc  www.eecg.toronto.edu/~moshovos/…/l23-instruction-set-cha1/2terization.html 26/04/2012 Lecture 2      Istucinstaeth fr:    oertindetiaio, orc, orce  Ter i nedetnaio ndtw ouce.    A=  +C:    ladr1        ladr2        ad 3,r, 2       sor r,A  Atrbte#2 Wehe tereises regnealprpseornt:     )ye: anue nyrgite oran uros        peia se aebycovnton(orexmle  egser28i te tck pine i MPS.       nyreite cnbeusdlie n ohe egstr.        )no smergiteshae pciicues        xapls a i 8k(i' ueda astc pinerb smeistucinssuh a jr rs,lik.  Atrbte#3 Cnanoprndbeameor octin     )Ye:        ) emr­t­Mmry d alulton drcty ro/o emr       i) emr­Rgitr:on pean anbeameor lctin eg. 6k     )No        aledLadStr Achtctre        f ounedtooerteo mmoyvaue ouhae ofistbin te itoa rgitr   xapls MPS PAC,PwePC Atrbte#4 Rltinsi o Isrutin ad aa ais engmaiulte y he istutin a SS: ha w av be dsciin s arisa SSD o inle Istutin/inl Dta nsrutonse.   Ec istucin peaesonapar a mst f alesad rouesa igle rsut. b SM: n ltratvei SMDo SngeIntrcio/Mltpe at.Exmpe of schistuciosca b oud nth “een” utieda ntrcto st xenios scha MX,SS,3Dowad ltvc poepc. ee n nsrctonsecfistht n oertonshul e erome o ulipeparso dta Frexmpe areite in scha achtetredosno cnai asnge aa uatiy Ista, f he rgitr s ay26 it id i s ssmd o otan igt32bi uatiis. Adigtw schrgite mont o eromig ihtinepnen adtins neper piro 3 bt unttis. c MM: inll,threi MMDad oror isusin ufiestosy ha hi is watprale cmutrsae.   www.eecg.toronto.edu/~moshovos/…/l23-instruction-set-cha2/2terization.html 26/04/2012 Explain purpose of this course: Andreas Moshovos Fall 2007   Using Interrupts Continued: Other causes of interrupts and an example of how they can be used to emulate new or unimplemented (in hardware) instructions.   In the previous lecture we have seen how interrupts can be used to communicate with I/O devices. We noted that the interrupts mechanism has a lot more diverse applications. Interrupts can be used to detect erroneous conditions during execution such as a division by zero or a misaligned memory access. In other processors interrupts are also used to support Operating System calls (currently, NIOS II does not have support of this kind).   Emulating non­implemented instructions   As an example of other uses of interrupts we will see how we can emulate an instruction in software. For example, the NIOS II instruction reference defines the instruction “mulxuu rC, rA, rB”. This instruction multiplies the values of registers rA and rB and writes the upper 32 bits of the result into register rC. Note that since registers are 32­bits each, multiplying them may result in a value that requires 64­bits to be represented. This instruction treats the input values as unsigned. Combined with the regular “mulu” instruction we can use “mulxuu” to do a full 32­bit x 32­bit multiplication. Not all NIOS II implementations include a hardware unit for “mulxuu”. The reason for that is that this unit is quite expensive. So some implementations opt to rely on emulation to execute this instruction.   This interrupt can be used to emulate in software instructions that are not really implemented in hardware. Once our interrupt handling routine is written, the emulated instruction can be used as if it was implemented in the CPU. For example, it used to be the case that one could get 80386 which implemented the integer subset of the x86 instruction set in hardware (80386 is Core Duo’s grand­grand­grand­ grand­“father”). The x86 instruction set, however, included instructions for floating point numbers too. To get hardware for those you had to get the 80387 processor which was a co­processor that worked in tandem with 80386. If you didn’t have the 80387 you could always use interrupts to emulate these instructions in software and still run programs that used them (albeit a lot more slowly than they would run if you had 80387).   Before we emulate the instruction let’s see how it is encoded:   Bits 31 through 27, 26 through 22, and 21 through 17 encode the two source operands and the destination register respectively.  Bits 16 through 11 should hold the value 0x7, bits 10 through 6 the value 0 and bits 5 through 0 the value 0x3a. In binary these are respectively, 000111, 00000, and 111010. So, bit 16 should be 0 and the lower 16 bits should hold the value 0011 1000 0011 1010, or 0x383a.   The interrupt handler is structured as follows:   www.eecg.toronto.edu/~moshovos/…/l18-interrupts-emulating-instrcutions.html 1/5 26/04/2012 Explain purpose of this course:   Here’s the assembly code for the interrupt handler. This code will not work when any of sp, et, or ea are used as the destination register for mulxuu.       .etin xepios       #tllth ssmbe t ntinroue nyadiioa istutins oerriig egsers     .e nbrak     .e nat   hnder                                                  rcl t,cl4           Cek ha ntrrp ws ase b     sftare     beet r,eaec    #i nt,i'sa adwreiterutigore     #sveal egstr o testck     sb  p,s, 2  4        ###########################      #streal egser o hestck      #fomiganara o wrs      #th vle orrgite  i a p+*4wer Xanube ..32      ###########################      swi r,(s)      swi r,(s)      swi r,(s) www.eecg.toronto.edu/~moshovos/…/l18-interrupts-emulating-instrcutions.ht2/5 26/04/2012 Explain purpose of this course:      swi r,2(p)      swi r,6(p)      swi r,0(p)      swi r,4(p)      swi r,8(p)      swi r,2(p)      swi r,6(p)      swi r040sp)      swi r144sp)      swi r248sp)      swi r352sp)      swi r456sp)      swi r560sp)      swi r664sp)      swi r768sp)      swi r872sp)      swi r976sp)      swi r080sp)      swi r184sp)      swi r288sp)      swi r392sp)      swi r496sp)      swi r510(s)      swi r610(s)      swi r710(s)      swi r811(s)      swi r911(s)      swi r012(s)      swi r112(s)       #################################     #radth nsrutonopoe o et hehr t sa uluu     #e pinstoth nsruton     #################################     lwo 9,­(e)     ad  10 9,r0#kep  op o heopoe     ad  9,r, xff   #kepjutth lwr 6 is     cpqi   r1, 9 038a     bq  11 0,nomlxu     sl  10 10 1    #sif teuper1 btsitoth owr 6     ad  11 10 01   #tstbi  wic se t e it17     be  11 0,nomlxu  f otzrothsisno uluu         #################################     #Oerndide clultins     ################################# imuxu:     #nw aluat idxe it te tckfo ccssng     #te nptan otutoprnds     #tea testcka a32etr ary f ods     #w etrc te  itfil fr ah pead     #mltpl y ou ecus ac ety s or yts     #ad ddte takpontwic i hebaeofth rry     #################################     sl  10r0,  #kep ut heupe 1 it o heopoe     #rC     ad  11 10 01   #tes aeth 5btsiniatngr te dstnain egser     sl  11 11 2#mutil b 4     ad  11 11 s    #ad hebseofte rry     #rB     sl  10 10 5     ad  12 10 01 #kepth bt fr B     sl  12 12 2#mutil b 4     ad  12 12 s    #ad hebseofte rry     #rA     sl  10 10 5     ad  13 10 01 #kepth bt fr A     sl  13 13 2#mutil b 4     ad  13 13 s    #ad hebseofte rry www.eecg.toronto.edu/~moshovos/…/l18-interrupts-emulating-instrcutions.ht3/5 26/04/2012 Explain purpose of this course:       #################################     #Aces nutreites     #################################     #a tispin:     #r1 oit t teenryfr C     #r2 oit t teenryfr B     #r3 oit t teenryfr A     #radrAad B no 9 n r0 epetiey     #################################     lwo 9,0r1)     lwo 10 (r2)       #################################     #Mltplctin  o ee o ndrtad o tiswrks     #ed esl i i 10     #################################     sl  4,r, 6 #a  (1>>16  0fff;     ad  5,r, xff   #b= 1  xfff;     sl  6,r0,16#c  (2>>16  0fff     ad  7,r0,0xff  #d= 2  xfff;       ml  9,r, 7 #LO=   d;     sl  9,r, 6 #y  (L > 1)& xff)     ml  10 4,r7#x=a  d     ml  12 5,r6#x1=   b     ad  10 10 r2   #x=  +x1     ad  9,r, 10#y  y+x     sl  9,r, 6 #y  ( > 6)&0xfff     ml  10 4,r6#HI=   c     ad  10 10 r    #H =HI+y       #################################     #wit rsltonoth cresonig takenry     #################################     #sor tereul o hesack     swo 10 (r1)       #dclretisintucio s xeued     ad  a,e, 4   ntmlxu: eulon:      ###########################      #retoeal rgstrsfomth tak      #on vle asbenchned      ###########################      lwi r,(s)      lwi r,(s)      lwi r,(s)      lwi r,2(p)      lwi r,6(p)      lwi r,0(p)      lwi r,4(p)      lwi r,8(p)      lwi r,2(p)      lwi r,6(p)      lwi r040sp)      lwi r144sp)      lwi r248sp)      lwi r352sp)      lwi r456sp)      lwi r560sp)      lwi r664sp)      lwi r768sp)      lwi r872sp)      lwi r976sp)      lwi r080sp)      lwi r184sp)      lwi r288sp) www.eecg.toronto.edu/~moshovos/…/l18-interrupts-emulating-instrcutions.ht4/5 26/04/2012 Explain purpose of this course:      ldi r3,2(p)      ldi r4,6(p)      ldi r5,00s)      ldi r6,04s)      ldi r7,08s)      ldi r8,12s)      ldi r9,16s)      ldi r0,20s)      ldi r1,24s)       #retreth sak     adi p,sp 3  4     b   doe       #fo arwae nerupsreexcueintrcto tatwa ntrrptd ede:     sbi a,ea 4 ion:     eet         Here’s a piece of code that uses the new instruction      .txt    .goblman an:    mohir, xfff    or  r, 9,0xff    ad  r0,r9 r0    muxu 11 r, 10 www.eecg.toronto.edu/~moshovos/…/l18-interrupts-emulating-instrcutions.htm5/5 26/04/2012 Lecture 2 Lecture 19 Andreas Moshovos Spring 2007   Implementing a Simple CPU   We now switch topics. We assume that there is an understanding of how CPUs behave which is sufficient for programming them. This is the role of the computer user/programmer. In what follows we switch roles and assume the role of the computer designer. This is the person that designs a piece of hardware, the CPU that behaves exactly the way the programmer expects it will. Recall, that the behavior model of the CPU is the contract between the designer and the programmer. Thus it allows the two parties to proceed independently.   We will three different methodologies for implementing CPUs. The textbook presents one of these styles. This will be the last one that we will present during our lectures. For clarity, we will restrict our attention to a hypothetical, simple CPU.   Instruction Set Definition   We will use the following instruction set/behavior model for our examples. Assume a hypothetical architecture where there are just 256 memory locations. Our CPU has four general purpose registers called K0 through K3 each capable of storing just 8 bits. The CPU also has a PC register which is also 8 bits. Upon resetting the CPU (e.g., power up), the PC takes the value $80. Our CPU does not support interrupts. In addition, there are two condition code bits Z = zero and N = negative.   Our CPU is capable of executing the following 10 instructions:   LOD 1 R2:     MP= EM[R] R1= MP PC= C  1 STRER1(R):     EM[R]  R1 PC= C  1 AD R R2     MP= 1  R2     1  TP IF(TP = ) ER =1;ELE ER =0; IF(TP  0 NGAIV =1;ELE EGTIE  0;     C  P +1 SU R R2     MP= 1  R2     1  TP IF(TP = ) ER =1;ELE ER =0; IF(TP  0 NGAIV =1;ELE EGTIE  0; PC= C  1 NAD 1 2     MP= 1 itis NNDR2     1  TP IF(TP = ) ER =1;ELE ER =0; IF(TP  0 NGAIV =1;ELE EGTIE  0;     C  P +1 OR IM5 TM =Κ1biwie R MM, hee MM i a5 itcostnt Κ1= MP IF(TP = ) ER =1;ELE ER =0; IF(TP  0 NGAIV =1;ELE EGTIE  0; PC= C  1 SHFTL/ R ΙΜ2     F L)ΤΗΝ MP= 1  MM2     1  TP IF(TP = ) ER =1;ELE ER =0; IF(TP  0 NGAIV =1;ELE EGTIE  0; PC= C  1 Aleratvedeintin eqivlet o heprviuson): www.eecg.toronto.edu/~moshovos/ECE243-2012/l19-implemenation-si1/14-cycle.html 26/04/2012 Lecture 2         ΜΜ isa  bi imedat i th sgn  mgniud rpreenaton,i.., it2 = sin,vale  bts  ad 0        IF(IM3  0 ΤΕΝTMP= 1  (­MM)        R1= MP I (MP = ) ERO= ; LS ZEO  0; I (MP  0 NGATVE= ; LSENEATVE  0; P =PC  1   BZIM4     her ΙΜ4is  2s omlemnt4­it mmdite     F (ER = 1)PC= C  1  (IG­EXEN8(MM4)     LSEPC= C +1 BN IM4     MM4asinBZ     F (ER = 0)PC= C  1  (IG­EXEN8(MM4)     LSEPC= C +1   BP IM4     MM4asinBZ     F (EGTIE = 0 P =PC  1+ SIG­ETED8(MM))     LSEPC= C +1   Each instruction is encoded in one byte as follows:   LOD      7 6 5 4 3 2 1 0 R1 R1 R2 R2 0 0 0 0 STRE    7 6 5 4 3 2 1 0 R1 R1 R2 R2 0 0 1 0 AD      7 6 5 4 3 2 1 0 R1 R1 R2 R2 0 1 0 0 SU      7 6 5 4 3 2 1 0 R1 R1 R2 R2 0 1 1 0 NAD     7 6 5 4 3 2 1 0 R1 R1 R2 R2 1 0 0 0 OR      7 6 5 4 3 2 1 0 IMM5_IMM5_3IMM5_IMM5_1IMM5_1 1 1 SHFT    7 6 5 4 3 21 0 R1 R1 L/!RIMM2_1 IMM2_0 01 1 BZ      www.eecg.toronto.edu/~moshovos/ECE243-2012/l19-implemenation-singl2/14cle.html 26/04/2012 Lecture 2 7 6 5 4 3 2 1 0 IMM4_3 IMM4_2 IMM4_1 IMM4_0 0 1 0 1 BNZ          7 6 5 4 3 2 1 0 IMM4_3 IMM4_2 IMM4_1 IMM4_0 1 0 0 1   BPZ          7 6 5 4 3 2 1 0 IMM4_3 IMM4_2 IMM4_1 IMM4_0 1 1 0 1   A few examples:   “Add k2 k1” is encoded as %10 01 0100 (we’ll use %number for binary), where the first 10 refers to register K2, the 01 that follows refer to register K1, and the last 0100 refer to ADD. This instruction computes [k2] = [k2] + [k1]   “Load k3 (k1)” is encoded as %11 01 0000, 11 for k3, 01 for k1 and 0000 for load. This reads from the memory location given by the value of k1 and writes the value read into k3.   %10100111 decodes to “ORI 0x14”, since the last three bits are 111 which corresponds to ORI and the rest are 1 0100 which is the number $14. %10010110 decodes to “SUB K2, K1” since the last four bits are 0110 which corresponds to SUB and then the upper two bits mean K2 and the next two bits mean K1.   Datapath and Control   Generally speaking an implementation of a CPU can be broken into the implementation of two cooperating units: the datapath and the control.   The datapath is the unit that contains all the registers and the functional units. It is where all data computations take place. The datapath should be constructed in a way such that it is possible to perform all actions necessary to compute the data results of instruction execution. For example, to implement the add instruction the datapath should provide us with the capability of reading the two registers that we want to add, it should have a functional unit that performs the addition and then allow us to write the result back into the appropriate register. We will shortly present a methodology for designing the datapth.   The control orchestrates the actions that take place in the datapath. We will eventually explain that the control is a “giant” finite­state machine that implements the fundamental execution loop: (1) fetch instruction, (2) decode, (3) read source operands, (4) perform operation, (5) store result, (6) determine which instruction to execute next. It does so by instructing the datapath to perform all appropriate actions.   But both concepts are best understood by means of an example.   We will focus on explaining how to design the datapath and then the control.   Single­Cycle Implementation – General Observations   Our CPU will be implemented as a sequential circuit. That is, it is going to use a clock reference. A clock is a periodic signal that alternates between 0 and 1. This is what they refer to as the clock frequency of the CPU. For example, at the time of this writing the maximum clock frequency for a P4 CPU is 3.8Ghz. This is how the clock signal typically looks like in time (the diagram defines “cycle”, “falling” and “rising” “edges”):   TIME ­­­­­­­­­­­­­­­>                                                       Falling edge ­>    these are needed because these bits determine the operation of the current instruction. N and Z ­­> these are needed by branch instructions to determine whether the branch is taken or not, i.e., what value should the PC be loaded with.   In turn, the control will produce the following control signals:   PCSel ­­> if the PC is loaded with a new value which it is going to be: 0 for PC + 1, 1 for PC + sign­extend(Imm4) PCWrite ­> 1 if we want the PC to be loaded with a new value (we will always want this) RegWrite ­> 1 if the instruction writes a register MemRead and MemWrite ­> 1 if the instruction is a load or a store respectively R1Sel ­> 1 if we want to explicitly set K1 as the source and destination for ORI, setting this 0 passes the R1 field from the instruction opcode (drives reg0 and regw). ALUop ­> what operation should the ALU perform (we assigned values for this signal in the description of the ADD instruction) ALU2 ­> what will drive the second input of the ALU ­> 00  = second output from the register file, 01 = Imm5 field from the instruction (for ORI), 10 = Imm3 from the instruction (for SHIFT). 11 = reserved for future expansion. RFin ­> if this instruction writes a value into the register file where this value should come from: 0 = From the ALU, 1 = from the Data Memory.   Since the control unit is a combinatorial circuit we start by deriving a truth table for it:   www.eecg.toronto.edu/~moshovos/ECE243-2012/l19-implemenation-single-cycle.html 13/14 26/04/2012 Lecture 2 ISTUCTON Ipus Otpts   IST­ N Z PSel CWite egrite emead 1Sl MeWrte AU2 Rin AUop 3 LAD 000 X X 0 1 1 1 0 0 X 1 XX SORE 010 X X 0 1 0 0 0 1 X X XX AD 000 X X 0 1 1 0 0 0 00 0 00 SB 010 X X 0 1 1 0 0 0 00 0 01 NND 100 X X 0 1 1 0 0 0 00 0 01 OI X11 X X 0 1 1 0 1 0 01 0 00 SIFT X11 X X 0 1 1 0 0 0 10 0 10 BZ 001 X 0 0 1 0 0 X 0 X X XX   001 X 1 1 1 0 0 X 0 X X XX BZ 101 X 0 1 1 0 0 X 0 X X XX   101 X 1 0 1 0 0 X 0 X X XX BZ 101 0 X 1 1 0 0 X 0 X X XX   101 1 X 0 1 0 0 X 0 X X XX   Here’s the rationale behind some of the lines:   For LOAD: The INST0­3 bits should form the pattern 0000. It doesn’t matter what N and Z are since LOADS always read from memory. The PC should be changed to PC+1 thus PCSel = 0. We do change the PC thus PCWrite= 1 (turns outs that PCWrite should always be 1). We do write into the register file thus RegWrite = 1. We read from memory thus MemRead = 1. We do not write to memory thus MemWrite = 0. We do not use the ALU so, it doesn’t really matter what inputs we provide to it and what calculation it performs. Also, R1Sel = 0 as we will write into the R1 specified by the instruction opcode (and not K1 which is used only for ORI).   For NAND: The INST0­3 bits should form the pattern 1000. It doesn’t matter what N and Z are. PCSel = 0 and PCWrite = 1 since we want to simply increment the PC.  MemRead and MemWrite should both be 0 since with do not read or write from/to data memory. ALU2 should be 00 since we want the second register value from the register file. RegWrite =  1 since we do write to the register file. RFin = 0 since we will write the value produced by the ALU. Finally ALUop = 011 since earlier we assumed that this is the way we ask of the ALU to perform an NAND.   For BZ: The INST0­3 bits should form the pattern 1001. It does matter what the Z flag is. So there are two lines one for when Z is zero hence we do PC = PC +1 and one for when Z = 1 in which case we do PC  = PC + Sign­extend(Imm4).   Double­check all values and try to understand why they are set the way they are.   Now that we have the truth table we can implement each of the outputs of the control unit using any of the methodologies learned during digital design. Here are a few trivial implementations:   MemWrite = Inst3’ * Inst2’ * Inst1 * Inst0’ MemRead = Inst3’ * Inst2’ * Inst1’ * Inst0’ RegWrite = Inst3’*Inst2*Inst1 + Inst0’*Inst1+Inst2’*Inst1’*Inst0’+Inst3’*Inst1’*Inst0’   Timing – Putting it all together   While we have mentioned how the timing works it is best if we revisit this issue now that everything has been put into place. So execution of an instruction commences immediately after the falling edge of the clock. Notice that at this point in time the signals of the datapath and the control will have values which may be incorrect (they me correct only incidentally). So, because the PC is connected to the instruction memory the latter will start reading the contents of the memory location pointed to by the PC. After a while these contents will appear on the INST lines. After a while the control will produce the appropriate control signal values In the meantime, the register file may have been reading arbitrary registers, the ALU may have been producing arbitrary results. This is OK as it does not change any storage elements (registers or memory). Eventually, once the INST signals are set correctly by the instruction memory, the register file will see the right register names on its inputs and will after a while produce the appropriate values on its outputs. Because the control will eventually produce the appropriate values for all control signals we will eventually see the appropriate results out of the ALU, or from or to memory. Key to making the whole thing work correctly is that no storage element will change prior to the next falling edge of the clock. Thus if we make the clock slow enough there will be sufficient time to produce all appropriate values and then make the right changes instantaneously.   www.eecg.toronto.edu/~moshovos/ECE243-2012/l19-implemenation-single14/14e.html 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html Copue Ogaizton Imleetig  Poesor uli­yleImlmetain AnresMohoos Spin 007     MUTIYLEIMLEETAIO:Th Dtpah   Aswihth sngecyleiplmettin u pocsorwil osit ftw coertiguntste atpah an tecotrl.W wllfrs dsgnth atpahan tente onrl.Th eydifrecehreistht th eeutonofasigl nsrutonwiltae utilecyls o oplte ccrdnly tedaapthwll hae ochng abt. Th hg­lve mtodloyusd odeelpths aapthiste oloin: eaproc istutin excuin s  sqene fsmllsep/aton. nted f rin t eror llths atin i oe int stp/yleweintadpattin hm nt ropstatar proredi ode neafe te ter Rugly th gopswewilus hr ae:   1.Radintrcio fo mmoy. 2.Dcoe nsrctonad peuatveyred w rgitestht h istutin ihtuse 3.PrfrmAL alulton o ccssmmoy. 4.Wit rsutbak oreise fle. 5.Dtemie et C n udaePC.   Beauethsestp wllb eectd n earteccls t sneesay o nrouc ddtinl toage elmet t rmebr ha te o heexctin ear a adtohodinoraio a on a t igt nede. Th fgretht olos hwsth atpah Yu il otcetatiti sigty ifeen ta te inle cyledtaat. n ky ifeeneisth ntodcio o tmorryrgitestohodth otoms ha re prdue a echccl. o te ie eigplas gnreth etil ndfou o tegry oes Tes re th nwreiser utkepinmidtht hsereites rent isbe o h pogame:   Th flowngtepray eiser reinrdued:   IRo Istucin egser Ti i ue t hl te nsrctonecoin ftr tisredfrm emr. Areiseri neddbeauewewilus asnge emr dvieboh o dtaad nsrcton. Acodigl,it otutma hagedrig h eectinofanistucin a od il ea fom mmoy). R1ad 2:Ths ae sd o epoarl hldte egstrvaue ea fo te eiserfle. AlOt:Ths susd otepoail hl te eul clclte b heAL. www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html1/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html MD r emryDtaReite: odsth ale euredfrmmeor o ha t anlte b rite ito te egstrfie.     Oberetht n u dtaah heeisno  sngemeor dvce oeAL adnoadiioalades. Cotrr t te igl cce mpeenato hrew d nt ae o eliat nyfucioalboc/uittat isusdtwcebya istutin.Fr xape,wecn seth am mmrytoradanistucin n ne cylead he ra/wit ro/t t n  ubeqet yce o lad ndstrs.Siiary,w d nt ed tous eprae der frcacuain P  1an C  1+ EIm4) e anrus tesae L.   Le’sse owthsdaapt ws eivd.W wlleplinwhthapescyleb ccl.Th dvsin f ok incyls il se abirrywhnyo ra te et f hemteia.Ho oedeidswht a b dnei a sigl yce ndhw o atiio hevaiusacinsino earteatins hi i ealyolyposile ifon nos herlaiv ely feah cio. o eamle owlogittae t ra t rgstrsfrm th rgstr il,an hwdos hs omae o efomig nadito wthte LU dell,wewold patiin heacinsinawa sc tateer cce s se n ul o erom seu wrk hi mans tht h dla o hewokpefomd n ah ycewil e rtt mc te ae oral yce. n prctc, e ryt gt sclsea pssbe o hs del.     CYLEB­CCL DSRITIN Th frt wocyls rete am oral nsruton snc e ee o ethth isrutinfrm emry an te dcoe t(ie. hecotolha o oo t heopoe nddcie ht o onet).   ­­­­ CYLE1 Ftcin heIntucio ndInrmetigth PC   Th frt te i xeutn a isrutinreuie ftcin heintucio ro mmry Frths e ae tosedth vlu f heP rgitr o h adrs lne o hemeoy evc. ssmngthtth mmoy wil epod iti tisfrs cce,wewnttosor te euredvlu (hs s h ecoig f he intrcio tatw soudexcue. o oths ened o ae hevlu fo te eor’sotpt nd wrteitoth I egstr Tes tes r pssbe s honbeow:   Beauewema acssth am mmrydeie o efom  la o asor (ed ndwit rsecivly a MU i eeedatte ddes nptsothtitispssbl t en eterth C r nthr dres.So, duin hefistccl w il b eain heintucio ecdig rm emr. hi s roalya ood tie oalo aluat P  P +1asal nsruton ue hs evnbrnce rqur P +1aspat f thirtrgt aluaton.Hee’ owthsisdoe:   www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html2/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html Inpaale wthte emr aces w sn te Cvauethoghth LU mxtoth LU A heseond inutt te LUw sndte ume 1(ipt 01o MX LU) Fnal, e e AUo o 00(ddtin) s a esl, heAL il clulteP +1.B sttn PWrtet 1 a heen f hecrrntcoc ccle (ngaie dg),P wllcane n wllbcoe C+ .   CYLE1SUMAY:I smmr te oloin cton ak pac urngte irtcyle hi i ftn aled th FTH yce.     [R]= em PC ]     [C]= PC  1   Noe ht ecus llintuciosned ocopuePC1 t a pssbe o r t eauae hs s aryas posil. hi i netyeofopiiztinweca ppy o euc tenube f yce neddtoexcue evryistucio.Aleraivly e oudhae opuedPC1aferprfrmn al teracins.   ­­­­­ CYLE2 Dcoin heintucio ndredngfrmth rgitr ile   Duin heseon yce,te onrl il e akn alok tth isrutinopod n rdrtodeide wht hul hppnduin henetcyle ecus an istutinsue hergitesspciid n ieds R1an 2 f heistucin e lo ea hee eiser fo te eiserfle Nt tatsme intrcios o o ue 1orR2 n hi as, ewoldhaered eiser ha w o otned Wile ths sexrawokweliealy a nthn bttrtododuig hescod yle S,itisO i hrdae topefrmaciostht a b ueulan atr gor te euls fthy r nt ede. hs s pemisbl a ln a teexraeuswokdos o cane n mchn sat n n revrsbe ay(ras dono hageth egstrvaue o he reOK.Inoterwrd, edig h to eiser s a spcuaiv otiiatonprfrmdatth arwaeleel W ues ht n cio mgt e sfu ad pefomitspcuaivly atr n w wl dtemnewhthrths pcuato i scesfu.Inth cse ofredngthseto egser, hreisn hrmwenwemipcuat.Wesipy av ea toreiser. Threae an ohr orsofspclaio n odr pocssr, om f hihreuiecoretveacio. Alo oe,tht hul w av coentowittodtemie hthr eshul ea tereises,thse intrcios ha sethmwoldrqurea etr yce o xcue.   Itisipotat onoe ht urn te eond yleth dtpah ano tk atin tatdped n he acua nsrutinbengeecte.Ths sbeaueweasum ha tecotrlnedsaful yletodeoe th ocdean dcdewhtnedst hppnnet.Fr ursipe nsrctonst hi s roalya pesiiti asupio. o s froterachtetre tathvemaymoe ntrctos.     Noe ht ecus heR1ad 2 ildalas ppa a te ae itlcaiositispssbl o lidl se thm n aces h rgitr il ve trug tecotrl a nt e hd nug tm t cek heacul opod.   Scemtcaly hr’swhthapesinth atpah: www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html3/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html Thsatth ndo te2n cce,rgitrsR1ad 2ar oaedwthte aue hl b hergites idnifedb teintucio itfelsR1an 2 epetvey.   CYL 2SUMRY:     [1]=RF[R7.]]     [2]=RF[R5.]]     IstutinDeoe     ­­­­   CYCLE3 andafter   Whthapesafe cce  dpnd n h atulintucin. Acrdnlyw wllcnsdr ah intucio n un.     *** AD, SU and NND   Th xeuto o heetheeistutinprced it adtina tes:   Inccl 3w clult te prain pciie y h isrutinan t h ed trete eul ito ALot.Inccl  w rie h rsltitoth egserfle: CCE 3 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.ht4/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html CCL 4     *** SHFT   Shfti amstidnicl oAD, U adNAD.Te nl ifeene stht uin yce  e o o ue reise R utth mm fed ro R:   CCL 3 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.htm5/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html CCL 4   *** ORI   OR ue a iple suredetiaio rgstr prad.Acodigl,th rgstr ered ncyle2 ay no b herihtoe.Fo hi raon w av t ccssth egstrfie ginan ea K,thn n yle 4 e a prfrmte R nth AUan i yce  rie hersut no hergite il:   CCL 3 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html6/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html YCL 4 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html 7/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html CCL 5   *** LOD   Fo aLADistucin e il e cesig emr drigcyl 3an toin hertune ale no DR. Thn ncyl 4wecn rieths auei te eiserfle.   CCL 3 CCL 4 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.htm8/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html   *** SORE   Fo  SOR nsrcto w wl b ccsin mmrydrigcyle3towit hevau it mmry:   CCE 3 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.ht9/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html   *** BRNCHES   Fo bachistucinsinccl 3w wl clcltePC+1  ig­Etndd Im4 ndatte ndo te cyledpedngonweterte oniio s ru r otw wl wit hi vle no heP. ecl tat duin yce1 e hngd h P t C’=PC+ ,sono e ed o acuat C’+Sin­xenedim4: CCL 3 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.htm10/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html   Th dciin n hehr o hag te C il e aknbyth cnro. hedciio cnbeenore by setig h PWrtesgnl 1 o canin C  fr epig heP +1).     www.eecg.toronto.edu/~moshovos/ECE243-2012/l20-multicycle-columns.html 11/11 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html omutrOranzain uli­yleImleetaio: h CntolUit ndea osovs prng205     n hepevou lcur w hv eplindth dtaah f hemlt­ccl mpemntton Hrew pesntte esgn etodlgyan tedeig frth cnto uit. orth inlecyl iplmettin hecntolwa  cmbnaoia crci. orth uli­yceimleenaio te onro s o one acobiaoralcicit i’safiit sae acin. er’swy:Ittae mltpl ycestoeecteanistucio.Duin ec ccl dferntacinswil ae o ake lae.Te cton epndno nl o teintrcto bt n hchcyletisis S,fo a ADdifeen higs apendpedig nwhthr ear a cce  o 3 ccrdngy acicuttht ankeptrcko wic cce e rein s ecsar.   o esg te onrl e tatbyprduig  tbl ha lst llth aton tatnedtotaeplcepe yce nd erintucio:   CYCLE Instruction Class   ADD, SUB,SHIFT ORI LOAD STORE BPZ BZ BNZ NAND 1 [IR] = Mem[ [PC] ] [PC] = [PC] + 1 2 [R1] = RF[ [IR7..6] ] [R2] = RF[ [IR5..4] ] 3 [ALUout][ALUout[R1] = RF[MDR] = Mem[MEM[[R2] =if (N’) if (Z) if (‘Z) [R1] op[R1] shift ] [R1] PC = PC PC = PC PC = PC + [R2] Imm3 SE(Imm4SE(Imm4)SE(Imm4) 4 RF[ [IR7..6] ][ALUout] RF[[IR7..6]] =        [ALUout] [R1] OR Imm5[MDR] 5     RF[ 1 ] =           [ALUout]   e owue hi tbe s uieincostutig hesat daga fr hecntolfiie tae ahie:     nsrutonexcuin tatsa sat “yle”,thswhrewewllbefecin te ntrctonocoe ro emry. n henxtstte“yce2 w ea fomte egstrfie ndasohae h cntoldcoe heistucio. as sae cyle” ifeen atins ke lce eenig n he ntrcio ocoe. h lbls n o o te rrws efr odifeen nsrutin. t hepysca lvl hee r te ale o te Rbis  trug 3 Tee ou bts ol teintrcto ocoe eg. 000fr oa, 10 orad ndsoon.   ot ta w wre be o ege h tae or yl 4 o istutins D, U, AN ad HFT ice hy l prfrm hesaeacio a ha ccl.Ths s nopimzain. www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html 1/5 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html   o e av te bgnnng o a otrl inte tte ahie Th nx stp s etrmnng ht ales h vrius atpthcotolsinas(lkeRgWit)shul tk a ec sat. ivn n ndrsadig o te atpah nd f he cios ha ned o ak pac a ech tte hi pocs is trihtorad.Le’ssar b etrmnngwht aue tecotrlsinas hul tk a ec sat:   CYCL1”: etchng a insructon an incemening he P (row cyce1” i the formentoned able)   e ae etrind efr tatte oloin atin tkepac drngths tte:   CYCLE Instruction Class   ADD, SUB, NSHIFT ORI LOAD STORE BP BZ BNZ 1 [IR] = Mem[ [PC] ] [PC] = [PC] + 1   it hi a gid e ow eerie he aus or l dtpah onrl igal chck h lcur o te aapth o ecl watechsina oe):   CWie  1àsic w d wn t wie C   itote C ddSl  1àwewnttous hePCsvauet div headreslieso mmoy emed  1àwewnttoredfrm eory emrte=  àw o otwihtowrt t mmry RLa =1 àe owat o rteth ale ed ro emryinoIR 1Sl=  àw d otcae ht et ea fo te eiserfie DRod  Xàweae otusn MR oitcol canewih o am 1RLad=  àw o otwihtochne egserR1an 2 thssina i otlitd n h dtaat iara ut t s onete t te epoar rgstrs 1 d 2 nd otrl weter ey od he lus ea fo te egser ie. e oldhaeusd  hr a i oud ae ee sf t cageths rgitesno. LU  0à w d ar wati te istinu t teAL a w an t alult P +1. LU  01 àe at hecosan 1a or eon AUinuttoclclaePC+ . LUp= 00àwewnttodoadiion FWie  0 àe o o an t wie nt te eise fle Nt tat hs ano b  snc w o ot ih o rte ndwits r ireerile. egn=  àw aeno witn itote egserfie LUuWrte=X àe o otcreifte emoar rgstr LUu i caged laWit =0à ened o eai tevaueo te lgs   CYCL2”: ecoing he istrctio andreaing rom he rgiser fle   e ae etrind efr tatte oloin atin tkepac drngths tte:   CYCLE Instruction Class   ADD, SUB, NSHIFT ORI LOAD STORE BP BZ BNZ 2 [R1] = RF[ [IR7..6] ] [R2] = RF[ [IR5..4] ]   it hi a gid e ow eerie he aus or l dtpah onrl igal chck h lcur o te aapth o ecl watechsina oe):   CWie  0àsic w d ntwat hng tePC ddSl  Xàwewllno b ccssn mmoy s ayadres sfie emed  0àwed nt an o ea ro mmry emrte=  àw o otwihtowrt t mmry RLa =0 àe ono wntt caneth IR 1Sl=  àw d ar watgtsredfrm h rgitr il, ewat h R fed ro teintrcio soedinIR DRod  Xàweae otusn MR oitcol canewih o am 1RLad=  àw o is t hagergite 1 ndR2 LU  Xà w d otcae ht s h frs npt oth AU. LU  XX àe ono crewatiste irtinutt te LU. LUp= XXàwed nt ar ha clultinth AUdos FWie  0àwed nt an o rieino h rgitr il. egn=  àw aeno witn itote egserfie LUuWrte=X àe o otcreifte emoar rgstr LUu i caged laWit =0à eai te lg ales   oniuig lngthselne w il edupwih  omleedecrpio o aldaapt cnto sgnl pr tae We hi nfrmtonweca owhaea omltefiit tae igrm sumnga orestl iplmnttin(Mor =otpts epn olyo te uret taevauead otaloonth npts helate tye scale eay):   www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html 2/5 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html   hi s hecmpet sae rastin igrm oror onrl int sat mcin. l tatrmansi asinig inr vlustostte,wrtigth sae rasiin abean te dsinigth crui a e oudan ohe inte taemahie.   n oalthr ae 4 tte. hs e ed  furbt ume t rpesnteahstte.   hesat tasiio tbe il av tecuret ttean nsrutonopod s npt. s upus twil av he ex tae n te ale tatte onrl igal ak drngthtstte(sgal lsedinie hesats n he reiusdigam.   hecntolwlllok sfolos: www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html 3/5 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html   t ceps h I3.0 inas rm hedtaat (rm heI rgitr)an tecuretsttea tisi ecoedi fur li­los.Eer ccl t rouesvaus orth onro igal hih resnttote atpth TePCrie inal ls ees otae nt ccun hevaus f  adZ.Thsiswh n ddtinl omiatrilcicutisnede.We oudhae rvieddifret tte freah rac dpedngonte aleso Zan .   er’ te ttetrnstontal (t nluesonyth nx sat ndno tecotrlsinasasth aterdont epn o tetrnstin bt ny n h crrntsat):   INUS UTUT CURNTSTTE I3.0 EX TAE 000(Ccl ) XXX 001 001(Ccl ) 000(oa) 10 lod yce3) 001 001(toe) 11 strecyl 3) 001 000(dd) 01 ad/sb/ad yce3) 001 010(ub) 010 001 100(an) 010 001 X11(ri) 10 or ccl ) 001 X11(hit) 01 shftcyl 3) 001 001(z) 00 bzcyle3) 001 101(nz) 00 bn ccl ) 001 101(pz) 11 bp ccl ) 000(ad/u/nndcyl 3) XXX 01 ad/sb/ad/hitcyle4) 001(sif yce ) XXX 01 ad/sb/ad/hitcyle4) 010(oi yle3) XXX 01 or ccl ) 011(ladccl 3) XXX 10 lod yce4) 010(sor yce ) XXX 00 net nsrcton) 011(b cce ) XXX 000 100(b cce ) XXX 000 101(bz yle3) XXX 000 100(ad/u/nndshf ccl ) XXX 000 101(oi yle4) XXX 10 or ccl ) 110(ladccl 4) XXX 000 111(oi yle5) XXX 000 110(uusd) XXX 00 gotostt 0) 111(uusd) XXX 000   heeweusdth fllwngenoin o taes: hi intesat mchn cn edeige wthth etodlgis ecrbe drngth igta esgncure.Wehveto ic  fipfop(D JK R o ) ndtendeiv hefucios ht il die hefipflpinut o ha te peiie tasiios il ape.   n rertodsin hecrcittatgeeats hecntolsgnlsw wllhaetodrwth tuh abe Te npthee il e hecrrntstt (ndte  adN it) n te upus r tos seifedi te ttedigamtht e reete erie. o,or ruhtalewllhae  inlelnepe tae ndZN omiatonad s upus il ist llcntolsgnls. ftrths aleisfild n eigin hecorepndngcrciti sraghfrwrd hi i omintril irut www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html 4/5 26/04/2012 www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html ene h mthdooie yu ernd urn te igtl esgncure ppy.   www.eecg.toronto.edu/~moshovos/ECE243-2012/l21-multicycle-control.html 5/5 26/04/2012 The Processor’s Interface to Memory and Devices Th roeso’sInerae o eor adDeics Spig 008 AnrasMohvos   Intisletrewewildicusth pyicl ntrac o heprcssr o eor addeics. Inpevou ecurs ehae en hepogamersviw fmeor nddeics Hrew’l se aneamleo hw hencesaysupotisimleete i arwae W wlltenexlinhow meoy ndohe dvie cn econetd o hi ntrfc. ypcll, oul se h trm “etrnl u” se t efr oth poesors nerac.Ths saprorit msto te ie sic mstsstmsdoided s abu orth etrnl nerac.A usispyscal ase f wie tati cnnctdtoal evce ircty.Mden ih­eromacesytmsma sea difret hsialinefae ht ele o pin­o­oitconeton ista, owvr, cocptaly tes itrfce resiiar.   Wewlldecib a itrfcefr heNOSIIprcssr.NOSIIi asot rceso o hi s no heonyposileitefae hwee, ha w esrieisrersetaiv f thr inefaesad f ha roiddbyth IO I vnor Sne evcs remeoy ape, he saephsia itefaeisusdbyboh Te ntrac nes o upot oasan soes tat ismmoy edsan wies Teinerae e redscibn asospprt dferntdtayps: itspprt eas ndwits fa yt,tw bte r ou yts crrspndn t tebye, hafwod n wrddaayps fNIS I. eclltatth ntrfc i tato mmoy Hnc t ned t spor LAD ndSTRS.   Hees hepysca itrfce:   Hees ha hevaiossinasdo:   Sgal Acoym Wdth Tye untin Adess A3­2 30 Ouput peifesawod dres oacess sig heBtenal sgnl w cn ccssan omintonofte ou bts itinth or. oe n hs atr. DtOut Do1Do0 32 Ouput onai tedaa hn eromig a rie,onythsebte ta ae nald iaByeEalear ald DtIn Di1Di0 32 Inut onai tedaa hn eromig  ra, nl tos yts ht reeabedvia ytEnbl reexete t e ald www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter1/6e.html 26/04/2012 The Processor’s Interface to Memory and Devices BtEnble BE­E3 4 Ouput peif wih ytswihi hewod re Ra/!rie R/W 1 Ouput  man d  rad  man o  wite MserEnbe ME 1 Ouput  man aloterotptsae ald,0 eas gnr al tersinls Akowede ACK 1 Inut oraly hs s .Th dvcemeory ha i acssd ssupoe t st hs o  ocei hs oplte hereuet. ha i, ne t a wite te ata orwrte,oroneitha laedthe igt at n i o rad. Itrrpt IR3­IQ0 32 Inut ntrrptRqustsgnls  dvie es Rqest hi t 1t rqus a itrrpt.   Hees hesqunc o cton ha tk pac t eror  rad(oa).Intaly, MatrEabeis0 ndctig ht o cio i tkngplc. t hs oit C i as 0 Ten th olown hppnsi ode:   REDLOD EUECE:   Prcssr: 1 Pepr al ecsar b etin he t teaprorat vles Te inas ht us e st r: a ddess b ytEnbl fo tetie engplas gnrehw heear st,w wlldscss hi sorl). c /!W 2 St Eto1 Deie r eory 3 Acesth secfedbye ad lcethm nth DtInlies 4 St C t 1 Prcssr 5 Raddtaofth atInlnes 6 St E0 noe ht heNOSIIitefae easersths aie –moeonthslaer) Deie r eory 7 St C t 0   WRT/SOR EQENE:   Prcssr: 8 Pepr al ecsar b etin he t teaprorat vles Te inas ht us e st r: a ddess b atOut c ytEnbl fo tetie engplas gnrehw heear st,w wlldscss hi sorl). d /!W 9 St Eto1 Deie r eory 1.Udaeth secfedmeoy octon wthte ale gve n atOut 1.St C t 1 Prcssr 1.St E0 noe ht heNOSIIitefae easersths aie –moeonthslaer) Deie r eory 1.St C t 0   Noie ha t heen,aswihreds e rebaktoth niia tae f E=  adAC =0.   Th ytEnbe igal ndth seof3­bt ddeses   Ou ntrfc i cpal o tasfrrn u t 3 it praces.Hoevr,nt llNOSII acese ae32bi wd. n atiulr BcaseNOSIIspprt yt ad af­or ccsss www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter2/6e.html 26/04/2012 The Processor’s Interface to Memory and Devices inadiio o or acsss.T sppr tes w seth ytEnbe igal ndonyth upr 30btsofte ddes ccssd Al drese o urinefae r wrdalged Ta i, he tw eat­iniicntbtsthtar oite ae mlid obe0.Ter ae or ytswihin eahwod.EchByeEaleliecorepnd t oeofths bte.BE crrsons oth bte thtisatte am ades tewod trt, hieBE i  bte ftr ha.Hee r acope ofeamle o laif higs llnubrsar i inry   Oeaton 31A2 BE­B0 D31D0 Exlaaion LA.WRD1000 …000 111 Al ut e e by Aces ou bts tatigfrm mmoy adres1000 LA.HOR 000 …000 001 D0­i5 us e et Aces wobye sarin rom b mmry adres1000 LA.HOR 000 …000 110 D31D16mutbeset ces wobye sarin rom b mmry adres1010 LA.BTE1000 …000 001 D0­i mstb st Aces hebyeatadres1000 b mmry LA.BTE1001 …000 000 D15D8 us e et Aces hebyeatadres1001 b mmry LA.BTE1010 …000 010 D23D16mutbeset ces hebyeatadres1010 b mmry LA.BTE1011 …000 100 D31D24mutbeset ces hebyeatadres1001 b mmry LA.BTE1010 …010 010 D23D16mutbeset ces hebyeatadres1110 b mmry LA.BTE1101 …011 000 D15D8 us e et Aces hebyeatadres1101 b mmry     Th ol o heMate naleSgnl   Beiesben aletosy o eor “onoin” Eplysaoteripotat oe.Inte phsca wrd t akstie o u t etp ohrntvaus n l sgnls orexmle, asue e at o erom n eueceaSTREBYE0x0,00000 nda TOEBYE x1, 0xfff. tisprctcll ipssbl o hageal igas nsataeosl.So i oig rm adrss0x000 t 0ffff l pssbe inrynmbrsmy emoarlyaper bease difret inas aycane tdifeet ats) itou heME hemeor oud e cnfsd an isntrre te eon soe.WihME w cnseMEt zroi btwente wosors, watsufiinttie o te eon soe alest aperonth at ad dres inas nd thnse M=. hi wymeor emin blviust tmprriy nonisen ales.   Th ol o heAcnoldg Sgal   Meoy evcs ndI/ evce anhaedifeen atnce. o lowandeie o eaythe prcssr slog s tisneesay h NOSIIdsinesinlue te CKsgnl.Adeice kep AK o0 hie tispefrmngte eqese oerton I he stsAK o  o otfy th roeso tatth eqes ascopetd.Beasethsisa eic gneaedsinl difret eics andla teprcesr y  dferntaoutso tme Frexmpe i al deiesar s as a heprcssr’ ntrfcei, he e ansmpy onet CKt M. hs wa llreust ae cnolegd mmdatly.   Sycroou s.Asncrnos neracs   Th IO I ntrfcei sncrnos.Tatis i ddtintoth igal son,anetr cok sinl s rviedbyte roeso. l sgnlsae amld n h rsig de f hs lok. Heear tmngdigrm fr eor ras ndwrts noetht nths iarm usnbl = MatrEabe WitDaaDo adRedDt=D):   www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter3/6e.html 26/04/2012 The Processor’s Interface to Memory and Devices   Thsisno ru: heNOSIIdsinesopimze orspe b asrtngMatrEabeony t th egnnn o echrqustad nl oron cce.Thswa, h pocssrdos o nedto deaset ateEnbl ftr h dvierepodswthanAK.   So er aeth atulred n wit eqenes:   REDLOD EUECE:   Prcssr: 1 Pepr al ecsar b etin he t teaprorat vles Te inas ht us e st r: a ddess b ytEnbl fo tetie engplas gnrehw heear st,w wlldscss hi sorl). c /!W 2 St Eto1 Deie r eory 3 Acesth secfedbye ad lcethm nth DtInlies 4 St C t 1fo necyle Prcssr 5 Raddtaofth atInlne. hs apen n hersig de he AKis1 6 St Eto0   WRT/SOR EQENE:   Prcssr: 7 Pepr al ecsar b etin he t teaprorat vles Te inas ht us e st r: a ddess b atOut c ytEnbl fo tetie engplas gnrehw heear st,w wlldscss hi sorl). d /!W 8 St Eto1 Deie r eory www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter4/6e.html 26/04/2012 The Processor’s Interface to Memory and Devices 9 Udaeth secfedmeoy octon wthte ale gve n atOut 1.St C t 1 1.St Eto0   Th riinlseuece e esrbe cnbeusd ihot  lok.Schaninefae s asnhrnosasitdosno uea lok.   Spi Tanatin ntracs   Th IO I ntrfcecn upot nl neoustnin rqes a nygienpin i im. hs isaprprae orth aretaplcain ine IS I sno ahghpefomnc dsgn In moen ig­eroranesytes hwee, emryad evcs retpialy  otslwr han th roeso ad tsitefae(te nerac tpcalyrnsonyata ratonofte PUs clc).Reevig heitefaefo teduatono asige eqet eslt n ow utlzaio.Ifth poesori cpal o prfrin mlipe praios,w cn nted se a pittrnacio itrfce hee,te roeso iitaesa euet y rviin he aprprat nfrmtin(eg. ddes,byeeabe rw n dtai ncesay ad h dvies cois hi nfrmtinloaly Te neracs sthn sd o ntiteote rquss. Evnualy he te eic i eay orepod,i snd herepns bckt te rceso. Eahreuetistage o ha t anb mtcedwthit esone Frterdtalso tis cocptar eyndth coe fths ors.   Mutplxigdaa_n n dtaot   Inor reein dsintw sprae es f 2 ieseahwee sd orredngan or wrtngdaafrm ndt mmoyrepetvey.Ofe tme,th nmerofpisavilbe er chpisliiedbycot(aineraedcrcitbeoesinrasngyan sgnfcatl ore exesie h mrepisituss. ccrinly dsgnrsote tytofid as o euc te nubr f xeralconcton pis) n urmeoy e old“mlipex tedaa_nand daaou sgal. hi oe ntvilaeth bhaira mdl s tdos otspprt siutaeosredsan ries e anolyred rwrtebt otbthatth am tm.   On ayofmltplxigthsewre i iath ueoftr­tae ufes.Th ymolcnnctos fo  ti­ttebufe ndit ruh alear a olow:   Whnth eipu i zr te nan ottemial reasi teyae omleey isonete. Usn 3 tisttebufrson erdaabi w cnmutilx hedtainan at_otsinas asfllws: www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter5/6e.html 26/04/2012 The Processor’s Interface to Memory and Devices Onywhn edoa ea R/’   ad E= ),th ristt bffr ae nald ndmmoy “dies (..,plce  vlu)onth at wre.Inal thr aes te aa irsbeav s inus o hy anbefeey e t ayvauedeied(ie, he oig  wie).   Usn tismthdoog e anbil abs hee utiledviesae onece t tesae et ofwre adbyaproratlyeabin her utus e a mkesretht ny nedvie s “diin” ie. pacn avau) n h bs ndohes oe r ay)ar rain i.Asa sienoe,peae ee n in ha tee usesd nt cleveywel riail a  rsut oficrasdpaasti apciaceonte irs.   Mutpl MserIneraes   Th IO I ntrfcehs nl ne“mser, ha s  pry ha anintit rquss.Tht iste roeso. orhghr efomac, os mdrnsytmsimlmet n nerac ha cn suprtmutpl mstr. n uh n nerac adtina igal reprvie s ta sme ote prt e..,anIO evc scha adik otrllr cn epoarlybcoe h bs matr.Thsalow dvce t omuncteamngtthm n wthmmoy itot roesor inevetin I scha itefceth ddes adDaaOtliesae otalas rie b te prcssr.Te roeso uesti­taeconetin t te s ta ohe dvce cndrve vaus n hm s eee. xtasinasar povdd o ht  dvceca rqes t ecmea matr,an o elnqih onrl ac o heprcssr. www.eecg.toronto.edu/~moshovos/ECE243-2012/lec24-external-inter6/6e.html 26/04/2012 Lecture 2 ECE243 Spring 2008, revised Spring 2010 Andreas Moshovos   Attaching Devices to the Processor’s Memory Interface   In this lecture we will discuss an implementation of the parallel interface (PIT) and how it can be connected to the processor’s memory interface. Recall that all devices in NIOS II are memory mapped. That is, they appear as part of the memory address space and the processor can access them using regular loads and stores.   Recall that the PIT interface presents a programming interface that consists of two words in memory. For port JP1A the two registers are:   1.The DATA register (DR) at address 0x10000060 2.The DIRECTION register (DIR) at address 0x10000060+4 = 0x10000060   Address WORD   0x10000060 DR Data Register 0x10000064 DIR Direction Register   The PIT provides 32 connections to the outside world that can be configured, independently to act as inputs or outputs. The direction of each connection is controlled by the DIR. The DIR has 8 bits each corresponding to one of the outside connections. Setting a DIR bit to 1 makes the connection an output, i.e., the NIOS II sets the value, while setting a DIR bit to 0 makes the connection an input, i.e., an outside source is supposed to set a value which can be read by NIOS II. The DR register can be used to either read or set the values on the connections.   Let us review how the programmer accesses the PIT. The following example code, sets the upper 16 bits as outputs, then reads the value of all eight connections and finally sets the upper four bits to 1:           movia r8, 0x10000060       movia r9, 0xFFFF0000       stwio r9, 4(r8)   # set the upper four connection to be outputs       ldwio r10, 0(r8)  # read the values on the PIT connections       stwio r9, 0(r8)   # set the upper four connections to 1     In time, NIOS II will perform first a memory write at address 0x10000064 writing the value 0xFFFF0000, then a memory read from address 0x10000060, and finally a memory write at address 0x10000060 writing again the value 0xFFFF0000. The PIT will have to respond to all these requests.   Having seen how to program the PIT we can now discuss an implementation. This is not necessarily how it is implemented on the DE2. At the physical level the PIT presents the following signals:   1.Data In: a set of 32 wires that are used for supplying the value to written to registers DIR or DR. 2.Data Out: another set of 32 wires to read the value from the DR. 3.A DIR_write signal: When this is 1 the value on the DataIn wires is written into the DDR 4.A DR_write signal: When this is 1 the value on the DataIn wires is written into the DR 5.A DR_read signal: When this is 1 the DataOut Signals take the values that currently appear on the external port connections. In all other cases, the DataOut are left “floating”, that is, the PIT does not place any voltage on these wires. 6.External Port: a set of 32 wires that provide the external connections.   What appears to software as a single register DR is implemented using separate elements for input and output. The DRO latch implements the output portion, while a tri­state buffer is used for the input portion. Here’s the diagram of one PIT bit:   www.eecg.toronto.edu/~moshovos/ECE243-2012/lec25-device-interface.html 1/6 26/04/2012 Lecture 2   The DRO and DIR boxes are latches. The DRO implements the output portion of the DR register, while DIR implements the DIR register. We can change their value using the Data (D) and Write signals. The DIR latch output drives a tri­state driver whose output is connected to the external connection. If DIR is 1 then the tri­state buffer behaves like a buffer and passes the value of the DOR latch to the external connection. If DIR is 0 then the tri­state buffer is placed in the off state which can be thought as an open switch (no connection). In this case, an external source will determine what the value is on the external connection wire. The resistor is there to help when DRO wants to drive a 1 (high voltage) since the technology used is not very “strong” when driving a one. The resistor also sets the external connection to 1 when no one is driving it.   The DR register is implemented by the elements shown inside the red­dotted box. If DRread becomes 1 then the upper tri­ state buffer is activated and passes the value on the external connection to the data_out wire. If DRwrite becomes 1, then the value provided on the data_in wire is written in the DOR bit. Provided that the DIR bit is also 1 this value appears on the external connection.   What we have described is just one of the 8 slices used by the PIT. The 8 slices are connected together so that they share the Write and Read lines and so that their data lines collectively form the 8­bit data interface of the PIT.   Connecting the PIT to the NIOS II Memory Interface   Let’s us now discuss how we can connect the PIT to the NIOS II processor’s memory interface. Here’s the interface as we discussed it in the previous lecture:   To connect the PIT to the memory interface described previously, we first connect the PIT data_in and data_out lines to the lower byte (8 bits) of the NIOS II data_out and data_in respectively. This will allow us to access the three PIT elements (DIR, DR for write and DR for read) by using load and store memory accesses. Then we need to activate the corresponding PIT elements depending on the address accessed. We need to detect the following combinations on the address lines: 0xFF1110 for read and write from/to the DR, and 0xFF1114 for write only (writes to DIR).   Here are the functions we need to implement:   DIRwrite = (address == 0x10000064) and (R/!W == 0) and (ByteEnable0 == 1) and (ByteEnable1 == 1) and (ByteEnable2 == 1) www.eecg.toronto.edu/~moshovos/ECE243-2012/lec25-device-interface.html 2/6 26/04/2012 Lecture 2 and (ByteEnable3 == 1) and (ME == 1) DRread =(address == 0x10000060) and (R/!W == 1) and (ByteEnable0 == 1) and (ByteEnable1 == 1) and (ByteEnable2 == 1) and (ByteEnable3 == 1) and (ME == 1) DRwrite =(address == 0x10000060) and (R/!W == 0) and (ByteEnable0 == 1) and (ByteEnable1 == 1) and (ByteEnable2 == 1) and (ByteEnable3 == 1) and (ME == 1)   We break these problems into two sub­problems: first detect the address on the address lines, and then detect whether the processor requests a word, read or a write.   Detecting the Address   This process is called address decoding. In the simplest to describe implementation we use a 30 input AND gate for detecting the addresses. We only need a 30­input AND gate since NIOS II omits the 2 least significant bits of addresses (it uses the ByteEnable signals in their place). Let’s see how we decode the address 0x10000060. Using a 30­bit input here’s how we can detect this combination on the address lines: (1) Write the number in binary. (2) For every digit that is 1 connect the corresponding wire directly to the AND gate. (3)For every digit that is 0, connect the corresponding wire first to inverter and then connect the output of the inverted to the AND gate.   Here’s the ADDRESS DECODING part for DR, it generates the signal DRenable that tells us that the processor is either reading or writing DR (i.e., memory address 0x10000060):       The DREnable signal can now be combined with R/!W, ByteEnable0­ByteEnable3, and ME to generate the DRread and DRwrite signals:   This circuit only activates the DR register for reading or write when the CPU performs a ldw or a stw. That is, all four byte enable signals must be active.   Here’s the address decoding and signal generation circuit for DIRwrite:   www.eecg.toronto.edu/~moshovos/ECE243-2012/lec25-device-interface.html 3/6 26/04/2012 Lecture 2   In total we used two 30­input AND gates, three 4­input AND gates (the gate with BEx as inputs can be shared), plus several inverters. Each of the two 30­input AND gates is connected to all 30 address signals. By using inverters appropriately we can detect that the address being accessed is one of those mapped to DR, and DIR. We start by looking at the binary representation of these addresses and put an inverter for those address bits that are zero in the pattern we are interested in. After detecting the address, we then used a 4­input AND gate to detect accordingly whether an access is being made (ME == 1 – ME is Master Enable), whether it is a read or a write, and whether this is a word access.   This implementation is easy to understand, however, it’s not necessarily the most efficient. This topic is beyond the scope of this lecture, however, you are encouraged to think of ways of reducing the number of components needed to do address decoding.       Here’s the complete design: www.eecg.toronto.edu/~moshovos/ECE243-2012/lec25-device-interface.html 4/6 26/04/2012 Lecture 2 Each bit cell (there are eight of them) is as shown earlier). The boxes labeled “match some hex value” are the 32­bit input AND gates we described earlier.   Generating the ACK signal   As described the NIOS II memory interface requires that the device generates an ACK signal when the request is completed. In out PIT design this is straightforward if we assume that the response is ready in a single cycle. The ACK signal can then be the OR of DRwrite, DRread, or DIRwrite. Here’s the circuit for it:     Note that we did not drive the ACK signal directly. We instead used a tri­state buffer to selectively drive a 1 on it. This is because the ACK signal is shared by all devices and memory. So there are many potential sources for this signal. At any given point of time at most one device should be driving this signal. By using a tri­state buffer at each connection we make sure that each device either drives the ACK to 1, or leaves the ACK line floating to be set by another device.       www.eecg.toronto.edu/~moshovos/ECE243-2012/lec25-device-interface.html
More Less

Related notes for ECE385H1

Log In


OR

Join OneClass

Access over 10 million pages of study
documents for 1.3 million courses.

Sign up

Join to view


OR

By registering, I agree to the Terms and Privacy Policies
Already have an account?
Just a few more details

So we can recommend you notes for your school.

Reset Password

Please enter below the email address you registered with and we will send you a link to reset your password.

Add your courses

Get notes from the top students in your class.


Submit