i386 - i386

i386
KL Intel i386DX.jpg
Procesor Intel i386DX 16 MHz se šedým keramickým rozdělovačem tepla.
Obecná informace
Spuštěno Říjen 1985
Přerušeno 28. září 2007
Běžní výrobci
Výkon
Max. Taktovací frekvence CPU 12 MHz až 40 MHz
Šířka dat 32 bitů (386SX: 16 bitů)
Šířka adresy 32 bitů (386SX: 24 bitů)
Architektura a klasifikace
Min. velikost funkce 1,5 µm až 1 µm
Instrukční sada x86-32
Fyzické specifikace
Tranzistory
Koprocesor 386DX: Intel 80387
386SX: Intel 80387SX
Balíčky
Zásuvka
Dějiny
Předchůdce Intel 80286
Nástupce i486
Obrazová kostka procesoru Intel A80386DX-20

Intel 386 , původně vydána jako 80386 a později přejmenovaný i386 , je 32bitový mikroprocesor představil v roce 1985. První verze měly 275,000 tranzistorů a byl CPU řady pracovních stanic a high-end osobní počítače času. Jako původní implementace 32bitového rozšíření architektury 80286 jsou instrukční sada i386, programovací model a binární kódování stále společným jmenovatelem všech 32bitových procesorů x86 , které se označuje jako architektura i386 , x86 nebo IA-32 , v závislosti na kontextu.

32bitový i386 dokáže správně spustit většinu kódu určeného pro dřívější 16bitové procesory, jako jsou 8086 a 80286, které byly v raných počítačích všudypřítomné . (Podle stejné tradice jsou moderní 64bitové procesory x86 schopny spouštět většinu programů napsaných pro starší procesory x86, až k původním 16bitovým 8086 z roku 1978.) V průběhu let postupně novější implementace stejné architektury se staly několik stokrát rychlejší než původní 80386 (a tisíckrát rychlejší než 8086). Údajně bylo naměřeno 33 MHz 80386, aby fungovalo při přibližně 11,4 MIPS .

80386 byl představen v říjnu 1985, zatímco výroba čipů ve značném množství byla zahájena v červnu 1986. Základní desky pro počítačové systémy založené na 80386 byly zpočátku těžkopádné a drahé, ale výroba byla odůvodněna přijetím 80386 v hlavním proudu. První osobní počítač, který používal 80386, byl navržen a vyroben společností Compaq a označil poprvé, kdy byla základní komponenta v de facto standardu kompatibilním s PC IBM aktualizována jinou společností než IBM .

V květnu 2006 Intel oznámil, že výroba i386 bude zastavena na konci září 2007. Přestože byl procesor CPU osobního počítače dlouho zastaralý , Intel a další pokračovali ve výrobě čipu pro vestavěné systémy . Takové systémy využívající i386 nebo jeden z mnoha derivátů jsou mimo jiné běžné v letecké technice a elektronických hudebních nástrojích. Některé mobilní telefony také používaly (později plně statické varianty CMOS ) procesor i386, například BlackBerry 950 a Nokia 9000 Communicator . Linux nadále podporoval procesory i386 až do 11. prosince 2012; když jádro řezalo pokyny specifické pro 386 ve verzi 3.8.

Architektura

Blokové schéma mikroarchitektury i386
i386 se registruje
3 1 ... 1 5 ... 0 7 ... 0 0 (bitová pozice)
Hlavní registry (8/16/32 bitů)
EAX SEKERA AL Registr cumulátoru
EBX BX BL B ase registr
ECX CX CL C plynech registrovat
EDX DX DL D ata registrace
Indexové registry (16/32 bitů)
ESI SI S ource I ndex
EDI DI D estination I ndex
EBP BP B ase p ointer
ESP SP S tack P ointer
Programový čítač (16/32 bitů)
EIP IP I nstruction P ointer
Selektory segmentů (16 bitů)
  CS C ode S egment
  DS D ata S egment
  ES E xtra S egment
  FS F S egment
  GS G S egment
  SS S tack S egment
Stavový registr
  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)
  PROTI R. 0 N. IOPL Ó D T S Z 0 A 0 P 1 C EFlags

Procesor byl významným vývojem v architektuře x86 a rozšířil dlouhou řadu procesorů, které sahaly až k Intel 8008 . Předchůdcem 80386 byl Intel 80286 , 16bitový procesor se systémem správy a ochrany paměti na bázi segmentů . 80386 přidal třístupňový instrukční kanál, rozšířil architekturu ze 16 bitů na 32 bitů a přidal jednotku pro správu paměti na čipu . Tato jednotka pro překlad stránkování značně usnadnila implementaci operačních systémů využívajících virtuální paměť . Nabízel také podporu pro ladění registru .

80386 představoval tři provozní režimy: reálný režim, chráněný režim a virtuální režim. Chráněný režim , který debutoval v 286, byla rozšířena tak, aby 386 řešit až 4 GB paměti. Zcela nový virtuální režim 8086 (nebo VM86 ) umožnil provozovat jeden nebo více programů v reálném režimu v chráněném prostředí, i když některé programy nebyly kompatibilní.

Možnost nastavit 386 tak, aby se chovala, jako by měla model s plochou pamětí v chráněném režimu navzdory skutečnosti, že ve všech režimech používá segmentovaný paměťový model, byla pravděpodobně nejdůležitější změnou funkcí pro rodinu procesorů x86, dokud AMD neuvolní x86. -64 v roce 2003.

Do 386 bylo přidáno několik nových pokynů: BSF, BSR, BT, BTS, BTR, BTC, CDQ, CWDE, LFS, LGS, LSS, MOVSX, MOVZX, SETcc, SHLD, SHRD.

Byly přidány dva nové segmentové registry (FS a GS) pro programy pro obecné účely, jediné stavové slovo stroje 286 se rozrostlo do osmi řídicích registrů CR0 – CR7. Pro zarážky hardwaru byly přidány ladicí registry DR0 – DR7. K jejich přístupu jsou použity nové formy instrukce MOV.

Hlavním architektem při vývoji 80386 byl John H. Crawford . Byl zodpovědný za rozšíření architektury a instrukční sady 80286 na 32bitové a poté vedl vývoj mikroprogramu pro čip 80386.

Řada procesorů i486 a P5 Pentium byla potomky designu i386.

Typy dat

Následující datové typy jsou přímo podporovány, a proto implementovány jedním nebo více strojními pokyny i386 ; tyto datové typy jsou stručně popsány zde:

  • Bit ( booleovská hodnota), bitové pole (skupina až 32 bitů) a bitový řetězec (až 4 Gbit na délku).
  • 8bitové celé číslo (bajt) , buď se znaménkem (rozsah −128..127), nebo bez znaménka (rozsah 0..255).
  • 16bitové celé číslo , buď se znaménkem (rozsah −32 768..32 767) nebo bez znaménka (rozsah 0..65 535).
  • 32bitové celé číslo , buď se znaménkem (rozsah −2 31 ..2 31 −1), nebo bez znaménka (rozsah 0..2 32 −1).
  • Offset , posunutí 16 nebo 32 bitů odkazující na místo v paměti (pomocí libovolného režimu adresování).
  • Ukazatel , 16bitový volič společně s 16- nebo 32bitovým offsetem.
  • Znak (8bitový znakový kód).
  • Řetězec , sekvence 8, 16 nebo 32 bitových slov (až 4 Gbit na délku).
  • BCD , desetinné číslice (0..9) reprezentované nerozbalenými bajty.
  • Balený BCD , dvě BCD číslice v jednom bajtu (rozsah 0..99).

Příklad kódu

Následující zdrojový kód sestavy i386 je pro podprogram pojmenovaný, _strtolowerkterý kopíruje řetězec znaků ASCIIZ s nulovým zakončením z jednoho umístění do druhého a převádí všechny abecední znaky na malá písmena. Řetězec je kopírován po jednom bajtu (8bitový znak).

                         
                         
                         
                         
                         
                         
                         
                         
                         
00000000                     
00000000  55
00000001  89 E5
00000003  8B 75 0C
00000006  8B 7D 08
00000009  8A 06
0000000B  46
0000000C  3C 41
0000000E  7C 06
00000010  3C 5A
00000012  7F 02
00000014  04 20
00000016  88 07
00000018  47
00000019  3C 00
0000001B  75 EC
0000001D  5D
0000001E  C3          
0000001F          
; _strtolower:
; Copy a null-terminated ASCII string, converting
; all alphabetic characters to lower case.
;
; Entry stack parameters
;      [ESP+8] = src, Address of source string
;      [ESP+4] = dst, Address of target string
;      [ESP+0] = Return address
;
_strtolower proc
            push    ebp             ;Set up the call frame
            mov     ebp,esp
            mov     esi,[ebp+12]    ;Set ESI = src
            mov     edi,[ebp+8]     ;Set EDI = dst
loop        mov     al,[esi]        ;Load AL from [src]
            inc     esi             ;Increment src
            cmp     al,'A'          ;If AL < 'A',
            jl      copy            ; Skip conversion
            cmp     al,'Z'          ;If AL > 'Z',
            jg      copy            ; Skip conversion
            add     al,'a'-'A'      ;Convert AL to lowercase
copy        mov     [edi],al        ;Store AL to [dst]
            inc     edi             ;Increment dst
            cmp     al,0            ;If AL <> 0,
            jne     loop            ; Repeat the loop
done        pop     ebp             ;Restore the prev call frame
            ret                     ;Return to caller
            end     proc

Ukázkový kód používá registr EBP (základní ukazatel) k vytvoření rámce volání , oblasti v zásobníku, která obsahuje všechny parametry a lokální proměnné pro provedení podprogramu. Tento druh konvence volání podporuje reentrantní a rekurzivní kód a Algolské jazyky jej používají od konce padesátých let minulého století. Model ploché paměti se konkrétně předpokládá, že segmenty DS a ES adresují stejnou oblast paměti.

Varianty čipů

80386SX

Verze procesoru Intel 80386SX pro povrchovou montáž v počítači Compaq Deskpro. Nelze jej upgradovat, pokud není provedena oprava desky horkého vzduchu
Zemřít Intel 80386SX
i386SL z roku 1990

V roce 1988 Intel představil 80386SX , nejčastěji označovaný jako 386SX , zkrácenou verzi 80386 se 16bitovou datovou sběrnicí určenou především pro levnější počítače zaměřené na domácí, vzdělávací a malé obchodní trhy. , zatímco 386DX zůstal špičkovou variantou používanou na pracovních stanicích, serverech a dalších náročných úkolech. CPU zůstal interně plně 32bitový, ale 16bitová sběrnice měla zjednodušit rozvržení obvodové desky a snížit celkové náklady. 16bitová sběrnice zjednodušila design, ale omezila výkon. K adresové sběrnici bylo připojeno pouze 24 pinů, což omezilo adresování na 16  MB , ale v té době to nebylo kritické omezení. Rozdíly ve výkonu nebyly způsobeny pouze rozdílnými šířkami datové sběrnice, ale také kvůli vyrovnávací paměti zvyšující výkon, často využívané na deskách využívajících původní čip.

Původní 80386 byl následně přejmenován na i386DX, aby nedošlo k záměně. Intel však následně použil příponu „DX“ k označení schopnosti i486DX s plovoucí desetinnou čárkou. 387SX byla část 80387, která byla kompatibilní s 386SX (tj. S 16bitovou databází). 386SX byl zabalen v povrchové montáži QFP a někdy nabízen v zásuvce, aby bylo možné provést upgrade.

80386SL

80386SL byl představen jako energeticky úsporném provedení pro přenosné počítače . Procesor nabízel několik možností správy napájení (např. SMM ) a také různé režimy „spánku“, které šetřily energii baterie . Obsahoval také podporu pro externí mezipaměť 16 až 64 kB . Extra funkce a techniky implementace obvodů způsobily, že tato varianta měla více než 3krát více tranzistorů než i386DX. I386SL byl poprvé k dispozici při taktu 20 MHz, přičemž později byl přidán model 25 MHz.

Obchodní význam

První počítač založený na Intel 80386 byl Compaq Deskpro . Společnost Compaq rozšířením 16/24bitového standardu IBM PC/AT do nativně 32bitového výpočetního prostředí se stala první společností, která na platformě PC navrhla a vyrobila tak významný technický hardware. IBM bylo nabídnuto použití 80386, ale mělo výrobní práva pro dřívější 80286 . IBM se proto rozhodlo na tento procesor spolehnout ještě několik let. Počáteční úspěch Compaq Deskpro 386 hrál důležitou roli při legitimizaci odvětví „klonování“ počítačů a při zdůrazňování role IBM v něm.

Před rokem 386 kvůli obtížnosti výroby mikročipů a nejistotě spolehlivého zásobování bylo žádoucí, aby jakýkoli polovodič na masovém trhu byl získáván z více zdrojů, tj. Od dvou nebo více výrobců, druhé a další společnosti vyrábějící na základě licence od původní společnost. 386 byl po určitou dobu (4,7 let) k dispozici pouze od společnosti Intel, protože Andy Grove , tehdejší generální ředitel společnosti Intel, se rozhodl nepodporovat ostatní výrobce, aby vyráběli procesor jako druhý zdroj . Toto rozhodnutí bylo nakonec klíčové pro úspěch společnosti Intel na trhu. 386 byl prvním významným mikroprocesorem, který byl získán z jednoho zdroje . Single-sourcing 386 umožnil společnosti Intel větší kontrolu nad jejím vývojem a podstatně vyšší zisky v pozdějších letech.

AMD představilo svůj kompatibilní procesor Am386 v březnu 1991 po překonání zákonných překážek, čímž skončil 4,7letý monopol Intelu na procesorech kompatibilních s 386. Od roku 1991 IBM také vyrobila 386 čipů v licenci pro použití pouze v počítačích a deskách IBM.

Kompatibilní

Intel i386 zabalený společností IBM
  • AMD AMD AM386 SX a Am386DX byly téměř přesné klony i386SX a i386DX. Právní spory způsobily několikaleté zpoždění výroby, ale 40 MHz část AMD se nakonec stala velmi oblíbenou u počítačových nadšenců jako levná a málo výkonná alternativa k 25 MHz 486SX. Příkon byl dále snížen u „modelů notebooků“ (Am386 DXL/SXL/DXLV/SXLV), které mohly pracovat s 3,3 V a byly implementovány v plně statických obvodech CMOS .
  • Čipy a technologie Super386 38600SX a 38600DX byly vyvinuty pomocí reverzního inženýrství . Prodávaly se špatně kvůli některým technickým chybám a nekompatibilitě a také kvůli jejich pozdnímu vystoupení na trhu. Byly to tedy výrobky s krátkou životností.
  • Cyrix Cx486SLC / Cx486DLC by mohl být (zjednodušeně) popsán jako druh hybridního čipu 386/486, který obsahoval malé množství mezipaměti na čipu. Byl oblíbený mezi počítačovými nadšenci, ale s OEM si vedl špatně . Procesory Cyrix Cx486SLC a Cyrix Cx486DLC byly pinově kompatibilní s i386SX a i386DX. Tyto procesory byly také vyráběny a prodávány společností Texas Instruments .
  • IBM 386SLC a 486SLC / DLC byly varianty designu Intel, který obsahoval velké množství on-chip cache (8 kB, a později 16 kb). Dohoda se společností Intel omezila jejich použití pouze na vlastní řadu počítačů a upgradovacích desek IBM, takže nebyly k dispozici na volném trhu.

Počáteční problémy

Intel původně zamýšlel, aby 80386 debutoval na 16 MHz. Kvůli špatným výnosům byl však místo toho zaveden na 12,5 MHz.

Na začátku výroby Intel objevil okrajový obvod, který by mohl způsobit, že systém vrátí nesprávné výsledky z 32bitových operací násobení. Nebyly ovlivněny všechny již vyrobené procesory, takže Intel testoval svůj inventář. Procesory, u nichž bylo zjištěno, že neobsahují chyby, byly označeny dvojitou sigma (ΣΣ) a dotčené procesory byly označeny „POUZE 16 BIT S/W“. Tyto druhé procesory byly prodávány jako dobré součásti, protože v té době 32bitová schopnost nebyla pro většinu uživatelů relevantní. Takové čipy jsou nyní extrémně vzácné a staly se sběratelskými.

I387 matematický koprocesor nebyl připraven včas pro zavedení 80386, a proto mnoho z časných 80386 desky namísto poskytovaných socket a hardwarovou logiku , aby použitím 80287 . V této konfiguraci pracoval FPU asynchronně k CPU, obvykle s taktovací frekvencí 10 MHz. Originální Compaq Deskpro 386 je příkladem takového designu. To však bylo nepříjemné pro ty, kteří záviseli na výkonu s plovoucí desetinnou čárkou, protože výkonnostní výhody 80387 oproti 80287 byly značné.

Upgrady kompatibilní s pinem

Typických 386 upgradovacích CPU od Cyrix a Texas Instruments

Intel později nabídl upravenou verzi svého 486DX v balení i386, označeného jako Intel RapidCAD . To poskytlo cestu k upgradu pro uživatele s hardwarem kompatibilním s i386. Upgrade byl dvojicí čipů, které nahradily i386 i i387. Protože design 486DX obsahoval FPU , čip, který nahradil i386, obsahoval funkce s plovoucí desetinnou čárkou a čip, který nahradil i387, sloužil velmi málo účelu. Druhý čip byl však nezbytný k poskytnutí signálu FERR základní desce a vypadal, že funguje jako normální jednotka s plovoucí desetinnou čárkou.

Třetí strany nabídly širokou škálu vylepšení pro systémy SX i DX. Nejoblíbenější byly založeny na jádru Cyrix 486DLC/SLC, které obvykle nabízelo podstatné zlepšení rychlosti díky efektivnějšímu instrukčnímu kanálu a interní mezipaměti L1 SRAM. Cache byla obvykle 1 kB, nebo někdy 8 kB ve variantě TI. Některé z těchto upgradovacích čipů (jako například 486DRx2/SRx2) prodával samotný Cyrix, ale častěji se vyskytovaly v sadách nabízených specialisty na upgrade, jako jsou Kingston, Evergreen a Improve-It Technologies. Některé z nejrychlejších modulů upgradu procesoru obsahovaly rodinu IBM SLC/DLC (pozoruhodná 16 kB mezipamětí L1) nebo dokonce samotný Intel 486. Mnoho 386 upgradovacích sad bylo inzerováno jako jednoduchá výměna za zasouvání, ale často vyžadovalo komplikovaný software pro ovládání zdvojnásobení mezipaměti nebo hodin. Část problému spočívala v tom, že na většině 386 základních desek byla řada A20 ovládána výhradně základní deskou, přičemž CPU nevěděl, což způsobilo problémy s CPU s interními mezipaměti.

Celkově bylo velmi obtížné konfigurovat upgrady tak, aby vytvářely výsledky inzerované na obalu, a upgrady často nebyly příliš stabilní nebo nebyly plně kompatibilní.

Modely a varianty

Rané modely 5 V.

i386DX

Intel i386DX, 25 MHz

Původní verze, vydaná v říjnu 1985.

  • Schopný pracovat s 16 nebo 32bitovými externími sběrnicemi
  • Cache: závisí na základní desce
  • Balíček: PGA -132 nebo PQFP -132
  • Postup: První typy CHMOS III, 1,5 µm, později CHMOS IV, 1 µm
  • Velikost matrice: 104 mm² (přibližně 10 mm × 10 mm) u CHMOS III a 39 mm² (6 mm × 6,5 mm) u CHMOS IV.
  • Počet tranzistorů: 275 000
  • Uvedený maximální takt: 12 MHz (starší modely), později 16, 20, 25 a 33 MHz
80386SX 16 MHz

RapidCAD

Speciálně zabalený Intel 486 DX a fiktivní jednotka s plovoucí desetinnou čárkou (FPU) navržená jako náhrada kompatibilní s kolíky pro procesory i386 a i387 FPU.

Verze pro vestavěné systémy

80376

Jednalo se o vestavěnou verzi 80386SX, která nepodporovala skutečný režim a stránkování v MMU.

i386EX, i386EXTB a i386EXTC

Intel i386EXTC, 25 MHz

Správa systému a napájení a vestavěné periferní a podpůrné funkce: Dva řadiče přerušení 82C59A; Časovač, čítač (3 kanály); Asynchronní SIO (2 kanály); Synchronní SIO (1 kanál); Watchdog timer (Hardware/Software); PIO . Použitelné s FPU 80387SX nebo i387SL.

  • Datová / adresová sběrnice: 16/26 bitů
  • Balíček: PQFP -132, SQFP -144 a PGA -168
  • Proces: CHMOS V, 0,8 µm
  • Uvedené maximální hodiny:
    • i386EX: 16 MHz @2,7 ~ 3,3 voltů nebo 20 MHz @3,0 ~ 3,6 voltů nebo 25 MHz @4,5 ~ 5,5 voltů
    • i386EXTB: 20 ​​MHz @2,7 ~ 3,6 voltů nebo 25 MHz @3,0 ~ 3,6 voltů
    • i386EXTC: 25 MHz @4,5 ~ 5,5 voltů nebo 33 MHz @4,5 ~ 5,5 voltů

i386CXSA a i386SXSA (nebo i386SXTA)

Intel i386CXSA, 25 MHz

Transparentní režim správy napájení, integrované vstupy kompatibilní s MMU a TTL (pouze 386SXSA). Použitelné s FPU i387SX nebo i387SL.

  • Datová / adresová sběrnice: 16/26 bitů (24 bitů pro i386SXSA)
  • Balení: BQFP -100
  • Napětí: 4,5 ~ 5,5 voltů (25 a 33 MHz); 4,75 ~ 5,25 voltů (40 MHz)
  • Proces: CHMOS V, 0,8 µm
  • Uvedený maximální takt: 25, 33, 40 MHz

i386CXSB

Transparentní režim správy napájení a integrovaná MMU . Použitelné s FPU i387SX nebo i387SL.

  • Datová / adresová sběrnice: 16/26 bitů
  • Balení: BQFP -100
  • Napětí: 3,0 V (16 MHz) nebo 3,3 V (25 MHz)
  • Proces: CHMOS V, 0,8 µm
  • Uvedený maximální takt: 16, 25 MHz

Zastarávání

Windows 95 byl jediným záznamem v sérii Windows 9x, který oficiálně podporoval 386, vyžadující alespoň 386DX, ačkoli bylo doporučeno 486 nebo lepší; Windows 98 vyžaduje 486DX nebo vyšší. Ve Windows NT rodiny, Windows NT 3.51 byla poslední verze s 386 podporu.

Debian GNU/Linux odstranil podporu 386 s vydáním 3.1 ( Sarge ) v roce 2005. S odvoláním na zátěž údržby kolem primitiv SMP vývojáři linuxového jádra omezili podporu z vývojové kódové základny v prosinci 2012, později vydané jako verze jádra 3.8.

Mezi BSD , FreeBSD ‚s 5.x vydání byla poslední na podporu 386; podpora pro 386SX byla zrušena s vydáním 5.2, zatímco zbývající podpora 386 byla odstraněna s vydáním 6.0 v roce 2005. OpenBSD odstranilo 386 podpory s verzí 4.2 (2007), DragonFly BSD s vydáním 1.12 (2008) a NetBSD s vydáním 5.0 (2009).

Viz také

Poznámky a reference

externí odkazy