Геометрия и адресация

Геометрия и адресация

Внутри диска обычно находится целый пакет пластин, расположенных одна над другой, поэтому дорожки можно представить как цилиндр (Cylinder – C). Поверхность каждой стороны каждой пластины обслуживает отдельная головка (Head – H). Любой диск можно условно разделить на сектора (Sector – S). Таким образом, если представлять, что в одном секторе записан один блок данных, этот блок всегда можно указать сочетанием трех «адресов»: номера цилиндра, номера головки и номера сектора – сокращенно CHS (рис. 2.3). Чтобы прочитать или записать определенный блок данных, достаточно сообщить контроллеру жесткого диска эти три значения – головки перейдут на нужный цилиндр, а когда под ними окажется необходимый сектор, определенная головка прочитает или запишет информацию. Чтобы сообщить BIOS размер жесткого диска и то, как к нему следует обращаться, достаточно привести всего три значения: число цилиндров, головок и секторов на этом диске. Размер каждого сектора всегда неизменен – 512 байтов. Такая адресация называется адресацией CHS. Она является наиболее старой, стандартной и универсальной. Ее называют геометрией жесткого диска.

Рис. 2.3. Цилиндры, головки и сектора

В начале использования жестких дисков их емкость ограничивалась десятками мегабайтов, поэтому речь шла действительно о настоящих физических дорожках (цилиндрах), головках и секторах. Со временем плотность записи на каждой пластине возросла во много раз, и контроллеры жестких дисков научилась пересчитывать эти параметры и представлять BIOS совершенно условную конфигурацию диска, где, например, головок в четыре раза больше, а цилиндров в четыре раза меньше, чем имеется в действительности. Произведение всех трех величин всегда остается таким, каким оно является в действительности. Причиной, которая заставила отойти от реальной, физической геометрии, стала сама история развития компьютерной техники. То производители винчестеров опережали в своих разработках создателей контроллеров IDE и BIOS материнских плат, то наоборот. Поиски совместимости и компромиссов привели к тому, что сегодня отображаемое число цилиндров, головок и секторов винчестера никак не соответствует настоящему устройству гермоблока. У современных дисков даже число секторов может быть переменной величиной. Дорожки, расположенные ближе к центру диска, разбиты на меньшее, а находящиеся на периферии – на большее количество секторов.

Адресация ECHS (Extended CHS), или Large, – дальнейшее развитие адресации CHS. Иначе ее называют «фиктивной адресацией» – число цилиндров, головок и секторов назначается изготовителем винчестера совершенно произвольно и записывается в CMOS контроллера.

Наряду с трехмерной адресацией CHS была придумана адресация логических блоков LBA – Logical Block Adress. С одной стороны, при этом типе адресации данные считываются логическими блоками, состоящими из нескольких секторов. Соответственно, число цилиндров делается меньше, а головок – больше, чем в действительности. С другой стороны, эта адресация линейная: каждому логическому блоку присваивается порядковый номер LBA. За нулевой принимается блок, который начинается с первого сектора нулевой головки нулевого цилиндра. Далее номера блоков определяются по формуле:

LBA = (CYL ? HDS + HD) ? SPT + SEC – 1,

где CYL, HD, SEC – номера цилиндра, головки и сектора в пространстве CHS; HDS – количество головок; SPT – количество секторов на дорожке.

Примечание

Блоки, цилиндры и дорожки нумеруются, начиная с нуля, а сектора – с первого номера. Такая нумерация сложилась исторически.

Современные винчестеры, как правило, поддерживают все три типа адресации, а выбор используемого типа остается за BIOS материнской платы. Если в настройках BIOS выбран один из типов адресации, то винчестер за счет внутренней обработки и преобразования данных представляется контроллеру именно таким образом. Если взять три возможные конфигурации одного и того же диска, можно убедиться, что произведение CxHxS остается во всех трех случаях практически неизменным, а умноженное на размер сектора (512 байтов), оно составляет как раз емкость винчестера.

Нужно помнить, что ни число головок, ни количество физических секторов на «блинах» внутри гермоблока от выбора той или иной адресации не меняется. Электроника винчестера (его микропрограмма) «создает» несуществующие головки и соответствующим образом «подставляет» под них сектора и цилиндры. Этот процесс называют трансляцией адресов, а таблица трансляции обычно хранится во flash-памяти на плате электроники, но может быть записана и на скрытых служебных дорожках.

Если предложить контроллеру автоматически выбрать тип адресации, то он выберет CHS – универсальную адресацию. Если, как было сказано ранее, позволить BIOS выбирать настройки автоматически (auto), то адресация жестких дисков, как правило, происходит именно в CHS.

Данный текст является ознакомительным фрагментом.