Hello, Guest!
 
 

 
 
  Objects Tiiips Categories
Intel 8087 ceramic
"Descrizione"
by A_Partyns (13106 pt)
2026-Feb-02 17:49

Intel 8087

Definizione

L’Intel 8087 è un coprocessore matematico (Numeric Data Processor) progettato per affiancare le CPU 8086 e 8088, con lo scopo di accelerare i calcoli in virgola mobile e le funzioni matematiche più complesse. In pratica, estende l’insieme di istruzioni del sistema con il set X87 (istruzioni floating-point) e fornisce un’unità hardware dedicata per operazioni come somma, sottrazione, moltiplicazione, divisione, radice quadrata e varie funzioni trascendentali (logaritmi, esponenziali, trigonometria).

Nei sistemi dell’epoca (inclusi molti PC compatibili), l’8087 era spesso un componente opzionale: la scheda madre poteva avere uno zoccolo predisposto e l’utente lo installava solo se servivano prestazioni numeriche elevate (CAD, calcolo tecnico, fogli di calcolo avanzati, applicazioni scientifiche).

Come si integra con 8086/8088 (architettura “coprocessore”)

Il modello operativo è particolare: l’8087 non sostituisce la CPU, ma lavora “a fianco” condividendo bus e visibilità delle istruzioni. Concetti chiave:

  • La CPU continua a fare fetch delle istruzioni dal codice.

  • Quando compaiono istruzioni del set X87 (codificate attraverso opcodes “ESC”), l’8087 le riconosce e avvia l’elaborazione numerica.

  • Quando servono operandi in memoria o scritture di risultato, l’8087 usa i cicli bus coordinandosi con la CPU (con segnali di sincronizzazione dedicati).

  • In molte sequenze la CPU può proseguire con istruzioni integer mentre l’8087 lavora, ma alcune istruzioni richiedono sincronizzazione esplicita (ad esempio tramite WAIT/FWAIT), soprattutto quando il software deve assicurarsi che un risultato floating-point sia pronto.

Questo approccio permette di aggiungere capacità floating-point senza ridisegnare la CPU, mantenendo compatibilità software e scalabilità (chi non installa l’8087 usa routine software/emulazione).

Registri e modello dati (stack X87)

L’8087 introduce un file registri non “piatto” ma organizzato come stack:

  • 8 registri floating-point ST0–ST7, dove ST0 è la cima dello stack.

  • Molte istruzioni operano implicitamente su ST0 (e spesso su ST1), con semantica di push/pop che semplifica certe sequenze ma richiede disciplina nella gestione dello stack.

  • Internamente (e spesso anche come formato memorizzabile) è usata la precisione estesa a 80 bit, utile per ridurre errori di arrotondamento intermedi.

Sul piano dei formati supportati, oltre a real a 32 bit (single) e 64 bit (double), l’8087 gestisce anche interi (16/32/64 bit) e un formato BCD packed (tipicamente usato per applicazioni dove la rappresentazione decimale controllata è importante).

Frequenza e varianti tipiche

L’8087 è stato prodotto in più versioni legate alla frequenza massima di sistema (dipendente anche dall’implementazione sulla scheda): storicamente si incontrano versioni a 5 MHz, 8 MHz e 10 MHz (con sigle di stepping/modello diverse).

Perché era importante nei sistemi dell’epoca

  • Abilitava prestazioni floating-point nettamente superiori al calcolo in software su 8086/8088.

  • Standardizzava il modello X87, poi mantenuto nei coprocessori successivi (80287, 80387) e infine integrato nelle CPU più moderne.

  • Permetteva una scelta economica: si acquistava l’8087 solo se il carico applicativo lo giustificava.

Schizzo dei collegamenti più importanti

┌──────────────────────────────┐ │ CPU 8086/8088 │ │ fetch istruzioni + controllo │ │ bus A/D + segnali sistema │ └──────────────┬───────────────┘ │ bus condiviso + sincronizzazione ▼ ┌──────────────────┐ │ INTEL 8087 │ │ unità X87 FPU │ │ stack ST0–ST7 │ │ 80-bit internal │ └─────────┬────────┘ │ accessi a memoria (operandi/risultati) ▼ ┌────────────────────────────────┐ │ RAM / ROM / I-O di sistema │ │ (operandi, risultati, codice) │ └────────────────────────────────┘

Tabella 1 – Dati di identificazione e specifiche (italiano)

CaratteristicaValore indicativo
DispositivoIntel 8087 (coprocessore matematico)
CPU host tipiche8086, 8088
FunzioneAccelerazione calcolo floating-point e funzioni matematiche
Modello registriStack X87: ST0–ST7 (8 registri)
Precisione internaFormato esteso 80 bit
Formati supportatiReal 32/64/80 bit, interi 16/32/64 bit, BCD packed
Frequenze tipiche5 / 8 / 10 MHz (a seconda della variante e del sistema)
Package tipico40-pin DIP (varianti storiche)


Tabella 2 – Aspetti operativi e software (italiano)

AspettoSignificato pratico
Op-codes “ESC”Meccanismo con cui le istruzioni X87 vengono riconosciute dal coprocessore
Sincronizzazione WAIT/FWAITUsata quando serve garantire che l’8087 abbia completato un’operazione prima di proseguire
Stack X87Richiede gestione disciplinata di push/pop per evitare underflow/overflow logico
Beneficio prestazionaleForte su carichi numerici; minimo su software solo integer
Uso tipicoCAD, calcolo tecnico/scientifico, fogli di calcolo, elaborazioni numeriche
OpzionalitàSpesso installabile su zoccolo dedicato; non necessario per uso generico


Evaluate