Section courante

A propos

Section administrative du site

Introduction

Le coprocesseur mathématique, appelé MPU en anglais, est une composante spécialisée permettant d'effectuer des calculs de valeurs réels (surnommé à virgule flottante). Les microprocesseurs d'origine n'offraient pas la possibilité d'effectuer d'autres types de calcul que sur des valeurs entières, il fallait donc acheter une puce supplémentaire offrant ce genre de service. Ainsi, il fallait un 8087 avec le 8088 ou le 8086, un 80287 avec le 80286 et un 80387 avec un 80386, et un 80487SX avec le 80486SX. À partir des 80486DX et des Pentium, le coprocesseur mathématique fut intégré directement dans le CPU. La décision d'inclure les MPU au sein du CPU fut d'une part, la réduction des coûts et d'autres part une accélération des performances. Il ne faut pas oublier que les calculs en nombre réel sont largement utilisés dans les applications scientifiques et les jeux et qu'il devenait de plus en plus pressant de trouver des solutions plus profitables pour tous.

Historique

Le premier MPU, soit le 8087, a été conçu en 1980 par Intel et disposait de 45 000 transistors, dans ses calculs, il ne permet pas de dépasser 45 degrés. En 1986, les 80287 faits sous apparition et ses performances vont de 5 MHz à 10 MHz, et n'a pas vraiment de nouveauté par rapport à son prédécesseur outre le fait qu'il n'est plus nécessaire d'utiliser les instructions FNENI et FNDISI. En 1987, le 80387 fait son apparition, avec une cadence de 16 MHz à 33 MHz et l'inclusion de la norme IEEE 754 et un support très complet des fonctions trigonométriques. De plus, il n'est plus limité à 45 degrés comme les deux précédents. Pendant un moment, une guerre sévissa entre AMD et Intel pour offre les meilleures performances au niveau des MPU. Entre autres, le AMD Athlon incluait trois unités de calcul à virgules flottantes tandis que son rival, le Pentium III, n'en offrait deux. Depuis ce temps, Intel a comblé son retard et iCore 7 offres de meilleure performance qu'AMD.

Programmation

Les instructions supportant les calculs mathématiques du MPU sont principalement regroupées sous la lettre «F» : F2XM, F2XM1, FABS, FADD, FADDP, FBLD, FBSTP, FCHS, FCLEX, FCMOV, FCOM, FCOMI, FCOMIP, FCOMP, FCOMPP, FCOS, FDECSTP, FDISI, FDIV, FDIVP, FDIVR, FDIVRP, FENI, FFREE, FFREEP, FIADD, FICOM, FICOMP, FIDIV, FIDIVR, FILD, FIMUL, FINCSTP, FINIT, FIST, FISTP, FISTTP, FISUB, FISUBR, FLD, FLD1, FLDCW, FLDENV, FLDL2E, FLDL2T, FLDLG2, FLDLN2, FLDPI, FLDZ, FMUL, FMULP, FNCLEX, FNDISI, FNENI, FNINIT, FNOP, FNSAVE, FNSTCW, FNSTENV, FNSTSW, FPATAN, FPREM, FPREM1, FPTAN, FRICHOP, FRINEAR, FRINT2, FRNDINT, FRSTOR, FSAVE, FSCALE, FSETPM, FSIN, FSINCOS, FSQRT, FST, FSTCW, FSTENV, FSTP, FSTSW, FSUB, FSUBP, FSUBPP, FSUBR, FSUBRP, FTST, FUCOM, FUCOMI, FUCOMIP, FUCOMP, FUCOMPP, FWAIT, FXAM, FXCH, FXRSTOR, FXSAVE, FXTRACT, FYL2X et FYL2XP1 Le coprocesseur mathématique utilise 8 registres de 80 bits nommés ST(0), ST(1), ST(2), ST(3), ST(4), ST(5), ST(6) et ST(7).



Dernière mise à jour : Dimanche, le 13 juillet 2014