Intel 8086 | |
---|---|
processzor | |
| |
Termelés | 1978. június 8-tól 1990-ig |
Fejlesztő | Intel |
Gyártók |
|
CPU frekvencia | 4-16 MHz |
Gyártástechnológia | HMOS , CHMOS , 3 µm |
Utasítási készletek | x86-16_ _ |
Csatlakozó | |
Magok | |
Intel 8085Intel 8088 |
Az Intel 8086 (1980-85-ben iAPX 86/10 néven ismert ) az Intel első 16 bites mikroprocesszora . 1976 tavaszán fejlesztették ki és 1978. június 8-án adták ki [1] . A processzorban megvalósított utasításkészlet architektúra lett a jól ismert x86 architektúra alapja . Az ilyen architektúrájú processzorok az Intel processzorok legsikeresebb sorozatává váltak. Az architektúra modern processzorai megtartják a készlet összes utasításának végrehajtását.
A processzor kissé módosított, 8 bites adatbusszal rendelkező, 1979-ben Intel 8088 néven kiadott változatát az IBM PC és az IBM PC/XT személyi számítógépek használták .
1972-ben az Intel kiadta a 8008 -at, az első 8 bites mikroprocesszort. A Datapoint Corporation által a programozható számítógépes terminálokhoz kifejlesztett utasításkészletet használta , amely általános célú processzorokhoz is alkalmas. Ehhez a processzorhoz több további chipre volt szükség egy teljes értékű számítógépben való használathoz, részben azért, mert az Intel DRAM chipjeihez használt kis 18 tűs csomagot használta , és ezért nem lehetett külön címbusszal.
Két évvel később, 1974-ben a 8080 piacra került egy új, 40 tűs DIP - csomagban, amelyet eredetileg számológép chipekhez terveztek . Külön címbusszal és kiterjesztett utasításkészlettel rendelkezett, amely kód- (nem bináris) kompatibilis volt a 8008-cal, és a programozás kényelme érdekében több 16 bites utasítással egészült ki. Az Intel 8080 processzort gyakran az első igazán használható és hasznos mikroprocesszornak nevezik. 1977-ben az Intel 8085 váltotta fel , egyetlen tápfeszültséggel (+5 V) az előd három különböző típusa helyett, és számos további fejlesztéssel. A leghíresebb riválisok a 8 bites Motorola 6800 (1974), a Microchip PIC 16X (1975) (itt valószínűleg a General Instrument CP1600 processzorra utal ), a MOS Technology 6502 (1975), a Zilog Z80 (1976) és a Motorola 6809 (1978 ) voltak. ).
A 8 bites mikroprocesszorok piaca túlzsúfolt volt az 1970 -es évek végén , és az Intel, felhagyva a megvívási kísérletekkel, kiadja első 16 bites processzorát. A 8086-os projektet 1976 májusában kezdték el, és eredetileg az ambiciózus és késleltetett iAPX 432 (más néven 8800) projekt ideiglenes helyettesítésére tervezték. . Ez egyrészt egy kísérlet volt, hogy ellenálljon a más gyártók (például a Motorola, a Zilog és a National Semiconductor ) kevésbé késői 16 és 32 bites processzorainak, másrészt a Zilog Z80 fenyegetése ellen. (az Intelt elhagyó Federico vezette csapat fejlesztette ki.) Fagin ), ami nagyon sikeres lett. A 8086 architektúra első változatát (utasítási rendszer, megszakítások, memória és I/O) május közepétől augusztus közepéig Stephen Morse fejlesztette ki . Ezután a fejlesztőcsapatot négy főre növelték, akik két fő tervdokumentumot mutattak be: "8086 Architectural Specifications" és "8086 Device Specifications". A fejlesztés során nem használtak speciális CAD programokat , a diagramok szöveges karakterekből készültek. A mikroarchitektúra és a fizikai megvalósítás már tesztelt elemeit alkalmazták, elsősorban az Intel 8085-ből.
Az Intel 8086 processzor egy továbbfejlesztett Intel 8080 processzor , és bár a fejlesztők nem tűzték ki célul a teljes szoftverkompatibilitás elérését, a legtöbb Intel 8080-ra írt program újrafordítás után futhat az Intel 8086-on. Az új processzor rengeteg olyan változást hoz, amelyek jelentős (10-szeres) teljesítménynövekedést tettek lehetővé a cég processzorainak előző generációjához képest.
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nyilvántartások 8086 |
Az Intel 8086 processzor összesen 14 16 bites regiszterrel rendelkezik : 8 általános célú regiszter (AX, BX, CX, DX), 2 indexregiszter (SI, DI), 2 pointer (BP, SP), 4 szegmensregiszter (CS). , SS , DS, ES), programszámláló vagy utasításmutató (IP) és jelzőregiszter (FLAGS, 9 jelzőt tartalmaz). Ugyanakkor az adatregiszterek (AX, BX, CX, DX) nem csak teljes regiszterek címzését teszik lehetővé, hanem azok alsó felének (AL, BL, CL, DL regiszterek) és felső felének (AH, BH, CH, DH) megcímzését is. regiszterek), amely nem csak az akkoriban újdonságnak számító 16 bites szoftver használatát tette lehetővé, hanem megőrizte a visszafelé kompatibilitást a 8 bites programokkal (bár ezeket legalább újra kellett fordítani ).
A címbusz mérete 16 bitről 20 bitre nőtt, ami 1 MB (2 20 bájt) memória megcímzését tette lehetővé. Az adatbusz 16 bites volt. Egy mikroprocesszorban azonban az adatbusz és a címbusz ugyanazokat a tűket használta a csomagon. Ez oda vezetett, hogy lehetetlen egyszerre címeket és adatokat alkalmazni a rendszerbuszra. A címek és adatok időbeli multiplexelése csak 20 csomagtű használatát teszi lehetővé, de csökkenti az adatátviteli sebességet. Tekintettel arra, hogy az egyes utasítások végrehajtása rövidebb, mint egy I/O ciklus, a processzorba (első alkalommal) 6 bájtos utasításpuffer került, ami lehetővé tette például a kiegészítő utasítások végrehajtását. párhuzamosan az I/O utasításokkal.
Mivel a 8086-os processzor regiszterei és ALU -i 16 bitesek, ez korlátozza a címszámítási műveleteket és a maximális méretét. A 16 bitnél nagyobb címek kiszámításához a regiszterek és ALU-k bővítésére és az utasításkészlet átdolgozására lenne szükség, ami viszont a tranzisztorok számának, a processzor bonyolultságának és költségének növekedéséhez vezet.
A csökkenő memóriaárak azonban nyereségessé tették a processzort a nagy mennyiségű adat feldolgozását igénylő alkalmazások számára. A címtér bővítése volt az egyik követelmény az új processzorral szemben [2] . Ennek eredményeként egy kompromisszumos sémát választottak: a processzor végrehajtási egységét (EU) 16 bitesre hagyták, és a processzorbusz-interfész egységben (BIU) a címteret kibővítették a szegmentált memóriacímzés megvalósításával , ami növeli a címet. busz szélessége 20 bitre.
A szegmentált memóriacímzés azt a tényt használja ki, hogy a processzoroldali memória-hozzáférések könnyen feloszthatók programkódra, adatfeldolgozásra és verem-hozzáférésekre . A különböző típusú memóriatartalomhoz való hozzáférések független memóriaterületekre vannak leképezve a kiterjesztett címtér- szegmensekben . A 8086 négy 16 bites szegmensregisztert használ ehhez a címleképezéshez:
Minden szegmensregiszter megadja egy szegmens kezdetének címét a memóriában, és a szegmensek átfedhetik vagy átfedhetik egymást. Alapértelmezés szerint a CS regiszter az utasítások lekérésekor, az SS regiszter a veremműveletek végrehajtásakor, a DS és ES regiszter pedig az adatok eléréséhez. Adatelérés esetén az alapértelmezett szegmensregiszter megváltoztatható egy speciális szegmenscsere előtag [3] hozzáadásával az utasításkód elé .
Ebben az esetben a szegmensen belül 16 bites végrehajtási címeket használnak, amelyeket a programszámlálóban , veremmutatóban tárolnak, vagy az utasításkódban megadott címzéstípusnak megfelelően számítanak ki. Valójában 4, egyenként 64 KB-os memóriaterület mindig a processzor rendelkezésére áll. Ha ez a mennyiség nem elegendő, a programnak tartalmaznia kell a szegmensregiszter-vezérlő logikát. Ez a logika jelentősen lelassíthatja a memóriahozzáférést, így az x86 platform magas szintű nyelveiből származó fordítók lehetővé teszik a memóriamodell megadását a szükséges kód- és adatmennyiségnek megfelelően.
A 20 bites fizikai címet, amely akár 1 MB memória címzését is lehetővé teszi, a végrehajtási cím és a szegmensregiszter értékének 16-tal való összeadásával kapjuk meg. A 16-tal való szorzás miatt egy szegmens mindig elindul. egy 16 bájtos blokkhatáron, amelyet bekezdésnek neveznek . Ez némi memóriát veszíthet, ha a felhasznált szegmensadatok nem egy bekezdés többszörösei. Ez volt az egyik oka annak, hogy a fejlesztők 8086-ban felhagytak a 24 bites cím megvalósításával, mivel a bekezdés mérete 256 bájtra nőtt [2] .
A rendszer figyelmen kívül hagyja a 8086-os processzor fizikai címének kiszámításakor előforduló lehetséges túlcsordulást. Például egy feltétel nélküli ugrási utasítás a 0010 16 címre FFFF 16 kódszegmens értékkel a 0 fizikai címre ugrik. Ez nem fordul elő régebbi x86 processzoroknál, mint például a 80286, amely 24 címsorral rendelkezett, így az IBM PC / Az AT számítógépeken egy speciális Gate A20 kapu került bevezetésre, amely erőszakosan visszaállítja a címrendszerbusz A20 bitjét.
Mivel a régebbi x86-os processzorokban a címtér bővítésének új módjait vezették be, a 8086-os processzor által használt módszert " valódi címzési módnak " nevezték.
Az Intel 8086 processzor parancsrendszere 98 parancsból (és ezekből több mint 3800 változatból) áll: 19 adatátviteli, 38 adatfeldolgozási, 24 átmeneti és 17 processzorvezérlő parancsból. 7 címzési mód lehetséges. A mikroprocesszor nem tartalmaz utasításokat a lebegőpontos számokkal való munkavégzéshez. Ezt a funkciót egy külön chip, az úgynevezett matematikai társprocesszor valósítja meg , amely az alaplapra van telepítve. A társprocesszort egyáltalán nem kellett az Intelnek gyártania (Intel 8087 -es modell ), egyes chipgyártók például a Weitek , az Intelnél erősebb társprocesszorokat adott ki.
Az Intel 8086 processzor utasításkészlete nagyon hatékony karakterlánc-utasításokat tartalmaz. Ha az utasítás előtagja REP (az angol ismétlésből, ismétlés), akkor a processzor blokkokkal hajt végre műveleteket - adatblokk mozgatása, adatblokkok összehasonlítása, adott érték hozzárendelése egy bizonyos méretű adatblokkhoz stb., vagyis egy 8086-os utasítás REP előtaggal 4-5 olyan utasítást tud végrehajtani, amelyeket néhány más processzor hajt végre. Hasonló technikákat más processzorokban is megvalósítottak – a Zilog Z80 utasításokat tartalmazott a blokkok mozgatására és keresésére, a Motorola 68000 pedig mindössze két paranccsal képes műveleteket végrehajtani a blokkokkal.
Az Intel 8086 mikroprocesszor a csővezetékek kezdetleges formáját használja . A busz interfész blokk egy 6 bájtos parancssoron keresztül továbbítja a parancsfolyamot a végrehajtó eszköznek . Így az új utasítások lekérése és végrehajtása egyidejűleg is megtörténhet. Ez jelentősen megnöveli a processzor átviteli sebességét, és kiküszöböli annak szükségességét, hogy várni kell, amíg az utasítás kiolvasható a memóriából, amikor a mikroáramköri interfész más műveletekkel van elfoglalva.
A processzor 40 tűs kerámia és műanyag csomagolásban készült. A 8086, 8086-2 és 8086-1 jelzésű változatok 5, 8 és 10 MHz-es frekvenciákkal voltak elérhetők [4] .
Az Intel 8086 mikroprocesszor fő versenytársai a PDP -11 családba tartozó Motorola 68000 , Zilog Z8000 , F-11 és J-11 lapkakészletek, a MOS Technology 65C816 voltak . A katonai fejlesztés területén bizonyos mértékig a versenytársak a MIL-STD-1750A processzor-megvalósításai voltak .
Az Intel 8086 mikroprocesszor analógjai olyan fejlesztések voltak, mint a NEC V30 , amely 5%-kal termelékenyebb volt, mint az Intel 8086, de teljesen kompatibilis vele. A szovjet analóg a K1810VM86 mikroprocesszor volt, amely a K1810 mikroáramkörök sorozatának része volt .
A 8086 és 8088 processzorok két üzemmódban működhetnek: maximum és minimum [5] .
A maximum módot komplex többprocesszoros rendszerekben használják, a 8087-es matematikai koprocesszorral is működni kell, a 8087-es matematikai koprocesszorral működik, amely a számítógép alaplapján lévő aljzatba telepíthető.
A minimális üzemmódot egyprocesszoros rendszerekben használják. Ebben az üzemmódban a processzor maga állítja elő a rendszerbusz-vezérlőjeleket.
A hardver módot a processzor kapcsolási séma határozza meg, és szoftverrel nem módosítható. Az üzemmód beállításához a 33-as érintkezőt (MN / MX ) használjuk, amely áramforráshoz vagy közös vezetékhez csatlakozik. A 33-as láb állapotának megváltoztatása megváltoztatja a rendszerbusz vezérléséért és más processzorokkal való kommunikációért felelős további nyolc processzortűk funkcióit.
A 8086-os és 8088-as processzorokon alapuló mikroprocesszor-rendszer létrehozásához az Intel a következő támogató chipeket állította elő [6] :
Ezenkívül a korábban 8080-as és 8085-ös processzorokhoz kifejlesztett mikroáramkörök [6] használhatók a processzorokkal :
Kezdetben az Intel 8086 processzort ipari rendszerekben használták. Tömeges alkalmazását a meglehetősen magas ár – a bejelentéskor 360 dollár – hátráltatta [7] . Ezenkívül a processzor által használt 16 bites memória alrendszer jellemzően kétszer annyi chipet igényelt, mint egy 8 bites, ami növeli a nyomtatott áramköri lapok méretét, összetettségét és költségét. Az Intel ezen vezetésével kapcsolatban az Intel 8086 fejlesztésének végén úgy döntöttek, hogy kiadásra kerül egy költségvetési verzió [8] . Az Intel 8088 processzor a bejelentés idején 124,8 dollárba került [9] , és 8 bites memória alrendszert használt, ami gazdaságilag vonzóbbá tette. Ez lett az egyik leghíresebb személyi számítógép - az IBM PC - alapja .
Intel 8086 processzort használtak:
Intel 8086 processzor emulátor projekt STM32 MK -n : [14]
Intel processzorok | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|