Digitális Logika szintje Sínek - PCI
PCI - ütemezés REQ# GNT# REQ# GNT# PCI ütemező REQ# GNT# PCI sín használatához az eszköznek először le kell foglalnia a sínt PCI centralizált sínütemezőt használ REQ# GNT# PCI eszköz PCI eszköz PCI eszköz PCI eszköz
PCI - ütemezés Eszköz és ütemező között 2 vonal: REQ# GNT# PCI ütemező REQ# GNT# REQ# - használat kérés (Require) GNT# - használat engedélyezés (Grant) REQ# GNT# REQ# GNT# PCI eszköz PCI eszköz PCI eszköz PCI eszköz
PCI - ütemezés Kéréskor REQ# GNT# PCI ütemező REQ# GNT# Eszköz (akár CPU) beállítja a REQ# jelet, és vár a GNT# jelre Ha GNT# megjön, az eszközé a sín a következő órajelciklusban REQ# GNT# REQ# GNT# PCI eszköz PCI eszköz PCI eszköz PCI eszköz
PCI - ütemezés Ütemezés Nincs algoritmus meghatározva a PCIszabványban Körkörös Prioritásvezérelt Stb Igazságos ütemezés kell Egy eszköz se várjon túl sokáig
PCI - ütemezés Sínhasználati engedély Egy tranzakcióra érvényes Tranzakció hossza nem megszabott Ha senki másnak nem kell a sín, több tranzakció mehet zsinórban, egy-egy üres ciklussal megszakítva Spec. esetben nem kell üres ciklus sem, de ha GNT#-t negálja az ütemező, akkor a sínmesternek fel kell szabadítania a sínt hosszú (gyors) átvitelek és gyors sínmester váltások lehetségesek
PCI sín jelei Kötelező jelek
PCI sín jelei - Kötelező jelek CLK órajel, ISA-val ellentétben a tranzakciók a CLK lemenő élre indulnak
PCI sín jelei - Kötelező jelek AD cím vagy adat továbbításra szolgál (32 bit) (3 ciklusban: 1-cím fel, 2-cím le,3:adat fel)
PCI sín jelei - Kötelező jelek PAR AD paritása
PCI sín jelei C/BE első ciklus: sín parancs, mi történik (szó olvasás, blokk írás, stb..)
PCI sín jelei - Kötelező jelek C/BE második ciklus: bittérkép az érvényes byte-okról (1,2,3,4 byte-ot lehet írni/olvasni)
PCI sín jelei - Kötelező jelek FRAME# - sínmester állítja, tranzakció kezdéskor. A cím/adat érvényességét jelzi
PCI sín jelei - Kötelező jelek IRDY# - Olvasáskor FRAME#-el együtt állítja be a sínmester. Jelentés: sínmester készen áll a fogadásra
PCI sín jelei - Kötelező jelek IDSEL Minden PCI eszköznek van egy 256 byteos konfigurációs területe, IDSEL beállításával ezt olvasni lehet (PnP pl. innen nézheti az eszközöket)
PCI sín jelei - Kötelező jelek DEVSEL# - ha szolga AD-n felismerte magát és kész a tranzakcióra, beállítja. Ha nem, akkor a mester egy idő után feltételezi hogy nincs jelen vagy elromlott
PCI sín jelei - Kötelező jelek TRDY# - olvasáskor: adatok az AD-n; íráskor: készen áll az adatok fogadására
PCI sín jelei - Kötelező jelek STOP# - hiba, szolga megszakíthatja a tranzakciót
PCI sín jelei - Kötelező jelek PERR# - előző ciklusban paritáshiba. Olvasásnál mester, írásnál szolga állítja be. Szükséges lépések a fogadóeszközön múlnak
PCI sín jelei - Kötelező jelek SERR# - Címhiba (paritás) vagy rendszerhiba
PCI sín jelei - Kötelező jelek REQ#/GNT# - ütemezésben vesznek részt, versengő eszközök adják ki
PCI sín jelei - Kötelező jelek RST# - Reset, alapállapotba áll a rendszer (Reset gomb; végzetes hiba)
PCI sín jelei - Opcionális jelek Opcionális jelek Legtöbbje 32 64 bites kiegészítéssel kapcsolatos
PCI sín jelei - Opcionális jelek REQ64# - sínmester 64 bites tranzakció indításra kérhet engedélyt
PCI sín jelei - Opcionális jelek ACK64# - szolga 64 bites tranzakció fogadását jelzi
PCI sín jelei - Opcionális jelek AD/PAR64/C/BE# - a megfelelő 32 bites jelek 64 bites kiegészítései (adat, paritás, bittérkép)
PCI sín jelei - Opcionális jelek Következő három jel nem 32/64 bites kiegészítés, hanem multiprocesszoros rendszerekkel kapcsolatos. PCI kártyáknak nem szükséges támogatniuk
PCI sín jelei - Opcionális jelek LOCK több tranzakció idejére foglalható a sín
PCI sín jelei - Opcionális jelek SBO#/SDONE szimatolással (snooping) kapcsolatos jelek (cache koherenciát biztosít)
PCI sín jelei - Opcionális jelek INTx megszakítás kérésre szolgáló jelek. Egy PCI eszköz 4 logikailag független egységből állhat, külön megszakításigénylő vonalakkal
PCI sín jelei - Opcionális jelek JTAG IEEE 1149.1 JTAG tesztelési eljárás számára fenntartott vonalak. IC-k, beágyazott rendszerek, CPU-k vezetékeinek tesztelésére
PCI sín jelei - Opcionális jelek M66EN órajel frekvencia beállítása (33 v. 66 MHz). Működés közben nem változhat
PCI síntranzakciók Olvasás üres ciklus írás tranzakciók
PCI síntranzakciók T1 lefutó: AD-re memóriacím, C/BE#-re sínparancs (olvasás memóriából), majd FRAME#-et állít, tranzakció indul
PCI síntranzakciók T2 : mester elengedi a címsínt (irányváltás), szolga veszi át a vezérlést a T3 periódusban. Mester C/BE#-t beállítja (bitminta, mely byte-okat engedélyezi)
PCI síntranzakciók T3: szolga DEVSEL#-t állít, mester tudja hogy megkapta a címet és válaszolni fog. Szolga adatokat AD-re teszi, beállítja TRDY#-t kész. Ha nem tud a szolga gyorsan adatot adni, akkor DEVSEL#-t beállítja, jelezve hogy válaszolni fog, de TRDY#-t negálva tartja várakozás.
PCI síntranzakciók T4: üres ciklus, legtöbb esetben beiktatásra kerül egy tranzakció végén
PCI síntranzakciók T5: Írási tranzakció kezete: AD-re adat, C/BE#-re sínparancs (Írás), FRAME#-el indít
PCI síntranzakciók T5: nincs irányváltás, hisz ugyanaz az eszköz vezérli az AD vonalakat (hova és mit ír)
PCI síntranzakciók T7: memória fogadja az adatot
PCI PCI jól működik, de a sávszélessége kezdett kevésnek bizonyulni Sorra új sínek a gyors eszközök felé
PCI A PCI bővítőkártyák mérete elég nagy, nem férnek be a hordozható gépekbe Új irányzat, hogy a CPU és memória külön egységben, a bővítőeszközök pedig fizikailag máshol legyenek (külső megoldások, pl. merevlemez a monitorba építve, fiókos megoldással, stb )
(PCI-E, PCIe) Intel fejlesztés (2004) Nem sok köze van a PCI-hoz, de a jól ismert nevet nem akarták elhagyni Nem is sín Koncepció Párhuzamos síneket megszüntetni, sok sínmestert és szolgát kiiktatni Nagy sebességű soros kapcsolat a végpontokkal E fenti gyökeresen más mint az ISA/EISA/PCI koncepció Sok ötlet a lokális hálózatokból származik
PCI Express CPU,Memória,I/O-lapkák köztük általános célú kapcsoló Ez utóbbit valósítja meg a PCI Express
PCI Express CPU,Memória,cache hagyományos módon kapcsolódik a csatoló lapkához A kapcsolóhoz kapcsolódik az összes PCIe eszköz, soros módon, két vezetékkel: egy föld + egy adat nagy zajtűrés PCI Express
PCI Express PCI-tól való fontos különbségek Első 1. PCI: több leágazású közös sín PCIe: egyedi kapcsolat minden eszközzel Második 2. PCI: széles, párhuzamos kapcsolat (32/64 bites) PCIe: keskeny, soros kapcsolat (1 bites) Harmadik 3. PCI: sínmester/sínszolga kommunikáció, egész sínt lefoglalva PCIe: csomagkapcsolt kommunikáció
PCI Express PCIe csomagkapcsolás Csomagok: Fejléc (vezérlési információkkal, vezérlőjelek helyett) Adat (hasznos adat) PCIe-s PC egy kis csomagkapcsolt hálózat
PCI Express Pár kisebb különbség PCI és PCIe között PCIe-nél hibajelző kódot használnak nagyobb megbízhatóság mint PCI-nél Lapka és soros kapcsoló közti távolság akár 50 cm is lehet (fizikailag új lehetőségek a tervezésben) Végeszköz lehet újabb kapcsoló, így fa-struktúra szerűen bővíthető Hotplug megengedett, azaz menet közben lehet eszközöket csatolni, lecsatolni PCIe csatlakozók kisebbek kisebb méretű gépek tervezhetők
PCI Express protokollrendszer PCI Express réteges kapcsolati protokollrendszerrel rendelkezik Protokoll: két fél közötti kommunikációt irányító szabályrendszer (a) : PCIe protokollrendszer 4 rétegből áll
PCI Express protokollrendszer Fizikai réteg (Physical layer) Biteket továbbít egy küldőtől egy fogadónak, közvetlen kapcsolaton keresztül Minden kapcsolat egy vagy több szimplex (egyirányú) sávpárból (csatornapárból) áll. Egyszerű esetben egy pár van, mindkét irányban 1-1, de lehet 2,4,8,16 vagy 32 pár is (byteosan stripe-olva) Sávok száma mindkét irányban azonos Egy irányban min. 2,5 Gbps-es sebesség (hamarosan 10 Gbps várható)
PCI Express protokollrendszer Fizikai réteg (Physical layer) Nincs fő órajel-generátor, eszközök azonnal adnak, ha van mit adniuk gyorsabb kommunikáció, de: Első pár 0-ból honnan tudjuk hogy most már jönnek az adatok? M.o.: 8b/10b kódolással: 8 bitet 10 biten kódolnak (20% sávszélesség vesztés!) Nem jöhet túl sok 0 v. 1 egymás után, Ugyanannyi 0 és 1 legyen egy szóban Elegendő jelváltás ahhoz, hogy bithatárra szinkronizálják a küldőt és fogadót
PCI Express protokollrendszer Kapcsolati réteg (Link layer) Csomagok átvitelével foglalkozik Tranzakciós rétegtől kapott csomaghoz (fejléc+adat) CRC (Cyclic Redundancy Check) kódot ad. CRC: hibajelző kód Fogadó is kiszámítja ezt a fejlécre és adatokra. Ha egyforma, rendben, nyugtázó csomagot küld. Ha nem, a fogadó újrakéri a csomagot. (PCI ilyet nem tudott)
PCI Express protokollrendszer Kapcsolati réteg (Link layer) Folyamatvezérlő mechanizmus Gyors eszköz ne árasszon el kérésekkel egy lassú eszközt: Fogadó elküld egy kreditet (befogadóképességre vonatkozó adatot, puffer méretet) a küldőnek. Az csak max. ennyit küldhet, utána meg kell állítania a küldést új kredit érkezéséig. eltérő sebességek miatti adatvesztés elkerülhető
PCI Express protokollrendszer Tranzakciós réteg Síntevékenységeket kezeli. Pl.: egy szó olvasása a memóriából két tranzakciót követel: CPU (v. DMA) kezdeményez és adatokat kér Céleszköz kezdeményezi az adatok küldését Kapcsolati réteg szolgáltatásait új szolgáltatásokkal egészíti ki: Minden sávot nyolc virtuális áramkörre oszthat, melyek különböző jellegű adatforgamat bonyolíthatnak (mind a nyolc forgalmi osztálynak megfelelő címkékkel látja el a csomagokat, címkék attributumai lehetnek pl.: alacsony /magas prioritás, soron kivüliség, stb... Kapcsolólapka ezek alapján dönthet a következő kézbesítendő címkéről)
PCI Express protokollrendszer Tranzakciós réteg Minden tranzakció a köv. négy címtartomány valamelyikét használja: Memóriaterület (közönséges írás/olvasás) I/O terület (eszköz regiszterének címzésekor) Eddigi rendszerekben is megvolt Konfigurációs terület (rendszer kezdeti beállításakor) Eddigi rendszerekben is megvolt PnP megvalósítására pl. jó Üzenetterület (jelzések küldésekor, megszakítások esetén, stb.) Vezérlőjelek szerepét veszi át, amik pl. a PCI-nál megvannak, de PCIe-nél nincsenek
PCI Express protokollrendszer Szoftver réteg Operációs rendszerhez való kapcsolódást biztosítja Képes a PCI sín emulálására (amíg az OS nem tudja a PCIe-t használni direktben. A visszafele való kompatibilitás szükséges rossz.)
PCI Express információáramlás Szoftverréteg a parancsot a tranzakciós rétegnek adja, mely fejlécre és adatra bontja azt Kapcsolati réteg megszámozza és hibajavító kóddal látja el Fizikai réteg kerettel zárja a csomag mindkét végét és elküldi
PCI Express A PCI Express csomagkapcsolt működése teljesen a hardver része, operációs rendszer felé transzparens, míg a hálózatoknál a rétegek megvalósítása és kezelése szoftveres úton zajlik
PCI Express PCI Express csatlakozók (4 sávos, 16 sávos, 1 sávos, 16 sávos kapcsolatok és PCI csatlakozás)
PCI Express PCI Express 2.0 sebességek PCI Express 2.0 Implementation Encoded Data Rate Unencoded Data Rate x1 5 Gbps 4 Gbps (500 MB/sec) x4 20 Gbps 16 Gbps (2 GB/sec) x8 40 Gbps 32 Gbps (4 GB/sec) x16 80 Gbps 64 Gbps (8 GB/sec) 2x-es sávszélesség Nagy teljesítményű eszközök támogatása (250-300W) PCIe Cable: akár 10 méteres kábeleken is lehet eszközt csatlakoztatni bővítő dobozok (új fizikai tervezés lehetséges)
Alacsony sebességű eszközök csatolása PCI és PCIe csatolás jó a gyors eszközökhöz, de túl drága ahhoz hogy lassú eszközöket csatlakoztassunk rajtuk Lassú eszközökhöz olcsó és egyszerű felület kell Eredetileg minden eszközhöz saját kártya járt, a beépítés az átlag felhasználónak nehézkes, a beállítások bonyolultnak tűnnek Eddigi más külső csatolók (soros-, párhuzamos port) nem voltak teljesen standardek, valamint számos meghajtót (driver) kellett fejleszteni és karbantartani hozzájuk
USB (Universal Serial Bus) 1993 számos cég (Compaq, DEC, IBM, Intel, Microsoft, NEC, stb..) megalkotta a lassú, olcsó eszközök csatolási szabványát, az USB-t. Pár irányelv: Ne kelljen a beállításokkal vesződni (jumperek, miniswitchek) Ne kelljen a gépben szerelni, a gépet kinyitni Egy fajta kábel legyen Energiát is ez a kábel szolgáltassa
USB (Universal Serial Bus) Pár irányelv: Sok eszköz kapcsolható legyen Valós idejű eszközökkel is jó legyen (telefónia) Menet közben lehessen telepíteni az eszközöket, újraindítás nélkül Költségek ne legyenek magasak
USB (Universal Serial Bus) USB 1.0 USB 1.1 1,5 Mbps billentyű, egér, webkamera, szkenner, stb.. 12 Mbps nyomtató, digitális fényképező USB 2.0 480 Mbps külső tárolók
USB Root hub csatlakozik a rendszersínre Root hub ra további csomópontok és eszközök csatlakoznak fa struktúra 4-eres kábel: 2 adat 1 tápfeszültség 1 föld
USB USB adatok Feszültségátmenet: 0 Fesz.átmenet hiánya: 1 Új eszköz: Root hub érzékeli, megszakítást kér OS megnézi milyen eszköz jött, mekkora sávszélesség kell neki Ha van elég sávszél, az OS címet, egyedi azonosítót ad Adatokat konfigurációs regiszterbe tölti
USB USB-rendszer logika Eszköz és központi csomópont közötti bitcsatornák Minden eszköz 16 alcsatornára oszthatja a csatornáját Az adatok mindig a központi csomópont és eszköz között mennek, eszközök között nincs forgalom
USB Központi csomópont 1,00±0,05 ms-enként új üzenetváltási keretet (frame) küld szét, melynek segítségével minden I/O-eszköz szinkronizál Egy ilyen keret Egy bitcsatornához kötődik Csomagokból áll, melyből az elsőt mindig a központi csomópont küldi ki az eszköznek, többi csomag iránya lehet más (eszköz központi csomópont)
USB Négy keretből álló sorozat: Payload: hasznos adat
USB 0,2 keretben nincs feladat, csak egy SOF (Start of Frame) csomagot kell küldeni (központ mindig minden eszköznek továbbítja)
USB 1 keretben: lekérés egy eszköztől (pl. szkenner), 3-as keretben írás (pl. nyomtatóra)
USB USB négy keretet különböztet meg: Vezérlési keret Eszközök konfigurálására szolgál, parancsok küldése v. állapot lekérdezése Izoszinkron keret Valós idejű eszközök használják (telefon, mikrofon, hangszóró), melyeknek pontos időközönként adatot kell küldeniük vagy kapniuk. Hiba esetén nincs ismétlés Tömeges adat keret Nem valós idejű, nagy mennyiségű adatátvitel Megszakítási keret USB nem támogatja a megszakításokat, pl. a billentyűzet nem megszakítást kér, hanem az OS 50 ms-ként begyűjti a lenyomott billentyűk kódjait
USB Egy keret egy v. több csomagot tartalmaz TOKEN Központi vezérlőből az eszközök felé mennek és vezérlik azt. Pl.: SOF Start of Frame, minden keret ezzel indul IN Eszköztől kér adatot, lekérdezés. IN-csomag mezők azonosítják a bitalcsatornát eszköz tudja milyen adatokat kell visszaküldenie OUT Eszköz számára adatok jönnek SETUP eszköz konfigurálásban használják ADAT Max. 64 byte küldése egyik irányban
USB Egy keret egy v. több csomagot tartalmaz ADAT 8 bites szinkronizációs mezőből (SYN), 8 bites csomagtípusból (PID), Hasznos adatból 16 bites CRC kódból áll
USB Egy keret egy v. több csomagot tartalmaz Három kézfogás csomag ACK rendben megjött az előző NAK CRC hiba az átvitelben STALL várni kell, eszköz elfoglalt
USB Interface USB 1.1 (1998) UHCI (Universal Host Controller Interface) Intel tervezte, a feladatok zömét szoftveresen kell megoldani (olcsóbb, de több CPU-t eszik ) OHCI (Open Host Controller Interface) Compaq/MS tervezte, feladatok zömét hardveresen kell megoldani (drágább, de kevesebb CPU-t eszik )
USB Interface USB 2.0 (2000) EHCI (Enhanced Host Controller Interface) USB 2.0 sebesség Csak ez tud gyors átvitelt, de virtuálisan tud OHCI v. UHCI üzemmódban is működni, kompatibilis a lassabb eszközökkel (4 virtuális HCD, mely a VIA és Intel EHCI-ken UHCI, többin OHCI ; HCD: Host Controller Device) 480 Mbps USB 2.0 versenytárs: IEEE 1394 FireWire 400 Mbps (videók, mozgóképi eszközök szabványa)
USB csatlakozók Robusztus Nem sérülékeny Nehéz rosszul csatlakoztatni Olcsó az előállítása A más-más végek (USB A,B, USB mini A,B) a topológiát támogatják, nem lehet körkörös kapcsolást létrehozni Kis erőfeszítéssel bontható kötések A külső fémkeret érintkezik először statikus töltések elvezetése
USB csatlakozók USB A USB B USB Mini A & B
Kapcsolat a perifériákkal A számítógép főbb részei CPU Memória Sín I/O vezérlő A gép ezeken keresztül kommunikál a külvilággal
Kapcsolat a perifériákkal Számos I/O lapka van forgalomban, gyakoriak: UART USART Képernyőmeghajtók Diszkvezérlők PIO lapkák
Kapcsolat a perifériákkal UART (Universal Asynchronous Receiver/Transmitter) Adatsínről 1 byte-ot képes olvasni és azt bitenként továbbítja soros vonalon a terminál felé Soros adatokat fogad a terminál felől Sebességek: 50 bps 19200 bps Karakterszélességek: 5-8, 1, 1.5, 2 stop bittel Páros/páratlan/kikapcsolt paritással
Kapcsolat a perifériákkal USART (Universal Synchronous Receiver/Transmitter) Szinkron működés UART lapkák összes funkcióját megvalósítják
Kapcsolat a perifériákkal PIO (Parallel I/O) Pl.: Intel 8255A
Kapcsolat a perifériákkal 24 I/O vonal, bármilyen TTL (TransistorTransistor Logic kapugyártási technológia) eszközhöz kapcsolódhat, pl. billentyűzet, nyomtató
Kapcsolat a perifériákkal Központi egység programja bármely vonalára 0-t vagy 1-t tud írni, vagy bármely vonalát be tudja olvasni
Kapcsolat a perifériákkal Egy működési mód: 3 különálló, független 8 bites portra osztjuk (A,B,C) Mindegyik porthoz tartozik egy 8 bites regiszter Kimenet: amíg a regiszterben érték van, az látszik a kimenő vonalon Bemenet: a bejövő adat bekerül a regiszterbe
Kapcsolat a perifériákkal Másik működési mód: Kézfogás a külső eszközökkel Egyik porton küldi az adatokat, másikon pedig impulzusokat vár a külső eszköztől, így kommunikál hogy jöhetnek-e a további adatok Impulzusokat tárolni tudja és CPU felé továbbítani
Kapcsolat a perifériákkal 3 port: 24 érintkező További 8 kivezetés: CS lapkaválasztó; WR írás; RD olvasás; RESET alapállapot; A0-A1 címvezeték (melyik belső regiszterrel dolgozunk); D0-D7 adatsínre csatlakozik
Digitális logika szintje összefoglalás Számítógépek integrált áramköri lapkákból épülnek fel, melyek kis kapcsolókat, kapukat tartalmaznak (ÉS, VAGY, NEM, NEM-ÉS, NEM-VAGY) egyszerű áramkörök építhetőek Bonyolultabb áramkörök: multiplexerek, demultiplexerek, kódolók, dekódolók, regiszterek, ALU-k Tetszőleges Boole-fv. megvalósítható PLA-kal Aritmetika eszközei az összeadók, félösszeadók (több bites építhető 1 bitesekből) Memóriák (statikus) építőkövei a tárolók és flip-flopok. Egyszerű regisztereket vagy bonyolultabb, szószervezésű memóriákat építhetünk belőlük
Digitális logika szintje összefoglalás Számítógépek alkotóelemeit sínek kötik össze Tipikus CPU pár regisztere sínvezetéket vezérel Sínvezetékek: cím-, adat-, vezérlővonal Szinkron/aszinkron sínek P4 tipikus modern CPU. A rendszerben tipikusan 1 memóriasín, 1 PCI sín, USB sín van. PCI sín szinte minden eszközhöz elég, kivéve RAM. Amihez nem jó, ott új sínek, jelenleg PC-kben PCIe terjed Külső egységek (fényforrás, nyomtató, kapcsolók) a számítógéphez párhuzamos I/O lapkákkal köthetők