MC68882RC50A sostituì il MC68881 pur mantenendo lo stesso set di istruzioni, ma con una frequenza più elevata, passando dai 12MHz ai 50 MHz. Era montato sull'Atari Falcon 030.
MC68882 è una FPU (floating-point unit), un'unità esterna, progettata come coprocessore matematico per la famiglia M68000, con uso tipico accanto a MC68020 e MC68030. La sua funzione è eseguire in hardware le operazioni in virgola mobile (e varie conversioni numeriche) con prestazioni e accuratezza superiori rispetto all’emulazione software, mantenendo un modello di programmazione integrato: le istruzioni floating-point vengono gestite tramite l’interfaccia coprocessore del sistema, con esecuzione sovrapposta (quando possibile) a quella della CPU.
Un punto architetturale chiave: la MC68882 non è bus master. È la CPU (68020/68030) che preleva gli operandi e scrive i risultati su richiesta della FPU; questo semplifica la progettazione e sfrutta il bus dati della CPU per trasferimenti rapidi.

Cosa offre (funzioni e vantaggi pratici)
Conformità IEEE 754: implementazione completa dello standard di aritmetica floating-point (con gestione di rounding, eccezioni, NaN/Inf, ecc.).
Set istruzioni dedicato: include operazioni aritmetiche e un insieme esteso di funzioni trigonometriche e trascendentali (oltre il minimo IEEE).
Registri floating-point: 8 registri general-purpose (FP0–FP7) in formato esteso a 80 bit per ridurre errori intermedi e migliorare stabilità numerica.
Conversioni veloci: hardware dedicato per conversione tra formato in memoria (single/double/extended, interi, BCD packed) e formato interno esteso, riducendo overhead.
Concorrenza: molte istruzioni FPU possono procedere mentre la CPU continua l’esecuzione di istruzioni integer, con sincronizzazioni automatiche dove necessario.
Compatibilità: è compatibile e sostituibile (a livello funzionale e spesso fisico) rispetto alla MC68881, mantenendo lo stesso set istruzioni; la 68882 introduce ottimizzazioni prestazionali (pipeline/conversioni).
Come si integra nel sistema (interfaccia coprocessore)
Con MC68020/MC68030 l’interazione è basata su un protocollo coprocessore:
La CPU riconosce un’istruzione floating-point e la inoltra alla FPU tramite registri/handshake di interfaccia.
La FPU può richiedere alla CPU operazioni “di contorno” (ad esempio: valutazione indirizzi effettivi, fetch operandi da memoria, store dei risultati).
Dopo aver soddisfatto tali richieste, la CPU può proseguire con altre istruzioni mentre la FPU completa la parte numerica, salvo casi che impongono sincronizzazione o gestione eccezioni.
Questo schema rende la FPU un’estensione “ortogonale” dell’ISA: dal punto di vista del programmatore, l’insieme CPU+FPU appare quasi come un’unica unità logica.
Formati numerici e modello di eccezioni
La MC68882 supporta più formati di input/output e un modello completo di exception handling, utile nei sistemi con virtual memory e multitasking: lo stato interno può essere salvato/ripristinato con istruzioni dedicate (tipicamente FSAVE/FRESTORE nel contesto 68k), così che un sistema operativo possa sospendere/riprendere task anche durante attività floating-point.
Schizzo dei collegamenti più importanti
┌──────────────────────────────┐
│ CPU MC68020/68030 │
│ bus dati/indirizzi + MMU* │
│ interfaccia coprocessore │
└──────────────┬───────────────┘
│ (CPU space / protocollo coprocessore)
▼
┌──────────────────┐
│ MC68882 FPU │
│ FP regs + ALU │
│ conversion unit │
│ eccezioni/CSR │
└─────────┬────────┘
│ (richieste operandi/risultati)
▼
┌────────────────────────────────┐
│ Memoria e sottosistema bus │
│ operandi e risultati gestiti │
│ dalla CPU (FPU non bus-master) │
└────────────────────────────────┘
* con 68030 la mmu è on-chip; la FPU resta “lato fisico” rispetto alla mmu.
Tabella 1 – Dati di identificazione e specifiche
| Caratteristica | Valore indicativo |
|---|
| Dispositivo | Motorola MC68882 (FPU / math coprocessor) |
| Cpu tipiche abbinate | MC68020, MC68030 (famiglia M68000) |
| Standard floating-point | IEEE 754 (implementazione completa) |
| Registri | 8 registri floating-point (FP0–FP7), 80 bit extended precision |
| Formati supportati | Interi (byte/word/long), real single/double/extended, packed BCD |
| Istruzioni | Set dedicato (decine di istruzioni), incluse funzioni trigonometriche e trascendentali |
| Concorrenza | Esecuzione spesso sovrapponibile con la CPU (dipende dall’istruzione) |
| Bus mastering | No: operandi e risultati passano tramite la CPU |
| Bus dati host | Utilizzabile su host con bus 8/16/32 bit (a seconda del sistema) |