8087 Elaboratore dati numerico
Il processore di dati numerici 8087 è anche noto come Math co-processor, Numeric processor extension e Floating point unit. È stato il primo coprocessore matematico progettato da Intel per l'accoppiamento con 8086/8088 risultando in un calcolo più semplice e veloce.
Una volta che le istruzioni sono state identificate dal processore 8086/8088, vengono assegnate al coprocessore 8087 per un'ulteriore esecuzione.
I tipi di dati supportati da 8087 sono:
- Numeri interi binari
- Numeri decimali imballati
- Numeri reali
- Formato reale temporaneo
Le caratteristiche più importanti del processore di dati numerici 8087 sono le seguenti:
Supporta dati di tipo integer, float e real che vanno da 2 a 10 byte.
La velocità di elaborazione è così elevata che può calcolare la moltiplicazione di due numeri reali a 64 bit in ~ 27 µs e può anche calcolare la radice quadrata in ~ 35 µs.
Segue gli standard in virgola mobile IEEE.
8087 Architecture
8087 Architecture è diviso in due gruppi, ovvero Control Unit (CU) e Numeric Extension Unit (NEU).
Il control unit gestisce tutte le comunicazioni tra il processore e la memoria come riceve e decodifica istruzioni, legge e scrive operandi di memoria, mantiene la coda parallela, ecc. Tutte le istruzioni del coprocessore sono istruzioni ESC, cioè iniziano con 'F', il solo coprocessore esegue le istruzioni ESC mentre le altre istruzioni vengono eseguite dal microprocessore.
Il numeric extension unitgestisce tutte le istruzioni del processore numerico come le istruzioni aritmetiche, logiche, trascendentali e di trasferimento dati. Ha 8 stack di registri, che contengono gli operandi per le istruzioni ei loro risultati.
L'architettura del coprocessore 8087 è la seguente:
Descrizione pin 8087
Diamo prima un'occhiata al diagramma dei pin di 8087 -
Il seguente elenco fornisce la descrizione dei pin di 8087 -
AD0 – AD15 - Queste sono le linee di indirizzo / dati multiplexate nel tempo, che trasportano indirizzi durante il primo ciclo di clock e dati dal secondo ciclo di clock in poi.
A19 / S6 – A16/S- Queste righe sono le righe indirizzo / stato multiplexate nel tempo. Funziona in modo simile ai corrispondenti pin di 8086. S 6 , S 4 e S3 sono permanentemente alti, mentre S 5 è permanentemente basso.
$\overline{BHE}$/S7- Durante il primo ciclo di clock, $ \ overline {BHE} $ / S 7 viene utilizzato per abilitare i dati sul byte più alto del bus dati 8086 e successivamente funziona come linea di stato S 7 .
QS1, QS0 - Questi sono segnali di ingresso di stato della coda che forniscono lo stato della coda di istruzioni, le loro condizioni come mostrato nella tabella seguente -
QS 0 | QS 1 | Stato |
---|---|---|
0 | 0 | Nessuna operazione |
0 | 1 | Primo byte di codice operativo dalla coda |
1 | 0 | Svuota la coda |
1 | 1 | Byte successivo dalla coda |
INT - È un segnale di interruzione, che diventa alto quando viene ricevuta un'eccezione non mascherata durante l'esecuzione.
BUSY - È un segnale di uscita, quando è alto indica uno stato occupato alla CPU.
READY - È un segnale di ingresso utilizzato per informare il coprocessore se il bus è pronto a ricevere dati oppure no.
RESET - È un segnale di ingresso utilizzato per rifiutare le attività interne del coprocessore e prepararlo per un'ulteriore esecuzione quando richiesto dalla CPU.
CLK - L'ingresso CLK fornisce le temporizzazioni di base per il funzionamento del processore.
VCC - È un segnale di alimentazione, che richiede un'alimentazione di + 5V per il funzionamento del circuito.
S0, S1, S2- Questi sono i segnali di stato che forniscono lo stato dell'operazione che viene utilizzato dal Bus Controller 8087 per generare memoria e segnali di controllo I / O. Questi segnali sono attivi durante il quarto ciclo di clock.
S 2 | S 1 | S 0 | Stato della coda |
---|---|---|---|
0 | X | X | Inutilizzato |
1 | 0 | 0 | Inutilizzato |
1 | 0 | 1 | Lettura della memoria |
1 | 1 | 0 | Scrittura in memoria |
1 | 1 | 1 | Passivo |
RQ/GT1 & RQ/GT0 - Questi sono i file Request/Grant segnali utilizzati dai processori 8087 per ottenere il controllo del bus dal processore host 8086/8088 per i trasferimenti di operandi.