Cylinder-head-sector

Schematisk bild av hårddiskens geometri

CHS-adressering är processen för att identifiera enskilda sektorer (dvs. fysiska datablock) på en disk genom deras position i ett spår, där spåret bestäms av huvud- och cylindernummer. Termerna förklaras nedifrån och upp, för diskadressering är sektorn den minsta enheten. Diskkontroller kan införa adressöversättningar för att mappa logiska till fysiska positioner, t.ex. zonbitsinspelning lagrar färre sektorer i kortare (inre) spår, fysiska diskformat är inte nödvändigtvis cylindriska och sektornumren i ett spår kan vara snedfördelade.

SektorerRedigera

Disketter och diskkontroller använder fysiska sektorstorlekar på 128, 256, 512 och 1024 byte (t.ex, PC/AX), varvid format med 512 byte per fysisk sektor blev dominerande på 1980-talet.

Den vanligaste fysiska sektorstorleken för hårddiskar idag är 512 byte, men det har funnits hårddiskar med 520 byte per sektor också för icke-IBM-kompatibla maskiner. År 2005 använde vissa anpassade hårddiskar från Seagate sektorstorlekar på 1024 byte per sektor. Hårdskivor i avancerat format använder 4096 byte per fysisk sektor (4Kn) sedan 2010, men kommer också att kunna emulera sektorer med 512 byte (512e) under en övergångsperiod.

Magnetoptiska hårddiskar använder sektorstorlekar på 512 och 1024 byte på 5.25-tums enheter och 512 och 2048 byte på 3,5-tums enheter.

I CHS-adressering börjar sektornumren alltid på 1, det finns ingen sektor 0, vilket kan leda till förvirring eftersom logiska sektoradresseringsscheman vanligtvis börjar räkna med 0, t.ex, logisk blockadressering (LBA) eller ”relativ sektoradressering” som används i DOS.

För fysiska diskgeometrier bestäms det maximala antalet sektorer av diskens lågnivåformat. För diskåtkomst med BIOS i IBM-PC-kompatibla maskiner kodades dock sektornumret i sex bitar, vilket resulterade i ett maximalt antal på 111111 (63) sektorer per spår. Detta maximum används fortfarande för virtuella CHS-geometrier.

TracksEdit

Spåren är de tunna koncentriska cirkulära remsorna av sektorer. Minst ett huvud krävs för att läsa ett enskilt spår. När det gäller diskgeometrier är termerna spår och cylinder nära besläktade. För en en- eller dubbelsidig diskett är spår den gemensamma termen, och för mer än två huvuden är cylinder den gemensamma termen. Strängt taget är ett spår en given CH kombination som består avSPT sektorer, medan en cylinder består avSPT×H sektorer.

CylindrarRedigera

En cylinder är en uppdelning av data i en diskettstation, som används i adresseringsläget CHS för en disk med fast blockarkitektur (Fixed Block Architecture) eller adresseringsläget CCHHR (cylinder-head-record) för en CKD-disk.

Begreppet är koncentriska, ihåliga, cylindriska skivor genom de fysiska skivorna (plattor), som samlar in respektive cirkulära spår som är riktade genom stapeln av plattor. Antalet cylindrar i en diskettstation är exakt lika med antalet spår på en enda yta i enheten. Det omfattar samma spårnummer på varje platta, som sträcker sig över alla sådana spår över varje platta yta som kan lagra data (utan hänsyn till om spåret är ”dåligt” eller inte). Cylindrar bildas vertikalt av spåren. Med andra ord, spår 12 på platta 0 plus spår 12 på platta 1 osv. är cylinder 12.

Andra former av direktåtkomstlagringsenheter (DASD), t.ex. trumminnesenheter eller IBM 2321 Data Cell, kan ge blockadresser som inkluderar en cylinderadress, även om cylinderadressen inte väljer ett (geometriskt) cylindriskt stycke av enheten.

HeadsEdit

En enhet som kallas huvud läser och skriver data i en hårddisk genom att manipulera det magnetiska medium som utgör ytan på en tillhörande diskplatta. Naturligtvis har en platta två sidor och därmed två ytor på vilka data kan manipuleras; vanligtvis finns det två huvuden per platta, ett per sida. (Ibland ersätts begreppet sida med huvud, eftersom plattorna kan vara separerade från sina huvudenheter, som med de utbytbara medierna i en diskettenhet.)

Den CHS-adressering som stöds i IBM-PC-kompatibla BIOS-koder använde åtta bitar för – teoretiskt sett upp till 256 huvuden som räknades som huvud 0 upp till 255 (FFh). Ett fel i alla versioner av Microsoft DOS/IBM PC DOS till och med 7.10 gör dock att dessa operativsystem kraschar vid uppstart när de stöter på volymer med 256 huvuden. Därför kommer alla kompatibla BIOS endast att använda mappningar med upp till 255 huvuden (00h..FEh), även i virtuella 255×63 geometrier.

Denna historiska udda kan påverka den maximala diskstorleken i gammal BIOS INT 13h-kod samt i gamla PC DOS eller liknande operativsystem:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 MB, men i själva verket 512×63×256×1024=8064 MB, vilket ger det som är känt som 8 GB-gränsen. I detta sammanhang är den relevanta definitionen av 8 GB = 8192 MB en annan felaktig gräns, eftersom det skulle kräva CHS 512×64×256 med 64 sektorer per spår.

Spår och cylindrar räknas från 0, dvs. spår 0 är det första (yttersta) spåret på disketter eller andra cylindriska skivor. Den gamla BIOS-koden stödde tio bitar i CHS-adressering med upp till 1024 cylindrar (1024=210). Om man lägger till sex bitar för sektorer och åtta bitar för huvuden får man de 24 bitar som stöds av BIOS-interrupt 13h. Om man subtraherar det otillåtna sektornumret 0 i 1024×256 spår motsvarar det 128 MB för en sektorstorlek på 512 byte (128 MB=1024×256×(512 byte/sector)); och 8192-128=8064 bekräftar gränsen på (ungefär) 8 GB.

CHS-adressering börjar vid 0/0/1 med ett maximalt värde 1023/255/63 för 24=10+8+6 bitar, eller 1023/254/63 för 24 bitar begränsade till 255 huvuden. CHS-värden som används för att specificera geometrin för en disk måste räkna cylinder 0 och huvud 0, vilket resulterar i maximalt (1024/256/63 eller) 1024/255/63 för 24 bitar med (256 eller) 255 huvuden. I CHS-tupler som anger en geometri betyder S i själva verket sektorer per spår, och där den (virtuella) geometrin fortfarande stämmer överens med kapaciteten innehåller disken C×H×S sektorer. I takt med att större hårddiskar har börjat användas har en cylinder också blivit en logisk diskstruktur, standardiserad till 16 065 sektorer (16065=255×63).

CHS-adressering med 28 bitar (EIDE och ATA-2) tillåter åtta bitar för sektorer som fortfarande börjar vid 1, dvs. sektorerna 1…255, fyra bitar för huvudena 0…15, och sexton bitar för cylindrarna 0…65535. Detta resulterar i en gräns på ungefär 128 GB; egentligen 65536×16×255=267386880 sektorer som motsvarar 130560 MB för en sektorstorlek på 512 byte. Bitsen 28=16+4+8 i ATA-2-specifikationen omfattas också av Ralf Browns avbrottslista, och ett gammalt arbetsutkast till denna nu utgångna standard publicerades.

Med en gammal BIOS-gräns på 1024 cylindrar och ATA-gränsen på 16 huvuden blev den kombinerade effekten 1024×16×63=1032192sektorer, dvs. en gräns på 504 MB för sektorstorlek 512. BIOS-översättningssystem kända som ECHS och reviderad ECHS mildrade denna begränsning genom att använda 128 eller 240 i stället för 16 huvuden, vilket samtidigt minskade antalet cylindrar och sektorer som skulle rymmas i 1024/128/63 (ECHS-gräns: 4032 MB) eller 1024/240/63 (reviderad ECHS-gräns: 7560 MB) för det givna totala antalet sektorer på en disk.

Blocken och klustrenRedigera

UnIX-gemenskaperna använder begreppet block för att referera till en sektor eller grupp av sektorer. Till exempel visade Linux verktyg fdisk, före version 2.25, partitionsstorlekar med hjälp av block på 1024 byte.

Cluster är tilldelningsenheter för data i olika filsystem (FAT, NTFS etc.), där data huvudsakligen består av filer. Kluster påverkas inte direkt av diskens fysiska eller virtuella geometri, dvs. ett kluster kan börja i en sektor nära slutet av ett visst CH spår och sluta i en sektor på det fysiskt eller logiskt nästa CH spår.

Lämna ett svar

Din e-postadress kommer inte publiceras.