Восстановление данных на 100%. Петр Ташков
Чтение книги онлайн.
Читать онлайн книгу Восстановление данных на 100% - Петр Ташков страница 13
Рис. 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 – количество секторов на дорожке.
Примечание
Блоки, цилиндры и дорожки нумеруются, начиная с нуля, а сектора – с первого номера. Такая нумерация сложилась исторически.