Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006
|
|
- Regina Molnár
- 9 évvel ezelőtt
- Látták:
Átírás
1 Gábor Dénes Főiskola Győr Mikroszámítógépek Előadás vázlat /2005 tanév 4. szemeszter
2 A PROCESSZOR
3 A processzorok jellemzése A processzor felépítése A processzorok üzemmódjai Regiszterkészlet Utasításfelépítés, utasításkészlet Utasításvégrehajtás Memóriakezelés Megszakítások, kivételek 14:33:29
4 A processzor részei, kapcsolatuk A legfontosabb architektúrális építőelemek: vezérlőegység (CU = Control Unit) aritmetikai (logikai) egység (ALU = Arithmetical and Logical Unit), regisztertárolók, sínillesztő egység (BIU = Bus Interface Unit), címszámító és védelmi egység (AU = Adress Unit), belső gyorsító tár (L1 cache), az előző részegységek kommunikációját biztosító eszközök (mikroszámítógépeknél a belső sínrendszer). 14:33:29
5 A processzor vázlatos felépítése Belső sínrendszer AU ALU CU Külső sínrendszer BIU Címszámítás Vezérlés regiszterei regiszterei MűveletvégrehajL1 cache tás regiszterei 14:33:29
6 A processzor üzemmódok A processzorok különböző üzemmódjaira, állapotaik megkülönböztetésére lényegében: védelmi szempontból, a programfolyamatok biztonságos működtetése miatt, az operációs rendszer és a felhasználói programok működtetésének elkülönítése miatt (például hibakezelésnél), a korábbi processzorokkal való bináris programkompatibilitás megtartása miatt van szükség. 14:33:29
7 A processzor üzemmódok A Pentium processzorok négy üzemmódjai: Valós Védett Védett valós Rendszermenedzselő (SMM) üzemmód 14:33:30
8 Regiszterkészlet A processzor regisztereinek csoportosítása: Rendszerregiszterek Intruction Register Program Counter Speciális célú regiszterek Flag Register Stack Pointer Általános célú regiszterek Akkumulátor regiszter Szegmensregiszterek 14:33:30
9 Regiszterkészlet A processzor regisztereinek csoportosítása: Címző regiszterek EBP, ESP, ESI, EDX Szegmensregiszterek CS, DS, ES, SS, FE, GS Utasítászámláló regiszter EIP Állapotjelző regiszter EFLAGS Általános célú regiszterek EAX, EBX, ECX, EDX 14:33:30
10 Utasításkészlet, utasításszerkezet Utasításszerkezet alatt az elemi szintű (gépi kódú), a processzor által értelmezhető utasítások felépítését értjük. Ez határozza meg a processzor számára, hogy a gépi utasítások egyes részeit hogyan értelmezze. Részei: műveleti kód, operandusok, kiegészítő (módosító) rész. Egy processzor utasításkészlete alatt azoknak az elemi szintű gépi kódú utasításoknak az összességét értjük, melyek végrehajtására a processzor a legalsó, hardver szinten képes. Ez az a szint, amelyre a fordítóprogram a különböző programnyelveken megírt programokat lefordítja. 14:33:30
11 Utasításkészlet Az utasításkészlet jóságára nem lehet egzakt megfogalmazást tenni, néhány szempont: Minden utasítás azonos módon működjön. Az eszközöket azonos módon használják. Az utasítások egyes részei mindig ugyanúgy kerüljenek feldolgozás alá. Minden utasítás bármely címzési módot használhassa. Többféle megoldhatóság esetén kivitelezhető legyen mindegyik. Az utasítások egyszerűek legyenek. 14:33:30
12 Utasításszerkezet Az utasításszerkezet eltérő az különböző processzoroknál. Megszabja, hogy a CPU az utasítás mely részét hogyan tudja értelmezni. Az utasítások rendszerint három részből állnak: Műveleti jelrész az elvégzendő feladatot határozza meg. Címrész az operandusok memóriabeli címét adja meg. Kiegészítő vagy módosító rész a műveleti jelrész vagy a címrész értelmezését módosíthatja. Műveleti jelrész Mód. rész Címrész 14:33:30
13 Utasításszerkezet II A program futása közben rendszerint a processzornak négy címre van szüksége: Az első operandus címére A második operandus címére Az eredmény címére Soronkövetkező utasítás címére Attól függően, hogy az utasítás címrésze hány címet tartalmaz, beszélhetünk négy-, három-, kettő-, egy- és nullcímes utasításokról. 14:33:30
14 Utasításszerkezet III A legbonyolultabb a 4-címes utasítás: Műveleti jelrész 1. operandus címe 2. operandus címe Eredmény címe Köv. utasítás címe A 3 címes utasításszerkezethez be kell vezetni a programszámláló regisztert, ami a következő ut. címét tart. Műveleti 1. operandus 2. operandus Eredmény jelrész címe címe címe A 2 címes utasításszerkezet során az eredményt a 2. operandus helyén fogjuk tárolni. Műveleti jelrész 1. operandus címe 2. operandus + eredmény címe 14:33:30
15 Utasításszerkezet IV Az 1-címes utasításhoz be kell vezetnünk az akkumulátor regisztert, amely a 2. operandus címét tartalmazza.az eredmény is ide kerül. Műveleti jelrész 1. operandus címe A veremtároló használatával elhagyható az operandus címe, így kapjuk az ún. 0-címes utasításokat. Műveleti jelrész 14:33:30
16 Adatátviteli utasítások Az adatátviteli utasításokkal különböző tárolók között lehet mozgatni, másolni az adatokat memória, regiszter memória, regiszter (MOVE) memória háttértárolók, perifériák (IN, OUT) regiszter, memória verem (POP, PUSH). 14:33:30
17 Műveleti utasítások aritmetikai utasítások (ADD, SUB, MUL, DIV stb.), logikai utasítások (AND, OR, XOR stb.), bitléptető/forgató utasítások (SLL, SRL stb.), bitműveletek, karakterlánc (string) műveletek (CMPB stb.), multimédiás és 3D grafikus műveletek (PADD, PADDS stb.). 14:33:30
18 Vezérlő utasítások Ezekkel az utasításokkal egyrészt a program soros utasítás-végrehajtását lehet vezérelni, másrészt a processzor működését szabályozni. Ezek: feltétel nélküli vezérlésátadás (JMP), feltételes vezérlésátadás (pl. JNE), szubrutin hívás (CALL), visszatérés szubrutinból (RET), ciklus képző utasítás (LOOP). A processzor működését szabályozó utasítások közé tartoznak a különböző programvezérelt megszakítást kérő utasítások (pl. INT). 14:33:30
19 A processzor utasításfeldolgozása A processzor teljesítményében meghatározó jelentőségű a művelet-végrehajtó egységek száma és működése. Az ALU működését és képességeit a műveletekben értelmezett adattípusok alapján értékelhetjük. Ezek: fixpontos számok, lebegőpontos számok, binárisan kódolt decimális (BCD) számok, multimédiás (MMX) adatok, karakteres mezők, bitmezők 14:33:31
20 Tárolókezelés Mivel az utasítások és az operandusok a tárolóban helyezkednek el, ezért kiemelt fontosságú annak kezelési módja. A tároló szervezéséből adódóan címzéssel érhető el. Annak érdekében, hogy a különböző feladatokat egyszerűen lehessen megoldani, különböző tároló-elérési módszereket dolgoztak ki. Az adatok fizikai címét rendszerint nem tartalmazza az utasításszerkezet, tehát címmódosítást kell elvégezni 14:33:31
21 Tárolókezelés II A cím módosításának okai: A címrész rendszerint nem elegendő hosszúságú Adatsorozat elemein ugyanazokat a műveleteket kell végrehajtani Ciklikus műveletsorozatot kell végrehajtani Az elkészült programhordozhatósága Lehetőségei: Közvetlen Közvetett Literális Indexelés 14:33:31
22 Közvetlen címzés A közvetlen címzés esetén a címrészben tárolóhelycím található, amely mutathat a memóriaára, vagy valamelyik regiszterre. Két típúsa van: Abszolút címzés esetében az utasítás címrészében valóban az operandus fizikai címe található. Használata nem mindig előnyös, mivel így az adatoknak fix helyen kell lenniük. Memóriacímekhez 16-32, míg a regiszterekhez 3-6 bit szélességű címekre van szükség. 14:33:31
23 Közvetlen címzés A relatív címzés esetén a címrész egy alapcímhez viszonyított eltolást tartalmaz. Alapcím lehet: Egy kijelölt regiszterben, a bázisregiszterben eltárolt fizikai memóriacím. A címek rövidítése érdekében a memóriát több kisebb részre osztjuk, szegmentáljuk. A bázisregiszter ezek kezdőcímét tartalmazza. A program kezdetének a címe nagyon fontos, mert így a programok memórián belül áthelyezhetők. Az utasítás tárolóbeli helye, itt az alapcím a PC. Csak egy szűkebb környezet elérésére nyújt lehetőséget. 14:33:31
24 Közvetlen címzési módok Adatterület Program terület LDA a Program terület BR Adatterület 4096 LDA r :33:31
25 Közvetett címzés A közvetett vagy indirekt címzés esetén az operandus memóriacímét vagy annak egy összetevőjét adjuk meg az utasításban. A címmezőben az a memóriacím található, ahol az operandus címe került tárolásra. Adatterület Program terület LDA i :33:31
26 Közvetlen adatcímzés A közvetlen adatcímzést álcímzésnek és literális címzésnek is nevezik. Akkor beszélünk ilyen címzésről, ha maga az operandus található az utasítás címrészében. Az operandusnak bele kell férni a címrész szélességébe. Program terület LDA # 1600 Akkumulátor :33:31
27 Indexelt címzés Adatsorozatokkal való munka során alkalmazott címzési mód. Az utasítás címrészében az operandus helyének az alapcíme található. Ehhez adjuk hozzá az indexregiszterben lévő értéket és megkapjuk a fizikai címet. Ennek növelése, csökkentése automatikusan megoldható. Program terület IX 5 Adatterület 3000 LDA ix :33:31
28 Az aritmetikai egység
29 Aritmetikai egység Az legfontosabb műveletcsoport az adat-műveletek. Az ALU feladatai: Aritmetikai műveletek elvégzése (+, -, *, /, ^) rendszerint kettes számrendszerben Logikai műveletek (ÉS, VAGY, NEM stb.) végrehajtása Bitforgatás és léptetés 14:33:31
30 Számok ábrázolása A számábrázoláshoz megkülönböztetnünk: az alábbiakat kell Egészszámok törtszámok Pozitív számok negatív számok Fixpontos számábrázolás ±a m a m 1 a m 2... a 1 a 0 a 1 a 2... a n Az elválasztójeltől balra az egész-, jobbra a törtrész található. Ezt az ábrázolásmódot kis számok esetén alkalmazzuk. 14:33:31
31 Számok ábrázolása Lebegőpontos számábrázolás nagy és kis számok rövid leírásához használható hatékonyan. ±a r ±p, ahol az 'a' mantissza, a 'p' a karakterisztika, az 'r' pedig a radix. Normalizálás Az egységes számformátumok érdekében alkalmazzuk. Általában nullára, ritkábban egyesekre normalizálunk. 0,45298 * ,5298 * :33:32
32 Számábrázolási problémák A számítógépes számfeldolgozásnál folyamatos korlát a rendelkezésre álló tárolási szélesség. Hibák: Túlcsordulásról (overflow) beszélünk, ha a művelet eredménye nem fér el a tárolóban. Alulcsordulás esetén az eredmény olyan kicsi, hogy nem ábrázolható. Előfordulhat, hogy a kapott eredmény nem tartozik a számhalmazba. A lebegőpontos számok esetében hét számtartományt különböztethetünk meg. 14:33:32
33 Lebegőpontos számtartományok *10+99> nagy abszolút értékű negatív számok * *10-99 negatív számok tartománya *10-99< kis abszolút értékű negatív számok *10-99> kis pozitív számok * *10+99 pozitív számok tartománya *10+99< nagy pozitív számok tartománya 14:33:32
34 Numerikus adatok tárolása
35 Fixpontos számábrázolás A szám kettes számrendszerbeli együtthatóit kell eltárolni a tárolókban. A kettedes pont célszerűségi okokból vagy az MSB (Most Significant Bit) előtt, vagy az LSB (Last Significant Bit) után helyezkedik el (innen a fixpontos elnevezés). Előbbi esetben tört, az utóbbiban egész számokat ábrázolhatunk. Egész számok tartománya: 0 <= A < 2n Törtszámok tartománya: 2-n <= A < 1 n n-1 n :33:32
36 Negatív fixpontos ábrázolás A negatív számok jelölésére négy különböző módszert használhatunk: Előjeles, abszolút értékes 1-es komplemens 2-es komplemens 2k-1 többletes, ahol a k a karakterisztika tárolási bitjeinek száma Leggyakrabban ez utóbbit használják kiegészítve az előjeles, abszolút értékes ábrázolással. 14:33:32
37 Negatív fixpontos ábrázolás Az előjeles, abszolút értékes ábrázolásnál a legfelső helyiértékű biten jelezzük az előjelet. Ha ez '1', akkor a szám negatív, ha '0', akkor pozitív. A többi helyiértéken tároljuk a szám abszolút értékét. 1 Tárolandó szám abszolút értéke Előjelbitek Az egyes komplemens tárolás során az n-1 bites tárolási helyen az előjeltelen tárolandó számértéket az adott tároló hosszon ábrázolható legnagyobb számra, 2n-1-1-re kiegészítő számsorozatot tároljuk. 14:33:32
38 Negatív fixpontos ábrázolás A kettes komplemenskódú tárolás során az előjeltelen számot adott tárolóhosszon ábrázolható legnagyobb számnál 1-gyel nagyobb számra (2n-1) kiegészítő számot tároljuk. A 2n-1 többletes kódú tárolásnál a tárolandó számértékhez az adott tároló hosszon ábrázolható számnál 1gyel nagyobb számnak megfelelő értéket adunk hozzá annak érdekében, hogy pozitív számot tárolhassunk. Formailag megegyezik a 2-es komplemenssel, de az előjelbit itt mindig nulla. 14:33:32
39 Negatív fixpontos ábrázolás Előjeles, abszolút értékes es komplemens es komplemens n-1 többletes kód 14:33:32
40 Lebegőpontos számábrázolás A szám kettes számrendszerbeli együtthatóit kell eltárolni a tárolókban. A kettedes pont célszerűségi okokból vagy az MSB előtt, vagy az LSB után helyezkedik el (innen a fixpontos elnevezés). Előbbi esetben tört, az utóbbiban egész számokat ábrázolhatunk. Egész számok tartománya: 0 <= A < 2n Törtszámok tartománya: 2-n <= A < 1 1 Karakterisztika 1 Előjelbitek Mantissza 14:33:32
41 ANSI/IEEE 754 szabvány A szabványban az alábbi módon definiálták a számok formái megjelenését: s ± p e A= 1 1.a 2 s a p e a mantissza előjele (0, ha pozitív) egyesekre normalizált mantissza törtrésze (szignifikandus) a karakterisztika eredeti értéke eltolás értéke, nagysága 2m-1-1, ahol m= 8, 11, :33:32
42 ANSI/IEEE 754 szabvány A szabvány az alábbi formátumokat határozza meg: Egyszeres pontosság (single precision), amely 32 bites Dupla pontosság (double precision), amely 64 bites Kiterjesztett pontosság (extended precision), amely 80 bit hosszúságú Négyszeres pontosság (quadrupled precision), amely 128 bit hosszúságú 14:33:33
43 ANSI/IEEE 754 szabvány A tárolt adatformák mindegyike azonos szerkezetű és három részből áll: A szignifikandus előjelbitje, amely 0 pozitív számoknál. A karakterisztika (8, 11 vagy 15 bit), amely 2m-1-1-es többletű formájú. A legkisebb és a legnagyobb érték speciális. A szignifikandus (23, 52, 64 vagy 112 bit) egyesekre normalizált. 14:33:33
44 ANSI/IEEE 754 szabvány A túlcsordulás és az alulcsordulás kezelésére az alábbi adatformátumokat határozza meg: normalizált adatformátum denormalizált adatformátum nulla számérték végtelen számérték nem meghatározható számérték, ahol különbséget tesz "jelző nem szám" és "csendes nem szám" érték között. A "jelző nem szám" lebegőpontos operandusként kivételt okoz. 14:33:33
45 ANSI/IEEE 754 szabvány Normalizált Szignifikandus Karakterisztika E E tetsz. tetsz.kitevő kitevő tetszőleges számérték Denormalizált Karakterisztika 0 kitevő E E tetsz. Szignifikandus nem 0 számérték Nulla Karakterisztika 0 kitevő E E tetsz. Szignifikandus 0 Végtelen Karakterisztika E E tetsz. kitevő Szignifikandus 0 Nem-szám Karakterisztika E E tetsz. kitevő Szignifikandus nem 0 számérték 14:33:33
46 ANSI/IEEE 754 szabvány Jellemző Egyszeres pontosság Előjelbit [bit] 1 Karakterisztika [bit] 8 Mantissza [bit] 23 Teljes hossz [bit] 32 Kitevő többlet 127 Kitevő tartománya Legkisebb normalizált szám Legnagyobb normalizált szám Decimékis számok tartománya Legkisebb Készítette:szám Markó Imre 2006 denormalizált Kiterjesztett és Dupla pontosság négyszeres pontosság /112 80/ :33:33
47 BCD kódolás Mivel csak tíz számjegyet különböztetünk meg, ezért ehhez elegendő négy bit is. Ha egy decimális számot 4 bitre kiegészített bináris megfelelőjével tárolunk, akkor BCD (Binary Coded Decimal) kódolásról beszélünk. Ezzel a módszerrel két számot tárolhatunk egy bájton :33:33
48 Karakterek ábrázolása A karakterek ábrázolásának lehetőségei: ASCII Latin1 Kódlapok Unicode 14:33:33
49 Egyéb tárolási formák Eddigi kódolásokban a kódolt jelsorozatból nem lehetett meghatározni annak tartalmát. Vannak olyan tárolási formátumok, ahol kiegészítő információkat is tárolnak az adatok mellett. Ez bonyolult adatstruktúrák közvetlen, vagy alacsony szintű kezelését teszik lehetővé. A jelölt adattárolás (tagged storage) jellemzője hogy a tárolt adat kiegészül olyan információkkal, amelyek a felhasználási lehetőséget határozzák meg. Ezek hibafeltárási lehetőségeket nyújtanak számunkra. 14:33:33
50 Egyéb tárolási formák Deszkriptoros tárolási forma egyszerű adatstruktúrák kezelését teszi lehetővé kiegészítő információk (hozzáférési jogok, felhasználói cél stb.) hozzáadásával. A deszkriptorban tárolt információ egy része közvetlenül hardver kezelésű, másik része viszont szoftveres úton dolgozható fel. Összetett struktúra (object oriented, capability addressing schemes) alkalmazása a szoftverszintű adatkezelést segíti elő. 14:33:33
51 Műveletvégzés
52 Műveletek típusai Alapvetően a műveleteket aritmetikai és logikai csoportokba sorolhatjuk. Más osztályzás során az adatok tárolási formáját vesszük figyelembe: Fixpontos Lebegőpontos, BCD Speciális (3D, vektoros, MMX) adatok 14:33:33
53 Fixpontos aritmetikai műveletek Összeadás ugyanúgy végezzük, mint decimális számokkal. Az átvitelt a következő helyiértékben figyelembe vesszük Kivonás visszavezethető negatív szám hozzáadására. Szorzás visszavezethető sorozatos összeadásokra, vagy 1bites eltolásokra. Osztás visszavezethető sorozatos kivonásokra, vagy 1-bites eltolásokra. 14:33:33
54 Fixpontos aritmetikai műveletek Kivonás :33:34
55 Lebegőpontos műveletek A lebegőpontos műveleteket visszavezethetjük fixpontos számokra, így végezzük a műveleteket is. Szabályok: Összeadásnál és kivonásnál ha az operandusok karakterisztikái nem egyeznek meg, akkor a mantissza jobbra léptetésével és a karakterisztika egyidejű balra léptetésével tudjuk megoldani. Osztásnál és szorzásnál a mantisszákat fixpontos számként kell osztani, illetve szorozni, a karakterisztikák pedig fixpontos számként összeadásra és kivonásra kerülnek. 14:33:34
56 Logikai műveletek A logikai műveletekhez a BOOL-algebrát használjuk. Az ALU ezeket közvetlenül képes elvégezni, ezért vannak ilyen műveletei utasítások. Három alapművelet létezik, amelyből az összes többi származtatható. NEM ÉS VAGY A 0 1 Y=A 1 0 B A Y=A B B A Y=A B :33:34
57 Aritmetikai és logikai egység felépítése
58 Aritmetikai egység Az ALU fő részegységei: Összeadó egység, két operandus összeadására. Léptető áramkörök, regisztertartalmat léptetik jobbra vagy balra léptetik, vagyis osztják és szorozzák. Logikai áramkörök, a logikai műveletvégzéshez. Regiszterek, az adatok ideiglenes tárolására. Ezek lehetnek csak az ALU által használhatók, de lehetnek általános processzorregiszterek is. Az aritmetikai műveletek eredménye néhány FLAG-et is beállít. 14:33:34
59 Aritmetikai egység A logikai műveletek közül az alapműveleteket közvetlenül képes megoldani. A műveletek az alábbi FALG-ekre vannak hatással: Átvitel (carry) akkor '1', ha a legmagasabb helyiértéken átvitel történt. Nulla (zero) akkor '1', ha az eredmény nulla. Előjel (sign) akkor '1', ha az eredmény negatív. Túlcsordulás (overflow) akkor '1', ha az eredmény nagyobb, mint a tárolható legnagyobb szám. 14:33:34
60 Összeadó áramkörök Az aritmetikai műveleteket összeadásokra vezetjük vissza. Ennek megfelelően az ezeket végrehajtó egység is összeadó áramkör lesz. Teljes összeadó Félösszeadó S S + + C & C & A D B + 1 & A B 14:33:34
61 1-bites ALU felépítése S 1 L Logikai egység S Aritmetikai egység 1 & + & & & Ci Ci-1 & Ci + 1 Ci-1 & 1 & & V01 A V01 B V03 V02 V02 & V04 V03 & & V04 A B & Vezérlő logika V0 V1 A B14:33:34
62 Az ALU felépítése Akkumulátor Szorzóregiszter Adatregiszter Párhuzamos összeadó Kimeneti sín Bemeneti sín + * / Vezérlő egység 14:33:34
63 Műveletek végrehajtása
64 Műveletvégrehajtás lépései A processzor utasításokat hajt végre. Az utasításokkal a feldolgozás ideje alatt más és más egység végez műveleteket. A megértés érdekében bontsuk lépésekre az utasításvégrehajtás folyamatát. Utasításelékészítés, lehívás (FETCH) A processzor az utasításszámláló regiszter tartalmát átviszi a memória címregiszterébe, vagy a címsínt vezérlő cím pufferébe. Ennek alapján kikeresi a tárból az utasítást, majd átviszi a vezérlő egység utasításregiszterébe. 14:33:34
65 Műveletvégrehajtás lépései Utasításszámláló regiszter tartalmának növelése A PC tartalmát megnöveljük az éppen lehívott utasítás hosszának megfelelő értékkel. Így a PC a következő utasítás címét fogja tartalmazni. A PC a kezdeti értékét az operációs rendszertől kapja. Műveleti kód értelmezése Ezalatt megtörténik a műveleti jelrész értelmezése, valamint az operandusok pontos címének meghatározása. 14:33:35
66 Műveletvégrehajtás lépései Operandusok előkészítése Az előző lépésben kidolgozott cím alapján kikeresi az operandusokat a memóriából és átviszi az utasítás által meghatározott helyre. Végrehajtás Ebben a fázisban megtörténik a kijelölt művelet végrehajtása az előkészített operandusokkal. Ha ugróutasítást hajtunk végre, akkor a PC tartalmát ebben a lépésben módosítanunk kell. Eredmény eltárolása Az eredményt eltároljuk az előírt helyre (ALU). 14:33:35
67 Soros végrehajtás folyamata Utasítás dekódolás Utasítás lehívás Végrehajtás címszámítás Memória hozzáférés Nulla? Előjel A B conc ALU kim. Adat mem. LMD MUX IR Reg. tár MUX Ut. tár MUX PC Visszaírás MUX NPC IMM 14:33:35
68 A vezérlő egység
69 A vezérlő egység működése Az elemi lépéseknek a végrehajtása áramköri szinte még tovább bontható. A tényleges végrehajtáshoz adatútvonalak nyitása és zárása szükséges, a megfelelő időzítésű megvalósítását nevezzük műveleti vezérlésnek. Az adatútvonalak nyitása és zárása vezérlési pontokon keresztül, működtetésük vezérlővonalakon keresztül valósulnak meg. A kapuk nyitását és zárását modellezhetjük egy ÉS kapuval. Ennek az egyik bemenetére '1' kapcsolva a kimenetet a másik vonal határozza meg. 14:33:35
70 C3 PC OP C1 Műveleti vezérlés A1 Összeadó Shiftelő Komplementáló AC CÍM C2 A2 Címsín A3 C5 C5 C5 A4 C5 A6 A5 C5 Vezérlősín MAR Főtár MDR M1 PAR Periféria vezérlés PDR P1 Adatsín M2 C5 M3 C5 C5 P2 C5 P3 14:33:35
71 C3 PC OP C1 Műveleti vezérlés A1 Összeadó Shiftelő Komplementáló AC CÍM C2 A2 Címsín A3 C5 C5 C5 A4 C5 A6 A5 C5 Vezérlősín MAR Főtár MDR M1 PAR Periféria vezérlés PDR P1 Adatsín M2 C5 M3 C5 C5 P2 C5 P3 14:33:35
72 C3 PC OP C1 Műveleti vezérlés A1 Összeadó Shiftelő Komplementáló AC CÍM C2 A2 Címsín A3 C5 C5 C5 A4 C5 A6 A5 C5 Vezérlősín MAR Főtár MDR M1 PAR Periféria vezérlés PDR P1 Adatsín M2 C5 M3 C5 C5 P2 C5 P3 14:33:35
73 C3 PC OP C1 Műveleti vezérlés A1 Összeadó Shiftelő Komplementáló AC CÍM C2 A2 Címsín A3 C5 C5 C5 A4 C5 A6 A5 C5 Vezérlősín MAR Főtár MDR M1 PAR Periféria vezérlés PDR P1 Adatsín M2 C5 M3 C5 C5 P2 C5 P3 14:33:35
74 C3 PC OP C1 Műveleti vezérlés A1 Összeadó Shiftelő Komplementáló AC CÍM C2 A2 Címsín A3 C5 C5 C5 A4 C5 A6 A5 C5 Vezérlősín MAR Főtár MDR M1 PAR Periféria vezérlés PDR P1 Adatsín M2 C5 M3 C5 C5 P2 C5 P3 14:33:36
75 A műveleti vezérlés megoldásai A műveleti vezérlést két, alapvetően eltérő módon valósíthatjuk meg: Huzalozott (hardver) műveleti vezérlés Ebben az esetben az utasítás feldolgozását jelentő elemi tevékenységek sorrendjének vezérlését bonyolult sorrendi hálózattal valósítják meg. Ez megfelelő sorrendben és időzítéssel adja ki a kapukat vezérlő jeleket. A megoldás nagyon gyors, de merev és költséges megoldás. A vezérlést PLA-val oldják meg, amely ÉS és VAGY kapuk sorozata. Ez a megoldás célgépekben használatos, ahol fontos a nagyon gyors működés. 14:33:36
76 Huzalozott mikroprogramozás Címsín PC Prog. mem. cím MŰV. Program tároló PLA C1 Címsín Adat mem. cím Adattároló ALU Adatsín 14:33:36
77 A műveleti vezérlés megoldásai Mikroprogramozott (szoftver) műveleti vezérlés Ebben az esetben az elemi tevékenységek sorrendjét egy tárolt program utasításai vezérlik. A program utasításai a mikroutasítások, amelyek két részből állnak: a következő mikroutasítás címéből és a kapukat közvetlenül vagy közvetetten működtető vezérlőmezőből. A makroszintű gépi utasítás adja meg a műveletet vezérlő mikroprogram kezdőcímét, amelynek mikroutasításait sorra végrehajtva történik meg az utasítás végrehajtása. A mikroprogram elméletileg cserélhető, ez lehetővé tesz változtatható utasításkészletű processzorokat. 14:33:36
78 A mikroprogramozott vezérlés A vezérlőegységnek azt a részét, amely a műveleti vezérlést oldja meg, mikrovezérlőnek nevezik. A mikrovezérlő felépítését alapvetően meghatározza az alkalmazott mikroutasítás struktúra. Horizontális mikroutasítások Ezeknél a vezérlési mező minden bitje önálló funkciót tölt be, egy-egy vezérlési pont engedélyezésére és tiltására vagy állapotjelző beállítására szolgál. Sok esetben nem elég széles a vezérlési mező, ezért ún. kódolt (packed) mezőket alkalmaznak, amelyek a vezérlési mező egy-egy csoportját foglalják össze, és a további dekódolással kapjuk meg a vezérlőjeleket. 14:33:36
79 A horizontális vezérlés Horizontális mikroutasítás Kódolt horizontális mikroutasítás Köv. ut. címe K.m K.m K.m K.m Köv. ut. címe Vezérlő bitek Horizontális mikroutasítás Nanout. címe Vezérlő bitek Köv. ut. címe Nanotár Vezérlő14:33:36 bitek
80 A horizontális vezérlés A mikroprogramtár csökkentéséhez kétszintű tárolási rendszert használnak. A mikroutasítás vezérlési mezője azt a címet tartalmazza, amely a nanotárban a tényleges vezérlési mezőre mutat. Ennek az előnye, hogy több mikroutasítás is használhatja ugyanazokat a vezérlési jelsorozatot plusz tárolókapacitás lekötése nélkül. Hátránya, hogy az utasítások kiértékelése hosszabb időt vesz igénybe. 14:33:36
81 A vertikális vezérlés Vertikális mikroprogramozott műveleti vezérlés olyan struktúra, ahol a mikroutasítások csak egy-egy elemi művelet elvégzését engedélyezik. A gépi kódú utasítás egymás utáni mikroutasítások halmazaként hajtható végre. A mikroprogram tartalmazhat eljárásokat, szubrutinikat, felépítése hasonlít a makroprogramokéhoz. A gyorsabb működés miatt regisztertárakat alkalmaznak, a mikroutasítások elsősorban ezeket használják. A mikroutasítás néhány bites része mint műveleti jelrész határozza meg, hogy mikroutasítás vezérlési mezőinek előírásait hogyan kell alkalmaznia a mikrovezérlőnek. 14:33:36
82 A horizontális vezérlés Intel processzorok mikroutasításainak szerkezete 5 5 SOURCE 3 TYPE DESTINATION ALU 4 ALU MŰV. 3 REGISZTER 1 C 504 * 21 BIT Motorola processzorok mikroutasításainak szerkezete Általános célú mikroutasítás 2 Kétszintű mikrotároló TYP 0 FC Következő ut. címe trap Feltételes mikroutasítás 2 8 FC Köv. ut. címe 5 Felt. FC = külső kapcsolat típusa 17 bit 1 1 Felhasznált ter bit prefetch 1 1 max prefetch 336 max 1024 nanotár 14:33:36
83 A vertikális vezérlés Cím Ugrási cím MUX Mikroutasításszámláló regiszter Betöltés Külső feltételek µpc Léptetés Mikroprogramtár Mikroutasítás Dekóderek Vezérlő jelek 14:33:36
84 A CISC RISC architektúra A CISC processzoroknál a magas szintű programozási nyelv segítségével készült felhasználói programot az összetett utasításokkal rendelkező gépi nyelvre fordítják, majd ezeket a mikroprogramok segítségével az adott hardveren értelmezik és végrehajtják. Az utasításvégrehajtás egy mikroutasításokkal megvalósított értelmező rendszer segítségével történik meg. Az adatmozgás rendszerint a memória és a regiszterek között történik. 14:33:37
85 A CISC RISC architektúra A RISC processzorok esetében a magasszintű programozási nyelven készült programot egyszerű, gépi kódú utasításokból álló kódra fordítják le. Ez a kód már nem igényli a mikroutasításokkal megvalósított értelmező rendszert, mivel az utasítások közvetlenül végrehajthatók. A lefordított programot a főtárból a cache-be mozgatjuk, ebből hajtjuk végre. Adatmozgás rendszerint regiszterek között zajlik. A RISC rendszerekhez komoly fordítóprogramokra van szükség! 14:33:37
86 Gyorsítási lehetőségek
87 Gyorsítási lehetőségek A processzor gyorsítására az alábbi lehetőségeink vannak: Órajel növelése, amelynek technológiai korlátjai vannak. Rendszertechnikai gyorsítás, amely a processzor speciális szervezésével alakítható ki. Ennek fajtái. Ezekben az esetekben párhuzamosítást használunk. Célprocesszorok Pipeline Szuperskalár felépítés 14:33:37
88 Pipeline A párhuzamosítás akkor lehetséges, ha a folyamat olyan részekre bonthatók, melyek más-más erőforrásokat és egységeket kötnek le. Amint felszabadul egy erőforrás, a következő folyamat már igénybe veheti azt. A folyamat fázisai a soron következő folyamat indulási állapotát állítják elő. A pipeline végrehajtása történhet szinkron és aszinkron ütemezéssel. 14:33:37
89 Pipeline A szinkron ütemezés során minden egység azonos ütemezéssel dolgozik, feladatát mindegyik ugyanakkor kezdi meg. Az időzítéseket a leglassabb egység határozza meg. A megoldás hátránya, hogy a különböző folyamatok végrehajtásához eltérő időre van szükség. A CISC rendszerekre ez fokozottan igaz. Az adatáramlás folyamatosságának biztosítására átmeneti tárolókat használnak az adatfolyamban. 14:33:37
90 Pipeline Az aszinkron ütemezés során az egyes fokozatok jelzik egymásnak az adott feladat befejeződését. A következő csak ezután kezdhet dolgozni a kapott adattal. Ez azt is jelenti, hogy az aktuális egység készen áll a következő folyamatot fogadni. 14:33:37
91 Pipeline működése Soros utasításfeldolgozás FETCH Dekódolás Op. lehívás Végrehajtás Visszaírás FETCH Dekódolás n+1. utasítás n. utasítás Pipeline utasításvégrehajtás FETCH Dekódolás FETCH Op. lehívás Végrehajtás Dekódolás FETCH Visszaírás Op. lehívás Végrehajtás Dekódolás n. utasítás Visszaírás Op. lehívás Végrehajtás Visszaírás 14:33:37
92 Soros végrehajtás folyamata Utasítás dekódolás Utasítás lehívás Végrehajtás címszámítás Memória hozzáférés Nulla? Előjel A B conc ALU kim. Adat mem. LMD MUX IR Reg. tár MUX Ut. tár MUX PC Visszaírás MUX NPC IMM 14:33:37
93 Pipeline végrehajtás folyamata Memória hozzáférés MUX Nulla? Adat mem. MUX MUX Reg. tár MUX PC Ut. tár Végrehajtás címszámítás Visszaírás Utasítás dekódolás Utasítás lehívás Előjel 14:33:37
94 Pipeline fajtái Multifunkcionális pipeline során a folyamatok nem ugyanazokat az erőforrásokat használják fel. Egyfunkciós pipeline esetén minden folyamat ugyanazokkal az erőforrásokkal gazdálkodik. Lineáris pipeline során minden folyamat egyszer használ egy erőforrást. A nemlineáris pipeline során egy erőforrás többször is használható egy folyamat végrehajtása során. Az utasításvégrehajtás lépéseit úgy kell meghatározni, hogy minden lépést egy konkrét részáramkör hajtson végre. 14:33:37
95 Utasításvégrehajtás lépései A felbontásnál az alábbi szempontokat kell figyelembe venni: Egyes lépések erőforrásigénye: minden lépés valamilyen erőforrást köt le. Előfordulhat olyan eset, hogy lépés csak több erőforrás igénybevételével hajtható végre. Időszükséglet: Az egyes fázisok időszükséglete is befolyásolja a fázisok számát. Mindig a leghosszabb elérés fogja meghatározni a maximális sebességet és közvetve a lépések számát is. Áramköri problémákat is figyelembe kell venni, mivel előfordulhat, hogy egy feladat csak nagyon bonyolult áramkörrel oldható meg, ami több hibalehetőséget és drágább előállítási költséget von maga után. 14:33:37
96 Utasításvégrehajtás problémái A folyamatos utasításvégrehajtást az alábbi műveletek zavarhatják meg leginkább: tárolóhivatkozású utasítások (időigényesek) vezérlésátadó utasítások (feltételes, feltétel nélküli és ciklusok, másik címre viszik a vezérlést) megszakítások, kivételek (más címen folytatódik) Ezek meglehetősen nagy számban találhatók meg az utasításfolyamban, ezért fontos a megfelelő kezelésük. Mindhárom esetben a folyamatos utasításvégrehajtást meg kell szakítani vagy fel kell függeszteni, ami lyukakat eredményez a folyamatban. Ezek csökkentik a pipeline hatékonyságát. 14:33:38
97 Memóriautasítások kezelése Várakozási állapotok beiktatása A memóriautasításokat követő utasítások végrehajtását felfüggesztjük várakozási állapotok (WAIT) beiktatásával addig, míg be nem fejeződik a művelet. A pipeline-ban lyukak keletkeznek. Ha sok ilyen művelet van, a feldolgozás hatékonysága jelentősen lelassulhat. F F F F F D D E1 D D W E E E E E2 D W W W W n+4. utasítás n+3. utasítás n+2. utasítás n+1. utasítás n. utasítás 14:33:38
98 Memóriautasítások kezelése Késleltetett memóriautasítás Abban az esetben használjuk, ha a következő utasításnak szüksége van az előzőleg beolvasott adatra. Ilyenkor egy olyan utasítást használunk (NOP), amelynek erre nincs szüksége, a végrehajtást pedig nem borítja fel. Az utasításátrendezést a fordítóprogram végzi el! F F D E F D E W F D E W D E1 E2 W W n+3. utasítás n+2. utasítás n+1. utasítás n. utasítás 14:33:38
99 Elágazások kezelése A legnagyobb problémát jelentik. Az oka, hogy az ugrási cím csak a végrehajtás fázisában válik ismertté, másrészt nem a soron következő címről kell folytatni a végrehajtást. Ilyenkor a pipeline-ban lévő utasításokat törölni kell, majd ismét feltölteni a pipeline-t. A feltétel nélküli vezérlésátadó utasítások esetében a vezérlőegység addig késlelteti a csővonalba belépő utasításokat, míg az utasítás kiértékelése megtörténik. Hátránya, hogy a csővonalban lyukak keletkeznek, de nem kell ürítést végezni. Másik lehetőség szerint a processzor kiüríti ilyen utasítás esetén a csővonalat. 14:33:38
100 Elágazások kezelése A feltételes vezérlésátadó utasítások és ciklusutasítások eseténben legfontosabb meghatározni az ugrás várható irányát. Két lehetősége: Statikus előrejelzés során a fordítás során kell ezt megállapítani és így olyan utasításfolyamot generálni, hogy folyamatos legyen annak végrehajtása. Dinamikus előrejelzés futás közben vizsgálatot jelent. Egyik megoldás szerint egy táblázatban tárolja az ugróutasítások címeit és figyeli a feltételek teljesülését. A másik módszer egy cache-tárban tárolja az ugróutasítások és az ugrás helyének a címeit. Amikor ugyanazt az utasítást kell feldolgozni, a cache-ből veszi ki azt. 14:33:38
101 Elágazások kezelése Az elágazások problémáinak feloldására az alábbi lehetőségeink vannak: pipeline törlése (flushing, squashing) pipeline leállítása (pipeline freezing) elágazás előrejelzés (branch prediction) spekulatív utasítás végrehajtás (speculative execution) késleltetett elágazás (delayed branch) elágazás összevonás (branch folding) pipeline többszörözés 14:33:38
102 Pipeline törlése A vezérlőegység folyamatosan tölti fel a csővonalat. Ha a soron következő utasítás ugróutasítás, akkor az addig betöltött utasítások folyamatait törli, majd ismét feltölti a csővonalat a megfelelő címről. Minden értéket vissza kell állítani, amit a törölt folyamatok megváltoztattak. Visszaírás I Végrehajtás I Dekódolás Előkészítés I I K K I+1 I+1 I+2 I+1 I+2 I+3 K K K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 14:33:38
103 Pipeline leállítása Abban az esetben, ha a soron beolvasott utasítás vezérlésátadó utasítás, a csővonal feltöltése mindaddig felfüggesztésre kerül, amíg az ugrási cím rendelkezésre nem áll. Természetesen ezt a megoldást leginkább a dinamikus előrejelzés alkalmazása során használhatjuk. Visszaírás I Végrehajtás I Dekódolás Előkészítés I I ÁLL ÁLL K ÁLL ÁLL K ÁLL ÁLL K ÁLL ÁLL K K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 14:33:38
104 Elágazás előrejelzés A processzor vezérlőegysége meg tudja jósolni, hogy a következő utasítás melyik memória címen lesz megtalálható és onnan be tudja tölteni. Ehhez speciális vezérlőegységre van szükség, amely már bizonyos szintű elődekódolást végez a soron következő utasításon. Pipeline Csővonal 1 Utasítás 1 Utasítás 2 Utasítás 3 Utasítás 4 Dekóder Végrehajtó egység Visszaírás Csővonal 2 14:33:38
105 Elágazás előrejelzés Pipeline Out-of-Order végrehajtó egység Időzítő Utasítás 1 Dekóder Utasítás 2 Utasítás 3 Utasítás 4 Dekóder Végrehajtó egység Dekóder ROB Visszaírás 14:33:38
106 Elágazás előrejelzés - Netburst Pipeline Out-of-Order végrehajtó egység Időzítő Utasítás 1 Utasítás 2 Utasítás 3 Dekóder Dekódolt utasítások (cache) Végrehajtó egység Utasítás 4 ROB Visszaírás 14:33:38
107 Spekulatív utasításvégrehajtás A spekulatív végrehajtás az utasítások sorrendjének olyan manipulációját jelenti, amelynek eredményeként a teljesítmény a maximálisra növelhető, figyelembe véve a szuperskalár felépítés sajátosságait és az alkalmazásával kapcsolatos problémákat. A technika használatával a processzor foglaltsága esetén olyan utasítás kerül végrehajtásra - természetesen amennyiben erre lehetőség van -, amely más erőforrásokat köt le. Természetesen az ilyen esetekben az utasítások és az adatok egymással való függőségének a kezelésének kiemelkedő szerepe van. 14:33:38
108 Spekulatív utasításvégrehajtás while (1){ code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ;} //következő code //kilépés, ha nincs több //a feltétel telj. //reset //új code //kilépés, ha nincs több //speciális esetben //végrehajtjuk az utolsó //code-ot //utasításhurok //eredmények a stackbe //kiolvasás a stackből //ha új, új táblabejegyzés //az utolsó code frissítése 14:33:39
109 Spekulatív utasításvégrehajtás Az aktuális folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; A következő folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; 14:33:39
110 Spekulatív utasításvégrehajtás A aktuális memóriafolyamat kimenetének függőségeit eltávolíthatják Az A következő folyamat a helyi spekulatív tárolókkal code = getcode(); code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; 14:33:39
111 Spekulatív utasításvégrehajtás Az aktuális folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; A következő folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; 14:33:39
112 Spekulatív utasításvégrehajtás Az új folyamatok kezdetére jellemző, hogy: Az aktuális folyamat következő folyamat a free_ent értékét egyszer A megnövelik (gyakran) code = getcode(); code = getcode(); azonos stackp értéket használnak (mindig) if (code ==-1)goto exit; if (code ==-1)goto exit; if (...){ gyakran hamis free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; gyakran igaz (stackp>base); do while if ( ) free_ent++; oldcode = incode ; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; 14:33:39
113 Spekulatív utasításvégrehajtás Az aktuális folyamat A következő folyamat code = getcode(); code = getcode(); if (code ==-1)goto exit; if (code ==-1)goto exit; if (...){ if (...){ gyakran hamis free_ent=...; free_ent=...; code=getcode(); code=getcode(); if (code==-1) goto exit;} if (code==-1) goto exit;} incode = code; incode = code; gyakran hamis if (code>=free_ent){ if (code>=free_ent){ *stackp++=...; Álfüggőségek *stackp++=...; code=oldcode;} code=oldcode;} while (code>=256){ while (code>=256){ *stackp++=...;...; *stackp++=...;...; do while (stackp>base); do while (stackp>base); if ( ) free_ent++; if ( ) free_ent++; oldcode = incode ; oldcode = incode ; 14:33:39
114 Spekulatív utasításvégrehajtás Az aktuális folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; A következő folyamat code = getcode(); if (code ==-1)goto exit; if (...){ free_ent=...; code=getcode(); if (code==-1) goto exit;} incode = code; if (code>=free_ent){ *stackp++=...; code=oldcode;} while (code>=256){ *stackp++=...;...; do while (stackp>base); if ( ) free_ent++; oldcode = incode ; 14:33:39
115 Spekulatív utasításvégrehajtás Fő szál PC PC Függőség vizsgálat Regiszterek Függőség vizsgálat Továbbítás Eredmény puffer Spekulatív szál Regiszterek Eredmény puffer Spekuláció Végrehajtás Cache / Operatív tár 14:33:39
116 Késleltetett elágazás A fordítás során a fordítóprogram az ugróutasítások mögé olyan utasításokat helyez, amelyek az elágazástól függetlenül végrehajthatók, vagy éppen nem csinálnak semmit (NOP). Ennek eredményeként nem lesz üres állapot a csővonalban. Ezzel egy késleltetési rést (delay slot) hozunk létre, amelynek mérete maximálisan n-1, ahol 'n' a csővonal állapotainak száma. Visszaírás I Végrehajtás I Dekódolás Előkészítés I I NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP K K K K K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 K+1 K+2 K+3 14:33:39
117 Adatok kezelésének problémái A pipeline problémákat okoz az operandusok esetében is. Akkor jelentkezik olyan, ha olyan utasítás van a csővonalban, amelynek az éppen végrehajtott utasítás fogja az operandust átadni. Ebben az esetben az operandus nincs még meg akkor, mikor már szükség lenne rá. Ezt nevezik HAZARD-nak. 14:33:39
118 Pipeline adtfeldolgozási hibák Példaprogram ADD SUB AND OR XOR R1, R2, R3 R4, R5, R1 R6, R1, R7 R8, R1, R9 R10, R1, R11 Minden utasítás, ami az első ADD után van, annak eredményére hivatkozik. A hagyományos pipeline feldolgozáshoz szükséges a memóriába visszaírás állapotának a kivárása, különben hibás regisztertartalommal dolgoznának. 14:33:39
119 Pipeline adtfeldolgozási hibák IM DM Reg. IM DM Reg. IM Reg. DM Reg. IM Reg. DM Reg. IM Reg. Reg. Reg. DM Reg. 14:33:40
120 Pipeline adtfeldolgozási hibák IM DM Reg. IM DM Reg. IM Reg. DM Reg. IM Reg. DM Reg. IM Reg. Reg. Reg. DM Reg. 14:33:40
121 Adatok kezelésének problémái A pipeline-ban előforduló hazardok Írás utáni írás során a második utasítás írása után módosítja ugyanazt az első. Írás utáni olvasás során a második utasítás felülír egy olyan adatot, amelyet az első utasítás olvasott volna be. Olvasás utáni írás során a második utasítás ezt megelőzően olvas ki egy operandust, hogy az az első már módosította volna. Olvasás utáni olvasás nem okoz problémát. 14:33:40
122 A HAZARD-ok megszüntetése A legegyszerűbb megoldás, hogy addig nem engedjük belépni a csatornába az utasítás, míg meg nem szűnik a függőség. Utasítás átrendezés Ennek során az utasításokat úgy rendezi át vagy a vezérlő egység, vagy a fordítóprogram, hogy azok végrehajtási sorrendje ne okozzon adatütközést. Scoreboarding Minden regiszter tartalmaz egy, a módosítására utaló jelzőbitet. Az utasítások ezt megvizsgálva tudják, hogy abban a megfelelő adatot találják-e meg. Egyébként késleltetni kell a soron következő utasítást. 14:33:40
123 A HAZARD-ok megszüntetése Adat előreengedés (data forwarding) Ebben az esetben ha a második utasításnak szüksége van az előtte lévő művelet eredményére, akkor azt rendelkezésre állása után rögtön, a vezérlőegységen belül továbbítjuk a következő utasításnak. Adatfolyam analízis A processzor már az utasítás-dekódolás folyamata során analizálja, hogy milyen operandusokra van annak szüksége. Ha függőséget talál, akkor megpróbálkozik az utasításokat átrendezni ennek feloldására. 14:33:40
124 Szuperskalár processzorok Szuperskalár processzorok képesek több utasításfolyam végrehajtása egy órajelciklus alatt. Problémák: Párhuzamos dekódolás, elődekódolás A párhuzamos utasításvégrehajtáshoz szükség van párhuzamosan működő dekódoló és végrehajtó egységekre. Ezek a függőségi problémát megtöbbszörözik. L1 cache L1 cache 1 ut. dekódolása Utasítás puffer Utasítás puffer Dekódolás/ kibocsájtás Dekódolás/ kibocsájtás PIPELINE n ut. dekódolása PIPELINE 1...n 14:33:40
125 Párhuzamos dekódolás A függőségi vizsgálatok időigényessége miatt az 1. és 2. szintű cache között elődekódolást végeznek. Ennek során a dekódolás feladatainak egy része már ekkor végrehajtásra kerül. Az utasítás kiegészítik erre a műveltre utaló bitekkel. L2 cache Elődekódoló L1 cache 14:33:40
126 Utasításkibocsátás, várakoztatás A szuperskalár utasításkibocsátás összetevői: Kibocsátási ráta megadja a processzor által ciklusonként kibocsátható utasítások számát. Kibocsátási politika a függőségek kezelését jelenti. Típusai: Adatfüggőségek a regiszterek között, amelyet regiszterátnevezéssel lehet megszüntetni. Vezérlésfüggőségek feloldását blokkolással (utasításkibocsátás felfüggesztése) vagy spekulatív elágazáskezeléssel lehet megoldani. A függőségek kezelésének egyik legelterjedtebb szerkezeti megoldása a végrehajtó egység előtti pufferelés. 14:33:40
127 Utasításkibocsátás, várakoztatás Utasítás puffer Dekódolás / Kibocsátás Várakoztató puffer Várakoztató puffer Várakoztató puffer Függőség ell. Kiküldés Függőség ell. Kiküldés Függőség ell. Kiküldés Végrehajtó egység Végrehajtó egység Végrehajtó egység 14:33:40
128 Regiszter átnevezés Célja az ál-adatfüggőségek feloldása, amely akkor alakul ki, ha a programozók csak kevesebb regisztert használhatnak, mint amennyi fizikailag elérhető lenne és ilyenkor függőség lép fel a használt regiszterek között. A regiszterátnevezés során a függőséget okozó utasítás regiszterét egy másik regiszterrel helyettesítik. Fajtái. Statikus, amelyet a fordítóprogram valósít meg Dinamikus, amely futás közbeni regiszterátnevezést jelent Az átnevezéshez egy átnevező puffertárat és egy leképzőtáblázatot használnak. 14:33:40
129 Szuperskalár architektúra Spekulatív elágazásbecslés A vezérlőegység valamilyen módon megpróbálkozik kitalálni az ugróutasítás kimenetét. Párhuzamos végrehajtás Probléma: az eredmények nem az utasítások sorrendjében jönnek létre. Feloldásához átmeneti tárolóba helyezik az adatokat, amely tartalmát már a helyes sorrend alapján írják ki. A célra a ROB (Re-Order Buffer) regisztert használják. Az utasítás lehet véget ért vagy befejezett. 14:33:40
130 Spekulatív elágazás-feldolgozás A vezérlőegység valamilyen módon megpróbálkozik kitalálni az ugróutasítás kimenetét. Ez történhet Statikusan Dinamikusan 14:33:41
131 A 8086-os processzor Adatmutató és Indexregiszterek (8 szó) Szegmensregiszterek Utasítás regiszter (5 szó) ALE A19-A16 AD15-AD0 Sínillesztő egység 16 bites ALU és FLAG regiszter MEM/IO INTA 6 bájtos utasítássor Vezérlő- és időzítő egység NMI INTR HOLD HLDA CLK LOCK RESET 14:33:41
132 Minimális konfiguráció 14:33:41
133 Maximális konfiguráció 14:33:41
134 A 8088-as processzor Adatmutató és Indexregiszterek (8 szó) Szegmensregiszterek Utasítás regiszter (5 szó) ALE A19-A16 AD7-AD0 Sínillesztő egység 16 bites ALU és FLAG regiszter A8-A15 MEM/IO INTA 4 bájtos utasítássor Vezérlő- és időzítő egység NMI INTR HOLD HLDA CLK LOCK RESET 14:33:41
135 A os processzor 3 A19-A16 2 Címző és végrehajtó egység Sínvezérlő és utasításkezelő egység HLDA HOLD LOCK MEM/IO INTA D15-D0 1 CLK RESET NMI INTR 14:33:41
136 Címző és végrehajtó egység Szegmens méret Offset összeadó Aritmetikai és logikai egység Regisztertár 2 Sínvezérlő egység Szegmens határ ellenőrzés Fizikai cím összeadó Szegmens bázis 3 Vezérlés 1 NMI INTR 14:33:42
137 Sínvezérlő és utasításkezelő egység 3 Címsín vezérlő Előolvasó 2 CPU kiterjesztés Sín vezérlés Adatvonal vezérlés A19-A16 HLDA HOLD LOCK MEM/IO INTA D15-D0 6 bájtos utasítás sor 1 3 dekódolt utasítás sor Utasítás dekóder 14:33:42
138 Az i386-os processzor 6 Címszámító egység Végrehajtó egység NMI INTR HLDA HOLD RESET CLK Sínvezérlő és utasításkezelő egység A31-A0 LOCK MEM/IO INTA D31-D :33:42
139 Végrehajtó egység Szorzó- és osztó áramkör Effektív címsín Effektív címsín 2 Címszámító egység Védelmi ellenőrző egység Belső vezérlő sín 3 Dekódoló és sorbaállító egység Barrel shifter ALU regiszterek Vezérlő ROM Sínvezérlő és utasításkezelő egység 1 4 ALU vezérlés Dedikált ALU sín 5 14:33:42
140 Címszámító egység Szegmentáló egység Lapozó egység Deszkriptor regiszterek Lap cache 2 Eltolási érték sín 9 Kód fetch / Lap fetch Összeadó Limit PLA Végrehajtó egység 1 3 bemenetű összeadó Lineáris címsín Effektív címsín Effektív címsín Fizikai címsín Vezérlő PLA 3 Belső vezérlő sín Sínvezérlő és utasításkezelő egység 14:33:42
141 Sínvezérlő és utasításkezelő egység Címszámító egység Eltolási érték 3 dekódolt utasítás sor 4 Kód fetch / Lap fetch Belső vezérlő sín Végrehajtó egység 3 5 Fizikai címsín Utasítás dekóder Lineáris címsín Sín vezérlés A31-A0 Csővonal vezérlés Prefetcher Vezérlés Címsín meghajtó 16 bájtos kódsor NMI INTR HLDA HOLD RESET CLK Kód szál Multiplexer Adatsín meghajtó D31-D0 Dedikált ALU sín 14:33:42
142 Az i486 DX processzor 1 NMI INTR HLDA HOLD RESET CLK 2 3 Címszámító és vezérlő egység Sínvezérlő és utasításkezelő egység A31-A0 LOCK MEM/IO INTA D31-D :33:42
143 Végrehajtó egység 1 2 Lineáris cím Bázis/index cím Belső sínrendszer Barrel shifter ALU regiszterek Deszkriptor regiszterek ALU Limit PLA Mikroutasítások Lapozó egység 4 Fizikai cím TLB 5 6 Eltolási cím Lebegőpontos egység Vezérlő és védelmi egység Lebegőpontos regiszterek Vezérlő ROM 3 Szegmentáló egység Dekódolt utasítások :33:42
144 Sínvezérlő és utasításkezelő egység 1 Belső sínrendszer 2 CLK Lineáris cím Cache vezérlés Adatsín meghajtó 8 KB cache Sín vezérlés Fizikai cím Órajel sokszorozó Belső órajel Burst sín vezérlés Eltolási cím Prefetcher Mikroutasítások Dekódolt utasítások 7 8 A31-A0 Írási puffer 4 x Cím meghajtó Utasítás dekódoló Kód 32 Bájtos kód sor 2 x 16 Bájt D31-D0 MEM/IO INTA NMI INTR HLDA HOLD RESET Sínméret vezérlés Cache vezérlés Paritás generátor Határ ellenőrzés 14:33:42
145 A Pentium processzor Utasítás dekódoló A31-A0 D63-D0 MEM/IO INTA NMI INTR HLDA HOLD RESET 1 Sínvezérlő egység Végrehajtó egység 6 8 Lebegőpontos és MMX egység 14:33:43
146 Sínvezérlő egység 64 bites adatsín Vezérlés DP logika 32 bites címsín 1 2 A31-A0 D63-D0 MEM/IO INTA NMI INTR HLDA HOLD RESET Adat Vezérlés BIU Lapozó egység APIC 14:33:43
147 Utasítás dekódoló 1 2 Ugrási cél puffer TLB Utasítás cache 8 (16) KB Vezérlő ROM Prefetch puffer Utasítás dekódoló 6 Vezérlő egység :33:43
148 Végrehajtó egység Címszámító egység U pipeline Címszámító egység V pipeline Egész műveletvégző egység regiszterei ALU U pipeline ALU V pipeline 7 Barrel shifter 8 TLB 2 Adat cache 8 (16) KB 1 14:33:43
149 Lebegőpontos és MMX egység 6 MMX egység 7 Lebegőpontos egység Vezérlés Regisztertár Összeadás 8 Szorzás Osztás 14:33:43
150 A Pentium III processzor 14:33:43
151 A Pentium 4 processzor 14:33:43
152 Az AMD K6 processzor 14:33:44
153 Az AMD K6-2 processzor 14:33:44
154 Az AMD K6-2 processzor 14:33:45
155 Az AMD K6-3 processzor 14:33:45
156 Az AMD Athlon processzor 14:33:45
Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység
Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését
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
Digitális technika VIMIAA01
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 Fehér Béla BME MIT Digitális Rendszerek Számítógépek
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák
7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy
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
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.
A számítógép alapfelépítése
Informatika alapjai-6 számítógép felépítése 1/8 számítógép alapfelépítése Nevezzük számítógépnek a következő kétféle elrendezést: : Harvard struktúra : Neumann struktúra kétféle elrendezés alapvetően egyformán
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
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
Egyszerű RISC CPU tervezése
IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely
A MiniRISC processzor
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT
A Számítógépek felépítése, mőködési módjai
Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek felépítése, mőködési módjai Mikroprocesszoros Rendszerek Felépítése Buszrendszer CPU OPERATÍV TÁR µ processzor
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás
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
A mikroszámítógép felépítése.
1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az
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
INFORMATIKA MATEMATIKAI ALAPJAI
INFORMATIKA MATEMATIKAI ALAPJAI Készítette: Kiss Szilvia ZKISZ informatikai szakcsoport Az információ 1. Az információ fogalma Az érzékszerveinken keresztül megszerzett új ismereteket információnak nevezzük.
Számítógép Architektúrák
Számítógép Architektúrák Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth
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 InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson
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.
Az INTEL D-2920 analóg mikroprocesszor alkalmazása
Az INTEL D-2920 analóg mikroprocesszor alkalmazása FAZEKAS DÉNES Távközlési Kutató Intézet ÖSSZEFOGLALÁS Az INTEL D 2920-at kifejezetten analóg feladatok megoldására fejlesztették ki. Segítségével olyan
HARDVERKÖZELI PROGRAMOZÁS1
HARDVERKÖZELI PROGRAMOZÁS1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2015.05.11 Követelmények Gyakorlat (aláírás) Óralátogatás (maximum hiányzás: 3) C programozási beugró
Máté: Assembly programozás
Dr. Máté Eörs docens Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em. 213 6196, 54-6196 (6396, 54-6396) http://www.inf.u-szeged.hu/~mate Tantárgy leírás: http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/
Számítógép Architektúrák (MIKNB113A)
PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Számítógép Architektúrák (MIKNB113A) 4. előadás: Utasítás végrehajtás folyamata: címzési módok, RISC-CISC processzorok Előadó:
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
Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár
Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár Adattípusok Dr. Seebauer Márta főiskolai tanár seebauer.marta@roik.bmf.hu Az adatmanipulációs fa z adatmanipulációs fa
Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk
Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk Elméleti anyag: Processzoros vezérlés általános tulajdonságai o z induló készletben
Matematikai alapok. Dr. Iványi Péter
Matematikai alapok Dr. Iványi Péter Számok A leggyakrabban használt adat típus Egész számok Valós számok Bináris számábrázolás Kettes számrendszer Bitek: 0 és 1 Byte: 8 bit 128 64 32 16 8 4 2 1 1 1 1 1
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
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)
Az integrált áramkörök kimenetének kialakítása
1 Az integrált áramörö imeneténe ialaítása totem-pole three-state open-olletor Az áramörö általános leegyszerűsített imeneti foozata: + tápfeszültség R1 V1 K1 imenet V2 K2 U i, I i R2 ahol R1>>R2, és K1,
Ö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
Máté: Számítógép architektúrák
Elágazás jövendölés ok gép megjövendöli, hogy egy ugrást végre kell hajtani vagy sem. Egy triviális jóslás: a visszafelé irányulót végre kell hajtani (ilyen van a ciklusok végén), az előre irányulót nem
Assembly. Iványi Péter
Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter
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)
Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással
Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Megoldás Elméleti anyag: Processzor belső felépítése, adat
DSP architektúrák dspic30f család
DSP architektúrák dspic30f család A Microchip 2004 nyarán piacra dobta a dspic30f családot, egy 16 bites fixpontos DSC. Mivel a mikróvezérlők tantárgy keretén belül a PIC családdal már megismerkedtetek,
Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai
Újrakonfigurálható technológiák nagy teljesítményű alkalmazásai Gyakorlat: SSE utasításkészlet Szántó Péter BME MIT, FPGA Laboratórium Vektorizáció Inline assembly Minden fordító támogatja (kivéve VS x64
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.
Szupermikroprocesszorok és alkalmazásaik
Szupermikroprocesszorok és alkalmazásaik VAJDA FERENC MTA Központi Fizikai Kutató Intézet Mérés- és Számítástechnikai Kutató Intézet 1. Bevezetés ÖSSZEFOGLALÁS Egy rétegezett modell alapján mutatjuk be
Assembly Programozás Rodek Lajos Diós Gábor
Assembly Programozás Rodek Lajos Diós Gábor Tartalomjegyzék Ábrák jegyzéke Táblázatok jegyzéke Előszó Ajánlott irodalom IV V VI VII 1. Az Assembly nyelv jelentősége 1 2. A PC-k hardverének felépítése 4
Informatikai Rendszerek Alapjai
Informatikai Rendszerek Alapjai Egész és törtszámok bináris ábrázolása http://uni-obuda.hu/users/kutor/ IRA 5/1 A mintavételezett (egész) számok bináris ábrázolása 2 n-1 2 0 1 1 0 1 0 n Most Significant
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
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?
Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu
Számítógép architektúrák I. Várady Géza varadygeza@pmmik.pte.hu 1 Bevezetés - fogalmak Informatika sokrétű Információk Szerzése Feldolgozása Tárolása Továbbítása Információtechnika Informatika a technikai
A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.
Mikroprocesszor A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg. A mikroprocesszor részei A mikroprocesszor a szokásos
Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)
Informatika 1 vizsgafeladatok Számítógép architektúrák témakör Számítógép architektúra: Az elemi áramkörökből felépített funkcionális egységek alkotta hardver és az operációs rendszer között rész. Az architektúra
Számítógép architektúra kidolgozott tételsor
Számítógép architektúra kidolgozott tételsor Szegedi Tudományegyetem Szeged, 27. Tartalomjegyzék. Fordítás, értelmezés... 4 2. Numerikus adatok ábrázolása: fixpontos ábrázolás, konverzió számrendszerek
MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK
MISKOLCI EGYETEM VILLAMOSMÉRNÖKI INTÉZET AUTOMATIZÁLÁSI TANSZÉK ZÁRÓVIZSGA TEMATIKA Főiskolai szintű Villamosmérnöki szak Nappali tagozat FOLYAMATIRÁNYÍTÁSI ÉS KOMMUNIKÁCIÓTECHNIKAI SZAKISMERETEK (FVA)
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
1. ábra: Perifériára való írás idődiagramja
BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat
Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.
Balaton Marcell Balázs Assembly jegyzet Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. 1. Regiszterek Regiszterek fajtái a. Szegmensregiszterek cs (code):
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
Bevezetés a C++ programozásba
Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek
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
Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása
Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek
Intel x86 utasításkészlet
Intel x86 utasításkészlet Kód visszafejtés. Izsó Tamás 2013. október 31. Izsó Tamás Intel x86 utasításkészlet/ 1 Section 1 Intel mikroprocesszor Izsó Tamás Intel x86 utasításkészlet/ 2 Intel mikroprocesszor
2. Digitális hálózatok...60
2 60 21 Kombinációs hálózatok61 Kombinációs feladatok logikai leírása62 Kombinációs hálózatok logikai tervezése62 22 Összetett műveletek használata66 z univerzális műveletek alkalmazása66 kizáró-vagy kapuk
Digitális technika 1. Tantárgykód: VIIIA105 Villamosmérnöki szak, Bsc. képzés. Készítette: Dudás Márton
Digitális technika 1 Tantárgykód: VIIIA105 Villamosmérnöki szak, Bsc. képzés Készítette: Dudás Márton 1 Bevezető: A jegyzet a BME VIK első éves villamosmérnök hallgatóinak készült a Digitális technika
[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]
Szoftver fejlesztés Egy adott mikroprocesszoros rendszer számára a szükséges szoftver kifejlesztése több lépésből áll: 1. Forrás nyelven megírt program(ok) lefordítása gépi kódra, amihez megfelelő fejlesztő
A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere
2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda
Számítógép Architektúrák
Multiprocesszoros rendszerek Horváth Gábor 2015. május 19. Budapest docens BME Híradástechnikai Tanszék ghorvath@hit.bme.hu Párhuzamosság formái A párhuzamosság milyen formáit ismerjük? Bit szintű párhuzamosság
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
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
Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb
Input és Output 1 Bevitel-Kivitel Eddig a számítógép agyáról volt szó Processzusok, memória, stb Szükség van eszközökre Adat bevitel és kivitel a számitógépből, -be Perifériák 2 Perifériákcsoportosítá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ú
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ő
Programozás 3. Dr. Iványi Péter
Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /
SZÁMÍTÓGÉPARCHITEKTÚRÁK
ESSZÉ LÁNG LÁSZLÓ Zilog mokroprocesszor családok Z800 2005. December 1. Előszó A Zilog cég betörése a piacra rendkívül eredményesnek mondható volt, sőt később sikerült a csúcsra fejleszteniük a technológiájukat.
Vezérlésfolyam gráf és X86 utasításkészlet
Vezérlésfolyam gráf és X86 utasításkészlet Kód visszafejtés. Izsó Tamás 2016. november 3. Izsó Tamás Vezérlésfolyam gráf és X86 utasításkészlet / 1 Intervallum algoritmus Procedure Intervals(G={N, E, h})
Multimédia hardver szabványok
Multimédia hardver szabványok HEFOP 3.5.1 Korszerű felnőttképzési módszerek kifejlesztése és alkalmazása EMIR azonosító: HEFOP-3.5.1-K-2004-10-0001/2.0 Tananyagfejlesztő: Máté István Lektorálta: Brückler
Digitális technika II., 2009/2010 tavasz 1. vizsga 2010.06.01. A csoport
Beugró kérdések: 1. USART jelalak (TdX) felrajzolása adott paritás és adott számú STOP bit mellett egy kétjegyű hexa szám átvitelére. 2. RST7.5, TRAP és INT megszakítási bemenetek összehasonlítása tilthatóság
Kódolás, hibajavítás. Tervezte és készítette Géczy LászlL. szló 2002
Kódolás, hibajavítás Tervezte és készítette Géczy LászlL szló 2002 Jelkapcsolat A jelkapcsolatban van a jelforrás, amely az üzenő, és a jelérzékelő (vevő, fogadó), amely az értesített. Jelforrás üzenet
Máté: Számítógép architektúrák
Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós
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
Máté: Számítógép architektúrák
Bit: egy bináris számjegy, vagy olyan áramkör, amely egy bináris számjegy ábrázolására alkalmas. Bájt (Byte): 8 bites egység, 8 bites szám. Előjeles fixpontok számok: 2 8 = 256 különböző 8 bites szám lehetséges.
Információs Technológia
Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember
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.
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
Analóg és digitális jelek. Az adattárolás mértékegységei. Bit. Bájt. Nagy mennyiségû adatok mérése
Analóg és digitális jelek Analóg mennyiség: Értéke tetszõleges lehet. Pl.:tömeg magasság,idõ Digitális mennyiség: Csak véges sok, elõre meghatározott értéket vehet fel. Pl.: gyerekek, feleségek száma Speciális
Máté: Számítógép architektúrák 2010.12.01.
Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes
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
FPGA áramkörök alkalmazásainak vizsgálata
FPGA áramkörök alkalmazásainak vizsgálata Kutatási beszámoló a Pro Progressio alapítvány számára Raikovich Tamás, 2012. 1 Bevezetés A programozható logikai áramkörökön (FPGA) alapuló hardver gyorsítók
erettsegizz.com Érettségi tételek
erettsegizz.com Érettségi tételek Az informatika fejlődéstörténete, jogi ismeretek Információ és társadalom Az informatika fejlődéstörténete a XX. Században, napjainkban Jogi ismeretek, szerzőjog, szoftver
3. Az elektronikus számítógépek fejlődése napjainkig 1
2. Az elektronikus számítógépek fejlődése napjainkig Vázold fel az elektronikus eszközök fejlődését napjainkig! Részletesen ismertesd az egyes a számítógép generációk technikai újdonságait és jellemző
Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai
Közlekedés gépjárművek elektronikája, diagnosztikája Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai TÁMOP-2.2.3-09/1-2009-0010 A Széchenyi István Térségi Integrált Szakképző
1. Kombinációs hálózatok mérési gyakorlatai
1. Kombinációs hálózatok mérési gyakorlatai 1.1 Logikai alapkapuk vizsgálata A XILINX ISE DESIGN SUITE 14.7 WebPack fejlesztőrendszer segítségével és töltse be a rendelkezésére álló SPARTAN 3E FPGA ba:
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
DDS alapú szinusz jelgenerátor fejlesztése
SZEGEDI TUDOMÁNYEGYETEM Természettudományi Kar KÍSÉRLETI FIZIKAI TANSZÉK Informatikus-fizikus DIPLOMAMUNKA DDS alapú szinusz jelgenerátor fejlesztése Készítette: Mellár János Zsolt Témavezető: Dr. Gingl
Megszakítások és kivételek
Megszakítások és kivételek Megszakítások Megszakítás a számítási rendszernek küldött jelzés, mely valamilyen esemény felléptéről értesíti. Egy megszakítás felléptekor a rendszer: megszakítja az aktív program
8. Mohó algoritmusok. 8.1. Egy esemény-kiválasztási probléma. Az esemény-kiválasztási probléma optimális részproblémák szerkezete
8. Mohó algoritmusok Optimalizálási probléma megoldására szolgáló algoritmus gyakran olyan lépések sorozatából áll, ahol minden lépésben adott halmazból választhatunk. Sok optimalizálási probléma esetén
Programozható logikai vezérlõk
BUDAPESTI MÛSZAKI EGYETEM KÖZLEKEDÉSMÉRNÖKI KAR KÖZLEKEDÉSAUTOMATIKAI TANSZÉK Programozható logikai vezérlõk Segédlet az Irányítástechnika I. c. tárgyhoz Összeállította: Szabó Géza egyetemi tanársegéd
Mikrokontrollerek. Tihanyi Attila 2007. május 8
Mikrokontrollerek Tihanyi Attila 2007. május 8 !!! ZH!!! Pótlási lehetőség külön egyeztetve Feladatok: 2007. május 15. Megoldási idő 45 perc! Feladatok: Első ZH is itt pótolható Munkapont számítás Munkapont
Mérési útmutató. Széchenyi István Egyetem Távközlési Tanszék. QPSK moduláció jellemzőinek vizsgálata
Széchenyi István Egyetem Távközlési Tanszék Mérési útmutató Rádiórendszerek (NGB_TA049_1) laboratóriumi gyakorlathoz QPSK moduláció jellemzőinek vizsgálata Készítette: Garab László, Gombos Ákos Konzulens:
Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)
Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407) 1 Előadás Bevezetés az informatikába Adatszerkezetek Algoritmusok, programozási technológiák Számítástudomány alapjai
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
E7-DTSZ konfigurációs leírás
Dokumentum azonosító: PP-13-20354 Budapest, 2014.március Verzió információ Verzió Dátum Változtatás Szerkesztő Előzetes 2011.11.24. Petri 2.0 2014.01.22. 2. ábra módosítása: Az E7-DTSZ alap konfiguráció
Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre.
Számrendszerek Tízes számrendszer: Ez az általános, informatikán kívül is használt legelterjedtebb számrendszer. Alapja 10 szám 0,1,2,3 9. Decimális számrendszernek is nevezzük. Egyik felhasználása az
4. KOMBINÁCIÓS HÁLÓZATOK. A tananyag célja: kombinációs típusú hálózatok analízise és szintézise.
. KOMBINÁCIÓS HÁLÓZATOK A tananyag célja: kombinációs típusú hálózatok analízise és szintézise. Elméleti ismeretanyag: Dr. Ajtonyi István: Digitális rendszerek I. 2., 5., 5.2. fejezetek Elméleti áttekintés..
Bevezetés a számítástechnikába
Bevezetés a számítástechnikába Beadandó feladat, kódrendszerek Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 12.