Digitális Logika szintje Sínek
Sínek Sínt nem csak az I/O eszközök használják hanem a CPU is Ha egyszerre akarják használni? Sínütemező lapka eldönti kié a sín Többnyire I/O eszközök kapnak elsőbbséget lemezeket, mozgó alkatrészeket nem lehet leállítani adatvesztés jöhet Szabad sínidőben a CPU kommunikál, de ha egy I/O eszköz kéri a sínt, megkapja cikluslopás
Sínek Ahogy a CPU, memória és I/O eszközök gyorsultak, a sín nem bírta az iramot Zárt rendszerben lehet teljesen új sínt létrehozni, ez nem baj, de: PC-knél azonban egy csomó eszközt tovább akarnak az emberek használni (nyomtató, szkenner, stb ) Gyártóknak sem érdeke hogy a régi szabványok helyett teljesen újak jöjjenek (és az eddigi eszközeiket senki sem használja tovább)
Sínek Egy megoldás: több sín párhuzamos használata Pl.: ISA (Industry Standard Architecture) EISA (Enhanced ISA) PCI (Peripheral Component Interconnect)
Sínek SCSI sín CPU Gyorsító tár Memória sín PCI-híd Központi memória SCSIszkenner SCSIlemez SCSIvezérlő Video vezérlő Hálózati vezérlő PCI sín Nyomtató Hangkártya vezérlő ISA-híd Modem ISA sín Tanenbaum - Máté
Sínek IBM PC sín IBM PC sín de facto szabvány a 8088-as alapú gépekre 62 jelvezeték, ebben 20 cím, 8 adatvezeték, memória írás/olvasás, I/O írás/olvasás, megszakítás, DMA
Sínek IBM PC sín ~6 csatlakozó 2 cm-ként, bővítőkártyáknak 31 érintkezőpár a csatlakozón (és kártyán) 286-os megjelenésekor bővítették: +36 vezeték, ebből 5 a 8/16 bites átvitel különbségét kezeli, a többi cím, adat, megszakítás Tanenbaum
Sínek IBM PC sín IBM a PS/2 sorozattal új sínt is létrehozott és azt erősen levédte (MCA MicroChannel Architecture) Ipar fennmaradó része úgy reagált hogy új szabványt fogadott el, az ISA-t (Industry Standard Architecture) 8,33 MHz-es IBM PC/AT sín Kompatibilis a régi eszközökkel Később EISA (Enhanced ISA) 32 bites verzió Pár új szolgáltatás (pl. több CPU-s architektúra támogatás)
Sínek időzítése Sínek két diszjunkt kategóriája, időzítés alapján: Szinkron sínek (syncronous bus) Egy vezetéken kristályoszcillátor négyszögjele (5-100 MHz), egy jel sínciklus (bus cycles), minden síntevékenység a sínciklus többszöröséig tart Aszinkron sínek (asyncronous bus) Sínciklus bármekkora lehet Eszközpárok közt sem kell azonosnak lennie
Sínek időzítése Szinkron sín Pl.: 100 MHz-es órajel 10 ns sínciklus (1/100000000 = 0,00000001 = 10-9 (s)) PCI sín is 33 v. 66 MHz-n dolgozik (technikai okokból nem gyorsabb asszimetria, kompatibilitás) Feltesszük hogy a memóriából olvasás 15 ns időt igényel
Sínek időzítése Szinkron sín memória olvasás időzítése Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 Φ cím adat T AD A kiolvasandó rekesz címe adat MREQ# RD# T ML WAIT# Minimális válasz idő
Sínek időzítése T1 órajel kezdete T1 felfutó él T1 alatt CPU felteszi az olvasandó memóriaszó címét a címvezetékre (T AD ) Φ cím adat MREQ# RD# WAIT# T AD Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 T ML A kiolvasandó rekesz címe adat Minimális válasz idő
Sínek időzítése Amikor a cím fent van, beállítjuk az MREQ# és RD# jeleket MREQ# - Memória olvasás lesz (nem I/O olv.), RD# - olvasásnál alacsony. cím a sínen van MREQ# előtt T ML -el Φ cím adat MREQ# RD# WAIT# T AD Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 T ML A kiolvasandó rekesz címe adat Minimális válasz idő
Sínek időzítése Memóriának 15 ns szükséges, ezért T2 alatt nem tud végezni, így jelet küld a WAIT vezetéken a CPU-nak, hogy ne várja az adatot (wait state) Φ cím adat MREQ# RD# WAIT# T AD Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 T ML A kiolvasandó rekesz címe adat Minimális válasz idő
Sínek időzítése Ha a memória végez, negálja a WAIT jelet, T3 első felében felteszi az adatokat az adatvezetékekre Φ cím adat MREQ# RD# WAIT# T AD Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 T ML A kiolvasandó rekesz címe adat Minimális válasz idő
Sínek időzítése T3 lefutó élén a CPU az adatokat egy regiszterébe tárolja, majd negálja az MREQ# és RD# jeleket Φ cím adat MREQ# RD# WAIT# T AD Olvasási ciklus 1 várakozó állapottal T 1 T 2 T 3 T ML A kiolvasandó rekesz címe adat Minimális válasz idő
Sínek időzítése A különböző időzítési specifikációkból kijön, hogy melyik vezetéken meddig kell a jeleket tartani, vagy mennyivel kell a jeleknek egymást megelőzni (pár ns-ok) Ha valami nem stimmel, újabb várakozási időt kell beiktatni lassulás Minden sínművelet a sín ciklus egész többszöröséig tart, tehát 2,3 ciklusidő helyett 3 kell A leglassabb eszközhöz kell a sínt igazítani, a gyors eszközök is lassan működnek (pl. várnak) Ha időközben pl. a technológia fejlődik, a memóriák felgyorsulnak, ez nem hoz érdemi sebességnövekedést, hiszen a többi komponens miatt ugyanúgy várakozni kell Megoldás: aszinkron sín
Sínek időzítése Aszinkron sín Nincs órajel Nincs WAIT Két új jel MSYN# (kérés - Master Syncronisation) SSYN# (kész - Slave Syncronisation) Ha SSYN# negált, új kérés jöhet Ugyanazon a sínen gyors és lassú mester-szolga (master-slave) párok is működhetnek
Sínek időzítése Aszinkron sín Sínmester a címvezetékre felteszi a címet, beállítja az MREQ#, RD# és szükséges jeleket, majd az MSYN# jelet cím A kiolvasandó rekesz címe MREQ# RD# MSYN# adat SSYN# adat
Sínek időzítése Aszinkron sín Amint ezt a szolga meglátja, gyorsan elvégzi a munkát, majd beállítja az SSYN# jelet cím A kiolvasandó rekesz címe MREQ# RD# MSYN# adat SSYN# adat
Sínek időzítése Aszinkron sín Amikor az SSYN#-t a mester látja, beolvassa az adatokat, majd törli a címvezetékeket, negálja MREQ#-t, RD#-t és MSYN# cím -t A kiolvasandó rekesz címe MREQ# RD# MSYN# adat SSYN# adat
Sínek időzítése Aszinkron sín Amikor a szolga látja hogy MSYN# negált lett, tudja hogy vége a ciklusnak és negálja SSYN#-t cím A kiolvasandó rekesz címe MREQ# RD# MSYN# adat SSYN# adat
Sínek időzítése Aszinkron sín Teljes kézfogás (Full Handshake) Mester: kérés beállítás, majd MSYN# beállítás, várakozás Szolga: látja MSYN#-t, dolgozik, SSYN# beállítás, majd vár Mester: látja SSYN#-t, dolgozik (pl. olvas, rögzít), majd negálja MSYN#-t Szolga: látja MSYN# negáltat, SSYN# negálás válaszul A teljes kézfogás független az időzítéstől, minden eseményt egy megelőző esemény alakít ki, nem egy órajel Gyors és lassú párosok ugyanazon a sínrendszeren működhetnek A szinkron sínrenszert azonban könnyebb megépíteni, nincs szükség visszacsatolásra
Sínütemezés (kiosztás) Nem csak a CPU lehet sínmester, hanem minden olyan eszköz, mely működéséhez szükséges hogy sínhasználatot kérjen Ha egyszerre több kérés van kinek van elsőbbsége? Sínütemező (bus arbitration) mechanizmusra van szükség
Sínütemezés (kiosztás) Sínütemező mechanizmus Centralizált Van egy ütemező Decentralizált Nincs külön ütemező
Sínütemezés (kiosztás) Sínütemező mechanizmus ütemező Centralizált láncolt (daisy chaining) Egyszintű Ha kérés van, beállítja az engedélyezést legközelebbi eszköz nyer Sín foglalás kérés Sín foglalás engedélyezés 1 2 3 4 5 Csak akkor engedi tovább a jelet, ha nem kérte a sínt
Sínütemezés (kiosztás) Sínütemező mechanizmus Többszintű prioritásos centralizált láncolt (daisy chaining) Prioritáson belül a távolság dönt Vezetékeket kényelmesebb átvezetni minden eszközön
Sínütemezés (kiosztás) Sínütemező mechanizmus, további gyorsítás Centralizált láncolt (daisy chaining) esetben: Egyes sínütemezőknek van egy további vezetéke, amin nyugtázzák az ütemező felé hogy átvették a sín irányítását Ekkor a kérés vezeték már negálható és még munka közben meg lehet állapítani a következő mestert Ezzel időt lehet megtakarítani Ahol a memória is a közös sínen van, a CPU-nak mindig versenyeznie kell a nagyobb prioritású I/Oeszközökkel (azok nem várhatnak) M.o.: külön sín a CPU és memória között
Sínütemezés (kiosztás) Decentralizált sínütemezés Pl. No.1: Hasonló mint a centralizált, de 16 prioritásos vezeték a sínhasználatra (kérés) Minden eszköz lát minden vezetéket tudja hogy ő jöhet-e (prioritások miatt) Több sínvezeték, de Nincs sínütemező, mindenki maga dönt a többi kérés alapján
Sínütemezés (kiosztás) Decentralizált sínütemezés Pl. No.2: Foglalási (kérési) vonal közös Foglalt vonal is van, aktuális mester állítja be Ütemező vonal láncolva van az eszközökön Első kérő balról kapja meg a sínt (hasonló mint a daisy chaining, de nincs külön ütemező) IN beállítva OUT beállítva (ütemező jel) IN negált OUT negált Aki kér, ott IN beállítva, de OUT negált egy ilyen lesz, és az lesz a mester Ütemezési vonal 1 2 3 4 5 Sín foglalás kérés Foglalt
Sínműveletek Eddig sínciklusok voltak, melyben a mester adatokat ír v. olvas a szolga felé v. felől Más sínciklusok is léteznek Blokkos átvitel Versenyhelyzet kezelése (Több CPU esetén egyszerre csak egy használhasson kritikus adatstruktúrát) Megszakítás (CPU várja hogy jelentkezzen egy I/O eszköz sínen tud jelentkezni)
Sínműveletek Blokkos átvitel Ált. egy szó kerül átvitelre Gyorsítótár használatánál több szót kell zsinórban átvinni hatékonyság növekedik BLOCK# jelzi a blokkos átvitelt Adaton átküldjük a darabszámot, majd olvassuk az adatokat zsinórban
Sínműveletek Kölcsönös kizárás Több CPU a rendszerben, egyszerre akarnak elérni adatot Spec. Változó a memóriában: ha 0, senki nem használja az adatstruktúrát. Ha 1, akkor használja valamelyik CPU. CPU beolvassa a változót Ha 1, vár Ha 0, beállítja 1-re és dolgozik Mi van ha egyszerre olvassák be a 0-t? Káosz M.o.: olvasás-módosítás-visszaírás sínművelet ami nem megbontható, amíg fut, addig a sín nem szabad, az aktuális CPU foglalja amíg dolgozik. (nincs egyszerre olvasás sem írás)
Sínműveletek Megszakítás Lassú I/O eszközök-re vár a CPU aktívan, azaz addig mást csinál. Amikor az I/O eszköz kész, akkor a CPU munkáját meg kell szakítsa, hogy az az új adatokkal foglalkozzon Több eszköz kérhet megszakítást egyszerre ütemezési feladat M.o.: prioritási szintek, időkritikus eszközöknek nagy prioritást adunk
Sínműveletek Megszakításvezérlő lapka: Intel 8259A IBM PC és követői használják 8 I/O lapka kapcsolható a bemenetre IRx-(ek)en kérés jön INT-en CPU-t megkérdezzük fogadja-e INTA#-n válasz, majd IRx-nek megfelelő pointer alapján a megszakításvektor táblából lefut a megfelelő kód (foglalkozik a megszakítóval)
Példa CPU lapkára Pentium 4 8088 CPU közvetlen leszármazottja 8088: 29000 tranzisztor P4: 55 millió tranzisztor Mégis a P4 teljesen kompatibilis a 8088-al, ugyanazon bináris programok futtathatóak rajtuk Szoftver szempontból 32 bites gép U.a. regiszterek mint 386, 486,.., Pentium Pro Hardver szempontból részben 64 bites gép Memória felé/felől 64 bites adatáramlás
Példa CPU lapkára Pentium 4 Mikroarchitektúra szintjén más mint az elődei (P6-osok: P2, P. Pro, P3) Új mikroarchitektúra: NetBurst Csővezetékében 2 ALU, mindkettő az órajel frekvencia kétszeresével megy 1 ciklus 2 művelet Hiperszálak 2 regiszterkészlet Plusz belső erőforrások gyors váltás egyik programról a másikra virtuálisan 2 CPU Szuperskaláris számítógép: több utasítást egyszerre hajt végre
Példa CPU lapkára Pentium 4 2 vagy 3 szintű gyorsítótárral rendelkezik Első szintű gyorsítótár (L1) 8 KB méretű (SRAM), P3-al ellentétben a P4 L1 cache-ben mikroutasításokra konvertált utasítások vannak (P4 RISC magjával végrehajthatóak), így nem kell újra dekódolni őket Második szintű (L2) cache max. 256 KB méretű (régebbi-) vagy 1 MB (újabb- modellek) lehet, nyers byte-okat tárol, utasítást és adatot vegyesen Extreme Edition esetében: Harmadik szintű (L3) cache: 2 MB mérettel
Példa CPU lapkára Pentium 4 Több cache, több processzor ha CPU0 a cacheben módosít, és CPU1 ezt a memóriából olvasná inkonzisztencia M.o.: a cache-ben lévő memóriarészek címeit figyeli, ha ilyen címre megy kérés, a valós memóriaolvasás előtt megadja az adatot a cache-ből (ami frissebb mint a memória) szimatolás (snooping) Két elsődleges sín, mindkettő szinkron: CPU Memória: memóriasín CPU I/O eszközök: PCI sín
Példa CPU lapkára Pentium 4 Néha egy hagyományos (legacy bus) is kapcsolódik a PCI sínhez, ami régebbi perifériák felé nyújt kapcsolódási lehetőséget P4 lapka: 478 láb 85 energiaellátás 180 föld zaj mérséklése 26x26 láb, középső 14x14 hiányzik Egy sarokban is hiányzik 2 láb
Példa CPU lapkára Pentium 4 Nagy fogyasztás (63 82 W) nagy hőtermelés 5 fokozatú készenléti állapot (kevesebb fogyasztás miatt)
Példa CPU lapkára P4, logikai lábkiosztás #-el negált jel Vonalakon a lábak darabszáma
Példa CPU lapkára P4, logikai lábkiosztás Első csoport: Sínütemezés #BR0 normál sínkérés #BPRI magas prioritású sínkérés #LOCK több ciklusra lefoglalja a sínt a CPU
Példa CPU lapkára P4, logikai lábkiosztás Következő csoporttal új kérést kezdeményezhet 36 bites címek, de alsó 3 mindig nulla, így A# 33 vezeték Amikor cím a sínen, ADS# jel beáll, a céleszköz innen tudja hogy érvényes a cím Sínciklus típusa a REQ# vonalon (pl: szó olvasás, blokk írás) Paritás védi az A# és REQ# jeleket
Példa CPU lapkára P4, logikai lábkiosztás 5 hibavonal Levegőpontos, Belső, Eszközellenőrző, Egyéb Hibák ellenőrzésére
Példa CPU lapkára P4, logikai lábkiosztás Válaszcsoport jeleivel egy szolga tud jelezni a mesternek RS# - státuszkód TRDY# - szolga kész az adatot fogadni Itt is van paritás ellenőrzés
Példa CPU lapkára P4, logikai lábkiosztás Az adat csoport az aktuális adatátvitelre szolgál D#-n 8 byte-os adat mehet DRDY#: adatok a sínen DBSY#: sín foglalt Paritásellenőrzés az adatokra További jelek az értékek tárolásával, stb. foglalkoznak
Példa CPU lapkára P4, logikai lábkiosztás RESET# CPU alapállapotába helyezés Katasztrofális hiba esetén Reset gombra
Példa CPU lapkára P4, logikai lábkiosztás P4 tudja a megszakításokat úgy kezelni mint a 8088 (visszafelé kompatibilitás), vagy Új megszakításrendszert használhat: APIC (Advanced Programmable Interrupt Controller) P4 különböző tápfeszültségekről is tud működni. Energiaellátás jeleket ennek kiválasztására (is) használják
Példa CPU lapkára P4, logikai lábkiosztás P4 a bonyolult energiamenedzsment ellenére nagyon felforrósodhat hőmenedzser központ foglalkozik a szabályozással. Ha belső hőm.: 130 C, jelez egy kivezetésen Órajel csoport a rendszersín frekvencia meghatározással foglalkozik Diagnosztikai csoport tesztelésre és nyomkövetésre használt Inicializálási csoport: rendszer betöltéssel foglalkozik Egyéb jelek, pl.: 8088-os emuláció
P4 memóriasín csővezeték A modern CPU-k, pl. P4 sokkal gyorsabb mint a modern DRAM-ok. A RAM teljesítményét csővezetékekkel növelik. P4 esetében egyszerre 8 síntranzakció zajlódhat
P4 memóriasín csővezeték A modern CPU-k, pl. P4 sokkal gyorsabb mint a modern DRAM-ok. A RAM teljesítményét csővezetékekkel növelik. P4 esetében egyszerre 8 síntranzakció zajlódhat Memóriaigényeknek, ún. tranzakcióknak hat állapotát különböztetjük meg:
P4 memóriasín csővezeték tranzakcióknak hat állapota Sínütemezési fázis Ki következik a mesterek közül? Kérési fázis Cím a sínre, kérni az adatot Hibajelzési fázis Szolga jelezheti ha paritáshiba van a címben v. más hiba Szimatolási fázis Egyik CPU figyeli a többit (mit írnak/olvasnak, nem azt kell-e épp módosítani) Válaszfázis Mester megtudhatja hogy kapja-e a kért adatokat vagy sem Adatfázis Megérkeznek a CPU által kért adatok Nem mindegyik kell minden tranzakcióhoz
P4 memóriasín csővezeték Req kérés Error hiba Snoop szimatolás Resp válasz Data adat Minden fázis külön vezérlőjelet használ, így függetlenek egymástól a fázisok
P4 memóriasín csővezeték Sínütemezési fázis nincs, mert nem mindig kell. Ha a mester új tranzakciót akar indítani, nem kell újra kérnie a sínt. 1-es, 2-es tranzakció nyilvánvaló (5 fáz./5 cik.) 3-as: adatfázis hosszabb, 4-es így nem küldhet adatot amikor akarna (DBSY# jel be van állítva, vár)
P4 memóriasín csővezeték 5-ös tranzakció: válasz is tarthat több ciklusig 6-os, 7-es: ha buborék (üres szakasz) kerül a rendszerbe, ott is marad amíg folytonosan jönnek a tranzakciók (ritkán jönnek sokáig folyton)
Példák sínekre - PCI PCI (Peripheral Component Interconnect) Multimédiás alkalmazások egyre jobban megterhelik a sínt Pl.: 1024x768-ban 3 byte/színnel, 30 fps esetén 2,25MBx30=67,5MB 67,5MB/sec adatmozgás a médiáról a memóriába, majd onnan a grafikus vezérlőbe 2x67,5 = 135 MB/sec adatszálesség a sínen ISA sín max. sávszélessége: 16,7 MB/sec EISA síné: 33,3 MB/sec 1990 Intel: PCI, melyet szabadalmaztatott és a szabadalmakat mindenki számára megnyitotta PCI népszerű lett
Példák sínekre - PCI PCI ISA Korai Pentium archtektúra. Nyilvastagság ~ sebesség
Példák sínekre - PCI PCI (Peripheral Component Interconnect) 1990 PCI 1.0 133 MB/s átvitel 1993 PCI 2.0 1995 PCI 2.1 PCI 2.2 66 MHz 64 bit 528 MB/sec sávszél
Példák sínekre - PCI PCI (Peripheral Component Interconnect) 1990-es évek végére: ISA elavult Új sín a grafikus vezérlőnek: AGP (Accelerated Graphics Port) AGP 1.0: 264 MB/s AGP 3.0: 2,1 GB/s (AGP 8x)
Példák sínekre - PCI Modern Pentium architektúra. Nyílvastagság ~ sebesség Északi-híd (North bridge) Déli-híd (South bridge)
Példák sínekre - PCI PCI (Peripheral Component Interconnect) Csatoló lapka (Bridge Chip) Memóriacsatoló (North Bridge) CPU-Mem, CPU-AGP nagy sebességű kapcsolata I/O csatoló (South Bridge) ATAPI-PCI-Egyéb kapcsol Mem.csat + I/O csat. Nagyon nagy sebességű kapcsolatban
Példák sínekre - PCI PCI (Peripheral Component Interconnect) Szinkron sín Mester: kezdeményező (Initiator) Szolga: céleszköz (target) Cím és adatvezetékek multiplexeltek 64 kivezetés (64 bites címek és adatok) Multiplexelt működés (olvasásra) Ciklus 1: mester a címet kiteszi a sínre Ciklus 2: mester a címet eltávolítja, sínirány fordul Ciklus 3: szolga felteszi a kért adatot a sínre Ha a szolga 3 ciklus alatt nem tud válaszolni, várakozó állapotokat iktat be