• Non ci sono risultati.

– Richiami sulla struttura del calcolatore (CPU) – Logica cablata/microprogrammazione

N/A
N/A
Protected

Academic year: 2021

Condividi "– Richiami sulla struttura del calcolatore (CPU) – Logica cablata/microprogrammazione"

Copied!
49
0
0

Testo completo

(1)

Calcolatori Elettronici (G.B.) Architettura 1

ARCHITETTURA elementi di base

• Contenuto della lezione

– Richiami sulla struttura del calcolatore (CPU) – Logica cablata/microprogrammazione

– Repertorio istruzioni (RISC/CISC) – Prestazioni

– Classificazione architetture

(2)

Struttura (anni 70)

CPU

I/O bus bus di I/O

CPU

(HP 2100) MINI MAINFRAME

(IBM 370)

modulo modulo I/O

I/O modulo

I/O modulo I/O

controllore canale di

MEMORIA MEMORIA

(3)

Calcolatori Elettronici (G.B.) Architettura 3

Struttura PDP-11 (anni 70-80)

MICROCOMPUTER PDP-11

MODULO DI MEMORIA LETTURA/SCRITTURA

MODULO MEMORIA SOLA LETTURA

REAL TIME CLOCK

MODULO INTERFACCIA LINEA SERIALE

( CONSOLE )

MODULI OPZIONALI SUPPORTI MAGNETICI ROTANTI

STAMPANTE AD ALTA VELOCITA'

CONVERTITORE A/D CONVERTITORE D/A INTERFACCIA PARALLELA INTERFACCIA SERIALE INTERFACCIA DMA ACCESSORI

BACKPLANE

POWER SUPPLY

UNIBUS

MODULO

La console è su linea

seriale RS-232

(4)

memoria I/O

MEMORIA CPU

PC bus scheda madre

Struttura PC (anni 80)

• E’ sparita la console RS232

• Il Video e la tastiera sono collegati direttamente alla scheda madre.

• Per il video c’è una RAM apposita

• Memoria di espansione e

periferici sono su schede

collegate sul bus

(5)

Calcolatori Elettronici (G.B.) Architettura 5

Struttura PC (non più) corrente

(6)

Struttura PC (non più) corrente

(7)

Calcolatori Elettronici (G.B.) Architettura 7

Struttura PC corrente

Di recente si

tende al single

chip

(8)

Struttura PC corrente

(9)

Calcolatori Elettronici (G.B.) Architettura 9

Schema di riferimento

• Per Il momento lo schema di riferimento sarà quello di figura

• Corrisponde allo schema dei PC anni 80

• Tuttora in largo uso nei sistemi di controllo

(10)

Transazioni sul bus

(11)

Calcolatori Elettronici (G.B.) Architettura 11

Architettura di Von Neuman

• memoria indifferenziata per dati o istruzioni, solo

l'interpretazione da parte di CPU stabilisce se una data

configurazione di bit è da riguardarsi come un dato o come

un'istruzione

(12)

Architettura Harward

• Due memorie distinte: la memoria istruzioni e la memoria dati.

• Il comando di lettura della memoria istruzioni è superfluo, in

quanto si può immaginare che questa memoria sia sempre e

soltanto letta

(13)

Calcolatori Elettronici (G.B.) Architettura 13

Schema aggregato della CPU

(14)

Fetch-Esecuzione

• Fetch: Prelievo e decodifica dell’istruzione

– Fase comune a tutte le istruzioni

• Esecuzione: Fase in cui vengono eseguite le azioni previste dal codice di operazione

– Fase diversa da istruzione a istruzione

(15)

Calcolatori Elettronici (G.B.) Architettura 15

Componenti essenziali

(16)

Registri di CPU

IR: usato per contenere l'istruzione in corso di esecuzione.

Caricato in fase di fetch. Rappresenta l'ingresso che determina le azioni svolte durante la fase di esecuzione.

PC: tiene traccia dell'esecuzione del programma

MAR: contiene l'indirizzo della locazione di memoria da leggere o scrivere.

– La dimensione di MAR determina l'ampiezza dello spazio di memoria fisica; dalla fine degli anni '80 vengono prodotti microprocessori con bus indirizzi a 32 bit

MDR: registro attraverso il quale viene scambiata l'informazione tra la memoria e la CPU

– Tradizionalmente MDR dà la misura del grado di parallelismo della

macchina (8, 16, 32, 64 bit) La dimensione di

(17)

Calcolatori Elettronici (G.B.) Architettura 17

Fase di Fetch

(18)

Organizzazione a singolo bus interno

(19)

Calcolatori Elettronici (G.B.) Architettura 19

Registri

(20)

Commutazione Registri

(21)

Calcolatori Elettronici (G.B.) Architettura 21

Trasferimento registro registro

RA RB

T1: RB out , RA in

FF comandati

dal fronte di

discesa

(22)

Altre operazioni

• Impiego ALU (DR RA+RB)

• T1: RA

out

, TI

in

• T2: RBout, ADD, TOin

• T3: TOout, Rdin

• Registro DTR

• T1: DTRout Lettura (verso l’interno)

• T1: SELDTRdir, DTRin Scrittura (verso l’esterno)

• Aggiornamento PC

• T1: Pcout, SEL4, ADD, Toin

• T2: TOout, PCin

(23)

Calcolatori Elettronici (G.B.) Architettura 23

Lettura memoria

• Ipotesi la memoria risponde entro il clock successivo a quello in cui viene asserito MRD (Memory Read)

• T1: PCout, MARin

• T2: MDR

• T3: MDR, DTRin

• T4: DTRout, Irin

• Sfruttiamolo bene:

• T5: PCout, MARin, SEL4, ADD, TOin

• T6: MDR

• T7: MDR, DTRin

• T8: DTRout, Irin

(24)

Data Path - 1 bus

Esecuzione in più passi.

Esempio: ADD R3,R1,R2

Richiede Almeno tre periodi di clock:

• R1_out; TEMPI_in

• R2_out; TEMPI_out; ADD;

TEMPO_in

• TEMPO_out; R3_in

(25)

Calcolatori Elettronici (G.B.) Architettura 25

Data Path - 3 bus

L’istruzione ADD R3,R2,R1 viene eseguita in un solo clock:

• R1_out1; R2_out2; ADD;

R3_in

(26)

Logica cablata

(27)

Calcolatori Elettronici (G.B.) Architettura 27

Logica cablata

• Progetto

– Come sintesi di rete sequenziale

• ingressi: IR, stato di UO

(e di eventuali altre parti esterne, p.e. memoria)

• uscite: comandi

– Uso di ROM. La rete combinatoria ha come

• ingressi (indirizzi alla ROM): IR, stato di UO, stato di UC

• uscite: comandi, ingressi di eccitazione dei FF di stato – Logica programmabile (PLA)

– Progettazione con CAD per VLSI – Per composizione di parti

• Misura della complessità di UC:

N_stati x N_ingressi x N_uscite

(28)

UC microprogrammata

(29)

Calcolatori Elettronici (G.B.) Architettura 29

UC microprogrammata

• Tecnica affermatasi negli anni 70

• UC è una sorta di calcolatore nel calcolatore

• La memoria di controllo contiene le microistruzioni:

mPC: contatore di microprogramma. Contiene l’indirizzo della prossima microistruzione

– All’inizio della fase di fetch mPC contiene l’indirizzo (I

0

) del tratto di microprogramma corrispondente al fetch

– Alla fine della fase di fetch mPC viene aggiornato con il contenuto (o una opportuna decodifica) di IR in modo da

puntare alla microroutine che effettua le azioni richieste dalla particolare istruzione

– Al termine, mPC viene di nuovo caricato con (mI0)

(30)

UC microprogrammata

• Differenti soluzioni:

sequenza di micro control word (CW) – microprogramma con subroutine

– microistruzioni che contengono codificato al loro interno l’indirizzo della prossima microistruzione

nanoprogrammazione: le microistruzioni sono a loro volta interpretate da una unità nanoprogrammata (68000)

• Microprogrammazione orizzontale:

– ogni bit di una CW corrisponde ad una linea di comando

• Microprogrammazione verticale

– le CW contengono i comandi in forma convenientemente

codificata

(31)

Calcolatori Elettronici (G.B.) Architettura 31

Cablata o microprogrammata?

• Fino a fine anni ‘60: logica cablata (PDP8, HP 2116)

• Anni ‘70: microprogrammazione (VAX, Z80, 8086, 68000) – Repertorio di istruzioni molto esteso e variato: CISC

– Il VAX 11/789 (Digital) e il 370/168 (IBM) avevano oltre 400.000 bit di memoria di controllo

• Dagli anni ‘80 si è tornati alla logica cablata;

Affermazione delle macchine RISC

• Istruttivo è esaminare l’evoluzione dell’architettura Intel: da

CISC a (praticamente) RISC

(32)

Ragioni per le CISC

• Un repertorio di istruzioni esteso è preferibile perché:

– Istruzioni potenti semplificano la programmazione

– Riduce il gap tra linguaggio di macchina e linguaggio di alto livello

Software crisis

• L’uso efficiente della memoria (all’epoca era costosa) era la preoccupazione principale:

– meglio avere codici compatti

• Essendo (allora) la memoria di controllo molto più

veloce della memoria centrale, portare funzionalità

nella prima avrebbe migliorato le prestazioni della

(33)

Calcolatori Elettronici (G.B.) Architettura 33

...Tuttavia

• Memorie RAM: molto più veloci delle precedenti a nuclei

Cache: riducono ulteriormente i tempi di esecuzione

• Comportamento dei programmi:

– l'80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio.

 conviene investire nella riduzione dei tempi di esecuzione di quel 20%, anziché aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell'allungamento del tempo di ciclo di macchina

 conviene costruire processori molto veloci, necessariamente con repertori semplici, e contare sull’ottimizzazione del

compilatore

(34)

Criteri di progetto per le RISC

• Le istruzioni devono essere semplici

Se l'introduzione di una operazione di macchina fa crescere del 10% il periodo di clock, allora essa deve produrre una riduzione di almeno un 10% del numero totale di cicli

eseguiti.

• Con memorie attuali le istruzioni di macchina possono essere eseguite alla stessa o maggior velocità delle microistruzioni

non c'è vantaggio a spostare le funzionalità a livello di

microcodice; ciò ha solo l'effetto di rendere più difficoltose modifiche e cambiamenti

molto meglio modificare una libreria di sistema che

(35)

Calcolatori Elettronici (G.B.) Architettura 35

Criteri di progetto per le RISC

• Tutte le istruzioni occupano lo stesso spazio di memoria (una parola)

• Ristretto numero di formati

l'interpretazione del codice avviene attraverso un semplice decodificatore (una rete AND-OR)

la codificate ``ordinata'' consente accorgimenti per

velocizzare l'esecuzione (pipeline), difficilmente applicabili a repertori di istruzioni complesse

• La semplificazione del repertorio tende a far aumentare la dimensione del codice

non è un problema, vista la tendenza alla riduzione dei costi e all'aumento della densità delle memorie

dal punto di vista della velocità i guadagni che si ottengono nel semplificare le istruzioni sono superiori all'effetto

negativo del maggior numero di istruzioni per programma.

(36)

Criteri di progetto per le RISC

• Compilatori ottimizzati.

in grado di produrre sequenze ottimizzate di semplici operazioni di macchina, indipendentemente dalla complessità del linguaggio

Il compilatore sbroglia in modo automatico e efficiente tutte le complicazioni che possono sorgere nel tradurre da

linguaggio di alto livello a linguaggio di basso livello

Il compilatore è motivo di semplificazione del repertorio di

istruzioni anziché di complicazione

(37)

Calcolatori Elettronici (G.B.) Architettura 37

Criteri di progetto per le RISC

• Conclusioni

L'architettura dovrebbe prevedere solo operazioni tra registri (e non tra registri e memoria o tra memoria e memoria) e semplici operazioni di lettura/scrittura in memoria, con ridotte modalità di indirizzamento

Il compilatore deve essere costruito in modo da fare il miglior uso dei registri, tenendo, per quanto possibile, le variabili nei registri stessi, riducendo al minimo il traffico con la memoria

Per il precedente motivo la CPU dovrebbe presentare un

consistente numero di registri

(38)

Impatto sull’architettura X86

• L’8086 è un tipico rappresentante dell’architettura CISC. I modelli successivi si avvicinano sempre più ai RISC

– Pipeline: una (vera) pipeline appare con il 486 – Cache: con il 486

– Predizione dei salti con il Pentium – Dal Pentium Pro:

• Esecuzione fuori ordine (speculativa)

• Superscalarità

• Register renaming

(39)

Calcolatori Elettronici (G.B.) Architettura 39

Prestazioni (della CPU)

Si consideri un generico programma

– N: numero di cicli di clock richiesti per la sua esecuzione – f: frequenza del clock

– t: tempo di CPU richiesto per l'esecuzione

t = N / f

– I: numero totale di istruzioni di macchina eseguite per portare a termine la computazione

– CPI: numero medio di clock per istruzione di macchina

CPI=N / I

(40)

t= I * CPI * T t= I * CPI * T

Architettura Architettura Repertorio

Repertorio

Compilatore Compilatore

Dipendenza Dipendenza

Tecnologia

Tecnologia

(41)

Calcolatori Elettronici (G.B.) Architettura 41

Prestazioni

t= I * CPI/f = I* CPI * T

• I dipende dal repertorio di istruzioni e dal grado di ottimizzazione del compilatore.

– Compilatori diversi possono dare luogo a I diversi.

– Uno stesso compilatore, che genera codice per due macchine diverse, dà I diversi.

– Un repertorio CISC favorisce il miglioramento delle

prestazioni (riduce I).

(42)

Prestazioni

t= I * CPI/f = I* CPI * T

• f è legata alla tecnologia e all'organizzazione architetturale della CPU

– Oggi f >2 GHz è la norma nei PC

– Istruzioni complesse richiedono di norma frequenze di più basse

– Istruzioni semplici (RISC) permettono di diminuire i ritardi di

propagazione nella logica di controllo e, quindi, di diminuire

(43)

Calcolatori Elettronici (G.B.) Architettura 43

Prestazioni

t= I * CPI/f = I* CPI * T

• CPI dipende dall'architettura e dal repertorio delle istruzioni

– Istruzioni semplici richiedono un minor numero di cicli.

• In un macchina convenzionale CPI >= 1

– Attraverso tecniche come la pipeline è possibile portare CPI ad un valore molto vicino ad 1.

– L'aggiunta di più unità di esecuzione in parallelo (macchine

superscalari) permette di rendere CPI minore di 1.

(44)

Indici di prestazione

• MIPS (Milioni di istruzioni al secondo)

MIPS = I / (t*10

6

)

E’ un indice che ha poco significato

• MFLOPS (Milioni di istruzioni in virgola mobile al secondo) MFLOPS = I_vm / (t*10

6

)

• Ci sono indici migliori, ottenuti con programmi campione (benchmark)

– I benchmark posso essere di diversa natura e complessità e mirare a raccogliere indici differenziati delle prestazioni

– In particolare ci sono quelli forniti da SPEC (Standard Performance

Evaluation Corporation) : SpecCPU 2006, SpecWeb 2009, …..

(45)

Calcolatori Elettronici (G.B.) Architettura 45

Repertorio stile RISC

• Il PowerPC

ADD RD,RA,RB (OE=0, Rc=0) ADD. RD,RA,RB (OE=0, Rc=1) ADDO RD,RA,RB (OE=1, Rc=0) ADDO. RD,RA,RB (OE=1, Rc=1)

(46)

Formato x86 (a 32 bit)

Esempio

CLI 1 solo byte

PUSH EAX 1 solo byte

PUSH Var[EBX] fino a 6 byte

MOV EAX, ES:V[EBX+ESI] 6 byte (probabilmente)

(47)

Calcolatori Elettronici (G.B.) Architettura 47

Modello di programmazione (386)

(48)

Classificazione architetture

• In base al modello di esecuzione, ovvero al modo in cui la CPU accede e manipola gli oggetti

dell'elaborazione

– determina il numero di operandi esplicitamente o implicitamente rappresentati nell'istruzione

• Modello a stack

• Modello registro-registro

• Modello registri-memoria

• Modello memoria-memoria

(49)

Calcolatori Elettronici (G.B.) Architettura 49

Confronto

In riferimento all’istruzione di alto livello a=b+c (somma)

STACK REGISTRO-REGISTRO MEMORIA- REGISTRO (*)

MEMORIA- MEMORIA

PUSH B LOAD R1, B LOAD B ADD A,B,C PUSH C LOAD R2,C ADD C

ADD ADD R3,R1,R2 STORE A POP A STORE A, R3

(*) Assume un registro accumulatore

0 indirizzi Load/Store 1 indirizzo 3 indirizzi

Riferiti alla ADD

Riferimenti

Documenti correlati

[r]

– leggo da file i valori della matrice A – trasformo la matrice A nella matrice B – predispongo la scrittura del file Output – salvo su file i valori della matrice risultante B

O., individua una area della memoria centrale che può contenere in locazioni consecutive la sequenza di istruzioni e dati del programma da caricare e fissa in K il primo indirizzo

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

• Quando si legge nella page table l'indirizzo della pagina, questo può essere marcato invalido (bit aggiuntivi oltra all’indirizzo di pagina in memoria fisica). • Ciò significa

Le memorie di massa servono per immagazzinare dati e programmi e si dividono in hard disk (dischi rigidi o fissi), floppy disk (dischi flessibili e rimovibili), CD ROM (compact

z Numero di pagina (p) – usato come indice nella tabella delle pagine che contiene l’indirizzo di base di ogni frame nella memoria fisica.. z Spiazzamento nella pagina (d)

Al calare dei costi e all’aumentare della memoria disponibile, le dimensioni del software sono sempre cresciute