Le Motorola 68881 est un coprocesseur mathématique destiné à travailler en complément à la famille de microprocesseurs m68k de Motorola.

Motorola 68881
Motorola 68881

Le Motorola 68882 est une version améliorée du 68881, mais tout à fait compatible pour le reste.

Utilisation

modifier

Les 68881 et 68882 ont été utilisés comme coprocesseurs optionnels dans beaucoup de modèles d'Atari, d'Amiga, de Macintosh.

Formats de nombre

modifier
 
Motorola 68881

Le Motorola 68881 connaît quatre formats de nombre :

Précision étendue, sur 12 octets
95 signe
94-80 exposant
79-64 toujours à zéro
63-0 mantisse


Précision double (IEEE), sur 8 octets
63 signe
62-52 exposant
51-0 mantisse


Précision simple (IEEE), sur 4 octets
31 signe
30-23 exposant
22-0 mantisse


Précision packed, sur 12 octets
95 signe de la mantisse
94 signe de l'exposant
93-92 00, ou NAN ou infini si 11
91-80 les trois chiffres décimaux les moins significatifs de l'exposant
79-76 le chiffre décimal le plus significatif de l'exposant mantisse
75-68 pas tenu en compte
67-64 le chiffre le plus significatif de la mantisse
63-0 mantisse

Registres de données et de contrôle

modifier

Ses 8 registres de données (de FP0 à FP7) ont une largeur de 10 octets (80 bits), bien que la taille d'un réel de précision étendue puisse s'étendre sur 12 octets.

Il possède en outre 3 registres de contrôle :

FPCR (Floating Point Control Register), 32 bits dont seuls les premiers sont utilisés
3-0 ? zéro
5-4 ROUND méthode d'arrondissement
00 : au plus proche
01 : zéro
10 : moins l'infini
11 : plus l'infini
7-6 PREC précision de l'arrondissement
00 : étendu
01 : simple
10 : double
11 : réservé
8 INEX1 sortie décimale inexacte
9 INEX2 opération inexacte
10 DZ division par zéro
11 UNFL underflow
12 OVFL overflow
13 OPERR erreur d'opérande
14 SNAN signal Not-A-Number
15 BSUN Branch/Set in UNorderd


FPSR (Floating Point Status Register), 32 bits divisé en 4 octets
7-0 exception accrue
2-0 toujours à zéro
3 INEX!INEX2!OVFL
4 DZ
5 UNFL & INEX2
6 OVFL
7 BSUN!SNAN!OPERR
15-8 statut des exceptions
8 INEX1 : sortie décimale inexacte
9 INEX2 : opération inexacte
10 DZ : division par zéro
11 UNFL : underflow
12 OVFL : overflow
13 OPERR : erreur d'opérande
14 SNAN : signal Not-A-Number
15 BSUN : Branch/Set in UNorderd
23 signe d'un quotient
22-17 quotient
24 NAN : Not A Number
25 I : infini
26 Z : zéro
27 N : négatif
31-28 zéro


FPIAR (Floating Point Instruction Address Register) est le registre d'adresse de l'instruction en cours.

Puissance

modifier
  • 155000 transistors
  • La version 16 MHz procure 160 KFLOPS
  • La version 20 MHz procure 192 KFLOPS
  • La version 25 MHz procure 240 KFLOPS
  • 176000 transistors
  • La version 25 MHz procure 360 KFLOPS
  • La version 33 MHz procure 475 KFLOPS
  • La version 40 MHz procure 576 KFLOPS
  • La version 50 MHz procure 720 KFLOPS