Architettura dei Calcolatori 06 Elementi Architetturali Di Base
-
Upload
majong-devjfu -
Category
Technology
-
view
1.826 -
download
0
Transcript of Architettura dei Calcolatori 06 Elementi Architetturali Di Base
Dispense del corso diArchitettura dei CalcolatoriArchitettura dei Calcolatori
Elementi architetturali di base
Architettura dei calcolatori a.a. 2007/2008
Semplici sistemi digitali
• Circuiti combinatori e sequenziali possono essere utilizzati per creare semplici sistemi digitali.Q ti i ti f d t li l i di l l t• Questi sono i componenti fondamentali per la creazione di un calcolatore digitale.
• I sistemi digitali di base sono frequentemente caratterizzati in terminig q
– di registri contenutioperazioni che si possono eseguire– operazioni che si possono eseguire
• Le operazioni sui dati contenuti nei registri sono dette microoperazioni. Queste vengono tipicamente eseguite in un solo ciclo di clock.
2
Architettura dei calcolatori a.a. 2007/2008
Architettura di Von Neumann (1/2)
L’architettura di Von Neumann si compone di 3 parti fondamentali:1 MEMORIA: unità che mantiene le istruzioni che compongono il programma
da eseguire e i dati che fungono da operandi per tali operazionida eseguire e i dati che fungono da operandi per tali operazioni2 CPU (central processing unit) o processore: è composto da una unità di
controllo per gestire le comunicazioni con tutte le unità del sistema e per gestire il prelievo delle istruzioni (fetch) e la loro esecuzione e da unagestire il prelievo delle istruzioni (fetch) e la loro esecuzione, e da una unità aritmetico logica (ALU) che esegue le istruzioni stesse e che gestisce l’accesso agli operandi.
3 INPUT/OUTPUT le porte di interfaccia con l’esterno (e con i corrispondenti3. INPUT/OUTPUT le porte di interfaccia con l’esterno (e con i corrispondenti dispositivi periferici) .
Input OutputMemoria
CPU
3
Architettura dei calcolatori a.a. 2007/2008
Architettura di Von Neumann (2/2)
• L’architettura di Von Neumann prevede una unità di elaborazione centrale (CPU Central Processing Unit) che esegue sequenze di istruzioni che sono riposte in una struttura di memorizzazioneistruzioni che sono riposte in una struttura di memorizzazione (memoria).La memoria contiene anche i dati che sono le informazioni che vengono elaborate dalla CPU in base alle istruzioni.
• Col termine di “memoria” ci si riferisce alla Memoria centrale, direttamente interfacciata alla CPU, mentre la memoria di massa è logicamente un sistema di memoria ma fisicamente un dispositivo di I/Og p
• Dati ed Istruzioni sono fisicamente codificate come stringhe di bit, che ò i t t t diff t t d ll CPUperò vengono interpretate differentemente dalla CPU
• Architettura di Von Neuman: in cui esiste una sola memoria cheArchitettura di Von Neuman: in cui esiste una sola memoria che contiene sia dati che istruzioni
• Architettura di Harvard: in cui dati e istruzioni sono memorizzati su due memorie separate a cui la CPU accede contemporaneamente
4
Architettura dei calcolatori a.a. 2007/2008
Interfaccia della CPU
• I segnali di interfaccia dei processori si dividono in:– segnali di indirizzo per lo spazio di indirizzamento in memoria (n
segnali 2n locazioni di memoria indirizzabili)segnali 2n locazioni di memoria indirizzabili)– segnali di dato (indica il massimo parallelismo di parola nel
trasferimento)– segnali di controllo
Indirizzi ArbitraggioIndirizzi
Dati
C t ll
Coprocessore o multiprocessore
CPU
Controllodel
trasferimentoStato interno
Interruzioni
Reset Clk Ready
5
Vcc/ gnd
Architettura dei calcolatori a.a. 2007/2008
Progetto di un calcolatore (1/2)
Progetto della CPU
1) definizione dell’ISA Più CPU sono compatibili a livello di ISA ma non di1) definizione dell ISA. Più CPU sono compatibili a livello di ISA, ma non di architettura interna (ad es: Intel Pentium , Intel Celeron, AMD, …)
2) definizione dei blocchi logici della CPU a livello di microarchitettura (come2) definizione dei blocchi logici della CPU a livello di microarchitettura (come realizzare la pipeline, la superscalarità)
3) definizione di blocchi aggiuntivi per migliorare le prestazioni (ad es branch3) definizione di blocchi aggiuntivi per migliorare le prestazioni (ad es. branch prediction table)
4) come progettare i singoli blocchi (come realizzare le ALU i registri e4) come progettare i singoli blocchi (come realizzare le ALU, i registri e soprattutto l’unità di controllo)
5) come interfacciare la CPU con l’esterno (interfaccia con la memoria e struttura5) come interfacciare la CPU con l esterno (interfaccia con la memoria e struttura dei bus)
Se poi il sistema è multiprocessor le scelte progettuali sono ancora più numeroseSe poi il sistema è multiprocessor le scelte progettuali sono ancora più numerose.
6
Architettura dei calcolatori a.a. 2007/2008
Progetto di un calcolatore (2/2)
Definizione dell’architettura del calcolatore
• Definizione dell’architettura delle memorie (gerarchia di memorie, memorie cache di primo e secondo livello, parallelismo delle memorie, interallacciamento )interallacciamento, …)
• Scelte tecnologiche (RAM,DRAM..)g ( , )
• Interfaccia di bus con le memorie
• Definizione dei bus di I/O (bus PCI, ISA, EIDE, SCSI,…)
• Scelta della gestione delle periferiche
• Scelta delle periferiche
7
Architettura dei calcolatori a.a. 2007/2008
La CPU
• Dal punto di vista strutturale la CPU è composta da alcune parti combinatorie:– ALU, decodifica degli indirizzi per i registri interni– decodifica delle istruzioni,…d l i i li• e da alcune parti sequenziali
– REGISTRI di dato e controllo– Unità di Controllo (Control Unit)
Data path
Istruz. s.contr.
• Dal punto di vista funzionale si divide in – Data path (o execution unit):
il percorso dei dati
Unità dicontrollo
Segnali dicontrollo nel calcolatore
– Control unit (l’unità di controllo) MemorieI/O
• l’unità di elaborazione acquisisce istruzioni e dati, passa le istruzioni alla unità di controllo, esegue le operazioni di ALU, genera i risultati, calcola il prossimo indirizzo…
• la unità di controllo è una FSM che controlla l’unita’ di elaborazione ed i segnali con l’esterno
• L’implementazione a livello di reti logiche e la progettazione a livello RTL (corrispondente alla microarchitett ra) è dipendente dalla famiglia delle CPU e(corrispondente alla microarchitettura) è dipendente dalla famiglia delle CPU e dalla casa costruttrice
8
Architettura dei calcolatori a.a. 2007/2008
Organizzazione di un sistema digitale• Definizione dell’organizzazione interna del calcolatore
– Insieme dei registri e delle loro funzioni– Insieme delle microoperazioni consentite– Insieme delle microoperazioni consentite– Segnali di controllo che controllano la sequenza di microoperazioni necessaria a
realizzare una certa funzione• Questo livello della descrizione di un sistema digitale viene detto RegisterQuesto livello della descrizione di un sistema digitale viene detto Register
Transfer Level (RTL) ovvero livello dei trasferimenti tra registri.• Per evitare di specificare i dettagli a parole si utilizza un formalismo apposito
detto anche Register Transfer Languagedetto anche Register Transfer Language.• In questo linguaggio le lettere maiuscole (seguite eventualmente da numeri)
indicano i registri: R0, A, MDR, IP. Alcuni di questi sono acronimi per le funzioni svoltesvolte.
• A volte si indicano porzioni di registri, quali singoli bit o gruppi di bit:
Registro Rappresentazione dei singoli bitR1
N i d i bit S tt iPC(H) PC(L)
15 8 7 0
7 6 5 4 3 2 1 0
R215 0
9
Numerazione dei bit Sotto campi
Architettura dei calcolatori a.a. 2007/2008
Trasferimenti tra registri• Un trasferimento è la copia del contenuto di un registro in un altro.• Un trasferimento si indica con: R2 ← R1 e indica di caricare il contenuto di R1 in
R2 in un solo ciclo di clockR2 in un solo ciclo di clock.• Per realizzare la microoperazione è necessario prevedere un collegamento tra
l’uscita di R1 e l’ingresso di R2 e di avere delle linee di controllo che consentano di comandare la contemporanea abilitazione dell’uscita di R1 e la scrittura su R2di comandare la contemporanea abilitazione dell uscita di R1 e la scrittura su R2.
• E’ possibile poi indicare una condizione in base alla quale eseguire la microoperazione, dove la condizione è un segnale di controllo binario:
P: R2 ← R1
• Questo indica che se P=1 viene eseguito il trasferimento da R1 a R2.• Con uno schema a blocchi:
ClockR2
R1
Circuitodi controllo
LoadP
n
10
R1
Architettura dei calcolatori a.a. 2007/2008
Altre operazioni
• Le operazioni simultanee vengono separate con una virgola:
P: R3 ← R5, MAR ← IR
• In questo caso se la condizione P è vera R5 viene copiato in R3 e il• In questo caso se la condizione P è vera, R5 viene copiato in R3 e il registro IR nel registro MAR.
• Con le parentesi tonde si indicano le parti di un registro:
R4(0-7) ← R6(8-15)
• In questo esempio si trasferiscono i bit da 8 a 15 di R6 in quelli da 0 a 7 di R4. Come sempre si dovranno prevedere le opportune linee per il p p pp ptrasferimento a livello di architettura hardware.
11
Architettura dei calcolatori a.a. 2007/2008
Connessioni tra i registri
• In un sistema digitale con molti registri non è possibile avere linee di trasferimento da ogni registro ad ogni altro registro. Questo per la semplice considerazione che per n registri servirebbero n(n 1) linee disemplice considerazione che per n registri servirebbero n(n-1) linee di connessione ognuna della dimensione del numero di bit dei registri. In un processore con 32 registri a 32 bit, si avrebbero 31744 piste!
• La soluzione adottata è quella di connettere tutti i registri ad un unico sistema di comunicazione controllato da alcuni segnali di controllo che decidono quale registro è connesso come sorgente, e quale come q g g qdestinazione.
• Questo canale di comunicazione è noto con il nome di bus. C t hit tt è ibil t f i d ti• Con questa architettura non è possibile trasferire dati contemporaneamente tra più coppie di registri.
• Un bus si può realizzare sia con buffer tri-state sia con una struttura a pmultiplexer.
12
Architettura dei calcolatori a.a. 2007/2008
Trasferimenti con la memoria• Collettivamente la memoria viene vista come un dispositivo denotato con M.• Dato che esistono numerose celle, è necessario specificare l’indirizzo della cella
da leggere o scrivereda leggere o scrivere.• Tipicamente questo indirizzo viene posto in un registro apposito denominato
Memory Address Register (MAR) che viene inviato alla memoria.
MAR Memory ReadM
MAR unit Write
Data inData out
• Esiste poi il registro Memory Data Register (MDR) che è il filtro tra la memoria e la CPU. Tutti i trasferimenti avvengono con questo registro:MDR M[MAR]MDR ← M[MAR]M[MAR] ← MDR
• La prima è una operazione di lettura, mentre la seconda è una operazione di scrittura.
13
Architettura dei calcolatori a.a. 2007/2008
Microarchitettura della CPU (1/2)
CPU
Control unitclock
Execution unit(d h)Instr Data out
Ctrl. sgn.Instr.
(data path)Instr. Data out
Data in
memory
Address busData bus
(external) control busy
14
Architettura dei calcolatori a.a. 2007/2008
Microarchitettura della CPU (2/2)
MEMctrl bus addr bus
data bus nd
na
IR
MDR
CTRLUNIT
IRALU
PC
REG
ctrl signals
Registri interni ed unità di elaborazione
UNIT PCMAR
Registri interni ed unità di elaborazione
IR: instruction register (ultima istruzione prelevata dalla memoria)REG: register filePC: program counter (indirizzo della prossima istruzione da eseguire)MAR: memory address registerMDR: memory data register
15
ALU: Arithmetic logic unit
Architettura dei calcolatori a.a. 2007/2008
Ciclo di istruzione• Il processore esegue ciclicamente le istruzioni che compongono il programma:• Il processore esegue ciclicamente le istruzioni che compongono il programma:
FETCHDECODE
FETCH
EXECUTE
1. MAR PCMDR M[MAR] INSTRUCTION FETCH[ ]IR MDR
2. PC PC+n; DECODE DECODE
• n è il numero di byte della istruzione
3. Execute operation EXECUTE (operand fetch)
• le fasi 1 e 2 sono comuni a tutte le istruzioni; la fase 3 dipende dal tipo di istruzione da eseguire.
• La unità di controllo è una macchina a stati che gestisce la temporizzazione e la sequenzializzazione dei 3 macro-statiq
16
Architettura dei calcolatori a.a. 2007/2008
Esempio
• IR contenuto dell’IR• A,B,ALUout porte logiche della ALU
• Esecuzione dell’istruzione var1=100+var2 che si trova all’indirizzo a0 ( nel PC) supponendo che esista una istruzione macchina unica per tutte queste operazioni
MAR PC;MDR M[MAR];IR MDR;
fetchIR MDR;
DECODE, PC PC+LUNGH ISTR; decode
MAR IR[VAR2]; IL CAMPO DELL’ISTRUZIONE CHE CONTIENE L’INDIRIZZO VAR2
MDR M[MAR];A MDR B IR[100] execute
mem_rd
A MDR, B IR[100];ALUout A+B;MAR IR[VAR1], MDR ALUout;M[MAR] MDR
executesomma
scrittura risultato in memoriaM[MAR] MDR
17
scrittura risultato in memoria
Architettura dei calcolatori a.a. 2007/2008
Instruction fetch
ALUGeneral PurposeRegister setg
MDR Status Reg
DataAddDataAdd (B)
(B) (C)
MAR IR
Control FSM
AddrContr.
memoria
AddrContr.
(A)
(B)
(D)
Address Generator
PC
1. Instruction Fetch
MAR PC (A)MDR M[MAR] (B)IR MDR (C)
18
… PC PC+n (D)
Architettura dei calcolatori a.a. 2007/2008
Instruction decode
ALUGeneral PurposeRegister setRegister set
Status Reg
DataAdd
MDR Status Reg
DataAdd
MAR IR
Control FSM
AddrContr.
IR
AddrContr.
Address Generator
Address Generator
PC
La Control Unit decodifica l’istruzione corrente prelevandola dall’IR
S ibil t t i it il R i t F t h i ilSe possibile contemporaneamente viene eseguito il Register Fetch ossia il prelevamento dei dati dai registri per eventuali operazioni di ALU (o per la generazione di indirizzi)
19
Architettura dei calcolatori a.a. 2007/2008
Execute (AluOP)
ALUGeneral PurposeRegister set ALU
MDR Status Reg
DataAddr
Status Reg
DataAddr
IR
Control FSM
AddrContr.
MAR
PC
AddrContr.
Address Generator
PC
Execute (AluOP)
es: add r1,r2,r3 (sintassi sorg, dest: r3 r1+r2)es add , , 3 (s ass so g, des 3 )add AX, BX sintassi dest sorg AX AX+BX
20
Architettura dei calcolatori a.a. 2007/2008
Execute (load)
ALUGeneral PurposeRegister set
memoriaRegister set
MDR Status Reg
DataAddDataAdd (B)
(B)(C)
MAR IR
Control FSM
AddrContr.Addr
Contr.
(A)
(B)
Address Generator
Address Generator
PC
Execute (load)
es ld R1, ALFA R1 M[ALFA]
MAR IR[ALFA] (A)[ ] ( )MDR M[MAR] (B)R1 MDR (C)
caricamento dei dati dalla memoria al registro interno
21
caricamento dei dati dalla memoria al registro interno
Architettura dei calcolatori a.a. 2007/2008
Execute (store)
ALUGeneral Purpose
Register setmemoria
g
MDR Status Reg
DataAddDataAdd
(B)
(C)
(C)
MAR IR
Control FSM
AddrContr.Addr
Contr.
(A)
(C)
Execute (store)Address
GeneratorAddress
Generator
PC
es st ALFA, R1 M[ALFA] R1
MAR IR[ALFA] (A)MDR R1 (B)M[MAR] MDR (C)
22
scrittura dei dati in memoria da un registro interno
Architettura dei calcolatori a.a. 2007/2008
Esempio
Esempio: • deve essere eseguita l’istruzione add r1, alfa che si trova all’indirizzo A0 di memoria (contenuto nel PC)
• r1=r1+alfa dove alfa è locazione di memoria (secondo la sintassi Intel-like, destinazione sorgente)• siano A e B le porte di ingresso della ALU e ALUout il registro di uscita• siano A e B le porte di ingresso della ALU e ALUout il registro di uscita
Per eseguire questa istruzione devono essere eseguite tutte le microperazioni seguenti:
MAR <-PCMDR <-M[MAR] fetchIR<- MDR
PC<-PC+N ; DECODE (IR) decode
MAR<-IR(opadr)MDR<-M[MAR]A<-MDR; B<-r1 executeALUOUT < A+BALUOUT <-A+Br1<-ALUOUT
23