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)

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 TIPI DI PARALLELISMO 4 PARALLELISMO A LIVELLO DI ISTRUZIONE: throughput elevato, bassa scalabilità A LIVELLO DI DATI: application specific A LIVELLO DI THREAD: sincronizzazione, risoluzione delle interdipendenze

5 TIPI DI PARALLELISMO: ILP 5 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).

6 TIPI DI PARALLELISMO: DLP 6 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)

7 TIPI DI PARALLELISMO: TLP (1) 7 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.

8 TIPI DI PARALLELISMO: TLP (2) 8 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).

9 LA CLASSIFICAZIONE DI FLYNN 9 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)

10 SISD 10 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.

11 SIMD 11 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.

12 MIMD (1) 12 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.

13 MIMD (2) 13 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).

14 RIASSUMENDO 14

15 15 PIPELINING DELLE ISTRUZIONI

16 TEMPO MEDIO PER ISTRUZIONE (TMI) 16 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

17 TMI E VALUTAZIONE DELLE PRESTAZIONI 17 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

18 PIPELINING DELLE ISTRUZIONI 18 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.

19 IL CICLO DI ESECUZIONE DELLE ISTRUZIONI NELLE ARCHITETTURE SEQUENZIALI 19 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.

20 MICROARCHITETTURA NON-PIPELINED - LATENZA 20 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

21 MICROARCHITETTURA PIPELINED LATENZA (1) 21 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:

22 MICROARCHITETTURA PIPELINED LATENZA (2) 22 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.

23 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (1) 23 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).

24 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (2) 24 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

25 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (3) 25 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

26 LIMITI DELLA AL MIGLIORAMENTO DELLE PRESTAZIONI OTTENIBILI (4) 26 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.

27 HAZARD STRUTTURALI 27 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).

28 HAZARD LEGATI AI DATI 28 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).

29 HAZARD LEGATI AL CONTROLLO 29 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.

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

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

32 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (3) 32 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.

33 DALLA MICROARCHITETTURA SEQUENZIALE A QUELLA PIPELINED L ESEMPIO DEL MIPS (4) 33 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.

34 34 I PROCESSORI SUPERSCALARI

35 VERSO LE ARCHITETTURE SUPERSCALARI 35 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. In tali architetture è possibile l implementazione del ILP, a patto di: potere leggere e decodificare più istruzioni simultaneamente; disporre 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 disporre di un eventuale logica di riordino delle istruzioni nel caso di flussi a latenza differente (e quindi pipeline di lunghezza diversa) per preservare la semantica originale del codice.

36 ARCHITETTURE SUPERSCALARI (1) 36 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.

37 ARCHITETTURE SUPERSCALARI (2) 37 ISSUE WINDOW load/store => 5 stadi; aritmetico/logiche in virgola fissa => 3 stadi; aritmetiche in virgola mobile => 8 stadi

38 ARCHITETTURE SUPERSCALARI (3) 38 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.

39 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (1) 39 Vediamo come funziona a grandi linee una architettura di questo tipo: 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. Durante la decodifica vengono identificate le vere dipendenze (RAW) e risolte le false (WAW e WAR). 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.

40 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (2) 40 La fase di invio delle istruzioni decodificate alle unità funzionali di competenza viene denominata dispatching Le reservation station, ove presenti, hanno il compito di conservare operandi e operazione fino a che l unità funzionale non è in grado di eseguirla. In pratica sono dei buffer che servono a disaccoppiare la fase di issue e il controllo delle vere dipendenze. Il controllo delle vere dipendenze viene compiuto sulle istruzioni nelle reservation stations in una successiva fase di dispatching e quelle libere da dipendenze vengono inoltrate alle unità funzionali. 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).

41 FLUSSO DI ESECUZIONE DELLE ISTRUZIONI (3) 41 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 reordering iniziale delle istruzioni operato dal compilatore e/o a causa della diversa latenza delle varie pipeline poste in parallelo. Detto ciò non è possibile l aggiornamento immediato 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.

42 LIMITAZIONI 42 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 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.

43 43 I PROCESSORI VLIW

44 VLIW 44 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 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.

45 LE ISTRUZIONI 45 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. 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.

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

47 SCHEMA A BLOCCHI GENERALE VLIW A 4 VIE (2) 47 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. 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.

48 SCHEMA DI FUNZIONAMENTO 48 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).

49 I CLUSTER 49 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.

50 PRO E CONTRO (1) 50 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.

51 PRO E CONTRO (2) 51 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. 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. In tali casi verrebbero inserite delle NOP. 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.

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

53 MULTITHREADING A GRANA FINE E GRANA GROSSA 53 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.

54 SIMULTANEOUS MULTITHREADING (SMT) 54 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.

55 RIASSUMENDO 55

56 CHIP MULTI PROCESSOR (CMP) (1) 56 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. 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.

57 CHIP MULTI PROCESSOR (CMP) (2) 57 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.

58 MASSIVELY PARALLEL PROCESSOR (MPP) 58 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.

59 59 MATERIALE DI RIFERIMENTO

60 60 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 I PROCESSORI SUPERSCALARI E I PROCESSORI VLIW: Patterson, Hennessy; Computer Architecture, A Quantitative Approach : capitolo 3 Instruction-Level Parallelism and Its dynamic Exploitation CMP E MPP: Patterson, Hennessy; Struttura e Progettazione dei Calcolatori: l interfaccia hardware e software : capitolo 9 I processori paralleli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

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

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema La macchina di Von Neumann rchite(ura di un calcolatore us di sistema Collegamento Unità di Elaborazione (CPU) Memoria Centrale (MM) Esecuzione istruzioni Memoria di lavoro Interfaccia Periferica P 1 Interfaccia

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

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

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

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

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

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

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

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

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/28 Sommario Riorganizzazione

Dettagli

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO A cura di Tania Caprini 1 CALCOLO SERIALE: esecuzione di istruzioni in sequenza CALCOLO PARALLELO: EVOLUZIONE DEL CALCOLO SERIALE elaborazione di un istruzione

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Schedulazione dinamica. Elettronica dei Calcolatori 1

Schedulazione dinamica. Elettronica dei Calcolatori 1 Schedulazione dinamica Elettronica dei Calcolatori 1 Schedulazione dinamica delle operazioni Impossibile risolvere tutti i conflitti staticamente I possibile predire tutti i salti condizionati HW fa durante

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

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

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

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

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella. Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Prestazioni Si valutano in maniera diversa a seconda dell

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2011

CALCOLATORI ELETTRONICI 29 giugno 2011 CALCOLATORI ELETTRONICI 29 giugno 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di una PLA la funzione combinatoria (a 3 ingressi e due uscite)

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

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

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

CALCOLATORI ELETTRONICI 31 marzo 2015

CALCOLATORI ELETTRONICI 31 marzo 2015 CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di

Dettagli

Architettura di un calcolatore: introduzione

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

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi

1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi 1 Processo, risorsa, richiesta, assegnazione 2 Concorrenza 3 Grafo di Holt 4 Thread 5 Sincronizzazione tra processi Il processo E' un programma in esecuzione Tipi di processo Stati di un processo 1 indipendenti

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Esercitazione sulle CPU pipeline

Esercitazione sulle CPU pipeline Esercitazione sulle CPU pipeline Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato perché

Dettagli

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

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

Dettagli

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

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo Calcolatori Elettronici La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo La pipeline CRITICITÀ SUI DATI Calcolatori Elettronici - Pipeline (2) - Slide 2 L. Tarantino

Dettagli

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU Lezione n.7 Il moltiplicatore binario e il ciclo di base di una CPU 1 SOMMARIO Architettura del moltiplicatore Architettura di base di una CPU Ciclo principale di base di una CPU Riprendiamo l analisi

Dettagli

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

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Valutazione delle Prestazioni

Valutazione delle Prestazioni Valutazione delle Prestazioni Sia data una macchina X, definiamo: 1 PrestazioneX = --------------------------- Tempo di esecuzione X La prestazione aumenta con il diminuire del tempo di esecuzione (e diminuisce

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione

Trasmissione di dati al di fuori di un area locale avviene tramite la commutazione Commutazione 05.2 Trasmissione di dati al di fuori di un area locale avviene tramite la Autunno 2002 Prof. Roberto De Prisco -05: Reti a di circuito Università degli studi di Salerno Laurea e Diploma in

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09 SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Strutture di Memoria 1

Strutture di Memoria 1 Architettura degli Elaboratori e Laboratorio 17 Maggio 2013 Classificazione delle memorie Funzionalitá: Sola lettura ROM, Read Only Memory, generalmente usata per contenere le routine di configurazione

Dettagli

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

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

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

Aumentare il parallelismo a livello di istruzione (1)

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

Dettagli

Approccio stratificato

Approccio stratificato Approccio stratificato Il sistema operativo è suddiviso in strati (livelli), ciascuno costruito sopra quelli inferiori. Il livello più basso (strato 0) è l hardware, il più alto (strato N) è l interfaccia

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

PLC Programmable Logic Controller

PLC Programmable Logic Controller PLC Programmable Logic Controller Sistema elettronico, a funzionamento digitale, destinato all uso in ambito industriale, che utilizza una memoria programmabile per l archiviazione di istruzioni orientate

Dettagli

Appunti di Sistemi Distribuiti

Appunti di Sistemi Distribuiti Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................

Dettagli

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

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello): Architettura (10/9003) Pag. 1/6 Esame di Architettura (matr.0-1) del 10/9003 Per Fondamenti di Architettura NON rispondere Per le domande a risposta multipla cerchiare la risposta scelta. Non alle domande

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

L architettura di riferimento

L architettura di riferimento Architetture degli elaboratori e delle reti Lezione 10 L architettura di riferimento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 10 1/27

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME)

Introduzione. Coordinazione Distribuita. Ordinamento degli eventi. Realizzazione di. Mutua Esclusione Distribuita (DME) Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Il memory manager. Gestione della memoria centrale

Il memory manager. Gestione della memoria centrale Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda

Dettagli

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

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

Organizzazione della memoria principale Il bus

Organizzazione della memoria principale Il bus Corso di Alfabetizzazione Informatica 2001/2002 Organizzazione della memoria principale Il bus Organizzazione della memoria principale La memoria principale è organizzata come un insieme di registri di

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

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Calcolatori: Algebra Booleana e Reti Logiche

Calcolatori: Algebra Booleana e Reti Logiche Calcolatori: Algebra Booleana e Reti Logiche 1 Algebra Booleana e Variabili Logiche I fondamenti dell Algebra Booleana (o Algebra di Boole) furono delineati dal matematico George Boole, in un lavoro pubblicato

Dettagli

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

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore Contenuti Introduzione 1 Introduzione 2 3 4 5 71/104 Il Calcolatore Introduzione Un computer...... è una macchina in grado di 1 acquisire informazioni (input) dall esterno 2 manipolare tali informazioni

Dettagli

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia L informatica È la disciplina scientifica che studia INTRODUZIONE I calcolatori, nati in risposta all esigenza di eseguire meccanicamente operazioni ripetitive Gli algoritmi, nati in risposta all esigenza

Dettagli

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1 SCHEDULING DELLA CPU 5.1 Scheduling della CPU Concetti di Base Criteri di Scheduling Algoritmi di Scheduling FCFS, SJF, Round-Robin, A code multiple Scheduling in Multi-Processori Scheduling Real-Time

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

Sistemi Operativi Kernel

Sistemi Operativi Kernel Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni

Dettagli

Sistema operativo: Gestione dei processi

Sistema operativo: Gestione dei processi Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica - ICA Prof. Pierluigi Plebani A.A. 2011/2012 Sistema operativo: Gestione dei processi La presente dispensa e da utilizzarsi

Dettagli

Architettura dei calcolatori II parte Memorie

Architettura dei calcolatori II parte Memorie Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Capitolo 11 La memoria cache

Capitolo 11 La memoria cache Capitolo 11 La memoria cache Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare

Dettagli

Dispositivi di rete. Ripetitori. Hub

Dispositivi di rete. Ripetitori. Hub Ripetitori Dispositivi di rete I ripetitori aumentano la distanza che può essere ragginta dai dispositivi Ethernet per trasmettere dati l'uno rispetto all'altro. Le distanze coperte dai cavi sono limitate

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi Capitolo Terzo Primi passi con Microsoft Access Sommario: 1. Aprire e chiudere Microsoft Access. - 2. Aprire un database esistente. - 3. La barra multifunzione di Microsoft Access 2007. - 4. Creare e salvare

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA UFFICIO SOCIETÀ DELL INFORMAZIONE

REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA UFFICIO SOCIETÀ DELL INFORMAZIONE REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA UFFICIO SOCIETÀ DELL INFORMAZIONE Bando pubblico per lo sviluppo della rete a Banda Larga nelle aree a fallimento di mercato finalizzato al superamento

Dettagli

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

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6 Ciclo di Istruzione Può essere suddiviso in 4 tipi di sequenze di microoperazioni (cioè attività di calcolo aritmetico/logico, trasferimento e memorizzazione dei dati), non tutte necessariamente da realizzare

Dettagli

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente

Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente Prerequisiti Mon Ami 3000 Provvigioni agenti Calcolo delle provvigioni per agente / sub-agente L opzione Provvigioni agenti è disponibile per le versioni Vendite, Azienda Light e Azienda Pro. Introduzione

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 MULTITHREADING, CHIP MULTI PROCESSOR (CMP) E MASSIVELY PARALLEL PROCESSOR (MPP)

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli