Come funziona un microprocessore Intel 8088

Il microprocessore Intel 8088, introdotto nel 1979, è una variante del più potente 8086 ed è diventato famoso per essere il cuore del primo IBM PC, lanciato nel 1981. Anche se internamente è molto simile all’8086, il suo design è stato modificato per rendere più semplice ed economica l’integrazione nei sistemi elettronici dell’epoca.

L’Intel 8088 è un microprocessore a 16 bit internamente, ma con un bus dati esterno a 8 bit. Questo significa che esegue operazioni interne su 16 bit, come somme, confronti o spostamenti di dati, ma comunica con la memoria e le periferiche in blocchi di 8 bit alla volta. Questa scelta ha permesso ai progettisti dell’IBM PC di usare componenti più economici, come RAM e chip periferici a 8 bit.

Come l’8086, anche l’8088 può indirizzare fino a 1 megabyte di memoria, cioè 1.048.576 byte, grazie a un bus indirizzi a 20 bit. Tuttavia, a causa della larghezza ridotta del bus dati, l’accesso alla memoria è più lento rispetto all’8086.

Il modello di memoria dell’8088 si basa sulla segmentazione, introdotta già con l’8086. La memoria è suddivisa in segmenti da 64 kilobyte. Ogni indirizzo di memoria è calcolato combinando un registro di segmento a 16 bit e un offset anch’esso a 16 bit.

I registri di segmento principali sono:
CS, segmento del codice
DS, segmento dei dati
SS, segmento dello stack
ES, segmento extra, usato in operazioni su stringhe

L’indirizzo fisico effettivo si calcola moltiplicando il valore del registro di segmento per 16 e sommando l’offset. Questo sistema consente l’accesso a un intervallo più ampio di memoria pur usando registri a 16 bit.

L’8088 è diviso in due sezioni principali: la bus interface unit (BIU) e la execution unit (EU). La BIU si occupa della comunicazione con la memoria e le periferiche esterne. Preleva le istruzioni dalla memoria e le inserisce in una coda di prefetch lunga 4 byte. La coda serve a migliorare le prestazioni, consentendo al processore di iniziare a eseguire un’istruzione mentre le successive vengono già caricate. L’EU contiene l’unità aritmetico-logica, i registri e l’unità di controllo. Legge le istruzioni dalla coda, le decodifica e le esegue.

Il processore dispone di diversi registri a 16 bit, suddivisi in gruppi. I registri generali sono AX, BX, CX, DX, e possono anche essere divisi in due registri da 8 bit (per esempio AX è composto da AH e AL). I registri indice e puntatori sono SI, DI, SP e BP. I registri di segmento sono CS, DS, SS ed ES. Il registro IP, instruction pointer, tiene traccia dell’indirizzo della prossima istruzione da eseguire. Infine, c’è il registro FLAGS, che contiene vari flag di stato, come carry, zero, sign, overflow, direction, interrupt enable e altri.

Ogni istruzione segue un ciclo composto da fetch, decode, execute e write back. Durante il fetch, la BIU preleva l’istruzione dalla memoria e la inserisce nella coda. Nell’EU, l’istruzione viene decodificata e poi eseguita, modificando registri, flag o accedendo alla memoria. Se necessario, il risultato viene scritto indietro in un registro o in memoria. Il pipelining rudimentale tra le due unità consente un miglioramento delle prestazioni, anche se le istruzioni complesse o i salti azzerano la coda.

L’8088 accede alla memoria e alle periferiche tramite segnali di controllo. La memoria è separata dallo spazio di input output. I segnali MEMR e MEMW sono usati per leggere o scrivere in memoria, mentre IOR e IOW servono per l’input output. Il processore può indirizzare fino a 65.536 porte di I/O, che sono mappate in uno spazio separato rispetto alla RAM.

Il processore supporta un sistema di interruzioni, che permette di reagire a eventi esterni come la pressione di un tasto o l’arrivo di un dato da una periferica. Le interruzioni possono essere hardware, software o non mascherabili. Ogni interruzione è associata a un vettore che punta a una routine di servizio da eseguire.

Il clock del processore 8088 nel primo IBM PC era di 4,77 megahertz. Nonostante le prestazioni modeste secondo gli standard attuali, era sufficiente per applicazioni dell’epoca come elaboratori di testi, fogli di calcolo e software di base. Il successo dell’IBM PC ha reso l’8088 uno dei microprocessori più influenti della storia, avviando una lunga serie di compatibilità che ha portato allo sviluppo della moderna architettura x86.

 

Leggi anche…

 

Come funziona una CPU Intel 4004

Come funziona un microprocessore Z80

Come funziona una memoria RAM

Come funziona una memoria EPROM

Come funziona una memoria EEPROM