Cylinder-head-sector

skematisk oversigt over harddiskens geometri

CHS-adressering er processen med at identificere individuelle sektorer (alias fysiske datablokke) på en disk ved deres placering i et spor, hvor sporet bestemmes af hoved- og cylindernumrene. Begreberne er forklaret nedefra og op, for diskadressering er sektoren den mindste enhed. Diskcontrollere kan indføre adresse-oversættelser for at mappe logiske til fysiske positioner, f.eks. zone bit recording gemmer færre sektorer i kortere (indre) spor, fysiske diskformater er ikke nødvendigvis cylindriske, og sektornumrene i et spor kan være skæve.

SektorerRediger

Disketter og controllere anvender fysiske sektorstørrelser på 128, 256, 512 og 1024 bytes (f.eks, PC/AX), hvor formater med 512 byte pr. fysisk sektor blev dominerende i 1980’erne.

Den mest almindelige fysiske sektorstørrelse for harddiske i dag er 512 byte, men der har også været harddiske med 520 byte pr. sektor til ikke-IBM-kompatible maskiner. I 2005 brugte nogle specialfremstillede harddiske fra Seagate sektorstørrelser på 1024 byte pr. sektor. Advanced Format-harddiske bruger 4096 byte pr. fysisk sektor (4Kn) siden 2010, men vil også kunne emulere 512 byte-sektorer (512e) i en overgangsperiode.

Magnetoptiske drev bruger sektorstørrelser på 512 og 1024 byte på 5.25-tommers drev og 512 og 2048 bytes på 3,5-tommers drev.

I CHS-adressering starter sektornumrene altid ved 1, der er ingen sektor 0, hvilket kan føre til forvirring, da logiske sektoradresseringsordninger typisk starter tællingen med 0, f.eks, logisk blokadressering (LBA) eller “relativ sektoradressering”, der anvendes i DOS.

For fysiske diskgeometrier bestemmes det maksimale sektornummer af diskens format på lavt niveau. Ved diskadgang med BIOS i IBM-PC-kompatible maskiner blev sektornummeret imidlertid kodet i seks bit, hvilket resulterede i et maksimalt antal på 11111111 (63) sektorer pr. spor. Dette maksimum er stadig i brug for virtuelle CHS-geometrier.

TracksEdit

Sporene er de tynde koncentriske cirkulære strimler af sektorer. Der kræves mindst ét hoved for at læse et enkelt spor. Med hensyn til diskgeometrier er udtrykkene track og cylinder nært beslægtede. For en enkelt- eller dobbeltsidet diskette er track den almindelige betegnelse, og for mere end to hoveder er cylinder den almindelige betegnelse. Strengt taget er et spor en given CH kombination bestående afSPT sektorer, mens en cylinder består afSPT×H sektorer.

CylindreRediger

En cylinder er en opdeling af data i et diskdrev, som anvendes i CHS-adresseringstilstanden på en disk med fast blokarkitektur eller cylinder-head-record-adresseringstilstanden (CCHHR) på en CKD-disk.

Begrebet er koncentriske, hule, cylindriske skiver gennem de fysiske diske (platters), der opsamler de respektive cirkulære spor, der er justeret gennem stakken af platters. Antallet af cylindre i et diskdrev er nøjagtigt lig med antallet af spor på en enkelt overflade i drevet. Det omfatter det samme spornummer på hver plade, der dækker alle sådanne spor over hver pladeoverflade, der kan lagre data (uden hensyn til, om sporet er “dårligt” eller ej). Cylindre er vertikalt dannet af spor. Med andre ord er spor 12 på plade 0 plus spor 12 på plade 1 osv. cylinder 12.

Andre former for Direct Access Storage Device (DASD), f.eks. tromlehukommelsesenheder eller IBM 2321 Data Cell, kan give blokadresser, der omfatter en cylinderadresse, selv om cylinderadressen ikke vælger en (geometrisk) cylindrisk skive af enheden.

HeadsEdit

En enhed kaldet et hoved læser og skriver data i en harddisk ved at manipulere det magnetiske medium, der udgør overfladen på en tilhørende diskplade. Naturligvis har en plade 2 sider og dermed 2 overflader, hvorpå data kan manipuleres; normalt er der 2 hoveder pr. plade, et pr. side. (Nogle gange erstattes udtrykket side med hoved, da pladerne kan være adskilt fra deres hovedsamlinger, som det er tilfældet med de flytbare medier i et diskettedrev.)

Den CHS-adressering, der understøttes i IBM-PC-kompatible BIOS-koder, brugte otte bit til – teoretisk set op til 256 hoveder, der blev talt som hoved 0 op til 255 (FFh). En fejl i alle versioner af Microsoft DOS/IBM PC DOS til og med 7.10 får imidlertid disse styresystemer til at gå ned ved opstart, når de støder på volumener med 256 hoveder. Derfor vil alle kompatible BIOSer kun anvende mappings med op til 255 hoveder (00h..FEh), også i virtuelle 255×63-geometrier.

Denne historiske mærkværdighed kan påvirke den maksimale diskstørrelse i gammel BIOS INT 13h-kode samt i gamle PC DOS- eller lignende operativsystemer:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 MB, men faktisk giver 512×63×256×1024=8064 MB det, der er kendt som 8 GB-grænsen. I denne sammenhæng er den relevante definition af 8 GB = 8192 MB en anden forkert grænse, fordi det ville kræve CHS 512×64×256 med 64 sektorer pr. spor.

Spor og cylindre tælles fra 0, dvs. spor 0 er det første (yderste) spor på disketter eller andre cylindriske diske. Den gamle BIOS-kode understøttede ti bit i CHS-adressering med op til 1024 cylindre (1024=210). Hvis man tilføjer seks bit til sektorer og otte bit til hoveder, får man de 24 bit, der understøttes af BIOS-interrupt 13h. Hvis man trækker det ikke tilladte sektornummer 0 i 1024×256-sporene fra, svarer det til 128 MB for en sektorstørrelse på 512 bytes (128 MB=1024×256×(512 byte/sector)); og 8192-128=8064 bekræfter den (omtrentlige) 8 GB-grænse.

CHS-adressering starter ved 0/0/1 med en maksimal værdi 1023/255/63 for 24=10+8+6-bits, eller 1023/254/63 for 24 bits begrænset til 255 hoveder. CHS-værdier, der anvendes til at angive geometrien af en disk, skal tælle cylinder 0 og hoved 0, hvilket resulterer i maksimalt (1024/256/63 eller) 1024/255/63 for 24 bit med (256 eller) 255 hoveder. I CHS-tupler, der angiver en geometri, betyder S faktisk sektorer pr. spor, og hvor den (virtuelle) geometri stadig svarer til kapaciteten, indeholder disken C×H×S sektorer. Efterhånden som større harddiske er kommet i brug, er en cylinder også blevet en logisk diskstruktur, der er standardiseret til 16 065 sektorer (16065=255×63).

CHS-adressering med 28 bit (EIDE og ATA-2) tillader otte bit for sektorer, der stadig starter ved 1, dvs. sektorer 1…255, fire bit for hoveder 0…15 og seksten bit for cylindere 0…65535. Dette resulterer i en grænse på ca. 128 GB; faktisk 65536×16×255=267386880 sektorer svarende til 130560 MB for en sektorstørrelse på 512 bytes. De 28=16+4+8 bits i ATA-2-specifikationen er også omfattet af Ralf Browns Interrupt List, og der blev offentliggjort et gammelt arbejdsudkast til denne nu udløbne standard.

Med en gammel BIOS-grænse på 1024 cylindre og ATA-grænsen på 16 hoveder var den kombinerede effekt 1024×16×63=1032192 sektorer, dvs. en grænse på 504 MB for sektorstørrelse 512. BIOS-oversættelsesordninger kendt som ECHS og revideret ECHS afbød denne begrænsning ved at bruge 128 eller 240 i stedet for 16 hoveder og samtidig reducere antallet af cylindre og sektorer, så de passer ind i 1024/128/63 (ECHS-grænse: 4032 MB) eller 1024/240/63 (revideret ECHS-grænse: 7560 MB) for det givne samlede antal sektorer på en disk.

Blokke og klyngerRediger

I Unix-fællesskaberne anvender udtrykket blok til at henvise til en sektor eller gruppe af sektorer. F.eks. viste Linux-hjælpeprogrammet fdisk før version 2.25 partitionsstørrelser ved hjælp af blokke på 1024 byte.

Klynger er tildelingsenheder for data på forskellige filsystemer (FAT, NTFS osv.), hvor data hovedsageligt består af filer. Klynger er ikke direkte påvirket af diskens fysiske eller virtuelle geometri, dvs. en klynge kan begynde i en sektor nær slutningen af et givet CH spor og slutte i en sektor på det fysisk eller logisk næste CH spor.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.