Лекция: Адресация дискового пространства в BIOS

Геометрия (ёмкостные параметры) жесткого диска описываются в BIOS следующей формулой:

Общий объем (байт) = C x H x S x 512 (байт),

где С — количество цилиндров; Н – количество головок; S — количество секторов.

Следовательно, вследствие физических ограничений накопителей, BIOS может адресовать («увидеть») накопитель максимальной ёмкостью 128 Гбайт:

65536 x 16 x 256 x 512 = 128 Гбайт.

Однако из-за ограничений работы контроллера винчестера и BIOS эта величина может быть существенно сокращена. Так, до 1995 года использовался стандартныйCHS-режим (стандарт ATA-1), в котором физические параметры накопителя соответствовали логическим, передаваемым в BIOS. При стандартной CHS-адресации максимальное количество цилиндров равно 1024, головок — 16, что приводит к ограниче­нию максимальной емкости жесткого диска (504 Мбайт). Кроме того, BIOS«считает», что у любого накопителя на любой дорожке должно быть ровно 63 сектора.

Современные IDE-контроллеры (начиная со стандартом ATA-2, EIDE) поддерживают универсальный режим транс­ляции, для которого главным параметром является общее количество секторов. В большинстве BIOS появилась функция «Autodetect», которая позволяет считывать и устанавливать паспортные параметры накопителя. При инициализации накопителю переда­ются два параметра: количество головок и секторов; затем накопитель под­страивает свою логическую структуру таким образом, чтобы общая емкость не изменилась, причем коррекция осуществляется за счет цилиндров.

Максимальная емкость накопителей АТА-2 значительно увеличена за счет раз­работки улучшенной BIOS (Enhanced BIOS), что позволило преодолеть барьер в 504 Мбайт емкости жесткого диска. Первая модификация стандарта ATA-2 с режимом передачи PIO 3 использовала режим адресации ECHS, благодаря которому в CMOSSetup была введена опция Large и ECHS. Их надо было использовать для дисков, количество цилиндров которых превышает 1024, но к которым нельзя было применить адресацию LBA. Пересчет происходил в 2 этапа: сначала контроллер считал общее количество цилиндров, затем делил его пополам и в два раза увеличивал количество головок. Этот метод позволил адресовать 3-4 Гбайт дискового пространства.

В дальнейшей модификации АТА-2 (PIO 4,5) в 1996 году появилось использование логической адресации блоков. В этом режиме все секторы нумеруются без разделения по трем категориям (цилиндр, головка, сектор), и адресуются единым 28-битным кодом. С учетом ограничений BIOS (1024 цилиндра, 256 головок, 63 сектора на дорожке при пересчете) общая емкость жесткого диска достигает 8,4 Гбайт.

В 1998 году для BIOS материнских плат выпустили обновление, способное решить проблему «8 Гигабайт». Была изменена адресация к прерыванию Int 13h (DOS), чем удалось преодолеть барьер 1024 цилиндров. Теперь для физической адресации использовались все 28 бит:

· С – 16 бит (максимум 216 = 65536)

· H – 4 бита (максимум 24 = 16)

· S – 8 бит (максимум 28 = 255).

Таким образом, теперь в интерфейсе ATA-5 теоретически был доступен максимальный объем винчестеров. Но биосописатели в очередной раз ошиблись. Они не учли, что при стандартном пересчете LBA с 16-ю головками и 63-мя секторами у винчестеров объемом более 33,8 Гбайт цилиндров окажется больше 65536, и они не поместятся в 16 бит отведенные под цилиндры. Эта проблема была решена в 1999 году введением простого условия: если число секторов превышает 65536 x 16 x 63 = 66060288, то тогда количество секторов приравнивать к 255. Также для некоторыхBIOS существовала ошибка определения винчестеров объемом больше 65 Гбайт, которая, как обычно, решалась обновлением прошивки.

В 2002 году были выпущены жесткие диски, объем которых превышает 137 Гбайт. За невозможностью использования старого алгоритма с 28-битным кодированием для протокола UltraDMA/133 была придумана 48-битная адресация секторов, и очередной барьер возникнет не скоро.

еще рефераты
Еще работы по информатике