Sistemi a Microprocessore
|
|
- Giacomo Casati
- 7 anni fa
- Visualizzazioni
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
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............................
DettagliIndirettezza. 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
DettagliPipeline 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
DettagliIl 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
DettagliCapitolo 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
DettagliCicli 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
DettagliIl 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
DettagliRichiami 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
DettagliIl 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
DettagliCPU 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!
DettagliSistemi 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
DettagliEsercitazione 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
DettagliCapitolo 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
DettagliESERCIZIO 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
DettagliArchitettura 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à
DettagliRichiami 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
DettagliInstruction 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
DettagliInstruction 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
DettagliCPU 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
DettagliCalcolatori 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
DettagliComponenti 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
DettagliArchitettura 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
DettagliL'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
DettagliComponenti 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
DettagliIl 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
DettagliFasi (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
DettagliEsercitazione 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
DettagliBlocchi 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:
DettagliARCHITETTURE 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
DettagliArchitettura 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
DettagliComponenti 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
DettagliLa 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
DettagliEsercizi 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
DettagliARCHITETTURA 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
DettagliMiglioramento 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
DettagliEsercitazione 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
DettagliIntroduzione 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
DettagliComponenti 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
DettagliCLASSIFICAZIONE 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.
DettagliSistemi 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
DettagliCPU 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
DettagliEsercizi 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
DettagliCorso 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
DettagliInstruction 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
DettagliUniversità 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).
DettagliElementi 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
DettagliCorso 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
DettagliAggiornato 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
DettagliIl 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
DettagliArchitettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
DettagliEsercitazione 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,
DettagliData-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
DettagliCPU pipeline 4: le CPU moderne
Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16
DettagliIntroduzione 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
DettagliArchitettura 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
DettagliEsercizio 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
DettagliLa 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
Dettagli8 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
DettagliIl 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliSistemi 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
DettagliCalcolatori 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
DettagliLa 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
DettagliL 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,
DettagliIl 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
DettagliArchitettura 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
DettagliArchitettura 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.
DettagliDischi 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
DettagliESERCIZIO 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
DettagliLa 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
DettagliRealizzazione 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
DettagliStruttura 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,
DettagliPRESTAZIONI. 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,
DettagliArchitettura 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ò
DettagliLezione 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
DettagliTrend 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
Dettaglistatic 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
DettagliLezione 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
DettagliCorso 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
DettagliStruttura 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:
Dettagli06/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
DettagliArchitettura 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
DettagliColloquio 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
DettagliFallimenti 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
DettagliVon 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
DettagliEsercitazione 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,
DettagliArchitettura 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
DettagliINGEGNERIA 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
DettagliArchitettura 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.
DettagliPipeline 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
DettagliUniversità 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
DettagliIl 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
DettagliCiclo 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
DettagliMemoria 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
DettagliAppunti 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
DettagliMemorie 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:
DettagliElaborazione 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
DettagliArchitettura 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
DettagliIl 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