Cilindro-testa-settore

schematico della geometria dell’hard disk

L’indirizzamento su disco è il processo di identificazione dei singoli settori (aka. blocco fisico di dati) su un disco dalla loro posizione in una traccia, dove la traccia è determinata dai numeri di testa e cilindro. I termini sono spiegati dal basso verso l’alto, per l’indirizzamento del disco il settore è l’unità più piccola. I controller dei dischi possono introdurre traslazioni di indirizzi per mappare le posizioni logiche a quelle fisiche, per esempio, la registrazione a zone bit memorizza meno settori in tracce più corte (interne), i formati fisici dei dischi non sono necessariamente cilindrici, e i numeri dei settori in una traccia possono essere distorti.

SettoriModifica

I dischi floppy e i controller usano dimensioni fisiche dei settori di 128, 256, 512 e 1024 byte (per esempio, PC/AX), per cui i formati con 512 byte per settore fisico divennero dominanti negli anni ’80.

La dimensione del settore fisico più comune per i dischi rigidi oggi è di 512 byte, ma ci sono stati anche dischi rigidi con 520 byte per settore per macchine non IBM compatibili. Nel 2005 alcuni dischi rigidi personalizzati Seagate usavano dimensioni di settore di 1024 byte per settore. I dischi rigidi Advanced Format usano 4096 byte per settore fisico (4Kn) dal 2010, ma saranno anche in grado di emulare settori da 512 byte (512e) per un periodo transitorio.

I dischi magneto-ottici usano dimensioni di settore di 512 e 1024 byte su unità da 5. 25 pollici e 512 e 20.000 byte su unità da 5 pollici.25 pollici e 512 e 2048 byte sulle unità da 3,5 pollici.

Nell’indirizzamento CHS i numeri di settore iniziano sempre da 1, non c’è il settore 0, che può portare a confusione poiché gli schemi di indirizzamento logico di settore iniziano tipicamente a contare con 0, ad es, l’indirizzamento logico a blocchi (LBA), o “l’indirizzamento relativo a settori” usato in DOS.

Per le geometrie fisiche dei dischi il numero massimo di settore è determinato dal formato di basso livello del disco. Tuttavia, per l’accesso al disco con il BIOS delle macchine IBM-PC compatibili, il numero di settore era codificato in sei bit, risultando in un numero massimo di 111111 (63) settori per traccia. Questo massimo è ancora in uso per le geometrie CHS virtuali.

TracceModifica

Le tracce sono le sottili strisce circolari concentriche dei settori. È necessaria almeno una testina per leggere una singola traccia. Per quanto riguarda le geometrie dei dischi, i termini traccia e cilindro sono strettamente correlati. Per un floppy disk a una o due facce la traccia è il termine comune; e per più di due testine il cilindro è il termine comune. In senso stretto una traccia è una data CH combinazione che consiste diSPT settori, mentre un cilindro consiste diSPT×H settori.

CilindriModifica

Un cilindro è una divisione di dati in un’unità disco, come usato nella modalità di indirizzamento CHS di un disco Fixed Block Architecture o nella modalità di indirizzamento cylinder-head-record (CCHHR) di un disco CKD.

Il concetto è fette concentriche, cave, cilindriche attraverso i dischi fisici (piatti), raccogliendo le rispettive tracce circolari allineate attraverso la pila di piatti. Il numero di cilindri di un’unità disco equivale esattamente al numero di tracce su una singola superficie nell’unità. Comprende lo stesso numero di tracce su ogni piatto, abbracciando tutte queste tracce su ogni superficie del piatto che è in grado di memorizzare dati (senza considerare se la traccia è “cattiva” o meno). I cilindri sono formati verticalmente dalle tracce. In altre parole, la traccia 12 sul piatto 0 più la traccia 12 sul piatto 1 ecc. è il cilindro 12.

Altre forme di Direct Access Storage Device (DASD), come i dispositivi di memoria a tamburo o l’IBM 2321 Data Cell, potrebbero dare indirizzi di blocchi che includono un indirizzo di cilindro, anche se l’indirizzo del cilindro non seleziona una fetta cilindrica (geometrica) del dispositivo.

HeadsEdit

Un dispositivo chiamato testa legge e scrive dati in un disco rigido manipolando il mezzo magnetico che compone la superficie di un piatto del disco associato. Naturalmente, un piatto ha 2 lati e quindi 2 superfici su cui i dati possono essere manipolati; di solito ci sono 2 testine per piatto, una per lato. (A volte il termine lato è sostituito da testa, poiché i piatti potrebbero essere separati dai loro gruppi di testine, come con i supporti rimovibili di un’unità floppy.)

L’indirizzamento CHS supportato nel codice BIOS compatibile IBM-PC usava otto bit per – teoricamente fino a 256 testine contate come testa 0 fino a 255 (FFh). Tuttavia, un bug in tutte le versioni di Microsoft DOS/IBM PC DOS fino alla 7.10 inclusa causerà il blocco di questi sistemi operativi all’avvio quando si incontrano volumi con 256 testine. Pertanto, tutti i BIOS compatibili useranno solo mappature con un massimo di 255 testine (00h..FEh), anche in geometrie virtuali 255×63.

Questa stranezza storica può influenzare la dimensione massima del disco nel vecchio codice BIOS INT 13h così come il vecchio PC DOS o sistemi operativi simili:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 MB, ma in realtà 512×63×256×1024=8064 MB produce quello che è noto come limite di 8 GB. In questo contesto la definizione pertinente di 8 GB = 8192 MB è un altro limite errato, perché richiederebbe CHS 512×64×256 con 64 settori per traccia.

Le tracce e i cilindri sono contati a partire da 0, cioè la traccia 0 è la prima (più esterna) traccia su floppy o altri dischi cilindrici. Il vecchio codice BIOS supportava dieci bit nell’indirizzamento CHS con un massimo di 1024 cilindri (1024=210). Aggiungendo sei bit per i settori e otto bit per le testine si ottengono i 24 bit supportati dall’interrupt 13h del BIOS. Sottraendo il numero di settore 0 non consentito nelle tracce 1024×256 si ottiene 128 MB per una dimensione di settore di 512 byte (128 MB=1024×256×(512 byte/sector)); e 8192-128=8064 conferma il limite (approssimativo) di 8 GB.

L’indirizzamento CHS inizia da 0/0/1 con un valore massimo 1023/255/63 per 24=10+8+6 bit, o 1023/254/63 per 24 bit limitato a 255 testine. I valori CHS utilizzati per specificare la geometria di un disco devono contare il cilindro 0 e la testina 0 risultando in un massimo (1024/256/63 o) 1024/255/63 per 24 bit con (256 o) 255 testine. Nelle tuple CHS che specificano una geometria S significa effettivamente settori per traccia, e dove la geometria (virtuale) corrisponde ancora alla capacità il disco contiene C×H×S settori. Con l’entrata in uso di dischi rigidi più grandi, un cilindro è diventato anche una struttura logica del disco, standardizzata a 16 065 settori (16065=255×63).

L’indirizzamento CHS con 28 bit (EIDE e ATA-2) permette otto bit per i settori che iniziano ancora a 1, cioè i settori 1…255, quattro bit per le testine 0…15, e sedici bit per i cilindri 0…65535. Questo risulta in un limite di circa 128 GB; in realtà 65536×16×255=267386880 settori corrispondenti a 130560 MB per una dimensione di settore di 512 byte. I 28=16+4+8 bit nella specifica ATA-2 sono anche coperti dalla Interrupt List di Ralf Brown, ed è stata pubblicata una vecchia bozza di lavoro di questo standard ora scaduto.

Con un vecchio limite BIOS di 1024 cilindri e il limite ATA di 16 testine l’effetto combinato era 1024×16×63=1032192 settori, cioè un limite di 504 MB per settori da 512. Gli schemi di traduzione del BIOS conosciuti come ECHS e ECHS rivisto mitigavano questa limitazione usando 128 o 240 invece di 16 testine, riducendo simultaneamente il numero di cilindri e settori da inserire in 1024/128/63 (limite ECHS: 4032 MB) o 1024/240/63 (limite ECHS rivisto: 7560 MB) per il dato numero totale di settori su un disco.

Blocchi e clusterModifica

Le comunità Unix usano il termine blocco per riferirsi a un settore o gruppo di settori. Per esempio, l’utilità Linux fdisk, prima della versione 2.25, mostrava le dimensioni delle partizioni usando blocchi da 1024 byte.

I cluster sono unità di allocazione dei dati su vari file system (FAT, NTFS, ecc.), dove i dati consistono principalmente in file. I cluster non sono direttamente influenzati dalla geometria fisica o virtuale del disco, cioè un cluster può iniziare in un settore vicino alla fine di una data CHtraccia, e finire in un settore sulla traccia CH fisicamente o logicamente successiva.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.