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 3264 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özkö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