pci sín ütemezés (kiosztás): request, grant
DESCRIPTION
PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések. Új változatai: 64 bites adat, 66 MHz, 528 MB/s. Problémák: a memóriához lassú, - PowerPoint PPT PresentationTRANSCRIPT
Máté: Architektúrák 5. előadás 1
PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 133 MB/s) szabadon felhasználható licensz. Multiplexelt cím- és adatkivezetések.
Új változatai: 64 bites adat, 66 MHz, 528 MB/s.
Problémák: • a memóriához lassú,• nem kompatíbilis az ISA bővítőkártyákkal.
Megoldás (3.52. vagy 2.30. ábra): több sín Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.
Máté: Architektúrák 4. előadás 2
PCI sín ütemezés (kiosztás): request, grant.
PCI ütemező
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
PCI eszköz
RE
Q#
GN
T#
3.54. ábra. A PCI sín centrális ütemezőt használ.
Máté: Architektúrák 5. előadás 3
Általános soros sín (USB)
Igény: bármikor könnyen lehessen perifériát kapcsolni a géphez, ne kelljen szétszedni a gépet, újra boot-olni, ne kelljen áramellátásról gondoskodni, … Plug ’n Play (csatlakoztasd és működik) perifériák.Sokféle perifériát lehessen azonos módon csatlakoztatni, akár a gép működése közben, hardver ismeretek nélkül.
Máté: Architektúrák 5. előadás 4
USB (Universal Serial Bus - általános soros sín): Négy vezeték: adatok (2), tápfeszültség (1), föld (1).
USB 1.0 1,5 Mbps (billentyűzet, egér,…)
USB 1.1 12 Mbps (nyomtató, fényképezőgép,…)
USB 2.0 480 Mbps (DVD lejátszó,…)
A központi elosztó (root hub) 1 ms-onként üzenetekkel (frame, 3.54. ábra) kommunikál az eszközökkel.
A frissen csatlakoztatott eszköz címe 0. Ha a központi elosztó tudja fogadni az eszközt, akkor egyedi címet (1-127) ad neki (konfigurálja).
Máté: Architektúrák 5. előadás 5
Frame – keret
Egy vagy több csomagból áll.
Az egyes csomagok haladhatnak a központból az eszközök felé vagy fordítva. A haladási irány egy kereten belül is változhat.
Az első csomag mindig SOF: Start Of Frame – keret kezdet, szinkronizálja az eszközöket.
Máté: Architektúrák 5. előadás 6
A keret lehet• Control – vezérlő:
Eszköz konfigurálás,Parancs,Állapot lekérdezés.
• Isochronous – izoszinkron: valós idejű eszközök használják, pl. telefon. Hiba esetén nem kell ismételni az üzenetet.
• Bulk – csoportos: nagy tömegű adat átvitelére szolgál.• Interrupt – megszakítás: Az USB nem támogatja a
megszakítást, helyette pl. 50 ms-enként lekérdezhető az eszköz állapota.
Máté: Architektúrák 5. előadás 7
A csomag lehet
• Token – parancs (központ küldi az eszköznek):SOF.IN – be: adatokat kér az eszköztől.
Az IN parancsban meg lehet adni, melyik eszköztől milyen adatokra van szükség.
OUT – ki: adatok fogadására kéri az eszközt.SETUP – beállítás: konfigurálja az eszközt.
Máté: Architektúrák 5. előadás 8
A csomag lehet (folytatás)
• Data – adat: 64 bájt információ mozgatása akármelyik irányban. A Data csomag részei:
SYN: 8 bit szinkronizáció, PID: a csomag típusa (8 bites), PAYLOAD: hasznos adat, CRC: Cyclic Redundancy Code – ciklikus redundancia
kód (16 bit az adatátvitel helyességének ellenőrzésére).• Handshake – kézfogás:
ACK: az előző adatcsomagot hibátlanul vettem, NAK: CRC hibát észleltem, STALL: kérem, várjon, el vagyok foglalva.
• Special – speciális.
Máté: Architektúrák 5. előadás 9
3.52. ábra. Egy korai Pentium 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 10
3.53. ábra. Egy modern Pentium 4 rendszer sín struktúrája
PCI sín
Pentium 4 CPU
I DCsatolólapka
Főmemória
Grafikuskártya
Monitor
ATAPI vezérlőUSB 2SCSI
Egér Billen-tyűzet
Mágneslemez-egység
DVD-meghajtó
Memóriasín
AGP sín
Lokális sín
1. szintű gyorsítótárak
2. szintű gyorsítótár
Szabad bővítőhely
Máté: Architektúrák 5. előadás 11
3.57. ábra. Egy tipikus PCI Express rendszer vázlata
2. szintű gyorsítótár
CPUCsatoló lapka
Memória
Kapcsoló
GrafikaMágnes-lemezek Hálózat USB 2 Egyéb
Soros kapcsolatot biztosító
csatorna párok
Egy csatorna csak két vezeték
PCI Express
Máté: Architektúrák 5. előadás 12
Hagyományos sín PCI Express
Több leágazású sín Központosított kapcsoló
Széles, párhuzamos sín Keskeny, közvetlen soros kapcsolat
Bonyolult mester – szolga kapcsolat Kicsi, csomagkapcsolt hálózat
CRC kód: nagyobb megbízhatóság
A csatlakozó kábel > 50 cm lehet
Az eszköz kapcsoló is lehet
Meleg csatlakoztatási lehetőség
Kisebb csatlakozók: kisebb gép
• Nem kell nagy bővítőkártyával csatlakozni a sínhez• A winchester a monitorba is kerülhet
Egy csatorna hasznos sávszélessége minimum 2 Gbps, de bíznak benne, hogy hamarosan 10 Gbps
Máté: Architektúrák 5. előadás 13
3.58. ábra. A PCI Express protokollrendszer A csomagok formátuma
Fejléc cím, magas/alacsony prioritás, …Seq# az üzenet sorszámaCRC ciklikus redundanciakód (Cyclic Redundancy Check)
Ha a számított és kapott CRC megegyezik, akkor nyugtázza, különben újra kéri az adatot.
Rétegek
Szoftver
Tranzakciós Fejléc Hasznos adat
Kapcsolati Seq# Fejléc Hasznos adat CRC
Fizikai Keret Seq# Fejléc Hasznos adat CRC Keret
Máté: Architektúrák 5. előadás 14
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 15
Mic-1Adatú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.
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
memóriábamemóriából
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
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 16
Pl. SP = SP + 1
• SP B sín
• ALU: B+1 C
• C SP
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
memóriábamemóriából
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
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 17
2
6ALU
vezérlés
Pl. SP = SP + 1
• SP B sín
• ALU: B+1 C
• C SP
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
memóriábamemóriából
Léptető vezé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
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 18
Pl. SP = SP + 1
• SP B sín
• ALU: B+1 C
• C SP
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
memóriábamemóriából
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
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 19
Pl. SP = SP + 1
• SP B sín
• ALU: B+1 C
• C SP
Vezérlő jelek
B sínre írja a regisztertC sínt a regiszterbe írja
memóriábamemóriából
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
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 20
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őjel kiterjesztéssel kerül a B sínre,• MBRU: MBR előjel nélküli kiterjesztéssel kerül a B sínre.
MAR
MDR
PC
MBR
mem
ória
Máté: Architektúrák 5. előadás 21
Léptető vezérlés
N
Z
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 2 jel: szó íráshoz/olvasáshoz
1 jel: bájt olvasáshoz.Összesen 29 jel szükséges
A 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. ábra)
6
2
ALUvezérlés
A B
Csín
Bsín
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 22
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 23
SP B sín; ALU C; C SP
Máté: Architektúrák 5. előadás 24
Memória ciklus
A memória ciklus az adatút végén kezdődik (a C sínről a regiszterek 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.
Az olvasás eredménye csak két ciklussal később használható az ALU-ban, 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.
MAR
MDR
PC
MBR
mem
ória
Máté: Architektúrák 5. előadás 25
Memória ciklus: MAR = LV; rd; TOS = MDR
Máté: Architektúrák 5. előadás 26
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 (ROM) a mikroprogram
tárolására
MIR
MPC
4-ről 16-ra dekódoló
A mikroprogram
Máté: Architektúrák 5. előadás 27
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.
NZ
6
2
A B
Csín
Bsín
ALU
MAR
MDR
PC
MBR
SP
LV
CPP
TOS
OPC
H
Léptető
mem
ória
Máté: Architektúrák 5. előadás 28
Mic-1: 4.6. ábra.
Addr J ALU C M B
9
9
512x36 bites vezérlőtár (ROM)
a mikroprogram tárolására
MIR
MPC
N
Z
MBR 8
JAMN/JAMZ
JMPC
1 bites flip-flopok
(N&JAMN) + (Z&JAMZ)
+
MPC új tartalmának kialakítása
Addr J ALU C M B
9
9
512x36 bites vezérlőtár (ROM)
a mikroprogram tárolására
MIR
MPC
N
Z
MBR 8
JAMN/JAMZ
JMPC
1 bites flip-flopok
(N&JAMN) + (Z&JAMZ)
+
1
2
3
Máté: Architektúrák 5. előadás 29
MPC új tartalma, JAMN/JAMZ • A 9 bites következő cím (Addr) az MPC-be kerül.• (JAMN ÉS N) VAGY (JAMZ ÉS Z) és MPC
legmagasabb bitjének logikai vagy kapcsolata képződik MPC legmagasabb helyértékén. 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 30
JAMN: if(LV-H < 0) goto L1; else goto L2
L2+
0x100=
L1
Máté: Architektúrák 5. előadás 31
MPC új tartalma, (JMPC )
• 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:
goto(MBR) vagy goto(MBR OR 0x100)
Kezdődhet az újabb mikroutasítás végrehajtása.
Máté: Architektúrák 5. előadás 32
JMPC: TOS=H+SP+1; goto(MBR)
Máté: Architektúrák 5. előadás 33
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 és (N), (Z)
mem. MDR és/vagyalapján módosul MPC
mem. MBR
• Memória ciklus indítása JMPC és (MBR) (rd, wr, fetch) alapján módosul MPC.
Máté: Architektúrák 5. előadás 34
Mic-1 programozá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 35
MAL (Micro Assembly Language )
SOURCE: a B sínre kötött regiszterek bármelyike: MDR, PC, MBRU (előjel nélküli - MBR Unsigned), 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.
NZ
6
2
A B
Csín
Bsín
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
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!
Máté: Architektúrák 5. előadás 37
Feltétlen ugrás:
goto Main1
Az Addr mezőbe Main1 címét kell írni.
Feltétlen ugrás MBR szerint (kapcsoló utasítás): Ilyenkor JMPC = 1
goto (MBR OR value)
value általában 0 vagy 0x100.
Máté: Architektúrák 5. előadás 38
Feltételes elágazás, pl.: TOS (Top Of Stack) alapjánZ = 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.
Az L1 és L2 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 39
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 40
A verem operandusok és az eredmény ideiglenes tárolására is használható (operandus verem), 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 41
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.
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 42
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 43
IJVM néhány utasítása: 4.11. ábra (részlet).
hex Mnemonic jelentés
10 BIPUSH 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 44
Java (C) IJVM program 4.14. ábra Bin. kódprogram
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 45
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 az utasítás kódját tartalmazza.A főciklus legelső mikroutasítása 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 46
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.
Máté: Architektúrák 5. előadás 47
A mikroutasítások elhelyezkedése a mikroprogram tárban (részlet)
0 8
1 9
2 A
3 B
4 C
5 D
6 E
7 F
0 NOP1 IAND3 POP3 SWAP2 SWAP3 SWAP4 SWAP5 SWAP6
8 LDC_W3 LDC_W4 IINC3 IINC4 IINC5 IINC6 IFLT2 IFLT3
10 BIPUSH1 BIPUSH2 BIPUSH2 LDC_W1 LDC_W2 ILOAD1 ILOAD2 ILOAD3
18 ILOAD4 ILOAD5 IFLT4 INVOKEV19 INVOKEV20 INVOKEV21 INVOKEV22 INVOKEV23
20 F F2
28
30 ISTORE1 ISTORE2
38 ISTORE3 ISTORE4 ISTORE5 ISTORE6
40
48
50 POP1
58 POP2 DUP1 DUP2 SWAP1
60 IADD1 IADD2 IADD3 ISUB1 ISUB2 ISUB3
68
70
78 IAND1 IAND2
80 IOR1 IOR2 IOR3 IINC1 IINC2 INVOKEV1 INVOKEV2
88 INVOKEV3 INVOKEV4 INVOKEV5 INVOKEV6 INVOKEV7 INVOKEV8 INVOKEV9 INVOKEV10
Máté: Architektúrák 5. előadás 48
Látható, 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 49
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 az utasítás kódját 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 50
Máté: Architektúrák 5. előadás 51
Feladatok
Ismertesse az PCI sínt!
Hogy használható több sín egy gépen belül?
Miért volt fontos az ISA sín megtartása fejlettebb sín alkalmazása esetén?
Hogy történik a PCI sín ütemezése?
Miért használnak külön sínt a memória eléréséhez?
Hogy illeszkedik a PCI sín a memória sínhez?
Máté: Architektúrák 5. előadás 52
FeladatokMilyen igények kielégítésére szolgál az általános
soros sín (USB)? Milyen vezetékeket tartalmaz az USB sín, és miért?Miért kényelmes az USB sín használata?Mi a központi elosztó (root hub), és hogy működik?Mi történik eszköz USB porthoz csatlakoztatásakor? Mit jelent egy eszköz konfigurálása?Mi a keret (frame), és milyen kereteket ismer?Mi a csomag, és milyen csomagokat ismer?Milyen irányban haladhatnak a csomagok?
Máté: Architektúrák 5. előadás 53
FeladatokMire szolgál a SOF csomag?Mire szolgál az IN/OUT csomag?Mire szolgál az ACK/NAK csomag?Mi a CRC? Mire szolgál a PCI Express? Hogy kapcsolódik a PCI Express a CPU-hoz?Hogy kapcsolódik a PCI Express az eszközökhöz?Milyen előnyei vannak a PCI Express-nek a sínnel
szemben? Milyen rétegei vannak a PCI Express protokollnak?
Máté: Architektúrák 5. előadás 54
FeladatokMi a mikroarchitektúra szint feladata?Hogy valósítja meg a feladatát?Mi az adatút?Milyen sínjei vannak a Mic-1 -nek?Mely regiszterek csatlakoznak az A sínhez?Mely regiszterek csatlakoznak a B sínhez?Mely regiszterek csatlakoznak a C sínhez?Milyen jelek szükségesek az adatút vezérléséhez?Mire szolgál az SP regiszter két vezérlő bemenete?Mire szolgál az MBR regiszter két vezérlő bemenete?
Máté: Architektúrák 5. előadás 55
FeladatokHogy történik a memóriából olvasás?Hogy történik a memóriába írás?Mire szolgál a MAR/MDR regiszter?Ha egy mikroutasítás módosítja MAR tartalmát, és
olvas a memóriából, akkor mely címről fog olvasni?Memóriából olvasás után mikor használható MDR új
értéke az adatúton illetve MPC meghatározásához?Mire szolgál a PC és az MBR regiszter?Mire szolgál az N és a Z regiszter?Mire szolgál a H regiszter?
Máté: Architektúrák 5. előadás 56
FeladatokMilyen memória műveletei vannak a Mic-1 -nek?Milyen jelek szükségesek a Mic-1 adatútjának
vezérléséhez?Hány jel szolgál az A sín vezérlésére?Hány jel szolgál a B sín vezérlésére?Hány jel szolgál az ALU és a léptető vezérlésére?Hány jel szolgál a C sín vezérlésére?Hány jel szolgál a memória elérésére?Milyen részei vannak a Mic-1 mikroutasításainak?Milyen részei vannak az adatút ciklusnak?
Máté: Architektúrák 5. előadás 57
FeladatokMilyen részei vannak a Mic-1 mikroutasításainak?Milyen típusú memória a mikroprogram tároló?Mire szolgál az MPC regiszter?Mire szolgál az MIR regiszter?Miért van szükség az Addr mezőre?Milyen részei vannak az adatút ciklusnak?Hány bit kell a B/C sín vezérléséhez?Mire szolgál a JMPN/JMPZ bit?Mire szolgál a JMPC bit?Hogy alakul ki MPC új tartalma?
Máté: Architektúrák 5. előadás 58
FeladatokMiért nem megengedett az
MAR = SP; rdMDR = H
utasítás pár?Hogy valósítható meg feltétlen ugrás a
mikroprogramban?Hogy valósítható meg feltételes ugrás a
mikroprogramban?Hogy valósítható meg kapcsoló utasítás a
mikroprogramban?
Máté: Architektúrák 5. előadás 59
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? A Mic-1 mely regisztere lehet az ALU bal/jobb
operandusa?Hova tárolhatja a Mic-1 az eredményt?Érvényes utasítás-e Mic-1-en a H=OPC-H? Miért?Érvényes utasítás-e Mic-1-en a H=H-OPC? Miért?
Máté: Architektúrák 5. előadás 60
FeladatokMilyen 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?Mi az operandus verem?
Máté: Architektúrák 5. előadás 61
FeladatokMinek a rövidítése az IJVM?Ismertesse az IJVM memóriamodelljét!Milyen utasításai vannak az IJVM-nek?Mi a BIPUSH/DUP/IADD/SWAP utasítás feladata?Mi a GOTO utasítás feladata?Mi a IFEQ/IF_ICMPEQ utasítás feladata?Hogy működik a Mic-1 főciklusa?Mit tartalmaz PC és MBR a főciklus indulásakor?Hogy valósítható meg Mic-1-en a NOP utasítás?Hogy valósítható meg Mic-1-en az IADD utasítás?