# Calcolatori elettronici/Le memorie ad accesso seriale

Calcolatori elettronici
Copertina Tutti i moduli · Sviluppo
    CopertinaCalcolatori elettronici/Copertina
* L'evoluzione dei sistemi di elaborazioneCalcolatori elettronici/L'evoluzione dei sistemi di elaborazione
* Il progetto di circuiti logiciCalcolatori elettronici/Il progetto di circuiti logici
* I processoriCalcolatori elettronici/I processori
* Architettura 8086Calcolatori elettronici/Architettura 8086
* Unità di controlloCalcolatori elettronici/Unità di controllo
* Introduzione alle memorieCalcolatori elettronici/Introduzione alle memorie
* Le memorie ad accesso casualeCalcolatori elettronici/Le memorie ad accesso casuale
* Le memorie cacheCalcolatori elettronici/Le memorie cache
* Le memorie ad accesso serialeCalcolatori elettronici/Le memorie ad accesso seriale
* La memoria virtualeCalcolatori elettronici/La memoria virtuale
* La gestione dei dispositivi input/outputCalcolatori elettronici/La gestione dei dispositivi input/output
* Intel 8255Calcolatori elettronici/Intel 8255
* Intel 8259Calcolatori elettronici/Intel 8259
* I busCalcolatori elettronici/I bus
* Le architetture a pipelineCalcolatori elettronici/Le architetture a pipeline
* Assembler 8086
          IntroduzioneCalcolatori elettronici/Introduzione
   * Informazioni generaliCalcolatori elettronici/Informazioni generali
   * Istruzioni di trasferimento datiCalcolatori elettronici/Istruzioni di trasferimento dati
   * Istruzioni aritmeticheCalcolatori elettronici/Istruzioni aritmetiche
   * Istruzioni per il controllo del flussoCalcolatori elettronici/Istruzioni per il controllo del flusso
   * Istruzioni per la manipolazione dei bitCalcolatori elettronici/Istruzioni per la manipolazione dei bit
   * Le procedureCalcolatori elettronici/Le procedure
   * Istruzioni per il controllo del processoreCalcolatori elettronici/Istruzioni per il controllo del processore
   * Formato delle istruzioni macchina, tempi di esecuzioneCalcolatori elettronici/Formato delle istruzioni macchina, tempi di esecuzione
Modifica il sommario
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

Un disco fisso è un disco magnetico 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 t$_A$ a un generico settore è la somma di:
* tempo di seek t$_S$: la testina si posiziona sulla traccia → dipende se la traccia si trova lontana o vicina alla testina;
* tempo di latenza t$_L$: 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 t$_D$: 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

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

Nel 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

Anche 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

Il 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

Il 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

Il 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

Nelle 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

Le 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

* ↑ Per dischi magnetici s'intendono i dischi fissi e i dischi floppy.