ARCHITETTURE DEI CALCOLATORI L architettura della CPU

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "ARCHITETTURE DEI CALCOLATORI L architettura della CPU"

Transcript

1 ARCHITETTURE DEI CALCOLATORI L architettura della CPU Mariagiovanna Sami 1

2 Una prima definizione di architettura astratta Architettura dell Insieme di Istruzioni (Instruction Set Architecture - ISA): la parte di architettura che è visibile al programmatore e al compilatore. Le ISA per le tre classi di calcolatori (PC, server, embedded) sono in buona misura simili; L ISA per i mainframe deve mantenere la compatibilità con molte generazioni precedenti, e rispettare vincoli dovuti agli aspetti legali delle applicazioni (es., aritmetica decimale)

3 L ISA Soluzioni di ISA fortemente specializzate: ad esempio, processori per l elaborazione numerica di segnale e immagine (DSP, media processors) enfasi su prestazioni di tempo reale, elaborazione di flussi continui di dati le prestazioni vengono mirate al caso pessimo per garantire il tempo reale - 3 -

4 Le istruzioni di macchina Scelta dell insieme delle istruzioni di macchina: punto critico per le prestazioni definitive del calcolatore (e per la definizione delle architetture concrete che implementeranno l ISA!); Include: La scelta delle istruzioni in quanto operazioni da compiere; La scelta dei modi di indirizzamento

5 Le istruzioni di macchina Insieme delle istruzioni: determina il programma oggetto che viene prodotto partendo da un programma sorgente scritto in un linguaggio ad alto livello influenza le prestazioni ottenibili nell esecuzione di un programma; Due tendenze opposte: CISC (Complex Instruction Set Computer) e RISC (Reduced Instruction Set Computer)

6 Le istruzioni di macchina Filosofia CISC: singole istruzioni di macchina realizzano operazioni anche di notevole complessità, si consentono modalità complesse di indirizzamento ( accesso agli operandi). Motivazioni: programma oggetto relativamente breve minor occupazione di memoria, minor numero di letture dalla memoria istruzioni; Un unità hardware dedicata esegue una singola operazione complessa in tempo molto minore di quello richiesto dall esecuzione di una sequenza di istruzioni semplici per queste operazioni si ottengono prestazioni più elevate

7 Le istruzioni di macchina Filosofia CISC: adottata negli anni 70 - primi anni 80 dai mainframe IBM ai minicomputer (es. VAX) e a molti microprocessori delle prime generazioni; caso-limite macchine a esecuzione diretta (sottinteso, di linguaggi ad alto livello). Svantaggi: Complessità elevata delle istruzioni di macchina unità di controllo necessariamente microprogrammata (più lenta della soluzione FSM!); Grande complessità interna dell unità di controllo (in particolare, per la decodifica) periodo di clock più lungo il ciclo di clock determina la sincronizzazione di tutte le operazioni della CPU, che risulta sempre rallentata! - 7 -

8 Le istruzioni di macchina: la base della filosofia RISC Operando un profiling su un numero sufficientemente alto di benchmark, risulta che la CPU passa il 90% del tempo attivo eseguendo solo un 10% del codice, e la percentuale di impatto dei tipi di istruzione si concentra su poche classi: Istruzioni di Load/Store, aritmetica in virgola fissa, salti impegnano la percentuale massima; Ottimizzazioni spinte di istruzioni rare non convengono! Rendere veloci le istruzioni che si usano più spesso

9 Le istruzioni di macchina: la filosofia RISC Scopo fondamentale: semplificare l unità di controllo ( ciclo di clock più breve genera miglioramento delle prestazioni su tutte le istruzioni) Secondo aspetto: ridurre il numero di modalità di indirizzamento ammesse per i diversi tipi di istruzioni

10 Le modalità di indirizzamento Problemi fondamentali: accesso agli operandi gestione delle memorie interne alla CPU; Possibili classificazioni: sulla base del numero degli indirizzi o della informazione indirizzabile nelle istruzioni di tipo aritmetico-logico. Riferimento agli operandi: esplicito oppure implicito

11 Le modalità di indirizzamento: il numero degli indirizzi Istruzioni di riferimento: istruzioni ALU (dotate di due operandi e un risultato); Prima soluzione proposta: macchina a tre indirizzi. Formato dell istruzione OpCode Result Source1 Source2 Es.: add Ris, op1, op2 Vantaggi: programmazione semplice Problema: il numero di bit per codificare gli indirizzi degli operandi e dei risultati è limitato

12 Macchine a tre indirizzi Gli operandi sono espliciti; Non è possibile che tutti e tre gli indirizzi si trovino in memoria di lavoro (numero di bit di indirizzamento insufficiente!) se si vuole che l istruzione sia lunga una sola parola; Soluzioni possibili: 1. Operandi e risultato si trovano in registri interni della CPU ( architettura a registri; le dimensioni del register file sono sempre limitate); 2. Solo uno degli operandi si trova nella memoria di lavoro, l altro (e il risultato) si trovano in registri; 3. Le istruzioni hanno lunghezza variabile - possono estendersi su più parole consecutive

13 Le modalità di indirizzamento (2) Macchine a due indirizzi: il primo indirizzo inizialmente contiene un operando, alla fine conterrà il risultato. Formato Es.: add Ris, op2 OpCode Source1/ Ris Source 2 Vantaggi: più bit a disposizione per gli indirizzi; in genere, uno è in memoria (source2) Occorre salvare il primo operando, se si vuole riutilizzarlo in futuro (alla fine dell operazione, non è più disponibile nel registro in cui si trovava inizialmente)

14 Le modalità di indirizzamento (3) Macchine a un indirizzo: si fornisce esplicitamente l indirizzo di un solo operando. L altro operando è inizialmente contenuto in un registro privilegiato della CPU (l accumulatore), che al termine conterrà il risultato. Formato: Es.: add op CodOp source2 Vantaggio: molti bit a disposizione per l indirizzo Problemi: occorre predisporre inizialmente un operando nell accumulatore, e trasferire poi il risultato dall accumulatore alla sua destinazione finale. (Molto usato in CPU vecchie con parola di memoria corta)

15 Le modalità di indirizzamento (4) Macchine a zero indirizzi: fanno riferimento allo stack ( pila ). Inizialmente gli operandi si trovano (in ordine opportuno) in cima allo stack, da cui vengono tolti e dove alla fine verrà depositato il risultato ( operandi impliciti) Di fatto, soluzione non adottata nelle CPU attuali il sovraccarico di gestione dello stack rovina le prestazioni. Vantaggio: molto elegante, bene gestibile in compilazione

16 Le modalità di indirizzamento: il tipo di indirizzo Scelto un tipo di macchina, che cosa indicano gli indirizzi? Macchine con Riferimento a memoria: tutte le istruzioni possono fare direttamente riferimento alla memoria. Inevitabilmente, il numero di indirizzi nell istruzione sarà basso alternative: Si può indicare direttamente un indirizzo di memoria (es. add M[xx]) -con M[xx]si indica la parola di memoria il cui indirizzo xx è precisato nella parte indirizzo dell istruzione

17 Macchine con Riferimento a memoria Si può dare il puntatore a un indirizzo di memoria (es. add M[Ri]) - M[Ri]indica la parola di memoria il cui indirizzo è precisato nel registro Ri (modalità detta anche indiretta da registro) Si può costruire l indirizzo fornendo uno spiazzamento rispetto alla base contenuta in un registro (add 100,(Ri) l indirizzo in memoria viene calcolato sommando 100 al contenuto del registro Ri); modalità detta anche relativa a registro Si può indicare una parola di memoria che contiene l indirizzo della parola che contiene l operando (add M(M[xx). Modalità detta anche indiretta

18 Macchine con Riferimento a memoria (2) Soluzione adottata soprattutto per le istruzioni di salto: indirizzamento relativo al Program Counter l indirizzo di destinazione si ottiene sommando lo spiazzamento al contenuto del Program Counter Un caso particolare: indirizzamento immediato si fornisce direttamente l operando (invece dell indirizzo); e altre soluzioni costruite su queste ora indicate. Architetture completamente ortogonali tutte le istruzioni possono utilizzare tutti i modi di indirizzamento. Tecnica utilizzata da calcolatori di varie classi di decenni passati (es.: VAX)

19 L accesso alla memoria Istruzioni aritmetiche con indirizzamento a memoria diretto o indiretto: minor numero di bit disponibili per l indirizzo o in alternativa istruzioni di lunghezza variabile (n di bytes necessari variabile con il tipo di istruzione e la modalità di indirizzamento casi tipici, 8086 e successivi, VAX) Indirizzamento ortogonale alle istruzioni e istruzioni a lunghezza variabile grande complessità dell unità di controllo ( maggior lunghezza del ciclo di clock)

20 Istruzioni ALU con accesso alla memoria Tutte le istruzioni possono (in linea di principio) accedere alla memoria potenzialmente si rallentano tutte le istruzioni. Adatte ad architetture con numero molto limitato di registri interni (al limite, il solo accumulatore) Le istruzioni hanno scarsa regolarità molto difficile introdurre pipelining (frazionare le istruzioni in sequenze di fasi identiche per tutte le istruzioni)

21 Macchine registro-registro registro (anche Load-Store Store) Solo le istruzioni di lettura da memoria in un registro (Load) e di scrittura da un registro in memoria (Store) possono accedere alla memoria; Operandi e risultati delle istruzioni operative (ALU) si trovano esclusivamente nei registri interni (unica eccezione: indirizzamento immediato) formato tipico Cod.Op. Rdest Rsource1 Rsource2-21 -

22 Macchine registro-registro registro Adatte a CPU con un numero elevato di registri interni di tipo generale (qualsiasi registro può essere sorgente o destinazione per qualsiasi operazione); Tutte le istruzioni hanno la stessa lunghezza; Pochi formati di istruzione si semplifica la struttura dell unità di controllo ciclo di clock più breve; Problema: la traduzione genera un programma oggetto più lungo

23 Macchine registro-registro registro Es.: codice sorgente C:= X+Y Macchina con riferimento a memoria e un solo indirizzo (Acc = registro accumulatore): Load [M(X)] Add [M(Y)] Store [M(C)]

24 Macchine registro-registro registro Macchina Load-Store con indirizzamento a memoria di tipo relativo (spiazzamento + contenuto di un registro base) Load R1, 100(R5) Load R2, 104(R5) Add R3, R1, R2 Store R3, 200(R5)

25 Macchine registro registro-registro registro Il numero delle istruzioni è maggiore maggior numero di accessi alla memoria istruzioni, maggiore occupazione della memoria istruzioni Il ciclo di clock è più breve la latenza della singola istruzione è minore Le istruzioni hanno grande regolarità facile organizzarle in fasi identiche fra loro e creare una struttura pipelined dell unità di elaborazione (Data Path)

26 Macchine registro registro-registro registro Architetture attuali: in grande prevalenza basate sul modello Load-Store, sull applicazione del pipelining nella realizzazione dell unità di elaborazione e sul concetto RISC; Unità di controllo: prevalentemente realizzata come macchina a stati finiti (hardwired) molto più veloce della soluzione microprogrammata

27 Parallelismo: alcuni concetti Parallelismo: consente di raggiungere prestazioni migliori grazie all esecuzione simultanea di più istruzioni; vari tipi di parallelismo: parallelismo funzionale nasce dalla logica della soluzione di un problema parallelismo dei dati (nasce dalle strutture dati che consentono l esecuzione simultanea su più elementi nella soluzione di un problema: inerente solo a limitati insiemi di problemi calcolo scientifico, elaborazione di immagine)

28 Parallelismo Si possono sfruttare simultaneamente più tipi di parallelismo; Il parallelismo funzionale può essere visto a diversi livelli di astrazione corrispondenti a diverse soluzioni architetturali: Instruction-level a grana fine; Loop-level a grana intermedia; Procedure-level a grana intermedia; Program-level a grana grossa

29 Parallelismo Ci si concentra per ora sul parallelismo Intrinseco (Instruction-Level Parallelism, ILP), come adottato nelle moderne CPU. Più istruzioni in linguaggio macchina dello stesso programma sono simultaneamente in esecuzione. L ILP non richiede costrutti linguistici specifici, consente compatibilità binaria fra architetture concrete dverse, anche se viene sfruttato al meglio dall uso di un compilatore ottimizzante. Due tecniche fondamentali di esecuzione parallela: Pipelining Replicazione di unità funzionali

30 Pipelining Concetto base (non limitato alla realizzazione di una CPU): il pipelining: Si applica a operazioni (possibilmente complesse) che vengono ripetute identicamente su flussi continui di dati e che possono essere frazionate in sequenze di sotto-operazioni ognuna di complessità comparabile (in termini di latenza) alle altre; All unità funzionale monolitica si sostituisce una cascata di unità più semplici corrispondenti ognuna a una delle sotto-operazioni, dette stadi della pipeline;

31 Pipelining Ogni elemento del flusso di dati passa attraverso tutti gli stadi generando una sequenza di risultati intermedi; non appena uno stadio ha prodotto un risultato intermedio e lo ha inviato allo stadio successivo, è pronto a ricevere operandi dallo stadio precedente; il sistema è rigorosamente sincrono; Se T è la latenza dell intera operazione e N sono gli stadi, idealmente ogni stadio ha latenza T/N;

32 Pipelining Ogni T/N unità di tempo un nuovo elemento del flusso d informazione può essere inviato in ingresso alla pipeline (e un risultato estratto in uscita). Pipelining: si può riassumere affermando: più unità funzionali (differenti) vengono usate in sequenza per compiere una singola computazione (nel nostro caso, un istruzione di macchina), formando una conduttura o pipeline

33 Introdurre il parallelismo nell ILP Replica di unità funzionali: più unità eseguono le loro operazioni (eventualmente identiche) in parallelo su diversi dati. Le due tecniche pipelining e parallelismo come replica di unità funzionali - possono coesistere nella stessa architettura (due concetti ortogonali)

34 Verso architetture più veloci Prestazioni: riferite allo speed-up = accelerazione delle operazioni, quindi miglioramento delle prestazioni = riduzione del tempo di esecuzione in conseguenza di una modifica dell architettura. Primo problema: quale esecuzione si sceglie per valutare lo speed-up?

35 Il miglioramento delle prestazioni Speed-up -riferito all esecuzione di codice benchmark -è ilrapporto fra tempo di esecuzione senza miglioramento e tempo di esecuzione dopo che il miglioramento è stato introdotto. Una modifica dell architettura introduce uno speedup che in genere influenza solo parte dell esecuzione del codice una frazione dell esecuzione inferiore a

36 La legge di Amdahl Speedup totale per l esecuzione completa del codice: deve tenere in conto sia la parte influenzata dalla modifica sia la parte non influenzata: t. ex = new t. exold 1 Speedup overall = t. ex t. ex fraction ( ) enh fraction + enh speedupenh old new = (1 Fraction enh 1 ) + Fraction Speedup enh enh

37 La legge di Amdahl: : un esempio Si voglia realizzare un unità grafica: miglioramenti alternativi proposti: Inserire un unità hardware per il calcolo della radice quadrata in virgola mobile che acceleri l operazione di un fattore 10; Migliorare tutte le istruzioni in virgola mobile (Floating Point) di un fattore

38 La legge di Amdahl: : un esempio Si supponga che le radici quadrate richiedano sulla macchina originale il 20% del tempo di esecuzione, e che il 50% del tempo totale di esecuzione sia dovuto a istruzioni in virgola mobile. Inoltre, sia (sempre suklla macchina originale): CPI delle istruzioni diverse dalla radice quadrata = 1,33; CPI delle istruzioni in virgola mobile = 4; CPI della radice quadrata =

39 La legge di Amdahl: : un esempio Si confrontino i due risultati: Speedup sqrt = ( ) = = 1.22 Speedup FP = ( ) = =

40 Valutazione mediante CPI: Si parte da CPU _ clockcycles = n i= 1 IC i CPI i dove IC i = numero di volte che l istruzione i viene eseguito nel programma, CPI i = numero medio di cicli per istruzione per l istruzione i

41 Valutazione mediante CPI: Si ottiene CPUtime e CPI = = n i= 1 n i= 1 IC i IC i CPI CPI Instruction _ count i i = clockcycletime n i= 1 ICi Instruction _ count CPI i

42 Valutazione mediante CPI: Si supponga che una serie di misure abbia dato i seguenti risultati: Frequenza delle operazioni in virgola mobile (FP): 25%; Frequenza della radice quadrata in virgola mobile (FPSQR): 2%; Alternative: ridurre il CPI della FPSQR a 2 o ridurre a 2 il tempo medio delle operazioni FP

43 Valutazione mediante CPI: varia solo CPI: durata del ciclo e conteggio delle istruzioni restano immutati; Si utilizza l equazione delle prestazioni per confrontare le due soluzioni; CPI originale: CPI old n = CPI i= 1 i ICi IC = (4 0,25) + (1,33 0,75) = 2,0-43 -

44 Valutazione mediante CPI: CPI della soluzione con radice quadrata migliorata e le altre operazioni FP immutate: CPI 2,0 FPSQR = CPIold 0,02 ( CPIoldfpsqr CPI newfpsqr 0,02 (20 2) = 1,64 ) =

45 Valutazione mediante CPI: Si calcola il CPI per l unità FP migliorata sommando i CPI per la virgola mobile e il CPI originale per tutte le altre operazioni (pesati per le rispettive percentuali d uso): CPI new _ FP = (0,75 1,33) + (0,25 2) = 1,

46 Importante Pipelining: essenziale per rendere competitivo l approccio RISC i programmi (possono) essere più lunghi che sulle macchine CISC, ma il tempo totale di esecuzione è minore che su unità CISC non-pipelined. Pipelining: non è ristretto alle macchine RISC molti processori CISC hanno unità di elaborazione pipelined;

47 L architettura di riferimento: la macchina MIPS Introdotta al principio degli anni 80 (MIPS 1): architettura a 32 bit del tipo registro-registro: Tutte le istruzioni sono lunghe 4 bytes; Le istruzioni ALU hanno due operandi in registri sorgente (unica eccezione: un operando è un immediato) e il risultato viene scritto nel registro destinazione;

48 L architettura di riferimento: la macchina MIPS Solo le istruzioni Load e Store accedono alla memoria Dati; Indirizzamento in memoria: fa riferimento al byte (indirizzi consecutivi differiscono per 4 byte); Istruzioni di controllo (innanzitutto jump e branch): destinazione indicata mediante indirizzamento relativo, o rispetto al Program Counter o rispetto a un registro base; Tutti i registri nel Register File sono indifferenziati

49 I formati delle istruzioni Istruzioni di tipo L: load e store, istruzioni che operano su immediati, salti condizionati (con indirizzamento indiretto da registro) OPCODE rs1 rd immediato Istruzioni di tipo R: istruzioni ALU registroregistro OPCODE rs1 rs2 rd function

50 I formati delle istruzioni Istruzioni di tipo J: salti incondizionati, chiamate a subroutine (indirizzamento relativo al PC) OPCODE spiazzamento

51 Il MIPS e il pipelining Fasi possibili nella vita di un istruzione: 1. Fetch (lettura): l istruzione viene letta da memoria: IR M[PC]. Nella stessa fase, il PC viene incrementato di 4 2. Decodifica dell istruzione/lettura dei Registri: l istruzione viene decodificata; Si leggono i registri i cui indirizzi vengono prelevati dai bit e dell istruzione; si porta il loro contenuto in due latch A and B; I bit 0-15 dell istruzione vengono interpretati come se fossero un valore immediato, che viene letto ed esteso a 32 bit

52 Il MIPS e il pipelining Nota: può darsi che si siano compiute operazioni inutili (es.: lettura da due registri sorgente se l istruzione ne ammette uno solo o nessuno; estensione di un valore immediato se non si opera su immediati...) ma comunque: Non c è costo addizionale in termini di tempo e di unità esistenti, dato che le operazioni vengono compiute in parallelo alla decodifica e da unità comunque necessarie; Per le istruzioni che richiedono tali operazioni si è ottenuto uno speed up rispetto all attendere il completamento della decodifica prima di avviarle

53 MIPS e il pipelining: : le fasi (cont.) 3. Esecuzione oppure calcolo di un indirizzo di memoria: fase che coinvolge l ALU per qualunque tipo di istruzione. Nessuna istruzione MIPS richiede l esecuzione di un operazione ALU e anche l accesso alla memoria dati le due attività indicate possono essere inserite nella stessa fase (non verranno mai richieste simultaneamente). Funzioni eseguite:

54 Esecuzione/calcolo dell indirizzo di memoria Istruzioni Load/store: il valore immediato precedentemente esteso a 32 bit (che qui rappresenta uno spiazzamento) viene sommato al registro base (già prima trasferito nel latch A); il risultato viene scritto nel registro indirizzamento della D-cache. Per una store, il valore in Rd viene trasferito al registro di scrittura della D-cache in vista della scrittura in memoria;

55 Esecuzione/calcolo dell indirizzo di memoria Istruzioni ALU: i contenuti di Rs1 and Rs2 vengono inviati all unità aritmetico/logica insieme ai comandi di funzione (se uno degli operandi è un immediato, il valore è già stato esteso). Istruzioni di salto condizionato (branch) e di salto (jump) con indirizzamento relativo al PC: lo spiazzamento (già esteso nella seconda fase) viene sommato al contenuto del PC; per i salti incondizionati, il risultato viene immediatamente riscritto nel PC

56 Il MIPS e il pipelining: : le fasi (cont.) 4. Accesso alla memoria/completamento dei salti condizionati: nota: non tutte le istruzioni sono attive in questa fase. Load/store: si invia il segnale di Read/Write alla Data Cache. Load: i dati vengono trasferiti dalla cache al registro di Lettura. Store: i dati presenti nel registro di Scrittura vengono scritti in memoria. Salti Condizionati: si verifica la condizione: se è soddisfatta, l indirizzo destinazione (calcolato nella fase 3) viene trasferito al PC, altrimenti si mantiene valido l indirizzo sequenziale

57 Il MIPS e il pipelining: : le fasi (cont.) 5. Write Back (Scrittura) nel Register File: di nuovo: non tutte le istruzioni sono attive in questa fase. Load: i dati presenti presenti nel registro di Lettura/scrittura vengono scritti nel Register File. Istruzioni ALU : il risultato dell operazione viene scritto nel Registro Destinazione

58 Processori non-pipelined Le istruzioni hanno latenza variabile, a seconda delle azioni effettivamente compiute (fasi effettivamente eseguite): load l istruzione più lunga (massima latenza - tutte e cinque le fasi sono attive), salto incondizionato la più breve (nessun accesso a memoria né write back nel register file)

59 Processori non-pipelined: un esempio Instr. fetch Reg. Read Execute Mem. Access Write back TOTAL Lw Sw ALU Jump

60 Processori non-pipelined Sia data la sequenza di istruzioni di macchina: lw $1, 100($0) lw $2, 200($0) lw $3, 300($0) Latenza per completare la sequenza: 3*40=

61 Data Path del MIPS Data Path (= percorso di elaborazione della CPU) di tipo pipelined ogni stadio della pipeline corrisponde ad una fase (IF, ID, EXE, MEM, WB); Tutte le istruzioni attraversano tutti gli stadi della pipeline, siano attive o no nella fase corrispondente; Tutti gli stadi sono sincroni (periodo del clock di sistema = latenza dello stadio più lento = 10 unità) l attraversamento di ogni stadio richiede lo stesso tempo tutte le istruzioni hanno identica latenza (50 unità)

62 Data Path del MIPS Concetto alla base del pipelining: non appena l istruzione i ha lasciato uno stadio, l istruzione i+1 può occupare lo stesso stadio. La latenza delle singole istruzioni non diminuisce il throughput della sequenza di istruzioni (= frequenza di completamento di due successive istruzioni) aumenta. Idealmente, a ogni ciclo si può leggere/completare una nuova istruzione il CPI diventa asintoticamente uguale a 1 (per una CPU convenzionale: CPI = sempre maggiore di 1)

63 Data Path del MIPS Pipelining: sfrutta il parallelismo intrinseco in un flusso sequenziale di istruzioni il concetto di esecuzione sequenziale proprio della macchina di Von Neumann resta valido, non si ha più esecuzione seriale, dato che non si attende il termine di un istruzione per leggere la successiva. Parallelismo intrinseco (a livello di istruzione) nel codice oggetto: non è visibile al programmatore viene estratto dall Unità di Controllo, compilatori ottimizzanti permettono di sfruttarne pienamente i vantaggi

64 Data Path del MIPS Dallo stadio IF all ID: trasferimento sia alla logica di decodifica sia al Register File (per indirizzare i registri); Stadio MEM: il bypass dello stadio MEM indica che alcune istruzioni non sono attive in questa fase IF ID MEM WB ALU RF

65 Data Path del MIPS Istruzioni e dati fluiscono da sinistra a destra: eccezioni: Stadio di Write Back accede al Register File (che si trova a sinistra rispetto allo stadio di WB); Scelta del prossimo indirizzo nel caso di salti e salti condizionati: viene calcolato a destra nello stadio EXE rispetto allo stadio di IF nel quale si usa il nuovo valore del PC. Flusso da destra a sinistra: non influenza la singola istruzione può avere un impatto sulla sequenza di istruzioni

66 Data Path del MIPS Di nuovo, è data la sequenza di tre load : i 1 : lw $1, 100($0) i 2 : lw $2, 200($0) i 3 : lw $3, 300($0) Nell esecuzione pipelined, i 2 può essere letta (= entra nello stadio di Fetch) non appena i 1 entra nello stadio ID, etc:

67 Data Path del MIPS Si indicano i vari blocchi del processore cui le tre load accedono nelle diverse fasi lo sfasamento sull asse dei tempi indica la successione temporale CC1 CC2 CC3 CC4 CC5 CC6 CC7 IM Reg ALU DM Reg IM Reg ALU DM Reg IM Reg ALU DM Reg

68 Data Path del MIPS Latenza totale della sequenza: 7 cicli (12 nella soluzione non pipelined); il vantaggio aumenta con la lunghezza della sequenza di istruzioni (nel caso ideale...); Durata del ciclo: 10 unità; Tempo medio per istruzione: passa da 120/3 a 70/3. Si devono inserire dei registri (buffers) intermedi fra ogni coppia di stadi per garantire la stabilità dell informazione

69 Data Path del MIPS Modifica del Data Path dopo l inserimento dei buffer inter-stadio: IF ID ALU MEM WB IF/ID RF ID/EX EX/MEM MEM/WB

70 Data Path del MIPS Per l esempio dato: si consideri il ciclo CC2: I 1 ha raggiunto lo stadio ID, l informazione letta nello stadio IF è ancora necessaria I 2 viene letta e trasferita al Registro Lettura della Cache Istruzioni. Il latch IF/ID memorizza l informazione relativa a I 1 e al tempo stesso consente la lettura di I 2. A ogni ciclo di clock, ogni istruzione si sposta di un passo verso destra e l informazione che la riguarda viene trasferita da un buffer al prossimo

71 Data Path del MIPS Non esiste un buffer WB/IF dopo lo stadio di WB l istruzione è stata completata, non occorre salvare l informazione che la riguarda; L informazione salvata nei buffer inter-stadio è necessaria anche per la gestione delle eccezioni ( per ogni istruzione il prossimo PC deve essere trasferito nei buffer inter-stadio lungo la pipeline!)

72 Pipelining e prestazioni Sia: TPI = Tempo per Istruzione (prodotto del tempo di ciclo * CPI) TPI Numero di stadi della Pipeline

73 Attività delle Istruzioni MIPS: esempio: load word (lw( lw) 1. Stadio IF: l istruzione viene letta dalla cache istruzioni (I-cache), trasferita al buffer IF/ID. Gli indirizzi dei registri vengono trasferiti alle porte di lettura del R.F. Il PC viene incrementato di 4; il nuovo valore viene trasferito nel buffer IF/ID; 2. Stadio ID: lo spiazzamento viene esteso a 32 bit. i valori letti dal R.F. vengono scritti nel buffer ID/EXE, insieme al contenuto del PC (in effetti, si trasferisce anche l intera istruzione)

74 Attività delle Istruzioni MIPS: load word (lw( lw) 3. Stadio EXE: si calcola l indirizzo effettivo di memoria (usando l ALU); il risultato viene scritto nel buffer EXE/MEM, con tutta le altre informazioni. 4. Stadio MEM: i dati vengono letti dalla Data Cache e trasferiti al buffer MEM/WB; 5. Stadio WB: i dati portati nel buffer MEM/WB vengono scritti nel registro destinazione (il cui indirizzo è stato trasferito attraverso la sequenza di buffer)

75 Attività delle Istruzioni MIPS: store word (sw( sw) 1. IF: identico al caso lw; 2. ID: identico al caso lw le fasi IF e ID sono identiche per tutte le istruzioni 3. EXE: si calcola l indirizzo di memoria, che viene trasferito come per il caso lw. 4. MEM: i dati letti dal R.F. nello stadio ID vengono trasferiti al Registro di Scrittura della Data cache; si manda il comando di Scrittura alla Data Cache

76 Attività delle Istruzioni MIPS: store word (sw( sw) 5. WB: L istruzione store non comporta scrittura nei registri lo stadio viene attraversato senza che alcuna unità venga attivata. In genere: se un istruzione non fa uso attivo di uno stadio, i segnali di controllo corrispondenti restano a un valore non attivo si garantisce la sincronizzazione lungo la pipeline e al tempo stesso si evitano le operazioni non volute

77 Attività delle Istruzioni Si noti: ogni componente del Data Path viene usato ( è attivo ) in un solo stadio della pipeline il componente e il relativo controllo possono essere univocamente associati allo stadio. implica qualche ridondanza rispetto alla macchina di Von Neumann es., occorrono due addizionatori separati, uno per aggiornare il PC e l altro che opera nello stadio EXE

78 Problemi La presenza nella pipeline di più istruzioni simultaneamente attive può portare a vari tipi di conflitti; I conflitti possono trasformarsi in alee cioè cause di errore (a seconda delle caratteristiche specifiche del programma eseguito)

79 Un primo tipo di conflitto Data la sequenza: I 1 : lw $2, 100($3) I 2 : sw $4, 200($5) Si disponga di D-cache dotata di un unico registro di lettura-scrittura IF(lw) ID(lw) EXE(lw MEM(lw WB(lw) IF (sw) ID (sw) EXE(sw) MEM(sw) WB(sw)

80 Un primo tipo di conflitto Nel quarto ciclo di clock: lw legge dalla Data Cache nel registro di Lettura/Scrittura l indirizzo è stato calcolato nel ciclo 3 sw calcola l indirizzo della destinazione in memoria della scrittura e tenta di caricare i dati nel registro di Lettura/Scrittura in preparazione della scrittura Conflitto per accesso alla medesima risorsa nello stesso ciclo di clock

81 La soluzione banale: Il conflitto porterebbe a funzionamento non corretto o (per evitare errori) all introduzione di cicli vuoti ( si ridurrebbe il throughput!) Soluzione: replica delle risorse si dota la Data Cache di registri separati di Lettura e Scrittura (si evitano i conflitti)

82 In generale: il problema delle alee Visto finora: il funzionamento ideale mantiene CPI=1. Nei programmi reali: spesso nascono conflitti (che portano ad alee). Per garantire esecuzione corretta, occorre modificare sia il compilatore sia lo hardware; spesso, per evitare alee, il CPI diventa maggiore di 1 ( prestazioni peggiori!)

83 Le alee Alee: dovute alle dipendenze fra istruzioni - tre tipi di alee: 1.Dipendenze sulle risorse (v. esempio precedente) 2.Dipendenze di dati 3.Dipendenze di controllo

84 Dipendenze sulle risorse Due diverse istruzioni richiedono la stessa risorsa per essere eseguite nasce un conflitto se si tenta un accesso simultaneo; Soluzioni (nelle CPU scalari, come il MIPS cioè con un unica pipeline): 1. Software - in compilazione (le istruzioni che richiedono la stessa risorsa sono sempre poste ad opportuna distanza l una dall altra) 2. Hardware: si fraziona o si replica la risorsa

85 Dipendenze di dati Due diverse istruzioni i k e i k+l mostrano una dipendenza sui dati se hanno in comune un operando in un registro o in memoria a meno che l operando non sia per ambedue un operando sorgente. In un esecuzione puramente sequenziale e seriale, le dipendenze di dati non provocano problemi; lo fanno nel caso di parallelismo a livello di istruzione, a cominciare dal pipelining

86 Dipendenze di dati Dipendenze di dati: possibili sia nel codice lineare (fra due istruzioni successive nel corso della stessa esecuzione di un segmento di programma) sia nel caso di cicli (fra istruzioni che appartengono a diverse iterazioni del ciclo). Ci si concentra sul codice lineare: tre diversi tipi di dipendenze di dati

87 Dipendenze di dati 1. Dipendenza RAW (Read after Write): l istruzione i k+l chiede come operando sorgente l operando destinazione di i k. Es.: i k lw $1, 200($2) i k+l add $4, $1, $3 Detta anche true dependency è correlata alla semantica del codice. Nelle CPU pipelined provoca un alea sui dati. Problema: garantire risultati identici a quelli di un esecuzione seriale

88 Dipendenze di tipo RAW: definizioni Latenza define-use di un istruzione operativa : ritardo fra la decodifica di un istruzione e l istante in cui i risultati diventano disponibili per un istruzione successiva con dipendenza RAW Ritardo define-use: tempo (numero di cicli) per cui si deve bloccare (stall) l istruzione successiva con dipendenza RAW (si deve cioè aspettare senza procedere lungo la pipeline è un ciclo meno della latenza define-use) Latenza e ritardo load-use: definiti nello stesso modo

89 Dipendenze di dati 2. Dipendenza WAR (Write after Read ): l operando destinazione dell istruzione i k+l è un operando sorgente di i k. Es.: i k mul $4, $1, $2 i k+l add $1, $5, $3 3. Dipendenza WAW (Write after Write): le istruzioni i k e i k+l hanno lo stesso operando destinazione. WAR, WAW: dipendenze false dovute al riuso da parte del compilatore di registri o indirizzi di memoria

90 Dipendenze di dati Dipendenze di dati: richiedono opportune modifiche del programma e/o dello hardware; Dipendenze false: non costituiscono un problema per macchine scalari si vedrà come possono essere risolte, per CPU più complesse, mediante ridenominazione (renaming) (nel corso della compilazione o mediante hardware specializzato)

91 Dipendenze di dati nei cicli Un istruzione in una iterazione dipende da istruzione/i in iterazioni precedenti: caso detto anche ricorrenza o dipendenza interiterazione. Tipo più comune: ricorrenza lineare del primo ordine: es.: X(I)=A(I)*X(I-1)+B(I) Possono creare problemi per le tecniche di ottimizzazione usate dai compilatori

92 Dipendenze di controllo Dovute alle istruzioni che modificano il flusso di controllo: Esempio: (40) bnz $1, 100($2); sia ($2)=12 (44) add $4, $6, $5;... (112) sub $7, $4, $8 Il percorso di esecuzione e il valore finale nel registro 7 - dipendono dal risultato dell istruzione bnz

93 Dipendenze di controllo Tutte le istruzioni di controllo (incluse chiamate a procedura e ritorni da procedura) creano dipendenze di controllo; Dipendenze di controllo: possono ridurre in modo rilevante le prestazioni delle CPU con parallelismo intrinseco; Rapporto fra dipendenze di controllo e codice lineare: fortemente legato all applicazione (più alto nei programmi di tipo generale che nei sistemi dedicati)

94 Dipendenze di controllo Le dipendenze di controllo possono generare errori se si avviano all esecuzione istruzioni successive in sequenza a quella di controllo; Salti incondizionati: si riconoscono nella fase ID, occorre annullare l istruzione appena letta (penalità di un ciclo) e leggere la nuova istruzione usando il nuovo valore del PC si genera ritardo, non errore; Salti condizionati (branch): occorre aspettare che la condizione sia stata valutata per stabilire quale è la prossima istruzione!

95 I conflitti nella macchina MIPS Conflitti di dati: conseguenza solo di dipendenze RAW ( vere ) Dipendenze Define-use: si consideri la sequenza: i1 sub $2, $1, $3 i2 and $12, $2, $5 i3 or $13, $6, $2 i4 add $14, $2, $2 i5 sw $15, 100($2) Uno schema di esecuzione banale sarebbe :

96 Conflitti di dati nella macchina MIPS i1 CC1 CC2 CC3 CC4 CC5 CC6 CC IM Reg DM Reg ALU CC8-20 CC9-20 i2 IM Reg ALU DM Reg i3 IM Reg ALU DM Reg i4 IM Reg ALU DM Reg i5 IM Reg ALU DM Reg

97 Conflitti define-use nella macchina MIPS Le istruzioni dalla seconda alla quinta mostrano dipendenze di dati rispetto alla prima; La seconda, terza e quarta istruzione in realtà leggono il vecchio contenuto del registro $2 (la prima istruzione non ha ancora raggiunto la fase WB): i risultati sono diversi da quelli dell esecuzione sequenziale; Solo le istruzioni che leggono il registro $2 a partire dal ciclo di clock 6 in avanti trovano valori corretti (nuovi)

98 Conflitti define-use nella macchina MIPS Come otenere risultati corretti? 1. Sia il compilatore a risolvere il problema! Se possibile, il compilatore inserisce tante istruzioni non-dipendenti quante sono necessarie fra la define e la prima use non si influenzano le prestazioni; Altrimenti, il compilatore inserisce fra la define e la prima use tante nop quanti sono i cicli necessari nel nostro caso, tre:

99 Conflitti define-use nella macchina MIPS Prima alternativa (è possibile effettuare uno spostamento di codice): sub $2, $1, $3 and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15,100($2) add $24,$20,$20 and $7, $8, $9 lw $16,100($18) sub $2, $1, $3 add $24, $20, $20 and $7, $8, $9 lw $16, 100($18) and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2) codice originale Codice Ri-schedulato

100 Conflitti define-use nella macchina MIPS Seconda alternativa (non sono possibili spostamenti di codice): sub $2, $1, $3 nop nop nop and $12, $2, $5 or $13, $6, $2 add $14, $2, $2 sw $15, 100($2)

101 Conflitti define-use nella macchina MIPS Tre nop = tre cicli non sfruttati unica attività dell istruzione nop: incremento del PC; Risultati corretti; Frequenza equivalente di esecuzione diminuita le nop non eseguono calcoli attivi! (Frequenza equivalente di esecuzione = rapporto fra il numero di istruzioni utili e il numero di cicli)

102 Conflitti define-use nella 2. Soluzioni hardware: macchina MIPS Prima alternativa: l equivalente hardware della imbottitura di NOP : si bloccano (stall) le istruzioni che seguono la define fino a che non si è risolto il conflitto (la dipendenza di dati diventa in avanti invece che all indietro ). Il blocco (stalling) della CPU per un ciclo è detto anche inserimento di una bolla

103 Conflitti define-use nella macchina MIPS 10 CC2 CC3 CC4 CC5 CC6 CC CC8-20 CC9-20 IM Reg ALU DM Reg IM bolla bolla bolla Reg ALU DM Reg IM Reg ALU DM Reg IM Reg ALU DM Reg IM Reg ALU DM Reg

104 Conflitti define-use nella macchina MIPS Stalli: necessari ogni volta che i k+h nello stadio ID tenta di leggere dal registro r α che compare come destinazione in una precedente istruzione i k non ancora completata: si verifica se: Nel buffer IF/ID è presente un comando di Lettura dal registro r α e In uno dei buffer ID/EXE, EXE/MEM, MEM/WB è presente un comando di Scrittura nel registro r α In genere ci sono due registri sorgente occorrono sei confronti

105 Conflitti define-use nella macchina MIPS Stalli (cont): verifica positiva l istruzione I k+h viene bloccata nello stadio ID finché l istruzione I k non ha completato il suo flusso. (In pratica: si bloccano i segnali di attivazione finché il conflitto non è stato risolto). Non sono necessarie azioni del compilatore; la perdita di throughput equivalente è identica a quella che si aveva inserendo le nop. Vantaggio: non aumenta l occupazione di memoria

106 Conflitti define-use nella macchina MIPS Seconda alternativa: si modifica il circuito del Data Path. Si noti che: 1. Gli operandi Sorgente in realtà devono essere dispobili agli ingressi dell ALU all inizio della fase EXE 2. L operando Destinazione è in realtà disponibile all uscita dell ALU al termine della fase EXE Si introduce la tecnica di data forwarding (o data bypassing), identificando le dipendenze non rispetto al R.F., ma rispetto ai buffer inter-stadio

107 Conflitti define-use use: : il flusso modificato dal forwarding MUX ALU MEM ID/EX Risultato dell ALU raccolto al termine dello stadio EXE EX/MEM Risultato dell ALU raccolto al termine dello stadio MEM Risultato della lettura in memoria MEM/WB

108 Conflitti Define-Use Se le dipendenze sono rispetto a dati che si trovano a sinistra non occorrono stalli! Non c è perdita di prestazioni; Si sono introdotti percorsi di bypass (all indietro) fra coppie di buffer inter-stadio (buffer destinazione: sempre un ingresso dell ALU)

109 Conflitti Load-Use Data la sequenza: lw $17, 200($19) add $12, $17, $18 Soluzioni software: come per i conflitti Define- Use; Soluzioni hardware: anche ricorrendo a forwarding, resta necessario l inserimento di una bolla (i dati sono disponibili solo al termine dello stadio MEM nuovi percorsi di bypass)

110 Conflitti e compilazione Sia data una sequenza che coinvolge dipendenze load-use (codice non ottimizzato a sinistra, ottimizzato a destra). Numero di stalli relativo alla soluzione senza (rispettivamente, con) forwarding lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) lw $15, 0($2) lw $16, 4($2) sw $15, 4($2) sw $16, 0($2) Tre (una) bolle Due (nessuna) bolle

111 Conflitti e compilazione Dipendenze di dati: dovrebbero essere considerate anche in relazione alla memoria (l indirizzo di una load potrebbe essere identico a quello di una precedente store); Il compilatore può risolvere solo parte di tali dipendenze es., inditrizzi di dati cui si accede mediante puntatori, indici di array calcolato a run time etc., non possono essere determinati al momento della compilazione; Architettura MIPS scalare: l accesso a memoria da parte della load segue il completamento di una store, non c è rischio di alea. Con architetture più sofisticate, si deve fornire opportuno controllo della memoria

112 Conflitti di controllo È data la sequenza: 40 beq $1, $3, and $12, $2, $5 48 or $13, $6, $2 52 add $14, $2, $ lw $4, 50($7) (L ultima istruzione è la destinazione del salto condizionato)

113 Conflitti di controllo Indirizzo effettivo della prossima istruzione da eseguire : disponibile al ciclo 4 (risultato del confronto e indirizzo destinazione sono disponibili al ciclo 3; se il salto va fatto - branch taken - il nuovo indirizzo viene trasferito nel PC al ciclo 4). Nel frattempo, si sono lette e avviate nella pipeline tre istruzioni successive alla beq

114 Conflitti di controllo CC1 CC2 CC3 CC4 CC5 CC6 CC7 CC8 CC9 beq IM Reg ALU DM Reg and IM Reg ALU DM Reg or IM Reg ALU DM Reg add IM Reg ALU DM Reg 72 lw IM Reg ALU DM Reg

115 Conflitti di controllo Si supponga che il risultato del confronto porti ad eseguire il salto (branch taken). Allora: 1. Ciclo 5: l istruzione all indirizzo 72 (lw) viene correttamente letta: 2. È necessario garantire che le tre istruzioni che seguono beq non vengano completate in particolare, non devono modificare lo stato della macchina

116 Conflitti di controllo Nota: aver letto e avviato in esecuzione le tre istruzioni garantisce CPI=1 se il salto non viene fatto! Il problema può essere visto come un ritardo nella determinazione della prossima istruzione ritardo che provoca una alea di controllo (Control hazard o branch hazard). Alee di controllo: statisticamente meno frequenti di quelle di dati, ma le soluzioni non sono altrettanto efficienti!

117 Conflitti di controllo Schemi di soluzione più semplici: 1. Stallo automatico: ogni volta che si decodifica un salto, la CPU va in stallo finché non si è risolta la condizione del salto. Penalizzazione inutile se non si fa il salto CPI aumenta più del necessario. L unità di controllo si comporta in modo diverso per un istruzione di controllo, generando stralli invece di continuare il flusso nella pipeline;

118 Conflitti di controllo Schemi di soluzione più semplici (cont.): 2. Branch hoisting: su CPU vecchie. L unità di controllo non tratta la branch in modo diverso dalle altre istruzioni la esegue e intanto avvia nella pipeline le istruzioni successive senza porsi problemi. Il compilatore derve spostare la branch tre istruzioni prima di quanto richiesto, e le tre istruzioni che la seguono vengono sempre eseguite. Quando queste sono completate, il risultato del salto condizionato è noto, il valore corretto del prossimo indirizzo è nel PC, non occorrono stalli. (La soluzione ovviamente può portare a inserire delle nop). Es.:

119 2. Branch hoisting: Conflitti di controllo Add $2,$1,$3 Or $4, $1, $5 Lw $6, 100($1) Bnz $10, 128 Bnz $10, 128 Add $2,$1,$3 Or $4, $1, $5 Lw $6, 100($1) Senza branch hoisting su bnz : occorrono degli stalli Si ricorre a hoisting su bnz : non occorrono stalli. Usata in calcolatori pipelined vecchi oggi abbandonata

120 Conflitti di controllo 3. Branch prediction: di gran lunga la tecnica più usata, ha molte soluzioni alternative: approccio più semplice: Si predice che il salto sia sempre effettuato (Branch taken): le istruzioni che seguono il salto sono lette e inviate alla pipeline; Se il salto deve essere fatto, si svuota la pipeline (flushing) e le istruzioni in essa vengono annullato. La predizione implica una speculazione sul risultato del confronto esecuzione speculativa

121 Esecuzione speculativa Probabilità di esecuzione sequenziale alta aumento delle prestazioni rispetto all inserimento di stalli vero, es., per cicli (se opportunamente compilati); Probabilità di esecuzione sequenziale prossima al 50% la speculazione non porta a sostanziale aumento delle prestazioni. Tecniche di speculazione più sofisticate si vedranno più avanti

122 Alee di controllo e architettura Aggiunta di risorse - es., introduzione di un addizionatore separato, associato allo stadio di Decodifica, per il calcolo dell indirizzo nel caso di salto incondizionato o di salto effettuato - permette di ridurre la penalità dei salti (nota: altrimenti una pipeline più profonda condurrebbe a penalità più elevata!);

123 Alee di controllo e architettura (2) Modifica dell ISA es., il salto condizionato viene spezzato nella sequenza: 1. Verifica della condizione e posizionamento di un flag (registro di un bit); 2. Salto condizionato dal valore del flag; se si sono precalcolati i due valori alternativi del PC nelle fasi IF e ID, al termine dello stadio di ID è già possibile indirizzare l istruzione corretta la penalità del salto si riduce a un ciclo (per la pipeline di cinque stadi)

124 Alee di controllo: una soluzione completamente diversa Microprocessore ARM: Un istruzione può posizionare un bit di codice di condizione L esecuzione di ogni istruzione è condizionale. Ogni istruzione contiene un campo che indica quali sono le condizioni in base a cui deve essere eseguita (se non vengono specificate, l istruzione è sempre eseguita). Se la condizione non è soddisfatta, l istruzione viene semplicemente convertita in una nop. Le condizioni fanno riferimento al condition register del microprocessore, i cui bit possono essere posizionati da istruzioni ALU. In pratica, una prima implementazione del concetto di predicazione

125 Alee di controllo: soluzione ARM Posizionamento del codice di condizione: es.: dato il costrutto C if (a+b) Codice generato per la condizione supponendo che il registro r0 contenga a e r1 contenga b: add r0, r0, r1 cmp r0, #0 Codice ottimizzato usando l istruzione adds che posiziona il codice di condizione : adds r0, r0, r

126 Alee di controllo: soluzione ARM Esempio di esecuzione condizionale: int foo (int a) { if (a>10) return 0; else return 1; }

127 Alee di controllo: soluzione ARM Traduzione ricorrendo a istruzioni di salto condizionato: cmp r0, #10 ble L1 mov r0, #0 b L2 L1: mov r0, #1 L2:

128 Alee di controllo: soluzione ARM Traduzione usando istruzioni eseguite in modo condizionale: cmp r0, #10 movgt r0, #0 movle r0, #1 L esecuzione condizionale non migliora sempre le prestazioni le istruzioni di ambedue i rami vengono sempre tutte lette e avviate attraverso la pipeline!

129 E le eccezioni? Architettura di Von Neumann: consente gestione delle eccezioni ( caso più semplice: interruzione di programma) molto semplice si associa l eccezione all unica istruzione che si sta eseguendo, il rientro dalla routine di gestione dell eccezione è garantito dal salvataggio del PC dell istruzione successiva. In una CPU pipelined ci sono molte istruzioni simultaneamente attive e altrettanti potenziali PC di ritorno!

130 Due problemi: La gestione delle eccezioni 1. Riconoscere l eccezione (= associarla con l istruzione giusta nella pipeline); 2. Salvare lo stato di macchina corretto (come minimo, il PC di ritorno corretto)

131 Possibili cause di eccezione 1. Condizioni che sorgono dall esecuzione dell istruzione (es., overflow nelle istruzioni aritmetica); 2. Interrupt esterni; 3. Chiamate a sistema operativo; 4. Page fault; 5. Uso di codici operativi non definiti; 6. Malfunzionamenti Hardware

132 Possibili cause di eccezione Non tutte le CPU sono progettate per supportare tutte le cause sopra citate; Alcune eccezioni vengono considerate solo nella fase di messa a punto (debug) di un applicazione; Le applicazioni dedicate possono fare riferimento a un sottoinsieme limitato di eccezioni

133 Possibili cause di eccezione 1. Esecuzione di un istruzione: il programma di gestione dell eccezione deve essere in grado di identificare le condizioni che hanno condotto all eccezione. L utente può voler conoscere il risultato (cioè, il contenuto del registro destinazione) dell istruzione che ha provocato eccezione. L eccezione viene sollevata nel corso dello stadio EXE; PC salvato = PC dell istruzione successiva (= PC nel buffer ID/EXE) occorre trasferire il valore nel PC da buffer a buffer!

134 Possibili cause di eccezione 2. Interrupt esterno (I/O): non esiste a-priori una specifica fase di un istruzione associata a un interrupt convenzionalmente, l interrupt può essere associato all istruzione nella fase di WB (nelle CPU non pipelined, il segnale di interrupt viene campionato al termine del WB). Lo stesso vale per eccezione dovuta a identificazione di guasto hardware

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

Problemi del ciclo singolo

Problemi del ciclo singolo Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione

Dettagli

Cicli di clock e istruzioni

Cicli di clock e istruzioni Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Esercitazione su Instruction Level Parallelism

Esercitazione su Instruction Level Parallelism Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

Dettagli

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Esercitazione su Instruction Level Parallelism Salvatore Orlando Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello:

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello: ESERIZIO 1 Sia dato il seguente ciclo di un programma in linguaggio ad alto livello: do { BASE[i] = BASEA[i] + BASEB[i] + IN1 + IN2; i++; } while (i!= N) Il programma sia stato compilato nel seguente codice

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

CPU pipeline hazards

CPU pipeline hazards Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!

Dettagli

Il processore Pentium

Il processore Pentium Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Pipeline Problemi 1. Pipeline Problemi 2

Pipeline Problemi 1. Pipeline Problemi 2 Problemi 1 Vari fenomeni pregiudicano il raggiungimento del massimo di parallelismo teorico (stallo) Sbilanciamento delle fasi Durata diversa per fase e per istruzione Problemi strutturali La sovrapposizione

Dettagli

L insieme delle istruzioni (6)

L insieme delle istruzioni (6) L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

Dettagli

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

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 Principi di architetture dei calcolatori: l architettura ARM. Mariagiovanna Sami Che cosa è ARM In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline

Dettagli

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect) Ciclo esecutivo delle istruzioni: Fetch/Execute Lo avete visto nel corso di Introduzione alle Architetture degli Elaboratori Stallings, Capitolo 3 Ne vediamo una versione revisionata Indirettezza Per recuperare

Dettagli

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining

ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining ARCHITETTURE AVANZATE DEI CALCOLATORI, A.A. 2007/08 Soluzione esercizi sul pipelining Esercizio 1) N.B. Nei diagrammi a cicli multipli non sono indicati i registri di pipeline (per semplicità) a) Si tratta

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Architettura dei Calcolatori elettronici

Architettura dei Calcolatori elettronici Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore

Dettagli

Come aumentare le prestazioni Cenni alle architetture avanzate

Come aumentare le prestazioni Cenni alle architetture avanzate Politecnico di Milano Come aumentare le prestazioni Cenni alle architetture avanzate Mariagiovanna Sami Richiamo: CPI CPI = (cicli di clock della CPU richiesti dall esecuzione di un programma)/ numero

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 1/8 Sommario! I problemi

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

Instruction Level Parallelism Salvatore Orlando

Instruction Level Parallelism Salvatore Orlando Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

Instruction Level Parallelism

Instruction Level Parallelism Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti Compito Num. 1 COGNOME:...NOME:... 1) (20%) Si vuole realizzare una CPU

Dettagli

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

ISA e linguaggio macchina

ISA e linguaggio macchina ISA e linguaggio macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/55

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App. Assembly Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A 1 Linguaggio assembly (App. A) Rappresentazione simbolica del linguaggio macchina Più comprensibile

Dettagli

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Fasi (MIPS) Fasi senza pipeline: IF (istruction fetch): IR Mem[PC] ; NPC PC + 4 ; Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Lezione Architettura degli

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,

Dettagli

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

Controllo a ciclo singolo

Controllo a ciclo singolo Controllo a ciclo singolo Il controllo della CPU a singolo ciclo è combinatorio Il datapath è invece un circuito sequenziale i suoi output dipendono anche dal valore dei registri es. Zero, oppure l indirizzo

Dettagli

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Trend di sviluppo delle pipeline

Trend di sviluppo delle pipeline Trend di sviluppo delle pipeline Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@.unimi.it Università degli Studi di Milano Patterson 4.10, 4.11 1/36 Sommario Superpipeline

Dettagli

Prestazioni 1. Prestazioni 2. Prestazioni 3

Prestazioni 1. Prestazioni 2. Prestazioni 3 Valutazione delle Prestazioni Architetture dei Calcolatori Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo

Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Calcolatori Elettronici I Istruzioni macchina ing. Alessandro Cilardo Corso di Laurea in Ingegneria Biomedica Istruzioni del processore Abbiamo visto in precedenza alcuni esempi di istruzioni

Dettagli

Esercitazione del 12/05/ Soluzioni

Esercitazione del 12/05/ Soluzioni Esercitazione del 12/05/2005 - Soluzioni Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione poi, alcuni stadi della CPU rimangono inutilizzate

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L /9 Sommario! I problemi

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci Valutazione delle Prestazioni q Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Calcolatori Elettronici Prof. Gian Luca Marcialis. Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina

Calcolatori Elettronici Prof. Gian Luca Marcialis. Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina Calcolatori Elettronici Prof. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina Fonti Principali: Stallings, W., "Architettura

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET: Università degli Studi di Milano Corso Architettura degli elaboratori e delle reti Prof. Cristina Silvano A.A. 2004/2005 Esame scritto del 15 luglio 2005 Cognome: Matricola: Nome: Istruzioni Scrivere solo

Dettagli

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo Prof. Carlo Rossi DEIS - Università di Bologna Tel: 051 2093020 email: crossi@deis.unibo.it Classificazione Processori

Dettagli

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 016/017 Sommario Funzionamento del

Dettagli

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del 24.02.2016 Cognome e nome: Matricola: 1. [7] Data la CPU N. 1, specificare il contenuto di tutte le linee (dati e controllo).

Dettagli

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Scopo della lezione Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Little endian e big endian Indirizzamento logico e fisico Comprendere la struttura del micro Von Neumann architecture

Dettagli

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

Dettagli

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

HARDWARE 1.4a: (Processore)

HARDWARE 1.4a: (Processore) HARDWARE 1.4a: (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Sciuto, Buonanno, Mari, Introduzione ai sistemi informatici, Mc Graw Hill Questi lucidi

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

Dettagli

Implementazione semplificata

Implementazione semplificata Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento

Dettagli

Ciclo del Processore. Memoria

Ciclo del Processore. Memoria Ciclo del Nella figura seguente è riportata la rappresentazione semplificata ed essenziale di un computer. RESET Canali Di Ingresso Uscita Uscita Ingressi Fig. 1 Rappresentazione semplificata di un computer

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Prefazione Unit`a di misura xiii La memoria cache

Prefazione Unit`a di misura xiii La memoria cache Indice Prefazione Unità di misura xi xiii 1 La memoria cache 1 1.1 Tempo di accesso........................... 1 1.1.1 Funzionamento........................ 2 1.2 Organizzazione............................

Dettagli

Pipeline nel Mondo Reale

Pipeline nel Mondo Reale Pipeline nel Mondo Reale Luca Abeni May 26, 2016 Pipeline Ideali... Abbiamo visto come fare il bucato eseguire un istruzione macchina usando un pipeline... Pipeline a 5 stadi: Fetch Decode Exec Memory

Dettagli