Máté: Architektúrák4. előadás1 Vezérlés átadó utasítások Eljárásokkal kapcsolatos utasítások Eljárás hívás: CALLop; eljárás hívás - közeli:push IP, IP op, - távoli:push CS, push IP, (CS:IP) op. Visszatérés az eljárásból: RET; visszatérés a hívó programhoz (RETurn) - közeli:pop IP, - távoli:pop IP, pop CS. RET op;..., SP SP+op ; op csak közvetlen adat lehet!
Máté: Architektúrák4. előadás2 Feltétlen vezérlés átadás (ugrás) JMP op; ha op közeli: IP op, ; ha távoli:(CS:IP) op.
Máté: Architektúrák4. előadás3 Feltételes ugrások, aritmetikai csoport ElőjelesRelációElőjel nélküli JZ ≡ JE= JNZ ≡ JNE≠ JG ≡ JNLE>JA ≡ JNBE JGE ≡ JNL≥JAE ≡ JNB ≡ JNC JL ≡ JNGE<JB ≡ JNAE ≡ JC JLE ≡ JNG≤JBE ≡ JNA A feltételek: Zero, Equal, No (Not), Greater, Less, Above, Below, Carry
Máté: Architektúrák4. előadás4 A feltételek: Zero, Equal, No (Not), Carry, Sign, Overflow, Parity Even, Parity Odd. Feltételes ugrások, logikai csoport a flag igaz (1)flaga flag hamis (0) JZ ≡ JEZeroJNZ ≡ JNE JCCarryJNC JSSignJNS JOOverflowJNO LP ≡ JPEParityJNP ≡ JPO JCXZCX = 0
Máté: Architektúrák4. előadás5 Minden feltételes vezérlés átadás IP relatív címzéssel (SHORT) valósul meg! Pl.: JZMESSZE; Hibás, ha ; MESSZE messze van Megoldás: JNZIDE; Negált feltételű ugrás JMPMESSZE IDE:...
Máté: Architektúrák4. előadás6 Ciklus szervező utasítások IP relatív címzéssel (SHORT) valósulnak meg. LOOPipr; CX CX – 1, ugrás ipr -re, ; ha CX 0 LOOPZipr; CX CX – 1, ugrás ipr -re, ; ha (CX 0 és Z=1) LOOPEipr; ugyanaz mint LOOPZ LOOPNZipr; CX CX – 1, ugrás ipr -re, ; ha (CX 0 és Z=0) LOOPNEipr; ugyanaz mint LOOPNZ
Máté: Architektúrák4. előadás7 ; B = A n-dik hatványa, ; A és n előjel nélküli byte, B word ; Feltétel: A n-1 –dik hatványa elfér AL –ben. movcl, n; a ciklus előkészítése xorch, ch moval, 1; lehetne:mov ax, 1 xorah, ah; akkor ez nem kell JCXZkesz; ha n=0, akkor 0-szor ; fut a ciklus mag c_mag:mulA; ciklus mag LOOPc_mag; ismétlés, ha kell kesz:movB, ax
Máté: Architektúrák4. előadás8 ; A 100 elemű array nevű tömbnek van-e ;3-tól különböző eleme? movcx, 100 movdi, -1; előbb lehessen inc, mint cmp moval, 3 NEXT: incdi cmparray[di], al ; array di-edik eleme = 3? LOOPENEXT; ugrás NEXT-re, ; ha CX 0 és a di-edik elem=3 JNENEM3; CX = 0 vagy array[di] 3...; array 3... NEM3:...; di az első 3-tól különböző...; elem indexe
Máté: Architektúrák4. előadás9 String kezelő utasítások Az s forrás területet (DS:SI), a d cél területet pedig (ES:DI) címzi. Az utasítás végződése (B / W) vagy az operandus jelzi, hogy bájtos vagy szavas a művelet. A címzésben résztvevő indexregiszterek értéke 1-gyel módosul bájtos, 2-vel szavas művelet esetén. Ha a D (Direction) flag értéke 0, akkor az indexregiszterek értéke növekszik, 1, akkor csökken. CLD; D 0 STD; D 1
Máté: Architektúrák4. előadás10 Az alábbi utasítások – mint általában az adat mozgató utasítások – érintetlenül hagyják a flag-eket Átvitel az (ES:DI) által mutatott címre a (DS:SI) által mutatott címről: MOVSB; MOVe String Byte MOVSW; MOVe String Word MOVSd,s; MOVe String (byte vagy word) d és s csak azt mondja meg, hogy bájtos vagy szavas az átvitel!
Máté: Architektúrák4. előadás11 Betöltés AL-be illetve AX-be a (DS:SI) által mutatott címről (csak SI módosul): LODSB; LOaD String Byte LODSW; LOaD String Word LODSs; LOaD String (byte vagy word) Tárolás az (ES:DI) által mutatott címre AL-ből illetve AX-ből (csak DI módosul): STOSB; STOre String Byte STOSW; STOre String Word STOSd; STOre String (byte vagy word)
Máté: Architektúrák4. előadás12 Az alábbi utasítások beállítják a flag-eket Az (ES:DI) és a (DS:SI) által mutatott címen lévő byte illetve szó összehasonlítása, a flag-ek s – d (!!!) értékének megfelelően állnak be. CMPSB; CoMPare String Byte CMPSW; CoMPare String Word CMPSd,s; CoMPare String (byte vagy word) Az (ES:DI) által mutatott címen lévő byte (word) összehasonlítása AL-lel (AX-szel), a flag-ek AL – d (AX – d) értékének megfelelően állnak be. SCASB; SCAn String Byte SCASW; SCAn String Word SCASd; SCAn String (byte vagy word)
Máté: Architektúrák4. előadás13 Ismétlő prefixumok REP REPZ REPE és REPNZ REPNE A Z, E, NZ és NE végződésnek hasonló szerepe van, mint a LOOP utasítás esetén. Ismétlő prefixum használata esetén a string kezelő utasítás CX-szer kerül(het) végrehajtásra: ha CX = 0, akkor egyszer sem(!!!), különben minden végrehajtást követően 1-gyel csökken a CX regiszter tartalma. Amennyiben CX csökkentett értéke 0, akkor nem történik további ismétlés. A flag beállító string kezelő utasítás ismétlésének további feltétele, hogy a flag állapota megegyezzen a prefixum végződésében előírttal.
Máté: Architektúrák4. előadás14 Ismétlő prefixumok REP REPZ REPE és REPNZ REPNE A program jobb olvashatósága érdekében flag-et nem állító utasítások előtt mindig REP-et használjunk, flag-et beállító utasítás előtt pedig sohase REP-et, hanem helyette a vele egyenértékű REPE-t vagy REPZ-t!
Máté: Architektúrák4. előadás15 A LOOP utasítás ismertetésénél bemutatott feladat megoldása string kezelő utasítás segítségével : ; A 100 elemű array nevű tömbnek van-e ; 3-tól különböző eleme? movcx,100 movdi,offset array MOVAL,3 REPESCASarray; array 0., 1.,... eleme = 3? JNENEM3...; array 3,... NEM3:DECDI; DI az első 3 elemre mutat...
Máté: Architektúrák4. előadás16 Megjegyzések: - A mostani megoldás használja az ES szegmens regisztert, és feltételeztük, hogy a tartalma jó. - A két megoldás közötti eltérés nem minden pontban lényeges, pl. az első változat úgy is elkészíthető lett volna, hogy ott is movdi,offset array szerepeljen, de a mostani megoldásnál ez az utasítás kötelező! - A mostani megoldás lényegesen gyorsabb végrehajtást biztosít, mint a korábbi.
Máté: Architektúrák4. előadás17 Párhuzamosítás: utasítás vagy processzor szintű. Utasítás szintű: szállítószalag, csővezeték (pipelining). Kezdetben: Utasítás beolvasásUtasítás végrehajtás Minden fázist külön hardver hajt végre (2.4. ábra), ezek párhuzamosan működhetnek (szerelő csarnok). utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység utasítás végrehajtó egység eredmény visszaíró egység S1 S2 S3 S4 S5
Máté: Architektúrák4. előadás18 Késleltetés (latency): mennyi ideig tart egy utasítás. Áteresztőképesség (processor bandwidth): hány MIPS (Million Instruction Per Second) a sebesség. A végrehajtás alatt lévő utasítás sorszáma S1: S2: S3: … S4: S5:12345 idő …
Máté: Architektúrák4. előadás19 Több szállítószalagos CPU Két szállítószalag (2.5. ábra): Két ALU, de közös regiszterek, A két szállítószalag lehet különböző is (Pentium): fő – ez többet tud, elsőbbséget élvez – és mellék Bonyolult szabályok a párhuzamos végrehajthatóságra (fordítók vagy hardver). S1 S2 S3 S4 S5 utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység utasítás végrehajtó egység eredmény visszaíró egység utasítás dekódoló egység operandus beolvasó egység utasítás végrehajtó egység eredmény visszaíró egység
Máté: Architektúrák4. előadás20 Szuperskaláris processzor 5 funkcionális egységgel: S1 S2 S3 S5 utasítás beolvasó egység utasítás dekódoló egység operandus beolvasó egység ALU eredmény visszaíró egység S4 ALU LOAD STORE lebegő- pontos egység 2.6. ábra
Máté: Architektúrák4. előadás21 Processzor szintű párhuzamosítás Tömb (array) processzor (2.7. ábra) Vezérlő egység Teríti az utasításokat processzor memória 8*8-as processzor/memória rács sok azonos processzor (ILLIAC IV: (4*)8*8), mindnek saját memóriája. Vezérlő processzor adja ki a feladatot. Mindegyik processzor ugyanazt csinálja, de a saját adatain. Már nem divatos (drága, nehéz kihasználni).
Máté: Architektúrák4. előadás22 Vektor processzorok Vektor regisztereket használnak. A vektor regiszter több hagyományos regiszterből áll. Gyors szállítószalag gondoskodik a regiszterek feltöltéséről, szintén gyors szállítószalag továbbítja a regiszterek tartamát az aritmetikai egységbe, pl. a vektor regiszterek összeadásához. Az eredmények szintén vektor regiszterbe kerülnek. Jól kombinálhatók hagyományos processzorokkal.
Máté: Architektúrák4. előadás23 Multiprocesszorok CPU … közös memória A közös memória megkönnyíti a feladat megosztását. Csak közös memória. Nagyon terheli a memória sínt. Lokális memória is van. Sok (>64) processzoros rendszert nehéz építeni a közös memória miatt. CPU … közös memória helyi memóriák
Máté: Architektúrák4. előadás24 Multiszámítógépek: Nincs közös memória: A CPU-k üzenetekkel kommunikálnak egymással. Néhány μs üzenet idő. 2-3 dimenziós hálók, fák, gyűrűk. Közel es rendszer is van.
Máté: Architektúrák4. előadás25 Gyorsító tár (cache – ábra) A processzorok mindig gyorsabbak a memóriáknál. Feloldási lehetőség: a központi memória egy kis részét (gyorsító tár) a CPU lapkára helyezni: Amikor egy utasításnak adatra van szüksége, akkor először itt keresi, ha nincs itt, akkor a központi memóriában. Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz (ciklus, mátrix manipulálás, …). Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor - cashe line) kerül beolvasásra a memóriából a gyorsító tárba.
Máté: Architektúrák4. előadás26 Találati arány (h): az összes hivatkozás mekkora hányada szolgálható ki a gyorsító tárból. Hiba arány: 1-h. Ha a gyorsító tár elérési ideje: c, a memória elérési ideje: m, akkor az átlagos elérési idő = c + (1- h) m. A gyorsító tár mérete: nagyobb tár – drágább. A gyorsító sor mérete: nagyobb sor – nagyobb a sor betöltési ideje is.
Máté: Architektúrák4. előadás27 Osztott (külön utasítás és adat) gyorsító tár előnyei: Egyik szállítószalag végzi az utasítás, másik az operandus előolvasást. Az utasítás gyorsító tárat sohasem kell visszaírni (az utasítások nem módosulnak). Közös gyorsító tár: párhuzamosítás nem lehetséges. Hierarchia: elsődleges, a CPU lapkán, másodlagos, a CPU-val egy tokban, külön tokban.
Máté: Architektúrák4. előadás28 Direkt leképezésű gyorsító tár működése: (4_38_abrahoz) Bitek: bites cím:TAGVonal (Line)SZÓBÁJT EntryVTAGData 2047 …… 1 0 Ha a gyorsító tár Vonal által mutatott sorában V=1 (valid), és a TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a sorban).
Máté: Architektúrák4. előadás29 Halmaz kezelésű gyorsító tár Ha egy program gyakran használ olyan szavakat, amelyek távol vannak egymástól, de ugyanoda képződnek le a gyorsító tárban, akkor sűrűn kell cserélni a gyorsító sort. Ha minden címhez n bejegyzés van, akkor n utas halmazkeresésű gyorsító tárról beszélünk. Ritka a több, mint 4 utas kezelés. LRU (Least Recently Used) algoritmus: gyorsító sor betöltése előtt a legrégebben használt bejegyzés kerül ki a gyorsító tárból.
Máté: Architektúrák4. előadás30 Halmaz kezelésű gyorsító tár (4.39. ábra) Ha a gyorsító tár Vonal által mutatott sorában az A, B, C és D bejegyzések egyikében V=1 (valid), és a hozzá tartozó TAG megegyezik a címben lévő TAG-gel, akkor az adat bent van a gyorsító tárban (ebben a bejegyzésben). EntryVTagDataVTagDataVTagDataVTagData 2 k A bejegyzés B bejegyzés C bejegyzés D bejegyzés
Máté: Architektúrák4. előadás31 Memóriába írás Stratégiák: Írás áteresztés (write through): az írás a memóriába történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort. Késleltetett írás (write deferred, write back): ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél. Ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük: írás allokálás (write allocation) – többnyire ezt alkalmazzák késleltetett írás esetén.
Máté: Architektúrák4. előadás32 Memória hierarchia (2.18. ábra) Elérési idő: néhány nanosec 100 msec Kapacitás: néhány bájt néhány száz GB regiszterek Gyorsító tár Központi memória Mágneslemez Szalag Optikai lemez
Máté: Architektúrák4. előadás33 CPU (Central Processing Unit) Általában egyetlen lapkán van. Lábakon keresztül kommunikál a többi egységgel (3.33. ábra). címzés adat sín vezérlés megszakítások sín kiosztás segéd processzor állapot segéd információk Φ +5V földelés órajel tápfeszültség CPU
Máté: Architektúrák4. előadás34 Lábak (pins) három típusa: cím, adat, vezérlés. Ezek párhuzamos vezetékeken, az un. sínen keresztül kapcsolódnak a memória, az I/O egységek hasonló lábaihoz. címzés adat sín vezérlés megszakítások sín kiosztás segéd processzor állapot segéd információk Φ +5V CPU
Máté: Architektúrák4. előadás35 Lényeges a cím- és adatlábak száma (3.33. ábra): Ha m címláb van, akkor 2 m memóriarekesz érhető el (tipikus m = 16, 20, 32, 64). Ha n adatláb van, akkor egyszerre n bit olvasható illetve írható (tipikus n = 8, 16, 32, 36, 64). címzés adat sín vezérlés megszakítások sín kiosztás segéd processzor állapot segéd információk Φ +5V CPU
Máté: Architektúrák4. előadás36 Óra, áram (3.3 v. 5V), föld, továbbá vezérlőlábak: sín vezérlés (bus control): mit csináljon a sín, megszakítások, sín kiosztás (ütemezés, egyeztetés – bus arbitration): kinek dolgozzon a sín, segéd processzor vezérlése, jelzései, állapot, egyebek. címzés adat sín vezérlés megszakítások sín kiosztás segéd processzor állapot segéd információk Φ +5V CPU
Máté: Architektúrák4. előadás37 Pl. utasítás betöltése: A CPU kéri a sín haszálat jogát, Az utasítás címét a cím lábakra teszi, vezérlő vonalon informálja a memóriát, hogy olvasni szeretne, a memória a kért szót az adat vonalakra teszi, kész jelzést tesz egy vezérlő vonalra, a CPU végrehajtáshoz átveszi az utasítást. címzés adat sín vezérlés megszakítások sín kiosztás segéd processzor állapot segéd információk Φ +5V CPU
Máté: Architektúrák4. előadás38 Sín (bus): Korai személyi számítógépeknél egyetlen (külső) rendszersín, manapság legalább kettő van: egy belső és egy külső (I/O), ábra. sínvezérlő memória lemez modemnyomtató memória- sín B/K sín CPU lapka regiszterek Lapkán belüli sinek ALU
Máté: Architektúrák4. előadás39 Sínprotokoll: a sín működésének + a csatlakozások mechanikai, elektronikus definíciója Mesterek (masters): aktív (kezdeményező) berendezések (CPU, lemez vezérlő). Szolgák (slaves): passzív (végrehajtó) berendezések (lemez vezérlő, CPU), ábra. Ez a szereposztás tranzakciónként eltérő lehet. MesterSzolgapélda CPUSegéd proc.CPU felkínálja az utasítást Segéd proc.CPUSegéd proc. kéri az operandusokat A memória sohasem lehet mester!
Máté: Architektúrák4. előadás40 A sínhez kapcsolódó lapkák lényegében erősítők. Mester – sín vezérlő (bus driver) – sín. Sín – sín vevő (bus receiver) – szolga. Mester–szolgáknál: sín adó-vevő (bus tranceiver). A csatlakozás gyakran tri-state device vagy open collector – wired-OR segítségével történik. Sávszélesség: (továbbítható bitek száma) / sec. Sávszélesség növelése: Gyorsítás: probléma a sín aszimmetria (skew), kompatibilitás. Sínszélesség: szélesebb sín drágább, kompatibilitás.
Máté: Architektúrák4. előadás41 Sínszélesség (pl. IBM PC: 3.36., ábra) bites cím vezérlés bites bites ábra. A cím szélességének növekedése az elmúlt időszakban
Máté: Architektúrák4. előadás42 Sokszorozott (multiplexed) sín: pl. először a cím van a sínen (ugyanazokon a vezetékeken), majd az adat. Ilyenkor a sín szélesség lényegesen csökken (olcsóbb, kevesebb láb szükséges a sínhez való csatlakozáshoz), csökken a sáv szélesség is, de nem olyan mértékben, és általában bonyolultabb a sín protokoll is. Gyorsabb CPU gyorsabb sínt igényel! Kívánság: PC cseréjénél megmaradhasson a régi perifériák egy része: az új gépben is kell a régi sín! Sínek szabványosítása. Egy gépen belül több sín is használható: ábra.
Máté: Architektúrák4. előadás ábra. Egy tipikus modern PC PCI, SCSI és ISA sínnel SCSI- szkenner SCSI- lemez SCSI- vezérlő Video vezérlő Hálózati vezérlő PCI-híd CPU Gyorsító tár Központi memória Nyomtató vezérlő HangkártyaISA-hídModem PCI sín SCSI sín Memória sín ISA sín
Máté: Architektúrák4. előadás44 Alaplap (motherboard, parentboard, ábra) Rajta van a CPU, sín(ek), ezen illesztő helyek (slots) a memória és a beviteli/kiviteli (Input/Output – I/O) eszközök számára (2.28. ábra). I/O eszköz: maga az eszköz + vezérlő (controller) külön kártyán vagy az alaplapon (2.29. ábra).
Máté: Architektúrák4. előadás45
Máté: Architektúrák4. előadás46 Sínek időzítése Szinkron sín: a sín egy vezetékén lévő 5 – 100 MHz- es órajel vezérel. Minden síntevékenység az órajelhez van igazítva. Síntevékenységek: cím megadása, vezérlőjelek (MREQ#, RD#, WAIT#), adat megérkezése, … (3.37. ábra) JelölésTevékenységminmaxidő T AD Cím megérkezési ideje a sínre11ns T ML Cím a sínen van MREC# előtt6ns ……………
Máté: Architektúrák4. előadás47 adat A kiolvasandó rekesz címe T AD T ML T 1 T 2 T 3 Olvasási ciklus 1 várakozó állapottal Minimális válasz idő Φ cím adat MREQ# RD# WAIT# Kicsit hosszabb válasz idő esetén még egy várakozó ciklusra lenne szükség.
Máté: Architektúrák4. előadás48 Minden sínművelet a ciklusidő (sín ciklus) egész számú többszöröséig tart: pl. 2.1 ciklusidő helyett 3 ciklusidő kell. A leglassabb eszközhöz kell a sín sebességét igazítani, a gyors eszköz is lassan fog működni.
Máté: Architektúrák4. előadás49 Aszinkron sín: Minden eseményt egy előző esemény okoz! Nincs órajel, WAIT. MSYN# (kérés - Master SYNchronization), SSYN# (kész - Slave SYNchronization). Akkor indulhat újabb tranzakció, ha SSYN# negált. Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák4. előadás50 Aszinkron sín működése (3.38. ábra) A kiolvasandó rekesz címe adat cím MREQ# RD# MSYN# adat SSYN#
Máté: Architektúrák4. előadás51 Teljes kézfogás (full handshake): Akkor indulhat, ha SSYN# negált! Mester: kívánságok beállítása, majd MSYN#, vár, Szolga: látja MSYN#-t: dolgozik, majd SSYN#, vár, Mester: látja SSYN# -t (kész), dolgozik, ha kell, majd negálja MSYN# -t, Szolga: látja MSYN# negálását, negálja SSYN# -t. Ugyanazon a sínen gyors és lassú mester - szolga pár is lehet.
Máté: Architektúrák4. előadás52 Sín ütemezés (kiosztás) Ha egyszerre többen is igénylik a sínt (CPU, I/O vezérlő), akkor a sín ütemező (bus arbiter) dönt. Általában I/O elsőbbséget kap (cikluslopás).
Máté: Architektúrák4. előadás53 Sín ütemezés (kiosztás – bus arbitration) Centralizált (3.39. ábra): (margaréta) láncolás (daisy chaining), egy vagy többszintű lehet. Ha van kérés és a sín szabad: sín foglalási engedély. Néha további vezeték van az engedély fogadásának jelzésére (újabb sín kérés kezdődhet a sín használata közben). ütemező Sín foglalás kérés Sín foglalás engedélyezés Csak akkor engedi tovább a jelet, ha nem kérte a sínt
Máté: Architektúrák4. előadás54 decentralizált - pl. 16 prioritású: 16 eszközhöz 16 kérés vonal, minden eszköz minden kérés vonalat figyel, tudja, hogy a saját kérése volt-e a legmagasabb prioritású ábra: ha nem foglalt és be, akkor lefoglalhatja a sínt (ki negálása, foglalt beállítása) Sín foglalás kérés Ütemezési vonal Foglalt
Máté: Architektúrák4. előadás55 Sín műveletek Az eddigiek közönséges sín műveletek voltak. Blokkos átvitel (3.41. ábra): A kezdő memória címen kívül az adat sínre kell tenni a mozgatandó adatok számát. Esetleges várakozó ciklusok után ciklusonként egy adat mozgatása történik. Megszakítás kezelés: később tárgyaljuk részletesen. Több processzoros rendszerekben: olvasás – módosítás – visszaírás ciklus: szemafor.
Máté: Architektúrák4. előadás56 Példák sínekre Az első IBM PC (3.36. ábra) 62 vonalas (vezeték, line), 20 címnek, 8 adatnak, DMA, megszakítás … PC/AT szinkron sín (3.49. ábra): további 36 vezeték (24 címnek, 16 adatnak, … ). ISA (Industry Standard Architecture) lényegében 8.33 MHz-es PC/AT sín (sávszélesség: 16.7 MB/s). EISA (Extended ISA) 32 bitesre bővített ISA (sávszélesség: 33.3 MB/s). Színes TV-hez 135 MB/s sávszélesség kellene (1024*768 pixel, 3 bájt*2, 30 kép/sec). lemez memória képernyő
Máté: Architektúrák4. előadás57 PCI (Peripheral Component Interconnect): 32 bites adat átvitel (33,3 MHz, sávszélesség: 132 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.50. vagy ábra): Belső sín, PCI híd, PCI sín, ISA híd, ISA sín.
Máté: Architektúrák4. előadás ábra. Egy tipikus Pentium II rendszer architektúrája SCSIUSB Grafikus illesztő PCI-híd CPU Gyorsító tár Fő 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érBillentyű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ák4. előadás59 PCI sín ütemezés (kiosztás): request, grant. PCI ütemező PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# PCI eszköz REQ# GNT# ábra. A PCI sín centrális ütemezőt használ.
Máté: Architektúrák4. előadás60 Általános soros sín (USB) Igény: bármikor könnyen lehessen perifériát kapcsolni a géphez, ne kelljen újra boot-olni, ne kelljen áramellátásról gondoskodni, … Plug ‘n Play perifériák. USB (Universal Serial Bus - általános soros sín): Négy vezeték: adatok (2), tápfeszültség (1), föld (1). A központi elosztó (root hub) 1 ms-onként üzenetekkel (frame, á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ák4. előadás61 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ák4. előadás62 A keret lehet Control – vezérlő: Eszköz konfigurálás, Paracs, Á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ák4. előadás63 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ák4. előadás64 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ák4. előadás65 Feladatok Hova helyezi el a visszatérési címet a CALL utasítás? Honnan „tudja” a RET utasítás, hogy közeli vagy távoli ugrással kell visszatérni az eljárásból? Mi a közös jellemzője a feltételes ugró utasításoknak? Sorolja fel az aritmetikai csoportba tartozó feltételes ugró utasításokat! Milyen ciklus szervező utasításokat ismer? Hogy működnek?
Máté: Architektúrák4. előadás66 Feladatok Milyen string kezelő utasításokat ismer? Mely string kezelő utasítások módosítják/nem módosítják a flag-eket? Hogy állítja be a flag-eket a CMPSB utasítás? Mi a szerepe a string kezelő utasításokban az operandusoknak? Milyen ismétlő prefixumokat ismer?
Máté: Architektúrák4. előadás67 Feladatok Az alábbi feladatok megoldásában használjon ismétlési prefixumot! Állapítsa meg egy 0-ra végződő string hosszát! Keresse meg egy 0-ra végződő string-ben az A betű első/utolsó előfordulását (ha van)! Állapítsa meg, hogy egy 0-ra végződő string-ben előfordul-e az ABC jelsorozat! Töltse fel az n bájt hosszúságú bájt vektort az ABC mintával! Írjon eljárást egy n bájt hosszúságú forrás terület cél területre másolására (a két terület átfedhet)!
Máté: Architektúrák4. előadás68 Feladatok Mi a tömb processzor lényege? Mi a vektor processzor lényege? Hogy működik a direkt leképezésű gyorsító tár? Mik az osztott gyorsító tár előnyei? Mi a szerepe a találati aránynak? Mi a sínprotokoll? Mi a mester, és mi a szolga? Mit jelent a sokszorozott (multiplexed) sín? Hogy működik a szinkron/aszinkron sín?
Máté: Architektúrák4. előadás69 Feladatok Milyen sínt ismer? Mit jelent a sín ütemezés? Milyen sín ütemezőket ismer? Mi az általános soros sín lényege, haszna?