vuoi
o PayPal
tutte le volte che vuoi
Memorie (gerarchia e principi di località), volatilità e tipi di accesso
Unità logica di memorizzazione dati nel calcolatore, che interrogo tramite un indirizzo.
Le memorie si classificano in base a:
- Capacità, sia della singola cella di memoria (di solito 8 bit) che del numero totale delle celle contenute;
- Caratteristiche fisiche, quindi consumo di energia, tempo medio tra 2 guasti, poter modificare il contenuto o meno;
- Volatilità, ovvero se stacco l'alimentazione tutto quello che è sulla memoria viene perso. Le memorie non volatili invece conservano i dati al loro interno, però consumano più corrente e sono più lente;
- Modalità d'accesso, sono di 4 tipologie:
- Sequenziale: vengono controllati tutti gli indirizzi dal primo finché non si arriva a quello ricercato.
- Diretto:
conoscendo l'indirizzo si va direttamente da quello, il tempo d'accesso varia a seconda della posizione dell'indirizzo precedente e di quello attuale.
Causale: il tempo di accesso è sempre costante e non dipende da nessun indirizzo.
Associativo: conoscendo il dato da cercare si usa questo e si restituisce l'indirizzo.
Nell'organizzazione gerarchica della memoria si può trovare un dato anche in ciascuna memoria, l'ordine con cui è definita la gerarchia deriva dalla distanza dal processore, dalla velocità di risposta della memoria, dalla sua capacità e dal suo costo.
La prima è quella interna alla CPU cioè i REGISTRI, poi troviamo la CACHE, la RAM, il DISCO FISSO (memoria principale) e poi varie memorie secondarie (dischi magnetici, nastri magnetici, dischi ottici).
I dati vengono copiati nelle memorie più veloci secondo 2 fondamentali principi di località:
PRINCIPIO DELLA LOCALITÀ
SPAZIALE
Se accedo ad un dato probabilmente farò accesso anche ai diti vicino ad esso quindi li copio nella località superiore.
PRINCIPIO DELLA LOCALITA' TEMPORALE
Se accedo ad un dato probabilmente in poco tempo ne avrò di nuovo bisogno quindi lo copio nei livelli superiori.
Esiste anche un organizzazione non gerarchica delle memorie, dove l'indirizzo è in un posto solo e per salvarlo si possono usare 2 tecniche di scrittura:
- LITTLE ENDIAN: a indirizzi bassi ci sono valori bassi (usato anche da Intel).
- BIG ENDIAN: a indirizzi bassi ci sono valori grandi.
2. Ram statiche e dinamiche
In questo corso abbiamo affrontato 2 tipologie di RAM: quelle statiche e quelle dinamiche.
SRAM (RAM Statica)
È caratterizzata da una maggiore velocità (basta sbilanciare un po' la carica e avviene una lettura/scrittura) ma anche da un costo maggiore poiché è costruita con 6 transistor. Sono usate principalmente nei registri interni e nelle cache.
DRAM
(RAM Dinamica) È caratterizzata da un costo minore rispetto a quella statica (poiché ha solo un transistor) ma ha meno capacità ed è più lenta perché è composta da un condensatore e da un transistor che si occupa di caricare/scaricare il condensatore, ma affinché ciò avvenga il condensatore deve essere completamente scarico/carico. Hanno bisogno di essere in continuo refresh perché il condensatore si scarica da solo con il passare del tempo. Le memorie costruite con celle dinamiche sono più capienti di quelle che usano celle statiche. Vengono usate principalmente nelle RAM.
3. Input/Output e differenza tra Interrupt Driven e Polling
Il compito di un sistema di input-output è quello di mettere in comunicazione il mondo esterno con un calcolatore, l'interazione con il calcolatore è gestita tramite registri di dato e registri di stato opportunamente collegati al Data Bus, Address Bus e Control Bus.
Il dialogo con il mondo esterno è gestito da dispositivi specifici per ogni periferica di input-output. I meccanismi di comunicazione sono 3: POLLING, INTERRUPT DRIVEN E DIRECT MEMORY ACCESS.
Il processo di Polling consiste nella continua lettura del registro di stato, che quando è 1 indica l'entrata di un dato in input. La lettura avviene anche quando le periferiche non sono collegate, questo comporta un grande utilizzo di energia.
Il processo di Interrupt Driven avviene in diverse fasi:
- Notifica alla CPU delle interruzioni
- Accettazione della interruzione: le interruzioni possono essere mascherabili e non mascherabili. Esiste un flag che decide se far ascoltare o no un'interruzione alla CPU, se l'interruzione non è mascherabile allora, qualunque valore abbia il flag, la CPU deve ascoltarla.
- Identificazione della sorgente e reperimento dell'indirizzo della RRI (routine di risposta all'interruzione): esiste una tabella in cui
DMA (direct memory access)
La periferica I/O dialoga direttamente con la memoria senza passare per la CPU. Questo processo è più veloce perché non si deve interrompere la CPU, però non tutte le periferiche possono usare questo meccanismo di comunicazione, il DMAC (controller) si occupa di fare questa divisione.
Dischi magnetici e SSD
I dischi magnetici sono dispositivi di memoria che occupano solitamente le ultime posizioni nella gerarchia di un sistema memoria, in quanto permettono di memorizzare una grande quantità di dati ma hanno tempi di accesso più dilatati rispetto ai registri e spesso vengono inseriti fisicamente più lontani dalla CPU rispetto a questi ultimi.
Si può leggere/scrivere grazie a una testina che contiene al suo interno un solenoide e per eseguire una lettura si considera il segno della corrente indotta sulla
superficie del disco + tempo per attendere che il settore desiderato passi sotto la testina + tempo per leggere o scrivere i dati nel settore desiderato. Le unità a stato solido (SSD) sono dispositivi di archiviazione che utilizzano memoria flash anziché parti meccaniche come i dischi rigidi tradizionali. Questo li rende più veloci, meno soggetti a guasti e più efficienti dal punto di vista energetico. Tuttavia, hanno un costo maggiore e la scrittura dei dati su di essi è più complessa, in quanto non è possibile scrivere un singolo bit come avviene sui dischi magnetici. Nel caso dei dischi magnetici, per eseguire una scrittura, la testina viene attraversata da una corrente che induce le particelle magnetizzate presenti sulla superficie del disco a orientarsi in modo opposto alla corrente stessa. I dischi sono divisi in zone, ognuna delle quali contiene un numero variabile di settori (parti che generalmente contengono 512 byte e compongono una traccia), al fine di massimizzare la capacità di archiviazione del disco. Più ci si allontana dal centro del disco, più grande è il settore, poiché la velocità in quei punti è più elevata. Il tempo di accesso a un disco magnetico è determinato dalla somma del tempo necessario per posizionare la testina sulla superficie del disco, il tempo di attesa per far passare il settore desiderato sotto la testina e il tempo necessario per leggere o scrivere i dati nel settore desiderato.traccia (sequenza circolare di bytes);
Tl=tempo per posizionare la testina sul dato;
Td=tempo di lettura dei dati.
Le SSD sono memorie transistor flash, non usano parti meccaniche e quindi sono più veloci, si rompono meno frequentemente e consumano meno; però costano di più e la scrittura su di loro è più complessa (non puoi scrivere un singolo bit).
5. Tipologia raid (0,1,3,5)
I RAID sono array di dischi fissi, questi possono essere di vari tipi, noi ne citiamo 4. Questi servono principalmente per gestire al meglio possibile velocità, costo e ridondanza di una memoria.
● RAID 0
Due dischi collegati in serie (così da avere come grandezza totale di memoria la somma delle grandezze dei due dischi) in cui ciò che viene scritto va metà in uno e metà in un altro, con questo metodo si dimezza il tempo di lettura e di scrittura e il costo rimane ottimale, però non è sicuro perché se si rompe un disco perdo tutti
dato diventa un collo di bottiglia in quanto tutte le operazioni di lettura e scrittura devono passare attraverso di esso.● RAID 5Anche in questo caso abbiamo 3 dischi, ma stavolta la parità viene distribuita tra i dischi. Ogni disco contiene una parte dei dati e una parte della parità. In questo modo, se uno dei dischi fallisce, posso ricostruire i dati mancanti utilizzando le informazioni di parità presenti negli altri dischi. Questo tipo di RAID offre una buona velocità di lettura e scrittura, ma richiede un po' più di tempo per ricostruire i dati in caso di guasto di un disco.● RAID 10 (RAID 1+0)Questo tipo di RAID combina le caratteristiche del RAID 1 e del RAID 0. Vengono utilizzati almeno 4 dischi, divisi in coppie che vengono configurate come RAID 1 (mirror). Successivamente, le coppie vengono combinate in un RAID 0 (striping). In questo modo, si ottiene sia la ridondanza dei dati che un miglioramento delle prestazioni. Tuttavia, il costo di implementazione è più elevato rispetto agli altri tipi di RAID.parità è molto più stressato degli altri 2 perché in scrittura lavora il doppio, quindi si potrebbe rompere più velocemente.
● RAID 5
In quest'ultimo raid ci sono sempre 3 dischi ma questa volta ognuno di essi viene diviso in 3 parti affinché ci siano 2 parti di dato e una di parità; così ogni parte di parità lavorerà con le altre due di dato degli altri due dischi.
6. Memoria cache, organizzazione e località
Le memorie cache si trovano al secondo posto nella gerarchia delle memorie, sono molto veloci e sono vicine al processore, vengono interrogate in modo trasparente da un programmatore che accede tramite un indirizzo alla memoria.
Si possono aggiungere anche più livelli di cache prima di passare alla ram.
Le memorie cache sono di tre diversi tipi, però ognuno di esso cerca di rispondere al meglio possibile a quattro importanti parametri.