Professional Documents
Culture Documents
I-8051 (1980) Cl: beptett rendszerekben val alkalmazs. F szempont: olcssg (ma mr 10-15 ), sokoldal alkalmazhatsg. A memrival, be- s kivitellel egytt egyetlen lapkra integrlt szmtgp. Mikrovezrl. venknt 8 millird mikrovezrlt adnak el, a el legnpszerbb az MCS-51-es csald. A csald tagjai nagyon hasonlk.
I-8051 (1980) 40 multiplexelt lb standard tokban kerl forgalomba. 60 000 tranzisztor. 4 KB ROM, max. 64 KB kls memria, 128 B RAM. 16 cmvezetk. 8 bites adat sn. 32 I/O vonal 4 db 8 bites csoportba rendezve, ezek mindegyike hozzkthet nyomgombhoz, nyomgombhoz kapcsolhoz, LED-hez, Idztk. Pl. Digitlis ra: nyomgombok, kapcsolk, kijelz.
Mt: Architektrk
8. elads
Mt: Architektrk
8. elads
8051
Address Data RD# olvas a memribl WR# r a memriba Address Latch Enable: kls memria esetn: a snen rvnyes a cm Program Store ENable: g olvass a programot trol memribl External Access (az rtke lland): (1) a 0-4095 cmek a bels, (0) a kls memrira vonatkoznak
3
8051
A kt idzt kls ramkrrl is kaphat jelet (szmll) Megszaktsok TXD Transmitted Data, tovbbtott adat RXD Received Data, rkezett adat ReSeT Port 0-3 32 (4*8) bites I/O soros vonal
RAM
ROM
F sn
RAM ADDR ROM ADDR
Loklis sn
RAM
RAM ADDR
ALU
PSW
Mt: Architektrk
ALU
PSW
Mt: Architektrk
Az I-8051 CPU mikroarchitektrja (4.50. bra) RAM 128 bjt A regiszterek a RAM-ban vannak RAM ADDRess a RAM cmzshez Instruction Register Stack Pointer B szorzsnl, osztsnl van szerepe, ideiglenes trolsra is hasznlhat ACCumulator: f aritmetikai regiszter, a legtbb szmts eredmnye itt keletkezik F sn TMP1 TMP2 az ALU bemenetei, az eredmny a f snrl akrmelyik regiszterbe kerlhet Program Status Word
8. elads 6
9. elads
Az I-8051 CPU mikroarchitektrja ROM 4 KB bels, max. 64 KB kls 16 bites regiszterek: ROM ADDRess BUFFER PC, PC nvel PC-t berva, majd kiolvasva PC nveldik DPTR Idzt 0 2 Port 0 3
Mt: Architektrk 8. elads
ROM
ROM ADDR
Loklis sn
Az I-8051 CPU mikroarchitektrja (4.50. bra) A legtbb utasts egy raciklust ignyel. A ciklus hat llapota: 1. Az utasts a ROM-bl a fsnre s IR-be kerl. 2. Dekdols, PC nvelse. 3. Operandusok elksztse. 4. Egyik operandus a fsnre, onnan ltalban TMP1-be, a msik ACC-bl TMP2-be kerl. 5. Az ALU vgrehajtja a mveletet. 6. Az ALU kimenete a fsnre kerl, ROM ADDR felkszl a kvetkez utasts olvassra.
Mt: Architektrk 8. elads 8
BUFFER PC nvel PC DPTR Idzt 0 Idzt 1 Idzt 2 Port 0 Port 1 Port 2 Port 3
7
sszehasonlts Pentium 4 CISC gp egy CISC utasts tbb RISC mikroutasts UltraSPARC III RISC gp I 8051 I-8051 inkbb RISC, mint CISC gp
Utastsrendszer-architektra szintje (ISA) Amit a fordt program ksztjnek tudnia kell: memriamodell, regiszterek, adattpusok, utastsok. A hardver s szoftver hatrn helyezkedik el, 5.1 bra.
FORTRAN program C program
picoJava II verem gp, sok memria hivatkozs tbb CISC utasts egy RISC mikroutasts
Mt: Architektrk 8. elads 9
Fordts szoftver ISA szint hardver ISA szint vgrehajtsa microprogram vagy hardver ltal Hardver
Az ISA szint tervezsi szempontjai Hossz tv: ksbb is j legyen az architektra, Rvid tv: addig is piacon kell maradni. Rvidebb utastsok: kevesebb helyet foglalnak el, gyorsabban betlthetk. Hosszabb utastsok: tbb lehetsges mveleti kd, nagyobb memria cmezhet. bb i h t Bjt cmzs: hatkonyabb szveg feldolgozsnl, Sz cmzs: nagyobb memria cmezhet.
Mt: Architektrk 8. elads 11
Utastsok szintje (ISA) A jsg kt kritriuma: hatkony hardver megvalstsi lehetsg, j mdium a fordtknak. Tovbbfejlesztseknl gyelni kell a kompatibilitsra! Nyilvnos definci: van: SPARC, JVM (tervezk); nincs: Pentium 4 (gyrtk). kernelmd
Mt: Architektrk
(user) felhasznli md
8. elads 12
9. elads
Memria modellek Nha (pl. 8051) kln memria az adatoknak s az utastsoknak (Harvard-architektra, nem ugyanaz, mint az osztott gyorsttr!).
Memria modellek ASCII kd 7 bit + parits Byte (bjt) Sz: 4 vagy 8 byte. Igazts (alignment), 5.2. bra: hatkonyabb, de problma a kompatibilits (a Pentium 4-nek kt ciklusra is szksge lehet egy sz beolvasshoz).
cm 0 8 16 24 8 bjt cm 0 8 16 24 8 bjt
Memria modellek Memria szemantika: STORE A -t kzvetlenl kvet LOAD A mit ad vissza? A memria mveletek vgrehajtsa: kttt sorrendben, definilatlan sorrendben (ez a trend, mert hardver szinten egyszerbb s gyorsabb). A hardver segtsget nyjthat: SYNC utasts: befejeztet minden megkezdett memria mveletet, fggsg esetn a hardver vr.
Mt: Architektrk 8. elads 15
Regiszterek ISA-szinten a mikroszint nem minden regisztere ltszik (TOS, MAR), de van kzs is (PC, SP). Specilis regiszterek: PC, SP, ltalnos cl regiszterek: a gyakran hasznlt adatok gyors elrsre. J, ha szimmetrikusak: fordtk, konvencik. RISC gpen ltalban legalbb 32 ltalnos cl. Kernelmdban tovbbiak: gyorsttr vezrls, memria vdelem, PSW (Program Status Word): az eredmny negatv, nulla, ... md, prioritsszint, megszakts-llapot, ...
Mt: Architektrk 8. elads 16
Utastskszlet LOAD, STORE, MOVE, aritmetikai, logikai, felttlen, feltteles elgaz utastsok,
Pentium 4 Nagyon sok eld (kompatibilits!), a fontosabbak: 4004: 4 bites, 8080: 8 bites, 8086, 8088: 16 bites, 8 bites adat sn. 80286: 24 bites (nem lineris) cmtartomny (16 K darab 64 KB-os szegmens). 80386: IA-32 architektra, az Intel els 32 bites gpe, lnyegben az sszes ksbbi is ezt hasznlja. Pentium II tl MMX utastsok.
17 Mt: Architektrk 10. elads 18
Mt: Architektrk
8. elads
9. elads
A Pentium 4 zemmdjai real (vals): az sszes 8088 utni fejlesztst kikapcsolja (valdi 8088-knt viselkedik). Hibnl a gp egyszeren sszeomlik, lefagy. virtulis 8086: a 8088-as programok vdett mdban futnak (ha WINDOWS-bl indtjuk az MS-DOS-t, s ha abban hiba trtnik, akkor nem fagy le hanem trtnik le, visszaadja a vezrlst a WINDOWS-nak). vdett: valdi Pentium 4. 4 vdelmi szint (PSW): 0: kernelmd (opercis r.), 1, 2: ritkn hasznlt, 3: felhasznli md.
Mt: Architektrk 10. elads 19
Memriaszervezs: 16 K db szegmens lehetsges, de a WINDOWS-ok s UNIX is csak 1 szegmenst tmogatnak, s ennek is egy rszt az opercis rendszer foglalja el, minden szegmensen bell a cmtartomny: 0 - 232-1 Little endian trolsi md: az alacsonyabb cmen van az alacsonyabb helyrtk bjt. l bb h l tk bjt
Mt: Architektrk
10. elads
20
Regiszterek (5.3. bra): ESI, EDI (mutatk trolsra, szveg kezelsre), EBP (keretmutat, verem kezelsre), ESP (verem mutat), EIP (utasts szmll), ( ), EFLAGS (PSW), CS, SS, DS, ES, FS, GS (16 bites regiszterek. A kompatibilitst biztostjk a rgebbi gpekkel. Mivel a Windows, Unix csak egy cmtartomnyt hasznl, ezekre csak a visszafel kompatibilits miatt van szksg).
Mt: Architektrk 10. elads 22
UltraSPARC III SPARC (1987) mg 32, a Version 9 mr 64 bites architektra, az UltraSPARC ezen alapul. Memriaszervezs: 64 bites (lineris) cmtartomny (jelenleg maximum 44 bit hasznlhat). Big endian, de little endian is bellthat. Regiszterek: R i t k 32 ltalnos (5.4. bra) 64 bites, a hasznlatuk rszben konvencin, rszben a hardveren alapul), 32 lebegpontos (32 vagy 64 bites, de lehetsges kt regiszterben egy 128 bites szmot trolni).
Mt: Architektrk 10. elads 23
ltalnos regiszterek R0-R7 (G0-G7) Globlis vltozk: minden eljrs hasznlhatja, G0 huzalozott 0, minden trols eredmnytelen. R8-R15 (O0-O7,): Kimen paramterek, de R14 (O6) = SP: verem mutat O7 csak ideiglenes trolsra hasznlhat. R16-R23 (L0-L7) Loklis regiszterek R24-R31 (I0-I7) Bemen paramterek, de R30 (I6) = FP az aktulis veremkeret mutatja, R31: visszatrsi cm.
Mt: Architektrk 10. elads 24
9. elads
CWP (Current Window Pointer, 5.5. bra) mutatja az aktulis regiszter ablakot (tbb regiszter kszlet ltezik, de mindig csak egy ltszik). Ha kifogy a regiszter kszlet, memriba ments,
Globlis
O SP
Load/store architektra: csak ezek az utastsok fordulhatnak a memrihoz. A tbbi utasts operandusa regiszterben vagy az utastsban van. Az eredmny is regiszterbe kerl.
CWP = 7
O R14=SP L
Kimen Loklis
tlapols
I R30=FP
R31=visszatrsi cm
Mt: Architektrk
10. elads
26
5.6. bra. A 8051 memria szervezse Kln cmtartomny program s adat memria.
4095 Program memria (ROM) 0 127 Munkaterlet 48 32 0
Mt: Architektrk 10. elads 27
Vannak lapkn kvli bvtsi lehetsgek. Van nagyobb (8052) s programozhat (8751 s 8752) rokona (ROM helyett EPROM). 8 regiszter: R0, , R7. A i regiszterek a memriban vannak. 4 regiszter kszlete van, de egyszerre csak egy hasznlhat.
5.6. bra. A 8051 memria szervezse, f regiszterei PSW: Carry, Auxiliary carry, RegisterS, Overflow, Parity A PSW regiszter RS mezeje mondja meg, hogy melyik regiszterkszlet az aktulis. Bit-cmezhet memria (32-47. bjt): cmzsk: 0-127 Bit utastsok: bellts, trls, S, VAGY, tesztels.
127 Munkaterlet 48 32 0
Mt: Architektrk 10. elads
C A EA
RS
P PSW
E2 ES E1 X1 E0 X0 IE E2 ES E1 X1 E0 X0 IP
IE (Interrupt Enable): EA= 1: nincs tiltva a megszakts, 0: mind tiltva van, ES=1: megszakts engedlyezve a soros vonalon, 0: tiltva E0-2=1: a 0-2 idzt csatorna engedlyezve, 0: tiltva. Az engedlyezett szmllk egyszerre futhatnak, s ezek megszaktst vlthatnak ki. X0-1=1: kls eszkz megszakts engedlyezve, 0: tiltva IP (Interrupt Priority): 0 (alacsony), 1 (magas). Az alacsonyabb szint megszaktst megszakthatja egy magasabb szint.
Mt: Architektrk
TCON: a 0. s 1. idztt vezrli (ezek a f idztk). O0-1: bell az idzt tlcsordulsakor. R0-1: ezzel ki- s bekapcsolhat az idzt futsa. A tbbi bit az idzt l- vagy szintvezrlsvel kapcsolatos. TMOD: a f idztk zemmdjt hatrozza meg 8, 13 vagy 16 bites, valdi idzt vagy szmll, hardver jelek szintje.
C A EA RS O P PSW E2 ES E1 X1 E0 X0 IE E2 ES E1 X1 E0 X0 IP O1 R1 O0 R0 E1 X1 E0 X0 TCON 1. idzt 2. idzt 8 bit
Mt: Architektrk 10. elads
C A EA
RS
P PSW
E2 ES E1 X1 E0 X0 IE E2 ES E1 X1 E0 X0 IP
TMOD
30
10. elads
9. elads
Az eddig emltett regiszterek s mg nhny specilis regiszter (ACC, B/K portok, ) a 128-255 cmtartomnyban van. Pl. ACC a 240-en. A 8052 valdi memrit tartalmaz a 128-255 tartomnyban, a specilis regiszterek cme tfed a memrival. Direkt cmzssel a specilis regisztereket, Indirekt cmzssel a RAM-ot rhetjk el.
Mt: Architektrk
10. elads
31
Mt: Architektrk
A mveleti kd kiterjesztse k bites mveleti kd esetn 2k klnbz utasts lehet, n bites cmrsznl 2n memria cmezhet, fix utasts hossz esetn egyik csak a msik rovsra nvelhet (5.12. bra). 15 14 13 12 11 10 9 mv. kd 1. cm 8 7 6 5 4 3 2 1 0
2. cm
3. cm
Lehetsgek: fix utastshossz: rvidebb kd mellett hosszabb operandus rsz, minimlis tlagos utastshossz: a gyakori kdok rvidek, a ritkn hasznltak hosszabbak.
Mt: Architektrk 10. elads 33
Az 1111 kdot nem hasznltuk ki 3 cmes utastsnak (menekl kd), s ez lehetv teszi, hogy tovbbi igaz, nem 3 cmes utastsokat adjunk meg. 1111 1110 s 1111 1111 is menekl kd.
Mt: Architektrk 10. elads 34
A mveleti kd kiterjesztse
16 bit 16 bit 1111 1110 0000 zzzz 1111 1111 1111 1111 1110 0001 zzzz 1111 1111 1111 1111 1110 0010 zzzz 1111 1111 1111 . 16 bites . . mveleti . . kd . 12 bites 1111 1110 1110 zzzz 31 db 1111 1111 1111 mveleti 1111 1110 1111 zzzz 1 cmes 1111 1111 1111 1111 1111 0000 zzzz utasts kd 1111 1111 1111 1111 1111 0001 zzzz . . . 1111 1111 1101 zzzz 1111 1111 1110 zzzz 0000 0001 0010 16 db 0 cmes utasts 1101 1110 1111
Minden utasts tartalmaz mveleti kdot. Ezen kvl tartalmazhat az operandusokra, eredmnyre vonatkoz informcit. Utasts tpusok: regiszter-memria utastsok: a regiszterek s a memria kztti adatforgalom (betlts, trols). Ilyenkor egy regiszter s egy memria cm megadsa szksges a cmrszen. d k regiszter-regiszter utastsok: sszeads, kivons, Az eredmny is regiszterben keletkezik. Ilyenkor hrom regiszter megadsa szksges a cmrszen.
Mt: Architektrk 10. elads 36
9. elads
Cmzsi mdszerek Hrom cm: cl = forrs1 + forrs2. A memria sok rekeszt tartalmaz, de csak kevs regiszter van. Egy regiszter nhny bittel cmezhet. Regiszterek hasznlata rvidti a cmeket, de nyjtja a programot, ha az operandus csak egyszer kell. A legtbb operandust tbbszr hasznljuk. Implicit operandusok: Kt cm: regiszter2 = regiszter2 + forrs1. Egy cm: akkumultor = akkumultor + forrs1. Nulla cm: verem, pl. az IJVM IADD utastsa.
Mt: Architektrk 10. elads 37
Operandus megads Kzvetlen operandus (immediate operand): Az operandus megadsa az utastsban (5.17. bra)
MOV R1 #4
Direkt cmzs (direct addressing): A memriacm megadsa a cmrszen. Az utasts mindig ugyanazt g g gy a cmet hasznlja. Az operandus rtke vltozhat, de a cme nem (fordtskor ismert kell legyen!). Regiszter cmzs (register addressing): Mint a direkt cmzs, csak nem memrit, hanem regisztert cmez.
Mt: Architektrk 10. elads 39
Egy tmb elemeinek sszeadshoz e = e + ak vagy A = A + ak alak utastsokra van szksg. Vagy mindegyik utastst szerepeltetjk a programban, vagy minden elem hozzadsa utn gy mdostjuk az sszead utastst, hogy legkzelebb a kvetkez elem hozzadst vgezze nmdost program (Neumann Jnos tlete). Ma mr kerlend (cache problmk!), pl. regiszter-indirekt cmzssel kikerlhetjk.
Mt: Architektrk 10. elads 40
Regiszter-indirekt cmzs (register indirect addressing): A cmrszen valamelyik regisztert adjuk meg, de a megadott regiszter nem az operandust tartalmazza, hanem azt a memriacmet, amely az operandust tartalmazza (mutat - pointer). Rvidebb, s a regiszter rtknek mdostsval a cm vltoztathat.
Pl.: A 100 szbl ll A tmb elemeinek sszeadsa kt cmes gpen (egy elem 4 bjt), ~ 5.18. bra.
MOV MOV MOV ADD ADD CMP BLT ...
Mt: Architektrk
C:
; gyjtsk az eredmnyt R1-ben, ; kezdetben ez legyen 0. R2, #A ; R2-be tltjk az A tmb cmt R3, #A + 400 ; a tmb utni els cm R1, ( ) ; regiszter-indirekt cmzs a tmb , (R2) g ; aktulis elemnek elrsre R2, #4 ; R2 tartalmt nveljk 4-gyel R2, R3 ; vgeztnk? C ; ugrs a C cmkhez, ha nem ; ksz az sszegzs
10. elads 42
R1, #0
Mt: Architektrk
10. elads
41
9. elads
Indexelt cmzs (indexed addressing): Egy eltolsi rtk (offset) s egy (index) regiszter tartalmnak sszege lesz az operandus cme, 5.19-20. bra. MOV MOV MOV ADD ADD CMP BLT ...
Mt: Architektrk
C:
; gyjtsk az eredmnyt R1-ben, ; kezdetben ez legyen 0. R2, #0 ; az index kezd rtke R3, #400 ; a tmb mg mutat index R1, R1 A(R2); indexelt cm s a tmb inde elt cmzs ; aktulis elemnek elrsre R2, #4 ; R2 tartalmt nveljk 4-gyel R2, R3 ; vgeztnk? C ; ugrs a C cmkhez, ha nem ; ksz az sszegzs
10. elads 43
R1, #0
Bzisindex cmzs (based-indexed addressing): Egy eltolsi rtk (offset) s kt (egy bzis s egy index) regiszter tartalmnak sszege lesz az operandus cme. Ha R5 A cmt tartalmazza, akkor C: ADD R1, A(R2) helyett a C: ADD R1, R1 (R2+R5) utasts is rhat. Ez a mdszer elnys, ha nem csak az A tmb elemeit szeretnnk sszegezni.
Mt: Architektrk
10. elads
44
Feladatok Mi az I-8051 f alkalmazsi terlete? Nagysgrendileg milyen r egy I-8051? Jellemezze az I-8051-et! Mi a RAM? Mi a ROM? Hny bites a RAM ADDR regiszter? Hny bites a ROM ADDR regiszter? Mekkora az I-8051 RAM-ja? Mekkora az I-8051 ROM-ja? Mire szolgl az IR, SP, B, ACC, TMP1-2 regiszter? Mi a PSW? Hogy trtnik PC nvelse?
Mt: Architektrk 9. elads 45
Feladatok Milyen s hny be/kimenete van az I-8051-nek? Mire hasznlhatk az I-8051 be/kimenetei? Hny idztje van az I-8051-nak? Mire hasznlhatk az I-8051 idzti? Mik az I-8051 ALU-jnak bemenetei? Milyen llapotai vannak az raciklusnak? Jellemezze a CISC gpeket! Jellemezze a RISC gpeket! CISC vagy RISC gp a Pentium 4? CISC vagy RISC gp az UltraSPARC III? CISC vagy RISC gp az I-8051? Hasonltsa ssze a Pentium 4-et, az UltraSPARC IIIat s az I-8051-et!
Mt: Architektrk 9. elads 46
Feladatok Mirt kitntetett szint a gpi utastsok szintje (ISA)? Mikor j egy gp ISA szintje? Mi a klnbsg a felhasznli (user) s a kernel md kztt? Mit jelent a Harvard architektra kifejezs? Mondjon pldt Harvard architektrj gpre! j p j g p Mit jelent az igazts 4 bjtos szavak trolsnl? Mi az igazts elnye? Mit jelent a memria szemantika? Milyen hardver megoldsokat ismer a memria mveletek vgrehajtsi sorrendjre vonatkozan?
Mt: Architektrk 9. elads 47
Feladatok Mi a SYNC utasts hatsa? Mirt van szksg a SYNC utastsra? Mondjon olyan regisztert, amely a mikro utastsok szintjn s ISA szinten is ltszik! Mondjon olyan regisztert, amely csak a mikro utastsok szintjn ltszik! j Mondjon olyan regisztert, amely csak kernel mdban rhet el! Milyen utasts tpusokat ismer?
Mt: Architektrk
9. elads
48
9. elads
Feladatok Melyek a Pentium 4 processzor legfontosabb eldjei? Milyen zemmdjai vannak a Pentium 4-nek? Milyen a Pentium 4 memria szervezse? Milyen regiszterei vannak a Pentium 4-nek? Mit jelent a Little endian trolsi md? Mit jelent a Load/store architektra? j Milyen az UltraSPARC III memria szervezse? Milyen regiszterei vannak az UltraSPARC III-nak? Mit tud az UltraSPARC III G0 regiszterrl? Mi a CWP (Current Window Pointer) szerepe? Hogy mkdik az UltraSPARC III regiszter ablak technikja?
Mt: Architektrk 10. elads 49
Feladatok
Hny regiszter kszlete van a 8051-nek? Hol helyezkednek el a 8051 regiszterei? Mire j a bit-cmezhet memria? rja le a 8051 RAM-jnak a szerkezett! Mire szolgl a 8051 IE, IP, TCON s TMOD regisztere? Milyen operandus megadsi mdokat ismer? Mi a kzvetlen operandus megads? Mi a direkt cmzs? Mi a regiszter cmzs? Mi a regiszter-indirekt cmzs? Mi az indexelt cmzs? Mi a bzisindex cmzs?
Mt: Architektrk 10. elads 50
Az eladshoz kapcsold Fontosabb ttelek Az I-8051 processzor s az I-8051 mikroarchitektrja A Pentium 4, az UltraSPARC III s az I-8051 mikroarchitektrjnak sszehasonltsa Gpi utasts szint. Memria modellek, memria szemantika A Pentium 4, az UltraSPARC III s az I-8051 regiszterei Hrom, kett egy s nulla cmes utastsok Operandus megads mdjai. Kzvetlen operandus, direkt, regiszter, regiszter-indirekt, indexelt, bzisindex cmzs, implicit operandus
Mt: Architektrk 9. elads 51
9. elads