Intel 8086

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Intel 8086

Intel 8086 je 16bitový procesor firmy Intel vyráběný od roku 1978 technologií HMOS. Je odvozen od 8080 a 8085, má podobnou sadu univerzálních registrů, jen se střádačem rozšířeným na 16 bitů. Programový kód sice není binárně kompatibilní s procesory 8080/8085, ale existuje převodník programů z jazyka symbolických adres (JSA) 8080/8085 do JSA 8086. Adresovatelný prostor paměti je 1 MB. Adresovatelný prostor vstupních/výstupních registrů je 64 KB nebo 64 Kslov. Může používat až 256 hardwarových přerušení. Intel 8086 byl první z řady procesorů architektury x86. Krátce po jeho uvedení byl uveden na trh také Intel 8088, který měl 8bitovou vnější datovou sběrnici umožňující spolupráci s levnými čipovými sadami.

Specifikace[editovat | editovat zdroj]

  • Koncepce navazuje na předchozí úspěšné 8bit typy firmy Intel (8080-8085)
  • Frekvence čipu
    • 5 MHz, 0,33 MIPS
    • 8 MHz, 0,66 MIPS
    • 10 MHz, 0,75 MIPS
  • 29 000 tranzistorů. Technologie výroby 3 μm
  • 1 MB adresovatelné paměti
  • Teoreticky až 10× výkonnější než 8080

16bitový procesor

  • 1978 – 1982
  • základní procesor řady INTEL x86
  • frekvence max. 10 MHz
  • adresová sběrnice 20bitová
  • datová sběrnice 16bitová
  • mikroprocesor podporuje práci s kanálem DMA
  • koncepčně navazuje na předchozí, úspěšné 8bit typy firmy Intel (i8080-i8085)
  • 16bit procesor firmy Intel, rok uvedení: 1978
  • externí Frekvence : 5 až 10 MHZ
  • napájecí napětí - 5V
  • adresová sběrnice 20bit cca 96 instrukcí
  • 7mod na adresace, maximální adresa 1
  • pouzdro DIL 40
  • pro předání dat mezi programy je použit zásobník umístěný v OP paměti max rozsahu 64kB
  • procesor podporuje segmentování řad a programu (velikost segmentu 64KB)
  • procesor podporuje práci na bázi přerušení, k dispozici je max. 256 vektorů přerušení
  • mikroprocesor pracuje ve 2 módech (max a min.)

Vnitřní struktura 8086[editovat | editovat zdroj]

Registry jsou paměťová místa umístěná v mikroprocesoru. Procesor 8086 má 14 šestnáctibitových registrů.

Procesor lze rozdělit na dvě jednotky, sběrnicovou (BIU) a vykonávací (EU).

Sběrnicová jednotka – Bus Interface Unit[editovat | editovat zdroj]

Zajišťuje styk procesoru se sběrnicí a výpočet adres. Pokouší se předem z paměti načítat instrukce do vnitřní šestibajtové instrukční fronty. Obsahuje segmentové registry.

Vykonávací jednotka – Execution Unit[editovat | editovat zdroj]

Vykonává vlastní instrukce, které načte ze zmíněné fronty.

-BIU (Bus Interfacing Unit) – jednotka styku s prostředím. Obsahuje sčítačku, která se používá pro výpočet adres, 6bytovou instrukční frontu. Segmentové registry : CS, DS, ES, SS a registr IP. Všechny tyto registry jsou 16bitové.

- EU (Execution Unit) – prováděcí jednotka. Obsahuje ALU (16bitová), operační registry: AX, BX, CX, DX, SP, BP, SI, DI.. Všechny registry jsou šestnáctibitové. U registrů AX, BX, CX, DX lze použít jejich 8bitových horních (AH, BH, CH, DH) či 8 bitových dolních (AL, BL, CL,DL) částí.

Nedílnou součástí ALU je registr příznaků FLAGS, podle kterého se provádí například podmíněné skoky.

Univerzální registry[editovat | editovat zdroj]

AX = AH + AL střadač
BX = BH + BL báze
CX = CH + CL čítač
DX = DH + DL data

Každý z 16bitových registrů lze používat jako dvojici 8bitových registrů: AH je vyšších 8 bitů, AL nižších 8 bitů 16bitového registru AX.

Tyto registry lze volně používat pro aritmetické a logické operace. Každý má navíc speciální funkci: registr AX je střadač (akumulátor), některé instrukce pracují jen s tímto registrem. BX se používá především jako ukazatel na data (adresa) 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 lze jej používat pro adresování vstupně-výstupních portů.

Intel 80286-vlastnosti[editovat | editovat zdroj]

16bitový procesor pokročilé koncepce

134 000 tranzistorů na čipu

výkon cca 1,6 až 2,2 MHz

Pracuje pouze v maximálním módu

datová a adresová sběrnice jsou plně odděleny sběrnice 16bitů vnější adresová sběrnice 24bitů

procesor může adresovat až 16 megabyte operační paměti respektive 1 gigabyte virtuální paměti

Pouzdro PGA PIN GRI/ EREJB

4x17 vývodů celkem 64 4

vnitřní jednotky ALU,BU,AU

Kde BU jednotka stýká s prostředím (Bass unit)

AU Adress UNIT slouží pro tvorbu adresace

IU Instruction UNIT slouží k předvýběru a dekódování instrukce

EU Execusion Unit slouží k provádění instrukcí

Externí hodinová frekvence 8 až 16 MHz později 20 až 25 MHz

2 módy činnosti reálný plně slučitelný s procesorem 8086 chráněný – nové vlastnost

Vnitřní struktura[editovat | editovat zdroj]

procesor obsahuje 2 vnitřní jednotky, které mohou pracovat nezávisle pro zvýšení celkového výpočetního výkonu BIU a EU.

BIU-jednotka styku s prostředím. Obsahuje sčítačku, která se používá pro výpočet adres, 6bytovou instrukční frontu. Segmentové registry: CS,DS,ES,SS a registr IP.

Všechny tyto registry jsou 16bitové

EU-prováděcí jednotka. Obsahuje ALU (16bitová), operační registry: AX, BX, CX, DX lze použít jejich 8 bitových horních (AH,BH,CH,DH) či 8bitových dolních (al,bl,cl,dl) částí. Nedílnou součástí alu je registr příznaků FLAGS, podle kterého se provádí např. podmíněné skoky.

Segmentové registry[editovat | editovat zdroj]

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

CS obsahuje segmentovou část adresy následující programové instrukce. DS je určen k adresování dat v hlavní paměti. SS ukazuje na segment strojového zásobníku. Dvojice registrů SS a SP obsahuje adresu vrcholu strojového zásobníku v hlavní paměti. SS se používá jako segmentový registr při adresování pomocí BP. ES je využíván při přesunech dat, jinak je volně k dispozici.

Příznakový registr – FLAGS[editovat | editovat zdroj]

Registr příznaků procesoru 8086 obsahuje jednobitové příznaky, které určují okamžitý stav mikroprocesoru. Jednotlivé bity tvoří dvě skupiny:

  • TF, IF, DF
  • OF, ZF, SF, AF, PF, CF

Význam jednotlivých bitů:

  • 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. Tím je možné jednoduše provádět laděný program po instrukcích (krokovat).
  • IF (Interrupt Flag) – Povoluje externí přerušení.
  • DF (Direction Flag) – Určuje směr zpracování řetězců (bloků dat). Je-li nastaven v jedničce, obsah registrů SI a DI se po provedení řetězcové operace sníží (řetězec se zpracovává odzadu), jinak se zvýší.
  • OF (Overflow Flag) - Příznak se nastaví na jedničku, došlo-li v průběhu provádění instrukce k aritmetickému přeplnění (přetečení) při operacích s čísly se znaménkem, 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í na jedničku. 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 obsahuje sudý počet jedniček (neznamená, že číslo je sudé).
  • CF (Carry Flag – příznak přenosu) – Příznak se nastaví, jestliže při provádění operace došlo k přenosu z nejvyššího bitu. Pro operace s čísly bez znaménka má stejnou funkci jako OF pro čísla se znaménkem. Používá se také při instrukcích posunu a rotace.
  • AF (Auxiliary Flag) – Přenos ze 3. do 4. bitu. Používá při BCD aritmetice.

Na základě hodnot příznaků je možné větvit program pomocí instrukcí podmíněného skoku.

Minimální mód[editovat | editovat zdroj]

i8086 používá z důvodu úspory multiplexovou datovou část adresové sběrnice - proveden pomocí 8282 8bit lanch.

Adresová sběrnice 20bitů.

Platnost adresy potvrzuje signál ALE.

Vstupem do 3 obvodů jsou signály AD 0 až AD 15...a A16 až A19.

Vystup z těchto obvodů je adresová sběrnice signály A0 až A19.

Pro oddělení dat sběrnice potřebujeme obvody 8086.

Dat sběrnice je obousměrná.

Na vstupu jsou signály AD 0 až AD 15.

Výstup z těchto obvodů dat sběrnice signály D0 až D15.

Tyto obvody jsou řízeny z mikroprocesoru signálem DEN, určuje platnost dat.

Směr přenosu dat je řízen signálem DT/R-vysílání/příjem.

Další řídící signál M/I0 určuje zda procesor pracuje s paměťovým prostorem.