Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. második félév
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Architektúrák és operációs rendszerek: Processzorok Balogh Ádám Lőrentey Károly Eötvös Loránd Tudományegyetem Informatikai Kar Algoritmusok és Alkalmazásaik Tanszék
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasításkészletek Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
2. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A processzorok feladata • A processzorok a számítógép „aktív” elemei: – Számítási műveleteik segítségével adatokat változtatnak, dolgoznak fel – A feldolgozás módját, menetét utasítások sorozatával adhatjuk meg, így az adatfeldolgozás ezeknek az utasításoknak a végrehajtását jelentik • Vannak általános célú és speciális, célprocesszorok: – Központi egység: számítógépet vezérli, fő számításokat végzi: legalább egy darab minden számítógépben van belőle (CPU) – Grafikus feldolgozó egységek (GPU), hangfeldol‐ gozó egységek (MPU), be‐ és kivitelvezérlő egységek (IOPU) stb. 2006. március 14 – 21.
Processzorok
3. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
1. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A központi egység (CPU) • A központi memóriában található utasítások sorozatát hajtja végre • Az utasítások nagy része adatokkal végzendő műveletet ír elő: – Feldolgozandó adatokat beolvassa (központi memóriából, vagy egyéb egységekről) – Számítás közben részeredményeket maga is tárolhat – Végeredményeket kiírja (központi memóriába vagy egyéb egységekre)
• Többi utasítás: az utasítások feldolgozásának menetét befolyásolja: – Új utasítássorozat feldolgozását írja elő – Feldolgozás egyéb paramétereit változtatja 2006. március 14 – 21.
Processzorok
4. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
5. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Egy processzor részei • Egy modern processzor – egyebek mellett – a következő egységeket tartalmazza: – Vezérlő egység (CU) – Aritmetikai és logikai műveletet végző egység (ALU) – Lebegőpontos műveletet végző egység (FPU) – Központi tárat kezelő egység (MMU) – Regiszterek – Ezen részegységek közötti sínek
• Ezek mindegyike logikai kapukból és tranzisztorokból áll
2006. március 14 – 21.
Processzorok
6. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
2. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Regiszterek (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Három fajta lehetséges: – Általános célú regiszter – Általános célú regiszter speciális tulajdonsággal – Célregiszter
• Általános célú regiszterek (GPR) – Aritmetikai és logikai műveletek operandusai és eredményeit tárolják – Memóriacímeket is tárolhatnak – Lehetnek külön egész és lebegőpontos általános célú regiszterek
2006. március 14 – 21.
Processzorok
7. oldal
Regiszterek (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Általános célú regiszterek speciális tulajdonsága: – Bizonyos címzési módok csak bizonyos regiszterek segítségével valósíthatók meg (hatékonyan) – Bizonyos utasítások csak bizonyos regiszterekkel képesek (hatékonyan) dolgozni
• Célregiszterek – Utasításmutató (IP): következő végrehajtandó utasítást tárolja – Feltételregiszter (FLAG): aritmetikai és logikai műveletek eredménye alapján változik – Egyéb célregiszterek: link regiszter, vezérlőregisz‐ terek, nyomkövető regiszterek, tesztregiszterek, vir‐ tuális memóriakezeléshez szükséges regiszterek stb. 2006. március 14 – 21.
Processzorok
8. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A feltételregiszter mezői • Átvitel: művelet eredménye hosszabb egy bittel, mint ami beférne • Zérus: művelet eredménye nulla • Negatív: művelet eredménye negatív
2006. március 14 – 21.
Processzorok
9. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
3. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
10. oldal
Utasítások fajtái (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Aritmetikai és logikai utasítások – Egész aritmetikai műveletek – Lebegőpontos aritmetikai műveletek – (Bitenkénti) logikai műveletek – Bittoló és ‐forgató műveletek – Összehasonlító műveletek
• Adatmozgató utasítások – Betöltő utasítások – Tároló utasítások – Belső mozgató utasítások – Veremműveletek
• Üres utasítás 2006. március 14 – 21.
Processzorok
11. oldal
Utasítások fajtái (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Vezérlésátadó (ugró) utasítások – Feltétel nélküli vezérlésátadás – Feltételes vezérlésátadás (elágazás) – Szubrutinhívás
• Processzorvezérlő utasítások – Megállítás, felfüggesztés – Megszakítások kiszolgálása – Kölcsönös kizárás megvalósítása többprocesszoros rendszerekben
• Be‐ és kiviteli utasítások – Be‐ és kiviteli eszközök és a regiszterek közötti adatmozgatás
• Egyéb, különleges és összetett utasítások 2006. március 14 – 21.
Processzorok
12. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
4. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Utasításformák (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Három címes utasítás – Formája: művelet operandus1, operandus2, eredmény – Jelentése: végezd el a művelet műveletet operandus1 és operandus2 között, majd tárold az eredményt eredmény‐ben – Példa: ADD R1, R2, R3 (add össze az R1 és az R2 regiszterek tartalmát, és tárold az eredményt az R3 regiszterben)
• Két címes utasítás – Formája: művelet operandus1, operandus2 – Jelentése: végezd el a művelet műveletet operandus1 és operandus2 között, majd tárold az eredményt operandus1‐ben 2006. március 14 – 21.
Processzorok
13. oldal
Utasításformák (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Két címes utasítás (folytatás) – Példa: ADD EAX, EBX (add hozzá az EBX regiszter tartalmát az EAX regiszter tartalmához, és tárold az eredményt az EAX regiszterben)
• Egy címes utasítás – Szükséges regiszter: akkumulátor: itt van az egyik operandus és ide kerül az eredmény is – Formája: művelet operandus – Jelentése: végezd el a művelet műveletet az akkumulátor és operandus között, majd tárold az eredményt az akkumulátorban – Példa: ADD $C024 2006. március 14 – 21.
Processzorok
14. oldal
Utasításformák (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Cím nélküli utasítások – Az utasításnak úgynevezett implicit operandusa van, azaz az utasításban előre kódolva van a cím, amin a műveletet el kell végezni – Formája: művelet – Jelentése: végezd el a művelet műveletet (a műveletben meghatározott operanduson) – Példa: INX (növeld meg eggyel az X indexregiszter tartalmát)
2006. március 14 – 21.
Processzorok
15. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
5. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Aritmetikai és logikai utasítások (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Két alapművelet: tipikusan ADD, SUB – Átviteli bittel együtt: ADC, SBC – Kivonás fordítva: SUBR
• Biteltolások (kettő hatványával való szorzás és osztás): SHL, SHR vagy SLL, SLR, SAL, SAR – Kitolt bitek az átviteli bitbe kerülnek – SLL és SLR: betolt bitek 0‐k (előjel nélküli vagy logikai eltolás) – SAL és SAR: balról betolt bit a bal szélső bit másolata, jobbról 0 (előjeles vagy aritmetikai eltolás)
2006. március 14 – 21.
Processzorok
16. oldal
Aritmetikai és logikai utasítások (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Bitforgatások: ROL, ROR – Olyan, mint a biteltolás, de az egyik oldalt kilépő bit a másikon belép – Átviteli biten keresztül: RCL, RCR
• Szorzás, osztás és maradékképzés (nem mindig létezik): MUL, DIV, MOD – Ügyelni kell rá, hogy a szorzás eredményének hossza kétszer olyan hosszú, mint az operandusoké – Szimmetria miatt az osztandó is kétszer olyan hosszú, mint az osztó – Kettő hatványaival való szorzásra és osztásra a biteltolásokat célszerű használni, mert gyorsabbak 2006. március 14 – 21.
Processzorok
17. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Aritmetikai és logikai utasítások (3) • Logikai műveletek: NOT (negáció), AND (és), OR (megengedő vagy), XOR (kizáró vagy) – Bitenként kerülnek elvégzésre
• Összehasonlító műveletek: CMP és TEST – A CMP kivonást, a TEST logikai és műveletet végez, de nem tárolja az eredményt, csak a jelzőket állítja
• Eggyel való növelés és csökkentés: DEC és INC – Általában gyorsabb, mint egyet hozzáadni vagy kivonni
2006. március 14 – 21.
Processzorok
18. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
6. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Hosszú számok kezelése • Operandusok és eredmény maximális mérete rögzített • Ha hosszabbra van szükség: – Összeadás és kivonás • Mint az „írásbeli” műveleteknél • Legalacsonyabb helyiértékű darabokat összeadjuk, maradék az átvitelbe kerül • Magasabb helyiértékeket úgy adjuk össze, hogy az átviteli bitet is hozzáadjuk
– Eltolások (eggyel) • Belépő oldalon levő darabnál eltolás, a darabból kilépő bit az átviteli bitbe kerül • Többi darabnál forgatás az átvitelen keresztül 2006. március 14 – 21.
Processzorok
19. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Mi van, ha nincs szorzás? • Szorzás mindig elvégezhető összeadás segítségével • Biteltolásokkal gyorsítható: – Felbontjuk a jobboldali tagot kettő hatványainak összegére – Eltoljuk a baloldalit ezekkel a hatványokkal – Összeadjuk az eltolások eredményeit
2006. március 14 – 21.
Processzorok
20. oldal
Adatmozgató utasítások
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Három változat: – Betöltés (LD, MOV): adat másolása a központi tár egy rekeszéből egy regiszterbe, vagy a regiszter tartalmának közvetlen adattal való feltöltése – Tárolás (ST, MOV): adat másolása egy regiszterből a központi tár egy rekeszébe – Belső mozgatás (TR, MOV): adat másolása egy regiszterből egy másikba
• Általában nincs olyan utasítás, amelyik a központi tár két rekesze között másol adatot, vagy közvetlen adatot a központi tár egy rekeszébe másol 2006. március 14 – 21.
Processzorok
21. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
7. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Vezérlésátadások
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Közvetlen vezérlésátadás: JMP, BA – Program végrehajtása a paraméterben megadott címtől folytatódik
• Feltételes vezérlésátadás: J**, B** – Csak akkor ugrik ha bizonyos feltételbitek értéke megfelel, különben folytatódik a következő utasítással a végrehajtás – Feltételek (példa) • Z illetve NZ: zérus bit alapján • S illetve NS: előjelbit alapján • C illetve NC: átviteli bit alapján
2006. március 14 – 21.
Processzorok
22. oldal
Vezérlésátadások
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Feltételes vezérlésátadás: J**, B** (folytatás) – Gyakran összehasonlító utasítás után használjuk: • E illetve NE: egyenlő illetve nem egyenlő, megegyezik a Z illetve NZ feltételekkel • A, AE, B, BE, NA, NAE, NB illetve NBE: nagyobb (=NS), nagyobb vagy egyenlő (NS vagy Z egyben), kisebb (S), kisebb vagy egyenlő (S vagy Z egyben), nem nagyobb (=BE), nem nagyobb vagy egyenlő (=B), nem kisebb (=AE), nem kisebb vagy egyenlő (=A)
• Szubrutinhívás: CALL, JSR – Feltétlen vezérlésátadás, de előtte eltárolja az utasítás címét a veremben vagy a link regiszterben – Párja: RET, visszatérés az eltárolt címre (szubrutin‐ hívó utasítás után folytatódik a végrehajtás) 2006. március 14 – 21.
Processzorok
23. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Be‐ és kiviteli utasítások • Gyakran nem külön utasítás, hanem az adatmozgató utasítások végzik a ki és bevitelt is – Ekkor bizonyos központi tárbeli címek nem a központi tárra, hanem a megadott ki‐ és beviteli eszközre vonatkoznak, a processzor számára azonban ez közömbös
• Külön betöltő és tároló utasítások be‐ és kiviteli eszközökhöz: IN és OUT – Utasítások paramétere egy speciális cím, ami hosszában is eltérhet a központi tárbeli címektől – Be‐ és kiviteli címek: portok
2006. március 14 – 21.
Processzorok
24. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
8. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
25. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Egy utasítás felépítése • A 0, 1, 2 illetve 3 címes utasítások a elhelyezkedése a memóriában: műveleti kód műveleti kód 1. operandus műveleti kód 1. operandus
2. operandus
műveleti kód 1. operandus
2. operandus
eredmény
• Műveleti kód: szám, ami az utasítást azonosítja • Operandusok és eredmény? – Különböző megadási módjaik (címzési módok) – Aktuálisan használt módot a műveleti kód jelöli 2006. március 14 – 21.
Processzorok
26. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Az implicit címzés • Műveleti kód meghatározza az operandusok és az eredmény helyét is • 0 címes utasításoknál az egyetlen, vagy 1 címes utasításoknál a második operandus illetve az eredmény • Példák – MOVSB (az ESI regiszterben található memóriacím tartalmát másold át az EDI regiszterban található memóriacímre) [i386] – MUL 5 (az EAX regiszter tartalmát szorozd meg 5‐ tel, és az eredmény magas helyiértékű bitjeit az EDX, alacsony helyiértékű bitjeit az EAX regiszterben tárolja) [i386] 2006. március 14 – 21.
Processzorok
27. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
9. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Közvetlen címzés • Operandus maga az érték, amivel a műveletet el kell végezni • Az eredmény soha nem adható meg közvetlen címzéssel, hiszen így nem memóriabeli helyet adunk meg, hanem közvetlen értéket • Példák – ADD 5 (növeld meg 5‐tel az akkumulátor tartalmát) [M6510] – ADD 5, EAX (növeld meg 5‐tel az EAX regiszter tartalmát) [i386] – ADD R1, 5, R7 (adj 5‐öt az R1 regiszter tartalmához, és tárold az eredményt az R7 regiszterben) [PowerPC] 2006. március 14 – 21.
Processzorok
28. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Regisztercímzés • Operandus a megadott regiszterben van, illetve az eredményt a megadott regiszterben kell elhelyezni • Példák – ADD EAX, EBX (növeld meg az EAX regiszter tartalmát az EBX regiszter tartalmával) [i386] – ADD R1, R7, R13 (add össze az R1 és az R7 regiszterek tartalmát, majd tárold az eredményt az R13 regiszterben) [PowerPC]
2006. március 14 – 21.
Processzorok
29. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Abszolut címzés • Az operandus a memóriában helyezkedik el a megadott címen • Általában egyik operandus lehet csak abszolut cím, a többinek regiszternek kell lennie • Példa – ADD EAX, [C000] (növeld meg az EAX regiszter tartalmát a 49152. memóriacímtől kezdődően tárolt gépi szó tartalmával) [i386] – JMP C000H (folytasd a végrehajtást a 49152. memóriacímtől kezdődően tárolt utasítástól kezdve) [i386]
2006. március 14 – 21.
Processzorok
30. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
10. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Indirekt címzés • Regiszter‐indirekt vagy memória‐indirekt • Operandusban megadott regiszter vagy memóriacím nem az értéket tartalmazza, hanem egy memóriacímet, ahol az érték található • Példák – ADD EAX, [EBX] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található memóriacímtől kezdődően tárolt gépi szóval) [i386] – JMP [C000] (folytasd a végrehajtást a 49152. memóriacímen található memóriacímtől kezdődően tárolt utasítástól kezdve)
2006. március 14 – 21.
Processzorok
31. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Báziscímzés • Abszolut címzés kiegészítése: nem abszolut címet adunk meg, hanem egy explicit vagy implicit megadott báziscímtől való távolságot • Szükség van hozzá egy bázisregiszterre • Rekordmezők elérésére jól használható • Példa – ADD EAX, [EBX+1F] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található címtől 31 bájtnyira kezdődően tárolt gépi szóval) [i386]
2006. március 14 – 21.
Processzorok
32. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Indexelt címzés • A báziscímzéshez hasonló, de más a „filozófia” • A cím rögzített, az indexet regiszter tartalmazza • Tömbök indexeléséhez használhatjuk • Néha nem bájtonként, hanem gépi szavanként „lépkedhetünk” • Példa – ADD EAX, [C000+4*ESI] (növeld meg az EAX regiszter tartalmát a C000 memóriacímtől az ESI regiszter tartalmának négyszerese darab bájtnyira kezdődően tárolt gépi szóval) [i386]
2006. március 14 – 21.
Processzorok
33. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
11. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Indexelt báziscímzés • Rekordban található tömb indexeléséhez • Példa: – ADD EAX, [EBX+1F+4*ESI] (növeld meg az EAX regiszter tartalmát az EBX regiszterben található címtől 31 plusz az ESI regiszter tartalmának négyszerese darab bájtnyira kezdődően tárolt gépi szóval) [i386] – A példában EBX tárolja a feldolgozás alatt álló rekord kezdőcímét, a rekordban feldolgozandó tömb a rekord kezdetétől számítva 1F címre kezdődik, és ott éppen az ESI által tartalmazott indexű elemet dolgozzuk fel, ahol az elemek mérete 4 byte 2006. március 14 – 21.
Processzorok
34. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
35. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Az utasításciklus lépései Fetch • Utasítás beolvasása a memóriából • Utasítás dekódolása • Operandusok beolvasása a memóriába (ha vannak) Execute • Művelet elvégzése • Eredmény kiírása a memóriába (ha van) • Utasításmutató léptetése a következő utasításra (hacsak az utasítás nem vezérlésátadó utasítás volt)
2006. március 14 – 21.
Processzorok
36. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
12. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Utasítás beolvasása • Be kell olvasni az utasítás műveleti kódját és az operandusok címeit • Két lehetőség: – Rögzített hosszú utasítások: egyetlen gépi szó beolvasása – Változó hosszú utasítások: előbb meg kell határozni a műveleti kód alapján az utasítás hosszát • Előbb (részlegesen) értelmezni kell a műveleti kódot
• A beolvasást szokták „prefetch”‐nek is hívni
2006. március 14 – 21.
Processzorok
37. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Utasítás dekódolása • Fel kell bontani az utasítást műveleti kódokra és operandusokra • Műveleti kód alapján meg kell határozni a használt címzési módokat
2006. március 14 – 21.
Processzorok
38. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Operandusok beolvasása • Közvetlen címzéssel megadott utasításokat nem kell beolvasni, azok már benn vannak • Regiszterben tárolt operandusokat át kell vinni az ALU‐ba, vagy az FPU‐ba az utasítástól függően • Memóriában tárolt operandusokat onnan kell beolvasni • Összetett címzési módok esetén ki kell számítani a címet
2006. március 14 – 21.
Processzorok
39. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
13. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Művelet elvégzése • Aritmetikai és logikai műveleteket az ALU vagy az FPU végzi • Adatmozgatásnál kimarad ez a fázis • Vezérlésátadás a CU feladata: az utasításmutatót kell átírnia a megfelelő címre, ha a feltétel teljesül • Processzorvezérlés szintén a CU feladata
2006. március 14 – 21.
Processzorok
40. oldal
Eredmény kiírása
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Operandusok beolvasásának fordítottja
2006. március 14 – 21.
Processzorok
41. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Utasításmutató léptetése • Utasításmutatót a következő utasítás elejére kell állítani • Következő utasítás helye: – Rögzített hosszú utasításoknál a következő gépi szó Ö egy gépi szó méretével kell növelni az utasításmutatót – Változó hosszú utasításoknál a prefetch fázisban kiszámított hosszal kell növelni az utasításszámlálót
2006. március 14 – 21.
Processzorok
42. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
14. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Huzalozott és mikroprogramozott utasítások • Egy utasítás végrehajtása történhet teljesen a hardver részéről – Gyorsabb végrehajtás – Bonyolultabb hardver
• Másik módszer: mikroprogramozás – Utasítás végrehajtása egy egyszerű program, úgynevezett mikroprogram végrehajtása, amely csak huzalozott utasításokból áll – Lassabb – Hardver egyszerűbb
• Általában az egyszerű utasítások huzalozottak, az összetettek mikrprogramozottak 2006. március 14 – 21.
Processzorok
43. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Futószalag (pipeline) • Az utasításfeldolgozás lépései a processzor különböző részeit használják • Ötlet: futószalag technika – amíg a processzor az egyik utasítást végrehajtja, közben a következőnek az operandusait olvashatja • Összes fázis elvégezhető külön‐külön Utasításmutató 1 2 Eredmény 1 2 Művelet 1 2 Operandusok 1 2 Dekódolás 1 2 Beolvasás 1 2 Futószalag nélkül
2006. március 14 – 21.
1 1 2 1 2 3 1 2 3 4
1 2 3 4 5
1 2 3 4 5 6
2 3 4 5 6 7
3 4 5 6 7 8
4 5 6 7 8 9
5 6 7 6 7 8 7 8 9 8 9 10 9 10 11 10 11 12
Futószalaggal
Processzorok
44. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A futószalag feldolgozás problémái • Központi tár elérése lassabb, mint a regisztereké Ö ilyenkor az egész futószalagnak várnia kell – Lehetséges megoldás: csak az adatmozgató utasítások érjék el a központi tárat, a többi regiszterekből dolgozzon • Adatmozgatásnál nincs végrehajtási fázis • Ritkábban áll meg a futószalag
• Mikroprogramozott utasítások lassabbak – Lehetséges megoldás: minden utasítás legyen huzalozott
• Vezérlésátadások végrehajtásakor a futószalag eleje nem a megfelelő utasításokat dolgozza fel 2006. március 14 – 21.
Processzorok
45. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
15. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Vezérlésátadások futószalag feldolgozása (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Futószalag törlése – Vezérlésátadó utasításnál, ha a végrehajtás új címen folytatódik, töröljük a futószalag elejéről az elkezdett, de nem megfelelő utasításokat – Egyszerű, kézenfekvő megoldás – Gyakori vezérlésátadásnál (például ciklus) jelentősen lassítja a működést
2006. március 14 – 21.
Processzorok
46. oldal
Vezérlésátadások futószalag feldolgozása (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Késleltetett ugrás – Vezérlésátadó utasítást követő fix darabszámú utasítás mindenképpen végrehajtásra kerül, akár új címen folytatódik a végrehajtás, akár nem – Egyszerű hardver – Hatékony megoldás – Nehezen áttekinthető assembly kód – Új architektúrán, ha hosszabb a futószalag, újra kell írni vagy fordítani a programot – A vezérlésátadás feltétele nem függhet az őt követő utasításoktól
2006. március 14 – 21.
Processzorok
47. oldal
Vezérlésátadások futószalag feldolgozása (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Elágazó futószalag – Vezérlésátadó utasítás dekódolása után két ágon folytatódik a feldolgozás, amíg el nem dől, hogy megtörténik‐e a vezérlésátadás – Hatékony megoldás – Mivel több egymást követő vezérlésátadó utasítás lehet, így esetleg sokfelé kell ágazni, ami drága és bonyolult hardvert eredményezhet
2006. március 14 – 21.
Processzorok
48. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
16. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Vezérlésátadások futószalag feldolgozása (4)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Programág‐előrejelzés – Processzor „megjósolja”, hogy be fog‐e következni a vezérlésátadás – Jóslás történhet • statisztika alapján (dinamikus) • műveleti kód egyik bitje alapján (statikus)
– Statikus módszernél különösen egyszerű hardver – Dinamikus módszer is könnyebben megvalósítható, mint az elágazó futószalag – Nagy valószínűséggel helyes a „jóslat” – Előfordulnak téves jóslatok, ilyenkor ki kell üríteni a futószalag elejét, ami lassulást okoz 2006. március 14 – 21.
Processzorok
49. oldal
Párhuzamos futószalagok
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Prefetch rész után a futószalag több felé ágazik – Több utasítás dekóder – Több ALU – Lebegőponto műveleteknek lehet külön futószalag, itt ALU helyett az FPU van: ekkor a prefetch‐nek kell eldöntenie, hogy melyik futószalagra kerüljön az utasítás
• Futószalagok párhuzamosan dolgozzák fel az utasításokat • Néha lehetséges átjárás is a futószalagok között
2006. március 14 – 21.
Processzorok
50. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A párhuzamos futószalagok problémái • Nem párhuzamosíthatók olyan utasítások, amelyek közül az utóbbi bemenő paramétere az előbbi eredménye • Nem, vagy nehezen párhuzamosíthatók olyan utasítások, amelyek végrehajtási ideje jelentősen eltér • Prefetch‐nek ezeket is el kell tudnia dönteni – Bonyolult processzor
2006. március 14 – 21.
Processzorok
51. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
17. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
További gyorsítási lehetőségek • Processzor tartalmazhat több regiszterkészletet is, például minden futószalagnak sajátot – Át lehet nevezni regisztereket, hogy melyik legyen a „valódi” – Fenn kell tartani a konzisztenciát – Bonyolult
• Előfeldolgozó egység felbonthatja az utasításokat mikroutasításokra – Hasonló a mikroprogramozáshoz, de itt külön egység csinálja, minden utasításra egyformán – Futószalagra már csak egyszerű utasítások kerülnek 2006. március 14 – 21.
Processzorok
52. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Kivételek (1) • Processzor nem mindig hajthat végre bármilyen utasítást – Érvénytelen utasítás – Utasítás végrehajtása nem lehetséges (nem létező központi tárbeli cím, nem létező periféria stb.) – Többfelhasználós gépen: • utasítás végrehajtása másik felhasználó adataihoz férne hozzá • utasítás végrehajtása másik felhasználó programjának működését befolyásolná • utasítás végrehajtása a gép működését olyan szinten változtatná meg, hogy az a többi felhasználót is érinti
– Processzor belső hibája (pl. túlmelegedés)
• Ilyenkor úgynevezett kivétel keletkezik 2006. március 14 – 21.
Processzorok
53. oldal
Kivételek (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Kivétel: kivételes állapot – Utasítások végrehajtása felfüggesztésre kerül – Utasításmutató és a fontos regiszterek elmentésre kerülnek a központi tárban – Processzor egy – kivétel okától függően – meghatározott címen levő utasítássorozat (kivételkezelő rutin) végrehajtásába kezd – Ennek az utasítássorozatnak végrehajtása után a processzor a kivétel okától (típusától) függően különbözőképpen viselkedhet
• Kivételkezelő rutin kezdőcíme: – Táblázat tartalmazza – Különböző kiváltó okokhoz különböző rutinok 2006. március 14 – 21.
Processzorok
54. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
18. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Kivételek (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Három kivételtípus: – Hiba (fault): elmentett regiszterek és utasításmutató visszatöltődik, és a sikertelen utasítást újra megkísérli végrehajtani a processzor – Csapda (trap): elmentett regiszterek és utasításmutató visszatöltődik, de ez utóbbi tartalma növelésre kerül, hogy a következő utasításra mutasson, így a processzor kihagyja a kivételt okozó utasítást – Vetélés (abort): nem kerülnek visszatöltésre az elmentett adatok, mert az eredeti utasítások végrehajtása nem folytatható, ehelyett új utasítássorozat végrehajtása kezdődik 2006. március 14 – 21.
Processzorok
55. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Megszakítások (1) • Processzornak van egy speciális (INTR) „lába” (vezeték), amire ha jel érkezik, megszakítás történik – Processzor a sínről leolvas egy számot, ami a megszakítást kiváltó egységet azonosítja – Utasítások végrehajtása felfüggesztésre kerül – Utasításmutató és a fontos regiszterek elmentésre kerülnek a központi tárban – Processzor egy – megszakítás kiváltójától függően – meghatározott címen levő utasítássorozat (megszakításkezelő rutin) végrehajtásába kezd – Megszakítás végén az elmentett regiszterek és utasításmutató visszatöltődnek, és az utasítások végrehajtása folytatódik 2006. március 14 – 21.
Processzorok
56. oldal
Megszakítások (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Megszakításkezelő rutin kezdőcíme – Ugyanaz a táblázat tartalmazza, mint a kivételkezelőkét – Különböző kiváltó egységekhez különböző rutinok
• Megszakítás történhet utasítás végrehajtásának közepén is – A processzornak vagy be kell fejezni előbb ezt az utasítást – Vagy vissza kell térnie az utasítás végrehajtása előtti állapotra
• Megszakítás célja – Külső egység által kezdeményezett kommunikáció – Processzoron kívüli hibák 2006. március 14 – 21.
Processzorok
57. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
19. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Megszakítások (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Megszakítások egy része maszkolható – Miután a processzor leolvasta a sínről a megszakítás számát, megvizsgálja, hogy maszkolt‐e – Ha a megszakítás maszkolt, figyelmen kívül hagyja
• Nem minden megszakítás maszkolható: NMI, nem maszkolható megszakítás – Elvileg csak nagyon fontos események jelzését szolgálja (pl. ég a gép) – Gyakorlatban néha egyszerűbb dolgokhoz is felhasználják
2006. március 14 – 21.
Processzorok
58. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Kivételek és megszakítások (1) • Gyakran keverik őket! • Megszakítás kívülről jön, kivétel a processzorban keletkezik • Megszakítás aszinkron (utasítás végrehajtása közben is bármikor felléphet), kivétel szinkron (utasítás végrehajtásának meghatározott fázisában keletkezik) • Megszakítás után a program mindig folytatható
2006. március 14 – 21.
Processzorok
59. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Megszakítások és kivételek (2) • Megszakítás vagy kivétel kezelőrutinjában is történhet kivétel, illetve jöhet közben megszakítás is – Kezelőrutin elején a megszakításokat gyakran maszkolják – Ha nem maszkolt megszakítás vagy kivétel történik, a kezelőrutin is megszakad, majd folytatódik, ha folytatható
• Probléma: ha egy kivétel kezelőrutinjának egy utasítása ugyanazt a kivételt okozza – Végtelen ciklus – Kivétel‐szintek: másik táblázatban keresi a kezelő‐ rutint, ezért másik rutin kezeli az újabb kivételt 2006. március 14 – 21.
Processzorok
60. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
20. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Megszakítások és kivételek (3) • Másik probléma: táblázatban érvénytelen cím szerepel megszakítás vagy kivétel kezelőrutinjához – Kettős hiba: speciális kivételkezelő rutin indul el – Kivétel szintek (ld. előbb): magasabb szintű táblázatbeli kezelőrutin indul el – Processzor leállása (shutdown)
2006. március 14 – 21.
Processzorok
61. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Védelmi szintek (1) • Ha egy gépen több felhasználó dolgozik, akkor meg kell védeni a programjaikat, hogy hozzáférhessenek másik felhasználók adataihoz, esetleg a gép működését veszélyeztessék • Operációs rendszernek viszont mindenhez hozzá kell férnie (már csak azért is, hogy meghatározza, melyik más program mihez férhet hozzá) • Operációs rendszer és a felhasználói programok két különböző módban, úgynevezett védelmi szinten működnek (rendszer és felhasználói) 2006. március 14 – 21.
Processzorok
62. oldal
Védelmi szintek (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Rendszer (kernel) szint – Minden (szabályos) utasítás végrehajtható – Minden regiszter elérhető – Központi tár minden területéhez hozzá lehet férni – Minden be‐ és kiviteli egységhez hozzá lehet férni
• Felhasználói (user) szint – Processzorvezérlő utasítások egy része nem hajtható végre (pl. megszakítások maszkolása) – Csak a felhasználói regiszterek érhetők el – Központi tárnak csak meghatározott része hozzáférhető – Csak meghatározott be‐ és kiviteli egységek hozzáférhetők 2006. március 14 – 21.
Processzorok
63. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
21. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Védelmi szintek (3) • Megszakítások és kivételek kezelő rutinjai mindig rendszer védelmi szinten kerülnek végrehajtásra • Szintek közötti váltás – Felhasználói→rendszer: megszakítás, kivétel történik, vagy felhasználói program szubrutint hív az operációs rendszer területéről (rendszerhívás) – Rendszer→felhasználói: visszatérés megszakítás vagy kivétel kezelőjéből vagy rendszerhívásból
• Veszély: mi van, ha a felhasználói program az operációs rendszer szubrutinjának nem az elejét hívja meg (pl. valamilyen ellenőrzés átugrása) 2006. március 14 – 21.
Processzorok
64. oldal
Védelmi szintek (4)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Megoldás: kapuk alkalmazása – Táblázatban vannak felsorolva – Táblázat elemei az operációs rendszer szubrutinjainak kezdőcímei – Felhasználói program csak kaput hívhat, így nem ugorhat a szubrutin közepébe
• Rendszer védelmi szintről nem hívható felhasználói szintű szubrutin, mert az veszélyes lenne • Illeszkedő szintű szubrutinok: olyan szinten kerülnek végrehajtásra, amilyenről hívták őket 2006. március 14 – 21.
Processzorok
65. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
66. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
22. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
CISC processzorok • Complex Instruction Set, azaz összetett utasításkészlet • Ezek a „hagyományos” processzorok • Sok, gyakran összetett utasítások • Sokféle változatos címzési mód • Utasítások egy része mikroprogramozott • Változó utasításhossz • Utasítások nagy része elérheti a központi tárat is • Programozása assembly nyelven hatékony • Problémák: – Nehezen gyorsítható – Assemblyben programozni nehéz 2006. március 14 – 21.
Processzorok
67. oldal
RISC processzorok (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Átgondolt tervezés: – Milyen kódot képes generálni egy magasszintű nyelv fordítóprogramja? • Csak egyszerű utasításokat használ – összetettebb műveleteket a magasszintű nyelven is algoritmusok valósítják meg, ezt a fordító nem képes felismerni, és egyetlen összetett utasítással helyettesíteni
• Egyszerű címzési módokat alkalmaz – szokásos műveletek: egyszerű változók, mutató‐műveletek, valamint tömbök elemeinek, rekordok mezőinek elérése – nehéz felismerni olyan összetett dolgokat, mint például egy rekord tömb mezője egyik elemének elérése
– Milyen utasításokat, címzési módokat lehet hatékonyan megvalósítani? • Lásd: eddig 2006. március 14 – 21.
Processzorok
68. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
RISC processzorok (2) • Reduced Instruction Set, azaz egyszerű utasításkészlet • Egyszerű utasítások • Eleinte kevés utasítás, ma már több, de továbbra is egyszerűek • Kevés, egyszerű címzési mód • Minden utasítás huzalozott • Csak adatmozgató utasítások érhetik el a memóriát: load and store modell • Rögzített utasításhossz • Minden utasítás egy órajel, kivéve a load and store műveletek 2006. március 14 – 21.
Processzorok
69. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
23. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
VLIW processzorok • A RISC sem elég egyszerű: utasítások párhuzamosítása bonyolult hardvert eredményez • Ötlet: Very Long Instruction Word, azaz nagyon hosszú utasításszó • Nem egy, hanem annyi utasítás kerül egyszerre beolvasásra, ahány futószalag van • Minden futószalag ennek a hosszú utasításszónak egy rögzített darabját hajtja végre • Párhuzamosítás problémáival így nem a processzor, hanem a fordítóprogram törődik 2006. március 14 – 21.
Processzorok
70. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
CISC‐RISC‐VLIW problémák • Probléma: CISC processzort a kompatibilitását megőrizve kell gyorsítani – Előfeldolgozó egység, ami mikroutasításokra bontja – RISC processzor, ami a mikroutasításokat dolgozza fel, melyek már RISC utasításkészletet alkotnak – A kettő természetesen fizikailag egybe van integrálva
• Probléma: VLIW processzor új típusában több futószalag lehet, mint az előzőben – Magas szintű nyelv fordítóprogramja ne gépi kódra, hanem köztes bájtkódra fordítson – Processzorhoz mellékelt szoftver végezze el a tényleges fordítást futtatás előtt közvetlenül – Így egy CISC‐kel való kompatibilitás is megőrizhető 2006. március 14 – 21.
Processzorok
71. oldal
Ismert processzorcsaládok (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• IBM 360/370 sorozat és utódainak processzora – 32 bites „nagyon” CISC – Régen vízhűtéses a nagy teljesítmény miatt
• DEC VAX – 32 bites, még az előzőnél is „CISC‐ebb”
• MOS6510 (Commodore 64) – 8 bites – Legfeljebb 1 címes utasítások
• Motorola 68000 – 32 bites CISC
2006. március 14 – 21.
Processzorok
72. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
24. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Ismert processzorcsaládok (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Motorola/IBM PowerPC – 32 vagy 64 bites RISC
• Sun SPARC (eredetileg: RISC I illetve RISC II) – 32 vagy 64 bites RISC
• MIPS – 32 vagy 64 bites „nagyon” RISC
• Intel Pentium és elődei/utódai – Következő témakörünk
2006. március 14 – 21.
Processzorok
73. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Tartalomjegyzék 1. 2. 3. 4. 5. 6. 7.
A processzorok feladata Egy processzor felépítése, részei Utasítások Címzési módok A processzor működése Processzorok fajtái Esettanulmány: Intel Pentium
2006. március 14 – 21.
Processzorok
74. oldal
Az Intel Pentium története (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Család első processzora: 4004 (számológépekbe) – 12 bites címsín (4 kB címezhető terület) – 8 bites utasítások – 4 bites adatok (külön memóriában!) – 46 utasítás, 41 db 8 bit és 5 db 16 bit hosszú – 16 db 4 bites regiszter – 3 szintes belső szubrutin‐verem – 470 kHz órajel
• Utódja: 4040 – 60 utasítás – 24 regiszter – 7 szintes belső szubrutin‐verem – 13 bites címsín az utasításmemóriához 2006. március 14 – 21.
Processzorok
75. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
25. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Az Intel Pentium története (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Első 8 bites processzor: 8008 – Eredetileg terminálba tervezték – Egyetlen 8 bites sín – 8 bemeneti és 24 kimeneti port
• Utódja: 8080 – 16 bites cím és 8 bites adatbusz – 7 db 8 bites regiszter (ebből 6 párosítva, 3 db 16 bitesként is használható) – 16 bites utasítás‐ és 16 bites veremmutató – 256 be‐ és kiviteli port (tetszőleges irányban)
• Még újabb: 8085 – Jelzőbit‐regiszter – Megszakítások 2006. március 14 – 21.
Processzorok
76. oldal
Az Intel Pentium története (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Első 16 bites processzor: 8086 – 16 bites cím‐ és adatsín – 6 B prefetch sor (kezdetleges futószalag technika) – 4 db 16 bites általános célú regiszter (használható 8 db 8 bitesként is) – 4 db mutatóregiszter (köztük a veremmutató) – 65536 db 8 bites be‐ és kiviteli port (használható párosával 16 bitesként) – 1 GB címtér ún. szegmensregiszterek segítségével
• IBM PC processzora: 8088 – Csak 8 bites külső adatsín (olcsóbb alaplap) – 4 B prefetch sor 2006. március 14 – 21.
Processzorok
77. oldal
Az Intel Pentium története (4)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• A 8086 és a 8088 utódai: 80186 és 80188 – Új utasítások, gyorsabb feldolgozás
• Később: 80286 és 80288 – Ezek közül a 80286 a sikeres – Védett mód: védelmi szintek és 16 MB címzés
• Legnagyobb újítás: 80386 (i386) – 32 bites sín (80386SX esetén csak belül, 80386DX esetén kívül is) – Fejlett memóriakezelési módszerek – Futószalag‐feldolgozás – Órajel: 25‐40 Mhz – Mobil gépekbe: 80386SL
• Konkurrencia: Am386 (kompatibilis) 2006. március 14 – 21.
Processzorok
78. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
26. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Az Intel Pentium története (5)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Matematikai koprocesszorok – Lebegőpontos számításokhoz – Minden processzornak megfelelő koprocesszor: • 8086/8088 – 8087 • 80286 – 80287 • 80386 – 80387
• Processzor és koprocesszor egybeépítve: 80486 – Nem működő koprocesszor kikapcsolva: 80486SX, a teljes modell a 80486DX – 80486SX‐hez 80487 koprocesszor – Belső gyorsítótár, fejlettebb sínkezelés – Belső órajel nagyobb, mint a külső: SX2 és DX2 (kétszeres), később DX4 (háromszoros) 2006. március 14 – 21.
Processzorok
79. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Az Intel Pentium története (6) • A 80486 konkurrens gyártói: AMD, Cyrix, IBM, Texas Instruments, Chips and Technologies • Szuperskalár processzor: Pentium – Két futószalag: U (minden utasításra) és V (egyszerűbb utasításokra) – Lebegőpontos futószalag – 64 bites adatsín (gyorsabb memóriahozzáférés) – Külső órajel: 60 vagy 66 MHz (később akár 75‐83 is) – Belső órajel: 60‐233 MHz
• Multimédia utasítások: Pentium MMX – Egy utasítás egyszerre több adaton (SIMD) 2006. március 14 – 21.
Processzorok
80. oldal
Az Intel Pentium története (7)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• A hatodik generáció: Pentium Pro – Mikroutasításokra bontó előfeldolgozó egység – Utasítások átrendezése – Spekulatív végrehajtás: elágazás két ágát párhuzamosan – Több futószalag – Többprocesszoros működés (maximum 4) – Másodszintű gyorsítótár a lapkán
• Pentium MMX + (Pentium Pro – ε) = Pentium II – Hasonlít a Pentium Pro‐hoz, de legfeljebb 2 processzor tehető egy gépbe – Másodszintű gyorsítótár a processzorkártyán 2006. március 14 – 21.
Processzorok
81. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
27. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Az Intel Pentium története (8) • Multimédiás utasításkészlet háromdimenziós számításokhoz: Pentium III – Többi fejlesztés csak a teljesítményt érinti
• Nagyon magas órajel: Pentium 4 – Egy utasítás több órajelet vehet igénybe, mint Pentium III‐nál – Összességében mégis gyorsabb – Újabb modellek: két processzor szimulálása (hyper‐ threading)
• Mobil gépek Pentiuma: Pentium M • Kétmagos Pentium 4: Pentium D • Két mag és azokon belül is két processzor szimulálása: Pentium Extreme Edition 2006. március 14 – 21.
Processzorok
82. oldal
Az Intel Pentium története (9)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Olcsó processzorok: Celeron – Pentium II, Pentium III, Pentium 4 és Pentium M processzorok olcsó megfelelője – Nincs vagy csak kevesebb másodszintű gyorsítótár – Csak egyprocesszoros működésre alkalmas
• Szerverek processzorai: Xeon – Pentium II, Pentium III, Pentium 4 és Pentium M processzorok megfelelője szerver gépekbe – Többprocesszoros működés (4‐8 processzor) – Több gyorsítótár
2006. március 14 – 21.
Processzorok
83. oldal
Az Intel Pentium története (10)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Konkurrens kompatibilis processzorok: – AMD: K5, K6, K6‐2, K6‐III, Athlon, olcsó változatok: Duron és Sempron – NexGen: 5x86 – Cyrix: 6x86, 6x86MX
• 64 bites processzorok: – Intel: Itanium, Itanium 2 – 32 bites módban lassú, 64 bites módja teljesen más • Nem túl sikeres
– AMD: Athlon 64, Athlon 64 X2 (kétmagos), Turion 64 (mobil rendszerekbe), Opteron (szerverekbe) – 64 bites mód a 32 bites mód kiterjesztése 2006. március 14 – 21.
Processzorok
84. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
28. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
A Pentium blokkvázlata
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
64 bit
Kód‐ gyorsítótár
32 bit
Utasításág‐ előrejelzés
32 bit
256 bit
Prefetch‐ Buffer‐ek 256 bit
64 bit
256 bit
FPU
64‐bites sín‐csatoló
ALU
ALU 64 bit
32 bit
32 bit
Regiszter készlet 32 bit 64 bit
32 bit
Adat‐ gyorsítótár
2006. március 14 – 21.
Processzorok
85. oldal
A Pentium futószalagjai PREFETCH
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Lebegőpontos
PREFETCH
Utasítás dekódolás
Utasítás dekódolás
Cím generálás
Cím generálás
Végre‐ hajtás
Végre‐ hajtás
Kiírás
Kiírás
Utasítás dekódolás Cím generálás Konverzió 80 bitre Végre‐ hajtás 1 Végre‐ hajtás 2 Kerekítés, regiszterbe írás
Egész
Hibadetektálás
2006. március 14 – 21.
Processzorok
86. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium legfontosabb regiszterei EAXAH AX AL
CS
EBXBH BX BL
SS
ECXCH CX CL
DS
EDXDH DX DL
ES
Felhasználói szint
ESI
SI
FS
EDI
DI
GS
EBP
BP
Szegmensregiszterek
ESP
SP
Általános célú regiszterek
EIP
IP
Utasításmutató
EFLAG FLAG
Rendszer szint
GDTR IDTR LDTR LDTR Leírótábla‐regiszterek
Állapotregiszter
2006. március 14 – 21.
Processzorok
87. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
29. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Az EFLAG regiszter (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
0 0 0 0 0 0 0 0 0 0
I VV I AV R N O OD I T S Z A P C 0 0 0 1 I I D CMF T P F F F F F F F F F P F L
• Rendszer szintű vezérlő‐kapcsolók – IOPL: Be‐ és kiviteli műveletek védelmi szintje – IF: Megszakítások engedélyezve – TF: Töréspont minden utasítás után
• Felhasználói szintű vezérlő‐kapcsolók – DF: füzérutasítások (speciális ciklus) iránya
• Felhasználói szintű jelzők – OF: túlcsordulás (előjeles műveletek eredményénél) – SF: előjel (eredmény negatív) – ZF: zéró (eredmény nulla) 2006. március 14 – 21.
Processzorok
88. oldal
Az EFLAG regiszter (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
0 0 0 0 0 0 0 0 0 0
I VV I AV R N O OD I T S Z A P C I I 0 0 0 1 D CMF T P F F F F F F F F F P F L
• Felhasználói szintű jelzők (folytatás) – AF: félátvitel (átvitel az alsó félbájt utolsó bitjéről) • BCD aritmetikánál használatos
– PF: paritás (az eredmény alsó bájtjában páros számú 1 bit van) – CF: átvitel (a legfelső bitről átvitel)
2006. március 14 – 21.
Processzorok
89. oldal
A Pentium rendszerregiszterei
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
CR0
PSW
DR0
CR2
DR1
CR3
DR2
CR4
DR3
Vezérlő regiszterek
DR6 DR7 Nyomkövető regiszterek
MSR0 MSR1 . . . Modell‐specifikus regiszterek
2006. március 14 – 21.
Processzorok
90. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
30. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium lebegőpontos regiszterei ST(0)
SW
ST(1)
Állapotszó regiszter
ST(2)
TW
ST(3)
Toldalékszó regiszter
ST(4)
CW
ST(5)
Vezérlőszó regiszter
ST(6) 0
ST(7) Numerikus regiszterek (verem struktúrában címzendők)
FIP FOP FCS FOO 0 FOS
EP
Hibára mutató regiszterek FIP – EIP másolata FCS – CS másolata FOP – műveleti kód FOS – operandus szegmenscíme FOO – operandus ofszet‐címe
2006. március 14 – 21.
Processzorok
91. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium címzési módjai (1) • Közvetlen címzés • Regisztercímzés • Abszolút címzés • Báziscímzés • Indexelt címzés • E fenti három tetszőleges kombinációja – Nem használható bármely regiszter bázisregiszterként illetve indexregiszterként
• Veremcímzések: ESP regiszter értéke csökken verembe írás előtt vagy veremből olvasás után (lefelé bővülő verem!) 2006. március 14 – 21.
Processzorok
92. oldal
A Pentium címzési módjai (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Regiszterek elérése: – Processzor 32 vagy 16 bites módban van – Módnak nem megfelelő regiszter elérése: méret prefix (plusz egy bájt és plusz egy órajel!) – 8 bites regiszter elérése: utasítások utolsó bitje 0
• Memória elérése: – Cím és operandus mérete is a processzor módjának felel meg – Felülbírálható egy‐egy prefix‐szel (plusz egy‐egy bájt és plusz egy‐egy órajel)
2006. március 14 – 21.
Processzorok
93. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
31. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
A Pentium utasításformátuma
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
műv. kód 1 műv. kód 2
mod r/m
s‐i‐b
cím vagy adat
• Minden utasítás része a fenti formának • Egyszerű utasításoknál csak egy bájt a műv. kód • Összetett utasításoknál (pl. újabb utasítások, lebegőpontos utasítások) két bájt műv. kód van • A mod r/m a címzési módot határozza meg, és regisztercímzéseknél a regisztert • Az s‐i‐b bájt bázis‐ és indexelt címeknél használatos • A cím vagy adat mérete 8, 16 vagy 32 bit lehet 2006. március 14 – 21.
Processzorok
94. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium utasításkészlete (1) • Egész aritmetikai utasítások: ADD, ADC, SUB, SBB, MUL, IMUL, DIV, IDIV, INC, DEC, NEG • Logikai utasítások: AND, OR, XOR, NOT • Bittoló és ‐forgató utasítások: SHL, SHLD, SHR, SHRD, SAL, SAR, RCL, RCR • Bitműveletek: BSF, BSR, BT, BTC, BTR, BTS • Összehasonlítások: CMP, TEST • BCD‐kezelő utasítások: AAA, AAD, AAM, AAS, DAA, DAS • Különböző méretű adatok konverziója: CWD, CDQ, CBW, CWDE 2006. március 14 – 21.
Processzorok
95. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium utasításkészlete (2) • Adatmozgató utasítások: MOV, MOVSX, MOVZX, XCHG, LEA, LAHF, SAHF, IN, OUT • Verem utasítások: PUSH, POP, PUSHA, PUSHAD, PUSHF, PUSHFD, POPA, POPAD, POPF, POPFD • Vezérlésátadások: JMP, JCXZ, JECXZ, JA, JAE, JB, JBE, JC, JE, JG, JGE, JL, JLE, JNA, JNAE, JNB, JNBE, JNC, JNE, JNG, JNGE, JNL, JNLE, JNO, JNP, JNS, JNZ, JO, JP, JPE, JPO, JS, JZ, CALL, RET, INT, IRET • Üres utasítás: NOP 2006. március 14 – 21.
Processzorok
96. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
32. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium utasításkészlete (3) • Ciklus‐utasítások: LOOP, LOOPZ, LOOPE, LOOPNZ, LOOPNE • Sztring‐utasítások: – Prefix: REP, REPE, REPZ, REPNE, REPNZ – Utasítás: MOVS, MOVSB, MOVSW, MOVSD, LODS, LODSB, LODSW, LODSD, STOS, STOSB, STOSW, STOSD, CMPS, CMPSB, CMPSW, CMPSD, SCAS, SCASB, SCASW, SCASD, INS, INSB, INSW, INSD, OUTS, OUTSB, OUTSW, OUTSD – Irány megadása: STD, CLD
• Összetett utasítások: BSWAP, XADD, CMPXCHG, CMPXCHG8B, XLAT, XLATB, ENTER, LEAVE 2006. március 14 – 21.
Processzorok
97. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium utasításkészlete (4) • Összetett utasítások: BSWAP, XADD, CMPXCHG, CMPXCHG8B, XLAT, XLATB, ENTER, LEAVE • Jelzők beállítása: STC, CLC, CMC, SETA, SETAE, SETB, SETBE, SETC, SETE, SETG, SETGE, SETL, SETLE, SETNA, SETNAE, SETNB, SETNBE, SETNC, SETNE, SETNG, SETNGE, SETNL, SETNLE, SETNO, SETNP, SETNS, SETNZ, SETO, SETP, SETPE, SETPO, SETS, SETZ • Ellenőrzés: BOUND, INTO 2006. március 14 – 21.
Processzorok
98. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium utasításkészlete (5) • Szegmenstöltés: LDS, LES, LFS, LGS, LSS, LSL • Rendszervezérlő utasítások: LGDT, LIDT, LLDT, LTR, LMSW, SGDT, SIDT, SLDT, STR, SMSW, RDMSR, WRMSR, CLI, STI, CLI, WAIT, HLT, ARPL, VERR, VERW, INVD, INVLPG, WBINVD, LOCK, RSM
2006. március 14 – 21.
Processzorok
99. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
33. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Megszakítások a Pentiumon • Processzor INTR lábára jel érkezik, a buszról leolvasható egy szám, az ún. megszakításvektor • Kezelőrutinok címét az IDT tartalmazza • Az IDT 256 kapuból áll, minden vektor egy‐egy kaput azonosít • Az IDT elejére az IDTR rendszerregiszter mutat • Ezek a megszakítások maszkolhatók • Processzornak van NMI lába is, ez a megszakítás nem maszkolható • NMI esetén a buszon nincs megszakításvektor, az NMI vektora rögzített (02H) 2006. március 14 – 21.
Processzorok
100. oldal
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
Kivételek a Pentiumon (1) • Kivételek kapui is az IDT‐ben vannak: 0‐31 kapuk fenntartottak erre a célra (kivéve a 2) • Három fajta kivétel: hiba, csapda, vetélés • Bizonyos kivételeknél hibakód kerül a verembe • Kivételek: – 00H – Osztáshiba (hiba) – 01H – Töréspont (TF vagy DR) (csapda vagy hiba) – 03H – Töréspont CCH műveleti kóddal (csapda) – 04H – INTO utasítás túlcsorduláskor (csapda) – 05H – BOUND utasítás határsértés (csapda) – 06H – Érvénytelen műveleti kód (hiba) 2006. március 14 – 21.
Processzorok
101. oldal
Kivételek a Pentiumon (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Kivételek: – 07H – Matematikai koprocesszor nincs jelen (hiba) – 08H – Kettős hiba (hiba) – 09H – Koprocesszoroperandus határsértés (hiba) – 10H – Érvénytelen feladatleíró (hiba vagy csapda) – 11H – Nem jelenlevő szegmens (hiba) – 12H – Veremhiba (hiba) – 13H – Általános védelmi hiba (hiba) – 14H – Laphiba (hiba) – 16H – Numerikus hiba (hiba) – 17H – Illeszkedési hiba (hiba)
2006. március 14 – 21.
Processzorok
102. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
34. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
A Pentium védelmi szintjei (privilégiumszintek) • Négy szint 0‐3: 0 a rendszer, 3 a felhasználói • Rendszervezérlő utasítások csak a 0. szinten • Memóriaterületek védelmi szintje is különbözhet (ld. később) • Minden szinten külön verem • Rendszerhívás (alacsonyabb szintű rutin hívása magasabb szintről) – GDT‐ben kapuk, ezeket lehet CALL utasítással hívni • Kapuban adott számú paraméter másolása az alacsonyabb szintű verembe
– IDT‐ben kapuk, ezeket megszakítás szimulálásával (INT utasítás) lehet meghívni • Itt nem történik paramétermásolás 2006. március 14 – 21.
Processzorok
103. oldal
Példakódok (1)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Regiszter nullázása: XOR
EAX, EAX
• Két szám összeadása: MOV ADD MOV
EAX, EGYIK EAX, MASIK EREDMENY, EAX
• 32 karakter hosszú láncok másolása: LEA LES MOV CLD REP
ESI, EGYIK EDI, MASIK ECX, 31 MOVSB
2006. március 14 – 21.
Processzorok
104. oldal
Példakódok (2)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Összegzés: XOR MOV LEA CLD C1: LODSD ADD LOOP MOV
2006. március 14 – 21.
EDX, EDX ECX, HOSSZ ESI, VEKTOR
EDX, EAX C1 OSSZEG, EDX
Processzorok
105. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
35. oldal
Operációs rendszerek – Processzorok
2006. március 14 – 21.
Példakódok (3)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Megszámlálás: XOR MOV LEA CLD C1: LODSD TEST JZ INC C2: LOOP MOV
EDX, EDX ECX, HOSSZ ESI, VEKTOR
EAX, FFFFFFFFH C2 EDX C1 OSSZEG, EDX
2006. március 14 – 21.
Processzorok
106. oldal
Példakódok (4)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Lineáris keresés: MOV MOV LES CLD REPNE SUB MOV
EAX, KERESENDO ECX, HOSSZ EDI, VEKTOR SCASD EDI, VEKTOR EREDMENY, EDI
2006. március 14 – 21.
Processzorok
107. oldal
Példakódok (5)
Balogh, Lőrentey: Architektúrák és operációs rendszerek – 2005–2006. első félév
• Maximumkeresés: MOV MOV LEA CLD C1: LODSD CMP JLE MOV MOV C2: LOOP MOV MOV 2006. március 14 – 21.
EDX, -80000000H ECX, HOSSZ ESI, VEKTOR
EAX, EDX C2 EDI, ESI EDX, EAX C1 HELY, EDI ERTEK, EDX Processzorok
108. oldal
Balogh Ádám (
[email protected]), Lőrentey Károly (
[email protected])
36. oldal