Sartomiki.net

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri

Architettura 8086

E-mail Stampa PDF
Valutazione attuale: / 4
ScarsoOttimo 

8086L'8086 è composto da 40 pin e 29000 transistor e lavora a una frequenza compresa tra 5 e 10 Mhz a seconda delle versioni. Ha bisogno di un’unica V di alimentazione di 5V. 16 bit (dato). Sono presenti diversi registri suddivisibili principalmente in 3 categorie. Registri di dato (AX, BX, CX, DX), registri puntatori (IP, SP, BP, SI, DI), registri di segmento (CS, DS, ES, SS).
•    AX -> Registro per memorizzare risultati di operazioni o dati
•    BX-> Calcolo indirizzi
•    CX-> Contatore
•    DX-> Indirizzi di I/O
•    IP-> Contiene indirizzo dell’operazione da eseguire
•    SP-> Contiene indirizzo alla testa dello stack
•    BP-> Base per introdurre dati nello stack
•    SI, DI-> indici
•    CS-> puntatore all’inizio dei segmenti di codice
•    DS-> puntatore all’inizio dei segmenti di dato
•    ES-> puntatore all’inizio dei segmenti di dato supplementare
•    SS-> puntatore all’inizio dei segmenti dello stack

Per calcolare gli indirizzi 8086 somma il contenuto di un registro BX o di uno tipo puntatore a quello contenuto in un registro di segmento shiftato a sinistra di 4 posizioni. L’indirizzo fisico è quindi su 20bit. 

I flag di condizione vengono scritti direttamente alla fine di ogni operazione eseguita dal processore.
•    SF (Sign Flag): coincide con il MSB del risultato dopo un’istruzione aritmetica
•    ZF (Zero Flag): vale 0 se il risultato è nullo, 1 altrimenti
•    PF (Parity Flag): vale 1 se il numero di 1 negli 8 bit meno significativi del risultato è pari, 0 altrimenti
•    CF (Carry Flag): dopo le istruzioni aritmetiche vale 1 se c'è stato riporto (somma) o prestito (sottrazione); altre istruzioni ne fanno un uso particolare
•    AF (Auxiliary Carry Flag): usato nell'aritmetica BCD; vale 1 se c'è stato riporto (somma) o prestito (sottrazione) dal bit 3
•    OF (Overflow Flag): vale 1 se l'ultima istruzione ha prodotto un overflow.

I flag di controllo possono venire scritti o modificati e servono per regolare alcune funzioni del processore.
•    DF (Direction Flag): utilizzato dalle istruzioni per la manipolazione delle stringhe; se vale 0 le stringhe vengono manipolate partendo dai caratteri all'indirizzo minore, se vale 1 a partire dall'indirizzo maggiore
•    IF (Interrupt Flag): se vale 1, i segnali di Interrupt mascherabili vengono percepiti dalla CPU, altrimenti questi vengono ignorati
•    TF (Trap Flag): se vale 1, viene eseguita una trap al termine di ogni istruzione.

L’8086 è in grado di leggere una parola in un solo passo se essa si trova ad un indirizzo di memoria pari, in due passi se si trova a un indirizzo dispari: ha spazio di indirizzamento pari a 1Mbyte. Alcune parti della memoria non sono scrivibili: ad esempio la parte superiore della memoria è occupata dalla Interrupt Vector Table, mentre quella inferiore è destinata al Reset Bootstrap e a usi futuri.

L’8086 fa uso del meccanismo della Pipeline a due stadi, che se sfruttata appieno riesce a dimezzare il tempo di esecuzione delle procedure. La pipeline in questione non è ideale in quanto BIU e EU non hanno lo stesso tempo di esecuzione.

L’execution unit (EU) ha il compito di decodificare ed eseguire le istruzioni. Essa le riceve dalla BIU le decodifica, genera gli indirizzi degli operandi e la esegue, aggiornando i flag.

La Bus interface unit (BIU) ha il compito di gestire tutte le operazione da e verso l’esterno. Esegue il fetch delle istruzioni, legge gli operandi, scrive i risultati, genera gli indirizzi,  accomoda le istruzioni, lavorando in parallelo con la EU. La BIU hanche il compito di gestire una coda FIFO delle istruzioni pari a 6 byte (prefetch). La BIU provvede a tenerla sempre piena e a svuotarla quando si verificano istruzioni di salto.
L’8086 è munito di uno STACK. Esso viene gestito tramite due indirizzi lo SP che punta alla testa dello stack e l’SS che punta all’ultima cella dello STACK allocabile. Lo stack viene anche utilizzato nelle operazioni di salto a procedura. In questo caso l’IP di partenza viene pushato nello stack e viene estratto (POP) nel momento della chiamata della RETURN.

Nell’8086 la scelta del criterio di gestione dell’I/O (memory mapped o isolated) è lasciata all’utente. Lo spazio di indirizzamento resta comunque limitato a 64k.


blog comments powered by Disqus
 

http://sartomiki.net/modules/mod_fuofb/assets/it/find-us-on-facebook-1.png

Follow me

Amici

Chi è online

 3 visitatori online

Siti amici

Banner

Notizie flash

Il mese di maggio 2010 abbiamo segnato il nuovo record di visite mensili: 3000!

Grazie a tutti! Continuate a visitare sartomiki.net

PUBBLICITA'