Számítógép architektúrák 2. tétel Elemi sorrendi hálózatok: RS flip-flop, JK flip-flop, T flip-flop, D flip-flop, regiszterek. Szinkron és aszinkron számlálók, Léptető regiszterek. Adatcímzési eljárások típusai. Tárolóhierarchia. A gyorsítótárak helye a hierarchiában, használatuk, hozzáférésük.
A digitális rendszerek logikai döntést hoznak: egy bizonyos időpillanatban fennálló bemeneti jelkombináció hatására egy előre meghatározott kimeneti jelkombináció jelenik meg. A döntés kétféleképpen történhet: Kombinációs hálózat ok esetén kizárólag a bemeneti kombinációk aktuális értékei határozzák meg a kimeneti kombinációt. Sorrendi (szekvenciális) hálózat ok esetén a kimeneti kombinációt a pillanatnyi és a korábban fennállt bemeneti kombinációk határozzák meg (vagyis a rendszer emlékezettel bír).
Sorrendi (szekvenciális) hálózatok A kombinációs hálózattal szemben emlékezettel (memóriával) rendelkező hálózatnak nevezik, mert a zj kimeneti állapotát nem csak a pillanatnyi xi bemeneti állapot határozza meg, hanem a korábbi bemeneti állapotok is, azaz a bemeneti állapotok sorozata.
Hogyan „emlékszik” a sorrendi hálózat? Arra kell emlékeznie, hogy a feladata szempontjából mi történt megelőzően a bemenetén. Ezt az éppen aktuális belső állapota tárolja. Ha véges számú megelőző bemeneti állapotra kell (csak) emlékeznie, akkor véges számú belső állapota van. Az ilyen szekvenciális hálózatot véges (sorrendi) automatának nevezik.
A flipflop
A sorrendi hálózatok elemi tárolócellája a flipflop, amelynek két (belső) állapota van, tehát egy flipflop 1 bit információ tárolására alkalmas, (de n flipflop már 2n belső állapotot képes tárolni). Egy flipflop állapotait szokás 0-val és 1-gyel jelölni. Többféle flipflop van: Szinkron – aszinkron A szinkron flipflopok között is a beírás (és törlés) típusától függően többféle.
Szinkron sorrendi hálózatok A szinkron szekvenciális hálózat belső, elemi tárolóelemei mind szinkron flipflopok és (ami a lényeg): valamennyi flipflopot egy közös órajel billenti – gyakorlatilag egyidőben. (Bár létezik „kétfázisú” szinkron szekvenciális hálózat is.) Ez azt jelenti, hogy a szinkron szekvenciális hálózatnak van egy kitüntetett, ún. órajelbemenete. Az olyan szekvenciális hálózatok, amelyeknek nincs ilyen kitüntetett bemenetük, aszinkron hálózatok. A logikai vezérlés hatása mindaddig nem érvényesül a kimeneten, amíg az órajel el nem indítja a flipflop belső állapotváltozásait. Ez egy tranziens folyamat, amely alatt nem szabad a hálózat logikai vezérlését változtatni, „békén kell hagyni” a hálózatot. Egy szinkron hálózat órajel-periódusának a hosszát a leghosszabb tranziens folyamat idejénél hosszabbra kell választani.
A flipflopok típusai SR flipflop Az S-R flip-flopnak egy beállító (Set), és egy törlő (Reset) bemenete van. Az egyik legegyszerűbb flip-flopnak tekinthető, bár alapvetően tároló. A két bemenet egyidejű felemelését tiltani szokták, mivel ez instabil állapotot idézne elő (ld. versenyhelyzet), viszont ha egy D flip-floppal kombináljuk, és mindkét bemenet egyidejű felemelését engedélyezzük, akkor master-slave JK flip-flopot kapunk. Igazságtáblája: S R Qkövetkező 0 0 Q 0 1 0 1 0 1 1 1 X (X = don't care)
Szimbóluma:
A D flip-flop A D flip-flop a legegyszerűbb, 1 bites memóriaelemnek tekinthető. Létezik élvezérelt, és két fázisú órajellel vezérelt típusa is. Alapvetően két D-G tárolóból áll, amelyek
master-slave elrendezésűek, tehát az első által fogadott jelet a második – vezérléstől függően – a következő fázisban másolja a kimenetre. A D flipflopot valamilyen értéket megtartó regiszter (latch) felépítésére használják. Pl. egy digitális mérőműszer egy kijelzésének megtartására mindaddig, amíg a műszer egy újabb mérési értéket produkál. Igazságtáblája: D Qkövetkező 0 0 1 1
A D Master-Slave belső elrendezése
A T flip-flop A T flip-flop jele A T flip-flop magas szintű bemenet esetén a kimenetét negálja. Igazságtáblája: T Qkövetkező 0 Q 1 !Q
A JK flip-flop Szimbóluma: Ha egy SR tároló mindkét bemenetének magas szintűre állítása esetén azt szeretnénk, hogy a kimenetet negálja, akkor – az instabil állapotok kiküszöbölése céljából – egy D flip-flopot teszünk a JK tárolónkra. Az ábrán látható JK flip-flopon egy beállító és egy törlő bemenet is van, ezeket a kezdeti állapotuk beállítására lehet használni. (Általában nem Set és Reset szoktak lenni, hanem Preset és Clear.) Igazságtáblája: J K Qkövetkező 00 Q 01 0 10 1 11 !Q
A JK flip-flop jele
A JK flip-flop időzítési diagrammja:
Regiszterek A regiszterek a számítógépek központi feldolgozó egységeinek (CPU-inak), illetve mikroprocesszorainak gyorsan írható-olvasható, ideiglenes tartalmú, és általában egyszerre csak 1 gépi szó (word) (rövid karakterlánc, 1-2 szó általában 2-4 bájt) feldolgozására alkalmas tárolóegységei. A regiszterek felépülhetnek statikus memóriaelemekből (például flip-flop áramkörből) vagy egy RAM (Random Access Memory) memória részeként. Néhány géptípusnál egyetlen chipben mind a két megoldást alkalmazzák. Egy-egy regiszter hozzáférési ideje általában néhányszor 10 ns (10-8 másodperc nagyságrendű). A legtöbb mai processzor tartalmaz 10-1000 általános regisztert, és ezen kívül jó néhányféle, szigorúan adott funkciót ellátó, speciális célú dedikált regisztert. A főbb dedikált regiszter-típusok: akkumulátorregiszter (a processzor által végzett művelet bemenő adatait tárolja), címregiszterek vagy számláló regiszterek, állapotregiszterek stb.
Számlálók A számláló (counter) a sorrendi hálózatok egy speciális esete. Működése: a bemenetre érkező impulzusokat (órajel) megszámolja és az eredményt a következő impulzus beérkezéséig tárolja. A számlálás tárolási és összeadási műveletek sorozatából áll. A számlálók flipflopokkal és a hozzájuk kapcsolódó kombinációs (kapu-) hálózattal építhetők fel.
Szinkron és aszinkron számlálók Aszinkron számláló: Az egyes flip-flopok egymást vezérlik. Az óraimpulzusok sorosan terjednek. Szinkron számláló: Kiküszöböli a az aszinkron megoldásnál fellépő késletetéseket. Az összes flip-flop egyszerre (párhuzamosan) kapja meg bemenı impulzust, a billenés egyidejű, szinkron. A flip-flopok egymást kapuzzák, a bemeneteiket kapuk vezérlik.
Számlálók felhasználási területei számlálás;
frekvenciaosztás; sorrendi áramkörök vezérlése; matematikai műveletvégzés. Aszinkron bináris (előre-) számláló:
Léptető regiszter A léptető regiszter közös órajelen lévő flip-flopok sorozata, ahol az utolsó kivételével minden flip-flop kimenete a következő „adat” bemenetére van kötve, így eggyel eltolja a tárolt „bit-tömböt”, betolja az inputra érkező adatot, és kitolja az utolsó értéket, amikor a beérkező órajel átmenete ezt lehetővé teszi.
Adatcímzési eljárások típusai Közvetlen: MOV AX,FFh Direkt: MOV AX,[C000h] Regiszter: MOV AX,DX Indirekt: MOV AX,[BX] Bázis-index: MOV AX,[BP:SI]1234h Verem: PUSH AX és POP AX
Ez közvetlen értéket tölt az adott regiszterbe Az adott címről olvas be értéket Regiszterek között továbbít adatot Regiszter által mutatott címről olvas be adatot A BP+SI+1234h címről olvas adatot Verem és regiszter között mozgat adatot
Tárolóhierarchia Név Regiszterek Cache Operatív tár Disk cache Háttértár
Elérési sebesség 1 nsec 10 nsec 60 nsec 10 msec 10 msec
Kapacitás (nagyságrend) 100 byte 10 KB 10 MB 1 GB >10 GB
CPU RAM HDD
Cache (gyorsítótár) A gyorsítótár vagy cache (ejtsd: „kes”) francia eredetű kifejezés (jelentése: „rejtekhely”, „rejtett”), a számítástechnikában az átmeneti információtároló elemeket jelenti, melyek célja az információ-hozzáférés gyorsítása. A gyorsítás egyszerűen azon alapul, hogy a gyorsítótár gyorsabb tárolóelem, mint a hozzá kapcsolt, gyorsítandó működésű elemek, így ha ezen területek tartalma korábban már bekerült a gyorsítótárba (mert már valaki/valami hivatkozott rá korábban), az ilyen adatokat nem a lassú működésű területről, hanem a gyors cache tárolóból lehet előhívni.
Mikroprocesszorba beépített cache (on-chip cache) A hardveres gyorsítótár technikai megvalósítása sokkal drágább, mint a hagyományos memóriaelemek. Ez a magyarázata annak, hogy miért nem dobjuk ki a lassú memóriákat, és használjuk helyettük rögtön csak a gyorsítótárat. Gyorsítótárazásra leginkább akkor van szükség, ha a számítógép két alkatrészének adatkezelési sebessége számottevően (például nagyságrendekkel) eltér, és a lassabb alkatrész így a maga szintjére „húzza le” azt az elemet, ami egyébként villámgyorsan működne. Ez a helyzet például a CPU és a központi memória esetében: az utóbbi sokkal lomhább, akár 5×-20× is lassabban működhet, mint a CPU. Ilyen esetekben a processzor és a központi memória közé egy cache egységet (on-chip cache) iktatnak, így a processzor először a gyors cache-ből próbálja elérni a szükséges adatot, és ha ott nem találja, akkor keresi a központi memóriában. A cache-tár akkor működik hatékonyan, ha a keresett adatok nagyrészt a cache-ben és nem a memóriában találhatók. A találatok száma függ a cache-tár méretétől. A 10%-os találati hiba még elfogadhatónak számít.
Önálló tárolóeszköz (off-chip cache) Nemcsak a CPU és a memória közötti gyorsítótárról lehet tehát beszélni (bár ez egy igen tipikus példa): a merevlemez is rendelkezhet gyorsítótárral, ami a lassú elérésű lemezről (például átlagosan 40 ms alatt) leolvasható adatokat egy a diskbe épített cache memóriában tárolja (mely például 0.1 ms alatti elérési sebességgel rendelkezik).