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

Méret: px
Mutatás kezdődik a ... oldaltól:

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

Átírás

1 BMF-NIK Államvizsga Tételek Architektúrák (2007) SzA1. Számítási modell (fogalma; kapcsolatai, fajtái, a Neumann-féle és az adatfolyam számítási modell) Számítási modell fogalma: A számításra vonatkozó alapelvek absztrakciója. Jellemzői: 1. 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 Végrehajtás Architektúra Adatokon hajtjuk végre a számítást. Specifikáció Számítási modell Implementáció Számítási modell Fejlesztési kronológia: Programnyelv Architektúra A számítási modellek 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 bonyolultság - 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 Adatalapú számítási modell: Az adatokat típusokba soroljuk (elemi és összetett). Az elemi adattípusok meghatározzák az adat értelmezési tartományát, értékkészletét, az értelmezett műveletek halmazát. Pl.: integer (16 bites) esetén ÉT: , ÉK: egész értékek, értelmezett műveletek: +,,,. 1 / 121

2 Neumann-féle számítási modell: 1. Min hajtjuk végre a számítást: - Adatokon. - Az adatokat a változók képviselik. Deklarált változók - 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: - Adatmanipuláló utasítások sorozatával. Deklarált változó Adatmanipuláló programutasítás adatmanipuláció 3. Mi vezérli a végrehajtást: - Az adatmanipuláló utasítások implicit szekvenciája - Az explicit vezérlést átadó utasítás. Vezérlés-átadás Utasítások PC Nem számolja, csak egyesével tudja növelni magát. Az adat elejét tudja értelmezni move utasításként. Programnyelvek: Imperatív (parancs) nyelvek, pl.: Pascal, C, Basic, Fortran. Architektúra: Neumann-féle architektúra. Adatfolyam számítási modell: 1. Min hajtjuk végre a számítást: Adatokon. 2. Hogyan képezzük le a számítási feladatot: - A bemenő adatok halmazának értelmezésével és, - Adatfolyam gráffal: a) Csomópontok: műveletvégzők. b) Élek: input/output lehetőségek, ahol az adat áramlik. 2 / 121

3 Pl.: Z=(X+Y) (X Y) X Y bemenő adatok halmaza + - párhuzamos műveletvégzés időmegtakarítást eredményez (33%) a Neumann-féle szekvenciálisan dolgozott Z 3. Mi vezérli a végrehajtást: Adat. Stréber modell: 1. Még nincs operandus. 2. Az egyik operandus megjelent. 3. Összes operandus megérkezése 4. Megjelenik az eredmény. Az utolsó operandus megjelenése indítja el a műveletet. Lehet akárhány operandus, akár több száz is. Programnyelv: Sisal. Architektúra: The Manchester Dataflow Machine Neumann-féle számítási modell Adatfolyam számítási modell 1. Közös memória (adat + program) Műveletvégzőben tárolhatóak az adatok 1. Változó Egyszeri értékadás (a bejött adat elveszik) 2. Adatmanipuláló utasításokkal Adatfolyam gráffal 3. Implicit szekvencia Adatvezérelt 3. Explicit vezérlésátadás Nincs PC, nincs vezérlési szekvencia A Pentium processzorokban a CISC magban van adatfolyam. SzA2. Az adattér (fogalma; a memória-tér; a regisztertér és fejlődése: egyszerű, adattípusonként különböző, többszörös regisztertér) A processzor által manipulálható tér. Memóriatér: Adattér Memóriatér Regisztertér Nagyobb Kisebb Lassúbb Gyorsabb Olcsóbb Drágább Processzoron kívül (külön lapkán) Processzoron belül Közös az I/O térrel Mindig önálló - A legfontosabb jellemzője a tárolási kapacitása. - Címtér: a) Modell címtere: címsín szélessége határozza meg b) Implementáció címtere: pénztárca 3 / 121

4 - A valós memóriatér fejlődése: a) 40-es évek: néhány száz szó. b) 1950 IAS: 10 bites címsín, 2 10 =1024 szó. c) 1964 IBM 360: 16 Mbyte. - Virtuális tár a) 1960-ban jelent meg az ötlete s az IBM 370-es gépcsalád vitte sikerre. b) Alap jellemzői: 1. kétféle címet értelmezünk: a. valós cím (ezt látja a processzor) b. virtuális cím (programozó) Virtuális tér Nagyobb Lassúbb Háttértárolón helyezkedik el Programozó látja Várakozik a program Valós címtér Kisebb Gyorsabb Alaplaphoz illesztve, félvezető lapkán Processzor látja Itt fut a program 2. Létezik egy olyan, a programozó számára transzparens mechanizmus, mely: a. Az éppen futó program számára szükséges program- és adatrészeket behozza 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. 3. Létezik egy olyan, a felhasználó számára transzparens mechanizmus, mely a programozó által használt virtuális címeket a végrehajtási (execution) fázisban lefordítja valós címekké. Virtuális címek transzparens mechanizmus 2. pont Valós címek 3. pont Az Intel processzorok valós és virtuális memóriájának fejlődése: Típus Megjelenés Valós memória Virtuális memória éve (Mbyte) bit Gbyte 24 bit Tbyte 32 bit Regisztertér: Osztályozása: - egyszerű - adattípusonként különböző - többszörös 4 / 121

5 Egyszerű regisztertér: Egyszerű regisztertér 40-es évek egyetlen akkumulátor 50-es évek egyetlen akkumulátor + dedikált regiszter 60-as évek általános célú regiszterkészlet Verem regiszterek + - Egyetlen akkumulátor Hátránya: 1. Szűk keresztmetszet. 2. Két eredmény esetén csak az egyiket tudta tárolni (pl.: osztásnál a hányados é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ú regiszterkészlet Előnye: 1. Minden regiszter kihasználtsága javul. 2. Új programozói stílus: a regiszter operandusú műveletek számának maximalizálása. - Verem regiszterek Hátránya: Szűk keresztmetszet, mivel csak a verem tetejét látjuk. Előnye: Gyors. Adattípusonként különböző regiszterkészlet: Megjelenésének oka a lebegőpontos feldolgozás gyorsítása. karakterisztika (8) mantissza előjele (1) Általános célú regiszterkészlet, feladata: fixpontos, karakteres, logikai feldolgozás. mantissza (23) 1964 IBM / 121 Lebegőpontos regiszterkészlet, feladata: lebegőpontos műveleti feldolgozás.

6 regiszterek száma 1998 Pentium III általános célú regiszterkészlet lebegőpontos regiszterkészlet MMX2 (Katmai) Egy utasítással több műveletvégzést ér el. A vektorgrafikánál fontos. 12 bites, 3D filmeket ez tette lehetővé. Megjelenés éve: Típus Általános célú regiszterkészlet Lebegőpontos regiszterkészlet Katmai (MMX2) 1964 IBM x32 4x Intel x32 8x IBM RISC x32 32x Pentium III 8x32 8x80 8x128 Többszörös regiszterkészlet: Háttérismeretek: - kontextus: a) regiszterek aktuális é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öltve a program futása folytatódhasson. - Többfeladatos és többfelhasználós környezetben igen sok megszakítás lép fel. A kontextus memóriába való mentése lassú gyorsítás többszörös regiszterkészlet révén. Fajtái: 1. Több, egymástól független regiszterkészlet, pl.: 1964 Sigma7. - Paraméterátadásos eljáráshívásoknál a paramé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 2. Átfedő regiszterkészlet, pl.: 1980 RISC I. - A hívóeljárás OUTS része fizikailag megegyezik a meghívott eljárás INS részével nincs paraméterátadás - Regiszterek száma merev viszonylag üres regiszterkészlet esetén is előfordulhat túlcsordulás. - A túlcsordult paraméterek mentése a memórián keresztül történik lassú. - Konkrét regiszter számok: (ins/locals/outs) RISC I: 6/10/6 SPARC: 8/8/8 INS Locals OUTS INS Locals OUTS INS Locals OUTS regiszterkészletek száma 6 / 121

7 - Regiszterkészletek száma: túlcsordulás (%) regiszterkészletek száma A mérési eredmények azt mutatták, hogy 8 db regiszterkészlet esetén már csak 2% körüli a túlcsordulás. - A programozás módszertana sem ajánl nyolcnál több egymásba ágyazott eljárást, mivel az ennél több már nehezen tekinthető át. 3. Stack-cache, pl.: 1982 C-Machine - a stack verem szervezését és - a regiszterek közvetlen címzési lehetőségét egyesíti. Működése: - A compiler minden eljáráshoz hozzárendel egy változó hosszúságú aktiválási rekordot (regiszterkészlet). - A SP lehetővé teszi az aktiválási rekordok közvetlen elérését. - A SP és a relatív távolság megadásával bármely adat közvetlenül elérhető a stackcache-ben. - Az aktiválási rekordok számának csak a stack cache fizikai mérete szabhat határt. itt is van átfedő rész az INS és OUTS-nál aktuális aktiválási rekord aktuális stack pointer (SP) előző aktiválási rekord előző SP 7 / 121

8 SzA3. A szekvenciális utasítás-végrehajtás menete (az aritmetikai utasítások és a feltétlen vezérlés-átadási utasítás végrehajtásának sémája) - Egy gépi kódú utasítás általános formátuma: MK Címrész MK : műveleti kód, mit csináljon a processzor Címrész : mivel tegye mindezt - 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-adatregiszter (kétirányú). IR: Instruction Register utasításregiszter. DEC: Decoder. ALU: Arithmetical Logical Unit műveletvégző (utasítást is képes továbbítani). AC: Accumulator általános célú regiszterkészlet. - Egy hagyományos szekvenciális feldolgozást végző processzor részei: Operatív tár adatsín címsín processzor MAR PC MDR Vezérlő egység IR ALU I. Utasítás lehívás DEC AC 8 / 121

9 A PC tartalmazza a következő végrehajtandó utasítás címét. MAR PC MDR (MAR) nem a címét jutatja el, hanem a tartalmát. IR MDR itt már az IR-ben adat van. PC PC + 1 következő feldolgozandó utasításra mutat, a +1 egységre utal, 2, 4 byte lehet. Ez a folyamat minden utasítás esetén megegyezik. II. Utasítás végrehajtás - Betöltés (load): DEC IR MAR DEC címrész MDR (MAR) AC MDR műveleti kód IR címrész - Aritmetikai-logikai utasítások: DEC IR MAR DEC címrész MDR (MAR) AC AC + MDR vagy AC AC MDR vagy AC AC és MDR értelmezi, hogy mi van a címrészben a másik tag elmentése műveletvégzés - Kiírás (store): DEC IR MAR DEC címrész MDR AC (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 PC DEC címrész 9 / 121

10 SzA4. Az állapottér és az állapotműveletek (az állapottér összetevői; az állapotműveletek) Állapottér a felhasználó számára látható a felhasználó számára transzparens virtuális memória megszakítások verem... PC állapotjelzők egyéb, a felhasználó számára látható állapotformáció CC állapot-indikátorok adattípusonként nyomkövetés (debug) indexelés különböző állapot- -indikátorok CC - Condition Code - 2 bites négy érték felvétele - IBM 360 állapot-indikátorok (flag): - minden helyiérték saját jelentéssel bír, pl. negatív, nulla, túlcsordulás adattípusonként különböző állapot-indikátorok: - minden regiszterkészlet típushoz hozzárendelnek külön állapot-indikátor készletet, pl. az általános célú processzorhoz tartozó flag-eken kívül a lebegőpontos proceszszorhoz is hozzárendelnek külön flag-készletet. - a lebegőpontos flag-készlet eseményei pl. alul-, túlcsordulás, denormalizált szám, 0 Megszakításoknál (fejlődés íve): IBM 370-es gépcsaládnál bevezetik a PSW-t (Program Status Word): megszakításoknál a PSW-t mentik el. - Kontextus: a) A regiszterek aktuális értékei és b) Az állapottér aktuális értékei (PC, flag) Megszakításnál a kontextust mentik. PC Inkrementálás (növelés) Felülírás Állapotműveletek Flag Set (beállítás) Save (mentés) Load (visszatöltés) Clear (törlés) Reset (kezdeti értékek visszaállítása) 10 / 121

11 SzA5. Az utasítás- és operandus típusok (utasítás- és operandus típusok; szabályos architektúrák) Az utasítások fajtái (típusai): op operandus s source (forrás) d destination - tetszőleges művelet 4 címes utasítás opd:=ops1@ops2, op4 MK Opd ops1 ops2 op4 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:=ops1@ops2; Az eredmény helyének explicit deklarálása. Előnye: - Az aktuális utasítás eredményének mentésével párhuzamosan betö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 ops1:=ops1@ops2; a mai gyakorlat általában ops2:=ops1@ops2; Pl.: ADD[100],[102]; [memóriacímek] Előnye: - Memória- vagy regisztertakarékosabb, kiküszöböli a Neumann által említett hátrányt. 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 360/370, Intel processzorok. 11 / 121

12 1 címes utasítás - Az egyik forrásoperandust betöltjük az AC-ba: LOAD[100] - Az AC aktuális tartalmához hozzáadjuk az utasításban szereplő operandust: ADD[102] - Végül az AC tartalmát kimentjük az operatív tárba: STORE[100] Előnye: - Rövidebb utasítások. Hátránya: - Több utasítást kell használnunk. Pl.: 1951 IAS (Neumann gépe), csak az 50-es 60-as években készült ilyen processzor. 0 címes utasítás Fajtái: - NOP (no operation). - Veremműveletek (csak a verem tetejét látja): POP, PUSH. - A műveleti kód tartalmazza az operandust, pl.: CLEAD (a D flag törlése). Napjaink trendje: - CISC: - kétcímes - az első helyen képződik az eredmény - tipikusan csak a második cím lehet memóriacím - RISC: - aritmetikai-logikai utasítások esetén háromcímes utasítások - mindhárom regisztercím Operandus-típusok: Operandus-típusok akkumulátor (a) memória (m) regiszter (r) verem (stack - s) immediate (i) immediate: magában a programban adunk értéket a változónak a gyakorlatban ez bemenő operandus Architektúrák szabályos kombinált(pl. a+m) - a mai CISC processzorok akkumulátor memória regiszter verem a-r a-m 2 címes 3 címes 2 címes 3 címes SSS aar ara aam ama m1m1m2 m2m1m2 m1m2m3 r1r1r2 r2r1r2 r1r2r3 Akkumulátor: Előny: Gyors, rövid címrész. Hátrány: Szűk keresztmetszet. Napjainkban nem aktuális. 12 / 121

13 Regiszter: Előny: Gyors, rövid címrész. A mai RISC számítógépek mindegyike. Memória: Előny: Nagy címtér. Hátrány: Hosszú címrész, hosszú utasítások, lassú. Napjainkban nem aktuális. Verem: Előny: Gyors, rövid címrész (0 hosszúságú). Hátrány: Szűk keresztmetszet. Pl.: HP3000, VT1005, Napjainkban nem aktuális. SzA6. Az aritmetikai egységek felépítése I. (az n-bites soros és párhuzamos összeadó, valamint az előrejelzett átvitellel felépített n-bites összeadó) n-bites soros összeadó Megjelenésének oka az, hogy az összeadandók tipikusan n bit hosszúságú regiszterekben helyezkednek el. n fokozatosan növekszik (ma: 32/64). Jellemzői: - A két operandus léptetőregiszterben (shift) helyezkedik el. - Az eredmény az A operandus helyén képződik. - A kimenő átvitelt tárolóba vagy késleltetőbe helyezzük, hogy a következő bitpároshoz (összeadáshoz) megfelelő időben érkezzen. - A C in csak az első bithelyiérték összeadásakor aktív. Értékelése: - Ha az egybites teljes összeadó műveleti ideje t, akkor az n-bites összeadási ideje: T=n t. Gyorsítás: - t: A lehető leggyorsabb kialakítást alkalmazzuk. - N: Az egybites teljes összeadók számát megtöbbszörözzük n-bites párhuzamos öszszeadóra. n-bites párhuzamos összeadó 4 bites párhuzamos összeadó tesztelése: I. eset: A 0101 C in =0; T=t B / 121

14 II. eset: A 0101 C in =1; T=n t B lépés 1110 C 0 =1 2. lépés 1100 C 1 =1 3. lépés 1000 C 2 =1 4. lépés 0000 C out =1 Értékelés: - Igen komoly beruházás árán (egy darab helyett n db egybites teljes összeadó) csupán hullámzó teljesítményt értünk el. Az ok: meg kell várni az átvitel terjedését. Az átvitel előrejelzéses összeadó (Carry Look-Ahead CLA) C out =A B+(A+B) C in A B G (Generate) A+B P (Propagate) Az egyes bithelyiértékeken keletkező átvitel függ - a bemenő operandusoktól és - a kívülről beérkező átviteltől, melyek előre ismertek, de nem függ az előző bithelyiértékeken keletkező átviteltől. Az egyes bithelyiértékeken keletkező átvitel: C i =G i +P i C i-1 C 0 =G 0 +P 0 C in C 1 =G 1 +P 1 C 0 =G 1 +P 1 G 0 +P 1 P 0 C in C 2 =G 2 +P 2 C 1 =G 2 +P 2 G 1 +P 2 P 1 G 0 +P 2 P 1 P 0 C in C 3 =G 3 +P 3 C 2 =G 3 +P 3 G 2 +P 3 P 2 G 1 +P 3 P 2 P 1 G 0 +P 3 P 2 P 1 P 0 C in Értékelése: ÉS kapuk sorozata: 1 fokozat Összekapcsolásuk egy vagy kapuval: 1 fokozat P és G meghatározásához egy vagy és egy és kapu kell:+1 fokozat 3 fokozat 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: 1. Katalógus áramkör egybites teljes összeadók + CLA 14 / 121

15 2. Az egybites teljes összeadókat helyettesítjük a P és a G meghatározásához szükséges kapukkal (vagy valamint és kapuk). A vagy kapu bemeneteinek száma technológiai korlátba ütközik, ezért max. 8 bithelyiértékre alakítható ki a CLA bites megoldás: A CLA-k között az átvitel sorosan terjed 4. A CLA-khoz is hozzárendelünk egy CLA-t SzA7. Az aritmetikai egységek felépítése II. (a fixpontos szorzás algoritmusai és gyorsítási lehetőségek) Hagyományos szorzás: Algoritmizált változat: felveszünk egy gyűjtőt, amit nullázunk zel szorozzuk zal szorozzuk /100-zal való szorzás helyett léptetés: Konklúzió (decimális számoknál): 39 Az összeadási ciklus annyiszor fut le, 0039 ahány helyiértékből áll a szorzó / 121

16 A bináris szorzás sajátosságai: - A bináris szám hossza Példa Decimális szám helyiértékeinek száma Bináris szám helyiértékeinek száma Konklúzió: - A bináris szám hosszabb, mint a decimális, ezért a ciklus többször fut le. - A szorzat hossza A decimális helyiértékek száma Általánosítva A m B n X max m+n Példa: A szorzó és a szorzandó egy-egy regiszterben helyezkedik el, ezért az eredmény két regiszterben képződik. Példa: Legyen egy regiszterünk három helyiértékű, a szorzat kisebb helyiértékei keletkeznek a szorzó helyén: eredmény A bináris szorzás gyorsítása: - Bitcsoportokkal való szorzás: A szorzó helyiértékeit nem egyesével, hanem csoportokban kezeljük, így a csoportokat léptethetjük, ami gyorsabb. Pl.: kettes csoportokban: 00 kettőt léptetünk balra. 01 a gyűjtőhöz hozzáadjuk a szorzandó egyszeresét és kettőt léptetünk balra. 10 a gyűjtőhöz hozzáadjuk a szorzandó kétszeresét és kettőt léptetünk balra. 11 a gyűjtőhöz hozzáadjuk a szorzandó háromszorosát és kettőt léptetünk balra. Példa: 7 9 = B = 63 D Segédszámítás: a szorzandó kétszerese: A: összeadással B: léptetéssel 16 / 121

17 - Booth féle algoritmus: - Bináris számok esetén az összeadási ciklus annyiszor fut le, ahány egyes van a szorzóban (nulla esetén csak léptetünk). - A szorzóban lévő egyesek számának csökkentése a cél. Példa: 62-vel kell szorozni: 62= B 5 db összeadás. Helyette: 64= B 1 db összeadás Összesen 3 db művelet, 40%-os 2= B 1 db összeadás időmegtakarítás, pl.: mai processzorok 1 db kivonás mindegyike. SzA8. Az aritmetikai egységek felépítése III. (a fixpontos osztás algoritmusai; a fixpontos multimédia (a raszteres képfeldolgozás és a hangfeldolgozás) probléma-felvetése és megoldása) Osztás: X=A/B Hagyományos osztás: 150/ I Konklúzió: Minden kivonás előtt 48 komparálunk (összehasonlítunk), ezért lassú. 102 II 48 3,1 54 III I I II Visszatérés a nullán át csak az előjel flag-et vizsgálva: I II 48 6 III kiírja a gyűjtőt (3,) +48 hozzáadja a maradékhoz az osztót ( 42+48) 60 tízszerezi (6 10=60) és folytatja kiírja a gyűjtőt (,1) / 121

18 Itt minden kivonás automatikus (nincs komparálás, ami lassú). Mivel nem kell minden kivonás előtt komparálni, csak a gyors előjel flag vizsgálatot végezzük, a két felesleges művelet (hozzáadás +48 és szorzás) ellenére gyorsabb. Visszatérés nélküli osztás: 11/6 11 I 1, lépés kiírja a gyűjtőt lépés szorozza 10-zel lépés I 6 14 II 6 8 III lépés lépés Fixpontos multimédia feldolgozás A, Hangfeldolgozás: A probléma felvetése: - analóg jel - digitális jelfeldolgozásához digitalizálni kell analóg digitális (A-D) 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ányunk minimális és maximális értéket. - 8 bit 256 pontos felbontás - 16 bit pontos felbontás (a mai gyakorlat) 18 / 121

19 Mintavétel: - Példán keresztül: Egy 50kHz-es mintavétel azt jelenti, hogy másodpercenként 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 Egy másodperc hanganyag tárolási igénye audio CD, 16 bites felbontás, sztereó esetén: minta 2 byte felbontás 2 a sztereó miatt = byte/sec ~ 170 kbyte/sec - Percenként: ~ 10Mbyte/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ók le. - A képeket digitalizálnunk kell. Felbontás: - A képeket képpontokra (pixel) bontjuk. Minél sűrűbb a rácsszerkezet, annál jobb minőségű képet kapunk a digitalizálás során. Minél kisebb egy pixel, annál jobb a leképezés. Pl.: ; Pixelek 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.: 000 0, 001 1, A pixelek lehetséges értékei: - 1 bit: fekete-fehér, sötét-világos - 1 byte: 256 féle színt írhatunk le - 2 byte: féle szín (high-color) - 3 byte: 2 24 féle szín (true-color) (az emberi szem ennyit nem tud megkülönböztetni, azért jó a sok szín, mert a számítógép ezt is tudja értelmezni) - 4 byte: a negyedik byte az úgynevezett alfa csatorna, az effektek jelzésére szolgál (pl.: átlátszóság mértéke) 19 / 121

20 Egy kép tárolásához szükséges memóriaterület: egy byte két byte byte byte ,3 Mbyte 2.6 Mbyte A képfeldolgozás feladata: Nagy tömegű fixpontos adat tárolása, továbbítása, feldolgozása. Megoldás: - Tárolás, továbbítás hatékony tömörítéssel. - Feldolgozás: - Probléma: a 3 perces számot 3 perc alatt le kell tudni játszani - Hagyományos feldolgozás: pl. 2 kép összeadása a as felbontás mellett 1. Az 1. kép 1. byte-ját betöltjük az AC-ba. 2. A 2. kép 1. byte-ját hozzáadjuk az AC-hoz, az eredmény az AC-ban keletkezik. 3. Az AC tartalmát lementjük az eredmény memóriaterületre. Ez a ciklus szor fut le. (minden bájtra) - Megoldás SIMD módszerrel (single instruction, multiple data): Több adattal ugyanazt az utasítást hajtja végre, ~ 8-szoros gyorsítást eredményez, szer fut le a ciklus. A +B X = = = = = = = = 8 db - A gyakorlatban kétféle megoldás: - multimédia segédprocesszor - az általános célú processzorba beleintegrálják a multimédia feldolgozó egységét. - Az Intel MMX kiterjeszés: a) 1997-ben jelent meg b) Matrix Math Extension (Multimedia Extention) c) Logikai architektúra: 1. Pakolt adattípusok bevezetése a. Ezek mindegyike 64 bites, ami megegyezik a processzor belső sínjének szélességével. b. Fajtái: pakolt byte: 8 db 8 bites = 64 bit, pakolt félszó: 4 db 16 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 új adattípushoz. 20 / 121

21 d) Fizikai architektúra: 1. Az Intel nem akart új regisztereket bevezetni az új adattípusokhoz, hanem a 80 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 2-re növelték, így a ciklusok száma re csökkent. SzA9. Az aritmetikai egységek felépítése IV. (a lebegőpontos algebrai műveletek és megvalósításuk. A lebegőpontos multimédia (vektoros képfeldolgozás) probléma-felvetése és megoldása) Lebegőpontos műveletek Összeadás: X=A+B Példa: 0, Közös kitevőre kell hozni, a mantisszában a A= m A r ka +0, törtpontot ciklikusan léptetetem jobbra/balra. B= m B r kb 0, , , Mantissza vizsgálata, majd szükség esetén 0, normalizálása. Bonyolultabb, mint a fixpontos. Algoritmus: 1. A kitevők megvizsgálása: csak azonos kitevőjű számok mantisszái adhatók össze. 2. Amennyiben a kitevő eltérő, akkor a kisebb kitevőjű szám mantisszájában a törtpontot jobbra léptetjük és a kitevőt inkrementá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áit. 4. Szükség esetén normalizálunk. Szorzás: X=A B=m A m B r ka+kb Algoritmus: A mantisszákat összeszorozzuk, a karakterisztikákat pedig összeadjuk. Osztás: X=A/B=m A /m B r ka-kb Algoritmus: A mantisszákat elosztjuk, a karakterisztikákat pedig kivonjuk egymásból. Megvalósítás: Univerzális műveletvégző - az ALU parciálásával (részekre bontásával) karakterisztika mantissza fixpontos ALU Ez egy kicsit bonyolultabb vezérléssel megoldható. 21 / 121

22 - Szervezési módosítással a) Mind a mantisszát, mind a karakterisztikát külön-külön regiszterekben helyezzük el. b) Egymás után elvégezzük a mantissza és a karakterisztika műveleteket. c) Az eredményt pedig az egyik regiszterben összevonjuk. Dedikált műveletvégző adatsín Karakterisztika egység Mantissza egység visszacsatolás vezérlés Vezérlő Következtetések: - Míg a mantissza egységnek ismernie kell a szorzást és osztást is, a karakterisztika egységnek elegendő az összeadást és a kivonást ismernie. - Párhuzamosan lehet végezni a karakterisztika és a mantissza műveleteket. - A szűk keresztmetszetet a mantissza egység jelenti (a szorzás, osztás miatt), mivel a karakterisztika egység az összeadást és kivonást gyorsan el tudja végezni. A gyorsítást a mantissza egységnél kell végezni. Lebegőpontos, vektorgrafikus multimédia műveletek: - Az egyenesekkel és görbékkel határolt objektumok geometriai jellemzőikkel leírhatók. - Elegendő a geometriai jellemzők tárolása. Például: 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. Jellemzők: - 2D: - Egy kép igen sok objektumra (sokszögre, háromszögre) bontható egy átlagos kép objektumainak száma ~ Miután a számítógép a geometriai jellemzők alapján meghatározza a ~20000 objektumot, a színek valósághűbb átmenete érdekében egy úgynevezett textúrát alkalmaz. A megoldandó feladat: - Viszonylag kevés lebegőpontos adaton - sok műveletet hajtunk végre. 22 / 121

23 - 3D: - Egy harmadik dimenzió kerül hozzáadásra. a) Biztosítani kell a párhuzamosoknak a végtelenben való találkozását. 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ávolabbiak kékesebbek és elmosódottabbak. - Sok 3D film készül, ahol minimum 15 képet kell vetíteni másodpercenként annak érdekében, hogy folyamatosnak láthassuk. - Pl.: képenként objektummal számolva = 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 az Intel processzoroknál: : MMX2, azaz a KNI (Katmai New Instruction) - a megoldás: a SIMD elv (Single Instruction Multiple Data) óta először új regisztereket vezetett be az Intel: 8 db 128 bites regisztert. - Formátumok: a) 4 db 1-szeres pontosságú vagy b) 2 db 2-szeres pontosságú számon hajt végre egy időben műveletet: = = = = - 70 db új utasítást vezettek be %-osan megfelel az IEEE 754-es 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ásokhoz 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. 23 / 121

24 SzA10. A vezérlőegység (az áramköri vezérlőegység és a mikrovezérlő jellemzőinek szembeállítása. Az áramköri vezérlőegység megvalósítása és működése) - Centralizált vagy szekvenciális vezérlés: a) Huzalozott vezérlés : első elektronikus számítógép b) Mikroprogramozott vezérlés : Wilkes : CDC Decentralizált vagy párhuzamos vezérlés: a) Szuperskalár : IBM 360/91 b) Futószalag. Huzalozott vagy áramköri vezérlés Hátrányai: - Az ember számára nehézen áttekinthető. - Nehézkesen módosítható. Előnye: - Gyors. Tervezése: - igazságtábla - logikai függvények - azonos átalakítások a következő célfüggvényekkel: a) az elemek számának minimalizálása b) a végrehajtási idő minimalizálása - megvalósítás Megvalósítás: 24 / 121

25 Elv: - Egy forrásregiszterből - módosító áramkörökön keresztül - egy 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ártyán). - Vezérlőrész regiszterei (utasítás regiszter, PC). Módosító áramkörök: - Összeadó - Invertáló - Inkrementáló - Léptető Működése: - A forrásregiszter kimenetét rákapuzzuk 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, ö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ési pont van, amit vezérelni kell. Mikroprogramozott vezérlés 1954: Maurice Wilkes (University of Cambridge). Cél: - Ember számára áttekinthetővé tenni a vezérlést. a) Mikroutasítások, melyek meghatározott vezérlővonalat, vagy -vonalakat aktiválnak. b) A gépi kódú utasítások végrehajtása mikroutasítások sorozatával érhető el. c) A hagyományos (Neumann-elvű) számítógépet tekinthetjük egy makroszá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á alakítani. a) A mikroprogramot tároló Control Memory-ban cserélhetjük, változtatjuk magát a mikroprogramot. Huzalozott kontra mikroprogramozott vezérlés: sebesség gyors mindig lassabb áttekinthetőség ember számára nehezen áttekinthető ember számára áttekinthető módosíthatóság merev, nehézkesen módosítható rugalmas 25 / 121

26 SzA11. Félvezető tárak (jellemzőik; csoportosításuk) Csoportosításuk: Félvezető memória-típusok írható-olvasható - RAM főképpen csak olvasható - CMOS (setup) csak olvasható - ROM (BIOS) DRAM (operatív tár) SRAM (gyorsító tár) A számítógépen belül a legelterjedtebb a RAM (Random Access Memory). Szó szerinti fordításban ez közvetlen elérésű tárat jelent, azonban ez a táblázatban szereplő valamennyi tárra vonatkozóan igaz, tehát nem egy egyedi jellemzőt tartalmazó elnevezés. Így inkább szabad fordításban írható-olvasható tárnak nevezhetjük. Ennek kétféle gyártási technológiája van. A memória típusa DRAM SRAM Jelleg írhatóolvasható írhatóolvasható csak olvasható ROM csak olvasható PROM főképpen EPROM csak olvasható EEPROM főképpen csak olvasható főképpen Flash csak olvasható CMOS főképpen csak olvasható Az adatok élettartama Írási idő 4-32 ms ns az áramforrás kikapcsolásáig végtelen különböző Olvasási idő ns A megengedett írási ciklusok száma végtelen ns ns végtelen 100 ns végtelen órák 100 ns végtelen végtelen pár másodperc kb. 1 másodperc/ bájt csak egyszer csak egyszer 100 ns sokszor 100 ns végtelen n. a. 100 ns a tápelem által történő táplálásig korlátozott számban korlátozott számban Törölhetőség programból, bájt szinten programból, blokkszinten nem lehetséges nem lehetséges ultraviola fénnyel, lapka-szinten programból, bájt szinten programból, blokk szinten n. a. n. a. sokszor programból A fontosabb félvezető memória-típusok és tulajdonságaik 26 / 121

27 A DRAM a Dynamic RAM, azaz a dinamikus RAM jelenti az alkalmazás során a nagyobb tárolási kapacitást. Fizikailag bitenként egy kondenzátort alkalmaznak benne, melynek feltöltött állapota jelenti az 1-et, és az ellenkező állapota pedig a 0-t. Sajnos a kondenzátor jellemző fizikai tulajdonsága, hogy az alkalmazott szigetelő tökéletlensége miatt idővel elveszíti töltését. Annak érdekében, hogy az adatvesztést megakadályozzuk, a tartalmát rendszeresen újra kell írni, azaz frissíteni kell. Ez a felhasználó számára teljesen észrevétlenül történik, az alkalmazott memória jellemzőitől függően 4-30 msec-onként. A DRAM viszonylag könnyen és olcsón gyártható, kis energia-fogyasztású, de például a processzorhoz képest viszonylag lassú. Hátránya, hogy a tápáram kikapcsolásával elveszíti tartalmát. A gyakorlatban ezt a memóriatípust alkalmazzák operatív memóriaként. Fast Page Mode DRAM 1, Cím-folytonos olvasás: egyszerre több bitet olvasunk a mátrixból, így a RAS jelet elég csak egyszer kiadni. ( ns). Nibble Mode FPM DRAM: 4 rekeszes RAM 1. az első olvasásnál rákerülnek a címek, a RAS és a vezérlőjel 2. a címek növelése az IC-n belül történik, nincs külső címzés. Mindez a CAShez szinkronizálva; ( ciklus). Ez akkor előny, ha a CPU 4 bájtos egységekben hívja le az adatot OPT-ból, és folyamatosan tudja fogadni az adatokat. Extended Data Out DRAM = EDORAM +1 kimenet bevezetése (tároló) a ncas visszabillenésének tárolására. A kimeneti adat érzékelését ehhez kötik: előbb indulhat a kiolvasás (egy ciklus megspórolása) ciklus Output Enable noe // nx = X negáltja Burst Extended Data Out DRAM = BEDO RAM Nincs szükség az oszlop vezérlőjelre, a címeket az IC-n belül generálja. Saját címszámlálóval és belső pipeline-nal rendelkezik. A bemenetén már megjelenik az új adat, amikor a kimenetére kerül az előző adat. ( ciklus). Synchronous DRAM = SDRAM Az olvasás a CPU vezérlőjeléhez van szinkronizálva, nem pedig a CAS-RAS-hoz ciklus. 1 SDRAM lapra 4db Bank (4*8 bit) Rambus DRAM teljesen új architektúra, több egymástól független memóriamodult tartalmaz rendkívül nagy belső cache-tárja van (1M-hoz 2K cache), NINCS nras, ncas helyette 1 lépésben kapja meg a címet blokkos az adatátvitel; blokk: 8db 256 bájt terjedelmű, adatszélesség: 8bit gyors blokkmozgatás, speciális illesztő-áramkör szükséges (rambus) nagyon drága, mert az eltérő technológia miatt más gyártósort igényel DDR SDRAM SDRAM esetén a művelet a felfutó élre van szinkronizálva, míg a DDR SDRAM esetén a lefutóra is. A belső memória lapokra van bontva: az egyik rekeszben adatforgalom, a másikba beolvasás. Nagyon gyors belső órajelgenerátor és pipeline. Kompatibilis a jelenlegi gyártási technikával. PC 2100: 2100 Mb/s / 266MHz / 7,5ns PC 2700: 2700 Mb/s / 333MHz / 6ns PC 3200: 3200 Mb/s / 400MHz / 5ns Összefoglalva: 27 / 121

28 DRAM FPM EDO BEDO SDRAM RDRAM DDR Aszinkron szinkron burst [ns] /10/7,5 4/3,3 7,5/6/5 [Mb/s] Az SRAM a Static RAM, azaz a statikus RAM jelenti a gyakorlatban a kicsi, de gyors memóriát. Ezt hagyományos flip-flop alkalmazásával készítik, így frissítést nem igényel (innen ered a neve is), s a tartalmát egészen addig megőrzi, amíg a tápáramforrás be van kapcsolva. A DRAM-hoz képest a gyártása nehezebb, az ára magasabb, s több áramot is fogyaszt. Ez utóbbi esetben nem annyira a magasabb fogyasztás jelent hátrányt, hanem inkább az, hogy nagyobb energia alakul át hőenergiává, aminek elvezetéséről gondoskodni kell. A sebessége viszont már közelebb áll a processzor sebességéhez. Ezért a számítógépen belül ezt a memória-típust alkalmazzák gyorsítótárként. A főképpen csak olvasható memóriák közé sorolható CMOS memóriát alkalmazzuk a PC-nk egyedivé alakítására, a beállítási (setup) adatok (a külső tárolók indítási sorrendje, a külső tárolók jellemzői, a memória mérete stb.) tárolására. A CMOS memória a számítógépben lévő elemmel táplálva alacsony feszültségszinten, igen csekély fogyasztás mellett a számítógép kikapcsolása után is képes a benne tárolt adatok megőrzésére, s üzemi feszültségszinten pedig azok módosítására is. A CMOS lapka az adattároló egységen túlmenően tartalmaz egy órát is, mely az elem táplálásával a számítógép kikapcsolása után is képes követni az idő múlását. A csak olvasható memóriából (ROM) töltődnek be az első programok, így az egyes részegységek működőképességét letesztelő programok valamint az alapvető beviteli-kiviteli műveletek (BIOS) programjai, s így bekapcsolásakor e memória-típus segítségével éled fel a számítógép. 28 / 121

29 SzA12. A megszakítási rendszer (fogalma; megszakítási okok; a megszakítás folyamata; az egy- és a többszintű megszakítási rendszer) A számítógépnek rugalmasan reagálnia kell a külvilág eseményeire. Erre a célra szolgál a számítógép megszakítási rendszere. A megszakítás bekövetkezésekor az éppen futó programról vezérlés ideiglenesen átadódik egy másik program számára, amely kiszolgálja a bekövetkezett eseményt. A megszakítást kiszolgáló program lefutása után pedig a megszakított program végrehajtása a következő utasításától kezdve folytatódik. Váratlan esemény aszinkron (teljesen reprodukálhatatlan) szinkron (bármikor reprodukálható, a program minden futásakor ugyanott következik be) várható pl. DMA nem várható pl. hardver hiba paritás hiba, áramkimaradás A megszakítások okai vagy forrásai: 1. Géphibák: - Az egyes eszközök valamilyen hibajavító kód segítségével ismerik fel a hibákat - A CPU regiszterei - Operatív tár - Adatátvitel - Energiaellátás hibái - Klimatizáció 2. I/O források: a perifériák megszakítás-kérő jelzései (CPU dobozon belül) 3. Külső források másik számítógép 4. Programozói források Utasítások végrehajtásakor keletkező megszakítások: Hiba, nem kért, váratlan (arch. specifikusak) o Memóriavédelem megsértése (saját részéről túlmutat) o Tárkapacitás túlcímzés (tényleges) o Címzési előírások megsértése o Aritmetikai és logikai műveletek miatti megszakítás (kivételek:tömbindextúlcímzés, 0-val való osztás, overflow) Szándékos o Rendszerhívások (pl. az Intel CPU-k overflow flag-je jelzi, ha túlcsordulás lépett fel. Az INTO utasítással egy megszakítás kérhető: korrekció.) Megszakítás-kiszolgálás 1. egy egység aktiválja az INTR. bemenetet 2. a CPU elfogadja ezt az INT kérést, ha megszakítható állapotban van megfelelő a prioritás nagysága a beérkezett megszakítás nincs maszkolva (letiltva) A 3 felt. teljesülése esetén INT elfogadva 29 / 121

30 3. minden utasítás-töréspontban a vezérlőegység megvizsgálja, hogy van-e megszakítás. Észleli, hogy van megszakítás. Az INTACK vezérlővonal aktiválásával jelzi a megszakítási kérés elfogadását, mire a megszakítást kérő deaktiválja az INTR vonalat 4. CPU elmenti a verembe az aktuális állapot információkat (PC, flag) automatikusan 5. a megszakított program adatterének mentése (regiszterkészlet) 6. a megszakítást igénylő azonosítása (ha egy INT-hez több egység is tartozik) 7. megszakítás kiszolgálása 8. az adattér visszaállítása 9. A CPU a kiszolgálás végeztével visszaküld egy nyugtát az egységnek, az pedig deaktiválja a jelet A megszakítás kiszolgálása után a megszakított program folytatódik, vagy nem (reset). Mindegyik INT-hez tarozik egy bit: a CPU ezeket vizsgálja, amikor fogadóképes. A megszakítást kérő azonosítása A legegyszerűbb lehetőség a megszakítások egyenkénti kiszolgálása, azok beérkezési sorrendjében. Hátránya, hogy a megszakítások kiszolgálása közben érkező megszakítást nem tudja kiszolgálni, így a halaszthatatlan kérelmek elveszhetnek. 1. Lekérdezéses (polling): Valamilyen sorrendben lekérdezzük az egységeket Hardveres úton: daisy chain Szoftveres úton: az operációs rendszer 2. Vektoros: A megszakítást kérő eszköz a kiszolgáló rutin kezdőcímét határozza meg a megszakítási vezérlő és a processzor számára. Több megszakítási vonal esetén minden eszköz saját megszakítást kérő vezetékkel rendelkezik, így a kérelem helye egyértelműen megállapítható. 30 / 121

31 Megszakítási rendszerek szintek szerint Egyszintű: Nincs lehetőség a kiszolgáló rutin felfüggesztésére egy újabb megszakítási kérelem által. A kiválasztó logika a kiszolgálás közben érkezett megszakítások közül a legmagasabb prioritású engedélyezett megszakítás-kérést engedélyezi. Az 1-es forrás szerinti kérés feldolgozása hosszabb ideig is eltarthat, viszont az 0-ás forrás megszakítás-kérése esetleg nem tűrhet ekkora halasztást. INT normál felh.-i szint t Többszintű: keresi a pillanatnyi CPU-szintnél magasabb prioritás-szintű engedélyezett megszakítás-kéréseket. Kiválasztja a legalacsonyabb prioritás-szintűt. PSW-csere esetén ez oly módon zajlik le, hogy a megszakított szint PSW-je Old PSW-ként tárolódik, a másik rekesz tartalma pedig New PSW-ként betöltődik a programállapot-regiszterbe. Az elfogadott megszakítás-kérés nyugtázódik. Ha nem talál az utolsó szintnél magasabb prioritású engedélyezett kérést, akkor megengedi a legutolsó New PSW-ben megjelölt utasítás végrehajtását Kompromisszum: az előző kettő ötvözése, azaz szinteket rendelnek a megszakítások egy-egy csoportjához t /a 0/a 1/a 2/a 2/b Szinten belül egyszintű, szintek között többszintű 1/a 0/a 2/a 2/a 2/b 2/b t 31 / 121

32 SzA13. A külső sínrendszer (fogalma; jellemzői; csoportosítása, a sínfoglalás (bus arbitration) módjai; az adatátvitel és felügyelete (szinkron, aszinkron)) Fogalma: - Műszaki: Olyan vezetékköteg, melynek minden egyes erén vagy csak a logikai 0-nak megfelelő 0 Volt, vagy csak a logikai 1-nek megfelelő +12, +5, +3.3, +2.8 Volt jelenhet meg. - Funkcionális: Olyan vezetékköteg, mely lehetővé teszi egyszerre n bit továbbítását a forrástól a célig. Ebben a kontextusban a sín fogalmába beleértjük a sín forgalmát vezérlő intelligenciát is. Jellemzői: - A vezetékek száma. - Napjainkban tipikusan megosztott eszköz: a) Minden vezeték egy időpillanatban 1 bitnyi információt továbbíthat b) Mindig csak egyetlen adó lehet, vevőoldalon lehet több eszköz is. - Regiszter tulajdonsággal rendelkezik. Értelmezett: r 1 r 0 úgy történik, hogy: databus r 0 r 1 databus Csoportosítás: - Átvitel iránya szerint: a) Szimplex: egyirányú. b) Duplex: egy időben egyirányú; kétirányú. c) Full-duplex: egy időben kétirányú (két vezeték van). d) Pl.: Egyirányú: órajel, reset, cím. Kétirányú: adat. - Az átvitel jellege szerint: a) Dedikált sín: 1. Jellemzői: Minden egységet minden egységgel összekötünk. Egysínes: (n (n 1)) /2 sín. Kétsínes: n (n 1) sín. 2. Előnyei: U 1 U 3 U 2 U 4 a. Gyors: minden egység minden egységgel párhuzamosan kommunikálhat. b. Megbízhatóság: amennyiben biztosított az infrastruktúra, akkor pl. az U 1 -U 2 közötti szakadás esetén a két egység továbbra is kommunikálhat U 3 vagy U 4 egységen keresztül. 3. Hátrányai: a. Drága. b. Újabb egységek csatlakoztatása bonyolult. c. Újabb csatlakozási felületek kialakítása bonyolult. d. Újabb csatlakozási felületek kialakítása technológiai nehézséget jelent. 32 / 121

33 b) Közös (shared) sín: 1. Jellemzője: Minden egység egyetlen közös sínen keresztül kommunikálhat. 2. Előnyei: U 1 U 2 U n a. Olcsóbb. (nem sokkal) b. A szabványos közös sín csatlakozási felületek miatt könnyű az újabb egységek csatlakoztatása. 3. Hátrányai: a. Lassúbb, mivel egyidejűleg csak egyetlen adó lehet a sínen, a többinek várnia kell a sín felszabadulására. b. Érzékeny a közös sínrendszer meghibásodására. c. A közös sínrendszer vezérlése bonyolult (nem olcsó). - Funkcionális csoportosítás: a) Címsín: 1. Feladata: Az egységek (pl.: hálókártya) illetve egységrészek (pl.: memóriacím) azonosítása. 2. Fejlődése az Intel esetében: 20 bit vezérlő vezetékek 20 bit v. v. 4 bit v. v. 20 bit v. v. 4 bit v. v. 8 bit v. v. 20 bitnél 1MB-ot tudunk megcímezni, 24 bitnél már 16MB-ot, 32 bitnél 4GB-ot. Napjainkban is 32 bit a címzési lehetőség. 3. A kompatibilitás megtartása nem eredményezett tiszta tervet. b) Adatsín: 1. Feladata: Adatok továbbítása. 2. Fejlődése: a vezetékes volt. b vezetékes volt. c vezetékes. 3. A kompatibilitás megtartása nem eredményezett tiszta tervet. c) Közös adat- és címvezeték: 1. Akkor alkalmazzák, amikor: a. vezetéket kívánnak megtakarítani, vagy b. a csatlakozó lábak számát szeretnék csökkenteni. 2. Külön vezérlővezetékkel kell jelezni, hogy mi van az adott pillanatban a sínen (cím vagy adat). 3. Akkor érdemes alkalmazni, ha blokkos átvitelt használunk. A blokk kezdőcíme átvitele után a többi cím inkrementálással megállapítható. 4. Időbeli multiplexelés elvén alapul. 5. Pl.: PCI. 33 / 121

34 CPU d) Vezérlővezetékek (sín): 1. Számuk tipikusan db. 2. Fajtái: a. Adatátvitel vezérlése: 1. R/W read/write: a processzor nézőpontjából mutatja az átvitel irányát. 2. B/W byte/word: hány bitet kell párhuzamosan átvinni. 3. A/D address/data: a közös vezetékeken cím vagy adat van-e. 4. AS address strobe: a címet felhelyeztük a sínre. 5. DS data strobe: az adatot felhelyeztük a sínre. 6. M/U memory/unit: a címvezetéken memóriacím van-e vagy egységcím. 7. RDY ready: kész. - Az összekapcsolt területek alapján: b. A megszakítások vezérlése: A megszakítások kérése és engedélyezése. c. A sínhasználattal kapcsolatos vezérlővezetékek: A sínhasználat kérése, engedélyezése, a sínfoglaltság jelzése. d. Egyéb: 1. CLCK órajel. 2. Reset kezdeti értékek visszaállítása. M 1 rendszersín M n Sínvezérlő I/O 1 bővítősín I/O n a) Rendszersín: 1. A rendszersín tipikusan gyorsabb, mint a bővítősín. 2. A rendszersín nehezen szabványosítható, mivel CPU közeli sajátosságok kihasználásával teljesítménye növelhető. 3. Elnevezések: a. Rendszersín: A rendszer adatforgalom itt zajlik. b. Memóriasín: Memóriablokkok összekapcsolása. c. Processzorsín: 1. A winchesteren tárolt adatokat a DMA vezérlő segítségével közvetlenül a memóriába visszük. 2. A processzor pedig a másodszintű gyorsítótárból dolgozik. 34 / 121

35 b) Bővítősín: 1. Feladata: az I/O egységek csatlakoztatása a processzor-memória kettőshöz. 2. Fejlődése: a. Kábelekkel egyedi módon csatlakoztatták a perifériákat. b. DEC első gépei sín-orientáltak voltak. Aljzatokat alakítottak ki tesztkészülékek csatlakoztatására. Megoldásaikat szerzői jogi védelem alá helyezték. c. 1976: az Altair tervezője kialakította az S-100-as bővítősín architektúrát, mely 100 db érintkező felületet biztosított. Ezt az IEEE szabványként fogadta el. d. 1981: IBM PC 3. Elnevezések: a. bővítősín b. I/O sín c. helyi sín A sínrendszer működése Megosztott sínrendszer esetén két fázisból áll: - A sínfoglalás (bus arbitration) ha két vagy több egység szeretne master lenni, akkor sínütemezésre van szükség, hogy a káoszt elkerüljük - A sínhasználat (bus timing) maga az adatátvitel folyamata Sínfoglalás: Soros sínfoglalás: - Hardver lekérdezéses (daisy chain gyermekláncfű). Előnyei: a) Kevés vezetéket igényel (olcsó) b) Elvben végtelen számú egységet tudunk csatlakoztatni Hátrányai: c) A prioritás hardveres úton szabályozott (merev) d) Az előrébb álló egységek elnyomhatják a hátrébb állókat e) Érzékeny a bus grant vonal meghibásodására 35 / 121

36 Működése: Amikor az ütemező egy sínkérést észlel, használati engedélyt ad ki oly módon, hogy beállítja a sínhasználat engedélyezése jelet. Ez sorban keresztülfut az összes egységen. Amikor az ütemezőhöz fizikailag legközelebbi eszköz meglátja az engedélyezést, ellenőrzi, hogy ő adta-e ki a kérést. Ha igen, akkor átveszi a sínt, és nem továbbítja az engedélyt a következő eszköznek. Az egységek távolsága egyben a prioritásukat is meghatározza. - Szoftver lekérdezéses (software polling). Előnyei: a) A prioritás szoftveres úton szabályozott (rugalmas) b) Kevésbé érzékeny a bus grant vonal meghibásodására Hátrányai: c) több vezérlővonal (drága) d) A csatlakoztatható egységek számát a bus grant vonalak száma korlátozza, példánkban maximum 2 3 =8 db Párhuzamos sínfoglaltság: a) Előnye: gyors b) Hátránya: még több vezérlővonalat igényel (még drágább), pl.: PCI. Rejtett sínfoglalás: - Előfeltétele: két, egymástól független hardver vezérelje a sínfoglalást és az adatátvitelt - Amíg az aktuális adatátvitel folyik, az alatt lehetőség van az adatsín következő használójának kiválasztására 36 / 121

37 Adatátvitel (bus timing) Szinkron adatátvitel - Fogalma: Az adatátvitel mind az adó, mind a vevő számára előre ismert időintervallumban történik - Óra-ütemadó: a) Mind az adó, mind a vevő közös forrásból kapja az órajelet (akkor alkalmazzák, ha kicsi a távolság az adó, és a vevő között) b) Mind az adónak, mind a vevőnek saját, de azonos frekvenciával járó óra-ütemadója van. Ezek időben elcsúszhatnak egymástól, ezért egy szinkronjel segítségével hangolják össze a működésüket Értékelése: - Előnye: olcsó, egyszerű a megvalósítása - Hátrány: Az előre ismert idő intervallum hosszát mindig a leglassúbb egység határozza meg ez visszafogja a gyors egységeket (ez kiküszöbölhető többszintű sínrendszer alkalmazásával, ahol átviteli-sebesség függő tartományonként csoportosítják az egységeket) A Bővítősínek fajtái: - Átviteli sebesség szerint (szinkron meghajtású sínek): a) Kompatibilitási vagy hagyományos sín (~ 5MB/s) b) Helyi sín, pl.: PCI (lehet 132 vagy 264 MB/s) c) AGP 1x (500 MB/s) - Tervezési szempontok szerint: a) Platformfüggő, pl.: ISA, EISA b) Platformfüggetlen, pl.: USB, SCSI, PCI. Aszinkron adatátvitel - Fogalma: Az előző elemi művelet befejeződése egyben jelzés a következő elemi művelet kezdetére. - Egyvezetékes (egy vezérlővezeték) a) Adó oldali vezérlés: Először az adat az adatsínre kerül, majd késleltetést alkalmazunk. Hátránya: Az adónak nincs visszacsatolása arról, hogy a vevő valóban elolvasta-e az adatsínre helyezett adatot. Lehet, hogy a vevő ki van kapcsolva. (Jobbra az alsó ábrán: Data; Data ready) b) Vevő oldali vezérlés: Ez biztonságosabb átvitelt jelent, mert a vevő az átvitel igénylésének pillanatában aktív, de továbbra sincs visszacsatolás az adat célba érkezéséről. (Jobbra az alsó ábrán: Data; Data request) 37 / 121

38 - Kétvezetékes átvitel (handshaking - kézfogás) a) Adó oldali vezérlés: az alsó ábrán Data, Data Ready, Data Acknowledge b) Vevő oldali vezérlés: az alsó ábrán Data, Data Request, Data Ready 38 / 121

39 SzA14. A processzor részvételével zajló I/O rendszer (a programozott I/O, a különálló I/O címtér és az I/O port; a memóriában leképezett I/O címtér; működése (feltétlen és feltételes)) I/O Rendszer Programozott I/O DMA A processzor közreműködésével A processzor működése nélkül Címzés Működés Fogalma, jellemzői Működése Különálló I/O címtér blokkos cikluslopásos feltételes feltétlen Programozott I/O Fogalma: minden egyes I/O művelethez a processzornak egy-egy utasítást kell végrehajtania Fajtái címtér szerint: Különálló I/O címtér. - Elve: A processzor két különálló címteret lát. - Jellemzői: a) A címsín szolgál: 1. az operatív tár, 2. és az I/O egység címzésére b) Létezik olyan vezérlővonal (memória / I/O) mely megmutatja, hogy az adott időpillanatban a címsínen memória vagy I/O cím található c) mivel két különálló címtérről van szó, ugyanaz a cím szerepelhet memóriacímként és I/O címként is. d) Pl.: Intel esetében az eszköz 16 biten címezhető meg (65536 féle I/O cím). 39 / 121

40 e) azon regisztereket, amelyeken keresztül a processzor a perifériákkal kommunikálhat, I/O portnak nevezzük, amely fizikailag a vezérlőkártyán helyezkedik el - Az I/O Port regiszterei: A különálló I/O címtér megvalósítása: a) Parancs (command) regiszter, amelybe a processzor írhatja a kívánságait a perifériákhoz b) Adat (data) regiszter 1. Data input regiszter: ebből olvassa a processzor a perifériától kapott adatokat 2. Data output regiszter: ebbe írja a processzor a periféria számára küldött adatokat c) Állapot (Status) regiszter: innen olvassa a processzor a periféria üzeneteit d) Az input, output regisztereket a mai gyakorlatban összevonják: parancs állapot regiszter, adat input-output regiszter. e) Napjainkban az I/O porton belül több regiszter is található, pl.: 1. I/O egység működőképességét jelző regiszter. 2. I/O egység típusát, konfigurációs jellemzőit tároló regiszter (plug & play) 3. a nagyobb teljesítményű, összetettebb I/O egységeknél több parancs-, adat-, és állapotregiszter lehetséges - Következmény: a) Különálló utasítások szolgálnak a memória-műveletekre (pl.: load/store), és b) Különálló utasítások szolgálnak az I/O műveletekre. Pl.: Intel esetében 1. inx: a processzor olvassa be az X című I/O port adatregiszterét az AC-ba outx: a processzor beírja az AC tartalmát az X című I/O port adatregiszterébe 40 / 121

41 - Értékelés: a) Előnyei: egyszerű, olcsó a megvalósítása b) Hátránya: a processzor részt vesz az I/O műveletekben szűk keresztmetszet c) az AC szűk keresztmetszetet jelent nagy tömegű I/O számára d) Pl.: Hálókártya (ISA), amely az IBM PC-nél különálló IO címtérrel rendelkezik e) Minden mai piacon lévő processzorban megtalálható A Memóriára leképzett I/O (Memory mapped I/O) Elve: Ezt látja a processzor Processzor Jellemzői: Megvalósítása: Ezt az I/O egység látja - A megosztás: a processzor memóriakezelő utasítással (load-store) éri el azt a közös memóriaterületet, amit a periféria is kezelhet - Ebben az esetben az I/O egység használhatja a rendszersínt nagyobb az átviteli sebesség Értékelése: - Jóval gyorsabb, mint a különálló I/O címtér (előny) - Minden I/O esetén a processzornak egy utasítást végre kell hajtania (hátrány) - Pl.: Az IBM PC-nél a képernyőkezelés Működése: Feltétlen átvitel: - A vevő mindig vételre kész állapotban van - Nem ellenőrizzük az átvitel sikerességét - Nincs szinkronizálás a vevő és az adó között. - Pl.: LED 41 / 121

42 Feltételes átvitel: - Lekérdezés (wait for flag) a) A processzor beírja a kívánságát az I/O port parancsregiszterébe b) A processzor kiolvassa az I/O egység állapotregiszterének tartalmát c) Amennyiben nem ready, akkor vissza a (b) pontra d) Amennyiben ready, akkor kiolvassa az I/O egység adott adatregiszterének tartalmát, majd beírja azt az akkumulátorba (AC) Értékelése: A processzor - I/O egység közti sebességkülönbség miatt a proceszszor akár több milliószor olvassa be feleslegesen az állapotregiszter tartalmát - Megszakításos: a) A processzor beírja a kívánságát az I/O egység parancsregiszterébe, majd elkezd mást csinálni b) Amikor az I/O egység begyűjtötte a perifériától a szükséges adatot az adatregiszterben: 1. Beállítja az állapot regiszter ready bitjét, és 2. Megszakításkérést küld a processzor felé c) A processzor a következő utasítás-töréspontban elkezdheti a megszakításkérés feldolgozását 1. Beolvassa az I/O egység állapotregiszterét 2. ha ott a ready bit be van állítva, akkor egy ennek megfelelő megszakítás-feldolgozó programot indít el; ez kiolvassa az I/O port adatregiszterét és tartalmát átviszi az AC-ba SzA15. A közvetlen memória-hozzáférés (DMA) (fogalma; megvalósítása; működése: blokkos és cikluslopásos üzemmód) Fogalma: nagy tömegű adat gyors periféria alkalmazásával történő átvitele, a processzor közreműködése nélkül Elve: Megvalósítása: 42 / 121

43 DC decrementer I/O AR I/O Address Register I/O DR I/O Data Register Működése: - a DMA vezérlő felprogramozása : programozott I/O-val átvisszük a processzorból a DMA vezérlőbe az átvitelt leíró alapinformációkat: a) A DC-be beírjuk az átviendő adategységek számát b) Az I/O AR-be beírjuk az átviendő memóriablokk kezdőcímét c) Az adatátviteli egysége (byte, félszó, szó) d) Az átvitel irányát e) A résztvevő periféria címét, és a DMA vezérlő címét f) Az átvitel módját blokkos vagy cikluslopásos módon - Blokkos vagy (burst) üzemmód (pl.: Winchester esetén memóriacíminkrementálás) a) Mihelyt a DMA vezérlő előkészítette az első átviendő adatelemet az I/O DR-ben, akkor egy DMA request jelzést küld a processzornak. Ezzel kéri a rendszersín használati jogát! b) A processzor DMA acknowledge jelzéssel lemond a rendszersín használati jogáról c) A DMA vezérlő beírja az I/O DR tartalmát az I/O AR által kijelölt memóriacímre, majd a DC értékét csökkenti, az I/O AR értékét növeli d) Ez a ciklus addig fut, míg a DC értéke nullára nem csökken - Cikluslopásos (cycle stealing) átvitel Értékelése: Míg az utasítás-töréspontban a megszakítás feldolgozással a processzorra további munka várhat, addig a DMA töréspontban a DMA vezérlő a processzor helyet dolgozhat. 43 / 121

44 SzA16. Az egyes alkotóelemek összerakása (egy hipotetikus számítógép tervezése és működése) Korlátaink jellemzők: - minden utasítás két byte hosszú (256 lehetséges cím): MK címrész 1 byte 1 byte - két egységből áll - Processzor - Memória - utasításkészlet: - Összeadó: ADD 100 AC:=AC+100. ADD [100] AC:=AC+Memo[100] //ez egy memóriahely - Inkrementálás AC:=AC+1. - Nullázás AC:=0; - Betöltés a regbe LOAD [100] AC:=Memo[100]. - Kiírás a memóriába STORE [100] Memo[100]:=AC. - Feltétlen ugrás JMP 120 PC:=120; PC tartalma: 100 LOAD[200] 102 ADD[201] 104 STORE[202] 106 JUMP 120 //azért kettesével növekszik mert 2 byte az utasításhossz I. Utasítás-lehívás (fetch) A PC mindig a következő végrehajtandó utasítás címét tartalmazza. Az utasítás lehívás minden utasítás esetén megegyezik. MAR PC MDR (MAR) IR MDR PC PC+1 44 / 121

45 II. Utasítás-végrehajtás (execution) - adatbehívás (load) DEC IR MAR IR MDR PC PC+1 DEC címrész - aritmetikai-logikai utasítás, pl. összeadás DEC IR MAR DEC címrész MDR (MAR) AC AC + MDR vagy AC AC MDR vagy AC AC * MDR vagy AC AC / MDR - adattárolás (store) DEC MAR MDR (MAR) - a feltételes ugrás DEC PC IR DEC címrész AC MDR IR DEC címrész SzA17. Számítógép architektúrák osztályozása (Flynn-féle, illetve korszerű osztályozás) Flynn féle csoportosítás a hatvanas évekből: o Értelmezett fogalmak: SI Single Instruction Stream: egyetlen vezérlő egyetlen utasításfolyamot bocsát ki MI Multiple Instruction Stream: a vezérlő több, egymástól elkülönülö folyamatot bocsát ki SD Single Data Stream: A műveletvégző egyetlen adatfolyamot hajt végre, dolgoz fel. MD Multiple Data Stream: A műveletvégzők több adatfolyamot dolgoz fel. o A fogalmak kombinációi: Az architektúrák: SISD: szekvenciális architektúra SIMD: multiple 3D feldolgozás MISD MIMD o Értékelése: Hátránya, hogy nem mutatja Sem a párhuzamosság forrását (adat) Sem pedig a szintjét (szál/utasítás) 45 / 121

46 Párhuzamos architektúrák korszerű csoportosítása Adatpárhuzamos Vektorprocesszorok Asszociatív és neurális processzorok SIMD Szisztolikus architketúrák Funkcionálisan párhuzamos Utasításszinten párhuzamos Szálszinten Folyamatszinten architektúrák párhuzamos párhuzamos Futószalag VLIW Szuperskalár (Very Long Instruction Word) Utasításszinten párhuzamos architektúrák (Instruction Level Parallelism ILP) Az ILP architektúrák fő fejlődési útja Neumann-féle szekvenciális architektúra 1950 Soros kibocsátás, soros végrehajtás Szekvenciális feldolgozás Egyetlen processzorban egyetlen, nem futószalagos végrehajtó egység Futószalagos (pipeline) processzorok 1985 Soros kibocsátás, párhuzamos végrehajtás Időbeli párhuzamosság Futószalagos processzor, több, nem futószalagos végrehajtó egységgel Szuperskalár processzorok 1990 Párhuzamos kibocsátás, párhuzamos végrehajtás Időbeli párhuzamosság, kibocsátásbeli párhuzamosság Több futószalagos végrehajtó egységet tartalmazó VLIW és szuperskalár processzorok Szuperskalár processzorok MM/3D kiegészítéssel 1994 Párhuzamos kibocsátás, párhuzamos végrehajtás, utasításokon belüli párhuzamosság (SIMD) Időbeli párhuzamosság, kibocsátásbeli párhuzamosság, utasításon belüli párhuzamosság MM/3D kiegészítéssel rendelkező szuperskalár processzorok Neumann-féle szekvenciális architektúra: soros kibocsátás és végrehajtás : Futószalag processzorok: Időbeli párhuzamosság 46 / 121

47 Megvalósítási technikái: - Futószalag (időbeli párhuzamosság) - Többszörözés (térbeli párhuzamosság) A A végrehajtó egység szakosodott, pl.: fixpontos / lebegőpontos A futószalag processzorok teljesítményét: - hatékony memória alrendszerrel (gyorsító tárak), és - hatékony ugrás előre jelzéssel juttatták el az ezen az úton elérhető teljesítmény határáig : Kibocsátásbeli párhuzamosság szuperskalár processzorok - A futószalagos végrehajtó egységeket többszörözték, tehát az időbeli párhuzamossághoz hozzáadódott a térbeli párhuzamosság - Előzmények: o Mivel a többszörözött futószalagelvű végrehajtóegységek óraciklusonként egynél több utasítást is képesek lettek végrehajtani, a soros kibocsátás szűk keresztmetszetet eredményezett. Ennek feloldására vezették be a párhuzamos kibocsátást - Fejlődési irányok: o Statikus ütemezésű VLIW processzorok (egyszerűbb) o Dinamikus ütemezésű szuperskalár processzorok (bonyolultabb) A szuperskalárok fejlődése - Első generációs szuperskalárok: o Közvetlen (nem pufferelt) utasítás-kibocsátás o Elágazásbecslés o Korszerű memória alrendszer - Második generációs szuperskalárok: o Pufferelt (közvetett) utasítás kibocsátás o Regiszter-átnevezés Ezzel az általános célú programok vonatkozásában kimerültek az ILP processzorokban rejlő teljesítménynövelési lehetőségek (ILP) : Utasításbeli párhuzamosság jellemzi: MM/3D kiterjesztés. - A SIMD elv alkalmazásával gyorsul a vektorgrafikus műveletvégzés 47 / 121

48 SzA18. Adatfüggőségek (fogalma, főbb fajtái, teljesítmény-korlátozó hatása) Az adatfüggőségek fogalma: Ha egy program két egymást követő utasítása ugyanazt a regiszter-, vagy memória operandust használja, kivéve, ha a közös operandus mindkét utasításban forrás operandus. Az adatfüggőség nyilvánvaló esete az, hogy a soron következő utasítás az előző utasítás eredményt használja forrás operandusként. Amíg egy processzor az utasításokat sorosan hajtja végre, az adatfüggőségek nem okoznak gondot. Más a helyzet, ha az utasításokat a processzor párhuzamosan dolgozza fel, mint ILP végrehajtásnál. Ilyenkor az adatfüggőségek észrevétele és megfelelő kezelése a processzor elsődleges feladatává válik. Az adatfüggőségek főbb fajtái: Adatfüggőség Jellege szerint Helye szerint Soros utasítás- Ciklusban Regiszter Memória Szekvenciákon Valós függőség (RAW) WAR Álfüggőség WAW RAW-függőség (írást követő olvasási függőség, true dependence). Valamely utasítás forrásoperandusza felhasználja a másik utasítás eredményét i1: load r1, a // r1 <=(a) i2: add r2,r1,r1 // r2 <=(r1)+(r1) Az i2 utasítás az r1 regisztert, mint forrást használja. Így az i2 utasítás mindaddig nem hajtható végre helyesen, míg az i1 utasítás nem hajtódik végre és eredménye nem áll rendelkezésre. Ezért i2 utasítás RAW-függőségben van az i1 utasítástól. A RAW függőségek fajtái Behívási függőség: a kívánt operandust előbb be kell olvasni (r1-be) ahhoz, hogy i2 végrehatható legyen. i1: load r1, a // r1<=(a) i2: add r2,r1,r1 // r2<=(r1)+(r1) Műveleti függőség: ha a keresett operandust a megelőző utasítás aritmetikai, logikai stb. műveletek eredményeként állítja elő. i1: mul r1, r4, r5 // r1<=(r4)*(r5) i2: add r2, r1, r1 // r2<=(r1)+(r1) WAR-függőség (olvasást követő írásfüggőség, anti dependence) Valamely utasítás célregisztere megegyezik az előző utasítás forrásregiszterével i1: mul r1, r2, r3 //r1<=(r2)*(r3) i2: add r2, r4, r5 //r2<=(r4)+(r5) 48 / 121

49 Ebben az esetben, az i2 utasítás az r2 regiszterbe ír, míg az i1 utasítás r2 tartalmát forrásoperandusként használja. Ha bármely okból i2 előbb hajtódik végre, mint i1, akkor r2 tartalmát i2 korábban írná át, mint ahogy azt i1 olvasná, és ez nyilvánvalóan hibát eredményezne. WAW-függőség (írást követő írásfüggőség, output dependence) Valamely utasítás célregisztere megegyezik az előző utasítás célregiszterével i1: mul r1,r2,r3 // r1<=(r2)*(r3) i2: add r1,r4,r5 // r1<=(r4)+(r5) A ciklusbeli adatfüggőség: Ciklusokban megjelenő függőségek. Akkor van, ha a ciklusmag valamely utasítása olyan értékre hivatkoznak, amely valamely előző ciklus eredménye. Fontos probléma, mivel a futásidőt döntően a ciklusok összideje adja ki. (80/20-as szabály). Kezelésük a compiler feladata. Pl. do i=2, n x(i)=a(i)*x(i-1)+b enddo Elsőrendű ciklusok Ha a ciklus az őt közvetlenül megelőző ciklus eredményét használja fel. Általános formája: X(i) = a(i) * X(i-1) + b(i) Teljesítmény-korlátozó hatása - valódi adatfüggőség (RAW): ki kell várni, amíg a szükséges adat elkészül. Nem lehet kiküszöbölni. - hamis adatfüggőség (WAR, WAW): csak az ugyanarra a tároló helyre hivatkozás miatti függőség, regiszter átnevezéssel megszüntethető. Valódi adatfüggőség esetén,a teljesítménycsökkenés nem kiküszöbölhető, de csökkenthető, részlegesen feloldható utasítás várakoztatással és eredmény előreküldéssel. SzA19. Vezérlésfüggőségek és teljesítmény korlátozó hatásuk csökkentése (vezérlésfüggőségek fogalma, teljesítmény korlátozó hatása és annak csökkentése, a feltétlen vezérlésátadás, a statikus és dinamikus elágazásbecslés, valamint a spekulatív elágazás-kezelés elve) Vezérlőfüggőség fogalma: Elágazáskor a processzor (ugrás esetén) nem az elágazás utasítás utáni utasítást olvassa be, dekódolja, stb. hanem az ugrás címén találhatót. Ehhez feltétlen ugrásnál is címet kell számítani, feltételes ugrás esetén pedig feltétel vizsgálatot is kell végezni. Mindez időbe telik és addig az egységek nem tudnak dolgozni (úgynevezett buborék keletkezik). Tehát itt is függ a feldolgozás az előző (elágazás) utasítástól. Feltétlen elágazás késleltetett ugrás: Probléma: MUL JMP címke 49 / 121

50 ADD címke SHL Mivel a JMP hatására feltétlen ugrás következik be, az ADD utasítás nem hajtódik végre. Nem az ADD hanem az SHL a következő (a JMP utáni) utasítás: - feleslegesen hívjuk le az ADD utasítást, sőt - veszélyeztetjük a regiszter-tartalmakat Kezelése: - utasításrés (buborék) segítségével - Kétfokozatú futószalag: 1 utasításrés - Négyfokozatú futószalag: 3 utasításrés. - n fokozatú futószalag: n-1 utasításrés (a futószalag miatt kell az n-1-edik eredmény a végeredményhez) - Statikusan történik, a compiler által o Egyszerű compiler: minden feltétlen ugrás után beszúr egy NOP-ot (kétfokozatú futószalag esetén) Értékelés: bár felesleges műveletet végzünk (egy ciklus), de már nem veszélyeztetjük a regiszter-tartalmat o Optimalizáló compiler: A compiler a JMP utasítás előtt adatmanipuláló utasításokkal kísérli meg feltölteni az utasításrést Pl.: JMP címke MUL ADD címke SHL Amennyiben az utasításrés mérete 1 akkor a feltöltés valószínűsége 85%, ha nagyobb, akkor az esély csökken Ezt a megoldást korai RISC processzorok alkalmazták Ezzel megszűnt a ciklus-veszteség is! Elágazások gyakorisága általános célú programokban 20-30%, tudományosoknál 5-10%. Feltételes elágazások gyakorisága általános célú programoknál 20%, tudományosnál 5-10%. Általános célú programok esetén a legtöbb vizsgálat meglepően alacsony gyorsítási lehetőséget mutat, értékek között, 2 körüli átlagértékkel. Tudományos programoknál a párhuzamos végrehajtásával elérhető gyorsítás mértéke valamivel nagyobb, közötti tartományokba esik, 2-4 közötti átlagértékkel. Ezeknek az eredményeknek az az oka, hogy a vezérlésfüggőségek erőteljesen behatárolták az utasítások párhuzamos végrehajtását. A feltételes elágazások alapblokkokra tagolják a programot, és a párhuzamosítás alapblokkonként külön-külön történik (alapblokk-ütemezés). Mivel az alapblokkok viszonylag rövidek (az ütemezéshez csak kisszámú utasítás áll rendelkezésre), az adódó gyorsítás mértéke is alacsony marad. Többirányú elágazás: egy feltételes elágazás esetén mindkét lehetséges útvonalat egyidejűleg követik a feltétel kiértékeléséig, majd a feltétel kiértékelése után a helytelennek bizonyult útvonalat elvetik, és a helyes útvonalon folytatják a program végrehajtását. 50 / 121

51 Spekulatív elágazáskezeléssel: A processzor minden függő feltételes elágazás esetén becslést végez a feltétel kimenetéről és az utasítások feldolgozását e becslésnek megfelelően vagy a soros vagy az elágazási ágon folytatja. A feltétel kiértékelése után a processzor ellenőrzi a becslést. Ha a becslés helyes volt érvényesíti a feltételes elágazást követően végrehajtott utasításokat és folytatja a feldolgozást. Ha a becslés hibás volt a feltételesen végrehajtott utasításokat törli és a végrehajtást a helyes ágon folytatja. A statikus módszer: a becslést a processzor a tárgykód valamely jellemzőjéből származtatja pl. műveleti kódból az elágazás irányából, vagy a fordító program által adott ajánlásból. A dinamikus módszer: az elágazás történetén alapul 1 bites eljárás: a processzor elágazásonként 1 bittel írja le az elágazás történetét. Ez jelzi hogy az elágazás a legutolsó végrehajtáskor bekövetkezet e vagy sem. 80/20-as szabály Ha az előző ugrás teljesült, akkor a következő is fog. 2 bites eljárás: ha az egyes elágazások leírásához több bit áll rendelkezésre hosszabb lesz az elágazás-történet és így a becslés várhatóan pontosabb lesz. A processzor 2 biten (telített számláló) 4 állapotú véges automata ként tartja nyilván a múltat: 1. 00: határozott soros folytatás (ugrás esetén 01, nem ugráskor 00 az új állapot) 2. 01: gyenge soros folytatás (ugrás esetén 10, nem ugráskor 00 az új állapot) 3. 10: gyenge elágazás (ugrás esetén 11, nem ugráskor 01 az új állapot) 4. 11: határozott elágazás (ugrás esetén 11, nem ugráskor 10 az új állapot) 5. Alapállapot az 11. SzA20. Szekvenciális konzisztencia (az utasítás-feldolgozás és a kivételkezelés soros konzisztenciája, a precíz megszakítás-kezelés) Szekvenciális konzisztencia Utasításfeldolgozás Szekvenciális konzisztenciája Kivételkezelés Szekvenciális konzisztenciája Utasítás-végrehajtás Memória-hozzáférés Kivétel-konzisztencia Szekvenciális konzisztenciája Konzisztenciája Memória-konzisztencia Processzor-konzisztencia Processzor-konzisztencia Probléma: MUL 51 / 121

52 ADD JZ (JMP ZERO) Ha nem figyelünk, akkor a MUL értékére reagál! - Soros feldolgozás esetén, amennyiben az ADD eredménye nulla, akkor ugrik. - Párhuzamos feldolgozás esetén várhatóan a MUL utasítás fejeződik be később, tehát biztosítani kell, hogy az ugrás továbbra is az ADD utasítás nulla eredménye esetén történjen Kivételek konzisztenciája Gyenge konzisztencia Erős konzisztencia Pontatlan megszakítás-kezelés Pontos megszakítás-kezelés Pontatlan megszakításkezelés: Probléma: MUL ADD JZ - Párhuzamos feldolgozás esetén várhatóan az ADD utasítás fejeződik be hamarabb, és lehet, hogy pl. túlcsordulással amennyiben ezt a processzor elfogadja, akkor az állapottere elveszti korrektséget, ami csak kiegészítő eljárásokkal lehet helyreállítani. Ennek oka, hogy a korábbi MUL utasítás még definiálatlan s így felborulhat a kivételkezelés soros konzisztenciája - Pl.: Power1 (1990) és Power 2 (1993) csak a lebegőpontos utasításoknál. Az Alpha processzorok viszont minden utasításnál Pontos megszakításkezelés - A processzor kizárólag az eredeti utasítás szekvenciának megfelelő sorrendben fogadja el a megszakításkéréseket - Ehhez általában átrendező-puffert használ, így a processzor csak akkor fogadja el a megszakításkérést, amikor az adott utasítást kiírjuk az átrendező-pufferből. Pl.: Az Intel processzorcsalád, és a mai processzorok 52 / 121

53 SzA21. Az utasítások időben párhuzamos feldolgozásának alapvető lehetőségei (prefetching, átlapolt utasítás végrehajtás, futószalag elvű feldolgozás, ebből adódó szűk keresztmetszetek (memória sávszélesség és elágazások) feloldása) Futószalagos feldolgozás: - Előfeltételei (két fokozatot figyelembe véve): o Két egymástól teljesen független hardver egységet kell kialakítani o Mindkét egység feldolgozási ideje megegyezik o Az egyik egység kimenete lesz a másik bemenete Időbeli párhuzamosság (átlapolás) Következtetés: Kellően nagy számú utasítás esetén, két hardveregység használva, elvben megduplázódik a feldolgozás sebessége - El Bontsuk négy részre az utasítás-feldolgozási ciklust: F Fetch D-S/O Decoding Source Operand E Execution W/B Write Back Ekkor elvben megnégyszereződik az utasítás-feldolgozás sebessége, de a teljesítmény növekedését a függőségek mérséklik! - Előlehívás: Az előző utasítás visszaírási fázisát és az aktuális utasítás lehívási fázisát párhuzamosítjuk o maximum egy óraciklus nyerhetünk, amit a függőségek mérsékelnek o Példa: A hatvanas évek nagyszámítógépeinek egy része A 8086-os mikroprocesszor - Csak a végrehajtás fázisban (futószalag-elvű kialakítás): o Példa: Nagyszámítógépek: a 60-as évek vektorprocesszoros gépei Mikroszámítógépek: ez a fázis kimaradt 53 / 121

54 - A teljes utasítás-feldolgozási fázisban o Maximum óraciklusonként tudunk feldolgozni egy utasítás, amit a függőségek mérsékelnek o Példa: Nagyszámítógépek (1960) Mikroszámítógépek: A futószalagos feldolgozás következményei - Memóriakezelés: o A memória lassabb, mint a processzor. Hagyományos, szekvenciális elvű 4 ciklusú utasítás: Négyfokozatú futószalag esetén: Míg a hagyományos szekvenciális feldolgozásnál a példánk esetében csak minden negyedik óraciklusban kell utasítást lehívni, addig 4 fokozatú futószalagnál már maximum óraciklusonként, amit a függőségek csökkenthetnek. o A memória-alrendszert gyorsításokkal egészítették ki o A gyorsítótárak a 80-as évek második felében terjedtek el robbanásszerűen, a futószalagos feldolgozás terjedésével párhuzamosan - Vezérlés-függőségek: o Az okozott teljesítmény-redukció mértéke: Feltétlen vezérlésátadás esetén az ugrási rés (buborék) mérete N-1, ahol N a futószalag fokozatainak száma Feltételes vezérlésátadás esetén ehhez hozzájön a feltétel kiértékelés, az ugrási cím számítása és a bonyolultabb dekódolás is o A teljesítmény-csökkenés mérséklése: A korai gépekben hardver-kiegészítéssel lehetővé tették, hogy a dekódolás végére előálljon az ugrási cím A korai RISC gépekben késleltetett ugrást alkalmaztak A CISC gépek esetén megjelent: A fix előrejelzés: A következő végrehajtandó utasítás mindig az ugrási címen helyezkedik el Az ugrási cím előáll a dekódolási szakasz végére, majd folytatják az utasítások lehívását az ugrási címet követően A feltételes vezérlés-átadásokban a feltételek kiértékelése az execution szakasz végén következett be: 54 / 121

55 o Az előrejelzés helyes volt s folytatódott az utasítások feldolgozása az elkezdett irányba o Hibás volt, ekkor az elkezdett utasításokat eldobták és elkezdték a feldolgozást a helyes irányba. Pl.: Feloldatlan feltételes vezérlési függőség: amikor a feltétel nagy késleltetésű (látenciájú) (szorzás, osztás) utasításra vonatkozik, ami nem hajtódik végre a feltételes vezérlésátadási utasítás execution szakaszának végére ezért blokkolódik a feldolgozás. Pl.: a=x/y if a=1 (várnia kell az előzőre) SzA22. A futószalag (pipeline) elvű utasítás-végrehajtás, futószalag processzorok (a futószalag elve; jellemzői; logikai és fizikai futószalagok kiváltott szűk keresztmetszetek és feloldásuk) Futószalag (pipeline) => Gyakorlati vonatkozás: Egyszerre n db készül! (t időközön- T egy termék elkészülésének időtartalma. t egy egység mennyi ideig van egy munkaállomáson ként egy termék) n futószalagon lévő egységek száma A futószalagos feldolgozás jellemzői 1. A fokozatok száma: A függőségek miatt sok utasítást kell eldobni! - Pl.: 1980, RISC I. kétfokozatú, 1982, RISC II háromfokozatú, napjainkban fokozat 2. Újrafeldolgozás Újrafeldolgozás nélkül: Újrafeldolgozással, pl.: szorzás, osztás esetén igen hosszú lenne, ha a részeredményeket műveletenként kimentenénk a regiszterekbe. Helyette a részeredményeket az E fokozat végéről visszavezetjük az E fokozat bemenetére. (elemi műveletek sorozata) 55 / 121

56 3. Operandus-előrehozás 4. Szinkron aszinkron: napjainkban szinkron az elterjedt A futószalag logikai felépítése 1. szint: A futószalagok funkcionális meghatározása pl.: 2. szint: az egyes fokozatok által végrehajtandó elemi műveletek pl.: Fetch MAR PC MDR (MAR) IR (MDR) PC PC+1 A futószalagok fizikai felépítése - általános fizikai felépítés es évek (itt jelenik meg a többszörözés): 56 / 121

57 - fizikai megvalósítás: o Univerzális futószalag: minden logikai futószalagot egyetlen fizikai futószalagon valósítunk meg, Pl.: RISC I o Master futószalag (Pentium I.): Két futószalag közül: Az egyik minden utasítás végrehajtására alkalmas, A másik csak az egyszerűbb utasítások végrehajtására képes o Dedikált futószalag, pl.: ProwerPC 604 FX összetett: szorzás, osztás. Képes az újrafeldolgozásra. Soros konzisztencia (CO): A konzisztencia biztosítja, hogy az utasítások az eredeti sorrendjüknek megfelelően kerüljenek kiírásra. CISC RISC futószalagok: A CISC futószalagok jellemzően hosszabbak: - A címszámító fokozat illetve, - A gyorsítótár-elérés miatt SzA23. Első generációs (keskeny) szuperskalár processzorok áttekintése(közvetlen kibocsátás, végrehajtási modelljük, kibocsátási szűk keresztmetszetük) Jellemzői: - Közvetlen (nem pufferelt) utasítás-kibocsátás. - Statikus elágazásbecslés: o A programkód jellemzői alapján történik az írás becslése o Pontosabb, mint a fix előrejelzés - A memória-alrendszer kétszintű gyorsítótárat tartalmaz: o L1: A processzorlapkán helyezkedik el Külön adat- és utasítás-gyorsítótár egyportos o L2: Külön lapkákon helyezkedik el Közös gyorsítótár az adatok és az utasítások számára A processzorsínre csatlakozik 57 / 121

58 Közvetlen utasítás-kibocsátás: Megvalósítása: Utasítás-puffer Működési alternatívák: - Az utasítások sorrendiségének tekintetében o Sorrendben történő kibocsátás: a függő utasítások blokkolják az utasításkibocsátást o Sorrenden kívül történő kibocsátás: a függő utasítások nem blokkolják az utasítás-kibocsátást - Az utasítás-ablak feltöltése: o Az utasításokat egyenként pótoljuk o Az utasítások ablak teljes kiürülése után az egészet pótoljuk Tipikus példa az első generációs szuperskalárra: - Sorrendben történő utasítás kibocsátás - Az utasítás-ablak teljes kiürülése után a teljes feltöltése - Az utasítás-ablak 3 db utasítást tartalma - Jelölés: Az i-edik ciklusban egyetlen utasítás tudunk kibocsátani, mert az i 2 blokkolja a további utasítás kibocsátást. Az i+1 ciklusban időközben feloldódott az i 2 függősége, ezért kibocsátható mind az i 2, mind pedig az i 3. Az utasítás-ablak ezáltal teljesen kiürül. Az i+2 cikusban teljesen feltöltjük az utasítás-ablakot, és két független utasítást tudunk kibocsátani. Az első generációs szuperskalár RISC processzor működési modellje 58 / 121

59 - Az utasítás feldolgozási rendszert alrendszerekre tudjuk bontani, és ezeket külön vizsgálhatjuk - Értelmezhetjük a rendszer átbocsátó-képességét (rátáját, szélességét) - A teljes utasítás-feldolgozási rendszer átbocsátási rátáját a legszűkebb keresztmetszetű alrendszer átbocsátási rátája határozza meg - Az egyes alkalmazások utasítás-mixe sajátos és távol áll az utasítás feldolgozásának szempontjából ideális utasítás-mixtől minden alkalmazásnak más az átbocsátási rátája Kibocsátási szűk keresztmetszet Kezeljük a: o Behívási függőségeket gyorsítótárakkal o A vezérlés-függőségeket statikus elágazás-becsléssel Az adatfüggőségek (a valódi és álfüggőségek) okoznak főképpen teljesítménycsökkenést o A tipikus példákból láthatjuk, hogy a 3 utasítás-szélességű ablakból nem mindig sikerül kibocsátani 3 utasítást, a függőségek miatt o A gyakorlatban: RISC esetén 2-3, CISC esetén 2 utasítás feldolgozása történik óraciklusonként o Tehát az első generációs szuperskalárokat keskeny szuperskalároknak nevezzük Jellemző megvalósítások: - Viszonylag általános célú 2 db futószalag (Pentium I) db dedikált futószalag (Alpha 21064) 59 / 121

60 SzA24. Második generációs (széles) szuperskalár processzorok áttekintése(a kibocsátási szűk keresztmetszet kiküszöbölése: dimnamikus utasítás-ütemezés és regiszter-átnevezés, végrehajtási modelljük, értékelésük) Jellemzői: - Dinamikus utasítás-ütemezés - Regiszter-átnevezés Dinamikus utasítás-ütemezés (részei): - Pufferelt utasítás-kibocsátás - Sorrenden kívüli utasítás-végrehajtás Megvalósítása: Működés: - Kibocsátási puffereket alakítottak ki - A kibocsátás során nem történik semmiféle függőség-ellenőrzés (adat, vezérlés, erőforrásfüggőséget sem) - A várakoztató-állomásokban addig tartózkodnak az utasítások, amíg függetlenné nem válnak - Minden óraciklusban ellenőrzésre kerül a várakoztató állomásokban levő összes utasítás függőség szempontjából, és az összes független utasítás kiküldésre kerül, mégpedig sorrenden kívül. - Az utasításablak több tucat utasítást tartalmaz rendkívül kiszélesedett, azaz eltűnt a kibocsátási szűk keresztmetszet 60 / 121

61 Regiszter-átnevezés: - Lényege: minden eredmény-regiszter átnevezésre kerül. Kezeli ennek következményeit is: o Amennyiben később forrásregiszterként hivatkozunk rá, akkor az átnevezési regisztert fogja használni o Amikor egy utasítás-feldolgozás a befejeződött, akkor átmásolja az átnevezési regiszter tartalmát az architekturális regisztertárba, és felszabadítja az átnevezés regisztert. o Hibás elágazásbecslés esetén az átnevezési regiszterek alapján történik a visszajátszás; kezeli a kivételeket is. - A második generációs szuperskalároknál jelent meg, pl.: PowerPC 603 (1993), PentiumPro (1995), Alpha (1998) A második generációs szuperskalár RISC gépek végrehajtási modellje Működése: - Az első rész feladata az utasításablak feltöltése - A forrás-operandusok lehívása architektúrától függően lehet: o kibocsátáshoz kötött vagy o kiküldéshez kötött - A kiküldés során a független utasításokat sorrenden kívül tölti ki - A végrehajtás során az átnevezési regiszterekbe kerülnek az eredmények - Visszaíráskor az eredmények az utasítások eredeti sorrendjében másolódnak át az átnevezési regiszterekből az architekturális regiszterekbe Sávszélesség: - Kibocsátás ráta: 4 utasítás / ciklus - Kiküldési ráta: 5-8 utasítás / ciklus - Végrehajtási ráta: még magasabb Oka: - Bizonyos végrehajtó egységek nem képesek minden ciklusban utasítást fogadni (a bonyolultabb utasítások miatt) - Az utasítás-mix az egyes alkalmazásoknál nem egyezik meg a végrehajtható egységek eloszlásával 61 / 121

62 CISC gépek: - A CISC processzorok belsejében RISC magot alakítottak ki - A CISC utasítások lefordítják RISC utasításokká - Egy CISC utasításból átlagosan 1,2-1,5 RISC utasítás keletkezik. Mivel a bonyolult CISC utasításokat elhagyták, ezért ezeket valahogy helyettesíteni kell. Pl.: for ciklus esetén (bonyolult utasítás): egy if, egy inkrementálás, egy goto és egy ciklus vége utasítás szükséges. - Óraciklusonként ~3 CISC utasítás kerül lehívásra, tehát 3 x (1,2-1,5), azaz ~4 db RISC utasítás kerül kibocsátásra Adatfolyam modell: - Mivel a függőségeket kezeljük csak műveleti és a behívási függőség feloldását kell kivárni - Mihelyt a bemenő operandusok rendelkezésre állnak, a kiküldés elvben bekövetkezhet (erőforrás-függőség lehetséges), s a végrehajtó egység azonnal működésbe lép (adatmeghajtott elv) SzA25. Harmadik generációs szuperskalár processzorok: az utasításon belüli párhuzamos végrehajtás áttekintése (három-operandusú utasítások, SIMD-utasítások, VLIW-architektúrák) Utasításon belüli párhuzamosság Duál-műveletes utasítások SIMD VLIW Multimédia (fixpontos) 3D (lebegőpontos) A logikai architektúra kiterjesztése Teljesen új logikai architektúra Duál műveletes utasítások: - Fogalma: egyetlen utasításban kettő darab művelet - Pl.: X=a*b+c (A szorzatok eredményét c-ben felgyűjtjük) LOAD/OP (Betöltés után azonnal elvégzi a műveletet is) - A 70-es években jelentek meg - Numerikus feldolgozásoknál használják, de az általános célúaknál nem jellemző SIMD: - Fogalma: egyetlen utasításban ugyanazon művelet több operanduson van értelmezve - Fajtái: Fixpontos: ~ 2-8-szoros gyorsítás Lebegőpontos: 2-4-szeres gyorsítás - Ez képezi a processzorok fejlődésének fő irányvonalát: ~ 1994-től - Sajátosságai: o A logikai architektúra módosítást igényel o Az L2 gyorsítótár felkerül a processzor lapkájára o A rendszer-architektúra is módosul: megjelenik az AGP (Accelerated Graphics Port) 62 / 121

63 VLIW: - Fogalma: egyetlen utasításban sok műveletet írunk elő - Korai VLIW-ek: o Igen hosszú utasítások, pl.: a TRACE VLIW processzor esetén: bites utasítások 7-28 műveletet tartalmaz o A statikus ütemezés során a compiler gondoskodik a függőségek feloldásáról o A compiler szoros kapcsolatban áll a fizikai architektúrával, pl.: ismernie kell a végrehajtó egységek számát, azok késleltetését, a behívási késleltetést, stb. o A 80-as évek első felében papíron, második felében a piacon is megjelentek (pl.: TRACE) o Gyorsan leállt a forgalmazásuk, mivel a compiler túlságosan kötődött a fizikai architektúrához - Mai VLIW-ek: o A compilerek fejlődtek, ezért a 90-es évek végén újra megjelentek o Szerverek piaca: INTEL Itanium: 6 db végrehajtó egységgel rendelkezik A szuperskalárok 4 db / ciklus feldolgozási rátáját kívánják a 6 db végrehajtó egységgel túlszárnyalni o Hordozható gépek piaca: a Transmeta cég processzorai: A statikus ütemezés egyszerűbb processzort eredményez kisebb áramfogyasztás (2W DVD-lejátszás közben!) Fajtái: 4 db végrehajtó egységgel 8 db végrehajtó egységgel 63 / 121

64 III. ILP processzorok kiemelt kérdések SzA26. Az ILP-processzorok teljesítményviszonyai (az abszolút teljesítmény összetevői, a fixpontos teljesítmény, a processzor hatékonyság és az órafrekvencia időbeni fejlődése a 2. generációs szuperskalárokig ill. azt követően) Az abszolút teljesítményt az egy másodperc alatt sikeresen végrehajtott utasítások száma jelenti: P ai = f c * IPC eff * [OPI] f c : IPC: OPI: órafrekvencia utasítások száma/ciklus műveletek száma/utasítás (csak SIMD) P = f c * 1/n CPI * n IL * n OPI * η n CPI : 2 lehívás közt eltelt idő átlaga (kibocsátás) n IL : párhuzamos kibocsátás tényezője n OPI : műveletek száma/utasítás (csak SIMD) η: spekulatív elágazásbecslésből adódó végrehajtás hatékonysága Az utóbbi 4 tényező az ISA és a mikroarchitektúra hatékonyságát jelenti. Az órajel technológiafüggő. A fixpontos teljesítmény fejlődése x86 Intel processzorok esetében: SPECint /12 * 386/16 Saturation P4/3200 * * ** Prescott (2M) * Prescott (1M) P4/3060 * * * * * * Northwood B P4/2400 P4/2800 P4/2000 P4/2200 P4/1500 * * P4/1700 PIII/600 ** * PIII/1000 PII/400 * * PIII/500 PII/300 PII/450 * * Pentium Pro/200 ~ 100*/10 years Pentium/200 * * * Pentium/133 Pentium/166 Pentium/100 * * Pentium/120 Pentium/66 * * 486-DX4/ /50 * * 486-DX2/66 486/33 * 486-DX2/50 * 486/25 * * 386/33 * 386/20 * 386/25 * /10 * /8 * 0.2 * 8088/ Year 64 / 121

65 Az Intel x86 processzorok órafrekvenciájának változása: f c (MHz) * 8088 * * 286 * Saturation Pentium 4 * * * * * * * * * ~100*/10years * * * Pentium III * * * * Pentium II * * ** * * Pentium Pentium Pro * * * 486-DX4 * ~10*/10years 486-DX2 * * * * * * * * * * Year Year of first volume shipment Az x86 processzorok hatékonyságának fejlődése (az előbbi 2 alapján): SPECint92/ f c Pentium Pro (2. gen. szuperscalars) ~ constant ~ 10x/ 10 years ~ Year 65 / 121

66 SzA27. Az ILP-processzorok hatékonysági kérdései (a hatékonyság forrásának kimerülése, a hatékonyság stagnálásának okai, kiváltott fejlődési főirányok) A hatékonyságot időrendben az alábbi tényezőkkel növelték: Szóhossz növelése: 8/16 bit 32 bit ( DX) Időbeli párhuzamosság bevezetése, növelése: 1. és 2. gen. futószalag processzorok (386 DX, 486 DX) Kibocsátási párhuzamosság bevezetése, növelése: 1. és 2. gen. szuperskalárok (Pentium) Összegezve tehát minden fejlődési lépcső a párhuzamosság egy dimenziójának bevezetéséből, a bevezetésből adódó feldolgozási szűk keresztmetszetek megszüntetése érdekében kiegészítő technikák kifejlesztéséből és alkalmazásából, valamint az adott dimenzióban rejlő párhuzamosság kimerüléséből áll. A 2. generációs szuperskalárokkal kezdődően általános célú alkalmazásokban a processzor hatékonyságának extenzív növelési forrásai kimerültek. Az ilyen utasításokban rejlő párhuzamosságot teljes mértékben kihasználták. A hatékonyság stagnált. A hatékonyság két tényezőjének javítása közül lehetett választani. A kiváltott 2 fejlődési főirány: 1. Az órajelfrekvencia erőteljes (~100* / 10 év) növelése. 2. Új ISA, mikroarchitektúra bevezetése: VLIW, EPIC SzA28. Az ILP-processzorok fejlődésének erőltetett ütemű órafrekvencia növelési szakasza, ennek következményei (a hatékonysági, disszipációs és skew problémák, kiváltott fejlesztési irányok) Általános célú alkalmazásokban a 2. generációs szuperskalárok kimerítették a lehetséges párhuzamosságot. Ettől kezdődően egészen az egyik fő fejlődési irányként a 2004-es telítettségi pontig az órajelet 10 évenként 100-szorosára növelték. Fokozatosan csökkent a vonalvastagság (évente 0.7-szeresére) és nőtt a futószalag hossza. Ennek hatásai: 1. RISC processzorok (MIPS R, Alpha, HP PA 8000, POWER PC) kiszorulása, hiszen már eleve magas órajelen működtek, nem lehetett ezt az ütemet tartani ezeknél 2. Fejlődési korlátok jelentek meg. Hatékonysági korlát: a processzor és a memória alrendszer közötti táguló sebességolló miatt. A memóriák relatív késleltetési ideje, relatív átviteli rátája és a processzorbusz sebessége mind hozzájárult ahhoz, hogy feldolgozási ciklus is kieshet. A memóriák frekvenciáját nem lehetett olyan mértékben növelni, mint a processzorokét. Ezt különféle kiegészítő technikákkal (L2 cache, FSB növelés, memória-alrendszer javítása) megpróbálták orvosolni, de csak átmeneti sikerrel. Egyre kevesebb teljesítménytöbblet jelentkezett az órajel drasztikus emelése mellett is. Disszipációs korlát: D = A * C * V * f c + V * I leak (aktív kapuk részaránya, a kapuk összesített kapacitása, tápfeszültség, órafrekvencia, zárt tranzisztoron átfolyó szivárgási áram). Mértékegysége W/cm 2. A korlát az egységnyi területen leadható hőmennyiségre vonatkozik. 66 / 121

67 D/die area (W/cm 2 ) * * 0.25μ Katmai Klamath * * * 0.35μ * * 0.25μ P54CS 0.35μ Deshutes * * * * * 0.35μ P54C 0.6μ P5 P6 0.8μ * 0.6μ * Tualatin * 0.18μ Coppermine 0.13μ * * * * * * Prescott 0.09μ Willamette 0.18μ * Northwood 0.13μ E korlát miatt előtérbe kerültek a disszipációt csökkentő technikák, az ISA hatékonyságának növelése. Háttérbe szorult az órafrekvencia növelése. Megjelent a VLIW/EPIC architektúra, mely teljesen új mikroarchitektúrát jelentett. Átmenetileg alkalmazták a magfeszültség csökkentését, a nem aktív feldolgozóegységek szüneteltetését illetve a forró pontok megkeresését és pihentetését, valamint a hatékonyabb hűtést lehetővé tevő BTX szabványú alaplapok bevezetését. Párhuzamos buszok frekvenciakorlátja: az ilyen buszoknál a nagy órafrekvenciák alkalmazásakor felléphet a skew, azaz egy-egy vezetékben eltérő idők alatt haladnak át a jelek az eltérő kapacitív jellemzők miatt. Az órejel növekedésével a jelmeredekségi eltérések, áthallások az impulzushoz viszonyítva egyre jelentősebbek. Ez szinkronizációs problémákhoz vezet. Átmeneti megoldásként a vezetékeket eltérő hosszúságuakra készítették el. Végleges megoldást azonban az új, soros buszok bevezetése jelentette: AMD Hypertransport busz, USB, SATA, SAS, PCI-Express. Ezek a soros buszok bitenként két vezetéket használva differenciális, kis amplitúdó váltású (néhány száz mv) jelátvitelt valósítanak meg. A jelentkező fejlesztési korlátok végső következménye egy ún. telítettségi állapot lett ben. Ekkor lépett előtérbe a TLP, azaz a szálszintű párhuzamosítás (SMT) illetve a többmagos processzorok használata (SMP): - a fejlesztések színtere az utasítás szintről a szálszintre tevődött át, - a hosszú futószalagokra alapozó magas órafrekvenciájú processzorokat leváltják a közepes (10-15) fokozatszámú, lassabb de hatékonyabb mikroarchitektúrájú többmagos processzorok és - a párhuzamos processzorbuszokat egyrészt a sebességkorlátok elérése miatt míg másrészt a párhuzamos periféria buszokat a ráfordítás csökkentése érdekében kiszorítják a gyors, egyszerűen skálázható soros buszok, - végül a nagy sávszélesség igényű videó alkalmazások ill. az Internet használat rohamos elterjedésével várható, hogy a hagyományos adatforgalmak kiszolgálására tervezett jelenlegi rendszerarchitektúrákban is alapvető változások következnek be a közeljövőben. f c (MHz) 67 / 121

68 SzA29. A VLIW (EPIC) architektúrák (értelmezésük, jellemző megvalósításuk, hatékonyságuk, fejlődésük) Teljesen új ISA-t és mikroarchitektúrát jelent. A processzorok hatékonyságának stagnálása által kiváltott egyik fejlődési főirány, mely a hatékonyság növelését célozta. A VLIW jelentése: very large instruction word, azaz igen hosszú utasításszó. Egy-egy részutasítás 32 bites, a teljes utasításhossz n*32 bit. Ideális esetben illetve valós esetben az alábbiak szerint alakul az utasítások párhuzamos kibocsátása: Az alábbi ábra szemlélteti a hagyományos szuperskalároktól eltérő működést. Szuperskalár feldolgozás elve VLIW feldolgozás elve utasítások függő utasítások független utasítások (statikus függőség kezelés) dinamikus függőség kezelés F E F E F E F E F E F E Processzor Processzor VLIW: Very Large Instruction Word Lényege, hogy egyetlen utasításban sok műveletet írunk elő. A korai VLIW-ekben (80-as évek) igen hosszú utasítások voltak ( bites utasításhossz, 7-28 művelet utasításonként). Párhuzamos utsaításkibocsátású architektúra, akárcsak a szuperskalároknál. A statikus ütemezés során a compiler gondoskodik a függőségek feloldásáról, tehát a végrehajtó egységekhez (10-30 db) már egymástól és időben átlapolva is független utasítások kerülnek. Ebből következik, hogy a compilernek ismernie kell a fizikai architektúrát (VE-k száma, késleltetés stb.), azonban kisebb komplexitásúak lettek a magok. A VLIW utasítások részleges kitöltöttsége további hátrány (rossz kihasználtságú tártér és sávszélesség). Emiatt csak elszigetelten jelentek meg a piacon: pl. Transmeta cég hordozható eszközei. Az EPIC (Explicitly Parallel Instruction Computer) elnevezés 1997-ben született meg, lényegében egy továbbfejlesztett VLIW-ről van szó, melyben a compiler expliciten támogatja a végrehajtást: elágazásbecslés használata, explicit cache utasítások. 68 / 121

69 Bekerült a SIMD feldolgozás, és DLP-ről (data level parallelism) beszélhetünk. Az új generációs VLIW-ek sorában a szerverpiacon elsőként 2001-ben az IA-64 architektúrájú Intel Itanium jelent meg. Hatékonyságuk és a magok fejlődése az alábbi ábrából látszik. SPECint_base2000/f c * Itanium bit FSB/400 MT/s * * 256K L2/9M L3/DDR K L2/6M L3/DDR 266 * * * 256K L2/3M L3/DDR Itanium 64-bit FSB/266 MT/s * 96K L2/4M dir. L3 * 96K L2/2M dir. L3 ~ ~ f c (MHz) Az adatpárhuzamos feldolgozás bevezetésével elérhető teljesítménynövekedés korlátai: 2. gen. szuperskalároknál az ILP kimerülése általános célú alkalmazásokban 3. gen. szuperskalároknál az ILP kimerülése a dedikált (MM, 3D) alkalmazásokban is A várakozás az volt, hogy 2002-re az Itanium processzorok nagymértékben átveszik az x86 architektúrától a piaci részesedést, 2004-ig pedig megvalósul a teljes átállás. Ez nem következett be, mert az AMD előállt az x86-64 architektúrával, mely a jelenlegivel kompatibilis volt, mégis hatékonyabb. Nem kellett újraírni az alkalmazásokat. SzA30. A szuperskalár processzorok tervezési tere (a tervezési tér főbb komponensei, értelmezésük, jellemző megvalósítások) Tervezési tér Utasítás lehívás Párhuzamos dekodolás Szuperskalár kibocsátás Párhuzamos végrehajtás Szekvenciális konzisztecia 1. Utasítás lehívás: feladata a következő utasítás címének átadása az utasítás cache-nek 2. Dekódolás: minden órajelben több utasítást bocsát ki egyszerre, ezért párhuzamos dekódolásra van szükség 3. Szuperskalár utasítás kibocsátás: Magasabb utasítás kibocsátási ráta nagyobb teljesítményt eredményez, de egyben erősíti a vezérlési és adatfüggőségek teljesítmény-visszafogó hatását is. Ennek mérséklésére különböző kiküldési politikákat (dispatch policy) alkalmaznak, mint például shelving, regiszter átnevezés, spekulatív elágazás kezelés. 4. Párhuzamos végrehajtás: a szuperskalár feldolgozás alapfeltétele. 5. Szekvenciális konzisztencia biztosítása: az utasítások párhuzamosan hajtódnak végre, de szekvenciális logika kell látszódjon kívülről (a programkód egy sorozata adja az elvárt eredményt). A kivételek kezelésénél is biztosítani kell. 69 / 121

70 I$ Utasítás cache IB Utasítás buffer D/F Dekódolás Függőség kezelés Programtér FX FX FP L/S Load/Store R Regiszter Szekvenciális konzisztencia M Memória Utasítások logikája szekvenciális Az utasítás lehívásakor az előlehívást alkalmazzák: az előző utasítás visszaírási fázisát és az aktuális utasítás lehívási fázisát párhuzamosítják HW támogatással. + PC I$ IB Utasítás lehívás elágazásokkal 70 / 121

71 + IFA nincs elágazás I$ IFA Instruction Fetch Address BTA Brench Target Address IB BTA Decode elágazás Feltételes elágazás: Csak a végrehajtási szakaszon értékelődik ki a feltétel. F D E W/B Feltétel kiértékelése BTA számítása A párhuzamos dekódolás során a processzor meghatározza az utasítások kezdetét és végét, az elődekódolás meghatározza, hol vannak az utasításon belül a prefix tagok, a kiegészítő utasításokat pedig hozzáfűzi az utasításhoz. Az utasításkibocsátás során lehet közvetlen (1.gen) vagy bufferelt (2. gen) kibocsátás. Ha rossz a stratégia, az kibocsátási blokkoláshoz vezet. Ezt feloldandó alkalmazzák: az utasítás várakoztatást (reservation station), a regiszter-átnevezést és a spekulatív elágazásbecslést. + F I F A R IIFA N Y I$ Branch prediction Branch fetch BTA IB Further processing 71 / 121

72 Az utasításkibocsátás tervezési tere: Utasítások kiküldési módja Kiküldési politika Kiküldési ráta Üres várakoztató állomás kezelése Az operandusok rendelkezésre állása megállapításának Kiküldési sorrend Döntési szabály Kiválasztási szabály módja Sorrendben történő kiküldés Részben sorrenden kívüli kiküldés Sorrenden kívüli kiküldés Kiküldési politika: milyen módon válasszuk ki az utasítást a végrehajtáshoz, és hogyan kezelje a kiküldési blokkolást. Kiküldési ráta: definiálja az egy ciklusban a várakozó pufferekből kiküldhető utasítások számát Operandusok rendelkezésre állásának megállapítási módja: az utasítások kiküldhetők-e járulékos késés nélkül vagy sem. Üres várakoztató puffer kezelése: el kell döntenünk, hogy egy üres várakozó állomás elkerülhető-e Kiküldési szabályok értelmezése: Kiválasztási szabály. Ez határozza meg, hogy a várakoztató pufferekben tárolt utasítások mikor minősülnek végrehajthatónak. Amennyiben a processzor fejlett utasítás-kibocsátást alkalmaz (regiszterátnevezés + spekulatív elágazás-kezelés) ennek eldöntése arra a vizsgálatra korlátozódik, hogy az utasítás forrásoperandusai rendelkezésre állnak-e. Döntési szabályra akkor van szükség, ha a továbbíthatónál több alkalmas utasítás áll rendelkezésre. Általánosságban elmondhatjuk, hogy ahány szabad vezérlőegységhez kapcsolódik egy várakoztató puffer, annyi végrehajtható utasítás előállítása jelent optimális működést ciklusonként, hiszen ekkor biztosítható az, hogy minden ciklusban, minden vezérlőegység valamilyen hasznos munkát végezzen. Ha ennél több végrehajtható utasítás szerepel a pufferben, akkor dönt a döntési szabály. A legtöbb processzor ilyenkor egy nagyon egyszerű döntést hoz: a legidősebb utasítást küldi ki. Kiküldési sorrend alternatívái: A kiküldési sorrend szabja meg azt, hogy egy nem végrehajtható utasítás megakadályozza-e a sorban következő végrehajtható utasítás vagy utasítások kiküldését. Ha sorrendben (in-order) küldi ki az utasításokat, egy nem végrehajtható utasítás a pufferben meggátolja a soron következő utasítást vagy utasításokat a kiküldésben, vagyis blokkolódás jön létre. Ez nyilván csökkenti a teljesítményt, ugyanakkor csökkenti a komplexitást is, mivel elegendő csupán a várakoztató puffer utolsó elemét leellenőrizni. Ha részben sorrenden kívül (partially out-of-order) küldi ki az utasítást, akkor kismértékű teljesítménynövekedés érhető el. Ez jelentheti azt is, hogy a sorrenden kívüli kiküldést csak bizonyos típusú vezérlőegységeknél alkalmazza, de azt is jelentheti, hogy csak egy nem kiküldhető utasítást tud átlépni. Például a Power2 csak a lebegőpontos utasításokat várakoztatja, és kiküldéskor csak egyetlen nem végrehajtható lebegőpontos utasítást tud átlépni. Ha sorrenden kívül (out-of-order) küldi ki az utasításokat, mely a leghatékonyabb eljárás egyike a három közül. Itt egy nem végrehajtható utasítás nem blokkolja a várakoztató pufferben sorban következő végrehajtható utasítások kiküldését. A legkorszerűbb processzorok ezt a 72 / 121

73 kiküldési módot alkalmazzák, bár az IBM360/91 is implementálta már. Ennek oka egyszerű: a mai architektúrák többnyire csoportos vagy központi várakoztató puffereket alkalmaznak, melyeknél több vezérlőegységhez egy várakoztató puffer kapcsolódik. Ilyenkor, ha a blokkoló sorrendben kiküldést alkalmazná a processzor, az jelentős teljesítménycsökkenéshez vezetne. Trendek és példák: Egyértelműen a sorrenden kívüli kiküldés felé mutat. A csoportos vagy központi várakoztató állomást használó processzoroknál ez szinte követelmény, különben rendkívüli teljesítménycsökkenés következne be. Sorrendi kiküldés: IBM Power1, PowerPC 603. Részben sorrendi kiküldés: IBM Power2, PowerPC 604. Sorrenden kívüli kiküldés: Pentium Pro, R A soros konzisztencia megvalósítását a Reorder Bufferrel (ROB) valósítják meg. Logikailag 2 koncentrikus körből áll, a külsőn vannak az utasítások azonosítói, a belsőn a végrehajtási állapotuk (kiküldve, végrehajtás alatt, végrehajtva). 2 mutató, egy beírási és egy kiírási vezérli a működést. Az egymást követő utasítások ROB-beli azonosítóit beírja a beírási pointer által mutatott helyhez. A kiírási pointernél történik a programállapot módosítása. Ez a pointer addig vár, amíg a soron következő utasítás állapota végrehajtott nem lesz. 73 / 121

74 SzA31. Szuperskalár processzorok dekódolási eljárásai I. (az eljárások áttekintése, az egyszerű dekódolás, az elődekódolás, RISC/CISC konverzióval bővített dekódolás) RISC CISC 4Byte/utasítás - nem lehet tudni, hogy hol kezdődik a következő utasítás - végig kell menni az egészen -utasítás hosszt felismerni 1. Straightforward parallel decoding. Az 1. generációs RISC szuperskalárok alkalmazták. Egyidőben 3 utasítást dekódolt különösebb vizsgálatok nélkül. 2. Predecoding. A 2. generációs szuperskalároktól használatos. Mivel sok függőséget kellett vizsgálni, gyorsítani kellett a dekódolást. A dekódolási feladatok egy részét a processzor már aközben végrehajtja, amikor az utasításokat az L2 cache-ből vagy a memóriából az L1 cache-be írja. Ennek szélessége jellemzően 128 vagy 256 bit ciklusonként. Az elődekóder 4-7 bitet fűz hozzá az utasításokhoz. Ebben kódolják például az utasítás típusát, erőforrás-igényét, elősegítve ezzel a dekódolást. 2-3 év alatt terjedt el, az AMD K8 is használta. 3. Decoding with CISC/RISC conversion. A CISC utasítássorozatot először belső utasításokra tördeli, ezt a RISC mag feldolgozza, végül visszalakítják az eredményt. A szekvenciális konzisztenciát biztosító ROB bevárja, amíg az 1 CISC egységet alkotó 3 RISC mindegyike kiszámítódik, és csak ekkor kerül sor a programtér módosítására. Megjelenése a 2. generációs szuperskalároktól. Két megközelítése van: Mikroutasítások: load, store, reg-reg, elemi utasítások (Intel PPRO), lásd SzA36. Makroutasítások: load vagy store + aritmetikai, logikai utasítások (AMD), lásd ábra. Kizáró jelleggel vagy a komplex dekóder működik, vagy a MikroROM. Végeredményben 3 makroutasítás jön ki. Ezek szélesebbek, mint 3 mikroutasítás. 74 / 121

75 4. Using a trace cache: Jellemzően az Intel P4-ben, vagyis egy harmadik generációs CISC rendszerben jelent meg. 5. Decoding with instruction grouping. Az Intel Core a CISC utasítások csoportosításával, míg a Power 4,5 a RISC utasítások csoportba foglalásával működik. SzA32. Szuperskalár processzorok dekódolási eljárásai II. (az eljárások áttekintése, trace-cachek, ill. utasítás csoportosítást használó eljárások) Trace cache: Lényege az a felismerés, hogy az utasítások kb. 80%-át a ciklusok végrehajtása jelenti, így azonos utasítások folyamatos lehívásával és dekódolásával felesleges műveleteket végzünk. Ötlet: a dekódolt utasítások tárolása, a ciklusok végrehajtásának gyorsítása ezek trace cache-ből történő közvetlen lehívásával. Így nem kell az ilyen utasításokat egyesével dekódolni. Utasítás csoportosítást használó eljárások: 1. RISC utasítások csoportosítása: Power4,5 Instruction groups Dispatch instruction groups in-order, forward individual instructions to the issue queues Issue queues Execute individual instructions ooo Execution units EU EU ROB Retire isntruction groups in-order, modify program state Retire Csoportképzési szabályok: - az első a legrégebbi (i0) - az ötödik csak elágazás lehet Ha ez nem így alakul, a közbenső utasításokat NOP-pal feltöltik. Csak 1 elágazás lehet 1 csoportban. Előnyei: - közbülső állapotok kezelése elmaradhat, ha az eseményeket csak csoportok végén (csoportok között) engedik meg - egyszerűbb szerkezet 75 / 121

76 2. CISC utasítások csoportosítása: Intel Pentium-M, Core Macro-op fusion: a dekóderek képesek 2 db x86 utasítás kombinálására bizonyos feltételek mellett. A speciális esetek kombinálhatók, egybe vonhatók: - compare & test utasítások + elágazások - x86 jump Ezáltal kb. 10%-kal kevesebb utasítással kell foglalkozni, és a sorrenden kívüli végrehajtás is hatékonyabb, mert az azonos méretű utasításablakba több utasítás fér el. SzA33. Szuperskalár processzorok elágazásbecslési eljárásai I. (utasítás gyakoriságok, növekvő futószalaghossz miatti elvárások, az elágazásbecslés alapkérdései; az elágazás irányának és címének becslése) A szuperskalár processzorok utasításainak gyakoriságai általános célú programokban dinamikusan, sztochasztikusan változnak az alábbi értékek körül (elméleti és futás közbeni): Fixpontos: ~40% Feltétlen elágazás 10%, feltételes elágazás 10-20% Elágazás: ~20% Fixpontos műveletek: 30-40% Load/Store: ~30-40% Store 10%, Load 20% Lebegőpontos: ~0-5% Lebegőpontos 0-5% Az elágazás 3-féle lehet: ugrás, átlépés, szökdécselés. Az órajel drasztikus növelése maga után vonta a futószalag-fokozatok számának emelkedését, másrészt a csíkszélesség csökkenését. Míg a Pentium 1-nél ez 5 volt, addig a Pentium Pro-nál 10-12, A pentium 4-nél 20, a P4 Prescottnál már 40. A legnagyobb órafrekvenciát a legnagyobb időigényű szakasz határozza meg. Tekintsünk egy relatíve hosszú futószalagot: F1 F2 D1 D2 E1 E2 Csak a végrehajtási fázisban dől el például a feltételes elágazások esetében, hogy valóban a szükséges utasítás irányban indul-e el a feldolgozás. Tévedés esetén 4 hosszú buborék keletkezik. A futószalag hosszának növekedésével egyenes arányban nő a hiba esetén eldobandó fokozatok száma, ezáltal a teljesítmény csökken. Erős igény jelentkezett az elágazásbecslés pontosságának növelésére. Az elágazásbecslés alapkérdései és tervezési tere az alábbi elemekből áll: - becslés az elágazás irányára - becslés az elágazás célcímére (BTA branch target address) - szubrutin-visszahívások becslése (RAS return address stack) - ciklusokban megjelenő elágazások becslése - speciális funkciók: pl. mi történjen, ha a becslés helytelen volt; hogyan kezeljük a többszörös elágazásokat 76 / 121

77 SzA34. Szuperskalár processzorok elágazásbecslési eljárásai II. (az elágazás irányának becslésére szolgáló lokális és globális eljárások áttekintése és részletezése) Elágazás irányának becslése Lokális Globális 2 level 1 level 2 level Shift regiszter GShare GSelect Statikus Dinamikus Compiler Mikroarchitektúra 1 bites 2 bites Lokális eljárásról beszélünk, ha a becslés csak az adott elágazásra vonatkozó információk alapján történik (1 szintes). Globális az eljárás, ha a programokban az elágazásokhoz több út is vezethet. Ekkor az úttól függően más-más lehet a becslés eredménye (2 szintes). Lokális becslés Statikus A programjellemzők alapján történik Dinamikus A becsléstörténet alapján határozza meg az elágazás irányát. (1 bites, 2 bites) Compiler Kódolja az utasításban. Compiler hints (utalások felülír, felülbírál) Mikroarchitektúra Vizsgálja az elágazás D (displacement) értékét If D<0 D>0 Vizsgálja az elágazás minőségét 1 bites 2 bites Utolsó végrehajtás eredményét tárolják a bitben. N N N Smith diagramm Telítéses számláló Y N Y Y Y Kezdőértéket kell neki adni 77 / 121

78 Statikus: Programjellemzők alapján, vagy a mikroarchitektúra bizonyos elemei alapján (pl. eltolás értéke alapján). Utóbbinál ha D > 0 nem ugrik, D < 0 esetén ugrik. A Pentium proceszszorok például ha dinamikus becslés nincs ennek értéke alapján döntenek. Compiler hints: Az utasítás 1 bitje ki van jelölve, és ennek értékétől függően ugrik. Ez általában magasabb prioritású a többinél, a többi eljárást felülírhatja. Ez is statikus. Dinamikus: az eddigi becsléstörténet alapján születik meg a döntés az adott szakaszban. 1 bites: az utolsó végrehajtás eredménye tárolódik, döntés ez alapján. 2 bites: Smith-diagram, telítéses számláló. Az utolsó 2 végrehajtás eredménye alapján döntés. Az MSB dönt: ha 1, ugrik, ha 0, nem ugrik. Megvalósításához ugrási címenként egy 4 bites számlálóra van szükség. Megvalósításuk: 2-level local branch prediction With a shared global history table for all patterns (Alpha 21264) With individual history tables for different patterns (Pentium Pro) IFA: IFA: Local BHT (e.g. 1K*10bit) Local BHT (e.g. 1K*3bit) Local BHT (e.g. 128*4bit) Local BHT e.g. 4-ways each A globális eljárások közül a shift-regiszter elvű, a G-Share és a G-Select ismeretesek. 78 / 121

79 Shift regiszteres: Adott egy shift regiszter, melyben az utoljára végrehajtott 8-10 elágazás eredménye található. Ezzel megcímezzük a BHT-t, ahol minden egyes mintához egy adott érték van rendelve. A BHT 2 bites értékének MSB-je dönt az ugrásról. Global history (shift register) BHT x Branch history G-Share: 1993 McFarling nevéhez kötődik. Eddig pusztán az eddigi elágazástörténet alapján történt döntés. Ezt most kombináljuk az utasításcím bizonyos bitjeivel, XOR alapján: Global history IFA } XOR BHT x Branch history 79 / 121

80 G-Select: A BHT-ben az IFA 4 bitjével jelölöm ki az oszlopot, a globális történet néhány bitjével pedig a sort. Global history BHT x Branch history IFA: Használják együtt a lokális- és globális becsléseket is. Amelyik többször ad helyes eredményt, azt fogják figyelembe venni (choice prediction). Akkor van egy úgynevezett best selection tábla is, melyet minden egyes elágazás után frissítenek az eredménnyel (hogy melyik adta a jó választ). SzA35. Szuperskalár processzorok elágazásbecslési eljárásai III. (az elágazási cím generálására szolgáló eljárások áttekintése és részletezése) Az elágazási címet háromféleképpen határozhatjuk meg: 1. Menet közben számítódik: UltraSparc, K6, Power A BTAC-ból (elágazási címpuffer) olvassa ki: PPro-P4, Power 3, K7-K8 (nincs buborék) 3. Az I$-ből (utasítás cache) olvassa ki: Alpha A BHT-ben azon elágazások címei találhatók, melyekbe már ugrottunk. Tipikus megoldás, hogy a BHT-t és a BTAC-t együttesen használják, a BHT-val megcímzik a BTAC-ot. Ha a BTAC BHT által mutatott címén a TAG benne van, akkor az ott lévő címre ugrik, különben szekvenciálisan megy tovább. Ha BHT értéke 1, törli a bejegyzést BTAC-ből. Ha 0, beírja a bejegyzést a BTAC-ba, ha az még nem szerepel benne. A BHT/BTAC táblák elérési módjai: 80 / 121

81 Indexelt: interferencia lép fel, mert több cím mutat ugyanarra a helyre, így kis táblák esetén a becslési pontosság csökken, viszont megvalósítása egyszerű. Nagy tábláknál ritka az ütközés. Pl. a Power 4 használja. Cache-szerű: nagyobb költségű a megvalósítás, de kevesebb az interferencia is, mivel többutas a tár. Pl. a Pentium Pro használja. Asszociatív hozzáférés: egyáltalán nincs interferencia, viszont nehéz megvalósítani. Pl. a PowerPC használja. Kiegészítő eljárások az elágazási cím becslési pontosságának javítására: 1. Backup use of static prediction: ha nem ad egyértelmű becslést az adott eljárás, egy statikus becslést használnak 2. Preemptive use of compiler hints: a nagyobb prioritás miatt a compiler hint felülbírálhatja az aktuális döntést 3. RAS: Return address stack. Függvényhívások visszatérési címének meghatározásához. Definiálnak egy stack-et, melybe beleírják a visszatérési címet. LIFO jellegű return cache. 4. Loop detection: ciklusokra. Eltárolják a ciklusok címét és azt, hogy hányadik iterációnál tart (count) 5. Indirect Branch Prediction: regiszterben lévő címekre. Nincs publikálva. Becslési eljárások kombinácíója Támogató mechanizmus (Pentium) Preemptive mechanizmus Választásos (best choice) eljárás Dedikált mechanizmus Alapeljárás (dinamikus) nem ad becslést, egy egyszerűbb (statikus) eljárást használnak. Alapeljárásra erőszakolt compiler hint A compiler elágazását veszi figyelembe elsődlegesen A processzor két eltérő eljárást használ és a jobbikat fogja használni Alpha 21254, Power 4 Bizonyos elágazás típusokra külön eljárás vonatkozik RETURN For loops Indirekt eljárások 81 / 121

82 SzA36. Reprezentatív szuperskalár mikroarchitektúrák I. (a Pentium Pro, Pentium 4 Willamette és Prescott, a Pentium M és a Core proceszszorok) Pentium Pro: 82 / 121

83 Pentium 4 Willamette és Prescott: Az Intel netburst architektúráján alapszik, melyre anno még azt jósolták, hogy 10 GHz-s tartományba is elérhet az órajele. Azóta tudjuk, hogy a disszipációs korlát miatt ez nem lehetséges. Az alacsonyabb (~1.5 GHz, nov.) órajelű változatok 20, a magasabb órajelű (~3 GHz) pedig 40 fokozatú futószalaggal rendelkeznek. FSB-jük 400-ra nőtt a korábbi 100,133-ról. 256Kbyte L2 cache-el rendelkeznek a desktop vonalban novemberétől, 3.06 GHz-től a Hyperthreading technológiát támogatja. A 64 bites utasításkészlet bár nem volt publikálva már ebben a processzorban is megtalálható, mert tranzisztorszáma az elviekben szükséges kétszerese (megegyezik a technológiát publikusan is támogató Northwood-éval). A Willamette a Celeron (low-end) vonal képviselője, on-die 128Kbyte L2 cache-el, 1.7 GHz órafrekvenciával. Lényegét tekintve a Prescott cache-tekintetében megfelezett társa. 1 darab HW dekódolója van, amit kiegészítettek 1 mikrokód-szekvencerrel. Trace cache-t is használ. A később kijött P4 670-es sorozat azonos FSB-vel, de 90 illetve 65 nm-es csíkszélességgel rendelkezik, és támogatják az XD/ED bitet (biztonság), az EM64T technológiát (AMD kompatilibis x86-64) és az Enhanced Intel Speed Stepping technológiát (terhelésfüggő teljesítményszabályozás). Egyes új modellek a VT virtualizációt is támogatják. 83 / 121

84 Pentium-M Yonah: Mikroarchitektúrája hasonlít a Pentium Pro-éra. A Pentium 3 továbbfejlesztése, új foglalattal. Futószalag-fokozatainak száma kb maggal forgalmazzák: Banias, Dothan és Yonah. Banias: 24.5 W TPD (thermal power dissipation). L1 cache: Kb, a P4 négyszerese. Lényegében vették a P4 buszát, és négyszeres L1, kétszeres L2 cache-el (1M) látták el. A P4-nél hatékonyabb és a disszipáció is jóval alacsonyabb a kisebb órajel miatt. Dothan: hatékonyság további növelése, 2M L2 cache-el, 21 W TPD-vel GHz órajel, FSB / 121

85 Yonah: 65 nm technológia. Centrino duo illetve solo néven árusítják. Az első kétmagos Pentium M a Centrino duo. Ennek két változata volt: low voltage, performance. SSE-t integrálták, az órafrekvenciát megnövelték. Új foglalata miatt nem lehetett 1 magos architektúrában elhelyezni. 2 GHz-en TPD-je 96 W. Intel Core: A Yonah-tól lényegében csak annyira különbözik, hogy 1-gyel több simple decoderrel rendelkezik és 7+ bejegyzést tud tárolni a mikroutasítás-pufferje. A sárgával jelölt részeken az utasítás már nem 3, hanem 4 mikroutasítás hosszúságú lehet. A Pentium 4-ből a 64 bites technológiát hozták át, és: - disszipációt csökkentő technikák alkalmazása - többmagos technológia többportos L2 cache - memóriaelérés hatékonyságának növelése 85 / 121

86 SzA37. Reprezentatív szuperskalár mikroarchitektúrák II. (az Athlon és a Hammer processzorok) Az Athlon (K7): Az FPU regiszterfájl összevont fájl. 3 címösszeadóval rendelkezik a Load/Store műveletekhez. 3 utas utasításdekódere van. Mind az adat-, mind az utasításcache 64 kbyte. A korábbiakhoz képest nagyobb órafrekvenciával rendelkezett és a futószalagja is több fokozatból állt. A direkt csatolt cache csak ekkor jelent meg, emiatt szükségszerűen Slot A foglalatba kellett helyezni. A 2000-ben megjelent Thunderbird-nél már on-die L2 cache volt, normál socketbe került, Mhz órajellel. Kisebb L2-vel rendelkező low-end társa a Spitfire kódnevet kapta. Mindkettő támogatja az Enhanced 3Dnow! technológiát. Az Athlon 64-nél az SSE-t átvették az Inteltől. 86 / 121

87 A Hammer: 2000-ben jelent meg az x86-64 ISA architektúra zászlóshajójaként: - 32 bites regisztereket 64 bitesre nyújtották - 64 bites adatformátumot vezettek be - Kompatibilis az x86 ISA-val A mag hatékonysága körülbelül megegyezik a Pentium M-ével. L1 utasítás- és adatcache-e 64 kbyte. A dekódolt utasításokat eltárolták a trace cache-ben a végrehajtás gyorsítása céljából. Órajele Ghz között mozog. Újdonságként ennél jelent meg a direkt csatolt architektúra: - a memóriavezérlést áthelyezték a chipre (on-board memory) - hypertransport busz megjelenése MHz-n futó soros busz. - multiprocesszoros környezet támogatása (Opteron): crossbar kapcsoló használata, 3x2 link definiálásával 87 / 121

88 A direkt csatolt architektúra előnyei: - gyorsabb memória-elérés, közel 20%-os megtakarítás a hozzáférési időben processzorból álló komplexum hatékonyan kialakítható - megoldja a memória-északi híd-magok közti szűk busz keresztmetszetet, a 2 mag között 1 GHz Hypertransport - a nagy sávszélességigényű komponensek jobban kapcsolódnak, mint az Intelnél Server/Workstation változata a SledgeHammer, mely magasabb órafrekvenciával (max 2.4 GHz) és új sockettel rendelkezik. 88 / 121

89 SzA38. Rendszerarchitektúrák I. (fejlődésük áttekintése, az egyes fejlődési mozzanatok bemutatása) A rendszerarchitektúra átfogja a mikro- és makroarchitektúrát illetve ezek környezetét mutatja be: processzormag, lapkakészlet, alaplap. A fejlődésük 3 párhuzamos vonal mentén folyt: - value PC-k, 2005-ig - desktop PC-k - szerver/munkaállomás 89 / 121

90 90 / 121

91 P Ppro PII PIII PIV Címbusz Adatbusz MPXBU DWA DWA QWA SD SD SD SD MPXBU: multiplexált buszhasználat DWA: Doubleword aligned QWA: Quadword aligned SD: SECDED for error protection (a +8 bit) SzA39. Rendszerarchitektúrák II. (a Pentium 4 asztali PC-k lapkakészleteinek áttekintése) A Pentium 4 asztali PC-k 2000 novemberétől 2005 májusáig terjedtek el. Port típusú rendszerarchitektúrával rendelkeznek. MCH: északi híd (memória-processzor közötti kapcsolat) ICH: déli híd (processzor-perifériák közötti kapcsolat) A lapkakészletek fejlődése során általánosságban elmondható, hogy mind újabb és újabb funkciók integrálása történt meg: video, audio, hálózat, diszkvezérlő. 11/02 AGP AGP 8x 5/03 SATA SATA 1.0a 5/03 PCI PCI-X PCI 2.3 PCI-X 2.2 2/04 PCI Express USB AC' 97 HDAI AC' USB /01 5/02 PCI Express 1.0a HDAI 6/04 6/ GB memória használata esetén még nem szükséges pufferelni a memóriát, ezen felül viszont már igen, így az ilyen nagy memóriát kezelni képes lapkakészleteknek erről gondoskodniuk kell. A fejlődés 2 fő irány mentén folyt: - value PCs (Celeron) - desktop PCs 91 / 121

92 A value line fejlődési folyamata: P4 Celeron FSB SDRAM Max. 2/4 GB 1 MCH SDRAM VGA interface PC 133, DDR 200/266/333/400 AGP/4X/8X2 (845G/GL/GV, 865G/ 3 SDRAM GV/P/PE, 910GL) interface SDRAM 3 unbuffered, no ECC ICH2 ICH4 ICH6 HI 1.5/DMI ICH2 ICH4 ICH6 6x v2.2 6x v2.2 7x v2.3 6x v2.0 8x v2.0 8x v2.0 4 v2.3 v2.3 v G/GL 865G/GV /GV /P/PE 910GL PCI PCI-X PCI Express x1 USB AC/97 HDAI ICH (ICH2/4/6) FWH ATA/100 SATA LAN 10/100 GPI0 LPC G/GL 865G/GV /GV /P/PE 4 910GL BIOS 1 The chipsets including the letter G in their designation provide an integrated graphics controller. 2 The chipsets including the letters GL or GV in their designation don't have an AGP interface. 3 The 845G/GL/GV chipsets have a single channel memory link, while the others listed above have a dual channel link. A desktop line fejlődési folyamata: P4 FSB VGA 1 2 AGP 4X/8X/PCI Express x.16 MCH (845/845xx/848P/865xx/ 875P/915xx) SDRAM interface 3 SDRAM interface SDRAM SDRAM 3 Max. 2/4 GB4 PC 133, DDR 200/266/333/400, DDR2 400/533 unbuffered, ECC opt. HI 1.5/DMI ICH2 6x v2.2 4x v1.1 v ICH4 5 ICH5(R) ICH6(R) 6 6x v2.2 6x v2.3 7x v x v2.0 8x v2.0 8x v2.0 v2.3 v2.3 v xx 848P 915xx 865xx 875P PCI PCI-X PCI Express x1 USB AC/97 HDAI ICH 5 6 ICH2/4/5/5R /6/6R FWH BIOS ATA/100 SATA LAN 10/100 GPI0 LPC ICH ICH4 ICH5(R) 5 ICH6(R) xx 848P 915xx 865xx 875P 1 The chipsets including the letter G in their designation provide an integrated graphics controller. 2 The chipsets including the letters GL or GV in their designation don't have an AGP or PCI Express x16 interface. 3 The 845, 845xx and 848P chipsets have a single channel memory link, while the others listed above have a dual channel link. 4 The 845 has a max. memory of 3 GB for SDR SDRAMs. 5 The ICH5R includes an integrated RAID controller that utilizes the dual SATA ports for a high performance RAID Level 0 implementation. 6 The ICH6R includes an integrated RAID controller that utilizes the dual SATA ports for a high performance RAID Level 0 implementation. 92 / 121

93 A 845-ös lapkakészlet fejlődésének folyamata. Egy tipikus konfiguráció ugyanezen chipsettel: P4 Northwood FSB 400/533 MHz 1 VGA 3 AGP 4x 845xx (G)MCH 1,2 SDRAM interface SDRAM Max. 4 GB DDR 200/266/333 unbuffered, no ECC HI 1.5 MbE MbE c. LAN 10/100 GbE GbE c. PCI v.2.2 (3-6 slots) USB 2.0 (4-6 ports) PCI v.2.2 ICH4 Ultra ATA/100 (2 ports) GPIO Audio CODEC AC'97 v.2.3 LPC FWH SIO FD KB MS SP PP 1 The chipsets including the letter G in their designation provide an integrated VGA controller. 2 Mainboards based on the 845 chipset have a different configuration since they work with the ICH2. 3 The chipsets 845GL/GV don't offer an AGP interface. 93 / 121

94 A 865-ös sorozat tipikus konfigurációja: P4 Northwood B/C FSB 400/533/800 MHz GbE 1 VGA 2 AGP 8x GbE c. CSA (HI 1.5) 865xx (G)MCH 1,2 SDRAM interface SDRAM interface SDRAM SDRAM Max. 4 GB DDR 266/333/400 unbuffered, no ECC HI 1.5 MbE MbE c. PCI v.2.3 (3 slots) USB 2.0 (6-8 ports) LAN 10/100 PCI v.2.3 ICH5 Ultra ATA/100 (2 ports) SATA (2 ports) Audio CODEC AC'97 v.2.3 GPIO LPC FWH SIO FD KB MS SP PP 1 The chipsets including the letter G in their designation provide an integrated VGA controller. 2 The chipset 865GV does not offer an AGP 8X interface. A 915-ös sorozat tipikus konfigurációja: P4 Prescott FSB 533/800 MHz VGA1 PCI E. x162 PCI E. x16 915xx 1 (G)MCH SDRAM interface SDRAM interface SDRAM SDRAM Max. 4 GB DDR 333/400, DDR2 400/533 unbuffered, no ECC DMI MbE GbE MbE c. PCI v.2.3 (2-4 slots) GbE c. PCI E. x1 (1-2 ports) USB 2.0 (8 ports) LAN 10/100 PCI v.2.3 PCI E. x1 ICH6 Ultra ATA/100 (1 port) SATA (4 ports) GPIO Audio CODEC AC'97 v.2.3 LPC FWH SIO FD KB MS SP PP 1 The chipsets including the letter G in their designation provide an integrated VGA controller. 2 The 915GL/GV chipsets don't offer a PCI Express x16 interface. 94 / 121

95 SzA40. Rendszerarchitektúrák III. (sávszélesség kérdések; az FSB, a memória interfész, ill. a periféria interfészek jellemző sávszélesség értékei, a párhuzamos ill. soros busz összeköttetésű Intel Pentium 4 rendszerarchitektúrák sávszélesség viszonyai) FSB Width 64-bit Peak aggregate bandwidth 8 * f Mbyte/s c SDRAM-interface 64-bit 8 * f Mbyte/s SDRAM FSB és SDRAM interfészek Used in the chipsets Width Peak aggregate bandwidth HI 1.5 DMI All prior chipsets 8-bit 266 MByte/s 910GL, 915xx, 925X, 925XE 4*1 bit 2000 MByte/s MCH/ICH interfészek Used in the chipsets Width Peak aggregate bandwidth HI CSA HI 2.0 PCI E. x P/865xx/875P/E bit 8-bit 533 MByte/s 266 MByte/s E7500/7501/7505 E7221/7320/7520/ bit 8*1 bit 1066 MByte/s 4000 MByte/s Nagysebességű MCH interfészek AGP 4X AGP 8X VGA port MbE c. GbE c. SCSI Ultra 320 Ultra ATA/100 SATA 1.0 PCI 32-bit/33 MHz PCI-X 64-bit/66 MHz PCI-X 64-bit/133 MHz PCI E. x1 PCI E. x4 PCI E. x8 PCI E. x16 USB 1.0 USB 2.0 AC'97 HDA LPC Peak bandwidth Sustained data rate up to MByte/s MByte/s analog port ~ /drive, ~ /bus 100 ~30-60/drive 150 ~30-60/drive ~ ~50 ~1.4 3/SDI, 6/SDO ~5 Perifériabuszok 95 / 121

96 A 865-ös lapkakészlet jellemző sávszélesség-viszonyai: A 915-ös sorozat esetében pedig: A DMI busz bevezetésével nyolcszorosára nőtt a sávszélesség az északi és a déli híd között. Ez soros busz, bitvezetékenként 500 Mbyte/sec átviteli sebességgel. PCI-Express bevezetése. 96 / 121

97 SzA41. Alaplapok I (alaplap típusok fejlődésének áttekintése, az AT és a korai ill. fejlett Baby AT alaplapok karakterisztikus jegyei 1974-től kezdődött meg a PC-k árusítása: Atari, Apple, Commodore ben az IBM meghozta az áttörést: nyílt sínrendszer és kapcsolódási felületek (nem kötődik a gyártóhoz). Alaplapok típusai: 1981 IBM/PC az eredet 1984 AT minden kártyákon keresztül valósul meg 1985 Baby AT: méretcsökkenés, oka: chipkészletek, memórialapkák megjelenése 1985 Pentium alapú Baby AT: PCI slotok megjelenése 1987LPX célja keskeny házak megvalósítása, megjelent a Riser Card 1996 ATX funkcionális javítás 1997 NLX funkcionális javítás 1998 microatx 2000 ATX w/riser 2004 BTX; microbtx; picobtx hűtés megoldása AT 8/84 LPX 2 NLX 4 ATX w/riser /96 12/99 Baby AT 1 ~1985 ATX 3 8/95 BTX 7 microatx 6 microbtx 7 1/98 picobtx 7 9/ Baby AT: Smaller board size through higher integrated components (chip sets) 2 Non-standardized slimline design with a central mounted riser card allowing 2-3 expansion slots 3 Through better component arrangement reduced cost and EMI emission, integrated AGP (from version 2.02 on) 4 Standardized, improved slimline design with an edge mounted riser card, integrated AGP 5 Low cost slimline ATX design by using a riser card with 2-3 expansion slots 6 Reduced size low cost ATX design with up to four expansion slots 7 In-line core layout to improve system cooling with scalable board dimensions AT alaplapok karakterisztikus jegyei: Nem tartalmazott chipkészletet Rögzített memória az alaplapon (DIPP) Ezekből következik: nagy méret 8/16-os ISA billentyűzet (KYB) kivételével minden periféria ezen át kapcsolódik. 97 / 121

98 Korai Baby AT karakterisztikus jegyei: Megjelenik a chipkészlet Memória külön lapkán Ezekből következik: kisebb helyigény 8/16 bites ISA CPU: 386 SIMM/30 L2 cache DIPP (alaplapra integrálva) KYB csatlakozó 98 / 121

99 Fejlett Pentium alapú Baby AT alaplapok karakterisztikus jegyei: Megjelenik a chipkészlet Memória külön lapkán Ezekből következik: kisebb helyigény 16 bites ISA PCI 32 bites CPU: Pentium SIMM/72: 72 lábú SIMM RAM L2 cache DIPP fixen KYB, FD, HD on-board vezérlők 99 / 121

100 SzA42. Alaplapok II (a riser card fogalma, célja, alkalmazása, az ATX és a BTX alaplap szabványok) Riser Card: Fogalma: Olyan kártya, melybe több periféria illesztőkártya (ISA, PCI) helyezhető. Az alaplapra merőleges, így párhuzamosan helyezkednek el a periféria illesztőkártyák az alaplappal. Cél: méretek csökkentése Slim alaplap típusok: LPX (Socket 7 Pentium), NLX (Riser card a szélén), ATX w/riser ATX alaplap szabvány tulajdonságai: A CPU-t a tápegység mellé helyezi, így egyszerre hűthető a kettő (2,3). HD és FD csatolók közel helyezkednek el a meghajtókhoz, így is csökkentve az EMI-t (Elektromágneses interferencia) (4,5) Kétsoros I/O csatlakozók megjelenése (1) 100 / 121

101 Korai ATX alaplapok tulajdonságai: 1 ISA (egyre kevesebb ISA slotra van szükség) PCI AGP Slot1 (PII/III) DIMM/168 Kétsoros I/O csatlakozók Jelenlegi ATX alaplapok tulajdonságai: Nincs ISA, PCI-32 PCI-E 1x, PCI-E 16x L2 cache a chipen belül van Socket 478 (P4) 1 ATA; 4 SATA BTX alaplap szabvány megjelenésének oka: BTX alaplap szabvány megjelenésének legfőbb oka a processzorok magas disszipációja volt. Ennek a problémának a megoldására az alaplapi chipkészletet és a CPU-t egy légáramba helyezték. Micro BTX A légáram a CPU-MCH-ICH úton halad. 101 / 121

102 IV. Többmagos processzorok SzA43. Többmagos processzorok I. (kiváltó okok, megjelenésük áttekintése, makro-architektúrájuk tervezési tere) Kiváltó okok: - telítődés 2003 után - hatékonyság stagnálása a nagymértékben növekvő órajel ellenére is - disszipációs fal elérése a rendkívül magas órajel miatt Többféle innováció: - SMP (simultaneous multiprocessing) több magos, magonként egy szálas: egy lapkán két vagy több processzormaggal %-os komplexitásnövekedés és többletráfordítás 50-70%-os teljesítménynövekedést eredményezett. - SMT (simultaneous multithreading) egy magos, több szálas: egyetlen többszálas processzormaggal. Kb. 5%-os többletráfordítás 0-15%-os teljesítménynövekedést eredményezett. - A kettő kombinációja: SMP with MT több magos, több szálas Három fajtájuk jelent meg: - szuperskalár RISC - szuperskalár CISC - VLIW 102 / 121

103 Makroarchitektúrájuk tervezési tere: Rendszerarchitektúra megvalósítása L2 csatolás L3 csatolás I/O csatolás Memória csatolás A makroarchitektúra ötödik elemeként a 2006 őszi előadásban megjelent a Layout of the interconnections. A mostani kérdéssorban ez nem szerepel külön, de célszerű ismerni. 103 / 121

104 SzA44. Többmagos processzorok II. (L2 gyorsítótárak használatának tervezési tere, az egyes szempontok ismertetése) 104 / 121

105 Az IBM Power 4 és 5 hashing megoldása révén a cache-ek terhelés egyenletesebb. 105 / 121

106 Inclusive L2: a jelenlegi legtöbb megvalósítás Exclusive L2: Athlon 64X2, kétmagos Opteronok (2005) Ha L1-ből egy vonalat ki kell írni, az a victim bufferbe kerül, idővel pedig az L2-be. A trend: - közös használatú L2 elterjedése - osztott L2 cache - komplexitás növekszik 106 / 121

107 SzA45. Többmagos processzorok III. (L3 gyorsítótárak használatának tervezési tere, az egyes szempontok ismertetése) Exkluzív cache: 1 cache vonal XOR jelleggel vagy az L2-ben vagy az L3-ban van. Ennek előnye, hogy a rendelkezésre álló cache terület összeadódik. Ezáltal nő a hatékonyság és így a teljesítmény is. A módosított cache vonalak (dirty) akkor kerülnek a memóriába, ha helyet kell csinálni. Minden módosítás érinti a cache-et és a memóriát egyaránt. 107 / 121

108 108 / 121

109 Use by instructions/data Unified instr./data cache(s) Split instr./data caches Jelenleg az összes többmagos processzor mind az utasításokat, mind az adatokat az egyesített L3 cache-ben tárolja. 109 / 121

110 Banking policy Single-banked implementation Multi-banked implementation Jelenleg az összes többmagos processzor több-bankos. SzA46. Többmagos processzorok IV. (az I/O és a memória architektúra) 110 / 121

111 A rendszerbuszon (FSB) át csatlakoztatott I/O és memória alrendszer példái: Dedikált aszimmetrikus kapcsolódásnál az I/O-t az ún. interconnection network-ön át csatoljuk, a memóriát pedig az L2/L3 cache-en át. Dedikált szimmetrikus kapcsolatnál ezzel szemben mind az I/O, mind a memória a közbülső kapcsolóhálózatra csatlakozik. 111 / 121

112 A tervezési tér harmadik eleme szerint a kapcsolódás helye alapján az IN: - elhelyezkedhet a cache hierarchia legtetején (L2 vagy L3 fölött). A memóriavezérlő általában így csatlakozik, ha a legmagasabb szintű cache inkluzív. - A L2 és L3 cache-ek között (a magok és az osztott L2 összekötése vagy az osztott L2 és az osztott L3 összekötése). A memóriavezérlő általában így csatlakozik, ha a legmagasabb szintű cache exkluzív. 112 / 121

113 113 / 121

114 SzA47. Többmagos processzorok V. (fontosabb többmagos Intel és AMD processzorok bemutatása) Intel Platform The Move to Intel Multi-core Itanium processor MP Server DP Server / WS Desktop Client Mobile Client today All products and dates are preliminary and subject to change without notice. Refer to fact sheet for specific product timings 114 / 121

115 115 / 121

116 A fenti ábra a Core processzorok típusjelzéseit és a hozzájuk tartozó paramétereket mutatja. A különböző technikák és leírásuk: ED: Execute Disable Bit Buffer overflow támadások elhárítására szolgál. Segítségével a processzor osztályozni képes a memória adott részeit az alapján, hogy abban a részben lehet-e futtatható kód vagy sem. Ha egy program tiltott helyre akar kódot beszúrni, a processzor megállítja annak futását, megelőzve ezzel a buffer overflow támadást. VT: Virtualizaton Technology Ez lényegében egy sor hardverfejlesztés, mely növeli a szoftveres virtualizáció teljesítményét. A virtualizáció lehetővé teszi, hogy egyetlen platformon többféle operációs rendszer és ezekhez tartozó alkalmazások fussanak akár egyidőben, elszigetelt partíciókon. EIST: Enhanced Intel SpeedStep Technology Segítségével a rendszer dinamikusan (terhelésfüggően) állíthatja a processzor feszültségét és a mag órajelét, ezzel egyrészt csökkenthető az áramfogyasztás, másrészt az átlagos hőkibocsátás alacsonyabb. Ez az egyik legfontosabb disszipáció-csökkentő technológia. 116 / 121

117 AMD Az Intel EIST-hez hasonló disszipáció-csökkentő technika a Cool n Quiet, amivel a proceszszor terhelésének függvényében állítható a ventilátor fordulatszáma és az órajel. 117 / 121

118 SzA48. Többmagos processzorok VI. (fontosabb többmagos SUN és IBM processzorok bemutatása) SUN 118 / 121

119 IBM Power 4 és 5 logikai nézete illetve rendszerfelépítése 119 / 121

120 Power 4 chip részei SPE: Synergistic Processing Element EIB: Element Interface Bus MFC: Memory Flow Controller PPE: Power Processing Element AUC: Atomic Update Cache CELL (BE) mikroarchitektúrája 120 / 121

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

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Operandus típusok Bevezetés: Az utasítás-feldolgozás menete Egy gépi kódú utasítás általános formája: MK Címrész MK = műveleti kód Mit? Mivel? Az utasítás-feldolgozás általános folyamatábrája: Megszakítás?

Részletesebben

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

Összeadás BCD számokkal

Összeadás BCD számokkal Összeadás BCD számokkal Ugyanúgy adjuk össze a BCD számokat is, mint a binárisakat, csak - fel kell ismernünk az érvénytelen tetrádokat és - ezeknél korrekciót kell végrehajtani. A, Az érvénytelen tetrádok

Részletesebben

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

Számítógép Architektúrák I-II-III. Kidolgozott államvizsgatételek Számítógép Architektúrák I-II-III. tárgyakhoz 2010. június A sikeres államvizsgához kizárólag ennek a dokumentumnak az ismerete nem elégséges, a témaköröket a Számítógép

Részletesebben

elektronikus adattárolást memóriacím

elektronikus adattárolást memóriacím MEMÓRIA Feladata A memória elektronikus adattárolást valósít meg. A számítógép csak olyan műveletek elvégzésére és csak olyan adatok feldolgozására képes, melyek a memóriájában vannak. Az információ tárolása

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

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

Számítógép felépítése Alaplap, processzor Számítógép felépítése Az alaplap A számítógép teljesítményét alapvetően a CPU és belső busz sebessége (a belső kommunikáció sebessége), a memória mérete és típusa, a merevlemez sebessége

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

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

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

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.

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. 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

Részletesebben

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

Ismerkedjünk tovább a számítógéppel. Alaplap és a processzeor Ismerkedjünk tovább a számítógéppel Alaplap és a processzeor Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

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

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő) Memóriák (felejtő) Memória Kapacitás Ár Sebesség Memóriák - tárak Háttértár (nem felejtő) Memória Vezérlő egység Központi memória Aritmetikai Logikai Egység (ALU) Regiszterek Programok Adatok Ez nélkül

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

SzA19. Az elágazások vizsgálata

SzA19. Az elágazások vizsgálata SzA19. Az elágazások vizsgálata (Az elágazások csoportosítása, a feltételes utasítások használata, a műveletek eredményének vizsgálata az állapottér módszerrel és közvetlen adatvizsgálattal, az elágazási

Részletesebben

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

Számítógép architektúra Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Számítógép architektúra Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Irodalmi források Cserny L.: Számítógépek

Részletesebben

Digitális rendszerek. Digitális logika szintje

Digitális rendszerek. Digitális logika szintje Digitális rendszerek Digitális logika szintje CPU lapkák Mai modern CPU-k egy lapkán helyezkednek el Kapcsolat a külvilággal: kivezetéseken (lábak) keresztül Cím, adat és vezérlőjelek, ill. sínek (buszok)

Részletesebben

Digitális rendszerek. Mikroarchitektúra szintje

Digitális rendszerek. Mikroarchitektúra szintje Digitális rendszerek Mikroarchitektúra szintje Mikroarchitektúra Jellemzők A digitális logika feletti szint Feladata az utasításrendszer-architektúra szint megalapozása, illetve megvalósítása Példa Egy

Részletesebben

Bepillantás a gépházba

Bepillantás a gépházba Bepillantás a gépházba Neumann-elvű számítógépek főbb egységei A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Operatív memória: A számítógép bekapcsolt

Részletesebben

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

A mikroprocesszor felépítése és működése A mikroprocesszor felépítése és működése + az egyes részegységek feladata! Információtartalom vázlata A mikroprocesszor feladatai A mikroprocesszor részegységei A mikroprocesszor működése A mikroprocesszor

Részletesebben

Műveletek lebegőpontos adatokkal

Műveletek lebegőpontos adatokkal Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Műveletek lebegőpontos adatokkal Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Műveletek az IEEE 754

Részletesebben

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

Utasításszintű architektúra Adattér Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Utasításszintű architektúra Adattér Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu ISA Instruction Set

Részletesebben

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

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 . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes.

6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. 6. óra Mi van a számítógépházban? A számítógép: elektronikus berendezés. Tárolja az adatokat, feldolgozza és az adatok ki és bevitelére is képes. Neumann elv: Külön vezérlő és végrehajtó egység van Kettes

Részletesebben

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

Számítógép Architektúrák I-II-III. Kidolgozott államvizsgatételek Számítógép Architektúrák I-II-III. tárgyakhoz 2010. június A sikeres államvizsgához kizárólag ennek a dokumentumnak az ismerete nem elégséges, a témaköröket a Számítógép

Részletesebben

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

A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) 65-67 A processzor hajtja végre a műveleteket. összeadás, szorzás, logikai műveletek (és, vagy, nem) Két fő része: a vezérlőegység, ami a memóriában tárolt program dekódolását és végrehajtását végzi, az

Részletesebben

Központi vezérlőegység

Központi vezérlőegység Központi vezérlőegység A számítógép agya a központi vezérlőegység (CPU: Central Processing Unit). Két fő része a vezérlőegység (CU: Controll Unit), ami a memóriában tárolt program dekódolását és végrehajtását

Részletesebben

Első sor az érdekes, IBM PC. 8088 ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat

Első sor az érdekes, IBM PC. 8088 ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat 1 2 3 Első sor az érdekes, IBM PC. 8088 ra alapul: 16 bites feldolgozás, 8 bites I/O (olcsóbb megoldás). 16 kbyte RAM. Nem volt háttértár, 5 db ISA foglalat XT: 83. CPU ugyanaz, nagyobb RAM, elsőként jelent

Részletesebben

Processzor (CPU - Central Processing Unit)

Processzor (CPU - Central Processing Unit) Készíts saját kódolású WEBOLDALT az alábbi ismeretanyag felhasználásával! A lap alján lábjegyzetben hivatkozz a fenti oldalra! Processzor (CPU - Central Processing Unit) A központi feldolgozó egység a

Részletesebben

A számítógép egységei

A számítógép egységei A számítógép egységei A számítógépes rendszer két alapvető részből áll: Hardver (a fizikai eszközök összessége) Szoftver (a fizikai eszközöket működtető programok összessége) 1.) Hardver a) Alaplap: Kommunikációt

Részletesebben

A számítógép fő részei

A számítógép fő részei Hardver ismeretek 1 A számítógép fő részei 1. A számítógéppel végzett munka folyamata: bevitel ==> tárolás ==> feldolgozás ==> kivitel 2. A számítógépet 3 fő részre bonthatjuk: központi egységre; perifériákra;

Részletesebben

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

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

Részletesebben

OPERÁCIÓS RENDSZEREK. Elmélet

OPERÁCIÓS RENDSZEREK. Elmélet 1. OPERÁCIÓS RENDSZEREK Elmélet BEVEZETÉS 2 Az operációs rendszer fogalma Az operációs rendszerek feladatai Csoportosítás BEVEZETÉS 1. A tantárgy tananyag tartalma 2. Operációs rendszerek régen és most

Részletesebben

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

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

VEZÉRLŐEGYSÉGEK. Tartalom

VEZÉRLŐEGYSÉGEK. Tartalom VEZÉRLŐEGYSÉGEK Tartalom VEZÉRLŐEGYSÉGEK... 1 Vezérlőegységek fajtái és jellemzői... 2 A processzor elemei... 2 A vezérlés modellje... 2 A vezérlőegységek csoportosítása a tervezés módszere szerint...

Részletesebben

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

Bevezetés a számítástechnikába Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Dr. Oniga István DIGITÁLIS TECHNIKA 8 Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

7. Fejezet A processzor és a memória

7. Fejezet A processzor és a memória 7. Fejezet A processzor és a memória The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

Részletesebben

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

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK 1 Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd SZE MTK MSZT lovas.szilard@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? Nem reprezentatív felmérés kinek van

Részletesebben

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

találhatók. A memória-szervezési modell mondja meg azt, hogy miként Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési

Részletesebben

statikus RAM ( tároló eleme: flip-flop ),

statikus RAM ( tároló eleme: flip-flop ), 1 Írható/olvasható memóriák (RAM) Az írható/olvasható memóriák angol rövidítése ( RAM Random Acces Memories közvetlen hozzáférésű memóriák) csak a cím szerinti elérés módjára utal, de ma már ehhez az elnevezéshez

Részletesebben

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

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Az utasítás-pipeline szélesítése Horváth Gábor, Belső Zoltán BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-05-19 1 UTASÍTÁSFELDOLGOZÁS

Részletesebben

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK VIMIAA02 14. hét Fehér Béla BME MIT Rövid visszatekintés, összefoglaló

Részletesebben

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása:

8. témakör. Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: 3.A memóriák csoportosítása: 8. témakör 12a_08 Memóriák 1. Számítógép sematikus felépítése: 2.A memória fogalma: Gyors hozzáférésű tárak. Innen veszi, és ideírja a CPU a programok utasításait és adatait (RAM, ROM). Itt vannak a futó

Részletesebben

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA02 14. hét Fehér Béla BME MIT Digitális technika

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Megszakítás- és kivételkezelés Fehér Béla Raikovich

Részletesebben

Alaplap: közös kapcsolódási felület a számítógép részegységei számára

Alaplap: közös kapcsolódási felület a számítógép részegységei számára Alaplap: közös kapcsolódási felület a számítógép részegységei számára AGP-csatlakozó alaplapi vezérlő chip PCI-csatlakozók rögzítőkeret a hűtőhöz FDD-csatlakozó tápegységcsatlakozó S.ATAcsatlakozók P.ATAcsatlakozók

Részletesebben

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő)

5. tétel. A számítógép sematikus felépítése. (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő) 5. tétel 12a.05. A számítógép sematikus felépítése (Ábra, buszok, CPU, Memória, IT, DMA, Periféria vezérlő) Készítette: Bandur Ádám és Antal Dominik Tartalomjegyzék I. Neumann János ajánlása II. A számítógép

Részletesebben

Műveletek fixpontos számokkal

Műveletek fixpontos számokkal Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Műveletek fixpontos számokkal Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu A műveletvégző és a vezérlő

Részletesebben

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

ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA ELŐADÁS 2016-01-05 SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA A PC FIZIKAI KIÉPÍTÉSÉNEK ALAPELEMEI Chip (lapka) Mikroprocesszor (CPU) Integrált áramköri lapok: alaplap, bővítőkártyák SZÁMÍTÓGÉP FELÉPÍTÉSE

Részletesebben

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

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással .. A tervfeladat sorszáma: 1 A ALU egység 8 regiszterrel és 8 utasítással Minimálisan az alábbi képességekkel rendelkezzen az ALU 8-bites operandusok Aritmetikai funkciók: összeadás, kivonás, shift, komparálás

Részletesebben

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

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

Részletesebben

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

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 Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei Kutató Intézet kisszámítógépes rendszerekben Tudományos számításokban gyakran nagy mennyiségű aritmetikai művelet elvégzésére van

Részletesebben

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

Részletesebben

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák Dr. Oniga István DIGITÁLIS TECHNIKA 10 Memóriák Memóriák Programot, és adatokat tárolnak D flip-flop egyetlen bit, a regiszter egy bináris szám tárolására alkalmasak Memóriák több számok tárolására alkalmasak

Részletesebben

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

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a

Részletesebben

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

Szekvenciális hálózatok és automaták Szekvenciális hálózatok a kombinációs hálózatokból jöhetnek létre tárolási tulajdonságok hozzáadásával. A tárolás megvalósítása történhet a kapcsolás logikáját képező kombinációs hálózat kimeneteinek visszacsatolásával

Részletesebben

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

Részletesebben

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák

Dr. Oniga István. DIGITÁLIS TECHNIKA 10 Memóriák Dr. Oniga István DIGITÁLIS TECHNIKA 10 Memóriák Memóriák Programot, és adatokat tárolnak D flip-flop egyetlen bit, a regiszter egy bináris szám tárolására alkalmasak Memóriák több számok tárolására alkalmasak

Részletesebben

2017/12/16 21:33 1/7 Hardver alapok

2017/12/16 21:33 1/7 Hardver alapok 2017/12/16 21:33 1/7 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

Az operációs rendszer szerkezete, szolgáltatásai

Az operációs rendszer szerkezete, szolgáltatásai Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások Válaszok Kernel Eszközkezelők Megszakításvezérlés Perifériák Az operációs rendszer szerkezete, szolgáltatásai Felhasználói

Részletesebben

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

A számítógépek felépítése. A számítógép felépítése A számítógépek felépítése A számítógépek felépítése A számítógépek felépítése a mai napig is megfelel a Neumann elvnek, vagyis rendelkezik számoló egységgel, tárolóval, perifériákkal. Tápegység 1. Tápegység:

Részletesebben

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

Számítógépek felépítése Számítógépek felépítése Kérdések a témakörhöz Melyek a Neumann-elvek? Milyen főbb részei vannak a Neumann-elvek alapján működő számítógépeknek? Röviden mutasd be az egyes részek feladatait! Melyek a ma

Részletesebben

Párhuzamos programozási platformok

Párhuzamos programozási platformok Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási

Részletesebben

Párhuzamos programozási platformok

Párhuzamos programozási platformok Párhuzamos programozási platformok Parallel számítógép részei Hardver Több processzor Több memória Kapcsolatot biztosító hálózat Rendszer szoftver Párhuzamos operációs rendszer Konkurenciát biztosító programozási

Részletesebben

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 lencse@hit.bme.

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 lencse@hit.bme. MEMÓRIA TECHNOLÓGIÁK Számítógép-architektúrák 4. gyakorlat Dr. Lencse Gábor 2011. október 3., Budapest tudományos főmunkatárs BME Híradástechnikai Tanszék lencse@hit.bme.hu Tartalom Emlékeztető: mit kell

Részletesebben

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

DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output 1 Input/Output 1. I/O műveletek hardveres háttere 2. I/O műveletek szoftveres háttere 3. Diszkek (lemezek) ------------------------------------------------ 4. Órák, Szöveges terminálok 5. GUI - Graphical

Részletesebben

7.hét: A sorrendi hálózatok elemei II.

7.hét: A sorrendi hálózatok elemei II. 7.hét: A sorrendi hálózatok elemei II. Tárolók Bevezetés Bevezetés Regiszterek Számlálók Memóriák Regiszter DEFINÍCIÓ Tárolóegységek összekapcsolásával, egyszerű bemeneti kombinációs hálózattal kiegészítve

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 4. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája Adatszerkezetek Összetett adattípus Meghatározói: A felvehető értékek halmaza Az értékhalmaz struktúrája Az ábrázolás módja Műveletei Adatszerkezet fogalma Direkt szorzat Minden eleme a T i halmazokból

Részletesebben

2016/08/31 02:45 1/6 Hardver alapok

2016/08/31 02:45 1/6 Hardver alapok 2016/08/31 02:45 1/6 Hardver alapok < Hardver Hardver alapok Szerző: Sallai András Copyright Sallai András, 2011, 2013, 2014 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Bevezetés A számítógépet

Részletesebben

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

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

A 32 bites x86-os architektúra regiszterei

A 32 bites x86-os architektúra regiszterei Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

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

Számítógép architektúrák 2. tétel Számítógép architektúrák 2. tétel Elemi sorrendi hálózatok: RS flip-flop, JK flip-flop, T flip-flop, D flip-flop, regiszterek. Szinkron és aszinkron számlálók, Léptető regiszterek. Adatcímzési eljárások

Részletesebben

Számítógép egységei. A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése.

Számítógép egységei. A részek feladatai: Központi egység: Feladata a számítógép vezérlése, és a számítások elvégzése. Számítógép egységei A mai számítógépek túlnyomó többsége a Neumann-elvek alapján működik. Ezeket az elveket a számítástechnika történet részben már megismertük, de nem árt ha felelevenítjük. Neumann-elvek

Részletesebben

Programozott soros szinkron adatátvitel

Programozott soros szinkron adatátvitel Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.

Részletesebben

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

4. Fejezet : Az egész számok (integer) ábrázolása 4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson

Részletesebben

Megszakítási rendszer

Megszakítási rendszer Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Megszakítási rendszer Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Megszakítási rendszer A CPU-nak rugalmasan

Részletesebben

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás ATmega128 CPU Single-level pipelining Egyciklusú ALU működés Reg. reg., reg. konst. közötti műveletek 32 x 8 bit általános célú regiszter Egyciklusú

Részletesebben

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

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 Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

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

I+K technológiák. Számrendszerek, kódolás I+K technológiák Számrendszerek, kódolás A tárgyak egymásra épülése Magas szintű programozás ( számítástechnika) Alacsony szintű programozás (jelfeldolgozás) I+K technológiák Gépi aritmetika Számítógép

Részletesebben

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

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,

Részletesebben

Digitális technika (VIMIAA01) Laboratórium 9

Digitális technika (VIMIAA01) Laboratórium 9 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA01) Laboratórium 9 Fehér Béla Raikovich Tamás,

Részletesebben

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Analóg-digitális átalakítás Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Mai témák Mintavételezés A/D átalakítók típusok D/A átalakítás 12/10/2007 2/17 A/D ill. D/A átalakítók A világ analóg, a jelfeldolgozás

Részletesebben

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

Adatelérés és memóriakezelés Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL)

SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL) SZÁMÍTÓGÉP FELÉPÍTÉSE (TK 61-TŐL) SZÁMÍTÓGÉP Olyan elektronikus berendezés, amely adatok, információk feldolgozására képes emberi beavatkozás nélkül valamilyen program segítségével. HARDVER Összes műszaki

Részletesebben

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások 8. Fejezet Processzor (CPU) és memória: The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley

Részletesebben

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

DIGITÁLIS ADATTÁRAK (MEMÓRIÁK) DIGITÁLIS ADATTÁRAK (MEMÓRIÁK) A digitális berendezések a feladatuk ellátása közben rendszerint nagy mennyiségű adatot dolgoznak fel. Feldolgozás előtt és után rendszerint tárolni kell az adatokat ritka

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek)

VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek) SzA35. VLIW processzorok (Működési elvük, jellemzőik, előnyeik, hátrányaik, kereskedelmi rendszerek) Működési elvük: Jellemzőik: -függőségek kezelése statikusan, compiler által -hátránya: a compiler erősen

Részletesebben

Nagy Gergely április 4.

Nagy Gergely április 4. Mikrovezérlők Nagy Gergely BME EET 2012. április 4. ebook ready 1 Bevezetés Áttekintés Az elektronikai tervezés eszközei Mikroprocesszorok 2 A mikrovezérlők 3 Főbb gyártók Áttekintés A mikrovezérlők az

Részletesebben

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István

DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István IGITÁLIS TECHNIKA 7 Előadó: r. Oniga István Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók S tárolók JK tárolók T és típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók

Részletesebben

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek MSP430 programozás Energia környezetben Kitekintés, további lehetőségek 1 Még nem merítettünk ki minden lehetőséget Kapacitív érzékelés (nyomógombok vagy csúszka) Az Energia egyelőre nem támogatja, csak

Részletesebben