13AMT Procesory I. Lecture 2 Ing. Martin Molhanec, CSc.
Procesor Procesor –CPU (Central Processor Unit) je základní jednotka počítače vykonává aritmetické, logické a jiné operace –Existuje mnoho typů CPU –V oblasti osobních počítačů zaujímá vedoucí postavení fa INTEL
Procesor -vlastnosti Architektura Rychlost Adresace Šířka datové sběrnice –Toto jsou nejdůležitější vlastnosti každého procesoru –Výkonnost ovšem ovlivňují i další parametry, například velikost, chlazení, atp. –Velice důležitým parametrem je také tzv. kompatibilita (slučitelnost)!
CPU a RAM základní sestava a její parametry Datová sběrnice REGALUADR INS CPU RAM Adresová sběrnice REG – registry procesoruALU – aritmeticko logická jednotka ADR – jednotka adresaceINS – instrukční jednotka Adresové sběrnice Datové sběrnice EXTERNÍ Datové sběrnice INTERNÍ
adresová a datová sběrnice Address Bus – adresová sběrnice –Šířka adresové sběrnice (počet bitů) udává velikost paměti, kterou je procesor schopen fyzicky adresovat Data Bus – datová sběrnice –Šířka datové sběrnice (počet bitů) udává množství dat, které je možné v jediném okamžiku přesunout mezi pamětí a procesorem –Frekvence datové sběrnice udává kolikrát za sekundu můžeme uskutečnit přenos dat
adresová a datová sběrnice Datový výkon = šířka sběrnice * frekvence Může se udávat v bitech nebo bytech ! U mnoha procesorů je rozdílná šířka sběrnice a frekvence u interní a u externí sběrnice !
IBM PC - INTEL Osobní počítače typu IBM PC jsou postaveny na procesorech fy INTEL První procesor, který byl v IBM PC použit byl procesor 8088, který je interně shodný s procesorem 8086 (o rozdílu si povíme později)
Programátorský pohled na 8086 AX SP BP DI SI DX BX CX FLAGS IP Sada obecných a indexových registrů 16 bitů Registr příznaků Instrukční pointer CS SS DS ES 16 bitů Segmentové registry 16 bitů 2 16 = 64k
Princip segmentace OFFSET SEGMENT Limit BASE OPERAND OPERAND = SEGMENT + OFFSET 16 bit Zatím jsme si moc nepomohli ! 16 bitů 2 16 = 64k
Princip segmentace 8086 OFFSET SEGMENT Limit BASE OPERAND OPERAND = SEGMENT * 16 + OFFSET bit 16 bit 16+4=20 bitů 2 20 = 1M Limit = OFFSET = 16 bitů 2 16 = 64k
segmentace Fyzická adresace 20 bit = 1MB Velikost segmentu 16bit = 64kB 4 segmentové registry CS : kódovýSS : zásobníkový DS : datovýES : extra Výhody –Stačí pouze 16bit ALU a interní sběrnice mezi registry! (levnější chip!) –Kratší strojový kód (kratší adresa) –Podpora multitasku (přepínání segmentových registrů, relativní adresace)
Programátorský pohled na AX SP BP DI SI DX BX CX 16 bitů CS SS DS ES 16 bitů LDTR TR GDTR IDTR 16 bitů 48 bitů Stejné jako u 8086! Instrukční registr nás nebude zajímat. MSW Stavový registr Nové registry ! DESKRIPTORY Změněný význam! SELEKTORY
selektory a deskriptory OFFSET –relativní odkaz do paměti, počítá se od nějaké bázové adresy 8086 –SEGMENT – obsahuje bázovou adresu –SELEKTOR – obsahuje INDEX do tabulky bázových adres (deskriptorů)! –DESKRIPTOR – obsahuje bázovou adresu a další informace –LDTR a GDTR – odkazy na tabulky lokálních a globálních deskriptorů
Princip segmentace GDTR nebo LDTR BASE 48 bitů celkem 24 bitů na bázovou adresu 2 24 = 16M paměťového prostoru deskriptor SELEKTOR Tabulka deskriptorů 8k položek 16 bitů celkem 13 bitů na index 2 13 = 8k deskriptorů BASE ADDRESS 48 bitů celkem 24 bitů na bázovou adresu 2 24 = 16M paměťového prostoru položka tabulky 64 bitů celkem 48 bitů deskriptor 24 bitů na adresu přesun BASE OFFSET OPERAND Limit segmentu 64k 16 bitů 64k rozsah
80286 Má k dispozici dvě tabulky deskriptorů GDTR a LDTR Každá tabulka může obsahovat až 8k deskriptorů, celkem tedy 16k deskriptorů Deskriptor obsahuje 24 bitovou adresu adresace až 16M fyzické paměti po 64k segmentech Celkem lze ovšem adresovat 2*8k*64k 1G virtuální paměti
80286 Jeden bit v selektoru slouží pro volbu GDTR nebo LDTR, zbývající určují prioritu Deskriptor dále obsahuje 16bitovou velikost segmentu a 8 bitů vlastností (např. je-li v paměti) Procesor si deskriptory kešuje kvůli rychlému přístupu Z důvodů kompatibility startuje procesor v tzv. reálném módu, který je zcela kompatibilní s procesorem 8086!
80286 Procesor je v chráněném režimu neslučitelný s procesorem 8086 v reálném režimu Důvodem je jiný význam segmentového registru (báze), nyní se jedná o selektorový registr (index) Programátor má k dispozici stále segmenty o maximální velikosti 64k Nicméně tyto segmenty mohou být rozmístěny v prostoru až 16M fyzické paměti a až 1G paměti virtuální Z výše uvedených důvodů, nemohl být procesor v počítačích typu IBM PC AT pořádně využit. Pracoval pouze jako rychlá 8086 ! MS DOS pracuje pouze v reálném módu !
16 bitů Programátorský pohled na EFLAGS Stavový registr AX SP BP DI SI DX BX CX 32 bitů EAX EBX ECX EDX ESI EDI EBP ESP Sada registrů je rozšířena na 32 bitů 64 bitů CR0 CR1 CR2 V těchto registrech jsou skryty GDTR a LDTR CS SS DS ES 16 bitů FS GS Přidány další dva selektory
Princip segmentace GDTR nebo LDTR BASE 64 bitů celkem 32 bitů na bázovou adresu 2 32 = 4G paměťového prostoru deskriptor SELEKTOR Tabulka deskriptorů 8k položek 16 bitů celkem 13 bitů na index 2 13 = 8k deskriptorů BASE ADDRESS 64 bitů celkem 32 bitů na bázovou adresu 2 32 = 4G paměťového prostoru položka tabulky 64 bitů deskriptor 32 bitů na adresu přesun BASE OFFSET OPERAND Limit segmentu 4GB 32 bitů 4G rozsah
80386 Má k dispozici dvě tabulky deskriptorů GDTR a LDTR Každá tabulka může obsahovat až 8k deskriptorů, celkem tedy 16k deskriptorů Deskriptor obsahuje 32 bitovou adresu adresace až 4G fyzické paměti po 4G segmentech Celkem lze ovšem adresovat 2*8k*4G 64T virtuální paměti
80386 DDDDíky 32 bitovým registrům jsou mezisegmentové skoky zcela zbytečné! Hovoříme potom o tzv. lineárním modelu paměti! JJJJe zajištěno, že může vykonávat i kód 80286! Není velký problém, oba procesory používají selektory! NNNNicméně kód 8086 stále není možné v chráněném režimu vykonávat. To je ovšem značný problém ! Programy pro MS DOS jsou stále omezeny na reálný režim procesoru !
Virtuální mód Jedná se o speciální režim procesoru 80386, který je kompatibilní s tzv. reálným módem procesorů 8086! Význam registrů CS, DS, … je opět segment. Na rozdíl od reálného režimů je ve virtuálním režimu aktivní tzv. stránkování paměti! Důvodem pro vznik virtuálního módu u procesoru bylo přání uživatelů mít možnost využívat i starší MS DOS programy v nových OS, které dokáží využívat všech možností procesoru 80386! Pomocí virtuálního módu se vytvářejí virtuální procesory 8086 uvnitř procesoru 80386!
Stránkování paměti Lineární adresa 32 bitůFyzická adresa 32 bitů Stránkovací mechanismus Paměť se stránkuje po 4k blocích prostřednictvím dvou tabulek.
Stránkování paměti Každý program si myslí, že má pro sebe souvislou část paměti! Toto usnadňuje multitasking a existenci virtuálního módu!
80386 – závěr! Chráněný mód umožňuje programovat s lineární adresou až 4GB paměti! Je kompatibilní s Speciální virtuální režim umožňuje běh starých programů určených pro reálný mód 8086 současně s programy určenými pro chráněný režim nebo 80386!
Procesory INTEL segmentyselektory segmentace stránkováníV
Závěr Z hlediska běžného programátora od procesoru není nic nového. byla špatné řešení, neumožňovala běh 8086 programů ve chráněném módu a nezbavila se mezisegmentových skoků. umožnila využívat lineární paměť, stránkování a V86 mód pro běh programů pro 8086.