View
29
Download
1
Category
Preview:
DESCRIPTION
Pentium II Felülről kompatibilis az I8088 , … , Pentium Pro -val. 29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz , 32 bites gép, 64 bites adat sín. SEC (Single Edge Cartridge) tokozás ( 3. 43. ábra ). - PowerPoint PPT Presentation
Citation preview
Máté: Architektúrák 5. előadás 1
Pentium IIFelülről kompatibilis az I8088, …, Pentium Pro-val.29.000, …, 7.5 millió tranzisztor, 242 láb, 233 MHz,
32 bites gép, 64 bites adat sín.SEC (Single Edge Cartridge) tokozás (3. 43. ábra). Két szintű belső gyorsító tár: 16 KB utasítás + 16 KB
adat, 512 KB közös, másodlagos (fele olyan gyors, mint a CPU), 32 B-os gyorsító sor (cashe line).
1 vagy 2 CPU közös memóriával (szimatolás - snoop).Gépi utasítások RISC szerű mikroutasítások, több
mikroutasítás futhat egyszerre: szuperskaláris gép.Két külső szinkron sín (PCI és ISA): 3. 50. ábra.
Máté: Architektúrák 5. előadás 2
3.50. ábra. Egy tipikus Pentium II rendszer architektúrája
SCSI USB Grafikus illesztő
PCI-híd
CPU
Gyorsító tárFő
memória
NyomtatóHangkártya
ISA-híd
Monitor
PCI sín
Memória sín
ISA sín
Másodlagos gyorsító tár
Egér Billentyűzet
Monitor
Szabad PCI bővítő hely
Szabad ISA bővítő helyek
Gyorsító tár sín
IDE diszk
Máté: Architektúrák 5. előadás 3
Pentium II logikai lábkiosztása (3.44. ábra)
Pentium IICPU
táp
BPRI#LOCK#
Misc#
A#ADS#REQ#
Paritás#
Misc#
Misc#
RS#TRDY#Paritás#
D#DRY#
DBSY#Paritás#
Sínütemezés
Kérés
HibaSzimatolás
Válasz
Adat
RESET#
Megszakítások
VID
Kompatibilitás
Diagnosztika
Inicializálás
Energia ellátás vezérlése
Egyéb
3
33
5
3
5
3
64
8
7
2
3
11
4
Φ 27 35
3
5
Máté: Architektúrák 5. előadás 4
táp
Pentium II logikai lábkiosztása (3.44. ábra)
RESET#: a CPU alapállapotba hozatala,
Megszakítások: régi vezérlő, és APIC (Advanced Programmable Interrupt Controller),
VID: a különböző tápfeszültségek kiválasztására szolgál,
…
Pentium IICPU
RESET#
Megszakítások
VID
Kompatibilitás
Diagnosztika
Inicializálás
Energia ellátás vezérlése
Egyéb7
2
3
11
4
Φ 27 35
5
Máté: Architektúrák 5. előadás 5
Pentium II logikai lábkiosztása (3.44. ábra)
Sín ütemezés: BPRI#: magas prioritású igény engedélyezése, LOCK#: sín foglalás több ciklusra,
Kérés: A#: 8 bájtos adat címe (64 GB címezhető), ADS#: a cím érvényes, REQ#: kívánság,
Válasz: RS#: státus, TRDY#: a szolga tud adatot fogadni,
Adat: D#: 8 bájtos adat, DRDY#: az adat a sínen van, DBSY#: a sín foglalt.
BPRI#LOCK#
Misc#
A#ADS#REQ#
Paritás#
Misc#
Misc#
RS#TRDY#Paritás#
D#DRDY#DBSY#Paritás#
Sínütemezés
Kérés
HibaSzimatolás
Válasz
Adat
3
33
5
3
5
3
64
8
Pen
tiu
m I
I C
PU3
Máté: Architektúrák 5. előadás 6
Pentium II memória sínA memóriaigények, tranzakciók 6 állapota: 6 fázisú
csővezeték (3.44. ábra bal oldal) fázisonként külön vezérlő vonalakkal (amint a mester megkap valamit, elengedi a vonalakat):
0. Sín ütemezés (kiosztás, bus arbitration): eldől, hogy melyik sínmester következik,
1. Kérés: cím a sínre, kérés indítása,2. Hibajelzés: a szolga hibát jelez(het),3. Szimatolás: a másik CPU gyorsító tárában,4. Válasz: kész lesz-e az adat a következő ciklusban,5. Adat: megvan az adat. (3.45. ábra)
Máté: Architektúrák 5. előadás 7
Φ:
tranzakció
T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12
1 K H S V A
2 K H S V A
3 K H S V A
4 K H S V A
5 K H S V A
6 K H S V A
7 K H S V A
Pentium II memória sín csővezetéke (3.45. ábra)
K: kérés, H: hiba, S: szimatolás (átkérés), V: válasz, A: adat
Máté: Architektúrák 5. előadás 8
UltraSPARC II64 bites RISC gép, felűről kompatibilis a 32 bites
SPARC V8 architektúrával.CPU 5.4 millió tranzisztor, 4 CPU közös memóriával
használható. 787 láb (3.46-47. ábra). 64 (jelenleg csak 44) bites cím és 128 bites adat lehetséges.
Belső gyorsító tár (16 KB utasítás + 16 KB adat).Külső 512 KB - 16 MB.
8 K - 256 K db 64 B-os gyorsító sor (cashe line) lehet. A címzéséhez 13 – 18 bit szükséges. A CPU mindig 18 bites Line címet (Címkeazonosítót) ad át. Csak maximális méret esetén van mind a 18 bit kihasználva.
Máté: Architektúrák 5. előadás 9
512 KB –os gyorsító tár esetén a 44 bites cím felosztása (3.47. ábra, 3_47_abrahoz): Tag: 25 bit, Line: 13 bit, bájt cím: 6 bit = 44 bit.
16 MB –os tár esetén 18 bites Line kell, és 20 bites Tag (Címkeadat) is elég lenne, de ilyekor – hogy a CPU egységesen működhessen – a gyorsító tárban tárolt 20 bites Tag –et a gyorsító tár kiegészíti Line 5 legmagasabb helyértékű bitjével.
Az Adat címe a gyorsító sor címén (Címkeazonosító, Line) kívül még 2 bitet tartalmaz, mert egy átvitel során a gyorsító sornak csak negyed része (16 bájt) mozgatható.
Máté: Architektúrák 5. előadás 10
Address: 64 bit-es, de egyelőre 44 bitre van korlátozva
Entry Valid Tag Cashe line2L -1…210
Tag Line Word Byte
5 bit átfedés 4 bit 2 bit
25 bit 18 bit Address in cashe line
= ?
Enrty: bejegyzés a gyorsító tárbanCashe line: gyorsító sor 64 bájtEgyszerre mozgatható adat 16 bájt (1/4 gyorsító sor)
Máté: Architektúrák 5. előadás 11
UltraSPARC II
Másodlagos gyorsító tár(címkék -
tags)
Másodlagos gyorsító tár
(adatok)
Címke cím (Line)Érvényes címke
Címke adat (tag)Címke paritása
Adat címeÉrvényes adat cím
AdatParitás
UltraSPARC IIközpontiegység
Első szintűgyorsító tárak
18
20
254
12816
UDB IImemória
puffer
5vezérlés
Máté: Architektúrák 5. előadás 12
UltraSPARC II
UPA (Ultra Port Architecture) sín, kapcsoló vagy mindkettő. A memóriák és max. 4 CPU kommunikációját kezeli.
UDB II (UltraSPARC Data Buffer II): ezen keresztül zajlik a memória és a gyorsító tárak közötti adatforgalom.
SBus: 25 MHz-es szinkron sín a perifériáknak. A memóriához lassú lenne!
Máté: Architektúrák 5. előadás 13
UltraSPARC IIközpontiegység
Első szintűgyorsító tárak
UDB IImemória
puffer
5vezérlés
Sín ütemezés
Memória címCím paritásaÉrvényes cím
Várakozás
Válasz
Memória adatHiba javító kód
UPAinterfész
a főmemóriához
5
35
4
12816
Máté: Architektúrák 5. előadás 14
picoJava II
JVM-et (Java Virtual Machine) megvalósító hardver.
Elsősorban beépített számítógépekben alkalmazzák.
Szabványos BGA (Ball Grid Array) tokban: SUN microJava 701 lapka + 316 láb, benne a SUN picoJava II központi egység (3.48. ábra).
Máté: Architektúrák 5. előadás 15
Lábak vezérlés, órák, megszakítás, tesztelés, …számára.Programozható B/K (nyomógombok, lámpák, …)Memória sín (64 bites adat, 32 bites cím) és 32 bites PCI sínFlash PROM.
A
MicroJava 701CPU
Első szintűgyorsító tárak U
FlashPROM
Főmemória
Memória sín
ProgramozhatóB/K vonalak
PC sín
16
3.48. ábra. A microJava 701-es rendszer
Máté: Architektúrák 5. előadás 16
Egyszerűsített lexikális elemző
Feladata, hogy azonosító, szám, speciális jelek és a program vége jel előfordulásakor rendre A, 0, , és . karaktert írjon a képernyőre. Az esetleges hibákat ? jelezze.
XLAT utasítás alkalmazásának tervezése:
Karakter típusok karakterek kód
Betű A … Z a … z 2
Számjegy 0 … 9 4
Speciális jel , . ; + - ( ) cr lf 6
Vége jel $ 8
Hibás karakter a többi 0
Máté: Architektúrák 5. előadás 17
data segment para public ’data’
; ugró táblák a szintaktikus helyzetnek megfelelően:
; kezdetben, speciális és hibás karakter után
t_s dw hiba ; hibás kar.: spec. jel szint
dw lev_a ; betű:
dw lev_n ; számjegy:
dw lev_s ; spec. jel:
dw vege ; szöveg vége: program vége
Máté: Architektúrák 5. előadás 18
; azonosító szintt_a dw hiba ; hibás kar.: spec. jel szint
dw OK ; betű: nincs teendődw OK ; számjegy: nincs teendődw lev_s ; speciális jel: azonosító végedw vege ; szöveg vége: program vége
; szám szintt_n dw hiba ; hibás kar.: spec. jel szint
dw hiba ; betű: hiba: spec. jel szintdw OK ; számjegy: nincs teendődw lev_s ; speciális jel: szám végedw vege ; szöveg vége: program vége
Máté: Architektúrák 5. előadás 19
level dw ? ; az aktuális ugrótábla címe
c_h db 0 ; hibás karakter kódjac_b db 2 ; betű kódjac_n db 4 ; számjegy kódjac_s db 6 ; speciális jel kódjac_v db 8 ; végjel kódjaspecjel db ’ ,. ;+-()’, 13, 10 ; a speciális jelekvegjel db ’$’ ; vége jel, kihasználjuk,
; hogy itt van!
table db 256 dup (?) ; átkódoló tábla (256 byte)
text db ’a,tz.fe&a 21 a12 12a $’ ; elemzendő szöveg
DATA ends
Máté: Architektúrák 5. előadás 20
code segment para public ’CODE’assume cs:code, ds:data, es:data, ss:stack
Lex proc farpush dsxor ax,axpush ax ; visszatérési cím a
verembenmov ax,datamov ds,axmov es,ax ; assume miatt
call prepare ; átkódoló tábla elkészítésemov si, offset text ; az elemzendő szöveg
; kezdőcímecall parsing ; elemzés
ret ; vissza az Op. rendszerhez
Lex endp
Máté: Architektúrák 5. előadás 21
prepare proc ; az átkódoló tábla elkészítése
; az eljárás rontja AX, BX, CX, DI, SI tartalmát
cld ; a string műveletek iránya pozitív
mov bx, offset table
mov di,bx
mov al,c_h ; hibás karakter kódja
mov cx,256 ; a tábla hossza
rep stos table; table minden karakter hibás
Máté: Architektúrák 5. előadás 22
mov al,c_b ; betű kódja
mov di,’A’ ; A ASCII kódja
add di,bx ; A helyének offset címe
mov cx,’Z’-’A’+1 ; a nagybetűk száma
; a betűk ASCII kódja folyamatos!
rep stosb
mov di,’a’ ; a ASCII kódja
add di,bx ; a helyének offset címe
mov cx,’z’-’a’+1 ; a kisbetűk száma
rep stosb
Máté: Architektúrák 5. előadás 23
mov al,c_n ; számjegy kódja
mov di,’0’ ; 0 ASCII kódja
add di,bx ; 0 helyének offset címe
mov cx,’9’-’0’+1 ; a számjegyek száma
; a számjegyek ASCII kódja folyamatos!
rep stosb
Máté: Architektúrák 5. előadás 24
mov si,offset specjel; speciális jelek
; feldolgozása
xor ah,ah ; hogy ax=al legyen
pr1: lods specjel ; speciális jel ASCII kódja
mov di,ax ; ah=0 miatt ax = a jel kódja
cmp al,vegjel ; vegjel közvetlenül a
; speciális jelek után van!
je pr2 ; ez már a vegjel
mov al,c_s ; speciális karakter kódja
mov [BX+DI],al ; elhelyezés a táblában
jmp pr1 ; ciklus vége
Máté: Architektúrák 5. előadás 25
pr2: mov al,c_v ; a végjel kódja
mov [BX+DI],al ; elhelyezés a táblában
ret ; vissza a hívó eljáráshoz
prepare endp
Máté: Architektúrák 5. előadás 26
parsing proc ; elemzés; az eljárás rontja AX, BX, CX, DI, SI tartalmát
cld ; a string műveletek iránya pozitívmov bx, offset tablemov di,offset t_s ; spec. jel szint
lv1: mov level,di ; szint beállításxor ah,ah ; hogy ax=al legyen
OK: lods text ; a következő karakterXLAT ; AL 0, 2, 4, 6 vagy 8ADD AX,LEVEL ; AX az aktuális
; ugró táblán belüli címJMP [AX] ; kapcsoló utasítás
Máté: Architektúrák 5. előadás 27
hiba: mov di,offset t_s ; hibás karakter,
; spec. jel szint következik
mov al,’?’
lv2: mov ah,14 ; BIOS hívás előkészítése
int 10h ; BIOS hívás:
; karakter írás a képernyőre
jmp lv1
lev_a: mov di,offset t_a ; azonosító kezdődik
mov al,’A’
jmp lv2
Máté: Architektúrák 5. előadás 28
lev_n: mov di,offset t_n ; szám kezdődikmov al,’0’jmp lv2
lev_s: mov di,offset t_s ; speciális jelmov al,’,’jmp lv2
vege: mov al,’.’ ; szöveg végemov ah,14 ; BIOS hívás előkészítéseint 10h ; BIOS hívás:
; karakter írás a képernyőreret ; elemzés vége, vissza a hívóhoz
parsing endp
code ends
Máté: Architektúrák 5. előadás 29
stack segment para stack ’stack’
dw 100 dup (?) ; 100 word legyen a verem
stack ends
end Lex ; modul vége, start cím: Lex
Máté: Architektúrák 5. előadás 30
Mikroarchitektúra szint
Feladata az ISA (Instruction Set Architecture – gépi utasítás szint) megvalósítása. Nincs rá általánosan elfogadott, egységes elv.
A ISA-szintű utasítások „függvények”, ezeket egy főprogram hívja meg végtelen ciklusban.
A függvények a mikroarchitektúra szintjén valósulnak meg (mikroprogram).
A mikroprogram változói (a regiszterek) definiálják a számítógép állapotát, pl.: PC (Program Counter, utasításszámláló).
Máté: Architektúrák 5. előadás 31
IJVM (Integer Java Virtual Machine): a JVM egész értékű aritmetikát tartalmazó része.
Az IJVM utasítások szerkezete: • az első mező az opcode (Operation Code, műveleti
kód), • az esetleges második mezőben az operandus
meghatározására szolgáló adat van. Nem használjuk a C-ben írt SUN JVM interpretert,
mert nem elég hatékony az elemi logikai áramkörök kezelésére.
Mikroprogram: betölti, értelmezi és végrehajtja az IJVM utasításokat:
betöltés-végrehajtás (fetch-execute) ciklus.
Máté: Architektúrák 5. előadás 32
Az ALU-nak (3.19-20. ábra) 6 vezérlő bemenete van:
ENA az A bemenet engedélyezése (1) tiltása (0),
ENB a B bemenet engedélyezése (1) tiltása (0),
F0, F1. F0, F1 kiválasztja
az AND, OR, B#, + művelet valamelyikét,
INC: +1.
teljes összeadó
dekódolóF0
F1
INVAA
ENAB
ENB
INVA: Ha ENA = 1, akkor A#,Ha ENA = 0, akkor 0# = FFFF = – 1.
átvitel be
átvitel ki
Máté: Architektúrák 5. előadás 33
Néhány példa (4.2. ábra átrendezve)
A könyvben nem logikus, hibás.
F0 F1 ENA ENB INVA INC Tevékenység
0 0 1 1 0 0 A AND B
0 1 1 1 0 0 A OR B
0 1 1 0 0 0 A
0 1 0 1 0 0 B
0 1 1 0 1 0 #A
1 0 0 1 0 0 #B
Máté: Architektúrák 5. előadás 34
F0 F1 ENA ENB INVA INC Tevékenység
1 1 0 0 0 0 0
1 1 0 0 0 1 1
1 1 0 0 1 0 – 1
1 1 1 1 0 0 A + B
1 1 1 1 0 1 A + B + 1
1 1 1 0 0 1 A + 1
1 1 0 1 0 1 B + 1
1 1 1 0 1 1 – A
1 1 1 1 1 1 B – A
1 1 0 1 1 0 B – 1
Máté: Architektúrák 5. előadás 35
Léptető vezérlés
6
2
ALUvezérlés
A B N 1, ha az eredmény < 0, különben 0,
Z 1, ha az eredmény = 0, különben 0.
Csín
Bsín
Memória vezérlő
regiszterek
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
Adatút (Data Path, 4.1. ábra)32 bites regiszterek, sínek,ALU, léptető SLL8 8 bittel balra, SRA1 1 bittel jobbra léptet. ALU bemenetei: H (Holding – tartó), B sín.
Egy cikluson belül lehetséges egy regiszterből olvasni és az eredményt akár ugyanoda visszaírni 4.3. ábra.
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 36
Memóriaműveletek (4.1. ábra) • Szócímzés: 32 bites adat írása, olvasása.
szó cím = 4 * (bájt cím), a túlcsorduló bitek elvesznek
MAR (Memory Address Register)MDR (Memory Data Register)
• Bájtcímzés: gépi szintű utasítás bájt olvasás.PC (Program Counter): bájt cím,MBR (Memory Byte Register): bájt.
MBR kétfajta értelmezése (két vezérlőjel):• MBR: MBR előjelesen kerül a B sínre,• MBRU: MBR előjel nélkül kerül a B sínre.
MAR
MDR
PC
MBR
mem
ória
Máté: Architektúrák 5. előadás 37
Léptető vezérlés
6
2
ALUvezérlés
A B N
Z
Csín
Bsín
9 jel: a B sínre írás a regiszterekből,8 jel: 6 az ALU és 2 a léptető vezérlésére, 9 jel: a C sínről regiszterekbe írás, 3 jel: a memória eléréshez (nem ábrázoltuk!)
2 jel: szó íráshoz/olvasáshoz 1 jel: bájt olvasáshoz.
Összesen 29 jel szükségesA B sínre csak egy regiszter írhat egyszerre, ezért 9 helyett elég 4 jel, összesen24 vezérlő jelre van szükség.
Az adatút vezérlése (4.1., 5-6. ábra)
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 38
NE
XT
AD
DR
ES
S
JMP
C
JAM
NJA
MZ
SL
L8
SR
A1
F0
F1
EN
AE
NB
INV
AIN
CH
OP
CT
OS
LV SP
PC
MD
RM
AR
WR
ITE
RE
AD
FE
TC
HB
sín
9 3 8 9 3 4
Mikroutasítások24 bit: az adatút vezérléséhez 9 bit: a következő utasítás címének megadásához, 3 bit: a következő utasítás kiválasztásának módjára. Ez adja a 36 bites mikroutasítást: 4.5. ábra.
0 = MDR 1 = PC 2 = MBR 3 = MBRU 4 = SP
5 = LV 6 = CPP 7 = TOS 8 = OPC 9-15 semmi
Addr JAM ALU C Mem B
Máté: Architektúrák 5. előadás 39
Mic-1: 4.6. ábra. • 512x36 bites vezérlőtár a
mikroprogramnak,• MPC (MicroProgram Counter):
mikroprogram-utasításszámláló.• MIR (MicroInstruction Register):
mikroutasítás-regiszter.
Az adatút ciklus (4.6. ábra) elején MIR feltöltődik a vezérlőtár MPC által mutatott szavával.
Addr J ALU C M B
9
512x36 bites vezérlőtár a
mikroprogram tárolására
MIR
MPC
4-ről 16-ra dekódoló
Máté: Architektúrák 5. előadás 40
A B6
2
ALUvezérlés
NZALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
Adatút ciklus (4.6. ábra): • (MIR feltöltődik a vezérlőtár MPC által mutatott szavával.) • Kialakul a B sín kívánt tartalma, ALU és a léptető megtudja, mit kell csinálnia,• Az ALU és a léptető elvégzi a feladatát, a C sín, N (Negative) és Z (Zero) megkapja az új értékét, • A regiszterek feltöltődnek a C sínről.
MBR/MDR megkapja az értékét, ha az előző ciklus adatot kért a memóriából.• Kialakul MPC új értéke.• Memória ciklus kezdete.
Máté: Architektúrák 5. előadás 41
Memória ciklus
A memória ciklus az adatút végén kezdődik (MAR ill. PC feltöltése után), ezért ha a memória címet módosította ez a mikroutasítás, akkor a memória cím a módosított MAR ill. PC regiszter értéke lesz.
MAR
MDR
PC
MBR
mem
ória
Olvasásnál az eredmény csak két ciklussal később használható, mert MDR ill. MBR csak a következő adatút ciklus vége felé töltődik fel a memóriából, addig MDR ill. MBR régi értéke érhető el.
Máté: Architektúrák 5. előadás 42
Mic-1: 4.6. ábra.
MPC új tartalmának kialakítása.
Addr J ALU C M B
9
9
512x36 bites vezérlőtár a
mikroprogram tárolására
MIR
MPC
N
Z
MBR 8
JAMN/JAMZ
JMPC
1 bites flipflopok
(N&JAMN) + (Z&JAMZ)
+
Máté: Architektúrák 5. előadás 43
MPC új tartalma • A 9 bites következő cím (Addr) az MPC-be kerül.• JAMN/JAMZ esetén MPC legmagasabb bitjének
és az N/Z bitnek logikai vagy kapcsolata képződik MPC legmagasabb helyértékével (elágazás). Pl.:
esetén a mikroprogram a 0x092 címen folytatódik, ha Z = 0,0x192 címen folytatódik, ha Z = 1.
Feltételes ugrás – elágazás – a mikroprogramban.
Cím Addr JAM Adatút vezérlő bitek
0x75 0x092 001 . . . JAMZ =1
Máté: Architektúrák 5. előadás 44
MPC új tartalma (folytatás)
• JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MBR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MBR megérkezése után). Ilyenkor Addr 8 alacsonyabb helyértékű bitje általában 0 Feltétlen ugrás az MBR –ben tárolt címre – kapcsoló utasítás.
Kezdődhet az újabb mikroutasítás végrehajtása.
Máté: Architektúrák 5. előadás 45
Mic-1 működése
• (MPC) MIR
• regiszter B sín, Addr MPC
ALU, léptető megtudja,
mit kell csináljon,
• eredmény C, N, Z
• C regiszterekbe JAMN, JAMZ (N, Z)
mem. MDR és/vagy alapján módosul MPC
mem. MBR
• Memória ciklus indítása JMPC (MBR) (rd, wr, fetch) alapján módosul MPC.
Máté: Architektúrák 5. előadás 46
Eljárás: paraméterek, munka terület.
A hívó és hívott eljárás paraméterei, változói nem lehetnek azonos területen: lokális változók.
Verem (stack): LV (Local Variable), SP (Stack Pointer) verem mutató (4.8. ábra).
SP → d5d4d3d2
LV → d1a3a2a1
SP → a3a2
LV → a1
SP → b4b3b2
LV → b1a3a2a1
SP → c2LV → c1
b4b3b2b1a3a2a1
Máté: Architektúrák 5. előadás 47
A verem operandusok és az eredmény ideiglenes tárolására is használható, pl. (4.9. ábra):
a1 = a2 + a3
SP → a2a3a2
LV → a1
SP → a3a2a3a2
LV → a1
SP → a2+a3a3a2
LV → a1
SP → a3a2
LV → a2+a3
Máté: Architektúrák 5. előadás 48
Az IJVM memóriamodellje (4.10. ábra)A 4 GB memória, 1 G szóként is szervezhető.
CPP →
Konstans terület
SP → Aktuálisoperandusok 3.
LV →Aktuális lokális
változók 3.
lokális változók 2.
lokális változók 1.
PC →
Metódusterület
Konstansok, mutatók
Tartalma a program betöltésekor alakul ki, ISA utasítások nem írhatják felül
Program
PC bájtot címez a metódus
területen belül
Verem
lokális változók és operandus verem
Máté: Architektúrák 5. előadás 49
IJVM néhány utasítása: 4.11. ábra.
hex Mnemonic jelentés
10 BYPUSH byte Beteszi a byte–ot a verembe
A7 GOTO offset Feltétel nélküli ugrás offset -re
60 IADDKivesz a veremből két szót, az összegüket a verembe teszi
99 IFEQ offset Kivesz a veremből egy szót, ha 0, akkor offset -re ugrik
9F IF_ICMPEQ offsetKivesz a veremből két szót, ha egyenlők, akkor offset -re ugrik
15 ILOAD varnum Beteszi varnum -ot a verembe
36 ISTORE varnum Kivesz a veremből egy szót, és eltárolja varnum -ba
64 ISUBKivesz a veremből két szót, a különbségüket a verembe teszi
00 NOP Nem csinál semmit
5F SWAP A verem két felső szavát megcseréli
Máté: Architektúrák 5. előadás 50
Java (C) IJVM program 4.14. ábra Bin. kód
program 1 ILOAD j // i = j + k 15 02
2 ILOAD k 15 03i = j + k; 3 IADD 60if(i = = 3) 4 ISTORE i 36 01 k = 0; 5 ILOAD i // if(i = = 3) 15 01else 6 BIPUSH 3 10 03 j = j – 1; 7 IF_ICMPEQ L1 9F 00 0D 8 ILOAD j // j = j – 1 15 02
9 BIPUSH 1 10 01 10 ISUB 64 11 ISTORE j 36 02 12 GOTO L2 A7 00
0F 13 L1: BIPUSH 0 // k = 0 10 00 14 ISTORE k 36 03 15 L2:
Máté: Architektúrák 5. előadás 51
Mic-1 megvalósítása (4.5, 6. ábra)
36 bites bináris utasításokat kellene megadnunk.
Pl.: Egy ciklusban növeljük SP-t 1-gyel és olvasást kezdeményezünk a memóriából, folytatás a 122-es utasításnál. Szimbolikusan ilyesmi:
ReadRegister = SP, ALU = INC, Write SP, Read, NextAddress = 122;
Nehézkes, helyette:
SP = SP + 1; rd
A folytatás címet csak akkor tüntetjük fel, ha az nem a következőként írt mikroutasítás (pl. goto Main1).
Máté: Architektúrák 5. előadás 52
MAL (Micro Assembly Language )
SOURCE: a B sínre kötött regiszterek bármelyike: MDR, PC, MBRU (előjel nélküli - Unsigned MBR) MBR, SP, LV, CPP, TOS, OPC.
DEST: a C sínre kapcsolt regiszterek bármelyike: MAR, MDR, PC, SP, LV, CPP, TOS, OPC, H. Több regiszter is kaphatja ugyanazt az értéket.
wr: memóriába írás MDR-ből a MAR címre.
rd: memóriából olvasás MDR-be a MAR címről.
fetch: 8 bites utasításkód betöltése MBR-be a PC címről.
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
Máté: Architektúrák 5. előadás 53
Megengedett műveletek: 4.16. ábra
A 4.2. ábra alapján:
DEST = H DEST = SOURCE – H
DEST = SOURCE DEST = SOURCE – 1
DEST = #H DEST = –H
DEST = #SOURCE DEST = H AND SOURCE
DEST = H + SOURCE DEST = H OR SOURCE
DEST = H + SOURCE + 1 DEST = 0
DEST = H + 1 DEST = 1
DEST = SOURCE + 1 DEST = –1
Máté: Architektúrák 5. előadás 54
Nem megengedett pl. az alábbi utasítás pár:
MAR = SP; rdMDR = H // A memóriából is most kapna értéket!
Feltétlen ugrás MBR szerint (JMPC = 1): goto (MBR OR value)Ilyenkor value általában 0 vagy 0x100.
Máté: Architektúrák 5. előadás 55
Feltételes elágazás, pl.: (TOS Top Of Stack)Z = TOS ; if (Z) goto L1; else goto L2
// Z=1, ha TOS=0, különben Z=0.
esetén a mikroprogram az L2 0x092 címen folytatódik, ha Z = 0,L1 0x192 címen folytatódik, ha Z = 1.
A címek különbsége 256 (0x100) kell legyen (4.7. ábra)!
Cím Addr JAM Adatút vezérlő bitek
0x75 0x092 001 . . . JAMZ =1
Máté: Architektúrák 5. előadás 56
IJVM megvalósítása Mic-1-en (4.11., 17. ábra) Előkészület a gép indításakor: PC a végrehajtandó
utasítás címét, MBR magát az utasítást tartalmazza.A legelső végrehajtandó mikroutasítás a Main1, ez:
PC=PC+1; fetch; goto(MBR);
PC most a végrehajtandó utasítás utáni bájtra mutat, ez lehet egy újabb utasítás kódja, vagy operandus.
PC új értékének kialakulása után indul a fetch-csel kezdeményezett memória ciklus, ez a program következő bájtját olvassa MBR-be (a következő mikroutasítás végén lesz MBR-ben a bájt) .
goto (MBR) elugrik az utasítás feldolgozásához.
Máté: Architektúrák 5. előadás 57
Minden utasítás feldolgozását végző függvény első mikroutasítása az utasítás kódnak megfelelő címen van a mikroprogram tárban. Ez az oka, hogy nem helyezhetjük egymás után az egyes utasítások feldolgozását végző mikroutasítás sorozatot, ezért inkább azt a megoldást választottuk, hogy minden mikroutasítás tartalmazza a következő címét.
Ha az első utasítás pl. NOP (No OPeration, nem csinál semmit), ennek a kódja 0x00, ezért a 0x00 címen kezdődik a NOP feldolgozását végző függvény. Ez egyetlen goto Main1 mikroutasítás.
Máté: Architektúrák 5. előadás 58
IJVM megvalósítása Mic-1-en (4.11., 17. ábra)
A főciklus a Main1-nél kezdődik; PC a végrehajtandó utasítás címét, MBR magát az utasítást tartalmazza.
Main1 a következő utasítást vagy adatbájtot olvassa.
Címke Műveletek // kommentár
Main1 PC = PC + 1; fetch; goto(MBR)
nop1 goto Main1
iadd1 MAR = SP = SP – 1; rd
iadd2 H = TOS
iadd3 MDR = TOS = MDR + H; wr; goto Main1
Máté: Architektúrák 5. előadás 59
Feladatok
Mi a lexikális elemző feladata?
Milyen adatokat tartalmaz az ugró tábla?
Hogy működik az XLAT utasítás?
Az átkódoló tábla kialakításakor más módszert alkalmaztunk a nagy betűk kódjának beírásához, mint a speciális jelek kódjának beírásához. Miért?
Milyen karakter eredményez hibát szám beolvasása közben?
Hogyan kezeli a program a különböző szintaktikus helyzeteket?
Máté: Architektúrák 5. előadás 60
FeladatokMilyen részei vannak az egy bites ALU-nak?Milyen vezérlő bemenetei vannak az ALU-nak?Milyen vezérlő bemenetek esetén lesz 1 az eredmény?Milyen eredményt szolgáltat az F0=0, F1=1, ENA=0,
ENB=0, INVA=1, INC=1 vezérlő bemenet? Mi az adatút?Milyen jelek szükségesek az adatút vezérléséhez?Milyen részei vannak a Mic-1 mikroutasításainak?Milyen részei vannak az adatút ciklusnak?Hogy alakul ki MPC új tartalma?
Máté: Architektúrák 5. előadás 61
FeladatokIsmertesse az IJVM memóriamodelljét!Milyen utasításai vannak a Mic-1 gépnek?Milyen ugró utasításai vannak a Mic-1 gépnek?Milyen értékeket vehet föl a SOURCE operandus?Milyen értékeket vehet föl a DEST operandus?Mit jelent a wr?Mely utasítások tudnak olvasni a memóriából, és hogy
működnek?Hogy lehet védekezni az ellen, hogy MDR egyszerre
kapjon értéket a memóriából és a C sínről?
Recommended