INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE
|
|
- Evangelina Franco
- 8 anni fa
- Visualizzazioni
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 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
DettagliL 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
DettagliLa 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
DettagliArchitettura 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
DettagliIntroduzione. 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...
DettagliI 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)?
DettagliAumentare 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
DettagliCPU 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
DettagliCalcolatori 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
DettagliCPU 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
DettagliC. 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
DettagliHazard 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
DettagliCALCOLO 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
DettagliStruttura 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
DettagliSchedulazione 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
DettagliPiù 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
DettagliValutazione 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
DettagliPrestazioni 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
DettagliCalcolatori 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
DettagliArchitettura 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
DettagliLa 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.
DettagliLaboratorio 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:
DettagliCALCOLATORI 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)
DettagliCon 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
DettagliCalcolatori 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
DettagliDMA 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
DettagliIl 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
DettagliUn 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
DettagliIn 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
DettagliDispensa 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.
DettagliCALCOLATORI 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
DettagliArchitettura 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
DettagliLa 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
DettagliSommario. 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
DettagliLaboratorio 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,
DettagliCALCOLATORI 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
Dettagli1 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
DettagliSistema 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
DettagliEsercitazione 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é
DettagliQuinto 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
DettagliCalcolatori 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
DettagliCALCOLATORI 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
DettagliIl 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.
DettagliEsempio: 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
DettagliEsame 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
DettagliUniversità 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,
DettagliValutazione 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
DettagliLezione 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
DettagliStrutturazione 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
DettagliTrasmissione 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
DettagliArchitettura 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
DettagliAutomazione 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
DettagliSISTEMI 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
DettagliScheduling 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
DettagliIl 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
DettagliCalcolo 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:
DettagliA 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
DettagliStrutture 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
DettagliMODELLO 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
DettagliPronto 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
DettagliTecniche 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
DettagliFONDAMENTI 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
DettagliAumentare 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
DettagliApproccio 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
DettagliGestione 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
DettagliLa 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
DettagliLa 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
DettagliPLC 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
DettagliAppunti 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.........................................
DettagliArchitettura (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
DettagliProgettaz. 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)
DettagliL 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
DettagliINFORMATICA. 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:
DettagliIntroduzione. 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,
DettagliIl 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
DettagliLezione 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
DettagliOrganizzazione 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
DettagliUniversità 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
DettagliCorso 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
DettagliCalcolatori: 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
DettagliContenuti. 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
DettagliL 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
DettagliSistemi 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
DettagliSistemi 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
DettagliCosa è 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
DettagliCorso 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
DettagliSistemi 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
DettagliSistema 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
DettagliArchitettura 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
DettagliCapitolo 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
DettagliDispositivi 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
DettagliCoordinazione 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
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
DettagliArchitettura 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
DettagliArchivi 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
DettagliREGIONE 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
DettagliCiclo 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
DettagliMon 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
DettagliINCREMENTO 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)
DettagliIl 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