SZÁMÍTÓGÉP ARCHITEKTÚRÁK & HARDVERKÖZELI PROGRAMOZÁS 1
|
|
- Elvira Fehérné
- 6 évvel ezelőtt
- Látták:
Átírás
1 SZÁMÍTÓGÉP ARCHITEKTÚRÁK & HARDVERKÖZELI PROGRAMOZÁS 1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék május 09.
2 Követelmények Gyakorlat (aláírás, csak HKP1) Óralátogatás (maximum hiányzás: 3) 2 gyakorlati ZH A két ZH átlaga legalább 60% Mindegyik legalább 50% 1 javítási lehetőség (teljes féléves anyag) Elmélet (kollokvium, SzGA & HKP1) Írásbeli vizsga Teszt + számolás/programértés + kifejtős Számítógép architektúrák 2
3 Mérnökinformatikus képzés mérnök informatikus Fizika Elektronika Digitális technika Jelek és rendszerek Számítógép architektúrák Beágyazott rendszerek Assembly programozás Operációs rendszerek Rendszerközeli programozás Programozási nyelvek 1-2 Adatbáziskezelés Számítógép architektúrák 3
4 Tematika Számábrázolás, adattípus implementáció CPU alapvető felépítése és működése Modern processzorok Konkrét processzor architektúra Utasításkészlet, programozás A programozás operációsrendszerhez kapcsolódó hardverközeli aspektusai Digitális elektronika alapjai hardver szempontból Assembly programozás Magas szint leképezése alacsonyra Számítógép architektúrák 4
5 A tárgy célja Hardver ismeretek átadása Összeköttetés teremtése Az absztrakt és az alapozó ismeretek között A program és az elektronika között Magas szintű programozás mélyebb megértése Hatékonyabb programozás Az assembly programozás bemutatása Szemléletformálás Átfogó kép kialakítása a számítógép rendszerekről Számítógép architektúrák 5
6 Számábrázolás, adattípusok Fixpontos számábrázolás Lebegőpontos számábrázolás Főbb adattípusok
7 Adatok Információtároláshoz különböző adattípusok A számítógépen minden adat végül bitsorozat numerikus infó szöveg kép hang videó adatbázis programok számok bitsorozat Számítógép architektúrák 7
8 Bináris számok Csak két számjegy: 0 és 1 Jelentőség: két állapot (igen/nem, van/nincs, stb.) Konverzió 69, = , /2 1/4 1/ Számítógép architektúrák 8
9 Hexadecimális számok 16 számjegy: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Szoros kapcsolat a binárissal, de rövidebb alak Jelölés: 1FA 16, 0x1FA, $1FA Konverzió 1*256 15*16 10*1 = F A = x1FA = 0b = 506 Számítógép architektúrák 9
10 Adatszervezés Adategységek Bit (binary digit): két állapot (0, 1) Nibble (fél bájt): 4 bit Bájt : 8 bit Félszó: 16 bit Szó: (többnyire) 32 bit Dupla szó: 64 bit Számítógép architektúrák 10
11 Megadás Reprezentáció Tartomány Műveletek Főbb adattípusok Adattípus Egyszerű típusok: egész, valós, karakter, mutató, logikai, felsorolásos Összetett típus: tömb, rekord, halmaz Számítógép architektúrák 11
12 Ábrázolás Egész típus Fixpontos számábrázolás (2, 4 vagy 8 bájt) Előjeles vagy előjel nélküli BCD Bájtsorrend Little-endian Big-endian Megadás különböző módokon Pl. C nyelven: 30=30u=30l=036=0x1E=0b11110 * *ISO C99 Számítógép architektúrák 12
13 Fixpontos számábrázolás Egész értékek reprezentálása Előjel nélküli eset ábrázolandó szám kettes számrendszerben adott számú biten Példa (1 bájt esetén) N biten ábrázolható legkisebb szám: 0 legnagyobb szám: 2 N -1 Számítógép architektúrák 13
14 Előjeles eset Fixpontos számábrázolás Nem negatív érték esetén: előjel nélküli logika Negatív érték esetén: kettes komplemens Abszolút érték bitjeinek invertálása (egyes komplemens) A kapott érték növelése 1-gyel Példa (1 bájt esetén) N biten ábrázolható legkisebb szám: -(2 N-1 ) Legnagyobb szám: 2 N meghatározza az előjelet Számítógép architektúrák 14
15 Számolás fixpontos számokkal Összeadásra és kivonásra ugyanaz az algoritmus használható Példa (1 bájtos adatok esetén) 67+54= =13 67+(-54)= Absolútérték (+54): Egyes komplemens: Kettes komplemens (-54): Számítógép architektúrák 15
16 Számolás fixpontos számokkal Szorzás Példa: két 16 bites érték szorzása: * : 4 000: : 0x75 0x30 A B C D + 0x1E 0x00 0x49 0x20 0x02 0xD0 0x06 0xDB 0x07 0x27 0x0E 0x00 0x0F 0xA0 Eredmény két regiszterben vagy túlcsordulás (hiba) B*D A*D B*C A*C 2 16 AC+2 8 (AD+BC)+BD Számítógép architektúrák 16
17 Aritmetikai túlcsordulás Két féle hibalehetőség Előjel nélkül: több bit lenne szükséges (carry) >255 Előjeles: nem várt előjelváltás (overflow) > 127 Számítógép architektúrák 17
18 Kiterjesztés Néha szükség van egy adatot a korábbinál több biten ábrázolni úgy, hogy az értéke ne változzon Nulla kiterjesztés: kitöltés nullával Rövid előjel nélküli értékből hosszú előjelnélküli 8 bit: bit: bit: bit: Előjel tartó kiterjesztés: kitöltés előjel bittel Rövid előjeles értékből hosszú előjeles 8 bit: bit: bit: bit: Számítógép architektúrák 18
19 Bájtsorrend Több bájtos adatok esetén a bájtok sorrendje Little-endian: (gazdagép bájtsorrend) Legkisebb helyi értékű bájt (LSB) elől Big-endian: (hálózati bájtsorrend) Legnagyobb helyi értékű bájt (MSB) elől Példa: = 0b = 0x1F2E3D4C Little-endian: Big-endian: x4C 0x3D 0x2E 0x1F 0x1F 0x2E 0x3D 0x4C Számítógép architektúrák 19
20 BCD ábrázolás Binárisan kódolt decimális Minden számjegy 4 biten ábrázolva Vannak kihasználatlan bitkombinációk Pakolatlan BCD 1 számjegy - 1 bájt : 0000 vagy (0011 * ) bevezető Pakolt BCD 2 számjegy - 1 bájt : nibble alapú *ASCII miatt Számítógép architektúrák 20
21 Értékei karakter kódok Karakter típus C: Fixpontos számábrázolás, 1 bájt, előjeles/előjel nélküli, egészként használható (ASCII) Java: 2 bájt, előjel nélküli (Unicode) Karakter kódtáblák ASCII: 7bit ISO Latin 2 : 8bit Unicode: 16bit Számítógép architektúrák 21
22 ASCII kódtábla Karakter kódtáblák 0x00-0x1F: vezérlő karakter 0x30-0x39: számjegy 0x41-0x5A: angol nagy betű 0x61-0x7A: angol kis betű ISO Latin 2 0x00-0x7F: ASCII (kompatibilitás) 0x80-0xFF: közép/kelet európai nyelvek speciális karakterei Számítógép architektúrák 22
23 Karakter kódtáblák Unicode 16 bites kódsíkok (17 db) Több mint 1 millió kódpont (17*65536) 1. sík: Basic Multilingual Plane (BMP) ASCII kompatibilitás Kódolási technikák (változó hosszúság) UTF-8 UCS-2 UTF-16 UTF-32 Számítógép architektúrák 23
24 UTF-8 ASCII: Minden bájt egy ASCII kód unicode abcdefg UTF-8 0abcdefg Nem ASCII: Egyik bájt sem ASCII kód unicode abc defghijk UTF-8 110abcde 10fghijk unicode abcdefgh ijklmnop UTF abcd 10efghij 10klmnop unicode abcde fghijklm nopqrstu UTF abc 10defghi 10jklmno 10pqrstu Számítógép architektúrák 24
25 Karakter: UTF-8 példa (egyszerűsített kínai, pinyin: jing) Unicode: 4EAC Bináris: UTF-8: HTML: 京, 京 URL: %E4%BA%AC Latin-1: Latin-2: äº äşź Számítógép architektúrák 25
26 Valós típus Ábrázolás: lebegő pontos Méret: 4, 8, 10 bájt Megadás különböző formában Pl. C nyelven: 0.25, 0.25f, 0.25L,.25, +0.25, 25e-2, 0.025e1 Műveletek Operátor túlterhelés Pl. a + operátor lehet egész-egész vagy valós-valós Egyes műveletek nem használhatóak valós típussal Pl.: nincs maradékos osztás, léptetés Számítógép architektúrák 26
27 Lebegő pontos számábrázolás Valós számok ábrázolása Alapja a normalizálás: 123,45 = 1, Minden (2 számrendszerbeli) szám felírható így: (-1) S M A K ahol a mantissza (M) 1.H alakú, azaz 1 2 M < 10 2 karakterisztika (K) pozitív és negatív is lehet Nem tároljuk: alap (A=2), rejtett bit, K előjele E=K+B adott számú biten nem negatív (B: nulla pont) Tárolandó: S, H, E Számítógép architektúrák 27
28 Lebegő pontos szabvány IEEE 754/1985 szabvány (ISO/IEC/IEEE 60559:2011) Előjel Pozitív: 0; Negatív: 1 Formátumok Egyszeres pontosság Dupla pontosság Kiterjesztett pontosság méret S hossz E hossz H hossz 32 bit 1 bit 8 bit 23 bit bit 1 bit 11 bit 52 bit bit 1 bit 15 bit 63(+1) bit Számítógép architektúrák 28 B
29 Lebegő pontos számábrázolás Példa: egyszeres pontossággal = = Előjel: S = 1 Karakterisztika: K = 3 10 = 11 2 Mantissza: M = Hasznos bitek: H = Eltolt karakterisztika: E = = S E H Számítógép architektúrák 29
30 Kerekítési hiba Ok: hasznos bitek tárolás véges számú biten Túl sok hasznos bit esetén kerekítés szükséges Ha az utolsó tárolható hasznos bit után 0 áll, akkor a további biteket levágjuk Különben felfelé kerekítünk Kerekítési hiba: nem pontos ábrázolás Példa: 0.3 ábrázolása egyszeres pontossággal hasznos bitek: tárolt bitek: Számítógép architektúrák 30
31 Speciális lebegőpontos értékek +0 és -0 előjel bit 0 (+) vagy 1 (-), minden más bit 0 Pl.: 0.0/-1.0, -1.0*0.0 ±végtelen (Inf) karakterisztika csupa 1, mantissza csupa 0 Pl.: 1.0/0.0, inf+1.0 nem szám (NaN) karakterisztika csupa 1, mantissza nem csupa 0 Pl.: 0.0/0.0, inf-inf, 0.0*inf, NaN+1.0 denormalizált szám (subnormal) karakterisztika csupa 0, mantissza nem csupa 0 Számítógép architektúrák 31
32 Számolás lebegő pontos számokkal Összeadás: fixpontostól nagyon eltérő módszer Példa: 7,5 + 0,625 7,5 = ,625 = > = (-1) 0 * 1, *10 11 = 8,125 Számítógép architektúrák 32
33 Példa: bitsorozat értelmezés Mit jelenthet az alábbi big-endian bitsorozat? bites előjeles egész: bites előjel nélküli egész: bites előjeles egészek: ; bites előjel nélküli egészek: ; lebegőpontos: Latin 1 szöveg: é F Latin 2 szöveg: é ĽF Unicode szöveg UTF8 kódolással: 鰥 Pakolt BCD:?9?0?546 (érvénytelen) vagy Számítógép architektúrák 33
34 Mutató és rekord típusok Mutató vagy referencia Indirekt hivatkozásra szolgálnak Tartományának elemei tárcímek Gyakorlatilag előjel nélküli egészek A mutató típusú változónak is van saját címe Rekord Különböző típusú tárterületek együtt Mindegyik mező a saját reprezentációjával Számítógép architektúrák 34
35 Tömb típus Azonos típusú elemek folytonosan tárolva Minden elem az adott reprezentációval A tömb neve C nyelven: az első elemre mutató nevesített konstans Egyes nyelveken: az összes elemre hivatkozás Egydimenziós tömb i. elemének a címe (A i ) A i = A 1 + i 1 E ahol E egy adatelem mérete és A 1 a tömb kezdőcíme Számítógép architektúrák 35
36 Több dimenziós tömbök Sorfolytonos tárolás M 3,2 = e 1,1 e 1,2 e 2,1 e 3,1 e 2,2 e 3,2 M 6 = e 1,1 e 1,2 e 2,1 e 2,2 e 3,1 e 3,2 Az i. sor j. elemének címe (A i,j ) egy NxM-es mátrixban A i,j = A 1,1 + M i 1 E + j 1 E ahol E egy adatelem mérete és A 1,1 a mátrix első elemének címe Számítógép architektúrák 36
37 Karakterek sorozata Sztring típus Elemei a megfelelő belső reprezentációban (pl. C: 1 bájt, ASCII; Java: 2 bájt, Unicode) Hossza Fix hosszúságú Változó hosszúságú A sztring elején hossz tárolás (pl. Pascal) A sztring végén speciális lezárójel (pl. C) Kombinált (pl. Delphi) Számítógép architektúrák 37
38 A számítógép vázlatos felépítés Architektúra szintek Processzor Buszrendszer Memória Perifériák
39 Számítógép rétegmodell 0. szint: digitális logikai áramkörök (logikai kapu, flip-flop) 1. szint: mikro-architektúra (konkrét ALU, buszok) 2. szint: utasításkészlet architektúra (ISA) 3. szint: operációs rendszer (ütemezés, tárkezelés) 4. szint: programozási nyelvek (alkalmazások) Számítógép architektúrák 39
40 Neumann architektúra Princeton architektúra (Neumann János) Neumann elvek (1945): Elektronikus működés Kettes számrendszer használata Tárolt program elve Adat és program tárolás ugyanott/ugyanúgy Soros programvégrehajtás Univerzális felhasználhatóság Számítógép architektúrák 40
41 Harvard architektúra Külön adat és program memória Eltérő felépítés, címtartomány, típus is lehet Párhuzamos adat és utasítás elérés miatt nagyobb teljesítmény Főként mikrokontrollerekben használt Első alkalmazás: Mark I (1944) Módosított Harvard architektúra Külön adat/utasítás gyorsítótár, közös memória Modern CPU-k esetén elterjedt Számítógép architektúrák 41
42 A számítógép alapvető felépítése Processzor Memória Input-Output interfész Buszrendszer Perifériák Perifériák Processzor Memória I/O interfész Buszrendszer Számítógép architektúrák 42
43 Processzor Központi feldolgozó egység A számítógép agya Vezérlés Utasítás végrehajtás (Mikro)processzor integrált áramköröket tartalmaz Műveletek és az egységek szinkronizálásához órajelet használ Számítógép architektúrák 43
44 Operatív tár Memória Aktuális műveletekhez szükséges rövidtávú memória Elsődleges tároló, nem háttértár Címezhető adattároló rekeszek Adatok és utasítások tárolása Elektronikus működés Integrált áramkör Számítógép architektúrák 44
45 Buszrendszer Busz (sín): vezetékek egy csoportja, amelyeken digitális jelet lehet továbbítani Buszrendszer logikai részei Címbusz: a címek bitsorozatának átvitelét biztosítja Adatbusz: adatok átviteléért felelős Vezérlő busz: részegységek működésének összehangolását segítő vezérlő jelek továbbítása címbusz adatbusz vezérlő busz Processzor Memória I/O interfész Számítógép architektúrák 45
46 I/O interfész A számítógép központi része és a külső egységek (perifériák) közötti adatátvitelre szolgál A kimeneti/bemeneti eszközök portokhoz kapcsolódnak A portok címezhetőek (hasonlóan a memóriához) Az adatátvitel során gyakran puffereket használunk Szoftveres szinten driverekre van szükség Számítógép architektúrák 46
47 Perifériák Input Tároló Billentyűzet Egér Szkenner Kamera Háttértár (HDD, SSD) CD/DVD/Blu-ray USB tároló Memória kártya Output Monitor Nyomtató Projektor Audio rendszer Hálózat Ethernet kártya Wi-Fi kártya Számítógép architektúrák 47
48 A processzor felépítése és működése CPU Regiszterek Fetch-execute ciklus RISC / CISC processzorok
49 Processzor Központi Feldolgozó Egység Central Processing Unit (CPU) Részei: Vezérlő egység (CU) Aritmetikai és logikai egység (ALU) Címző egység (AU) és Busz illesztő egység (BIU) Regiszterek Belső buszrendszer Belső gyorsítótár Egyéb (pl. órajel generátor) Végrehajtó egység (EU) Számítógép architektúrák 49
50 Regiszterek Kis méretű (flip-flop-szerű) tároló áramkör Mérete általában az adatbusz szélességével egyenlő Általában bit Gyors hozzáférésű (elérési idő < 1ns) Darabszámát a processzor határozza meg (10-100) Gyakran regisztertömböket alkot Néha átnevezhetőek 3 kategória: Rendszer-, általános célú- és speciális célú regiszter Számítógép architektúrák 50
51 Regiszterek Programszámláló regiszter (PC vagy IP) A következő utasítás memóriacímét tartalmazza Az utasítás végrehajtása során átáll (általában) a következő utasítás címére, azaz az aktuális utasítás méretével növekszik Szekvenciális végrehajtás eszköze Értékét egyes utasítások is állíthatják (vezérlés átadás) Vezérlőegységhez (CU) kapcsolódik Számítógép architektúrák 51
52 Utasítás regiszter (IR) Regiszterek A memóriából beolvasott utasítás műveleti kódját tartalmazza A vezérlőegységhez kapcsolódik A CU ez alapján dönti el milyen műveletet kell végeztetni milyen adaton kell dolgozni és az hogyan érhető el A programozó által nem hozzáférhető Számítógép architektúrák 52
53 Regiszterek Akkumulátor (ACC, W, AX) Általános munka regiszter az ALU-ban Aritmetikai és logikai műveletek operandusait tartalmazza legtöbbször Általában az ilyen műveletek eredménye is itt tárolódik Újabb processzorokban több hasonló regiszter ugyanerre a célra (kevesebb memória művelet) Általában egész típusú adatokat tartalmaznak Számítógép architektúrák 53
54 Regiszterek Állapot regiszter (SR, FLAGS) Processzor állapottal, művelet eredményével kapcsolatos jelző/vezérlő biteket tartalmaz Feltételes vezérlésátadásnál (is) nagyon fontos Átvitel (CF) Nibble átvitel (AF) Túlcsordulás (OF) Előjel (SF) Megszakítási maszk (IF) Nulla (ZF) Paritás (PF) Számítógép architektúrák 54
55 Regiszterek Verem mutató regiszter (SP) A hardveres rendszerverem használatához A verem tetejének memóriacímét tartalmazza Általában a verem előrefelé nő Általában SP a legutóbb betett elemet címzi (Intel) Speciális célú regiszter A push és pop művelet automatikusan változtatja az SP értékét Számítógép architektúrák 55
56 Regiszterek Címzéssel kapcsolatos speciális regiszterek Operandusok címének meghatározásánál egy alap címhez képesti relatív cím (eltolás) megadásához használható Az AU-hoz (BIU-hoz) kapcsolódnak Tömbök, sztringek és lokális változók esetén illetve memória szegmens kezelésnél hasznos Például: BP, X, SI, DI, CS, DS, SS, ES Számítógép architektúrák 56
57 Regiszterek Memória cím regiszter (MAR) Összeköti a rendszer (külső) és belső címbuszt Azt a címet tartalmazza, amelyhez legközelebb hozzá kell férni (írásra vagy olvasásra) A címző egység hajtja meg Címbusz szélességű Számítógép architektúrák 57
58 Regiszterek Memória adat regiszter (MDR) Összeköti a rendszer (külső) és belső adatbuszt Azt az adatot tartalmazza amelyet legközelebb ki kell írni a memóriába vagy amely legutóbb be lett olvasva a memóriából Kétirányú regiszter Adatbusz szélességű Számítógép architektúrák 58
59 Aritmetikai és logikai egység Számítási műveleteket végez Tartalmaz: fixpontos összeadót, komplemens képzőt, léptető regisztereket, bitenkénti logikai művelet végző, stb. áramköröket A operandus B operandus utasítás ALU állapot eredmény Számítógép architektúrák 59
60 Vezérlő egység Az IR-ben lévő érték alapján irányítja, szabályozza a többi egység (pl. ALU) működését Fontos regiszterei: IR, PC, SR A vezérlés történhet Huzalozott logikával (közvetlenül) Minden utasításhoz létrehozott bonyolult digitális elektronika segítségével Mikroprogramozott (közvetett) módon Minden műveleti kód elindít egy apró (ROM-ban tárolt) mikroprogramot Számítógép architektúrák 60
61 Címző egység Addressing Unit (AU), Address Generation Unit (AGU) Az utasítások sokféle címzési mód segítségével határozhatják meg hol található az operandus Az AU az operandus címét állítja elő és helyezi el az MAR-ban Az utasításban található címet képezi le fizikai memóriacímre Tárolóvédelmi hibák felismerése Kapcsolat: BIU Számítógép architektúrák 61
62 Órajel Periodikus négyszög hullám Órajel generátor (oszcillátor) állítja elő Szinkronizálja az egységek működését Frekvenciája arányos a CPU által disszipált hővel Periódusidő nagyobb, mint a jelterjedési idő 1 MHz 4 GHz Gyakran változtatható (turbo, powersave) Egyéb sebesség jellemzők: MIPS, FLOPS Számítógép architektúrák 62
63 A CPU működése Egy művelet sorozat ismételgetése Fetch-execute ciklus Órajel szinkronizált CU vezényel Végtelen, monoton, gépies ismétlés során Adatmozgatás Műveletvégzés Fontos a regiszterek (PC, IR, SR, ACC, MAR, MDR, stb.) tartalma és annak változása Számítógép architektúrák 63
64 Fetch-Execute ciklus 1. Utasítás beolvasása A PC-ben található érték megmondja, hol található a memóriában a következő utasítás. Ezt be kell olvasni az IR-be. 2. Dekódolás A beolvasott műveleti kódot értelmezni kell. Milyen művelet? Milyen adatokon? Eredmény hová kerül? Utasításkészlet architektúra (ISA) definiálja Lehet huzalozott vagy mikroprogramozott Számítógép architektúrák 64
65 Fetch-Execute ciklus 3. Operandus beolvasása Az operandus címének meghatározása és onnan beolvasása a megfelelő regiszterbe 4. Művelet végrehajtása például az ALU által, az eredmény egy átmenti regiszterbe kerül 5. Eredmény tárolás regiszterbe vagy memóriacímre 6. Következő utasítás címének meghatározása Számítógép architektúrák 65
66 Olvasási ciklus DIY Calculator architektúra esetén C. Maxfield, A. Brown: The Official DIY Calculator Data Book Számítógép architektúrák 66
67 Írási ciklus DIY Calculator architektúra esetén C. Maxfield, A. Brown: The Official DIY Calculator Data Book Számítógép architektúrák 67
68 CISC processzor Komplex utasításkészletű számítógép Sok, összetett utasítás Sokféle címzési mód Változó hosszúságú utasítások Egy utasítás több gépi ciklust igényel Mikroprogramotott Kevés regiszter Utasítások elérhetik közvetlenül a RAM-ot Pl.: IA-32, Motorola 68k Számítógép architektúrák 68
69 RISC processzor Csökkentett utasításkészletű számítógép Kevés, egyszerű utasítás Kevés címzési mód Állandó hosszúságú utasítások Utasítás egy gépi ciklust igényel Huzalozott vagy mikroprogramotott Sok regiszter Csak a Load/Store utasítás éri el a RAM-ot Pl.: ARM, AVR, PIC Számítógép architektúrák 69
70 CISC vs RISC Példa: A[i] = x-32; r1: tömb kezdőcíme (A); r2: i címe; r3: x címe CISC ADD r4, (r1), (r2) SUB (r4), (r3), 32 adat a regiszterben eredmény adat címe a regiszterben operandus konstans adat RISC LDR r5, (r1) LDR r6, (r2) ADD r4, r5, r6 LDR r7, (r3) SUB r8, r7, 32 STR (r4), r8 Számítógép architektúrák 70
71 Megszakítási rendszer és input/output Megszakítás, kivétel Megszakításkezelés Input/output Buszrendszerek, perifériák
72 Szükségesség Az általános célú számítógépek fontos képessége, hogy kölcsön hat az I/O eszközökkel (billentyűzet, egér, hálózati interfész, monitor). Ezek ez eszközök azonnali választ várnak a processzortól, függetlenül attól mivel foglalkozik éppen. Váratlanul bekövetkező eseményekre a CPU-nak reagálnia kell. A megszakítás szolgál a CPU figyelmének felhívására. Számítógép architektúrák 72
73 Megszakítás Speciális jelzés a CPU számára Egy esemény bekövetkeztét jelzi Azonnal reagálni kell rá A normál végrehajtást meg kell szakítani Később tudni kell folytatni Forrás Hardver Processzor Szoftver Számítógép architektúrák 73
74 Aszinkron Megszakítás típusok Külső forrásból (például I/O eszköz) származik Független az aktuálisan végrehajtott utasítástól Szinkron (másként kivétel ) Processzor által kiváltott kivétel Hiba: kijavítható probléma, újra próbálkozás Elvetés: jelentős, javíthatatlan (hardver) hiba Csapda: pl. nyomkövetés, programozott kivétel (rendszerhívás) Számítógép architektúrák 74
75 Megszakítás típusok Aszinkron megszakítás utasítás1 utasítás2 utasítás3 utasítás4 Csapda utasítás1 syscall utasítás3 utasítás4 Hiba utasítás1 utasítás2 utasítás3 utasítás4 Elvetés utasítás1 utasítás2 utasítás3 utasítás4 Számítógép architektúrák 75
76 Megszakítási vonal Fogalmak Egy (vagy több) CPU vezérlő busz vezeték Megszakítási kérelem (IRQ) A megszakítások egész számokkal (0-255) azonosíthatók Lehet prioritásuk Programozható megszakítás vezérlő (PIC, APIC) Azonosítja a megszakítás forrását, aktiválja a megszakítási vonalat, kezeli prioritásokat Számítógép architektúrák 76
77 Megszakítási rutin (ISR) Fogalmak Az a programrész, amely megszakítási kérelem esetén aktiválódik, kezeli a speciális helyzetet Hívás nélküli alprogramhoz hasonlít Kontextus Ahhoz, hogy folytatni tudjuk a normál végrehajtást a kivételkezelés után először el kell menteni, majd vissza kell állítani az eredeti környezetet, regisztertartalmakat Számítógép architektúrák 77
78 Maszkolás Fogalmak Egyes megszakítási kérelmek figyelése kikapcsolható Egyszerre, globálisan a processzorban Külön-külön, a PIC-ben lévő IMR segítségével Vannak nem maszkolható megszakítások (NMI) Nested interrupt ( fészkelt megszakítás ) Megszakítási rutint megszakító újabb IRQ Megszakítás megszakítása Számítógép architektúrák 78
79 Megszakításkezelés Utasítás beolvasás Utasítás dekódolás Kontextus mentés Utasítás végrehajtás Eszköz azonosítás nem Megszakítás? Rutin (ISR) keresés igen igen NMI? nem Maszk tilt? igen nem Rutin (ISR) végrehajtás Kontextus visszaállítás Számítógép architektúrák 79
80 Megszakításkezelési technikák Vektoros megszakításkezelés Megszakítási vonal aktiválás A megszakítás kérő azonosítja magát Buszrendszeren egyedi kódot/címet küld Lekérdezéses (polling) megszakításkezelés Megszakítási vonal aktiválás A CPU sorozatos lekérdezésekkel kideríti kinek van megszakítási igénye Számítógép architektúrák 80
81 vektor Megszakításkezelési technikák Vektoros megszakításkezelés IRQ n ISR 1 címe ISR n címe Lekérdezéses megszakításkezelés IRQ megszakítás lekérdező eljárás programkódja ISR 1 programkódja ISR 1 programkódja ISR n programkódja ISR n programkódja Számítógép architektúrák 81
82 Input/Output Kapcsolat a külvilággal Hardveres I/O interfészek Szoftver interfész (device driver) Perifériás eszközök Periféria 1 Periféria 2 buffer buffer Processzor Memória Külső buszok I/O interfészek Rendszer busz Számítógép architektúrák 82
83 Input/output interfészek Összeköttetés a CPU és a perifériák között Címezhető eszközök Memóriára leképezett I/O (MMIO) Portra leképezett I/O (PMIO) Különböző adatsebesség Különböző fizikai jelek Soros illetve párhuzamos átvitel Az eszközvezérlés nem a CPU feladata Számítógép architektúrák 83
84 Programozott I/O (PIO) I/O technikák Speciális I/O utasításokkal (in, out) A program írja le mikor kell a perifériához fordulni (függetlenül annak állapotától) Utasításonként csak egy szó átvitele az I/O buffer és a CPU regiszterei között I/O adat és címregiszterek a CPU-ban Sok CPU időt felemészt az eszközök állapotának sorozatos elkérdezése Számítógép architektúrák 84
85 Megszakítás vezérelt I/O I/O technikák A periféria megszakításokkal jelez a CPU-nak Ha van új input vagy Ha kész van az outputtal A CPU nem figyel folyamatosan Közben tud mással foglalkozni Az adatmozgás a CPU és az I/O modul között történik Számítógép architektúrák 85
86 I/O technikák Direkt memória hozzáférés (DMA) Külön vezérlő révén közvetlen RAM-I/O kapcsolat (RAM-RAM, RAM-I/O) A CPU kéri fel a DMA vezérlőt a műveletre Ha a DMA vezérlő kész van megszakítást kér CPU nem vesz részt az adatmozgatásban Blokkos átviteli mód I/O processzor (IOP) DMA kiterjesztése nagyobb önállósággal Számítógép architektúrák 86
87 Buszrendszerek Párhuzamos ISA PCI ATA (ATAPI, UATA, IDE) VESA Local Bus (VLB) SCSI AGP Soros I 2 C PCI Express Serial ATA USB Serial Attached SCSI FireWire Számítógép architektúrák 87
88 PCI busz Peripheral Component Interconnect Párhuzamos belső busz Sínszélesség: 32 vagy 64 bit Átviteli sebesség: MB/s Fejlesztés: Külön vezérlőáramkör szükséges Forrás: en.wikipedia.org/wiki/conventional_pci Számítógép architektúrák 88
89 PCIe busz Peripheral Component Interconnect Express Soros belső busz 1 link 1, 2, 4, 8, 16 vagy 32 sávból áll Átviteli sebesség: MB/s (v4.0) Fejlesztés: Minden eszköznek külön link (nem osztoznak, switching) Forrás: en.wikipedia.org/wiki/pci_express Számítógép architektúrák 89
90 (Parallel) ATA busz (Parallel) AT Attachment Párhuzamos belső busz Szinonimák : PATA, ATAPI, UATA, IDE, EIDE Átviteli sebesség: 3,3-166 MB/s Fejlesztés: HDD, FDD, CD és DVD meghajtó csatlakoztatás Forrás: en.wikipedia.org/wiki/parallel_ata Számítógép architektúrák 90
91 Serial ATA Soros belső busz Pont-pont kapcsolat SATA busz Átviteli sebesség: MB/s (v3.2) Fejlesztés: Hot swapping HDD, SSD, CD és DVD meghajtó csatlakoztatás Forrás: hu.wikipedia.org/wiki/serial_ata Számítógép architektúrák 91
92 Universal Serial Bus Soros külső busz USB busz Plug-and-Play, elosztható (hub) Átviteli sebesség: 0, MB/s (v3.1) Fejlesztés: Csatlakozók: standard-a, standard-b, mini-a, mini-b, micro-a, micro-b Forrás: en.wikipedia.org/wiki/usb Számítógép architektúrák 92
93 Vezérlő hub-ok Az alaplap fontos chip-jei Northbridge (memóriavezérlő hub) Southbridge (I/O vezérlő hub) CPU Front-side bus (FSB) AGP RAM Northbridge Southbridge BIOS PCI IDE USB LAN I/O Számítógép architektúrák 93
94 Eszközmeghajtó Device Driver: szoftver interfész a hardverhez Eszköztípusok Karakteres, blokkos, hálózati, egyéb A programok hardvertől független rendszerhívásokat alkalmaznak open, read, write, close, Az eszközmeghajtók töltik meg ezt konkrét hardver specifikus tartalommal Számítógép architektúrák 94
95 Adattárolás Operatív memória Cache Háttértárak
96 Tárolók osztályzása Írhatóság szempontjából Csak olvasható, olvasható-írható Hierarchiabeli helye szerint Elsődleges, másodlagos, harmadlagos Tárolási közeg szerint Félvezető, mágneses, optikai Adatmegőrzés szerint Megmaradó, nem megmaradó Elérés szerint Soros elérésű, tetszőleges elérésű Számítógép architektúrák 96
97 Elsődleges memória A processzor és a futó programok által aktívan használt tároló Gyors elérésű Nem maradandó memória Méret erősen korlátos Ide tartoznak Regiszterek Gyorsítótárak Operatív tár / memória Számítógép architektúrák 97
98 Másodlagos memória Háttértároló Az elsődleges memória kiterjesztése Nagy tároló kapacitás Kisebb elérési sebesség Maradandó tárolás Ide tartoznak HDD, SSD CD-, DVD-meghajtó Memóriakártya Számítógép architektúrák 98
99 Harmadlagos memória Többnyire eltávolítható adathordozókra épít Robotikus eszközök csatlakoztatják a kívánt tároló médiumot ( wurlitzer ) Ritka hozzáférés Óriási tároló kapacitás Cél hosszú távú archiválás Ide tartoznak Mágnesszalagos tárolók Optikai tárolók Számítógép architektúrák 99
100 Félvezető memóriák Read-Only Memory (ROM) Gyártás során kerül bele a tartalom, ami később nem változtatható Tartalmat sokáig megőrzi, tápfeszültség hiányában is Programmable Read-Only Memory (PROM) Gyártás után üres. Speciális eszközzel egyszer beégethető a tartalom Az írás folyamata lassú (a RAM-hoz képest) Számítógép architektúrák 100
101 Félvezető memóriák Erasable Programmable ROM (EPROM) Erős UV fénnyel (lassan) törölhető a tartalom Majd ismét újraírható Electrically Erasable Programmable ROM (EEPROM) Elektronikusan, bájtonként törölhető tartalom Flash memória Speciális továbbfejlesztett EEPROM Blokkonként (gyorsabban) törölhető Számítógép architektúrák 101
102 Félvezető memóriák Random Access Memory (RAM) Véletlen/közvetlen elérés Elérési idő nem függ az elhelyezkedéstől Írható/olvasható tetszőleges számban Elveszti a tartalmát tápfeszültség hiányában Nagy írási/olvasási sebesség Static Random Access Memory (SRAM) Frissítés nélkül is megtartja a flip-flipokban a tartalmat a tápellátás megszűnéséig (pl. cache) Számítógép architektúrák 102
103 Félvezető memóriák Dynamic Random Access Memory (DRAM) Rendszeresen frissíteni kell, hogy a kondenzátor révén tárolt információ megmaradjon SRAM-nál lassabb (pl. operatív tár) Olyan gyorsan válaszol ahogy tud Synchronous Dynamic RAM (SDRAM) Órajellel szinkronizált válasz Gyorsabb az aszinkron DRAM-nál (pipeline működés) Számítógép architektúrák 103
104 Félvezető memóriák Double Data Rate (DDR) Gyorsított SDRAM Az órajel fel és leszálló élére is szinkronizál DDR2, DDR3, DDR4 Egyre nagyobb sebesség Egyre nagyobb adatsűrűség Egyre kisebb feszültség Nem kompatibilis DIMM (SDRAM, DDR, DDR2, DDR3, DDR4) Számítógép architektúrák 104
105 Gyorsítótár Egyes eszközök rendszeresen adatot cserélnek Az eszközök adatátviteli sebessége nagyon eltér A lassú eszköz miatt a gyors is lelassul Pl. a CPU kb. 10-szer gyorsabb a RAM-nál Megoldási ötlet Köztes tároló beiktatása (cache) Gyorsabb, mint a lassú eszköz (SRAM, közeli) Magas ára miatt teljesen nem helyettesíti a lassút Létjogosultság: lokalitási elvek Számítógép architektúrák 105
106 Térbeli lokalitás elve Gyorsítótár Ha egy program hivatkozik egy memóriacímre (adat vagy utasítás), akkor nagy valószínűséggel hamarosan hivatkozik a szomszédos címekre is Szekvenciális végrehajtás, tömbök Időbeli lokalitás elve Ha egy program hivatkozik egy memóriacímre, akkor nagy valószínűséggel hamarosan ismét hivatkozik rá Ciklusok Számítógép architektúrák 106
107 Gyorsítótár Leggyakrabban használt adatok tárolása Kisebb tárolókapacitás, gyorsabb elérés (SRAM), mint az operatív memória esetén Átlátszóak a felhasználó számára Asszociatív (CAM) memóriát tartalmazhat CPU cache, GPU cache, Web cache, DNS cache CPU cache Többszintű: L1, L2, L3 cache On-chip vagy off-chip Számítógép architektúrák 107
108 Gyorsítótár felépítése A tárolás egysége a Sor A Sor részei a Tag (toldalék) és a Blokk A Tag tartalmazza a Blokk főtárbeli címét és egyéb vezérlő információkat A Blokk a főtár egy részének a másolata CPU Cache Tag Blokk 128 DEF 131 MNO 129 GHI RAM ABC 127 DEF 128 GHI 129 JKL 130 MNO 131 Számítógép architektúrák 108
109 A cache működése A processzor a szükséges adatot a cache-ben keresi (átadja a tárcímet a cache vezérlőnek) Ha az adott cím el van tárolva a Tag-ben (cache hit), akkor válaszol a Blokk tartalma alapján Ha a cím nincs eltárolva (cache miss), akkor beolvassa a megfelelő területet a főtárból, dönt arról, melyik sorba mentse és elmenti (felülírva valamelyik cache sort), majd válaszol a Blokk tartalma alapján Számítógép architektúrák 109
110 A cache működése Asszociativitás: Egy adott memóriacímen lévő adat hány cache sorban tárolódhat. Közvetlen leképezésű (direct-mapped) Egy RAM címről csak 1 sorra történhet leképezés. Csoport asszociatív (set-associative) Egy RAM címről néhány sor egyikébe kerül az adat. Teljesen asszociatív (fully associative) Bármely címről származó adat tárolható bármely cache sorban. Számítógép architektúrák 110
111 A cache működése Helyettesítési szabályok felülírási igény esetén Véletlen gyors, de nem hatékony Legkevésbé használt (LRU) hatékony, de komplikált Nem leggyakrabban használt Hatékony és egyszerű Számítógép architektúrák 111
112 A cache működése Az írás művelete során figyelni kell a főtár és a gyorsítótár tartalmának konzisztenciájára Megoldások Közvetlen írás Visszaírás Közvetlen írás (write through) Gyorsítótár írásával egyidejűleg a főtár is íródik Az írást a cache nem gyorsírja Számítógép architektúrák 112
113 Visszaírás (write back) A cache működése Gyorsítótár minden írás esetén módosul A Tag vezérlő részében ezt jelezzük ( dirty ) Ha a cache adott sorát felül kell írni újabb olvasási művelet miatt, és a sor dirty visszaírjuk a tartalmát a főtárba Majd megtörténik a sor felülírása az újjal Többprocesszoros rendszerekben probléma a külön cache-ek miatt. Probléma DMA esetén is. Számítógép architektúrák 113
114 A cache működése olvasás Igény? írás Cache hit? nem igen igen Cache hit? nem Felülírandó sor keresés Felülírandó sor keresés Dirty? nem igen Felülírandó sor visszaírása Felülírandó sor visszaírása igen Dirty? nem Alsóbb memória olvasás a választott sorba Státusz: nem dirty Válasz az adattal Alsóbb memória olvasás a választott sorba Új adat írása a választott blokkba Státusz: dirty Számítógép architektúrák 114
115 A cache jellemzői A gyorsítótár mérete A Blokk mérete Egy Blokk kikeresésének ideje Aktualizálási idő (visszaírásnál) Helyettesítési stratégia (sor felülírásnál) Találati arány (hit rate) Általában 90% feletti Méretfüggő Számítógép architektúrák 115
116 Cache hierarchia processzor processzor core core core core L1 utasítás L1 adat L1 utasítás L1 adat L1 utasítás L1 adat L1 utasítás L1 adat >10kB L2 L2 L2 L2 >100kB L3 L3 >1MB Fő memória >1GB Számítógép architektúrák 116
117 Cache hatása a programokra... ARRAY = (double*)malloc(size*sizeof(double)); N_Rep = /SIZE; for(j=0; j<n_rep; j++) for(i=0; i<size; i++) sum += ARRAY[i];... Ha az adat elfér a cache-ben, akkor a program gyorsabb! Számítógép architektúrák 117
118 Cache hatása a programokra Sorfolytonos mátrix kezelése int a[n][m]; Sorról-sorra: for(i=0;i<n;i++) for(j=0;j<m;j++) sum+=a[i][j]; Oszlopról-oszlopra: for(j=0;j<m;j++) for(i=0;i<n;i++) sum+=a[i][j]; Nagy mátrix esetén: Gyakori cache miss Lassú futás Számítógép architektúrák 118
119 Problémák Háttértár Az operatív tár nem elég nagy Kikapcsoláskor a RAM tartalma elvész Megoldás Háttértár: lassabb elérés, de nagyobb kapacitás Tárolási elv Mágneses: merevlemez (HDD) Elektronikus: szilárdtest-meghajtó (SSD) Optikai: CD, DVD, Blu-ray Számítógép architektúrák 119
120 Merevlemez Winchester, Hard Disc Drive (HDD) Mágnesezhető, forgó lemezeken tárolt adat Lemezenként 2 író/olvasó fej Tulajdonságai Tárolókapacitás: <2TB Írási/olvasási sebesség: 1MB/s 100MB/s Fordulatszám: rpm Csatoló felület: ATA, SATA, SCSI, USB Lemez gyorsítótár mérete: 1MB 64MB Számítógép architektúrák 120
121 Adattárolás merevlemezen A HDD több tároló lemezt tartalmazhat A lemezek felülete koncentrikus sávokra osztott Az egymás alatti lemezeken lévő azonos sugarú sávok alkotják a cilindert A sávok szektorokra vannak osztva Ez az adattárolás legkisebb egysége Klaszter a szektorokból álló folytonos terület Minden író/olvasó fej egyszerre mozog egy adott pillanatban egy cilinderen helyezkednek el Számítógép architektúrák 121
122 Adattárolás merevlemezen Átlagos hozzáférési idő T access = T seek + T rotation + T other T access T seek + T rotation ( 10 ms) Az első bájt (a szektorban) drága a többi olcsó sáv szektor lemez fej Számítógép architektúrák 122
123 Hagyományos szerkezet 512 bájtos szektor Szektor rés szinkron cím hibajavító 512 bájt adat sáv szektor szektor szektor szektor szektor szektor szektor szektor Advanced Format (AF) 4K native 4096 bájt adat Számítógép architektúrák 123
124 Szektor hatása programokra... #define SIZE 2048 char BUFFER[SIZE]; out=open("output.txt",o_wronly); write(out, BUFFER, SIZE); close(out);... Szektor méretnél kevesebbet fájlba írni nem hatékony! Számítógép architektúrák 124
125 Bufferelt adatfolyam Az output adatfolyamokat gyakran a rendszer buffereli és csak később blokkosan írja ki. Kevesebb rendszerhívás, kevesebb lemez művelet, gyorsabb program while(i<100000){ fprintf(f, x ); sleep(t); i++; } Számítógép architektúrák 125
126 Adatelérés merevlemezen Hogyan hivatkozható egy terület a HDD-n? CHS cilinder-fej-szektor hármassal (régi) LBA logikai blokk címzéssel (lineáris, új) Konverzió (egyszerű esetben): LBA = (C*N fej +H)*N szektor +(S-1) Lemezvezérlő foglalkozik a logikai és fizikai cím leképezéssel Számítógép architektúrák 126
127 Régi HDD esetén Sávok szektorszáma Minden sávban azonos számú szektor Külső szektorok adatsűrűsége sokkal kisebb, mint a belsőké (kihasználatlanság) Modern HDD esetén Zone Bit Recording (ZBR) Szektorok adatsűrűsége közel azonos Külső sávokban több szektor, mint a belsőkben Címzés bonyolultabb Számítógép architektúrák 127
128 SSD Szilárdtest-meghajtó (Solid State Drive) Mozgó alkatrész nélküli félvezető memória Blokkos adatelérés SATA, SCSI, USB csatlakozás Előnyei a HDD-vel szemben Gyorsabb adatelérés Egyenletes adathozzáférés Kisebb zaj, fogyasztás és hőtermelés Mechanikai megbízhatóság Számítógép architektúrák 128
129 Háttértár magasabb szinten Formázás Alacsony szintű (szektor szerkezet kialakítás) Magas szintű (fájlrendszer) Particionálás HDD kisebb logikai egységre bontása MBR, GPT kialakítás Fájlrendszerek FAT32, NTFS ext2, ext3, ext4 Számítógép architektúrák 129
130 Master Boot Record LBA 0 MBR Boot kód (pl. GRUB) + Partíciós tábla Max 4 partíció és egyenként max 2 TB 4 elsődleges partíció 3 elsődleges partíció + 1 kiterjesztett partíció (utóbbin további logikai partíciók lehetnek) BIOS indítja a betöltőt a Power On Self Test után Számítógép architektúrák 130
131 GPT GUID Partition Table LBA 0: MBR megőrzés; LBA 1: elsődleges GPT fejrész LBA 2-33: elsődleges GPT partíciós tábla Utolsó szektorok: biztonsági tartalék Másodlagos GPT fejrész és partíciós tábla UEFI szabvány (BIOS lecserélés) Akár 128 partíció, max lemezméret 9,4 ZB Számítógép architektúrák 131
132 FAT fájl rendszer Merevelemez 0 MBR 1 FAT 1 2 FAT 2 3 Gyökér 4 gyümölcs 5 állat. 6 Az alma 7 finom 8 szerintem Emlős File Allocation Table EOF 7 4 EOF 5 Gyökérkönyvtár bejegyzései Fájlnév Attribútumok Kezdő klaszter Alma.txt Bla-bla 6 Kutya.txt Bla-bla 10 Számítógép architektúrák 132
133 Pl.: Ext2, Ext3, Ext4 Fájl tárolása Könyvtár tárolás Linux fájl rendszerek könyvtári bejegyzés inode adat blokk fájl név inode ID attribútumok mutató fájl tartalom a lemezen könyvtári bejegyzés inode adat blokk könyvtár név inode ID attribútumok mutató fájl1 inode ID 1 fájl2 inode ID 2 fájl3 inode ID 3 fájl4 inode ID 4 Számítógép architektúrák 133
134 Linux fájl rendszerek Könyvtár hierarchia könyvtári bejegyzés inode fájl adat partíció MBR cilinder csop. cilinder csop. cilinder csop. cilinder csop. cilinder csop. cilinder csop. sys inode tábla adat szektorok Számítógép architektúrák 134
135 adatblokk mutatók attribútumok inode inode méret eszköz felhasználó csoport fájl mód időbélyegek linkszám adat blokkok direkt mutatók (12 db) simpla indirekt dupla indirekt tripla indirekt Számítógép architektúrák 135
136 RAID Redundant Array of Independent Discs Adatelosztás vagy replikálás több lemezen A technológia célja Adatbiztonság növelés Adatátviteli sebesség növelés Több szint (RAID 0-6) Akár hierarchikusan is (RAID 1+0, RAID 5+0) Szoftveres vagy hardverrel támogatott megvalósítás Számítógép architektúrák 136
137 RAID példák RAID 0 (összefűzés) A 1 A 3 A 5 A 7 A 2 A 4 A 6 A 8 Lemez 1 Lemez 2 RAID 1 (tükrözés) A 1 A 2 A 3 A 4 A 1 A 2 A 3 A 4 Lemez 1 Lemez 2 Fizikai kapacitás: 2 egység Logikai kapacitás: 2 egység Sebesség (R/W): 2/2 egység Hibatűrés: nincs Fizikai kapacitás: 2 egység Logikai kapacitás: 1 egység Sebesség (R/W): 2/1 egység Hibatűrés : van Számítógép architektúrák 137
138 RAID példák RAID 4 (paritás lemez) A 1 B 1 C 1 D 1 A 2 B 2 C 2 D 2 A P B P C P D P Lemez 1 Lemez 2 Lemez 3 RAID 5 (forgó paritás) A 1 B 1 C P D 1 A 2 B P C 1 D 2 A P B 2 C 2 D P Lemez 1 Lemez 2 Lemez 3 Fizikai kapacitás: 3 egység Logikai kapacitás: 2 egység Sebesség (R/W): 2/1 egység Hibatűrés: van (lassú) Fizikai kapacitás: 3 egység Logikai kapacitás: 2 egység Sebesség (R/W): 2/1 egység Hibatűrés : van (gyors) Számítógép architektúrák 138
139 RAID példák RAID 1+0 (tükrözés + összefűzés) A 1 A 3 A 5 A 7 A 1 A 3 A 5 A 7 Lemez 1 Lemez 2 A 2 A 4 A 6 A 8 A 2 A 4 A 6 A 8 Lemez 3 Lemez 4 Fizikai kapacitás: 4 egység Logikai kapacitás: 2 egység Sebesség (R/W): 2/2 egység Hibatűrés : van Számítógép architektúrák 139
140 Memória hierarchia Regiszter L1 cache L2 cache L3 cache Memória Lemez Harmadlagos tár s ms s ns Elérési idő Számítógép architektúrák 140
141 Memória hierarchia Regiszter L1 cache L2 cache L3 cache Memória Lemez Harmadlagos tár EB TB GB MB kb B Tároló kapacitás Számítógép architektúrák 141
142 Intel x86 architektúra Processzor felépítés Regiszterkészlet Memóriakezelés
143 Kezdetek Az Intel között fejlesztette ki az új Intel 8086 névre hallgató processzorát Később ezt fokozatosan tovább fejlesztették Intel (1982) Intel (1982) Intel (1986) Intel (1989), a folyamat máig tart Az új processzorok visszafelé kompatibilisek Ma a processzorcsaládra x86 néven hivatkozunk Számítógép architektúrák 143
144 Memória szegmentáció A memória logikai részekre van osztva Kód szegmens Adat szegmens Verem szegmens A címzést külön regiszterek segítik (CS, DS, SS, ES) Címzés: szegmens kezdőcím + eltolás Memóriakezelés Valós-, védett-, virtuális-, hosszú mód Számítógép architektúrák 144
145 Valós mód Memória szegmentáció 8086-ban csak ez van 20 bites címbusz (1MB) Szegmens méret 64kB (16 bit) Minden memóriacím elérhető korlátozás nélkül Ilyen módban indul a processzor Lineáris cím = szegmenscím*16 + eltolás Lineáris cím = fizikai cím + Szegmens kezdőcím (16 bit) Eltolási cím (16 bit) Lineáris kezdőcím (20 bit) Számítógép architektúrák 145
146 Védett mód Memória szegmentáció vezeti be Korlátozott memóriahozzáférés Címtér 32 bites (4GB) Virtuális memória támogatás Lineáris cím (32) = szegmenscím (32) + offset (16/32) Lineáris cím lapozás fizikai cím Virtuális mód (látszólagos valós mód tól) Hosszú mód (64 bites, nincs szegmentálás) Számítógép architektúrák 146
147 x86 regiszterkészlet EAX EBX ECX EDX ESI EDI EBP ESP AX AH 7 AL 0 SI DI BP SP CS DS SS EIP EFLAGS IP FLAGS ES FS GS Számítógép architektúrák 147
148 x86 regiszterkészlet Fő regiszterek (általános célú regiszterek, GPR) EAX Elsődleges munka regiszter (accumulator), szorzás, osztás EBX Munka regiszter, bázis mutató DS-ben ECX Munka regiszter, (ciklus)számláló EDX Munka regiszter, input/output, szorzás, osztás Számítógép architektúrák 148
149 x86 regiszterkészlet Index regiszterek (általános célú regiszterek, GPR) ESI Sztring műveletek forrás indexe, DS regiszterrel EDI Sztring műveletek cél indexe, ES regiszterrel ESP Verem tetején lévő elemet címzi, SS regiszterrel EBP Lokális változókhoz, paraméterekhez, SS regiszterrel Számítógép architektúrák 149
150 Szegmens regiszterek CS x86 regiszterkészlet Kód szegmens kezdőcíme, IP ebben címzi az utasítást DS Adat szegmens kezdőcíme (statikus változók) SS Verem szegmens kezdőcíme, ESP és EBP használja ES, FS, GS Extra adat szegmens, EDI alap szegmense az ES Számítógép architektúrák 150
151 EFLAGS regiszter Állapot bitek Vezérlő bitek Rendszer bitek x86 regiszterkészlet ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF Számítógép architektúrák 151
152 Utasítás számláló x86 regiszterkészlet IP (Instruction pointer) CS regiszter révén a kód szegmensben található utasításokat címzi Minden fetch-execute ciklus során inkrementálódik az adott utasítás hosszával (kivéve vezérlésátadás) Egyéb regiszterek Vannak további működést segítő regiszterek Programozó elől rejtettek Számítógép architektúrák 152
153 x87 regiszterkészlet Lebegőpontos egység (matematikai társprocesszor) 8 darab 64 (80) bites regiszter (ST(0)-ST(7)) Veremszerű működés Dupla pontosságú lebegőpontos reprezentáció Regiszterenként 2 további bit 00 érvényes, 01 nulla, 10 speciális (Inf, NaN), 11 üres 16 bites állapot regiszter (pl. OE, UE, ZE, TOS, B, DE) 16 bites vezérlő regiszter (pl. RC, PC) 48 bites programszámláló és adat mutató Számítógép architektúrák 153
154 Input-Output Portra leképezett I/O (PMIO) 16 bites I/O címek (0h-FFFFh) Külön utasítások (in, ins, out, outs, stb.) Egy eszközhöz több port is tartozhat Adat, Utasítás, Állapot I/O porton elérhető fontosabb eszközök: DMA vezérlő, programozható megszakítás kezelő (8259A), időzítő (8254), billentyűzet (8042), valós idejű óra, matematikai társprocesszor, PATA vezérlő, stb. Linux: /proc/ioports Számítógép architektúrák 154
155 Modern architektúrák Futószalag végrehajtás Párhuzamos végrehajtás Szuperskalár és vektor processzorok
156 Klasszikus architektúrák In-order (soros) végrehajtás (Neumann) A hagyományos architektúrán alapuló rendszerek teljesítmény növelésének lehetőségei CPU órajel frekvencia növelés Társprocesszor alkalmazás (FPU) Közvetlen memória hozzáférés (DMA) Nagyobb szóméret (nagy címtér, nagy regiszter) Gyorsítótár (cache) használat Gyorsabb buszrendszer Számítógép architektúrák 156
157 Dinamikus órajel szabályozás Az órajel frekvencia növelés több hő termelését és magasabb fogyasztást jelent (korlátozó tényező) Intel SpeedStep és AMD PowerNow! Ha a mag üresjáratban van az órajele és a mag feszültsége csökken (energiatakarékosság) Intel Turbo Boost és AMD Turbo Core Egy mag kaphat gyorsabb órajelet ha a többi mag nem terhelt (azaz határon belüli a hőtermelés) Számítógép architektúrák 157
158 Lebegő pontos egység Floating-Point Unit (FPU), matematikai társproc. Pl. Intel x87 Az egész és a lebegőpontos műveletek architekturálisan eltérnek Régen társprocesszor, ma CPU-ba integrált Külön verem struktúrájú regiszter készlet ST(0)-ST(7) Külön utasításkészlet Pl. FADD, FMUL, FDIV, FSQRT, FSIN, Számítógép architektúrák 158
159 DMA és Cache Közvetlen memória hozzáférés (DMA) Nem minden memóriaműveletet irányít a CPU CPU nélküli közvetlen RAM-RAM vagy RAM-I/O blokkos adatmozgatás Gyorsítótár (cache) Átmeneti tároló a CPU és a RAM között Legutóbb/gyakran használt adatokról másolat tárolás Gyors elérési idő Kis tároló kapacitás Számítógép architektúrák 159
160 x86-64 architektúra 64 bites általános célú regiszterek (rax, rbx, rcx, rdx, rbp, rsp, rip, rsi, rdi, r8-r15) rax / r8 Visszafelé kompatibilis az x86-tal (IA-32-vel) 64 bites virtuális címek (implementációban 48) 48 bites fizikai címzés (256TB) (bővíthető 52 bitig) Nincs memória szegmentáció Működési módok eax / r8d ax / r8w al / r8b Long mode, Legacy mode (real, protected, virtual) Számítógép architektúrák 160
161 Párhuzamosság Bit szintű párhuzamosság Az adat bitjein egyszerre hajtunk végre egy műveletet Adat szintű párhuzamosság (DLP) Több adaton azonos időben ugyanaz az utasítás Utasítás szintű párhuzamosság (ILP) Az assembly utasítások egymás mellett futhatnak Taszk (szál) szintű párhuzamosság (TLP) Utasítások csoportjai egyszerre hajtódnak végre Folyamat szintű párhuzamosság Több folyamat fut egyszerre (multiprogamozott OS) Számítógép architektúrák 161
162 Flynn-féle osztályozás Osztályzás párhuzamosság szempontjából SISD (Single Instruction Single Data) pl. klasszikus korai egyprocesszoros PC-k SIMD (Single Instruction Multiple Data) pl. vektroprocesszorok, GPU MISD (Multiple Instruction Single Data) pl. hibatűrő rendszerek (űrrepülőgép) MIMD (Multiple Instruction Multiple Data) pl. többmagos- és szuperskalár processzorok Számítógép architektúrák 162
163 Utasítás-szintű párhuzamosság Utasítás-szintű párhuzamosság (ILP) technikái Futószalag-elvű végrehajtás (pipeline) Sorrenden kívüli végrehajtás (OoOE) Regiszter átnevezés Spekulatív végrehajtás Elágazás becslés Szuperskalár végrehajtás Nagyon hosszú utasításszó (VLIW) használat Számítógép architektúrák 163
164 Egy utasítás végrehajtás Fetch-execute ciklus Minden egyes utasítás végrehajtása több fázisra bontható: Utasítás beolvasás (IF) Utasítás dekódolás (ID) Operandus beolvasás (OF) Végrehajtás (EX) Eredmény visszaírás (WB) Egy utasítás több órajel alatt hajtódik végre Számítógép architektúrák 164
165 Pipelining Futószalag-elvű utasítás végrehajtás Több utasítás végrehajtása is folyamatban lehet egyszerre, csak legyenek különböző fázisban Egyes processzoroknál akár 30 fázis/utasítás Egy utasítás végrehajtási ideje nem csökken Viszont az egységnyi idő alatt végrehajtott utasítások száma (áteresztőképesség, throughput) növekszik A program gyorsabban lefuthat Számítógép architektúrák 165
166 Pipelining CPU idő [órajel] 1. utasítás 1 pipeline fázis IF ID OF EX WB 2. utasítás 2 utasítás 1 3. utasítás 3 utasítás 2 utasítás 1 4. utasítás 4 utasítás 3 utasítás 2 utasítás 1 5. utasítás 5 utasítás 4 utasítás 3 utasítás 2 utasítás 1 6. utasítás 6 utasítás 5 utasítás 4 utasítás 3 utasítás 2 7. utasítás 7 utasítás 6 utasítás 5 utasítás 4 utasítás 3 8. utasítás 8 utasítás 7 utasítás 6 utasítás 5 utasítás 4 Elméleti utasítás végrehajtási idő: 5 órajel / utasítás Elméleti áteresztőképesség: 1 utasítás / órajel Számítógép architektúrák 166
167 Hazárd A Neumann-féle szekvenciális végrehajtási elv feltételezi, hogy minden utasítás végrehajtás befejeződik a következő megkezdése előtt Pipeline processzorokra ez nem igaz Hazárd: az a helyzet amikor ez problémát jelent Típusai Adat hazárd Strukturális hazárd Vezérlési hazárd Számítógép architektúrák 167
168 Adat hazárd Végrehajtás alatt álló utasítások ugyanazt az adatot használják/módosítják RAW (Read After Write, adat függőség) R3 R1 + R2 R4 R3 + R2 WAR (Write After Read, név függőség) R3 R1 + R2 R2 R1 + R4 WAW (Write After Write, név függőség) R3 R1 + R2 R3 R4 + R1 Számítógép architektúrák 168
169 Strukturális és vezérlési hazárd Strukturális hazárd Ha a processzor hardvere nem képes az utasításokat egyszerre végrehajtani Pl. az egyik utasítás IF fázisban a másik OF fázisban egyszerre címezné a memóriát Vezérlési hazárd Elágazásnál a processzor nem tudja előre hol kell folytatni a vezérlést, azaz melyik utasítást olvassa be a futószalagra Számítógép architektúrák 169
170 Adat hazárd kezelése Pipeline buborék Hazárdok kezelése Operandus/eredmény továbbítás (bypassing) Sorrenden kívüli végrehajtás (OoOE) Regiszter átnevezés Strukturális hazárd Pipeline buborék Vezérlési hazárd Pipeline buborék Elágazásbecslés Számítógép architektúrák 170
171 Pipeline buborék Az IF fázis után ha a vezérlő egység hazárdot észlel beszúr egy NOP utasítást, azaz késlelteti a következő utasítás futószalagra helyezését Közben az utasítás előállítja az eredményt, amit a következő utasítás a késleltetés után már be tud olvasni Buborék ( üresjárat ) a pipline-ban Nő a futásidő (de még mindig gyorsabb, mint pipeline nélkül) Számítógép architektúrák 171
172 Pipeline buborék CPU idő [órajel] 1. ADD r1,r2,r3 pipeline fázis IF ID OF EX WB 2. SUB r4,r5,r1 ADD r1,r2,r3 3. SUB r4,r5,r1 ADD r1,r2,r3 4. SUB r4,r5,r1 ADD r1,r2,r3 5. SUB r4,r5,r1 (buborék) ADD r1,r2,r3 6. SUB r4,r5,r1 (buborék) (buborék) 7. SUB r4,r5,r1 (buborék) 8. SUB r4,r5,r1 Az adatfüggőség két órajelnyi késlekedést okozott Számítógép architektúrák 172
173 Eredmény továbbítás Ez egyik utasítás EX fázisának outputját közvetlenül (a visszaírással egy időben) kössük rá a másik utasítás EX fázisának inputjára CPU idő [órajel] 1. ADD r1,r2,r3 pipeline fázis IF ID OF EX WB 2. SUB r4,r5,r1 ADD r1,r2,r3 3. SUB r4,r5,r1 ADD r1,r2,r3 4. SUB r4,r5,r1 ADD r1,r2,r3 5. SUB r4,r5,r1 (buborék) ADD r1,r2,r3 6. SUB r4,r5,r1 (buborék) 7. SUB r4,r5,r1 Számítógép architektúrák 173
174 Sorrenden kívüli végrehajtás Out-of-Order Execution (OoOE) Az utasítások nem a programban szereplő felírás sorrendjében hajtódnak végre Az az utasítás hajtódik végre először amelyiknek hamarabb állnak elő a bemeneti adatai A processzor próbálja elkerülni az üresjáratot az utasítások átrendezésével Hardveresen gyorsított újrafordítás Viszonylag nagy utasítás ablak Számítógép architektúrák 174
175 Sorrenden kívüli végrehajtás Utasítás beolvasása a memóriából Az utasítás beáll egy utasítás sorba és vár Az utasítássorból az távozik először, akinek elérhetőek az input operandusai A távozó utasítás végrehajtásra kerül Az eredmény bekerül egy eredmény sorba, vár Az adott utasítás eredménye csak akkor kerül ki a sorból (és íródik be a regiszterfájlba), ha minden idősebb utasítás eredménye már kikerült Számítógép architektúrák 175
176 Regiszter átnevezés A név függőség (WAR és WAW hazárd) esetén egy utasítás eredménye felülírna egy még szükséges értéket, mivel nincs korlátlan számú üres regiszter A regiszter átnevezés révén ez elkerülhető Az utasításkészlet az architekturális regiszterfájl elemeire hivatkozik Ezt egy speciális áramkör leképezi egy nagyobb méretű hardveres regiszterfájlra Számítógép architektúrák 176
177 Architekturális regiszterek Regiszter átnevezés r0 r1 r2 r3 r4 r5 r6 r7 r3 átnevező logika hw8 hw1 hw2 hw3 hw4 hw5 hw6 hw7 hw8 hw9 hw10 hw11 hw12 Hardveres regiszterek Eredeti kód: Átnevezés utáni kód: Átrendezés utáni kód: ADD r3, r1, r2 LDR r4, [r3] SUB r3, r5, r6 STR [r7], r3 ADD hw3, hw1, hw2 LDR hw4, [hw3] SUB hw8, hw5, hw6 STR [hw7], hw8 ADD hw3, hw1, hw2 SUB hw8, hw5, hw6 LDR hw4, [hw3] STR [hw7], hw8 RAW hazárd WAR hazárd WAR hazárd mentes Hazárd mentes Számítógép architektúrák 177
178 Spekulatív végrehajtás Olyan műveletek végrehajtása, amely lehet hogy nem is szükséges Ha később kiderül, hogy a művelet nem volt szükséges, akkor az eredményt eldobjuk Nincs üresjárat pipeline processzor esetén Változatok Mohó végrehajtás (pl. elágazásnál mindkét ág végrehajtása, ha kiderül melyik szükséges azt megtartjuk) Jósló végrehajtás (pl. elágazás becslés) Számítógép architektúrák 178
179 Elágazásbecslés Feltételes ugró utasításnál melyik a következő utasítás, amit be kell tenni a pipeline-ba? Külön áramkör próbálja megbecsülni melyik ágat kell majd végrehajtani Elkezdődik a jósolt ág végrehajtása Ha kiderül, hogy a jóslat hibás a műveletek eredménye visszavonódik, egyébként időt spóroltunk (nem kellett várakozni) A pipeline hosszával (akár 30 is lehet) nő az igény a jó elágazásbecslésre Számítógép architektúrák 179
180 Szuperskalár processzorok Órajelenként több utasítás hajtódik végre Egy processzor magban több végrehajtási egység CPU idő [órajel] pipeline fázis IF ID OF EX WB utasítás 1 utasítás 2 utasítás 3 utasítás 1 utasítás 4 utasítás 2 utasítás 5 utasítás 3 utasítás 1 utasítás 6 utasítás 4 utasítás 2 utasítás 7 utasítás 5 utasítás 3 utasítás 1 utasítás 8 utasítás 6 utasítás 4 utasítás 2 utasítás 9 utasítás 7 utasítás 5 utasítás 3 utasítás 1 utasítás 10 utasítás 8 utasítás 6 utasítás 4 utasítás 2 Számítógép architektúrák 180
181 Szuperskalár processzorok ILP és OoOE Utasítás ablak Előre látható utasítások sora Független utasítások keresésének színtere Nagyobb ablakméret gyorsít Futtatható normál szekvenciális program is A megfelelő fordítás javíthatja viszont a hatékonyságot, növelheti az áteresztőképességet Számítógép architektúrák 181
182 Vektor processzorok A CPU egy utasítást hajt végre egyszerre adatok egydimenziós tömbjén (SIMD) Nagy méretű regiszterek használata (több önálló adatot is tárol egyszerre) Újabb utasítások bevezetése ezek kezelésére Példák MMX (Intel) 3DNow! (AMD) SSE AVX Számítógép architektúrák 182
183 Vektor processzorok Skalár processzor logika Ismételd 10-szer! Olvasd be a következő utasítást! Olvasd be ezt és azt a számot! Add össze őket! Mentsd el az eredményt! Ciklusvég Vektor processzor logika Olvasd be az utasítást! Olvasd be ezt a 10 és azt a 10 számot! Add össze őket egyszerre! Mentsd el az eredményeket! Számítógép architektúrák 183
184 Vektor processzorok MultiMedia extension (MMX) 64 bites regiszter (int: 1x64, 2x32, 4x16, 8x8) 8 darab (MM0-MM7) Alias-ok FPU regiszterekre (konkurenciát okoz) 3DNow! (AMD továbbfejlesztés) float-ot is használ Streaming SIMD Extensions (SSE) 128 bites regiszter (float: 4x32) 8 vagy 16 darab (XMM0-XMM15) 70 új utasítás Számítógép architektúrák 184
185 SSE2 Vektor processzorok 128 bites regiszter (float: 2x64, 4x32; int: 2x64, 4x32, 8x16, 16x8) SSE3, SSE4 Újabb utasítások (+13, +47) Advanced Vector extensions (AVX) 256 bites regiszter (float) 8 vagy 16 darab (YMM0-YMM15) Számítógép architektúrák 185
186 Vektor processzorok AVX2 int és float adatokra is Új utasítások AVX bites regiszter (int, float) 32 darab (ZMM0-ZMM31) AVX-512 AVX SSE MMX 512 bit 256 bit 128 bit 64 bit ZMM0 YMM0 XMM0 MM0 Számítógép architektúrák 186
187 Vektor processzorok 2db 32 bites előjeles egész összeadása Túlcsordulás jelzés: státusz regiszter bitek (OF, CF) OF=1 0x77 0x35 0x94 0x00 + 0x3B 0x02 0x33 0x76 = 0xB2 0x37 0xC7 0x76 4*2db 8 bites előjeles egész összeadása Túlcsordulás jelzés: telítési aritmetikai mód 0x77 0x35 0x94 0x00 + 0x3B 0x02 0x33 0x76 = 0x7F 0x37 0x7F 0x = = Számítógép architektúrák 187
188 Ciklus függőség Read After Write: nem vektorizálható for(i=1; i<n; i++) x[i] = x[i-1] + y[i]; Write After Read: vektorizálható for(i=0; i<n-1; i++) x[i] = x[i+1] + y[i]; Read after Read: vektorizálható for(i=0; i<n; i++) x[i] = y[i%2] + z[i]; Write after Write: nem vektorizálható for(i=0; i<n; i++) x[i%2] = y[i] + z[i]; N = 5; x = {0,1,2,3,4}; y = {5,6,7,8,9}; z = {9,7,5,3,1}; Számítógép architektúrák 188
189 VLIW processzorok Very Large Instruction Word Egy utasítás (ún. köteg) több kisebb, de egyszerre végrehajtható utasítást tartalmaz Olyan speciálisan fordított programot igényel, amely explicit módon jelzi a párhuzamosan végrehajtható utasításokat Szuperskalár ILP és OoOE Egyszerűbb hardver, bonyolultabb fordító Utód: Explicitly Parallel Instruction Computing Számítógép architektúrák 189
190 VLIW példa Kiszámítandó: (x-y)*(x+y)/8*z*z Skalár megoldás (9 utasítás) LDR r1, (r11) LDR r2, (r12) SUB r3, r1, r2 ADD r4, r1, r2 MUL r5, r3, r4 LDR r3, (r13) MUL r6, r3, r3 ASR r7, r6, #3 DIV r8, r5, r VLIW megoldás (4 utasítás) LDR r1, (r11) LDR r2, (r12) LDR r3, (r13) SUB r3, r1, r2 ADD r4, r1, r2 MUL r6, r3, r3 MUL r5, r3, r4 ASR r7, r6, #3 NOP DIV r8, r5, r7 NOP NOP (x y)(x + y) 8z 2 Számítógép architektúrák 190
191 VLIW vs Szuperskalár Érvek a VLIW mellett Egyszerű hardver Rövidebb órajel ciklus, gyorsabb működés Nagyobb végrehajtási egység sűrűség a chipen Érvek a VLIW ellen Lassú fordítás speciális fordítóval Nem portolható programok (szoftver inkompatibilitás) Nagyobb program méret a RAMban (NOP-ok miatt) Számítógép architektúrák 191
192 Ciklus kigöngyölés Segítségével hatékonyabbá tehető a program szuperskalár, vektor és VLIW processzor esetén Könnyebb független utasításokat találni. Kevesebb ciklusszervezési lépés Hagyományos ciklus for(i=0;i<100;i++) a[i]=b[i]+c[i]; Kigöngyölt ciklus for(i=0;i<100;i+=4){ a[i] =b[i] +c[i]; a[i+1]=b[i+1]+c[i+1]; a[i+2]=b[i+2]+c[i+2]; a[i+3]=b[i+3]+c[i+3]; } Számítógép architektúrák 192
193 Többmagos processzorok Egy integrált áramköri lapon több önálló feldolgozó egység kap helyet N mag esetén jobb teljesítmény és kisebb fogyasztás mint N darab egymagos CPU esetén Általában saját L1 (esetleg L2) cache, de közös L3 Cache koherencia probléma Párhuzamos szál/folyamat futtatás (MIMD) Taszk-szintű párhuzamosság (pl. Java Thread) Az operációs rendszernek támogatnia kell Számítógép architektúrák 193
194 Hyper-threading Az Intel SMT (Simultaneous MultiThreading) megvalósítása Több szál kezelése magon belül Több állapottároló processzor elem Egy végrehajtó elem Ha egy szálnak várnia kell, addig fusson a másik Elkerülve a pipeline buborékok alkalmazását Minden fizikai mag két logikai magként viselkedik Az operációs rendszer támogatás fontos Számítógép architektúrák 194
195 Többprocesszoros rendszerek Számítógép rendszer több processzorral Megosztott (shared) vagy szétosztott (distributed) memória Többmagos processzor: speciális megosztott memóriás többprocesszoros rendszer Programozás OpenMP (shared memory model) Open MPI (message passing) OGE / SGE (cluster computing) Számítógép architektúrák 195
196 csomópont 1 csomópont 2 NUMA architektúra Non-Uniform Memory Access (nem egységes memória hozzáférés) Processzorokhoz saját memória tartozik, de elérheti másik processzor memóriáját is A memóriaelérés ideje függ a memória helyétől Egyszerre több memóriaművelet is végezhető CPU busz RAM összeköttetés CPU busz RAM Számítógép architektúrák 196
197 gyorsulás (S) Amdahl törvénye N darab processzor (szál) használata nem eredményez N-szeres gyorsulást egy folyamat végrehajtásában S N = T 1 T N = 1 A+ 1 N (1 A) ahol S a gyorsulás, T a futásidő és A a futásidő soros végrehajtású hányada 0 A 1 processzor szám (N) A=0,1 A=0,2 A=0,5 Számítógép architektúrák 197
198 Virtualizáció Egy hardveren egyszerre több működő operációs rendszer Egy gazda gép (host) Több vendég (guest) Típusai Hosztolt virtualizáció Natív virtualizáció Hypervisor (VMM) Hyper-V, Vmware, VirtualBox Hardveres támogatás (VT-x, AMD-V) OS OS OS Hypervisor OS Hardver Hosztolt virtualizáció OS OS OS Hypervisor Hardver Natív virtualizáció Számítógép architektúrák 198
199 Grafikus feldolgozó egység Graphics Processing Unit (GPU) Feladat: textúrák kezelés, képek renderelés, 3D grafika gyorsítás, videó kódolás, Integrált vagy külön videokártya Gyártók: nvidia és ATI (AMD) Egyszerű, kis utasításkészlet Nagy számítási kapacitás (párhuzamos, SIMD) Saját memóriája lehet Csatlakozás: AGP, PCIe VGA, DVI, HDMI Számítógép architektúrák 199
200 Általános célú GPU General-Purpose GPU (GPGPU) A GPU átvesz számításokat a CPU-tól Programozás OpenCL CUDA MATLAB Accelerated Processing Unit (APU) CPU és GPU elemekből felépülő processzor Számítógép architektúrák 200
201 FPGA Field-Programmable Gate Array Programozható logikai áramkör Újrakonfigurálható rendszer Speciális nyelvek: VHDL, Verilog Természeténél fogva párhuzamos működés Létezik processzorba integrált FPGA Szoft-processzor FPGA-n implementált processzor architektúra Számítógép architektúrák 201
202 Intel X86 történelem & további architektúrák Az Intel processzorok fejlődése Más architektúrák HPC
203 Intel X86 Főbb architektúra családok 8086, 80386, Pentium, Pentium 4, Core i7, Core i9 Motorola MIPS Transmeta PowerPC ARM Microchip PIC AVR CPU MCU Számítógép architektúrák 203
204 Megjelenési év bites regiszterek Intel bites fizikai cím (1MB) 5-10 MHz órajel 3000nm technológia tranzisztor 40 tűs DIP tokozás DMA támogatás mov ax, [di] ;from the address in di to ax Számítógép architektúrák 204
205 Intel Megjelenési év bites regiszterek 4GB-os címtér MHz órajel nm technológia tranzisztor 132 tűs PGA tokozás Cache, virtuális memória kezelés, pipeline Számítógép architektúrák 205
206 Intel Pentium Megjelenési év bites regiszterek 4GB-os címtér MHz órajel nm technológia tranzisztor 273 tűs Socket 4; 321 tűs Socket 7 aljzat Szuperskalár, MMX, L2 cache, integrált FPU Számítógép architektúrák 206
207 Megjelenési év bites regiszterek Intel Pentium 4 Mikroarchitektúra: NetBurst MHz órajel nm technológia millió tranzisztor Socket 423 vagy Socket 478 aljzat SSE3, szintű futószalag, elágazásbecslés, HyperThread Számítógép architektúrák 207
208 Megjelenési év 2008 Intel Core i7 64 bites regiszterek (x86-64) Mikroarchitektúra: Nehalem, Sandy Bridge, Ivy Bridge, Haswell, Broadwell, 45-14nm technológia ( millió tranzisztor) 2-6 mag LGA aljzat ( kontaktus) L3 cache, integrált GPU, AVX-512, integrált NorthBridge Számítógép architektúrák 208
209 Megjelenési év 2017 Intel Core i9 64 bites regiszterek (x86-64) Mikroarchitektúra: Skylake 14nm technológia mag FCLGA aljzat (2066 kontaktus) 13-24MB L3 cache, Virtual Machine extensions, Turbo Boost Max 3.0 (4,5GHz), AVX-512, HT, DMI 3.0, DDR4 Számítógép architektúrák 209
210 Intel Xeon Phi Szuperszámítógépekbe, szerverekbe GPU alapú MIC (Many Integrated Core) architektúra mag ( GHz) 28,5-36MB L2 cache ISA: x utas hyperthreading AVX GFLOPS (Core i7: GFLOPS) Társprocesszor Számítógép architektúrák 210
211 Motorola Régi (1979), de élő CISC 16/32 bites Memory-mapped I/O 14 címzési mód, 5 adattípus, 56 utasítás 7 szintű megszakítási rendszer Alkalmazás: Apple Macintosh, Sega Mega Drive, Comodore Amiga, SG és Sun munkaállomás, PLC MOVE.W (A1), D1 ;move 2 bytes from the address stored in A1 to D1 Számítógép architektúrák 211
212 MIPS RISC 32/64 bites 5 fokozatú pipeline végrehajtás OoOE, SIMD, szuperskalár több szintű cache Alkalmazás: PlayStation 2 és Nintendo 64 játékkonzolok, CISCO routerek, lw $t1, ($t0) #move 2 bytes from the address stored in t0 to t1 Számítógép architektúrák 212
213 Transmeta Crusoe Alacsony fogyasztás Szoftveres ISA X86 kompatibilitás Akár Java bájtkód futtatás VLIW (128bit) Megjelenés: 2000 Többszintű cache Utód: Efficeon Alkalmazás: tablet-ek, laptop-ok Számítógép architektúrák 213
214 PowerPC Fejlesztő: Apple+IBM+Motorola RISC 32/64 bites Szuperskalár Futásidőben állítható little-endian/big-endian bájtsorrend Alkalmazás: Xbox 360, Nintendo Wii li 3, 0(5) ;move data from the address stored in register 5 to register 3 Számítógép architektúrák 214
215 ARM RISC 32/64 bites Akár 13 fokozatú pipeline, SIMD, szuperskalár Prioritásos megszakításkezelés Egységes 32 bites utasítások Feltételes utasítás-végrehajtás (nincs elágazásbecslés) Alkalmazás: Raspberry Pi, iphone 6 és egyéb okostelefonok, (2013-ban 10 milliárd új CPU) LDR R8, [R0] ;move data from the address stored in R0 to R8 Számítógép architektúrák 215
216 Microchip PIC Mikrokontroller (Módosított) Harvard architektúra RISC 8/12/14/16 bites 1 általános munkaregiszter (W) Nincs különbség adatmemória és regiszter között Pl.: a PC és egyéb regiszterek memóriára vetítve MOVLW d 29 ;move decimal 29 into W Számítógép architektúrák 216
217 Atmel AVR Mikrokontroller (Módosított) Harvard architektúra RISC 8/32 bites 32 általános 8 bites munkaregiszter (R0-R31) Saját beépített memória (SRAM, Flash) Címtér: regiszterfájl + memória Alkalmazás: Arduino ldi r16, 0xF1 ;load hexadecimal 0xF1 to r16 Számítógép architektúrák 217
218 High-Performance Computing HPC - Top 1 Magyarországon (2015) Leo (Szilárd Leo után) Debrecen, DE Kassai úti campus 197,2 TFLOPS számítási kapacitás 462 Intel Xeon E (2.6GHz) 3696 mag GB memória Kb 8000 TB háttértár HUF Top500: 308. helyezés Számítógép architektúrák 218
219 High-Performance Computing HPC - TOP 1 (2015) (2017: TOP 2) Tienhe-2 (Tejút 2) Kína, Guangzhou 33,86 PFLOPS számítási kapacitás Intel Xeon (2.2GHz) Xeon Phi mag GB memória TB háttértár USD 17,6 MW fogyasztás (+6,4MW a hűtőrendszer) Számítógép architektúrák 219
220 A programozás és az operációs rendszer Rendszerhívás Folyamatok Szignál Ütemezés Virtuális memória
221 Duál-módú működés Kernel mód Magas CPU jogosultság A processzor minden utasítást végre tud hajtani Minden memóriarekesz megcímezhető User mód Alacsony CPU jogosultság Processzor korlátozott utasításkészletet használ Nem minden memóriarekesz hozzáférhető Számítógép architektúrák 221
222 Rendszerhívás Interfész a felhasználói program és az operációs rendszer kernel között A program egy szolgáltatást igényelhet az operációs rendszer kerneltől Tipikus megvalósítás szoftver interrupt-tal Kernel módú működés Például Folyamatok kezelése Fájlok kezelése Eszközök kezelése Számítógép architektúrák 222
223 Rendszerhívás Példa: Egy USB meghajtón lévő file írása Saját C program fprintf() standard könyvtári függvény write rendszerhívás USB driver USB drive Felhasználói program Könyvtári függvény Szoftver Rendszerhívás Kernel Eszköz meghajtó Hardver eszköz Hardver Számítógép architektúrák 223
224 Process, processzus Folyamat Végrehajtás alatt álló program Erőforrásokkal rendelkezik CPU-idő, memória, állományok, I/O eszközök A folyamatokhoz kapcsolódó információkat a folyamatvezérlő blokk (PCB) tartalmazza Kommunikálhatnak egymással Inter-process communication (IPC) Számítógép architektúrák 224
225 Folyamat Multi-programozott környezetben egynél több folyamat is lehet egyszerre Egyedi azonosítóval rendelkezik (PID) Minden folyamatnak egy szülő- és több gyermek folyamata lehet Egy vagy több szálból állhat a folyamat Különböző állapotokban lehetnek Az állapotok között különböző állapotátmenetek Számítógép architektúrák 225
226 Folyamat ütemezés Multi-programozott környezet (több folyamat) Ütemező: választ a futásra kész folyamatok közül, ki kapja meg a CPU-t Algoritmusok: FCFS, RR, SJF, EDF Preemptív ütemezés Pl. hardveres időzítő lejár és megszakítást kér Aktuális folyamat megszakad, majd aktiválódik az ütemező kódja Választ egy folyamatot, beállítja az időzítőt és átadja a vezérlést a választott folyamatnak (PCB-t módosít). Számítógép architektúrák 226
227 Folyamat állapotátmenetek Új Befejezett befogadás Futásra kész Futásra kész felfüggesztett ütemezés időtúlfutás Futó esemény bekövetkezés leállás eseményre várás Várakozó kilapozás belapozás kilapozás belapozás Várakozó felfüggesztett operatív memória lapozó file Számítógép architektúrák 227
228 Folyamatok közötti kommunikáció Néha a folyamatoknak szükségük van információcserére egymás között Fájl: több folyamat által közösen használt fájl Pipe: pl. input/output átirányítás Szignál: értesítés eseményről bekövetkeztéről Szemafor: osztott erőforrás szinkronizációjához Shared memory: közösen használt RAM terület Socket: hálózati protokollokon keresztül Számítógép architektúrák 228
229 Szignál Egy folyamatnak küldött jelzés Esemény bekövetkeztét jelzi, aszinkron módon Üzenet/adat csere nincs Ha egy folyamat kap egy szignált a normál működés megszakad végrehajtódik a definiált szignálkezelő kód, majd a folyamat folytatódik Gyakori szignálok: SIGINT (2), SIGKILL (9), SIGALRM (14), SIGTERM (15), SIGCHLD (18), SIGSTOP (23), SIGCONT (25) Számítógép architektúrák 229
230 Virtuális memória A fizikai memória korlátainak transzparens átlépését teszi lehetővé a háttértár segítségével Fizikai memória keretekre osztva Logikai memória lapokra osztva (fix méret: 4kB) Külön virtuális- és fizikai címzés Virtuális cím leképezése fizikai címre: laptábla A nem használt lapok kilapozhatóak a HDD-re A Memory Management Unit (MMU) irányít Számítógép architektúrák 230
231 Virtuális memória Hivatkozás RAM-ban nem lévő lapra (lap hiba) Lapcsere szükséges Lapcserélési stratégia fontos (FIFO, LRU, ) HDD elérés ideje kb szerese a RAM elérési időnek Gyakori lapozás lassítja a programot Megvalósítás Linux: swap partíció Windows: C:\pagefile.sys fájl Számítógép architektúrák 231
232 Virtuális memória kezelése 1. CPU logikai memória igény (lap# + offset). 2. Laptábla ellenőrzés: ha a lap a RAM-ban folytasd a 9. lépésnél, különben 3. lépésnél! 3. Válassz a RAM-ban egy keretet a beolvasáshoz! 4. Szükség esetén indítsd el a keretben lévő lap kiírását a HDD-re, majd indítsd el a szükséges lap beolvasását a keretbe! 5. Közben a folyamat várakozó állapotba kerül, az ütemező indítson egy futásra kész folyamatot! Számítógép architektúrák 232
233 Virtuális memória kezelése 6. A háttérben a DMA vezérlő (kiírja) beolvassa a RAM-ba a HDD-ről a lapot és ha kész küld egy I/O kész megszakítást. 7. A folyamat futásra kész állapotba kerül. 8. Amint az ütemező újra futóvá teszi a folyamatot ismételd meg a memória igényt! 9. A laptábla alapján fizikai cím (keret# + offset) előáll. A RAM válaszol a keresett adattal. Számítógép architektúrák 233
234 Virtuális memória kezelése Logikai cím Fizikai cím?? Adat? lap# offset keret# offset virtuális címtér (folyamat A) 0 A0 1 A1 2 A2 3 A3 4 A4 5 A5 6 A6 laptábla (folyamat A) fizikai címtér (RAM) 0 B1 1 A4 2 A1 3 B9 4 A0 5 A6 szabaddá tehető 7 A7 háttértár 8 A A9 Számítógép architektúrák 234
235 Virtuális memória kezelése Logikai cím Fizikai cím?? Adat? lap# offset keret# offset virtuális címtér (folyamat A) 0 A0 1 A1 2 A2 3 A3 4 A4 5 A5 6 A6 laptábla (folyamat A) fizikai címtér (RAM) 0 B1 1 A4 2 A1 3 B9 4 5 A6 szabaddá tehető 7 A7 háttértár 8 A A9 Számítógép architektúrák 235
236 Virtuális memória kezelése Logikai cím Fizikai cím Adat 67 lap# offset keret# offset virtuális címtér (folyamat A) 0 A0 1 A1 2 A2 3 A3 4 A4 5 A5 6 A6 7 A7 8 A8 9 A9 67 laptábla (folyamat A) fizikai címtér (RAM) 0 B1 1 A4 2 A1 3 B9 4 A2 5 A6 háttértár 67 Számítógép architektúrák 236
237 Előnyök a programozó számára Nagyobb méretű adatokkal dolgozhatunk, mint amennyi fizikai memória rendelkezésre áll. Minden program/folyamat saját virtuális címtérrel rendelkezik. Nem férhetnek hozzá másokéhoz. Programíráskor nem kell tudnunk mely memóriaterületek foglaltak már (más programok által). Támogatja a multiprogramozott rendszereket. Számítógép architektúrák 237
238 Digitális elektronikai alapok Félvezető Dióda, tranzisztor Logikai kapu Flip-flop Multiplexer, címdekódoló Összeadó áramkör
239 Fizika Anyag atom elektron - & proton + & neutron 0 Coulomb erő (elemi kölcsönhatás) F = 1 Q 1 Q 2 r 4πε 0 r 2 r Feszültség: a töltésekre ható erőből származik Elektromos áram: töltött részecskék áramlása Ellenállás: a töltésmozgás akadályozása Vezetők, szigetelők Számítógép architektúrák 239
240 elektron energia elektron energia elektron energia elektron energia Félvezetők Rossz vezető, rossz szigetelő Ok: szilárdtestek sávszerkezete 4 vegyérték elektron (Si, Ge) Kvantumfizika Bohr-féle atommodell atomban szilárdtestben vezetési sáv tiltott sáv vegyérték sáv vezető félvezető szigetelő Számítógép architektúrák 240
241 elektron energia Szennyezett félvezető n-szennyező (elektron) 5 vegyérték elektron (As, Sb) p-szennyező ( lyuk ) 3 vegyérték elektron (Ga, In) Új energiaszint a tiltott sávban Si Si Si Si As Si Si Si Si Si Si Si Si Ga Si Si Si Si n-típus p-típus Számítógép architektúrák 241
242 p-n átmenet Félvezető egykristály eltérően szennyezett részei között található Szabad töltéshordozók átáramlanak a másik rétegbe, rekombinálódhatnak. n p kiürített réteg töltéssűrűség + - elektrosztatikus potenciál potenciálgát Számítógép architektúrák 242
243 Dióda Záró irányú előfeszítés Nyitó irányú előfeszítés Dióda: egyenirányításra képes Jele: Speciális: LED Számítógép architektúrák 243
244 Tranzisztor 2 darab p-n átmenet ( összefordított diódák ) Kapcsoló, erősítő p n n p Bipoláris tranzisztor E B C Unipoláris tranzisztor D G S p n p p n p C S B E G n-csatornás JFET D Számítógép architektúrák 244
245 A logikai NAND kapu 2 bemenetű logikai kapu ( nem és ) Jele: Felépítése, működése: V cc A B TTL NAND kapu GND Q A B Q Számítógép architektúrák 245
246 További logikai kapuk Felépíthetőek NAND kapukból NOT AND OR XOR A Q A B Q A B Q A B Q Számítógép architektúrák 246
247 Flip-flopok Szekvenciális digitális elektronikai áramkör 1 bit információ tárolására képes Alkalmazás: regiszter, számláló, frekvenciaosztó D CLK Q _ Q CLK adat kimenet D flip-flop CLK=1 tárol D CLK=0 tart előző adat bemenet 4 bites regiszter Számítógép architektúrák 247
248 Komparátor Kombinációs hálózat (állapotmentes) A bemeneteire adott értékpárokat hasonlítja össze Ha a két bemeneti bitsorozat megegyezik, akkor 1 érték jelenik meg a kimeneten, különben 0 érték. 4 bites komparátor Számítógép architektúrák 248
249 Kombinációs hálózat Multiplexer N jelből 1-et kiválaszt a vezérlőjelek alapján K darab vezérlőjel 2 K darab bemenő jelet tud azonosítani S 0 S 1 Z 0 0 A 0 1 B 1 0 C 1 1 D D C B A MUX S 0 S 1 4:1 multiplexer Számítógép architektúrák 249 Z
250 Kombinációs hálózat Címdekódoló A címbemenetre adott jel alapján kiválasztja a kimenő jelek egyikét N bites címbemenetre adott érték a 2 N darab kimeneti vonal közül 1-et aktivál A 0 A 1 D 0 D 1 D 2 D A 0 A 1 D 0 D 1 D 2 D 3 2 bites címdekódoló Számítógép architektúrák 250
251 cím Dekóder szó vonal Memória Közvetlen hozzáférésű memória SRAM vagy DRAM különbség a cellában Bitcella: 1 bitet tárol A cím választja ki melyik cella értéke kerüljön a kimenetre Bit cella Bit cella Bit cella Bit cella Bit cella Bit cella Bit cella Bit cella bit vonal Bit cella Bit cella Bit cella Bit cella Multiplexer adat Bit cella Bit cella Bit cella Bit cella Számítógép architektúrák 251
252 szó vonal szó vonal Bit cella SRAM DRAM bit vonal bit vonal bit vonal kondenzátor tranzisztor NOT kapu tranzisztor 4-6 tranzisztor Gyors kimenet Tartós tárolás Egyszerű szerkezet Lassú kimenet Szivárgás frissítés Számítógép architektúrák 252
253 Összeadó áramkör Félösszeadó: 2 bit összeadására képes A B A B C S Teljes összeadó: 3 bit összeadására képes (2 félösszeadó) A B C i C o S C out Számítógép architektúrák 253 C S A B S C in
254 Ripple-carry összeadó Több bites adatok összeadására képes Láncba fűzött teljes összeadók A 3 B 3 A 2 B 2 A 1 B 1 A 0 B C 0 S 3 S 2 S 3 S 2 A 3 A 2 A 1 A 0 B 3 B 2 B 1 B 0 teljes összeadó c S 3 S 2 S 1 S 0 primitív 4 bites ALU kezdemény Számítógép architektúrák 254
255 Primitív ALU vázlat Reg: IN_A Reg: IN_B ÉS-elő VAGY-oló Komparátor Összeadó Reg: IR Multiplexer Reg: SR Reg: OUT Számítógép architektúrák 255
256 Assembly programozás Assembly nyelv Utasítás készlet Címzési módok Fordítás-szerkesztés-betöltés Gépi kód
257 Assembly programozás Alacsony absztrakciós szint Programozói szabadság Feladatra optimalizálható kód Nagyobb program teljesítmény Hardverismeret szükség Nehezebben átlátható kód PC, mikrokontroller Magasszintű programnyelvek Assembly programozás Gépi kód Számítógép architektúrák 257
258 Utasítás szerkezet 4 címes utasítás Műveleti kód 3 címes utasítás Műveleti kód 1. Operandus cím 1. Operandus cím 2. Operandus cím 2. Operandus cím Eredmény cím Eredmény cím Következő utasítás cím 2 címes utasítás Műveleti kód 1. Operandus cím 2. Operandus + eredmény cím 1 címes utasítás Műveleti kód 1. Operandus cím Számítógép architektúrák 258
259 Program és utasítás felépítés Forrás fájl utasítás_1 utasítás_2 utasítás_3 utasítás_4 utasítás_5 Címke Művelet Operandus(ok) Megjegyzés.L1: mov ax, 0 # zero into ax Címke Azonosító, általában kettősponttal zárul Művelet Operandus(ok) Megjegyzés Az elvégzendő művelet mnemonic-ja Adat(ok) vagy adat(ok)ra hivatkozás(ok) Sor végéig a fordító figyelmen kívül hagyja Számítógép architektúrák 259
260 Utasításkészlet architektúra ISA (Instruction Set Architecture) A számítógép programozáshoz kötődő részletei Bitszélesség (buszok és regiszterek) Regiszter készlet Gépi utasítások Címzési módok Memória architektúra Megszakítás kezelés Számítógép architektúrák 260
261 Utasítás típusok Adatmozgató utasítások (Egész) aritmetikai utasítások Bitenkénti logikai utasítások Bitléptető utasítások Vezérlésátadó utasítások Sztringkezelő utasítások BCD és valós aritmetikai utasítások Fordítási direktívák Egyéb utasítások Számítógép architektúrák 261
262 Utasítás típusok Adatmozgató utasítások Regiszter-regiszter (mov, xchg) Regiszter-memória (mov) Regiszter-I/O port (in, out) Regiszter-verem (push, pop) Kiterjesztés (bitszélesség fontos) (cbw, cwd) Státusz bit állítás (sti, cli) Számítógép architektúrák 262
263 Utasítás típusok Aritmetikai utasítások Összeadás (átvitel nélkül/átvitellel) (add, adc) Kivonás (átvitel nélkül/átvitellel) (sub, sbb) Inkrementálás, dekrementálás (inc, dec) Kettes komplemens (neg) Előjeles/előjel nélküli szorzás (imul, mul) Előjeles/előjel nélküli osztás (idiv, div) Összehasonlítás (cmp) Számítógép architektúrák 263
264 Utasítás típusok Bitenkénti logikai utasítások ÉS művelet (and) VAGY művelet (or) KIZÁRÓ VAGY művelet (xor) Egyes komplemens (not) Bit tesztelés (test) Számítógép architektúrák 264
265 Utasítás típusok Bitléptető utasítások Logikai/előjeltelen balra léptetés (shl) Logikai/előjeltelen jobbra léptetés (shr) Aritmetikai/előjeles balra léptetés (sal=shl) Aritmetikai/előjeles jobbra léptetés (sar) Jobbra/balra forgatás (ror, rol) Jobbra/balra forgatás carry-n keresztül (rcr, rcl) Számítógép architektúrák 265
266 Vezérlésátadó utasítások Utasítás típusok Feltétel nélküli ugrás (jmp) Feltételes ugrás (ja, jae, jb, jbe, je, jne, jc, jo, ) Ciklusszervező (loop, loopz, loopnz, ) Hívó utasítás (call) Szubrutinból visszatérés (ret) Szoftveres megszakítás kérés (int) Példa:.L1: Megszakítás-kezelőből visszatérés (iret) sub eax, 1 jnz.l1 mov eax, 9 mov ebx, eax Számítógép architektúrák 266
267 Utasítás típusok Stringkezelő (bájtsorozat kezelő) utasítások Sztring mozgató (movs, movsb, movsw) Sztring összehasonlító (cmps) Keresés sztringben (scas) Egyéb utasítások Koprocesszor vezérlő (wait, esc) Rendszervezérlő (hlt) Üres utasítás (nop) Számítógép architektúrák 267
268 Utasítás típusok Fordítási direktívák: gépi kód nincs mögöttük, a fordítás menetét befolyásolják Forrásfájl lezárása (end) Szegmens definiálás (segment, ends) Egyszerűsített szegmensdefiníció (stack,.data) Helyfoglalás (db, dw, dd) Helyettesítő szimbólum létrehozás (equ) Számítógép architektúrák 268
269 Címzési módok Adat vagy utasítás hogyan érhető el. Rejtett (implicit, implied) Közvetlen adat megadás (immediate) Közvetlen cím (direct, absolute) Regiszteres cím (register direct) Közvetett cím (indirekt) Regiszter indirekt Indexelt cím Bázis relatív cím Számítógép architektúrák 269
270 Címzési módok Rejtett címzés Nincs igazi cím megadás Pl. ha nincs operandus Op.kód1 Op-kód2 Számítógép architektúrák 270
271 Címzési módok Közvetlen adat megadás Műveleti kód után közvetlenül található adat Ez lesz az operandus Konstans Op.kód Adat Számítógép architektúrák 271
272 Címzési módok Regiszteres címzés A műveleti kód hivatkozik egy regiszterre A regiszterben található az operandus értéke Op.kód regiszter Adat Számítógép architektúrák 272
273 Címzési módok Közvetlen cím Műveleti kód után található egy memóriacím Itt helyezkedik el az operandus Op.kód 731 Adat Számítógép architektúrák 273
274 Címzési módok Közvetett cím A műveleti kód után található egy cím Ezen a címen található az operandus igazi címe Op.kód Adat Számítógép architektúrák 274
275 Regiszter indirekt Címzési módok A műveleti kód hivatkozik egy regiszterre A regiszterben található címen helyezkedik el az operandus memóriacíme regiszter Op.kód 731 Adat Számítógép architektúrák 275
276 Indexelt Címzési módok A műveleti kód után található egy cím, ehhez hozzáadva az index regiszterben található értéket megkapjuk az operandus memóriacímét index reg Op.kód 731 Adat Számítógép architektúrák 276
277 Bázis relatív Címzési módok A műveleti kód után található egy eltolási érték, ehhez hozzáadva a bázis regiszterben található kezdőcímet megkapjuk az operandus címét bázis reg Op.kód 731 Adat Számítógép architektúrák 277
278 Assembly szintaxis Intel szintaxis.intel_syntax noprefix.globl main main: push ebp mov ebp, esp sub esp, 16 mov DWORD PTR [ebp-16], 2 mov DWORD PTR [ebp-12], 3 cmp DWORD PTR [ebp-16], 4 jne.l2 mov eax, DWORD PTR [ebp-12] mov DWORD PTR [ebp-8], eax jmp.l3.l2: mov DWORD PTR [ebp-8], 4.L3: mov eax, DWORD PTR [ebp-8] add esp, 16 pop ebp ret AT&T szintaxis.att_syntax noprefix.globl main main: pushl %ebp movl %esp, %ebp subl $16, %esp movl $2, -16(%ebp) movl $3, -12(%ebp) cmpl $4, -16(%ebp) jne.l2 movl -12(%ebp), %eax movl %eax, -8(%ebp) jmp.l3.l2: movl $4, -8(%ebp).L3: movl -8(%ebp), %eax addl $16, %esp popl %ebp ret Számítógép architektúrák 278
279 Utasítások 8086: 114 utasítás 80186: +15 (új és bővített) 80286: : : : : : +12 +Pentium, +MMX, +SSE, +AVX, +egyéb ( ) Számítógép architektúrák 279
280 Operandusok Operandusok Regiszter (8, 16, 32 bites) Konstans (8, 16, 32 bites) Memória tartalom Memória cím és méret kényszerítés mov al, BYTE PTR [ebx] mov ax, WORD PTR [ebx] mov eax, DWORD PTR [ebx] Számítógép architektúrák 280
281 Címzési módok Regiszteres Közvetlen adat Közvetlen cím Közvetett regiszteres Regiszter relatív Bázisos indexelt Bázis+index relatív Skálázott Szegmens előtag mov ax, bx mov ax, 7Fh mov ax, [1234] mov ax, [bx] mov ax, [bx + 100h] mov ax, [bx + si] mov ax, [bp + di + 123] mov ax, [si * 4 +10h] mov ax, [es:bx] Számítógép architektúrák 281
282 Címzési módok Effektív cím (EA) megadás alakjainak összegzése CS: SS: DS: ES: FS: GS: egyiksem Szegmens szelektor EAX EBX ECX EDX ESI EDI EBP ESP egyiksem EAX EBX ECX EDX + ESI EDI EBP egyiksem egyiksem Bázis Index Skálázó faktor Példa: mov EAX, [DS:EBP+EDI*4+10h] vagy ugyanaz más írásmódban: mov EAX, DS:10h[EBP][EDI*4] + eltolás semmi Eltolás Számítógép architektúrák 282
283 Alprogram hívási konvenció Hívó szabályai Paraméterek fordított sorrendben a rendszerverembe helyezése Néha adott sorrendben regiszterekbe: edi, esi, edx, Lebegő pontos paraméterek a SSE regiszterekbe (eax-be a float paraméterek száma) Alprogram hívás (visszatérési cím a verembe kerül, programszámláló átáll az alprogram kezdőcímére) Visszatérés után veremből paraméterek kivétele Visszatérési érték az eax regiszterben van Számítógép architektúrák 283
284 Alprogram hívási konvenció Hívott szabályai Bázis pointer verembe mentés Verem mutató mentése bázis pointerbe Helyfoglalás lokális változóknak a veremben Használandó regiszterek mentése a verembe Visszatérési érték az eax regiszterbe tétele Mentett regiszterek és verem visszaállítás Visszatérés (a veremben lévő címre) Számítógép architektúrák 284
285 Gépi kód Az egyetlen nyelv, amit a processzor megért Bináris formátum Processzoronként változó lehet Példa: assembly: gépi kód: SUB EAX, EBX # eax = eax-ebx 0x29 0xD OpKód d s MOD REG R/M SUB művelet Regiszter a forrás 32 bites regiszter Regiszteres címzés Forrás: EBX Cél: EAX Számítógép architektúrák 285
286 Gépi kód példa C nyelvű kód y=5; z=6; x=z+y*7; Assembly kód mov DWORD PTR [ebp-12], 5 mov DWORD PTR [ebp-8], 6 mov ebx, DWORD PTR [ebp-12] mov eax, ebx sal eax, 3 sub eax, ebx add eax, DWORD PTR [ebp-8] mov DWORD PTR [ebp-16], eax Gépi kód c7 45 f c7 45 f b 5d f4 89 d8 c1 e d f f0 Számítógép architektúrák 286
287 Magasszintű programozás leképezése assembly-re 1. Programozás alapjai Kifejezéskiértékelés Elágaztatás Ciklusszervezés
288 Gondolatébresztő kérdések Melyik értékadás fut le rövidebb idő alatt? int a, b=2, c=3, d=4, e=1, f=2; a=(b+c)*(d-e)%f; a=(2+3)*(4-1)%2; a=5; Mi az alábbi kifejezés értéke? (!3+8==2*4)+-1 Mi az alábbi kifejezés típusa? 5/(short)2==.5+ 2 Számítógép architektúrák 288
289 Gondolatébresztő kérdések Ki/mikor/hogyan végzi a kifejezés kiértékelést? Van címe a konstansnak? Van-e különbség a #define és a const között? Kétirányú elágaztatásnak minősül-e az if (a==0) b=0; utasítás? Hányszor fut le az alábbi ciklus magja? for(a<1,b=1;c++;d=1) e=1; Számítógép architektúrák 289
290 Mi az outputja a programnak? Számítógép architektúrák 290
291 Editor Programozás Szövegszerkesztőben forráskód létrehozása Forrás kód: háttértárolón tárolt szöveges file Esetleg nyelv érzékeny eszközrendszer Fordító (compiler, assembler) Előfeldolgozás, lexikai/szintaktikai/szemantikai elemzés, optimalizálás, kódgenerálás Eredmény: tárgykód (ojbect file) Nem interpreter! Számítógép architektúrák 291
292 Programozás Kapcsolatszerkesztő (linker) A tárgykódban nem igazi címek, csak hivatkozások vannak (több fájl, könyvtári függv.) Linker feloldja a hivatkozásokat: futtatható fájl Betöltő (loader) Az op. rendszer része: létrehozza a folyamatot RAM-ba tölti a gépi kódot Inicializál: regiszterek, verem Átadja a vezérlést Számítógép architektúrák 292
293 A C nyelv típusai Aritmetikai (egyszerű) típusok [unsigned signed] char [unsigned signed] [short long long long*] int enum float [long*] double Összetett/származtatott típusok struct és union tömb mutató *ISO C99 Számítógép architektúrák 293
294 A C egész típusai típus méret tartomány [signed] char unsigned char 1 bájt [signed] short unsigned short 2 bájt [signed] int 4 bájt unsigned int (2 bájt) [signed] long 8 bájt unsigned long (4 bájt) [signed] long long * unsigned long long 8 bájt *ISO C99 Számítógép architektúrák 294
295 Felsorolásos típus Alacsony szinten int-ként reprezentált C nyelven a két kód assembly szinten azonos Számítógép architektúrák 295
296 A C nyelv valós típusai Valós típusú konstansok formátuma f 75.1e L E+1 Valós típusok paraméterei méret minimum maximum pontosság float 4 bájt számjegy double 8 bájt számjegy long double* 10 bájt számjegy *ISO C99 Számítógép architektúrák 296
297 A C nyelvben Mutató típus Fontos szerepet játszik (mutatóorientált nyelv) Előjel nélküli egész reprezentáció (32 vagy 64 bit) NULL: csupa nulla bit Értéke adatcím és kódcím (!) is lehet Aritmetikai műveletek is végezhetőek velük Számítógép architektúrák 297
298 struct kulcsszó Rekord típus Nem biztos, hogy folytonos memóriaterületen A.a A.b A.c A.d sizeof(a)==16 B.d B.a B.c B.b sizeof(b)==24 nem használt bájt Számítógép architektúrák 298
299 A C nyelv tömbje Tömb index 0-tól (db-1)-ig Csak egydimenziós tömb van, viszont van tömbök tömbje Sztring: karaktertömb Lezáró karakter \0 (ASCII kód: 0) A tömb neve az első elemre mutató nevesített konstans (mutatóorientáltság erős) egyenértékű utasítások Számítógép architektúrák 299
300 Komplexitás nő A forráskód alkotórészei Karakterkészlet Lexikális egység Szintaktikai egység Utasítás Programegység Fordítási egység Program Számítógép architektúrák 300
301 Konstans (literál) Közvetlen adat megadás (immediate) Kódba épített adat 8, 16, 32, 64 bit szélességű Fix vagy lebegőpontos ábrázolás Magas szinten: 123, 1.25f, a Alacsony szinten: 0x b, 0x3fa00000, 0x61 Számítógép architektúrák 301
302 Nevesített konstans Komponensei: név, típus, érték #define abc 123 Előfordító kicseréli a nevet az értékre Kódba épített adat Assembly szinten egyszerű konstans const int abc=123; Assembly szinten egyszerű változó A fordító nem engedi a változtatást Számítógép architektúrák 302
303 Változó Komponensei: név, attribútum, cím, érték Deklaráció: explicit, implicit, automatikus Hatáskör: statikus, dinamikus Élettartam: statikus, dinamikus, programozó által vezérelt Értékadás: kezdőértékadás (automatikus, explicit), értékadó utasítás, paraméterátadás, input utasítás Számítógép architektúrák 303
304 Alacsony szinten Változó Adott méretű lefoglalt memóriaterület Ha van cím komponens mindig van érték is Érték: bitsorozat (tetszőleges értelmezéssel) Értékadás: memóriacímre adat mozgatás Statikus változó adat szegmensben Dinamikus változó verem szegmensben Programozó által vezérelt a heap-ben Mutató: előjel nélküli egész változó C-ben Számítógép architektúrák 304
305 Kifejezés Komponensei: típus, érték Formálisan: operátor, operandus és zárójel Operátor: unáris, bináris, ternáris Alak: infix (2+3)*4 prefix * postfix (RPN) * Infix alak esetén nem egyértelmű kiértékelés: precendencia és kötésirány kell Típusegyenértékűség vagy típuskényszerítés Számítógép architektúrák 305
306 Kifejezés kiértékelés A kifejezés értékének, típusának meghatározása Konstans kifejezést a fordító értékel ki Nem konstans infix kifejezést a fordító postfix alakra hozza (figyelembe véve a zárójeleket, precedenciát és a kötésirányt) és az alapján állítja elő a gépi kódot imul ebx, ecx eax + ebx * ecx & edx add eax, ebx and eax, edx Számítógép architektúrák 306
307 Deklarációs utasítás Utasítások Nem (biztos, hogy) áll mögötte gépi kód A fordítóprogramnak szól Végrehajtható utasítás Egy magas szintű utasításból több gépi kódú utasítást is előállíthat a fordító Csoportjai: üres, értékadó, ugró, elágaztató, ciklusszervező, hívó, egyéb Számítógép architektúrák 307
308 Elágaztató utasítás Kétirányú elágaztató utasítás C nyelven: if (kifejezés) utasítás1; [else utatsítás2;] Többirányú elágaztató utasítás C nyelven: switch(kifejezés){ case egész_konstans_kif_1: [utasítás1;] [case egész_konstans_kif_2: [utasítás2;]] [default: utasítás3;] } Számítógép architektúrák 308
309 A feltételes utasítás alacsony szinten if (feltétel) utasítás1; utasítás2; if (feltétel) utasítás1; else utasítás2; utasítás3; cmp eax, ebx jne.l0 mov ecx, 1.L0: add edx, 1 cmp eax, ebx jne.l2 mov ecx, 1 jmp.l3.l2: mov ecx, 2.L3: add edx, 1 Számítógép architektúrák 309
310 A switch utasítás alacsony szinten switch (kifejezés){ case kifejezes1: utasítás1; case kifejezes2: utasítás2; default: utasítás3;} utasítás4; cmp eax, 1 je.l3 cmp eax, 2 je.l4 jmp.l2.l3: mov ebx, 1.L4: mov ebx, 2.L2: mov ebx, 3 add edx, 1 Számítógép architektúrák 310
311 A break hatása alacsony szinten switch (kifejezés){ case 1: utasítás1; break; case 2: utasítás2; break; default: utasítás3;} utasítás4; cmp eax, 1 je.l3 cmp eax, 2 je.l4 jmp.l2.l3: mov ebx, 1 jmp.l5.l4: mov ebx, 2 jmp.l5.l2: mov ebx, 3.L5: add edx, 1 Számítógép architektúrák 311
312 Ciklusszervező utasítások Felépítés: fej + mag + vég Működés szempontjából: üres, normál, végtelen Fajtái: Feltételes Kezdőfeltételes Végfeltételes Előírt lépésszámú Előltesztelő Hátultesztelő Felsorolásos Végtelen Számítógép architektúrák 312
313 A C nyelv ciklusai Kezdőfeltételes (nem 0 feltétel esetén ismétel) while (feltétel) utasítás; for ([kif1]; [kif2]; [kif3]) utasítás; Végfeltételes (nem 0 feltétel esetén ismétel) do utasítás; while (feltétel); Számítógép architektúrák 313
314 A while és for ciklus alacsony szinten utasítás0; while (feltétel) utasítás1; utasítás2; x=5; goto test; loop: y=y+1; x=x-1; test: if (x>0) goto loop; mov eax, 10 jmp.l2.l3: sub eax, 1.L2: cmp eax, 0 jne.l3 add ebx, 1 A for és a while ciklus assembly szinten egyenértékű. Számítógép architektúrák 314
315 A do-while ciklus alacsony szinten utasítás0; do utasítás1; while (feltétel); utasítás2; mov eax, 10.L3: sub eax, 1 cmp eax, 0 jne.l3 add ebx, 1 A do-while ciklus nem lehet üres ciklus. Számítógép architektúrák 315
316 Magasszintű programozás leképezése assembly-re 2. Eljárás, függvény Lokális változó Paraméterátadás
317 Gondolatébresztő kérdések Hol vannak az hívott eljárás utasítási? Mi a kezdő memória címük? Hova kell átadni a vezérlést? Melyik utasítással kell folytatni a végrehajtást ha végeztünk az eljárással? Mi a címe a következő utasításnak? Hova kell átadni a vezérlést? Hol tárolódik a visszatérési cím? Hol van eltárolva a hívási lánc? Számítógép architektúrák 317
318 Gondolatébresztő kérdések Hogyan kerülnek át a paraméterek az alprogramba? Hogyan kerül vissza a hívóhoz a visszatérési érték? Ismersz-e változó paraméterszámú függvényt? Hol van tárolva a lokális változó? A memória melyik részén helyezkedik el? Miért dinamikus az alap változó élettartama? Miben különbözik a static változótól? Számítógép architektúrák 318
319 Gondolatébresztő kérdések Melyik program a gyorsabb? Miért? #include<math.h> int main(){ int a,b=-23; a=abs(b); return 0;} #define abs(x) ((x)<0)?(-1*(x)):(x) int main(){ int a,b=-23; a=abs(b); return 0;} Számítógép architektúrák 319
320 Gondolatébresztő kérdések Mit ír az alábbi program a képernyőre? #include<stdio.h> int b=2; void one(int a){ a=a+1;} int main(){ one(b); printf( %d %d\n,a,b); return 0;} Számítógép architektúrák 320
321 Gondolatébresztő kérdések Hányszor fut le az eljárás? #include<stdio.h> void one(int a){ if(a>0) one(a-1); } int main(){ one( ); return 0; } Számítógép architektúrák 321
322 Gondolatébresztő kérdések Mit csinál a program? #include<stdio.h> void one(){ int T[ ]; T[12345]=67; printf( %d,t[12345]); } int main(){ one(); return 0; } Számítógép architektúrák 322
323 Gondolatébresztő kérdések Mit ír az alábbi program a képernyőre? #include<stdio.h> void one(){ int a=3-4;} void two(){ int b; printf( %d\n,b);} int main(){ one(); two(); return 0;} Számítógép architektúrák 323
324 Alprogram Az újra felhasználhatóság és a procedurális absztrakció eszköze Komponensei: Név Formális paraméterlista Törzs Környezet Fajtái: Eljárás Függvény Számítógép architektúrák 324
325 Eljárás Tevékenységet hajt végre Aktiválás utasításszerűen lehet Befejezés a törzs végére érve vagy befejeztető utasítással Folytatás a hívás utáni utasítással void procedure(int a, char b){ printf( %d %c,a,b); } // C nyelven nincs eljárás procedure(3, A ); Számítógép architektúrák 325
326 Értéket határoz meg Aktiválás kifejezésben Függvény Befejezés általában befejeztető utasítás révén visszatérési érték megadásával Folytatás a kifejezés kiértékelésnél int function(int a, char b){ return a+b; } x=2*function(3, A )+1; Számítógép architektúrák 326
327 Last In First Out tároló A verem Tetejének a memóriacímét a verem mutató regiszter (SP) tárolja Push és Pop művelet A verem mérete korlátos Veremhez gyakran hozzá kell férni Általában gyorsítótárazott (cache) Adat kivétele nem fizikai törlés Külön memóriaszegmensben van Számítógép architektúrák 327
328 Eljárás hívás alacsony szinten PC SP RAM: hívó_utasítása_1 hívó_utasítása_2 eljárás_hívás hívó_utasítása_3 hívott_utasítása_1 hívott_utasítása_2 befejeztetés old_pc Számítógép architektúrák 328
329 Hívási lánc Az alprogramok hívhatnak újabb alprogramokat, azok továbbiakat, A visszatérési címek folyamatosan a verem tetejére kerülnek (A verem mérete nő.) A hívási lánc dinamikusan épül fel, bomlik le A lánc miden tagja aktív, de csak a legutóbbi működik Rekurzió: egy aktív alprogram meghívása Számítógép architektúrák 329
330 Lokális változók Az programegységben deklarált nevek (változók) a programegység lokális nevei (változói) Nem elérhetőek a programegységen kívülről C nyelvnél (alapesetben): Statikus hatáskörkezelés Dinamikus élettartam kezelés Nincs automatikus kezdőérték Számítógép architektúrák 330
331 Lokális változó alacsony szinten Az alprogramba lépéskor a verem tetején a visszatérési cím található A verembe mentjük a bázis regiszter értékét A veremmutató (SP) értékét átmásoljuk a bázis regiszterbe (BP) Átállítva a veremmutató értékét hagyunk helyet a lokális változók számára a veremben A verem nem csak LIFO módon kezelhető A lokális változók bázis relatív címzéssel elérhetőek Számítógép architektúrák 331
332 Lokális változó alacsony szinten void eljar(){ int a=1; int b=2; int c=3; * } * A RAM tartalma: ??? a=1 b=2 c=3 régi ebp esp=734 [ebp-12] [ebp-8] [ebp-4] ebp= ret. cím Számítógép architektúrák 332
333 Lokális változó alacsony szinten eljar: push ebp mov ebp, esp sub esp, 16 mov DWORD PTR [ebp-12], 1 mov DWORD PTR [ebp-8], 2 mov DWORD PTR [ebp-4], 3 mov esp, ebp pop ebp ret Számítógép architektúrák 333
334 Paraméter kiértékelés Formális- és aktuális paraméter összerendelés Sorrendi kötés Név szerinti kötés Számbeli egyeztetés Azonos paraméterszám Eltérő paraméterszám Típusegyeztetés Típusegyezés Típus konverzió Számítógép architektúrák 334
335 Paraméterátadás Érték szerinti Cím szerinti Eredmény szerinti Érték-eredmény szerinti Név szerinti Szöveg szerinti Az adatmozgás iránya fontos C nyelvben: csak érték szerinti paraméterátadás Számítógép architektúrák 335
336 Érték szerinti paraméterátadás Formális paraméternek van címkomponense a hívott területén. Aktuális paraméternek van érték komponense. Az aktuális paraméter értéke átkerül a hívott alprogram területén lefoglalt címkomponensre. Az információátadás egy irányú. Az alprogram a saját területén dolgozik. A hívott alprogram nem tudja hol van a hívó. Számítógép architektúrák 336
337 Függvényhívás alacsony szinten 1. A hívó a verembe teszi az aktuális paramétereket fordított (!) sorrendben. (sorrendi kötés, számbeli egyeztetés) 2. A verembe bekerül a visszatérési cím (PC aktuális értéke). 3. PC megkapja a hívott alprogram kezdőcímét. 4. Szekvenciálisan lefutnak a hívott utasításai. Hívott alprogram menti a regisztereket, felhasználja a veremben lévő paramétereket. Meghatározódik a visszatérési érték. Computer Architectures
338 Függvényhívás alacsony szinten 5. Visszatérési érték betétele egy meghatározott általános regiszterbe (rax vagy st0/(x)mm0). 6. Lokális változók felszabadítása. 7. Veremből visszatérési cím (hívást követő utasítás címe) átmásolása a PC-be (visszatérés). 8. Visszatérési érték a meghatározott regiszterben. 9. Paraméterek kitakarítása a veremből. 10. Végrehajtás folytatása a következő utasítással. Computer Architectures
339 Függvényhívás alacsony szinten Egyes esetekben A paraméterek meghatározott sorrendben regiszterekbe kerülnek, itt adódnak át. (El kell menteni a korábbi tartalmat. Egész és valós külön.) Float/double paraméterek száma az eax-ben. A visszatérési érték néha a verembe kerül a visszatérési cím alá. A paraméterek kitakarítása a veremből lehet a hívó vagy a hívott feladata is Computer Architectures
340 verem keret Példa C nyelven int fuggv(int c){ int a; a=c+1; * return a; } int main(int argc, char *argv[]){ int a, b; a=argc; b=fuggv(a); return b; } * A RAM tartalma: fuggv: c fuggv: a régi ebp visszatér. cím param. main: a main: b ősi ebp esp=726 [ebp-8] [ebp-4] ebp=734 [ebp+4] [ebp+8] [ebp+12] [ebp+16] [ebp+20] Számítógép architektúrák 340
SZÁMÍTÓGÉP ARCHITEKTÚRÁK & HARDVERKÖZELI PROGRAMOZÁS 1
SZÁMÍTÓGÉP ARCHITEKTÚRÁK & HARDVERKÖZELI PROGRAMOZÁS 1 Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2019. május 23. Követelmények Gyakorlat (aláírás, csak HKP1) Óralátogatás
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
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
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
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.
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
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
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
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
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
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
Számítógép egységei. Szoftver (a fizikai eszközöket működtető programok összessége)
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
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
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
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.
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
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)
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
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:
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
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
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
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
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)
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
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)
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;
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
IT - Alapismeretek. Feladatgyűjtemény
IT - Alapismeretek Feladatgyűjtemény Feladatok PowerPoint 2000 1. FELADAT TÖRTÉNETI ÁTTEKINTÉS Pótolja a hiányzó neveket, kifejezéseket! Az első négyműveletes számológépet... készítette. A tárolt program
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/
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
Fábián Zoltán Hálózatok elmélet
Fábián Zoltán Hálózatok elmélet Fizikai memória Félvezetőkből előállított memóriamodulok RAM - (Random Access Memory) -R/W írható, olvasható, pldram, SDRAM, A dinamikusan frissítendők : Nagyon rövid időnként
ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE
ASSEMBLY PROGRAMOZÁS TANTÁRGYHOZ SZÜKSÉGES ELŐISMERETEK ISMÉTLÉSE Dr. Varga Imre Debreceni Egyetem Informatikai Rendszerek és Hálózatok Tanszék 2019. augusztus 31. A C programozási nyelv alapos ismerete
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á,
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
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
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
IT - Alapismeretek. Megoldások
IT - Alapismeretek Megoldások 1. Az első négyműveletes számológépet Leibniz és Schickard készítette. A tárolt program elve Neumann János nevéhez fűződik. Az első generációs számítógépek működése a/az
Ö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
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ó
Informatikai füzetek
Tartalomjegyzék Bevezetés................ xiii I. ALAPISMERETEK........... 1 Információ, adat, jel............. 1 Információ..................... 1 Adat......................... 1 Jel...........................
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
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
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
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
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 MicroBlaze processzor Fehér Béla Raikovich Tamás
2016/06/23 07:47 1/13 Kérdések
2016/06/23 07:47 1/13 Kérdések < Számítástechnika Kérdések Hardver Kérdés 0001 Hány soros port lehet egy PC típusú számítógépen? 4 COM1 COM2 COM3 COM4 Kérdés 0002 Egy operációs rendszerben mit jelent a
Utasításfajták Memóriacímzés Architektúrák Végrehajtás Esettanulmányok. 2. előadás. Kitlei Róbert november 28.
2. előadás Kitlei Róbert 2008. november 28. 1 / 21 Adatmozgató irányai regiszter és memória között konstans betöltése regiszterbe vagy memóriába memóriából memóriába közvetlenül másoló utasítás nincsen
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
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ó
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
1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat
1. Milyen eszközöket használt az ősember a számoláshoz? ujjait, fadarabokat, kavicsokat 2. Mit tudsz Blaise Pascalról? Ő készítette el az első szériában gyártott számológépet. 7 példányban készült el.
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
11.3.7 Feladatlap: Számítógép összetevők keresése
11.3.7 Feladatlap: Számítógép összetevők keresése Bevezetés Nyomtasd ki a feladatlapot és old meg a feladatokat. Ezen feladatlap megoldásához szükséged lesz az Internetre, katalógusokra vagy egy helyi
Magas szintű optimalizálás
Magas szintű optimalizálás Soros kód párhuzamosítása Mennyi a várható teljesítmény növekedés? Erős skálázódás (Amdahl törvény) Mennyire lineáris a skálázódás a párhuzamosítás növelésével? S 1 P 1 P N GPGPU
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
Architektúra, cache. Mirıl lesz szó? Mi a probléma? Teljesítmény. Cache elve. Megoldás. Egy rövid idıintervallum alatt a memóriahivatkozások a teljes
Architektúra, cache irıl lesz szó? Alapfogalmak Adat cache tervezési terének alapkomponensei Koschek Vilmos Fejlıdés vkoschek@vonalkodhu Teljesítmény Teljesítmény növelése Technológia Architektúra (mem)
Számítógép fajtái. 1) személyi számítógép ( PC, Apple Macintosh) - asztali (desktop) - hordozható (laptop, notebook, palmtop)
Számítógép Számítógépnek nevezzük azt a műszakilag megalkotott rendszert, amely adatok bevitelére, azok tárolására, feldolgozására, a gépen tárolt programok működtetésére alkalmas emberi beavatkozás nélkül.
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
SZÁMÍTÓGÉP ARCHITEKTÚRÁK
SZÁMÍTÓGÉP ARCHITEKTÚRÁK Kártyás ajtónyitó tervezése Horváth Gábor BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-02-19 Hálózati Rendszerek és Szolgáltatások
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
A Számítógépek hardver elemei
Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek hardver elemei Korszerű perifériák és rendszercsatolásuk A µ processzoros rendszer regiszter modellje A µp gépi
1. Digitális írástudás: a kőtáblától a számítógépig 2. Szedjük szét a számítógépet 1. örök 3. Szedjük szét a számítógépet 2.
Témakörök 1. Digitális írástudás: a kőtáblától a számítógépig ( a kommunikáció fejlődése napjainkig) 2. Szedjük szét a számítógépet 1. ( a hardver architektúra elemei) 3. Szedjük szét a számítógépet 2.
Assembly. Iványi Péter
Assembly Iványi Péter Miért? Ma már ritkán készül program csak assembly-ben Általában bizonyos kritikus rutinoknál használják Miért nem használjuk? Magas szintű nyelven könnyebb programozni Nehéz más gépre
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
TestLine - zsoltix83tesztje-01 Minta feladatsor
lkalom: n/a átum: 2017.02.09 18:08:51 Oktató: n/a soport: n/a Kérdések száma: 35 kérdés Kitöltési idő: 1:03:48 Pont egység: +1-0 Szélsőséges pontok: 0 pont +63 pont Értékelés: Pozitív szemléletű értékelés
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
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:
BEVEZETÉS AZ INFORMATIKÁBA - SZÁMÍTÓGÉP ARCHITEKTÚRÁK. Háber István Ihaber@pmmik.pte.hu
BEVEZETÉS AZ INFORMATIKÁBA - SZÁMÍTÓGÉP ARCHITEKTÚRÁK Háber István Ihaber@pmmik.pte.hu MAI SZÁMÍTÓGÉPEK FELÉPÍTÉSE A mai digitális számítógépek többségének felépítése a Neumann-elvet követi. Három fő funkcionális
Fábián Zoltán Hálózatok elmélet
Fábián Zoltán Hálózatok elmélet Miért szükséges a háttértár Az alkalmazások és adatok tárolása Háttértárak típusai Szekvenciális elérésű Mágnesszalag Lyukszalag Lyukkártya Véletlen elérésű Csak olvasható
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
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ú
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
Hardver összetevők ellenőrzése Linux alatt. Hardverguruk előnyben...
Hardver összetevők ellenőrzése Linux alatt Hardverguruk előnyben... A hardverek támogatottsága A telepítés előtt érdemes meggyőződni arról, hogy a jelenleg használt hardver elemek támogatottak-e a Linux
Bevitel-Kivitel. Bevitel-Kivitel és Perifériák. Algoritmusok és Alkalmazásaik Tanszék Budapest. 2005. december 16.
Architektúrák és operációs rendszerek Balogh Ádám, Lőrentey Károly Eötvös Loránd Tudományegyetem Algoritmusok és Alkalmazásaik Tanszék Budapest 2005. december 16. Tartalomjegyzék Perifériák 1 Perifériák
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
Számítógép architektúrák záróvizsga-kérdések február
Számítógép architektúrák záróvizsga-kérdések 2007. február 1. Az ILP feldolgozás fejlődése 1.1 ILP feldolgozási paradigmák (Releváns paradigmák áttekintése, teljesítmény potenciáljuk, megjelenési sorrendjük
TestLine - zsoltix83tesztje-01 Minta feladatsor
lkalom: n/a átum: 2017.01.19 21:10:15 Oktató: n/a soport: n/a Kérdések száma: 35 kérdés Kitöltési idő: 1:03:48 Pont egység: +1-0 Szélsőséges pontok: 0 pont +63 pont Értékelés: Pozitív szemléletű értékelés
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
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
Alapismeretek. Tanmenet
Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Történeti áttekintés 2. Számítógépes alapfogalmak 3. A számítógép felépítése, hardver A központi egység 4. Hardver
A személyi számítógép felépítése
A személyi számítógép felépítése A számítógépet, illetve az azt felépítő részegységeket összefoglaló néven hardvernek (hardware) nevezzük. A gépház doboz alakú, lehet fekvő, vagy álló attól függően, hogy
Labor gyakorlat Mikrovezérlők
Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom
Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév
Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév Az informatika története (ebből a fejezetből csak a félkövér betűstílussal szedett részek kellenek) 1. Számítástechnika
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ó
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
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
1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)
1. tétel A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei Ismertesse a kommunikáció általános modelljét! Mutassa be egy példán a kommunikációs
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
Informatikai alapismeretek
Informatikai alapismeretek Ajánlott olvasnivaló: http://informatika.gtportal.eu/ Az anyag egy része a fent említett weboldalon található anyagok részleteiben vagy teljes mértékben át vett változata. Számítógép
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,
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
Gábor Dénes Főiskola Győr Mikroszámítógépek Előadás vázlat 102 2004/2005 tanév 4. szemeszter A PROCESSZOR A processzorok jellemzése A processzor felépítése A processzorok üzemmódjai Regiszterkészlet Utasításfelépítés,
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.
A számítógép főbb részei és jellemzői központi egységnek perifériák
2.2. A számítógép felépítése 1 2.2.2. A számítógép főbb részei és jellemzői Számítógép ház tápegységgel Alaplap Processzor (CPU) Memóriák (RAM, ROM) Háttértárolók (merevlemez, CD/DVD, flash-memóriás tároló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
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
A háttértárak a program- és adattárolás eszközei.
A háttértárak a program- és adattárolás eszközei. Míg az operatív memória (RAM) csak ideiglenesen, legfeljebb a gép kikapcsolásáig őrzi meg tartalmát, a háttértárolókon nagy mennyiségű adat akár évtizedekig
Alapismeretek. Tanmenet
Alapismeretek Tanmenet Alapismeretek TANMENET-Alapismeretek Témakörök Javasolt óraszám 1. Számítógépes alapfogalmak, számítógép generációk 2. A számítógép felépítése, hardver, A központi egység 3. Hardver
3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}
3. gyakorlat Számrendszerek: Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F} Alaki érték: 0, 1, 2,..., 9,... Helyi
Számítógép architektúrák
Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth