Architektúra I. A Számítási modell fogalma: A számításra vonatkozó alapelvek absztarakciója. Jellemzői: - Tudás alapú számítási modell.



Hasonló dokumentumok
5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Összeadás BCD számokkal

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

Műveletek lebegőpontos adatokkal

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

Bevezetés az informatikába

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

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

SzA19. Az elágazások vizsgálata

Digitális rendszerek. Utasításarchitektúra szintje

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

Assembly programozás: 2. gyakorlat

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

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

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

I+K technológiák. Számrendszerek, kódolás

BMF-NIK Államvizsga Tételek Architektúrák (2007)

Számítógép felépítése

Aritmetikai utasítások I.

Informatikai Rendszerek Alapjai

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}

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

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Programozott soros szinkron adatátvitel

Harmadik gyakorlat. Számrendszerek

Utasításszintű architektúra Adattér

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

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

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

2. Fejezet : Számrendszerek

Digitális rendszerek. Mikroarchitektúra szintje

VEZÉRLŐEGYSÉGEK. Tartalom

Bevezetés az informatikába

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Dr. Oniga István DIGITÁLIS TECHNIKA 2

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

A 32 bites x86-os architektúra regiszterei

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

Alapfogalmak. Dr. Kallós Gábor A Neumann-elv. Számolóeszközök és számítógépek. A számítógép felépítése

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Programozási nyelvek 6. előadás

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

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

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Központi vezérlőegység

Programozás alapjai. 10. előadás

Informatika érettségi vizsga

A mikroprocesszor felépítése és működése

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Digitális technika VIMIAA01

Architektúra, megszakítási rendszerek

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Adatelérés és memóriakezelés

elektronikus adattárolást memóriacím

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Fixpontos és lebegőpontos DSP Számrendszerek

Számítógépes alapismeretek

Adatok ábrázolása, adattípusok

Az Informatika Elméleti Alapjai

Processzor (CPU - Central Processing Unit)

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Összetett feladatok megoldása

Bevezetés az informatikába

Műveletek fixpontos számokkal

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

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Bevezetés a számítástechnikába

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

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

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

Digitális technika VIMIAA02 1. EA

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem)

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

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

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

Digitális technika VIMIAA01

7. Fejezet A processzor és a memória

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

Assembly programozás levelező tagozat

Mintavételes szabályozás mikrovezérlő segítségével

Az interrupt Benesóczky Zoltán 2004

Szekvenciális hálózatok és automaták

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.

Átírás:

Architektúra Számítási modellek: 7es évek: Az IBM 37 Neumann architektúrájú gépek korlátjuk széléhez értek, teljesítményüket nem lehetett már jobban növelni. Ezért az újdonságok kerültek előtérbe mint a RISC féle architektúra, futószalag, konkurens parancsnyelvek (objektum orientált). Itt már a Számítási modelljükben különböznek. A Számítási modell fogalma: A számításra vonatkozó alapelvek absztarakciója. Jellemzői:. Min hajtjuk végre a számítást. 2. Hogyan képezzük le a számítási feladatot. 3. Mi vezérli a végrehajtást. Programnyelv Architektúra Végrehajtás Specifikáció Számítási modell Adatokon hajtjuk végre a számítást. Implementáció Számítási modell Programnyelv Fejlesztési kronológia: Architektúra A számítási modell osztályozása: Adatalapú számítási modell Neumann féle számítási modell adatfolyam számítási modell piaci megvalósítás applikatív Objektum alapú számítási modell. Predikátum logikai számítási modell (prolog). Tudás alapú számítási modell. kísérleti stádium Hibrid számítási modell. bonyolultság Adatalapú számítási modell: Az adatokat típusokba soroljuk. Az elemi adat típusok meghatározzák az adott értelmezési tartomány érték készletét, az értelmezési művelet halmazát. Pl.: integer (6 bites) ét: 32768 + 32767 csak az egész érték lehet az érték készlet. Neumann féle számítási modell:. Min hajtjuk végre a számítást: deklarált változók Adatokon. utasítások.oldal

Az adatokat a változók képviselik. Az architektúra biztosítja, hogy a változók korlátlan számban változtathassák értékeiket. 2. Hogyan képezzük le a számítási feladatot. vezérlést átadó utasítás Adatmanipuláló utasítások sorozatával. 3. Mi vezérli a végrehajtást. Az adatmanipuláló utasítások implicit szekvenciája PC Az explicit vezérlést átadó utasítás. program számláló Programnyelvek: regiszter Imperatív (parancs) nyelvek, pl.: Pscal, C Basic, Fortram. Nem számolja csak Architektúra: Neumann féle architektúra. egyesével tudja növelni magát. Tudja érzékelni az adat elejét értelmezni move utasításként. adatfolyam számítási modell:. Min hajtjuk végre a számítást: Adaton. 2. Hogyan képezzük le a számítási feladatot: Bemenő adatok halmaza. Adatfolyam gráffal: a) Csomópontok (műveletvégzők). b) Élek input/output lehetőség, ahol az adat áramlik. Pl.: Z=(X+Y)*(XY) X Y bemenő adatok halmaza + * párhuzamos műveletvégzés időmegtakarítást eredményez a Neumann féle szekvenciálisan dolgozott Z 3. Mi vezérli a végrehajtást: időmegtakarítást eredményez. Még nincs operandus 2. Az egyik operandus megjelent. 3. Mindkét operandus megérkezése Műveletvégzés. 4. Megjelenik az eredmény. @ Az utolsó megjelenő operandus indítja el a műveletet (lehet több száz is). Programnyelv: Sisal. Architektúra: The Manchester Dataflour Machine Neumann féle számítási modell. Közös memória (adat + program). Változó 2. Adatmanipuláló utasításokkal 3. Implicit szekvencia, vezérlésátadás adatfolyam számítási modell Műveletvégzőben tárolhatóak az adatok Egyszeri értékadás (a bejött adat elveszik) Adatfolyam gráffal Adatvezérelt, nincs PC nincs vezérlési szekvencia A pentium processzorokban a RISC magban van adatfolyam. 2.oldal

Architektúra: 964 Amdahl: Azon ismeretek összessége, amelyeket egy alacsonyszintű programnyelvben programozónak ismernie kell, hogy hatékony programot írjon, pl.: regiszterek, memória, címzési módok, utasításkészlet. 97 Bell szinteket rendelt az architektúrához P.M.S (Processzor, memory, switches) Programozási szint: Magas színtű programnyelvek. Alacsony szintű programnyelvek. Logikai tervezési szint. Áramköri szint A külső jellemzők, a belső felépítés és a működés összessége. Adott absztrakciós szinten (Level) a számítási modul (M), a specifikáció (S) és az implementáció (I) összessége. Számítási modul: {M,S,I} Logikai + fizikai architektúra Külső belső Absztrakt konkrét ISA (instruction setarchiteck) MA (Mikroarchitektúra) Logikai architektúra: {M,S} Adott absztrakciós szinten a fizikai architektúra elvonatkoztatása. A fekete doboz, külső megjelenése, viselkedése, adott absztrakciós szinten. számítógép processzor A processzor szintű logikai architektúra részei: Adattér. Adatmanipulációs fa. Állapot tér. Állapot műveletek. A fizikai architektúra részei: {M,I} A logikai architektúra megvalósítása adott absztrakciós szinten. Adott absztrakciós szinte a fekete doboz belseje. számítógép processzor A processzor színtű fizikai architektúra részei: Műveletvégző Vezérlő Memória Sin rendszer I/O rendszer Megszakítási rendszer Egy korszerű számítógép szintjei: (Tannenbaun 6 db) Alkalmazások 5. Problémaorientált nyelvek Word, Excel Pascal, C 3.oldal

4. Assenbly szintű nyelvek 3. Operációs rendszerek 2. Utasításrendszer architektúra. Mikro architektúra. Digitális elemek szintje áramköri szint operációs rendszerek (ISA) architektúra architektúra digitális technika Adattér: A processzor által manipulálható tér. Adattér Memória tér Regiszter tér Nagyobb Lasúbb Olcsóbb Processzoron kívüli Közös az I/O térrel Kisebb Gyorsabb Drágább Processzoron belüli Mindig önálló Memória tér: A legfontosabb jellemzője a tárolási kapacitás. Cimtér: a) Modell címtere: címsin szélessége határozza meg b) Adott implementáció címtere A valós memóriatér fejlődése: a) 4es évek: néhány száz szó. b) 95 IAS bites címsin 2=24 szó. c) 964 IBM 36 6 Mbite. Virtuális tár a) 96ban jelent meg az ötlete s az IBM 37es gépcsalád vitte sikerre. b) Alap jellemzői:. kétféle címet értelmezünk: a. valós cím (ezt látja a processzor) b. virtuális cím (programozó) Valós címtér Nagyobb Kisebb Lassúbb Gyorsabb Háttértárolón Alaplaphoz helyezkedik el illesztve, félvezető lapkán Programozó Processzor látja látja Várakozik a Itt fut a program program 2. Létezik egy olyan, a programozó számára egy transzporens mechanizmus mely: a. Éppen futó program számára szükséges program és adatrészeket hozza a virtuális tárból a valós tárba illetve, b. Az éppen futó program számára nem szükséges program és adatrészeket kiviszi a valós tárból a virtuális tárba. 4.oldal

3. Létezik egy olyan, a felhasználó számára egy transzponens mechanizmus, mely a programozó által használt virtuális címeket a végrehajtási (exection) fázisban felborítja valós címekké. transzporens Virtuális címek Valós címek mechanizmus Az intel processzorok valós és virtuális memóriájának fejlődése: Típus Megjelenés éve Valós memória Virtuális (Mbyte) memória 886 978 8286 982 6 GByte 8386 985 496 64 Tbyte 2 bit 24 bit 32 bit Regiszterek: Osztályozása: egyszerű adott típusonként különböző többszörös Egyszerű regisztertér 4es évek egyetlen akkumulátor 5es évek egyetlen akkumulátor + dedikált akkumulátor 6as évek általános célú regiszter Verem regiszter + Egyetlen akkumulátor Hátránya. Szűk keresztmetszet. 2. Két eredmény esetén csak az egyiket tudta tárolni (pl.: osztásnál az eredmény és a maradék). Egyetlen akkumulátor + dedikált regiszter Előnye: A hányados regiszter bevezetése felgyorsította az osztást. Hátránya: Igen drágán valósították meg, mégis gyakran kihasználatlan volt. Általános célú regiszter Előnye:. Minden regiszter kihasználtsága javul. 2. Új programozói stílus: a regiszter operandusú művelet maximalizálása. 5.oldal

Verem regiszter Hátránya: Szűk keresztmetszet, mivel csak a verem tetejét látjuk. Előnye: Gyors. Adattípusonként különböző regiszterek. Megjelenésének az oka a lebegőpontos feldolgozás gyorsítása. karakterisztika Mantissza előjele mantissza 964 IBM 36 Lebegőpontos regiszterkészlet, feladata: lebegőpontos műveleti feldolgozás. Általános célú regiszterkészlet, feladata: fixpontos, karakteres, logikai feldolgozás. 998 Pentium III általános célú regiszterkészlet Megjelenés éve: 964 985 99 998 Típus IBM36 Intel8386 IBM RISC6 PentiumIII MMX2 (Katmai) egy utasítással több műveletvégzés ér el. A vektor lebegőpontos regiszterkészlet grafikánál fontos. 2bites, 3D filmeket ez tette lehetővé. Általános célú regiszterkészlet 6x32 8x32 32x32 8x32 Lebegőpontos regiszterkészlet 4x64 8x8 32x64 8x8 Katmai (MMX2) 8x28 Többszörös regiszterkészlet: Háttér ismeretek: kontextus: a) regiszter általános értékei b) az állapottér (flag, PC) Megszakításkor a futó program kontextusát le kell menteni annak érdekében, hogy a megszakítás feldolgozása után azt visszatöltse és a program futása folytatódhasson. Több feladatot és több felhasználás környezetében igen sok megszakítás lép fel. A kontextus memóriában való mentése lassú gyorsítás többszörös regiszterkészlet révén. Fajtái:. Több egymástól független regiszterkészlet, pl.: 964 Sigma7. Pataméter átadás csak memórián keresztül történhet, így nem gyorsít. Ideális, egymástól független megszakításoknál, pl.: I/O megszakítások 6.oldal

INS 2. Átfedő regiszterkészlet, pl.: 98 RISC I. A hívóeljárás OUTS része fizikailag megegyezik a meghívott eljárás INS részével INS Regiszterek száma merev viszonylag sok Locals regiszterkészlet esetén is előfordulhat OUTS INS túlcsordulás. re A túlcsordult paraméterek mentése a giszlocals memórián keresztül történik (lassú). ter OUTS INS Konkrét regiszter számok: szálocals RISC 6//6 (ins/locals/outs) ma OUTS SPARC 8/8/8 regiszterkészlet száma Regiszterkészlet száma: tulcsordulás % A mérési eredmények azt mutatták, hogy 8db regiszterkészlet esetén már csak 2% a túlcsordulás. 2 4 6 8 A programozás módszertana se ajánl nyolcnál több egymásba ágyazott eljárást mivel az ennél több már nehezen tekinthető át. 3. Stackchache, pl.: 982 CMachine itt is van átfedő rész az INS és OUTSnál a stack verem szervezését és előző aktiválási rekord a regiszterek közvetlen címzési lehetőségét. Működése: A compiler minden eljáráshoz hozzárendel aktiválási előző SP egy változó hosszúságú aktiválási rekordot aktuális (regiszterkészlet). rekord A SP lehetővé teszi az aktiválási rekordok aktuális közvetlen elérését. steck pointer Az aktiválási rekordok számának csak a (SP) stack cache fizikai mérete szabhat határt. Adatmanipulációs fa: Legfelső szintjén az adattípusok FX FX2 FP4 Műveletek + * rmr mmm Operandustípusok rrr Pl.: két regiszteroperandus és az eredmény is regiszter. Címzési módok (memória) R+D Gépi kód más) / PC+D PI+D (minden architektúra más és Az adatmanipulációs fa megmutatja: egyrészt a lehetséges adattípusokat, műveleteket, operandus típusokat és címzési módokat. másrészt egy alfája pedig megmutatja egy adott modell által megvalósított lehetőséget. 7.oldal

A gyakorlati megvalósítás: általános célú A nyolcvanas évekig: címszámító technológiai korlát a lapkaméret adott, ezért lebegőpontos koprocesszorkészletként alakítottá ki. gazdasági korlát (pl.: drága a bővítés, a lebegőpontos rendszer több millió Ft.) Tudományos műszaki célú konfiguráció: volt benne lebegőpontos aritmetika. Gazdasági célú konfiguráció: Karakteres műveletek + BCD feldolgozás. Adattípusok: elemi Összetett adattípusok (adatstruktúrák vagy adatszerkezetek): az összes elemi adattípusokból épül fel, pl.: tömb, verem, fa. Elemi adattípusok: numerikus karakteres logikai pixel Numerikus: fixpontos a) egy komplemens b) kettes komplemens. előjeles a. byte 8bit b. félszó 6 bit c. szó 32 bit d. duplaszó 64 bit e. quadroszó 28 bit 2. előjel nélküli c) többletes lebegőpontos a) normalizált. hexadecimálisan normalizált a. IBM 2. binárisan normalizált a. IEEE. egyszeres pontosságú 32 bit 2. kétszeres pontosságú 64 bit 3. kiterjesztett pontosságú 28 bit b. VAX b) nem normalizált BCD (Binary Coded Decimal) a) Pakolt. ASCII Mikró számítógépek 2. EBCDIC IBM nagyszámítógépek b) zónázott 8.oldal

Karakteres: ASCII a) Szabványos 7 bit (interneti) b) Kiterjesztett 8 bit (nemzeti karakteres) EBCDIC a decimális értékeket kiterjesztették karakterre is. Unicode byte 2 byte 3 byte változó Logikai: Műveletek: A műveleteket pontosan kell definiálni, beleértve a kivételeket is (pl.: a nullával való osztás). Az utasítás feldolgozás: Egy gépi kódú utasítás általános formátuma. MK: műveleti kód MK Címrész Az utasítás feldolgozás nagyvonalú folyamatábrája: Megszakítá s igen megszakítás feldolgozása következik nem I utasítás lehívás (fetch) II utasítás végrehajtás (execution) MAR: Memory Address Register memória címregiszter (egyirányú). PC: Program Counter. MDR: Memory Data Register memória adat regiszter (kétirányú). IR: Instruction Register utasítás regiszter. DEC: Decoder. ALU: Arithmetical Logical Unit műveletvégzés (utasítást is képes továbbítani). 9.oldal

AC: Általános célú regiszter. Egy hagyományos szekvenciális feldolgozást végző processzor részei: Operatív tár adatsín címsín processzor MAR MDR Vezérlő egység PC IR ALU AC DEC I. Utasítás lehívás A PC tartalmazza a következő végrehajtható utasítás címét. MAR PC MDR (MAR) nem a címét jutatja el, hanem a tartalmát. IR MDR it már az IRben tartalom van. PC PC + következő feldolgozandó utasításra mutat, + egységre utal, 2, 4 byte lehet. Minden utasítás esetén megegyezik ez a folyamat. II. Utasítás végrehajtás Betöltés (load): DEC IR műveleti kód MAR DEC MDR MAR AC MDR IR címrész Architektúra logikai utasítások: DEC IR értelmezi, hogy összeadás van a címrészben MAR DEC címrész a másik tag MDR (MAR) AC AC + MDR vagy AC AC MDR vagy elmentése műveletvégzés AC AC ÉS MDR Kiírás (store): DEC IR MAR DEC címen MDR AC.oldal

(MAR) MDR meghatározott helyre történő visszaírás. feltétlen vezérlés átadás (ne a soron következő utasítást végezze, hanem amit mi megadunk): DEC IR IR DEC címen 8 egységes egy összeadás. A vezérlőegység és a decoder hangolja össze. Az utasítások fajtái (típusai): op operandus 4 címes utasítás s source (forrás) opd:=ops @ ops2, op4 d destination (cél) MK opd ops ops2 op4 @ tetszőleges művelet Az op4 a következő utasításra mutat, csak néha van nagy ugrás. Neumann szerint PC és címregiszter legyen az op4 helyett. Hátránya: memóriapazarló adatrögzítési hibák lehetősége nő nehézkes a program karbantartása 3 címes utasítás: opd := ops@ops2; Az eredmény helyének az explicit deklarálása. Előnye: Az aktuális utasítás eredményének mentésével párhuzamosan tölthetjük a következő utasítás bemenő operandusait. Hátránya: Neumann szerint: Az aktuális művelet eredménye tipikusan a következő művelet egyik bemeneti operandusa. Pl.: RISC számítógépek (processzorok). 2 címes utasítás: ops:=ops@ops2; a mai gyakorlat általában ops2:=ops@ops2; Pl.: ADD [],[2]; memóriacímek Előnye: Takarékosabb (memória vagy regiszter). Hátránya: Az a forrásoperandus ahol az eredmény képződik értékét veszti, ha később szükségünk van rá a művelet előtt ki kell menteni. Pl.: IBM 36/37, intek processzorok. címes utasítás: Az egyik forrásoperandust betöltjük az ACba (parancs load[]), az AC aktuális tartalmához hozzáadjuk az utasításban szereplő operandust (Add[2]), és végül az AC tartalmát kimentjük az Operatív tárba (Store[]). Előnye: Rövidebb utasítások. Hátránya: Több utasítást kell használnunk. Pl.: 95 IAS (Neumann gépe) csak az 5es 6as években készült ilyen processzor. címes utasítás: Fajtái: NOP no operation. Veremműveletek (pop, push) csak a verem tetejét látja..oldal

A műveleti kód tartalmazza az operandust, pl.: clear a D flag törlése. Napjaink trendje: CISC: két címes az első helyen képződik az eredmény tipikusan csak a második cím lehet memóriacím RISC: Három címes utasítások, aritmetikai logikai utasítások esetén. Mindhárom regisztercím Az operandusok elhelyezkedése Akkumlátor Memória Regiszter Verem (stack) A M R V Immediate: A programban adunk értéket bemenő operandus. Immediate I Az architektúrák fajtái: szabályos: a) A. AR a. AAR b. ARA 2. AM a. AAM b. AMA b) M. KÉTCÍMES a. MMM2 b. M2MM2 2. HÁROMCÍMES a. MM2M3 c) R. KÉTCÍMES a. RRR2 b. R2RR2 2. HÁROMCÍMES a. RR2R3 d) V. SSS Kombinált architektúrák: M és R (CISC). Akkumlátor: Előny: gyors, rövid címrész. Hátrány: Szűk keresztmetszet. Napjainkban nem aktuális. Regiszter: Előny: Gyors, rövid címrész. A mai RISC számítógépek mindegyike. Memória: Előnye: Nagy címtér. 2.oldal

Hátránya: Hosszú címrész, hosszú utasítások, lassú. Napjainkban nem aktuális. Verem: Előnye: gyors. Hátránya: Szűk keresztmetszet. Pl.: HP3, VT5 Napjainkban nem aktuális. Gépi kód: Minden architektúra esetében különböző. Állapottér: Felhasználó számára látható a) PC b) Állapot jelzők. CC (Condition Code) 2. Állapot indikátorok 3. Adattípusonként különböző állapotindikátorok c) Egyéb, a felhasználó számára látható állapotjelzők. Nyomkövetés (debug) 2. Címzés regiszterei (indexregiszter) Felhasználó számára transzparens a) Meszakítások b) Vizuális tárfoglalás c) Veremkezelés d) Condition Code: 964 IBM36 2 bit 4 értékkel Állapotindikátorok: Minden bitenkénti érték jelentéssel rendelkezik, pl.: negatív, túlcsordulás (flag). Adattípusonként különböző állapotindikátorok: Minden regiszterkészlethez külön állapot regiszter tartozik (flag) Általános célú állapot regiszter. Lebegőpontos feldolgozás állapot regiszter. Megszakításoknál (fejlődés íve) 973 IBM 37es gépcsaládoknál bevezetik a PSW Program Status Word: megszakításoknál a PSWt mentik el. Kontextus: a) A regiszterek áktuális értékei és b) Az állapottér aktuális értékei (PC, flag) Megszakítással a kontextust mentik. Állapotműveletek PC Flag Inkrementálás (növelés) set (beállítás) Felülírás save (mentés) load (visszatöltés) clear (törlés) reset (kezdeti értékek visszaállítása) 3.oldal

Processzorszintű fizikai architektúra Processzor: művelet végző + vezérlő. Szinkron: egy elektronikus óra meghatározott időközönként órajelet ad. Minden elemi művelet az órajelre hajtódik végre. Az elemi műveletek különböző ideig tartanak idő vesztesség. Megvalósítása egyszerű és olcsó. Van olyan jel ami nem hajtódik végre egy órajel alatt, ezt a gép lekezeli. órajel művelet befejezése Aszinkron: minden művelet befejezése egyben jelzés a következő művelet megkezdéséhez. Az elemi műveletek befejezése bonyolult és drágán valósítható meg. Az elemi művelet befejezésének észlelése is időt igényel holtidő. elemi művelet kezdete elemi művelet befejezése A mai piacon lévő koprocesszorok szinkron vezérlésűek ~ 3 GHz a frekvenciájuk. Műveletvégző (ALU) Részei: Regiszterek Adatutak Kapcsolópontok A szűk értelemben vett ALU Regiszterek: Programozó által látható, a logikai architektúrába tárgyaltuk. Rejtett regiszterek: puffer regiszterek az adatfeldolgozási technológiához szükséges. Adatutak: A műveletvégző egységen belül nem értelmezett a címsín, hisz a memória hozzáférést a vezérlő végzi. Egy aritmetikai logiaki műveletek hipotézise (R2 R@R) Src R Src R Rslt Src@Src R2 Rslt Rejtett regiszterek: Src, Src, Rslt. Felhasználói regiszter. R, R, R2. Kapcsolópontok: A sínen megosztott eszközök közül egyidejűleg csak egy adó lehet. sin kapcsolópontok U U2 U3 Un A kimenő kapcsolatok három állásúak: 4.oldal

,, zárt. A bemenő kapcsolatok két állásúak: Nyitva, zárva. A kapcsolatok architektúrálisan a regiszter részét képezik. A szűk értelemben vett ALU: Fixpontos Összeadás Kivonás Szorzás Osztás Multimédia Lebegőpontos Összeadás Kivonás Szorzás Osztás Multimédia BCD Összeadás Egyéb Logikai Címszámítás Léptetés Fixpontos összeadás: Az összeadás alapvető művelet, hiszen erre vezetjük majd vissza a szorzás, kivonást és az osztást. Tehát a sebessége alapvetően meghatározza a processzor sebességét. Egybites fél összeadó: A B S C A B S Átvitel Carry (C), összes Sum (S) Logikai függvények felírása: S=A B; C=AB Hátránya: Nem veszi figyelembe a bejövő átvitelt. Egybites teljes összeadó: Figyelembe veszi a bejövő átvitelt (megvalósítása két fél összeadóból). Az igazságtáblázat felírása: A B Cin S Cout A logikai függvények felírása (Cin jelölése Cvel) S=A B C _ Cout=ABC+ABC+ABC Négy és kapu + egy vagy kapu 5 elem. Azonos átalakítások a következő célfüggvényekkel: 5.oldal

Az elemszám minimalizálása. Végrehajtási idő minimalizálása. _ Felhasznált azonosságok: ABC=ABC+ABC+ABC; A+A=. Cout=ABC+ ABC+ ABC+ ABC+ ABC+ ABC=(A+A)BC+(B+B)AC+(C+C)AB = =BC+AC+AB=AB+(A+B)Cin Megvalósítás összeadó (S): Kimenő átvitel (Cout): 4 db elem 2%os megtakarítás. d egy elem késleltetése : T=3d; T=2d végrehajtási időben 33% a megtakarítás nbites soros összeadó: Megjelenésének oka az, hogy az összeadandók tipikusan n bit hosszúságú regiszterekben helyezkednek el. Jellemzői: A két operandus léptetőregiszterbe (shift) helyezkedik el. Az eredmény az A operandushelyén képződik. A kimenő átvitel tárolóba vagy késleltetőbe helyezzük, hogy a következő bitpároshoz (összeadáshoz) megfelelő időben érkezzen. A Cin csak az első bit helyiérték összeadásakor aktív. Értékelése: Ha az egybites teljes összeadó műveleti ideje t akkor nbites összeadási ideje: T=n*t. Gyorsítás: t: a lehető leggyorsabb kialakítást alkalmazzuk. N: Az egybites teljes összeadó számát megtöbbszörözzük nbites párhuzamos összeadóra. Egybbites párhuzamos összeadó tesztelése: I. eset: Cin=; T=t. + II.. lépés 2. lépés 3. lépés 4. lépés + Cin=; T=n*t. Co= C= C2= Cout= 6.oldal

Értékelés: Igen komoly beruházás árán (egy darab helyett n bit egybites teljes összeadó) csak kis gyorsulás csupán. Hullámzó teljesítményt értünk el, meg kell várni az átvitel terjedését. Az átvitel előjelzéses összeadó (Carry LookAhead CLA): Cout=AB+(A+B)Cin AB G (Generate) A+B P (Propagate) Az egyes bithelyiértékben keletkező átvitel függ: bemenő operandusoktól és a kívülről beérkező átviteltől de nem függ az előző bithelyiértéken keletkező átviteltől. Az egyes bithelyiértékeken képződő átvitel: Ci=Gi+Pi*Ci. C=G+P*Cin; C=G+P*C=G+P*G+P*P*Cin; C2=G2+P2*C=G2+P2*G+P2*P*G+P2*P*P*Cin. Értékelése: Szorzatok sorozata. Összekapcsolva egy vagy kapuval. A P és G meghatározásához egy vagy és egy és kapu kell. feladat feladat + feladat 3 feladat Amennyiben egy fokozat végrehajtási ideje d, akkor egy bithelyiérték átviteli idejének meghatározása T=3d; Megvalósítási alternatívák: Katalogus áramkörök egy bites teljes összeadók + CLA. 7.oldal

2 Az egybites teljes összeadókat kiegészítjük a P és a G meghatározásához szükséges kapukkal (vagy valamint és kapukkal). Technológiai korlát: A vagy kapuk bemenetének száma csak 8 bit helyiértékre alakítható ki a CLAba (a C4et már nem bírja). 3 32 bites megoldás: A CLAk között az átvitel sorosan terjed. 4 A CLAkhoz is hozzárendelünk egy CLAt. Fixpontos kivonás: Megteremthető az egybites fél kivonó, és az egybites teljes kivonó. Alkalmazásának hátrányai: A kivonás csak akkor ad helyes eredményt, ha a nagyobb számból vonjuk ki a kisebbet. Minden kivonást megelőzően komperálnunk kellene, ezért lassúbb. A kivonó áramkörök megvalósításával a művelet végző helyfoglalása, de a lapka mérete pedig korlátozott. Megoldás: Az operandusok átkódolása és a kivonás visszavezetése összeadásokra. Hagyományos kivonás: A B X elvetettük Egy komplemenses kivonás: Meghatározása: A pozitív szám egyes komplemense maga a szám. A negatív szám esetén pedig bitenként invertálnunk kell. A Megvalósítás: B X +6. 8.oldal

Kettes komplemenses kivonás: Meghatározása: Pozitív szám kettes komplemense megegyezik magával a számmal. Negatív szám esetén: a) Az egyes komplemenshez hozzáadunk egyet. b) Hátulról az összes nullát és az első egyest leírom a többit invertáljuk: ból lesz. Példa: A 3 B +(7) + +6 B = 6D Az ideális az, hogy tudjon összeadni is. Vezérlő taranszegység: Igazságtábla: Vezérlés B B A transzegység megvalósítás: Megvalósítás: Szorzás, osztás: Minden műveletvégzőnek kell ismernie az összeadást, az invertálást és a léptetést, de nem kell tudnia a szorzást és az osztást. Fejlődés: Régen: a) Olcsó processzor aminél alacsonyszintű nyelven írt rutin végzi a szorzást és az osztást. b) Középárú processzor aminél mikroprogram végzi a szorzást és az osztást. c) Drága árú processzor aminél áramköri úton megvalósított a szorzás és az osztás. Napjainkban: a) Powers PC 64. Két darab műveltvégző az egyszerű fixpontos műveletekhez (+,). 2. Egy darab művelet vezérlő az összetett fixpontos műveletekhez (*,/). 9.oldal

PentiumPro Fixpontos műveletvégzők: általános célú léptető egész osztó összeadó / kivonó szorzó osztó X=A*B Hagyományos szorzás: 3*23 39 26 3 599 Algoritmizált változat 3*23 felveszünk egy gyűjtőt amit nullázunk 39 39 26 2el szorozzuk 299 3 al szorozzuk 599 / való szorzás helyett léptetés 3*23 Konklúzió (decimális számoknál): Annyiszor fut ahány helyiérték van a szorzóba. 39 39 26 299 3 599 A bináris szorzás sajátosságai: A bináris szám hossza: Példa Decimális szám helyiértékének száma Bináris szám helyiértékeinek a száma 9 4 99 2 7 999 3 Konklúzió: Bináris szám hosszabb mint a Decimális ezért a ciklus többször fut le. Szorzat hossza: A 2 2 m B 2 n Xmax 2 3 4 m+n Példa: 9*9 99*9 99*99 A szorzó és a szorzandó egyegy regiszter az eredmény két regiszterben képződik. Legyen egy regiszterünk három helyiértékű a szorzat kisebb helyiértékei keletkezik a szorzó helyén: 23 92 99 599 eredmény 2.oldal

A bináris gyorsítása Bitcsoportokkal való szorzás: A szorzó helyiértéket nem egyesével, hanem csoportokban kezeljük s így csoportokat léptethetjük így gyorsabb. Pl.: kettes csoportokban: kettőt léptetünk balra. a gyűjtőhöz hozzáadjuk a szorzandó egyszeresét és kettőt léptetünk balra. a gyűjtőhöz hozzáadjuk a szorzandó kétszeresét és kettőt léptetünk balra. a gyűjtőhöz hozzáadjuk a szorzandó háromszorosát és kettőt léptetünk balra. Példa: 7*9 = * szorzandó kétszerese:. B = 63D Booth féle algoritmus: Bináris számok esetén az összeadás ciklusa annyiszor fut ahány egyes van a szorzandóban (nulla esetén csak léptetünk). A szorzóba lévő egyesek számainak csökkentése Példa: 62vel kell szorozni: 62 az 5 db összeadás. Helyette: *64 db összeadás Összesen 3 db művelet 4%os *2 db összeadás időmegtakarítás, pl.: mai processzorok db kivonás mindegyike. Osztás: X=A/B Hagyományos osztás: 5/48 5 I Konklúzió: Minden kivonás előtt komparálunk (összehasonlítunk) ezért lassú. 48 2 II 3, 48 45 III 48 6 I 48 2 II Visszatérés a nullán át csak az előjel flaget vizsgálva: 45 Kiírja a gyűjtőt (3,) hozzáadja a maradékhoz az osztót (42+48) tízszerezi és fojtatja 48 6 6 48 48 2 42 48 36 kiírja a gyűjtőt (, ) Itt minden kivonás automatikus (nincs komarálás ami lassú). Mivel nem kell minden kivonás után komparálni csak a gyors előjel flag vizsgálatot végezzük, a két két felesleges művelet (hozzáadás +48) ellenére gyorsabb. 2.oldal

Visszatérés nélküli osztás: /6 I,8 6 5. lépés 6 hozzáad t 9. lépés +6 4 8. lépés +6 +2 I 6 4 II 6 8 III 6 2. lépés 6 4 Fixpontos multimédia feldolgozás A probléma felvetése: A, Hangfeldolgozás: analóg jel digitális jelfeldolgozás kell analóg digitélis (AD konverter) Amplitúdó vagy felbontás A leképezendő hanghullám minimális és maximális értékhez hozzárendeljük az értelmezési tartományok minimális és maximális értéket. 8 bit 256 pontos felbontás 6 bit 655536 pontos felbontás (a mai gyakorlat). Mintavétel: Példán keresztül: Egy 5kHzes mintavétel azt jelenti, hogy másodpercenként 5 mintát veszünk az adott hullámból (minden egyes mintánál az amplitúdó értékét tároljuk el). Mai példák: Alkalmazás khz a) Telefon 8 b) Audio CD 44 c) DVD 48 d) DVD minőségi 96 22.oldal

Egy másodperc hanganyag tárolási igénye audio CD, 6 bites felbontás, sztereó esetén: 44*2byte*2 a sztereó miatt = 76 byte/sec ~ 7 kbyte/sec. Percenként: 6*7 ~ Mbyte/min. Feladat: Nagy tömegű fixpontos adat: tárolása továbbítása feldolgozása B, Pixeles képfeldolgozás: A fénykép és a festmények analóg formátumúak, hiszen a fények, árnyékok és színek folyamatos átvitelével írható le. A képeket digitalizálnunk kell, minél sűrűbb a rácsszerkezet annál jobb minőségű képet kapunk, a digitalizálás során. Minnél kisebb egy pixel annál jobb a leképezés, pl.: 8*6; 28*24. Pixel vagy képpontok: Minden szín leírható három szín összetételeként, tehát minden pixelhez három darab színkódot kellene hozzárendelni, de helyette ezeket egyetlen vektorrá kódolták, pl.:,, 2 Egyes pixel értékek: bit (feketefehér, sötétvilágos) byte 256 fél szint írhatunk le 2 byte 65536 féle szín (highcolor) 3 byte 224 féle szín (truecolor) 4 byte a negyedik byte az úgynevezett alfa csatorna az effektek jelzésére szolgál (pl.: átlátszóság mértéke) Egy kép tárolásához szükséges memóriaterület: egy byte két byte A képfeldolgozás feladata, hogy nagy tömegű 8*6 48 96 fixpontos adat: tárolása / továbbítása / 28*24,3Mbyte 2.6Mbyte feldolgozása Megoldás: Tárolás továbbítás hatékony tömörítéssel. feldolgozás: Hagyományos feldolgozás, pl.: 2 db összeadása a 8*6as felbontás mellett. Az. kép byteját betöltjük az ACba. 2. A 2. kép byteját hozzáadjuk az AChez és az eredmény az ACbe keletkezik. 3. Az AC tartalmát lementjük az eredmény memóriaterületre. Ez a ciklus 48szor fut le. Megoldás SIMD módszerrel (single instruction multiple data): Több adattal, ugyanazt az utasítást hajtja végre, ~ 8szoros gyorsítást eredményez 6 szer fut le a ciklus A gyakorlatban két féle megoldás: multimédia segéd processzor az általános célú processzorba beleintegrálják a multimédia feldolgozó egységét. 23.oldal

Az Intel MMX kiterjeszés a) 997 jelent meg b) Matrix Math Extention (Multi Media Extention) c) Logikai architektúra. Pakolt adattípusok bevezetése: a. Ezek mindegyike 64 bites, ami megegyezik a processzor belső sínjeinek szélességeivel. b. Fajtái: pakolt byte 8db 8 bites = 64 bit, pakolt félszó 4db 6 bites = 64 bit, pakolt szó 2 db 32 bites = 64 bit. 2. Új utasítások bevezetése: A négy aritmetikai művelet (+,,*,/) és a logikai műveletek mindhárom adattípushoz vonatkozásában. d) Fizikai architektúra:. Az Intel nem akart új regisztereket bevezetni az új adattípusokhoz, hanem a 8 bites lebegőpontos regisztereket, használja a 64 bites pakolt adattípusok feldolgozására. 2. Egy évre rá az MMX műveletvégzőket 2re növelte, így a ciklusok számát 3re csökkentette. Lebegőpontos műveletvégzés: A lebegőpontos ábrázolás kialakulásának az oka: A fixpontos ábrázolás következő hiányosságai: A szűk értelmezési tartomány, pl.: Integer esetén 32768 +32767ig. A törtérték ábrázolásának pontossága, pl.: 7/4=. Amennyiben a ketteses pontot a regiszter végére helyezzük akkor 7/4=, ami nem elégíti ki a gyakorlati igényeket. Ha több a kettedes pont utáni hely, akkor kevesebb jut az egész számok ábrázolására. Ezen hátrányokat küszöbölte ki a sokkal bonyolultabb lebegőpontos ábrázolás, itt a számokat hatványkitevős formába írjuk fel: ±Mr±k M a mantissza, r a radix (a számrendszer alapja), k a karakterisztika. Története: 993ban Konred Zuse elkészítette a Zuse3 nevű jelfogós számítógépet, melyben alkalmazta a lebegőpontos ábrázolást. Neumann két okból ellenezte: a) Maguk a számok hosszúak sok memóriát igényel b) A számítások bonyolultak bonyolult a műveletvégző és annak vezérlése. 7es évektől főbb formátum irányzatai: a) Vax b) Cray c) IMB 37/39 985: az IEEE szabványosítja. Jellemzői: Radix a) Architektúránként állandó b) Tipikusan kettes számrendszer c) Az IBM 37/39 esetében 6. 24.oldal

Nem normalizált: 23,456*=,23456*3=234,56*= Napjainkban a piacon nincs ilyen architektúra. Normalizált a) Képlettel: /r M<; /2 M<; / M< b) Szöveggel: A törtpont mindig az első értékes számjegy elé tesszük a mantisszában:,9999*n,*n,*n,9999*n túlcsordulási felhasználható alulcsordulási felh. túlcsordulási régió régió régió régió régió Alulcsordulás túlcsordulás: a) Alulcsordulás iránti architektúrális követelmény:. Kijelzi. 2. Nullát vagy denormalizált számot ábrázol. b) Túlcsordulási architektúrális követelmény:. Kijelzi. 2. Vagy a lehető legnagyobb számot vagy előjeles végtelent ábrázol. Azért van a két végén (n), mert a n fenn van tartva a végtelen jelzésére. Denormalizált szám: Szabály szerint nem ábrázolhatom a,4et (,4,), de egy flag helyiértéket hozzárendelek és azzal jelzem hogy ez egy denormalizált szám. Verseny van a processzor gyártok között a pontosság miatt. nulla környéki számok: Amennyiben a mantissza nulla, akkor el várt az architektúrától, hogy a karakterisztika is nulla legyen. Értelmezési tartomány: A karakterisztika Példa Konklúzió helyiértékeinek száma: 99 milliárd Függ a karakterisztika 99 helyiértékének számától. 2 9 milliárd Kettes számrendszer 2 egyesek Függ a számrendszer alapjától. Pontosság: Három helyiérték áll rendelkezésre a mantissza számára a regiszterben. Ábrázolni kell a,, 2, 3, 4 mantisszát. Ekkor csak a,, 2, 3 ábrázolható, s ha pl.: karakterisztikának 6 (234), akkor a pontatlanság 4 vesztességet okoz. Konklúzió: A pontosság függ a mantissza hosszától. Rejtett bit: Mantissza esetében a normalizálás szabálya kettes számrendszerben /2 M<. A kettedes pontok az első értékű jegy elé kell tennünk, annak tehát nincs információ tartalma. Ezért az operatív tárba vagy háttértárba kiírás előtt a rejtett bitet balra léptetjük és jobbról beleépítünk egy értékes helyiértéket, a mantissza hossza ezáltal bit helyiértékkel nő, így növekszik a pontosság. Az operatív tárból vagy háttértárról a beolvasás során a processzoron belül helyreállításra kerül a rejtett bit, így a beolvasott adat feldolgozásra kész formába kerül. A 25.oldal

Zuse3 (933) már alkalmazta a rejtett bitet napjainkban valamennyi piacon lévő architektúra alkalmazza a rejtett bitet. Hogyan lehet hosszabb szám? Őrző bitek: A lebegőpontos számok mantisszáját a processzoron belül hosszabb formátumba tároljuk mint az operatív tárban. Amikor az eredményt normalizáljuk és jobbról további helyiértéket léptetünk, akkor az őrzőbit lehetővé teszi, hogy ezek értékes helyiértékek legyenek. A rejtett bit kiléptetésekor (balra történő), úgy jobbról értékes bit kerül beléptetésre. A lebegőpontosan tárolt bit ily módon kerekített bit lehet. Napjainkban minden architektúra alkalmazza az őrtő bitet. Mantissza kódolása: A gyakorlatban mindig kettes komplemens formában tárolt. Karakterisztika kódolása: A karakterisztika többletes formában tárolt. a) A többletes kódot gyorsabban alakítható ki, mert kettes komplemensú. b) A karakterisztikában csak összeadást és kivonást kell végezni s ez többletes kóddal is helyesen elvégezhető. IEEE 754es lebegőpontos szabvány. 977ben kezdték kidolgozni. Cél a különböző gépek közti adatszintű kompatibilitás megteremtése. Rendszerszintű szemlélet azaz nem írták elő a gyártónak mit valósítsanak meg hardver, és mit szoftver úton. Nem valamelyik gyártó által kialakított megoldást fogadták el, hanem valamennyi lebegőpontos architektúra megvalósításából összegyűjtötték a legjobbakat. A szabvány 985ben jelent meg, az első gyakorlati megvalósítása 98ben jelent meg. A szabály fejezetei: Formátumok Műveltek Kerekítések Kivételek kezelése Formátumok: a) Szabványos. Egyszeres pontosságú 2. Kétszeres pontosságú b) Kiterjesztett. Egyszeres pontosságú 2. Kétszeres pontosságú Szabványos kiterjesztett: a) A szabványos formátum az operatív tárban illetve a háttértárolón alkalmazott formátum ezt pontosan leszabályozzák. b) A kiterjesztett formátum a processzoron belül alkalmazott formátum ennek a szabályozása igen laza. Kerekítések: A legközelebbire való kerekítés (hagyományos kerekítés: 8,3 8; 8,9 9). Negatív végtelen felfelé történő kerekítése. 26.oldal

Pozitív végtelen lefelé történő kerekítése. Az utóbbi kettő az intervallum algebrában használjuk. Kétszer hajtjuk végre a számítást: Egyszer mindig mínusz végtelen felé kerekítve. Egyszer mindig plusz végtelen felé kerekítve. A helyes eredmény a két kapott eredmény között helyezkedik el. Amennyiben a két eredmény közötti különbség a számításunk szempontjából kicsim akkor az eredmény elfogadható. Amennyiben nagy elemeznünk kell a programot (pl.: részeredményeket ne írjunk be a memóriába) vagy magát az algoritmust. Kivételek kezelése: Nullával történő osztás Alulcsordulás Túlcsordulás Gyök alatt negatív szám van Esettanulmány Intel processzorcsalád: A szabvány első megvalósítása 98ben jelent meg Intel887es; az összes mai processzor ilyen. Logikai architektúra: Radix kettes számrendszer. Alulcsordulási denormalizált szám. Szabványos formátum: A szabvány csak az egyszeres pontosság megvalósítását írja elő, a kétszeres pontosság megvalósítása opcionális. Egyszeres pontosság: Rövidebb adat, kisebb memóriaigény, gyorsabb feldolgozás, nem nagyon pontos eredmény. Kétszeres pontosság: Hosszabb adat, nagyobb memóriaigény, lassabb feldolgozás, pontosabb eredmény. Egyszeres pontosság: 32 bites formátumú 8 23 Az értelmezési tartomány: 38 tól 38ig mantissza előjele karakterisztika mantissza Kétszeres pontosság: 64 bites formátum 52 Az értelmezési tartomány: 38 tól 38ig Kiterjesztett formátumú: Egyszeres pontosság: min 43 bit; Kétszeres pontosság: min 79 bit; Műveletek: Minimum: a) Négy aritmetikai alapművelet (+,,*,/) b) Maradékképzés c) Négyzetgyökvonás d) Bináris decimális konverzió Értelmezze a műveletet végtelenre is: a) 3+ = b) 3+( )= 27.oldal

Túlcsordulási előjeles végtelen Létrehozzunk a rejtett bitet Létrehozzuk az őrző bitet Mantissza kettes komplemens Karakterisztika többletes kódolás Mind az egyszeres, mind pedig a kettes pontosságú megvalósításra került. Kiterjesztett formátumú 8 bit hosszú, a programozó dönti el, hogy ezt egyszeres vagy kétszeres pontossággal írja ki az operatív tábla vagy a háttértárolóba. Fizikai architektúra: Az Intel 887es társprocesszor formályában kerül megvalósításra. Az Intel 8286as és az Intel 8386es is. Az Intel 8486 Dxnél már közös lapkára integráltak az általános célú és a lebegőpontos processzort. Teljesítmény jellemzők: Relatív MIPS: a mértékegység az 98ben megjelent. IBM PC teljesítménye: Típus: mhz relatív MIPS Intel 8386 25 7 Intel 8486 DX 66 ~7 Pentium I 33 ~6 A szoros növekedés a hardver úton megvalósított lebegőpontos feldolgozás eredménye. A 3 szoros pedig a futószalagos feldolgozás ez az órajel kétszeresének eredménye. Lebegőpontos műveletek: Összeadás: X=A+B példa:,9*3 közös kitevő, ciklikusan léptetetem jobbra ±ka 4 A=±mAr. +,95* illetve balra. ±kb 4 B=±mBr.,9* +,95*4,*4 mantissza vizsgálása, majd normalizálása Algoritmus:. A kitevők megvizsgálása: csak azonos kitevőjű számok mantisszája adhatók össze. 2. Amennyiben a kitevő eltérő, akkor a kisebb kitevő szám mantisszájában a törtpontot jobbra léptetjük a kitevőt implementáljuk. Ez a ciklus addig fut míg a kitevők meg nem egyeznek. 3. Összeadjuk a közös kitevővel rendelkező számok mantisszáját. 4. Szükség esetén normalizálunk. Szorzás: X=A*B=mA*mBrka+kb Algoritmus: A mantisszákat összeszorozzuk, a karakterisztikát pedig összeadjuk. Osztás: X=A/B= ma/mbrkakb Algoritmus: A mantisszákat elosztjuk a karakterisztikákat pedig kivonjuk egymásból. 28.oldal

Megvalósítás: Univerzális műveletvégző az ALU parciálásával (részekrebontásával) karakterisztika mantissza fixpontos ALU Ez egy kicsit bonyolultabb vezérléssel megoldható. Szervezési módosítással a) Mind a mantisszát mind a karakterisztikát külön külön regiszterekben helyezem el. b) Egymás után elvégezzük a mantissza és a karakterisztika műveleteket. c) Az eredmény pedig egyik regiszterben összeadjuk. Dedikált műveletvégzők: Karakterisz tika egység Mantissza egység Vezérlő Következtetések: Míg a mantisszának egységnek ismernie kell a szorzást, osztást is a karakterisztikus egységnek elegendő az összeadást és a kivonást ismerni. Párhuzamosan lehet végezni a karakterisztika és a mantissza műveleteit. A szűk keresztmetszet a mantissza egységét érinti (a szorzás, osztás miatt), mivel a karakterisztikus egység az +/ gyorsan el tudja végezni. A gyorsítást a mantissza egységnél kell végezni. Lebegőpontos, vektorgrafikus multimédia műveletek: Jellemzők: Az egyenesekkel és a görbékkel határolt objektumok geometriai jellemzőkkel leírható. Elegendő a geometriai jellemzők tárolása. a) Egyenes esetén: Két pontjának koordinátáit. b) Kör: A középpont koordinátáját és a sugár hosszát. 2D: Egy kép igen sok objektumra (sokszögre, háromszögre) bontható egy átlagos kép objektumainak száma ~ 2. Miután a számítógép a geometriai jellemzők alapján meghatározza a ~ 2 objektumot a színek valósághű átmenete érdekében egy úgynevezett textúrát alkalmaz. Megoldandó feladat: Viszonylag kevés lebegőpontos adat van. Sok műveletet hajtunk végre. 29.oldal

3D: Egy harmadik dimenzió kerül hozzáadásra. a) Biztosított a párhuzamosoknak a végtelenben való találkozása. b) Az atmoszférikus sajátosságok is megvalósításra kerülnek, azaz a közelebb lévő tárgyak élesebbek a távolabbi kékesebbek és elmosódottabbak. Sok 3D film készül ahol minimum 5 képet kell vetíteni másodpercenként, annak érdekében, hogy folyamatosnak láthassuk. Pl.: képenként 2 objektummal számolva 2*5=3 obj/sec feldolgozási sebesség szükséges. A megoldandó feladat: Viszonylag kevés lebegőpontos adaton sok műveletet kell végrehajtanunk adott időegység alatt. Megoldás Intel processzoroknál: 998 MMX, azaz a KNI (Katmai New Instruction) a megoldás: a SIMD (Single Instruction Multiple Data) 985 óta először új regisztereket vezetett be az Intel: 8 db 28 bites regisztert. Formátumok: a) 4 db * pontosságú b) 2 db 2* pontosságú számon hajt végre egy időben műveletet: + + + + = = = = 7 db új utasítást vezettek be. %osan megfelel az IEEE 754es szabványának. Megszakítás esetén az új regisztereket is menteni kell, ezt először a Win98 operációs rendszer végzi. A lebegőpontos műveletvégzés jelentősége: A tudományos és multimédia számításához szükséges. A miniatürizálás és a fajlagos árcsökkenés eredményeként a jelenleg kereskedelmi forgalomban lévő processzorok mindegyike hardver úton megvalósítja. BCD Binary Coded Decimal Megjelenésének oka: A pontosság. A fixpontos ábrázolásnál a törtek pontatlanok. A lebegőpontos ábrázolásnál a mantissza, karakterisztika formátuma lényegesen pontosabb, de nem teljes. A tizedes számrendszerből a kettes számrendszerben a számokat átszámítjuk, ezzel szemben a tízes számokat a BCDbe a számokat átkódoljuk. A kódolás egyértelmű megfeleltetés. Pl.: 2D=B= BCD. 3.oldal

Jellemzői: Ábrázolása: a) Zónázott: Minden byte kisebb helyiértékű tetrádjában helyezkedik el a BCD szám, a nagyobb helyiértékűben pedig a zóna: Zóna BCD Zóna BCD előjel BCD A zóna értéke jellemzően nyomtatható karakterre egészíti ki a BCD értéket. Azaz ASCII esetén általában 3 (Intel), EBCDIC esetén általában F (5). Általában nem lehet ezzel a formátummak számítást végezni (pl.: VAX, IBM), kivéve az Intel. b) Pakolt: Minden byteban 2 db BCD szám van: BCD BCD BCD BCD Az Intel esetén byte hosszú:. Az első byte eső bitje az előjel, a többi bitet nem használjuk. 2. A további 9 bájtban 8 db BCD szám helyezkedik el. 9 9 +9 9ig 2* 8db 9es lehet. A szám hossza: a) Fix hosszúságú. b) Változó hosszúságú meg kell adni a szám hosszát is. Az előjel: a) Hossza:. 4 bites (tipikusan a zónázott formátumnál) 2. 8 bites (tipikusan a pakolt formátumnál) b) Elhelyezkedése:. a szám végén (tipikusan a zónázott formátumnál) 2. a szám elején (tipikusan a pakolt formátumnál) c) Értéke:. Az érvénytelen tetrádok segítségével a. Ahol pozitív A,C,E,F. b. Ahol negatív B,D. 2. A összeadás és a kivonás ASCII kódjával. BCD összeadás: Ugyanúgy végezzük, mintha bináris számokkal, csak: Az összegzésesetében fel kell ismernünk az érvénytelen tetrádokat, S az érvénytelen tetrádok esetében koordinációt kell végrehajtanunk. Az érvénytelen tetrádok: Decimális szám: 2 2 érvénytelen tetrádok 3 3 4 4 5 5 6 7 érvénytelen: az első bithelyiértéken egyes és vagy a második 8 vagy a harmadik helyen egyes szerepel. 3.oldal

9 Korrekció: Az érvénytelen tetrádokból: képezzünk tizet és generálunk egy tizes átvitelt pl.: 8+7=5+()=5; segédszámítás: D=B=kettes komplemens + + 5D. es átvitel Megvalósítás: Megvalósítási alternatívák: univerzális művelevégző, BCDnek megfelelő vezérléssel. A dedikált, BCD műveletvégző. A BCD jelentősége: Pontos. Hátránya: a) Komplexebb műveletvégzés esetén lassabb. b) Nagyobb tárigény a 6 értékkészletből csak tizet használ ki, tehát 4% kihasználatlan pl.: 2D=B= BCD 8 biten ábrázoljuk. Érdekességek a BCDvel kapcsolatban: Basic programnyelv a BCDt használja. A számológépekben és a digitális órákban BCDt alkalmaznak. Fixpontos, lebegőpontos, BCD melyiket használjam? Fixpontos: Gyors végrehajtás. Memória takarékos (8,6,32 bites formátumban létezik). 32.oldal

A formátumok között a szükséges értelmezési tartománynak megfelelően válasszunk a lehető legrövidebb formátumút. Egész számok esetén teljesen pontos: if a= csak fixpontos illetve BCD esetén alkalmazható, lebegőpontosnál nem. Lebegőpontos: Akkor alkalmazzuk a) Ha a fixpontos értelmezési tartomány nem elegendő. b) Amikor műveletet kell végeznünk a számokkal. A lehetőségek közül csak indokolt esetben válasszuk a kétszeres pontosságot, mert annak számítása lassabb. BCD: Tipikusan a lebegőpontos ábrázolás egy alternatívája. Az ALU egyéb műveletei: Valamennyi Boole műveletek (6 művelet: vagy, és kizáró vagy). Léptetés. Invertálás. Címszámítás: a) A korai gépekben az általános célú Aluval. b) Napjainkban álhardverrel. Karakteres műveleteket általában az általános ALU műveletvégzi. Vezérlőrész: 947 első elektronikai gép; huzalozott vezérlés. Centralizált vagy szekvenciális vezérlés: 954 Wilkes Mikroprogramozott vezérlés; 963 CDC66. Decentralizált vagy párhuzamos vezérlés: 966 Szuper skolár (IBM369); futószalag. Huzalozott vagy áramköri vezérlés: Az ember számára nehézen áttekinthető. Nehézkesen módosítható. Előnye: Gyors. Megvalósítás: 33.oldal

Elv: Egy forrás regiszterből áll. Módosító áramkörökön keresztül. A célregiszterbe juttatjuk az adatot. Regiszterek: Memória regiszterek (MDR, MAR). ALU regiszterei (AC, általános célú regiszterkészlet). I/O regiszterek (vezérlő kártya). Vezérlőrész regiszterei (utasítás regiszter). Módosító áramkör: Összeadó Invertáló Inkrementáló Léptető Működése: A forrás regiszter kimenetét rákapcsoljuk a módosító áramkör bemenetére. Előírjuk a módosító áramkör számára, hogy most éppen milyen módosítást hajtson végre. Pl.: léptetés és összeadás. A módosító áramkör kimenetét rákapuzzuk a célregiszter bemenetére. A mai processzorokban tipikusan több száz olyan vezérlés van amit vezérelni kell. Mikroprogramozott vezérlés: 945 Mauria Wilkes (University of Cambridge). Cél: Ember számára áttekinthetővé tenni a vezérlést. a) Mikro utasítások, melyek meghatározott vezérlő vonalat, vagy vonalakat aktiválnak. b) A gépikódú utasítások végrehajtása mikroutasítások sorozatával érhető el. c) A hagyományos számítógépet tekinthetjük egy makrószámítógépnek ezen belül helyezkedik el egy mikroszámítógép mikroutasítássokkal, mikroprogrammal. A vezérlést rugalmassá könnyen módosíthatóvá a) a mikroprogram tároló Control Memoryban cserélhetjük, változtatjuk magát a mikroprogramot. A Wilkes féle modell: 34.oldal

Működése: Mikroutasítás szekencia a) A gépikódú utasításoknak a műveletkódrésze megfelelően kidolgozva beírásra kerül a CMARba. Megfigyelhető kódolás: Az adott gépi kódú utasítást (pl.: add) végrehajtását elemi műveleti szinten végigvezérlő mikroprogram kezdőcíme. b) Ez a cím leírásra kerül a dekóderbe, ily módon kiválasztott mikrotasítás:. meghatározott ideig aktiválja a megfelelő vezérlővonalat, majd 2. a mikroutasítás címrésze beírásra kerül a CMARba. c) Ugrás a második pont szerint. Példa az elemi művelet szekvenciája az add esetén. MAR PC MDR (MAR) IR MDR DEC IR MAR DECcímrész MDR (MAR) AC AC+MDR PC PC+ Feltételes ugrás a) Amennyiben ugrási mikroutasítás kerül feldolgozásra, akkor. a megfelelő vezérlővonalak meghatározott ideig aktiválásra kerülnek, majd 2. a feltétel igen vagy hamis voltától függően vagy az első vagy a második cím kerül letöltésre CMARba. Egy korszerű mikroutasítás felépítése: feltételugrási cím vezérlőrész kiválasztó mező Feltételkiválasztó mező: Tipikusan az jelenti, hogy melyik flagot teszteljük. Ugrási cím: amennyiben a feltételes ugrásnál igaz, akkor a cím kerül az MPCbe Vezérlőrész: Ez jelöli ki az aktiválandó vezérlő vonalat vonalakat. Az egyszerű mikrovezérlő megvalósítása: MPC Mikro Program Counter CM Control Memory CMDR Control Memory Data Register MUX Multiplexer Működése: Mikroutasítás szekvenciája: a) Az MPC által kijelölt, következő végrehajtandó mikroutasítás a CMből eljut, a CMDRbe. 35.oldal

b) Meghatározott ideig kiválasztásra kerülnek a mikroutasítás vezérlő része által kijelölt vezérlővonalak. c) A MPC inkrementál, majd vissza az es pontra. Feltételes ugrás: a) Meghatározott ideig aktiválásra kerülnek a mikroutasítás vezérlő része által kijelölt vezérlő vonalak. b) A feltétel kiválasztó mező által meghatározott külső feltétel kiválasztásra kerül, s annak igaz vagy hamis voltától függően:. Vagy a végrehajtás alatt álló mikroutasítás ugrási cím vezérlőjének tartalma felülírja az MPC tartalmát. 2. Vagy MPC inkrementálva határozza meg a következő végrehajtandó mikroutasítás címét. Megjegyzések: A huzalazott vezérlő ütemezőjét váltja ki a CM. Míg a Neumann féle makroszámítógépben együt tároljuk a programot és az adatokat, a mikroszámítógép mikroprogram tárába nincs adat csak mikroutasítás. Ezért: a) A Wilkes féle modell move jellegű felírása miatt csak a CMAR, b) A korszerű mikrovezérlő inkrementálási képessége miatt MPC alkalmazható. A mikroutasítás hosszát meghatározó tényezők a) A CM drága, ezért célszerű takarékoskodunk vele. b) Feltétel kiválasztó mező: Viszonylag rövid. Címmező: a) A következő végrehajtandó mikroutasítás címe.. A Wilkesféle modellben a mikroutasítás tartalmazza a következő végrehajtandó mikroutasítás címét. 2. A korszerű mikrovezérlő esetén az MPC képes a. mind move jellegű cím befogadására b. mind pedig inkrementálásra b) Ugrási cím. Rövidebb mint a tár címtere. A tár címtere pl.: 24 (bit), ugrási címtér 256 (8 bit). 2. Külső forrásból töltsük le az ugrási címet. 3. Az ugrási cím mező viszonylag ritkán hasznosítják, ezért nem ugrás esetén vezérlőmezőként is használható lehet. Ezt egy bit mutatja, hogy ugrási mezőt tartalmaze. ugrási cím Kétszintű mikroutasítás (Motorola): Előnye: Több mikroutasításban is szerepelhet ugyanaz a vezérlőrész, viszont csak egyszer tároljuk. 36.oldal

Vezérlőrész Horizontális vagy vízszintes mikroutasítás. a) Hosszú formátum b) Magas fokú párhuzamosság c) Alacsonyszintű kódolás d) Pl.: IBM36, PDP8, Motorola e) IBM36:. A vezérlőrész hossza 9 bit. 2. Ezt 2 vezérlőmezőre osztották: 2 változó hosszúságúra 2 darab egymástól függetlenül is működőképes hardver egységet alakítottak ki, tehát elvben maximum 2 egység működet párhuzamosan. 3. 6567 bit vezérli az ALU jobb oldali bemenetét, azaz ezek jelölik ki, mely regiszterből kerüljön betöltésre az egyik operandus. 4. 687 bit határozza meg az ALU milyen műveleteket hajtson végre lehetőségek: fixpontos a BCD összeadás a bejövő és a kimenő átvitel különféle kezelésével. f) PDP8. a vezérlőrész 28 bit hosszú. 2. hipotézis 27=28 azaz 7 biten kódoljuk az értékeket. ez az elve a vertikális vagy függőleges mikroutasításoknak. Vertikális vagy függőleges mikroutasítás a) Rövid b) Alacsony szintű párhuzamosítás c) Erős kódolás d) Pl.: IBM37, Intel e) Esettanulmány 37 esetén műveleti kód;.operandus; 2.op.;CM címzési információ. 4 bájt hosszú 2. az operandusok regisztert címeznek 3. a címképzési információ Wilkes féle modelre emlékeztet Mai gyakorlat. Hibrid változat: Gyakran használatos vezérlőrészek horizontálisak, míg a ritkábban használatosak vertikálisak: A kódoltakat dekóderen keresztül aktiválják a vezérlő vonalakat (idővesztesség) A mikroutasítások végrehajtásának ütemezése. Fajtái: Non fázisú mikroutasítások: egy végrehajtási ciklus megegyezik az óra ciklussal. 37.oldal