Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár
Buszrendszer Dr. Seebauer Márta főiskolai tanár
[email protected]
Kommunikáció
– számítógépek között • lokális • távoli – a számítógép részegységei között • CPU – memória • CPU – periféria • memória - periféria – a processzoron belül • regiszterek – vezérlőegység • vezérlőegység – ALU • ALU – regiszterek
A mikroszámítógépek szokásos felépítése Sín (busz) műszaki értelemben rendezett vezetékköteg az egyes vezetékekhez rendelt dedikált funkciókkal. Sínrendszer a számítógép részegységeinek összekötése szabványos módon: – – – – –
adat cím vezérlőjelek átvitel iránya szinkronizálás
Előnye
szabványos
DATA
illesztő
ADDRESS CONTROL
CPU
– modulrendszerű felépítés lehetővé tétele – könnyű karbantarthatóság
Cél – nyitott architektúra – a legnagyobb átviteli sebesség elérése – adatbiztonság
Memória
interface adapter
interface adapter
I/O egység
I/O egység
A sínek, vonalak jellemzői -
a sín méretét a vezetékeinek (vonalainak) száma határozza meg; vezetékek kötege, mindkét irányban van kimenete; a sín egy vezetékén egy adott időpillanatban egy bitnyi információ továbbítható; megosztható eszköz; a rendszerben egyszerre csak egy adó lehet, de vételi oldalon többen is fogadhatnak. fogadhatnak
A
Busz
B
a sín gyakran ugyanazon jellemzőkkel rendelkezik, mint a regiszter. Ideiglenesen képes az adatot tárolni. Nevet rendelhetünk hozzá, és az utasításokban hasonlóképpen címezhetjük, mint a regisztert vagy a memóriahelyet. Az információnak a két regiszter közötti, síneken át történő átvitele gyakran ketté van törve két "regiszter" átvitelre, a következőképpen: databus ← regiszter A regiszter B ← databus
A sínek csoportosítása Az adatátvitel iránya szerint – szimplex vagy egyirányú, azaz csak egyetlen irányban képes adatátvitelre – fél-duplex, duplex mely mindkét irányban lehetővé teszi ugyan az adatátvitelt, azonban egyidejűleg csupán egyetlen irányban és – duplex vagy kétirányú.
A kapcsolat jellege szerint – Dedikált kapcsolat a sín kizárólag két egység összekapcsolására szolgál • gyors • drága – Megosztott (shared) kapcsolat egyetlen adatutat használ n egység közötti valamennyi kommunikáció számára. Egy vezérlő mechanizmus szükséges, hogy felügyelje az n egység közötti vonalmegosztást. Ez a vezérlés lehet • központosított: egyetlen speciális vezérlő egységben • megosztott: több egység lehet képes a kapcsolat vezérlésére – olcsó – rugalmas – lassú, elég bonyolult folyamat szükséges a sínhasználat biztosítására; – az egész rendszer érzékeny a megosztott vonal hibájára, emiatt pedig az egész rendszer kommunikációja megbénulhat.
– Crossbar egyrészt magában foglalja az adatvonal megosztását, másrészt pedig egyidejűleg több mint egy adatátvitelt tesz elérhetővé. Multiprocesszoros rendszerekben alkalmazzák.
U1
U2
U3
U4
U1
U2
.. .
Un
sín
G2 1 U1
1 U2
...
1 Un U1 U2 G1 U3 Um
Az átvitt tartalom, azaz funkciójuk szerint – Adatsín n-bites szó valamennyi bitjének a párhuzamos átvitelére szolgál, így • két készlet, egyenként n darab egyirányú vonalból, vagy • egyetlen készlet, egyenként n darab kétirányú vonalból áll. Ma a szélessége leggyakrabban 32 bit, illetve ugyanennyi vezeték (vonal). – Címsín az adatátvitelben használt azon egység vagy egységrész identifikálására használják, amelyet a sínhez kell csatlakoztatni, tehát az eszközök címzésére szolgál. Szélessége 32 (esetleg 16-20-24) bitnek megfelelően ugyanennyi vezeték. Az Intel 8086 címsín szélessége 20 bit volt, amit a 286-nál 24-re, a 386-nál 32-re növelték, és máig is, a Pentiumnál ilyen széles. Lehetőség van arra is, hogy perifériák esetén az adatvonalakat használjuk a címeknek adatokként való átvitelére is. Ez időbeli multiplexelést jelent. Először a címet küldjük át, és beállítjuk az Address Valid vezérlővonalat. Ezután ugyanezen vonalakon kerülnek továbbításra az adatok.
– Vezérlősín vonalak a rendszerben az időzítő jelek és az egység állapotáról szóló információ átvitelére szolgálnak. Ezek jelezhetik az adatvonalakon küldött információ típusát is. A vezérlőjelek száma változó, általában minimálisan 1015 körül van. • Az adatátvitelt vezérlő jelek – M/IO (memory/input-output) az adatátvitel helyét jelöli ki, mely választhatóan lehet a memória vagy a perifériák; – R/W (read/write) az adatátvitel irányát adja meg a processzor oldaláról nézve; – WD/B (word/byte) az átvitt adat méretét jelöli meg, amelyet egy tárhoz fordulás alkalmával egységként kezel; – AS (address strobe) a cím sínre helyezését jelzi az eszköz (memória) számára; – DS (data strobe) az adat sínre helyezését jelzi az eszköz (memória) számára; – RDY (ready) az átvitel befejeztét, vagy az eszköz rendelkezésre állását jelzi.
• A megszakítást vezérlő jelek
– INTR (Interrupt Request) megszakítást kérő – INTACK (Interrupt Acknoledge) megszakítást visszaigazoló jelek.
• A sínvezérlő jelek
– BUSREQ (Bus Request) kérés – BG (Bus Grant) foglalás – BUSACK (Bus Acknoledge) foglalás visszaigazolása
– Egyéb jelek • CLK (Clock) órajelek • tápfeszültség és a föld vezeték
Az összekapcsolt területek alapján – Rendszersín (system bus) a processzort köti össze a gép egyéb részeivel, elsősorban a memóriával és - egy sínmeghajtó közbeiktatásával - az I/O eszközökkel.
M
...
M
CPU bővítősín
rendszersín I/O
...
I/O
– Bővítősín (expansion bus) vagy I/O sín vagy helyi sín általános kapcsolatteremtő funkciója következtében meg kell felelnie valamilyen elfogadott előírás-rendszernek, amely megszabja a fizikai, mechanikai és elektromos jellemzőit, a rákapcsolódó eszközökre előírt követelményeket.
Bővítősinek
Platform-függő megoldások csak meghatározott processzortípus számára biztosítanak kapcsolatot a külvilággal. Például az IBM PC-vel kompatibilis gépek esetén: – ISA-sín – EISA sín
A platform-független megoldások arra szolgálnak, hogy processzortól független szabványos illesztést biztosítsanak a külvilág számára. – – – – –
RS 232C PCI USB SCSI Nubus processzor-független, szinkron sínszabvány, amely a 32-bites mikroprocesszoros rendszerekben való alkalmazást célozza meg. MIT javaslat, majd IEEE 1196-os szabvány. Pl. az Apple Macintosh II-ben alkalmazzák. – Multibus az Intel fejlesztette ki, és ma már IEEE 796 és 1296-os szabvány
A sín használói A sínt egy időben csak egy eszközpár használhatja. Master - a sín használatát kezdeményező aktív eszköz Slave – a kapcsolatban résztvevő másik, passzív eszköz, amely csak fogja és végrehajtja az aktív eszköztől származó vezérléseket. A mikroszámítógépeknél a sín irányítását megszerző eszköz a – processzor – DMA – I/O processzor
A sín használatát eredményező folyamatot mindig a passzív eszköz indítja el azzal, hogy jelzést (megszakítási kérelmet) ad a processzornak valamilyen feladat elvégzésére. Aktív szereplő Master
Passzív szereplő Slave
Művelet
Processzor
Memória
Utasításlehívás, adat írás/olvasás
Processzor
I/O eszköz
Adat be/kivitel
Processzor
Co-processzor
Lebegőpontos utasítás végrehajtása
I/O eszköz
Memória
Közvetlen memória-hozzáférés (DMA)
Co-processzor
Memória
Adat írás/olvasás
Sínfoglalás Nem vektoros sínfoglalás - minden passzív eszköz önálló megszakítási lehetőséggel rendelkezik, amely alapján a processzor azonnal el tudja dönteni, hogy melyik eszköz küldte a jelzést és el tudja indítani a sín lefoglalása iránti kérelmét. Ha egy eszköz több megszakítási lehetőséggel is rendelkezik, akkor a processzornak előbb szoftver úton, program segítségével ellenőrizni kell a lehetséges okokat, majd ezt követően kezdeményezheti az átviteli kapcsolat létrejöttét, a sín foglalását. Vektoros sínfoglalás - a passzív eszköz saját, megszakítást értékelő logikával rendelkezik, amelynek eredményeként, jelzésére a processzor egy elfogadási jelzést küld ki, valamint a "slave" azonosítóját. A processzor második elfogadási jelének megjelenése után, a passzív eszköz a megszakítás okának megfelelő vektort, címet helyez az adatvonalra, amelyet felhasználva a processzor elindítja az átviteli kapcsolat kialakítását, a sín foglalását.
Adatátvitel közös sínen A kommunikáció két fázisra bontható – sín lefoglalása (bus arbitration) • soros • párhuzamos – adatátvitel lebonyolítása (bus timing) • szinkron • aszinkron
Prioritásos sínfoglalás Egy egységet a fő sínhez való csatlakozásra két módon választhatunk ki: – a sínvezérlő egység kezdeményezheti egy Ui egység kiválasztását egy programutasításra adott válaszképpen vagy egy feltétel jelenik meg a rendszerben, mely igényli az Ui egység kiszolgálását; – alternatívan az Ui egység maga is igényelheti a megosztott sín elérését, úgy, hogy a sínvezérlő számára meghatározott jelet küld.
Mindkét esetben specifikus tevékenységeket kell a sínvezérlő egységnek végrehajtani annak érdekében, hogy stabilizálja a logikai kapcsolatot az Ui egység és a sín között. Abban az esetben, ha több egység szimultán módon generálhat sín-elérési igényt, akkor a sínvezérlőnek rendelkeznie kell valamilyen eljárással, melynek alapján kiválasztja a legmagasabb prioritású egységet. A busz-vezérlést végezheti a CPU vagy egy busz vezérlő áramkör (Bus Controll Unit).
Soros kiszolgálás HW lekérdezéssel Data Bus Ha a BUS BUSY vonalon senki sem jelzi a foglaltságot, akkor a Bus Control Unit kiadja a Bus Grant szabad jelet. A daisy-chaining U1 U2 U3 Un Bus technika legfőbb Controll Bus Request megkülönböztető jellemvonása Unit az, ahogyan a BUS GRANT jel terjed. A BUS GRANT vonal Bus Busy ugyanis nincs közvetlenül rákapcsolva minden egységre, hanem sorosan, egységrőlegységre halad. Amikor az első egység, amely a sínhez való hozzáférést igényelte, megkapja a BUS GRANT jelet, – – –
az blokkolja a továbbhaladását, aktiválja a BUS BUSY jelet és megkezdi a sín használatát.
Amennyiben nem igénylő egység kapja meg a BUS GRANT jelet, akkor az továbbítja a következő egységhez. Így, ha két egység igényli a sínhozzáférést, akkor, amelyik elsőként kapja meg a BUS GRANT jelet, az szerzi meg a sín vezérlését. A választási prioritást így teljes mértékben az határozza meg, hogy az egységek milyen sorrendben vannak felfűzve (láncolva) a BUS GRANT vonalra. A sínkérelmek kezelésének gyorsítására be lehet vezetni egy harmadik vezérlő jelet is, a visszaigazoló (BUS ACKNOWLEDGE) jelet, amelyen a sínfoglalás megtörténtét jelzi a vezérlő, és ezzel lehetővé teszi az újabb sínkérelmek fogadását. A soros rendszerben a processzor szokásosan a legalacsonyabb prioritású azért, hogy minden eszköz megkapja a vezérlést, ha kéri.
A prioritás szabályozására használt módszerek Soros sínhasználat engedélyezés (daisy chained bus grant) A sínkérelem beérkezése után az engedélyező jel halad végig a láncon és a sorrendben legelöl álló kérelmező letiltja a jel továbbhaladását és igénybe veszi a sínt; ez a módszer a legáltalánosabban használt. Soros sínkérelem engedélyezés (daisy chained bus request) BUS REQUEST vonal halad végig az eszközökön; a sínt kérő eszközök kiadják a sínkérelmező jelet az alacsonyabb prioritás irányába, amelyek elérik a jelenlegi sínhasználó eszközt, akkor, ha az alacsonyabb prioritású. Ez az eszköz ekkor kiadja a sínengedélyező BUS GRANT jelet, amelyet minden eszköz érzékel, de csak az eszköz veszi igénybe a sínt, amelynél magasabb prioritású egység (tehát melynek BUS REQUEST bemenetén nincs jel) nem kérte a sínt. Soros engedélyezés (daisy chained enable) Közös BUS REQUEST és BUS GRANT vezeték van és egy engedélyező vonal halad végig az eszközökön; az eszköz, amelyik igénybe akarja venni a sínt, letiltja a kimenetén a további, alacsonyabb prioritású eszközök számára a sín kérésének lehetőségét. Előnye – –
A daisy chain igen kevés vezérlővonalat igényel és igen egyszerű a kiválasztási algoritmusa. Ezt lényegében végtelen számú egység mellett lehet használni.
Hátránya – – –
Mivel a prioritási sorrend be van huzalozva, ezért az egyes egységek prioritását nem lehet szoftver úton megváltoztatni. Abban az esetben, ha egy magas prioritású egység, mint például az U1 elég gyakran generál sín-hozzáférési igényt, akkor zárolhatja az olyan alacsony prioritású egységet, mint az Un. A BUS GRANT vonal és az azt kísérő áramkörök vonatkozásában hiba-érzékeny. Pl. ha a középső egység nem tudja továbbadni a BUS GRANT jelet, az összes utána következő meghal, mivel nem tud hozzáférni a sínhez.
Soros kiszolgálás SW lekérdezéssel Data Bus U1
U2
U3
Un
Counter
Bus Grant
Bus Controll Unit
Bus Request Bus Busy
A daisy chain módszer BUS GRANT vonalát egy olyan számláló vonalköteggel helyettesítjük, amelyeket csatlakoztathatjuk valamennyi sínen lévő egységhez. Az egységek a sínhozzáférési igényüket a közös BUS REQUEST vonalon keresztül jelzik. A BUS REQUEST jelre való válaszként a sínvezérlő generál a számlálóvonalon egy számsorozatot. Ezek a számok, amelyeket tekinthetünk egység (unit) címnek is, összehasonlításra kerülnek minden egység által az adott egységhez tartósan hozzárendelt egyedi címmel. Amennyiben az igénylő egység az U1 volt, akkor az megállapítja, hogy a címe megegyezik a számláló vonalon lévő számmal, aktiválja a BUS BUSY jelet. A sínvezérlő erre a polling folyamat leállításával válaszol és az U1 megkapja a sínvezérlést.
Értékelése Előnye – Az egység prioritását a polling sorozatbeli címe határozza meg. A polling sorozat általában programmal megváltoztatható (a számlálót egy programozható regiszterhez csatlakoztatják); ezáltal a kiválasztási prioritás szoftver úton megváltoztatható. – További előnye a daisy-chaining-gel szemben, hogy egy-egy egység meghibásodása nem hat egyetlen más egységre sem.
Hátránya – A rugalmasságáért több vezérlővonallal kell fizetni (k vezérlővonallal az egyetlen BUS GRANT vonal helyett) – A sínt megosztó egységek számát a számlálóvonalak címképzési kapacitása behatárolja.
Alkalmazási példa ISA sín (azonos elvű az EISA és az MCA is) 65536-féle egység címezhető, tehát az I/O-címzésre használt cím-vezetékek száma 16.
Párhuzamos kiszolgálás (Independent Requesting) Data Bus
U1 Bus Controll Unit
BR1
BG1
U2 BR2
BG2
Un BRn
BGn
Bus Busy
Minden egyes, a megosztott sínt használó egység vonatkozásában különálló BUS REQUEST és BUS GRANT vonalat használ. Ez a megközelítés lehetővé teszi, hogy a sínvezérlő egység azonnal azonosítsa az összes igénylő egységet és igen gyors választ biztosít a sín-elérési igény számára. A prioritást a sínvezérlő egység határozza meg és az szoftver úton változtatható. Az independent requesting legnagyobb hátránya az a tény, hogy a sínvezérlő egységhez 2n db BUS REQUEST és BUS GRANT vonalat kell csatlakoztatni annak érdekében, hogy n egységet vezéreljünk. Ezzel szemben a daisy chain esetében mindössze kettő a polling esetében pedig log2n vonalra volt szükség
A prioritás szabályozására használt módszerek Egyszerű körbejáró (simple rotating) Minden sínengedélyezés után a prioritás sorrendje változik, minden eszköz eggyel alacsonyabb prioritást kap, és az eddig legalacsonyabb prioritású eszköz a legmagasabb szintre kerül. Elfogadástól függő körbejáró (acceptance dependent rotating) A sínkérelem kiszolgálása után a prioritás sorrendje változik, minden eszköz eggyel magasabb prioritást kap, és az eddigi legmagasabb prioritású eszköz a legalacsonyabb szintre kerül. Ezt a módszert használják a legáltalánosabban. Véletlenszerű (random) A prioritási sorrend minden kiszolgálás után újra kiosztásra kerül, mégpedig véletlenszerűen. Egyenlő (equal) Több igény esetén a vezérlő egyenlő valószínűséggel szolgálja ki bármelyik igényt. A legkevésbé használt eszköz (LRU - least recently used) A sínt legrégebben használó eszköz kapja meg a sínt először.
Értékelése Előnye – igen gyors: a bus controller mindig tudja, ki kérte a sínhasználatot és azonnal neki címzetten engedélyezheti is; – a prioritás szabályozására sokféle módszer áll rendelkezésre; – szinte processzor szintű intelligenciára ad lehetőséget.
Hátránya – minden egységhez külön vonalat kell húzni; – ez bonyolítja a hardvert és növeli a költséget.
Alkalmazási példa PCI A mai PC-kben is alkalmazott, architektúra-független PCI esetében az arbitrálás központosított. Minden egyes kártyahely (slot), azaz minden egyes PCI egység rendelkezik egy saját busmasterrel, továbbá saját, külön BUS REQUEST és saját, külön BUS GRANT vezérlővonallal. Amikor valamelyik PCI egységnek a sínre van szüksége, akkor az adott kártyahely busmastere egy BUS REQUEST jelzést küld a sín központi arbitrálójának, mely amennyiben a sín szabad - az adott kártyahely BUS GRANT jelének a beállításával engedélyezi a sínhasználatot. Az arbitrálási folyamat infrastruktúrája független az adatátviteli folyamat infrastruktúrájától. Ebből következik, hogy egy PCI egység adatátvitele alatt megtörténhet egy másik egység bejelentkezése. Mivel így az arbitrálás nem igényel különálló ciklusidőt, ezért ezt rejtett arbitrálásnak nevezzük. Több egység sorban állása esetén a kiválasztás során a PCI szabvány széles szabadságot ad a megvalósító gyártóknak: így lehetséges gyártói döntés a FIFO, az egyszerű körbejáró vagy bármely prioritásos módszer között.
Szinkron időzítés A szinkron kommunikáció feltételezi, hogy minden, a sínen továbbított információ egység egy olyan időperiódus alatt kerül továbbításra, melyet előre ismer mind a forrás, mind pedig a rendeltetési egység. Ez feltételezi, hogy mindkét egység időzítő mechanizmusa szinkronizált. A szinkronizálást elérhetjük – minden egység közös forrású órajellel való ellátásával, ez a módszer csak kis távolság esetén megvalósítható; – minden egységet önálló, lokális óra hajt meg, körülbelül ugyanazon frekvenciával. A két óra előbb-utóbb „elcsúszik”, ezért periodikusan egy szinkronjelet kell átküldeni a kommunikáló egységek között annak érdekében, hogy az órajelüket egymással összehangolják. Memória olvasás egy WAIT ciklussal
Szinkron időzítés értékelése Előnye, Előnye hogy a szinkron sínhez az illesztés egyszerűbb, mivel például nincs szükség az egység saját működési sebességéhez illeszkedő nyugtázó jelek előállítására. Hátránya, Hátránya hogy az információ-átvitelre szolgáló időintervallumot alapvetően a rendszer leglassúbb egysége határozza meg. Így a gyors egységek nem tudnak a maximális sebességükkel kommunikálni. Az ISA bővítősín szinkron meghajtású, amit 6-8,33 MHz frekvenciájú órajellel hajtanak meg. Ez teszi lehetővé a régebbi fejlesztésű, olcsó I/O kártyák használatát. A PCI bővítősín szintén szinkronvezérlésű bővítősín, 33 MHz vagy 66MHz frekvenciájú órajellel hajtják meg. Az AGP bővítősín ugyancsak szinkronvezérlésű, mégpedig 66 MHz meghajtással.
Aszinkron időzítés A lokális sínrendszeren gyakran használják, elve, hogy minden elemi művelet befejeződése egyben egy jelzés a következő elemi művelet megkezdésére. Az aszinkron adatátvitel során az adó annyi ideig tartja fenn az adat- és a vezérlőjeleket, amíg a vevő nem jelzi vissza az adatátvitel megtörténtét. Tehát minden továbbított információs egyedet egy önálló vezérlőjel kísér, mely jelzi a rendeltetési egység számára az értelmét. A rendeltetési egység másik vezérlőjellel válaszolhat, mellyel nyugtázza az információ fogadását. Mivel minden egység a saját sebességével generálhatja ezeket a jeleket, az adatátviteli sebesség a kommunikáló egységek saját sebességei szerint variálódhat. Az adatátviteli sebesség ezen rugalmasságát a komplexebb sínvezérlő áramkör árán érjük el. Egy tipikus sín több, különböző adatátviteli sebességű eszköz között van megosztva, ezért általában az aszinkron kommunikációt alkalmazzák. Ez azt igényli, hogy vezérlő jeleket kell átküldeni a kommunikáló egységek között, hogy megmutassák, az időket és hogy mely adat átvitele történik. – Egyvezetékes vezérlés, melynek során az időzítő jeleket a két kommunikáló egység közül az egyik támogatja. – Kétvezetékes vagy interlock vezérlés, melynél mindkét egység generál időzítő jelet.
Egyvezetékes vezérlés
Adó oldali vezérlés Az adó ráhelyezi az adatszót az adatvonalakra. Egy rövid késleltetés után ez aktiválja a vezérlővonalat, amelyhez a DATA READY általános név van hozzárendelve. A késleltetés azért szükséges, hogy megelőzzük, nehogy a DATA READY jel érje el a vevőt hamarabb, mint maga az adatszó. Mind az adatvonalakat, mind pedig a DATA READY vezérlővonalat aktív állapotban kell tartani elég data hosszú ideig, hogy lehetővé tegyük a vevő számára az adatoknak az adatsínről való másolását. data ready Vevő oldali vezérlés Ebben az esetben a vevő kezdeményezi az adatátvitelt a DATA REQUEST-nek nevezett vezérlővonal aktiválásával. Az adó egység úgy válaszol, hogy felteszi az igényelt adatszót az adatvonalakra. Ennek elég hosszú ideig kell tartania, hogy a vevőegységnek elegendő ideje legyen elolvasni azt. Az egyirányú vezérlés hátránya, hogy nincs data visszajelzés arról, hogy az adatátvitel sikeresen befejeződött. Így, ha a vevő ki van kapcsolva, akkor is data lezajlik a procedúra. Abban az esetben, ha a vevő request rendkívül lassan reagál a DATA READY jelre, az adat elveszhet, és a vevő sem tud visszajelezni arról, hogy kész-e fogadni az adatokat.
Adó
Vevő data ready
Adó
Vevő data request
Kétvezetékes vezérlés (Handshake)
Ezt a problémát küszöbölhetjük ki egy második vezérlővonal bevezetésével, amely lehetőséget biztosít a vevő számára, hogy nyugtázó jelet küldjön az adónak akkor, amikor megkapja a DATA READY jelet. Ennek a vezérlővonalnak az általános neve a DATA ACKNOWLEDGE. Két Adó Vevő rendszer együttműködésének egyébként igen data ready elterjedt módszere az ennek megfelelő handshaking (kézfogásos) együttműködés. data acknowledge Az adó kezdeményez A forrás egység beállítja a DATA READY jelet és data addig tartja az adatot a sínen, amíg meg nem kapja a DATA ACKNOWLEDGE jelet. A DATA data ready ACKNOWLEDGE jel pedig csak azután kerül aktiválásra a rendeltetési egység által, miután az data acknowledge lemásolta az adatot az adatsínről. Ez a séma megengedi azokat a késéseket, amelyek az adatátvitel során fellépnek. Adó Vevő A vevő kezdeményez A vevő a DATA REQUEST jellel adatokat kér az data request adótól. Az adó aktiválja a DATA ACKNOWLEDGE data acknowledge jelet annak jelzésére, hogy az igényelt adat elérhető a sínen. Ez addig tartja az adatot az adatsínen, amíg a vevőegység nem szünteti meg data a DATA REQUEST jelet. Ez az a tevékenység, mely az adatoknak a vevő általi fogadásának data request visszajelzésére szolgál. data acknowledge
Az átvitel gyorsítása Az adatátvitel történhet: – bájtonként A sín egyetlen bájt átvitelére áll az egység rendelkezésére. – blokkonként Fix- és változó hosszúságú blokkok átvitelére van lehetőség.
Az assembly-ben – az operatív tár: move – a periféria kezelése: in - out
Tehát már utasítás szinten is megkülönbözteti a perifériát. – MR memória read – MW memória write A blokk sínciklus arra ad lehetőséget, hogy több adat blokkos átvitelénél (pl. cache tárak feltöltésénél, visszaírásánál), ha azok a tároló egymást követő helyein találhatók, az egyszerű tárhoz fordulás helyett egy gyorsabb megoldást használjunk. A blokk-sínciklus esetében nem egyenként történik az adatok címzése, hanem automatikusan a tároló következő helyét veszi a vezérlő. Így ez a megoldás lerövidíti a teljes átviteli időt.
Blokk-sínciklus (burst cycle) A PCI bővítősín az adatátvitel gyorsítására blokkos átvitelre is képes, melynek alkalmazásával minden sín-órajelnél megvalósul egy adatszó transzfere. Így a 33 MHz meghajtású szinkron átvitelt biztosító sín 32 bit szószélességű kiépítésben 132 MB/s, 64 bit szószélességű kiépítésben pedig 264 MB/s sebességű adatátvitelt biztosít. A blokkos üzemmódot achitekturálisan a CPU - Memória - PCI bridge azzal támogatja, hogy lehetővé teszi: – miközben a CPU a gyorsító memóriából dolgozik, – a perifériák és az operatív memória között DMA vezérlésű adattranszfer történjen a PCI sínen és a bridgen keresztül. Az átvitel megbízhatóságát paritásjel és minden adatátviteli ciklushoz tartozó ACKNOWLEDGE jelek fokozzák. Az ilyen típusú átvitel jelzésére a BI (Burst Inhibit) jelet lehet használni. Amennyiben a blokk üzemmód engedélyezett, akkor egy 4 szavas blokk átvitele – az 1. szó normál üzemmódú átvitel – a 2-4. szó rövidített elérési idővel – teljes blokk sínciklus
min. 2 ütem 1-1 ütem 5 ütem
Ha a blokk üzemmód nem engedélyezett – 1-4. szó normál üzemmódban 4x2 ütem=8 ütem
Ilyen blokk üzemmódra lehetőség van az i486os, az MC68030-as, MC68040-es mikroprocesszoroknál
A tárkezelés gyorsítása átlapolódó sínciklussal A sínciklusok átlapolásának lehetőségét az adja, hogy a tárolóciklus időtartama nagyobb, mint a sínciklusé. A sínciklus hossza legalább 2 órajelütem, míg a memóriaciklusé ennél hosszabb. Ha a memória elérési ideje nagyobb, mint a buszciklus időtartama, akkor az átlapolással gyorsítható az átvitel. Azonban ennek az a feltétele, hogy a memória, a címzés szempontjából "bank"-okra bontható legyen. Ha a tárolóciklus és a sínciklus aránya más, akkor az átlapolódás mértéke, a sín kihasználtsága és a szükséges tárolóbankok száma változik. Átlapolt sínciklust alkalmaznak az Intel processzorok. A 286, 386/486 processzoroknál 2 sínciklust, az i860-as processzornál 3 sínciklust lapolnak át
Tárciklus hossza Buszciklus hossza Adatlekérés kezdete Adatlekérés vége 0. memóriabank 1. memóriabank
1. adat
3. adat
2. adat
5. adat
4. adat
Pentium II memóriasín csővezeték architektúrája Pentium II működése lényegesebben gyorsabb, mint a DRAM-ok. Ezért a memóriasín csővezetékszerűen működik, és nyolc tranzakció folyhat egyszerre rajta. Mindegyik fázis külön sínvezérlő vonalakat használ, így egymástól függetlenül folyhat a többitől. Fázisok 1. sínvezérlés 2. kérés 3. hibajelzés 4. szaglászás 5. válasz 6. adat
Egyszintű sínrendszer Valamennyi egység ehhez a sínhez csatlakozik, így ez az egyetlen kapcsolódási lehetőségük. Mivel egyetlen sínt egy időben csak egyetlen átvitelhez használható, csupán két egység tudja aktívan használni egy adott időben. Az eredeti IBM PC, a PC XT és az első PC AT még csupán egyetlen sínnel rendelkezett. Ezt a 68,33MHz frekvenciával meghajtott egyetlen sínt csupán funkcionális szempontok alapján két részre bonthatjuk: Az egyetlen sín rendszersínnek nevezett részéhez csatlakozik a – – – – – –
CPU matematikai társprocesszor, memória (RAM és ROM egyaránt) DMA vezérlő megszakítás-vezérlő időzítő
A bővítő sínnek nevezett részéhez pedig a különféle perifériák: –
–
a gép házán kívülről egyedi, speciális csatolókon keresztül csatlakoztathattuk a • billentyűzetet • monitor • soros és a párhuzamos portot a gép házát felnyitva, az alaplapon találhattuk a nevének megfelelő „bővítősínt”, amelyen lévő kártyahelyekbe, az úgynevezett aljzatokba dughattuk a különféle I/O egységek vezérlőkártyáit, például ilyen volt a • merevlemez-vezérlő, • hajlékonylemez-vezérlő • kiegészítő soros- és párhuzamos port • játék-port • hangkártya
Megvalósításukat tekintve ezek egyre inkább integrálódtak. A kezdet kezdetén csupán egyetlen szabvány létezett, az IBM-é. Az XT gépek esetén 2x31 pólusú csatlakozók kerültek az alaplapra. Ezen jól elfért a 8bites adat- és a 20 bites címvezeték. Az utóbbi max. 1 MB-os címteret eredményezett. Később más gyártók és az IBM különféle sín-konfigurációjú szabványokat vezettek be.
Kétszintű sínrendszer Input Memóriasín Processzor
Output
Memória
I/O sín
A kétsínes számítógép-architektúrának legegyszerűbb formája. A processzor a memóriával a memóriasínen keresztül áll kapcsolatban, és az input és az output műveleteket az I/O sínen keresztül kezeli. Az adatok a processzoron keresztül mennek át a memóriához vezető útjukon. Az ilyen konfigurációban az I/O átvitel általában a processzor közvetlen felügyelete alá tartozik, amely kezdeményezi az átvitelt és felügyeli a végrehajtásukat egészen a teljesülésükig
ISA Industry Standard Architecture (AT-bus) Az AT-gépeknél kevésnek bizonyult az XT-nél elterjedt kivezetések száma, hiszen itt 16-ra nőtt az adat és 24-re a címsín (16 MB-os címtér), valamint új vezérlőjelekre is szükség volt. A kompatibilitás miatt az AT alaplapokon megmaradt a 2x31 pólusú csatlakozó, így az XT gépekben használt kártyák nagy részét felhasználhatták. A kivezetések számának növelését úgy oldották meg, hogy mintegy az eddigi csatlakozók meghosszabbításaként egy 2x18 pólusú csatlakozót illesztettek az alaplapba. Később, amikor az AT alaplapok elterjedtek, ezt a csatlakozó formát szabványosították mind méretei, mind pedig elektromos jellemzői szempontjából. Ez a szabvány az ISA (Industry Standard Architecture), azaz ipari szabványos felépítés nevet kapta.
ISA Industry Standard Architecture (AT-bus) 32 bites CPU memória sin, 33 MHz Az I/O sín meghajtása változatlanul 6-8,33 MHz, szószélessége pedig 16 bit maradt, teljesítve ez által a kompatibilitási igényeket, Maximális sávszélessége 33,3MB. Minden Intel alapú PC-ben megtalálható az ISA sín.
Processzor
Memória
ISA vezérlő
16 bites bővítő sin, 8 MHz
Lemez vezérlő
Grafikus kártya
Faxmodem
Nyomtató
A CPU-memória sín sokkal gyorsabban, a CPU órajelével működhet, mégpedig 32 bites szószélességgel. Az igen egyszerű ISA-sínvezérlő az I/O műveletek során „wait” ciklusok beiktatásával a CPU-memória sín sebességét az ISA sín sebességére csökkenti, ezáltal teljesíti mindkét oldal időzítési előírásait.
MCA MicroChannel Architecture Az IBM cég által gyártott PS/2-es számítógépben vezette be 1987ben. A mikrocsatornás felépítésű sínrendszer nagy megbízhatósággal rendelkezett, viszont nem volt kompatibilis az előző sínekkel. Ezzel nem lett népszerű az akkoriban igen drága bővítő kártya tulajdonosok körében Az IBM szabadalmaztatta, és stratégiája szerint ezt széles skálán kívánta bevezetni, tudományos célú munkaállomásokon át nagy teljesítményű mainframe-ekig.
EISA Extended Industry Standard Architecture Időszerűvé vált az adatbusz 32 bitesre bővítése. 1988-ban Compaq a mikroprocesszorok adat- és címvezetékeinek további növekedése miatt még több csatlakozási ponttal rendelkező szabványt dolgozott ki. A megoldás, hogy tovább hosszabbítsák a csatlakozót, nem kínálkozott jónak, így is az alaplapok alapterületének felét a kártya, illetve a memória csatlakozók foglalták el. A megoldás az lett, hogy az eddigi érintkező helynek megfelelő ponton két érintkező helyezkedik el egymás fölött. Az EISA rendszerben tehát (31+18)*4 csatlakozási hely van, maximális sávszélessége 33,3MB/s. Az EISA fejlesztést a marketingre és nem a mérnöki tudományra, a szükségletekre alapozták. A meghirdetésétől 2,5 év telt el, mire az első EISA adapterek elérték a piacot. Az EISA legnagyobb érdeme az volt, hogy késleltette az MCA elfogadását. Az EISA elvi előnye abban jelentkezett, hogy a felhasználók az összes régi PC/XT/AT kártyájukat átdughatták az új gépükbe, amit az MCA gépekkel nem lehetett megtenni.
Három szintű sínrendszer VESA Video Electronics Standard Association Az ISA, EISA és MCA buszok egyre inkább hátráltatták a CPU és az egyre gyorsabb merevlemezes egységek, videokártyák és egyéb perifériák kommunikációját. 1991-ben a VESA bizottság javasolta a gyors perifériák közvetlenül a CPU-memória sínre kapcsolását. Ez VESA Local buszon keresztül történt meg. A 64 bites helyi sín átviteli sebessége 260 Mbit/s. Egy 64 bites egység egy 32 bites aljzatban 32 bites egységként működhet, míg egy 32 bites egység is működhet 64 bites aljzatban. Két típusa ismeretes – –
32 bites CPU memória sin, 33 MHz Processzor
Memória
Lokális sínvezérlő
32/64 bites helyi sin
Lemez vezérlő
Grafikus kártya
Hálózati kártya
ISA/EISA vezérlő
16 bites ISA bővítő sin, 8MHz
Szkenner
Faxmodem
Local Bus Master, adatátvitelt kezdeményezhet, saját processzorral rendelkezhet Local Bus Targets, csak válaszol az adatátviteli igényekre
A VLB esetében problémák jelentkeztek a meghajtó képességgel, és a sebessége sem volt elegendő.
Nyomtató
PCI Peripheral Component Interconnect Ezt a szabványt az Intel cég kezdeményezésére a Peripheral Component Interconnect Special Interest Group tervezte. 32 és 64-bites nagysebességű adatátvitelt eredményez. Szinkron meghajtású sín, amit 33 vagy 66 MHz-es frekvenciával hajtanak meg. A régebbi számítógépek még 5V tápfeszültséget használtak, az újabbak egyre inkább csak 3,3V-ot. 64 bites címet és 64 bites adatot tud kezelni. A kivezetések számának csökkentése érdekében a cím és az adatvezetékek multiplexeltek. A 32-bites PCI 132MB/s, a 64-bites pedig 528 MB/s maximális átviteli sebességgel rendelkezik. Összehasonlításul a SCSI 5 MB/s, SCSI-2 pedig 40 MB/s. A PCI egységeknek két típusa ismeretes: – -
Master vagy sín master: egy intelligensebb egység, mely a síntől vagy más egységtől független feldolgozást végez. A sínmaster megosztja a sínt a főprocesszor és a target között. Egy master egység szolgálhat más master targetjeként. Target: passzív egység
Három fizikai címteret definiál a PCI: – – –
memória; I/O; konfigurációs.
A specifikáció lehetővé teszi a PCI kártya automatikus hardver-konfigurálását, vagyis azt, hogy az üzembe helyezés során a periféria illesztőkártyája együttműködjön a rendszerrel, és meghatározza a megszakítás-beállításokat és a szoftveres alapértelmezéseket. Ez teszi lehetővé, hogy minden csatlakoztatott egység önmagát konfigurálja, vagy a rendszer konfigurálja a bővítőkártyán tárolt információ segítségével.
PCI sín tranzakció A PCI sín centralizált buszvezérlőt használ, amelyet legtöbbször beépítenek a csatoló áramkörök valamelyikébe. Az ütemező által használt kiszolgáló algoritmus nincs definiálva a PCI specifikációjában. Egy olvasási művelet során, az első ciklusban a master kiteszi a címet a buszra, A második ciklusban visszaveszi, a sín iránya megfordul, és a slave küldheti rajta az adatot a harmadik ciklusban. Írási művelet során a sín irányának nem kell megfordulnia, mert mind a címet, mind az adatot a master teszi a buszra. Ha a slave nem tud három cikluson belül válaszolni, akkor WAIT ciklust tud beiktatni. Tetszőleges méretű blokk műveletek is megengedettek.
USB Universal Serial Bus A 90-es évek közepén a Compaq,DEC, IBM, Intel, Microsoft, NEC és a Northern Telecom kidolgozta az alacsony sebességű perifériák könnyű és olcsó kezelhetőségére az USB szabványt a következő specifikációval: 1. A felhasználónak ne kelljen sem a bővítőkártyán, sem a készülékben semmit sem beállítania. 2. A készülék csatlakoztatásához ne kelljen megbontani a számítógép burkolatát. 3. Egyetlen fajta csatlakozó kábel legyen miden fajta készülékhez. 4. A periféria tápellátása megoldott legyen a csatlakozó kábelen keresztül. 5. Maximálisan 127 eszközt lehessen csatlakoztatni. 6. Biztosítva legyen a valós idejű eszközök kiszolgálása. 7. A készülékek csatlakoztatásához ne kelljen a számítógépet kikapcsolni, újraindítani. 8. A busz és a csatlakoztatható berendezések legyenek olcsóak.
USB szabvány Egy USB rendszer egy fa topológia. Ennek gyökere egy központi elosztó (root hub), amely a rendszersínre csatlakozik. Ez az elosztó több csatlakozót tartalmaz az I/O eszközök és az újabb elosztók számára. A teljes USB sávszélesség 1,5MB/s. A kábelek végén két különböző csatlakozó van, az egyik csak I/O eszközbe, a másik csak elosztóba dugható. A kábel négy vezetéket tartalmaz, kettőt az adatok egyet-egyet a tápfeszültség (5V) és a föld számára. 1. Egy új eszköz csatlakozik. 2. A központi elosztó érzékeli az eseményt és megszakítást kezdeményez az operációs rendszerben 3. Az operációs rendszer lekérdezi az eszköz típusát és a sávszélesség igényét. 4. Ha van elegendő sávszélesség, az operációs rendszer egy egyedi azonosítót (1-127) rendel az eszközhöz. Ezt és minden szükséges konfigurációs adatot betölti az I/O eszköz konfigurációs regisztereibe.
Logikailag az USB rendszer bitcsatornáknak tekinthető a központi elosztó és az I/O eszközök között. Minden eszköz feloszthatja a csatornáját legfeljebb 16 alcsatornára a különböző típusú adatok számára.
USB szabvány Minden 1,00ms-ban a központi elosztó egy új üzenetváltási keretet (frame) indít, amely mindig egy bitcsatornához csatlakozik. Egy keret csomagokból áll, amelyek közül az elsőt mindig a központi elosztó küldi az eszköznek, a többi csomag iránya tetszőleges. Az USB szabvány négyféle keret típust különböztet meg – – – –
vezérlő - eszközök konfigurálása, parancsok küldése, eszközök állapotának lekérdezése izoszinkron - valós idejű eszközök kommunikációja, hiba esetén nem igényli az adatok megismétlését csoportos - nagy tömegű adatok átvitele megszakítás - az USB nem támogatja a megszakításokat, ezért az operációs rendszer kérdezi le
Csomagtípusok – parancs – a központi elosztó küldi, feladata a rendszer irányítása SOF Start of Frame – minden esetben kiadja a központi elosztó minden eszköz számára IN – lekérdezés OUT – adatküldés SETUP – eszközök konfigurálása – adat – 64B adat küldése tetszőleges irányban SYN – szinkronizációs mező (8 bit) PID – csomag típus (8 bit) CRC (Cyclic Redundancy Code) – 16 ellenőrző bit a hibás átvitel detektálására – handshake ACK – az előző csomag nyugtázása NAK – az előző csomag átvitelekor CRC hiba keletkezett, amely újra elküldésre kerül, kivéve izoszinkron keret esetén STALL – várakozás kérése foglaltság miatt – speciális
Négy szintű sínrendszer AGP - Advanced Graphic Port 1996-ban az Intel tervezte. Hozzáadódik a PC szabványos sínjeihez. Az AGP átvitelkor
PCI bridge
PCI aljzat Lemez vezérlő
ISA sín 5 MB/s
Szkenner
– master - a grafikai processzor (graphic board or chip), – target - a memória-vezérlő (memory controller).
A PCI átvitelkor a memória-vezérlő (PCI Processzor sequencer) mind master-ként mind targetként képes működni, a grafikai processzor alapvetően target, de rendelkezhet master-funkciókkal is. Az Intel az AGP kétféle alkalmazását biztosítja:
Hálózati kártya
PCI sín 132/264 MB/s
ISA aljzat Faxmodem Memória manager
Memória sin Memória
AGP sin 500 Mbit/s Grafikai processzor
Frame buffer
– Execute modell: az AGP csatlakoztatja a grafikus gyorsítót az operatív tárhoz. A videokártyán lévő gyorsító processzor használhatja az operatív tárat magas szintű funkciók végrehajtására, mint a 3D gyorsítás. A grafikai processzor arra használja az AGP-t, hogy kiemelje a forrásadatokat az operatív tárból, tárolja a köztes eredményeket, majd a kép végső adatait áttöltse a kártyán lévő helyi videomemóriába (a helyi frame buffer-be). – DMA modell: mint egy közvetlen gyors csatorna az operatív memória és a frame buffer között. Az AGPsínen keresztül bittérképes ábrázolás megy az operatív tárból a videokártyán lévő frame memóriába. A grafikai processzor hagyományosan fog működni, a videokártyán lévő memóriában dolgozva.