Architetture CISC e RISC



Documenti analoghi
Architetture CISC e RISC. Misura della potenza di calcolo. Cos'è la potenza di calcolo. Prestazioni della CPU. Fondamenti di Informatica

FONDAMENTI DI MATEMATICA BINARIA

Cenni sull ingegneria del software e sulla qualità dei programmi

Gestione della memoria centrale

FONDAMENTI DI INFORMATICA. Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine. Compressione MPEG

Codifica delle immagini

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Codifica delle immagini

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO. Facoltà di Ingegneria Università degli Studi di Udine

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Architettura del calcolatore

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Lezione n.19 Processori RISC e CISC

Ricerca ed analisi della causa di un problema o guasto di rete

CPU. Maurizio Palesi

Linguaggio C Compilazione, linking e preprocessor

Wireless monitoring & protection

Multicast e IGMP. Pietro Nicoletti

Esercizi di Sniffing

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

ACCESS LIST. Pietro Nicoletti

Struttura del calcolatore

C. P. U. MEMORIA CENTRALE

Reti logiche e componenti di un elaboratore

Domain Name Service. Mario BALDI. Silvano GAI. Fulvio RISSO. staff.polito.it/mario.baldi. sgai[at]cisco.com. fulvio.risso[at]polito.

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

SIP e SDP. Segnalazione nelle reti VoIP. Fulvio Risso. Politecnico di Torino

Progettazione di reti locali basate su switch - Switched LAN

Interdomain routing. Principi generali e protocolli di routing. Mario Baldi

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Architettura hardware

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

ARP e RARP. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it Fulvio RISSO

Architettura di un calcolatore

Il protocollo VTP della Cisco

Calcolatori Elettronici

Autenticazione tramite IEEE 802.1x

Laboratorio di Informatica

Lezione 3: Architettura del calcolatore

CPU pipeline 4: le CPU moderne

Hazard sul controllo. Sommario

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Dispensa di Informatica I.1

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Fondamenti di informatica: un po di storia

Unbundling e xdsl. Mario Baldi

Calcolatori Elettronici

Architettura di un calcolatore: introduzione

I componenti di un Sistema di elaborazione. CPU (central process unit)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

FONDAMENTI di INFORMATICA L. Mezzalira

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Automazione Industriale (scheduling+mms) scheduling+mms.

CALCOLATORI ELETTRONICI 29 giugno 2011

Sistema operativo: Gestione della memoria

L architettura di riferimento

CALCOLATORI ELETTRONICI 31 marzo 2015

Cosa è un foglio elettronico

Più processori uguale più velocità?

Esame di INFORMATICA

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

Nota di Copyright. 09_Prog_dorsale_fibra - 2 Copyright M. Baldi - P. Nicoletti: see page 2

La macchina programmata Instruction Set Architecture (1)

Tipi di errori e possibili cause sulle reti Ethernet

Che cosa è un VIRUS?

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Architettura dei calcolatori I parte Introduzione, CPU

INFORMATICA 1 L. Mezzalira

Vari tipi di computer

INTRODUZIONE ALL' INFORMATICA

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

Funzionalità di un calcolatore

Informatica - A.A. 2010/11

Transparent bridging

CPU pipeline 4: le CPU moderne

Gli indirizzi di IPv6

CALCOLATORI ELETTRONICI 29 giugno 2010

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

Linguaggi di programmazione

Memorie ROM (Read Only Memory)

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Transcript:

FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Nota di Copyright Questo insieme di trasparenze (detto nel seguito slide) è protetto dalle leggi sul copyright e dalle disposizioni dei trattati internazionali. Il titolo ed i copyright relativi alle slides (ivi inclusi, ma non limitatamente, ogni immagine, fotografia, animazione, video, audio, musica e testo) sono di proprietà dell autore prof. Pier Luca Montessoro, Università degli Studi di Udine. Le slide possono essere riprodotte ed utilizzate liberamente dagli istituti di ricerca, scolastici ed universitari afferenti al Ministero della Pubblica Istruzione e al Ministero dell Università e Ricerca Scientifica e Tecnologica, per scopi istituzionali, non a fine di lucro. In tal caso non è richiesta alcuna autorizzazione. Ogni altro utilizzo o riproduzione (ivi incluse, ma non limitatamente, le riproduzioni su supporti magnetici, su reti di calcolatori e stampe) in toto o in parte è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori. L informazione contenuta in queste slide è ritenuta essere accurata alla data della pubblicazione. Essa è fornita per scopi meramente didattici e non per essere utilizzata in progetti di impianti, prodotti, reti, ecc. In ogni caso essa è soggetta a cambiamenti senza preavviso. L autore non assume alcuna responsabilità per il contenuto di queste slide (ivi incluse, ma non limitatamente, la correttezza, completezza, applicabilità, aggiornamento dell informazione). In ogni caso non può essere dichiarata conformità all informazione contenuta in queste slide. In ogni caso questa nota di copyright e il suo richiamo in calce ad ogni slide non devono mai essere rimossi e devono essere riportati anche in utilizzi parziali. 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 2

Architetture CISC e RISC Misura della potenza di calcolo Unità di controllo microprogrammata Architetture RISC e pipeline 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 3

Misura della potenza di calcolo 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 4

Cos'è la potenza di calcolo È la capacità del sistema di eseguire elaborazioni più o meno complesse in tempi più o meno lunghi 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 5

Prestazioni della CPU Il tempo T CPU per eseguire un programma può essere stimato in: dove: T CPU = N istr C PI T N istr è il numero di istruzioni del programma C PI è il numero medio di cicli di clock per istruzione macchina T=1/f ck è il periodo del clock 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 6

Osservazioni N istr dipende dal repertorio di istruzioni e dall ottimizzazione del compilatore Una CPU CISC permette di ridurre N istr C PI dipende dall architettura. Un repertorio di istruzioni semplice permette di eseguire un istruzioni in pochi cicli di clock e di sfruttare un elevato pipeline (RISC), riducendo C PI T=1/f ck dipende dalla tecnologia elettronica e, in parte, dall architettura. Istruzioni complesse richiedono frequenze di clock più basse 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 7

Prestazioni complessive Oltre alle prestazioni della CPU vanno considerati anche: numero delle CPU (per sistemi multiprocessore) architettura complessiva del sistema velocità di accesso alla memoria RAM quantità di memoria RAM velocità del disco di paginazione velocità dei dispositivi periferici 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 8

Indici di prestazioni Per la misura delle prestazioni di un architettura si utilizzano dei programmi di riferimento (benchmarks) Problema: le prestazioni di un elaboratore dipendono dal tipo di programma che viene eseguito. L'insieme dei benchmark utilizzato può favorire una macchina e penalizzarne un'altra 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 9

Indici di prestazioni I principali indici utilizzati sono: MIPS MFLOPS SPECMARKS 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 10

MIPS Millions of Instructions Per Second Misura alquanto arbitraria: Istruzione media di un applicativo medio Legata principalmente al calcolo intero (puntatori, stringhe, database, ecc.) Riferimento: il VAX 11/780 della Digital era una macchina da 1 MIPS In seguito alla diffusione degli elaboratori Digital è stata adottata anche come unità di misura da altre case 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 11

MFLOPS Millions of FLOating-point instructions Per Second Misura arbitraria tanto quanto il MIPS: Legata principalmente al calcolo numerico (es. inversione di matrici di numeri in singola o doppia precisione) È abbastanza scorrelata dal numero di MIPS dello stesso calcolatore perché è determinante la presenza o meno di un coprocessore matematico 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 12

SPECMARKS Misura adottata da numerosi costruttori e basata su un set standard di benchmark I benchmarck utilizzati sono programmi public domain, e quindi permettono di effettuare confronti abbastanza significativi L'impostazione dei benchmark è tuttavia alquanto sbilanciata verso il calcolo in floating-point 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 13

Unità di controllo microprogrammata 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 14

CISC Complex Instruction Set Computer L'insieme di istruzioni macchina è molto vasto, e riduce il "gap" tra linguaggio ad alto livello e linguaggio macchina In alcuni casi (es. VAX) si possono avere istruzioni addirittura più potenti di quelle esprimibili in linguaggi ad alto livello. Questo aumenta la complessità dei compilatori Spesso le CPU CISC sono microprogrammate 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 15

Microprogrammazione La fase di decodifica dell'istruzione (in questo contesto detta macroistruzione) nella CPU avviene attraverso un programma residente nella CPU stessa (microcodice, cioè sequenza di microistruzioni) Vantaggi: macroistruzioni molto potenti facile gestione di macroistruzioni a formato variabile (es. numero di operandi) possibilità di upgrade del microcodice 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 16

Unità di controllo non microprogrammata Clock Status signals from processor Sequential logic circuits... Control signals to processor Instruction register 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 17

Unità di controllo microprogrammata Clock Status signals from processor Address generation circuits Control memory Microinstruction register Instruction register Decoder... Control signals to processor 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 18

Architetture RISC e pipeline 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 19

Due tipi di CPU: Tipo di CPU CISC - Complex Instruction Set Computer RISC - Reduced Instruction Set Computer QUANTO È COMPLESSA UN "ISTRUZIONE"? 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 20

RISC Progetto dell'università di Berkeley (CA) iniziato nel 1980 Principio di base: 1) valutare lo sfruttamento dell'area di silicio nei processori single-chip 2) individuarne gli svantaggi 3) definire un'architettura più efficiente 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 21

Vantaggi ottenibili dall'aumento della complessità dei circuiti digitali Maggior parallelismo: un sommatore da 32 bit è più veloce di uno da 16 usato 2 volte per ogni operazione Possibilità di overlap tra esecuzione di un'istruzione ed il fetch della successiva (per programmi con un numero non eccessivo di salti - alcuni processori eseguono anche prefetch su più rami) Più registri nella CPU, sfruttabili dal compilatore per ottimizzare il codice 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 22

Svantaggi dovuti all'aumento della complessità dei circuiti digitali Dimensioni maggiori implicano maggiori ritardi di propagazione dei segnali Un maggior numero di porte logiche implica una minor quantità di potenza elettrica disponibile per ciascuna, e quindi minor capacità di pilotare altre porte Necessità di più elementi: più numerosi o più grandi multiplexer, maggior fanout di uscita, più circuiti sui bus - tutto questo riduce la velocità 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 23

Esiste un limite tecnologico alla dimensione dell'area di silicio È necessario operare una scelta: Elevata complessità dell'unità di controllo (e quindi più istruzioni) Pochi registri A parità di area di silicio Ridotta complessità dell'unità di controllo (e quindi meno istruzioni) Register file 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 24

Prima fase del progetto RISC Individuare le operazioni (e, di conseguenza, le istruzioni) indispensabili e d'uso più frequente nei programmi Analizzare gli elementi funzionali necessari per la loro esecuzione e la tempistica Includere nell'insieme di istruzioni così definito altre istruzioni ancora abbastanza frequenti e che possono sfruttare tali elementi funzionali (cioè che non richiedono modifiche dell'architettura) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 25

E le altre istruzioni? Vengono realizzate tramite sequenze di istruzioni più semplici. Tuttavia questo non è svantaggioso, in quanto: è raramente necessario, anche con programmi in linguaggi ad alto livello (un programma medio su un RISC richiede il 67% di istruzioni in più rispetto allo stesso programma eseguito su un VAX-11) il compilatore è più semplice, più efficiente, e può trarre vantaggio dall'architettura (es. maggior numero di registri) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 26

Seconda fase Definizione dell'architettura tutte le istruzioni in una sola parola, con formato fisso semplicità ed efficienza per il fetch e la decodifica molti registri nella CPU (globali e in overlapping windows) veloce accesso agli operandi (tipicamente in un computer vengono effettuati il 70% di accessi ad operandi e il 30% di operazioni) operazioni solo su registri, load e store accedono alla memoria semplicità ed efficienza pipeline e delayed control transfer 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 27

Pipeline Normalmente l'esecuzione di un'istruzione segue lo schema: Instruction fetch fetch Instruction decode decode Operand fetch fetch Instruction execute Nei calcolatori senza pipeline ogni fase può iniziare soltanto dopo che la precedente è terminata Con il pipeline, invece... 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 28

Pipeline Unità funzionali indipendenti CPU Instruction fetch unit Instruction decode unit Data fetch unit Instruction execution unit Memoria 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 29

Esecuzione senza pipeline stadi IE I1 I2 I3... OF I1 I2 I3... ID I1 I2 I3... IF I1 I2 I3... 1 2 3 4 5 6 7 8 9 10 11 12 t 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 30

Esecuzione con pipeline stadi IE I1 I2 I3 I4 I5... OF I1 I2 I3 I4 I5... ID I1 I2 I3 I4 I5... IF I1 I2 I3 I4 I5... 1 2 3 4 5 6 7 8 9 t 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 31

Delayed control transfer X++; if (y == 5) { z = 0;... } else { z = 1;... } il costrutto if... then... else impedisce il prefetch dell'istruzione successiva: sarà z = 0 o z = 1? 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 32

Codice generato dal compilatore X++; if (y == 5) { z = 0;... } else { z = 1;... } INC R1 ; (R1 contiene x) SUB R2 R3 ; (R2 = y, R3 = 5) JMPNZ L0 LDWI R4 0 ; (R4 = z)... JMP L1 L0: LDWI R4 1... L1: 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 33

Esecuzione FETCH INC R1 SUB R2 R3 JMPNZ L0 (wait) LDWI R4 0 oppure LDWI R4 1... EXECUTE INC R1 SUB R2 R3 JMPNZ L0 (wait) LDWI R4 0 oppure LDWI R4 1... 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 34

Codice ottimizzato FETCH SUB R2 R3 JMPNZ L0 INC R1 LDWI R4 0 oppure LDWI R4 1... EXECUTE SUB R2 R3 JMPNZ L0 INC R1 LDWI R4 0 oppure LDWI R4 1... 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 35

I compilatori e l'ottimizzazione del codice La funzione più complessa di un compilatore moderno consiste nell'ottimizzazione del codice La complessità di tale compito si scontra con la necessità che il compilatore sia veloce I compilatori per architetture RISC riescono in genere ad ottimizzare il codice meglio ed in meno tempo rispetto ai compilatori per CISC, i quali devono lavorare in un contesto molto più complicato (elevato numero di istruzioni) 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 36

RISC Riduzione del set di istruzioni per poter rendere più semplice la parte di controllo nella CPU Le istruzioni scartate sono quelle statisticamente meno usate e vengono emulate via software Minor spazio sul chip occupato dall'unità di controllo, e quindi possibilità di avere più registri, maggiore pipeline, ecc. 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 37

Evoluzione delle architetture RISC: i processori superscalari Possono avviare l esecuzione di più di un istruzione per colpo di clock Dispongono di unità aritmetiche indipendenti (es. per calcolo intero, per calcolo floating point, per operazioni logiche, ecc.) che possono eseguire istruzioni in parallelo I processori Pentium Intel si basano su un architettura superscalare 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 38