Intel 8086 - Intel 8086


z Wikipedie, otevřené encyklopedie
Intel 8086
Intel C8086.jpg
Fialová keramická varianta C8086
produkoval Od roku 1978 do roku 1990
Společný výrobce (y)
Max. Procesor Taktovací frekvence 5 MHz až 10 MHz
Min. velikosti rys 3 um
instrukční sada x86-16
Předchůdce ( Intel 8080 )
Nástupce 80186 a 80286 (oba který byl představen v brzy 1982)
Co-procesor Intel 8087
Balík (y)
Varianta 8088

8086 (také volal iAPX 86 ) je 16bitový mikroprocesor čip navržený společností Intel od začátku roku 1976 a 8. června 1978, kdy byl propuštěn. Intel 8088 , vydáno v červenci 1, 1979, je mírně upravený čip s externí 8-bitové datové sběrnice (což umožňuje použití levnějších a méně podpůrných IO ), a je pozoruhodný jako procesorem v původní IBM PC designu, včetně rozšířená verze s názvem IBM PC XT .

8086 dala podnět k architektuře x86 , který nakonec se stal nejúspěšnější řadu Intel procesorů. 5. června 2018, Intel vydal limitovanou edici CPU slaví výročí Intel 8086, nazvaný Intel Core i7-8086K.

Dějiny

Pozadí

V roce 1972, Intel uvedla na trh 8008 , první 8-bitový mikroprocesor. To zavedlo instrukční sadu navrženou DATAPOINT korporace s programovatelnými CRT terminály v mysli, což také dokázal být docela všestranně použitelné. Zařízení potřebná několik dodatečných IC produkovat funkční počítač, částečně z důvodu, že je zabalen v malé 18-pin „paměťové balíčku“, který vyloučil použití oddělené adresové sběrnici (Intel byl primárně DRAM výrobce v té době ).

O dva roky později, Intel uvedla na trh 8080 , zaměstnává nové 40-pin DIL balíčky původně vyvinuté pro kalkulátor IO s cílem umožnit samostatnou adresovou sběrnici. To má prodlouženou instrukční sadu, která je zdrojem kompatibilní (není binární kompatibilní ) s 8008 a také obsahuje některé 16bitové instrukce tak, aby programování jednodušší. 8080 zařízení, byla nakonec nahrazena vyčerpání zatížení na bázi 8085 (1977), která je dostačující s jediným 5 V napájení namísto tří různých provozních napětích dřívějších čipů. Jiné dobře známé 8-bitové mikroprocesory, které se objevily v průběhu těchto let jsou Motorola 6800 (1974), General Instrument PIC16X (1975), MOS Technology 6502 (1975), Zilog Z80 (1976) a Motorola 6809 (1978).

První x86 Design

Intel 8086 CPU die image

Projekt 8086 byl zahájen v květnu 1976 a byla původně určena jako dočasná náhrada za ambiciózní a opožděné iAPX 432 projektů. Byl to pokus upozornit z méně zpožděné 16- a 32-bitové procesory jiných výrobců (například Motorola , Zilog , a National Semiconductor ) a zároveň v boji proti hrozbě z Z80 (navržený bývalým zaměstnanci Intel), který se stal velmi úspěšným. Oba architektura a fyzikální čip byly proto vyvinuty poměrně rychle malá skupina lidí, a použití stejných základních mikroarchitektury prvky a fyzické realizace techniky, používané pro mírně starší 8085 (a pro které je 8086 by také fungovat jako pokračování) ,

Uváděny na trh jako zdroj kompatibilní , 8086 byl navržen tak, aby montáž jazyk pro 8008, 8080 nebo 8085, aby se automaticky převede na ekvivalentní (suboptimální) 8086 zdrojového kódu, s malou nebo žádnou ruční editaci. Programovací model a instrukční sada je (volně) založený na 8080, aby to bylo možné. Nicméně, 8086 design byl rozšířen o podporu plného zpracování 16bitový, namísto poměrně omezené 16bitové schopností 8080 a 8085.

Byly přidány i nové druhy instrukcí; plná podpora pro celočíselné hodnoty, základna + offset adresování a self-opakování operace byly blízký Z80 designu, ale byli všichni trochu obecnější vyráběny v 8086. instrukce přímo podporují vnořené Algol -rodinný jazyky, jako Pascal a PL / M byly také přidán. Podle hlavní architekt Stephen P. Morse , je to výsledek více přístupu software-centric než při navrhování dřívějších procesory Intel (konstruktéři měli zkušenosti z práce s implementací překladače). Další vylepšení zahrnuty microcoded násobení a dělení pokyny a strukturu sběrnice lépe přizpůsobit budoucím koprocesory (například 8087 a 8089 ) a víceprocesorových systémů.

První revize instrukční sady a vysokou úrovní architektury byl připraven asi po třech měsících, a jako téměř nebyly použity žádné CAD nástroje, čtyři inženýři a 12 rozložení lidí současně pracuje na čipu. 8086 trvalo o něco více než dva roky od myšlenky k pracovním produktu, který byl považován za poměrně rychle na komplexní design v letech 1976-1978.

8086 byl sekvenován za použití směsi náhodných logiky a mikrokódu a byla provedena za použití deplece-zatížení NMOS obvody s přibližně 20000 aktivních tranzistorů (29000 počítání všechny ROM a PLA lokalit). To bylo brzy přestěhovala do nového rafinované NMOS výrobní proces s názvem HMOS (pro vysoký výkon MOS), které Intel původně vyvinuté pro výrobu rychlých statických RAM produktů. Toto bylo následováno HMOS-II, verze HMOS-III, a nakonec zcela statické CMOS verzi pro přístrojů napájených z baterie, vyrobené za použití Intel CHMOS procesy. Původní čip měří 33 mm² a minimální velikost funkce byla 3,2 um.

Architektura byla definována Stephen P. Morse s trochou pomoci Bruce Ravenel (architekta 8087) v rafinaci konečné revize. Logika návrhář Jim McKevitt a John Bayliss tvořila elitní inženýři z vývojového týmu hardware úrovni a Bill Pohlman musí provozovatel pro projekt. Dědictví 8086 je trvalý v základní instrukční sady dnešních osobních počítačů a serverů; 8086 také půjčujeme jeho poslední dvojčíslí později rozšířené verze návrhu, jako je Intel 286 a Intel 386 , z nichž všechny se nakonec stal se známý jako x86 rodinu. (Další odkaz je, že PCI Vendor ID pro zařízení Intel je 8086 h ).

podrobnosti

8086 Přiřazení pinů na minimální a maximální režim

Autobusy a provoz

Všechny vnitřní registry, stejně jako interní a externí datové sběrnice, je 16 bitů široká, což pevně usazen „16bitový mikroprocesor“ identitu 8086. A 20-bit externí adresovou sběrnici poskytuje 1  MB fyzický adresní prostor (2 20 = 1048576). Tento adresový prostor je řešena pomocí vnitřní paměti „segmentace“. Datová sběrnice je multiplexovány s adresovou sběrnici, aby se vešly všechny ovládací linky do standardní 40-pin dual in-line balíčku . Poskytuje 16-bit I / O adresovou sběrnici, podporující 64  KB odděleného I / O prostoru. Maximální lineární adresový prostor je omezena na 64 kB, jednoduše proto, že interní adresa / indexové registry pouze 16 bitů široká. Programování přes 64 paměťových hranice KB zahrnuje úpravu registrů segmentu (viz níže); tento problém existoval až do 80386 architektura představila širší (32-bit) registrů (hardware správy paměti na 80286 nepomohlo v tomto ohledu, jak jeho registry jsou stále pouze 16 bitů široký).

režimy hardware

Některé z ovládacích čepů, které nesou základní signály pro všechny vnější operace, mají více než jednu funkci v závislosti na tom, zda je zařízení provozováno v minutách nebo max režimu. První typ je určen pro malé systémy s jedním procesorem, zatímco druhý je pro střední nebo velké systémy s použitím více než jeden procesor (druh režimu s více). Maximální režim je vyžadován při použití 8087 nebo 8089 koprocesor. Napětí na čepu 33 (MN / MX ) určit režim. Změna stavu kolík 33 změní funkci některých dalších kolíků, z nichž většina má dělat s tím, jak procesor zpracovává (lokální) autobus. Režim je obvykle hardwired do oběhu, a proto nemůže být změněna pomocí softwaru. Působení těchto režimech jsou popsány z hlediska časové diagramy na Intel listech a manuály. V minimálním režimu, jsou všechny řídicí signály jsou generovány 8086 sám.

Registry a instrukce

Intel 8086 registry
1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (Bitová pozice)
Hlavními registry
  AH AL AX (primární akumulátor)
  BH BL BX (báze, akumulátor)
  CH CL CX (čítač, akumulátor)
  DH DL DX (akumulátor, prodloužena acc).
registry index
0 0 0 0 SI S ource I ndex
0 0 0 0 DI D estination I ndex
0 0 0 0 BP B ase P ointer
0 0 0 0 SP S lepivost P ointer
programový čítač
0 0 0 0 IP I nstruction P ointer
segmentové registry
CS 0 0 0 0 C ode S egment
DS 0 0 0 0 D ata S egment
ES 0 0 0 0 E xtra S egment
SS 0 0 0 0 S lepivost S egment
stavový registr
  - - - - Ó D T S Z - A - P - C flags

8086 má osm více či méně obecné 16bitových registrů (včetně ukazatel zásobníku , ale s výjimkou instrukční ukazatel, vlajky registru a segmentových registrů). Čtyři z nich, AX, BX, CX, DX, lze také přistupovat jako dvakrát tolik 8-bitových registrů (viz obrázek), zatímco ostatní čtyři, SI, DI, BP, SP, jsou pouze 16-bit.

Díky kompaktní kódování inspirovaný 8-bitové procesory, většina pokyny jsou jedna adresa nebo dvou-adresa operace, což znamená, že výsledek je uložen v jedné z operandů. Nanejvýš jeden z operandů může být v paměti, ale tato paměť operand může být také cílová , zatímco druhý operand je zdroj , může být buď zaregistrovat nebo okamžitá . Jediný paměťové mohou často být použity jak jako zdroj a cíl , které, mimo jiné, dále přispívá k hustotě kódu srovnatelné s (a často lepší než) většině osmibitových stroje v té době.

Stupeň obecnosti většiny registrů jsou mnohem větší než v 8080 nebo 8085. Nicméně, 8086 registry byly více specializované než ve většině současných minipočítačů a používají se také implicitně některé instrukce. Zatímco dokonale rozumné pro montážní programátor, to dělá zaregistrovat alokaci pro kompilátory složitější ve srovnání s více kolmých 16bitové a 32bitové procesory té doby, jako je PDP-11 , VAX , 68000 , 32016 atd. Na druhou stranu, je pravidelnější než spíše minimalistické, ale všudypřítomných 8bitové mikroprocesory takový jako 6502 , 6800 , 6809 , 8085 , MCS-48 , 8051 , a další dobové stroje akumulátor bázi, je podstatně jednodušší postavit efektivní generátor kódu pro 8086 architektura.

Dalším faktorem je to, že 8086 také představil některé nové pokyny (nejsou přítomné v 8080 a 8085), lepší podporu zásobníku založené na programovacích jazyků na vysoké úrovni, jako je Pascal a PL / M ; některé z více užitečných instrukcí jsou Push mem-op , a ret velikost , podporující „Pascal konvence volání “ přímo. (Několik dalších, jako je tlačit  IMMED a vstoupit , byly přidány v následných 80186, 80286 a 80386 procesorů).

A 64 kB (jeden segment) zásobník roste směrem k nižším adres je podporována v hardwaru ; 16-bitová slova jsou tlačeny do zásobníku, a v horní části zásobníku je orientováno na SS: SP. Existují 256  přerušení , které lze vyvolat hardware i software. Přerušení mohou kaskády, s použitím sady pro ukládání návratových adres .

8086 má 64 K 8-bitů (nebo alternativně 32 K 16-bitového slova) I / O portu prostoru.

flags

8086 má 16-bitové příznaky registrovat . Devět z těchto podmínkou kódových vlajek jsou aktivní, a indikují aktuální stav procesoru: příznak přenosu (CF), příznak parity (PF), pomocný příznak přenosu (AF), Zero příznak (ZF), znaménko vlajky (SF), Trap flag (TF), Interrupt vlajky (IF), směrový příznak (DF) a přetečení vlajka (OF). Označovaný také jako stavového slova, rozložení vlajek zaregistrovat, je následující:

Bit 15-12 11 10 9 8 7 6 5 4 3 2 1 0
Vlajka   Z DF LI TF SF ZF   AF   PF   CF

Segmentace

Tam jsou také tři 16bitové segmentové registry (viz obrázek), které umožňují 8086 CPU přístup k jednomu megabajt paměti neobvyklým způsobem. Spíše než zřetězení registr segmentu s registrem adres, stejně jako ve většině procesorů, jejichž adresní prostor přesahuje jejich velikost registru, 8086 posouvá 16bitové segmentu pouze čtyři bity doleva před přidáním do 16 bitů offset (16 × segmentu + offset ), tedy produkovat 20-bit vnější (nebo účinné nebo fyzické) adresy z 32-bit segmentu: Posun páru. Výsledkem je, že každý vnější adresa může být odkazoval se na 2 12 = 4096 jiném segmentu: posun párů.

  0110 1000 1000 0111  0000 Segment , 16 bitů, posunuta doleva 4 bitů (nebo násobí 0x10)
+      0011 0100 1010 1001 ofset , 16 bitů
                          
  0110 1011 1101 0001 1001 adresa , 20 bitů

Ačkoli zvážil složitý a těžkopádný mnoho programátorů, tento systém má také výhody; malý program (méně než 64 KB) lze vložit začíná na pevnou odchylku (například 0000), ve svém vlastním úseku, vyhnout se nutnosti přemístění , s nejvýše 15 bajtů vyrovnávací odpadu.

Překladače pro rodinu 8086 běžně podporují dva typy ukazatele , blízko a daleko . V blízkosti ukazatele jsou 16bitové posuny nepřímo spojené s kódem nebo datového segmentu programu, a tak mohou být použity pouze v rámci části programu dostatečně malé, aby se vešly do jednoho segmentu. Far ukazatele jsou 32bitové segmentu: Posun párů štěpící až 20-bitové externí adresy. Některé kompilátory také podporují obrovské ukazatelů, které jsou stejně jako daleko ukazatele tím rozdílem, že ukazatel aritmetiku na obrovský ukazatel jej považuje za lineární 20-bitový ukazatel, zatímco ukazatel aritmetické na vzdálenější ukazatel obaluje v rámci své 16-bit offsetu bez dotyku segmentové části adresy.

Aby se zabránilo, že je třeba upřesnit blízko a daleko na mnoha ukazatelů, datových struktur a funkcí, kompilátory podporují také „paměťové modely“, které určují výchozí velikosti ukazatele. Nepatrný (max 64 kB), malá (max 128K), kompaktní (data> 64K), medium (kód> 64K), velký (kód, data> 64K), a obrovské (jednotlivá pole> 64K) modely pokrývají praktická kombinace poblíž daleko, a obrovské ukazatele pro kód a data. Malý model, znamená to, že kód a data jsou sdíleny v jednom segmentu, stejně jako ve většině procesorů založených na 8-bitové, a mohou být použity k vytvoření com souborů např. Předkompilované knihovny často přicházejí v několika variantách, vypracovaných pro různé modely paměti.

Podle Morse et al.,. designéři skutečně uvažuje s použitím 8-bitový posun (namísto 4-bit), a to s cílem vytvořit 16 MB fyzický adresní prostor. Nicméně, jak by to nucený segmenty začínají na 256 bajtů hranice a 1 MB byl považován za velmi velký pro mikroprocesor kolem roku 1976, myšlenka byla zamítnuta. Také, tam nebylo dost kolíky k dispozici na nízkou cenu balíček 40-pin pro další čtyři adresové sběrnice kolíky

V zásadě platí, že adresový prostor série x86 by byly rozšířeny v pozdějších procesory zvýšením hodnoty posunu, pokud aplikace získat jejich segmenty z operačního systému a nepřináší předpoklady o rovnocennosti jiném segmentu: posun párů. V praxi je použití „velké“, ukazatele a podobné mechanismy byla rozšířená a plochou 32-bitové adresování možné s 32-bitový posun registry v 80386 nakonec prodloužil omezený rozsah adresování v obecnějším způsobem (viz níže).

Intel by se rozhodli realizovat paměť 16-bitových slov (která by odstranila BHE signál podél s hodně z adresové sběrnice složitosti již byly popsány). To by znamenalo, že všechny instrukce objektů kódy a údaje by měly být přístupné v 16-bitových jednotkách. Uživatelé 8080 dávno uvědomili, ve zpětném pohledu, že procesor je velmi efektivní využití jeho paměti. Tím, že mají velké množství 8-bitových objektových kódů je 8080 produkuje objektový kód tak kompaktní jako jedny z nejsilnějších minipočítače na trhu v té době.

V případě, že 8086 je udržet 8-bitových objektů kódy a tím i efektivní využití paměti 8080, pak to nemůže zaručit, že (16-bitové) operační kódy a data budou ležet na i-liché bajt adresy hranice. První 8-bitový operační kód posune na další 8-bitové instrukce k liché bajtu nebo 16bitové instrukce na liché a to i bajtové hranici. Realizací BHE signál a další logiku potřebnou, 8086 umožňuje instrukce existovat jako 1 byte, 3-byte nebo jakékoliv jiné kódy objektu lichý byte.

Jednoduše řečeno: je to kompromis. Pokud adresování paměti je zjednodušeno tak, že paměť je přístupná pouze v 16-bitových jednotkách, bude paměť využít méně efektivně. Intel se rozhodl, aby se logika složitější, ale paměť používat efektivnější. To bylo v době, kdy velikost paměti byl podstatně menší, a za vysokou cenu, než ten, který uživatelé používají pro dnešek.

Portování starší software

Malé programy by mohly ignorovat segmentaci a stačí použít obyčejný 16-bit adresování. To umožňuje 8-bit software, které mají být poměrně snadno přenést do 8086. Autoři MS-DOS využil této zajištěním Application Programming Interface velmi podobný CP / M , jakož i včetně jednoduché com formátu spustitelného souboru identické k CP / M. To bylo důležité, když 8086 a MS-DOS byly nové, protože to dovolilo mnoho stávajících CP / M (a další) aplikací, které mají být rychle k dispozici, což výrazně usnadňuje přijetí nové platformy.

Příklad kódu

Vkládá 8086/8088 assembler zdrojový kód pro podprogram s názvem _memcpy, který kopíruje blok datových bajtů dané velikosti z jednoho místa na druhé. Blok dat se zkopíruje jeden byte v době, a pohyb dat a opakování logika využívá 16-bitové operace.

 
 
 
 
 
 
 
 
 
 
 
0000:1000
 
0000:1000
0000:1000 55
0000:1001 89 E5
0000:1003 06
0000:1004 8B 4E 06
0000:1007 E3 11
0000:1009 8B 76 04
0000:100C 8B 7E 02
0000:100F 1E
0000:1010 07
 
0000:1011 8A 04
0000:1013 88 05
0000:1015 46
0000:1016 47
0000:1017 49
0000:1018 75 F7
 
0000:101A 07
0000:101B 5D
0000:101C 29 C0
0000:101E C3
0000:101F
; _memcpy(dst, src, len)
; Copy a block of memory from one location to another.
;
; Entry stack parameters
;      [BP+6] = len, Number of bytes to copy
;      [BP+4] = src, Address of source data block
;      [BP+2] = dst, Address of target data block
;
; Return registers
;      AX = Zero

            org     1000h       ; Start at 0000:1000h

_memcpy     proc
            push    bp          ; Set up the call frame
            mov     bp,sp
            push    es          ; Save ES
            mov     cx,[bp+6]   ; Set CX = len
            jcxz    done        ; If len = 0, return
            mov     si,[bp+4]   ; Set SI = src
            mov     di,[bp+2]   ; Set DI = dst
            push    ds          ; Set ES = DS
            pop     es

loop        mov     al,[si]     ; Load AL from [src]
            mov     [di],al     ; Store AL to [dst]
            inc     si          ; Increment src
            inc     di          ; Increment dst
            dec     cx          ; Decrement len
            jnz     loop        ; Repeat the loop

done        pop     es          ; Restore ES
            pop     bp          ; Restore previous call frame
            sub     ax,ax       ; Set AX = 0
            ret                 ; Return
            end proc

Výše uvedený kód používá BP (base pointer) zaregistrovat vytvořit rámec hovorů , což je oblast v zásobníku, který obsahuje všechny parametry a lokální proměnné pro provádění podprogramu. Tento druh konvence volání podporuje řetězit a rekurzivní kód, a byl používán většinou ALGOL podobnými jazyky, protože pozdní 1950.

Výše uvedená rutina je poněkud těžkopádný způsob kopírování bloků dat. 8086 poskytuje specializované instrukce pro kopírování řetězců bajtů. Tyto pokyny předpokládají, že zdrojová data jsou uložena v DS: SI, cílová data jsou uložena v ES: DI, a že počet prvků, které mají kopírovat je uložen v CX. Výše rutina vyžaduje zdroj a cílový blok, aby byl ve stejném segmentu, tedy DS je zkopírována do ES. Smyčkový úsek z výše uvedených může být nahrazen:

0000:1011 FC
0000:1012 F2
0000:1013 A4
            cld                  ; Copy towards higher addresses
loop        repnz                ; Repeat until CX = 0
            movsb                ; Move the data block

Tím se zkopíruje blok dat jeden bajt najednou. REPNZInstrukce způsobí, že následující MOVSBopakovat, dokud CX je nula, automatické zvyšování SI a DI a dekrementování CX jak to opakuje. Alternativně MOVSWinstrukce může být použit ke kopírování 16-bitová slova (double bytů) v čase (v takovém případě CX počítá počet slov zkopírovány namísto počet bajtů). Většina montéři se správně rozpoznat REPNZinstrukce, pokud jsou použity jako in-line před daným MOVSBinstrukce, jak v REPNZ MOVSB.

Tato rutina bude fungovat správně, pokud přerušena, protože pult programu bude i nadále ukazovat na REPinstrukci, dokud nebude dokončen blok kopie. Kopie bude tedy pokračovat od místa, kde bylo přerušeno, když se program vrátí kontrolu přerušení služby.

Výkon

Zjednodušené blokové schéma přes Intel 8088 (varianta 8086); 1 = hlavní registry; 2 = segmentové registry a IP; 3 = adresa sčítačka; 4 = vnitřní adresovou sběrnici; 5 = fronty instrukcí; 6 = řídící jednotka (velmi zjednodušený!); 7 = sběrnice rozhraní; 8 = vnitřní datová sběrnice; 9 = ALU; 10/11 / 12 = externí adresy / data / control bus.

I když částečně ve stínu jiných design volby v tomto konkrétním čipu, že multiplexní adresa a datové sběrnice omezit výkon mírně; převody 16bitových nebo 8bitových množství se provádí v přístupu do paměti cyklu čtyři hodiny, což je rychlejší na 16-bit, ačkoliv pomaleji na 8-bitových množství, ve srovnání s mnoha současných procesorů založených na 8-bitových. Jako návod se liší od jednoho do šesti bytů, aport a provedení jsou souběžné a oddělena do samostatných jednotek (jak to zůstane v dnešních procesorů x86): The jednotka sběrnice přivádí proud instrukcí k výpočetní jednotce přes načítání v fronty 6 bajtů ( forma volně vázané zřetězení ), urychlení operace s registry a immediates , zatímco paměťové operace se stal pomaleji (o čtyři roky později, tento problém výkon byl opraven s 80186 a 80286 ). Avšak plný (místo částečné) 16-bitové architektury s plnou šířkou ALU znamenalo, že 16-bitové aritmetické instrukce mohly být prováděny pouze s jedním ALU cyklu (namísto dvou, přes interní nošení, jako v 8080 a 8085) výrazně urychluje takových pokynů. V kombinaci s orthogonalizations operací oproti operandu typů a adresování režimy , jakož i další vylepšení, toto dělalo zvýšení výkonu nad 8080 nebo 8085 poměrně významné, přestože případy, kdy mohou být starší čipy rychlejší (viz níže).

Doba realizace typických instrukcí (v hodinových cyklů)
návod registrovat registrovat registrovat bezprostřední registrovat pamětí Paměť-registr paměťových bezprostřední
mov 2 4 8 + EA 9 + EA 10 + EA
ALU 3 4 9 + EA, 16 + EA, 17 + EA
skok registrovat => 11; Štítek => 15; stav, štítek => 16
celé číslo násobit 70 ~ 160 (v závislosti na operandu dat , jakož i velikosti) , včetně jakékoliv EA
celé číslo rozdělit 80 ~ 190 (v závislosti na operandu dat , jakož i velikosti) , včetně jakékoliv EA
  • EA = doba pro výpočet efektivní adresy, v rozmezí od 5 do 12 cyklů.
  • Časování jsou v nejlepším případě, v závislosti na stavu pro načítání, zarovnání instrukční a dalších faktorech.

Jak lze vidět z těchto tabulek, operace s registry a immediates byli rychlí (2 až 4 cykly), zatímco instrukce paměťových operandů a skoky byly docela pomalý; skoky trvalo více cyklů než na jednoduchém 8080 a 8085 , a 8088 (použitý v IBM PC) se dodatečně brzděn užším sběrnici. Důvody, proč většina instrukce paměť související byly pomalé byly trojí:

  • Volně provázaných načíst a výkonné jednotky jsou účinné pro výuku prefetch, ale ne pro skoky a přístup náhodný dat (bez zvláštních opatření).
  • No vyhrazené výpočet adresa zmije byla poskytnuta; mikrokódu rutiny musely použít hlavní ALU pro to (ačkoli tam byl věnován segmentu + odsazení zmije).
  • Adresa a datové sběrnice byly multiplexovány , nutí o něco delší (33 ~ 50%) cyklu sběrnice než v typických současné 8-bitové procesory.

Nicméně výkon access memory byla drasticky obohacen o novou generaci Intel z 8086 rodinných procesorů. 80186 a 80286 oba měli vyhrazenou adresu výpočtu hardware, což šetří mnoho cyklů a 80286 také měl oddělené (non-multiplexované) adresy a datové sběrnice.

Plovoucí bod

8086/8088 by mohl být připojen k matematického koprocesoru přidat / mikrokódu založeného na hardwaru s plovoucí desetinnou čárkou výkonu. Intel 8087 byl standardní matematický koprocesor pro 8086 a 8088, pracující na 80-bitových čísel. Výrobci, jako je Cyrix (8087-kompatibilní) a Weitek ( ne 8087-kompatibilní) nakonec přišel s vysokým výkonem s plovoucí desetinnou čárkou koprocesory, které soutěžily s 8087, jakož i s následnou, výkonnějším Intel 80387 .

verze čipové

Frekvence hodiny byla původně omezena na 5 MHz, ale poslední verze v HMOS bylo uvedeno na 10 MHz. HMOS-III a CMOS verze byly vyrobeny pro dlouhou dobu (alespoň chvíli v roce 1990) pro vestavěné systémy , i když jeho nástupce je 80186 / 80188 (což zahrnuje některé periférie on-chip), je více populární pro embedded použití ,

80C86, CMOS verze 8086, byl použit v GRiDPad , Toshiba T1200 , HP 110 a konečně 1998-1999 Lunar Prospector .

Pro balení, Intel 8086 byla k dispozici jak v keramických a plastových obalů DIP.

Keramický varianta D8086
Varianta plast P8086

Seznam Intel 8086

Modelové číslo Frekvence Technologie teplotní rozsah Datum vydání Cena (USD)
8086 5 MHz HMOS 0 ° C až 70 ° C 8.6.1978 86,65
8086-1 10 MHz HMOS II Komerční
8086-2 8 MHz HMOS II Komerční Květen / červen 1980 200
8086-4 4 MHz HMOS Komerční
I8086 -40 ° C až 85 ° C Květen / červen 1980 173,25
  1. ^ V množství 100.

Deriváty a klony

Sovětský klon K1810VM86
OKI M80C86A QFP-56
NEC μPD8086D-2 (8 MHz) z roku 1984, týden 19 Japonsko (klon Intel D8086-2)

Kompatibilní, a v mnoha případech s rozšířeným verze byly vyráběny Fujitsu , Harris / Intersilu , OKI , Siemens AG , Texas Instruments , NEC , Mitsubishi a AMD . Například NEC V20 a V30 NEC dvojice byly hardware kompatibilní s 8088 a 8086, ačkoli NEC z původních Intel klony μPD8088D a μPD8086D pořadí, ale včlenil instrukční sadu na 80186 spolu s některými (ale ne všechny) z 80186 vylepšení rychlosti, které poskytují možnost drop-in pro upgrade i instrukční sadu a rychlost zpracování, aniž by výrobci museli měnit své návrhy. Takový relativně jednoduchý a low-power 8086 kompatibilní s procesory v CMOS jsou ještě použity v oblasti vestavěných systémů.

Elektronický průmysl v Sovětském svazu byl schopen replikovat 8086 prostřednictvím jak průmyslové špionáže a reverzní inženýrství . Výsledný čip, K1810VM86 , byl binární a pin-kompatibilní s 8086.

i8086 a i8088 byly respektive jádra ze sovětské výroby PC kompatibilní EC1831 a EC1832 počítačů. (EC1831 je identifikace ES ze dne Izot 1036C a EC1832 je identifikace ES ze dne Izot 1037C, který byl vyvinut a vyroben v Bulharsku. EC znamená Единая Система.) Nicméně, EC1831 počítač (Izot 1036C) měla významné odlišnosti v hardwarové konfiguraci od prototypu IBM PC , EC1831 byl první PC kompatibilní počítač s dynamickou autobusové dimenzování (US patent č. 4,831,514) č. Později některé principy EC1831 byly přijaty v PS / 2 (US patent č. Č 5548786) a některé další stroje (UK patentová přihláška, publikace č GB-A-2211325, Vydáno června 28, 1989).

podpůrné čipy

  • Intel 8237 : přímý přístup do paměti (DMA) řadič
  • Intel 8251 : univerzální synchronní / asynchronní přijímač / vysílač na 19,2 kbit / s
  • Intel 8253 : programovatelný interval časovače, 3x 16-bitové max 10 MHz
  • Intel 8255 : programovatelné periferní rozhraní, 3x 8-bitový I / O pinů použité pro připojení tiskárny atd
  • Intel 8259 : řadič přerušení
  • Intel 8279 : Řadič klávesnice / displej, skenuje klávesnici matice a maticový displej, jako je 7-SEG
  • Intel 8282 / 8283 : 8-bit závora
  • Intel 8284 : generátor hodin
  • Intel 8286 / 8287 : obousměrné 8bitové ovladače. V roce 1980 byly k dispozici pro 16,25 USD v množství 100 obou Intel I8286 / I8287 (pro průmyslové účely) verze.
  • Intel 8288 : řadič sběrnice
  • Intel 8289 : autobus arbitr
  • NEC μPD765 nebo Intel 8272A : floppy řadič

Mikropočítače pomocí 8086

  • Intel Multibus kompatibilních jednodeskový počítač ISBC 86/12 byla vyhlášena v roce 1978.
  • Xerox nástroj na psaní poznámek byl jedním z prvních přenosných počítačových návrhů v roce 1978 a používá tři čipy 8086 (jako procesor, grafický procesor a I / O procesor), ale nikdy nevstoupila v komerční produkci.
  • Seattle Computer Products dodáván S-100 sběrnice na bázi 8086 systémy (SCP200B) již v listopadu 1979.
  • Norský Mycron 2000, který byl zaveden v roce 1980.
  • Jeden z nejvlivnějších mikropočítačů o všem, IBM PC , který se používá Intel 8088 , verze 8086 s 8-bitovou sběrnici (jak je uvedeno výše).
  • První Compaq Deskpro používal 8086 běží na 7,16 MHz, ale byl kompatibilní s add-in karty určené pro 4,77 MHz IBM PC XT a mohl přejít CPU dolů k nižší rychlosti (což také přepnout do paměti sběrnice paměti simulovat 8088 je pomalejší přístup), abyste se vyhnuli problémům načasování softwaru.
  • 8 MHz 8086-2 byl použit v AT & T 6300 PC (postavený Olivetti , a je známo, na celém světě v různých značek a čísla modelů), IBM PC-kompatibilní plochy mikropočítač. M24 / PC 6300 má IBM PC / XT kompatibilní s 8-bit rozšiřující sloty, ale některé z nich mají proprietární rozšíření poskytuje úplnou 16-bitovou datovou sběrnici 8086 CPU (podobný v pojetí k 16bitové drážek IBM PC AT , ale rozdílné v detailech konstrukce, i fyzicky neslučitelné), a všechny systémové periferní vybavení včetně palubního videosystému také využít 16-bitové datové přenosy. Pozdější Olivetti M24SP představoval 8086-2 běží na plné maximum 10 MHz.
  • IBM PS / 2 modely 25 a 30 byly postaveny s 8 MHz 8086.
  • Amstrad / Schneider PC1512 , PC1640 , PC2086 , PC3086 a PC5086 ojeté 8086 procesorů 8 MHz.
  • NEC PC-9801 .
  • Tandy 1000 SL-série a RL stroje použít 9,47 MHz 8086 CPU.
  • IBM Displaywriter zpracování textu stroj a Wang Professional Computer, vyráběný firmou Wang Laboratories , také používal 8086.
  • NASA používá originální 8086 procesorů na zařízení pro údržbu pozemní části raketoplánu Discovery do konce tohoto programu raketoplánu v roce 2011 byl učinil toto rozhodnutí, aby se zabránilo software regrese , které by mohly vyplynout z modernizace nebo přechod na nedokonalé klonů.
  • Kaman Process a oblast dozimetry

viz též

Poznámky

Reference

externí odkazy