Пластины диска, головки и механизмы доступа устроены так, что головку можно установить над любой частью поверхности любой пластины устройства хранения. Однако этого недостаточно, чтобы использовать весь объём устройства, нам нужен некоторый способ назначения адресов равновеликим блокам хранилища.
Для этого необходимо ещё учесть ещё один, последний аспект. Представьте себе все дорожки множества цилиндров, имеющихся в типичном устройстве хранения. Так как дорожки имеют разный диаметр, их длина также величина переменная. Следовательно, если бы хранилище адресовалось только на уровне дорожек, на каждой дорожке находилось бы разное количество данных — дорожка 0 (расположенная вблизи центра пластины) могла бы содержать 10 827 байт, а дорожка 1 258 (у внешнего края пластины) могла бы содержать 15 382 байт.
Чтобы исправить эту ситуацию, каждая дорожка делится на несколько секторов или блоков, представляющих собой сегменты одинакового объёма (обычно 512 байт). В результате каждая дорожка содержит определённое число [1] секторов.
Но появляется и побочный эффект — на каждой дорожке остаётся неиспользуемое пространство между секторами. И так как число секторов на дорожках одинаково, меняется объём этого неиспользуемого пространства — на внешних дорожках неиспользуемая площадь гораздо больше, чем на внутренних. В любом случае, это неиспользуемое пространство пропадает впустую, так как сохранить данные в нём нельзя.
Однако, появившиеся сегодня возможности эффективной адресации позволяют возместить это неиспользуемое пространство. На самом деле, адресация бывает двух видов, адресация с учётом геометрии и адресация блоков.
5.2.1. Адресация с учётом геометрии
В названии адресации с учётом геометрии отражено то, что устройства хранения в действительности хранят данные в определённой физической области носителя. В случае с описываемыми здесь устройствами это сводится к трём специфическим параметрам, определяющим положение нужной точки на пластинах диска:
Цилиндр
Головка
Сектор
В следующих разделах будет показано, как гипотетический адрес может описать определённое физическое положение на носителе данных.
5.2.1.1. Цилиндр
Как было сказано ранее, цилиндр задаёт определённое положение механизма доступа (а значит и головок чтения/записи). Указав конкретный цилиндр, мы исключаем другие цилиндры, сводя область нашего поиска к одной дорожке всех поверхностей устройства хранения.
В таблице Table 5-1 заполнена только одна часть геометрического адреса. Неопределёнными остаются ещё две части этого адреса — головка и сектор.
5.2.1.2. Головка
Хотя, строго говоря, мы выбираем определённую пластину диска, но так как с каждой поверхностью связана отдельная головка чтения/записи, проще считать, что мы выбираем нужную головку. На самом деле внутренняя электроника устройства действительно выбирает одну головку и в процессе операции ввода/вывода работает только с ней. Таким образом мы исключили все остальные дорожки, составляющие текущий цилиндр.
В таблице 5-2 заполнены уже две части геометрического адреса. Неопределённой остаётся последняя часть адреса — сектор.
5.2.1.3. Сектор
Указав определённый сектор, мы завершили заполнение адреса и однозначно определили нужный блок данных.
В таблице 5-3 геометрический адрес заполнен полностью. Этот адрес определяет расположение одного заданного блока и выделяет его из всех остальных блоков устройства.
5.2.1.4. Недостатки адресации с учётом геометрии
Хотя адресация с учётом геометрия довольно проста, в ней есть некоторые неопределённости, которые могут приводить к проблемам. Неопределённость заключается в нумерации цилиндров, головок и секторов.
Это правда, что каждый геометрический адрес однозначно определяет один конкретный блок данных, но это правда, только если схема нумерации цилиндров, головок и секторов не меняется. Если схема меняется (например, когда меняется взаимодействие программных/аппаратных средств с устройством хранения), сопоставления геометрических адресов соответствующих им блокам данных также могут меняться, при этом доступ к нужным данным становится невозможным.
Ввиду возможности такой неопределённости был разработан другой подход к адресации. О нём пойдёт речь в следующем разделе.
5.2.2. Адресация блоков
Адресация блоков гораздо проще, чем адресация с учётом геометрии. При адресации блоков каждому блоку назначается уникальный номер. Этот номер компьютер передаёт устройству хранения, которое затем внутри преобразует его в геометрический адрес, необходимый для управляющей схемы устройства.
Так как преобразование в геометрический адрес всегда выполняет само устройства, оно всегда постоянно, что решает проблему, присущую адресации с учётом геометрии.
Замечания
[1] | Хотя в первых устройствах хранения число секторов на всех дорожках было одинаково, в современных устройствах цилиндры делятся на разные зоны, в каждой из которых своё число секторов на дорожке. Сделано это для того, чтобы задействовать дополнительное пространство между секторами во внешних цилиндрах, там, где между секторами остаётся больше места. |