Számítógép architektúra kidolgozott tételsor



Hasonló dokumentumok
2008/2009 KIDOLGOZOTT TÉTELEK

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Digitális technika VIMIAA01

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

2. Digitális hálózatok...60

Matematikai alapok. Dr. Iványi Péter

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

Digitális technika 1. Tantárgykód: VIIIA105 Villamosmérnöki szak, Bsc. képzés. Készítette: Dudás Márton

FPGA áramkörök alkalmazásainak vizsgálata

1. Kombinációs hálózatok mérési gyakorlatai

1. Az utasítás beolvasása a processzorba

A mikroszámítógép felépítése.

Számítógépek felépítése, alapfogalmak

4-1. ábra. A tipikus jelformáló áramkörök (4-17. ábra):

hét Sorrendi hálózatok tervezési lépései: szinkron aszinkron sorrendi hálózatok esetén

Az integrált áramkörök kimenetének kialakítása

Hobbi Elektronika. Bevezetés az elektronikába: Boole algebra, logikai kifejezések

A TMS320C50 és TMS320C24x assembly programozására példák

Mesterséges intelligencia, 7. előadás október 13. Készítette: Masa Tibor (KPM V.)

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Máté: Számítógép architektúrák

DIGITÁLIS TECHNIKA I Dr. Lovassy Rita Dr. Pődör Bálint

Assembly programozás: 2. gyakorlat

S7021 ADATGYŰJTŐ. 2-csatornás adatgyűjtő számláló és bináris bemenettel. Kezelési leírás

Szupermikroprocesszorok és alkalmazásaik

DIGITÁLIS TECHNIKA 7-ik előadás

Villamosmérnöki BSc Záróvizsga tételsor Módosítva január 6. DIGITÁLIS ÁRAMKÖRÖK ÉS ALKATRÉSZEK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

SZÁMÍTÓGÉPES ARCHITEKTÚRÁK

Bevezetés az informatikába

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

Máté: Számítógép architektúrák

Tanulmányozza az 5. pontnál ismertetett MATLAB-modell felépítést és működését a leírás alapján.

Számítógép Architektúrák

DIGITÁLIS ADATTÁRAK (MEMÓRIÁK)

A számítógép alapfelépítése

Kapacitív áramokkal működtetett relés áramkörök S: B7:S21.3S2.$

4. Fejezet : Az egész számok (integer) ábrázolása

Elektronika I. Dr. Istók Róbert. II. előadás

KNX távirat nyugtázása. Épületinformatika. KNX távirat példa. KNX távirat példa

I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Máté: Számítógép architektúrák

1. ábra: Perifériára való írás idődiagramja

Funkcionális áramkörök vizsgálata

Bevezetés a C++ programozásba

Számítógép Architektúrák I-II-III.

8. Mohó algoritmusok Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete

Számítógépek. 2.a) Ismertesse a kombinációs hálózatok alapelemeit és a funkcionálisan teljes rendszer

DIGITÁLIS TECHNIKA I

Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre.

Billenő áramkörök Jelterjedés hatása az átvitt jelre

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Dr. Illés Zoltán

Programozás 3. Dr. Iványi Péter

Digitális technika kidolgozott tételek

C programnyelv 1. Kedves Kollegina, Kolléga!

Számítógépes alapismeretek

Sorompó kezelés mérlegműszerrel

Joint Test Action Group (JTAG)

Máté: Számítógép architektúrák

INFORMATIKA MATEMATIKAI ALAPJAI

Az oszcillátor olyan áramkör, amely periodikus (az analóg elektronikában általában szinuszos) jelet állít elő.

Boundary Scan. Új digitális áramkör-vizsgálati módszer alkalmazásának indokoltsága

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék

Billenőkörök. Mindezeket összefoglalva a bistabil multivibrátor az alábbi igazságtáblázattal jellemezhető: nem megen

A TANTÁRGY ADATLAPJA

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

Alkalmazott modul: Programozás

A G320 SERVOMOTOR MEGHAJTÓ ÜZEMBE HELYEZÉSE (2002. március 29.)

Méréstechnika. 3. Mérőműszerek csoportosítása, Elektromechanikus műszerek általános felépítése, jellemzőik.

3 Tápegységek. 3.1 Lineáris tápegységek Felépítés

SGS-48 FORGALOMTECHNIKAI SEGÉDLET

23. Kombinatorika, gráfok

E7-DTSZ konfigurációs leírás

4. KOMBINÁCIÓS HÁLÓZATOK. A tananyag célja: kombinációs típusú hálózatok analízise és szintézise.

A megfelelő IP védelem biztosításával, alkalmasak a kültéri alkalmazások kialakítására.

S3120 ADATGYŰJTŐ. Kezelési leírás

Telepítési és kezelési útmutató

Kapuáramkörök működése, felépítése, gyártása

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

prímfaktoriz mfaktorizáció szló BME Villamosmérn és s Informatikai Kar

(1. és 2. kérdéshez van vet-en egy 20 oldalas pdf a Transzformátorokról, ide azt írtam le, amit én kiválasztanék belőle a zh-kérdéshez.

15. Programok fordítása és végrehajtása

Oé 0, 0 Z. pj J I I C Q4 Q6- Q6. L- cp5«ils273rie. p» D5-Q6 07 UJJ. Sí S2 S3 S4. Si S2 S3 4 M. -MM-M. 54LSé6 54LS*G CTTUJU *7] 54LS273 D7

4. Programozási nyelvek osztályozása. Amatőr és professzionális

7. Szisztolikus rendszerek (Eberhard Zehendner)

A stabil üzemű berendezések tápfeszültségét a hálózati feszültségből a hálózati tápegység állítja elő (1.ábra).

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

PR402EN.doc. PR402 v1.0 Egyajtós beléptetõ rendszer FIRMWARE VERZIÓ Telepítési útmutató

ISE makró (saját alkatrész) készítése

Dekonvolúció, Spike dekonvolúció. Konvolúciós föld model

Visszatérítő nyomaték és visszatérítő kar

Számítógép architektúrák

I M P U L Z U S T E C H N I K A

Széchenyi István Szakképző Iskola

Átírás:

Számítógép architektúra kidolgozott tételsor Szegedi Tudományegyetem Szeged, 27.

Tartalomjegyzék. Fordítás, értelmezés... 4 2. Numerikus adatok ábrázolása: fixpontos ábrázolás, konverzió számrendszerek között. Negatív számok ábrázolásai.... 5 3. Lebegőpontos számok. IEEE 754 szabvány.... 8 4. Hamming távolság. Hibaészlelő, hibajavító kódok.... 5. Digitális logikai szint. Kapuk. Boole algebra. Boole függvények megvalósítása, áramköri ekvivalenciája. A Boole algebra legfontosabb azonosságai, dualitás.... 2 6. Kombinációs áramkörök, multiplexer, demultiplexer, dekódoló, összehasonlító, programozható logikai tömbök.... 5 7. Aritmetikai áramkörök. Léptető, fél és teljes összeadó, ALU, átvitel továbbterjesztő és kiválasztó összeadás.... 7 8. Nem kombinációs áramkörök. Óra, tárolók, flip-flop-ok... 2 9. Processzor szintű párhuzamosítás... 24. Gyorsító tár (cache). Találati és hiba arány. Közös és osztott gyorsító tár. Direkt leképezésű és halmaz kezelésű gyorsító tár. Memóriába írás.... 26. Operandus megadás módjai. Közvetlen operandus, direkt, regiszter, regiszter-indirekt, indexelt, bázis-index címzés... 29 2. Sínek. Sín Protokoll. Master szolga. Sín vezérlő, vevő, adóvevő. Sín szélessége. Sokszorozott sín. Sín időzítés: szinkron, aszinkron sín, teljes kézfogás. Sín ütemezés. Sín műveletek.... 3 3. Általános soros sín... 34 4. PCI Express... 37 5. A CPU részei, feladatai. CPU, adatút. Három, kettő, egy és nulla címes utasítások.... 4 6. Mikroarchitektúra szint. Az ALU-val végezhető műveletek. Memória műveletek. ALU és az adatút vezérlése. Mikroutasítások: Mic-. Mic- működése.... 43 7. A Mic- memória ciklusa.... 47 8. MPC új értékének kialakulása Mic--en.... 48 9. A WIDE utasítás hatása és működése Mic--en.... 49 2. Parallel Input/Output (PIO), valódi és memória leképezett I/O eszközök. Teljes és részleges címdekódolás. Programozott és megszakítás vezérelt I/O. DMA.... 5 2. Utasítás szintű párhuzamosítás, csővezeték (pipelining).... 52 22. Utasítás betöltő egység. Mic 2.... 54 23. Csővonalas terv: a Mic-3... 56 24. Egy hétszakaszú szállítószalag: a Mic-4 csővezetéke.... 57 2.

25. Elágazás, eltolási rés, statikus és dinamikus elágazás jövendölés... 6 26. Sorrendtől eltérő végrehajtás, szuperskaláris architektúra, függőségek, regiszter átnevezés, feltételezett végrehajtás... 62 27. Feltételes végrehajtás, predikáció... 64 28. A Pentium 4, az UltraSPARC III és az I-85 mikroarchitektúrája.... 65 29. A Pentium 4, az UltraSPARC III és az I-85 mikroarchitektúrájának összehasonlítása... 7 3. Gépi utasítási szint. Memória modellek, memória szemantika. A Pentium 4, az UltraSPARC III és az I-85 regiszterei... 7 3. A Pentium 4, az UltraSPARC III, az I-85 utasítás formátumai, címzési módjai... 75 32. Veremcímzés. Fordított lengyel (postfix) jelölés. Dijkstra algoritmusa. Postfix alakú formulák kiértékelése... 79 33. Vezérlési folyamat. Szekvenciális vezérlés, elágazás, ciklus szervezés, eljárás, rekurzív eljárás, korutinok, megszakítás, csapda... 8 34. Operációs rendszer szintje. Virtuális memória. Lapméret, elaprózódás. Szegmentálás. A Pentium 4 és az UltraSPARC III virtuális memóriája.... 84 35. Terminál. Modemek, jelzési, adatátviteli sebesség.... 9 36. ADSL, kábeles internet.... 93 37. Az Intel 886/88 utasításai (adatmozgató, aritmetikai, logikai, string-kezelő, bitléptető/forgató, vezérlésátadó, processzor-vezérlő, input/output utasítások, program megszakítás, szemafor). 97 38. Pszeudo operátorok. Egyszerű adatdefiníciós utasítások. Struktúra, rekord (definíció, hívás, mezőre hivatkozás)... 3 39. Eljárás (deklaráció, hívás). Paraméter átadás/átvétel különböző módjai.... 6 4. Lokális adatterület, rekurzív és reentrant eljárások.... 8 4. Feltételes fordítás... 9 42. Makró (definíció, hívás), blokk ismétlés... 43. Címkék, változók, konstansok, kifejezések... 5 44. Szegmens definíció, szegmens csoport, aktív szegmensek kijelölése, globális szimbólumok... 9 45. Egyszerûsített lexikális elemzõ... 2 46. Két menetes assembler fordító... 25 47. Az include utasítás. Az include utasítás feldolgozása a fordítás során.... 27 48. Makró generátor... 28 49. Szerkesztő... 29 5. Time sharing (időosztás). binding (cím hozzárendelés), dinamikus szerkesztés... 3 5. Programok hangolása... 33 3.

. Fordítás, értelmezés A probléma két oldalról is megközelíthető. Mindkettő az ember számára a gépi nyelvnél kényelmesebben használható új utasításrendszer tervezésére épül. Az új utasítások együttese is egy nyelvet alkot nevezzük ezt L-nek -, ugyanúgy, ahogy a beépített utasítások nyelvet alkotnak legyen ez utóbbi L. A kétféle megközelítés abban különbözik egymástól, hogy a számítógép hogyan hajtja végre az L nyelven írott porgramokat, miközben csak a saját, L gépi nyelvén írt programokat képes végrehajtani. Az L nyelvű program végrehajtásának egyik módja az, hogy először minden utasítását helyettesítjük az L nyelv utasításainak egy vele ekvivalens sorozatával. Az így nyert program teljes egészében az L utasításaiból áll. Ekkor az eredeti L nyelvű program helyett a számítógép ezt az L nyelvű programot hajtja végre. Ezt a módszert fordításnak nevezzük. A másik módszer szerint megírunk egy L nyelvű programot, amely az L nyelvű programokat bemenő adatokként kezeli, és úgy hajtja végre azokat, hogy minden utasításukat elemzi, és a vele ekvivalens L nyelvű utasítássorozatot azonnal végrehajtja. Ez a módszer nem igényli, hogy először egy új, L nyelvű programot állítsunk elő. A módszert értelmezésnek, a végrehajtó programot pedig értelmezőnek nevezzük. A fordítás és az értelmezés módszere hasonló. Végül is mindkettő az L utasításait az L utasításaiból álló sorozatok végrehajtásával teljesíti. A különbség csak az, hogy a fordítás esetében először az egész L nyelv programot átírjuk L nyelvűvé, majd az L programtól megszabadulunk, és az L programot töltjük a számítógép memóriájába, és azt hajtjuk végre. A végrehajtás során az újonnan előállított L program az, ami fut, és ami a számítógépet vezérli. Az értelmezés esetében L minden utasításának elemzését és dekódolását az utasítás azonnali végrehajtása követi. Nem keletkezik lefordított program. A számítógépet az értelmező vezérli, számára az L nyelvű program csak adat. Mindkét módszert és egyre gyakrabban a kettő kombinációját is széles körben alkalmazzák. 4.

2. Numerikus adatok ábrázolása: fixpontos ábrázolás, konverzió számrendszerek között. Negatív számok ábrázolásai. A legtöbb számítógép egy szám tárolására szóló memóriája fix méretű, rögzítették a számítógép tervezésekor. Bizonyos erőfeszítésekkel a programozó tudja a számokat ábrázolni az eredeti fix méretnél kétszer, háromszor, sőt többször nagyobb helyen is, de ez nem változtatja meg a probléma természetét. A számítógépes erőforrásnak ez a véges természete csak azokkal a számokkal enged foglalkozni, amelyek fix számú számjeggyel ábrázolhatók. Ezeket a számokat véges pontosságú számoknak hívjuk. Fixpontos számok például az előjeles, kétjegyű decimális számok. Ábrázolási tartomány: -99 ; +99 Pontosságuk (két szomszédos szám különbsége): Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós szám, és a hozzá legközelebb lévő ábrázolható szám maximális különbsége: /2. Az ember általában tízes számrendszert használ, de a számítógépek használatánál kényelmesebb nem tízes alapú, hanem más rendszereket használni. A legfontosabb alapszámok a 2, a 8 és a 6. Ezen alapszámokra épülő számrendszereket sorrendben kettesnek (bináris), nyolcasnak (oktális) és tizenhatosnak (hexadecimális) nevezzük. A decimális számok decimális jegyből épülnek fel: 2 3 4 5 6 7 8 9. Szemben a bináris számokkal, amelyek nem tíz jegyet használnak, hanem szerkeszthetünk meg:. 2 jegyből Az oktális számok 8 oktális jegyből épülnek fel: 2 3 4 5 6 7. A hexadecimális számoknál 6 jegy szükséges. Így 6 új szimbólum bevezetésére van szükség. Kényelmes bevezetni az A-tól F-ig nagybetűket, amelyek a 9-et követő hat számjegy számára szolgálnak. Így a számok a következő jegyekből épülnek fel: 2 3 4 5 6 7 8 9 A B C D E F. Az alábbi táblázat a 4 számrendszerbeli megfelelőket mutatja be: Decimális Bináris Oktális Hexadecimális 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 9 9 2 A 3 B 2 4 C 3 5 D 4 6 E 5 7 F 5.

Nagyon fontos az egyes számrendszerek közötti konverzió. Bináris ->Oktális: Osszuk hárombites csoportokra a számot. Az első 3 bit közvetlenül balról (vagy jobbról) a decimális pont után (ezt gyakran bináris pontnak hívjuk) alkot egy csoportot, a tőlük balra eső 3 bit a következő csoportot és így tovább. Minden egyes ilyen hárombites csoportot direkt módon konvertálhatunk egy egyszerű oktális számjegyre -tól 7-ig. Lehet hogy szükséges egy vagy két kezdő vagy záró -val kitölteni a hárombites sorozatokat. Pl.:. 4 5. 5 5 4 Oktális -> Bináris: Minden oktális számjegyet cseréljünk le egy vele ekvivalens hárombites számra. Hexadecimális -> Bináris: Hasonló az oktálisból binárisba történő konverzióhoz, kivéve, hogy minden hexadecimális jegy megfelel egy négybites csoportnak az előzőekben használt három bit helyett. Pl.: 7 B A 3. B C 4. Bináris -> Hexadecimális: Mint a binárisból oktálisba, csak 3 helyett 4 bites csoportokat kell létrehozni. Decimális -> Bináris: Pl.: 23,375 átszámítása kettes számrendszerbe. Egész rész: Tört rész: /2 marad egész *2 23.375.75 5.5 2. 2, 2 23,375 =, 2 Véges tizedes tört nem biztos, hogy binárisan is véges! 6.

Bináris -> Decimális: A legegyszerűbb módszer, amikor összegezzük a kettő azon hatványait, ahol -es volt a kitevőben. Pl.: = 2 4 + 2 2 + 2 = 6 + 4 + 2 = 22. A negatív számok megjelenítésére négy különböző módszert is használnak.. Előjeles nagyság (signed magniture) Ebben a rendszerben a legbaloldalibb bit az előjelbit (a +, és az -), és a maradék bitek jelzik a szám abszolút értékét. 2. Egyes komplemens (one s complement) Az egyes komplemensnek is van előjelbitje, amelynél a jelenti a pozitív, a negatív számot. Azért, hogy negáljuk ezt a számot, minden -est -ra cseréljük, és minden -t -esre. Ez természetesen az előjelbitre is vonatkozik. Az egyes komplemens képzése elavult rendszer. Pl.: +25 =, - 25 =. Jellemzők: a nulla kétféleképpen ábrázolható, a legkisebb szám -27, a legnagyobb 27. 3. Kettes komplemens (two s complement) A kettes komplemens szintén tartalmaz előjelbitet, amely a pozitív, pedig a negatív számok esetében. Egy szám átváltásánál negálni kell az eredeti számot, valamint hozzá kell adni egyet. Pl.: +25 = -25 = egyes komplemens, -25 = kettes komplemens. Jellemzők: a nulla egyértelműen ábrázolható, a legkisebb szám -28, a legnagyobb 27. 4. Többletes A negyedik rendszer, amit m bites szám esetében 2 m- -többletesnek hívunk, úgy tárol egy számot, mint saját magának és a 2 m- -nek az összegét. Például egy 8 bites számra m = 8, a rendszert 28 többletesnek nevezzük, és egy számot úgy tárolunk, mint a valódi számot plusz 28. Így a -3 megfelelője: -3 + 28 = 25, azaz a -3-at egy nyolcbites számként ábrázolva 25-öt jelent (). A -28-tól +27-ig elhelyezkedő számokat így meg tudjuk feleltetni -tól 255-ig terjedő számoknak, amelyeket 8 bites pozitív számként fejezhetünk ki. Érdekességképpen igaz, hogy ez a rendszer azonos a kettes komplemenssel fordított előjelbittel. Pl.: +25 = 25 + 28 = 53-25 = - 25 + 28 = 3 Jellemzők (28 többlet esetén): a nulla egyértelműen ábrázolható, a legkisebb szám -28, a legnagyobb 27. 7.

3. Lebegőpontos számok. IEEE 754 szabvány. A lebegőpontos számok: A nagyság és a pontosság szétválasztásának módja, hogy a számokat a jól ismert tudományos jelöléssel fejezhetjük ki: n e f * ahol az f a törtrész (fraction), vagy mantissza (mantissa) és az e egy pozitív vagy negatív szám, amelyet kitevőnek vagy exponensnek (exponent) hívunk. Ennek a jelölésnek a számítógépes verzióját lebegőpontos számnak (floating point) hívjuk. Pl.: 3,4 =,34 x vagy, =, x -5 =, x -6 A kitevő nagysága a nagyságrendet tartalmazza, a pontosságot pedig a törtrész jegyeinek a száma határozza meg. Mivel különböző módon fejezhetünk ki egy adott számot, az egyik formát általában szabályosnak nevezzük a sok forma közül. A leggyakrabban a törtrész első számjegye az adott szám első, nullától különböző számjegye (normalizált alak). Pl.: 254 =,254 x 4 =,254x 3 (= 2,54x 2 ) Megjegyzések: A nulla ábrázolásához külön megállapodásra van szükség (általában csupa nulla számjegyből áll). A lebegőpontos ábrázolásoknál is meghatározható a legkisebb és a legnagyobb ábrázolható szám, továbbá a legkisebb és legnagyobb hiba. Feladat: Ábrázoljuk nyolcas számrendszerben 254 - et: előjelbittel kezdve, a kitevő legyen jegyű (3 bites), 4-többletes, a törtrész 4 jegyű. Megoldás: 254/8 6 3/8 7 3/8 3 376 8, normalizált alak:,376x8 3, a megoldás: 2 = 7376 8 + törtrész 4-többletes kitevő Máté: Architektúrák. előadás 43 8.

Az IEEE 754-es lebegőpontos szabvány: Körülbelül 98-ig minden számítógépgyártónak saját lebegőpontos formája volt, természetesen mindegyik más és más. Ennél is rosszabb, hogy néhányan valóban rosszul kezdték a lebegőpontos számítási módszereket, amelyeknek néhány finomságát az átlag hardvertervező nem ismeri. Ezért az 97-es évek végén az IEEE felállított egy bizottságot a lebegőpontos számítások szabványosítására. Ez a munka vezetett el az IEEE 754-es szabványhoz. A szabvány 3 formát (pontosságot) definiál, az egyszeres pontosságot (32 bit), a dupla pontosságot (64 bit) és a kiterjesztett pontosságot (8 bit). A kiterjesztett arra szolgál, hogy csökkentse a kerekítési hibákat. Ezt főleg a lebegőpontos aritmetikai egységben használják. Mind az egyszeres, mind a dupla pontosságú forma a kettes alapot használja a törtrészben, és a többletes jelölést a kitevőben. Mindkét forma egy előjelbittel kezdődik, ahol a a pozitívat, a negatívat jelöli. Ezután következik a kitevő, amely 27-többletes kitevőt használ a szimpla pontosságban és 23-többletest a dupla pontosságban. A minimum () és a maximum (255 és 247) kitevőket nem használjuk a normalizált számoknál, ezek használata speciális. Végül a törtrészek következnek, 23 illetve 52 biten. IEEE 754 standard single 32 bites, double 64 bites (, extended 8 bites). típus single double előjel bit bit kitevőrész 8 bit 27-többletes bit 23-többletes törtrész 23 bit 52 bit single: Ha < a kitevőrész < 255, a szám normalizált. Normalizált tört vezető -es bitje nincs ábrázolva! Normalizált számok (IEEE 754, single) < kitevőrész < 255 kitevőrész = kitevő + 27, 27 többletes. Lehetséges kitevők: -26, -25,..., +27. Közvetlenül a törtrész elé kell képzelni egy -est (implicit bit) és a bináris pontot. Az ábrázolt szám: ± ( + törtrész) * 2 kitevő Pl.:... 2 = 3F8 6,5... 2 = 3F 6 -,5... 2 = BFC 6 ± kitevőrész. törtrész Máté: Architektúrák. előadás 44 Máté: Architektúrák. előadás 45 Normalizálatlan számok (IEEE 754, single) Ha a kitevőrész = A bináris pontot előzi meg (nincs ábrázolva). Az ábrázolt szám: ± (törtrész) * 2-27 Pl.: 2-28 = 2-27 *,... 2 = =... 2 = 4 6-2 -5 = - 2-27 *,... 2 = =... 2 = 8 6 2-27 = 2-27 *,... 2 =... 2 = 7F FFFF 6 ± kitevőrész. törtrész Normalizálatlan számok (IEEE 754, single) Ha a kitevőrész = 255 Túl nagy számok (túlcsordulás): (végtelen): pl. /, NaN (Not a Number): pl. / Máté: Architektúrák. előadás Máté: Architektúrák. előadás 47 9.

4. Hamming távolság. Hibaészlelő, hibajavító kódok. Az elektromos hálózatban keletkező áramlökések és egyéb okok miatt a számítógépek memóriái néha hibáznak. Ezeknek a hibáknak a kiszűrésére bizonyos memóriák hibafelismerő vagy hibajavító kódot alkalmaznak. Ezek használata esetén minden memóriabeli szót kiegészítenek speciális bitekkel. Egy szó kiolvasása során a kiegészítő biteket ellenőrzik, hogy a hiba kiderüljön. Tegyük fel, hogy egy memóriabeli szó m adatbitből áll, ehhez adunk még r redundáns vagy más néven ellenőrző bitet. A teljes hossz legyen n (vagyis n = m + r). Egy n bites (m adatbitet és r ellenőrző bitet tartalmazó) egységet gyakran n bites kódszónak neveznek. Ha adott két szó, mondjuk és, akkor megállapíthatjuk, hogy hány bitpozíción térnek el. Az ellenőrző kódszavak 3 bitpozíción különböznek. Az eltérő bitpozíciók számának megállapításához egy egyszerű logikai KIZÁRÓ VAGY műveletet kell végezni a két kódszón, majd megszámolni az eredmény -es bitjeit. Az eltérő bitpozíciók számát a két kódszó Hamming távolságának nevezzük. Ennek az a jelentősége, hogy ha 2 kódszó távolsága d, akkor d darab egyszeres bithibának kell előfordulnia, ahhoz hogy az egyik kódszó a másikba alakulhasson. Például az és a Hamming távolsága 3, mert 3 egyszeres bithiba szükséges ahhoz, hogy az egyik a másikba alakulhasson. Egy m bites memóriaszó esetén mind a 2 m bitminta előfordulhat, de a redundáns bitek kiszámításának szabálya miatt a 2 n kódszó közül csak 2 m érvényes. Ha egy memóriaolvasás érvénytelen kódot ad, akkor a számítógép azonnal tudja, hogy memóriahiba lépett fel. Az ellenőrző biteket kiszámító algoritmus ismeretében meghatározható az összes érvényes kódszó listája, majd ebben a listában meg lehet keresni azt a két kódszót, amelynek a Hamming távolsága minimális. Ez az érték a teljes kódolás Hamming távolsága. Egy kódolás hibafelismerő és hibajavító képessége a Hamming távolságtól függ: d egyszeres bithiba felismeréséhez d+ távolságú kódolás kell, mert ebben az esetben d egyszeres bithiba semmiféleképpen nem alakíthat át egy érvényes kódszót egy másik érvényes kódszóvá. Hasonlóképpen, d egyszeres bithiba javításához 2d+ távolságú kódolás kell, mert így az érvényes kódszavak olyan távol vannak egymástól, hogy még d egyszeres bithiba esetén is az eredeti kódszó minden más kódszónál közelebb van, így egyértelműen meghatározható. Egyszerű hibafelismerő kódolásra példaként tekintsük azt a kódolást, amikor az adatbitekhez egyetlen paritásbitet adunk. A paritásbit értékét úgy határozzuk meg, hogy a kódszóban páros (vagy páratlan) számú -es legyen. Ennek a kódolásnak a távolsága 2, mert minden egyes bithiba hibás paritású kódot eredményez. Egyetlen bithiba felismeréséhez lehet használni. Ha hibás paritású szó kerül kiolvasásra a memóriából, akkor hibaüzenetet kapunk..

Egy hibát javítani képes, kódoláshoz szükséges ellenőrző bitek száma: Szó hossza Ellenőrző bitek Teljes hossz Hozzáadott bitek %a 8 4 2 5 6 5 2 3 32 6 38 9 64 7 7 28 8 36 6 256 9 265 4 52 522 2 Tetszőleges hosszúságú memóriaszavak hibajavító kódolására használt Hamming algoritmus, mellyel az elméleti alsó korlát számolható ki: A kódolás során r redundáns bitet adunk egy m bites szóhoz, így a kódszó teljes hossza n = m + r bit lesz. A biteket nem -val, hanem -gyel kezdődően sorszámozzuk, a legnagyobb helyi értékű lesz az -es sorszámú. Minden olyan bit paritásbit lesz, amelynek sorszáma 2 hatványa; a többi adatbit. Például egy 6 bites kódszóhoz 5 paritásbitet adunk. Az, 2, 4, 8, 6 pozíción vannak a paritásbitek, a többi mind adatbit. A memóriaszó összesen 2 bites. Ebben a példában páros paritást fogunk használni. Minden paritásbit meghatározott bitpozíciókat ellenőriz; a paritásbit értékét úgy állítjuk be, hogy az ellenőrzött pozíciókon lévő -esek száma páros legyen. Az egyes paritásbitek által ellenőrzött bitpozíciók:.bit:, 3, 5, 7, 8, 9,, 3, 5, 7, 9, 2 2.bit: 2, 3, 6, 7,,, 4, 5, 8, 9 4.bit: 4, 5, 6, 7, 2, 3, 4, 5, 2, 2 8.bit: 8, 9,,, 2, 3, 4, 5 6.bit: 6, 7, 8, 9, 2, 2.

5. Digitális logikai szint. Kapuk. Boole algebra. Boole függvények megvalósítása, áramköri ekvivalenciája. A Boole algebra legfontosabb azonosságai, dualitás. A digitális logikai szint a számítógép hierarchiáját bemutató táblázat legalján található, ez alkotja a számítógép igazi hardverét. Az alapelemek, amelyekből minden digitális számítógép felépül, meglehetősen egyszerűek. Digitális áramköröket készíthetünk néhány nagyon egyszerű elem különböző kombinálásával. A digitális áramkör egy olyan áramkör, amelyben csak két logikai érték van jelen. Tipikusan a és az Volt közötti jel reprezentál egy értéket (bináris ) és a 2 és 5 Volt között ábrázol egy másik értéket (bináris ). Más feszültségek nem megengedettek. A pici elektromos eszközök, amelyeket kapuknak hívunk, kétértékű jelek különböző függvényeit tudják kiszámítani. Ezek a kapuk alkotják azt a hardverbázist, amelyből minden digitális számítógép felépül. Minden modern digitális logika végül is azon a tényen alapul, hogy egy tranzisztor úgy tud működni, mint egy nagyon gyors bináris (kétállapotú) kapcsoló. Bázis V be Igazság tábla: NEM (NOT) kapu (3.. ábra). + V cc + V cc + V cc V ki Tranzisztor Kollektor A Emitter X + V cc + V cc NEM (NOT) kapu, inverter Szimbolikus jelölése: A X erosíto Máté: Architektúrák 2. eloadás 29 Az alábbi ábrán bemutatunk egy bipoláris tranzisztort (a kör), mely be van ágyazva egy egyszerű áramkörbe. A tranzisztornak három kapcsolata van a külvilággal: a kollektor, a bázis és az emitter. Amikor a bemenő feszültség, V be bizonyos érték alatt van, a tranzisztor zárt állapotban van, és úgy viselkedik mint egy végtelen ellenállás. Ez azt okozza, hogy az áramkör outputja, V ki közel van a V cc értékéhez, ami egy külsőleg vezérelt fezültség, tipikusan +5 Volt az ilyen típusú tranzisztoroknál. Amikor V be meghaladja a kritikus értéket, a tranzisztor kinyit, és úgy viselkedik, mint egy vezeték, és ezzel azt okozza, hogy a V ki -t lehúzza a földhöz (lecsökkenti a megállapodás szerinti Voltra). Nagyon fontos dolog, hogy amikor a V be alacsony, akkor a V ki magas, és fordítva. Ez az áramkör így egy fordító (inverter), amely a logikai -t logikai -gyé konvertálja, és a logikai -et pedig logikai -vá. Inverziós gömb V 2 V + V cc V ki NEM-ÉS (NAND) kapu Igazság tábla: A B Szimbolikus jelölése A B X 2. X Az ábrán két tranzisztor van egymás után sorba kötve. Ha V és V 2 is magas, mindkét tranzisztor vezetni fog, és V ki alacsony lesz. Ha valamelyik bemenet alacsony, a megfelelő tranzisztor zárva lesz, és a kimenet pedig magas. Tehát a V ki akkor és csak akkor lesz alacsony, ha mind a V, mind a V 2 magas. Máté: Architektúrák 2. eloadás 3

NEM-VAGY (NOR) kapu Igazság tábla: + V cc V ki A B X Szimbolikus jelölése V V 2 A X B Az alábbi ábra két tranzisztor párhuzamos kapcsolását tartalmazza a soros helyett. Ebben a felépítésben, ha valamelyik bemenet magas, akkor a megfelelő tranzisztor vezet, és a kimenetet levezeti a földbe. Ha a két bemenet alacsony, akkor a kimenet magas marad. Máté: Architektúrák 2. eloadás 3 Ez a három áramkör vagy azonos megfelelőik alkotják a három legegyszerűbb kaput. Neveik rendre: NEM (NOT), NEM-ÉS (NAND) és NEM-VAGY (NOR) kapuk. Az ÉS (AND) és VAGY (OR) kapuk működését nem részletezem, a fentiekhez nagyon hasonló. ÉS kapu VAGY kapu Igazság tábla: A B X Igazság tábla: A B X Szimbolikus jelölése A B X Szimbolikus jelölése A B X Máté: Architektúrák 2. eloadás 32 Máté: Architektúrák 2. eloadás 33 A kapuk kombinációjából felépíthető áramkörök leírásához egy új típusú algebra szükséges, amelynek változói és függvényei vannak, és csak és értéket vesznek fel. Egy ilyen algebrát Boolealgebrának hívnak, felfedezőjéről George Boole, angol matematikusról elnevezve. Csakúgy mint a hagyományos algebrában, itt is függvényeket értelmezünk. A Boole függvényeknek egy vagy több bemeneti változója van és egy eredmény keletkezik, amely csak ezen változó(k) értékétől függ. Mivel az n változós Boole függvénynek csak 2 n lehetséges kombinációja van, a függvényt teljesen leírhatjuk egy 2 n sorral rendelkező táblázattal, ahol egy-egy sor megmondja a bemeneti értékek különböző kombinációja mellett a függvény értékét. Ezt a táblázatot igazságtáblázatnak nevezzük. 3.

Pl. 3 változós többségi függvény (3.3. ábra): értéke, ha legalább két operandus Bool algebrai alakja: Igazság tábla: M ABC ABC ABC ABC A fölülvonás a NEM (negáció), az egymás mellé írás az ÉS, a + a VAGY muvelet jele. A Máté: Architektúrák 2. eloadás 35 B C M Boole függvény megvalósításának lépései: igazságtábla, M ABC ABC ABC ABC negált értékek, A B C A B C ÉS kapuk bemenetei, ÉS kapuk, VAGY kapu, kimenet. A B C M A B C Máté: Architektúrák 2. eloadás 36 M NAND és NOR elonye: teljesség (3.4. ábra). NOT AND OR Definíció: Akkor mondjuk, hogy két boole függvény ekvivalens, ha az összes lehetséges bemenetre a két függvény azonos kimenetet ad. Két boole függvény ekvivalenciája könnyen ellenorizheto az igazság táblájuk alapján. Pl.: AB + AC és A(B + C) ekvivalens (3.5. ábra). Az elso függvény megvalósításához két ÉS és egy VAGY kapura van szükség, a másodikhoz elegendo egy ÉS és egy VAGY kapu. Máté: Architektúrák 2. eloadás 37 Máté: Architektúrák 2. eloadás 38 Néhány azonosság (3.6. ábra) Szabály ÉS forma VAGY forma Identitás A = A +A=A Null A = +A= Idempotens AA=A A+A=A Inverz AA= A+A= Kommutatív AB=BA A+B=B+A Asszociatív (AB)C=A(BC) (A+B)+C=A+(B+C) Disztribúciós A+BC=(A+B)(A+C) A(B+C)=AB+AC Abszorpciós A(A+B)=A A+AB=A De Morgan AB=A+B A+B=AB Máté: Architektúrák 2. eloadás 39 Disztribúciós szabály: A+BC=A+(BC)=(A+B)(A+C) Jelölje az ÉS muveletet 8, a VAGY muveletet 7, akkor A 7 (B 8 C) = (A 7 B) 8 (A 7 C) Máté: Architektúrák 2. eloadás 4 4.

6. Kombinációs áramkörök, multiplexer, demultiplexer, dekódoló, összehasonlító, programozható logikai tömbök. A digitális technika nagyon sok alkalmazása megkívánja, hogy egy áramkör többszörös bemenettel és többszörös kimenettel rendelkezzen, és benne a kimeneteket csak a pillanatnyi bemenetek határozzák meg. Az ilyen áramkört kombinációs áramkörnek hívjuk. Most vizsgáljunk meg néhány gyakran használt kombinációs áramkört. A digitális logika szintjén a multiplexer egy olyan áramkör, amely 2 n adatbemenettel, adatkimenettel és n darab vezérlőbemenettel rendelkezik, az utóbbiak kiválasztanak egy adatbementet. A kiválasztott adatbemenetre azt mondjuk, hogy útképzéssel irányított vagy kapuzott (gated) a kimenetre. Multiplexer: 2 n adatbemenet, n vezérlo bemenet, kimenet. Az egyik adatbemenet kapuzott (gated) a kimenetre (3.. ábra). D D D 2 D 3 D 4 D 5 D 6 D 7 A B C Máté: Architektúrák 2. eloadás 44 F D D D 2 D 3 D 4 D 5 D 6 D 7 F A B C Sematikus rajza n vezérlo bemenetu multiplexerrel tetszés szerinti n változós bool függvény megvalósítható az adatbemenetek megfelelo választásával. Pl. a 3 változós többségi függvény: 3.2. ábra Igazság tábla: A B C M V cc D D D 2 D 3 D 4 D 5 D 6 D 7 A B C Párhuzamos-soros átalakítás: vezérlo vonalakon rendre:,,. Máté: Architektúrák 2. eloadás 45 F Az alábbi ábra egy nyolc bemenetes multiplexer vázlatos ábráját mutatja. A három vezérlővonal, az A, B és C egy hárombites számot kódol, amely meghatározza, hogy a nyolc bemenő vonal közül melyiket kapuzzuk a VAGY kapukra és ennek megfelelően a kimenetre. Bármilyen értékek vannak a kontroll vonalakon, hét ÉS kapunak mindig lesz a kimenete, egy kapunak pedig vagy vagy lesz a kimenete a kiválasztott bemeneti vonal értékétől függően. Az n vezérlőbemenetű multiplexerekkel könnyedén lehet megvalósítani n változós bool függvényeket. Egy másik alkalmazásuk: párhuzamosból sorosba történő adatkonverterként való használat. A 8 bites adatot elhelyezzük a bemeneti vonalakon, és ezután a vezérlővonalakkal sorban lépegetünk -tól -ig, ezzel a 8 bitet egymás után helyeztük el az egyetlen kimenetre. A demultiplexer a multiplexer inverze, amely egy egyedi bemenő jelet irányít a 2 n valamelyikére az n vezérlővonal értéktől függően. kimenet 5.

Dekódolónak nevezzük azt az áramkört, amely n bites számot használ bemenetként, és ki tudunk vele választani (be tudjuk állítani -re) pontosan egyet a 2 n kimenet közül. Demultiplexer: egy egyedi bemenetet irányít az n vezérlo bemenet értékétol függoen a 2 n kimenet egyikére Dekódoló: n bemenet, 2 n kimenet. Pontosan egy kimeneten lesz (3.3. ábra). Demultiplexerrel: a bemenetet igazra állítjuk. D D D 2 D 3 D 4 D 5 D 6 D 7 D D D 2 D 3 D 4 D 5 D 6 D 7 D D D 2 D 3 D 4 D 5 D 6 D 7 D D D 2 D 3 D 4 D 5 D 6 D 7 multiplexer demultiplexer Máté: Architektúrák 2. eloadás 46 demultiplexer dekódoló Máté: Architektúrák 2. eloadás 47 Egy másik hasznos áramkör az összehasonlító, amely két bemeneti szót hasonlít össze. Az alábbi ábrán ábrázolt egyszerű összehasonlító két bemenettel dolgozik, A és B, mindegyik 4 bit hosszú, és -et ad eredményül, ha a bemenetek azonosak, és -t ha különbözők. Az áramkör KIZÁRÓ VAGY kapun alapul (a kizáró vagy tagadása). Összehasonlító (comparator): (3.4. ábra). KIZÁRÓ VAGY kapu Igazság tábla: A B X Szimbolikus jelölése A B X A B A B A 2 B 2 A 3 B 3 4 bites összehasonlító A = B Programozható logikai tömbök: PLA (3.5. ábra) (Programmable Logic Array). 6 kimenet Ha ezt a biztosítékot kiégetjük, akkor nem jelenik meg #B az -es ÉS kapu bemenetén 24 bemeno vonal A B L 2 bemeno jel 49 5 5 bemeno vonal Ha ezt a biztosítékot kiégetjük, akkor az -es ÉS kapu kimenete nem jelenik meg az 5-ös VAGY kapu bemenetén Máté: Architektúrák 2. eloadás 48 Máté: Architektúrák 2. eloadás 49 Egy nagyon általános lapka a programozható logikai tömb, vagy PLA szolgál a szorzatösszeg képzésére. A fenti ábra egy egyszerű példát mutat be, ennek a lapkának 2 változó számára van bemeneti vonala, és 6 kimeneti vonala is van. A kis négyzetek a biztosítékokat tartalmazzák, amelyek kiégetésével meghatározható a végrehajtandó funkció. Az olvadóbiztosítékokat két mátrixban helyezték el: a felső az ÉS kapuk, az alsó a VAGY kapuk számára. 6.

7. Aritmetikai áramkörök. Léptető, fél és teljes összeadó, ALU, átvitel továbbterjesztő és kiválasztó összeadás. Aritmetikai áramkörök ezek már kombinációs MSI áramkörök, aritmetikai műveleteket lehet velük végezni Léptetőregiszter 8 bites (8 bemenet, 8 kimenet) egyszerű léptető D,,D 7 : bemenő bitek S,,S 7 : kimenő bitek C: vezérlővonal a kimenő bitekben a bemenő bitek pontosan bittel vannak eltolva a vezérlővonal határozza meg a léptetés irányát, : balra, : jobbra minden bithez ÉS kapupárok tartoznak, kivéve a végeken ( S, D 7 ) amikor C=, minden kapupár jobb oldala aktivizálódik, és a megfelelő bemenő bitet küldi a kimenetre. (D > S, D > S 2, D 2 > S 3, ) mivel a jobb oldali ÉS kapu kimenete össze van kötve a tőle jobbra eső VAGY kapu bemenetével, jobbra léptetés hajtódik végre. C= esetén az ÉS kapupár baloldali tagja kapcsolódik be és bal oldali léptetés megy végbe ugyanezen a módon Fél összeadó áramkör (half adder) Az Összeg kimenethez A és B KIZÁRÓ-VAGY (XOR) eredménye kerül Az Átvitel kimenethez pedig A és B ÉS (AND) ereménye kerül 7.

Teljes összeadó áramkör (full adder) Két fél összeadó áramkörből épül fel Azért van szükség erre, mert ha pl. két darab bájtos (8 bites) bemenő értéket akarnánk összeadni, akkor az alsó biteken való összeadást még jól elvégezné, de amikor a felső bitekbe lép az összeadás (felső 4-be), akkor ott nem kezeli az alsó bitekből érkező átvitelt. Olyankor újrakezdené az összeadást ezzel elveszítve egy lehetséges átviteli értéket, vagyis a 2x4 bitet (alsó és felső) külön-külön adja össze, a köztük levő átvitelt pedig nem kezelné (alsó bitekben keletkezőt nem vinné át a felső bitekbe). Átvitelt kezelő / továbbterjesztő összeadó áramkör (ripple carry adder) Ahhoz viszont, hogy pl. két szavas (= word = 2 byte = 6 bit) bemenő értéket adjunk össze a fenti (Teljes összeadó) áramkört 6-szor meg kell ismételnünk. Ez úgy néz ki, hogy a fenti ábra 6-szor egymás mellé van pakolva, az egész balról-jobbra halad, a bal oldali áramkör a jobb oldalihoz úgy kapcsolódik, hogy a bal oldali Átvitel ki a tőle jobbra levő Átvitel be részhez van kapcsolva, a legjobboldalibb (a legutolsó) áramkörnél pedig az Átvitel be bitet -nak vesszük. Átvitel-kiválasztó összeadó áramkör (carry select adder) Az előző áramkörnél legrosszabb esetben, ha pl. b -t és b -t hozzáadjuk egymáshoz, akkor látjuk, hogy az átvitelt folyamatosan át kell adnia a következő bitnek, és a legfontosabb, hogy az alsó és felső bitek között is az áramköröknek, hogy ne vesszen el sehol az átvitel. 8.

Az átvitel-kiválasztó áramkör ennél a megoldásnál 2-szer gyorsabb, ugyanis ha pl. egy 32 bites összeadót nem felső 6 bitesre és alsó 6 bitesre bontunk, hanem alsó 6 bitest és 2 felső 6 bitest csinálunk (ezzel megduplázva a felső összeadó hardverét) megtehetjük azt, hogy egy időben elindítjuk mind a 3 összeadót, mert ugye a sima átvitelt kezelő áramkörnél először végig kell futnia az alsó 6 bitesnek, hogy meglássuk van-e átvitel, amit a felső 6 bitesbe át kell adni. E helyett a 2 felső 6 bitest elindítjuk egyszerre az alsó 6 bitessel együtt, az egyik felső 6 bites összeadót Átvitel be = értékkel, a másikat pedig Átvitel be = értékkel. Amikor pedig lefutott mind a 3 áramkör, az alsó 6 bites összeadás végeredménye már ismert lesz, azaz ilyenkor már ki tudjuk választani, hogy melyik felső 6 bites összeadás végeredményét használjuk fel, attól függően, hogy volt-e átvitel vagy nem. Ezzel megfelezve a végrehajtási időt az átvitelt kezelő áramkörhöz képest. Aritmetikai-logikai egység (ALU) Ez a példa a következő funkciók bármelyikét végre tudja hajtani: ÉS, VAGY, NEGÁCIÓ, + (összeadás), ez F, F bemenő értékeitől függ (,,, ). Dekódoló: 2 bites, a négy művelet számára létrehozza az engedélyező jeleket Logikai egység: (szaggatott négyzet) a négy művelet itt végződik el, közülük csak egy haladhat át a legutolsó VAGY kapun. Mivel pontosan egy dekódolókimenet értéke lehet, így ezért a 4 ÉS kapuból csak pontosan egy fog működni, a többi 3 kimenete lesz, függetlenül A és B értékétől. Normál esetben az ENA és ENB értéke, hogy engedélyezze a bemeneteket, INVA pedig. Ebben az esetben A és B a logikai egységbe módosítás nélkül kerülnek be. Teljes összeadó: A és B összegét számolja ki átvitellel együtt. Ezek az áramkörök Bitszeletek néven ismertek (bitslices) Ezek segítségével bármilyen hosszúságú ALU-t lehet építeni, pl. egy 8 bites ALU: 9.

8. Nem kombinációs áramkörök. Órák, tárolók, flip-flop-ok. Óra Célja, hogy a digitális áramkörökben az események történésének sorrendjét felügyelje. Az óra ebben az értelemben egy áramkör, amely a pulzusok egy sorozatát bocsájtja ki egy pontosan meghatározott pulzusszélességgel, és két egymás utáni pulzus közötti időintervallummal rendelkezik. A ciklusidő két egymást követő pulzus élei közötti időintervallum. A pulzus frekvenciája általában és 5 MHz közöt van, ennek megfelelően az órajel ns-tól 2 ns-ig terjedhet. Az óra frekvenciáját általában egy kristályoszcillátor vezérli. Ha több eseménynek kell lefutnia egy órajel alatt egy adott sorrendben, akkor az órajelet alciklusokra kell osztanunk. Lényege, hogy az alapáramkört megcsapoljuk, és beszúrunk egy áramkört ismert késleltetéssel, így készíthetünk másodlagos órajelet, amely fáziseltolással keletkezik az elsődlegesből. SR-Tároló Ahhoz, hogy legalább bites memóriát készítsünk, szükségünk van egy áramkörre ami valahogyan visszamelékszik az előző bemeneti értékre. Egy ilyen áramkört 2 NEM-VAGY kapuból építhetünk. S: Set (bemenet) R: Reset (bemenet) Q, #Q: két kimenet, amelyek egymás fordítottjai Stabil állapot: a két kimenet, vagy, 2.

Az ilyen tárolókat SR-tárolóknak (Set Reset latch) hívjuk. A fenti két ábrán látható, hogy milyen két értéke lehet Q-nak és #Q-nak, ha S = R = ; ha viszont S = és R =, akkor az S utáni NOR kapu vagy, vagy, lesz Q-tól függően, de amint a táblázatból látjuk az eredményen ez nem változtat. Ha S =, R =, akkor az R utáni NOR kapu vagy, vagy, #Q-tól függően, amelyek kimenete a NOR kapuból szintén ugyanaz. Tehát a Q, #Q értékeitől függetlenül működnek a beállító bemeneti értékek: ha S =, akkor Q = lesz, ha R =, akkor Q = lesz. Az áramkörnek pedig mint tudjuk két stabil állapota is van, amikor S = R =, azaz a két fajta beállítási értékre emlékezni fog. Időzített SR-Tároló Módosított SR-tároló, az állapotváltozás csak egy bizonyos időpillanatban fog töténni. Az áramkör további bemenete: órajel, ami alaphelyzetben. Amikor óra =, az ÉS kapuk kimenete lesz, tehát a stabil állapotban marad az áramkör; amikor óra =, az ÉS kapuk kimenete már S és R bemeneti értékétől függnek majd. (pl: S =, óra =, R =, akkor a fenti kapu,, tehát megy tovább, a lenti ÉS kapu,, tehát megy tovább kimenetnek). Időzített D-Tároló Módosított SR-tároló, lényege, hogy az SR-tároló bizonytalanságát kiküszöböli, ugyanis van egy eset, amikor S = R =, ilyenkor az SR-tárolóban a Q, és #Q értékét,-ra kényszeríti ez a két bemenet, ezután az áramkör automatán átáll valamelyik stabil pozicióra, de ezt nem tudhatjuk pontosan, hogy melyikre. Lényege, hogy csak bemenete van, D így a NEM kapuval kiküszöbölhető a probléma, mindig ellentétes értékek lesznek a két ÉS kapunál. Ez már egy igazi bites memória, a tárolt érték Q-ban lesz elérhető. Flip-flop Célja: egy meghatározott időpontban vegyünk mintát az áramkör egy adott vonaláról. Akkor nem fordul elő, amikor az órajel állása, csak akkor, amikor -ból -be (felfele él) vagy - ből -ba (lefele él) megy. 2.

A flip-flop és a tároló közti különbség, hogy az előző élvezérelt (edge triggered), míg az utóbbi szintvezérelt (level triggered). A fenti áramkörnek lényege, hogy létre tudunk vele hozni egy rövid impulzust az órajel felmenő részénél. a, b, c, d pontoknál mérjük a feszültséget, amikor a-nál a hosszú órajel impulzus megérkezik, akkor c-be is eljut, valamint b-be is, de ott már egy NEM kapun keresztül. a NEM kapuk (más fajta NEM kapu is van) sajátossága, hogy miután megérkezik az órajel hozzájuk egy kicsit késleltetve (- ns) váltanak át az inverzzé. Tehát, amikor a-n van órajel, akkor egyidöben eljut c-hez és a NEM kapuhoz. Mivel a NEM kapu késleltetve vált át, abban a pici időben még a b-n is lesz órajel, de amint letelt az a késleltetési idő, átvált az inverzre, vagyis -ra és akkor már nem fog működni az ÉS kapu. És ezt az értéket le tudjuk tárolni egy D-tárolóban, ezért hívják a fenti áramkört D-flip-flop-nak. Tárolók és flip-flop-ok. CK: clock / órajel (a) CK= (b) CK= esetén írja be D-t (c) CK emelkedő élénél (d) CK lefelé menő élénél (a,b: tároló) (c,d: flip-flop) 22.

A következő ábrán látható két függtlen D-flip-flop: Következő ábra: közös CK-val vezérelt 8 bites D flip-flop S: set PR: preset R: reset CLR: clear 23.

9. Processzor szintű párhuzamosítás Bevezető A számítógép-tervezők ma már ahelyett, hogy a processzorok órajelét növelnék vagy a lapkák gyorsaságát növelnék a számítógép teljesítménye növelésének érdekében, inkább a párhuzamosságban látják a teljesítmény növekedésének a kulcsát (vagyis hogy több műveletet egyszerre eltudjunk végezni, ne pedig egyet-egyet nagyon gyorsan). Processzorszintű párhuzamosság Lényege, hogy több processzor dolgozik egyszerre ugyanazon a feladaton. Tömbszámítógépek: Egy tömbprocesszor nagyszámú egyforma processzorból áll, ezek ugyanazt a műveletet végzik el különböző adathalmazokon. A lenti képen egy 8x8 as processzor/memória párból álló négyzetháló látható. Itt a processzorok az alattuk levő memóriából olvassák ki az utasításokat, amiket egy előzőleges inicializációs fázisban töltöttek fel. Vektorprocesszor Vektorregisztereket használ, ezek több hagyományos regiszterből állnak. Ezeket egymás után sorosan tölti fel a memóriából, majd páronként úgy adja őket össze, hogy egy szállítószalagos összeadóba irányítja őket a vektorregiszterekből. Multiprocesszorok Egy tömbprocesszor feldolgozóegységei nem függetlenek egymástól, mert közös vezérlőegységük van. Ezekben viszont több teljes processzor van, közösen használják a memóriát, együttműködésüket viszont szoftveresen kell megoldani. Többféle implementációjuk is létezik: 24.

(a) (b) a: egy sínre vannak csatlakoztatva a processzorok (gond vele: ha több processzor egyszerre próbálja elérni a közös memóriát, akkor ütközések keletkezhetnek). b: saját lokális memóriával rendelkeznek a processzorok, ide azokat az adatokat tárohatják, amelyeket nem kell megosztaniuk a többi processzorral. Multiszámítógépek Kisebb számú processzorokból álló gépek gyártása még megoldható (<=64), de nagyobb számúaknál már a processzorok és a memória összeköttetése nehéz. E nehézségek miatt inkább nagyszámú összekapcsolt számítógépek rendszerét építettek, amelyeknek csak lokális memóriája van. Ezek a multiszámítógépek. E számítógépek processzorai üzenetekkel kommunikálnak. Összeköttetésük csak ritkán minden gépet mindennel kötésben van, inkább 2 és 3 dimenziós hálókat, fákat, gyűrűket terveznek. Ma már a multiprocesszor és a multiszámítógép hibrid keverékén dolgoznak. 25.

. Gyorsító tár (cache). Találati és hiba arány. Közös és osztott gyorsító tár. Direkt leképezésű és halmaz kezelésű gyorsító tár. Memóriába írás. Gyorsító tár / Cache A gyorsító tárra alapvetően azért van szükség, mert a processzorok gyorsabbak, mint a memóriák, ennek oka: a fejlesztők tudnának építeni olyan gyors memóriákat, mint a processzorok, de azok jóval nagyobb helyet foglalnának (lapkák mérete és száma), valamint sokkal drágábbak lennének. A cél (amit a cache megvalósít): a kis méretű, gyors memória. A cache a központi memória egy kisebb része, amit a CPU lapkájára helyeztek. Lényege, hogy a leggyakrabban használt memóriaszavakat a gyorsító tárban tartjuk, s amikor a processzornak szüksége van egy szóra, akkor először a gyorsító tárban keresi, ha ott nincs, akkor történik csak memóriaolvasás. Ha a szavak jelentős része a gyorsító tárban van, akkor az elérési idő nagymértékben csökkenhet. Lokalitási elv: Ha egy hivatkozás a memória A címére történik, akkor a következő valószínűleg valahol A közelében lesz. (Ugyanis a programok a futásidejük nagy részében egymás utáni memóriacímekről dolgoznak, kivéve a vezérlésátadó utasítások és eljáráshívások.) Ha A nincs a gyorsító tárban, akkor az A-t tartalmazó (adott méretű) blokk (gyorsító sor cache line) kerül beolvasásra a memóriából a gyorsító tárba. Találati és hibaarány Jelöljük c-vel a gyorsító tár elérési idejét, m-mel a központi memória elérési idejét! Találati arány (h): az összes hivatkozás mekkora hányadát lehetett a gyorsító tárból kielégíteni. Hibaarány (-h): az összes hivatkozás mekkora hányadát nem lehetett a gyorsító tárból kielégíteni. Átlagos elérési idő: c + ( h) m Gyorsító tár és gyorsító sor mérete Gyorsító sor: gyorsító táron belüli blokkok. A gyorsító sorokat azért alkalmazzák, mert ha keresünk egy szót a memóriában, sokkal hatékonyabb egy n hosszú sort beolvasni, mint n-szer beolvasni egy szót. A gyorsító tár mérete minél nagyobb, annál jobb, de egyben sokkal drágább is. A gyorsító sor mérete is szintén annál jobb, minél nagyobb, de itt viszont a beolvasási időt növeli meg nagyban. A kettő összhangja a legfontosabb. Osztott és közös gyorsító tár Az adatok és az utasítások közös (egyesített) vagy külön (osztott) tárban vannak. Az közös gyorsító tár (az utasítások és az adatok ugyanazt a gyorsító tárt használják) egyszerűbb szerkezetű és automatikusan egyensúlyban tartja az utasítások és az adatok mozgatását. Ma mégis az osztottat használjuk, ezt Harvard-architektúrának nevezzük. Az osztott gyorsító tár lehetővé teszi az utasítás előolvasó és az operandus-beolvasó párhuzamos működését, a közös nem. Mivel az utasításokat általában nem módosítják végrehajtás közben, az utasításokat tároló gyorsító tár tartalmát soha nem kell visszaírni a memóriába. 26.

Direkt leképezésű gyorsító tár Legegyszerűbb gyorsító tár A fenti gyorsító tárnak 248 bejegyzése (sora), gyorsító tár vonala van. Valid: jelzi, hogy ebben érvényes adat van-e vagy nem. Amikor boot-olunk, minden érvénytelennek van jelölve. Tag: egyedi 6 bites érték, ami a megfelelő memóriavonalat azonosítja, ahonnan az adat jött. Data (bejegyzés): 32 bájtos gyorsító vonal, a memóriában levő adat másolata. A gyorsító tárban az adatok tárolásához és kinyeréséhez 4 alkotóelemre tagoljuk a címet: Tag: a gyorsító tárban tárolt Tag megfelelője. Line: jelzi, melyik gyorsító tár bejegyzés tartalmazza a megfelelő adatokat. Word: megmondja, hogy egy vonalon belül melyik szóra történt hivatkozás. Byte: ha csak egyetlen bájtra érkezik kérés, megmondja hogy a szón belül melyik bájtra van szükség. Amikor a CPU előállít egy memóriacímet, a hardver kiveszi a címből a Line bitet, és felhasználja indexelésre a gyorsító tárban, hogy megtalálja a 248 bejegyzés egyikét. Ha a bejegyzés érvényes, akkor a memóriacím Tag mezője és a gyorsító tár bejegyzésének Tag mezője összehasonlításra kerül. Ha megegyeznek, akkor a gyorsító tár bejegyzés tartalmazza a keresett szót. Ezt gyorsító tár találatnak nevezzük. Ha a gyorsító tár bejegyzése érvénytelen, vagy a címkék nem egyeznek meg, akkor a keresett bejegyzés nincs a gyorsító tárban, ez a gyorsító tár hiány. Halmazkezelésű gyorsító tár Ha egy program erősen használja a -65536 címeken levő szavakat, állandó összeütközésbe kerül amiatt, hogy minden hivatkozás feltételezhetően kilöki a másikat a gyorsító tárból. Ennek a megoldása az, ha két vagy több vonalat is megengedünk minden gyorsító tár bejegyzésen. Egy olyan gyorsító tárat, amelynek minden egyes címhez n lehetséges bejegyzése van, n utas halmazkezelésű gyorsító tárnak nevezünk. 27.

A fenti kép egy 4-utas gyorsító tár. Ha a gyorsító tár vonal által mutatott sorban A, B, C, D bejegyzés egyikében V = és a hozzá tartozó Tag megegyezik a címben levő Tag-gel akkor az adat a gyorsító tárban van. Amikor új bejegyzést hozunk létre, a bent lévő tételek közül az LRU (Least Recently Used) algoritmust használva a legrégebben használt elemet dobja el. Memóriába írás Stratégiák: o Írás áteresztés: az írás a memóriába történik. Ha a cím a gyorsítóban van, oda is be kell írni, különben el kellene dobni a gyorsító sort. o Késleltetett írás: (write deferred, write back) ha a cím bent van a gyorsító tárban, akkor csak a gyorsító tárba írunk, a memóriába csak gyorsító sor cserénél. o Írás allokálás: (write allocation) ha a cím nincs a gyorsító tárban, akkor előtte betölthetjük többnyire ezt alkalmazzák késleltetett írás esetén. 28.

. Operandus megadás módjai. Közvetlen operandus, direkt, regiszter, regiszter-indirekt, indexelt, bázis-index címzés A legtöbb utasításnak van operandusa, ezért kell valamilyen módszer az operandus helyének megadására. Ezt nevezzük címzésnek, és ezt fogjuk a következőkben viszgálni. Közvetlen operandus megadás Az operandus specifikációjának a legegyszerűbb módja, ha az operandust közvetlenül az utasításban adjuk meg, nem pedig a címét vagy más információt, amely leírja, hogy az operandus hol található. Az ilyen operandust közvetlen operandusnak nevezzük, mert automatikusan betöltődik az utasítással, tehát azonnal hozzáférhető felhasználásra. A közvetlen címzésnek az a lényege, hogy nem kíván külön memóriahivatkozást az operandus kiolvasására. A hátránya, hogy ily módon csak konstanst lehet megadni. Továbbá, az értékek száma korlátozott a mező méretével. Mégis sok architektúra használja ezt a technikát kis egész konstansokkal. Pl. MOV AL, 4h Direkt memória címzés A memóriabeli operandus megadása egyszerűen teljes címének megadásával megtehető. Ezt a módot direkt címzésnek nevezzük. Mint a közvetlen címzés, a direkt címzés használata is korlátozott: az utasítás minden végrehajtása ugyanazt a memóriamezőt érinti. Tehát amíg az érték változhat, a hely nem, vagyis a direkt címzés csak olyan globális változók elérésére használható, amelyek címe fordításkor ismert. Azonban sok program használ globális változókat, így ez a módszer széles körben használatos. A címrészen az operandus logikai címe (eltolás, displacement) szerepel. Pl. MOV AX, Szam ahol Szam egy változó, mivel nem adtuk meg a szegmens nevét, így az alapértelmezett szegmenset fogja használni, azaz DS:Szam. Fontos még, hogy úgy címezzünk hogy a két operandus mérete összhangban legyen. Regiszter címzés A regiszter címzés alapvetően azonos a direkt címzéssel, azzal a különbséggel, hogy memóriacím helyett regisztert határoz meg. Mivel a regiszterek (a gyors elérés és a rövid cím miatt) nagyon fontosak, a legtöbb számítógépen ez a címzési mód a leggyakoribb. Sok fordítóprogram alaposan megnézi, hogy mely változókat használják a legtöbbet (pl. ciklusváltozók), és ezeket regiszterekbe tölti. A címzés során az átmásolni kívánt adat egy általános célú regiszterben van. Pl. MOV AX, BX 29.

Regiszter indirekt címzés Ebben a címzési módban is a memóriából olvassuk a specifikált operandust, vagy oda írjuk, mint a direkt címzés esetén, de nem közvetlenül a címe van adva az utasításban. Helyette a címet egy regiszter tartalmazza. Ha egy címet ilyen módon adunk meg, mutatónak hívjuk. A regiszter-indirekt címzés nagy előnye, hogy úgy hivatkozik a memóriára, hogy annak címét nem kell az utasításban tárolni. Továbbá, az utasítás különböző végrehajtása más-más memóriamezőre hivatkozhat. Az indexelt címzés azon speciális esete, amikor nem adunk meg displacement-et. Ennél a címzési módnál az SI, DI és a BX regiszter használható. Pl. MOV AX, [BX] MOV AX, [SI] Indexelt címzés Gyakran jól használható, ha ismerjük egy memórai címét egy regiszter tartalmához képest. Láttunk már erre példát az IJVM esetén, ahol a lokális változókat az LV regiszterhez képest címzik. Azt a címzési módot, amikor a hivatkozott memória címét egy regiszter értéke és egy konstans határozza meg, indexelt címzésnek nevezzük. Az operandusban lévő 8 vagy 6 bites számot (eltolás) hozzáadja SI vagy DI tartalmához, ez lesz az operandus logikai címe. Pl. MOV AX, h[si] Bázis-index címzés Néhány gép rendelkezik olyan címzési móddal, amely úgy határozza meg a hivatkozott memória címét, hogy összeadja két regiszter tartalmát, és (esetleg) ehhez hozzáad egy eltolási értéket. Ezt a módot bázis-index címzésnek nevezik. Az egyik regiszter a bázis, a másik az index. A bázis-index címzés a legösszetettebb adatcímzési mód. BX, SI vagy DI regiszter valamelyikét használhatjuk. Pl. MOV AX, h[bx][si] MOV AX, [BX+SI+h] 3.

2. Sínek. Sín Protokoll. Master szolga. Sín vezérlő, vevő, adóvevő. Sín szélessége. Sokszorozott sín. Sín időzítés: szinkron, aszinkron sín, teljes kézfogás. Sín ütemezés. Sín műveletek. Sínek A sín (bus) egy közös elektronikus pálya a különböző eszközök között, amelyek összekötik a CPU-t a memóriával és a B/K berendezésekkel. A korai személyi számítógépeknek egyetlen sínje (system bus) volt, míg a mai számítógépekben már egy speciális sín áll rendelkezésre a CPU és a memória, és legalább egy másik sín a B/K berendezések számára. Ahhoz, hogy a különböző kiegészítő kártyákat csatlakoztatni tudjuk a rendszerhez, nagyon jól definiált szabályokat kell meghatározni a sín működéséről, amelyeket sín protokollnak nevezünk. Számos sínt széles körben használnak a számítástechnika világában: Omnibus (PDP-8), Unibus (PDP-), Multibus (886), IBM PC (PC/XT), ISA (PC/AT), EISA (8386), Microchannel (PS/2), PCI (sok PC nél), SCSI (sok PC nél és munkaállomásnál), NUBUS (Macintosh), Universal Serial Bus (modern PC-knél), FireWire (szórakoztató elektronikában), VME (fizikai laboratóriumi berendezéseknél), Camac (nagy energiájú fizikában). Néhány sínhez csatlakoztatott berendezés aktív (master) és ezáltal kezdeményezni tudja a sínátviteleket, míg mások passzívak (slave) és várják a kéréseket. Amikor a CPU megrendel a lemezvezérlőtől egy blokkolvasást vagy írást, a CPU úgy viselkedik, mint egy mester, a lemezvezérlő pedig, mint egy szolga. Azonban később a lemezvezérlő mesterként viselkedhet, amikor kiad egy parancsot a memóriának, hogy fogadja el azt a szót, amelyet a lemezmeghajtóból olvasott be. A bináris jelek, amelyeket a számítógép berendezései kibocsátanak, gyakran nem elég erősek, hogy elegendő áramot adjanak a sínnek, ezért a legtöbb sínmester összekapcsolódik a sínen egy lapkával, amelyet sín vezérlőnek (bus driver) hívnak ez lényegében egy digitális erősítő. Hasonlóan a legtöbb szolga egy sínvevőn (bus receiver) keresztül kapcsolódik a sínre. Azoknál a berendezéseknél, amelyeknél mind a mester, mind pedig a szolga tevékenységére szükség van, egy kombinált lapka áll a rendelkezésünkre, amelyet sín adóvevőnek (bus transceiver) nevezünk. Ezek a sínhez kapcsolódó lapkák gyakran háromállapotú (tri-state) berendezések, azért hogy le tudjanak kapcsolódni a sínről, ha már nem szükségesek, vagy némiképp eltérő módon rákapcsolódjanak ezt nyitott gyűjtőnek (open collector) hívjuk. Sínszélesség A sín szélessége az egyik legnyilvánvalóbb tervezési paraméter. Minél több címvezetéke van a sínnek, annál nagyobb memóriát tud a központi egység közvetlenül megcímezni. Ha egy sínnek van n címvezetéke, akkor azt a CPU 2 n különböző memóriarekesz megcímzésére tudja használni. Nagy memória használatához a sínek sok címvezetéket igényelnek. A szélesebb sínek több vezetéket igényelnek, mint a keskenyek. Ezenkívül több fizikai helyet is folglalnak, valamint nagyobb csatlakozókra van szükségük. Mindezek a tényezők egyre költségesebbé teszik a síneket. 3.