Intel 8086

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. září 2019; kontroly vyžadují 48 úprav .
Intel 8086
procesor

Mikroprocesor Intel 8086
Výroba 8. června 1978 až 1990
Vývojář Intel
Výrobci
Frekvence CPU 4-16  MHz
Produkční technologie HMOS , CHMOS , 3  µm
Instrukční sady x86-16 _
Konektor
Nuclei
Intel 8085Intel 8088

Intel 8086 (známý jako iAPX 86/10 v letech 1980-85) je první 16bitový mikroprocesor společnosti Intel . Byl vyvíjen od jara 1976 a uveden na trh 8. června 1978 [1] . Architektura instrukční sady implementovaná v procesoru se stala základem známé architektury x86 . Procesory této architektury se staly nejúspěšnější řadou procesorů Intel. Moderní procesory této architektury si zachovávají schopnost provádět všechny instrukce této sady.

Mírně upravená verze procesoru s 8bitovou datovou sběrnicí , vydaná v roce 1979 pod názvem Intel 8088 , byla použita v osobních počítačích IBM PC a IBM PC/XT .

Historie

Předchůdci

V roce 1972 Intel vydal 8008 , první 8bitový mikroprocesor. Používal instrukční sadu vyvinutou společností Datapoint Corporation pro programovatelné počítačové terminály , která je vhodná i pro procesory pro všeobecné použití. Tento procesor vyžadoval několik dalších čipů pro použití v plnohodnotném počítači, částečně proto, že používal malé 18pinové pouzdro používané pro čipy DRAM společnosti Intel , a proto nemohl mít samostatnou adresovou sběrnici.

O dva roky později, v roce 1974, byla uvedena na trh 8080 v novém 40pinovém DIP pouzdru původně navrženém pro čipy kalkulačky . Měl samostatnou adresovou sběrnici a rozšířenou sadu instrukcí, která byla kódově (ne binárně) kompatibilní s 8008, doplněnou pro pohodlí programování několika 16bitovými instrukcemi. Procesor Intel 8080 je často označován jako první skutečně použitelný a užitečný mikroprocesor. To bylo nahrazeno Intel 8085 v roce 1977 , s jediným napájecím napětím (+5 V) namísto tří různých na jeho předchůdci a několika dalšími vylepšeními. Nejznámějšími soupeři byly 8bitové Motorola 6800 (1974), Microchip PIC 16X (1975) (zde pravděpodobně odkazuje na procesor General Instrument CP1600 ), MOS Technology 6502 (1975), Zilog Z80 (1976) a Motorola 6809 (1978 ). ).

Vývoj

Trh s 8bitovými mikroprocesory byl koncem 70. let přeplněn a Intel opustil pokusy prosadit se na něm a vydal svůj první 16bitový procesor. Projekt 8086 byl zahájen v květnu 1976 a původně byl koncipován jako dočasná náhrada za ambiciózní a opožděný projekt iAPX 432 (také známý jako 8800) . . Jednalo se na jedné straně o pokus odolat méně pozdním 16- a 32bitovým procesorům od jiných výrobců (jako jsou Motorola, Zilog a National Semiconductor ) a na straně druhé o boj s hrozbou ze strany Zilog Z80. (vyvinutý týmem vedeným Federicem , který opustil Intel). ), který se stal velmi úspěšným. První verzi architektury 8086 (instrukční systém, přerušení, paměť a I/O) vyvíjel od poloviny května do poloviny srpna Stephen Morse . Poté se vývojový tým rozrostl na čtyři lidi, kteří předložili dva hlavní designové dokumenty – „8086 Architectural Specifications“ a „8086 Device Specifications“. Při vývoji nebyly použity specializované CAD programy a diagramy byly vytvořeny z textových znaků. Byly použity již testované prvky mikroarchitektury a fyzické implementace, především z Intel 8085.

Popis

Procesor Intel 8086 je vylepšený procesor Intel 8080 , a přestože si vývojáři nestanovili za cíl dosáhnout plné softwarové kompatibility, většina programů napsaných pro Intel 8080 může po rekompilaci běžet na Intel 8086. Nový procesor přináší spoustu změn, které umožnily výrazné (10x) zvýšení výkonu oproti předchozí generaci firemních procesorů.

Registry

Univerzální registry
AH AL AX  (primární akumulátor)
BH BL BX  (základna, akumulátor)
CH CL CX (počítadlo, akumulátor)
D.H. DL DX  (akumulátor, další funkce)
Indexové registry
SI Index zdroje _ _
DI Index destinace _ _
Indexové registry
BP Základní ukazatel _ _
SP S ukazatel směru _
Stavový registr
patnáct čtrnáct 13 12 jedenáct deset 9 osm 7 6 5 čtyři 3 2 jeden 0 (bitová pozice)
- - - - Ó D T S Z - A - P - C Vlajky
segmentové registry
CS Segment kódu _ _
D.S. Datový segment _ _
ES Extra segment _ _
SS Segment zásobníku _ _
Ukazatel příkazu
IP Instrukční ukazatel _ _
Registry 8086

Celkem má procesor Intel 8086 14 16bitových registrů : 8 obecných registrů (AX, BX, CX, DX), 2 indexové registry (SI, DI), 2 ukazatele (BP, SP), 4 segmentové registry (CS , SS , DS, ES), programový čítač nebo ukazatel instrukcí (IP) a registr příznaků (FLAGS, obsahuje 9 příznaků). Datové registry (AX, BX, CX, DX) přitom umožňují adresovat nejen celé registry, ale i jejich spodní polovinu (registry AL, BL, CL, DL) a horní polovinu (AH, BH, CH, DH registry), což nejen umožnilo použití 16bitového softwaru , který byl v té době nový, ale také si zachovalo zpětnou kompatibilitu s 8bitovými programy (ačkoli musely být alespoň překompilovány ).

Pneumatiky

Velikost adresové sběrnice byla zvýšena z 16 bitů na 20 bitů, což umožnilo adresovat 1 MB (2 20 bajtů) paměti. Datová sběrnice byla 16bitová. V mikroprocesoru však datová a adresová sběrnice používaly stejné kolíky na obalu. To vedlo k tomu, že není možné současně aplikovat adresy a data na systémovou sběrnici. Multiplexování adres a dat v průběhu času umožňuje použít pouze 20 pinů balíčku, ale snižuje přenosovou rychlost. Vzhledem k tomu, že provádění jednotlivých instrukcí je menší než I/O cyklus, byla do procesoru (poprvé) zavedena 6bajtová instrukční vyrovnávací paměť, což umožnilo provádět např. sčítací instrukce v paralelně s I/O instrukcemi.

Práce s pamětí

Protože registry a ALU procesoru 8086 jsou 16bitové, omezuje to operace výpočtu adresy a její maximální velikost. Pro výpočet adres větších než 16 bitů by bylo nutné rozšířit registry a ALU a přepracovat instrukční sadu, což by vedlo ke zvýšení počtu tranzistorů, složitosti a ceně procesoru.

Klesající ceny paměti však způsobily, že procesor byl ziskový pro aplikace, které vyžadovaly zpracování velkého množství dat. Rozšíření adresního prostoru bylo jedním z požadavků na nový procesor [2] . V důsledku toho bylo zvoleno kompromisní schéma: prováděcí jednotka (EU) procesoru byla ponechána 16bitová a adresní prostor byl rozšířen v jednotce rozhraní procesorové sběrnice (BIU) implementací segmentovaného adresování paměti , což zvyšuje adresu. šířka sběrnice do 20 bitů.

Segmentované adresování paměti využívá skutečnosti, že přístupy do paměti na straně procesoru lze snadno rozdělit na programový kód, zpracování dat a přístupy do zásobníku . Přístupy k různým typům obsahu paměti jsou mapovány na nezávislé oblasti paměti v segmentech rozšířeného adresního prostoru . 8086 používá čtyři 16bitové segmentové registry pro toto mapování adres:

Každý segmentový registr specifikuje adresu začátku segmentu v paměti a segmenty se mohou překrývat nebo překrývat. Standardně se registr CS používá při načítání instrukcí, registr SS se používá při provádění operací zásobníku a registry DS a ES se používají při přístupu k datům. V případě přístupu k datům lze výchozí registr segmentů změnit přidáním speciální předpony pro nahrazení segmentu [3] před kód instrukce .

V tomto případě jsou v rámci segmentu použity 16bitové prováděcí adresy, uložené v programovém čítači , ukazateli zásobníku nebo vypočtené podle typu adresování specifikovaného v kódu instrukce. Ve skutečnosti jsou procesoru vždy k dispozici 4 paměťové oblasti o velikosti 64 KB. Pokud je tento objem nedostatečný, program musí zahrnout řídicí logiku segmentového registru. Tato logika může výrazně zpomalit přístup k paměti, takže kompilátory z jazyků na vysoké úrovni pro platformu x86 umožňují specifikovat model paměti v souladu s požadovaným množstvím kódu a dat.

Fyzická 20bitová adresa, která umožňuje adresovat až 1 MB paměti, se získá sečtením prováděcí adresy a hodnoty segmentového registru vynásobené 16. Vzhledem k přítomnosti násobení 16 se segment vždy spustí na 16bajtové hranici bloku, nazývané odstavec . To může plýtvat pamětí, pokud použitá data segmentu nejsou násobkem odstavce. Zejména to byl jeden z důvodů, proč vývojáři opustili implementaci 24bitové adresy v 8086, protože velikost odstavce se zvýšila na 256 bajtů [2] .

Možné přetečení při výpočtu fyzické adresy v procesoru 8086 je ignorováno. Například instrukce nepodmíněného skoku na adresu 0010 16 s hodnotou segmentu kódu FFFF 16 skočí na fyzickou adresu 0. To se nestává u starších procesorů x86, jako je 80286, který měl 24 adresních řádků, takže IBM PC / Na počítačích AT bylo zavedeno speciální hradlo Gate A20, které násilně resetuje bit A20 adresové systémové sběrnice.

Protože u starších procesorů x86 byly zavedeny nové způsoby rozšiřování adresního prostoru, byla metoda používaná procesorem 8086 nazývána „ reálným režimem adresování “.

Příkazový systém

Příkazový systém procesoru Intel 8086 se skládá z 98 příkazů (a více než 3800 jejich variant): 19 příkazů pro přenos dat, 38 příkazů pro zpracování dat, 24 příkazů pro přechod a 17 příkazů pro řízení procesoru. K dispozici je 7 režimů adresování. Mikroprocesor neobsahuje instrukce pro práci s čísly s pohyblivou řádovou čárkou. Tato funkce je implementována samostatným čipem zvaným matematický koprocesor , který je nainstalován na základní desce. Koprocesor vůbec nemusel vyrábět Intel (Intel model 8087 ), například někteří výrobci čipů, jako Weitek , vydávali koprocesory výkonnější než Intel.

Instrukční sada procesoru Intel 8086 obsahuje některé velmi výkonné řetězcové instrukce. Pokud má instrukce předponu REP (z anglického repeat, opakování), pak bude procesor provádět operace s bloky – přesun datového bloku, porovnávání datových bloků, přiřazení určité hodnoty bloku dat o určité velikosti atd., to znamená, že jedna instrukce 8086 s prefixem REP může provádět 4-5 instrukcí, které jsou vykonávány na některých jiných procesorech. Podobné techniky byly implementovány i v jiných procesorech – Zilog Z80 měl instrukce pro přesun a vyhledávání bloků a Motorola 68000 umí provádět operace s bloky pomocí pouhých dvou příkazů.

Mikroprocesor Intel 8086 využívá primitivní formu pipeliningu . Blok rozhraní sběrnice dodává tok příkazů do prováděcího zařízení prostřednictvím 6bajtové fronty příkazů. Načítání a provádění nových instrukcí tedy může probíhat současně. To výrazně zvyšuje propustnost procesoru a eliminuje nutnost čekat na načtení instrukce z paměti, když je rozhraní mikroobvodu zaneprázdněno jinými operacemi.

Mikroprocesorové varianty, analogy a konkurenti

Procesor se vyráběl v keramických a plastových obalech se 40 piny. K dispozici byly verze s frekvencemi 5, 8 a 10 MHz, označené jako 8086, 8086-2 a 8086-1 [4] .

Hlavními konkurenty mikroprocesoru Intel 8086 byly čipové sady Motorola 68000 , Zilog Z8000 , F-11 a J-11 rodiny PDP -11 , MOS Technology 65C816 . Do určité míry byly v oblasti vojenského vývoje konkurenty implementace procesorů MIL-STD-1750A .

Analogy mikroprocesoru Intel 8086 byly takové vývoje jako NEC V30 , který byl o 5 % produktivnější než Intel 8086, ale byl s ním plně kompatibilní. Sovětským analogem byl mikroprocesor K1810VM86 , který byl součástí řady mikroobvodů K1810 .

Hardwarové režimy

Procesory 8086 a 8088 mohou pracovat ve dvou režimech: maximální a minimální [5] .

Maximální režim se používá ve složitých víceprocesorových systémech, je vyžadován i pro práci s matematickým koprocesorem 8087. pracuje s matematickým koprocesorem 8087, který lze nainstalovat do patice na základní desce počítače.

Minimální režim se používá v jednoprocesorových systémech. V tomto režimu procesor sám generuje řídicí signály systémové sběrnice.

Hardwarový režim je určen schématem přepínání procesoru a nelze jej softwarově změnit. Pro nastavení režimu slouží pin 33 (MN / MX ), který je připojen buď ke zdroji napájení nebo ke společnému vodiči. Změna stavu kolíku 33 změní funkce osmi dalších procesorových kolíků zodpovědných za řízení systémové sběrnice a komunikaci s ostatními procesory.

Podpora IC

Pro vytvoření mikroprocesorového systému založeného na procesorech 8086 a 8088 Intel vyrobil následující podpůrné čipy [6] :

Také mikroobvody dříve vyvinuté pro procesory 8080 a 8085 [6] by mohly být použity s procesory :

Mikropočítače založené na Intel 8086

Zpočátku byl procesor Intel 8086 používán v průmyslových systémech. Jeho masovému uplatnění bránila poměrně vysoká cena – 360 $ v době oznámení [7] . Navíc 16bitový paměťový subsystém používaný procesorem obvykle vyžadoval dvakrát více čipů než 8bitový, což zvyšovalo velikost, složitost a cenu desek s plošnými spoji. V souvislosti s tímto vedením Intelu bylo na konci vývoje Intel 8086 rozhodnuto o vydání rozpočtové verze [8] . Procesor Intel 8088 v době oznámení stál 124,8 $ [9] a používal 8bitový paměťový subsystém, díky čemuž byl ekonomicky atraktivnější. Stal se základem jednoho z nejznámějších osobních počítačů - IBM PC .

Byl použit procesor Intel 8086:

Specifikace

Emulátor

Projekt emulátoru procesoru Intel 8086 na STM32 MK : [14]

Poznámky

  1. Mikroprocesorová síň slávy (nepřístupný odkaz) . Intel. Získáno 11. srpna 2007. Archivováno z originálu dne 6. července 2007. 
  2. 1 2 Stephen P. Morse a kol. Mikroprocesory Intel: 8008 až 8086 . Získáno 24. září 2016. Archivováno z originálu 27. září 2016.
  3. Guk, 1997 , str. 13-17.
  4. 16bitový mikroprocesor Intel 8086 HMOS Archivováno 22. října 2016 na Wayback Machine 
  5. Guk, 1997 , str. dvacet.
  6. 1 2 iAPX 86/88, 186/188 Uživatelská příručka Hardware Reference . - Intel Corporation, 1985. - S. 1-90, 1-125. — ISBN 0-917017-36-6 . Archivováno 19. října 2016 na Wayback Machine Archived copy (odkaz není k dispozici) . Datum přístupu: 16. října 2016. Archivováno z originálu 19. října 2016. 
  7. John Sheesley. Intel 8086 prošel velkým výsledkem 3-0 (16. června 2008). Získáno 30. října 2016. Archivováno z originálu 31. října 2016.
  8. 25 mikročipů, které otřásly světem  // IEEE spektrum. - 2009. - č. 5 . — ISSN 0018-9235 . Archivováno z originálu 30. března 2014.
  9. Intel přináší 8bitové MPU s 16bitovou architekturou  // Computerworld. - 1979. - T. XIII , č. 20 . - S. 71 . — ISSN 0010-4841 . Archivováno z originálu 31. října 2016.
  10. Intel přidává 16bitovou jedinou desku  // Computerworld. - 1978. - T. XII , č. 50 . - S. 86 . — ISSN 0010-4841 . Archivováno z originálu 31. října 2016.
  11. Compaq Deskpro Model 1 . Získáno 30. října 2016. Archivováno z originálu 9. listopadu 2016.
  12. Mark Zachmann. Chyby v osobních počítačích IBM frustrovaný kritik  // InfoWorld. - Palo Alto, CA: Popular Computing, 1982. - V. 4 , č. 33 . — s. 57–58 . — ISSN 0199-6649 . Archivováno z originálu 3. srpna 2020.
  13. William J. Broad. For Old Parts, NASA Boldly Goes ... na eBay (12. května 2002). Získáno 28. září 2017. Archivováno z originálu 29. června 2016.
  14. iliasam. fake86_to_stm32f429_port . — 2022-05-01. Archivováno z originálu 20. května 2022.

Literatura

Viz také

Odkazy