Sistemi a Microprocessore

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sistemi a Microprocessore"

Transcript

1 Corso di Laurea Ingegneria dell Informazione Sistemi a Microprocessore Sistemi multicore A.A Prof. Ing. Ivan Bruno Sistemi a Microprocessore La Pipeline 1

2 La pipeline Il concetto di pipeline è analogo a quello di catena di montaggio, in cui un pezzo incontra diversi stadi di semilavorazione, per uscire dalla catena completamente lavorato, mentre altri pezzi sono entrati nella catena nel frattempo. Se la catena è costantemente alimentata, il tempo necessario a produrre un singolo prodotto è pari al tempo del singolo stadio (ipotizzando tempi di esecuzione costanti in ogni stadio) Questo concetto è stato mutuato per la definizione di architetture di CPU in grado di eseguire istruzioni opportunamente suddivise in stadi 19/11/2007 Sistemi a Microprocessore A.A Pipeline lineare L esecuzione di un istruzione è suddivisa in k passi ordinati: All ingresso l istruzione viene trattata dallo stadio 1 e passa per gli stadi successivi fino all uscita dello stadio finale Non appena lo stadio 1 è stato completato entra l istruzione successiva Può succedere che non tutti gli stadi siano eseguiti, ciò non vuol dire che non siano attraversati: l istruzione li attraversi tutti. K viene detto anche profondità della pipeline 19/11/2007 Sistemi a Microprocessore A.A

3 Pipeline lineare sincrona 19/11/2007 Sistemi a Microprocessore A.A Pipeline: prestazioni Il confronto verrà fatto tra CPU monociclo, multiciclo non pipelined e multiciclo pipelined Si assume che nei tre casi il numero degli stadi di esecuzione siano uguali e che vengano attraversati tutti Si definiscono: τ i il tempo richiesto dal generico stadio T p il periodo di clock della CPU pipelined T mono quella della CPU monociclo T multi quella multiciclo non pipelined T p è pari al tempo dello stadio più lento più il tempo τ l (assunto costante) necessario ai latch per lo storage del risultato. Quindi: T p = max{τ i }+ τ l i=1,,k 19/11/2007 Sistemi a Microprocessore A.A

4 Pipeline: prestazioni Nei tre casi i tempi di esecuzione sono: τ mono = T mono τ multi = kt multi τ p = kt p La presenza dei latch allunga il periodo della pipeline, ma tale svantaggio è abbondantemente recuperato. Esempio di un istruzione eseguita in 4 passi con i seguenti tempi: τ 1 = 65 ns; τ 2 = 70ns; τ 3 = 90ns; τ 4 = 75ns τ l = 10ns (tempo dei latch) 19/11/2007 Sistemi a Microprocessore A.A Pipeline: confronto 19/11/2007 Sistemi a Microprocessore A.A

5 Pipeline: confronto L istruzione è eseguita: Monociclo: in 300 ns n istruzioni/unità di tempo (1/300) Multiciclo: in 360 ns (1/360) Pipeline: in 400 ns (4/400 = 1/100) Rapportando la soluzione pipelined con le altre due si ha un guadagno di 3 e 3,6 19/11/2007 Sistemi a Microprocessore A.A Pipeline: indici prestazioni Tasso di esecuzione Numero di istruzioni completate nell unità di tempo 19/11/2007 Sistemi a Microprocessore A.A

6 Pipeline: indici prestazioni Tasso di esecuzione in pipeline con riempimento iniziale: Partendo da una pipeline vuota per completare n istruzioni occorrono k+(n-1) cicli di clock K cicli per riempire la pipeline e quindi completare la prima istruzioe n-1 cicli per completare le rimanenti (n-1) istruzioni Occorre allora un tempo: (k+n-1)t p Il tasso medio (n istruzioni eseguite/tempo) è µ p =n/ (k+n-1)t p Al crescere di n il tasso medio µ p tende al tasso di esecuzione µ p 19/11/2007 Sistemi a Microprocessore A.A Pipeline: indici prestazioni Efficienza E data dal rapporto tra il tasso di esecuzione medio e quello ideale, ovvero la percentuale di tempo in cui la CPU è occupata: η = µ p /µ p = n / (k+(n-1)) Se n allora η 1 Accelerazione E espressa dal rapporto dei tassi di esecuzione di una cpu pipelined e non (assumento T p = T multi ): α = µ p /µ multi = nk/(k+n-1) = kη Se n>>k allora α k, questo significa che al crescere di n il tempo di riempimento della pipeline è trascurabile rispetto al tempo per completare le n istruzioni. 19/11/2007 Sistemi a Microprocessore A.A

7 Esecuzione in pipeline Gli stadi di un istruzione possono essere riassunti nella sequenza riportata di seguito: IF: Istruction Fetch, prelevamento dell istruzione dalla memoria ID: Istruction Decode, decodifica dell istruzioni EX: Esecuzione di calcoli ME: Accesso alla memoria WB: (Write Back) scrittura del registro destinazione In un processore tradizionale questi stadi vengono eseguiti in sequenza, ed l IF della seconda istruzione segue il WB della prima 19/11/2007 Sistemi a Microprocessore A.A Struttura hardware di una pipeline La pipeline può essere vista come una sequenza di stadi separati da registri che servono per memorizzare i risultati intermedi dell esecuzione, come schematizzato dalla figura seguente: Nel registro IF/ID, equivalente al registro IR dell 8086, viene memorizzata l istruzione così come è prelevata dalla memoria. Il registro ID/EX contiene invece l istruzione decodificata ed al suo interno prevede campi per la memorizzazione dei valori dei registri coinvolti nell istruzione. Quindi prima di entrare nello stato EX devono essere noti i valori su cui operare. Il registro EX/ME contiene il risultato dell operazione aritmetica compiuta nello stadio EX (calcolo aritmetico o indirizzo), analogamente al contenuto del registro ME/WB. 19/11/2007 Sistemi a Microprocessore A.A

8 Struttura hardware di una pipeline 19/11/2007 Sistemi a Microprocessore A.A Struttura hardware di una pipeline RW: contiene la codifica del registro eventualmente scritto in fase WB 19/11/2007 Sistemi a Microprocessore A.A

9 Struttura hardware di una pipeline IF 19/11/2007 Sistemi a Microprocessore A.A Struttura hardware di una pipeline ALU: 2 ingressi (A e B) e un uscita OUT Memoria Dati: 2 ingressi a 32 bit (indirizzo e dati) e un uscita a 32 bit (Data Out). 2 segnali per comandare la scrittura o la lettura 19/11/2007 Sistemi a Microprocessore A.A

10 Conflitti nella Pipeline La pipeline, eseguendo più istruzioni contemporaneamente può andare incontro a conflitti di vario tipo, di cui i più comuni sono: Conflitti Strutturali: quando due fasi della pipeline accedono ad una risorsa in comune Conflitti di dati: quando una istruzione dipende dal risultato di una precedente Conflitti di controllo: quando istruzioni di salto costringono lo svuotamento della Pipeline per caricare un nuovo flusso. La soluzione più semplice è introdurre dei cicli di clock di stallo nella pipeline fino a quando il conflitto non è risolto, inserendo una o più bolle nella pipeline. 19/11/2007 Sistemi a Microprocessore A.A Conflitti nella Pipeline Conflitti Strutturali Nascono quando la combinazione delle istruzioni è tale per cui stadi distinti della pipeline lineare richiedono contemporaneamente l uso esclusivo della stessa risorsa Questo tipo di conflitti insorge ad esempio fra le fasi IF e ME, che hanno bisogno in contemporanea di fare accesso al bus dati ed indirizzi per compiere le loro operazioni. L unica possibilità per risolvere tali conflitti è la duplicazione della risorsa condivisa, come l adozione di una memoria DUAL PORT, o cache distinte per dati e istruzioni. La soluzione di che prevede un sommatore di 4 al PC nello stadio IF elimina il conflitto sull uso della ALU con lo stadio EXE 19/11/2007 Sistemi a Microprocessore A.A

11 Conflitti Strutturali In presenza di conflitti strutturali la pipeline non può funzionare correttamente in molti casi, consideriamo ad esempio la seguente sequenza di istruzioni: 1. LD R7, 3(R8) 2. SUB R4, R2, R3 3. MUL R5, R2, R3 4. ADD R1, R2, R3 5. DIV R4, R2, R3 Quando la LD è nella fase di ME, non si può fare il fetch della ADD e occorre inserire quindi uno stallo o bolla nella pipeline, che consiste nel fermare la pipeline stessa fino a che il conflitto non si risolve LD IF ID EX ME WB SUB // IF ID EX ME WB MUL // // IF ID EX ME WB ADD // // // Bolla IF ID EX ME WB DIV // // // // // IF ID EX ME WB Quindi in presenza di istruzioni di Load o Store siamo costretti a perdere cicli di clock utili nella Pipeline. La bolla si ottiene per via software con una particolare istruzione: NOP (no operation) La bolla attraversa la pipeline trovandosi negli stadi ID EX ME e WB L inserimento di NOP è fatto in sede di assemblaggio e ottimizzazione 19/11/2007 Sistemi a Microprocessore A.A Conflitti Strutturali soluzione HW 19/11/2007 Sistemi a Microprocessore A.A

12 Conflitti dati Si verificano se esiste una dipendenza tra le istruzioni e sono abbastanza vicine da far sì che la sovrapposizione generata dalla pipeline modifichi l ordine di accesso agli operandi. Esistono 3 categorie di conflitti: RAW (Read After Write): si legge prima che l istruzione precedente abbia scritto WAR (Write After Read): si scrive in una destinazione prima che l istruzione precedente abbia letto da quella destinazione WAW (Write After Write): si scrive un operando prima che l istruzione precedente abbia scritto Questo tipo di conflitto non può essere risolto a livello hardware, al limite la sua influenza può essere diminuita con appositi dispositivi, in quanto dipende dalla sequenza in cui sono messe le istruzioni e dagli operandi che esse hanno. 19/11/2007 Sistemi a Microprocessore A.A Conflitti dati Per limitare i danni dovuti all introduzione di stalli esistono tre tecniche principali, che sono brevemente descritte di seguito. Stallo La logica di CPU introduce uno o più cicli di stallo, impedendo l ingresso di istruzione che entrerebbero in conflitto con quelle presenti Lo stallo è una soluzione altamente penalizzante in quanto introduce dei ritardi di esecuzione Anticipazione o Forwarding Il dato già prodotto ma non ancora scritto nel registro di destinazione, viene prelevato dallo stadio intermedio in cui è in transito e presentato in ingresso all unità funzionale che lo richiede. (Soluzione di bypass) Sovrapposizione Le operazione di scrittura WB e lettura ID avvengono in contemporanea e non in modo conflittuale Riordinamento o Scheduling L ordine di esecuzione viene modificato in modo da evitare i conflitti di accesso ai dati 19/11/2007 Sistemi a Microprocessore A.A

13 Conflitti dati: Stallo Consideriamo la seguente sequenza, supponendo di non avere conflitti strutturali: 1. MUL R5, R2, R3 2. ADD R1, R5, R3 L istruzione ADD per poter essere decodificata ha bisogno del valore del registro R5, che verrà scritto solo dopo la fase WB della MUL. Avremo quindi la seguente situazione nella pipeline MUL IF ID EX ME WB ADD // IF Bolla Bolla Bolla ID EX ME WB 19/11/2007 Sistemi a Microprocessore A.A Conflitti dati: Stallo Consideriamo invece la seguente sequenza 1. MUL R5, R2, R3 2. ADD R1, R5, R3 3. SUB R6, R5, R1 MUL IF ID EX ME WB ADD // IF Bolla Bolla Bolla ID EX ME WB SUB // // // // // IF Bolla Bolla Bolla ID EX ME WB in quanto la sub ha bisogno anche del registro R1 prodotto dalla ADD. 19/11/2007 Sistemi a Microprocessore A.A

14 Conflitti dati: Sovrapposizione Dal momento che le fasi di minore durata della pipeline sono la ID e la WB, nel caso in cui esse possano avvenire in metà ciclo di clock, possono essere sovrapposte: 19/11/2007 Sistemi a Microprocessore A.A Conflitti dati: sovrapposizione Considerando nuovamente la sequenza di istruzioni: 1. MUL R5, R2, R3 2. ADD R1, R5, R3 e la relativa sequenza in pipeline: MUL IF ID EX ME WB ADD // IF Bolla Bolla ID EX ME WB Possiamo dedurre, che dal momento che le fasi di ID e WB possono essere sovrapposte, possiamo eliminare uno stallo ed eseguire l ID della ADD nello stesso colpo di clock del WB della MUL. 19/11/2007 Sistemi a Microprocessore A.A

15 Conflitti dati: Anticipazione o bypass La rete di bypass permette di riportare da stadi a valle, verso gli stadi a monte i risultati delle elaborazioni parziali delle fasi, al fine di evitare stalli, o di ridurne il numero. 19/11/2007 Sistemi a Microprocessore A.A Conflitti dati: Anticipazione o bypass Consideriamo nuovamente la sequenza di istruzioni: 1. MUL R5, R2, R3 2. ADD R1, R5, R3 e la relativa sequenza in pipeline: MUL IF ID EX ME WB ADD // IF ID EX ME WB Dal momento che il valore necessario alla ADD viene generato dopo la fase EX della MUL, possiamo pensare di prendere tale risultato sul registro EX/ME e riproporlo in ingresso alla ALU al posto del campo A che non possiamo decodificare. In tale modo la pipeline può proseguire normalmente, dal momento che non è più necessario decodificare il campo A nella fase ID, ma ho già il valore in ingresso alla ALU per la successiva fase. 19/11/2007 Sistemi a Microprocessore A.A

16 Conflitti dati: Anticipazione o bypass 19/11/2007 Sistemi a Microprocessore A.A Conflitti dati: Riordinamento Come esempio consideriamo la seguente sequenza di istruzioni: 1. MUL R5, R2, R3 2. ADD R1, R5, R3 3. DIV R7, R4, R3 4. SUB R8, R4, R3 Le istruzioni DIV e SUB non dipendono dal risultato della MUL e della DIV e quindi potrebbero essere anticipate senza che questo sconvolga la sequenza di esecuzione del programma. Dopo questa operazione, la sequenza delle istruzioni è la seguente: 1. MUL R5, R2, R3 2. DIV R7, R4, R3 3. SUB R8, R4, R3 4. ADD R1, R5, R3 e l esecuzione in pipeline può essere schematizzata come segue: MUL IF ID EX ME WB DIV // IF ID EX ME WB SUB // // IF ID EX ME WB ADD // // // IF Bolla ID EX ME WB La ADD ha bosgno adesso di solo uno stallo per poter essere eseguita, ed in caso di dimezzamento di ID/WB potrei addirittura eliminare tutti gli stalli. 19/11/2007 Sistemi a Microprocessore A.A

17 Conflitti dati: Riordinamento Il riordinamento può essere fatto con un opportuna logica di anticipazione o al tempo di compilazione 19/11/2007 Sistemi a Microprocessore A.A Pipeline: Conflitti di controllo Una delle maggiori penalizzazione con l uso si una pipeline è data dallo svuotamento forzato della pipeline a causa di una istruzione di salto. In presenza di un salto, infatti la sequenza delle istruzioni è sconvolta e quindi la pipeline deve essere svuotata e ricaricata con le istruzioni a partire dal nuovo indirizzo di destinazione. Per evitare di svuotare la pipeline dovrebbe esistere un meccanismo in grado di prevedere la destinazione del salto al fetch o al decode dell istruzione in modo da caricare subito la pipeline con le istruzioni corrette. Questo meccanismo può essere implementato con un BTB (Brach Target Buffer) che è una cache che associa ad ogni istruzione di salto la predizione della locazione successiva. Una volta che una istruzione è stata eseguita viene salvato in BTB il fatto che il salto abbia avuto luogo o meno e conseguentemente si comincia a caricare la pipeline con le istruzioni a partire dall indirizzo predetto. In generale l algoritmo utilizzato per predire i salti è riportato di seguito: 19/11/2007 Sistemi a Microprocessore A.A

18 Pipeline: Conflitti di controllo Una delle maggiori penalizzazione con l uso si una pipeline è data dallo svuotamento forzato della pipeline a causa di una istruzione di salto. In presenza di un salto, infatti la sequenza delle istruzioni è sconvolta e quindi la pipeline deve essere svuotata e ricaricata con le istruzioni a partire dal nuovo indirizzo di destinazione. Per evitare di svuotare la pipeline dovrebbe esistere un meccanismo in grado di prevedere la destinazione del salto al fetch o al decode dell istruzione in modo da caricare subito la pipeline con le istruzioni corrette. Questo meccanismo può essere implementato con un BTB (Brach Target Buffer) che è una cache che associa ad ogni istruzione di salto la predizione della locazione successiva. Una volta che una istruzione è stata eseguita viene salvato in BTB il fatto che il salto abbia avuto luogo o meno e conseguentemente si comincia a caricare la pipeline con le istruzioni a partire dall indirizzo predetto. In generale l algoritmo utilizzato per predire i salti è riportato di seguito: 19/11/2007 Sistemi a Microprocessore A.A Algoritmo BTB 19/11/2007 Sistemi a Microprocessore A.A

19 Algoritmo BTB Tale algoritmo è detto Static Brach Prediction ed opera secondo le seguenti modalità: 1. Se l istruzione è trovata in BTB, 1.1. Se è un salto incondizionato, viene sempre previsto come salto 1.2. Se non è un salto incondizionato si legge la predizione dal BTB 2. Se non è stata trovata in BTB 2.1. Se è un salto relativo non condizionale si considera di effettuare il salto 2.2. Se invece è un salto condizionato, Si considera di saltare se il salto è indietro (come nella maggior parte dei LOOP) Altrimenti si ritiene che il salto non avvenga 2.3. Se non è un salto relativo, Se l istruzione è un return, si considera che il salto avvenga Altrimenti è un salto indicizzato e si presuppone che non avvenga 19/11/2007 Sistemi a Microprocessore A.A Sistemi a Microprocessore Cache e sistemi multiprocessore 19

20 Introduzione Sistemi multiprocessore prevedono l utilizzo di più CPU collegate tra loro da una rete di interconnessione Di norma un sistema multiprocessore è quel sistema le cui CPU sono fortemente accoppiate (tightly coupled) Le cpu risiedono nello stesso container se non addirittura sulla stessa piastra La comunicazione avviene condividendo un bus Le CPU condividono la stessa memoria Lo spazio di indirizzamento delle CPU può essere parzialmente o totalmente sovrapposto. L accoppiamento di CPU pone il problema di conflitto/contesa della memoria centrale Problemi di consistenza dei dati Degradazioni delle prestazioni dovuto ad accessi multipli in memoria con saturazione di banda Il problema è in parte risolto grazie alla presenza della cache in ciascuno processore Inevitabile è una gestione della coerenza dei dati tra memorie cache e memoria centrale 19/11/2007 Sistemi a Microprocessore A.A Introduzione Architetture multicore simmetriche (SMP) Sistemi dove non è presente il concetto di master/slave Tutte le CPU sono paritetiche Il codice del S.O e dei programmi possono essere eseguiti da tutte le CPU Si basano su CPU commerciali E alla base dei server. Possono ospitare da 2, 4 a 8 CPU La rete di interconnessione è un bus sul quale le CPU possono osservare e pilotare 19/11/2007 Sistemi a Microprocessore A.A

21 Sistemi SMP 19/11/2007 Sistemi a Microprocessore A.A Coerenza Un sistema è detto coerente se per ogni lettura, una CPU è in grado di ricevere sempre l ultima copia aggiornata dei dati Il problema di coerenza è dovuto al fatto che un dato può trovarsi in più cache ed è legato a 3 situazioni: Condivisione dati Operazioni di I/O Migrazione processi 19/11/2007 Sistemi a Microprocessore A.A

22 Coerenza 19/11/2007 Sistemi a Microprocessore A.A Coerenza 19/11/2007 Sistemi a Microprocessore A.A

23 Coerenza 19/11/2007 Sistemi a Microprocessore A.A Coerenza 19/11/2007 Sistemi a Microprocessore A.A

24 Coerenza 19/11/2007 Sistemi a Microprocessore A.A Coerenza: protocolli Sono possibili soluzioni di mantenimento di coerenza basati su protocolli sia hardware che software Protocolli software La coerenza è gestita attraverso specifiche istruzioni (gestione statica) In questo modo si elimina la comunicazione tra processori e si riduce il traffico sul bus Richiedono comunque un supporto hw ma senza dubbio meno complesso e costoso di una soluzione interamente hw Sono scalabili: si possono aggiungere CPU senza dover modificare niente. E compito del programmatore la gestione della coerenza dei dati 19/11/2007 Sistemi a Microprocessore A.A

25 Coerenza: protocolli Protocolli hardware Non richiede la responsabilità del programmatore, né del compilatore o del S.O. Offre migliore prestazioni specie in sistemi con elevata quantità di dati condivisi Gestione dinamica della coerenza e riconoscimento della violazione in tempo reale Due protocolli hardware Protocolli basati su catalogo (directory) Protocolli basati (snoopy) 19/11/2007 Sistemi a Microprocessore A.A Coerenza: protocolli Protocolli basati su catalogo Il catalogo tiene traccia dei dati nelle cache Per ogni linea di cache si memorizza lo stato (valid bit, modification bit, ) Un unico catalogo distribuito e indirizzato su memorie diverse per evitare conflitti di accesso Preferibile in sistemi con molti processori Protocolli Snoopy Per ogni linea di cache si inseriscono i bit di stato necessari al protocollo Cache e memoria sono sullo stesso bus Le transazioni di accesso alle cache o alla memoria centrale sono riportate sul bus stesso Introduzione di controllori che osservano il bus (snoopying) per rilevare la transazioni e rendere coerente il sistema di memoria Preferibile per sistemi a singolo bus (macchine commerciali) 19/11/2007 Sistemi a Microprocessore A.A

26 Coerenza: politiche Scrittura a invalidazione Quando un CPU scrive nella propria cache privata, le altre cache che rilevano l indirizzo del dato in corso di modifica e scoprono di avere una copia invalidano le loro copie Scrittura a propagazione delle modifiche Quando una CPU scrive nella propria cache privata, quelle che possiedono una copia privata l aggiornano col valore che è sul bus in quel momento Questa soluzione consente di segnare i blocchi come condivisi o privati (locali) e avere un comportamento write-through nel caso di dati condivisi e write-back nel caso di dati locali In entrambi i casi è necessario che sul bus siano presenti le informazioni relative alla modifica corrente e che tutte le cache monitorizzino il bus continuamente Nel caso di scrittura differita, il processore che sta tendando di leggere un dato in fase di modifica, deve essere momentaneamente interdetto dal farlo 19/11/2007 Sistemi a Microprocessore A.A Coerenza: efficienza Protocollo di invalidazione Dopo l invalidazione sono eliminati gli accessi futuri per gli aggiornamenti locali Protocollo a propagazione Ogni volta che la cache è modificata si ha un accesso al bus per propagare la modifica a tutte le cache che hanno una copia. Ciò è inutile quando i dati non saranno utilizzati o se sono situazioni generate da operazioni intermedie Ne emerge che il protocollo di invalidazione è più efficiente Tuttavia esiste una condizione in cui si perde quest efficienza ed è in presenza di variabili di sincronizzazione es. mutex 19/11/2007 Sistemi a Microprocessore A.A

27 Coerenza: efficienza caso del mutex Si considerino n processi su n CPU che condividono la variabile mutex Il meccanismo di invalidazione prevede che ogni processo che esce o entra dalla sezione critica aggiorna la variabile mutex La variabile viene invalidata su tutti gli n-1 CPU e dovranno ricaricare il valore attuale del mutex Si innesca un meccanismo di contesa del bus: Se un processore richiede l aggiornamento della variabile se la dovrà vedere con almeno n-2 richieste analoghe da parte delle altre CPU aumenta il numero di transiti sul bus che cresce come n 2 Il rischio è la saturazione del bus La soluzione a propagazione invece gestisce meglio questa condizione distribuendo il valore aggiornato ed evitando gli accessi alla memoria 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione con scrittura immediata) È il più semplice protocollo La coerenza è ottenuta dalla natura stessa della politica di gestione write-through Modifiche in cache sono riportate immediatamente in memoria principale Tutti i processori che contengono la variabile possono leggere x dalla propria cache se la linea è valida. Quando un processo P i modifica x, tutti i P j che hanno x invalidano la linea di cache corrispondente. Se un P j deve accedere a x la ottiene dalla memoria centrale e riporta in cache una linea valida. 19/11/2007 Sistemi a Microprocessore A.A

28 Protocolli Snoopy (Invalidazione con scrittura immediata) Il passaggio dallo stato non valido a valido si ha anche se un processore che ha una linea di cache non valida (o non ce l ha proprio) deve scrivere su una variabile L operazione avviene direttamente in memoria centrale e la linea di cache valida viene aggiornata o caricata nella relativa cache (write-allocate) Parallelamente vengono invalidate le copie nelle altre cache 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione con scrittura immediata) Contro Discreto carico sul bus in presenza di molti processori Complicazioni in presenza di buffer di scrittura interni ai processori per velocizzare le operazioni di scrittura immediata problema della coerenza di queste memorie di transito 19/11/2007 Sistemi a Microprocessore A.A

29 Protocolli Snoopy (Invalidazione con scrittura differita) È basato su un modello a 3 stati: Lo stato non valido (INV) (segue le modalità del caso precedente) Lo stato valido è diviso in due stati: RO (read only): la copia può essere letta RW (read write): la copia può essere sia letta che scritta Le copie RO della stessa linea possono essere lette localmente dai processori che le possiedono e sono coerenti con la copia in memoria centrale Quando un processore P 1 scrive nella propria cache, la linea passa allo stato RW e le altre copie sono invalidate Questa condizione corrisponde alla situazione in cui esiste una sola copia aggiornata nel blocco posseduto dal processore che l ha modificata Anche la memoria è incoerente e chi accede in lettura diverso da P 1 leggere un valore obsoleto Un tentativo di accesso da parte in un altro processore deve essere intercettato da P 1 che deve comandare una transazione di sospensione della lettura per: Copiare la linea di cache (aggiornata) in memoria Rilasciare la sospensione della lettura per il processore in attesa La linea resta nello stato RW La linea di cache del processore j-esimo passa dallo stato RO a INV quando un altro processore modifica il contenuto della propria copia (che passa a RW) Dallo stato INV si passa a RW o RO rispettivamente quando il processore scrive o legge 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione con scrittura differita) La linea di cache del processore j-esimo passa dallo stato RO a INV quando un altro processore modifica il contenuto della propria copia (che passa a RW) Dallo stato INV si passa a RW o RO rispettivamente quando il processore scrive o legge 19/11/2007 Sistemi a Microprocessore A.A

30 Protocolli Snoopy (Invalidazione di tipo write-once) Gli stati della copia nella cache del processore P i di una generica linea sono 4 INV la copia è incoerente con quella contenente la versione più aggiornata VAL la copia cache è stata letta dalla memoria condivisa, con la quale è coerente (possono esistere altre copie coerenti) RES la copia è stata modificata esattamente una volta dopo essere stata letta dalla memoria condivisa e quindi è coerente con la memoria principale che contiene la sola altra copia aggiornata. DRT la copia è stata modificata più di una volta e quindi è la copia più aggiornata. Anche la memoria principale contiene una copia obsoleta Il protocollo usa una politica di gestione della memoria di tipo: Write-through per il primo aggiornamento Write-back per gli aggiornamenti successivi (il blocco viene scritto in memoria nella fase di sostituzione se si trova nello stato DRT) 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione di tipo write-once) Per ridurre il traffico sul bus, l idea è di avere una copia aggiornata in memoria fintanto che si ha un solo aggiornamento. In caso di accessi successivi alla cache locale conviene aggiornare la memoria solo al momento della sostituzione del blocco Esempio: 3 CPU Variabile x inizialmente posta a 10 e presente solo nella cache di P2 (coerente) e in stato VAL Si considerano i seguenti eventi: P1 legge x P1 modifica x e la pone uguale a 20 P1 modifica ancora x e la pone uguale a 39 P3 legge x 19/11/2007 Sistemi a Microprocessore A.A

31 Protocolli Snoopy (Invalidazione di tipo write-once) X=30 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione di tipo write-once) Descrizione con diagramma degli stati Gli archi a tratto continuo indicano i comandi lanciati dal processore locale P i in riferimento alla generica linea di cache. R i e W i indicano rispettivamente operazioni di lettura e scrittura da parte di P i Le linee tratteggiate indicano i comandi eseguiti dai processori P j diversi da P i e osservati da quest utlimo R j e W j indicano rispettivamente operazioni di lettura e scrittura da parte di P j INV è il comando di invalidazione trasmesso da P j 19/11/2007 Sistemi a Microprocessore A.A

32 Protocolli Snoopy (Invalidazione di tipo write-once) 19/11/2007 Sistemi a Microprocessore A.A Protocolli Snoopy (Invalidazione di tipo write-once) Eventi che si possono verificare in seguito a tentativi di scrittura e lettura Read-Miss P i cerca di leggere una linea non presente nella cache locale o che è nello stato INV Monitorando il bus gli altri processori capiscono le intenzioni di lettura di P i Se non ci sono copie DRT nelle cache degli altri processori allora la memoria ha una copia coerente In caso contrario chi possiede la copia DRT asserisce un segnale di retry che inibisce il tentativo di lettura da parte di P i e aggiorna la memoria Ad aggiornamento avvenuto il segnale di inibizione viene ritirato e P i può leggere il dato e lo stato della linea è VAL Write-Hit P i aggiorna la linea nella sua cache. Se lo stato della linea è RES o DRT l aggiornamento è locale con lo stato posto a DRT Se lo stato è inizialmente a VAL allora viene mandato un segnale di invalidazione alle altre cache e la memoria centrale viene aggiornata. Lo stato viene impostato a RES 19/11/2007 Sistemi a Microprocessore A.A

33 Protocolli Snoopy (Invalidazione di tipo write-once) Write-Miss P i aggiorna una linea non presente nella propria cache o in uno stato di INV La linea viene prelevata dalla memoria centrale (se è coerente) o dalla cache remota che la contiene e in stato DRT Se è possibile leggere cache-cache nessun problema altrimenti la cache che contiene la copia aggiornata deve sospendere la transazione di lettura del processore che tenta la scrittura, aggiorna la memoria e quindi riabilita il processore sospeso. Read-Hit P i legge localmente un blocco contenente informazioni aggiornate (in uno stato tra DRT, VAL o RES). Non sono necessarie transazioni di stato 19/11/2007 Sistemi a Microprocessore A.A

Prefazione Unit`a di misura xiii La memoria cache

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

Dettagli

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

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

Dettagli

Pipeline Problemi 1. Pipeline Problemi 2

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

Dettagli

Il pipelining: tecniche di base

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

Dettagli

Capitolo 5 Struttura di base del processore

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

Dettagli

Cicli di clock e istruzioni

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

Dettagli

Il pipelining: tecniche di base

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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Il processore Pentium

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

Dettagli

CPU pipeline hazards

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

Dettagli

Sistemi e reti CPU Concetti di base

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

Dettagli

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

Capitolo 5 Elementi architetturali di base

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

Dettagli

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

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

Dettagli

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

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

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

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

Dettagli

Instruction Level Parallelism Salvatore Orlando

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

Dettagli

Instruction Level Parallelism

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

Dettagli

CPU a ciclo multiplo

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

L'architettura del processore MIPS

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

Dettagli

Componenti principali

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

Dettagli

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

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

Esercitazione del 12/05/ Soluzioni

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

Dettagli

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

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

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

Dettagli

Architettura 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

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

La macchina di Von Neumann

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

Dettagli

Esercizi sulle prestazioni delle memorie cache

Esercizi sulle prestazioni delle memorie cache Esercizi sulle prestazioni delle memorie cache Prof. Alberto Borghese Dott. Massimo Marchi Dipartimento discienzedell Informazione dell alberto.borghese@unimi.it Università degli Studi di Milano A.A. 2012

Dettagli

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

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

Dettagli

Miglioramento delle prestazioni

Miglioramento delle prestazioni Miglioramento delle prestazioni Migliorare sia larghezza di banda sia latenza: uso di cache multiple Introdurre una cache separata per istruzioni e dati (split cache) Beneficio: Le operazioni di lettura/scrittura

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

Introduzione alle gerarchie di memoria

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

Dettagli

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

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

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

Dettagli

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

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

Dettagli

CPU a ciclo multiplo

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

Dettagli

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1 Esercizio 1 Sia data una memoria cache di tipo a indirizzamento diretto (direct-mapped), con blocchi di dimensioni pari a una sola parola per blocco, e contenente. La parola è lunga 16 bit, e la memoria

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

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

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

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

Dettagli

Elementi di informatica

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

Dettagli

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

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la

Aggiornato il 18 giugno 2015. 1 Questa affermazione richiede una precisazione. A parità di altre condizioni, l eliminazione dello stadio ME allunga la 8 Questo documento contiene le soluzioni ad un numero selezionato di esercizi del Capitolo 8 del libro Calcolatori Elettronici - Architettura e organizzazione, Mc-Graw Hill 2009. Sarò grato a coloro che

Dettagli

Il linguaggio macchina

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

Dettagli

Architettura hardware

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

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione

Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione Struttura del processore L unità di elaborazione Data-path ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole da 32 bit I registri: PC; MAR/MDR (di appoggio per accesso

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

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

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

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente: Architettura degli Elaboratori Prima prova di verifica intermedia - A.A. 2014-2015 Riportare Nome, Cognome, Numero di matricola e Corso di appartenenza su tutti i fogli consegnati. I risultati saranno

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

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato

Dettagli

Architettura dei Calcolatori Elettronici

Architettura dei Calcolatori Elettronici Architettura dei Calcolatori Elettronici Prof. Orazio Mirabella L architettura del Calcolatore: esame delle sue caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2007/2008 Calcolatori Elettronici B a.a. 27/28 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw

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

L unità di controllo di CPU a singolo ciclo

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

Dettagli

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano

Il problema dello I/O e gli Interrupt. Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il problema dello I/O e gli Interrupt Appunti di Sistemi per la cl. 4 sez. D A cura del prof. Ing. Mario Catalano Il Calcolatore e le periferiche Periferica Decodifica Indirizzi Circuiti di Controllo Registri

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori a.a. 2013/14 appello straordinario, 13 aprile 2015 Riportare nome, cognome, numero di matricola e corso A/B Domanda 1 Si consideri la seguente gerarchia di memoria memoria

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

Dischi e CPU. Alcuni esercizi sulle prestazioni (seconda parte)

Dischi e CPU. Alcuni esercizi sulle prestazioni (seconda parte) Dischi e CPU Alcuni esercizi sulle prestazioni (seconda parte) Calcolo della «domanda» di servizio alla CPU D C,CPU = U C / X C tempo medio di CPU consumato per transazione U C = utilizzo della classe

Dettagli

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

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

Dettagli

La gerarchia di memorie (2)

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

Dettagli

Realizzazione a cicli di clock multipli

Realizzazione a cicli di clock multipli Realizzazione a cicli di clock multipli Riprendiamo in esame la realizzazione dell'unità di calcolo per individuare, per ciascuna classe di istruzioni, le componenti utilizzate e suddividere le azioni

Dettagli

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

Dettagli

PRESTAZIONI. senza e con memoria cache

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

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docenti: Silvia Crafa, Nicolò Navarin (lab), Alessandro Sperduti Docenti Silvia Crafa Nicolò

Dettagli

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 ALU: Moltiplicazione e divisione Architettura degli Elaboratori e delle Reti Lezione 7 ALU: Moltiplicazione e divisione F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/34 Sommario! Sommatori

Dettagli

Trend di sviluppo delle pipeline

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

Dettagli

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

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 /36 Sommario

Dettagli

Corso di Fondamenti di Informatica Elementi di Architettura

Corso di Fondamenti di Informatica Elementi di Architettura di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica

Dettagli

Struttura hw del computer

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

Dettagli

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità Sistema di Memoria Caratteristiche desiderabili Ampia capacità Velocità Economicità 1 Memoria Cache L'idea alla base della memoria cache nasce dalla semplice osservazione che la memoria centrale (dove

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili

Dettagli

Colloquio di informatica (5 crediti)

Colloquio di informatica (5 crediti) Università degli studi della Tuscia Dipartimento di Scienze Ecologiche e Biologiche Corso di laurea in Scienze Ambientali A.A. 2013-2014 - II semestre Colloquio di informatica (5 crediti) Prof. Pier Giorgio

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

Von Neumann Bottleneck

Von Neumann Bottleneck Von Neumann Bottleneck Gerarchia di memoria Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo

Dettagli

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria Esercitazione su Gerarchie di Memoria Introduzione Memoria o gerarchie di memoria: cache, memoria principale, memoria di massa etc. (con possibilità di fallimenti nell accesso) o organizzazione, dimensionamento,

Dettagli

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

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

Dettagli

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

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

Dettagli

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

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

Dettagli

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

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2004/2005 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

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

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

Dettagli

Ciclo del Processore. Memoria

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

Dettagli

Memoria Cache. G. Lettieri. 16 Marzo 2017

Memoria Cache. G. Lettieri. 16 Marzo 2017 Memoria Cache G. Lettieri 16 Marzo 2017 1 Introduzione La memoria centrale è molto più lenta del processore. Possiamo rendercene conto scrivendo un programma che accede ripetutamente agli elementi di un

Dettagli

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio Appunti di informatica Lezione 5 anno accademico 2015-2016 Mario Verdicchio L algoritmo di Euclide per l MCD Dati due numeri A e B, per trovare il loro MCD procedere nel seguente modo: 1. dividere il maggiore

Dettagli

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

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net Tipi di memorie Possono essere classificate in base a varie caratteristiche:

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

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

Il supporto al sistema operativo

Il supporto al sistema operativo Politecnico di Milano Il supporto al sistema operativo Prof. Mariagiovanna Sami sami@elet.polimi.it 2007- Obiettivi e Funzioni Perché introdurre il sistema operativo? Convenienza Rende più facile usare

Dettagli