Intel 80286 | |
---|---|
prosessori | |
Mikroprosessori Intel 80286 (8 MHz) | |
Tuotanto | 1. helmikuuta 1982 1990-luvun alkuun |
Kehittäjä | Intel |
Valmistajat | |
CPU- taajuus | 4-25 MHz |
Tuotantoteknologia | 1,5 µm |
Ohjesarjat | x86-16 ( MMU :n kanssa ) |
Liittimet | |
Nuclei | |
Intel 80188Intel 80386 |
Intel 80286 (tunnetaan myös nimellä i80286, i286, slang deuce ) on 16-bittinen x86 - yhteensopiva Intelin toisen sukupolven mikroprosessori , joka julkaistiin 1. helmikuuta 1982. Se on Intel 8086 -prosessorin parannettu versio ja sen suorituskyky on 3-6 kertaa parempi. Prosessoria käytettiin pääasiassa IBM PC -yhteensopivissa tietokoneissa .
Intel 80286 -prosessori kehitettiin rinnakkain Intel 80186 / 80188 -prosessorien kanssa, mutta siitä puuttui joitain Intel 80186 -prosessorissa saatavilla olevia moduuleja. Intel 80286 -prosessori valmistettiin täsmälleen samassa paketissa kuin Intel 80186 - LCC , kuten sekä PGA - tyyppisissä tapauksissa 68 johtopäätöstä. Rekistereiden määrää lisättiin uudessa prosessorissa , lisättiin uusia ohjeita , lisättiin uusi prosessoritila - suojattu tila . Prosessorissa oli 6 - tavuinen jono (kuten Intel 8086). Osoite- ja dataväyliä ei ole multipleksoitu siinä (eli osoitteet ja tiedot välitetään eri pinnoilla). Osoiteväylä on kasvatettu 24-bittiseksi, joten RAM -muistin määrä voi olla 16 MB. Nopeampiin liukulukutoimintoihin tarvitaan Intel 80287 matemaattinen apuprosessori .
Intel 8086 -prosessorin 14 rekisterin lisäksi lisättiin 11 uutta rekisteriä suojatun tilan ja muiden toimintojen toteuttamiseksi: koneen tilasanarekisteri, 16 bittiä (MSW); tehtävärekisteri, 16 bittiä (TR); deskriptoritaulukkorekisterit , yksi 64-bittinen ja kaksi 40-bittinen ( GDTR , IDTR, LDTR ) ja 6 segmenttirekisterilaajennusrekisteriä , 48-bittinen.
Prosessorissa oli sama käskysarja kuin Intel 80186 -prosessorissa, johon lisättiin 16 uutta käskyä (LGDT, LIDT, LLDT, LMSW, LTR, SGDT, SIDT, SLDT, SMSW, STR, ARPL, CLTS, LAR, LSL, VERR , VERW) tarvitaan työskennelläkseen muistinhallintatyökalujen kanssa. PUSH-komento voi nyt tallentaa vakiot pinoon . Intel 80286:n ohjeet suoritetaan keskimäärin 4,5 jaksossa.
24-bittinen osoiteväylä mahdollistaa 16 megatavun fyysisen muistin osoittamisen, mutta todellisessa tilassa on käytettävissä vain 1 MB (640 KB tavallista muistia ja 384 KB laajennettua muistia) alhaisista osoitteista alkaen. Ohjelmiston näkökulmasta muisti on järjestetty segmenttien muodossa, kuten 8086:ssa, mutta segmentoinnin ohjauksessa on merkittäviä eroja todellisissa ja suojatuissa tiloissa.
Reaalitilassa muistin osoitus ilmoittaa täydellisen yhteensopivuuden 8086-prosessorin kanssa, joka 20-bittisellä osoiteväylällä kattaa 1 Mt:n fyysisen muistitilan. Itse asiassa PC-ohjelmistokehittäjien iloksi 80286:ssa on bugi, joka on "laillistettu" tulevien prosessorien sukupolviin. Fyysistä osoitetta laskettaessa voi tapahtua ylivuoto, joka 20-bittisellä osoiteväylällä yksinkertaisesti jätetään huomiotta. Jos esimerkiksi Seg=FFFFh ja EA=FFFFh, kaavalla PA=16 x Seg + EA=10FFEF lasketun fyysisen osoitteen tulkitsee 8086-prosessori 0FFEF:ksi - ensimmäiseen megatavuun kuuluvaksi osoitteeksi. 80286-prosessorin lähtö A20 asetetaan kuitenkin tässä tapauksessa yhdeksi, joka vastaa solun osoitetta fyysisen muistin toisesta megatavusta. Ohjelmiston täyden yhteensopivuuden varmistamiseksi 8086:n kanssa PC-piiriin lisättiin erityinen Gate A20 -portti, joka pakottaa nollaamaan järjestelmäosoiteväylän A20-bitin. Ymmärtämättä tämän virheen mahdollista hyötyä, portin ohjaus laillistettiin näppäimistöohjaimen 8042 ohjelmistoohjatun bitin kautta. Kun RAM halpeni ja ohjelmistojen "halu" kasvoi, jotkin paikalliset ohjelmat tai jopa osa käyttöjärjestelmää, ja nopeammat menetelmät ovat näyttäneet nopeuttavan venttiilin ohjausta (Gate A20 Fast Control).
Toisin kuin 8086, 80286-prosessorissa on segmenttien rajan ylitysohjaimet, jotka toimivat myös reaalitilassa. Kun yrität osoittaa sanaa, jonka poikkeama on FFFFh (sen korkea tavu ylittää segmentin rajan) tai suoritat käskyn, jonka tavut eivät mahdu tähän segmenttiin, prosessori luo keskeytyksen - poikkeuksena tyyppi 13 (0Dh) - Segmentin ylityspoikkeus. Yritys suorittaa ESCAPE-käsky muistioperandilla, joka ei mahdu segmenttiin, aiheuttaa tyypin 9 poikkeuksen - Prosessorin laajennussegmentin ylityskeskeytys.
Suojatussa tilassa kaikki 8086:lle ja reaalitilalle 80286 sallitut osoitemoodit toimivat. Erot liittyvät segmenttien määrittelyyn:
Intel 80286 -prosessori toteutti kaksi toimintatilaa - suojattu tila ja todellinen tila . Reaalitilassa prosessori oli täysin yhteensopiva sitä ennen julkaistujen x86-suorittimien kanssa, eli prosessori pystyi suorittamaan Intel 8086/8088/8018x:lle tarkoitettuja ohjelmia ilman kokoamista tai uudelleenkokoonpanoa pienin muutoksin. Osoitteenmuodostukseen osallistui vain 20 osoiteväylälinjaa, joten osoitettavan muistin enimmäismäärä tässä tilassa pysyi samana - 1 MB. Suojatussa tilassa prosessori pystyi käsittelemään jopa 1 Gt virtuaalista muistia (kun todellisen muistin määrä oli enintään 16 Mt) muuttamalla muistin osoitemekanismia. Siirtyminen reaalitilasta suojattuun tilaan tapahtuu ohjelmistossa ja on suhteellisen yksinkertaista, mutta takaisin vaihtaminen vaatii prosessorin laitteiston nollauksen, joka IBM PC-yhteensopivissa koneissa yleensä suoritettiin näppäimistöohjaimella. Machine Status Word (MSW) -rekisteriä käytetään seuraamaan prosessorin nykyistä toimintatilaa. Reaalitilan ohjelmat eivät voi toimia suojatussa tilassa ilman muutoksia, kuten koneen BIOS -ohjelmat.
Suojatun tilan olemus on seuraava. Ohjelmoija ja hänen kehittämänsä ohjelmat käyttävät loogista osoiteavaruutta (virtuaaliosoiteavaruutta), jonka koko voi olla 1024 MB (Intel 80286). Muistinhallintayksikkö ( MMU ) muuntaa loogisen osoitteen automaattisesti fyysiseksi osoitteeksi. Suojatussa tilassa vain se osa ohjelmasta, jota sillä hetkellä tarvitaan, voidaan tallentaa muistiin ja loput ulkoiseen muistiin (esimerkiksi kiintolevylle). Jos käytetään ohjelman osaa, joka ei ole tällä hetkellä muistissa, käyttöjärjestelmä voi keskeyttää ohjelman, ladata tarvittavan koodiosan ulkoisesta muistista ja jatkaa ohjelman suorittamista. Siksi ohjelmat, jotka ovat suurempia kuin käytettävissä olevan muistin määrä, tulevat voimaan. Toisin sanoen käyttäjä näyttää, että hän työskentelee enemmän muistia kuin hän todellisuudessa on. Virtuaalimuistijärjestelmän toteutus oli kuitenkin vielä kaukana täydellisestä. Suojattu tila vaatii moniajokäyttöjärjestelmän, kuten Microsoft Windows 2.0 :n , IBM OS/2 :n tai UNIXin .
Fyysinen osoite muodostetaan seuraavasti. Segmenttirekisterit tallentavat valitsimen , joka sisältää deskriptorin indeksin deskriptoritaulukossa ( 13 bittiä), yhden bitin, joka määrittää, mihin kuvaajataulukkoon päästään (paikallinen tai globaali) ja kaksi bittiä pyydetystä käyttöoikeustasosta. Seuraavaksi päästään vastaavaan kuvaajataulukkoon ja vastaavaan kuvaajaan, joka sisälsi alkuperäisen, 24-bittisen segmentin osoitteen, segmentin koon ja käyttöoikeudet. Tämän jälkeen tarvittava fyysinen osoite laskettiin lisäämällä segmentin osoite 16-bittiseen osoitinrekisteriin tallennettuun offsettiin.
Intel 80286 -prosessorin suojatussa tilassa oli kuitenkin joitain haittoja. Se ei ollut yhteensopiva MS-DOSin reaalitilaan kirjoitettujen ohjelmien kanssa. Siirtyminen suojatusta tilasta reaalitilaan vaati prosessorin laitteiston nollauksen.
Intel 80286 -prosessorissa otettiin käyttöön etuoikeussuojaus suojatakseen sellaisten etuoikeutettujen komentojen suorittamista, jotka voivat muuttaa rajusti koko järjestelmän tilaa, suojatakseen pääsyä tietoihin ja suojatakseen koodisegmenttejä . 4 käyttöoikeustasoa jaettiin, niin sanotut suojarenkaat (Ring) - etuoikeutetuimmasta tasosta 0 (Ring 0), joka on tarkoitettu järjestelmäytimelle, vähiten etuoikeutetulle tasolle 3 (Ring 3), joka on tarkoitettu sovellusohjelmille.
Huolimatta siitä, että 80286-suojattu tila julkistettiin vuonna 1982, henkilökohtaisten tietokoneiden suojaustilaa on käytetty rajoitetusti pitkään. Suurin syy tähän oli 8086-prosessorille kirjoitettujen ohjelmien yhteensopimattomuus suojatun tilan kanssa.Yksi ongelmista johtui siitä, että 8086:n käyttämä segmenttimuistiosoite mahdollisti saman osoitteen muodostamisen useiden segmenttien + kanssa. offset-yhdistelmät ja ohjelmat osallistuivat tällaisen yhdistelmän muodostamiseen. , ei käyttöjärjestelmää. Esimerkiksi, jos 8086:n ohjelma tarvitsi muistilohkon, se ottaisi muistin ensimmäisen vapaan tavun segmentin ja offsetin, jakaa offsetin 16:lla ja lisää sen segmentin arvoon muodostaen näin uuden, käyttämätön segmentti. Kuitenkin 80286:ssa segmentin arvoa käytetään indeksinä kuvaajataulukkoon. Jos segmentti valitaan mielivaltaisesti, vastaavaa kuvaajaa taulukossa ei välttämättä näy tai kuvaajassa on sopimattomia parametreja. Vain käyttöjärjestelmä voi muokata kuvaustaulukkoa suojauksen olemassaolon vuoksi.
Toinen ongelma oli koodi- ja datasegmenttien erottaminen. Suojatussa tilassa ohjelma ei voi muokata koodisegmenttejä tai suorittaa datasegmentissä olevaa koodia, vaikka 8086 ohjelmaa käyttikin tällaisia temppuja.
Toinen ongelma oli se, että IBM PC BIOS -kehittäjät jättivät huomiotta Intelin suositukset ja käyttivät varattuja keskeytysnumeroita. Esimerkiksi aritmeettinen apuprosessori 80287 luo keskeytyksen 10 16 , kun virhe tapahtuu . IBM PC:ssä keskeytystä 10 16 käytetään kuitenkin näytön ohjaamiseen.
Kaikki nämä ongelmat vaativat merkittäviä muutoksia olemassa oleviin ohjelmiin. Käyttöjärjestelmän kehittäjät joutuivat valitsemaan suhteellisen yksinkertaisen järjestelmän, joka toimii vain suojatussa tilassa, mutta joka ei ole yhteensopiva useimpien aiemmin kirjoitettujen ohjelmien kanssa, tai järjestelmän, joka sisältää komponentteja sekä reaali- että suojatussa tilassa työskentelyyn ja vaihtaa niiden välillä tarpeen mukaan. (joka on mahdollista vain prosessorin nollauksella ja vähentää merkittävästi suorituskykyä), mikä varmistaa yhteensopivuuden aiemmin kirjoitettujen ohjelmien kanssa [2] .
Tammikuussa 1985 Digital Research julkisti Concurrent DOS 286 -käyttöjärjestelmän, joka on luotu yhteistyössä Intelin kanssa . Tuotteen oli tarkoitus käyttää vain 80286 suojattua tilaa, mikä tarjosi käyttäjille kaikki tämän tilan edut tarjoamalla usean käyttäjän moniajo ohjelmien suorittamisen samalla kun tuki 8086-emulointia [3] . Ilmoitetut ominaisuudet toimivat kehitysvaiheessa käytetyssä B-1- askelprosessorissa , mutta toukokuussa Digital Research havaitsi ongelmia emuloinnissa C-1-sarjan askelprosessorissa, mikä ei sallinut Concurrent DOS 286:n ajaa ohjelmia 8086:lle. suojatussa tilassa. Concurrent DOS 286:n julkaisu viivästyi, ja Intel alkoi kehittää uutta versiota sirusta [3] . Elokuussa 80286 E-1 stepping -näytteiden laajan testauksen jälkeen Digital Research vahvisti, että Intel oli korjannut kaikki dokumentoidut virheet, mutta totesi, että Concurrent DOS 286:n julkaisua edeltävässä versiossa oli edelleen dokumentoimattomia suorituskykyongelmia. Intel ilmoitti, että Digital Researchin valitsemat emulointiohjelmat 8086:lle suojatussa tilassa poikkeavat alkuperäisistä teknisistä tiedoista. Intel teki kuitenkin pieniä mikrokoodimuutoksia E-2-askelprosessoreihin, mikä mahdollisti Digital Researchin emuloinnin paljon nopeammin [4] . Vuonna 1986 IBM valitsi Concurrent DOS 286:n (nimesi sen uudelleen IBM 4680 OS : ksi ) IBM 4680 -tietokoneen käyttöjärjestelmäksi , jota käytettiin vähittäiskaupan järjestelmässä POS-päätteenä [5] . Samat rajoitukset koskivat FlexOS 286 :n versiota 1.0 , Concurrent DOS 286:n seuraajaa, jonka Digital Research kehitti vuonna 1986 ja esitteli tammikuussa 1987 (IBM käytti tätä järjestelmää myöhemmin IBM 4690 -käyttöjärjestelmän perustana ).
Näiden ongelmien vuoksi Bill Gates kutsui 80286:ta "aivokuolleeksi siruksi" [6] , koska oli ilmeistä, että uusi Microsoft Windows -käyttöjärjestelmä ei pystyisi ajamaan useita MS-DOS- sovelluksia samanaikaisesti 80286:ssa. aiheutti eron Microsoftin ja IBM:n välillä, koska IBM vaati, että OS/2 , alun perin IBM:n ja Microsoftin yhteinen kehitys, tuki 80286-suojattua tilaa.
Suojatun tilan tuki on toteutettu myös käyttöjärjestelmissä Coherent , Xenix , NetWare 286 , iRMX , OS/2 , Windows 3.0 .
Vuonna 1984 IBM esitteli Intel 80286 -prosessoriin perustuvan PC:nsä taajuudella 6 MHz - IBM PC AT, joka herätti suurta kiinnostusta x86-arkkitehtuuriin yleensä ja erityisesti IBM PC:hen. Vuonna 1987 IBM julkaisee uusia PC-malleja - IBM PS / 2-50 ja IBM PS / 2-60. Kun IBM PS / 2 PC julkaistiin, IBM ei ollut enää monopoliasema henkilökohtaisten tietokoneiden markkinoilla, monet yritykset tuottivat samanlaisia malleja, usein halvempia.
Koska Intel myi lisenssejä 80286-mikroprosessorien tuotantoon, monet yritykset itse asiassa tuottivat tämän mikroprosessorin klooneja - AMD , Siemens AG ja HARRIS . Käänteisen suunnittelun avulla luotiin 80286:n klooneja:
Mukana oli myös Intelistä riippumattomia prosessoreita, kuten Zilog , Motorola ja muut.
Intelin prosessorit | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|