pci sín ütemezés (kiosztás): request, grant

61
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.

Upload: chars

Post on 09-Jan-2016

21 views

Category:

Documents


2 download

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 Presentation

TRANSCRIPT

Page 1: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 2: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 3: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 4: PCI  sín ütemezés (kiosztás): request, grant

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).

Page 5: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 6: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 7: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 8: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 9: PCI  sín ütemezés (kiosztás): request, grant

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

Page 10: PCI  sín ütemezés (kiosztás): request, grant

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

Page 11: PCI  sín ütemezés (kiosztás): request, grant

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

Page 12: PCI  sín ütemezés (kiosztás): request, grant

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

Page 13: PCI  sín ütemezés (kiosztás): request, grant

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

Page 14: PCI  sín ütemezés (kiosztás): request, grant

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ó).

Page 15: PCI  sín ütemezés (kiosztás): request, grant

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

Page 16: PCI  sín ütemezés (kiosztás): request, grant

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

Page 17: PCI  sín ütemezés (kiosztás): request, grant

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

Page 18: PCI  sín ütemezés (kiosztás): request, grant

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

Page 19: PCI  sín ütemezés (kiosztás): request, grant

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

Page 20: PCI  sín ütemezés (kiosztás): request, grant

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

Page 21: PCI  sín ütemezés (kiosztás): request, grant

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

Page 22: PCI  sín ütemezés (kiosztás): request, grant

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

Page 23: PCI  sín ütemezés (kiosztás): request, grant

Máté: Architektúrák 5. előadás 23

SP B sín; ALU C; C SP

Page 24: PCI  sín ütemezés (kiosztás): request, grant

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

Page 25: PCI  sín ütemezés (kiosztás): request, grant

Máté: Architektúrák 5. előadás 25

Memória ciklus: MAR = LV; rd; TOS = MDR

Page 26: PCI  sín ütemezés (kiosztás): request, grant

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

Page 27: PCI  sín ütemezés (kiosztás): request, grant

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

Page 28: PCI  sín ütemezés (kiosztás): request, grant

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

Page 29: PCI  sín ütemezés (kiosztás): request, grant

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

Page 30: PCI  sín ütemezés (kiosztás): request, grant

Máté: Architektúrák 5. előadás 30

JAMN: if(LV-H < 0) goto L1; else goto L2

L2+

0x100=

L1

Page 31: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 32: PCI  sín ütemezés (kiosztás): request, grant

Máté: Architektúrák 5. előadás 32

JMPC: TOS=H+SP+1; goto(MBR)

Page 33: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 34: PCI  sín ütemezés (kiosztás): request, grant

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).

Page 35: PCI  sín ütemezés (kiosztás): request, grant

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

Page 36: PCI  sín ütemezés (kiosztás): request, grant

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!

Page 37: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 38: PCI  sín ütemezés (kiosztás): request, grant

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

Page 39: PCI  sín ütemezés (kiosztás): request, grant

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

Page 40: PCI  sín ütemezés (kiosztás): request, grant

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

Page 41: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 42: PCI  sín ütemezés (kiosztás): request, grant

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

Page 43: PCI  sín ütemezés (kiosztás): request, grant

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

Page 44: PCI  sín ütemezés (kiosztás): request, grant

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:

Page 45: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 46: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 47: PCI  sín ütemezés (kiosztás): request, grant

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

Page 48: PCI  sín ütemezés (kiosztás): request, grant

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.

Page 49: PCI  sín ütemezés (kiosztás): request, grant

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

Page 50: PCI  sín ütemezés (kiosztás): request, grant

Máté: Architektúrák 5. előadás 50

Page 51: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 52: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 53: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 54: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 55: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 56: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 57: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 58: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 59: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 60: PCI  sín ütemezés (kiosztás): request, grant

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?

Page 61: PCI  sín ütemezés (kiosztás): request, grant

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?