Intel 8086

Le 8086 est des 16 - morceau du microprocesseur du peu conçu par le Intel et présenté sur le marché du 1978 , qui a provoqué l'architecture du X86 . Le Intel 8088 , libérés dans le 1979 , était essentiellement le même morceau, mais avec un bus de données à 8 bits externe (permettant l'utilisation de morceaux de logique meilleur marché et peu de soutenants), et est notable comme processeur utilisé dans le PC d'IBM original de .

Histoire

Backround

Dans le 1972 , Intel a lancé le 8008 , le premier microprocesseur à 8 bits, construit dans la technologie du PMOS . Elle a mis en application un ensemble d'instruction conçu par société de Datapoint avec les Tube-bornes programmables à l'esprit, mais qui s'est également avéré assez d'usage universel. Le dispositif a eu besoin plusieurs de additionnel IC pour produire un ordinateur fonctionnel, en partie dû à son " de 18 bornes ; mémoire-package" ; la limitation qui a empêché un bus d'adresses séparé (Intel était principalement un fabricant de DRACHME alors). Deux ans après, dans le 1974 , Intel a lancé le microprocesseur du 8080 , construit dans la technologie du NMOS , avec 40 bornes (permettant un bus d'adresses séparé) et un ensemble d'instruction prolongée qui était la source compatible (pas compatible binaire) avec le prédécesseur 8008 ; il a également inclus quelques instructions de 16 bits de faciliter la programmation. Le dispositif 8080 donc est souvent décrit comme premier microprocesseur véritablement utile, mais néanmoins a été bientôt remplacé par le 8085 , qui pourrait faire face à une alimentation de l'énergie 5V simple au lieu des trois tensions des morceaux plus tôt. D'autres microprocesseurs à 8 bits bien connus qui ont émergé pendant ces années étaient Motorola 6800 (1974), puce PIC16X (1975) de , technologie 6502 (1975) de MOS de , Zilog Z80 (1976), et Motorola 6809 (1977), aussi bien que d'autres.

La première conception x86

Les 8086 ont été à l'origine prévus comme un produit de remplacement provisoire pour le projet ambitieux du IAPX 432 afin d'essayer de tirer l'attention des 16 moins-retardés et les processeurs à 32 bits d'autres fabricants (tels que Motorola , Zilog , et semi-conducteur national ). L'architecture et le morceau physique ont été donc développés très rapidement, et ont été basés sur le plus tôt 8080 et conceptions du 8085 avec un ensemble de registre semblable. Le morceau a eu environ 29.000 transistors (beaucoup de pour le microcode) et fonctionnerait également comme suite des 8085 ; bien que pas directement le code source compatible, il ait été conçu de sorte que le langage d'assemblage pour les 8085 ait pu être automatiquement converti en source (suboptimale) de 8086 assemblées, habituellement avec peu ou pas de main-édition. Cependant, la conception 8086 a été augmentée pour soutenir le plein traitement de 16 bits au lieu des possibilités de 16 bits assez fondamentales d'Intel 8080/8085.

Tandis que moins connu que le morceau 8088, le legs des 8086 supporte ; des références à lui peuvent encore être trouvées sur la plupart des ordinateurs modernes sous forme d'entrée de fournisseur pour tous les IDs de dispositif d'Intel qui est " ; 8086" ;.

Détails

< ! -- Image le statut inconnu de copyright étant coupé : -->

Autobus et opération

Tous les registres internes comme des bus de données internes et externes sont 16 bits au loin, fermement établissant le " ; microprocessor" de 16 bits ; surnom des 8086. Un bus d'adresses externe de 20 bits donne un 1 espace d'adressage physique de MIB (segmenté) (220 = 1. les adresses de 16 bits d'entrée-sortie donnent à 64 le KiB de l'espace séparé d'entrée-sortie. (216 = 65. Les goupilles de commande portent les signaux essentiels pour toutes les opérations externes.

Le bus de données était multiplexé par avec le bus d'adresses, ceci diminuait seulement légèrement l'exécution cependant, en tant que d'autres facteurs, plus importants pour ce morceau particulier, ombragent ce choix de conception ; transferts de 16 (ou 8) de quantités de bit sont faits dans un cycle d'accès mémoire de quatre-horloge. 8086 instructions ont varié de 1 à 6 bytes. Par conséquent, l'effort et l'exécution étaient le concourant (comme il demeure dans les conceptions x86 d'aujourd'hui) : L'unité d'interface de bus de alimente le jet d'instruction au module exécution de par une file d'attente de prefetch de 6 bytes (une forme de canalisation légèrement connectée ), accélérant des opérations sur le registre et les immediates tandis que les opérations de mémoire devenaient malheureusement plus lentes (4 ans après, ce problème d'exécution a été fixé avec le 80186 et le 80286 ). Le gain d'exécution au-dessus des 8080 et des 8085 résultant de l'architecture de 16 bits du plein (au lieu de partiel) , de l'opérande contre les orthogonalisations d'opération et d'autres perfectionnements, étaient toujours assez significatif, en dépit des cas où les morceaux plus anciens peuvent être plus rapides (voir ci-dessous).

L'espace d'adressage linéaire du maximum est limité à 64 KBs, simplement parce que les registres internes sont seulement 16 bits au loin. La programmation plus de frontières de 64 KBs implique d'ajuster des registres de segment (voir ci-dessous) et est donc assez maladroite (et des restes ainsi jusqu'au 80386 ). Quelques goupilles de commande ont plus d'une fonction selon si le dispositif est actionné dans le " ; min" ; ou " ; max" ; mode. L'ancien est prévu pour de petits systèmes de processeurs simples tandis que ce dernier est pour les systèmes moyens ou grands using plus d'un processeur. Le processeur a eu quelques nouvelles instructions (pas présent dans les 8085) d'améliorer des langages de programmation à niveau élevé basés par pile de soutien tels que Pascal et C ; certaines de les plus utiles étaient la poussée immed par , le mem-op de de la poussée , et le rouissent la taille (plusieurs autres seraient ajoutés dans les 80186, 80286, et 80386 conceptions suivantes).

Registres et instructions

Les 8086 a huit (plus ou moins général) registres de 16 bits comprenant l'indicateur de pile , mais exclusion de l'indicateur d'instruction, du registre de drapeau et des registres de segment. Quatre d'entre eux pourraient également être accédés en tant que huit registres à 8 bits (voir l'image).

En raison d'un codage compact inspiré par 8085 et d'autres processeurs à 8 bits, la plupart des instructions étaient des opérations d'une adresse ou de deux adresses qui signifie que le résultat ont été stockés dans un des opérandes. Tout au plus un des opérandes pourrait être dans la mémoire, mais cet opérande de mémoire pourrait également être la destination de , alors que l'autre opérande, la source de , pourrait être l'un ou l'autre registre de ou immédiat. Un endroit de mémoire simple pourrait souvent être employé également en tant que la source de et destination de qui, entre d'autres facteurs, ont plus loin contribué à une empreinte de pas exécutable plutôt petite de code, comparable à la plupart des machines de huit bits.

Bien que le degré d'orthogonalité entre les registres et les opérations aient été plus grand que dans 8085, il était encore bas, et des registres ont été également parfois employés implicitement par des instructions. Tandis que parfaitement sensible pour le programmeur d'assemblée, cette attribution compliquée de registre pour des compilateurs a comparé à un contemporain plus régulier 16 - et les processeurs à 32 bits (tels que le VAX ou 68000) ; d'une part, comparé aux processeurs à 8 bits contemporains (tels que 8085 ou 6502), il était sensiblement plus facile de produire du code pour la conception 8086.

Comme mentionné au-dessus de 8086 également décrits 64 KBs (ou alternativement de 32 à mot-clé ou de 16 bits) de l'espace à 8 bits de l'entrée-sortie . Une pile de 64 KBs (un segment) s'élevant vers des adresses inférieures est soutenue par le matériel ; 2 mots de byte sont poussés à la pile et le dessus de pile (le fond) est précisé par des solides solubles : ESPÈCES. Il y a 256 interruptions qui peuvent être appelées par le matériel et le logiciel. Les interruptions peuvent cascader, using la pile pour stocker l'adresse de retour .

Segmentation

Il y avait également quatre registres du segment qui pourraient être placés à partir des registres d'index. Les registres de segment ont permis à l'unité centrale de traitement d'accéder à un Mebibyte + 64 le KiB - 16 bytes de mémoire d'une manière impaire. Plutôt que juste des bytes absents fournisseurs, comme dans la plupart des processeurs segmentés, les 8086 ont décalé le registre de segment ont laissé 4 bits et les ont ajoutés à l'adresse d'excentrage, ainsi : l'adresse physique de

= le segment×16 + ont compensé

L'adresse de mémoire physique était donc 20 bits au loin (tandis que le segment et l'excentrage étaient 16 bits). En raison de cet arrangement, les segments ont recouvert, permettant pour avoir jusqu'à 4096 différents indicateurs du adresser le même endroit. Tandis qu'acceptable, et même utile, pour le langage d'assemblage la programmation (où la commande des segments était complète) de elle a causé la confusion et a été considérée conception pauvre par la plupart des personnes, forçant les concepts entièrement nouveaux ( près de et de de mots-clés loin ) dans des langues telles que le Pascal et le C ; des données et/ou le code pourraient être contrôlés dans le près des segments de 16 bits de , ou une grande structure de données (ou beaucoup et/ou grandes procédures) pourrait être accédée par les indicateurs lointains du (segment à 32 bits : paires d'offset) atteignant le plein espace d'adressage physique.

Bien que cet arrangement ait rendu augmentant l'espace d'adressage à plus que les bytes 220 plus difficile, il néanmoins a été bientôt augmenté par un nouveau MMU - système d'adressage commandé dans le mode protégé de s du 80286 le '. Plus tard, et sur ceci, le 80386 a augmenté toute la série de registres d'usage universel (et par conséquent, les excentrages) à 32 bits, permettant de ce fait une plage d'adresses linéaire du des bytes 232 (avec une gamme de total 236). Cependant, ces morceaux avaient lieu, pendant une longue période, employée souvent en vrai mode , demeurant compatible avec OSes plus ancien.

D'une manière semblable, les programmes tôt pourraient ignorer les segments, et emploient juste le plat de 16 bits adressant, qui a permis au logiciel à 8 bits de d'être facilement mis en communication aux 8086. Les auteurs du MS-DOS ont tiré profit de ceci en fournissant une interface de programmation API pour commandes Tempus-link très semblable au CP/M . C'était important quand les 8086 étaient nouveaux, parce qu'il a permis à beaucoup de demandes existantes du CP/M d'être rapidement faites disponibles sur la nouvelle plate-forme, qui a considérablement soulagé la transition.

Exécution

Temps d'exécution pour des instructions typiques (dans des rhythmes) :

Les synchronisations de sont le meilleur cas, selon le statut de prefetch, l'alignement d'instruction, et d'autres facteurs.

Repérage de MOUVEMENTS, repérage : 2, repérage, im : 4, repérage, mem : 8+EA, mem, repérage : 9+EA, mem, im : cycles 10+EA Repérage d'ALU, repérage : 3, repérage, im : 4, repérage, mem : 9+EA, mem, repérage : 16+EA, mem, im : cycles 17+EA

Repérage de JMP : 11, étiquette de JMP : 15, étiquette de Jcc : 16 (cc = code de condition)

Repérage de MUL : 70.118 cycles Repérage d'IDIV : 101.165 cycles

ea : heure de calculer l'adresse réelle, s'étendant de 5 à 12 cycles.

Comme peut être vu de ces tables, les opérations sur des registres et des immediates étaient rapides (entre 2 et 4 cycles), tandis que des instructions de mémoire-opérande et les sauts étaient tout à fait lents ; les sauts ont pris plus de cycles que sur le simple 8080 et le 8085 , et les 8088 (utilisé dans le PC d'IBM) ont été en plus entravés en son autobus plus étroit. Les raisons pour lesquelles la plupart des instructions connexes par mémoire étaient si les lents étaient triples :
Les unités d'exécution et d'effort étaient légèrement connectées ; c'est efficace pour le prefetch d'instruction, mais moins optimal pour des sauts et l'accès de données aléatoires.
Des calculs de génération d'adresse ont été en grande partie exécutés par des routines de microcode.
Les bus d'adresse et de données étaient multiplexés par afin d'adapter un boîtier à double rangée de connexions de goupille de la norme 40.

Il devrait noter, cependant, que l'exécution d'accès mémoire a été rigoureusement augmentée avec les morceaux de la prochaine génération d'Intel ; le 80186 et le 80286 tous les deux ont eu le calcul d'adresse dans le matériel, sauvant beaucoup de cycles ; le 80286 a également eu les bus (non-multiplexés) séparés d'adresse et de données.

Versions de morceau

La fréquence du signal d'horloge a été à l'origine limitée à 5 mégahertz (le PC d'IBM a employé 4.773 mégahertz, 4/3 de NTSC de couleur de la fréquence standard d'éclat de 3.579545 mégahertz), mais les dernières versions dans le HMOS ont été spécifiées pour 10 mégahertz. CMOS - des versions ont été fabriquées pendant longtemps (au moins un moment dans les années 90) pour les systèmes inclus par bien que son successeur, le 80186 / 80188 , ait été plus populaire pour l'usage inclus.

Des versions compatibles et, dans beaucoup de cas, augmentées ont été fabriquées par le Fujitsu , Harris / Intersil , OKI , Siemens AG , Texas Instruments , NEC , et AMD . Par exemple, le séries S de NEC des 'efficacement de mettre en application 8086 processeurs compatibles (NEC V20 , V25 , V30 , etc. de ) sont encore employées dans les systèmes inclus, de même que Intel 80186 .

Le 8086/8088 a pu être relié à un coprocesseur mathématique pour ajouter des possibilités de la virgule flottante . Le Intel 8087 était le coprocesseur de maths standard, fonctionnant sur 80 nombres de bits, mais les fabricants comme le Weitek ont bientôt offert des solutions de rechange de plus haute performance.

Clones

L'industrie d'électronique de l'Union Soviétique pouvait replier les 8086 par l'espionnage industriel et le désossage. Le morceau en résultant, K1810BM86, était goupille-compatible avec Intel original 8086 et a eu le même ensemble d'instruction. Cet IC était le noyau des ordinateurs de bureau PC-compatibles Soviétique-faits du ES1840 et du ES1841 . Cependant, dans le matériel ces ordinateurs ont eu des différences significatives de leurs prototypes authentiques (respectivement PC et PC/XT) : le K1810BM86 était une copie d'Intel 8086, pas Intel 8088, et les données/les circuits bus d'adresses ont été conçus indépendamment des produits originaux d'IBM.

Une paire intéressante de dérivés était le NEC V20 et NEC V30. C'étaient compatibles au matériel avec les 8088 et les 8086, respectivement, mais ont incorporé l'ensemble d'instruction du Intel 80186 . Ils ont été prévus pour fournir baisse-dans des possibilités de mise à niveau pour permettre à des fabricants d'améliorer leurs conceptions au nouvel ensemble d'instruction et à l'instruction plus rapide traitant sans devoir modifier leurs conceptions.

Bogues notables

8086 unités centrales de traitement ont produit avant 1982 ont eu un bogue grave d'interruption. IBM a fourni une mise à niveau gratuitement aux PCs affectés. Les processeurs restant avec des inscriptions de l'original 1979 sont tout à fait rares ; certains les considèrent les articles du collecteur.

Micro-ordinateurs using les 8086

Un des micro-ordinateurs les plus influents de tous, le PC d'IBM de , a employé le Intel 8088 , une version des 8086 avec un bus de données de huit bits (comme mentionné ci-dessus).
Le premier micro-ordinateur commercial construit sur la base des 8086 était le Mycron 2000.
La machine de traitement de texte d'IBM Displaywriter et l'ordinateur professionnel de Wang, construits par les laboratoires de Wang de , ont également employé les 8086. En outre, ce morceau pourrait être trouvé dans le PC d'AT&T 6300 (construit par Olivetti ).
Le premier Compaq Deskpro a employé des 8086 fonctionnant à 7.14 mégahertz, mais était capable de courir les cartes addition conçues pour le PC XT d'IBM de de 4.
Le FLT86 est un système de formation bien établi pour l'unité centrale de traitement 8086 fabriqué toujours par l'électronique de Flite de limité international dans le Southampton, Angleterre

Notes et références

eflist

Voir également

PC XT d'IBM de
Architecture du X86

.

Random links:Destrehan, Louisiane | Escott Reid | Dur au jeu | Stephen M. Wolownik | Brigg juste | Intel_8086