[$pooky Hunter:]
>Salve a tutti,
>sono uno studente al V anno di liceo e avrei bisogno di informazioni pi�
>approfondite sulle memorie magnetiche e sul loro funzionamento (floppy, hard
>disk...)per la preparazione della mia tesina per gli esami di stato.
Ti dico solo alcune cose sui comuni floppy da 720k e 1.44m
che non so se possano esserti utili (di piu' non so).
Un floppy disk fa cinque giri al secondo (al contrario di un
hard disk, gira solo quando e` in uso). Entro questo tempo di
0.2 s, necessario a compiere un giro, la testina del drive
puo` leggere o scrivere 100000 bit grezzi su un disco da 720k o
200000 su un disco da 1.44m: ogni bit viene quindi letto o
scritto in un tempo pari a 1 o 2 microsecondi, a seconda
della densita` del supporto (e delle capacita` del drive:
ovviamente i drive capaci di gestire 1.44m sono stati
inventati qualche anno dopo quelli capaci di gestire 720k).
Tutto questo avviene in una singola traccia. Esistono ottanta
tracce (concentriche) su ogni faccia: in totale, per un disco
da 1.44m, abbiamo 2x80x200000=32000000 di bit grezzi, pari a
4 MByte grezzi.
Ma che vuol dire grezzi? Vuol dire che in realta` ci sono
delle restrizioni sul loro utilizzo. Non si possono scrivere
zeri e uni cosi' come vengono. Ci sono due limitazioni:
1) Per ragioni tecniche la testina non puo' invertire il
campo magnetico in due celle consecutive (finirebbe per
sovrascrivere il bit precedente).
2) Dato che non esiste alcun confine avvertibile tra una
cella e la successiva (sono entita` logiche, in realta` la
superficie del disco e` omogenea), l'unico modo che il drive
ha per sincronizzarsi sul flusso dei dati, quando legge, e`
che la magnetizzazione cambi di tanto in tanto da una cella
alla successiva: questa transizione consente al drive di
percepire il confine tra due celle e resincronizzarsi.
Dev'esserci almeno una transizione ogni 5 celle (720k) o ogni
4 celle (1.44m).
Per semplificare le cose, il drive considera che il valore di
un bit non consista nello stato di magnetizzazione di una
cella, ma nella differenza di magnetizzazione tra due celle
consecutive. Un "1" viene scritto invertendo il campo
magnetico rispetto alla cella precedente; uno "0" viene
scritto lasciando invariato il campo. Le restrizioni di cui
sopra implicano quindi che:
1) Non si possono scrivere due uni consecutivi.
2) Non si possono scrivere quattro (720k) o cinque (1.44m)
zeri consecutivi.
Bisogna quindi ricorrere a una codifica. La piu' semplice,
anche se non la piu' efficiente, e` la MFM. Consiste in
questo: tra un bit di dati e il successivo viene interposto
un bit "di sincronizzazione" che e` sempre zero (per impedire
che ci siano due uni consecutivi) tranne quando entrambi i
bit di dati sono zeri, nel qual caso e` uno (per rompere le
lunghe sfilze di zeri). Quindi la capacita` reale del floppy,
codificato MFM, e` appena la meta` della capacita` grezza e
solo un pochetto inferiore alla capacita` teorica ottenibile
con codifiche ottimali.
C'e` il problema di come distinguere i bit di dati da quelli
di sincronizzazione. Come ci si sincronizza sul flusso dei
dati? E come si fa a capire dove inizia e finisce un settore
(un blocco di 512 byte piu' un piccolo header con
informazioni come numero del settore e checksum)?
Questo problema di sincronizzazione viene risolto inserendo
almeno una volta, all'inizio di un settore, la stringa di bit
0100010010001001. Questa stringa puo` essere usata come
marcatore perche' non puo` mai comparire nei dati. Infatti vi
figurano due triplette di zeri sfalsate di 7 bit. Una
tripletta di zeri puo` venir generata dalla codifica MFM solo
se il bit centrale e` di dati (se fosse di sincronizzazione
dovrebbe essere un uno) e non e`�possibile che due bit di
dati si trovino a distanza dispari.
Prima di questa stringa si inserisce di solito una sequenza
di zeri e uni alternati per dare al drive il tempo di
sincronizzarsi sui confini tra le celle.
Esiste un formato "standard" per un settore che non spiego
qui, anche perche' non me lo ricordo. Dato pero` che tra un
settore e il successivo dev'esserci un po' di spazio (gap)
per consentire alla testina di scrivere un settore senza
toccare quelli circostanti, un po' di spazio disco viene
perso in questo modo; ecco quindi che tra header e gap la
capacita` teorica (MFM) di 2m si riduce a 1.44m.
Tutto cio` vale per il formato standard dei floppy PC. Altri
computer possono ricorrere a codifiche differenti.
Il drive del Macintosh puo` (poteva, non so se lo faccia
ancora) girare a velocita` angolare variabile in modo da
rallentare in corrispondenza delle tracce esterne (che sono
piu' lunghe) e farci stare piu' roba. In questo modo mette
800k in un disco da 720k. Non so se faccia la stessa cosa
anche quando scrive a densita` piu' alta.
L'Amiga legge e scrive sempre un'intera traccia alla volta,
quindi puo` permettersi di abolire i gap tra i settori: in
questo modo puo` far stare 880k (o 1.76m) su un floppy.
Esistono driver (cioe` software: l'hardware e` il drive, il
software che lo gestisce si chiama driver) che ricorrono a
codifiche piu' efficienti della MFM per aumentare la
capacita` (tipicamente 1120k su un floppy da 720k).
Sugli hard disk, o anche solo sui floppy moderni tipo ZIP
(100m o 250m) o LS-120 (120m o 240m), non so dirti nulla.
Ciao
Paolo Russo
Received on Thu May 09 2002 - 22:12:37 CEST
This archive was generated by hypermail 2.3.0
: Mon Feb 10 2025 - 04:23:45 CET