Dischi magnetici ( Hard Disk - HD)

Un disco magnetico consiste in uno o più piatti di alluminio ( 3-12 cm ) rivestiti di materiale magnetico. Una testina contenente un solenoide, sfiora la superficie del disco muovendosi avanti e indietro, e grazie al movimento del disco questa testina ricopre l’intera superficie.

Una corrente che passa attraverso la testina (0-1) alimenta le particelle magnetiche in direzione opposta a seconda delle polarità della corrente (+/-) indotta nella testina, permettendo così la lettura e scrittura dei bit.

La sequenza circolare di bit scritti in un giro completo del disco è chiamata traccia, dove ogni traccia è divisa in settori :

  • di lunghezza fissa ( 512 byte )
  • tra di loro vie è una piccola area chiamata spazio tra settori

Inoltre ogni traccia contiene :

  • preambolo : permette alla testina di sincronizzarsi prima di leggere o scrivere
  • codice per la correzione di errore (ECC)
  • codice Hamming / codice Reed-Solomon (corregge errori multipli)

Inoltre tracce più esterne occupano più spazio fisico, mentre quelli interni sono più compressi, tuttavia ogni settore contiene la stessa quantità di dati ( es 512 byte ).

Alcuni produttori indicano la capacità del disco come se ogni traccia contenesse solo dati, ma una capacità onesta dovrebbe escludere i preamboli, ECC e spazio tra i dati.

L’insieme delle traccie che hanno la stessa distanza dal centro è chiamato cilindro

Ogni disco ha una scheda dedicata (possibile anche CPU) chiamato controllore del disco ( disk controller ) che oltre a coordinare il dispositivo, permette di

  • accettare comandi dal software ( READ, WRITE, FORMAT … )
  • correggere gli errori
  • bufferizza le sequenze di bit byte e viceversa ( parole lette dalla memoria )

Performance dei dischi magnetici

Le prestazioni dei dischi dipendono da :

  • ==tempo medio di SEEK==
  • latenza rotazionale
  • tempo di trasferimento
Tempo medio di SEEK

Sarebbe il tempo medio che la testina si deve posizionare nel raggio della traccia ricercata per leggere o scrivere, che risulta essere compreso tra i 5 e 10 ms ( considerando tracce casuali ).

Latenza Rotazionale

Una volta che la testina si è posizionata nella traccia c’è un ritardo, per aspettare che il settore desiderato si posizioni sotto alla testina.

l ritardo dipende dalla velocità angolare del disco, considerando che gli attuali dischi hanno una velocità di 5400 / 7200 / 10.000 giri al minuto (RPM) 3, 6 ms ( caso peggiore ).

Tempo di trasferimento

Il tempo di trasferimento dipende dalla:

  • densità lineare (quanti bit posso memorizzare per unità di lunghezza della traccia)
  • velocità di rotazione

Infatti con una velocità di trasferimento di 150 MB/s e un settore di 512 byte il tempo di trasferimento =

Quindi il tempo medio di seek e di latenza rotazionale dominano il tempo di trasferimento.

Floppy Disk

Oramai estinti che nasce per la necessità di distribuire il software, chiamati cosi perché nella prima versione erano veramente flessibili. Sono stati i primi dischi removibili e più piccoli in termini di capacità. Qui la testina tocca la superficie del disco che comporta un ritardo di almeno mezzo secondo siccome il motore ci mette del tempo prima di arrivare alla giusta velocità.

Dischi IDE

IDE

Il OS leggeva e scriveva dati sul disco, inserendo dei parametri (cilindro, testina, settore) nei registri della CPU, poi il OS invoca il BIOS ( Basic Input Output System ) - situato in una memoria di sola lettura (ROM) integrata nel PC - che poi comunicava con il controllore del disco. L’indirizzamento dei settori avveniva specificando i numeri della loro testina, del cilindro e del settore. Siccome si utilizzavano 4 bit per la testina, 6 bit per il settore e 10 bit per il cilindro, un’unità poteva avere al massimo 16 testine, 64 settori e 1024 cilindri capacità massima 504 MB. Mentre prima il controllore del disco si trovava in una scheda separata, a metà degli anni 80’ si passò alle prime unità IDE ( Integrated Device Electronics, “memoria di massa con elettronica integrata”) in cui il controllore era strettamente integrato con l’unità. Inoltre la velocità di trasferimento era di 4 MB / s.

EIDE

Lo standard IDE si è evoluto nelle unità EIDE (Extended IDE) che supportavano anche un’altro schema d’indirizzamento chiamato LBA ( Logical Block Addressing ) che semplicemente numerava i settori da a massimo capacità massima di 128 GB ed una velocità di trasferimento di 16.67 MB/s.

I controllori EIDE potevano avere due canali, ciascuno dei quali poteva avere un disco primario e uno secondario ( max 4 unità per controllore ), solo dopo vennero supportati anche i lettori di CD-ROM e DVD.

ATA

Il successore dell’ EIDE fu chiamato ATA-3 ( Advanced Technology for Attachment-3 ) con riferimento al PC/AT IBM. La versione successiva fu chiamata ATAPI-4 ( ATA Packet Interface ), con questo standard la velocità di trasferimento fu aumentata fino a 33 MB/s. I successivi (5,6) aumentarono la dimensione del connettore del disco (aumentando velocità di trasferimento) :

  • ATAPI-5 : 28 bit e velocità di trasferimento di 66 MB/s
  • ATAPI-6 : 48 bit e velocità di trasferimento di 100 MB/s

Lo standard ATAPI-7 invece di incrementare la dimensione del connettore del disco, usa l’interfaccia SERIAL ATA ( SATA ) per trasferire 1 bit alla volta su un connettore :

  • 7 pin ( sostituendo il cavo rotondo di 80 fili, con uno più sottile ) migliora la circolazione dell’aria
  • velocità di 150 MB/s ( progettato per arrivare in futuro >= 1,5 GB/s )
  • utilizza segnali a 0,5 V invece che 5 V ( ATAPI-6 ) notevole risparmio energetico

Dischi SCSI

I dischi SCSI ( pronuncia “scasi”) ( Small Computer System Interface ), che divenne standard dalla ANSI, hanno una organizzazione simile ai dischi IDE, ma con diversa interfaccia e una velocità di trasferimento molto più alta. Sono state poi standardizzate anche versioni più veloci :

I dischi SCSI sono standard in workstation e server di fascia alta, sopratutto nelle macchina con configurazione RAID.

Con SCSI c’è la possibilità di collegare fino a 7 dispositivi ( HD, CD-ROM, Scanner, unità nastro ).

RAID

Nell’ultimo decennio le prestazioni delle CPU sono aumentate esponenzialmente (raddoppiando circa ogni 18 mesi), mentre la stessa cosa non si è verificata per i dischi.

Si è pensato quindi, di adottare la strategia dell’elaborazione parallela (come fatto con le CPU). Fu suggerita un’organizzazione a sei dischi, per migliorare le prestazioni e l’affidabilità, chiamata RAID ( Redundant Array of Inexpensive Disks Independent ), in opposizione agli SLED ( Single Large Expensive Disks ).

L’idea sarebbe quella di installare vicino al calcolatore ( di solito server grande ) un contenitore di dischi, sostituire il controllore con un RAID, copiare i dati sul RAID e continuare le normali operazioni, facendo apparire il sistema RAID al sistema operativo (computer) come un unico grande disco virtuale ( senza modifiche software ).

Inoltre i RAID hanno la possibilità di distribuire i dati sulle diverse unità per garantire la gestione parallela, per questo ci sono diversi schemi RAID RAID di livello 0 - RAID di livello 5.

RAID 0

Il RAID di livello 0 è una configurazione che distribuisce i dati su più dischi, ma senza alcun controllo contro i guasti.

I dati vengono divisi in strisce (strip) di settori ( ogni strip ha una dimensione fissa ), e le strisce sono distribuite tra i dischi disponibili in modo ciclico ( round-robin ). In questo modo quando un file viene letto, il controllore RAID recupera le strip da tutti i dischi contemporaneamente tempi ridotti grazie al parallelismo.

Questo schema riesce ad essere efficiente quando le richieste sono di grandi dimensioni, mentre lavora male quando le richieste sono piccole ( es . leggere un settore alla volta ) siccome non sfrutta il parallelismo.

Non è un vero RAID, siccome non c'è ridondanza, infatti quando un disco si rompe, tutti i dati vengono persi .

In termini di affidabilità, un RAID 0 è peggiore di uno SLED.

Supponiamo per esempio che un disco abbia MTBF = 100.000 ore significa che, in media, dovrebbe rompersi dopo 100.000 ore di uso :

  • RAID 0 con 2 dischi :
    • la probabilità che almeno uno dei due si rompa è doppia rispetto ad un disco solo MTBF = 50.000 ore
  • SLED :
    • rimane MTBF = 100.000 ore

Quindi più dischi hai in un RAID 0, più è bassa l’affidabilità.

RAID 1

Il RAID di livello 1 è un vero RAID siccome duplica tutti i dischi, in questo modo se ci sono dischi primari, ce ne saranno altri di backup.

Nel caso di una scrittura ogni strip viene scritta due volte, mentre nel caso di una lettura è possibile usare entrambe le copie, distribuendo il carico su più dischi le prestazioni di scrittura sono uguali a quelle di un sistema SLED, ma le prestazioni di lettura sono 2 volte meglio.

Qui la tolleranza ai guasti è eccellente, siccome se un disco si rompe, ho una sua copia in un’altro disco. Inoltre la riparazione di un disco rotto è semplice e veloce siccome ho una sua copia.

RAID 2

Il RAID di livello 2 invece di lavorare con strip di settori, utilizza le parole binarie oppure i byte, per dividere le informazioni sui vari dischi.

Immaginiamo di avere 7 dischi è possibile dividere un bit per disco in questo modo :

  • il byte (es. 11010011 ) viene diviso in due nibble ( bit ) (1101 e 0011)
  • ogni nibble viene elaborato separatamente in questo modo :
    • aggiunge 3 bit di parità ottenendo un codice di correzione Hamming 7 bit
    • ogni bit viene scritto su un disco separato (vedi figura infatti)

Quindi se un disco si rompe, non ci sono problemi, siccome grazie alla correzione degli errori si può ricostruire una copia facilmente.

Richiede però molto lavoro al controllore, siccome deve calcolare la checksum del codice di Hamming ogni volta.

RAID 3

Il RAID di livello 3 è una versione semplificata del RAID 2, ma non lavora a livello di bit, bensì a livello di byte e usa un disco dedicato per i bit di parità.

Per esempio un file viene diviso in byte che vengono poi distribuiti su più dischi ( che devono essere sincronizzati ), mentre in un disco (di parità) vengono scritti i bit di parità calcolata ( con lo EXOR ). In questo modo se un disco si rompe, i dati possono essere ricostruiti usando la parità e gli altri dischi.

Il problema è che non offre garanzie di affidabilità su errori casuali, siccome può rilevare l’errore ( se la parità non corrisponde ), ma non sa quale bit è sbagliato ( solo per dischi guasti non per bit corrotti ).

RAID 4

Il RAID di livello 4 e RAID di livello 5 sono simili al RAID 0, siccome lavorano con le strisce e non richiedono che i dischi siano sincronizzati.

Il RAID di livello 4 ha un disco aggiuntivo dedicato alla parità.

Infatti ogni strip ha una corrispondente strip di parità calcolata con l’operazione EXOR.

Il problema è che nel disco di parità si forma un collo di bottiglia, siccome la parità deve essere scritta sempre nello stesso disco ( di parità ) ( problema risolto dal RAID 5 ) .

RAID 5

Il RAID di livello 5 ha il funzionamento simile a RAID 4, ma elimina il collo di bottiglia del disco di parità, distribuendo in modo ciclico ( round-robin ) le strip di parità su tutti i dischi.

Se un disco però si rompe, ripristinarlo non è facile, siccome bisogna ricostruire il suo contenuto secondo tutte le strip di parità dagli altri dischi, e quindi durante la ricostruzione, le prestazioni calano di molto.

Dischi a stato solito - SSD

Gli SSD sono basati su una memoria flash non volatile e sono diventati come un’alternativa ad alta velocità dei tradizionali HDD. La mancanza di elementi meccanici li rende più veloci e tolleranti alle vibrazioni, ma con il passare del tempo i transistor di cui sono formati si consumano lentamente con l’utilizzo ( dopo circa 100.000 volte inizia a diventare inaffidabile ).

Per quanto riguarda la velocità, hanno prestazioni eccellenti ( tempo medio di seek = 0 ) e la velocità di trasferimento è 3 volte più alta di un tradizionale HD magnetico.

Anche per quanto riguarda il prezzo sono alti :

  • HD : cent. / GB
  • SSD : 3$ / GB

CD-ROM

I CD-ROM ( Compact Disc - Read Only Memory ) furono ampiamente utilizzati per distribuire software, libri, film etc, per la loro grande capacità e un basso costo, sviluppati dalla Philips e Sony negli anni 80’ e sostituirono velocemente i dischi in vinile per la registrazione della musica.

Sono fatti di policarbonato sopra il quale è depositato un sottile strato di alluminio che riflette il laser del lettore, ricoperto poi da una vernice resistente (protezione). Il sotto-strato di policarbonato contiene una spirale di microscopiche scanalature chiamate pit e aree non incise chiamate land.

Per la codifica dei dati si usano le transazioni tra pit e land (es una trans. pit land indica “1”, nessuna trans. indica “0” ). Per leggere i dati si usa un laser a bassa potenza che illumina la spirale da sotto e quindi il lettore riesce a distinguere tra pits e lands, rilevando meno luce quando il laser è su un pit.

Formato di memorizzazione

Il formato base di un CD-ROM è strutturato in maniera che ogni byte venga codificato in un simbolo a 14-bit, permettendo l’applicazione di codice Hamming ( + 3-bit sono sufficienti e 2 vengono lasciati liberi ).

Gruppi di 42 simboli consecutivi formano un frame (588-bit, ma solo 192 bit sono dati utili, il resto per correzione errori e controllo).

Un settore è formato da 98 frame :

Per la memorizzazione dei dati esistono due metodi :

  • con correzione di errori modo 1 (usato per file di sistema o programmi )
  • senza ECC settoriale modo 2 ( usato in audio/video, dove piccoli errori sono impercettibili )

Un settore contiene :

  • preambolo ( 16 byte ):
    • 12 byte fissi della sequenza 00 FF FF FF FF FF FF FF FF FF FF 00 per permettere al lettore di riconoscere l’inizio del settore.
    • 3 byte per il numero del settore.
    • 1 byte per il modo di interpretazione del resto del settore ( 1 o 2 ).
  • sezione dati :
    • modo 1 2048 byte ( 2 KB )
    • modo 2 2336 byte ( 2 KB + 288 byte per ECC )
  • sezione codice ECC ( solo modo 1 ) :
    • 288 byte di codici Reed-Solomon (tipo specifico di ECC)

CD-Registrabili - CD-R

Simili ai CD-ROM, ma hanno uno strato di pigmento che consente la scrittura dei pit.

Durante la scrittura la scanalatura a spirale guida il laser durante la scrittura che funge da binario per regolare l’allineamento e la velocità di rotazione.

Il processo di scrittura avviene con un laser ad alta potenza che colpisce il pigmento, rompendo un legame molecolare e creando così una macchia scura ( non ripristinabile ) pit.

I CD-R permisero a utenti e piccole aziende di creare backup o masterizzare CD senza costose attrezzature industriali.

CD-Riscrivibili - CD-RW

Invece del pigmento, troviamo una lega metallica che può esistere in due stati stabili :

  • cristallino ( riflettente )
  • amorfo ( poco riflettente )

Il laser utilizza 3 livelli di potenza :

  • alta potenza :
    • scioglie la lega che porta dallo stato cristallino allo stato amorfo ( pit )
  • media potenza :
    • senza sciogliere la lega completamente, che permette di ritornare allo stato cristallino naturale ( land )
  • bassa potenza :
    • legge i dati senza modificare lo stato, dove infatti le zone amorfe ( pit ) assorbono la luce mentre quelle cristalline ( land ) la riflettono

Questa tecnica permette di avere sui CD-RW fino a circa 1000 riscritture e furono infatti la sostituzione dei floppy disk per il backup frequente.

DVD

Il DVD ( Digital Versatile Disk ) progettati in modo simile ai CD ma più innovativi :

novitàDVDCD
pit + piccoli
spirale + stretta ( distanza tra tracce )
laser rosso
capacità + maggiore4.7 GB650 MB
velocità + maggiore1.4 MB/s150 KB/s

Siccome c’era il bisogno di mettere più film nello stesso disco, sono stati definiti quattro formati :

  • singolo lato, singolo strato (4.7 GB)
  • singolo lato, doppio strato (8.5 GB)
  • doppio lato, singolo strato (9.4 GB)
  • doppio lato, doppio strato (17 GB)

Il disco a doppio strato, utilizza uno strato semi-riflettente per leggere i dati da due livelli, in questo modo il laser rimbalza su uno livello oppure sull’altro. Il disco a doppio lato, sono due dischi incollati da 0.6 mm ( schiena contro schiena ).

Il successore del DVD è il Blu-Ray, che utilizza un laser blu che permette maggiore efficienza sia in termini di capacità (doppio lato 50 GB ) che di velocità di trasferimento (4.5 MB/s ).