Un disco rigido o disco fisso, anche chiamato hard disk drive (abbreviazioni comuni: "hard disk", "HDD") o fixed disk drive(abbreviazioni comuni: "fixed disk", "FDD"), è un dispositivo di memoria di massa di tipo magnetico che utilizza uno o più dischi magnetizzati per l'archiviazione dei dati (file, programmi e sistemi operativi).
Il disco rigido è una periferica di input-output del computer ed è uno dei tipi di dispositivi di memoria di massa attualmente più utilizzati essendo presente nella maggior parte dei computer ed anche in altri dispositivi elettronici, come ad esempio il PVR.
Il disco rigido è stato per lungo tempo l'unica scelta sui personal computer, ma sta conoscendo una perdita di quote di mercato a favore dei più recenti dischi a stato solido (SSD).
Organizzazione logica dei dati
Tipicamente per la memorizzazione di dati digitali il disco rigido necessita dell'operazione preliminare di formattazione logica con scelta del particolare sistema logico di archiviazione dei dati da utilizzare noto come file system, tramite il quale il sistema operativo è in grado di scrivere e recuperare i dati.
Organizzazione fisica dei dati
I dati, a livello fisico, sono generalmente memorizzati su disco seguendo uno schema di allocazione fisica ben definito in base al quale si può raggiungere la zona dove leggere/scrivere i dati sul disco. Uno dei più diffusi è il cosiddetto CHS, sigla del termine ingleseCylinder/Head/Sector (Cilindro/Testina/Settore); in questa struttura i dati sono memorizzati avendo come indirizzo fisico un numero per ciascuna delle seguenti entità fisiche:
- Piatto
- un disco rigido si compone di uno o più dischi paralleli, di cui ogni superficie, detta "piatto" e identificata da un numero univoco, è destinata alla memorizzazione dei dati.
- Traccia
- ogni piatto si compone di numerosi anelli concentrici numerati, detti tracce, ciascuna identificata da un numero univoco.
- Cilindro
- l'insieme di tracce alla stessa distanza dal centro presenti su tutti i dischi o piatti è detto cilindro. Corrisponde a tutte le tracce aventi il medesimo numero, ma diverso piatto.
- Settore
- ogni piatto è suddiviso in settori circolari, ovvero in "spicchi" radiali uguali ciascuno identificato da un numero univoco.
- Blocco
- L'insieme di settori posti nella stessa posizione in tutti i piatti.
- Testina
- Su ogni piatto è presente una testina per accedere in scrittura o in lettura ai dati memorizzati sul piatto; la posizione di tale testina è solidale con tutte le altre sugli altri piatti. In altre parole, se una testina è posizionata sopra una traccia, tutte le testine saranno posizionate nel cilindro a cui la traccia appartiene.
- Cluster
- insieme di frammenti di tracce contigui.
Questa struttura introduce una geometria fisica del disco che consta in una serie di "coordinate" CHS, esprimibili indicando cilindro, testina, settore. In questo modo è possibile indirizzare univocamente ciascun blocco di dati presente sul disco. Ad esempio, se un disco rigido si compone di 2 dischi (o equivalentemente 4 piatti), 16384 cilindri (o equivalentemente 16.384 tracce per piatto) e 16 settori, e ciascun settore di una traccia ha una capacità di 4096 byte, allora la capacità del disco sarà di 4 × 16384 × 16 × 4096 byte, ovvero 4 GB.
Il fattore di interleaving è il numero dei settori del disco rigido che si deve saltare per leggere consecutivamente tutti quelli della traccia. Ciò dipende strettamente dalle caratteristiche prestazionali del disco rigido stesso, cioè dalla velocità di rotazione del disco, dal movimento dei seeker con le relative testine e dalla velocità di lettura-scrittura della stessa testina.
Tale processo è stato introdotto poiché inizialmente le CPU, che ricevevano e rielaboravano i dati letti, compivano queste azione ad una velocità inferiore della velocità di lettura/scrittura sul disco rigido, quindi, una volta rielaborati i dati provenienti da un settore, la testina si troverebbe già oltre l'inizio del settore successivo. Alternando i settori in modo regolare e leggendoli secondo lo specifico interleaving factor, si velocizzava il disco rigido e il calcolatore. I moderni dischi rigidi non necessitano di interleaving.
Struttura di un settore
Il settore è l'unità più piccola della formattazione di basso livello che riguarda la struttura fisica del disco rigido (formattazione fisica da non confondere con la formattazione logicache riguarda la creazione delle tabelle di allocazione dei file [FAT] necessarie al sistema operativo per gestire e navigare i dati presenti nelle cartelle del disco). Generalmente i settori sono raggruppati dal punto di vista logico in cluster per motivi di efficienza, quindi quando parliamo di cluster ci riferiamo a un gruppo di settori. Si ricordi che un file occupa sempre almeno un cluster. Per accedere a un settore bisogna specificare la superficie (platter), la traccia e il settore stesso. Il settore non è un semplice spazio sul disco memorizzabile, ma è dotato anch'esso di una struttura particolare che linearmente può essere sintetizzata così (la dimensione di un settore è variabile tra 32 byte e 4 KB, solitamente 512 byte):
<IRG><SYN,SYN><HEADER><DATI><BCC>.
L'IRG è InterRecordGap, cioè la parte smagnetizzata della traccia che serve a preannunciare l'inizio del settore (o la sua fine). La parte nominata "SYN,SYN" sono dei byte noti per il clock di lettura, cioè servono a sincronizzare un clock di lettura attuale, generato dal PLL e dal VCO combinati, con quello originale di scrittura. Al centro sta l'"HEADER", parte del settore dove sono memorizzate le informazioni necessarie alla localizzazione dello stesso settore su tutto il disco rigido, cioè dove in quel momento la testina sta leggendo-scrivendo. Sicuramente la parte di maggiore rilievo è quella "DATI", cioè dove i dati sono stati impacchettati attraverso record in modo che il rapporto tra dati "utili" e le informazioni sia alto: devono essere maggiori i dati allocati nel settore che le informazioni di allocamento del settore stesso. Altra importante parte della struttura di un settore è il "BCC", block check character. Tale parte del settore è il risultato di una funzione calcolata sul blocco "dati" e il suo scopo è di confermare la corretta lettura delle informazioni, cioè dei dati e di rendere evidente un eventuale errore di lettura.
Di recente è stata introdotta la denominazione commerciale Advanced Format, tutti i costruttori applicano uno speciale logo inconfutabilmente discernibile su tutti i dischi fissi che hanno i settori più grandi di 512 bytes utilizzando questa denominazione comune. Ogni costruttore adotta una struttura peculiare per i singoli settori dei dischi AF che contiene, oltre a parti omologhe di quelle descritte, un vero e proprio CRC ed altri parametri costruttivi proprietari a seconda del modello e della destinazione d'uso dello specifico prodotto.
Settore di avvio di SO
Nel caso di dischi rigidi con sistema operativo (SO) installato, il primo settore del disco, noto come settore di avvio, è il cosiddetto Master Boot Record (MBR) che contiene leistruzioni di avvio (boot) del sistema operativo su di esso installato. Nel caso di hard disk partizionato, ciascuna partizione contiene anche un proprio settore di avvio eventualmente lanciato dall'MBR.
Caratteristiche
Caratteristiche prestazionali
I dischi rigidi moderni hanno capacità e prestazioni enormemente superiori a quelle dei primi modelli, ma poiché nel frattempo la velocità e le prestazioni delle memorie ad accesso casuale (RAM e ROM) sono aumentate molto di più, la loro velocità nella lettura e scrittura dei dati restano comunque di diversi ordini di grandezza al di sotto delle prestazioni della RAM e della componentistica a stato solido che equipaggia un computer. Per questo motivo il disco rigido è spesso la causa principale del rallentamento di un computer (collo di bottiglia) soprattutto quando, a causa di una memoria RAM inferiore alla memoria virtuale richiesta dai programmi in esecuzione, il sistema operativo è costretto ad effettuare un gran numero di operazioni di swap tra il disco e la memoria centrale.
Le caratteristiche prestazionali principali di un disco rigido sono:
- la capacità di memorizzazione;
- il tempo di accesso ai dati;
- la velocità di trasferimento dei dati.
La capacità di memorizzazione è in genere espressa in gigabyte (GB). I produttori usano i gigabyte decimali, invece delle approssimazioni per potenze di due usate per la memoria. Questo significa che la capacità di un disco rigido è in realtà un poco più piccola di quella di un modulo di memoria con la stessa capacità, e lo scarto aumenta all'aumentare delle dimensioni. Quando la capacità è espressa in GB, il fattore di correzione è di (1000/1024)3, pari a circa 0,93, per cui un disco rigido da 320 GB ha una capacità effettiva di circa 298 GB. Attualmente (ottobre 2010) i dischi rigidi si trovano in vendita con capacità fino a 4 TB. Alcune aziende accorpano più dischi in un unico box per arrivare a capacità di 7,5 TB, si tratta di un espediente per poter offrire la massima capacità di archiviazione nel minimo spazio, ad es: Lacie Big Disk, Maxtor Shared Storage, ecc. La capacità può essere aumentata incrementando la densità con cui le informazioni vengono memorizzate sui piattelli che compongono il disco rigido o impiegandone un numero maggiore.
Il tempo di accesso è la variabile più importante nel determinare le prestazioni di un disco rigido (conoscendo il modello facilmente si può risalire ai dati tecnici dell'unità compreso il tempo di accesso; molti produttori di computer non menzionano questo dato e a volte nemmeno la marca e il modello). Si tratta del tempo medio necessario perché un dato, residente in un punto casuale del disco, possa essere reperito. Il tempo impiegato dipende dalla velocità della testina a spostarsi sulla traccia dove risiede il dato e dalla velocità di rotazione del disco; maggiore è la velocità e più breve è il tempo impiegato dal dato a ripassare sotto la testina nel caso questa non fosse arrivata in tempo sul dato, durante la rotazione precedente (latenza rotazionale). I produttori cercano perciò di realizzare testine sempre più leggere (che possono spostarsi più in fretta perché dotate di minore inerzia) e dischi che girano più velocemente. Il tempo di accesso tipico per un disco rigido da 7200 rpm è di circa 9 millisecondi (ms), per uno da 15.000 rpm è inferiore a 4 ms.
La velocità di trasferimento è la quantità di dati fornita dal disco rigido in un determinato tempo (in genere si prende 1 secondo come riferimento). Usare dischi che ruotino più velocemente o incrementare la densità di memorizzazione porta ad un miglioramento diretto della velocità di trasferimento. Va ricordato che la velocità di trasferimento cala in modo proporzionale al numero di discontinuità nei settori che compongono il file ricercato (vedi frammentazione).
Oltre alle tre viste sopra, altre caratteristiche influenzano in misura minore le prestazioni di un disco rigido. Tra queste:
- il buffer di memoria;
- la velocità dell'interfaccia.
Il buffer è una piccola memoria cache (in genere di alcuni megabyte) posta a bordo del disco rigido, che ha il compito di memorizzare gli ultimi dati letti o scritti dal disco. Nel caso in cui un programma legga ripetutamente le stesse informazioni, queste possono essere reperite nel buffer invece che sul disco. Essendo il buffer un componente elettronico e non meccanico, la velocità di trasferimento è molto maggiore, nel tempo, la capacità di questa memoria è andata sempre aumentando, attualmente (ottobre 2010) 32 MB o anche 64MB sono una dimensione abbastanza usuale.
L' interfaccia di collegamento tra il disco rigido e la scheda madre (o, più specificatamente, il controller) può influenzare le prestazioni perché specifica la velocità massima alla quale le informazioni possono essere trasferite da o per il disco. Le moderne interfacce tipo ATA133, Serial ATA o SCSI possono trasferire centinaia di megabyte per secondo, molto più di quanto qualunque singolo disco fisso possa fare, e quindi l'interfaccia non è in genere un fattore limitante. Il discorso può cambiare nell'utilizzo di più dischi in configurazione RAID, nel qual caso è importante utilizzare l'interfaccia più veloce possibile, come per esempio la Fibre Channel da 2 Gb/s.
Tempo di accesso a disco
Il tempo di accesso a disco è influenzato da cinque fattori:
- Controller Overhead (overhead del controllore): è il tempo necessario alla gestione dei dati e l'invio dell'opportuno interrupt; è il tempo in assoluto minore;
- Seek time (tempo di ricerca): è il tempo necessario a spostare la testina sulla traccia; è il fattore più critico poiché si tratta di un movimento meccanico e non di un impulso elettrico; questo fa sì che non si possa scendere al di sotto di qualche decina di millisecondo;
- Assessment time (tempo di assestamento): è il tempo necessario all'assestamento della testina sulla traccia dopo lo spostamento; spesso viene inglobato nel 'Seek time;
- Latency time (tempo di latenza): (anche rotational latency) è il tempo necessario perché, a causa della rotazione del disco, l'inizio del settore desiderato arrivi a trovarsi sotto la testina; ovviamente dipende dalla velocità dello spindle; per esempio con una velocità (tipica) di 5400 rpm, il tempo di latenza massimo è di circa 11 millisecondi;
- Rotational time (tempo di rotazione): è il tempo necessario al settore per passare sotto la testina, tempo durante il quale il settore viene letto o scritto.
Tempo di accesso: ControllerOverhead + SeekTime + Latency + RotationalTime
Nessun commento:
Posta un commento
Grazie per aver visitato il nostro blog.