Anteprima
Vedrai una selezione di 5 pagine su 16
Riassunto esame Calcolatori elettronici Pag. 1 Riassunto esame Calcolatori elettronici Pag. 2
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Riassunto esame Calcolatori elettronici Pag. 6
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Riassunto esame Calcolatori elettronici Pag. 11
Anteprima di 5 pagg. su 16.
Scarica il documento per vederlo tutto.
Riassunto esame Calcolatori elettronici Pag. 16
1 su 16
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

MEMORIA CACHE

Normalmente collocata tra CPU e bus, la memoria cache permette così un alleggerimento del bus, e permette una migliore compatibilità con le architetture multiprocessore. Il principio di funzionamento delle memorie di tipo cache è definito dalla località dei riferimenti, che può essere: - Località temporale: è molto probabile che un programma faccia nuovamente accesso ad una cella a cui aveva già fatto accesso poco prima. - Località spaziale: è molto probabile che un programma faccia accesso ad una cella vicina ad un'altra a cui aveva fatto recentemente accesso. In particolare, se ad un certo istante viene portato in cache un intero blocco di memoria a cui un programma sta accedendo, è molto probabile che per un certo lasso di tempo, tutte le parole di memoria a cui dovrà fare successivamente accesso, apparterranno a quel blocco. Considerando le memorie cache, in termini di prestazioni,vengono definite 3 principali grandezze: - h (hit ratio della cache): rappresenta la percentuale di volte in cui un dato viene trovato nella cache rispetto al numero totale di accessi. - C (tempo di accesso alla cache): indica il tempo necessario per accedere ai dati presenti nella cache. - M (tempo di accesso in memoria quando il dato non è in cache): rappresenta il tempo necessario per accedere ai dati in memoria quando il dato non è presente nella cache. Il tempo medio di accesso in memoria per la CPU, sarà dato dalla seguente formula: t = hC + (1 - h)Mmedio Una cache è composta da un certo numero di linee, ad ognuna delle quali viene associato un campo identificativo tag. La struttura è simile ad una tabella. Supponiamo di avere una RAM di 2kB, una cache con 4 linee, ognuna da 32B (ogni blocco nella RAM è quindi 32B). Per rappresentare tutti gli indirizzi della RAM sono necessari 11 bit. Ogni parola in un blocco può essere rappresentata da 5 bit (32 = 2^5). I rimanenti 6 bit rappresentano il numero del blocco. Supponiamo di voler prendere la parola all'indirizzo di memoria 00011100010; per calcolare in quale linea di cache andrà a finire il dato, basta dividere il numero di blocco per il numero di linee, il resto di questa operazione rappresenta il numero di linea di cache.sarà il numero di linea cercato. Il numero di blocco, nel nostro caso è 000111 (= 7), dividendolo per le linee di cache (4) otteniamo un resto di 3. NUM. TAG (6 LINEA (32B) LINEA bit) 012 Qui andrà a finire tutto il blocco 000111. 3 000111 In particolare, verrà caricata la parola che cercavamo, cioè quella all'indirizzo (interno al blocco) 00010. In generale, per definire in quale linea di cache vada potenzialmente posizionato un certo blocco, esistono diverse funzioni di traduzione (mapping): Tipo Caratteristiche Ogni blocco i della memoria principale è posizionato in corrispondenza diretta fissa della linea k della cache, secondo la formula: mapping k = i % N. Associative: Ogni blocco della memoria principale può essere memorizzato in un qualsiasi blocco della cache. Le linee della cache sono suddivise in S insiemi. Un blocco i è associato all'insieme k se: setassociative k = i % N. Mapping: Il blocco i può essereposizionato in una qualunque delle linee dell'insieme. Esistono anche diversi algoritmi per capire quale linea della cache dovrà essere rimpiazzata con un nuovo dato in entrata. Vengono chiamati algoritmi di rimpiazzamento e sono: - LRU (Least Recently Used) il più utilizzato, rimpiazza la linea di cache meno utilizzata recentemente - FIFO (First-In First-Out) il più economico, rimpiazza la linea di cache che è stata inserita per prima - LFU (Least Frequently Used) il più efficace, rimpiazza la linea di cache meno utilizzata - Random semplice ed efficiente, rimpiazza una linea scelta casualmente Normalmente quando un dato in cache viene modificato dalla CPU, possono verificarsi delle incongruenze tra cache e memoria principale. Per risolvere queste incongruenze, esistono 2 principali meccanismi di aggiornamento della memoria principale: - Write-back funziona grazie all'aggiunta del cosiddetto dirty bit, cioè un flag che ricorda se il dato in cache è stato modificato rispetto alla memoria principale. Quando una linea di cache viene rimpiazzata, il dato viene scritto nella memoria principale solo se il dirty bit è impostato. - Write-through invece aggiorna la memoria principale contemporaneamente alla cache, garantendo sempre la coerenza tra i due livelli di memoria.

Il blocco è stato modificato da quando è stato caricato in cache. Quando il blocco viene rimosso dalla cache, se il dirty bit è settato a 1, allora si effettua l'aggiornamento della memoria con il contenuto attuale del blocco in cache.

Svantaggi:

  • Sostituzione lenta
  • Se l'architettura è multiprocessore, potrebbero verificarsi delle inconsistenze tra le cache dei diversi processori
  • Se si verifica un system failure prima che la copia viene rimossa dalla cache (e quindi copiata stabilmente in memoria), si possono perdere i dati modificati fino a quel momento
  • Write-through: ogni volta che la CPU effettua un'operazione di scrittura, quest'ultima la si effettua sia in cache che in memoria principale

In aggiunta a questi meccanismi, nei sistemi multiprocessore, si aggiungono altri controlli per garantire la coerenza della cache:

Bus Watching con Write-through: il controllore di ciascuna cache rileva le modifiche dal bus e invalida (attraverso un

bit di validità) le linee corrispondenti nella propria cache

Non-cacheable Memory la memoria condivisa non può essere trasferita in cache→

Per garantire maggiore efficienza, può essere conveniente utilizzare più livelli di cache:

cache di primo livello (C1) piccola e veloce→

cache di secondo livello (C2) più grande ma più lenta→

cache di terzo livello (C3) ancora più grande ma ancora più lenta→

MEMORIA SECONDARIA E OFF-LINE

Sono memorie caratterizzate da non volatilità, basso costo ed elevato tempo di accesso.

Esistono diversi tipi di memoria secondaria:

Memorie a disco magnetico (HDD) si tratta di dischi ricoperti di materiale magnetico su cui→

esistono una serie di tracce concentriche separate da zone di gap, ogni traccia è suddivisa in

settori, i quali vengono considerati come un unico blocco nelle fasi di lettura e scrittura. In queste

due fasi, la testina si posiziona alla giusta distanza dal centro

(sulla traccia desiderata) e il disco inizia a ruotare fino a quando il settore cercato non giunge sotto la testina, che leggerà/scriverà il contenuto. Unità a stato solido (SSD) si tratta di unità realizzate con tecnologie elettroniche, che non hanno parti in movimento e permettono una lettura random. Vantaggi (rispetto agli HDD): - più resistenti agli shock fisici - minore tempo di accesso - minore latenza - minore consumo Svantaggi: - più costose Per quanto riguarda invece le memorie off-line: - Memorie a nastro magnetico: supporto di plastica flessibile su cui vengono memorizzate un certo numero di tracce, leggibili/scrivibili contemporaneamente. I dati sono organizzati in record, separati fra loro da apposite zone di gap. - Cartucce: supporti rimovibili collegati con il sistema mediante appositi connettori (vedi cartucce gioco Nintendo DS). - Memorie ottiche: diffuse sotto forma di dischi ottici, hanno elevati tempi di accesso ma al tempo stesso.un'elevata affidabilità

Tipologie di dischi ottici:

  • CD: Non cancellabili, memorizzano informazioni audio. Non cancellabili, memorizzano informazioni in forma elettronica. I dati sono organizzati su una sola traccia a spirale, sotto forma di fosse (pits) e piazzole (lands) che riflettono in maniera diversa il raggio laser utilizzato per percorrere le tracce. Riscrivibili un numero arbitrario di volte. Funzionano grazie ad una combinazione di argento, indio, antimonio e tellurio. Utilizzati principalmente per la memorizzazione di contenuti video.
  • DVD: Esistono diversi tipi di DVD, come i DVD-ROM, DVD-Video, DVD-Audio, DVD-R, ecc. Sono il formato utilizzato per memorizzare dati e video ad alta definizione.
  • Blue-Ray Disk (BD): Possono memorizzare grandi quantità di dati. Sono così chiamati a causa del raggio blu che serve per leggere il disco.

MEMORIA VIRTUALE

Si tratta di un meccanismo attraverso il quale il processore può fare accesso ad uno

spazio di indirizzamento molto maggiore delle dimensioni dellamemoria principale realmente disponibile. Utilizza indirizzi logici che vengono poi trasformati in indirizzi fisici. La traduzione da indirizzi logici a fisici è realizzata attraverso un componente HW chiamato Memory Management Unit (MMU). Il compito principale della MMU è quello di verificare se la parola richiesta si trovi fisicamente nella memoria principale: se si, produce l'indirizzo fisico corrispondente con cui si accede alla memoria principale; se no (page fault), richiede l'intervento del SO che provvede a spostare in memoria principale il relativo blocco di memoria. La memoria è suddivisa in blocchi chiamati pagine. Per effettuare la traduzione da indirizzi logici a fisici, la MMU sfrutta una tabella detta Memory Address Table (MAT). La MAT contiene una entry per ogni pagina virtuale. Per ogni entry si memorizza l'indirizzo fisico al quale la pagina si trova nella memoria principale.

posizione della pagina in memoria secondaria

Per velocizzare l'accesso alla MAT le entry più accedute recentemente, vengono memorizzate in un'apposita memoria definita TLB posta direttamente a porta della MAT.

Si può dire che la TLB svolga il ruolo di cache della MAT.

Input/Output - I/O

Si tratta di un sotto-sistema che permette al sistema di elaborazione di interagire e di scambiare informazioni con il mondo esterno.

Il sotto-sistema di I/O è composto da:

  • Dispositivi di Input/Output (periferiche)
  • unità di controllo di questi dispositivi
  • software per la loro gestione

L'accesso alle periferiche viene realizzato mediante registri (porte).

Esempio:

Una stampante è vista dalla CPU come 3 registri:

  • un registro per i dati (output)
  • un registro per le informazioni di controllo (output)
  • un registro per le informazioni di stato (input)

Per far eseguire delle operazioni alla stampante la CPU eseguirà letture/scritture sui 3 registri.

Periferiche

collegate alla CPU attraverso il bus mediante diverse modalità di collegamento: - memory-mapped I/O: connessi come normali celle di memoria a cui si può tranquillamente accedere mediante indirizzi - isolated I/O: gli spazi di indirizzamento per la memoria e per le porte di I/O sono separati. Per accedere alle porte di I/O si devono utilizzare apposite istruzioni Le velocità molto elevate della CPU si contrappongono a quelle spesso molto più lente dei dispositivi periferici, perciò si deve gestire la sincronizzazione tra le componenti. Possibili soluzioni sono: - I/O programmato: la gestione delle
Dettagli
Publisher
A.A. 2019-2020
16 pagine
2 download
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher BCPTe di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Torino o del prof Rebaudengo Maurizio.