Sistemi a Microprocessore

Размер: px
Начинать показ со страницы:

Download "Sistemi a Microprocessore"

Транскрипт

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

2 La Memoria La memoria in un calcolatore serve per immagazzinare dati e le istruzioni dei programmi da eseguire I principali tipi di memorie che si possono trovare su un microcontrollore, e su un calcolatore in genere, sono: ROM (Read Only Memory) : programmata permanentemente dal costruttore, non modificabile RAM (Random Access Memory) : memoria volatile di lettura e scrittura EEPROM (Electrically EPROM) : memoria non volatile, scrittura e cancellazione di celle entrambe elettriche FLASH : memoria non volatile, variante delle EEPROM, scrittura e cancellazione entrambe elettriche, non di singole celle, ma di blocchi (updating +veloce) 08/11/2007 Sistemi a Microprocessore A.A Parametri di Valutazione Dimensione: definita in bit o byte. Talvolta fornita in modo tale da descrivere l architettura interna. Es.: 64K x 4 bit: celle di 4 bit Velocità: Tempo di accesso: intervallo di tempo intercorso tra la richiesta della lettura e la disponibilità del dato Tempo di ciclo: intervallo di tempo minimo che intercorre tra due operazioni Altri Parametri: Potenza Dissipata, Costo, Integrazione 08/11/2007 Sistemi a Microprocessore A.A

3 Interfaccia Generica di una Memoria Una Memoria è in generale accessibile attraverso un Registro indirizzo (MAR) ed un registro Dati (MDR) Un Segnale R/W indica se l operazione è di lettura o scrittura Architettura della memoria MAR MDR R/W In Lettura: L indirizzo viene messo in MAR il dato letto viene recuperato da MDR. In Scrittura: L indirizzo viene messo in MAR il dato in MDR. 08/11/2007 Sistemi a Microprocessore A.A Principali tecnologie per la RAM Le memorie RAM sono di due tipi Memorie statiche: Static Random Access Memory (SRAM) Memorie dinamiche: Dynamic Random Access Memory (DRAM) Memorie statiche Il singolo elemento corrisponde ad un flip-flop Memorie dinamiche Il singolo elemento corrisponde ad un condensatore ed un transistor (dopo pochi millisecondi le informazioni vengono perse) L informazione è memorizzata sotto forma di carica del condensatore Richiedono un refresh periodico dell informazione Per ottimizzare la realizzazione indirizzi di riga e indirizzi di colonna vengono passati sullo stesso canale in successione Le memorie statiche sono (rispetto a quelle dinamiche) Più veloci Più costose (6 transistor per bit) Persistenti (non è richiesto il refresh) Più affidabili. 08/11/2007 Sistemi a Microprocessore A.A

4 Ciclo Operativo nelle memorie Statiche 08/11/2007 Sistemi a Microprocessore A.A Ciclo Operativo nelle memorie Dinamiche Tempo di Ciclo RAS CAS Indirizzo RIGA COLONNA WRITE DATO DATO VALIDO Tempo di Accesso Nota: I Segnali RAS,CAS e WRITE sono negati. 08/11/2007 Sistemi a Microprocessore A.A

5 Struttura di una memoria Statica 16x8 08/11/2007 Sistemi a Microprocessore A.A Una Memoria Statica 1K x 8 08/11/2007 Sistemi a Microprocessore A.A

6 DRAM: multiplazione degli indirizzi Dato l elevato impaccamento delle DRAM il numero di pin di I/O è un problema E` usuale multiplare nel tempo l indirizzo delle righe e delle colonne negli stessi fili Normalmente le memorie non sono indirizzabili al bit, per cui righe e colonne si riferiscono a byte e non a bit Es. una memoria 2M X 8 (21 bit di indirizzo) può essere organizzata in 4096 righe (12bit di indirizzo) per 512 colonne (9bit di indirizzo) di 8 bit ciascuno 08/11/2007 Sistemi a Microprocessore A.A Organizzazione di una DRAM 2M X 8 08/11/2007 Sistemi a Microprocessore A.A

7 Una Memoria Dinamica 1M x 1 RAS Latch Indirizzo RIGA Decodificatore di RIGA... Array di celle di memoria 32x32 Indirizzo Sense/ Write Sense/ Write Sense/ Write CS Latch Indirizzo RIGA Decodificatore di COLONNA R/W CAS 08/11/2007 Sistemi a Microprocessore A.A DRAM: modo di accesso veloce Spesso i trasferimenti da/per la memoria avvengono a blocchi (o pagine) Nello schema appena visto, vengono selezionati prima 4096 bytes e poi tra questi viene scelto quello richiesto E possibile migliorare le prestazioni semplicemente evitando di riselezionare la riga ad ogni accesso se le posizioni sono consecutive Questo viene chiamato Fast Page Mode (FPM) e l incremento di prestazioni può essere significativo 08/11/2007 Sistemi a Microprocessore A.A

8 Memoria 4M x 32 Controllo Accesso Start Busy Controllo delle temporizzazione Refresh Req Refresh Ack Controllo Refresh Refresh Row/Column CAS RAS Contatore Refresh Multiplexer di Indirizzo... Array di celle di memoria 4x8 Indirizzo Decodificatore di COLONNA R/W Dati 08/11/2007 Sistemi a Microprocessore A.A DRAM sincrone (SDRAM) Le DRAM visto prima sono dette asincrone perchè non esiste una precisa temporizzazione di accesso, ma la dinamica viene governata dai segnali RAS e CAS Il processore deve tenere conto di questa potenziale asincronicità in caso di rinfresco in corso può essere fastidiosa Aggiungendo dei buffer (latch) di memorizzazione degli ingressi e delle uscite si può ottenere un funzionamento sincrono, disaccoppiando lettura e scrittura del rinfresco e si può ottenere automaticamente una accesso FPM pilotato dal clock 08/11/2007 Sistemi a Microprocessore A.A

9 Organizzazione base di una SDRAM 08/11/2007 Sistemi a Microprocessore A.A SDRAM: esempio di accesso in FPM 08/11/2007 Sistemi a Microprocessore A.A

10 Organizzazione delle memorie La memoria ideale dovrebbe essere a capacità infinita, tempo di accesso nullo e costo e consumo nullo. Nei casi reali l organizzazione del calcolatore comprende diversi tipi di memorie con caratteristiche diverse Alcune memorie sono dedicate, ossia sono progettate per contenere specifici tipi di dati (es la EPROM o flash di bootstrap) Altre memorie sono general-purpose e si può accedervi mediante specifici metodi di indirizzamento per leggere o scrivere dati di qualsiasi tipo. Il loro impiego dipende dalle loro caratteristiche e da come il dato viene impiegato durante il funzionamento del calcolatore 08/11/2007 Sistemi a Microprocessore A.A Organizzazione delle memorie 08/11/2007 Sistemi a Microprocessore A.A

11 Organizzazione delle memorie Organizzazione gerarchica (tipica dei calcolatori generalpurpose) La CPU vede un solo tipo di memoria, indirizzata direttamente tramite un identificatore (indirizzo) L hardware (MMU) e il sistema operativo gestiscono invece un insieme di memorie organizzate gerarchicamente che contengono repliche dei dati in modo che la CPU trovi ad ogni accesso il dato utile nella memoria più veloce possibile Gerarchia di memorie: La memoria del calcolatore e organizzata gerarchicamente in modo da comprendere poche memorie a bassa capacità ed alti costi ma molto veloci e molta memoria più lenta e di capacità maggiore 08/11/2007 Sistemi a Microprocessore A.A Organizzazione delle memorie 08/11/2007 Sistemi a Microprocessore A.A

12 Organizzazione delle memorie Nella gerarchia di memoria i dati sono temporaneamente trasferiti in memorie sempre più veloci. L obiettivo e di organizzare le politiche di piazzamento ed accesso dei dati in modo tale da avere i dati più frequentemente usati, o in generale più utili virtualmente sempre nelle memorie più veloci. 08/11/2007 Sistemi a Microprocessore A.A Organizzazione delle memorie La memoria interna alla CPU è costituita dai registri ed è caratterizzata da: alta velocità (comparabile con quella del processore) e limitate dimensioni (al più qualche migliaio di byte). La memoria centrale o principale è caratterizzata da,dimensioni molto maggiori della memoria interna alla CPU (fino a qualche Gbyte) ma tempi di accesso più elevati. È accessibile in modo diretto tramite indirizzi. Nei sistemi attuali un livello di memorie cache e stato inserito tra CPU e memorie centrali Memorie secondarie: In un calcolatore esistono diverse memorie secondarie (o memorie di massa) ad alta capacità bassi costi e non volatili 08/11/2007 Sistemi a Microprocessore A.A

13 Organizzazione delle memorie 08/11/2007 Sistemi a Microprocessore A.A Organizzazione delle memorie 08/11/2007 Sistemi a Microprocessore A.A

14 Organizzazione delle memorie Regola base dell'efficienza è rendere di massima velocità il caso più frequente Sfruttamento della località spaziale e temporale Principio di località un programma in ogni istante utilizza una porzione limitata dello spazio di indirizzamento Località spaziale: accedendo ad un dato è assai probabile che si debba accedere ad altri dati localizzati vicino nello spazio di indirizzamento Località temporale: accedendo ad un dato è assai probabile che si debba riaccedere ad esso in un tempo vicino 08/11/2007 Sistemi a Microprocessore A.A Organizzazione delle memorie Dati che inizialmente si trovano ad un livello più basso (loc. temporale) conviene spostarli in memorie più veloci (loc. spaziale) conviene spostare anche i dati vicini I programmi NON vedono la gerarchia ma referenziano i dati come se fossero sempre in memoria centrale (a parte per i registri che sono nominati esplicitamente) perciò bisogna mantenere il più vicino possibile alla CPU dati utilizzati più recentemente. La gerarchia delle memorie deve prevedere in successione memorie sempre più larghe e più lente per mantenere i dati nei livelli più alti proporzionatamente alla previsione della frequenza d uso. 08/11/2007 Sistemi a Microprocessore A.A

15 Blocchi di locazione di memoria Gerarchia di memoria: più livelli Blocco: unità di informazione minima scambiata fra livelli (ex: 32 bytes) Hit: un accesso alla memoria che trova l'informazione cercata nel livello superiore (accesso veloce) Hit Rate: frequenza di accessi trovati nel livello superiore (h) Miss Rate: (1 - h) caso di insuccesso (non trovo il dato nella memoria adiacente/livello superiore) devo andare nel livello inferiore (accesso più lento) Hit Time: tempo di accesso al livello superiore Th 08/11/2007 Sistemi a Microprocessore A.A Blocchi di locazione di memoria Miss Penalty: tempo per rimpiazzare un blocco nel livello superiore più il tempo per fornirlo alla CPU. Il "miss penalty, Tmp, può anche essere scomposto nei tempi per reperire il primo dato di un blocco più il tempo per trasferire gli altri. Comprende certamente un Th e un overhead nel caso di miss (Tmiss) Tacc = h Th + (1-h)Tmp Tmp = Th + Tmiss allora Tacc = Th + (1-h)Tmiss Il Tmiss comprende il tempo per reperire il blocco nella gerarchia di livello più basso più (eventualmente trascurabile) il tempo per rimpiazzare i dati dal livello alto al livello più basso (se il livello più alto deve essere svuotato, cioè se devo salvare i dati che sono in esso presenti, operazione di write-back) 08/11/2007 Sistemi a Microprocessore A.A

16 Gerarchia: esempio Supponiamo un sistema a due livelli in cui per accedere al primo livello (memoria centrale) il tempo di accesso sia 0.1 microsec (100 ns) per ogni dato e per accedere al secondo (ad esempio HD) sia di 0.1 msec. Quando si accede al secondo livello il dato deve essere copiato nel primo. Ipotizziamo che le probabilità di trovare il dato al primo livello siano del 95% (h). Trascuriamo il tempo necessario al processore per capire dove si trova il dato (trascurabile rispetto al tempo di accesso). Quanto è il tempo di accesso medio? (In microsec) Tacc= ( )= = 5.1 microsec Basta un 5% di penalizzazione di miss che tutto l accesso medio è fortemente rallentato, nel caso specifico di ben 5 volte Circa 10 3 differenza di dimensioni (es. 10K 10M) Circa 10 3 differenza di tempo di accesso (es s 10-4 s) 08/11/2007 Sistemi a Microprocessore A.A Gerarchia di memorie Parametri di progettazione gerarchia di memoria: Quanti livelli di gerarchia che dimensione e velocità per ogni livello ogni tipo di memoria si definisce in base al 1) Piazzamento del blocco (o funzione di traduzione o mapping): dove può essere allocato il blocco al livello corrente 2) Identificazione del blocco: come si può ritrovare il blocco a livello corrente 3) Rimpiazzamento del blocco: come si sceglie quale blocco sostituire 4) Strategia di scrittura Ad esempio a livello di registri L identificazione è nominale (mov ax,15) il piazzamento e rimpiazzamento, scrittura e definito dal compilatore 08/11/2007 Sistemi a Microprocessore A.A

17 Memoria centrale Memoria centrale è la memoria fisicamente e logicamente collegata direttamente alla CPU. Dal punto di vista della gerarchia: 1) Piazzamento del blocco: deciso dall indirizzo nell istruzione 2) Identificazione del blocco: indirizzo (sw, compilatore, SO, traduzione diretta) 3) Rimpiazzamento del blocco: deciso dal codice 4) Strategia di scrittura: deciso dal codice Il software (applicativo + SO) ha il controllo dello spazio di indirizzamento Nota la mappa della memoria La CPU legge e scrive su memoria centrale mandando un indirizzo fisico della dimensione pari al suo bus di indirizzi (spazio di indirizzamento) per l 8086 ad esempio 20 bit, creo un indirizzo di 20 bit (indirizzo 1 M). 08/11/2007 Sistemi a Microprocessore A.A Organizzazione di un sistema con memoria cache La memoria centrale e la memoria cache sono organizzate in blocchi di parole o di byte, di ugual dimensione La memoria cache contiene copie di blocchi della memoria centrale, oppure blocchi liberi ad ogni blocco di cache è associato un bit - valid - che indica se il blocco è significativo o libero Il sistema di gestione della cache è in grado di copiare (caricare) blocchi dalla memoria centrale alla memoria cache oppure di ricopiare (scaricare) blocchi dalla memoria cache alla memoria centrale tramite un apposita unità funzionale Il processore accede sempre e comunque prima alla memoria cache L uso della memoria cache per incrementare le prestazioni del sistema di memoria sfrutta il principio di località dei programmi 08/11/2007 Sistemi a Microprocessore A.A

18 Funzionamento base Istruzioni Il processore deve leggere un istruzione Se il blocco che contiene l istruzione da prelevare si trova in cache, l istruzione viene letta e eseguita Se l istruzione non si trova in cache: il processore sospende l esecuzione il blocco contenente l istruzione viene caricato dalla memoria centrale in un blocco libero della memoria cache il processore preleva l istruzione dalla cache e prosegue l esecuzione Dati Il processore deve leggere un dato dalla memoria cache: si procede come visto per la lettura di istruzioni Il processore deve scrivere un dato in memoria: si procede in modo simile ma esiste il problema della coerenza tra memoria cache e memoria centrale (scrittura differita o non differita) 08/11/2007 Sistemi a Microprocessore A.A Memoria cache: definizioni Hit: un accesso alla memoria che trova l'informazione cercata nella cache Miss: quando non si ha un hit e si deve accedere alla memoria centrale Hit Rate (tasso di hit): frequenza (h) di accessi trovati in cache (rapporto tra il numero di hit in cache e il numero totale di riferimenti) Miss Rate: (m) caso di insuccesso ovvero non trovo il dato nella memoria cache (rapporto tra il numero di miss in cache e il numero totale di riferimenti) Vale la relazione m=(1 - h) 08/11/2007 Sistemi a Microprocessore A.A

19 Memoria cache: definizioni Hit Time: tempo di accesso alla cache Tc Miss Penalty: tempo per rimpiazzare un blocco nella cache più il tempo per fornirlo alla CPU. Il "miss penalty, Tp, può anche essere scomposto nei tempi per reperire il primo dato di un blocco più il tempo per trasferire gli altri. Comprende certamente un Th e un overhead nel caso di miss (Tmiss) Tacc = h Tc + (1-h)Tp Tmp = Tc + Tmiss allora Tacc = Tc + (1-h)Tmiss 08/11/2007 Sistemi a Microprocessore A.A Memoria cache: Posizionamento 08/11/2007 Sistemi a Microprocessore A.A

20 Memoria Cache: funzionamento E necessario tenere traccia dei dati in cache Un catalogo (directory) consente di ricercare il dato in base all indirizzo generato dalla CPU La struttura del catalogo dipende dall organizzazione della cache E importante definire la quantità di dati letti dalla memoria e portati in cache in presenza di un miss Vale il principio di Località spaziale Memoria cache e centrale sono viste come insiemi di blocchi di dimensione fissa dette linee La linea è un unità trasferita in blocco per ridurre il tempo medio di trasferimento dei singoli dati Il tempo di penalizzazione Tp è: Tp = T Ram +T cache T cache è il tempo impiegato per trasferire in cache la linea che contiene la parola indirizzata 08/11/2007 Sistemi a Microprocessore A.A Memoria Cache: Organizzazione Nell organizzazione della cache è importante l associazione tra le linee della memoria centrale e quella della cache Quale posizione in cache verrà occupata da una linea letta dalla memoria centrale Tre tipi di organizzazione Cache a mappatura diretta Cache completamente associativa Cache parzialmente associativa o setassociative 08/11/2007 Sistemi a Microprocessore A.A

21 Memoria Cache: progettazione Quanto visto si riassume come segue: Metodo di indirizzamento come scegliere il blocco della cache in cui copiare un blocco di memoria centrale (mapping) Metodo di identificazione come localizzare un blocco di memoria centrale all interno della cache Metodo di scrittura (coerenza) come comportarsi quando si deve scrivere una parola contenuta in un blocco della memoria cache Metodo di sostituzione come si sostituiscono blocchi della cache per liberare spazio 08/11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta Ogni blocco della memoria centrale è caricabile in un solo blocco della cache Più blocchi di memoria centrale possono essere caricati nello stesso blocco di memoria cache (conflitti) Mapping: il blocco di indice (indirizzo) j della memoria centrale è caricabile solo nel blocco di indice (indirizzo): resto div intera di j/n blocchi della cache 08/11/2007 Sistemi a Microprocessore A.A

22 Cache: a mappatura diretta Si assuma: Una cache di capacità L=2 l linee Linee di W=2 w parole Una capacità C = LxW parole Una memoria centrale di dimensione B = 2 b blocchi, multipla della dimensione della cache L indirizzo di una parola è 08/11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta Il contenuto del campo lungo b bit (I B ) può essere visto come numero d ordine del blocco di memoria Il contenuto del campo lungo l bit (I L ) come numero di linea nel blocco Quello del campo lungo w bit (I W ) come numero di parola entro la linea I B 0 0 -> indirizzo base del blocco I B I L 0 -> indirizzo della linea nel blocco I B I L I w -> indirizzo della parola nella linea 08/11/2007 Sistemi a Microprocessore A.A

23 Cache: a mappatura diretta Con la mappatura diretta tutte le B linee in posizione IL dentro un qualunque blocco di memoria sono mappate sulla stessa linea di cache 08/11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta La cache è fatta da due parti (banchi): TAG RAM (banco sx) Rappresenta il catalogo dei dati contenuto nell altro banco Ogni posizione ha dimensione pari a quella del campo I B dell indirizzo generato dalla CPU DATA RAM (banco dx) Contiene i dati Ogni posizione ha la dimensione di una linea di cache 08/11/2007 Sistemi a Microprocessore A.A

24 Cache: a mappatura diretta Il campo IL identifica la posizione della linea in DATA RAM e TAG RAM Il valore del TAG RAM è confrontato con I B Se uguali, il dato è in cache e letto direttamente dal DATA RAM La linea di hit è asserita e abilita l uscita dal multiplexer della parola Se diversi, si ha la linea di hit disasserita (miss) e inizia il processo di lettura della memoria centrale della linea contente la locazione indirizzata. I B è copiato nella TAG RAM e la linea letta rimpiazza quella esistente in DATA RAM 08/11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta La ricerca in TAG e in DATA RAM avviene in parallelo In caso di HIT, il segnale di OE rende disponibile la parola letta Si ipotizza che al multiplexer sia presente una intera linea e che si selezioni la parola indirizzata Di solito DATA RAM è fatta di L x W parole e la parola si trova esattamente all indirizzo I L I w Quando un programma esegue ripetutamente un ciclo che con coinvolge due blocchi di memoria a ogni passaggio da un blocco all altro le linee di cache sono sostituite Calo delle prestazioni 08/11/2007 Sistemi a Microprocessore A.A

25 Cache: a mappatura diretta Esempio: Memoria centrale da 4Gbyte, cache a mappatura diretta da 1KByte, blocchi da 32Byte Accesso a memoria a byte: blocchi da 32 byte: 5 bit di indirizzo per identificare il singolo byte cache di 32 blocchi (1Kbyte/32byte): 5 bit di indirizzo per identificare il blocco 22 bit di etichetta = 32 (4Gbyte) /11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta Esempio Indirizzi di memoria a 32 bit Cache a mappatura diretta: blocco costituito da una parola di 4 byte 1024 blocchi (2 10 ) Struttura dell indirizzo di memoria: Bit 0 e 1 per individuare il singolo byte nella parola Bit 2-11 per individuare il blocco di cache Bit come etichetta 08/11/2007 Sistemi a Microprocessore A.A

26 Cache: a mappatura diretta Esempio: Memoria centrale 4Gigabyte (32 bit indirizzo) Accesso a memoria a parole da 32 bit Blocchi da 4 parole (16 byte): 2 bit per parola nel blocco, 2 bit per byte nella parola Memoria cache da 16kparole: 12 bit per indirizzare un blocco (n blocchi = 214/22) Etichetta da 16 bit 08/11/2007 Sistemi a Microprocessore A.A Cache: a mappatura diretta 08/11/2007 Sistemi a Microprocessore A.A

27 Cache a mappatura diretta: Esercizio Si consideri un calcolatore con memoria centrale di 64KB, indirizzabile a byte (parola=1byte) e dimensione di blocco di 8Byte. Si assuma di usare una cache a mappatura diretta di 256Byte: a) dire in quali campi gli indirizzi di memoria sono suddivisi ai fini della cache e quali sono le dimensioni (in numero di bit) di ogni campo R: La memoria ha dimensione 64KB = 2 16 Byte, quindi un indirizzo è costituito da 16 bit. I 16 bit saranno suddivisi nei campi Etichetta, Linee, Parola. Poiché una parola è costituita da 1Byte ed un blocco da 8Byte = 2 3 B, il campo Parola sarà di 3 bit. Il numero di linee della cache è calcolato dividendo la sua capacità per la dimensione di blocco: 256B/8B = 32 = 2 5, quindi il campo Linee sarà di 5 bit. I rimanenti ( ) = 8 bit saranno dedicati al campo Etichetta. 08/11/2007 Sistemi a Microprocessore A.A Cache a mappatura diretta: Esercizio Si consideri un calcolatore con memoria centrale di 64KByte, indirizzabile a byte (parola=1byte) e dimensione di blocco di 8Byte. Si assuma di usare una cache a mappatura diretta di 256Byte: b) dire in quale linea verrebbero memorizzati i byte con i seguenti indirizzi: 111Bhex C334hex D01Dhex AAAAhex R: ricordando che un indirizzo è suddiviso nel seguente modo 111Bhex linea 3 C334hex linea 6 D01Dhex linea 3 AAAAhex linea 21 08/11/2007 Sistemi a Microprocessore A.A

28 Cache completamente associativa Una linea di memoria può essere copiata in qualunque posizione della cache Il TAG RAM si comporta come una memoria CAM (Content Addresable Memory) Ogni linea di memoria in cache ha un indirizzo univoco I x memorizzato nella TAG RAM La TAG RAM è costituita da L posizioni di t=(b+l) bit ciascuna Il campo I x dell indirizzo viene confrontato in parallelo con il contenuto (tutte le linee) della TAG RAM. Se I x è presente si ha un hit e il valore è letto dalla cache, altrimenti si va in memoria centrale 08/11/2007 Sistemi a Microprocessore A.A Cache completamente associativa Rispetto alla mappatura diretta: In caso di miss occorre individuare quale linea sostituire tra le L possibili Algoritmi di rimpiazzamento Si cerca la linea della DATA RAM dopo che è conclusa la ricerca in TAG RAM. Tempo di accesso maggiori Complessità hardware maggiore Costo maggiore 08/11/2007 Sistemi a Microprocessore A.A

29 Cache completamente associativa 08/11/2007 Sistemi a Microprocessore A.A Cache parzialmente associativa Definizione: Si definisce Grado di Associatività di una cache il numero di posizioni del catalogo che devono essere confrontate con il campo I B. La cache a mappatura diretta ha grado di associatività pari a 1. La cache completamente associativa ha un grado di associatività pari al numero di linee di cache. Se il grado di associatività è n si parla di memoria cache a n vie. 08/11/2007 Sistemi a Microprocessore A.A

30 Cache parzialmente associativa: 2 vie 08/11/2007 Sistemi a Microprocessore A.A Cache parzialmente associativa : 2 vie La parte bassa dell indirizzo seleziona la parola effettivamente indirizzata Le due linee di hit0 e hit1 abilitano o meno uno dei due selettori Ciascuna linea di memoria può essere mappata in due differenti linee di cache: banco dx o sx. In caso di miss occorre scegliere in quale via deve essere copiato la linea di memoria A parità di condizioni le prestazioni sono comparabili con la mappatura diretta 08/11/2007 Sistemi a Microprocessore A.A

31 Cache parzialmente associativa : 4 vie A 4 vie: ogni blocco di memoria centrale può essere caricato in 4 blocchi di cache, quindi la dimensione di ogni gruppo è di 4 blocchi Memoria centrale 4Gbyte: 32 bit Memoria cache 1K parole (1 parola=4byte), blocchi da 1 parola Organizzazione dell indirizzo: Bit 0 e 1 per indirizzare i byte Numero blocchi nella cache = dimensioni della cache/dimensioni del blocco= 2 10 /1 = 2 10 Numero di gruppi nella cache= numero di blocchi/ dimensioni del gruppo = 2 10 /2 2 = 2 8 Bit 2-10 indice del gruppo nella cache Bit etichetta 08/11/2007 Sistemi a Microprocessore A.A Cache parzialmente associativa : 4 vie 08/11/2007 Sistemi a Microprocessore A.A

32 Esercizio Cache 1 Si consideri una cache di 4KB con associazione a gruppi a 8 vie ( 8-way set associative) in congiunzione con una memoria centrale di 1MB. Supponendo che un blocco sia di dimensione 64B, si dica come un indirizzo di memoria è suddiviso in campi e a quanto ammonta la dimensione di ogni campo. 08/11/2007 Sistemi a Microprocessore A.A Esercizio Cache 1 Soluz.: trattandosi di una cache con associazione a gruppi, l indirizzo di memoria centrale deve essere suddiviso nei campi tag, set, e parola. la memoria centrale è di 1MB, cioè 2 20 byte; pertanto un indirizzo di memoria centrale è espresso in 20 bit. la dimensione del campo parola è individuato univocamente dall dimensione del blocco, che è di 64B, cioè 2 6 byte; pertanto il campo parola è di 6 bit. una cache di 4KB possiede 2 12 byte; ogni linea deve contenere un blocco e quindi impegna 2 6 byte; quindi la cache contiene 2 12 /2 6 = 2 6 linee. Poiché un insieme deve contenere 8 linee, il numero di insiemi della cache è pari a 2 6 /2 3 =2 3. Pertanto il campo set è di 3 bit. la dimensione del campo tag sarà dunque: = 11 bit 08/11/2007 Sistemi a Microprocessore A.A

33 Esercizio Cache 2 Si consideri una cache di 16KB con associazione a gruppi a 4 vie ( 4-way set associative) e dimensione di linea di 32B. Supponendo che il campo tag sia di 12 bit, si dica quale è la dimensione massima (in byte) di memoria principale che la cache è in grado di gestire, assumendo il singolo byte come unità di indirizzamento della memoria. 08/11/2007 Sistemi a Microprocessore A.A Esercizio Cache 2 Soluz.: per calcolare la quantità massima di memoria principale gestibile, bisogna calcolare il numero di bit totali che esprimono una generica locazione di memoria. trattandosi di una cache con associazione a gruppi, l indirizzo di memoria centrale deve essere suddiviso nei campi tag, set, e parola. sappiamo che il campo tag è di 12 bit; quindi occorre calcolare la dimensione dei campi set e parola. la dimensione del campo parola è individuato univocamente dalla dimensione del blocco, che è di 32B, cioè 2 5 byte; pertanto il campo parola è di 5 bit. una cache di 16KB possiede 2 14 byte; ogni linea deve contenere un blocco e quindi impegna 2 5 byte; quindi la cache contiene 2 14 /2 5 = 2 9 linee. Poiché un insieme deve contenere 4 linee, il numero di insiemi della cache è pari a 2 9 /2 2 =2 7. Pertanto il campo set è di 7 bit. quindi la dimensione massima di memoria gestibile è: , cioè 16MB 08/11/2007 Sistemi a Microprocessore A.A

34 Cache: Il problema della scrittura Un operazione di scrittura può generare un hit o un miss come un operazione di lettura Miss in scrittura Si pone il problema se portare la linea di memoria in cache o no: Write allocate: richiede la selezione della linea di cache dove copiare la linea di memoria (Algoritmi di rimpiazzamento) Write non-allocate: la scrittura avviene direttamente in memoria centrale all indirizzo generato. Si preferisce il Write non-allocate poiché le operazioni di scrittura si verificano con frequenza minore (percentuale più bassa) rispetto a quelle di lettura e i dati possono essere sparsi (indirizzi non contigui e distanti) 08/11/2007 Sistemi a Microprocessore A.A Cache: Il problema della scrittura Hit in scrittura In cache abbiamo una copia dei dati presenti in memoria centrale un operazione di scrittura renderebbe inconsistente il contenuto della cache con la memoria centrale Due tipi di aggiornamento (scrittura): immediato (write through) a posteriori o differito (write-back o copy-back) 08/11/2007 Sistemi a Microprocessore A.A

35 Cache: write through Tutte le scritture in cache vengono fatte anche in memoria Si mantiene la consistenza Influenza negativamente le prestazioni Incrementa il traffico sul bus di sistema Sconsigliato per sistemi multiprocessore a bus condiviso Alcune architetture prevedono un buffer di appoggio in scrittura: Si scrive prima in cache e poi in modo asincrono in memoria Problema legato allo svuotamento Efficace per scritture isolate Va in saturazione se le scritture sono fatte su grossi blocchi di dati la sua presenza è allora ininfluente 08/11/2007 Sistemi a Microprocessore A.A Cache: write back L informazione viene scritta solo in cache. La memoria viene aggiornata solo quando avviene la sostituzione del blocco. Si accede in scrittura in cache Il processore non viene rallentato Non si genera traffico sul bus Il catalogo deve tenere traccia delle linee modificate dentro la cache (dirty bit) La marcatura di una linea (modificata), candida la linea ad essere rimpiazzata e verrà copiata in memoria Se una linea non è marcata il controllore di cache esegue il caricamento della linea dalla memoria centrale. 08/11/2007 Sistemi a Microprocessore A.A

36 Cache: Lo stato della linea di cache In seguito ad una scrittura differita occorre tener traccia della possibile modifica nella linea di cache Occorre definire un informazione di stato che può variare in relazione alla tecnica di gestione utilizzata E sufficiente un bit per segnare la validità All avvio del sistema tutte le linee sono invalide Al caricamento di una linea dalla memoria la corrispondente linea in linea è segnata valida In seguito ad una richiesta di trasferimento in memoria sul canale DMA, le linee di cache non corrispondono ai blocchi in memoria (perché sono stati cambiati) Occorre invalidare queste linee La ricerca in cache di un dato implica la verifica della validità del dato validità della linea 08/11/2007 Sistemi a Microprocessore A.A Cache: Lo stato della linea di cache Sistemi multitasking e memoria virtuale Al termine dell esecuzione di un processo il S.O sceglie quale processo attivo mettere in esecuzione In seguito all intervento del gestore della memoria centrale, il nuovo processo può sovrapporsi sullo spazio indirizzi ancora presenti in cache ma relativi al processo terminato. Le linee esistenti non sono più valide Per evitare di invalidare tutta la cache, si può abbinare al bit di validità l identificativo del processo La ricerca di un dato in cache prevede il confronto del bit di validità e la verifica dell ID del processo con quello correntemente in esecuzione Il costo di tale cache è maggiore dovuto alla memoria aggiuntiva necessaria per gestire l identificatore del processo che riferisce alla linea. 08/11/2007 Sistemi a Microprocessore A.A

37 Cache: Algoritmi di rimpiazzamento Gli algoritmi di rimpiazzamento sono necessari con cache con un associatività superiore a uno. La mappatura diretta ha un rimpiazzamento implicito con il funzionamento stesso. Si introduce un controllore che determina quale linea rimuovere (su base algoritmica) Tutti gli algoritmi si basano sull uso di contatori Il numero di contatori combinato alla loro dimensione fornisce una misura della complessità della logica usata per il rimpiazzamento Si considera una cache associativa a N vie con L linee per via 08/11/2007 Sistemi a Microprocessore A.A Cache: Algoritmi di rimpiazzamento La generica posizione è indicata con I L in corrispondenza della quale si trova le N linee corrispondenti alla N vie Le vie sono numerate da 0 a N-1 Le linee (allineate lungo le N-1 vie) sono indicate come l 0, l 1,, l N-1 l i,j indica linea i sulla via j V i,j indica il bit di validità associato a l i,j (1 = linea valida). In totale si hanno LxN bit di validità. In presenza di più miss sulla stessa linea occorre stabilire un criterio di selezione Definizione: Si definisce via prioritaria la via più a sinistra (con indice più basso) tra tutte quelle non valide. 08/11/2007 Sistemi a Microprocessore A.A

38 Cache: Algoritmi di rimpiazzamento Algortimi possibili: LRU (Least Recently Used) Si rimpiazza la linea non utilizzata da più tempo, è molto probabile che il codice/dati nella linea sono poco frequentati dall esecuzione del programma Complessi e costosi da realizzare FIFO (First In First Out) Si assume un modello di esecuzione del programma di tipo sequenziale Media complessità RAND (Random) Si rimpiazza in modo casuale Semplice da realizzare 08/11/2007 Sistemi a Microprocessore A.A Cache: Sostituzione randomica In caso di miss occorrerebbe generare un numero a caso compreso tra 0 e N-1. La generazione casuale prevede una rete logica complessa Considerando che i miss avvengono in modo casuale rispetto a tutte le linee di cache Si usa un contatore C unico per la cache Il contatore è modulo N-1 La scelta della linea da rimpiazzare (miss) avviene guardando prima tra le linee non valide Se le N linee alla posizione l sono tutte valide si seleziona la linea sulla via il cui numero d ordine uguaglia il contatore. Il contatore viene quindi aggiornato. In caso di hit non succede niente 08/11/2007 Sistemi a Microprocessore A.A

39 Cache: Sostituzione randomica Hit: non succede niente; Miss: esistono linee non valide? Sì: j indice della via prioritaria No: j C Sostituzione l j ; C (C+1)modN; V lj 1 Nota: La sostituzione di una linea comporta l affermazione del bit di validità 08/11/2007 Sistemi a Microprocessore A.A Cache: algoritmo LRU Ad ogni posizione I L di cache si assegna una lista ordinata di riferimenti In testa alla lista è riportata la linea riferita più di recente In coda quella riferita meno di recente La lista richiede N posti e ogni posto corrisponde ad un contatore modulo N. In totale si hanno L x N contatori Ogni contatore richiede un numero di bit pari a: log 2 N Nel caso di 2 vie serve un solo bit e in totale quindi N 08/11/2007 Sistemi a Microprocessore A.A

40 Cache: LRU Metodo dello stack Si assuma una cache a 4 vie Lo stack per ogni posizione I L è di 4 posizioni (vie) e ciascuna è gestita da un registro a 2 bit S 0 contiene la via riferita di recente e S 3 quella meno recente Lo schema seguente considera solo il caso di hit e non tiene conto del valid bit. Il segnale hclk (hit clock) è l impulso che deriva dall avvenuto hit. In j si ha il numero d ordine della via su cui è avvenuto l hit 08/11/2007 Sistemi a Microprocessore A.A Cache: LRU Metodo dello stack L aggiornamento dello stack in caso di hit prevede: Il numero di via j passa in S 0 e si sposta a destra la parte che sta alla sinistra del registro che conteneva j. Es: Hit su l 0 e stato dello stack pari a 1302 La configurazione diventa /11/2007 Sistemi a Microprocessore A.A

41 Cache: LRU Metodo dello stack L aggiornamento dello stack in caso di miss con linee tutte valide prevede: Portare l uscita di S 3 in S 0 e far scorrere a destra S 0, S 1 e S 2 La gestione del valid bit comporta una complicazione nell hardware 08/11/2007 Sistemi a Microprocessore A.A Cache: LRU Metodo dei contatori per linea Si assume una cache a 4 vie Ad ogni linea è associato un contatore per gestire l ordine di riferimento Si assume di rimpiazzare la linea non valida con via di ordine minore Nella tabella: C 0, C 1, C 2 e C 3 sono i contatori 08/11/2007 Sistemi a Microprocessore A.A

42 Cache: LRU Metodo dei contatori per linea In caso di hit si aggiornano i contatori Incrementando i contatori di valore più basso di quello della linea su cui si ha lo hit Si azzera il contatore In caso di miss Selezionare la prima riga non valida, o in mancanza, la linea con il contatore uguale a N- 1 Aggiornare i contatori come si fosse stato un hit sulla linea e portare il bit di validità a 1 08/11/2007 Sistemi a Microprocessore A.A Cache: LRU Metodo dei contatori per linea Sia C li (l=0,,l-1; i=0, N-1) il generico contatore preso dalla matrice di contatori C di dimensione L x N Si indichi con V lj il generico bit di validità preso dalla matrice V di pari dimensioni Si ha: Hit: j numero di via su cui si verifica lo hit per ogni i tale che C li < C lj : C li (C li +1)modN; C li 0 Miss: esistono linee vuote? Sì: j via prioritaria; No: j i tale che C li = N-1; per ogni i tale che C li < C lj : C li (C li +1)modN; C li 0; V lj 1 08/11/2007 Sistemi a Microprocessore A.A

43 Cache: LRU Metodo dei contatori per linea L algoritmo LRU basato sui contatori è molto costoso Occorrono molti contatori e una logica di controllo Problemi di spazio sull integrato della CPU 08/11/2007 Sistemi a Microprocessore A.A Cache: pseudo LRU Algortimo introdotto nella CPU Intel 486 Cache associativa a 4 vie Ogni via 2 KB, 16 Byte per linea per un totale di 128 linee per via Politica di scrittura: write-through/write-non allocate (le operazioni di scrittura aggiornano la cache solo in caso di hit di scrittura) Il rimpiazzamento si basa su 3 bit per la linea invece di 8 (come richiesto nel caso dei contatori, pari a 4) I tre bit B 0, B 1 e B 2 (bit LRU) sono utilizzati per creare un albero di decisione e aggiornati in caso di hit (lettura e scrittura) o miss in lettura Con l 0, l 1, l 2 e l 3 si indicano le linee nella generica posizione I L relative alle 4 vie 08/11/2007 Sistemi a Microprocessore A.A

44 Cache: pseudo LRU In presenza di un hit si aggiornano i bit B 0, B 1 e B 2 seguendo lo schema seguente: 1 B B 1 B l 0 l 1 l 2 l 3 0 Per avere un hit nella via 2 il valore dei bit assume la seguente configurazione: 0 x 1 il bit B 1 non viene modificato e rimane settato al valore che aveva prima dello hit. Ovvero, si aggiustano i solo i bit che Permettono di determinare la via più recente. 08/11/2007 Sistemi a Microprocessore A.A Cache: pseudo LRU Albero di decisione Decisione in caso di Miss 08/11/2007 Sistemi a Microprocessore A.A

45 Cache: pseudo LRU 08/11/2007 Sistemi a Microprocessore A.A Cache: LRU vs Pseudo Nel caso dell evento 10, l algoritmo LRU sostituisce l 1 mentre lo pseudo LRU l 2 Lo pseudo LRU a seguito di un miss che sostituisce in una delle due vie di sinistra predispone la sostituzione per un miss successivo sulle vie di destra Esempio: tutte le linee valide 4 hit ai gruppi l 0, l 1, l 2, l 3 in successione Stato dei bit 000 Cosa succede se avvengono due miss? Viene sostituito l 0 ed i bit aggiornati a 110 Viene sostituito l 2 invece di l 1 Partendo da 100 Hit 110 Hit 100 Hit 001 Hit /11/2007 Sistemi a Microprocessore A.A

46 Cache: tecnica FIFO La tecnica FIFO tiene conto solo dell ordine di ingresso in cache Occorre disporre un contatore per linea che conti modulo N Nel caso di una cache a 4 vie a N blocchi per via occorrono N contatori modulo 4 Counter C 0 Line 0 Line 0 Line 0 Line 0 C i Line i Line i Line i Line i N Vie 08/11/2007 Sistemi a Microprocessore A.A Cache: tecnica FIFO Quando la cache è vuota i contatori sono resettati (sono a 0) Al primo miss su la linea i il relativo contatore C i viene messo a 1 ed indica che al prossimo miss la via da utilizzare è la 1. Il blocco desiderato viene caricato nella via 0 Nel caso in questione i contatori sono a 2 bit in totale 2N bit L algoritmo FIFO deve quindi: In caso di hit lasciare tutto invariato In caso di miss: Controlli che esistano linee NON VALIDE tra quelle del generico insieme di linee i in caso affermativo elimina la linea della via prioritaria (quella più a sx) Se non esistono linee NON VALIDE sull insieme di linee selezionato, si seleziona la via più vecchia indicata dal contatore; la nuova linea viene caricata e il contatore incrementato di 1 08/11/2007 Sistemi a Microprocessore A.A

47 Cache: tecnica FIFO In virtù di quanto detto, l algoritmo si può scrivere come: Hit: non succede niente Miss: esistono linee vuote? sì: C via prioritaria sostituzione della riga in colonna C C(C+1)modN (bit di validità della linea 1) 08/11/2007 Sistemi a Microprocessore A.A Cache: tecnica FIFO Implementazione hw Miss i C o u n t e r Decoder W0 W1 W2 W3 Write 08/11/2007 Sistemi a Microprocessore A.A

48 Cache: Analisi Prestazioni Il tempo medio di accesso alla memoria in presenza della cache è dato dalla eq. T acc = h t c + m t p h tasso di hit, m tasso di miss (m=1-h) t c tempo di accesso in cache t p tempo di penalizzazione (somma del tempo di latenza della memoria centrale e del tempo necessario al trasferimento della linea in cache L equazione presenta 4 grandezze che forniscono altrettanti criteri di ottimizzazione 08/11/2007 Sistemi a Microprocessore A.A Cache: Analisi Prestazioni Criteri di ottimizzazione: Massimizzare il tasso di hit Minimizzare il tempo di accesso all informazione in cache (minimo tempo di hit) Minimizzare il ritardo dovuto a un miss (minimo tempo di penalizzazione) Minimizzare il tempo necessario per la gestione della coerenza delle cache per i sistemi multiprocessori o in sistemi con più livelli di cache 08/11/2007 Sistemi a Microprocessore A.A

49 Cache: Effetto della cache sulle prestazioni Si consideri il MIPS come indice di prestazione Indicato con T pi il tempo medio per eseguire completamente un istruzione (fetch + decodifica/esecuzione) espresso in µs (microsecondi) si ha MIPS = 1 / T pi Se il prelievo e la decodifica/esecuzione non si sovrappongono si può considerare T pi = T m + (n ex /f) Dove T m è il tempo medio di accesso alla memoria n ex è il numero medio di cicli di clock per decodificare ed eseguire l istruzione f è la frequenza di clock 08/11/2007 Sistemi a Microprocessore A.A Cache: Effetto della cache sulle prestazioni Indicato con N il numero di cicli dalla CPU per leggere in memoria e con N w gli eventuali cicli di attesa: T m = (N + N w )/f Pertanto sostituendo si ha MIPS = f/(n + N w +n ex ) Il massimo di prestazione si ha per N=1 e N w =0 Nel caso di N=1 e n ex =1 un ciclo di attesa abbatte del 33% le prestazioni Con pipeline dove N+ n ex =1 un ciclo di attesa dimezza le prestazioni 08/11/2007 Sistemi a Microprocessore A.A

50 Cache: Effetto della cache sulle prestazioni - Conclusioni Una cache ben progettata deve avere un t c che consenta di accedere in un ciclo di clock in caso di hit e un T acc molto basso Su T acc influiscono m e t p Questi parametri risentono della dimensione, dell organizzazione e la modalità di gestione della cache 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni Il miss rate m è influenzato principalmente da: La dimensione della cache La dimensione della linea Il grado di associatività Tuttavia vanno considerati: L algoritmo di rimpiazzamento Il precarimento La scrittura in memoria centrale (write-through/copy back) Cache divisa o unificata Cache su più livelli Il posizionamento della cache (cache fisica o virtuale) La multiprogrammazione Le operazione di I/O Single o multi core 08/11/2007 Sistemi a Microprocessore A.A

51 Cache: La dimensione della cache A dimensioni maggiori corrisponde una probabilità maggiore di trovare l informazione 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni: la dimensione della linea A dimensioni maggiori della linea corrisponde un aumento della capacità della cache di giovare della località spaziale ma diminuisce il numero di linee allocate in cache con conseguente diminuzione della probabilità di ritrovare l informazione in tempi successivi (diminuisce la località temporale) All aumentare della dimensione si ha un ritardo nella lettura dalla memoria con maggiore probabilità di copiare dati inutili (istruzioni non eseguite e dati non utilizzati) La dimensione di linea è il compromesso tra un alto h e un basso t p 08/11/2007 Sistemi a Microprocessore A.A

52 Cache Elementi che influenzano le prestazioni: Associatività Con l aumentare del grado di associatività migliorano le prestazioni Diminuiscono i conflitti tra le linee nella stessa posizione relativa diminuisce m Ma aumentano i tempi di ricerca della linea Più alto è il grado di associatività e più la logica di gestione si complica Rispetto alla mappatura diretta h è più alto nelle cache associative La differenza tende ad annullarsi al crescere della dimensione della cache 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni: Associatività Il problema del trashing nelle cache associative si manifesta quando un programma in esecuzione copre più di una linea L i in differenti blocchi di memoria In presenza di cicli ripetuti o salti tra queste linee si assiste ad un attività di continuo caricamento nella stessa posizione di cache Poiché costa meno accedere ad una parola direttamente in memoria che trasferire una linea di cache abbassamento delle prestazioni Per cache abbastanza grandi la probabilità che avvenga ciò è molto bassa Se comparate con le cache a mappatura diretta, quest ultime sono: Meno costose (non c è la logica di rimpiazzamento) Il tempo di accesso è inferiore (manca la logica) Il rimpiazzamento è guidato dal tipo di orgnizzazione 08/11/2007 Sistemi a Microprocessore A.A

53 Cache Elementi che influenzano le prestazioni: gli algoritmi di rimpiazzamento L algoritmo LRU è quello che offre le prestazioni migliori Le cache attuali sono a associative con gestione LRU o semplificata a 2, 4 o 8 vie. Il prelievo della linea: Gli algoritmi prevedono che la linea sia caricata quando è effettivamente richiesta (demand fecthing) Si può operare una tecnica di prefetch delle linea se si tiene conto della località temporale Un miss su una qualunque linea rende molto probabile un miss sulla linea successiva. Si può prelevare sia la linea richiesta che quella successiva 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni: gli algoritmi di rimpiazzamento Il prefetch: Sono possibili 2 realizzazioni 1. Utilizzo di un controllore e un buffer Il controllore legge la linea richiesta e la successiva Il buffer contiene la linea successiva in attesa che serva 2. Trasferire direttamente in cache anche la linea successiva Vantaggi: Diminuisce il tasso di miss nelle cache di grandi dimensioni E stato stimata una riduzione del 75-80% Svantaggi: Complessa logica del controllore Aumenta la memory pollution (inquinamento della memoria cache). La memoria contiene dati inutili mai utilizzati. 08/11/2007 Sistemi a Microprocessore A.A

54 Cache Elementi che influenzano le prestazioni: Cache divisa o unificata Conviene avere una cache per i dati e una per le istruzioni? Gli accessi alle istruzioni hanno un alto grado di località e sono di sola lettura: una cache istruzioni ha un h relativamente più elevato in presenza di pipeline occorre però raddoppiare la larghezza di banda del bus per consentire il fetch e la lettura/scrittura di un dato contemporaneamente uso inefficiente dovuto alla variazione da programma a programma della percentuale di memoria utilizzata dai dati e dalle istruzioni 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni: Cache divisa o unificata E stato provato sperimentalmente che una cache unificata si adatta meglio nella gestione dati e istruzioni Una cache unificata ha prestazioni superiori di una cache divisa di pari dimensioni La cache del 486 era unificata Il pentium ha una cache divisa 08/11/2007 Sistemi a Microprocessore A.A

55 Cache Elementi che influenzano le prestazioni: aggiornamento memoria centrale Write back Le scritture sono eseguite alla velocità della cache Scritture multiple nella cache richiede una gestione logica complessa e conveniente in ambienti multiprocessore Write through Logica più semplice Garantisce una coerenza dei dati rispetto a quelli presenti nella memoria di livello inferiore Valido per ambienti multiprocessore 08/11/2007 Sistemi a Microprocessore A.A Cache Elementi che influenzano le prestazioni: Cache multilivello La cache serve a ridurre il divario di velocità tra CPU e memoria centrale La necessità di grosse dimensioni per contenere informazioni utili si scontra con le esigenze di velocità si introducono livelli di cache successivi Cache a 2 livelli: La cache di primo livello è più veloce e tiene il passo della CPU Il secondo livello sarà di dimensioni maggiori per soddisfare la maggior parte delle richieste verso la memoria centrale 08/11/2007 Sistemi a Microprocessore A.A

56 Cache Elementi che influenzano le prestazioni: Cache multilivello La velocità del primo livello influenza la frequenza del clock della CPU La velocità del secondo livello si riflette unicamente sulla penalizzazione nei miss sul primo livello 08/11/2007 Sistemi a Microprocessore A.A Elementi che influenzano le prestazioni: Cache multilivello Per una cache a due livelli il tempo medio di accesso diventa: T acc = h 1 x t c1 + m 1 x (h 2 x t c2 + m 2 x t p ) t c2 (tempo di accesso al secondo livello) comprende il tempo di trasferimento da livello 2 al livello 1 t p è la combinazione del tempo di accesso al livello 2 e quello necessario per trasferire il blocco dalla memoria centrale Il miss rate sul secondo livello è misurato sui miss nel primo livello ovvero: Tasso di fallimenti locali: numero di fallimenti nel secondo livello diviso il numero totale di accesso allo stesso livello (m 2 ) Tasso di fallimenti globali: numero dei fallimenti nella cache diviso il numero totale di accessi generati dalla CPU (m 1 x m 2 ) 08/11/2007 Sistemi a Microprocessore A.A

57 Elementi che influenzano le prestazioni: Cache multilivello In accordo all organizzazione gerarchica della memoria la cache di secondo livello è più grande della cache di primo livello Se la differenza nelle dimensioni del primo livello e secondo livello è: piccola aumenta il tasso di fallimento Elevata il tasso di fallimento globale è circa uguale a quella di una cache mono livello di pari dimensioni (la somma delle dimensioni dei 2 livelli) La dimensione del livello 2 deve essere più vicina a quella della memoria centrale 08/11/2007 Sistemi a Microprocessore A.A Elementi che influenzano le prestazioni: posizionamento della cache Se si considerano sistemi con memoria virtuale occorre posizionare la cache rispetto al MMU (Memory Management Unit) Sono possibili due soluzioni: 08/11/2007 Sistemi a Microprocessore A.A

58 Elementi che influenzano le prestazioni: posizionamento della cache Cache fisica (Soluzione 1): La cache sta a valle del traduttore di indirizzi virtuali/logici in indirizzi fisici (486 e Pentium) Cache virtuale (Soluzione 2) La cache è posta tra la CPU e l MMU e si utilizzano gli indirizzi virtuali/logici Se il dato appartiene a una linea (nello spazio degli indirizzi logici) presente in cache si ha un hit e non si deve tradurre niente perché l informazione è in cache (Sun SPARC) 08/11/2007 Sistemi a Microprocessore A.A Elementi che influenzano le prestazioni: posizionamento della cache Cache Fisica vs Virtuale Cache fisica: PRO: più semplice, costa meno, è espandibile CONTRO: negli hit occorre tradurre gli indirizzi da logico a fisico Pro Cache Virtuale PRO: negli hit non si traducono gli indirizzi CONTRO: il problema dell address aliasing Address Aliasing Lo stesso indirizzo virtuale può appartenere a una molteplicità di spazi di indirizzi, relativi a differenti processi. Il dato fornito dalla cache deve quindi corrispondere al processo in esecuzione 08/11/2007 Sistemi a Microprocessore A.A

59 Elementi che influenzano le prestazioni: posizionamento della cache Soluzioni all Address Aliasing Soluzione 1: Si invalida la cache (flush) in seguito al cambio di contesto (context switching o task switching) Serve un meccanismo automatico di invalidazione o lasciata al S.O. (in questo caso la macchina deve fornire una istruzione di invalidazione) Soluzione 2: Cache virtuale multicontesto: ad ogni linea di cache è associato un process tag per identificare il processo correntemente in esecuzione e quindi la linea ad esso corrispondente Efficiente ma costosa 08/11/2007 Sistemi a Microprocessore A.A La Memoria Gestione della Memoria Virtuale 59

60 La memoria virtuale Con riferimento alla gerarchia di memoria, la memoria virtuale riguarda la memoria centrale e la memoria di massa Il funzionamento della memoria virtuale si basa sul principio di località (spaziale e temporale) E stata introdotta per consentire l esecuzione in modo trasparente dei programmi di dimensione superiore alla memoria centrale La gestione della memoria nei computer attuali è gestita dall unità MMU (Memory Management Unit) Traduce l indirizzo logico ( o virtuale ) generato dalla CPU in indirizzo fisico in memoria centrale Fornisce i meccanismi di protezione degli accessi: controlla ed evita che gli indirizzi di un processo appartengano ad un altro processo Costituisce il supporto Hardware sul quale si appoggia il S.O. per la gestione complessiva del sistema 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) La struttura di un sistema operativo, tipicamente, è quella a cipolla: 08/11/2007 Sistemi a Microprocessore A.A

61 La memoria virtuale: Sistema Operativo (richiami) L hardware è dunque ricoperto da una serie di strati di software. Ciascun livello: usa le funzionalità di quello sottostante fornisce servizi al livello che segue nella gerarchia gestisce delle risorse mediante politiche invisibili ai livelli superiori 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) Il livello più basso è quello del kernel (nucleo). Questa parte del sistema operativo si occupa di gestire l esecuzione dei programmi. Un programma in esecuzione è detto processo. Il kernel distribuisce le risorse di calcolo tra i vari processi attivi. 08/11/2007 Sistemi a Microprocessore A.A

62 La memoria virtuale: Sistema Operativo (richiami) Una prima distinzione è dunque tra quei sistemi che eseguono un processo per volta e quelli in grado di gestirne diversi contemporaneamente. Questi ultimi sono detti multitasking. I sistemi operativi possono inoltre essere distinti in base al modo in cui gestiscono i processi: 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) batch: i processi vengono raggruppati in lotti; interattivi: l input viene elaborato subito per poi richiedere di nuovo l intervento dell utente; time-sharing: il tempo del processore viene suddiviso in intervalli, e questi sono assegnati ciclicamente ai vari processi che lo richiedono; real-time: i processi devono restituire comunque un risultato entro un certo tempo (che abbiano o meno avuto accesso alle risorse richieste). 08/11/2007 Sistemi a Microprocessore A.A

63 La memoria virtuale: Sistema Operativo (richiami) Non tutti i processi sono attivi nello stesso momento; un processo può trovarsi in uno di tre stati: in esecuzione: sta utilizzando il processore; in attesa: sta aspettando il risultato di un evento esterno, come un operazione di I/O; pronto: è potenzialmente in condizione di utilizzare la CPU. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) Un processo in esecuzione può cambiare stato per tre diverse ragioni: l esecuzione termina o viene terminata; il processo richiede l utilizzo di un altra risorsa, e viene messo in attesa; la CPU viene assegnata ad un altro processo. 08/11/2007 Sistemi a Microprocessore A.A

64 La memoria virtuale: Sistema Operativo (richiami) E il sistema operativo, dunque, a gestire lo stato dei vari processi. Perché tutto funzioni, è però necessario che ciascun processo non si accorga di aver perso l uso del processore; a questo scopo, l esecuzione deve venire ripresa esattamente dal punto in cui si era interrotta. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) Nei sistemi time-sharing, nel sospendere/riattivare un processo è necessario salvare/caricare tutte le informazioni (Context Switch) in/da un area di memoria denominata Task Control Block (TCB): Valori dei registri della CPU Program Counter e altro Il S.O. assegna un identificatore a ciascun processo e utilizza alcune liste: La lista dei processi ready La lista dei processi bloccati in attesa di essere ripristinati (a seguito di un evento) Le liste in questione sono liste di TCB 08/11/2007 Sistemi a Microprocessore A.A

65 La memoria virtuale: Sistema Operativo (richiami) Dal momento che la memoria di sistema (RAM) è una risorsa finita, nell allocarla ai vari processi il sistema operativo deve risolvere vari problemi: trovare spazio per i vari processi; rilocare il codice caricato in memoria; ridurre la frammentazione. gestire la protezione 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) A B C A B C In memoria sono caricati i processi A e B. A C Anche C viene caricato in memoria. D Il processo B termina, e libera la memoria. Il processo D non trova spazio, anche se la memoria libera complessiva sarebbe sufficiente. 08/11/2007 Sistemi a Microprocessore A.A

66 La memoria virtuale: Sistema Operativo (richiami) Esistono diverse soluzioni alla situazione appena presentata. A C Si compatta la memoria: il processo C viene spostato, liberando così spazio contiguo a sufficienza per D. A C Da questo nasce un altro problema: è necessario aggiornare i riferimenti ai dati in memoria (di C) con i nuovi indirizzi. D 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Sistema Operativo (richiami) Il sistema operativo può riservare un area di un disco per lo swapping. D A B C In memoria sono presenti A, B, e C. D non trova spazio. C C viene copiato su un disco dal gestore della memoria. A B D C D viene caricato in memoria. 08/11/2007 Sistemi a Microprocessore A.A

67 La memoria virtuale: Sistema Operativo (richiami) E necessario suddividere la memoria in blocchi. Ci sono 3 soluzioni: di dimensione fissa(pagine fisiche). I programmi da caricare dovranno essere divisi in pagine logiche. di dimensione variabile (segmenti) segmenti con paginazione Memoria (RAM) Processi G 9 08/11/2007 Sistemi a Microprocessore A.A E F Esempio di pagine fisiche La memoria virtuale: Formalizzazione Al fine di definire formalmente cosa sia la memoria virtuale è necessario introdurre i seguenti concetti: Sia V={v 0,, v n-1 } lo spazio di indirizzamento di un programma P. Tali indirizzi sono detti indirizzi virtuali o logici Sia M={m 0,, m m-1 } lo spazio di memoria fisica Sia f una funzione di mappatura che traduce ad ogni istante di tempo t un indirizzo virtuale v in un indirizzo di memoria fisica m. 08/11/2007 Sistemi a Microprocessore A.A

68 La memoria virtuale: Formalizzazione La funzione identifica il meccanismo di traduzione/mappatura fra un indirizzo virtuale ed un indirizzo fisico; Se l oggetto di indirizzo v non è in memoria centrale (sarà comunque nella memoria di massa) allora si ha un fault Il programma P che ha generato v viene sospeso fino all avvenuto caricamento in memoria dell oggetto indicato da v e la mappa verrà aggiornata Lo spazio degli indirizzi virtuali è indipendente dalle dimensioni della memoria e per il programmatore è virtualmente illimitato Tuttavia il limite pratico è determinato dalla capacità di indirizzamento della CPU 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Formalizzazione La funzione di mappatura può essere realizzata tramite una tabella in memoria, i cui indirizzi equivalgono agli indirizzi virtuali, mentre il contenuto identifica gli indirizzi fisici, come rappresentato nella seguente figura: L utilizzo di una tabella è ovviamente totalmente inefficace, in quanto per ogni indirizzo virtuale è necessario associare una riga della tabella, e quindi la tabella andrebbe ad occupare uno spazio in memoria maggiore di quella realmente disponibile. 08/11/2007 Sistemi a Microprocessore A.A

69 La memoria virtuale: Paginazione Lo spazio degli indirizzi è diviso in blocchi (detti pagine logiche) di dimensione fissata e sottomultipli dello spazio di indirizzamento. In blocchi di uguale dimensione (pagine fisiche) è divisa anche la memoria fisica (è quindi necessario che la pagina sia un sottomultiplo intero della memoria fisica) Le pagine che non possono essere salvate in memoria fisica, a causa della sua limitata dimensione, sono collocate temporaneamente nella memoria di massa e da lì recuperate in caso di bisogno. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Paginazione Per motivi di efficienza è quindi opportuno che la dimensione delle pagine sia anche un multiplo intero del cluster (minima unità di memorizzazione) su disco. Fissati quindi i tre dati a disposizione (spazio di indirizzamento, dimensione della memoria fisica e dimensione del cluster su disco) è possibile stabilire anche la dimensione della pagina. In genere le pagine hanno una dimensione compresa fra 512 byte e 32 Kbyte. Nella figura seguente è rappresentato lo schema di mappatura delle pagine virtuali sulle pagine fisiche o sulla memoria di massa Pagina 1 Pagina 2 08/11/2007 Sistemi a Microprocessore A.A

70 La memoria virtuale: Paginazione Il compilatore traduce il programma in uno spazio di indirizzi virtuale lineare, illimitato Il codice viene suddiviso in pagine dal linker o dal programma di caricamento Ai fini della traduzione, un indirizzo virtuale viene interpretato come composto di due campi che contengono rispettivamente: Il numero di pagina logica Lo scostamento entro la pagina 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Paginazione Esempio: consideriamo uno spazio virtuale di 4 GByte (32 bit per gli indirizzi), con pagine di 4 KByte, possiamo pensare l indirizzo virtuale come suddiviso in due parti: la parte meno significativa composta da 12 bit (12 bit permettono di individuare 4096 indirizzi), e la parte più significativa composta dai rimanenti 20 bit, che permettono di indirizzare distinte pagine di memoria. Per individuare la locazione 1037 all interno della pagina , avremo, dopo la conversione in base 2 dei precedenti valori, la seguente schematizzazione: 08/11/2007 Sistemi a Microprocessore A.A

71 La memoria virtuale: Paginazione Applicando il procedimento inverso, il seguente indirizzo virtuale: Identifica: la locazione ( ) 2 =(1417) 10 della pagina ( ) 2 =(30437) 10 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su singolo livello Il processo di traduzione della locazione di inizio pagina virtuale in inizio pagina fisica viene effettuato dalla PMT (Page Map Table) In corrispondenza di ciascun numero di pagina logica (VPN, Virtual Page Number) fornisce il numero di pagina fisica (RPN) ovvero l indirizzo fisico della prima posizione della pagina in memoria centrale La PMT risiede in memoria fisica e l indirizzo dell inizio della PMT è contenuto in un registro del processore detto RP (Root Pointer) o CR3 nei processori della famiglia Intel. VPN è usato come indice nella PMT 08/11/2007 Sistemi a Microprocessore A.A

72 La memoria virtuale: PMT su singolo livello 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su singolo livello Ogni elemento di PMT è detto Page Table Element (PTE) e rappresenta un descrittore di pagina. Esso contiene: l indirizzo fisico della corrispondente pagina fisica informazioni ausiliarie (PROT): bit P: indica la presenza o meno della pagina in memoria fisica Nell esempio a pp. 138 per la pagina P1 il bit indicherà che non è in memoria e i bit del descrittore perdono di significato. In seguito alla generazione di un indirizzo interno ad una pagina che non è in memoria centrale si ha un page fault. Si genera un interruzione gestita dal S.O. che provvede al caricamento della pagina dal disco e all aggiornamento del bit P. bit A: indica se la pagina in questione è stata indirizzata o meno. Il S.O. legge periodicamente il valore di A e se vale 1lo azzera. In questo modo il S.O. costruisce una statistica che descrive l utilizzo della pagina, e che può essere usata come politica di rimpiazzamento, per esempio utilizzandola per l algoritmo LRU. 08/11/2007 Sistemi a Microprocessore A.A

73 La memoria virtuale: PMT su singolo livello informazioni ausiliarie (PROT): bit M: indica se la pagina è stata modificata (M=1) o meno. Se il contenuto della pagina nella sua permanenza nella memoria centrale viene modificato (scrittura) allora occorre aggiornare la copia sulla memoria di massa. Essa va aggiornata prima che questa usata per un altra pagina logica (di un altro processo). Se non viene modificata, allora può essere rimpiazzata da un altra pagina logica e non è necessario l aggiornamento in memoria di massa uno o più bit ACC: che indicano i diritti di accesso alla pagina da parte dei processi in esecuzione sulla macchina Sono utilizzati per la protezione e il controllo degli accessi. Ad esempio per definire se la pagina è: non scrivibile da programmi utente (es. la pagina è del S.O.) esclusiva di un processo (es. dll parte dati) condivisa da più processi (es. dll parte istruzione) 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su singolo livello Considerazioni: I limiti di questo approccio sono: l occupazione di memoria della PMT La difficoltà a mantenere uno spazio di memoria contiguo in uno spazio virtuale e paginato. Supponendo di avere un indirizzamento a 32 bit e pagine di 4 Kbyte, si ha un indirizzo fatto da 20 bit per il numero di pagina e 12 per lo scostamento. Siamo costretti a memorizzare nella PMT i 20 bit dell indirizzo dell inizio della pagina fisica più i bit addizionali (supponendo che essi occupino altri 6 bit), ottenendo quindi un totale di 26 bit per pagina Al contrario della TAG della cache, che viene normalmente realizzato in hardware e quindi con una dimensione in bit esattamente pari a quella desiderata, la PMT risiede in memoria e quindi l occupazione in bit è un multiplo intero della dimensione minima di memorizzazione (il byte), costringendoci quindi ad utilizzare 4 byte (1 per lo stato e 3 per la pagina fisica) per ogni locazione della PMT. 08/11/2007 Sistemi a Microprocessore A.A

74 La memoria virtuale: PMT su singolo livello Dal momento che nella PMT ci sono quindi 2 20 = righe da 4 byte otteniamo un occupazione complessiva di 4 Mbyte, decisamente troppo elevata rispetto alla memoria fisica normalmente installata in un calcolatore. D altra parte dal momento che la PMT risiede in memoria centrale, e la memoria centrale è paginata, sembra necessario, oltreché opportuno paginare anche la PMT. La necessità di paginare la PMT porta a considerare la possibilità di introdurre un livello ulteriore nella PMT, creando così le premesse per utilizzare una PMT multilivello che ottimizzi lo spazio occupato su disco. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su 2 livelli Per ovviare alla enorme occupazione di memoria della PMT e per garantirne la paginazione, si divide in due livelli la PMT, secondo lo schema rappresentato in figura: 08/11/2007 Sistemi a Microprocessore A.A

75 La memoria virtuale: PMT su 2 livelli La PMT di primo livello è una pagina di memoria che contiene gli indirizzi di inizio pagina delle PMT di secondo livello, le quali contengono a loro volta gli indirizzi di inizio delle pagine fisiche. L indirizzo virtuale è diviso in tre parti, in cui, scorrendo dai bit più significativi a quelli meno significativi, abbiamo l offset all interno della PMT di primo livello, l offset all interno della PMT di secondo livello, e l offset all interno della pagina. Il processore mantiene all interno di un proprio registro (RP) l indirizzo della PMT di primo livello, a cui somma l offset del Livello 1 per ottenere l indirizzo all interno della PMT di primo livello da cui leggere l indirizzo di inizio pagina di secondo livello. Tale valore è un puntatore in memoria all inizio della pagina di secondo livello, al quale viene aggiunto l offset di secondo livello per determinare quale riga della PMT di secondo livello contenga l indirizzo di inizio di pagina fisica. Per ottenere l indirizzo fisico non dobbiamo fare altro che sommare ad esso l offset all interno della pagina fisica. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su 2 livelli Permette la riduzione dell occupazione di memoria della PMT: mentre nel caso precedente avevamo che la dimensione della PMT era invariante rispetto alla memoria effettivamente utilizzata, adesso le pagine di secondo livello vengono create dinamicamente solo quando necessario. Si consideri una memoria indirizzata a 32 bit e pagine di 4 KByte. Si assuma che i campi relativi al primo livello e al secondo siano di 10 bit. In questo modo: La tabella di livello 1 è fatta da 1024 linee che riferiscono ad altrettante tabelle di secondo livello. Se una pagina di secondo livello corrisponde effettivamente ad una pagina di memoria, la pagina di secondo livello potrà contenere 1024 righe da 4 byte (l indirizzo fisico), La tabella di primo livello allora sarà capace di gestire 1024 pagine da 4 Kbyte per un totale di 4 Mbyte di memoria. 08/11/2007 Sistemi a Microprocessore A.A

76 La memoria virtuale: PMT su 2 livelli Con i dati utilizzati in precedenza abbiamo che per individuare l offset all interno di una pagina fisica sono necessari 12 bit, mentre per individuare una delle righe della PMT sono necessari 10 bit (ricordiamo che le righe per ogni pagina della PMT sono 1024, per le assunzioni fatte sulla dimensione di pagina). L indirizzo virtuale è perciò scomponibile secondo il seguente schema: 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: PMT su 2 livelli La tabella a 2 livelli consente di far fronte alla richiesta in modo adattativo: quando un programma richiede l allocazione di memoria può essere necessario allocare tabelle di secondo livello: si alloca una pagina fisica e si inserisce il relativo descrittore nella tabella di livello 1. Nel caso in cui il programma richieda più di 4 Mbyte viene creata una seconda riga nella pagina di primo livello ed una seconda pagina di secondo livello, capace, unitamente alla prima già presente, di gestire fino ad 8 Mbyte di memoria. A regime la memoria conterrà sia le pagine di programma, sia le pagine corrispondenti alle tabelle (Alberi di Traduzione). Anche il S.O. risulterà paginabile per quei programmi e parti che non richiedono spazi di memoria fissi o non paginabili (es: vettore delle interruzioni) 08/11/2007 Sistemi a Microprocessore A.A

77 La memoria virtuale: TLB Il TLB (Translation Lookaside Buffer) è una cache realizzata in hardware che associa ad un indirizzo di pagina virtuale una riga della PMT. Nel TAG di questa cache è contenuto l indirizzo di pagina logica più un bit di validità, mentre nel campo DATA è contenuta una riga di PMT. Nel caso di PMT su due livelli sono memorizzate in cache soltanto le righe delle PMT di secondo livello, visto che la tabella di primo livello è considerata solo come tabella di transizione per la decodifica. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: TLB Lo schema del TLB è rappresentato di seguito: TAG contiene: il numero della pagina logica il bit di validità (V) DATO contiene: Il numero della pagina fisica I bit di protezione (PROT) e il bit M indicatore di modifica Gli indicatori devono essere allineati a quelli della PMT In caso di page fault: 1. La pagina viene caricata in memoria 2. Viene costruito il relativo descrittore in PMT 3. Si costruisce il relativo elemento in TLB 08/11/2007 Sistemi a Microprocessore A.A

78 La memoria virtuale: TLB Nel caso in cui la pagina di memoria non venga indirizzata da lungo tempo: Il riferimento in TLB può essere utilizzato per un altra pagina Un nuovo riferimento alla pagina precedente genera un miss in TLB e la costruzione del nuovo riferimento utilizzando direttamente i dati in PMT Le dimensioni sono inferiori alla cache interna alla CPU: Un elemento in TLB relativo a una pagina viene costruito al primo indirizzamento della pagina o come nel caso di sopra. Il principio di località suggerisce che i riferimenti successivi a quello che ha richiesta la costruzione in TLB saranno con alta probabilità all interno della stessa pagina 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Dimensione Pagina Come dimensionare la pagina? Considerazioni: Pagine grandi agevolano il trasferimento dati dalla memoria di massa: Riduce il tempo di latenza del disco (posizionamento sul settore) Il tempo di trasferimento è quello dominante La dimensione di una PMT è direttamente proporzionale al numero di pagine: per grandi pagine occorrono pochi descrittori PMT piccole TLB piccole Grandi dimensioni introducono però spreco di memoria e la frammentazione interna cioè pagine non usate 08/11/2007 Sistemi a Microprocessore A.A

79 La memoria virtuale: Dimensione Pagina Il problema della frammentazione: Esempio: Si consideri un processo strutturato in tre segmenti (codice, dati e stack) Mediamente l ultima pagina per ciascun segmento risulta per metà vuota 1,5 pagine sprecate per processo. La frammentazione è irrilevante se le dimensioni della memoria centrale sono alte Nel caso di pagine da 4 KByte, memoria di 64MB e 40 processi attivi (come quello di sopra) lo spreco totale è dato da 1,5x4x40 = 240 KB che rapportati a 64MB è pari a 0.4% di spreco Valori tipici 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Tabella delle pagine Invertita Una tabella delle pagine invertita (IPT) è caratterizzata da: Ha un numero di elementi pari al numero di pagine fisiche Ogni elemento (PTE) contiene il numero di pagina virtuale (VPN) e non quello fisico (RPN) insieme alle informazioni di protezione L indicizzazione avviene tramite funzione hash La chiave di ricerca è VPN e la funzione hash produce un associazione tra VPN e posizioni in IPT La funzione genera per ogni chiave k un indice h compreso tra 0 e R-1, dove R indica il numero totale di linee della tabella 08/11/2007 Sistemi a Microprocessore A.A

80 La memoria virtuale: Tabella delle pagine Invertita 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Tabella delle pagine Invertita Si ha quindi una relazione 1:1 tra PTE e pagine fisiche Se il campo VPN del PTE in posizione x contiene il valore y, allora la pagina virtuale y è mappata sulla pagina fisica. L hit avviene se il valore di VPN del PTE determinato dalla funzione hash è uguale al VPN in ingresso usato come chiave di ricerca. In caso contrario si ha un fault Poiché il numero di chiavi (indirizzi virtuali) è molto maggiore della dimensione di IPT, si può avere che differenti indirizzi virtuali siano indicizzati allo stesso modo (collisione): k i k j h(k i ) = h(k j ) La codifica hash garantisce fornisce una complessità di ricerca O(1) rispetto alle tecniche binarie O(log n) Esistono diverse definizioni di funzioni hash e non esiste una funzione hash ideale 08/11/2007 Sistemi a Microprocessore A.A

81 La memoria virtuale: Tabella delle pagine Invertita Gestione delle collisioni Si introducono delle liste di elementi internamente alla IPT mediante puntatori In corrispondenza di una collisione si cerca una posizione alternativa dove collocare il nuovo VPN Individuata la posizione si inserisce il riferimento (puntatore) del nuovo indice nel campo puntatore della posizione precedente Il meccanismo può iterare fino a che non si trova una posizione libera La posizione libera viene identificata utilizzando delle tecniche di scansione lineare ad esempio: [h(k)+j]modr con j=0,1, Se non ci sono posizioni libere si prosegue con il rimpiazzamento (es. algoritmo LRU) 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Tabella delle pagine Invertita In questo caso si ha: Hit se IPT[h].VPN=VPN in caso contrario occorre seguire la catena Il miss si ha quando si raggiunge il valore NULL non si è trovato alcun elemento. NULL 08/11/2007 Sistemi a Microprocessore A.A

82 La memoria virtuale: Tabella delle pagine Invertita Algoritmo LRU per IPT Il S.O. gestisce una lista (lista LRU) per ricordare l ordine degli accessi. In caso di page fault S.O riordina la lista in modo da tenere di conto dei riferimenti tra due page fault (il precedente e quello corrente) La lista LRU riferisce a pagine reali 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Tabella delle pagine Invertita catene lunghe Può accadere di dover seguire una lunga catena per trovare il VPN cercato. Potenzialmente esiste il rischio che la tabella si riempia quando su una stessa posizione si mappa un numero di indirizzi virtuali pari al numero di elementi in tabella. Il problema delle catene lunghe comporta inevitabilmente una degradazione delle prestazioni, questo nonostante una soluzione con TLB La navigazione delle catene avviene se il TLB non fornisce la traduzione. 08/11/2007 Sistemi a Microprocessore A.A

83 La memoria virtuale: Tabella delle pagine Invertita catene lunghe Una soluzione al problema è l utilizzo di un Hash Anchor Table (HAT) La tabella HAT (dimensioni più grandi rispetto all IPT) consente di espandere la gamma dei valori hash 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Tabella delle pagine Invertita catene lunghe I passi di traduzione sono: Hashing del PID e VPN per il calcolo dell indice nella HAT Si individua l indice della IPT da cui partire nella ricerca. Si guarda nella IPT se esiste il processo con il PID richiesto e la VPN. Se esiste, stop. (HIT) Se il PID o il VPN non corrispondono al valore in IPT (primo confronto) si prosegue nella catena di puntatori al successivo riferimento. Ancora, se esiste, stop (HIT), altrimenti si prosegue. Se non si trova un match valido allora si ha un MISS. The surprising thing is that this can be reasonably efficient. If you can have a successful search in only a couple of probes on average, then fewer accesses are needed than to do a lookup in a page table that is more than a couple of levels deep. 08/11/2007 Sistemi a Microprocessore A.A

84 Hash Anchor Table PID = 8 Virtual Address VPN = 0x2AA70 Offset 2 Hash anchor table Hash PID VPN 0 1 0x xFEA x x120C 0x120D x2409A 8 0x2AA70.. match..... Next 0x x120D.... 0x0980 0x00A /11/2007 Sistemi a Microprocessore A.A Hashed Page Table Nella HPT le liste si costruiscono sulle righe senza usare i puntatori La dimensione di riga stabilisce la dimensione massima delle liste L indice di hash è preso come indice di riga e la riga viene percorsa da sx a dx. Il miss avviene se nessuno dei PTE contiene il VPN In caso di hit il PTE fornisce il numero di pagina fisica. Vantaggi: Scansione più efficiente Organizzazione in uno spazio di memoria contiguo per le PTE (accesso vettorizzato) Svantaggi: Rigida = soluzione statica L algoritmo di rimpiazzamento utilizzato è LRU 08/11/2007 Sistemi a Microprocessore A.A

85 Hashed Page Table 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Segmentazione La paginazione offre uno spazio di indirizzamento uni-dimensionale Le pagine sono entità dissociate dalle esigenze e dalle strutture del programma (spazio di indirizzamento continuo) La segmentazione offre uno spazio di indirizzamento multidimensionale I segmenti hanno dimensione variabile sia nello spazio che nel tempo Normalmente la dimensione massima di un segmento è perlomeno un ordine di grandezza superiore alla dimensione di pagina Ogni segmento costituisce uno spazio di indirizzamento a se stante I segmenti sono entità strettamente legate alle strutture del programma Separazione in segmenti codice, dati e stack Risponde ad esigenze diverse da e superiori a quelle della paginazione Separazione tra dati ed istruzioni Protezione di accesso più puntuale e specifica Ha maggiore costo di implementazione ma anche maggiore flessibilità Le dimensioni di segmento possono variare dinamicamente Causa frammentazione esterna Può essere combinata con la paginazione Segmenti grandi possono essere paginati 08/11/2007 Sistemi a Microprocessore A.A

86 La memoria virtuale: Segmentazione In un sistema segmentato, un indirizzo logico è composto da: Il selettore di segmento Lo scostamento all interno del segmento La traduzione: 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Segmentazione Limiti: Nelle operazioni di I/O la dimensione di un segmento è in genere scorrelata rispetto alla dimensione dei blocchi-dati trasferiti. Pregi: Un segmento contiene codice autoreferenziale (intersegmento), cioè raramente si salta in altri segmenti, quindi la probabilità che l esecuzione avvenga sempre nello stesso segmento è molto elevata. Limitato context-switch Di norma le applicazioni usano solo 3 segmenti: codice, dati e stack. L impacchettamento delle funzioni in un unico segmento di codice (eseguito da un buon linker) riduce le operazioni di I/O relative al codice al solo caricamento del segmento Anche se le dimensioni sono grandi lo si legge solo una volta La protezione è superiore alla paginazione, per il legame segmento-modulo di programma: Facilita la condivisione di codice 08/11/2007 Sistemi a Microprocessore A.A

87 La memoria virtuale: Segmentazione Difetti: Frammentazione esterna Poiché la dimensione dei segmenti non è costante, a seguito di allocazioni/deallocazioni si formano zone di memoria non utilizzate tra segmento e segmento, che prese singolarmente sono troppo piccole, ma sommate tra loro possono costituire un valido spazio per l allocazione La deframmentazione o ricompattamento della memoria è una pratica sconsigliata per la complessità nella gestione e il tempo sprecato per effettuarla. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Segmentazione 08/11/2007 Sistemi a Microprocessore A.A

88 La memoria virtuale: segmentazione e paginazione Alcune architettura utilizzano entrambe: La segmentazione per suddividere convenientemente il programma in base alla struttura dello spazio virtuale La paginazione per garantire un efficiente uso della memoria Si elimina la frammentazione esterna ma si ha quella interna. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: segmentazione e paginazione nel processore Intel A partire dalla cpu 80386, Intel ha introdotto la paginazione a valle della segmentazione Terminologia: Spazio lineare degli indirizzi La memoria fisica è uno spazio di indirizzamento lineare, ad ogni byte corrisponde un indirizzo. (Con 32 bit si hanno 4GB, dal Pentium Pro in poi si hanno 36 bit con 64GB) Indirizzo lineare E un indirizzo dello spazio lineare che identifica un byte in modo univoco in memoria fisica Indirizzo logico E dato da due componenti secondo la notazione SR:OFFSET, dove SR è il registro segmento e OFFSET lo scostamento intra segmento 08/11/2007 Sistemi a Microprocessore A.A

89 La memoria virtuale: segmentazione e paginazione nel processore Intel Modo reale Si indirizza come l 8086 Modo protetto Più task contemporaneamente uso della protezione offerta dalla memoria virtuale Il registro di segmento non viene considerato come base dell indirizzo in memoria ma come selettore di segmento La struttura della memoria virtuale del 386 e successivi è: 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Paginazione: Le pagine sono mantenute mediante PMT a due livelli La Page Directory (primo livello per il catalogo delle pagine Le Page Tables per le tabelle di secondo livello Le tabelle hanno tutte dimensione 4KByte 08/11/2007 Sistemi a Microprocessore A.A

90 La memoria virtuale: Il registro CR3 contiene nei 20 bit più significativi l indirizzo dell inizio pagina della PMT di secondo livello, mentre i bit meno significativi sono posti a 0. Ogni riga (detta descrittore di pagina) delle PMT è composta da 4 byte disposti come segue, dei quali evidenziamo i bit più significativi, o che sono già stati trattati in precedenza: 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: bit 0 (P): per la PMT di primo livello indica che la corrispondente PMT di secondo livello è in memoria, mentre per la PMT di secondo livello indica che la corrispondente pagina fisica è in memoria bit 5 (A): Per la PMT di primo livello indica che è stato fatto accesso ad una o più delle pagine indirizzate dalla corrispondente PMT di secondo livello sono state utilizzate. Per la PMT di secondo livello indica che si è fatto accesso ad una o più delle locazioni di memoria della pagina fisica a cui la PMT fa riferimento bit 3 (PWT): Page-level Write Through, quando asserito implica una politica di scrittura immediata in memoria per ogni scrittura della cache interna. Se negato, la logica di gestione della cache effettua scritture differite. bit 4 (PCD): Page-level Cache Disabled, se asserito rende non trasferibile nella cache interna il contenuto della pagina. Se disasserito abilita il trasferimento. bit 6 (D): Per la PMT di primo livello indica che una o più delle 1024 pagine associate alla corrispondente PMT di secondo livello è stata modificata durante la sua permanenza in memoria fisica. Per la PMT di secondo livello indica invece che una o più locazioni della corrispondente pagina fisica è stata modificata durante la sua permanenza in memoria fisica. bit 9-11 a disposizione del sistema operativo bit indirizzo di pagina 08/11/2007 Sistemi a Microprocessore A.A

91 La memoria virtuale: Nello schema seguente è invece rappresentata la procedura fisica per rintracciare un indirizzo fisico a partire dal corrispondente indirizzo virtuale. Si noti la presenza dei moltiplicatori per 4, la cui funzione è già stata evidenziata precedentemente. In tale schema sono indicati con esattezza anche il numero di bit coinvolti in ogni operazione e da dove provengono i bit più e meno significativi. 08/11/2007 Sistemi a Microprocessore A.A La memoria virtuale: Algoritmi di rimpiazzamento Una volta che tutte le pagine di memoria fisica sono state occupate, è necessario spostarne alcune su disco e rendere disponibile la memoria fisica per nuove pagine che possono essere necessarie ai programmi in esecuzione. Così come per le politiche di rimpiazzamento all interno della cache, sono necessari algoritmi che effettuino questo procedimento tentando di ottimizzare le prestazione generali del sistema. Così come per le memorie cache gli algoritmi più diffusi sono riportati di seguito. Algoritmo RAND L algoritmo RAND rimpiazza una pagina presa casualmente fra quelle attualmente in memoria e la salva sulla memoria di massa. Algoritmo FIFO L algoritmo FIFO rimpiazza la pagina che è da più tempo in memoria fisica. Per poter rendere effettivo tale algoritmo è necessario tenere traccia dell ingresso delle pagine in memoria fisica. Algoritmo LRU Tale algoritmo rimpiazza la pagina che non è stata utilizzata da più tempo. Anche in questo caso è necessario tenere traccia dell utilizzo delle pagine che sono attualmente in memoria. Algoritmo WSR Tale algoritmo è detto di rimpiazzamento sulla base del Working Set. Il Working Set di un processo è l insieme delle pagine che tale processo utilizza in un intervallo di tempo Dt. Il sistema operativo tiene traccia dell evoluzione del working set di ogni processo e rimpiazza le pagine a cui non viene fatto accesso. Tale algoritmo è una sorta di LRU ottimizzato rispetto ai singoli processi in esecuzione. 08/11/2007 Sistemi a Microprocessore A.A

Capitolo 11 La memoria cache

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

Подробнее

La memoria centrale (RAM)

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

Подробнее

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Подробнее

Laboratorio di Informatica

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

Подробнее

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

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

Подробнее

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

Подробнее

Gerarchia delle memorie

Gerarchia delle memorie Memorie Gerarchia delle memorie Cache CPU Centrale Massa Distanza Capacità Tempi di accesso Costo 2 1 Le memorie centrali Nella macchina di Von Neumann, le istruzioni e i dati sono contenute in una memoria

Подробнее

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale Memorie Caratteristiche principali Tecnologie di memoria Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola,

Подробнее

Architettura del computer (C.Busso)

Architettura del computer (C.Busso) Architettura del computer (C.Busso) Il computer nacque quando fu possibile costruire circuiti abbastanza complessi in logica programmata da una parte e, dall altra, pensare, ( questo è dovuto a Von Neumann)

Подробнее

Organizzazione della memoria principale Il bus

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

Подробнее

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Подробнее

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Подробнее

Architettura dei calcolatori II parte Memorie

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

Подробнее

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Подробнее

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

Подробнее

Esame di INFORMATICA

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

Подробнее

C. P. U. MEMORIA CENTRALE

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

Подробнее

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

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

Подробнее

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

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

Подробнее

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Подробнее

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Подробнее

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Подробнее

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Подробнее

Il memory manager. Gestione della memoria centrale

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

Подробнее

Architettura dei computer

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

Подробнее

CPU. Maurizio Palesi

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

Подробнее

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

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

Подробнее

Architettura di un calcolatore

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

Подробнее

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Подробнее

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti Banco di registri e memoria Corso ACSO prof. Cristina SILVANO Politecnico di Milano Componenti di memoria e circuiti di pilotaggio L organizzazione interna della memoria e del banco di registri prevedono

Подробнее

DEFINIZIONE 1/2 memoria ad accesso casuale RAM

DEFINIZIONE 1/2 memoria ad accesso casuale RAM CORSO BASE DI TECNICO RIPARATORE HARDWARE RAM Docente: Dott. Ing. Antonio Pagano DEFINIZIONE 1/2 In informatica la memoria ad accesso casuale, acronimo RAM (del corrispondente termine inglese Random-Access

Подробнее

Unità Periferiche. Rete Di Controllo

Unità Periferiche. Rete Di Controllo MODELLO LOGICO-FUNZIONALE DI UN ELABORATORE Centrale di canale Periferiche CPU Memoria centrale ALU CU Memoria Locale ALU = Aritmetic Logic Unit CU = Registri CU ISTRUZIONE Decodificatore Rete Di Controllo

Подробнее

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria Architettura dell elaboratore Capacità di memorizzazione dei dispositivi di memoria: Memoria centrale attualmente si arriva ad alcuni GB centinaia di GB o TB Memoria principale e registri: volatilità,

Подробнее

GESTIONE DELLA MEMORIA CENTRALE

GESTIONE DELLA MEMORIA CENTRALE GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:

Подробнее

Le gerarchie di memoria: memoria cache

Le gerarchie di memoria: memoria cache Le gerarchie di memoria: memoria cache Fino ad ora, si sono considerate le tecniche che consentono di migliorare le prestazioni di un calcolatore modificando le caratteristiche e il modo di funzionamento

Подробнее

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua 12. Implementazione di un File System 1 Struttura del file system Metodi di allocazione Gestione dello spazio libero Implementazione delle directory Prestazioni ed efficienza 2 Utente 12.1.1 Struttura

Подробнее

Gestione della memoria centrale

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

Подробнее

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

Подробнее

IL PROBLEMA DELLA MEMORIA

IL PROBLEMA DELLA MEMORIA Principi di architetture dei calcolatori: la memoria cache Mariagiovanna Sami IL PROBLEMA DELLA MEMORIA Da sempre, il programmatore desidera una memoria veloce e grande (illimitata ) Il problema: le memorie

Подробнее

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID

Memoria secondaria. Struttura del disco. Scheduling del disco. Gestione dell unità a disco. Affidabilità dei dischi: RAID Memoria secondaria Struttura del disco Scheduling del disco Gestione dell unità a disco Affidabilità dei dischi: RAID Sistemi Operativi 13.1 Struttura del disco I dischi vengono indirizzati come grandi

Подробнее

Gestione della Memoria

Gestione della Memoria Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,

Подробнее

Sistema operativo: Gestione della memoria

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

Подробнее

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

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

Подробнее

Livello logico digitale. bus e memorie

Livello logico digitale. bus e memorie Livello logico digitale bus e memorie Principali tipi di memoria Memoria RAM Memorie ROM RAM (Random Access Memory) SRAM (Static RAM) Basata su FF (4 o 6 transistor MOS) Veloce, costosa, bassa densità

Подробнее

Architettura del calcolatore

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

Подробнее

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia [email protected] a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Подробнее

Laboratorio di Informatica

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

Подробнее

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Подробнее

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Подробнее

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Подробнее

1.4b: Hardware. (Memoria Centrale)

1.4b: Hardware. (Memoria Centrale) 1.4b: Hardware (Memoria Centrale) Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.11, 3.13 IV ediz.: cap. 2.8, 2.9 Questi lucidi Memoria Centrale Un

Подробнее

B+Trees. Introduzione

B+Trees. Introduzione B+Trees Introduzione B+Trees Il B+Trees e la variante maggiormente utilizzata dei BTrees BTrees e B+trees fanno parte della famiglia degli alberi di ricerca. Nel B+Trees i dati sono memorizzati solo nelle

Подробнее

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

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

Подробнее

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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

Подробнее

Memoria Virtuale. Lezione 29 Sistemi Operativi

Memoria Virtuale. Lezione 29 Sistemi Operativi Memoria Virtuale Lezione 29 Sistemi Operativi I Principi Abbiamo sinora assunto che durante l esecuzione di un programma, lo stesso debba risiedere completamente in MC Intorno alla metà degli anni 70 viene

Подробнее

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica L hard disk Introduzione alla memoria virtuale Scendiamo di un altro livello CPU Banco Cache Memoria principale Memoria secondaria Dimensioni < 1KB < 1 MB

Подробнее

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Подробнее

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

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

Подробнее

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

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

Подробнее

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Prof. Andrea Borghesan venus.unive.it/borg [email protected] Ricevimento: martedì, 12.00-13.00. Dip. Di Matematica Modalità esame: scritto + tesina facoltativa 1

Подробнее

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Подробнее

La Gestione delle risorse Renato Agati

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

Подробнее

DMA Accesso Diretto alla Memoria

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

Подробнее

Capitolo 11 -- Silberschatz

Capitolo 11 -- Silberschatz Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono

Подробнее

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

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

Подробнее

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

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

Подробнее

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Tecnologia di un Database Server (centralizzato) Gestione del buffer Buffer Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Gestione del buffer Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Buffer

Подробнее

Sistemi Operativi Kernel

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

Подробнее

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Manuale Amministratore Legalmail Enterprise Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise Pagina 2 di 16 Manuale Amministratore Legalmail Enterprise Introduzione a Legalmail Enterprise...3

Подробнее

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

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

Подробнее

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL

GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA PER LA COMPILAZIONE DELLA SCHEDA CCNL GUIDA RAPIDA BOZZA 23/07/2008 INDICE 1. PERCHÉ UNA NUOVA VERSIONE DEI MODULI DI RACCOLTA DATI... 3 2. INDICAZIONI GENERALI... 4 2.1. Non modificare la struttura dei fogli di lavoro... 4 2.2. Cosa significano

Подробнее

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Подробнее

Struttura del calcolatore

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

Подробнее

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1 GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Подробнее

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria

Подробнее

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Подробнее

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Подробнее

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Подробнее

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Подробнее

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica

I componenti di un Sistema di elaborazione. Memoria centrale. È costituita da una serie di CHIP disposti su una scheda elettronica I componenti di un Sistema di elaborazione. Memoria centrale Memorizza : istruzioni dati In forma BINARIA : 10001010101000110101... È costituita da una serie di CHIP disposti su una scheda elettronica

Подробнее

Memorie ROM (Read Only Memory)

Memorie ROM (Read Only Memory) Memorie ROM (Read Only Memory) Considerando la prima forma canonica, la realizzazione di qualsiasi funzione di m variabili richiede un numero di porte AND pari al numero dei suoi mintermini e di prolungare

Подробнее

Corso PLC - Manuale Pratico 1

Corso PLC - Manuale Pratico 1 Corso PLC - Manuale Pratico 1 "!#$ % L'unità centrale di un PLC, chiamata più semplicemente CPU, normalmente occupa il primo modulo del rack. Si individua subito in quanto tipicamente è dotata di un selettore,

Подробнее

Gestione della memoria

Gestione della memoria Prof. Diomede Mazzone Gestione della memoria Memoria Virtuale Cosa accade usualmente Alcuni processi possono rimanere in stato di ready per molto tempo, occupando memoria! Le pagine fisiche di memoria

Подробнее

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Подробнее

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

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

Подробнее

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Подробнее

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine

Подробнее

ARCHITETTURA DEL CALCOLATORE

ARCHITETTURA DEL CALCOLATORE Orologio di sistema (Clock) UNITÀ UNITÀ DI DI INGRESSO Schema a blocchi di un calcolatore REGISTRI CONTROLLO BUS DEL SISTEMA MEMORIA DI DI MASSA Hard Hard Disk Disk MEMORIA CENTRALE Ram Ram ALU CPU UNITÀ

Подробнее

Calcolatori Elettronici B a.a. 2006/2007

Calcolatori Elettronici B a.a. 2006/2007 Calcolatori Elettronici B a.a. 2006/2007 RETI LOGICHE: RICHIAMI Massimiliano Giacomin 1 Due tipi di unità funzionali Elementi di tipo combinatorio: - valori di uscita dipendono solo da valori in ingresso

Подробнее