Mikroprocesory

INTEL 8086

Technologie NMOS, 16-ti bitový, adresovatelný prostor 1 MB

Vnitřní struktura 8086:

pix21_1.gif (6781 bytes)

Registry jsou to paměťová místa umístěná v mikroprocesoru. 8086 má 14 16-ti bitových registrů.

1.Všeobecné 

AH AL střadač
BH BL báze
CH CL čítač
DH DL data

Lze je používat jako dvojice 8-bitových registrů: AH je pro vyšších 8 bitů, AL je pro nižších 8 bitů.

Tyto registry se používají převážně pro aritmetické operace. Speciálně je pro ně určen registr AX (akumulátor), řada instrukcí pracuje převážně jen s tímto registrem. BX se používá především k výpočtu adresy v některých adresových módech. CX je čítač, používá se u instrukcí s opakováním. DX je datový registr a nemá speciální funkci.

2. Indexové a ukazatelové registry

SP ukazatel zásobníku
BP ukazatel báze
SI index zdrojové adresy
DI index cílové adresy

Registry se nejčastěji používají pro adresaci dat. Indexové registry mají specifikovaný způsob využití. SP (ukazatel zásobníku) obsahuje hodnotu offsetu zásobníku mikroprocesoru a používá se při práci se zásobníkem a voláním podprogramu. BP je určen k adresování dat hlavní paměti. Při spolupráci s vyšším programovacím jazykem je využíván jako ukazatel na parametry volané procedury. SI a DI se využívají při přenosech boku dat a při přístupu do paměti.

3. Segmentové registry

CS segmentový registr programu (Code Segment)
DS segmentový registr dat (Data Segment)
SS segmentový registr zásobníku (Stack Segment)
ES pomocný registr (Extra Segment)

CS je nejdůležitější, jelikož obsahuje segmentovou část adresy právě běžícího programu. DS je určen k adresování dat v hlavní paměti, tzn., že pokud instukce pracuje s daty v hlavní paměti, je určen právě tento registr. SS ukazuje na segment strojového zásobníku. SS a SP je přesná adresa strojového zásobníku v hlavní paměti. Je využit u instrukcí, které pracují se zásobníkem. ES je využíván při přesunech dat, jinak je volně k dispozici.

IP - tento registr obsahuje offsetovou část adresy právě zpracovávané instrukce.

Příznakový registr - FLAGS

Obsahuje jednobitové indikátory, které určují okamžitý stav mikroprocesoru. Jednotlivé bity tvoří dvě skupiny:

- TF, IF, DF

- OF, ZF, SF, AF, PF, CF

TF (Trap Flag) - Tento příznak se používá pro účely ladění, jeho nastavení způsobí, že procesor po provedení každé instrukce vygeneruje přerušení INT1

IF (Interrupt Flag) - Povoluje externí přerušení

DF (Direction Flag) - Určuje směr zpracování řetězců. Je-li nastaven v jedničce, obsah registrů SI a DI se po provedení řetězcové operace sníží (řetězec se zpracovává odzadu).

OF (Overflow Flag) - Příznak se zastaví do jedničky, došlo-li v průběhu provádění instrukce k aritmetickému přeplnění, tzn., že výsledek se nevejde do určeného místa.

SF (Sign Flag) - Je-li výsledek operace záporný, příznak se nastaví do jedničky. Je to v podstatě kopie nejvyššího bitu výsledku.

ZF (Zero Flag) - Příznak se nastaví, je-li výsledek operace nulový.

PF (Parity Flag) - Příznak se nastaví, jestliže dolních 8 bitů výsledku prováděné instrukce má sudý počet jedniček (neznamená, že číslo je sudé).

CF (Carry Flag) - Příznak se nastaví, jestlliže při provádění operace došlo k přenosu z nejvyššího bitu. Používá se také při instrukcích posunu a rotace.

AF (Auxiliary Flag) - Příznak se používá při BCD v aritmetice a to při přenosu z 3. do 4. bitu.


Vytváření adresy:

Šířka adresové sběrnice je 20 bitů (adresuje 1 MB), adresa má dvě části - segment a offset.

Vytvořená adresa se skládá ze dvou šestnáctibitových částí. Z této tzv. logické adresy se fyzická vytváří tak, že se nejprve posune o 4 bity vlevo (odpovídá násobení 16) a k takto vzniklému číslu se přičte offset. Tím vzikne 20-ti bitová adresa, ukazující na konkrétní místo v paměti.

Důsledkem adresování je paměť rozdělena na jednotlivé bloky o velikosti 64 kB (segmenty). Segmentová část adresy po vynásobení šestnácti (připsání čtyř nul na nejnižší bity) ukazuje na začátek segmentu a offset je pozice v segmentu vzhledem k jeho začátku. Segmentové registry udávají segmentovou část adresy.

Adresace pomocí segmentových registru:

pix21_2.gif (3833 bytes)

 

80386

Procesor má 32-bitovou adresovou sběrnici, maximální velikost operační paměti 232 B = 4 096 MB. Má poměrně složitý systém řízení paměti, kde se adresa, použitá v programu složitým způsobem vypočítává na skutečnou. Systém řízení paměti má dvě úrovně: segmentování, stránkování. Segmentování je vyšší úroveň. Systém registrů je převzat z 8086, jsou rozšířeny o další, jsou 32-bitové, kromě segmentových. Aplikační registry jsou určeny programátorovi, jsou zcela přístupné.

VM (Virtual 8086 Mode)
Je-li tento přepínač nastaven na 1, pracuje mikroprocesor ve virtuálním režimu 8086.

IOPL (IO Priority Level)
Toto pole je dvoubitové a udává prioritu potřebnou k provádění vstupů a výstupů. Je-li priorita programu, který provádí v/v operaci nižší (numericky vyšší) než obsah pole IOPL, operace se neprovede a namísto toho se vyvolá přerušení.

 

80486

Má interní paměť CACHE o velikosti minimálně 8 kB, interní koprocesor, rychlost dle typu

25 - 120 MHz. CACHE paměť je rozdělena na čtyři bloky po 2 kB. Systémově má dvě části - TAG, DATA. Když v TAG jsou uvedeny informace o pohybu dat této paměti, znamená to, že procesor vždy sáhne do TAG a v DATA vybere hledaná data.

  

Motorola 68040

Patří do architektury CISC (Complete Instruction Set Computer). V této architektuře obsahuje již mikroprocesor vpodstatě miniaturní počítač včetně programů. Tento počítač pak vyhodnocuje vlastní instrukce. Výhoda: instrukce mohou být komplikované, tzn. že jedna instrukce zajistí určité komplexní služby.

 

Pentium

Struktura mikroprocesoru Pentium

pix21_3.gif (4897 bytes)

Současně nejmodernější procesor řady INTEL, na ploše 1,6 x 1,6 cm je asi 3,1 miliónů tranzistorů. K provedení jednoho taktu je nutná 1/66 - 1/150 milióntina sekundy, což je potřebná doba k provedení jedné operace. Nejvíce prostoru zabírají paměťové obvody (CACHE, atd.). Data přicházejí z pracovní paměti počítače přes DATABUS do jednotky BUS INTERFACE LOGIC. Zde se rozhoduje, zda jde o příkazové (CODE) nebo hodnotové (DATA) informace. Podle toho jsou pak data převedena do CODE CACHE nebo DATA CACHE. Obě jednotky (akumulační jednotky) jsou řízeny jednotkami TLB. Jsou to vpodstatě mikroprocesory uvnitř čipu. Taktovací frekvenci udává CLOCK DRIVER. Příkazová data jsou nejdříve přivedena do jednotky INSTRUCTION FETCH a pak dekódována INSTRUCTION DECODE. V jednotce pro předpověď se odhaduje, jaká budou příští příkazová data (BRANCH, PREDICTION LOGIC). Většina příkazů zahrnuje výpočty a ty se provádějí v centrálním číslicovém oddělení (SUPERSCALAR INTEGER EXECUTION UNITS) nebo (PIPELINED FLOATING POINT).

PIPELINED FLOATING POINT - instrukce se zpracovávají v několika fázích. Mikroprocesor je přizpůsoben tak, že jakmile je jedna fáze nad nějakou instrukcí hotová, může se okamžitě přejít na další instrukci (částečně zpracovaná instrukce přejde do další fáze).

DATABUS - je sběrnice informací procesoru. Pentium přenese najednou paralelně 64 bitů. Znamená to, že je-li jeden příkaz tvořen z 8 bitů, pak za jeden takt zpracuje 8 B.

 

Ve verzi MMX byly přidány další instrukce pro lepší zpracování multimediálních dat. Ve verzi Pentium III byly přidány i instrukce pro rychlejší zpracování 3D dat (vedle dalších architektonických vylepšení).

 

DEC vyvinula čip pod označením ALPHA s architekturou typu RISC. U této architektury se zpracovávají odlišně data a příkazy jsou zredukovány. Je to v podstatě nejrychlejší procesor a špičkově zpracuje 400 miliónů příkazů za sekundu. Je to 64 bitový procesor a má 4 miliard krát větší adresovací prostor než 32-bitové čipy IBM. Obvody RISC produkují při špičkovém výkonu značné teplo.

 


Související odkazy

http://freeweb.coco.cz/procesory/procesory/index.html

http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/PROCESOR.HTML

http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/PINTEL.HTML

http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/PROCBL.HTML

http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/I80X86.HTML

http://www.fi.muni.cz/usr/pelikan/ARCHIT/TEXTY/OSTPROC.HTML

http://hera.vsp.cz/~fszahrj1/_private/jak%20se%20rodi.htm