Calcolatori elettronici/Le memorie ad accesso seriale
Le memorie ad accesso seriale sono caratterizzate da un accesso più lento rispetto a quello delle memorie ad accesso casuale: il tempo di accesso a un blocco richiede un tempo per iniziare ad accedere al blocco e un tempo per leggere/scrivere il blocco stesso. Il tempo di accesso al blocco dipende inoltre dalla posizione del blocco.
Dischi fissi
modificaUn disco fisso è un disco magnetico[1] costituito da una pila di dischi. Su ogni faccia opera radialmente una testina; le testine sono collegate in modo solidale a un unico meccanismo di moto.
I bit sono memorizzati in maniera sequenziale su tracce disposte a circonferenze concentriche; ogni traccia è a sua volta suddivisa in settori. Per effettuare un'operazione di lettura o scrittura, la testina si posiziona sulla traccia, quindi il disco ruota per far scorrere la traccia sotto la testina.
I dischi magnetici hanno un'organizzazione CAV: il disco gira a velocità angolare costante, indipendentemente dalla posizione della testina → la velocità lineare dei bit è bassa vicino al centro e alta vicino al bordo → le informazioni vanno memorizzate in modo meno denso vicino ai bordi. Vantaggio: la circuiteria che controlla la rotazione del disco è semplice.
Il tempo di accesso tA a un generico settore è la somma di:
- tempo di seek tS: la testina si posiziona sulla traccia → dipende se la traccia si trova lontana o vicina alla testina;
- tempo di latenza tL: il disco ruota affinché l'inizio del settore da leggere si trovi sotto la testina → dipende dalla velocità di rotazione del disco;
- tempo di trasferimento dati tD: i dati vengono letti in modo seriale, rilevando un campo magnetico generato dalla magnetizzazione della traccia → dipende dalla distanza tra la testina e il disco (qualche micron) e dal numero di bit da leggere/scrivere.
Non si può aumentare troppo la densità di bit per unità di superficie, ma è necessario garantire una distanza minima tra una traccia e l'altra e tra la testina e la traccia per evitare le interferenze. Inoltre, se ci si basasse semplicemente sul segno della polarizzazione (il valore alto corrisponde a 1, il valore basso corrisponde a 0), non sarebbe quantificabile il preciso numero di bit in una sequenza di bit aventi uguale polarizzazione → i dati vanno codificati in modo da minimizzare le interferenze e rendere preciso il movimento della testina su ogni singolo bit: nella codifica Manchester (o di fase), ogni bit è codificato come una transizione di polarizzazione tra due bit (la transizione da valore basso a valore alto corrisponde a 0, e viceversa).
La ricerca del settore avviene da parte della testina iniziando a leggere la traccia, nella quale vi sono accanto alle informazioni delle intestazioni che specificano il settore corrente. L'inizio di un settore è codificato da una certa sequenza di byte specifici, in modo che la testina possa sincronizzarsi con l'inizio del settore e identificare nella sequenza di bit dove iniziano e finiscono i byte. Ogni settore è costituito da due campi, ID e dati, separati da zone della traccia, dette gap, in cui sono codificati i caratteri di sincronizzazione. Vi sono anche dei controlli di parità (CRC) per verificare la correttezza delle informazioni, e bit di informazione sulla traccia, sulla faccia e sul settore.
Il disk controller deve avere una circuiteria e una memoria (data buffer) per controllare le varie parti del disco, per il confronto con il CRC e per la decodifica dei dati. Il disk controller comunica con il processore attraverso un'interfaccia IDE, SATA, ecc.
Nel bootstrap, prima del primo accesso al disco fisso viene letta una ROM per la inizializzazione del sistema.
RAID
modificaPer approfondire su Wikipedia, vedi la voce RAID. |
Il RAID è una proposta di standard che serve per:
- rendere l'insieme fisico di più dischi equivalente a un unico disco virtuale, con parti hardware e software che gestiscono le richieste in maniera trasparente;
- migliorare l'affidabilità;
e può anche fornire qualche vantaggio in termini di prestazioni.
È possibile scegliere tra 6 configurazioni dette livelli: RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5.
RAID 0
modificaNel RAID 0, i dati vengono distribuiti su strisce (strip) di dimensione variabile (dell'ordine di qualche byte), ciascuna stante su un disco. L'Array Management Software si interpone tra l'utente e i dischi fisici, che non sono legati in modo particolare tra loro.
- Vantaggio
- la banda in lettura/scrittura è maggiore perché le operazioni di lettura/scrittura vengono effettuate in parallelo sui vari dischi
RAID 1
modificaAnche nel RAID 1 i dati sono distribuiti su strisce. I dischi sono suddivisi in due gruppi che sono in mirroring tra loro, cioè le informazioni sono replicate su entrambi i gruppi.
- Vantaggio
- affidabile
- Svantaggio
- lo spazio disponibile è dimezzato
RAID 2
modificaIl RAID 2 non è molto utilizzato perché è complicato: le strisce si riducono a singoli byte e sono lette in modo sincronizzato, il gestore è di tipo hardware, e sono riservati alcuni dischi ai codici di Hamming.
RAID 3 e RAID 4
modificaIl RAID 3 e il RAID 4 prevedono un solo disco riservato alle informazioni di parità. Il bit di parità non informa in quale disco si è verificato l'errore, ma se il sistemista riesce a sapere in quale disco si è verificato l'errore può utilizzare il disco di parità per ricostruire completamente le informazioni memorizzate in quel disco. Nel RAID 3 le strisce si riducono a singoli byte.
- Svantaggio
- le operazioni di lettura e scrittura in parallelo sono limitate dalle prestazioni del disco di parità, che potrebbe diventare un collo di bottiglia
RAID 5
modificaIl RAID 5 distribuisce le informazioni di parità un po' su un disco un po' su un altro.
- Vantaggio
- si evitano colli di bottiglia
Memorie a nastro
modificaNelle memorie a nastro, le informazioni sono memorizzate su tipicamente 9 tracce, di cui l'ultima contenente le informazioni di parità; la testina legge serialmente il nastro che si avvolge. Ogni traccia è organizzata in record, distanziati da gap per la sincronizzazione della lettura.
Memorie ottiche
modificaLe memorie ottiche hanno una maggiore affidabilità: i guasti transitori sono più rari e la durata nel tempo è maggiore.
I dischi ottici hanno un'organizzazione CLV: il motore ruota a velocità lineare costante, ma a velocità angolari diverse a seconda della posizione del raggio laser (che prende il posto della testina) → il controllore è più complicato.
Note
modifica- ↑ Per dischi magnetici s'intendono i dischi fissi e i dischi floppy.