25
Microprocessore Intel 8086 Fondamenti architetturali

Microprocessore Intel 8086 Fondamenti architetturali

Embed Size (px)

Citation preview

Page 1: Microprocessore Intel 8086 Fondamenti architetturali

Microprocessore Intel 8086

Fondamenti architetturali

Page 2: Microprocessore Intel 8086 Fondamenti architetturali

Evoluzione in pillole

Introdotto nel 1978, il chip 8086 a 16 bit conteneva appena 29.000 transistor e operava a 5 MHz.

In confronto, l'attuale processore Pentium 4 contiene 55 milioni di transistor e opera a 3,06 GHz, una velocità più di 600 volte più elevata.

Page 3: Microprocessore Intel 8086 Fondamenti architetturali

Struttura esterna

Il package ha una struttura

dual in line

che significa: “due file di 20 piedini (pin) parallele”

Page 4: Microprocessore Intel 8086 Fondamenti architetturali

Piedinatura (pin-out)

Ogni piedino fornisce una funzionalità diversa.

Il CLOCK ad esempio scandisce gli intervalli di tempo sulla base dei quali avvengono tutte le elaborazioni

Page 5: Microprocessore Intel 8086 Fondamenti architetturali

Schema a blocchi

Si riconoscono gli elementi fondamentali della macchina di Von Neumann

Registri generali

CU

ALU

Page 6: Microprocessore Intel 8086 Fondamenti architetturali

BIU – Bus Interface Unit

Serve per costruire gli indirizzi

Contiene più istruzioni prelevate dalla memoria

Page 7: Microprocessore Intel 8086 Fondamenti architetturali

EU – Execution Unit

Registri degli operandi e dei flags

Page 8: Microprocessore Intel 8086 Fondamenti architetturali

Il meccanismo di PIPELINE

Grazie alla struttura suddivisa nelle due componenti autonome (BIU ed EU) l’8086 è in grado di gestire le elaborazioni con modalità pipeline.

La pipeline dati è una tecnologia utilizzata dai microprocessori per incrementare il throughput, ovvero la quantità di istruzioni eseguite in una data quantità di tempo.

L'elaborazione di un istruzione da parte di un processore si compone di cinque passaggi fondamentali:

IF: Lettura dell'istruzione da memoria ID: Decodifica istruzione e lettura operandi da registri EX: Esecuzione dell'istruzione MEM: Attivazione della memoria (solo per certe istruzioni) WB: Scrittura del risultato nel registro opportuno

Page 9: Microprocessore Intel 8086 Fondamenti architetturali

Elaborazione sequenziale

Se ipotizziamo un tempo di 1 sec. per ognuna delle fasi, il tempo totale sarà 15 sec.

Page 10: Microprocessore Intel 8086 Fondamenti architetturali

Elaborazione in pipeline

Se ipotizziamo un tempo di 1 sec. per ognuna delle fasi, il tempo totale sarà 9 sec. con un risparmio rispetto alla soluzione precedente di 6 sec.

Page 11: Microprocessore Intel 8086 Fondamenti architetturali

Indirizzamento della memoriaL’8086 rappresenta una evoluzione di una precedente serie denominata 8080 in cui l’indirizzamento di memoria centrale era a 16 bit.

Con 16 bit possiamo indirizzare al massimo 64K (65536) locazioni.

I progettisti stabilirono che l’8086, pur conservando alcune delle impostazioni precedenti, dovesse indirizzare fino ad 1M (1048576), inoltre stabilirono che i programmatori potessero avere una visione della memoria centrale suddivisa in aree diverse dedicate rispettivamente al codice, ai dati e allo stack.

L’8086 possiede un BUS indirizzi a 20 bit.

Con 20 bit possiamo indirizzare appunto 1048576 locazioni.

Page 12: Microprocessore Intel 8086 Fondamenti architetturali

Segmentazione della memoria

La tecnica utilizzata per indirizzare una maggiore quantità di memoria venne definita segmentazione, cosa che prevede di suddividere l’indirizzo in due parti chiamate rispettivamente SEGMENT e OFFSET ognuna in grado di rappresentare un numero da 16 bit.

Numero del segmento

Indirizzo all’interno del segmentoRAM

Page 13: Microprocessore Intel 8086 Fondamenti architetturali

Calcolo dell’indirizzo effettivo

CS

+

PC

Indirizzo a 20 bit

Registri a 16 bit

x 10h

Page 14: Microprocessore Intel 8086 Fondamenti architetturali

Calcolo dell’indirizzo effettivo : esempio

1AB3h (in binario 1101010110011)

1AB30h + 051Fh

051Fh ( in binario 10100011111)

1B04Fh ( in binario 11011000001001111)

x 10h

CS

PC

EA = Effective Address

Page 15: Microprocessore Intel 8086 Fondamenti architetturali

I registri

I registri dell’8086 sono classificati in :

• Registri generali • Registri puntatori• Registri di segmento• Registro di stato (PSW o Program Status Word)

Le dimensioni di ogni registro sono di 16 bit

Page 16: Microprocessore Intel 8086 Fondamenti architetturali

I registri generali

AH AL

BH BL

CH CL

DH DL

AX

BX

CX

DX

Sono registri da 16 bit utilizzabili anche come registri da 8 bit detti anche general purpose per l’uso generale che si fa di questi registri nei programmi (Ad ogni registro viene inoltre assegnato un compito particolare rispetto alle varie istruzioni)

Registro accumulatore

Registro contatore

H = High

L = Low

Page 17: Microprocessore Intel 8086 Fondamenti architetturali

I registri puntatori

SI DI SP BP

Sono registri a 16 bit non suddivisibili in byte, che vengono utilizzati per contenere la parte OFFSET degli indirizzi di memoria relativi agli operandi. Il registro IP (parte offset del Program Counter) pur essendo un registro puntatore non può essere utilizzato dal programmatore in quanto gestito direttamente dal sistema.

IP

Utilizzati dalle istruzioni che operano sulle stringhe

Utilizzati dalle istruzioni che operano sullo stack

source index destination index stack pointer

Page 18: Microprocessore Intel 8086 Fondamenti architetturali

I registri di segmento

CS DS ES SS

Sono registri a 16 bit che identificano i diversi segmenti che contengono il codice e i dati di un programma. Possono essere modificati dal programmatore

code segment data segment extra segment stack segment

Punta al segmento che contiene le istruzioni

Punta al segmento che contiene i dati

Punta al segmento che contiene eventualmente altri dati

Punta al segmento che contiene lo stack

Page 19: Microprocessore Intel 8086 Fondamenti architetturali

Il registro di stato (PSW)E’ un registro da 16 bit che viene utilizzato bit per bit.

Solo 9 sono significativi. Sei sono solo leggibili tre sono anche scrivibili. (La letterina F sta per flag)

OF SF ZF AF PF CF DF IF TF

overflow

sign

zero

auxiliary

parity

carry

riporto

Risultato nullo

segno

traboccamento

I flag vengono settati(cioè valgono 1) dalle istruzioni aritmetiche e logiche

Page 20: Microprocessore Intel 8086 Fondamenti architetturali

Il program counter

Il program counter è costituito dalla coppia di registri CS:IP cioè dal segmento che individua l’indirizzo della memoria contenente le istruzioni e dal puntatore all’istruzione da eseguire all’interno del segmento.

Segmento Stack

Segmento Extra

Segmento Dati

Segmento Codice

Programma in memoria

Page 21: Microprocessore Intel 8086 Fondamenti architetturali

Lo stack

Dato 1

STACK

Si chiama stack un area della memoria in cui vengono “accatastati” i dati in modo tale da poter recuperare gli stessi a partire dall’ultimo inserito, secondo una modalità definita LIFO.

prima locazione dello stack

Dato 2

seconda locazione dello stackterza locazione dello stack

ultima locazione dello stack

SS:SP

PUSH

PUSH

TOP

BOTTOMViene utilizzato, in genere, per la gestione dei sottoprogrammi.

…. locazione dello stack

Page 22: Microprocessore Intel 8086 Fondamenti architetturali

ChipIn informatica il termine chip può significare:

• circuito integrato cioè un dispositivo elettronico costituito dall'integrazione di un circuito elettronico su di un substrato di materiale semiconduttore (in genere silicio, ma a volte anche arseniuro di gallio o altri).

• microprocessore (spesso abbreviato con µP) cioè un componente elettronico digitale formato da transistor racchiuso in uno o più circuiti integrati. Uno o più processori sono utilizzati come CPU da un sistema di elaborazione digitale come può essere un personal computer, un palmare, un telefono cellulare o un altro dispositivo digitale.

Page 23: Microprocessore Intel 8086 Fondamenti architetturali

TransistorI transistor vengono impiegati in ambito elettronico, principalmente, come amplificatori di segnali elettrici o come interruttori elettronici comandati da segnali elettrici

Processo di fabbricazione di un transistor

Page 24: Microprocessore Intel 8086 Fondamenti architetturali

Flag

Un flag (parola inglese che significa bandierina) in informatica è una variabile che può assumere solo due stati ("vero" o "falso", "on" e "off", "1" e "0", "acceso" e "spento") e che segnala, con il suo valore, se un dato evento si è verificato oppure no, o se il sistema è in un certo stato oppure no.

Page 25: Microprocessore Intel 8086 Fondamenti architetturali

LIFO

Il termine LIFO è acronimo inglese di Last In First Out (Ultimo ad entrare, primo ad uscire).

Esprime il concetto relativo al modo di immagazzinare dati in cui l'ultimo valore introdotto è il primo ad uscire. Si rappresenta di solito con una pila di libri o di piatti, in cui l'ultimo appoggiato in cima è necessariamente il primo ad essere prelevato, mentre il primo introdotto è raggiunto per ultimo