...

Lezione15 - Dipartimento di Ingegneria dell`Informazione

by user

on
Category: Documents
8

views

Report

Comments

Transcript

Lezione15 - Dipartimento di Ingegneria dell`Informazione
Lezione 15
Architettura di un calcolatore
L’elaboratore Elettronico
? Un elaboratore elettronico è una macchina
elettronica in grado di elaborare dati secondo le
specifiche fornite da un algoritmo
? Internamente all’elaboratore tutte le
informazioni sono rappresentate in binario:
? dati
? programmi
1
Le unità fondamentali
? Le unità che compongono il calcolatore sono:
? La memoria centrale (CM)
? L’unità di controllo (CU)
? L’unità aritmetico logica (ALU)
? L’unità di ingresso/uscita (IO)
? Le unità di memoria di massa
Le unità
? La memoria centrale: è il dispositivo in cui
vengono mantenuti sia il programma che i dati
su cui l’elaboratore opera
? L’unità di controllo: è il dispositivo che provvede
alla esecuzione delle istruzioni che compongono
un programma. Provvede a coordinare le altre
unità.
2
Le unità
? L’unità aritmetico/logica: è il dispositivo che
esegue le operazioni di calcolo (+,*,<,=,etc) e
logiche (and,or,not,etc)
? Le unità ingresso/uscita: sono i dispositivi
tramite i quali è possibile comunicare dati
all’elaboratore (ingresso) e conoscere i risultati
dell’elaborazione (uscita).
Le unità
? Le unità di memoria di massa: sono dispositivi
in cui è possibile mantenere grandi quantità di
informazioni (dati o programmi) in modo
permanente (anche quando un calcolatore è
spento).
3
Interazione tra le unità
? Le unità sono collegate tra loro tramite bus
? Un bus è un insieme di linee in grado di
trasmettere un segnale elettrico.
? Attraverso un bus le unità si scambiano dati o
istruzioni
Bus
? Il bus che collega la ALU alla CU è detto bus
interno
? Il bus che collega la memoria con le altre parti
del sistema è detto bus esterno
? I bus si possono dividere in bus per il
? trasferimento di dati
? trasferimento di indirizzi
? trasferimento di comandi
4
Bus esterno
Unità di controllo
Unità
aritmetico-logica
Bus interno
Architettura della Calcolatore
Unità di
memoria centrale
Unità
periferica
Interazione tra le unità
? Schema generale:
? L’unità di controllo acquisisce dalla memoria centrale
l’istruzione
? se è una istruzione di IN/OUT trasferisce i dati verso o
in uscita dalla memoria centrale
? se è una istruzione di elaborazione dei dati la
trasferisce alla unità aritmentico -logica insieme al
comando di quale operazione eseguire, preleva il
risultato e lo trasferisce nella memoria centrale
? L’unità di controllo acquisisce l’istruzione successiva
dalla memoria
5
La memoria centrale
? E’ un insieme di celle ciascuna delle quali può
contenere una informazione in forma binaria
? La dimensione della cella è il numero di bit che
essa contiene
? Tale dimensione è anche detta parola
? Sono possibili parole di 16, 32, 64 bit
La memoria centrale
? Le celle costituiscono un insieme ordinato
numerato progressivamente da 0 a N-1
? N è la dimensione della memoria centrale detta
capacità
? Si fa riferimento al contenuto di una cella
tramite il suo indirizzo
? La memoria è volatile, cioè non mantiene le
informazioni quando si spenge l’elaboratore
6
Capacità di memoria
? Se un calcolatore ha una memoria di 2 MB con
parole di 16 bit di quante celle di memoria
dispone?
? R: 16 bit = 2 byte, 2MB=1 milione di celle
? Se un calcolatore ha parole di 16 bit, quante
celle di memoria può teoricamente indirizzare?
? R: 216
La memoria centrale
? Le operazioni che si possono eseguire sulla
memoria centrale sono la scrittura e la lettura
? Non possono essere eseguite operazioni
direttamente in memoria: il contenuto va
trasferito su dei registri, elaborato, e poi
riscritto
? La memoria centrale viene anche detta ad
accesso casuale o Random Access Memory
(RAM) poiché il tempo di accesso per una data
cella è indipendente dalla cella (ovvero dal suo
indirizzo)
? Il tempo di accesso è inferiore ai 100 ns
7
Scrittura
? Operazione con cui si deposita informazione in
memoria centrale
? Necessita di un dato e un indirizzo della cella in
cui si vuole scrivere.
? L’operazione è distruttiva ovvero cancella
l’informazione precedentemente contenuta nella
cella
Lettura
? Operazione con cui si preleva informazione dalla
memoria centrale
? Necessita dell’indirizzo della cella in memoria
centrale da cui si vuole leggere
? E’ un’operazione non distruttiva, cioè si copia
l’informazione presente nella cella lasciando
quest’ultima inalterata
8
Architettura della memoria
Registro indirizzi
Decodificatore
indirizzi
bus
MEMORIA
CENTRALE
Registro dati
Organizzazione della memoria
centrale
? I componenti fondamentali della memoria
centrale sono:
? memoria: l’insieme delle celle
? registro indirizzi: contiene l’indirizzo della cella a cui si
vuole far riferimento
? decodificatore di indirizzi: dispositivo che seleziona la
cella il cui indirizzo è specificato nel registro indirizzi
? registro dati: contiene l’informazione che deve essere
scritta o quella che è stata letta
? bus: collega la memoria al resto dei dispositivi
9
Cosa sono i registri?
? I registri sono dei dispositivi che permettono la
memorizzazione dell’informazione (una o più
parole)
? l’informazione transita velocemente sul bus
? i registri permettono di sincronizzare le
operazioni fra i vari dispositivi, conservando per
il tempo necessario l’informazione
A cosa serve il decodificatore?
? L’indirizzo di una cella di memoria viene
rappresentato come un numero in binario
? Es. la cella di indirizzo 9 è rappresentata come:
00000000 00001001
? Il decodificatore acquisisce tale numero e attiva
la cella corrispondente
10
Operazioni sulla memoria centrale
? Scrittura:
? L’indirizzo della cella passa dal bus e viene
memorizzato nel registro indirizzi
? Il dato passa dal bus e viene memorizzato nel registro
dati
? viene inviato un segnale di scrittura che attiva il
trasferimento dell’informazione contenuta nel registro
dati nella cella il cui indirizzo è nel registro indirizzi
Operazioni sulla memoria centrale
? Lettura:
? L’indirizzo della cella passa dal bus e viene
memorizzato nel registro indirizzi
? Viene inviato un segnale di lettura che attiva il
trasferimento dell’informazione contenuta nella cella il
cui indirizzo è nel registro indirizzi nel registro dati
? Viene trasferito sul bus il dato memorizzato nel
registro dati
11
L’unità aritmetico logica
? E’ il dispositivo capace di eseguire le operazioni
aritmetiche fondamentali, le operazioni logiche
e di shift
? La CU trasmette alla ALU gli operandi, cioè i dati
su cui deve eseguire una operazione, e un
comando che indica quale operazione
? La ALU esegue l’operazione e pone il risultato
sul registro risultato, e inoltre invia informazioni
sulle condizioni dell’operazione
Condizioni dell’operazione
? Le condizioni sono:
? risultato nullo
? positivo, negativo
? overflow sì o no
? carry sì o no
? Queste informazioni sono codificate in una
parola di 4 bit
? Es. 0101 =non nullo, positivo,no overflow, sì
carry
12
Architettura della ALU
Registro
accumulatore
bus
Cicuiti
Aritmetico-Logici
Registro
risultato
Operazioni in ALU
? Esecuzione di una operazione:
? si trasferisce un operando dal bus e si memorizza su
registro accumulatore
? si invia un comando di operazione alla ALU
? si copia il risultato sul registro risultato
? si trasferisce il risultato sul bus
13
I registri accumulatori
? E’ il registro su cui può operare direttamente
l’ALU
? Con una architettura a 16 bit è possibile operare
in floating point a 32 bit utilizzando du registri
accumulatori da 16 bit ciascuno
? Architetture che posseggono più di un registro
accumulatore possono memorizzare risultati
temporanei su questi per incrementare le
prestazioni
L’unità di controllo
? L’unità di controllo è il dispositivo che
sovraintende e coordina tutti gli altri dispositivi
? La CU legge l’indirizzo da cui prelevare una
istruzione dalla memoria la pone nel registro
istruzione, la decodifica ed inizia tramite la
logica di controllo ad attivare i vari dispositivi
? Successivamente si modifica (incrementa)
l’indirizzo a cui leggere l’istruzione successiva e
si ripete il ciclo
14
Architettura della unità centrale
Registro
contatore di programma
Logica di controllo
bus
Decodificatore
istruzione
Registro
istruzione
Il registro contatore di programma
? Detto Program Counter (PC), contiene l’indirizzo
della cella di memoria centrale in cui è
contenuta l’istruzione che deve essere eseguita.
? La CU incrementa di 1 il contenuto del PC per
leggere l’istruzione successiva
? Se l’istruzione da elaborare è un’istruzione di
salto allora la CU scrive direttamente dentro il
PC che contiene così l’indirizzo della istruzione
a cui si vuole saltare
15
L’esecuzione delle istruzioni
? Esecuzione di una istruzione:
? Fase di fetch (o di prelievo)
? si copia il contenuto della cella in memoria centrale
con indirizzo specificato dal program counter, sul
registro istruzione o instruction register (IR)
? si incrementa il PC di uno
L’esecuzione delle istruzioni
? Esecuzione di una istruzione:
? Fase di decodifica
? IR passa l’istruzione ad un decodificatore di istruzioni
che genera i segnali per la logica di controllo
16
L’esecuzione delle istruzioni
? Esecuzione di una istruzione:
? Fase di esecuzione
? vengono attivati i dispositivi interessati all’esecuzione
dell’istruzione (ALU) e coordinano il trasferimento delle
informazioni da un dispositivo ad un altro (ex. dalla
memoria centrale ad un dato registro)
? se l’istruzione era una istruzione di salto si modifica il
contenuto del PC
Sincronizzazione
? Ogni operazione avviene in modo sincronizzato
rispetto ad un orologio (clock) interno al sistema
? Il clock di sistema genera impulsi a intervalli
regolari
? Oggi i calcolatori hanno clock di quasi
2GHz=2miliardi di impulsi al secondo
17
Altri registri
? Esistono altri registri:
? registro di stato: mantiene informazioni per specificare
il permesso di esecuzione di certe istruzioni, di
accesso a certe aree di memoria, di abilitazione a
ricevere segnali dalle unità periferiche
? registro base: usato per suddividere la memoria
centrale in pagine, per indirizzare quantità maggiori di
memoria o per la protezione di aree di memoria
Implementazione dell’unità centrale
? Le funzioni elencate per la CU vengono
realizzate in modo diverso in diverse
architetture:
? Registri dedicati e registri generali: si possono avere
architetture che contengono un insieme di registri
generali ognuno dei quali può essere utilizzato come
accumulatore, program counter, etc.
18
Central Unit
?Controllo cablato: l’esecuzione di una
istruzione può essere controllata passo passo
dai circuiti di decodifica e di tempificazione
della CU
?Microprogrammazione: in una memoria a sola
lettura vengono memorizzate delle
microistruzioni che controllano i passi
elementari in cui può essere decomposta
l’esecuzione di un’istruzione
Microporcessore
? Una unità centrale realizzata come un unico
circuito (non un insieme di parti fisicamente
separate) e integrato su larghissima scala (Very
Large Scale of Integration o VLSI) in un unico
supporto di silicio (chip) è detto
microprocessore
? Un microprocessore moderno ha le dimensioni
del cm quadrato
19
Velocità di elaborazione
? L’esecuzione di una istruzione è eseguita in
diversi passi: fase di prelevamento dalla
memoria, di decodifica, di esecuzione, di
riscrittura in memoria.
? Complessivamente una istruzione viene eseguita
in una decina di sottopassi, ciascuno dei quali
impiega non meno di un colpo di clock
? Di conseguenza un calcolatore con un clock di 1
GHz è in grado di eseguire 100 MIPS (Million
Instructions Per Second)
Velocità di elaborazione
? Le istruzioni floating point possono essere
realizzate su rappresentazioni di interi con
apposite procedure programmate o essere
eseguite in harware da dispositivi specializzati
detti coprocessori matematici
? Per questi si parla di MFLOPS Million of Floating
point Operations Per Second
20
Fly UP