Lezione n.19 Processori RISC e CISC



Похожие документы
Architettura del calcolatore

Architettura hardware

CPU. Maurizio Palesi

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Il Processore: i registri

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

Struttura del calcolatore

L architettura di riferimento

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

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

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

Lezione 3: Architettura del calcolatore

C. P. U. MEMORIA CENTRALE

Lezione n.9. Introduzione al linguaggio macchina

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

Esame di INFORMATICA

Architettura di un calcolatore

Calcolatori Elettronici

Dispensa di Informatica I.1

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

Hazard sul controllo. Sommario

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

CALCOLATORI ELETTRONICI 15 aprile 2014

La macchina programmata Instruction Set Architecture (1)

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

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

CALCOLATORI ELETTRONICI 29 giugno 2011

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Calcolo numerico e programmazione Architettura dei calcolatori

Von Neumann. John Von Neumann ( )

Lezione 7 Sommatori e Moltiplicatori

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Architettura di tipo registro-registro (load/store)

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

Corso di Informatica

La memoria centrale (RAM)

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

ARCHITETTURA DELL ELABORATORE

Gestione della memoria centrale

Introduzione all'architettura dei Calcolatori

SISTEMI DI NUMERAZIONE E CODICI

Parte II.2 Elaboratore

Informatica - A.A. 2010/11

Laboratorio di Informatica

Il memory manager. Gestione della memoria centrale

Ing. Paolo Domenici PREFAZIONE

Architettura di un calcolatore: introduzione

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

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

Esercitazione sulle CPU pipeline

CALCOLATORI ELETTRONICI 29 giugno 2010

4 3 4 = 4 x x x 10 0 aaa

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Strutturazione logica dei dati: i file

Aggiornato il 18 giugno Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

CALCOLATORI ELETTRONICI 31 marzo 2015

COME È FATTO IL COMPUTER

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Unità Periferiche. Rete Di Controllo

4. Operazioni aritmetiche con i numeri binari

Architettura di un computer

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Sistema operativo: Gestione della memoria

introduzione I MICROCONTROLLORI

Più processori uguale più velocità?

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

Corso di Architettura degli Elaboratori

Algoritmi e strutture dati. Codici di Huffman

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

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

Approccio stratificato

Calcolatori Elettronici B a.a. 2006/2007

8 Microcontrollori PIC

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Prelievo di un istruzione. Istruzioni macchina. Tipi di istruzioni. Registri principali della CPU e loro ruolo

Organizzazione della memoria

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

Laboratorio di Informatica

CPU pipeline 4: le CPU moderne

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

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

Fondamenti di informatica: un po di storia

L unità di controllo di CPU multi-ciclo

Транскрипт:

Lezione n.19 Processori RISC e CISC 1

Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni Architetture CISC E RISC Tradizionalmente sono stati seguiti due approcci alla progettazione di un Unità di Controllo (UC), cioè della parte della CPU che controlla il movimento dei dati. Logica cablata (tramite circuiti sequenziali) Logica microprogrammata (tramite microistruzioni) Evoluzione In origine venne usata la logica cablata Hard Wired (non modificabile). Era un metodo molto rigido, perché veniva fatta a livello di progetto fisico con connessioni vere e proprie. La microprogrammazione si affermò negli anni 60 come approccio ordinato alla progettazione (in termini di metodo di progettazione). L approccio tramite microprogrammazione offre il vantaggio di una maggiore flessibilità: Il progettista può intervenire fino all ultimo sul microprogramma, anche sostituendo o modificando le istruzioni. Facilità nella realizzazione di istruzioni di macchina complesse e potenti Tutto ciò portò allo sviluppo di calcolatori che avevano istruzioni molto complesse, in pratica operazioni che coinvolgevano molti trasferimenti ed elaborazioni dati. Questa categoria di macchine è stata successivamente nominata CISC (Complex Instruction Set Computers). Un esempio di macchina con un set d istruzioni complesso e il 68000. Motivazioni per i CISC Negli anni 60 ci fu il problema della software craising (crisi del software), ossia la costruzione del software aveva costi molto elevati. I motivi principali che hanno portato allo sviluppo dei processori CISC sono essenzialmente tre: 1. Riduzione del gap tra linguaggio macchina e linguaggio di programmazione. Il gap è inteso in termini di numero di istruzioni. Questo significa che con 2

l approccio CISC, dato un programma scritto in linguaggio d alto livello, si produce un minor numero d istruzioni macchina rispetto all approccio RISC, riducendo così il tempo d esecuzione del programma. 2. Programmi compatti: le istruzioni erano in grado di eseguire più operazioni. Questo forniva un vantaggio economico in quanto la memoria era cara negli anni 60. 3. La memoria centrale era più lenta della memoria di controllo. Si cercava allora di portare in memoria di controllo i programmi, perché questa memoria era più veloce. Tuttavia, ci si accorse che queste istruzioni portavano ad un elevato numero medio di cicli di clock nella memoria di controllo (ci volevano molte microistruzioni per poter eseguire un istruzione complessa). Questo era causa di lentezza. Inoltre i profili d esecuzione mostravano che l 80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio d istruzioni. In pratica venivano eseguite solo le istruzioni più semplici, STORE, CALL, ADD e qualche altra. Altri punti a svantaggio dell approccio CISC erano inoltre i seguenti: La RAM diveniva sempre più veloce Veniva introdotta la memoria CACHE Quindi non c era più necessità di eseguire il programma nella memoria di controllo. Si pensarono allora nuovi criteri tra cui: Ottimizzare quel 20%, cioè il repertorio delle istruzioni più semplici, perché fa l 80% del lavoro. Questo significa: rinunciare alle istruzioni più complesse che sappiamo richiedono più cicli di clock contare sulla velocità della cache Si pensò allora la seguente strategia: creare un repertorio d istruzioni semplificato o istruzioni tutte della stessa dimensione o pochi formati in modo da facilitare la decodifica anche con la logica cablata. Questo portò al ritorno della logica cablata che era stata soppiantata dalla microprogrammazione. o decodifica ordinata Contare sul compilatore o Per utilizzare in modo ottimo le operazioni di macchina o Qualunque sia la complessità del linguaggio di programmazione d alto livello Nacquero così, sulla base di quelle osservazioni le architetture RISC 3

RISC L approccio RISC prevede l uso di istruzioni molto semplici, quindi sono necessarie più istruzioni RISC per risolvere un dato problema. Dall altra parte però queste istruzioni possono essere realizzate in logica cablata, consentendo di raggiungere alte velocità d esecuzione. Le architetture RISC hanno un elevato numero di registri di CPU. In questo modo una variabile può rimanere in un registro per lungo tempo e quindi essere riutilizzata in futuro con maggiore velocità (accesso alla CPU più veloce). Solo quando tutti i registri sono occupati, allora la variabile inutilizzata potrebbe essere esclusa dal registro. Con i RISC, le operazioni di manipolazione avvengono solo tra registri di CPU. L idea era quella di eliminare le operazioni di manipolazione tra memoria e CPU ottenendo una minimizzazione del traffico con la memoria. Quindi le uniche operazioni che richiedono l accesso alla memoria sono solo LOAD e STORE. Un esempio di processore RISC è il POWER PC. Vediamo il formato di un istruzione del POWER PC. Le istruzioni sono tutte a 32 bit. Il codice operativo ha una lunghezza fissa (tipicamente 6 bit). I formati sono 3 o 4. Registri: 3 campi operandi OP Rd Ra Rb FUN Campo di operazione di 6 bit Campo usato per distinguere le varie operazioni OP Rd Ra Displ/Imm OP Indirizzo lungo 4

L unità di controllo di una macchina CISC è di tipo microprogrammato, mentre l unità di controllo delle macchine RISC è realizzata in logica cablata. Esempio Istruzioni aritmetiche nel formato RISC ADD R1,R2,R5; -------------------R1:=R2+R5 MUL R7,R9,R10;------------------R7:=R9*R10 SUB R3,R3,R3;--------------------R3:=R3-R3=0 Queste istruzioni hanno tutte 3 registri di cui due sorgenti (es.r2 e R5 per la ADD e R9 e R10 per la MUL) ed uno destinazione (R1 per la ADD, R7 per la MUL). Il RISC esegue un istruzione in un colpo di clock, mentre il CISC richiede più colpi di clock per eseguire un istruzione. Si ricorda che l esecuzione di un istruzione richiede le seguenti fasi: 1. fetch 2. decodifica 3. esecuzione vera e propria (ALU) 4. memorizzazione del risultato in un registro 5. eventuale scrittura in memoria PRESTAZIONI Dato un generico programma, ci si chiede quali siano i fattori che influenzano le prestazioni del sistema. Questo programma è scritto in linguaggio d alto livello e viene poi tradotto in linguaggio macchina dal compilatore. Indichiamo con: N: numero complessivo d istruzioni macchina che devono essere eseguite CPI: numero medio di colpi di clock per istruzione macchina f=1/t: frequenza di clock, con T periodo di clock t: tempo impiegato per l esecuzione del programma Si ottiene che il tempo t per l esecuzione del programma è dato dalla seguente espressione: N CPI t = N CPI T = f il prodotto N*CPI costituisce il numero di cicli di macchina. Le prestazioni del sistema saranno tanto migliori tanto più piccolo è t. 5

t dipende dalla tecnologia, quindi da T, cioè dal periodo/frequenza di clock. Ricordiamo che T dipende dalla capacità d integrazione e quindi dalla capacità di costruire circuiti sempre più piccoli e più veloci. N dipende dal compilatore. Se il compilatore è scadente N sarà alto, se invece è buono N sarà basso. t dipende dall architettura perché N, CPI e T dipendono dall architettura. Infatti, se la macchina è fatta in modo complesso, è probabile che i percorsi tra un registro e una destinazione del contenuto del registro, siano lunghi e quindi poiché il clock scandisce il funzionamento della macchina è necessario che il clock sia sufficiente a fare quel trasferimento. CPI dipende solamente dall architettura poiché il clock dipende dal repertorio d istruzioni e da come è fatta la macchina e da quanto complesse sono le istruzioni. N dipende anche dall architettura perché se il repertorio di macchina consente con una sola istruzione di fare molte cose allora N sarà piccolo. Le macchine RISC fanno aumentare N, però cercano di ridurre in misura maggiore l influenza di T e CPI rispetto a N. BLOCCHI PER UNA CPU Vogliamo costruire una macchina che soddisfi un basso CPI. Vediamo quali sono i registri interessati quando si effettua il prelievo di un istruzione. 1. PC (Program Counter) 2. IR (Instruction Register) 3. Memoria Istruzione anche se non fa parte della CPU, ma interviene ugualmente. Stiamo supponendo che la memoria sia divisa in memoria istruzioni e memoria dati. L architettura del calcolatore sarà caratterizzata certamente da una parte che fa il prelievo dell istruzione. Questa parte è composta da un Program Counter (PC) che ci dice dove prendere la prossima istruzione in memoria. Poi ci sarà il Registro Istruzioni (IR) che è quel registro dove si mette l istruzione presa dalla memoria per poi decodificarla. Con le macchine attuali, la CPU legge ormai dalla Cache Memory, che è una memoria piccola ma veloce posta nello stesso circuito integrato della CPU ed è divisa in memoria istruzioni e memoria dati. Vediamo ora uno schema a blocchi rappresentativo della fase del prelievo di un istruzione 6

Program Counter (PC) Memoria Istruzioni (MI) Intruction Register (IR) UC Il PC genera l indirizzo e nell Instruction Register andrà il codice dell istruzione. Ovviamente il Program Counter andrà incrementato per selezionare l istruzione successiva da eseguire, oppure andrà modificato se c è da fare un salto (JUMP X). Tutta questa fase viene comandata dall Unità di Controllo UC. Dopo questa fase di prelievo dell istruzione, l UC deve interpretare il contenuto dell Instruction Register. Inizierà quindi la fase di decodifica dell istruzione. Decodifica dell istruzione Una volta che l istruzione è stata prelevata c è da decodificarla. Quindi la fase di decodifica necessita di : 1. un decodificatore 2. Register File 3. IR Se facciamo l ipotesi che le operazioni avvengano solo nei registri è sicuro che nella fase di esecuzione qualche registro verrà utilizzato, a meno che l istruzione non sia un istruzione di salto, che sappiamo non tiene conto di nessun registro. Allora in questa fase si leggeranno i registri e si presentano alla fase successiva i loro contenuti. 7

IR Decodificatore RF Blocco dove stanno i registri di macchina La logica di questa parte di decodifica è la seguente: Il contenuto di IR viene decodificato dal decodificatore D, che è in pratica l Unità di Controllo. L Unità di Controllo D genera i segnali di comando verso le varie parti di cui una verso RF e altri segnali verso destra nella quale risiedono gli stadi successivi. Ricordiamo che il primo stadio è quello di prelievo dell istruzione, il secondo stadio è quello di decodifica, il terzo stadio è invece quello di esecuzione. Esecuzione Nello stadio di esecuzione c è la ALU (Unità Aritmetica Logica). RF ALU UC Quello che esce dal Register File (RF) arriva alla ALU che fa le operazioni tra gli operandi di RF. Anche in questo stadio c è l UC che da il comando alla ALU dicendogli: devi fare la moltiplicazione o la somma o la divisione, etc. Il quarto stadio è la fase di accesso alla memoria. 8

Accesso alla memoria Un istruzione può richiedere la lettura o scrittura in memoria. Lo schema a blocchi rappresentativo di questa fase è il seguente: ALU Memoria Dati MD RF Esce il risultato UC Dalla ALU esce il risultato dell operazione svolta dalla ALU stessa (può essere anche il calcolo di un indirizzo di memoria. Il Register File RF è il luogo dal quale si prendono i dati per metterli in memoria oppure il luogo dove finirà il dato letto dalla memoria. Il tutto è comandato dall unità di controllo. L ultima fase è un eventuale fase di scrittura registri. Scrittura registri (fase di Write Back) Il dato calcolato dalla ALU o letto dalla memoria viene preso e portato in un registro di destinazione. ALU MUX RF MD Operazione di Load UC 9

Se l operazione era per esempio ADD, il risultato in uscita dalla ALU viene messo in un registro di RF. Se l operazione è un operazione di lettura dalla memoria dati (MD), il dato verrà letto dalla memoria e caricato nel Register File (operazione di Load). Anche in questa fase l UC effettua il controllo delle varie operazioni, tra cui ha il compito di asserire la via del Mux, che deve poi alimentare RF, sulla base del codice d operazione. Ovviamente se un dato deve essere scritto in un registro, l UC deve far arrivare un clock che memorizzi il dato dentro il registro di destinazione selezionato. Complessivamente abbiamo il seguente schema a blocchi. MI IR UC PC RF ALU MD L Unità di Controllo genera tutti i segnali di controllo necessari. Il Program Counter ci fa leggere la memoria, (presenta l indirizzo alla memoria) nella quale è posta l istruzione, che viene poi decodificata dall UC, la quale attiva i segnali che comandano quello che normalmente è il percorso dati. Nel grafico vanno aggiunti ulteriori percorsi per tener conto di eventuali salti (istruzione di salto) e quindi modifica del PC. 10

Pipeline Le istruzioni vengono eseguite da più moduli, ognuno dei quali fa una certa elaborazione. I S1 IF S2 ID S3 EX S4 ME WB CK A regime ( la pipeline è piena) ed ad ogni colpo di clock viene eseguita un istruzione. S1= stadio 1 S4= stadio 4 IF=Instruction Fetch ID= Decodifica dell istruzione EX= esecuzione dell istruzione ME= Lettura in memoria WB= Write back (scrittura nei registri) 11