Qui di seguito vengono mostrati i punti generali dell’architettura dell’8086 e una breve argomentazione dei blocchi nella parte dell’Execution Unit di tale datapath.
Di seguito viene riportata unโimmagine rappresentante lo schema a blocchi elementare per lโ8086.

Come si puรฒ notare lโarchitettura รจ suddivisa in due grandi sezioni:
- Execution Unit
- Si tratta della parte esecutiva dellโarchitettura. Essa si interfaccia al mondo esterno grazie alla Bus Interface Unit e da questโultima riceve le prossime istruzioni da eseguire. Per poter avere accesso alle memorie la EU deve riferirsi alla BIU. Ogni registro allโinterno della EU รจ a 16 bit. La EU ha traccia anche dello stato della CPU, il quale รจ Status Register.
- Bus interface unit
- ร la sezione che si occupa dellโinterfacciame dellโEU con le memorie esterne e le periferiche I/O esterne. La BIU si occupa anche di garantire un anticipo delle fetch, secondo una logica di pipeline nella quale fetch ed execute non avvengono in modo temporalmente sequenziale ma in modo ottimizzato.
La Execution Unit
Come giร anticipato la EU รจ la parte esecutiva dellโarchitettura della CPU e ย si articola in 5 sottosezioni:
- I registri generali
- I registri temporanei
- La Aritmetic Logic Unit (ALU)
- Il sistema di controllo della EU
Di seguito viene discussa la funzione dei blocchi in elenco.
I registri generali e temporanei
I registri generali sono 8 e da 16 bit ciascuno. Solo 4 dei registri generali (per esempio AX, BX) possono essere allocati nella loro parte alta (o โHighโ) (per esempio AH, BH etc.) e/o nella parte bassa (o โLowโ) separatamente (AL, BL, etc.).
I registri generali sono:
- AX (compreso di AH|AL) si chiama registro accumulatore e viene utilizzato per operazioni di moltiplicazione, divisione etc. sulle word mentre la sua parte alta e la sua parte bassa si usano per le operazioni tra byte.
- BX (compreso di BH|BL) si chiama registro base e viene utilizzato per stabilire lโindirizzo di base (iniziale) di una tabella o di un vettore.
- CX (compreso di CH|CL) si chiama registro contatore e viene usato per le operazioni sulle stringhe e nei loop
- DX (compreso di DH|DL) si chiama registro dei dati viene utilizzato per specificare le porte di I/O ma anche per eseguire operazioni di moltiplicazione e di divisione sulle word.
- SP (stack pointer, รจ un puntatore che punta alla sommitร dello stack) e BP (Base pointer, รจ un puntatore che punta ad una allocazione interna allo stack) vengono utilizzati per le operazioni con gli stack.
- SI (Source Index) รจ un offset che consente di puntare a una locazione specifica nel segmento di memoria destinato ai dati. Tipicamente viene utilizzato per le operazioni tra le stringhe e indirizza lโoperando o il dato sorgente
- DI (Destination Index) รจ un offset che consente di puntare a una locazione specifica nel segmento di memoria destinato ai dati. Tipicamente viene utilizzato per le operazioni tra le stringhe e indirizza lโoperando o il dato di destinazione
I temporary registers invece sono dei registri buffer in cui vengono caricati i valori su cui deve operare la ALU.
La ALU e lo Status Register (SR)
ALU sta per Artimetic Logic Unit ed รจ un circuito combinatorio adibita allโesecuzione di tutte le operazioni richieste, siano esse somme, sottrazioni, operazioni booleane etc. La ALU รจ responsabile del settaggio dei bit nello Status Register, in cui viene tenuto conto dello stato della CPU. Per esempio se la ALU durante una somma va in overflow (cioรจ il risultato risulta non essere piรน rappresentabile in 16 bit) il bit numero 11 (chiamato anche bit OF, che sta per OverFlow) del registro dellโ SR va a uno, indicando appunto lo stato di overflow.
Control System
Questo blocco controlla il flusso dei dati verso la Execution Unit.
Devi effettuare l'accesso per postare un commento.