610 likes | 713 Views
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ú,
E N D
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. 5. előadás
REQ#GNT# REQ#GNT# REQ#GNT# REQ#GNT# PCI ütemező PCI eszköz PCI eszköz PCI eszköz PCI eszköz PCI sín ütemezés (kiosztás): request, grant. 3.54. ábra. A PCI sín centrális ütemezőt használ. 4. előadás
Á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. 5. előadás
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). 5. előadás
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. 5. előadás
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. 5. előadás
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. 5. előadás
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. 5. előadás
Gyorsító tár sín CPU Memória sín Másodlagos gyorsító tár Fő memória Gyorsító tár PCI-híd PCI sín IDE diszk Szabad PCI bővítő hely Grafikus illesztő SCSI USB ISA-híd Egér Billentyűzet Monitor ISA sín Szabad ISA bővítő helyek Monitor Hangkártya Nyomtató 3.52. ábra.Egy korai Pentium rendszer architektúrája 5. előadás
Monitor Lokális sín Grafikuskártya AGP sín Pentium 4 CPU Memóriasín 1. szintű gyorsítótárak D I Főmemória Csatolólapka 2. szintű gyorsítótár Szabad bővítőhely SCSI USB 2 ATAPI vezérlő Mágneslemez-egység DVD-meghajtó Egér Billen-tyűzet PCI sín 3.53. ábra.Egy modern Pentium 4 rendszer sín struktúrája 5. előadás
PCI Express Csatoló lapka 2. szintű gyorsítótár CPU Memória Soros kapcsolatot biztosító csatorna párok Egy csatorna csak két vezeték Kapcsoló Mágnes-lemezek Hálózat Grafika Egyéb USB 2 3.57. ábra.Egy tipikus PCI Express rendszer vázlata 5. előadás
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 5. előadás
3.58. ábra.A PCI Express protokollrendszer A csomagok formátuma Fejléc cím, magas/alacsony prioritás, … Seq# az üzenet sorszáma CRC 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. 5. előadás
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ó). 5. előadás
Mic-1 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. memória MAR MDR PC MBR SP LV CPP TOS OPC H Memória vezérlő regiszterek Vezérlő jelek B sínre írja a regisztertC sínt a regiszterbe írja memóriábamemóriából Bsín Csín B A N 1, ha az eredmény < 0, különben 0, 6 Z 1, ha az eredmény = 0, különben 0. ALU ALUvezérlés 2 Léptető vezérlés Léptető 5. előadás
Pl. SP = SP + 1 • SPB sín • ALU: B+1 C • C SP memória MAR MDR PC MBR SP LV CPP TOS OPC H Memória vezérlő regiszterek Vezérlő jelek B sínre írja a regisztertC sínt a regiszterbe írja memóriábamemóriából Bsín Csín B A N 1, ha az eredmény < 0, különben 0, 6 Z 1, ha az eredmény = 0, különben 0. ALU ALUvezérlés 2 Léptető vezérlés Léptető 5. előadás
Pl. SP = SP + 1 • SP B sín • ALU:B+1 C • C SP memória MAR MDR PC MBR SP LV CPP TOS OPC H Memória vezérlő regiszterek Vezérlő jelek B sínre írja a regisztertC sínt a regiszterbe írja memóriábamemóriából Bsín Csín B A N 1, ha az eredmény < 0, különben 0, 6 Z 1, ha az eredmény = 0, különben 0. ALU ALUvezérlés 2 Léptető vezérlés Léptető 5. előadás
Pl. SP = SP + 1 • SP B sín • ALU:B+1 C • C SP memória MAR MDR PC MBR SP LV CPP TOS OPC H Memória vezérlő regiszterek Vezérlő jelek B sínre írja a regisztertC sínt a regiszterbe írja memóriábamemóriából Bsín Csín B A N 1, ha az eredmény < 0, különben 0, 6 Z 1, ha az eredmény = 0, különben 0. ALU ALUvezérlés 2 Léptető vezérlés Léptető 5. előadás
Pl. SP = SP + 1 • SP B sín • ALU: B+1 C • C SP memória MAR MDR PC MBR SP LV CPP TOS OPC H Memória vezérlő regiszterek Vezérlő jelek B sínre írja a regisztertC sínt a regiszterbe írja memóriábamemóriából Bsín Csín B A N 1, ha az eredmény < 0, különben 0, 6 Z 1, ha az eredmény = 0, különben 0. ALU ALUvezérlés 2 Léptető vezérlés Léptető 5. előadás
memória MAR MDR PC MBR 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. 5. előadás
Az adatút vezérlése (4.1. ábra) memória MAR MDR PC MBR SP LV CPP TOS OPC H Bsín Csín B A 6 ALU ALUvezérlés 2 Léptető 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, összesen 24 vezérlő jelre van szükség. N Z Léptető vezérlés 5. előadás
Mikroutasítások 24 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. NEXTADDRESS JMPC JAMNJAMZSLL8SRA1F0F1ENAENBINVAINCHOPCTOSLVSPPCMDRMARWRITEREADFETCHB sín 5. előadás
SP B sín; ALU C; C SP 5. előadás
memória MAR MDR PC MBR 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. 5. előadás
Memória ciklus: MAR = LV; rd; TOS = MDR 5. előadás
A mikroprogram MPC 9 512x36 bites vezérlőtár (ROM) a mikroprogram tárolására MIR 4-ről 16-ra dekódoló 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. 5. előadás
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. memória MAR MDR PC MBR SP LV CPP TOS OPC H Bsín Csín B A 6 N Z ALU 2 Léptető 5. előadás
MPC új tartalmának kialakítása 1 2 3 MPC MPC 9 9 512x36 bites vezérlőtár (ROM)a mikroprogram tárolására 512x36 bites vezérlőtár (ROM)a mikroprogram tárolására MIR MIR 9 9 + + Mic-1:4.6. ábra. 8 8 MBR MBR (N&JAMN) + (Z&JAMZ) (N&JAMN) + (Z&JAMZ) JMPC JMPC JAMN/JAMZ JAMN/JAMZ N N 1 bites flip-flopok 1 bites flip-flopok Z Z 5. előadás
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. 5. előadás
JAMN: if(LV-H < 0) goto L1; else goto L2 L2+ 0x100= L1 5. előadás
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 0Felté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. 5. előadás
JMPC: TOS=H+SP+1; goto(MBR) 5. előadás
Mic-1 működése (MPC) MIR regiszter B sín, AddrMPC ALU, léptető megtudja, mit kell csináljon, eredmény C, N, Z C regiszterekbe JAMN, JAMZ és (N), (Z) mem. MDR és/vagy alapján módosul MPC mem. MBR Memória ciklus indítása JMPC és (MBR) (rd, wr, fetch) alapján módosul MPC. 5. előadás
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). 5. előadás
memória MAR MDR PC MBR SP LV CPP TOS OPC H Bsín Csín B A 6 N Z ALU 2 Léptető 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. 5. előadás
Nem megengedett pl. az alábbi utasítás pár: MAR = SP; rd MDR = H // A memóriából is most kapna értéket! 5. előadás
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 ORvalue) value általában 0 vagy 0x100. 5. előadás
Feltételes elágazás, pl.: TOS (Top Of Stack) alapján Z = TOS ; if (Z) goto L1; else goto L2 // Z=1, ha TOS=0, különben Z=0. esetén a mikroprogram az L20x092 címen folytatódik, ha Z = 0, L10x192 címen folytatódik, ha Z = 1. Az L1 és L2 címek különbsége 256 (0x100) kell legyen (4.7. ábra)! 5. előadás
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). 5. előadás
A verem operandusok és az eredmény ideiglenes tárolására is használható (operandus verem), pl. (4.9. ábra): a1 = a2 + a3 5. előadás
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. 5. előadás
Konstansok, mutatók Tartalma a program betöltésekor alakul ki, ISA utasítások nem írhatják felül Verem lokális változók és operandus verem Program PC bájtot címez a metódus területen belül Az IJVM memóriamodellje (4.10. ábra) A 4 GB memória, 1 G szóként is szervezhető. 5. előadás
IJVM néhány utasítása: 4.11. ábra (részlet). 5. előadás
Java (C) IJVM program4.14. ábra Bin. kód program 1 ILOAD j // i = j + k 15 02 2 ILOAD k 15 03 i = j + k; 3 IADD 60 if(i = = 3) 4 ISTORE i 36 01 k = 0; 5 ILOAD i // if(i = = 3) 15 01 else 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: 5. előadás
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. 5. előadás
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. 5. előadás
A mikroutasítások elhelyezkedése a mikroprogram tárban (részlet) 5. előadás
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. 5. előadás
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. 5. előadás