Architettura dei Calcolatori 06 Elementi Architetturali Di Base

23
Dispense del corso di Architettura dei Calcolatori Architettura dei Calcolatori Elementi architetturali di base

Transcript of Architettura dei Calcolatori 06 Elementi Architetturali Di Base

Page 1: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

Dispense del corso diArchitettura dei CalcolatoriArchitettura dei Calcolatori

Elementi architetturali di base

Page 2: Architettura dei Calcolatori 06 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

Page 3: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 4: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 5: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 6: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 7: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 8: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 9: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 10: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 11: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 12: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 13: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 14: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 15: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 16: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 17: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 18: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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)

Page 19: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 20: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 21: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 22: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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

Page 23: Architettura dei Calcolatori 06 Elementi Architetturali Di Base

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