Parallelismo a livello di istruzioni

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Parallelismo a livello di istruzioni"

Transcript

1 Parallelismo a livello di istruzioni 1

2 Alee o hazard, stalli Esistono situazioni, chiamate alee (hazard), che impediscono l esecuzione della successiva istruzione presente nel flusso di istruzioni, nel periodo di clock a essa destinato La presenza di alee nelle pipeline può rendere necessario lo stallo o blocco temporaneo della pipeline stessa Lo stallo di un istruzione comporta lo stallo di tutte le istruzioni poste successivamente e che, in quanto tali, non hanno ancora raggiunto il medesimo stadio nella pipeline. Le istruzioni la cui esecuzione è cominciata prima (e che, quindi, si trovano più avanti lungo la pipeline) devono continuare ad essere eseguite, altrimenti l alea non si risolverà mai. 2

3 Cicli per istruzione (CPI) Cicli per istruzione (CPI) = 1/Istruzioni per ciclo (IPC) CPI della pipeline = CPI ideale della pipeline + stalli per alee strutturali + stalli per alee di dati + stalli per alee di controllo CPI ideale della pipeline : misura delle massime prestazioni ottenibili dall implementazione Alee strutturali: l HW non può supportare questa combinazione di istruzioni Alee di dati: l istruzione dipende dal risultato di un istruzione precedente che è ancora nella pipeline Alee di controllo: causate dal ritardo tra il fetching delle istruzioni e le decisioni sui cambiamenti nel flusso del controllo (branch e jump) 3

4 Instruction Level Parallelism (ILP) Instruction-Level Parallelism (ILP): sovrapporre l esecuzione di istruzioni usando la strategia del pipelining Due approcci per sfruttare l ILP: 1) Basarsi sull hardware per aiutare a scoprire e sfruttare il parallelismo dinamicamente (es., Pentium 4, AMD Opteron, IBM Power), e 2) Basarsi su tecnologia software per trovare il parallelismo staticamente a compile-time (es., Itanium 2) L ILP di un blocco elementare è piuttosto piccolo BB (Basic Block) o blocco elementare: una sequenza di codice straight-line senza branch in salvo che all entrata e branch out salvo che all uscita frequenza di branch dinamica media da 15% a 25% => da 4 a 7 istruzioni eseguite tra una coppia di branch Per di più le istruzioni in un BB potrebbero avere dipendenze reciproche 4

5 Loop-Level Parallelism (LLP) Per ottenere aumenti sostanziali di prestazioni, dobbiamo sfruttare l ILP tra più blocchi Il più semplice modo: loop-level parallelism, o parallelismo a livello di loop, che sfrutta il parallelismo fra le iterazioni all interno di un loop Es.: for (i=1; i<=1000; i=i+1) x[i] = x[i] + y[i]; Si può sfruttare il parallelismo a livello di loop: 1. mediante predizione dinamica di branch o 2. srotolando (unrolling) il loop staticamente da parte del compilatore 5

6 Dipendenze Alee Stalli (Programma) (Organizzazione della pipeline) Le dipendenze sono caratteristiche dei programmi. Il fatto che una determinata dipendenza provochi un alea rilevata e che tale alea dia effettivamente origine a uno stallo sono, invece, caratteristiche relative all organizzazione della pipeline. Per evitare uno stallo della pipeline, un istruzione che dipenda da un altra (detta istruzione sorgente di informazioni) deve esserne separata da un numero di cicli di clock pari alla latenza di pipeline dell istruzione sorgente. L abilità di un compilatore nella realizzazione della riorganizzazione del codice (scheduling) dipende sia dalla quantità di parallelismo a livello di istruzioni presente nel programma sia dalla latenza delle unità funzionali della pipeline. 6

7 Dipendenza di dati La Istr J è dipendente per dati (nota anche come dipendenza vera) dalla Istr I se: 1. La Istr J tenta di leggere l operando prima che la Istr I I: add r1,r2,r3 J: sub r4,r1,r3 lo scriva 2. o la Istr J è dipendente per dati dalla Istr K che è dipendente dalla Istr I (cioé esiste fra le due istruzioni una catena di dipendenze del primo tipo) - Le frecce indicano l ordine di esecuzione che deve essere preservato per ottenere il risultato corretto Alea di tipo Read After Write (RAW) - Le alee ricevono un nome basato sull ordine delle istruzioni nel programma che deve essere mantenuto all interno della pipeline 7

8 Dipendenza di nomi #1: Antidipendenza Dipendenza di nomi: quando due istruzioni usano lo stesso registro o locazione di memoria, detto un nome, ma non c è nessun flusso di dati tra le istruzioni associate con quel nome; due versioni di dipendenza di nomi 1. La Istr J scrive l operando prima che la Istr I lo legga I: sub r4,r1,r3 Si noti la freccia invertita J: add r1,r2,r3 K: mul r6,r1,r7 E chiamata antidipendenza dagli scrittori di compilatori. Questa risulta dal riuso del nome r1 Alea di tipo Write After Read (WAR) Non molto comune poichè in genere le letture avvengono all inizio della pipeline e le scritture alla fine 8

9 Dipendenza di nomi #2: Dipendenza di output 2. La Istr J scrive l operando prima che la Istr I lo scriva. I: sub r1,r4,r3 J: add r1,r2,r3 K: mul r6,r1,r7 E chiamata dipendenza di output dagli scrittori di compilatori Anche questa risulta dal riuso del nome r1 Alea di tipo Write After Write (WAW) Le istruzioni coinvolte in una dipendenza di nomi possono essere eseguite simultaneamente se il nome usato nelle istruzioni è cambiato in modo che le istruzioni non vadano in conflitto Register renaming risolve le dipendenze di nomi per I registri 9

10 Dipendenze di controllo ed eccezioni Preservare il comportamento delle eccezioni qualsiasi cambiamento nell ordine di esecuzione delle istruzioni non deve cambiare come le eccezioni sono sollevate nel programma ( no a nuove eccezioni) Esempio: DADDU R2,R3,R4 BEQZ R2,L1 LW R1,0(R2) L1: (Si assuma branch non ritardati) Problemi nel muoverelw prima dibeqz? 10

11 Dipendenze di controllo e flusso di dati Flusso di dati: l effettivo flusso di valori dei dati tra le istruzioni che producono risultati e quelle che li consumano I branch rendono dinamico il flusso, determinano quale istruzione è il fornitore di dati Esempio: DADDU R1,R2,R3 BEQZ R4,L DSUBU R1,R5,R6 L: OR R7,R1,R8 OR dipende dadaddu o dadsubu? Bisogna preservare il flusso di dati in esecuzione 11

12 Tecniche software Abbiamo detto: Per evitare uno stallo della pipeline, un istruzione che dipenda da un altra (detta istruzione sorgente di informazioni) deve esserne separata da un numero di cicli di clock pari alla latenza di pipeline dell istruzione sorgente. Ed anche: L abilità di un compilatore nella realizzazione della riorganizzazione del codice (scheduling) dipende sia dalla quantità di parallelismo a livello di istruzioni presente nel programma sia dalla latenza delle unità funzionali della pipeline. Inoltre: Ipotizziamo che le unità funzionali siano a loro volta dotate di pipeline oppure siano replicate, in modo che ad ogni ciclo possa essere emessa un istruzione di qualsiasi tipo senza che vi siano alee strutturali. 12

13 Tecniche software - Esempio Questo codice somma uno scalare ad un vettore: for (i=1000; i>0; i=i 1) x[i] = x[i] + s; Si assumano le seguenti latenze per tutti gli esempi Si ignorino I branch ritardati in questi esempi Istruzione che Istruzione che Latenza Stalli produce il risultato usa il risultato in cicli in cicli FP ALU op Another FP ALU op 4 3 FP ALU op Store double 3 2 Load double FP ALU op 1 1 Load double Store double 1 0 Integer op Integer op

14 Traduzione in linguaggio assemblativo Dove sono le alee? Loop: L.D F0,0(R1);F0=vector element ADD.D F4,F0,F2;add scalar from F2 S.D 0(R1),F4;store result DADDUI R1,R1,-8;decrement pointer 8B (DW) BNEZ R1,Loop ;branch R1!=zero 1 Loop: L.D F0,0(R1) ;F0=vector element 2 stall 3 ADD.D F4,F0,F2 ;add scalar in F2 4 stall 5 stall 6 S.D 0(R1),F4 ;store result 7 DADDUI R1,R1,-8 ;decrement pointer 8B (DW) (.D = FP in doppia precisione) 8 stall ;assumes can t forward to branch 9 BNEZ R1,Loop ;branch R1!=zero 9 cicli di clock: riscrivere il codice per minimizzare gli stalli? 14

15 Scheduling per ottenere solo due stalli 1 Loop: L.D F0,0(R1) 2 DADDUI R1,R1,-8 3 ADD.D F4,F0,F2 4 stall 5 stall 6 S.D 8(R1),F4 ;offset alterato perché DADDUI è prima 7 BNEZ R1,Loop 7 cicli di clock 3 per l esecuzione (L.D, ADD.D,S.D), 4 per l overhead del loop 15

16 Srotolare (unroll) il loop quattro volte 1 Loop:L.D F0,0(R1) 3 ADD.D F4,F0,F2 6 S.D 0(R1),F4 ;drop DADDUI & BNEZ 7 L.D F6,-8(R1) 9 ADD.D F8,F6,F2 12 S.D -8(R1),F8 ;drop DADDUI & BNEZ 13 L.D F10,-16(R1) 15 ADD.D F12,F10,F2 18 S.D -16(R1),F12 ;drop DADDUI & BNEZ 19 L.D F14,-24(R1) 21 ADD.D F16,F14,F2 24 S.D -24(R1),F16 25 DADDUI R1,R1,#-32 ;alter to 4*8 27 BNEZ R1,LOOP Riscrivere il loop per minimizzare gli stalli? 27 cicli di clock, o 6.75 per iterazione (Si assuma che R1 sia multiplo di 4) 16

17 Srotolare (unroll) il loop (n/k) volte In generale, se n è il numero di iterazioni di un ciclo e lo si vuole srotolare k volte, si creano due cicli consecutivi: - il primo con un corpo uguale al ciclo originario ed eseguito (n mod k) volte, - il secondo con il corpo orginario reiterato k volte ed eseguito n/k volte, ovviamente con conseguente register renaming 17

18 Loop srotolato che minimizza gli stalli 1 Loop:L.D F0,0(R1) 2 L.D F6,-8(R1) 3 L.D F10,-16(R1) 4 L.D F14,-24(R1) 5 ADD.D F4,F0,F2 6 ADD.D F8,F6,F2 7 ADD.D F12,F10,F2 8 ADD.D F16,F14,F2 9 S.D 0(R1),F4 10 S.D -8(R1),F8 11 S.D -16(R1),F12 12 DSUBUI R1,R1,#32 13 S.D 8(R1),F16 ; 8-32 = BNEZ R1,LOOP 14 cicli di clock, o 3.5 per iterazione Due vantaggi del loop unrolling: 1. Aumentano il numero di istruzioni relativamente alle istruzioni di controllo del loop 2. Aumentano le possibilità di scheduling (conversione da LLP a ILP) 18

19 Limiti del Loop Unrolling 1. Crescita in dimensioni del codice Per i loop più grandi, aumenta la miss rate nella cache di istruzioni 2. Register pressure: potenziale penuria nei registri creata da aggressivi unrolling e scheduling Se non è possibile allocare tutti i valori vivi a registri, si può perdere parte o tutto il vantaggio Il loop unrolling riduce l impatto dei branch sulla pipeline; un altro modo è la branch prediction 19

20 Predizione di branch statica E necessario schedulare il codice intorno ai delayed branch Per riordinare il codice attorno ai branch, è necessario predire i branch staticamente quando si compila Lo schema più semplice è di predire che un branch viene effettuato Mispredizione media = frequenza di branch non effettuato = 34% SPEC Uno schema più accurato predice i branch usando informazioni sul profilo di esecuzione raccolte nei run precedenti, e modificando la predizione in base all ultimo run. Si hanno mispredizioni medie del 9% (Floating Point) e del 15% (Interi) Misprediction Rate 25% 20% 15% 10% 5% 0% compress 12% eqntott 22% espresso 18% 11% 12% gcc li doduc 4% 6% 9% 10% Lec4 ILP 20 Integer ear hydro2d mdljdp Floating Point su2cor 15%

21 Predizione di branch dinamica Prestazioni = ƒ(accuratezza, costo di mispredizione) Branch History Table: i bit di ordine più basso del PC sono usati come indice in una tabella di valori ad 1 bit Dice se l ultima volta il branch è stato effettuato oppure no Non c è controllo di indirizzo Problema: in un loop, BHT ad 1 bit causerà due mispredizioni: Alla fine del loop, quando esce invece di tornare ad eseguire il corpo del loop come prima Alla fine della prima iterazione che effettuerà la prossima volta che entrerà nel loop, quando esso predice l uscita invece del looping 21

22 Predizione di branch dinamica: schema a 2 bit Soluzione: schema a 2 bit dove la predizione viene modificata solo se ci sono state due mispredizioni consecutive T Predict Taken Predict Not Taken T NT T NT T Predict Taken NT Predict Not Taken Rosso: stop, not taken Verde: go, taken NT Aggiunge isteresi al processo decisionale 22

23 Accuratezza di BHT Le mispredizioni possono essere causate da: Errata previsione per quel branch La entry selezionata nella tavola si riferisce ad un altro branch Tavola a 4096 entry: - Si hanno mispredizioni medie del 4% (Floating Point) e del 11% (Interi) - Un buffer con 4K valori si comporta quasi come un buffer di dimensioni infinite Misprediction Rate 20% 18% 16% 14% 12% 10% 8% 6% 4% 2% 0% eqntott 18% espresso 5% 12% gcc Integer li 10% 9% spice doduc 5% spice 9% 9% fpppp matrix300 0% 1% nasa7 Lec4 ILP 23 Floating Point

24 Branch Target Buffers (BTB) Il calcolo dell indirizzo target del branch è costoso e pone in stallo il fetch dell istruzione BTB memorizza i PC nello stesso modo come nelle cache Il PC dell istruzione nello stadio fetch è inviato al BTB Quando un uguaglianza è trovata il corrispondente PC predetto è ritornato Se il branch predetto e dichiarato effettuato (bit di predizione), il fetch della prossima istruzione continua al PC predetto ritornato PC dell istruzione nello stadi fetch PC di branch PC predetto =? No: procedi normalmente (PC = PC+4) Si: è un branch. PC = PC predetto se effettuato, altrimenti PC = PC+4 Bit di predizione 24

25 Scheduling dinamico L hardware riarrangia l esecuzione delle istruzioni per ridurre gli stalli preservando il flusso dei dati e il comportamento delle eccezioni Tratta casi in cui le dipendenze sono sconosciute a compile time Permette al processore di tollerare ritardi impredicibili come i miss di cache, eseguendo altro codice in attesa che il miss si risolva Permette che codice compilato per una pipeline sia eseguito efficientemente su di una pipeline differente Semplifica il compilatore Speculazione hardware, una tecnica con vantaggi di prestazioni significativi, che è costruita su scheduling dinamico 25

26 Esecuzione e completamento out-of-order issue in-order Idea: Permettere alle istruzioni oltre lo stallo di procedere DIV.D F0,F2,F4 ADD.D F10,F0,F8 SUB.D F12,F8,F14 esecuzione out-of-order e completamento out-of-order (es., SUB.D) In una pipeline schedulata dinamicamente, tutte le istruzioni ancora passano attraverso lo stadio issue in ordine (in-order issue) Distingueremo quando un istruzione comincia l esecuzione da quando essa completa l esecuzione; tra i 2 tempi, l istruzione è in esecuzione Nota: L esecuzione dinamica crea alee WAR e WAW e rende più difficile il trattamento delle eccezioni 26

27 ID suddiviso in Issue e Read operands Una semplice pipeline ha 1 stadio per controllare entrambe le alee strutturali e di dati: Instruction Decode (ID), anche detto Instruction Issue Suddividere lo stadio ID in 2 stadi: Issue Decodifica le istruzioni, controlla per alee strutturali Read operands Attende per eventuali alee di dati, quindi legge gli operandi 27

28 Speculazione per maggiore ILP Superare le dipendenze di controllo mediante speculazione hardware all uscita dei branch ed eseguendo il programma come se le stime fossero corrette Speculazionefetch, issue, ed execute di istruzioni come se le predizioni di branch fossero sempre corrette Scheduling dinamicosolo fetch ed issue Essenzialmente un modello di esecuzione data flow: Le operazioni sono eseguite appena I loro operandi sono disponibili 28

29 Tre componenti della speculazione basata su HW 1. Predizione dinamica di branch per scegliere quali istruzioni eseguire 2. Speculazione per permettere l esecuzione di istruzioni prima che le dipendenze di controllo siano risolte + abilità a disfare gli effetti di sequenze speculate erroneamente 3. Scheduling dinamico per trattare differenti combinazioni di blocchi elementari 29

30 Commit & ROB Separare l esecuzione dal permettere all istruzione di finire o commit Questo è un passo addizionale: commit Quando un istruzione non è più speculativa, permetterle di aggiornare il file dei registri o la memoria Richiede un insieme addizionale di buffer per contenere i risultati di istruzioni che hanno finito l esecuzione ma non hanno ancora committed Questo reorder buffer (ROB) è usato anche per passare risultati tra istruzioni speculative 30

31 Reorder Buffer (ROB) Senza speculazione, una volta che l istruzione scrive il suo risultato, ogni istruzione successivamente issued troverà il risultato nel file di registri Con la speculazione, il file di registri non è aggiornato sino a che l istruzione commits (sappiamo definitivamente che l istruzione doveva essere eseguita) Un branch mispredetto svuota (flushes) il reorder buffer Il ROB fornisce gli operandi nell intervallo tra il completamento dell esecuzione ed il commit dell istruzione ROB è una sorgente di operandi per le istruzioni ROB estende i registri dell architettura 31

32 Le entry del Reorder Buffer Ogni entry nel ROB contiene quattro campi: 1. Instruction type branch (non ha destinazione per risultati), store (ha come destinazione un indirizzo di memoria), o operazione su registri (operazione ALU o load, che hanno come destinazioni dei registri) 2. Destination Numero di registro (per istruzioni di load e operazioni ALU) o indirizzo di memoria (per istruzioni di store) dove il risultato dell istruzione dovrebbe essere scritto 3. Value Valore del risultato dell istruzione sino a che l istruzione commits 4. Ready Indica che l istruzione ha completato l esecuzione, ed il valore è pronto 32

33 Speculazione: Register Renaming rispetto a ROB In alternativa a ROB si può usare un insieme di registri più grande in combinazione con register renaming Lo stadio instruction issue effettua un mapping di nomi di registri architetturali a numeri di registri fisici nell insieme di registri esteso Viene allocato un nuovo registro non usato per la destinazione (per evitare alee WAW e WAR) E facile il rientro dalla speculazione poiché un registro fisico contenente la destinazione di un istruzione non diventa il registro architetturale sino al commits dell istruzione Molti processori Out-of-Order attualmente usano registri estesi con renaming 33

34 Da La concorrenza nei sistemi di elaborazione 4. Pipeline multiple L unico modo per superare il limite di velocità di una istruzione per ciclo di pipeline è quello di poter disporre di pipeline multiple. Esistono due varianti di uso di pipeline multiple: superscalare, in cui si estrae parallelismo da un insieme di istruzioni a singolo issue, VLIW o Very Long Instruction Word, in cui il parallelismo è esplicito nel insieme di istruzioni. Nell approccio superscalare le istruzioni sono schedulate dinamicamente dall hardware, mentre in quello VLIW ci si basa su scheduling statico da parte del compilatore. 34

35 Da La concorrenza nei sistemi di elaborazione Memoria istruzioni Fetch Singola istruzione multioperazione Memoria istruzioni Fetch Decode/ issue Istruzioni multiple EU EU EU EU EU EU Stream sequenziale di istruzioni Registri Registri Istruzione multioperazione Approccio VLIW Approccio Superscalare 35

36 Da La concorrenza nei sistemi di elaborazione Nelle architetture superscalari, nel modello più Memoria istruzioni Fetch semplice, le istruzioni possono Singola istruzione essere multioperazione emesse soltanto nell ordine in cui sono incontrate, cioè, se la seconda istruzione non può essere emessa poichè c è una dipendenza di dati con EU EU EU la prima, solo una istruzione è emessa nel ciclo. Questo è detto issue in-order. In un modello più aggressivo, le istruzioni Registri possono essere emesse fuori ordine. In questo Istruzione caso, se la seconda istruzione ha dipendenze multioperazione di dati con la prima, ma la terza no, la prima e la terza istruzione possono Approccio essere VLIWschedulate assieme (issue out of order). Memoria istruzioni EU EU EU Registri in memoria, o, in caso di insuccesso, svuotare i ROB e ricominciare l esecuzione. 36 Fetch Stream sequenziale di istruzioni Decode/ issue Istruzioni multiple Approccio Superscalare Se questo si applica anche alle dipendenze di controllo, si parla di esecuzione speculativa e bisogna ricorrere ad ulteriori registri, ROB o ReOrder Buffer, in cui la fase di Write back scrive temporaneamente i risultati, ed all aggiunta di un ulteriore fase di pipeline, denominata Commit, oltre a quelle di Issue, Execute, e Write back, per scrivere, nel caso di successo della previsione, il contenuto dei ROB nei registri o

37 Ottenere CPI al di sotto di 1 CPI 1 se viene emessa (issue) solo 1 istruzione ad ogni ciclo di clock Tre tipi di processori multiple-issue: 1. processori superscalari schedulati staticamente, 2. processori superscalari schedulati dinamicamente, e 3. processori VLIW (very long instruction word) I due tipi di processori superscalari emettono numeri variabili di istruzioni per clock si usa esecuzione in-order se sono schedulati staticamente, o esecuzione out-of-order se sono schedulati dinamicamente I processori VLIW emettono un numero fisso di istruzioni formattate come una istruzione larga, o come un pacchetto di istruzioni fissato il parallelismo tra le istruzioni è esplicitamente indicato (con l architettura IA-64 (Itanium), creata da Intel e HP, fu introdotto il nome Explicitly Parallel Instruction Computer (EPIC) ) 37

38 VLIW: Very Large Instruction Word Ciascuna istruzione ha codifica esplicita per operazioni multiple In IA-64, raggruppamenti chiamati pacchetti In Transmeta, raggruppamenti chiamati molecole (con atomi come operazioni) La parola di istruzione lunga ha spazio per molte operazioni Per definizione, tutte le operazioni che il compilatore pone nella parola di istruzione lunga sono indipendenti => eseguono in parallelo Consideriamo, ad esempio, un processore VLIW con istruzioni che contengono cinque operazioni (Itanium ne ha sei): due riferimenti a memoria, due floating point e una fra interi (che può anche essere un branch) 38

39 Loop srotolato che minimizza gli stalli per processori scalari 1 Loop: L.D F0,0(R1) Da L.D a ADD.D: 1 Ciclo 2 L.D F6,-8(R1) Da ADD.D a S.D: 2 Cicli 3 L.D F10,-16(R1) 4 L.D F14,-24(R1) 5 ADD.D F4,F0,F2 6 ADD.D F8,F6,F2 7 ADD.D F12,F10,F2 8 ADD.D F16,F14,F2 9 S.D 0(R1),F4 10 S.D -8(R1),F8 11 S.D -16(R1),F12 12 DSUBUI R1,R1,#32 13 BNEZ R1,LOOP 14 S.D 8(R1),F16 ; 8-32 = cicli di clock, o 3.5 per iterazione 39

40 Srotolamento di loop in VLIW Riferimento Riferimento Operazione Op. Op. Int./ Clock a memoria 1 a memoria 2 FP 1 FP 2 branch L.D F0,0(R1) L.D F6,-8(R1) 1 L.D F10,-16(R1) L.D F14,-24(R1) 2 L.D F18,-32(R1) L.D F22,-40(R1) ADD.D F4,F0,F2 ADD.D F8,F6,F2 3 L.D F26,-48(R1) ADD.D F12,F10,F2 ADD.D F16,F14,F2 4 ADD.D F20,F18,F2 ADD.D F24,F22,F2 5 S.D 0(R1),F4 S.D -8(R1),F8 ADD.D F28,F26,F2 6 S.D -16(R1),F12 S.D -24(R1),F16 7 S.D -32(R1),F20 S.D -40(R1),F24 DSUBUI R1,R1,#48 8 S.D -0(R1),F28 BNEZ R1,LOOP 9 Srotolato 7 volte per evitare ritardi 7 risultati in 9 cicli di clock, o 1.3 cicli di clock per iterazione (1.8X) Media: 2.5 operazioni per ciclo di clock, 50% di efficienza Nota: Ci vogliono più registri in VLIW (15 rispetto ai 6 in SS) 40

Metodi Software per ottenere ILP

Metodi Software per ottenere ILP Metodi Software per ottenere ILP Calcolatori Elettronici 2 http://www.dii.unisi.it/~giorgi/didattica/calel2 Scaletta Tecnologie nel compilatore BRANCH PREDICTION A SOFTWARE (nel compilatore) - Gia vista

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

Esercitazione su Instruction Level Parallelism

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

Dettagli

Pipeline nel Mondo Reale

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

Dettagli

Esercitazione su Instruction Level Parallelism Salvatore Orlando

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

Dettagli

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

Instruction Level Parallelism Salvatore Orlando

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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

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

Dettagli

Cicli di clock e istruzioni

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

Dettagli

Instruction Level Parallelism statico

Instruction Level Parallelism statico Instruction Level Parallelism statico Concetti di base dell ILP statico Pipeline scheduling e loop unrolling Multiple issue statico: l approccio VLIW Le istruzioni predicative L architettura IA-64: l Itanium

Dettagli

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

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

Dettagli

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

Calcolatori Elettronici A a.a. 2008/2009

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

Dettagli

Componenti di un processore

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

Dettagli

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

Pipeline Problemi 1. Pipeline Problemi 2

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

Dettagli

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

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

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

Dettagli

Capitolo 5 Elementi architetturali di base

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

Dettagli

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

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

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

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

Dettagli

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

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

Dettagli

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

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

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

Dettagli

Componenti e connessioni. Capitolo 3

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Architettura di processori e multiprocessori SMP ad elevate prestazioni

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

Dettagli

Laboratorio di Architettura degli Elaboratori

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

Dettagli

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

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

Architettura hardware

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

Dettagli

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può

Dettagli

Gerarchia di memoria

Gerarchia di memoria Gerarchia di memoria 1 Gerarchia di memoria: Terminologia Hit: il dato appare in qualche blocco al livello superiore (Es.: Blocco X) Hit Rate: la frazione degli accessi di memoria trovati nel livello superiore

Dettagli

Linguaggio Assembly e linguaggio macchina

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

Dettagli

Implementazione semplificata

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

Dettagli

Università degli Studi di Padova

Università degli Studi di Padova Università degli Studi di Padova Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesina di Laurea Triennale TECNICHE DI PARALLELISMO NELL HARDWARE Laureando: Filippo Longo Relatore: Sergio

Dettagli

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Dettagli

Architettura dei computer

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

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

Dettagli

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

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

Dettagli

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 Informatica

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

Dettagli

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

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

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

Dettagli

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni

Dettagli

static dynamic random access memory

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

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

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

Dettagli

Concetti di base del PIPELINING

Concetti di base del PIPELINING Concetti di base del PIPELINING L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive.

Dettagli

Trend di sviluppo delle pipeline

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

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Riassunto di Architettura dei Calcolatori Riva ZaX Samuele Copyleft: all rights reversed 28 gennaio 2006 Indice 1 Introduzione 1 1.1 Flusso di Controllo........................ 1 1.2 Prestazioni.............................

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

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

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

HARDWARE 1.4a: (Processore)

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

Dettagli

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

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

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

Dettagli

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

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

Dettagli

Progetto CPU (ciclo singolo) Salvatore Orlando

Progetto CPU (ciclo singolo) Salvatore Orlando Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Università degli Studi di Cassino

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

Dettagli

Architettura di una CPU

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

Dettagli

Compilatori e Livelli di Compilazione

Compilatori e Livelli di Compilazione Compilatori e Livelli di Compilazione Il compilatore Il programmatore ha a disposizione un ampia scelta di compilatori sviluppati per diversi sistemi operativi quali Linux/Unix, Windows, Macintosh. Oltre

Dettagli

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

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

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

Dettagli

Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined

Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined Concetti di base del PIPELINING L architettura MIPS pipelined I problemi del pipelining Alcune soluzioni di base ai problemi del pipelining Versioni più sofisticate di pipeline Osservazioni conclusive.

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Struttura delle memorie cache

Struttura delle memorie cache Architettura degli Elaboratori e delle Reti Lezione 28 Struttura delle memorie cache Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 28 1/24

Dettagli

Fondamenti di Informatica Architettura del Calcolatore Alessandra Volpato

Fondamenti di Informatica Architettura del Calcolatore Alessandra Volpato Fondamenti di Informatica Architettura del Calcolatore Alessandra Volpato E-mail: ale.volpato@ieee.org Sistema Informativo: Insieme di componenti in relazione tra loro che raccoglie, estrae, elabora, memorizza

Dettagli

Parte 2.a. Elaborazione: Microprocessori general purpose integrati

Parte 2.a. Elaborazione: Microprocessori general purpose integrati Parte 2.a Elaborazione: Microprocessori general purpose integrati Facoltà di Ingegneria Università di Ferrara A.A. 2000/01 1 Introduzione 1.1 Specifica Dichiarativa (enunciazione di proprietà) Es: massimo

Dettagli

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

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

Dettagli

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

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

Dettagli

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:

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

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

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

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Gli attori principali di un architettura

Gli attori principali di un architettura Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali

Dettagli

La memoria principale

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

Dettagli

Sistemi superscalari. Contenuto della lezione. Unità multifunzionali parallele Architetture superscalari Esecuzione fuori ordine

Sistemi superscalari. Contenuto della lezione. Unità multifunzionali parallele Architetture superscalari Esecuzione fuori ordine Sistemi superscalari Contenuto della lezione Unità multifunzionali parallele Architetture superscalari Esecuzione fuori ordine Calcolatori (G.B.) Superscalari 1 Architettura superscalare Lo stadio viene

Dettagli

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2 Lez. 4 L hardware 1 Dott. Pasquale De Michele Dipartimento di Matematica e Applicazioni Università di Napoli Federico II Compl. Univ. Monte S.Angelo Via Cintia, I-80126, Napoli pasquale.demichele@unina.it

Dettagli

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Architettura dei calcolatori Che cos è un calcolatore? Come funziona un calcolatore? un calcolatore è un sistema un sistema è un oggetto costituito da molte

Dettagli

Parte V. Architettura della CPU

Parte V. Architettura della CPU Parte V Architettura della CPU V.1 Interpretazione delle istruzioni In un architettura microprogrammata le istruzioni macchina non sono eseguite direttamente dall hardware L hardware esegue istruzioni

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU 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

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile Prestazioni Singolo Ciclo Assumiamo i seguenti ritardi: Unita di memoria: 2 nanosecondi e adders: 2 nanosecondi Banco di istri: 1 nanosecondo per gli altri: insignificante Quale e la durata del ciclo?

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

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

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

Dettagli

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

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

Dettagli

LEZIONE 2 Il processore e la memoria centrale

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

Dettagli

Corso di Informatica

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

Dettagli

Esercizi su Microarchitetture. Università Roma Tre

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

Dettagli

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754 Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati

Dettagli

Calcolatori Elettronici B a.a. 2008/2009

Calcolatori Elettronici B a.a. 2008/2009 Calcolatori Elettronici B a.a. 2008/2009 Tecniche Pipeline: Gestione delle criticità Massimiliano Giacomin 1 Pipeline: i problemi Idealmente, il throughput è di una istruzione per ciclo di clock! Purtroppo,

Dettagli

Assembler. In verde sono evidenziati i comandi del debug. Attiva la scrittura di istruzioni assembler nella locazione 0100.

Assembler. In verde sono evidenziati i comandi del debug. Attiva la scrittura di istruzioni assembler nella locazione 0100. 2010-02-16- pagina 1 di 6 Assembler Quando si installa un programma si creano dei file che sono memorizzati nell hard-disk del PC. Quando si lancia il programma parte di questi file è copiata nella RAM

Dettagli