Tartalomjegyzék. Tartalomjegyzék. Tartalomjegyzék...3

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

Download "Tartalomjegyzék. Tartalomjegyzék. Tartalomjegyzék...3"

Átírás

1 Tartalomjegyzék Tartalomjegyzék Tartalomjegyzék fejezet: Processzor erőforrások...21 Landmark CHECKIT MIPS 1.20: (MIPS) CPUTEST 1.1 (MIPS) Fejezet: Általános CPU programozási információk A memória felépítése Nemszegmentált vagy "lapos" modell Szegmentált modell Regiszterek Általános regiszterek Szegmensregiszterek 3

2 Tartalomjegyzék Utasításmutató A verem felépítése és használata Flagregiszter Állapotbitek Rendszer-regiszterek Rendszer-flagek Vezérlőregiszterek Nyomkövető regiszterek CPU üzemmódok Valós üzemmód ("valós mód") Védett üzemmód Rendszermenedzselő üzemmód 4

3 Tartalomjegyzék Inicializálás és az üzemmódok közötti átkapcsolás A processzor inicializálása A processzor állapota reszetelés után Az első végrehajtott utasítás A cache engedélyezése Software inicializálás valós üzemmódban Rendszertáblázatok Az NMI megszakítás Software inicializálása védett üzemmódban Rendszertáblázatok Megszakítások Lapozás 5

4 Tartalomjegyzék Taszkok A TLB, BTB és cache tesztelése Üzemmódváltás Átkapcsolás védett módba Visszakapcsolás valós üzemmódba Példa inicializálásra és üzemmód átkapcsolásra A példa célja A memória elrendezése a reset-elést követően Az algoritmus Eszközök használata A STARTUP.ASM listája A MAIN.ASM forráskódja 6

5 Tartalomjegyzék Állományok támogatása A valós üzemmód felépítése, működése Címek lefordítása Regiszterek és utasítások Megszakítás és kivétel kiszolgálás Valós üzemmódú kivételek A Védett üzemmód felépítése, működése Memóriaszervező regiszterek Rendszer utasítások Védett üzemmódú memóriaszervezés A szegmentálási modell kiválasztása A sík modell 7

6 Tartalomjegyzék Védett sík modell Multiszegmens modell Szegmensfordítás Szegmensregiszterek Szegmensszelektorok Szegmens deszkriptorok Szegmensdeszkriptor-táblázatok Deszkriptortáblázat bázisregiszterek Lapfordítás Lapozási opciók Lineáris cím Laptáblázatok 8

7 Tartalomjegyzék Laptáblázat bejegyzések Lapkeret cím A Present (betöltött, jelenlevő) bit Hozzáfért (accessed) és "piszkos" (dirty) bitek Írás/olvasás illetve felhasználó/felügyelő bitek Lapszintű cache-vezérlő bitek Fordítási segédpufferek Szegmens- és lapfordítás keverése A sík modell Több lapot átfogó szegmensek Több szegmenst átfogó lapok

8 Tartalomjegyzék Nem illeszkedő lap- és szegmenshatárok Illeszkedő lap- és szegmenshatárok Egy laptáblázat elhelyezése szegmensenként Védelemi mechanizmusok Szegmens szintű védelem A szegmens deszkriptorok és a védelem Típusellenőrzés Határ (limit) ellenőrzés Privilégium szintek Az adathozzáférések korlátozása Kódszegmensekbeli adatok elérése Vezérlésátadások korlátozása

9 Tartalomjegyzék Kapudeszkriptorok Veremváltás Visszatérés egy procedúrából Az operációs rendszer számára lefoglalt utasítások Privilegizált utasítások Érzékeny utasítások Mutatók érvényességét ellenőrző utasítások Deszkriptor érvényességének ellenőrzése Mutatók integritása és az RPL Lapszinti védelem A laptáblázat bemenetek által tartalmazott védelmi paraméterek A megcímezhető tartományt érintő megszorítások 11

10 Tartalomjegyzék Típusellenőrzés A védelem kombinálása a laptáblázatok mindkét szintjén A lapvédelem fölülírói Lap- és szegmensvédelem kombinálása Védett üzemmódú multitaszking Taszk-állapot-szegmens A TSS deszkriptor Taszkregiszter Taszk kapudeszkriptorok Taszkkapcsolás Taszkok visszafelé kapcsolása (LINKING) A Busy (foglalt) bit megelőzi a hurkok

11 Tartalomjegyzék kialakulását A taszk visszakapcsolások módosítása Taszkok címtartománya Taszkok által lineárisról- fizikai címre végzett leképzés A taszkok logikai címtartománya Védett üzemmódú kivételek és megszakítások Kivétel- és megszakításvektorok Utasítások újraindítása Megszakítások engedélyezése és letiltása További NMI megszakítások maszkolása INTR megszakítások maszkolása Debug hibák maszkolása az RF bit segítségével

12 Tartalomjegyzék Egyes kivételek és megszakítások maszkolása Szimultán kivételek és megszakítások közötti prioritás A megszakításdeszkriptor-táblázat IDT deszkriptorok Megszakítás taszkok és megszakítás-kezelő procedurák Megszakítás-kezelő procedúrák A megszakítás-kezelő eljárás verme Visszatérés egy megszakítás-kezelő eljárásból A megszakítás-kezelő eljárás flaghasználata Védelem a megszakítás-kezelő eljárásokban Megszakítás-kezelő taszkok 14

13 Tartalomjegyzék Hibakódok Kivétel feltételek s számú megszakítás - Osztáshiba (Divide Error) es számú megszakítás - Debug kivétel as számú megszakítás - Töréspont (Breakpoint) es számú megszakítás - Túlcsordulás (Overflow) ös számú megszakítás - Határsértés (Bounds Check) os számú megszakítás - Érvénytelen utasítás (Invalid Opcode) es számú megszakítás - nem elérhető eszköz (Device Not Available) as számú megszakítás - Kettős hiba, dupla hiba (Double Fault) 15

14 Tartalomjegyzék es számú megszakítás - (az Intel által fenntartott, használata nem ajánlott) es számú megszakítás - Érvénytelen TSS (Invalid TSS) es számú megszakítás - Szegmens nincs jelen, (Segment Not Present) es számú megszakítás - verem kivétel (Stack Exception) as számú megszakítás - Általános védelmi hiba (General Protection) es számú megszakítás - Laphiba (Page Fault) Taszkkapcsolás alatti laphiba Laphiba összeférhetetlen veremmutatóval os számú megszakítás - Lebegőpontos egység hiba, Floating-Point Error) Numerikus kivételek kezelése 16

15 Tartalomjegyzék Szimultán kivételekre adott válaszok es számú megszakítás - Illeszkedés ellenőrzés ellenőrzési hiba (Alignment Check) as számú megszakítás - Processzortípus ellenőrzés (Machine Check) A kivételek összefoglalása Hibakódok összefoglalása Rendszermenedzselő üzemmód Az SMI megszakítás Az SMM kezdeti állapota Az SMM végrehajtása Az SMRAM processzor-állapot tároló formátuma Az SMM revízió-azonosító (FEFCH ofszet) 17

16 Tartalomjegyzék I/O trap-újraindítás (FF00H ofszet) Felfüggesztett állapotból való automatikus újraindítás (FF02H ofszet) Az állapottároló bázisa (FEF8H ofszet) Az SMRAM relokációja Visszatérés az SMM-ből os virtuális üzemmód CPU kód végrehajtása Regiszterek és utasítások Lapozás a 8086-os virtuális taszkok esetében Védelem egy 8086-os virtuális taszkon belül Belépés a 8086-os virtuális üzemmódba és az abból való kilépés

17 Tartalomjegyzék Taszkátkapcsolások általi tranzíciók Átmenet trap- és megszakításkapukon keresztül Érzékeny utasítások Virtuális megszakítások támogatása A 8086 operációs rendszerhívások emulációja Virtuális I/O I/O-ra leképezett I/O Memóriába leképezett I/O Különleges I/O pufferek Különbségek a 8086 CPU-hoz képest Különbségek a 286 CPU-hoz képest Privilégiumszint

18 Tartalomjegyzék A busz lezárása Különbségek a 386 és 486 CPU-hoz képest Ábra- és példajegyzék Előzetes a második kötet tartalmából µ ábra: Kiugrás a végrehajtási sorrendből. Az M1-es processzorban az egyik pipeline végrehajtási sorában lévő utasításnak nem kell megvárnia a másik pipeline lassúbb utasítását. Kiugorva a végrehajtási sorból, időt lehet megtakarítani a vérehajtás során, a program futásának megszakítása nélkül. 20

19 Landmark fejezet: Processzor erőforrások céljából tektúrájú összevetettük processzorát. néhány gyártó 32, vagy 64 bites X86-os archi- ettől processzoroknál az eredmények eltérő eseteket kiértékelése különböző közöljük. lehet, során a kitérünk. különbségekre A belső cache - méret típusjelzés különböző szerint TI - valamilyen nyúzópróbái cache-sel, processzort cache-t cache-foglalattal. használtunk tartalmazott. és alaplapba tartalmazó fel. során. esetleg Az Ennek FPU Az ezektől fixen alaplap SLC2-50-es nélkül következménye, beforrasztott eltérő 64 történtek kbyte, esetekben alaplap processzor az meg hogy SLC2-66 nem 256 a mérések. különböző rendelkezett kbyte állta 12815ns-os a kbyte Az sarat méretű SLC33-as külső a cache-t tesztek külső tartalmazzák külső jelöltük egység NxVL koprocesszor koprocesszort rendszervezérlő nélkül a foglalattal. értékelendőek. lebegőpontos jelent. jelenlétét, chip-pel Ha egységet. Az az épült a Nx 486SX mérési 586-os fel, A - táblázatokban és eredmények 486SLC processzort nem rendelkezett típusoknál lebegőpontos a fogadó "+FPU" nem alaplap jelzés aktuális "követtük meghajtott Am486DX4-120 frekvenciával. típusjelzés "tuningolt" őket". valójában Ezek alatt, de fizikailag csak kifogástalanul egy a AmDX4-100, jobb az összehasonlíthatóság előírtnál működő 120MHz-es magasabb példányok, órajellel érdekében pl.: az Landmark 2.00 Processor Típus: CPU (MHz) FPU (MHz) PENTIUM , ,79 PENTIUM , ,15 PENTIUM , ,92 NEXGEN Nx586 P Am 486DX4-120 * 401, ,28 INTEL 486DX ,53 882,57 Am 486DX ,15 856,64

20 Processzor erőforrások Am 486DX2-100 * 334,62 882,79 INTEL 486DX2-80 * 267,70 706,05 Am 486DX ,70 704,11 Cyrix 486DX2-V80 264,45 770,57 INTEL 486DX ,96 587,49 Am 486DX ,91 588,02 Cyrix 486DX2-V66 219,94 640,87 TI 486SLC2-66+FPU 152,76 162,07 INTEL 486SX ,30 14,10 TI 486SLC2-50+FPU 115,15 116,70 Am 486DX ,84 353,06 TI 486SXLC ,81 10,66

21 Landmark 2.0 TI 486SLC ,90 6,45 INTEL 486DX ,37 291,15 TI 486SLC ,98 7,42 INTEL 486SX-25 83,67 7,04 Am 386 DX-40 62,40 -- Am 386SX-40 52,19 -- µ µ CHECKIT 3.0 Processor Type: Dhrystones Whetstones PENTIUM PENTIUM

22 Processzor erőforrások PENTIUM NEXGEN Nx586 P Am 486DX4-120 * INTEL 486DX Am 486DX Am 486DX2-100 * INTEL 486DX2-80 * Am 486DX Cyrix 486DX2-V INTEL 486DX Am 486DX Cyrix 486DX2-V

23 Landmark 2.0 TI 486SLC2-66+FPU INTEL 486SX TI 486SLC2-50+FPU Am 486DX TI 486SXLC TI 486SLC INTEL 486DX TI 486SLC INTEL 486SX Am 386 DX Am 386SX µ

24 MIPS 1.20: (MIPS) Processzor erőforrások

25 Landmark 2.0 Processzor Típus: Gener al Inst. Intege r Inst. Mem. -mem. Reg. -reg. Reg. -mem. átlagos : (MIPS ) PENTIUM 90 13,34 23,48 17,19 29,59 28,21 22,36 PENTIUM 66 9,84 17,39 13,10 21,91 21,44 16,73 PENTIUM 60 8,88 15,66 11,79 19,74 19,30 15,07 NEXGEN Nx586 P90 7,73 27,54 4,44 31,52 13,86 16,94 Am 486DX4-120 * 11,96 27,99 16,05 34,24 25,55 23,16 INTEL 486DX ,04 27,17 13,36 34,40 21,27 21,25 Am 486DX ,9 23,30 13, ,18 19,22 Am 486DX2-100 * 10,01 23,32 13,37 28,53 21,33 19,31 INTEL 486DX2-80 * 8,05 18,66 10,70 22,82 17,06 15,46 Am 486DX2-80 7,97 18,66 10,70 22,82 17,06 15,44

26 Processzor erőforrások Cyrix 486DX2-V80 9,70 22,90 14,09 29,62 19,80 19,23 INTEL 486DX2-66 6,66 15,54 8,91 19,01 14,21 12,86 Am 486DX2-66 6,68 15,53 8,91 19,00 14,20 12,86 Cyrix 486DX2-V66 8,08 19,05 11,72 24,64 16,47 15,99 TI 486SLC2-66+FPU 7,29 13,59 10,73 15,31 14,81 12,34 INTEL 486SX2-50 5,00 11,66 6,68 14,26 10,68 9,66 TI 486SLC2-50+FPU 5,66 10,24 8,01 11,54 11,08 9,31 Am 486DX-40 4,03 9,32 5,35 11,41 8,55 7,73 TI 486SXLC-40 4,77 11,13 6,95 14,13 9,36 9,33 TI 486SLC-40 4,77 11,13 6,70 14,42 9,36 9,28 INTEL 486DX-33 3,31 7,69 4,41 9,41 7,05 6,37 TI 486SLC-33 3,96 9,27 5,69 12,01 7,77 7,74

27 Landmark 2.0 INTEL 486SX-25 2,51 5,83 3,34 7,13 5,33 4,83 Am 386 DX-40 3,14 6,08 4,00 8,86 5,65 5,71 Am 386SX-40 2,60 5,82 3,61 8,42 4,76 5,04 µ CPUTEST 1.1 (MIPS) µ 486-os elég matematikai különbségéből különbözik gyorsabb CPU-t esetében processzor teljesen ez tesztprogramok áruló között SXLC40-ben sebesség belsőcache esetén. szeretnénk!) nagymértékben azonban a helyzet. a a mérési csak takar architektúrák Texas (Sokszor azonos mérése koprocesszort, helyzet belülről mérettől, a is A Ebben műveletek belső-cache 8 adatok SCL40 tokozás. kitűnik, INTEL Dhrystone-ok kbyte. eredményeket függ mérő-algoritmus sajnos nem, sokkal teljesen a a között mennyiben egyébként - kategóriában és FPU hogy cache SXLC40 Az A nem -koprocesszorral és az jobb. mért méretében INTEL kicsivel mérése AMD megegyezik! vizsgálódnunk. az csak a méretétől. Whetstone-ok mutatott. Cyrix adatokból INTEL azonos párosa, hasonlítanak, hosszait azt által és a pedig gyorsabb, processzorok Cyrix van. a nem paramétert használt teljesítményű AMD A ugyanis és Mindegyik kiderült, nagymértékben Az MIPS DX2-80 viszi alaptalanul Az anélkül esetében érdemes SLC40-ben az DX2-66 vagy ugrások struktúráktól. a és INTEL-től különbség pálmát. mérjük Landmark felépítése -asok a - térnek tesztprogram CPUTEST megfigyelni. az sebességi processzorok -os perlekedett: (JMP/CALL), eredmény esetében 1 függ amelyiket A processzora kbyte a különböző lényegesen CPU egymástól, két Egy a esetében típus (!), a Az szintén a az két Pentiumok, mérünk. belsőcache-ek magukat, ismertetett utasítás JMP-CALL utasítás eredményeként Csodák pipeline-ok procedúrák és utasítások az feltöltésével, esetében ebben Nx586 pedig vérehajtásáról kétszer - a esetében műfajban hajtódnak helyzet az és - ugrás az egyszer még utasítás is nincsenek. végre.) meglehetősen után készült rosszabb: a nem előrejelzéssel CALL, /lásd: táblázat/ A lehetnek az processzorok CPUTEST alacsony előbbiekben egyszer tele foglalják utasítással. értékeket a 1.1 RET a külső, el és (A műveleteinek Pentiuméval: mindig fejezetben technológia. szerepelt -oknak rendszervezérlő processzorral (90MHz-nél processzorához.) tulajdonítjuk. az túl Nx586 már fényesen, kb.: Sajnos a egy sebességét tárgyalt kizárólag chippel 2,5-3%) vezetett. nyúlfarknyival A az (A másik ezt Nx586 -(pl.: Nexgen 32 vetjük regiszterek az Ennek regiszter, NxPCI összetevő, alaplapra a memória 10ns-os nagyobb magyarázata rendszer között és az integrált hogy a azonos cache-ram műveletek sebesség regiszter végrehajtott PCI-buszra vezérlő) - 12ns-os súlycsoportba az Nx586-ról átnevezési érhető méréseinél -okat ugyanazon CACHE-RAM műveletekben épülő el. ír elő szóló tartozó nem a P90- processzorok INTEGER az generációs teljesség végrehajtáshoz matematikai pontosságú utasítások igénye műveleti processzorban. alakok processzorra végrehajtásának a Pentiumokhoz szükséges nélkül. használatát sebessége. A órajel vonatkozó táblázat Kiemeltünk ütemezésében viszonyított feltételezik. Most ciklusok az utasítások nézzük néhány számával meglehetősen néhány milyen végrehajtásának matematikai (FP) adja különbségek konkurens a kétszeres meg. magas utasítást A idejét ötödik vannak a FP ADD UTASÍTÁS késés: NEXGEN Nx586 2 Pentium 3 IBM eredmény: FP MUL késés: eredmény: FP DIV késés: eredmény: MUL (integer) késés: DIV (integer) késés: UNIX teljesítményeit. mások meg az operációs (pl.: x86-os PowerPC, architektúrát. Egyesek rendszer R4400, RISC alatt Alpha) mért processzorként INTEGER, software-ből hardware-sen és Floating emulálva Point (pl.: valósítják Nx586),

28 UNIX SPECint SPECfp tesztek Pentium típus 60 frekvencia 60MHz SPECint SPECfp Belső-cache 16 méret kbyte Pentium 66 66MHz kbyte Pentium 75 75MHz kbyte Pentium 90 90MHz kbyte Pentium MHz kbyte SPARC+ 50MHz kbyte PowerPC601 66MHz kbyte PowerPC603 66MHz kbyte PowerPC MHz kbyte HP MHz Alpha MHz kbyte MIPS R4400SC 150MHz kbyte Cyrix M1 100MHz 130 nincs adat 16 kbyte Gyártók: µ Pentium PowerPC K5 M1 HP7100 R4400 Alpha21064 Nx586 -INTEL -IBM -AMD -CYRIX -HEWLET-PACKARD -MIPS -DEC -NEXGEN µ

29 A memória felépítése 3. Fejezet: Általános CPU programozási információk 3.1. A memória felépítése A Pentium processzor buszára kapcsolt memória neve fizikai memória, mely 8 bites Byte-okból álló sorozatnak tekinthető. Minden Byte-nak megfelel egy és csakis egy, fizikai címnek nevezett cím, amelynek érteke 0-tól maximum ig (4 GByte) terjedhet. A memória kezelését a megbízható és hatékony működés érdekében a hardware végzi. A memóriakezelés használata esetében a programok nem érik el közvetlenül a fizikai memóriát, hanem egy memóriamodellt címeznek, melynek virtuális memória a neve. A memória kezelése szegmentálásból és lapozásból áll. A szegmentálás egy olyan mechanizmus, mely több, független címtartományt biztosít. A lapozás mechanizmusa kevesebb RAM-ot és egy bizonyos mennyiségű lemeztároló kapacitást igénylő nagy címtartományú modelljét támogatja. Használható mindkét vagy csak az egyik módszer a kettő közül. Egy program által használt címek logikai címek. A szegmentálást végző hardware a logikai címet a nemszegmentált címtartomány címzéséhez szükséges lineáris címmé, a lapozást végző hardware pedíg a lineáris címeket fizikai címekké alakítja át. A memória tekinthető egyetlen "lapos" címtartományként is, mint amilyen a fizikai memória; tekinthető azonban egy vagy több, egymástól független memóriarésznek is, melyek neve szegmens. Egy program legtöbb különböző fajta és méretű szegmenst használhat. A

30 Általános CPU programozási információk szegmensek felhasználhatók a programok és rendszerek megbízhatóságának növelése érdekében. Például megelőzhető az, hogy egy program verme, túllépve a neki szánt területet, felülírja a program kódját képező utasításokat; ez a kód és a verem két külön szegmensbe való helyezésével érhető el. Így mindegyik szegmens meghatároz egy modult. Mindkét, a lapos és a szegmentált modell is biztosítja a memória védelmét. E két modell közt elhelyezkedő modellek szintén kiválaszthatók. Egy memóriamodell kiválasztásának szempontjait és azt, ahogyan a rendszerprogramozók egy modellt megvalósítanak, az alkalmazási terület határozza meg. Függetlenül attól, hogy több szegmens van használatban vagy sem, a logikai címek lineáris címekké való átalakítása a címeket egy szegmensen belüli ofszetnek értelmezve történik. Minden szegmensnek van egy szegmensdeszkriptora, mely tartalmazza a szegmens báziscímét és mérethatárát. Ha az ofszet nem haladja meg ezt a határt, és nincs más feltétel, mely megakadályozná a szegmenshez való hozzáférést, az ofszet és a báziscím összeadódik és a lineáris címet képez. Ha a CR0 regiszter 31. bitje törölve van (a CR0 regisztert lásd később), a szegmentálásból adódó lineáris cím fizikai címként lesz felhasználva. Ez a regiszterbit határozza meg hogy használatban van-e lapozás vagy sem. Ha a bit 1-re van állítva, a lineáris cím fizikai címmé való átalakítását a lapozó hardware végzi. Ha több szegmens van használatban, ezek részei az alkalmazásfejlesztő által használt programozási környezetnek. Az alkalmazásfejlesztők számára a lapozás nem érzékelhető, részletek ezzel kapcsolatban később Nemszegmentált vagy "lapos" modell A legegyszerűbb memóriamodell a lapos modell. Bár nincs olyan üzemmódbit vagy vezérlőregiszter amelyik a szegmentáló mechanizmust

31 A memória felépítése kikapcsolná, ugyanez a hatás érhető el minden szegmensnek ugyanarra a lineáris címre való leképezésével. Ennek következtében minden memóriaművelet ugyanarra a memóriatartományra fog vonatkozni. A lapos modellben a szegmensek lefedhetik a fizikai címek egész skáláját vagy csupán azokat a részeket, melyek a fizikai memóriába vannak leképezve. A kisebb címtartomány előnye, hogy egy minimális hardware védelmet nyújt a software hibák ellen. Ha egy logikai cím egy nemlétező címet (melyhez nem tartozik memória) jelöl, akkor egy kivétel keletkezik (kivételeket lásd később) Szegmentált modell A memória felépítésének szegmentált modellje a logikai címek tartományát 16383, egyenként maximum 4 GByte méretű szegmensre osztja, melyek nagysága összesen 2 46 Byte (64 TByte). Ezt a 64 TByte logikai címtartományt a fizikai címtartományra a processzor a későbbiekben bemutatásra kerülő címátalakító mechanizmus segítségével képezi le. A programozóknak ezt a leképezést nem kell figyelembe venniük. A szegmentált modell előnye az, hogy a címtartományokon belüli ofszetek és minden egyes szegmenshez való hozzáférés külön ellenőrizhető. Egy, a szegmentált címtartományt címző pointer két részből áll (lásd a 3.1 ábrát). 1. Szegmensszelektor - a szegmenst azonosító 16 bites mező. 2. Ofszet - a szegmensen belüli 32 bites cím. µ 3.1. ábra: Szegmentált címzés

32 3.2. Regiszterek Általános CPU programozási információk A processzornak tizenhat, a programozók által használható regisztere van. Amint azt a 3.2. ábra is mutatja. Ezek a következőképpen csoportosíthatók: 1. Általános regiszterek. Ezt a nyolc darab 32 bites regisztert a programozó szabadon használhatja. 2. Szegmensregiszterek. Ezek a regiszterek a különböző memóriahozzáférési módokhoz hozzárendelt szegmensszelektorokat tartalmazzák. A kód- és veremterülethez való hozzáférés például külön szegmensregiszterek segítségével történik. Ez a hat regiszter a pillanatnyilag hozzáférhető memóriaszegmenseket határozza meg. 3. Állapot- és vezérlőregiszterek. Ezek a regiszterek a processzor állapotáról adnak tájékoztatást és lehetővé teszik annak megváltoztatását Általános regiszterek Az általános regiszterek az EAX, EBX, ECX, EDX, EBP, ESP, ESI, EDI 32 bites regiszterek. Ezek a regiszterek a programozó által szabadon választott értékeket tartalmazhatnak (logikai, aritmetikai műveletek operandusait, eredményét stb). Ezenkívül tartalmazhatják még a címszámításokhoz szükséges operandusokat is (kivéve az ESP regisztert, mely nem használható indexoperandusként). A felsorolt regiszterek nevei a 8086 processzor AX, BX, CX, DX, BP, SP, SI, DI általános regisztereinek neveiből származnak. Ahogy a 3.2. ábra is mutatja, ezekkel a nevekkel lehet hivatkozni a 32 bites regiszterek alsó 16 bitjére. Az AX, BX, CX és DX 16 bites regiszterek mindkét Byte-jának saját neve is van. A Byte-regiszterek elnevezése a következő: AH, BH,

33 A memória felépítése CH és DH (felső Byte-ok) illetve AL, BL, CL és DL (alsó Byte-ok). µ 3.2. ábra: Alkalmazások számára elérhető regiszterkészlet A címszámítások és legtöbb aritmetikai illetve logikai művelet eredményei számára minden általános célú regiszter rendelkezésre áll, egyes utasítások azonban operandusaik tárolására csak bizonyos regisztereket használnak fel. Például a füzérutasítások operandusként az ECX (ciklusszámláló), ESI (forrásindex) és EDI (célindex) regisztereket használják. Ezen műveletekhez specifikus regisztereket hozzárendelve az utasításkészlet tömörebben kódolható. A specifikus regisztereket használó utasítások a következők: duplapontosságú szorzás és osztás-, I/O-, füzér-, transzlatáló, ciklus-, különböző eltoló- és forgató-, valamint veremműveletek Szegmensregiszterek A szegmentáció a rendszertervezők számára rugalmasságot nyújt a különböző memóriafelépítési modellek közti választásban. A szegmensregiszterek a 16 bites szegmensszelektorokat tartalmazzák, melyek egy, a memóriában elhelyezkedő táblázatot indexelnek. Ez a táblázat tartalmazza a szegmensek báziscímét, valamint a memóriahozzáférést illető információkat. Nem szegmentált modell minden egyes szegmens ugyanarra a fizikai memóriatartományra való leképezésével valósítható meg. A memóriában egy adott pillanatban hat szegmens áll rendelkezésre, ezeknek szelektorait a CS, DS, SS, ES, FS és GS szegmensregiszterek tartalmazzák. Minden regiszterhez egy külön

34 Általános CPU programozási információk memóriaelérési mód tartozik (kód, adat, vagy verem); mindegyik regiszter egy szegmenst jelöl, a program által használtak közül (lásd a 3.3 ábrát). Más szegmensek is használhatók, ezek szegmensszelektorát be kell tölteni a megfelelő szegmensregiszterbe. Kódszegmens a neve annak a szegmensnek, mely a végrehajtandó utasításokat tartalmazza. Ennek szegmensszelektorát a CS regiszter tartalmazza. A processzor a kódszegmensben levő utasításokat olvassa be, a szegmensen belüli ofszetként az EIP regiszter tartalmát felhasználva. A CS regiszter feltöltése a megszakítások, kivételek és a vezérlést szegmensek közt átadó utasítások (például CALL, RET vagy JMP) végrehajtása eredményeképpen történik (a számítógép autómatikusan végzi). Egy eljárás meghívása előtt szükséges egy memóriarész kijelölése a verem számára. A verem tartalmazza a visszatérési címet, a hívórutin által átadott paramétereket, valamint az eljárás által igényelt ideiglenes változókat. A veremszegmens azonosítására minden veremművelet az SS regisztert használja, mely a CS regiszterrel ellentétben külső módon feltölthető; így az alkalmazás saját maga építhet fel vermeket. A DS, ES, FS és GS regiszterek lehetővé teszik, hogy egyszerre négy adatszegmens álljon rendelkezésre. A négy adatszegmens biztosítja a különböző típusú adatstruktúrákhoz való hatékony és biztonságos hozzáférést. Például külön-külön adatszegmens hozható létre az aktuális modul adatstruktúrái, a magasabb szintű modulból exportált adatok, egy dinamikusan létrehozott adatstruktúra és a más programokkal megosztott adatok számára. Ha egy programhiba következtében a program futása összezavarodik, a szegmentáló mechanizmus a hiba által okozott kárt a program által foglalt szegmensekre korlátozza. µ 3.3. ábra: Szegmentált memória Az adatok szerkezetétől függően (vagyis hogyan vannak az adatok szegmensekre osztva) a program több szegmenshez is igényelhet hozzáférést. A további szegmensek elérése érdekében a DS, ES, FS és GS regiszterek az alkalmazói program futása

35 A memória felépítése közben is feltölthetők. Az egyetlen teendő a megfelelő szegmensregiszter feltöltése, még mielőtt az illető szegmens adataihoz való hozzáférés megtörténne. Minden egyes szegmens báziscíme tárolva van. Egy szegmensen belüli adat megcímzéséhez a 32 bites ofszetet hozzá kell adni a szegmens báziscíméhez. A szegmens kiválasztása (a szegmensszelektornak a szegmensregiszterbe való betöltése által) után az utasításnak csak az ofszetet kell megadnia. Az adatszegmensen belüli operandus címzése egy regiszterben vagy maga az utasítás testében megadott ofszet segítségével történik. Azt, hogy melyik szegmensregiszter használandó akkor, amikor csak egy ofszet van megadva, egyszerű szabályok határozzák meg Utasításmutató Az utasításmutató (EIP) regiszter az aktuális kódszegmensben levő következő végrehajtandó utasítás ofszetjét tartalmazza. Az utasításmutató nem áll közvetlenül a programozó rendelkezésére, kezelését a vezérlésátadó utasítások (ugrások, hívások, stb.), megszakítások és kivételek végzik. Az EIP regiszter egyik utasítás kezdőcíméről a következőére ugrik. Az utasítások előbetöltése miatt az EIP az utasításokat a processzorba betöltő busz aktivitásáról csak egy hozzávetőleges tájékoztatást ad. Az utasítások előbetöltésének részletes leírása egy későbbi fejezetben található A verem felépítése és használata A veremműveleteket három regiszter támogatja: 1. Veremszegmens (SS) regiszter. A verem a memóriában helyezkedik el. Egy rendszerben a vermek számát a használható szegmensek

36 Általános CPU programozási információk maximális száma korlátozza. A verem nagysága maximálisan 4 GByte lehet, vagyis egyenlő egy szegmens maximális méretével. Egyszerre csak egy verem állhat rendelkezésre. Az, amelynek szelektorát az SS regiszter tartalmazza. Ez az aktuális verem. A processzor minden veremművelethez automatikusan az SS regisztert használja. 2. Veremmutató (ESP) regiszter. Az ESP regiszter a verem tetejét (TOS - Top-Of-Stack) az aktuális veremszegmensen belüli aktuális ofszetet tartalmazza. A veremmutatót a PUSH és POP utasítások, szubrutinhívások és visszatérések, kivételek, valamint megszakítások használják. Egy adat veremre való ráhelyezésekor (3.4. ábra) a processzor csökkenti az ESP regisztert, majd beírja az adatot az új TOS-ba. Amikor egy adatot kivesz a veremből, a processzor kimásolja azt a TOS-ból, majd növeli az ESP regisztert. Másképpen fogalmazva a memóriában a verem lefele nő, a kisebb címek irányába. 3. Veremkeret-bázismutató (EBP) regiszter. Az EBP regiszter jellemző felhasználási módja a vermen keresztül átadott paraméterekhez való hozzáférés. Amikor a vezérlés átadódik egy szubrutinra, a verem a visszatérési címet és az illető szubrutinnak átadott adatstruktúrákat tartalmazza. A szubrutin megnöveli a vermet, amennyiben ideiglenes lokális változói számára helyre van szüksége. Ennek eredményeképpen az ideiglenes változók veremből való ki- és behelyezése által a veremmutató nő illetve csökken. Ha a veremmutató értéke azelőtt volt a bázismutatóba másolva, mielőtt valami is a verembe került volna, akkor a bázismutató felhasználható a rögzített ofszetű adatstruktúrák elérésére. Ha ez nem így történt, akkor egy adatstruktúrát azonosító ofszet az időszakos változók által elfoglalt hely függvényében változni fog. Az EBP regiszter által történő memóriacímzés az aktuális veremszegmenst (SS regiszter) használja. Mivel a veremszegmenst nem kell külön megadni, az utasításkód tömörebb. Az EBP regiszter más szegmensek címzésére is használható, de ekkor a szegmenst külön meg kell adni (MOV AX,GS:[EBP]). Az olyan utasítások, mint az ENTER és

37 A memória felépítése LEAVE, a változókhoz való könnyebb hozzáférés érdekében az EBP regisztert automatikusan beállítják Flagregiszter Az feltételkódokat (azaz átvitel, előjel, túlcsordulás) és állapotbiteket, (gyüjtőnevükön: flageket), az EFLAGS nevű 32 bites regiszter tartalmazza. A flagek elrendezését a regiszteren belül a 3.5. ábra mutatja be. Az flagek a Pentium processzor állapotáról adnak tájékoztatást, ezenkívül egyes műveletek végrehajtását irányítják. Az állapot- és vezérlő flagbiteken kívül a flagregiszter még rendszerflageket is tartalmaz. µ 3.4. ábra: A verem működése Állapotbitek Az EFLAGS regiszter állapotbitjei az olyan aritmetikai utasítások eredményének jellegéről adnak számot, mint az ADD, SUB, MUL vagy DIV. A MOV utasítás nincs hatással ezekre az állapotbitekre. A feltételes ugrások és szubrutinhívások lehetővé teszik, hogy a program érzékelni tudja az flagek állapotát és ezektől függően cselekedjen. Amikor egy ciklusszámláló értéke a csökkentések során elérte a nullát, a ZF bit állapota 1 lesz, e változás miatt a ciklus elejére való ugrást megvalósító feltételes ugróutasítás nem hajtódik végre, és a ciklus megszakad. Az állapotbiteket a 3.6. ábra mutatja be külön. µ

38 Általános CPU programozási információk 3.5. ábra: Az EFLAGS regiszter

39 Regiszterek Név Szándék Kialakulási feltétel OF Túlcsordulás Az eredmény meghaladta a pozitív vagy negatív határt SF Előjel Az eredmény negatív ZF Zero Az eredmény nulla AF Félátvitel Átvitel történt a 3. biten (BCD-nél használatos) PF Paritás Az eredmény alsó Byte-jában páros számú 1 bitek vannak CF Átvitel A legfelső bitről átvitel történt 3.6. ábra: Állapotbitek Az EFLAGS regiszter DF vezérlőbitje a füzérutasítások irányát vezérli. (10. bit) A DF bit beállítása a füzérutasítások csökkenő memóriatartomány felé történő végrehajtását eredményezi, vagyis a füzérek feldolgozása a magasabb címek felől az alacsonyabb címek irányába tart. A DF bit törlése fordított irányú feldolgozást eredményez.

40 3.2.6 Rendszer-regiszterek Regiszterek A rendszerprogramozóknak szánt regisztereket a következő kategóriákba sorolhatjuk: - EFLAGS regiszter - memóriaszervező regiszterek (memory management ) - vezérlő regiszterek (control) - nyomkövető regiszterek (debug) A rendszer-regiszterek vezérlik a felhasználói programok végrehajtó környezetét. Az operációs rendszerek többsége a felhasználói programok számára korlátozza ezen lehetőségeket. (Mindamellett szerkeszthetünk olyan operációs rendszereket is, amelyekben minden program a legprivilegizáltabb szinten fut, ez esetben a felhasználói programoknak megengedett e lehetőségekbe való beavatkozás.) Rendszer-flagek Az EFLAGS regiszter rendszer-flagjei vezérlik az I/O műveleteket, a maszkolható megszakításokat, a nyomkövetést, a taszkcserét, illetve a virtuális 8086-os üzemmódot. Egy felhasználói programnak ezeket a flageket nem kell figyelembe vennie, és tilos számára az állapotuk megváltoztatását megkísérelni. Egyes operációs rendszerekben egy rendszerflag állapotának megváltoztatását célzó kísérlet kivételt idéz elő. A fent említett flageket a 3.5. ábra szemlélteti. A 0-val illetve 1-el jelölt bitpozíciók az Intel által fenntartottak. Használatuk nem ajánlott. Mindíg a megelőző kiolvasáskor kapott értékekre állítandók. ID - (Identification Flag) azonosító flag, (21. bit) Ha egy program képes arra, hogy az ID flaget magasra, illetve

41 Regiszterek alacsonyra állítsa, azt jelenti, hogy a processzor támogatja a CPUID utasítást. Lásd cpu azonosítása. VIP - (Virtual Interrupt Pending Flag) virtuális megszakításfelfüggesztés bit (20. bit) Ez a flag a VIF flaggel együtt lehetővé teszi minden egyes, multitaszkos környezetben futó felhasználói program számára, hogy a rendszer IF flagjének egy virtuális verzióját használhassa. Részletes útmutató ezen flagek virtuális 8086-os, illetve védett üzemmódú használatáról a függelékben található. VIF - (Virtual Interrupt Flag) virtuális megszakítás bit (19. bit) A VIF flag egy virtuális képe az IF (Interrupt Flag) megszakítás flagnek, a VIP-el együtt használatos. AC - (Alignment Check Mode) illeszkedés-ellenőrzés (18. bit) Az AC flag és a CR0 regiszterbeli AM bit magasra állításával (SET) lehetővé válik a memóriahivatkozások illeszkedésének ellenőrzése. Valahányszor egy illeszkedési hibás operandusra kerül hivatkozás, mint például egy páratlan címen elhelyezkedő 16 bites szóra, vagy egy néggyel nem osztható címen levő doublewordra, egy illeszkedési kivétel jelentkezik. Az illeszkedési kivételek csak felhasználói módban (usermode) (3. privilégium szinten) generálódnak. Azok a memóriahivatkozások, amelyek alapértelmezése a 0. privilégium szint, mint például a szegmensdeszkriptorok betöltése, nem okozzák a fenntemlített kivételt még abban az esetben sem, ha ezt egy felhasználói módbeli memóriahivatkozás okozná. Az illeszkedési kivételt fel lehet használni az adatok illeszkedésének ellenőrzésére. Ez akkor lehet hasznos, ha egy olyan processzorral cserélünk adatokat, amely megköveteli minden adat helyes illeszkedését, mint például az i860-as. Az illeszkedési kivételt az értelmezőprogramok (interpreters) arra is felhasználhatják, hogy bizonyos mutatókat (pointereket) speciálisan megjelöljenek hibás illesztéssel.

42 Regiszterek Ezáltal elkerülhetők a mutatók egyenkénti ellenőrzésének költségei, és így az alkalmazás pillanatában csak a speciális mutatókat kezelik. VM - (Virtual-8086 Mode) virtuális 8086-os üzemmódjelző bit (17. bit) Magasra állítva a VM flaget a processzort virtuális 8086-os üzemmódba hozzuk, amely nem más, mint a 8086-os processzor programozási környezetének emulálása. RF - (Resume Flag) folytatás jelző bit (16. bit) Az RF bit ideiglenesen letiltja a nyomkövetési hibákat (debug faults), annak érdekében, hogy egy debug fault után újra folytatni lehessen egy utasítást, anélkül, hogy közvetlenül egy újabb nyomkövetési hibát okozna. A hibakereső (debugger) az IRETD utasítással állítja magasra ezt a bitet, a megszakított programba való visszatérés pillanatában. A POPF, POPFD, vagy IRET utasítások nem befolyásolják az RF flaget. NT - (Nested Task) egymásba ágyazott taszkokat jelző bit (14. bit) A processzor beállítja, illetve teszteli az NT flaget, hogy vezérelje a megszakított és meghívott taszkok egymásba láncolását. Az NT flag befolyásolja az IRET utasítás végrehajtását, ugyanakkor a POPF, POPFD, és IRET utasítások befolyásolják az NT flaget. Ezen flag értékének helytelen megváltoztatása váratlan kivételeket generálhat a felhasználói programokban. IOPL - (I/O Privilege Level) I/O privilegizált szintet jelző bitek (12. és 13. bit) Az I/O privilegizálási szintet a védelmi mechanizmus az I/O címtartományhoz való hozzáférés ellenőrzésére használja. Az aktuálisan végrehajtás alatt álló szegmens privilégiumszintje (CPL) és az IOPL értéke határozzák meg azt, hogy a POPF, POPFD, és IRET utasítások módosíthatják-e ezen mező értékét. További információk a második kötetben.

43 Regiszterek IF - (Interrupt-Enable Flag) megszakítás-engedélyezést jelző bit (9. bit) Ha IF magas logikai szintre van állítva, a processzor válaszol a maszkolható megszakítás kérésekre (INTR megszakítások). Alacsonyra állítva ezt a bitet letiltjuk ezeket a megszakításokat. Az IF flag nincs hatással sem a kivételekre, sem a nemmaszkolható megszakításokra (NMI megszakítások). A CPL illetve IOPL határozzák meg, hogy a CLI, STI, POPF, és IRET utasítások változtathatnak-e ezen a biten. TF - (Trap Flag) csapda bit (8. bit) A TF flag magasra állítása a processzort - a hibakeresés érdekében - lépésenkénti végrehajtás üzemmódba helyezi. Ebben az üzemmódban a processzor minden egyes utasítást követően egy hibakereső kivételt (debug excepcion) generál, ezáltal lehetővé téve egy program ellenőrzését, miközben az egyenként hajtja végre az utasításokat. A lépésenkénti végrehajtás csak egy a processzor által kínált számos hibakereső lehetőség közül. Ha egy felhasználói program a POPF, POPFD, vagy IRET utasítások egyikével magasra állítja a TF flaget, egy hibakereső kivétel (debug exception) generálódik Vezérlőregiszterek A 3.7. ábra a CR0, CR1, CR2, CR3 ÉS CR4 vezérlőregiszterek formátumát mutatja be. Az operációs rendszerek túlnyomó része meggátolja a felhasználói programokat abban, hogy a vezérlőregisztereket feltölthessék (habár ez egy védelem nélküli rendszerben megengedett). A felhasználói programok olvashatják ezeket a regisztereket, példának kedvéért a CR0-t olvasva meghatározhatják, hogy a numerikus koprocesszor jelen van-e. A MOV utasítás különböző formái lehetővé teszik, hogy ezeket a regisztereket feltölthessük vagy elmenthessük az általános regiszterekből, illetve regiszterekbe. Például: MOV EAX, CR0

44 Regiszterek MOV CR3, EBX A CR0 regiszter rendszervezérlő biteket tartalmaz, amelyek üzemmódokat vezérelnek, vagy olyan állapotokat jeleznek, amelyek inkább általánosan a processzorra vonatkoznak, mintsem egyedi taszkok végrehajtására. Egy programnak tilos a rezervált bitek valamelyikének megváltoztatását megkísérelni. A rezervált biteket mindig az előző kiolvasásukkor kapott értékekre tanácsos állítani. PG - (Paging) lapozás bit ( CR0 31. bitje) tiltott. Ha ez a bit magas, a lapozás megengedett, ha alacsony, a lapozás Ha a lapozás alatt kivétel generálódik, a CR2-es regiszterbe kerül az a 32 bites lineáris cím, amely a kivételt előidézte. A lapozás alatt létrejött kivételek (page faults) kezelését lásd később.

45 Regiszterek µ 3.7. ábra: A vezérlő regiszterek felépítése Ha lapozást használunk, a CR3-as regiszter tartalmazza a lapcímtár (a felső szintű laptáblázat) címének 20 legjelentékenyebb bitjét. A CR3-as regiszter a lapcímtár báziscím-regisztere (PDBR Page Directory Base Register) néven is ismert. Megjegyzendő, hogy a lapcímtárnak is lapkeret illeszkedésűnek kell lennie, ezért a regiszter alsó 12-bitje nem használható címbitként. Az 386-os processzorral ellentétben, a 486-os illetve a Pentium processzorok ezek közül két bitnek jelentőséget tulajdonítanak. Ezek: PCD - (Page-Level Cache Disable) lapszinti cache-letiltás bit (CR3 4. bitje) Ha a lapozás megengedett, a lapozást nem használó buszciklusok mint például a megszakítás elismerő ciklusok idején ennek a bitnek az állapota megjelenik a processzor PCD vonalán. Ha a lapozás nem engedélyezett, ez az információ minden egyes buszciklus idején megjelenik. A PCD vonalat (pin-t) egy külső cache-be történő pufferelés (caching) ciklusonkénti vezérlésére használják. PWT - (Page-Level Writes Transparent) lapszinti átlátszó átírás bit (CR3 3. bitje) Ha a lapozás megengedett, a lapozást nem használó buszciklusok mint például a megszakítás elismerő ciklusok idején ennek a bitnek az állapota megjelenik a processzor PWT vonalán. Ha a lapozás nem engedélyezett, ez az információ minden egyes buszciklus idején megjelenik. A PWT vonalat (pin-t) egy külső cachen történő átírás (writethrough) ciklusonkénti vezérlésére használják. CD - (Cache Disable) cache-letiltás bit (CR0 30. bitje)

46 Regiszterek Ha ez a bit 0-ra van állítva, engedélyezi a cache feltöltő mechanizmust, ha 1-re, letiltja azt. Ha ez a bit 1-es, a cache-vesztések (cache misses) nem okoznak cache feltöltést. Megjegyzendő, hogy a cache-találatok nincsenek letiltva; ahhoz, hogy teljesen kiiktassuk a cache-t, először invalidálni kell. A cache-elésre vonatkozó információkat lásd később. NW - (Not Write-through) átírástiltás bit (CR0 29. bitje) Ha ez a bit 0-ra van állítva, engedélyezi a cache átírást (writethrough) és a cache-invalidáló ciklusokat, ha 1-re van állítva, letiltja a cache-invalidáló ciklusokat és azokat az átírásokat, amelyek cachetalálatosak. A cache-használatra vonatkozó információkért lásd később. AM - (Alignment Mask) illeszkedési maszk (CR0 18. bitje) Ha ez a bit 1-es, az illeszkedés ellenőrzés engedélyezett, ha 0, letiltott. Az illeszkedés ellenőrzésre csak abban az esetben kerül sor, ha az AM bit és az AC flag is 1-es, és a CPL értéke 3 (felhasználói mód). WP - (Write Protect) írásvédelem bit (CR0 16. bitje) Ha 1-re van állítva, ez a bit levédi a felhasználói- szintű lapokat a felügyelőprogram-szinti írás ellen. Ha ez a bit értéke 0, a csak olvasható, felhasználói-szintű lapokra a felügyelőprogram írhat is. Ez a lehetőség hasznosnak bizonyul, ha az ún. "írás közbeni másolás" megoldást (copy-on-write) akarjuk megvalósítani új, származtatott taszkok (processes) létrehozására (forking), amely egyes operációs rendszerekben (például az UNIXban) használatos. NE - (Numeric Error) numerikus hiba bit (CR0 5. bitje) Ha ez a bit magasra van állítva, a lebegőpontos numerikus hibák jelentésének standard mechanizmusa engedélyezett. Ha NE=0 és az IGNE# bemenet aktív, a numerikus hibákat a processzor nem veszi

47 Regiszterek figyelembe. Abban az esetben, ha NE=0 és az IGNE# bemenet inaktív, a numerikus hibák arra késztetik a processzort, hogy megálljon, és egy megszakításra várjon. A megszakítás a FERR# vonal segítségével generálódik, amely a megszakítás kontroller egyik bemenetét hajtja meg (a FERR# vonal emulálja az 287-es és 387-es matematikai koprocesszorok ERROR# vonalát). Az NE bitet, az IGNE# és a FERR# vonalakat külső logikával PC-típusú hibajelentések létrehozására használják. ET - (Extension Type) koprocesszorral bővítés bit (CR0 4. bitje) Ez a bit azt mutatja, hogy a processzor támogatja az 387 DX matematikai koprocesszor utasításkészletét (Pentium processzoroknál ez a bit fenntartott). TS - (Task Switched) taszkkapcsolás bit (CR0 3. bitje) A processzor minden egyes taszkkapsolás alkalmával beállítja a TS bitet, illetve teszteli azt, amikor a lebegőpontos numerikus utasításokat értelmezi. Ezzel a bittel lehetővé válik a numerikus kontextus mentésének illetve helyreállításának késleltetése mindaddig, amíg a numerikus adat ténylegesen felhasználásra nem kerül. A CLTS utasítás 0- ra állítja (RESET) ezt a bitet. EM - (Emulation) numerikus koprocesszor emulálása (CR0 2. bitje) Mikor az EM bit magas logikai szintre van állítva (EM=1), egy numerikus utasítás végrehajtása "nem létező koprocesszor" kivételt generál. Ha a processzornak nincs lebegőpontos egysége, az EM bitet 1-re kell állítani. MP - (Monitor coprocessor) koprocesszor monitorozó bit. Az 286-os és 386 DX processzorokban az MP bit a WAIT - koprocesszorral való szinkronizálásra használatos- utasítás működését vezérli. Abban az esetben, ha 286-os vagy 386 DX processzorok programjait futtatjuk 486-os vagy Pentium processzorok FPU-ján, ez a bit

48 Regiszterek kötelezően 1-re állítandó. Az MP bitet resetelni kell a 486 SX processzor estében. PE - (Protection Enable) védett üzemmód engedélyező bit (CR0 0. bitje) A PE bit magas állapota engedélyezi a szegmens-szintű védelmet. A védelemről további információk a védett üzemmódnál A CR4-es regiszterben bizonyos architektúrális kiterjesztéseket engedélyező bitek találhatók. Ez a regiszter a Pentium proceszszorban jelenik meg először VME - (Virtual-8086 Mode Extensions) virtuális 8086-os üzemmód kiterjesztések bit (CR4 0. bitje) Ez a bit magasra állítva támogatja egy virtuális megszakítás engedélyezést jelző flag virtuális 8086-os üzemmódbeli alkalmazását. Ezen "adottság" javítani képes a virtuális 8086-os üzemmódban futó alkalmazások teljesítményén, mégpedig úgy, hogy megszünteti a költségeit egy virtuális 8086-os monitorba való fault kivétellel történő- "kiugratásnak", bizonyos utasítások emulálásakor. Lásd a függelékben. PVI - (Protected-Mode Virtual Interrupts) védett üzemmódú virtuális megszakítások (CR4 1. bitje) Ez a bit magasra állítva támogatja egy virtuális megszakítás engedélyezést jelző flag védett üzemmódbeli alkalmazását. Ezen tulajdonság lehetővé teszi a 0. privilegizálási szintre tervezett programok számára, hogy a 3-as privilégiumszinten fussanak. További információk a függelékben. TSD - (Time Stamp Disable) time stamp-számláló olvasás tiltása (CR4 2. bitje) Ezt a bitet 1-re állítva az RDTSC utasítás (Read from Time Stamp

49 Regiszterek Counter) privilegizált utasítássá válik. Részletek az RDTSC utasításról a 2. kötetben. DE - (Debugging Extensions) hibakeresés kiterjesztések bitje (CR4 3. bitje) Ennek a bitnek a magasra állítása engedélyezi az I/O töréspontokat. Lásd később. PSE - (Page Size Extensions) lapméret kiterjesztések bitje (CR4 4. bitje) Ennek a bitnek a magasra állítása engedélyezi a 4 MByte-os lapméretet. További információk erről a lehetőségről a függelékben találhatók. MCE - (Machine Check Enable) géptípus ellenőrzés engedélyezését jelző bit (CR4 6. bitje) Magasra állítva ezt a bitet, engedélyezzük a géptípus ellenőrző kivételt Nyomkövető regiszterek A nyomkövető regiszterek fejlett hibakereső képességgel látják el a processzort, beleértve az adat töréspontokat és annak lehetőségét, hogy a kódszegmens módosítása nélkül az utasítások közé töréspontokat (breakpoints) szúrhassunk (hasznos lehet a ROM-ra alapozott software-ek nyomkövetése esetén). Csak a legmagasabb privilégiumszinten futó programok képesek ezekhez a regiszterekhez hozzáférni. A későbbiekben egy teljeskörű leírást kaphatunk ezen regiszterek felépítéséről és használatáról. A nyomkövető regisztereket a 3.8. ábra illusztrálja. µ

50 Regiszterek 3.8. ábra: Nyomkövető regiszterek

51 CPU üzemmódok 3.3. CPU üzemmódok Valós üzemmód ("valós mód") Ez az üzemmód az Intel 8086 processzor programozási környezetét valósítja meg, biztosítva egy pár kiterjesztést (ilyen például az ebből a módból való kilépés lehetősége). A reszet általi inicializálás a processzort a valós üzemmódba állítja, melyből egyetlen utasítás segítségével átkapcsolható a védett módba Védett üzemmód Ez a processzor natív állapota. Ebben az üzemmódban az összes utasítás és architekturális jellemző elérhető, biztosítva a legnagyobb teljesítményt és képességeket. Minden új alkalmazás és operációs rendszer számára ez az ajánlott üzemmód. A védett mód által nyújtott lehetőségek közé tartozik 8086-ra írt "valós módú" software multitaszking, védett módú környezetben történő közvetlen végrehajtása. Ennek a lehetőségnek a neve 8086-os virtuális mód (vagy "V86 mód"). A 8086-os virtuális mód valójában nem a processzornak egy üzemmódja, hanem egy attribútum, amelyet védett módban, megfelelő software segítségével, bármely taszk számára beállítható Rendszermenedzselő üzemmód A Pentium mikroprocesszor a rendszermenedzselő üzemmmódot (SMM - System Management Mode) is támogatja. Minden új

52 CPU üzemmódok mikroprocesszorra (kezdve az 386 SL-től) jellemző az SMM, mely egy operációs rendszer- és alkalmazásfüggetlen, ezek számára transzparens mechanizmus. Ezen mechanizmus segítségével implementálhatók a rendszerteljesítményt menedzselő és OEM megkülönböztető funkciók. Az SMM-be való belépés egy külső megszakításvonal (az SMI#) aktiválásával történik, mely a CPU-t egy különálló címtartományra kapcsolja át, lementve a CPU teljes állapotát. Ennek következtében az SMM-specifikus kód végrehajtása transzparens. Az SMM-ból való visszatéréskor az előző műveletek fordítottja hajtódik végre.

Máté: Assembly programozás

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/

Részletesebben

A 32 bites x86-os architektúra regiszterei

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

Architektúra, megszakítási rendszerek

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Virtuális memóriakezelés Védelem. Memória védelem. Intel x68. Izsó Tamás október 18. Izsó Tamás Memória védelem/ 1

Virtuális memóriakezelés Védelem. Memória védelem. Intel x68. Izsó Tamás október 18. Izsó Tamás Memória védelem/ 1 Memória védelem Intel x68 Izsó Tamás 213. október 18. Izsó Tamás Memória védelem/ 1 Section 1 Virtuális memóriakezelés Izsó Tamás Memória védelem/ 2 Operációs rendszer hardver szintű támogatása Hardver

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

Aritmetikai utasítások I.

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

Részletesebben

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

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

Részletesebben

Mikrorendszerek tervezése

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

Részletesebben

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

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

Részletesebben

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését

Részletesebben

Assembly. Iványi Péter

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

Részletesebben

Az interrupt Benesóczky Zoltán 2004

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

Részletesebben

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz Archi2 Gyak (Processzorok Utasításszintű Kezelése) 2014 ősz Ajánlott irodalom Agárdi Gábor: Gyakorlati Assembly, LSI Oktatóközpont, 1996, ISBN 963 577 117 7 Agárdi G.: Gyakorlati Assembly haladóknak, LSI

Részletesebben

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

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

Részletesebben

Virtuális memóriakezelés Védelem. Memória védelem. Intel X86. Izsó Tamás október 1. Izsó Tamás Memória védelem/ 1

Virtuális memóriakezelés Védelem. Memória védelem. Intel X86. Izsó Tamás október 1. Izsó Tamás Memória védelem/ 1 Memória védelem Intel X86 Izsó Tamás 2015. október 1. Izsó Tamás Memória védelem/ 1 Section 1 Virtuális memóriakezelés Izsó Tamás Memória védelem/ 2 Operációs rendszer hardver szintű támogatása Hardver

Részletesebben

Operációs rendszerek III.

Operációs rendszerek III. A WINDOWS NT memóriakezelése Az NT memóriakezelése Memóriakezelő feladatai: Logikai-fizikai címtranszformáció: A folyamatok virtuális címterének címeit megfelelteti fizikai címeknek. A virtuális memóriakezelés

Részletesebben

SzA19. Az elágazások vizsgálata

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

Részletesebben

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

2. Számítógépek működési elve. Bevezetés az informatikába. Vezérlés elve. Külső programvezérlés... Memória. Belső programvezérlés . Számítógépek működési elve Bevezetés az informatikába. előadás Dudásné Nagy Marianna Az általánosan használt számítógépek a belső programvezérlés elvén működnek Külső programvezérlés... Vezérlés elve

Részletesebben

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. Balaton Marcell Balázs Assembly jegyzet Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született. 1. Regiszterek Regiszterek fajtái a. Szegmensregiszterek cs (code):

Részletesebben

Processzorok Utasításszintű Kezelése tavasz

Processzorok Utasításszintű Kezelése tavasz Processzorok Utasításszintű Kezelése 2014 tavasz Ajánlott irodalom Agárdi Gábor: Gyakorlati Assembly, LSI Oktatóközpont, 1996, ISBN 963 577 117 7 Agárdi G.: Gyakorlati Assembly haladóknak, LSI oktatóközpont,

Részletesebben

Intel x86 utasításkészlet

Intel x86 utasításkészlet Intel x86 utasításkészlet Kód visszafejtés. Izsó Tamás 2013. október 31. Izsó Tamás Intel x86 utasításkészlet/ 1 Section 1 Intel mikroprocesszor Izsó Tamás Intel x86 utasításkészlet/ 2 Intel mikroprocesszor

Részletesebben

Assembly utasítások listája

Assembly utasítások listája Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek

Részletesebben

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

Máté: Számítógép architektúrák 2010.12.01. Máté: Számítógép architektúrák... A feltételes ugró utasítások eldugaszolják a csővezetéket Feltételes végrehajtás (5.5 5. ábra): Feltételes végrehajtás Predikáció ió C pr. rész Általános assembly Feltételes

Részletesebben

A Számítógépek felépítése, mőködési módjai

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

Részletesebben

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek

Részletesebben

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

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

Részletesebben

Dr. Illés Zoltán zoltan.illes@elte.hu

Dr. Illés Zoltán zoltan.illes@elte.hu Dr. Illés Zoltán zoltan.illes@elte.hu Operációs rendszerek kialakulása Op. Rendszer fogalmak, struktúrák Fájlok, könyvtárak, fájlrendszerek Folyamatok Folyamatok kommunikációja Kritikus szekciók, szemaforok.

Részletesebben

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

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

Részletesebben

Központi vezérlőegység

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

Részletesebben

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

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

Részletesebben

Assembly programozás levelező tagozat

Assembly programozás levelező tagozat Assembly programozás levelező tagozat Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter készlete, társzervezése,

Részletesebben

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

Számítógép architektúrák Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált (magas

Részletesebben

Vezérlésfolyam gráf és X86 utasításkészlet

Vezérlésfolyam gráf és X86 utasításkészlet Vezérlésfolyam gráf és X86 utasításkészlet Kód visszafejtés. Izsó Tamás 2016. november 3. Izsó Tamás Vezérlésfolyam gráf és X86 utasításkészlet / 1 Intervallum algoritmus Procedure Intervals(G={N, E, h})

Részletesebben

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna Processzusok 1 Uniprogramozás Program A futás várakozás futás várakozás Idő A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna 2 Multiprogramozás Program A futás vár futás

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

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

Számítógép architektúrák Számítógép architektúrák Számítógépek felépítése Digitális adatábrázolás Digitális logikai szint Mikroarchitektúra szint Gépi utasítás szint Operációs rendszer szint Assembly nyelvi szint Probléma orientált

Részletesebben

Bevezetés az informatikába

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

Részletesebben

1. ábra: Perifériára való írás idődiagramja

1. ábra: Perifériára való írás idődiagramja BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás:2011. 09. 29. 1 2 4 5 MMU!= fizikai memóriaillesztő áramkör. Az utóbbinak a feladata a memória modulok elektromos alacsonyszintű vezérlése, ez sokáig a CPU-n kívül a chipset északi hídban

Részletesebben

Utolsó módosítás:

Utolsó módosítás: Utolsó módosítás:2010. 09. 15. 1 2 Kicsit konkrétabban: az utasítás hatására a belső regiszterek valamelyikének értékét módosítja, felhasználva regiszter értékeket és/vagy kívülről betöltött adatot. A

Részletesebben

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

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

Részletesebben

Processzor (CPU - Central Processing Unit)

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

Részletesebben

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

Számítógép Architektúrák Számítógép Architektúrák Utasításkészlet architektúrák 2015. április 11. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tsz. ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

Assembly Utasítások, programok. Iványi Péter

Assembly Utasítások, programok. Iványi Péter Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk

Részletesebben

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

Számítógép architektúrák Számítógép architektúrák 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

Részletesebben

Intel x86 utasításkészlet + disassembler működése

Intel x86 utasításkészlet + disassembler működése Intel x86 utasításkészlet + disassembler működése Kód visszafejtés. Izsó Tamás 2016. november 10. Izsó Tamás Intel x86 utasításkészlet + disassembler működése / 1 Section 1 Intel X86 utasításkészlet Izsó

Részletesebben

Assembly Címzési módok. Iványi Péter

Assembly Címzési módok. Iványi Péter Assembly Címzési módok Iványi Péter Gépi kód Gépi kód = amit a CPU megért 1-13 byte hosszúak lehetnek az utasítások Kb. 20 000 variációja van a gépi kódú utasításoknak Számítógép architektúrától függ Feszültség

Részletesebben

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások Mechatronika és mikroszámítógépek 2018/2019 I. félév Külső megszakítások Megszakítás, Interrupt A megszakítás egy olyan esemény, vagy feltétel teljesülése, amely felfüggeszti a program futását, a vezérlést

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK 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

Részletesebben

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

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

Részletesebben

Architektúra, címzési módok

Architektúra, címzési módok Architektúra, címzési módok Mirıl lesz szó? Címzés fogalma, címzési módok Virtuális tárkezelés Koschek Vilmos Példa: Intel vkoschek@vonalkodhu Fogalom A címzési mód az az út (algoritmus), ahogyan az operandus

Részletesebben

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

Bevezetés a számítástechnikába Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás

Részletesebben

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

Máté: Számítógép architektúrák Pentium 4 Nagyon sok előd kompatibilitás!), a fontosabbak: 44: 4 bites, 88: 8 bites, 886, 888: es, 8 bites adat sín 8286: 24 bites nem lineáris) címtartomány 6 K darab 64 KB-os szegmens) 8386: IA-32 architektúra,

Részletesebben

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

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

Részletesebben

Fábián Zoltán Hálózatok elmélet

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

Részletesebben

Paraméter átadás regisztereken keresztül

Paraméter átadás regisztereken keresztül Eljárások paramétereinek átadási módjai Az eljárások deklarációjánál nincs mód arra, hogy paramétereket adjunk meg, ezért más, közvetett módon tudunk átadni paramétereket az eljárásoknak. Emlékeztetőül:

Részletesebben

SZÁMÍTÓGÉPARCHITEKTÚRÁK

SZÁMÍTÓGÉPARCHITEKTÚRÁK ESSZÉ LÁNG LÁSZLÓ Zilog mokroprocesszor családok Z800 2005. December 1. Előszó A Zilog cég betörése a piacra rendkívül eredményesnek mondható volt, sőt később sikerült a csúcsra fejleszteniük a technológiájukat.

Részletesebben

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

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

Részletesebben

OPERÁCIÓS RENDSZEREK. Elmélet

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

Részletesebben

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

Máté: Számítógép architektúrák A mikroprogram Mic 1: 4.. ábra. 51x3 bites vezérlőtár a mikroprogramnak, MPC (MicroProgram Counter): mikroprogram utasításszámláló. MIR (MicroInstruction Register): mikroutasítás regiszter. Az adatút ciklus

Részletesebben

Magas szintű optimalizálás

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

Részletesebben

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

Máté: Számítógép architektúrák Máté: Számítógép architektúrák 211117 Utasításrendszer architektúra szintje ISA) Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, ok A hardver és szoftver határán

Részletesebben

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

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

Programozási segédlet DS89C450 Fejlesztőpanelhez

Programozási segédlet DS89C450 Fejlesztőpanelhez Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.

Részletesebben

Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek. Az NT folyamatok kezelése Operációs rendszerek Az NT folyamatok kezelése Folyamatok logikai felépítése A folyamat modell: egy adott program kódját végrehajtó szál(ak)ból és, a szál(ak) által lefoglalt erőforrásokból állnak. Folyamatok

Részletesebben

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

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

Részletesebben

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter Assembly Rekurzív függvények, EXE, C programok Iványi Péter Algoritmusok előadás Rekurzív függvény FÜGGVÉNY nyomtat(n) print n HA n!= 0 nyomtat(n-1) ELÁGAZÁS VÉGE FÜGGVÉNY VÉGE Rekurzív függvény org 100h

Részletesebben

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz Feladat5: rajzolo.asm Feladat meghatározása A feladat célja bemutatni egy egyszerű grafikai program segítségével a közvetlen címzést (grafikus VGA 320*200). A program a kurzor mozgató gombok segítségével

Részletesebben

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni.

A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Példák számok kiírására A számok kiírása is alapvetően karakterek kiírásán alapul, azonban figyelembe kell venni, hogy a számjegyeket, mint karaktereket kell kiírni. Decimális számok kiírása Az alábbi

Részletesebben

A programozás alapjai

A programozás alapjai A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,

Részletesebben

Hardver Ismeretek IA32 -> IA64

Hardver Ismeretek IA32 -> IA64 Hardver Ismeretek IA32 -> IA64 Problémák az IA-32-vel Bonyolult architektúra CISC ISA (RISC jobb a párhuzamos feldolgozás szempontjából) Változó utasításhossz és forma nehéz dekódolni és párhuzamosítani

Részletesebben

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

Számítógép Architektúrák A virtuális memória Horváth Gábor 2016. március 30. Budapest docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Virtuális tárkezelés Motiváció: Multitaszking környezet Taszkok

Részletesebben

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés

Processzus. Operációs rendszerek MINB240. Memória gazdálkodás. Operációs rendszer néhány célja. 5-6-7. előadás Memóriakezelés Processzus Operációs rendszerek MINB40 5-6-7. előadás Memóriakezelés Egy vagy több futtatható szál Futáshoz szükséges erőforrások Memória (RAM) Program kód (text) Adat (data) Különböző bufferek Egyéb Fájlok,

Részletesebben

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése. Soros LCD vezérlő A vezérlő modul lehetővé teszi, hogy az LCD-t soros vonalon illeszthessük alkalmazásunkhoz. A modul több soros protokollt is támogat, úgy, mint az RS232, I 2 C, SPI. Továbbá az LCD alapfunkcióit

Részletesebben

DSP architektúrák dspic30f család memória kezelése

DSP architektúrák dspic30f család memória kezelése DSP architektúrák dspic30f család memória kezelése Az adatmemória Az adatmemória 16 bites, két külön memóriazóna van kiépítve, az X és az Y memória, mindkettőnek címgeneráló egysége és adat sínrendszere

Részletesebben

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra

Részletesebben

Operációs rendszerek Memóriakezelés 1.1

Operációs rendszerek Memóriakezelés 1.1 Operációs rendszerek Memóriakezelés 1.1 Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK Operációs rendszerek p. A memóriakezelő A

Részletesebben

Megszakítások és kivételek

Megszakítások és kivételek Megszakítások és kivételek Megszakítások Megszakítás a számítási rendszernek küldött jelzés, mely valamilyen esemény felléptéről értesíti. Egy megszakítás felléptekor a rendszer: megszakítja az aktív program

Részletesebben

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat)

Utasításrendszer jellemzése (utasítás részei) 1. műveleti kód 2. operandusok 3. következő utasítás címe (elmaradhat) Informatika 1 vizsgafeladatok Számítógép architektúrák témakör Számítógép architektúra: Az elemi áramkörökből felépített funkcionális egységek alkotta hardver és az operációs rendszer között rész. Az architektúra

Részletesebben

Mikrorendszerek tervezése

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

Részletesebben

DSP architektúrák dspic30f család

DSP architektúrák dspic30f család DSP architektúrák dspic30f család A Microchip 2004 nyarán piacra dobta a dspic30f családot, egy 16 bites fixpontos DSC. Mivel a mikróvezérlők tantárgy keretén belül a PIC családdal már megismerkedtetek,

Részletesebben

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

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

Részletesebben

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

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

Részletesebben

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

Máté: Számítógép architektúrák MPC új tartalma, JMPC JMPC esetén MPC 8 alacsonyabb helyértékű bitjének és MR 8 bitjének bitenkénti vagy kapcsolata képződik MPC-ben az adatút ciklus vége felé (MR megérkezése után). Ilyenkor Addr 8 alacsonyabb

Részletesebben

Útmutató EDC kézivezérlőhöz

Útmutató EDC kézivezérlőhöz Útmutató EDC kézivezérlőhöz ALAPFUNKCIÓK A kézivezérlő használata során állítsa az EDC vezérlő előlapján található forgó kapcsolót 0 állásba. Ezáltal a felhasználó a kézivezérlő segítségével férhet hozzá,

Részletesebben

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

Máté: Számítógép architektúrák NEXT ADDRESS JMPC JAMN JAMZ SLL8 SRA1 F0 F1 ENA EN INVA INC H OPC TOS LV SP PC MDR MAR WRITE READ FETCH 4 sín Mikroutasítások 24 bit: az adatút vezérléséhez bit: a következő utasítás címének megadásához,

Részletesebben

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

Részletesebben

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

Máté: Számítógép architektúrák Mikroarchitektúra szint Feladata az ISA (Instruction Set Architecture gépi utasítás szint) megvalósítása. Nincs rá általánosan elfogadott, egységes elv. A ISA szintű utasítások függvények, ezeket egy főprogram

Részletesebben

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai A programozás alapjai 1 1. előadás Híradástechnikai Tanszék Amiről szólesz: A tárgy címe: A programozás alapjai A számítógép részegységei, alacsony- és magasszintű programnyelvek, az imperatív programozási

Részletesebben

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter

Adatszerkezetek Tömb, sor, verem. Dr. Iványi Péter Adatszerkezetek Tömb, sor, verem Dr. Iványi Péter 1 Adat Adat minden, amit a számítógépünkben tárolunk és a külvilágból jön Az adatnak két fontos tulajdonsága van: Értéke Típusa 2 Adat típusa Az adatot

Részletesebben

Az MSP430 mikrovezérlők digitális I/O programozása

Az MSP430 mikrovezérlők digitális I/O programozása 10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó

Részletesebben