INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE"

Transcript

1 1 INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE TIPI DI PARALLELISMO E CLASSIFICAZIONE DI FLYNN PIPELINING DELLE ISTRUZIONI I PROCESSORI SUPERSCALARI I PROCESSORI VLIW MULTITHREADING, CHIP MULTI PROCESSOR (CMP) E MASSIVELY PARALLEL PROCESSOR (MPP) ESEMPI DI MPP

2 2 TIPI DI PARALLELISMO E CLASSIFICAZIONE DI FLYNN

3 MOTIVAZIONI 3 E opinione diffusa che il trend che negli ultimi anni ha portato alla crescita delle frequenze di funzionamento per le tecnologie CMOS prima o poi dovrà arrestarsi al raggiungimento dei limiti fisici di tale tecnologia, di conseguenza al fine di continuare la minimizzazione dei tempi di esecuzione di un codice su un processore si dovranno cercare di percorrere altre strade. Una paradigma progettuale volto a questo scopo è quello che cerca di adattare l architettura del processore alle esigenze di parallelismo che l applicazione presenta, al fine di poter minimizzare il tempo di esecuzione totale svolgendo più task contemporaneamente.

4 OLTRE L ERA DEI CMOS 4 X-AXIS => More than Moore: si cercano nuove possibili strade anche in termini di materiali alternativi al silicio per poter ottenere performance sempre maggiori. Y-AXIS => More Moore: si continua a seguire la legge di Moore secondo la quale il riscalamento delle tecnologie è tale che ogni due anni raddoppia il numero di gate integrabili su singolo chip.

5 TIPI DI PARALLELISMO 5 PARALLELISMO A LIVELLO DI ISTRUZIONE: throughput elevato, bassa scalabilità A LIVELLO DI DATI: application specific A LIVELLO DI THREAD: sincronizzazione, risoluzione delle interdipendenze

6 TIPI DI PARALLELISMO: ILP 6 Il più comune tipo di parallelismo è il PARALLELISMO A LIVELLO DI ISTRUZIONE (ILP: Instruction Level Parallelism). L ILP prevede l esecuzione parallela di due o più istruzioni vicine nel codice sequenziale da eseguire. Tali istruzioni vengono eseguite in unità funzionali separate, omogenee (se eseguono istruzioni dello stesso tipo) o eterogenee (se eseguono istruzioni di tipo differente). E sfruttabile sia da microprocessori general purpose che application specific. Sfruttare il parallelismo a livello di istruzione garantisce al sistema un throughput più elevato ma non è molto scalabile: limitazioni dovute a problemi strutturali (e.g. accesso in memoria e relativi hazard strutturali); limitazioni dovute alla limitata parallelizzazione intrinseca del codice (e.g. hazard sui dati e di controllo).

7 TIPI DI PARALLELISMO: DLP 7 Il PARALLELISMO A LIVELLO DI DATI (DLP: Data Level Parallelism) prevede l esecuzione parallela di una medesima istruzione in contemporanea su più di un dato. E immediata la considerazione che un codice capace di sfruttare un tale tipo di parallelismo è ben lungi dall essere un codice di tipo generico. Applicazioni che si prestano intrinsecamente allo sfruttamento del DLP sono quelle che hanno a che fare col calcolo vettoriale (e.g. prodotti scalare per vettore) o col processing di segnali audio-video (dove la medesima operazione viene eseguita su uno stream di dati)

8 TIPI DI PARALLELISMO: TLP (1) 8 Il PARALLELISMO A LIVELLO DI THREAD (TLP: Thread Level Parallelism) prevede l esecuzione contemporanea di diversi blocchi di istruzioni, definiti appunto thread. Da non confondersi con il concetto di sistema multi-threaded tipico dei sistemi operativi, che prevede la gestione ed esecuzione di un codice su una unica CPU, sulla quale però i thread non vengono eseguiti contemporaneamente ma alternativamente attraverso strategie di scheduling a divisione di tempo. In questo contesto il TLP è inteso invece come esecuzione dei thread contemporanea su unità di esecuzione differenti.

9 TIPI DI PARALLELISMO: TLP (2) 9 Problemi tipici legati allo sfruttamento del TLP sono la sincronizzazione fra thread e la risoluzione delle interdipendenze tra di essi. Il thread A potrebbe necessitare di un dato non ancora disponibile perché risultato dell esecuzione del thread B non ancora iniziato (problema di interdipendenza) oppure il thread A potrebbe dover modificare dato con una frequenza più elevata rispetto a quella dei thread B C e D che condividono tale dato con A (problema di sincronizzazione).

10 LA CLASSIFICAZIONE DI FLYNN 10 Nel 1966 Michael J. Flynn propose una classificazione dei sistemi di calcolo basata sulla possibilità di gestire contemporaneamente diversi flussi di istruzioni e sulla possibilità di far lavorare contemporaneamente ciascuna istruzione su dati differenti. CLASSIFICAZIONE SINGLE INSTRUCTION SINGLE DATA (SISD) SINGLE INSTRUCTION MULTIPLE DATA (SIMD) MULTIPLE INSTRUCTION SINGLE DATA (MISD) MULTIPLE INSTRUCTION MULTIPLE DATA (MIMD)

11 SISD 11 Le macchine di questo tipo non sfruttano alcuna forma di parallelismo e rientrano nel paradigma classico di esecuzione sequenziale delle istruzioni, ove ogni istruzione è caricata dalla memoria, decodificata, ed eseguita sui soli dati componenti il proprio set di operandi. Il processore MIPS nella versione sequenziale nonpipelined è un esempio di calcolatore SISD.

12 SIMD 12 Calcolatori di questo tipo sono in grado di eseguire la medesima istruzione su un intero set o vettore di dati. Ovviamente il tipo di parallelismo che viene supportato è il DLP. L unità di controllo è tipicamente centralizzata al fine di avere N unità sincronizzate operanti in parallelo su N dati ma rispondenti ad una unica istruzione memorizzata nel PC. L approccio funzionale, relativamente al singolo flusso, è simile all approccio usato nelle macchine SISD in quanto ogni unità funzionale ha i propri registri di indirizzamento dedicati per poter accedere a dati diversi ed essere in grado di gestirli.

13 MIMD (1) 13 I calcolatori annoverabili in questa categoria sono composti da diverse unità computazionali, le quali possono eseguire flussi di elaborazione diversi su set di dati diversi. Le varie unità computazionali possono essere dello stesso tipo (MIMD omogenei) o di tipo diverso (MIMD eterogenei). La caratteristica principale di questo tipo di calcolatori è che sono pensati per essere scalabili: l hardware è progettato per essere venduto con un numero di processori variabile e la scalabilità del software è tale da permettere ad un calcolatore MIMD di funzionare anche se il processore i-esimo di N disponibili smette di farlo.

14 MIMD (2) 14 Calcolatori di questo tipo ben si prestano a sfruttare al meglio il TLP avendo a disposizione più unità computazionali sulle quali eseguire in parallelo del codice, ma ogni unità computazionale poi può a sua volta sfruttare gli altri tipi di parallelismo per cercare di migliorare ulteriormente le sue prestazioni intrinseche. I problemi tipici di questo tipo di architetture sono legati alla condivisione dei dati (scelta fra memoria condivisa o memoria distribuita) e al coordinamento fra i diversi processori. E chiaro che sfruttare il TLP implica anche un overhead di comunicazione e il dover scegliere opportunamente fra le infrastrutture di comunicazione esistenti in letteratura (bus o network on chip).

15 RIASSUMENDO 15

16 16 PIPELINING DELLE ISTRUZIONI

17 TEMPO MEDIO PER ISTRUZIONE (TMI) 17 Il tempo medio per istruzione (TMI) rappresenta l intervallo di tempo medio necessario per l esecuzione di una singola istruzione, ed è calcolabile come: TMI = CPI CC dove: CPI è il Clock Per Instruction: ovvero il numero medio di cicli di clock necessari per eseguire un istruzione CC è il Clock Cycle: ovvero la durata di un colpo di clock

18 TMI E VALUTAZIONE DELLE PRESTAZIONI 18 Nella seguente tabella è riportata una stima dei fattori che condizionano il TMI per diverse architetture Microarchitettura a singolo ciclo Microarchitettura Multiciclo (5 cicli per istruzione) Micoarchitettura Pipelined CPI=1 CC elevato CPI=5 CC migliore CPI 1 CC precedente CPI è ottimo ma CC è condizionato dall esecuzione della istruzione più lenta (LOAD) CPI è condizionato dal numero di fasi in cui viene scomposta l esecuzione dell istruzione ma il CC è migliore perché condizionato dall esecuzione della fase più lenta (nel caso migliore 1/5 del precedente) CPI 1 perché si tende ad avere un throughput di quasi una istruzione per colpo di clock e il CC come nel caso precedente è condizionato dall esecuzione della fase più lenta

19 PIPELINING DELLE ISTRUZIONI 19 In una microarchitettura di tipo pipelined le unità funzionali di base, necessarie all esecuzione di una istruzione macchina, vengono organizzate in stadi i quali sono utilizzati in sequenza al fine di completare una singola esecuzione. Ogni istruzione ha una latenza di completamento pari al numero di stadi che deve attraversare per essere terminata ma un throughput nel caso migliore tendente all unità. Le architetture pipelined si pongono l obiettivo di migliorare le prestazioni del processore sfruttando l intrinseco parallelismo presente in un flusso di istruzioni sequenziale, favorendo l overlapping dell esecuzione di istruzioni differenti a patto che non siano interdipendenti e/o vogliano sfruttare le stesse unità funzionali.

20 IL CICLO DI ESECUZIONE DELLE ISTRUZIONI NELLE ARCHITETTURE SEQUENZIALI 20 Nella microarchitettura sequenziale del MIPS in generale l esecuzione delle istruzioni è divisibile in 5 fasi: FETCH-DECODE-EXECUTE-MEMORY-WRITE BACK Le istruzioni di salto condizionato sono quelle a latenza inferiore (3 colpi di clock) infatti terminano nella fase di EXECUTE, quelle di store necessitano di 4 colpi di clock mentre quelle di load e le istruzioni di tipo logico-aritmetico necessitano di attraversare tutte le 5 fasi.

21 MICROARCHITETTURA NON-PIPELINED - LATENZA 21 Supponiamo di avere una microarchitettura con le seguenti caratteristiche: ISTRUZ. FE. DEC. EXE. MEM. W.B. Load 20 ps 5 ps 10 ps 20 ps 5 ps Store 20 ps 5 ps 10 ps 20 ps -- Salto 20 ps 5 ps 10 ps Aritmetico - Logica 20 ps 5 ps 10 ps -- 5 ps E il seguente codice assembly: lw $1,100($0) lw $2,104($0) add $3,$2,$1 sw $3,200($0) Latenza Effettiva: (2* ) ps = 215 ps

22 MICROARCHITETTURA PIPELINED LATENZA (1) 22 In una microarchitettura di tipo pipelined, dove gli stadi di pipe corrispondono esattamente alle fasi di esecuzione di una istruzione, il flusso di esecuzione del precedente codice assembly sarebbe il seguente:

23 MICROARCHITETTURA PIPELINED LATENZA (2) 23 La durata del colpo di clock in una microarchitettura pipelined corrisponde più o meno alla latenza più lunga fra le fasi di esecuzione di una istruzione, in quanto è condizionato dalla sezione di datapath più critica. Il codice assembly visto in precedenza viene processato in 8*20ps=160ps; contro i 215ps calcolati nel caso non-pipelined. E importante sottolineare che il miglioramento delle prestazioni di un processore ottenibile tramite il pipelining delle istruzioni comporta semplicemente modifiche architetturali, ma è totalmente trasparente al programmatore.

24 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (1) 24 La pipeline non aiuta a migliorare la latency intrinseca della singola istruzione, che rimane di 5 colpi di clock come nelle microarchitetture sequenziali, ma il throughput. Quest ultimo risulta essere limitato dal tempo di esecuzione della fase più lenta (il clock non è sceso sotto i 20 ps).

25 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (2) 25 Sebbene l incremento potenziale delle prestazioni della microarchitettura corrisponda al numero di stadi di pipelining introdotti, il valore di latenza ottenuto non è pari a 215ps/5=43 ps. Per capirne la ragione bisogna considerare il tempo necessario a riempire e svuotare la pipe (in questo esempio solo per 2 colpi di clock su 8 la pipe risulta essere a regime) ed inoltre il fatto che solo nel caso in cui gli stadi di pipeline fossero identici l incremento sarebbe esattamente: TimePerInstructionNonPipelined SpeedUp = NumberOfStages

26 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (3) 26 In aggiunta a questi limiti c è da considerare anche che le prestazioni delle architetture pipelined possono essere drasticamente ridotte a causa del manifestarsi di hazards ed eccezioni. L effetto degli hazards è quello di interdire l esecuzione della prossima istruzione prevista dalla sequenza nello slot assegnatogli. Conseguenza è che la pipeline viene stallata, per un numero di colpi di clock tale da risolvere la condizione critica che ha ingenerato l hazard e questo ovviamente peggiora le prestazioni teoriche ottenibili. 1 SpeedUp = PipeDepth 1 + PipeStallCyclesPerInstructions

27 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (4) 27 Tipi di hazards: Hazard Strutturali: si verificano a causa di conflitti per l accesso alla medesima unità funzionale, se l unità funzionale in questione non è in grado di soddisfare la combinazione di istruzioni corrente; Hazard legati ai Dati: l istruzione corrente dipende dal risultato della precedente non ancora conclusa; Hazard legati al Controllo: generati dalla parallelizzazione di codice contenente salti, condizionati o meno.

28 HAZARD STRUTTURALI 28 Supponiamo che due differenti istruzioni richiedano nello stesso momento l accesso ad una stessa risorsa, le possibili soluzioni sono due: Il compilatore potrebbe preventivamente occuparsi di spostare le due istruzioni ad una distanza tale l una dall altra che non si crei conflitto (non sempre percorribile perché si potrebbe dover modificare l intero flusso); Resource Splitting e/o Resource Replication (eg. Un processore potrebbe disporre di un register file a una sola porta di scrittura, ma ci sono situazioni che richiedono due scritture simultanee e se la porta di scrittura non viene duplicata si creerebbe un hazard strutturale).

29 HAZARD LEGATI AI DATI 29 Esempio: add $1,$2,$3; sub $4,$1,$5; and $6,$1,$7; or $8,$1,$9; xor $10,$1,$11; Tutte le istruzioni dopo la add utilizzano come operando il suo risultato, che verrà memorizzato in $1 nello stadio di pipeline equivalente alla fase di WRITE BACK. Gli operandi però vengono caricati nel register file nella fase di DECODE e quindi a meno di precauzioni in tal senso la sub e la and avranno accesso ad un valore non ancora aggiornato. La soluzione delle dipendenze a livello di dato è diversa a seconda che si abbia a che fare con false dipendenze (e.g. WaW il compilatore si occupa semplicemente di fare il Renaming dei registri) o vere dipendenze (e.g. RaW, la soluzione va trovata sia a livello hw, per esempio si usa il data forwarding, che a livello di compilazione tramite il re-ordering delle istruzioni).

30 HAZARD LEGATI AL CONTROLLO 30 Gli hazard relativi al controllo possono dipendere sia dai salti condizionati che da quelli incondizionati. Nel caso incondizionato a parte soluzioni hw basate sull anticipo del calcolo dell indirizzo di destinazione non si può far molto. Per quelli condizionati anticipando via hw il calcolo dell indirizzo e il test di salto si possono ridurre da 3 a 1 le bubble da inserire e in più si possono anche utilizzare tecniche di Branch Prediction. Sempre a livello di compilazione esiste anche un altra tecnica, denominata Branch Hoisting, secondo la quale il compilatore sposta ove possibile l istruzione di salto tre istruzioni più in alto.

31 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (1) 31 Nel caso del MIPS le 5 fasi di esecuzione delle istruzioni rispecchiano a pieno la struttura interna del datapath.

32 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (2) 32 Di conseguenza il passaggio alla microarchitettura pipelined è immediato

33 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (3) 33 Il datapath delle due precedenti microarchitetture è praticamente lo stesso e questo rende chiaro il motivo per cui il percorso critico, e di conseguenza la durata del ciclo di clock, nel caso multiciclo sequenziale e in quello pipelined sia pressoché lo stesso. Evidentemente se CC non è cambiato la velocità di accesso alla memoria nel caso pipelined deve essere proporzionalmente incrementata. Il register file viene utilizzato sia nello stadio di DECODE che nello stadio di WRITE BACK, nel caso peggiore nello stesso colpo di clock potrebbero essere effettuate due letture e una scrittura. Per evitare conflitti a livello di dati, il register file è progettato in modo da gestire la scrittura nella prima metà del ciclo di clock e la lettura nella seconda metà. I valori passati da uno stadio di pipe al successivo vengono memorizzati in registri temporanei, noti come pipeline registers, posti fra uno stadio e l altro.

34 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (4) 34 Dal punto di vista del controllo le modifiche da fare sono diverse, infatti nel caso pipelined non si ha a che fare con una semplice macchina a stati classica. I bit di controllo vengono generati una volta per tutte in funzione dell opcode durante la fase di DECODE e poi vengono propagati, colpo di clock per colpo di clock, da uno stadio di pipe al successivo attraverso i pipeline registers. Ogni stadio di pipe per controllare le proprie unità funzionali sfrutta parte dei bit di controllo e propaga gli altri senza alterarli.

35 35 I PROCESSORI SUPERSCALARI

36 PREMESSA 36 Nelle architetture scalari e pipelined date diverse classi di istruzioni (e.g. accesso alla memoria, operazioni aritmetico/logiche in virgola fissa, operazioni aritmetiche in virgola mobile) è possibile distinguere diversi flussi di operazioni. Da qui l evoluzione di queste architetture verso CPU in cui a ogni flusso corrisponde una diversa pipeline, a valle della lettura e decodifica delle istruzioni.

37 REQUISITI 37 In tali architetture è possibile l implementazione del ILP, a patto di: poter effettuare la lettura di più istruzioni simultaneamente, se possibile, con predizione delle istruzioni di salto condizionato per effettuare letture oltre l istruzione di salto; poter decodificare più istruzioni simultaneamente disponendo di un di controllo in grado di verificare che non esistano dipendenze sia fra le istruzioni lette che fra loro e quelle in esecuzione sulle varie pipeline; avere dei metodi che consentono di lanciare (issuing) più istruzioni in parallelo e più unità funzionali di tipo pipelined e gerarchie di memoria capaci di rispondere contemporaneamente a più riferimenti; avere a disposizione dei metodi per comunicare valori di dati mediante istruzioni load e store e interfacce di memoria che consentano di gestire prestazioni a volte imprevedibili delle gerarchie di memoria disporre di un eventuale logica di riordino delle istruzioni (commitment in ordine delle istruzioni) nel caso di flussi a latenza differente (e quindi pipeline di lunghezza diversa) per preservare la semantica originale del codice.

38 CARATTERISTICHE (1) 38 La caratteristica fondamentale delle architetture superscalari è che l identificazione del potenziale parallelismo e la conseguente gestione dell esecuzione delle istruzioni in parallelo non viene compiuta a tempo di compilazione (come invece avviene per i processori VLIW) ma dinamicamente a tempo di esecuzione dall unità di controllo. Esattamente come nel caso delle architetture pipelined l implementazione dell ILP in queste architetture è completamente trasparente al programmatore.

39 CARATTERISTICHE (2) 39 Le prestazioni delle architetture superscalari sono fortemente dipendenti dal compilatore: nonostante la gestione dinamica del parallelismo il compilatore ha il compito di ristrutturare il codice (riordino delle istruzioni e register renaming) per sfruttare al meglio il parallelismo intrinseco del programma, in quanto più unità funzionali debbono essere in grado di operare in parallelo. In aggiunta è necessario disporre di una banda di memoria adeguata per istruzioni e dati per poter consentire l esecuzione del programma alla velocità richiesta.

40 CONCETTO GENERALE 40 Il codice oggetto è statico, la sequenza di istruzioni eseguite invece rappresenta il flusso dinamico. Se le istruzioni, come avviene per i superscalari sono prelevate in ordine dalla memoria vien da se che l esecuzione parallela è semplicemente responsabilità del controllo. CPI inferiore all unità idealmente, se n è il numero di istruzioni che possono essere simultaneamente lette, decodificate ed eseguite, si raggiunge CPI =1/n; La banda della cache (= numero di istruzioni trasferite da cache a CPU in una sola operazione di lettura) deve essere n.

41 GESTIONE HAZARD 41 Gli hazard diventano penalizzanti in questo tipo di architettura, soprattutto quelli di controllo (meno risolvibili lato compilazione). Tecniche speculative sono largamente in uso in architetture di questo tipo: quando si incontra salto si effettua predizione sul risultato del salto e si legge in modo speculativo l istruzione che si prevede sarà eseguita dopo e di conseguenza un nuovo blocco di istruzioni entra a fare parte della finestra di esecuzione. Se la predizione era corretta toglierò etichetta di speculazione alle istruzioni lette e potrò aggiornare lo stato della macchina, se invece era sbagliata devo tornare indietro garantendo che lo stato non sia modificato erroneamente. Le istruzioni della finestra di esecuzione sono analizzate per scoprire le dipendenze sui dati prima di iniziare la loro esecuzione.

42 SCHEDULE DI ESECUZIONE PARALLELA (1) 42 Risolte le dipendenze vere e artificiali, le istruzioni sono avviate all esecuzione in parallelo. L unità di controllo crea uno schedule di esecuzione parallela che garantisce il soddisfacimento dei vincoli di dipendenza e disponibilità di risorse hardware. Le istruzioni possono terminare in ordine diverso dal programma: causa parallelismo e/o diversa latenza delle varie unità funzionali non posso aggiornare subito il register file e la memoria al termine di una istruzione mantengo in memoria temporanea i risultati (accessibile da eventuali istruzioni dipendenti) fino alla fase di committing o retiring dell istruzione.

43 SCHEDULE DI ESECUZIONE PARALLELA (2) 43 Il fetch include la predizione dei salti e crea il flusso di istruzioni dinamiche. Le istruzioni vengono esaminate per identificare se sia possibile rimuovere le dipendenze artificiali fra i dati (per es con renaming registri) e avviate alla finestra di esecuzione. Nella finestra l ordine non è più sequenziale, ma legato alle dipendenze vere e alle risorse hardware disponibili. Dopo l esecuzione è come se le istruzioni venissero logicamente riordinate mano a mano che possono essere committed e i loro risultati usati per aggiornare lo stato del processore

44 ARCHITETTURE SUPERSCALARI (2) 44 Vengono aggiunti da 4 a 7 bit a ogni istruzione RISC (e.g. la classe di istruzione, le risorse richieste, il pre-calcolo dell indirizzo obiettivo del salto ) FINESTRA DI ESECUZIONE (ISSUE WINDOW) load/store => 5 stadi aritmetico/logiche in virgola fissa => 3 stadi aritmetiche in virgola mobile => 8 stadi

45 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (1) LETTURA ISTRUZIONI La predecodica sposta parte del compito di decodifica nella fase di caricamento dalla RAM (o dalla cache di secondo livello) alla I-cache; si distinguono alcune istruzioni o classi di istruzioni per adottare tecniche di speculazione intelligente per i salti. La cache istruzioni è una memoria piccola e veloce che contiene le istruzioni più recenti. Ad ogni ciclo un numero di istruzioni pari, nel caso migliore, a quelle eseguibili in parallelo vengono lette contemporaneamente. Alcune architetture superscalari hanno a disposizione anche dell hardware dedicato per il branch prediction per consentire la predizione dell esito dei salti condizionali ed effettuare letture oltre l istruzione di salto. Nel buffer istruzioni si registra un certo numero di istruzioni lette; utilizzando questa riserva la CPU può continuare il proprio lavoro anche quando la lettura delle istruzioni è bloccata (ad esempio, per un trasferimento da cache) o limitata. 45

46 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (2) 46 DECODIFICA ISTRUZIONI Durante la decodifica vengono identificate le vere dipendenze (RAW) e risolte le false (WAW e WAR). La issue window si occupa del dispatching ( distribuzione ) delle istruzioni verso le unità funzionali opportune. Se presenti, le reservation station (stazioni di prenotazione) sono dei buffer che hanno il compito di conservare operandi e operazione fino a che l unità funzionale non è in grado di eseguirla. Questi buffer che servono a disaccoppiare la fase di issue e il controllo delle vere dipendenze. In assenza di reservation station ad ogni ciclo, le istruzioni nella issue window (che contiene le istruzioni lette e decodificate ma non ancora lanciate in esecuzione) vengono controllate riguardo alle dipendenze rispetto a tutte le istruzioni nella finestra di esecuzione nonché entro la finestra di issue stessa. Se sono presenti le reservation station invece nessun controllo viene effettuato e le istruzioni decodificate vengono inviate alle reservation station.

47 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (3) 47 DECODIFICA ISTRUZIONI (cont.) L unità di smistamento invia ciascuna istruzione, con gli operandi, alla reservation station opportuna e inserisce un riferimento a tale istruzione nel re-order buffer interno alla re-order and commit unit. Una istruzione non può essere considerata se non c è spazio sia nella reservation station, sia nel re-order buffer Lo spazio per mantenere i risultati si esaurisce rapidamente: i processori hanno registri interni replicati (rename buffers) usati per memorizzare i risultati in attesa che l unità di consegna dia il permesso per scrivere i registri effettivi; i registri replicati, assegnati dall unità di decodifica, riducono la criticità sui registri

48 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (4) 48 ESECUZIONE ISTRUZIONI Quando una unità funzionale è pronta a ricevere una nuova istruzione la reservation station associata viene controllata al fine di trovare una istruzione eleggibile per l esecuzione. Se ce ne fossero più di una disponibile si ricorre a politiche di dispatching per selezionarne una e inviarla in esecuzione. L esecuzione delle istruzioni ha inizio in parallelo in base alla disponibilità dei dati e non dell ordine delle istruzioni (out of order execution).

49 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (5) 49 COMMITMENT Una volta completate le istruzioni, i risultati vengono scritti nella commit unit, in modo tale che le istruzioni vengano logicamente riordinate cosicché lo stato della CPU sia aggiornato (committment phase) in base all ordine corretto delle istruzioni e dall esterno si abbia sempre la sensazione di un esecuzione in ordine. Il fatto che le istruzioni possono terminare in ordine diverso rispetto a come sarebbero terminate su un processore scalare o pipelined, a causa del re-ordering iniziale delle istruzioni operato dal compilatore e/o a causa della diversa latenza delle varie pipeline poste in parallelo, comporta la non aggiornabilità immediata del register file e della memoria. Necessità di una memoria temporanea per i risultati dell istruzione corrente (accessibile da eventuali istruzioni dipendenti) fino alla fase di commitment.

50 CRITICITA 50 Un problema grosso per architetture di questo tipo è quello di identificare (e ritrovare) uno stato preciso del processore. Soluzioni: salvo lo stato della macchina in particolari punti di controllo (checkpoints) in un history buffer, aggiornato durante l esecuzione delle istruzioni. Quando un istruzione viene finalizzata si cancella la storia che non è più necessaria. separo lo stato fisico da quello logico; lo stato fisico si aggiorna non appena l operazione viene completata, quello logico viene aggiornato solo in ordine sequenziale, mano a mano che le varie speculazioni hanno raggiunto la loro verifica. Si usa il re-order buffer; per finalizzare un istruzione, il suo risultato viene tolto dal reorder buffer e portato nel registro destinazione, liberando spazio nel re-order buffer

51 LIMITAZIONI 51 Più le pipeline dedicate sono profonde e sbilanciate in termini di latenza le une rispetto alle altre più critico è il compito del compilatore e maggiori sono le esigenze di memorizzazione pre-committment dei risultati delle istruzioni, relativamente alle pipeline a latenza inferiore. Le prestazioni delle architetture superscalari così come quelle pipelined aumentano il throughput di picco di un processore ma sono comunque limitate da dipendenze a livello di dati e salti condizionati esattamente come nel caso delle architetture scalari, vista la necessità per il processore di dovere attendere per dipendenze non risolte o un salto non previsto correttamente.

52 52 I PROCESSORI VLIW

53 VLIW 53 VLIW sta per Very Long Instruction Word. Anche i processori VLIW sfruttano il parallelismo a livello di istruzione ma, a differenza dei processori superscalari, sono dotati di CPU a scheduling statico: le istruzioni eseguibili simultaneamente (in parallelo) sono identificate dal compilatore e assemblate in pacchetti (istruzioni lunghe o bundle) che poi sono letti, decodificati ed eseguiti dalla CPU. Il vantaggio che questo tipo di approccio introduce risiede nella considerazione che nei processori superscalari l unità controllo occupa il 30-35% dello spazio della CPU; quindi affidare al compilatore il compito di ottimizzare lo scheduling delle istruzioni, aiuta a ridurre la complessità dell unità di controllo e libera conseguentemente area sul chip.

54 LE ISTRUZIONI (1) 54 L istruzione lunga viene indicata come bundle ed è proporzionale, in lunghezza, al numero di unità funzionali in grado di eseguire le operazioni in parallelo. In una bundle vengono impacchettate insieme più sillabe distinte, che rappresentano le istruzioni macchina elementari, ognuna con i propri operandi. Le sillabe sono eseguibili in parallelo, mentre l ordine di esecuzione delle bundle è rigorosamente sequenziale.

55 LE ISTRUZIONI (1) 55 Il compilatore vede una finestra di programma molto più grande di quella visibile al hardware di un processore superscalare, quindi ha più tempo per analizzarla. NON ha conoscenza dei singoli eventi dinamici (es. salti fatti o no) a volte ha informazioni statistiche. La selezione delle sillabe che andranno a comporre un bundle e l ordine di esecuzione dei bundle vengono generati in fase di compilazione a partire dal programma statico, al più basandosi su informazioni ottenute da profiling del codice precedentemente ottenute.

56 GENERALITA 56 Ogni bundle viene letto in un solo ciclo di lettura, quindi la banda disponibile deve essere adeguata all ampiezza del bundle. Anche la decodifica viene operata bunble per bundle in un ciclo. Le singole sillabe, componenti il bundle, vengono avviate in parallelo per l esecuzione ognuna a una unità di esecuzione (tipicamente pipelined) capace di eseguirla. Tutte le unità funzionali possono accedere a un banco di registri condiviso (che quindi supponendo che il bundle contenga n sillabe dovrà ammettere 2n porte di lettura e n di scrittura).

57 UN PO DI STORIA 57 Prime VLIW: anni 80 (mini-supercomputer). Filosofia adottata poi per elaboratori speciali (DSP dedicati all elaborazione di segnale e immagine). Oggi usate soprattutto (ma non solo!) per sistemi embedded, grazie al simultaneo sviluppo delle tecnologie del silicio e della compilazione ottimizzante.

58 SCHEMA A BLOCCHI GENERALE VLIW A 4 VIE (1) 58

59 SCHEMA A BLOCCHI GENERALE VLIW A 4 VIE (2) 4 lane o vie, cioè 4 unità funzionali aritmetico/logiche sono collegate ad un unico register file dotato di 4 porte di scrittura e 8 di lettura. A ogni sillaba viene associata una lane nel datapath della CPU, lungo il quale la sillaba viene eseguita. Ogni lane ha un accesso dedicato al RF. Una sola lane ha la possibilità di accedere alla cache dati, il che significa che in un bundle di 4 sillabe una sola sillaba potrà essere una operazione di accesso alla memoria. Non è detto che se ho una bundle di 4 sillabe si abbiano esattamente 4 lane, potrebbero essercene di più ma per qualche ragione non essere sfruttate. La BYPASS LOGIC serve a ridurre la latenza visibile di alcune operazioni, ed è in pratica equivalente alla logica di forwarding che viene utilizzata dal MIPS pipelined per ridurre il numero di stalli dovuti alle dipendenze fra dati. L area di interconnessione è elevata. 59

60 SCHEMA DI FUNZIONAMENTO 60 Il compilatore: identifica 4 operazioni mutuamente indipendenti, per comporre le sillabe di un bundle; si occupa, ove possibile, di risolvere i conflitti relativi alle risorse; associa ad ogni sillaba una lane, lungo la quale verrà eseguita (il codice oggetto specifica, non solo quali operazioni vengono eseguite in un istruzione lunga, ma anche su quali unità funzionali sono eseguite). Conflitti di controllo: in un bundle può essere presente al più una operazione che modifica il flusso del controllo dell esecuzione del programma (e.g. salto condizionato o no, chiamata a funzione o ritorno da sottoprogramma).

61 I CLUSTER 61 Per poter essere in grado si supportare efficientemente applicazioni che presentino intrinsecamente gradi di parallelismo superiore, la CPU viene organizzata in cluster. Ogni cluster sfrutta un parallelismo limitato (e.g. 4 lane per cluster), ma nel complesso si possono ottenere prestazioni migliori. Esiterà un banco di registri dedicato per ogni cluster, ma è necessario dell hardware aggiuntivo per gestire la coerenza della memoria.

62 ESEMPIO (1) 62 VLIW con parallelismo 4, un solo cluster, cinque unità funzionali: FXU1 - compie le operazioni aritmetiche su interi; FXU2BR - compie le stesse operazioni di FXU1, oltre a salti e a salti condizionati; FLU1 unità aritmetica in virgola mobile; FLU2 unità aritmetica in virgola mobile; LS - unità di load/store per l accesso alla memoria dati

63 ESEMPIO (2) 63 Codifica assembly elementare: add r1, r2, r3 sub r4, r2, r5 mul r6, r2, r3 and r1, r4, r1 or r2, r1, r3 add r7, r1, r6 IPOTESI: mul latenza 2, tutte le altre istruzioni latenza 1. esistono percorsi di forwarding come nella pipeline MIPS elementare.

64 ESEMPIO (3) 64 SOLUZIONE 1: tutte le operazioni sono rigorosamente vincolate alla latenza della più lenta latenza 2 il miglioramento delle prestazioni è limitato, come anche il parallelismo estraibile. Codice VLIW estratto: add r1, r2, r3 sub r4, r2, r5 mul r6, r2, r3 and r1, r4, r1 or r2, r1, r3 add r7, r1, r6 i1 add r1, r2, r3; sub r4, r2, r5;nop; nop i2 nop; nop; nop; nop i3 mul r6, r2, r3; and r1, r4, r1; nop; nop i4 nop; nop; nop; nop i5 or r2, r1, r3; add r7, r1, r6; nop; nop i6 nop; nop; nop; nop

65 ESEMPIO (4) 65 SOLUZIONE 2: le operazioni in uno stesso bundle sono vincolate alla latenza della sillaba più lenta, se tutte le sillabe sono più veloci, si sfrutta il forwarding in modo da ridurre la latenza dell intero bundle, mantenendolo comunque tutto sincrono. Codice VLIW estratto: add r1, r2, r3 sub r4, r2, r5 mul r6, r2, r3 and r1, r4, r1 or r2, r1, r3 add r7, r1, r6 i1 add r1, r2, r3; sub r4, r2, r5;nop; nop i2 mul r6, r2, r3; nop; nop; nop i4 nop; nop; nop; nop i3 and r1, r4, r1; nop; nop; nop i4 or r2, r1, r3; add r7, r1, r6; nop; nop Il secondo bundle richiede comunque l introduzione di una bolla per supportare la latenza della mul.

66 PRO E CONTRO (1) 66 A LIVELLO ARCHITETTURALE: La microarchitettura di un processore VLIW è più semplice di una CPU superscalare con uguale parallelismo, e tendenzialmente si possono raggiungere frequenze di funzionamento superiori (considerato che il ciclo di clock ora è determinato dai percorsi critici del datapath e non dall unità di controllo che è notevolmente più semplice). A LIVELLO DI COMPILAZIONE: Il compilatore deve avere una conoscenza dei dettagli della microarchitettura unitamente ad alcuni parametri tecnologici (e.g. la latenza e throughput delle unità funzionali) al fine di poter efficientemente comporre i bundle. Questo fatto riduce la portabilità del codice oggetto anche fra successive generazioni della stessa famiglia di processori VLIW, in quanto potrebbe venire a mancare la compatibilità binaria.

67 PRO E CONTRO (2) 67 Per risolvere i problemi di compatibilità binaria una soluzione diffusa è quella che utilizza i software binary translation : software dedicati per la conversione dinamica, al momento dell esecuzione, delle istruzioni appartenenti ad un instruction set in equivalenti istruzioni dell instruction set nativo. Volendo mantenere l esecuzione in-ordine, non è possibile ammettere che sillabe diverse di uno stesso bundle giungano al Write Back in istanti diversi (si potrebbero generare conflitti per l accesso al Register File, hazard di tipo WAR e WAW non risolte dal compilatore ). Conseguentemente se il parallelismo non è elevato, le istruzioni contengono un numero elevato di sillabe nop e l immagine del programma in memoria tende ad esplodere, anche perché nonostante le sofisticate tecniche di analisi, generazione di codice e scheduling utilizzate dai compilatori VLIW, è possibile che non sempre il compilatore sia in grado di garantire ad ogni colpo di clock l utilizzo di ogni unità funzionale.

68 PRO E CONTRO (3) 68 Se l applicazione non presenta un grado di parallelismo adeguato a quello messo a disposizione, il numero di NOP potrebbe risultare elevato, causando un utilizzo poco efficiente della memoria. Per questo motivo i processori VLIW utilizzano tecniche di compressione dell immagine dell applicazione in memoria, permettendo di evitare, in fase di compilazione, l introduzione di NOP, per poi generarli via hardware durante la fase di issue delle istruzioni. Nella pratica in memoria i bundle sono impaccati in modo da contenere solo sillabe significative (nessuna NOP) e dei codici separatori vengono utilizzati per indicare quali sillabe appartengono a un bundle e quali al bundle successivo. L unità di controllo poi, scompone il bundle impaccato nella sequenza di bundle eseguibili.

69 69 MULTITHREADING, CHIP MULTI PROCESSOR (CMP) E MASSIVELY PARALLEL PROCESSOR (MPP)

70 MULTITHREADING A GRANA FINE E GRANA GROSSA 70 GRANA FINE: La CPU commuta da un thread all altro ad ogni istruzione. L esecuzione di diversi thread risulta essere interallacciata (nel caso di stallo, il thread che dovrebbe essere eseguito salta il suo turno di esecuzione). La CPU deve essere in grado di cambiare thread a ogni ciclo di clock, quindi per evitare inefficienze sono richieste duplicazioni pesanti dell hardware disponibile. GRANA GREZZA: La CPU commuta da un thread a un altro solo in corrispondenza di stalli lunghi (e.g. cache miss). I thread in questione condividono molte risorse del sistema (e.g. registri architetturali) per questo la commutazione da un thread all altro richiede diversi cicli di clock per poter effettuare il salvataggio del contesto.

71 SIMULTANEOUS MULTITHREADING (SMT) 71 L obiettivo di questa classe di architetture è quello di utilizzare le risorse messe a disposizione da un processore superscalare, per sfruttare simultaneamente ILP e TLP. Il motivo fondamentale risiede nella considerazione che molto spesso una CPU ha a disposizione più risorse funzionali di quante un singolo thread possa effettivamente sfruttare. Unitamente a ciò, grazie alle tecniche di register renaming e allo scheduling dinamico, è possibile pensare di eseguire più istruzioni indipendenti sulla stessa CPU. Se le istruzioni che vengono lanciate in parallelo appartengono a thread diversi allora si possono anche limitare le problematiche relative alle dipendenze fra dati.

72 RIASSUMENDO 72

73 CHIP MULTI PROCESSOR (CMP) (1) 73 I Chip MultiProcessor (CMP) rappresentano un approccio alternativo a quello dei processori SMT per la gestione del TLP. In questo caso l architettura del processore è composta dalla replicazione di diverse celle di calcolo identiche connesse poi le une con le altre (tipicamente a formare una griglia). La caratteristica fondamentale di queste architetture, da cui prendono anche il nome, è il fatto che la potenza computazionale e la conseguente complessità di ogni elemento della griglia di processori è paragonabile a quella di una classica architettura superscalare (o VLIW visto che commercialmente sono più diffusi). Ogni cella è in grado di eseguire uno o più thread ed interagirà con le altre mediante un layer di comunicazione adeguato alle esigenze di banda che una architettura di questo tipo richiede.

74 CHIP MULTI PROCESSOR (CMP) (2) 74 La differenza fondamentale fra un architettura SMT e un architettura CMP risiede nel fatto che nei CMP le diverse unità funzionali sono indipendenti le une dalle altre e non condividono alcun tipo di logica di esecuzione delle istruzioni. Risultato di questa diversità è una maggiore scalabilità intrinseca di architetture di questo tipo.

75 MASSIVELY PARALLEL PROCESSOR (MPP) 75 Nel caso di architetture che prevedano l integrazione all interno dello stesso chip di un numero elevato di celle elementari di calcolo (in letteratura si parla di almeno 64 unità), il modello architetturale prende il nome di Massively Parallel Processor (MPP). Tipico esempio di MPP sono le architetture di tipo tyled-based.

76 76 ESEMPI DI MPP

77 TREND COMMERCIALE 77

78 TILERA - TILE64 Processor Block Diagram A Complete System on a Chip 78 DDR2 Memory Controller 0 DDR2 Memory Controller 1 PCIe 0 MAC PHY Serdes XAUI MAC PHY 0 Serdes PROCESSOR Reg File P2 P1 P0 CACHE L2 CACHE L1I L1D ITLB DTLB 2D DMA UART, HPI JTAG, I2C, SPI GbE 0 SWITCH MDN TDN UDN IDN STN Flexible IO IO GbE 1 Flexible IO IO PCIe 1 MAC PHY Serdes XAUI MAC PHY 1 Serdes DDR2 Memory Controller 3 DDR2 Memory Controller 2

79 2- Full-Featured General Purpose Cores 2D Mesh Peer-to-peer tile networks Processor Homogeneous cores 3-way VLIW CPU, 64-bit instruction size Memory L1 cache: 8KB I, 8KB D, 1 cycle latency L2 cache: 64KB unified, 7 cycle latency Off-chip main memory, ~70 cycle latency Cache integrated 2D DMA engine 5 independent networks (One static, four dynamic) IDN System and I/O MDN Cache misses, DMA, other memory TDN Tile to tile memory access UDN, STN User-level streaming and scalar transfer PROCESSOR P2 Reg File P1 SWITCH P0 MDN UDN STN TDN IDN CACHE L2 CACHE L1I ITLB L1D DTLB 2D DMA 79

80 PicoArray (1) 80 PicoArray is an example of heterogeneous massively parallel processor. Every computation-intensive cell is a 3-way VLIW RISC processor. Interconnection switches are configurable at compile- time in order to implement a time-division multiplexing scheme on the different communication streams.

81 PicoArray (2) 81 Programmers have to: write threads code in C or ASM language specify data-dependencies between each couple of those threads specify bandwith requirements of each thread The compiler will translate the code and invoke a placement tool which in turn generates the configuration bits for the Interconnection Network relying on the programmers directives.

82 The AM2000 Family - AMBRIC 82 First goal : creation of a MPPA easy to be programmed. Development of a programming model easy for the programmer and then conceive an architecture optimized for it. Structural Object Programming Model (SOPM) : an application is a workflow and its blocks (basic Objects) are executed in parallel each one on a different core.

83 83 MATERIALE DI RIFERIMENTO

84 84 TIPI DI PARALLELISMO E CLASSIFICAZIONE DI FLYNN: Patterson, Hennessy; Struttura e Progettazione dei Calcolatori: l interfaccia hardware e software : capitolo 9 I processori paralleli PIPELINING DELLE ISTRUZIONI: Patterson, Hennessy; Computer Architecture, A Quantitative Approach : appendice A - Pipelining: Basic and Intermediate Concepts CMP E MPP: Patterson, Hennessy; Struttura e Progettazione dei Calcolatori: l interfaccia hardware e software : capitolo 9 I processori paralleli ESEMPI DI MPP: cture

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE (parte seconda) I PROCESSORI SUPERSCALARI I PROCESSORI VLIW

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE (parte seconda) I PROCESSORI SUPERSCALARI I PROCESSORI VLIW 1 INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE (parte seconda) I PROCESSORI SUPERSCALARI I PROCESSORI VLIW 2 I PROCESSORI SUPERSCALARI PREMESSA 3 Nelle architetture scalari e pipelined date diverse classi

Dettagli

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE 1 INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE TIPI DI PARALLELISMO E CLASSIFICAZIONE DI FLYNN PIPELINING DELLE ISTRUZIONI I PROCESSORI SUPERSCALARI I PROCESSORI VLIW MULTITHREADING, CHIP MULTI PROCESSOR

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

Architetture di Calcolo Avanzate per Sistemi Embedded

Architetture di Calcolo Avanzate per Sistemi Embedded MASTER IN SISTEMI EMBEDDED PER L INTERNET OF THINGS Architetture di Calcolo Avanzate per Sistemi Embedded Docente: Francesca Palumbo UNISS - Università degli Studi di Sassari PolComIng Gruppo di Ingegneria

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

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

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

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

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

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

Introduzione al Many/Multi-core Computing

Introduzione al Many/Multi-core Computing Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Parte I Architettura Classificazione fra architetture Flynn s taxonomy SISD Single instruction on Single Data- (es. architetture

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

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 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

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

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

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

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

Aumentare il parallelismo a livello di istruzione (1)

Aumentare il parallelismo a livello di istruzione (1) Parallelismo Il parallelismo consente di migliorare le prestazioni grazie all esecuzione simultanea di più istruzioni Aumentare il parallelismo a livello di istruzione (1) Architetture Avanzate dei Calcolatori

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

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

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 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

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

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

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

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

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

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

Sistemi a processori multipli

Sistemi a processori multipli Sistemi a processori multipli Sommario Classificazione e concetti di base Sistemi multi-processore Sistemi multi-computer (cluster) Sistemi distribuiti Obiettivo comune Risolvere problemi di dimensioni

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

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

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino Corso di Alfabetizzazione Informatica / La CPU CPU (Central Processing Unit) Funzione: eseguire i programmi immagazzinati in memoria principale prelevando le istruzioni (e i relativi), interpretandole

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

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

static dynamic random access memory

static dynamic random access memory LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento

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

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Sistemi Operativi: Concetti Introduttivi

Sistemi Operativi: Concetti Introduttivi Sistemi Operativi: Concetti Introduttivi 1.1 Principali funzioni di un Sistema Operativo 1.2 Cenni Storici 1.3 Classificazione dei Sistemi Operativi 1.4 Struttura dei Sistemi Operativi 1.5 Processi e gestione

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

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

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

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli

La memoria cache. Lab di Calcolatori

La memoria cache. Lab di Calcolatori La memoria cache 1 Gap delle prestazioni DRAM - CPU 1000 CPU- DRAM Gap CPU Proc 60%/yr. (2X/1.5yr) 100 10 ProcessorMemory Performance Gap: (grows 50% / year) D R A M DRAM9%/yr.(2X/10 yrs) 1 1980 1981 1982

Dettagli

Aumentare il parallelismo a livello di istruzione (2)

Aumentare il parallelismo a livello di istruzione (2) Processori multiple-issue issue Aumentare il parallelismo a livello di istruzione (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Nei processori multiple-issue vengono lanciate più istruzioni

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

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

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Pipeline Anno Accademico Francesco Tortorella Progettazione del datapath Prima soluzione: d.p. a ciclo singolo Semplice da realizzare Condizionato dal worst

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

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

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando

Dettagli

Struttura hw del computer

Struttura hw del computer Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l esecuzione dei programmi 1 Struttura hw del computer Il nucleo di un computer è costituito da 3 principali componenti:

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

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Il Sottosistema di Memoria

Il Sottosistema di Memoria Il Sottosistema di Memoria Classificazione delle memorie Funzionalità Memoria di sola lettura (ROM) Memoria di lettura/scrittura Tecnologia Memoria a semiconduttori Memoria magnetica Memoria ottica Modalità

Dettagli

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti q Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 q Il materiale presente in

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

La macchina di Von Neumann

La macchina di Von Neumann Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

LEZIONE 2 Il processore e la memoria centrale

LEZIONE 2 Il processore e la memoria centrale Informatica per Igienisti Dentali LEZIONE 2 Il processore e la memoria centrale 1 Il linguaggio macchina Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio

Dettagli

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN ELABORATORE ARCHITETTURA DI UN ELABORATORE Unità funzionali Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). La macchiana di Von Neumann: Non distingueva fra RAM

Dettagli

I THREAD O PROCESSI LEGGERI

I THREAD O PROCESSI LEGGERI I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine

Dettagli

Analisi ed Esplorazione della Potenza Dissipata e delle Prestazio. delle Prestazioni di una Architettura Superscalare

Analisi ed Esplorazione della Potenza Dissipata e delle Prestazio. delle Prestazioni di una Architettura Superscalare Analisi ed Esplorazione della Potenza Dissipata e delle Prestazioni di una Architettura Superscalare 22 Luglio 2004 1 Obiettivi 2 Una Framework di esplorazione SuperDLX Algoritmi di ottimizzazione 3 Modello

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti

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 143 Sommario Superpipeline

Dettagli

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a) Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio

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

Architetture della memoria

Architetture della memoria Architetture della memoria Un elemento determinante per disegnare una applicazione parallela e' l architettura della memoria della macchina che abbiamo a disposizione. Rispetto all architettura della memoria

Dettagli

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer? Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ 2 Cos'è un computer? 3 Cos'è un computer? E' un dispositivo in grado di Elaborare

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Dettagli

Un semplice commutatore a pacchetto

Un semplice commutatore a pacchetto Realizzazione di commutatori a pacchetto: cosa c e dentro un router IP? Prof. Ing. Carla Raffaelli Un semplice commutatore a pacchetto Una workstation con schede di rete e software per ricevere pacchetti

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

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Il Processore (CPU) 2 rchitettura del processore CPU Unità di Controllo Unità ritmetica Logica

Dettagli

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema

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 dei calcolatori

Architettura dei calcolatori Architettura dei calcolatori Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/ Architettura dei calcolatori 2 Cos'è un computer?

Dettagli

Sottosistemi ed Architetture Memorie

Sottosistemi ed Architetture Memorie Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione

Dettagli

Tecniche di parallelismo, processori RISC

Tecniche di parallelismo, processori RISC Testo di riferimento: [Congiu] 9.1-9.3 (pg. 253 264) Tecniche di parallelismo, processori RISC 09.a Pipelining Altre tecniche di parallelismo Processori superscalari Caratteristiche dei processori RISC

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Tecnologie per le Memorie Anno Accademico Francesco Tortorella Gerarchia di memoria: vista complessiva Gerarchia di memoria: tecnologie Accesso casuale (random):

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.

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

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O L ARCHITETTURA DEI CALCOLATORI Il processore La memoria centrale La memoria di massa Le periferiche di I/O Caratteristiche dell architettura 2 Flessibilità adatta a svolgere diverse tipologie di compiti

Dettagli

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton. Architettura di un Elaboratore Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton. È costituita da quattro elementi funzionali

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

Classificazione delle Architetture Parallele

Classificazione delle Architetture Parallele Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Classificazione delle Architetture Parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Architetture parallele

Dettagli

PRESTAZIONI. senza e con memoria cache

PRESTAZIONI. senza e con memoria cache PRESTAZIONI del processore MIPS pipeline senza e con memoria cache Prestazioni del processore GENERICO (P&H pp 29 31) Definizioni dei parametri di prestazione fondamentali del processore: sia P una prova,

Dettagli

La gerarchia di memorie (2)

La gerarchia di memorie (2) La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit

Dettagli

La memoria principale

La memoria principale La memoria principale DRAM (Dynamic RAM) il contenuto viene memorizzato per pochissimo tempo per cui deve essere aggiornato centinaia di volte al secondo (FPM, EDO, SDRAM, RDRAM) SRAM (Static RAM) veloce

Dettagli

Architettura di processori e multiprocessori SMP ad elevate prestazioni

Architettura di processori e multiprocessori SMP ad elevate prestazioni Architettura di processori ad elevate prestazioni Pierfrancesco Foglia PhD in Computer Engineering Università di Pisa foglia@iet.unipi.it http://garga.iet.unipi.it Introduzione (I) Obiettivo descrivere

Dettagli

La gestione dell I/O (Cap. 5, Tanenbaum)

La gestione dell I/O (Cap. 5, Tanenbaum) La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità

Dettagli

Esercizi su Microarchitetture. Università Roma Tre

Esercizi su Microarchitetture. Università Roma Tre Esercizi su Microarchitetture Prof. Riccardo Torlone Università Roma Tre Architetture di CPU I Si vuole realizzare una semplice CPU con architettura CISC a 8 bit dotata di due registri general purpose,

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 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