한국   대만   중국   일본 
Intel 8087 ? Wikipedia Aller au contenu

Intel 8087

Un article de Wikipedia, l'encyclopedie libre.
Intel C8087.
Architecture du 8087.

Les Intel 8087 furent les premiers coprocesseurs mathematiques concus par Intel en 1980 pour les machines 16 bits (le 8231 est plus ancien, mais concu pour le processeur 8 bit Intel 8080 ).

Il etait concu pour etre utilise avec les microprocesseurs Intel 8088 et 8086 . Le but du 8087, le premier de la famille x87 , etait d'accelerer des calculs pour des applications demandant un traitement avec des nombres a virgule flottante. Les performances d'execution augmenterent de 20 % a 500 % selon les applications. Le 8087 pouvait atteindre la performance de 50 k FLOP /s, dependant de l'operation demandee.

Ce coprocesseur introduit environ 60 nouvelles instructions disponibles pour le programmeur, dont les mnemoniques commencent tous par la lettre F pour les differencier des instructions arithmetiques sur les entiers disponibles nativement sur les 8086/88. Par exemple, pour les additions et multiplications, realisees par les instructions 8086/88 ADD et MUL qui portent sur des entiers, le 8087 ajoute les instructions FADD et FMUL, portant sur des nombres en virgule flottante. Dans le code machine binaire, toutes ces instructions commencaient par la suite de bits 11011, ce qui fait 27 en decimal, le code ASCII de la touche ESCAPE : on parle parfois d' escape opcodes .

Les 8087 (et, en fait, toute la famille des x87) ne fournissent pas un ensemble lineaire de registres tels que les registres AX/BX/CX/DX des processeurs 8086/88 et 80286 . Les registres de travail des x87 sont structures sous une certaine forme de pile (cependant elle n'est pas exactement comme une structure de donnees typique de pile) s'etendant de ST0 a ST7. Les instructions en virgule flottante des coprocesseurs x87 operent des push et des pop de valeurs sur cette pile.

Quand Intel concut le 8087, il souhaita standardiser en partie ses specifications. Intel integra donc le groupe de travail de la future norme IEEE 754 portant sur la representation des nombres en virgule flottante. Le 8087 est donc historiquement tres important car ses specifications servirent de base a ce qui devint la norme IEEE 754 en 1985. Cependant le 8087 est sorti en 1980, a une epoque ou le standard IEEE 754 n'en etait qu'au stade de brouillon. Il n'implemente donc pas le standard IEEE 754 dans tous ses details. La premiere unite de calcul en virgule flottante IEEE 754 est l'Intel 80387 .

Les 8087 fournissaient deux representations pour les nombres virgule flottante, sur 32 et 64 bits , ainsi qu'un support interne etendu aux donnees 80 bits pour ameliorer la precision sur de gros calculs grands et complexes. Independamment de ceci, les 8087 offraient un format 80 bits a 17 chiffres en decimal code en binaire et un format de donnees 16, 32 et 64 bits dans les entiers.

Le 8087 differait des coprocesseurs Intel suivants par le fait qu'il etait directement connecte aux bus d'adresses et de donnees. Le 8088/86 cherchait une instruction qui commencait avec la sequence '11011' et laissait le controle au coprocesseur. Le coprocesseur rendait la main une fois que la sequence d'instruction du coprocesseur prenait fin. Les coprocesseurs suivants d'Intel ne se connectaient pas de la meme facon aux bus, mais leurs instructions etaient delivrees par le processeur principal.

Les 8087, annonces en 1980 , ont ete remplaces par les 80287 et 80387 . Les generations suivantes de processeurs Intel x86 , a partir du 80486 , n'utilisent plus de coprocesseur separe pour le calcul en virgule flottante, mais l'incluent directement sur leur die , a l'exception notable du 80486SX qui etait un 80486DX modifie ou l'unite de calcul en virgule flottante, testee defectueuse, avait ete desactivee. Le 80487 etait en fait un 80486DX complet avec une broche supplementaire. Quand il etait installe, il desactivait le 80486SX. Le 80486DX, Pentium, et processeurs suivants incluent directement en leur cœur les fonctionnalites de calculs en virgule flottante.