Хард дискове, харддискови устройства и интерфейси

Хард дискът е устройството, което съхранява по-голяма част от данните на потребителя. Тъй като данните все пак са най-ценното във вашата система, разумно е да се предположи, че харддискът е, в известна степен, най-важната част от компютъра.

Харддискови устройства и интерфейси

Подсистемата на харддиска се състои от самото харддисково устройство, дисков интерфейсен контролер, който се поставя в един от разширителните слотове на дънната платка, и кабел или кабели за връзка между тях. Дисковите интерфейси са или хост адаптери, или контролери, в зависимост от вида на използваната технология. По-старите устройства използват контролери, а по-новите съответно хост адаптери. Разликата ще бъде разгледана малко по-нататък.

Понятията, свързани с харддисковете, се отнасят или за самите устройства, или за дисковия интерфейс.
Дисковите интерфейси също имат определени характеристики.

Геометрия на диска: глави, пътечки, цилиндри и сектори

Ако исках да ви кажа как да стигнете до дома ми, бих казал нещо от сорта на: “Тръгнете на запад от Вашингтон, пътувайте пет мили по 1-66 до Dreller Avenue, след това свийте наляво и тръгнете на юг, като изминете още една миля, докато стигнете Garner Опуе. Тръгнете на дясно по Garner и ще ме намерите след два блока от дясната страна.” За да разберете за какво говоря, трябва да разбирате значението на думите запад, юг, блок, ляво и дясно. По същата логика не трябва дори и да си помисляте да настройвате харддиска, без да разбирате термини като цилиндър, глава, сектор и пътечка – основни думи, що се отнася до подобен род устройстйа.
Върху диска данните се съхраняват под формата на байтове. Тези байтове са групирани по 512, като една такава група се нарича сектор. Секторът е минималното количество информация, която може да се прочете или запише върху харддиска. Секторите са групирани в пътечки, а пътечките понякога за удобство са подредени по групи, наречени цилиндри. Един диск има поне две повърхнини. На фигура 10.2 можете да видите разрез на харддисково устройство.

Преди да разгледаме по-подробно харддисковите устройства обаче, по-лесно ще е да обясним структурата им с един много прост пример, с помощта на по-опростената среда за съхранение на данни – “древната” 360КВ дискета. Описанието на 360К дискета може да бъде направено по следния начин:
Дискетата има две страни, което изисква две глави за четенето им. Понякога те се наричат две повърхности.
Всяка от страните съхранява данни.
Всяка страна е разделена на 40 концентрични пътечки. Използва се и свързаното с пътечките наименование цилиндри, затова се казва, че една 360К дискета има 40 цилиндъра.
Всяка пътечка е разделена, както се реже торта на парчета, на девет части, наречени сектори.
Всеки сектор съхранява 0.5К (512 байта) информация.
За разлика от дискетата, харддискът съдържа твърди метални дискове, наречени точи, които са подредени една над друга. Целият този пакет е поставен в кожух с филтрирана газова среда. Например оригиналното 10МВ дисково устройство на XT имаше само две плочи. Други устройства могат да имат по-малко или повече. Връщайки се към примера с дискетата можем да кажем, че тя е като една “плоча”, но не е твърда.

Дискови глави

Също както дискетата, харддискът има електромагнитна глава за четене/запис за всяка от страните на всяка плоча. Например оригиналното 10МВ устройство на XT имаше четири глави: за двете плочи по две глави. Тъй като харддисковото устройство е запечатано, не трябва да се притеснявате за калибрирането или почистването на тези глави. Дори и да искахте, не бихте могли да направите това, понеже нямате достъп до тях.

Дискови пътечки

Всяка страна на всяка плоча (понякога наречена повърхност) е разделена на концентрични окръжности, точно както е при дискетата. Една дискета, като старата 360КВ, показана на фигура 10.3, обикновено има 40 пътечки, но харддисковете имат най-малко 305. Виждал съм устройства с над 3000 пътечки. Плочата обикновено е с диаметър 5.25 инча, като на дискета, затова очевидно пътечките са доста по-близо една до друга. Плочите на харддисковите устройства могат да бъдат с диаметър 5.25, 3.5, 2.5 или 1.75 инча.

Цилиндри

Обикновено в един харддиск има повече от една плоча, затова голяма част от дисковете използват четири или повече глави за четене/запис. Всички дискови глави, независимо от това дали са двете глави на флопидисковото устройство или шестнадесетте, използвани при някои по-големи устройства, са закрепени към задвижващ механизъм. Това означава, че когато глава 0 (броим от 0 до 3, както е в целият компютърен свят, а не от 1 до 4) е позиционирана върху пътечка 142 на повърхност 0, глава 3 също е позиционирана върху пътечка 142 на повърхност 3. Дисковите глави не могат да бъдат позиционирани независимо и този факт ни води към изясняване на понятието цилиндър.

За да се прочете даден сектор, дисковият хардуер преминава през две стъпки. Първо, четящо/записващите глави трябва да се придвижат над определената пътечка. Второ, трябва да се изчака определено време, докато желаният сектор се окаже под главата и най-накрая може да бъде прочетен. В най-общия случай движението на главата отнема най-много време. Това означава, че даден файл ще бъде прочетен най-бързо, ако секторите му са разположени върху една пътечка, а пътечките му са една върху друга. В този случай придвижването на главата е минимално и се чете максимална по обем информация. По такъв начин, ако даден ^ голям файл започва, да речем, под глава 0 и пътечка 271, добре ще е да се уверите, че следващата пътечка, която файлът използва, е под глава 1 и е отново 271, следващата е под глава 2 и е върху пътечка 271, и т.н. Така за зареждане на голямо количество данни няма да е необходимо движение на главите.

В този пример може да се види връзката между всички пътечки с номера 271. Това тяхно групиране обособява т.нар. цилиндър. (Пътечките представляват окръжности, а ако подредите еднакви окръжности една над друга, ще получите цилиндър.) Връзката между пътечки и цилиндри е показана на фигура 10.4.
Броят на пътечките от една повърхност е равен на броя на цилиндрите, затова повечето производители не дават данни за броя на пътечките: отчита се само броят на цилиндрите. Въпреки че двете понятия означават различни неща, цилиндрите и пътечките се използват като синоними.

Сектори

Всяка повърхност е разделена на части по подобие на торта. При флопидисковите устройства пътечките обикновено са разделени на от 8 до 18 сектора (парчета от тортата).
И флопи и харддисковите устройства съхраняват по 512 байта на сектор – 0.5КВ данни, като 1К = 1024.

Ако обобщим казаното дотук, една 360КВ дискета се състои от:

  • 2 страни или повърхности или глави
  • 40 пътечки на страна или цилиндри
  • 9 сектора на пътечка
  • 0.5К байта на сектор

Резултатът е:

2 х 40 х 9 х 0.5К = 360К байта
А сега да сравним тези данни със спецификацията на 10МВ хард диск на XT – най-елементарния хардциск, който съм виждал:

  • 4 повърхности
  • 305 пътечки на всяка повърхност
  • 17 сектора на пътечка
  • 0.5К байта на всеки сектор

Резултатът е:

4х305х 17х0.5К= 10 370К байта

Ако разгледате други дискове, ще откриете, че величината 512 байта/сектор е доста постоянна. Броят на пътечките, броят на плочите и броят на секторите варира. Повечето производители не изнасят данни за броя на плочите, а за броя на главите, което отговаря на броя на повърхностите. Да вземем за пример по-съвременен диск:

  • Има 2448 цилиндъра
  • Използва 16 глави
  • Има 63 сектора на пътечка

Във всеки сектор има 512 байта (0.5К) данни
Умножете тези стойности и ще получите устройство с капацитет приблизително 1200МВ или 1.2 GB.

Зоново битов запис (ZBR)

Преди да изоставим темата за секторите, струва си да споменем, че диаграмите, които видяхте досега в книгата, предполагат, че всички споменати устройства имат константен брой сектори на пътечка. Това обаче не винаги е така.
За повечето устройства ще откриете, че имат постоянен брой сектори на пътечка. Това изглежда като разхищаване на полезна повърхност, защото е очевидно, че секторите на външните пътечки заемат много повече място от тези от вътрешната страна. Защо да не се запишат още няколко сектора върху външните пътечки?
Причината е една – доста по-трудно е да се проектира устройство, поддържащо различен брой сектори на пътечка. Фиксираният брой сектори на пътечка означава, че главите прехвърлят едно и също количество данни за милисекунда, независимо дали се използва цилиндър 0, или цилиндър 1500. Поставянето на повече сектори върху външните пътечки изисква доста по-гъвкава схема за четене и запис, и до сега не беше икономически изгодно да се използва вариращ брой сектори на пътечка, освен при най-скъпите устройства.

Записването на различен брой сектори на пътечка върху дисковата повърхност се нарича зоново битов запис или ZBR (Zone Bit Recording). Изискването на потребителите за все по-голям и по-голям капацитет във все по-малки и по-малки устройства, в комбинация с по-евтина и по-бърза електроника, доведе до все по-нарастващата употреба на ZBR.
По-голяма част от използвания от вас софтуер няма да разбере, че дискът ви използва ZBR. Тъй като софтуерът предполага, че броят на секторите на пътечка е постоянен, ZBR устройствата го “заблуждават”, държейки се като устройства с постоянен брой сектори на пътечка.
Един вид диск, за който можете да бъдете сигурни че винаги използва ZBR, е CD-ROM устройството. Вместо концентрични пътечки, CD-ROM устройствата използват една дълга непрекъсната спирала, като пистите на грамофон. Как хардуерът на CD-ROM-a успява да се справи с вариращия брой сектори? Проблемът се решава с променяне на скоростта на въртене на задвижващия електродвигател в зависимост от положението на главата върху диска. Повече за CD-ROM устройствата ще намерите в съответната глава.

Ограничения, свързани с големината на диска

Преди да продължим, позволете ми да се отклоня за момент и да поговоря за някои софтуерни ограничения относно големината на диска. Хората често казват: “DOS не може да поддържа устройства, по-големи от 500МВ”, но това не е съвсем вярно. Какво е действителното ограничение за големината на диска?
Първото препятствие е интерфейсът. Всеки дисков интерфейс налага ограничения върху броя на главите, които може да поддържа, или върху броя на секторите на пътечка. Тази информация играе все по-малка роля в наши дни, тъй като повечето съвременни видове устройства – IDE, EIDE и SCSI, които ще срещнете по-нататък в тази глава, вземат под внимание само параметъра общ брой сектори на устройство. Тяхното ограничение е четири милиарда сектора на устройство, така че хардуерът налага ограничение от два терабайта на устройство, ако в един сектор има 0.5К данни.
Дисковият контролер, включен в IBM АТ от 1984г., беше популярен като WD1003 на Western Digital и се наложи като стандарт за дискови контролери. Той имаше ограничение до 16 глави. Това не е задължително, но използването на повече от 16 глави може да доведе до несъвместимост, затова производителите избягват вграждането на повече от 16 глави.
Следващото ниво е BIOS на компютъра. Дисковият интерфейс на BIOS извикваше INT 13 след издаване на команда от програма за достъп до него. Първоначално той беше дефиниран за дискети. Номерът на сектора се записваше в 8-битов регистър, наречен CL, номерът на пътечката се съхраняваше в друг с име СН, а в трети 8-битов регистър, наречен DH, се записваше номерът на главата. Осемте бита могат да представят до 256 стойности, следователно BIOS-ът поддържаше до 256 глави, 256 цилиндъра и 256 сектора на пътечка.
Поради съображения за удобство и съвместимост INT 13 беше замислен да обслужва харддисковите устройства на XT и следващите системи. А ограничението от 256 цилиндъра, умножено по 256 глави на цилиндър, по 256 сектора на пътечка и по 0.5К на сектор не е лошо – 8.4GB. Разпределението обаче не беше добро: повечето устройства нямат повече от 16 глави, а от друга страна по-голяма част от устройствата са с повече от 256 цилиндъра (в действителност почти всички).
Ето защо използването на INT 13 за харддискове водеше до грешки.
Дефиницията на СН и CL беше малко мъглява. CL все още съхранява номера на сектора, но само в младшите 6 бита на CL. Старшите 2 бита на CL се добавяха отпред в СН за номера на цилиндъра. Това означава, че броя на секторите може да бъде описан само с 6 бита, а максималната стойност, която може да се представи чрез 6 бита, е 63. Цилиндрите биха могли да се представят чрез 10 бита, а максималната стойност, описана с 10 бита, е 1023. (Минималната стойност и за секторите, и за цилиндрите е 0.)
И така, BIOS предполага, че цилиндрите не могат да бъдат повече от 1023, а секторите не повече от 63. Тъй като първият цилиндър е винаги с номер 0, това означава, че BIOS поддържа до 1024 цилиндъра. От друга страна, номерацията на секторите започва от 1, така че максималната стойност е 63. Вие можете да заобиколите BIOS или чрез BIOS чип на платката на дисковия интерфейс, или ако използвате някакъв драйвер за устройството, като например OnTrack Disk Manager, но и в двата случая жертвате съвместимостта с други операционни системи.

Преобразуване на сектори и логическо адресиране по блокове

Най-големият проблем, налагащ се от ограничението на BIOS, не е в това, че той не може да поддържа дискови устройства с повече от 500 глави (все пак не съм виждал нито едно такова устройство). По-същественият проблем е този, че съществуват много устройства с повече от 1024 цилиндъра.

Преобразуване на сектори

Когато инсталирате харддиск в даден компютър, както ще научите в следващата глава, ще трябва да въведете характеристиките на новото устройство – колко на брой цилиндри, глави и сектори притежава. Ако трябва да бъдем точни, вие въвеждате тази информация в системния CMOS чип. BIOS обаче няма да ви позволи да въведете стойност за цилиндрите по-голяма от 1024. (Някои нови системи позволяват въвеждането и на по-големи числа.) А сега да предположим, че имате устройство с 1600 цилиндъра и 4 глави. Ако се опитате да запишете стойността 1600, по-голяма част от системите просто ще откажат да я възприемат. Затова някои дискови системи “излъгват” компютъра, казвайки, че имат не 1600 цилиндъра и 4 глави, а 800 цилиндъра и осем глави. Сметнете и ще видите, че резултатът е един и същ и в двата случая, но сега BIOS вече е удовлетворен. В такъв случай BIOS издава команди към диск с 800 цилиндъра и 8 глави, а тези имагинерни характеристики се преобразуват от дисковата подсистема в реалните 1600 цилиндъра и 4 глави. Този процес е наречен преобразуване на сектори.
Някои SCSI и IDE системи издигат преобразуването на секторите до нови висоти, като следят само общия брой сектори за цялото устройство. Обикновено системният софтуер би казал на дисковия интерфейс: “Дай ми достъп до цилиндър 100, глава 3, сектор 20″. Това се нарича “триизмерен” секторен адрес. При тези SCSI и IDE системи обаче, системният софтуер просто би казал само: “Дай ми достъп до сектор 143 292 на диска”. Всички сектори са номерирани един след друг, независимо от техните глави и цилиндри. Такава адресираща схема на секторите се нарича линейна.
И така, защо това е проблем? Обикновено не е. Но ако вие използвате програма, която работи с диска на ниско ниво, като например калибриращата SpinRite, тя може да изисква преформатиране на определени пътечки от диска. Когато тя подава заявка към контролера за форматиране от ниско ниво, да речем, на цилиндър 10, глава 5, той възприема командата по следния начин: “Форматирай реалния цилиндър 10 на устройство с 1600 цилиндъра, а не логическия цилиндър 800″. В резултат на това форматирането от ниско ниво завършва с унищожаване на информация, което не е било първоначалното намерение на калибриращата програма. Програмата SpinRite детектира преобразуването на сектори и така избягва тези проблеми, но това не важи за всички програми.

Логическо адресиране по блокове

Но преобразуването на сектори изглежда малко странно за по-големи устройства.
Погледнете няколко страници назад и намерете резултата от програмата CORETEST. Веднага ще забележите нещо странно. Устройството, отбелязано като EIDE DRIVE, твърди, че има 64 глави\ Колко голямо е това устройство? Физически то е с размерите на колода карти. Как са успели да поберат всички тези глави в устройство с височина само един инч -да видим, при 64 глави би трябвало да има 32 плочи?
Отговорът е, както може би се досещате, че те не са направили нищо подобно. Устройството има 64 глави, 63 сектора и 611 цилиндъра. Това са общо 1 231 776КВ, 1203МВ или 1.17GB. (Спомняте ли си, един мегабайт не е 1 000 000 байта, а 1 048 576 байта. По аналогичен начин, един гигабайт не е 1 000 000 000 байта, а 1 073 741 824 байта. Не се изненадвайте обаче, ако производителите за удобство предефинират понятията на 1 000 000 и 1 000 000 000.)
Както вече споменах преди една или две страници, аз имах устройство с 2448 цилиндъра, 16 глави и 63 сектора. Изчислете капацитета му още веднъж и ще получите устройство със същата големина. Това не е съвпадение, това е същото устройство.
Тук внимателните читатели доста ще се озадачат и ще кажат: “Хей, чакай малко, 64 глави определено не могат да се съберат в устройство с височина един инч, но същото важи и за 16 глави. Какво става тук?”. Това е вярно. Устройството няма 16 глави. Но именно това трябва да кажа на компютъра, когато конфигурирам системата.
Виждате ли, това устройство, както повечето съвременни устройства с голям капацитет, използва ZBR кодиране. Това означава, че има променлив брой сектори на пътечка. Проблемът е, както вече обясних, че BIOS-ът на вашето PC ще настоява да узнае броя на цилиндрите, главите и секторите на пътечка на устройството и ще отказва да използва каквото и да е устройство, без да е въведена подобна информация. Но техническата спецификация на моето устройство казва, че то има 3854 Цилиндъра, шест повърхности за данни и не дава никаква информация за броя на секторите на пътечка. Няма начин да се каже на един съвременен BIOS следното: “Устройството има 3854 цилиндъра, 6 повърхности за данни и променлив брой сектори.”.
В резултат на това електрониката на устройството е проектирана по такъв начин, че да удовлетвори изискванията на компютъра и устройството да се държи като харддиск с постоянен брой сектори на пътечка. В действителност няма проблем. Това е един вид преобразуване на сектори.
Проблемът при мен се разреши от хост адаптера и устройството, работещи заедно с друг вид преобразуване на сектори, наречено логическо адресиране по блокове или LBA (Logical Block Addressing). В случая с това устройство, LBA пренареди предполагаемата геометрия на диска. В резултат на това се получи устройство с по-малко цилиндри и повече глави, отколкото виждаха секторите.
Обикновено LBA е функция, поддържана от дисковия интерфейс. Виждал съм обаче устройства с джъмпери, които трябва да се преместят, за да може то да работи с LBA. Главната задача на LBA е да се пребори с нежеланието на DOS за работа с устройства, по-големи от 504МВ.

Производителност на диска

Някои комбинации диск/контролер са по-бързи от други. Ние отчитаме скоростта на устройството, като измерваме времето, за което се намира определена порция от данни, и след като веднъж е намерена, колко бързо може да бъде прочетена от диска. Първият параметър се нарича време за достъп, а вторият – скорост на трансфер на данните.

Търсене и изчакване

Процесът на прочитане на определен сектор включва две стъпки. Първо главата трябва да се позиционира върху желаната пътечка, след това да се изчака завъртането на сектора, докато застане под главата, и да се прочетат данните.
Значи, придвижването на главата отнема доста повече време, отколкото изчакването на сектора. Затова малкото време за търсене (времето за придвижване на главата) е критично за добрата производителност на диска.

Тези два параметъра се наричат време за търсене и време за изчакване (латентен период). Времето за търсене представлява необходимото време за позициониране на главата върху пътечката. Времето за изчакване се характеризира от времето, за което желаният сектор се придвижва под главата.

Литература:
1. Компютърна енциклопедия, Марк Минаси, Издателство СофтПрес, 1999г.

Сходни статии:

  1. Интерфейсни микропроцесорни устройства Интерфейсните устройства осъществяват връзката между микропроцесора и широк кръг от външни, периферни устройства. Те са необходими компоненти за една действаща микропроцесорна система. Входните периферни устройства внасят данни в микропроцесора, изходните...
  2. Какво е Bluetooth автор: Владислав Николаев Стоянов Bluetooth. Тази безсмислена като превод дума (буквалния й превод е “син зъб”) все по-често се среща в материалите, посветени на компютрите. Най-вероятно вие знаете, че става...
  3. Отказоустойчивост при хард дисковете. Нива RAID Отказоустойчивостта означава възможността на дадена система да се възстановява след срив. Това включва комбиниране на множество физически твърди дискове в един отказоустойчив пакет, който може да бъде в една от...
  4. Програмна среда Обобщена структура на компютъра Компютрите, произвеждани от различните фирми в различните периоди от развитието им, притежават голямо разнообразие от конструктивни и технологични решения. На фона на това многообразие могат да...
  5. Памет и процесор Организация на памет. Описание на интерфейса между паметта и процесора. Паметта изглежда като матрица, където броят на редовете определя броят различни адреси от паметта, а броят на колоните определя броят...

Студио за уеб дизайн услуги, изработка на сайтове, SEO оптимизация и Интернет реклама Seven Web Design представя своите професионални уеб дизайн умения на високо ниво. Seven Web Design е продукт на Уеб Дизайн България Груп ООД ®
Comments are closed.