A sínrendszerek jelentősége, lényege

Ha megvizsgáljuk a számítógép részegységeit, akkor tulajdonképpen a processzor és az operatív tár mellett az be- és kimeneti (Input/Output, IO) részegységek is fontos szerepet játszanak a működésében. Az adatátvitel szempontjából ezen egységek között tulajdonképpen három útvonal képzelhető el:

  • processzor - memória,
  • processzor - I/O eszközök,
  • memória - I/O eszközök.

Mindegyik részegység bináris információkkal dolgozik, a kapcsolatot ezek között vezetékek látják el. Általában igaz az, hogy több bináris értéket kell egyidőben és legtöbbször nagy sebességgel továbbítani. A sebesség értelemszerűen akkor lehet a legnagyobb, ha minél több bitet viszünk át egy lépésben. Ez megköveteli, hogy annyi vezetéket alakítsunk ki a részegységek között, amennyi az egyszerre átviendő bitek száma, tehát párhuzamosan futó vezetékhálózatok jönnek létre.

A számítástechnikában ezeket a vezetékeket csoportokba foglalják és ezeket nevezik síneknek (az eredeti angol elnevezés a bus, azonban a magyar nyelvben nem busznak, hanem sínnek nevezzük). A sínek szempontjából fontos, hogy azok milyen célt szolgálnak, valamint még ennél is fontosabb, hogy mennyi vezetékből állnak. A vezetékek számát nevezik az adott sín szélességének. A mikroszámítógépekben három csoportot különböztetnek meg:

  • Adatsín. Az egységek számára szükséges adatok továbbítására szolgál. Általában a processzor által meghatározott számú vezetéket tartalmaz. Rendszerint az adatsín 8, 16, 32 vagy 64 bit szélességű.
  • Címsín. Az egységek kijelölése a címük alapján történik. Ez a sín ezeknek az adatoknak a továbbítására szolgálnak. A címsín szélességét minden esetben a processzor határozza meg, amiből következtetni lehet az elérhető fizikai memóriaterület méretére is. Általában a memória és az I/O eszközök használhatják ugyanazt a címtartományt, de természetesen meg kell egymástól különböztetni ezeket. Erről még a későbbiekben bővebben is lesz szó. A mai processzorok esetében a címsín szélessége 32 bit.
  • Vezérlősín. A részegységek működési módját ennek a sínnek a használatával oldják meg. A vezérlősín esetében már általában nem igaz az, hogy egymással párhuzamosan futó vezetékek alkotják. Minden olyan jelet ide sorolunk, amely állapotának módosítása valamely egység működésének megváltozását vonja maga után. A vezérlősín jeleit funkciójuk alapján tovább csoportosíthatjuk (a jelek leírásánál nem használunk rövidítéseket, mivel azok minden processzornál eltérők lehetnek):

  1. Adatátvitelt vezérlő jelek

    • Memória/IO, amely az adatátvitel helyét adja meg. Ez lehet vagy periféria, vagy memória. Kétállapotú jel, a két logikai szinthez a két cél tartozik.
    • Írás/Olvasás (Write/Read) az adatátvitel irányát jelöli ki. Szintén kétállapotú jel.
    • Szó/Bájt (Word/Byte) az adatátvitel során annak az adatmennyiségnek a méretét határozza meg, amelyet egy egységként kezel a processzor.
    • Címtárolás (Address Strobe) a cím stabil állapotának jelzésére szolgál.
    • Adattárolás (Data Strobe) az adatsín bitjeinek beállítását jelző bit.
    • Kész (Ready) jel az adatátvitel befejezését vagy az eszköz rendelkezésre állását jelzi.

    • Megszakítást vezérlő jelek, amelyek két csoportba oszthatók. Az egyik csoportba tartozó vezetékek a megszakítás kérésére, a másikban lévők a megszakítás elfogadására szolgálnak.
    • Sínvezérlő jelek a sín vezérlési jogának kérését, valamint elfogadását visszaigazolását jelzik.
    • Szinkronizációs jelek, amelyek az egységek időbeni együttműködését valósítják meg.
    • Egyéb jelek, amelyek egyik fenti csoportba sem sorolhatók. Ide tartoznak többek között a tápvezeték jelek is.

A számítógép minden egysége ugyanazt a sínrendszert használja a kapcsolat megvalósítására. Nagyon fontos a helyes működés kialakítása miatt, hogy a kapcsolat kialakításakor az alábbi három feladatot elvégezzük:

  • Meg kell oldani, hogy azok az eszközök kapcsolódjanak össze, amelyeknek szükséges, tehát ki kell jelölni a résztvevőket. Erre szolgál a már említett címzés használata. A teljességhez hozzá tartozik, hogy a másik kijelölési módról is szóljunk: ebben az esetben az utasítás által létrejön egy hardver kapcsolat a részegységek között.
  • Fontos eldönteni az adatmozgás irányát, tehát ki kell jelölni a küldőt és az adót. Erre a feladatra a vezérlősín jeleit használják fel.
  • Nagyon fontos, hogy az adatokat és a címeket minden, a kommunikációban résztvevő eszköz ugyanakkor értelmezze, tehát össze kell hangolni a működésüket. Ezt a folyamatot nevezik szinkronizációnak.

Az 1. ábrán megvizsgálhatjuk, hogy hogyan is épül fel vázlatosan egy mikroszámítógép.

1. ábra. A mikroszámítógép vázlatos felépítése

Gondoljuk végig, hogy miért is jó nekünk a sínrendszer kialakítása?

A válasz egyszerű, sok érvet fel lehet hozni mellette. Az egyik legfontosabb, hogy a hordozhatóság (mobilitás) növelhető azáltal, hogy a szabványos sínrendszerbe illeszkedő eszközök bármely másik szabványos rendszerben használhatók (például a ma oly népszerű PCI sín, amelyről még a későbbiekben bővebben is olvashatunk). A sínrendszer használatával egyszerűbbé tehetők a perifériák, amely természetesen segít ezek árának alacsony szinten tartásában.

A sínrendszerek felépítése

Ebben a pontban azt vizsgáljuk meg, hogy hogyan épülnek fel azok a rendszerek, amelyekben sínrendszerek valósítják meg a kapcsolatot.

Talán már feltűnhetett, hogy az előzőekben mindvégig a processzor és az azon kívüli egységek között húzódó sínrendszerekről írtunk. Felmerülhet, hogy mi a helyzet a processzor belsejében, hiszen abban is bináris adatokkal dolgozó modulok találhatók. A kérdés teljesen jogos, hiszen a mikroszámítógépekben megkülönböztetünk

    • belső sínrendszert, amely a processzor belső egységeinek az összekapcsolásáért felelős, valamint
    • külső sínrendszert, amely a processzor és a memória, valamint az I/O eszközök közötti kapcsolatot valósítják meg.

A belső sínrendszereket további három csoportba sorolhatjuk, amelyek elsősorban az adatátviteli sebességet határozzák meg.

  • 1-sínes rendszerek esetében a processzor közös vezetékeket használ az adat és a címjelek továbbítására. Természetesen egyidőben ez nem történhet meg, ezért időben szét kell választani ezeket. Ezt a struktúrát multiplexelt sínrendszernek is nevezik. Azt, hogy éppen cím vagy adat van-e a sínen, egy vezérlőjellel határozzák meg. Az ilyen struktúra az egyszerűbb processzoroknál figyelhető meg. Sok mikrovezérlő (a tokon belül elhelyeztek I/O eszközöket, valamint memóriát is) is ezt a felépítést használja, mivel a kivezetések számát jelentősen csökkenteni lehet, ezzel pedig a méret is csökken. Ma már egyre inkább kezdenek a gyártók szakítani ezzel a felépítéssel, aminek a fokozatos teljesítménynövekedés iránti igény az oka.
  • 2-sínes rendszerek a legelterjedtebbek, ilyen felépítésűek a mai PC-kben használt processzorok is. Ezeknél a rendszereknél külön sín szolgál a cím és az adatjelek továbbítására. A megoldás előnye az 1-sínes rendszerekkel szemben, hogy egyidőben van lehetőség a címzés és az adattovábbítás megvalósítására.
  • 3-sínes rendszerek jelenleg a leggyorsabbak a felépítésüknek köszönhetően. A 2-sínes felépítésnek egyik nagy hátránya, hogy az írás és az olvasás csak más-más ciklusban hajtható végre. A 3-sínes felépítés két adatsínt használ, az egyiken az írás, a másikon pedig az olvasás zajlik, természetesen egyidőben is van erre lehetőség. Ezzel a megoldással ismét sebességnövekedés érhető el. Ez a struktúra a RISC processzorokra jellemző.

A sínek számának csökkentésével a processzorok teljesítménye csökken, a rugalmasságuk és ezzel együtt az alkalmazási hatékonyságuk azonban növekszik.

A külső sínrendszereket is tovább csoportosíthatjuk, amire az összekapcsolt területek megkülönböztetése nyújt lehetőséget.

  • Helyi sín (local bus) kapcsolja össze a processzort és a hozzá közvetlenül kapcsolódó eszközöket. Fontos, hogy közvetlenül a processzor hajtja meg. A helyi sínre azok az egységek kapcsolódnak, amelyeknek fontos a maximális sebesség. A processzor kis kimeneti terhelhetősége miatt az eszközök száma, a nagy sebesség miatt pedig a maximális sínhossz is korlátozott.
  • Rendszersín (system bus) a processzort és általában az I/O eszközöket kapcsolja össze. Fontos, hogy a processzor után egy sínmeghajtót helyeznek el, aminek a feladata a sínek meghajtásának elvégzése a processzor helyett. A meghajtónak köszönhetően a sínre kapcsolódó eszközök száma jelentősen nagyobb lehet, mint a helyi sín esetében. Természetesen a sínhossz is jelentősen megnövekedhet. Lehetőség van a meghajtók számának növelésével a paramétereket mégjobban kiterjeszteni. Az előnyök mellett a hátránya a meghajtó fokozatnak, hogy a sebességet lassíthatja, azonban ez nem jelentős. A rendszer maximális sebességét a leglassabb eszköz fogja meghatározni.
  • Memóriasín (memory bus) amely kifejezetten a processzor és az operatív tár közötti kapcsolat kialakításáért felelős. Nem minden rendszerben különül el kifejezetten a rendszersíntől, azonban a teljesítmény és az adatbiztonság növeléséhez célszerű ezt megtenni. Természetesen a költségeket növeli az ilyen rendszer kialakítása.

A sínrendszert egyidőben csak egy eszközpáros használhatja. Ennek az oka a címzési rendszerben keresendő, mivel minden eszköznek külön címe van az egyértelmű azonosíthatóság miatt. A kommunikációt valamelyik egységnek kezdeményeznie kell valamelyik irányába. Az amelyik az átvitelt kezdeményezi, vezérlő- (master) vagy aktív eszköznek, amelyik a másik oldalon helyezkedik el, azt pedig passzív eszköznek (slave) nevezzük. A passzív egység feladata a vezérlő által kiadott utasításokat végrehajtani. A mikroszámítógépekben a sín vezérlési joga kezdetben csak a processzornak és a DMA (Direct Memory Access, közvetlen memória hozzáférés) vezérlőnek lehetett, később azonban már volt lehetőség I/O egységek számára is elvégezni a vezérlést.

Ha a vezérlő eszköznek igénye van a kommunikációra egy passzív egységgel, akkor egyszerűen elvégzi ezt a megfelelő vezérlőjelek használatával. Az eljárás más abban az esetben, ha egy passzív egységnek van átviteli igénye. Az már ismert, hogy átvitelt az nem kezdeményezhet, tehát valamilyen módon jeleznie kell a vezérlővel, hogy ilyen igénye lépett fel. Az igény beérkezése után a master kezdeményezi az átvitelt. A passzív eszköz két módon képes az igényét jelezni:

  1. Ebben az esetben minden passzív eszköznek rendelkezik egy olyan vezetékkel, amelyen keresztül képes ezt a műveletet elvégezni. Ezt a vezetéket megszakításkérő vezetéknek nevezik (későbbiekben bővebben is lesz szó erről). A beérkező kérelem alapján a vezérlő azonnal be tudja azonosítani, hogy melyik egységtől érkezett az igény. Előfordulhat olyan eset is, amikor egy egység több megszakításkérő vezetékkel rendelkezik, abban az esetben előbb le kell kérdeznie a vezérlőnek szoftveres úton, hogy mi volt a megszakításkérésnek az oka, majd csak ezt követően kezdeményezheti a sín vezérlését. Ezt a módszert nem vektoros sínfoglalásnak nevezik.

  2. A másik lehetőség az úgynevezett vektoros sínfoglalás. Ebben az esetben a passzív eszközök egy megszakításvezérlőhöz kapcsolódnak. Amikor beérkezik egy megszakítási igény, a vezérlő erre egy elfogadó jelzést küld a megszakításvezérlőnek, aminek hatására az az adatsínre helyezi a megszakítást kérő passzív eszköz azonosítóját. A processzorban elhelyeznek egy táblázatot, ahol a passzív eszközök sorszáma mellett az igényüket kiszolgáló programrészlet (rutin) is megtalálható. A processzor az azonosító alapján ki tudja keresni a táblázatából, hogy melyik passzív eszköz volt az igénylő, majd ezt követően kezdeményezheti a sín vezérlését. Az azonosítót nevezik vektornak, mivel megmutatja a táblázat alapján a kiszolgáló programrészlet kezdetét.

Minden esetben igaz, hogy a vezérlő eszköz végzi el a passzív eszközök címzését. Ez a művelet három különböző módon történhet:

  • Helyfüggetlen a címzés abban az esetben, ha az eszközöknek egyértelmű és egyedi címe van. Ebben az esetben egy címre csak egy eszköz válaszolhat.
  • Memóriába ágyazott címzésről (memory mapped addressing) akkor beszélünk, amikor az I/O eszközt úgy címezzük, mintha az operatív tár része lenne. Ebben az esetben nincs kifejezett perifériaművelet. A megoldás előnye, hogy könnyű a kezelhetősége, a hátránya pedig, hogy a címtartomány megoszlik a memória és a I/O eszközök között. Fontos ennél a címzésnél, hogy biztosítani kell, hogy nem történhessen átcímzés a másik területre.
  • Csoportcímzés (broadcast) esetén minden passzív egység címzése egyszerre történik meg. Ez akkor célszerű, amikor szeretnénk az összes eszközt azonos állapotba beállítani.

Az eddig leírtakból azt a következtetést vonhatjuk le, hogy egy egység vagy aktív, vagy passzív szerepet tölthet be. Ez igaz is meg nem is. Vannak olyan eszközök , amelyek lehetnek akár aktív, akár passzív állapotban is. Ez elsősorban az I/O eszközöknél figyelhető meg. A memória értelem szerűen minden esetben passzív eszközként működik.

A sínrendszeren keresztül zajló kommunikáció csak abban az esetben valósulhat meg, ha minden résztvevő ugyanazokkal a paramétereket használja a sín elérésére. Azokat a szabályokat, amelyek a rendszer működésében alapvető jelentőséggel bírnak, sínprotokollnak nevezzük.

A sínprotokoll magába foglalja a működési szabályokat, az elektromos- és mechanikus jellemzőket, valamint azt, hogy melyik eszköz hogyan kapcsolódhat a sínre. A sínrendszereket a sínprotokoll alapján is csoportosíthatjuk, erről a gyakorlatban használt sínrendszereknél olvashatunk.

Sínrendszer működése

Az előzőekben, a sínprotokoll kapcsán leírtuk, hogy a digitális rendszerekben az adatátvitel és ezzel együtt a sínhez kapcsolódás csak megadott rendszerben történhet. Annak érdekében, hogy minden eszköz a helyes időpontban érzékelje a vezetékeken lévő információt, azokat össze kell hangolni, vagyis szinkronizálni kell.

Az adatátvitel vezérlését két különböző módon lehet megvalósítani:

  1. Szinkron vezérlésről beszélünk akkor, ha az eseményeknek rögzített időpontjai vannak, a sínre kapcsolódó eszközök ugyanazt a szinkronizáló jelet (órajel) használják a működés vezérléséhez. Az órajelnek az éleit hasznosítják szinkronizációra, mivel az érzékelése annak egyszerű, a lefolyása pedig gyors (elméletileg nulla idő alatt történik meg a váltás). Lehetőség van az azonos éleket felhasználni, de van mód az ellenkező élek használatára is. Az adatok adása és vétele azonos sebességgel történik, mivel a kapcsolat mindvégig fennáll, nem kell kapcsolatfelvétel, valamint nincs szükség a visszaigazolásra sem. A megoldás gyors adatátvitelt tesz lehetővé, azonban plusz vezetéket igényel az órajel továbbítása miatt. A másik sajátossága a megoldásnak, hogy folyamatos adatátvitelt követel meg, az előzőekben leírtak alapján. Nagyon fontos megjegyezni, hogy a szinkron adatátvitel csak abban az esetben használható hatékonyan, ha a kommunikációban résztvevő eszközök azonos sebességűek. A szinkron rendszerek tervezésekor nagyon körültekintően kell eljárni, mert a legkisebb hiba is a rendszer működésképtelenségét vonhatja maga után.

  2. Aszinkron sínvezérlés alkalmazásakor az események tetszőleges időpontban bekövetkezhetnek, közös órajellel nem, de sajáttal rendelkezhetnek az összekapcsolódó eszközök. A kapcsolat csak az adatátvitel idején áll fenn. Ebből a tényből következik, hogy szükség van a kapcsolatfelvételre, valamint az adatok vételét vissza kell igazolni. A folyamatok lefutását és összehangolását az egymást követő elemi lépések befejezése szabályozza. Az aszinkron adatátvitelnél nincs szükség az órajel továbbítása, megoldható a kommunikáció a nagyon lassú eszközökkel is, valamint nem jelent problémát az sem, ha az adatátvitel nem folyamatos. Ennek oka, hogy minden átvitelt megelőz egy kapcsolatfelvétel. A hátránya viszont hogy lassabb átvitel tesz lehetővé, mint a szinkron vezérlés, valamint szükség van a visszaigazolásra is.

A visszaigazolást kézfogásos (hadshaking) eljárással oldják meg. Ennek a műveletnek az eredményeként az adó egység bizonyosságot szerez arról, hogy a küldött információt a vevő vette. A folyamat két lépésből áll, amelyet a 2. ábrán vehetünk szemügyre.

2. ábra. A kézfogásos eljárás működése

  1. Az adó egy jellel jelzi a vevőnek, hogy az információ érvényes a vonalon. Az ábrán erre a célra a DAV (Data Valid, adat érvényes) jelet használtuk.

  2. Amikor vevő érzékeli a DAV jelet, leolvassa az adatsínen lévő információt. Amennyiben ez a művelet hibátlanul megtörtént, az adó számára egy jellel jelzi ezt. Az ábrán erre szolgál a DAC (Data Accepted, adat elfogadva) jel. A következő adatcsomag küldése csak a DAC jel megérkezése után lehetséges. Abban az esetben, ha nem érkezik visszaigazolás egy időtartam alatt, akkor az adó újra elküldi az aktuális adatcsomagot, vagy megszakítást eredményez.

A megoldás egyszerűsége hatékony működést eredményezhet. A megoldásnak két hátránya van. Egyrészt csökkenti az adatátviteli sebességet, mivel időt vesz igénybe a visszaigazolás. A másik hátrány, hogy nem rendelkezik az adó semmilyen információval arra vonatkozólag, hogy a vevő kész-e a következő csomagot venni, vagy sem.

Ez utóbbi sajátosság kiküszöbölésére a gyakorlatban általában a kétszeres kézfogást (fully interlocked hadshaking) alkalmazzák. Ennél a megoldásnál a következő csomag csak akkor kerülhet elküldésre, ha az előző adatátvitel igazoltan és eredményesen befejeződött, valamint a vevő készen áll a következő vételére. Ezt az állapotot a DAV és a DAC egyidejű alaphelyzetbe állása jelzi az adónak. A működés idődiagramja a 3. ábrán látható.

3. ábra. A kétszeres kézfogás működése

Az eljárás lépései a következők:

  1. Az adó az adatot a sínre helyezi, majd aktivizálja a DAV jelet, amivel az adat érvényességét jelzi a vevőnek.

  2. A vevő ezt érzékelve leveszi a sínről az adatot, majd az vétel tényét jelzi az adónak a DAC jellel.

  3. Az adó visszaállítja a DAV jelet alaphelyzetbe.

  4. Amikor a vevő újra kész adatokat fogadni, a DAC jel alaphelyzetbe állításával jelzi ezt az adónak.

Az átvitel megkezdésével egyidőben megkezdődik időzítési periódus is. Abban az esetben, ha ez lejár, valamint a vétel nyugtázása nem érkezett meg, akkor az megszakítást eredményez, aminek az eredménye rendszerint az utolsó adat újraküldése.

Minden művelet végrehajtásához a sínen maghatározott idő szükséges. Ezt az időtartamot az adatátvitelhez szükséges órajelek számával jellemzik. Azt az időtartamot, amely egy adatátviteli folyamat végrehajtódásához és a következő folyamat elindíthatóságához szükséges, sínciklusnak nevezzük.

A sínciklus nem csak a szinkron, hanem az aszinkron átvitelnél is értelmezhető. Ennek az oka, hogy az aszinkron átvitel esetében is a jelváltozások csak megadott időpontban következhetnek be, azonban ezt nem olyan órajel határozza meg, amely mind a két résztvevőnél azonos.

A szinkron sínciklus idődiagramja a 4. ábrán, míg aszinkron átvitelé az 5. ábrán látható.


4. ábra. A Szinkron sínvezérlés idődiagramja


5. ábra. Az aszinkron sínvezérlés idődiagramja

A sínkezelés gyorsítása

A rendszer működési sebességének növeléséhez szükséges, hogy az eszközök sebességének növekedése mellett a sínciklusok rövidüljenek, mivel az adatátvitel sebességét alapvetően ez határozza meg. A sínsebességet két módon lehet meggyorsítani, az egyik az átlapolódás, a másik pedig a blokkos adatátvitel használata.

  1. Átlapolódás (Interleaved)

    Elsősorban a memória elérésének gyorsítására használják ezt a módot. A megoldás alkalmazhatóságát az teszi lehetővé, hogy a memóriahozzáférés ciklusa (tároló ciklus) hosszabb, mint a sínciklus. Abban az esetben, ha a memóriaterület kisebb részekre, úgynevezett bankokra van osztva, akkor lehetséges átlapolt sínciklusokkal növelni a sebességet. A működést a 6. ábra mutatja.

    6. ábra. Az átlapolt sínciklus működése

    Az ábrán látható, hogy két részre van felosztva a tár, tehát két bankja van. A tárciklus 4 órajelet, míg a sínciklus két órajelet vesz igénybe. Az első lépésben megtörténik az átvitel az első bankból. A sínciklus végeztével azonnal egy újabb indul, aminek a célja a második bank. A második adatcsomagtól kezdődően már két órajelenként lehetőség van adatelérésre.

    Abban az esetben, ha a tárciklus és a sínciklus aránya más, akkor az átlapolódás mértéke, valamint a sín kihasználtsága változik. Az optimális megoldást a bankok számának változtatásával lehet elérni.

    Az átlapolt sínciklus jellemző az Intel PC-s processzoraira.

  2. Blokk-ciklus (Burst cycle)

    A blokkos átvitel kialakulását szintén egy felismerés tette lehetővé. A memória (lehetne periféria is) rekeszeinek elérése címük alapján történik. Az esetek többségében az egymást követő olvasási vagy írási műveletek az egymást követő rekeszekre irányulnak. Alaphelyzetben minden esetben el kell küldeni a rekesz címét, majd megtörténhet az átvitel. Mivel a címek folyamatosan növekednek (vagy csökkennek, bár ez meglehetősen ritka), felesleges mindig elküldeni azt. Ha a memória vezérlő áramkörébe beépítésre kerül egy számláló, akkor csak az első rekesz címét kell elküldeni, a többit már a vezérlő egyszerű növeléssel előállítja. Az időzítések betartása mellett a sebesség nagyon nagymértékű növekedése az eredmény.

    Ezt az üzemmódot az Intel processzorai a 486-ostól kezdve támogatják.

Sínfoglalás (Bus Arbitration)

Az eddig megismert sínvezérlési módszerek nagyon jól működnek abban az esetben, ha a rendszerben csak egy vezérlő eszköz van. Probléma akkor jelentkezik, ha a több vezérlő egységet tartalmazó rendszerben egyszerre több vezérlő szeretné elvégezni a sínrendszer vezérlését. Ilyen esetekben el kell dönteni, hogy melyik egységnek van jogosultsága a többivel szemben. Ezt a döntési folyamatot nevezik sínfoglalásnak (bus arbitration).

A sín használatára vonatkozó igény kiszolgálása kétféle módon történhet soros, vagy párhuzamos módon. Nagyon fontos, hogy milyen módszerekkel lehet eldönteni a jogosultságot. Minden eszköz fontossági sorrendbe van szervezve, mait a prioritásuk mutat meg. A prioritás egy szám, ami minél kisebb, az eszköz annál fontosabb szerepet tölt be. A jogosultság eldöntésének folyamata történhet:

  • Centralizáltan, amikor az eszközök egy központi prioritásvezérlőre kapcsolódnak. Ez a vezérlő fogja a beérkező kérelmeket prioritásuk alapján sorba rendezni, majd a legmagasabb prioritású eszköznek megadja a jogosultságot.
  • A decentralizált rendszerekben nincs külön prioritásvezérlő logika, annak a funkciója az egyes egységekben elosztottan jelenik meg. Ebben az esetben a master egységek vezérlő áramkörei határozzák meg a sorrendet.

  1. Soros kiszolgálás (daisy chain)

    Ennél a vezérlési módnál a sínt vezérlő eszközök sorba vannak kapcsolva, a láncban való elhelyezkedésük szabja meg a fontossági sorrendjüket (prioritásukat). Amelyik egység a legközelebb van a vezérlőhöz, annak a prioritása a legmagasabb. A rendszer felépítése a 7. ábrán vehető szemügyre.

    7. ábra. A soros kiszolgálás működése

    Az ábrán látható, hogy minden eszköz két jelen keresztül tartja a kapcsolatot a vezérlő áramkörrel. A sín kérését a (Bus Request, sínkérés), míg a sín vezérlésének jogosultságát a (Bus Grant, sín átadva) vezeték állapota jelzi.

    Abban az esetben, ha szeretné valamelyik egység elkérni a sín vezérlésének a jogát, a jelet alacsony szintre állítja. A vezérlő veszi az igényeket, majd ha van rá lehetőség, kiadja a engedélyező jelet. Ez a jel az első vezérlőhöz kerül, mely abban az esetben, ha nincs vezérlési igénye, továbbadja a következőnek. Az első olyan eszköz, amely igényelte a sínvezérlés jogát, magánál tartja a jelet, amivel lefoglalja a sínt a saját maga számára.

    Lehetőség van többszintű prioritású rendszer kialakítására is. Erre mutat példát a 8. ábra.


    8. ábra. Többszintű soros kiszolgálás

    Látható, hogy ebben az esetben több ág kapcsolódik a vezérlő logikához, ezeknek az ágaknak is van prioritásuk. A vezérlő feladata a kérelmeket sorba állítani és a legmagasabb prioritású ágra kiadja a jelet. Az ágon belül már a soros elv érvényes.

    A működést lehet gyorsítani úgy, hogy bevezetnek egy nyugtázó jelet, ami a sínfoglalás megtörténtét jelzi a vezérlőnek, így az ismét képes a kérelmek fogadására.

    A soros kialakítású sínfoglalásnál a processzor a legalacsonyabb prioritású egység, amivel biztosítani lehet minden eszköz részére a vezérlési jogot.

    Ennek a kialakításnak az egyik speciális változata a lekérdezéses (polling) eljárás. Ahol a vezérlő sorban lekérdezi az egységeket, hogy van-e vezérlési igényük.

    A prioritás kialakítására három módszer használatos:

    • soros sínhasználat engedélyezése (daisy chained bus grant), amely tulajdonképpen megegyezik az előzőekben bemutatottal. A kérelmek beérkezése után az engedélyező jel sorban halad az egységeken keresztül, a vezérlőhöz legközelebbi kapja meg a sín kisajátításának a jogát.
    • Soros sínkérelem engedélyezés (daisy chained bus request) módszernél a sínhasználatot kérő vonal halad végig az eszközökön. A sínt kérő eszközök kiadják a jelet a legalacsonyabb prioritású egység felé. A folyamat végén a sínkérelem eléri a sínt éppen használó eszközt, amennyiben az alacsonyabb prioritású. Ez a közös engedélyező vonalra kiadja a jelet, amelyet minden eszköz érzékel. Venni csak annak az egységnek van jogosultsága, amelynél nagyobb prioritású eszköz nem kérte a sínhasználat jogát.
    • Soros engedélyezés (daisy chained enable) megoldásánál közös mind a , mind az BG vezeték, valamint egy engedélyező vonal halad végig az össze eszközön. Az az egység, amely igénybe szeretné venni a sínt, egyszerűen letiltja a kimenetén a további, alacsonyabb prioritású eszközök számára a sín kérésének a lehetőségét.

    A soros kiszolgálás hátránya, hogy az alacsonyabb prioritású eszközök csak ritkán juthatnak sínvezérlési joghoz. Ezt a helyzetet kiéheztetésnek nevezik. Amint azt már leírtuk a processzor a legkisebb prioritású eszköz, szélsőséges esetben előfordulhat, hogy egyszerűen nem jut vezérlési jogosultsághoz. A probléma a vezérlő áramkör megfelelő kialakításával csökkenthető.

  2. Párhuzamos kiszolgálás

    A párhuzamos kiszolgálás felépítése a 9. ábrán látható.

    9. ábra. A párhuzamos kiszolgálás felépítése

    Amint az ábrán is látható, minden eszköz saját sínkérő és sínengedélyező vezetékkel rendelkezik. A sínvezérlő feladata a beérkező kérelmek sorrendbe állítása a prioritásuk alapján, majd ezt követően a megfelelő sínengedélyező vezetéken jelzi ezt a kívánt egységnek.

    Fontos ebben a megoldásban is az egységek sorrendjének (prioritásának) az eldöntése.

    • Egyszerű körbejáró (simple rotating) eljárásnál az éppen aktuális sínengedélyezés után a prioritása minden egységnek eggyel alacsonyabb lesz, amelyiké a legalacsonyabb volt, a váltás után annak lesz a legmagasabb.
    • Elfogadástól függő körbejáró (acceptance dependent rotating) módszer nagyon hasonlít az egyszerű körbejáró módszerhez, azonban itt a kiszolgálás után az egységek prioritása eggyel növekszik. A legmagasabb prioritású egység kerül a legalsó helyre. Ez a módszer a legáltalánosabb.
    • Véletlenszerű (random) megoldásnál minden kérelem kiszolgálása után a prioritás véletlenszerűen kerül újra kiosztásra.
    • Legkevésbé használt eszköz (last recently used, LRU) eljárásnál a sínt legrégebben nem használó eszköz prioritása lesz a legmagasabb.

    A fentiekből látható, hogy a párhuzamos kiszolgálás esetében minden egységnek véges időtartamon belül lehetősége van a sín vezérlési jogának a megszerzésére.

    Miután már megismertük a sínrendszerekkel kapcsolatos alapfogalmakat, vizsgáljuk meg, hogy a gyakorlatban milyen sínrendszerek terjedtek el.