Intel 80286

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 14 april 2021; kontroller kräver 9 redigeringar .
Intel 80286
CPU

Mikroprocessor Intel 80286 (8 MHz)
Produktion 1 februari 1982 till början av 1990-talet
Utvecklaren Intel
Tillverkare
CPU- frekvens 4-25  MHz
Produktionsteknik 1,5  µm
Instruktionsuppsättningar x86-16 (med MMU )
Kontakter
Kärnor
Intel 80188Intel 80386

Intel 80286 (även känd som i80286, i286, slang deuce ) är en 16-bitars x86 - kompatibel mikroprocessor av andra generationen från Intel, släppt den 1 februari 1982. Det är en förbättrad version av Intel 8086-processorn och har 3-6 gånger högre prestanda. Processorn användes främst i IBM PC-kompatibla datorer .

Beskrivning

Intel 80286-processorn utvecklades parallellt med Intel 80186 / 80188-processorerna , dock saknade den några moduler som fanns i Intel 80186. Intel 80286-processorn tillverkades i exakt samma paket som Intel 80186 - LCC , som såväl som i fall av PGA -typ med 68 slutsatser. Antalet register utökades i den nya processorn , nya instruktioner lades till, ett nytt processorläge lades till - skyddat läge . Processorn hade en kö på 6 byte (som Intel 8086). Adress- och databussarna multiplexeras inte i den (det vill säga adresser och data överförs på olika stift). Adressbussen har utökats till 24 bitar, så mängden RAM kan vara 16 MB. För snabbare flyttalsoperationer krävs Intel 80287 matematisk samprocessor .

Register

Utöver de 14 registren för Intel 8086-processorn, lades 11 nya register till för att implementera skyddat läge och andra funktioner: maskinstatusordregister, 16 bitar (MSW); uppgiftsregister, 16 bitar (TR); deskriptortabellregister , ett 64-bitars och två 40-bitars ( GDTR , IDTR, LDTR ) och 6 segmentregisterutvidgningsregister, 48 ​​bitar.

Instruktioner

Processorn hade samma instruktionsuppsättning som Intel 80186-processorn, till vilken 16 nya instruktioner lades till (LGDT, LIDT, LLDT, LMSW, LTR, SGDT, SIDT, SLDT, SMSW, STR, ARPL, CLTS, LAR, LSL, VERR , VERW) som behövs för att arbeta med verktyg för minneshantering. Kommandot PUSH kunde nu spara konstanter i stacken . Instruktioner i Intel 80286 exekveras i genomsnitt 4,5 cykler.

Minnesorganisation

24-bitars adressbussen tillåter adressering av 16 MB fysiskt minne, men i verkligt läge är endast 1 MB (640 KB vanligt minne och 384 KB utökat minne) tillgängligt, från låga adresser. Ur mjukvarusynpunkt är minnet organiserat i form av segment, precis som i 8086, men segmenteringskontroll har betydande skillnader för verkliga och skyddade lägen.

I verkligt läge deklarerar minnesadressering full kompatibilitet med 8086-processorn, som med sin 20-bitars adressbuss täcker ett fysiskt minnesutrymme på 1 MB. Till PC-programutvecklarnas glädje har 80286 faktiskt en bugg som är "legaliserad" i framtida generationer av processorer. Vid beräkning av en fysisk adress kan ett spill uppstå som med en 20-bitars adressbuss helt enkelt ignoreras. Om till exempel Seg=FFFFh och EA=FFFFh, tolkas den fysiska adressen beräknad med formeln PA=16 x Seg + EA=10FFEF av 8086-processorn som 0FFEF - adressen som tillhör den första megabyten. Emellertid kommer utgången A20 från 80286-processorn i detta fall att ställas in på ett, vilket motsvarar adressen för cellen från den andra megabyten av fysiskt minne. För att säkerställa full mjukvarukompatibilitet med 8086, introducerades en speciell Gate A20-grind i PC-kretsen, som tvångsåterställer A20-biten på systemadressbussen. Utan att inse den potentiella fördelen av detta fel legaliserades grindkontroll genom en mjukvarustyrd bit av tangentbordskontrollern 8042. När RAM -minnet blev billigare och "aptiten" på programvaran växte, blev vissa inhemska program eller till och med delar av operativsystemet och snabbare metoder har dykt upp för att påskynda ventilkontroll (Gate A20 Fast Control).

Till skillnad från 8086 har 80286-processorn segmentgränsövergångskontroller som också fungerar i verkligt läge. När du försöker adressera ett ord med en offset på FFFFh (dess höga byte går utanför segmentgränsen) eller exekverar en instruktion vars byte inte passar i detta segment, genererar processorn ett avbrott - ett undantag av typ 13 (0Dh) - Undantag för segmentöverskridande. Ett försök att exekvera en ESCAPE-instruktion med en minnesoperand som inte passar i segmentet ger ett undantag av typ 9 - Processor Extension Segment Overrrun Interrupt.

I skyddat läge fungerar alla adresseringslägen för 8086 och real mode 80286. Skillnaderna hänför sig till definitionen av segment:

Driftlägen för Intel 80286-processorn

Intel 80286-processorn implementerade två lägen för driftskyddat läge och verkligt läge . I verkligt läge var processorn fullt kompatibel med x86-processorer som släppts innan dess, det vill säga att processorn kunde köra program avsedda för Intel 8086/8088/8018x utan återmontering eller återmontering med minimala modifieringar. Endast 20 adressbusslinjer deltog i adressbildningen, så den maximala mängden adresserbart minne i detta läge förblev densamma - 1 MB. I skyddat läge kunde processorn adressera upp till 1 GB virtuellt minne (medan mängden verkligt minne inte var mer än 16 MB) genom att ändra minnesadresseringsmekanismen. Att byta från verkligt läge till säkert läge görs i mjukvara och är relativt enkelt, men för att byta tillbaka krävs en hårdvaruåterställning av processorn, vilket i IBM PC-kompatibla maskiner vanligtvis utfördes med hjälp av tangentbordskontrollern. Registret Machine Status Word (MSW) används för att hålla reda på processorns aktuella driftläge. Real mode-program kan inte köras i skyddat läge utan modifiering, precis som maskin- BIOS -program.

Kärnan i det skyddade läget är som följer. Programmeraren och programmen han utvecklar använder ett logiskt adressutrymme (virtuellt adressutrymme), som kan vara 1024 MB stort (för Intel 80286). Den logiska adressen omvandlas automatiskt till en fysisk adress av minneshanteringsenheten ( MMU ). I skyddat läge kan endast den del av programmet som behövs för tillfället lagras i minnet, och resten kan lagras i externt minne (till exempel på en hårddisk). Om en del av programmet nås som för närvarande inte finns i minnet, kan operativsystemet pausa programmet, ladda den nödvändiga koddelen från externt minne och återuppta programkörningen. Därför blir program som är större än mängden tillgängligt minne giltiga. Med andra ord verkar det för användaren att han arbetar med mer minne än vad han egentligen är. Implementeringen av det virtuella minnessystemet var dock fortfarande långt ifrån perfekt. Skyddat läge kräver ett multitasking-operativsystem som Microsoft Windows 2.0 , IBM OS/2 eller UNIX .

Den fysiska adressen bildas enligt följande. Segmentregistren lagrar en väljare som innehåller deskriptorns index i deskriptortabellen ( 13 bitar), en bit som bestämmer vilken deskriptortabell som kommer att nås (lokal eller global) och två bitar av den begärda behörighetsnivån. Därefter öppnas motsvarande tabell med deskriptorer och motsvarande deskriptor, som innehöll den initiala, 24-bitars, segmentadressen, segmentstorleken och åtkomsträttigheterna. Därefter beräknades den erforderliga fysiska adressen genom att addera segmentadressen till offseten lagrad i 16-bitars pekarregistret.

Det skyddade läget i Intel 80286-processorn hade dock vissa nackdelar. Det var inkompatibelt med program skrivna för MS-DOS real mode. För att växla från skyddat läge till verkligt läge krävdes en hårdvaruåterställning av processorn.

Ringar av skydd

För att skydda mot exekvering av privilegierade kommandon som drastiskt kan förändra hela systemets tillstånd, för att skydda åtkomst till data och för att skydda kodsegment, introducerades privilegieskydd i Intel 80286-processorn [1] . 4 nivåer av privilegier tilldelades, de så kallade skyddsringarna (Ring)  - från den mest privilegierade nivån 0 (Ring 0), avsedd för systemkärnan, till den minst privilegierade nivå 3 (Ring 3), avsedd för applikationsprogram.

Stöd för operativsystem

Trots att det tillkännagavs 1982 har det skyddade läget 80286 i persondatorer haft begränsad användning under lång tid. Den främsta anledningen till detta var inkompatibiliteten med det skyddade läget för program skrivna för processorn 8086. Ett av problemen berodde på det faktum att segmentminnesadresseringen som användes av 8086 gjorde det möjligt att bilda samma adress med många segment + offsetkombinationer och program var inblandade i bildandet av en sådan kombination. , inte operativsystemet. Till exempel, om ett program för en 8086 behövde ett minnesblock, skulle det ta segmentet och förskjutningen av den första lediga byten i minnet, dividera förskjutningen med 16 och lägga till den till segmentvärdet och på så sätt bilda en ny, oanvänt segment. I 80286 används dock segmentvärdet som ett index i deskriptortabellen. Om segmentet väljs godtyckligt kan det hända att motsvarande deskriptor i tabellen inte visas, eller så kommer deskriptorn att ha olämpliga parametrar. Endast operativsystemet kan modifiera beskrivningstabellen på grund av förekomsten av skydd.

Ett annat problem var separationen av kod- och datasegment. I skyddat läge kan ett program inte modifiera kodsegment eller exekvera kod placerad i ett datasegment, även om 8086 program använde sådana knep.

Ett annat problem var att IBM PC BIOS -utvecklarna ignorerade Intels rekommendationer och använde reserverade avbrottsnummer. Till exempel genererar den aritmetiska samprocessorn 80287 avbrott 1016 när ett fel inträffar . På IBM PC:n används dock avbrott 10 16 för att styra skärmen.

Alla dessa problem krävde betydande modifieringar av befintliga program. Operativsystemutvecklare ställdes inför valet att bygga ett relativt enkelt system som bara fungerar i skyddat läge, men som inte är kompatibelt med de flesta tidigare skrivna program, eller att skapa ett system som innehåller komponenter för att arbeta i både verkligt och skyddat läge och växlar mellan dem efter behov. (vilket endast är möjligt genom en processoråterställning och avsevärt minskar prestandan), vilket säkerställer kompatibilitet med tidigare skrivna program [2] .

I januari 1985 tillkännagav Digital Research Concurrent DOS 286 , ett operativsystem som skapats tillsammans med Intel . Produkten skulle endast använda 80286-skyddat läge, vilket ger användarna alla fördelar med detta läge genom att tillhandahålla programkörning med flera användare, samtidigt som den stöder 8086-emulering [3] . De deklarerade funktionerna var funktionella på prototypen B-1 stegprocessor som användes i början av utvecklingen , men i maj upptäckte Digital Research problem med emulering på den seriella C-1 stegprocessorn, vilket inte tillät Concurrent DOS 286 att köra program för 8086 i skyddat läge. Utgivningen av Concurrent DOS 286 försenades och Intel började utveckla en ny version av chipet [3] . I augusti, efter omfattande testning av prover av 80286 E-1-stepping, bekräftade Digital Research att Intel hade fixat alla dokumenterade buggar, men uppgav att det återstod odokumenterade prestandaproblem på pre-release-versionen av Concurrent DOS 286. Intel uppgav att Digital Researchs valda emuleringsprogram för 8086 i skyddat läge skiljer sig från de ursprungliga specifikationerna. Intel gjorde dock mindre mikrokodändringar i E-2-stepprocessorerna som gjorde att Digital Research kunde emulera mycket snabbare [4] . 1986 valde IBM Concurrent DOS 286 (döpte om det till IBM 4680 OS) som operativsystem för IBM 4680 - datorn som används i detaljhandelssystemet som en POS-terminal [5] . Samma begränsningar påverkade version 1.0 av FlexOS 286 , efterföljaren till Concurrent DOS 286, utvecklad av Digital Research 1986 och introducerad i januari 1987 (detta system användes senare av IBM som grunden för IBM 4690 OS ).

På grund av dessa problem kallade Bill Gates 80286 till "hjärndöda chip" [6] , eftersom det var uppenbart att det nya Microsoft Windows -operativsystemet inte skulle kunna köra flera MS-DOS- applikationer samtidigt på 80286. Detta kan ha orsakade en splittring mellan Microsoft och IBM, eftersom IBM insisterade på att OS/2 , ursprungligen en gemensam utveckling mellan IBM och Microsoft, stöder 80286 skyddat läge.

Stöd för skyddat läge har också implementerats i operativsystemen Coherent , Xenix , NetWare 286 , iRMX , OS/2 , Windows 3.0 .

Datorer baserade på Intel 80286-processorn

1984 introducerade IBM sin PC baserad på Intel 80286-processorn med en frekvens på 6 MHz – IBM PC AT, vilket väckte stort intresse för x86-arkitekturen i allmänhet och för IBM PC i synnerhet. 1987 släpper IBM nya PC-modeller - IBM PS / 2-50 och IBM PS / 2-60. När IBM PS / 2 PC släpptes var IBM inte längre en monopolist på persondatormarknaden, många företag producerade liknande modeller, ofta billigare.

Konkurrenskraftiga lösningar

Eftersom Intel sålde licenser för produktion av 80286 mikroprocessorer producerade många företag faktiskt kloner av denna mikroprocessor - AMD , Siemens AG och HARRIS . Med hjälp av omvänd ingenjörskonst skapades kloner av 80286:

Det fanns också processorer utvecklade oberoende av Intel, som Zilog , Motorola och andra.

Specifikationer

Anteckningar

  1. Mors S.P., Albert D.D. Mikroprocessorarkitektur 80286 = 80286-arkitekturen. - M . : Radio och kommunikation, 1990. - S.  185 . — 304 sid. — ISBN 5-256-00466-2 .
  2. Petzol, Charles. Hinder för ett vuxet operativsystem  // PC Magazine. - 1986. - V. 5 , nr 11 . — S. 170–74 . Arkiverad från originalet den 25 september 2014.
  3. 12 Edward Foster . Super DOS väntar på ny 80286 – Concurrent DOS 286 – försenad tills Intel uppgraderar chip – erbjuder Xenix kraft och IBM PC-kompatibilitet  // InfoWorld. - InfoWorld Media Group, 1985. - V. 7 , nr 19 . S. 17–18 . ISSN 0199-6649 . Arkiverad från originalet den 25 september 2014.
  4. Edward Foster. Intel visar nytt 80286-chip – Framtiden för DRI:s Concurrent DOS 286 är fortfarande oklar efter att processorn fixats  // InfoWorld. - InfoWorld Media Group, 1985. - V. 7 , nr 34 . - S. 21 . — ISSN 0199-6649 . Arkiverad från originalet den 20 mars 2017.
  5. Melissa Calvo och Jim Forbes. IBM kommer att använda ett DRI-operativsystem  // InfoWorld. - InfoWorld Media Group, 1986. - V. 8 , nr 6 . - S. 12 . — ISSN 0199-6649 . Arkiverad från originalet den 1 oktober 2014.
  6. Mikroprocessorer: En programmerares syn . - New York: McGraw-Hill, 1990. - ISBN 0-07-016638-2 .

Länkar