3 янв. 2013 г.

Методы адресации LBA и CHS


Существуют два распространенных метода адресации секторов жестких дисков ATA. Первый принято называть Cylinder Head Sector (CHS). Данное название происходит от трех координат, при помощи которых осуществляется адресация сектора.

Второй способ адресации, названный Logical Block Address (LBA), использует для обозначения сектора только один параметр. Метод CHS основан на физической структуре накопителя (а также на способе организации его работы). LBA является более простым способом нумерации секторов, который не зависит от внутренней физической структуры накопителя.



В процессе последовательного считывания информации с диска в режиме CHS чтение начинается с 1 сектора, 0 головки, цилиндра 0 (данный сектор является первым на текущем диске), после чего начинается чтение остальных секторов первой дорожки. Далее активируется следующая головка, и считываются все секторы, расположенные на этой дорожке. Происходит это пока закончится чтение данных со всех головок на первом цилиндре. Далее чтение происходит со следующего цилиндра, и процесс происходит в той же последовательности.

Принцип работы CHS можно сравнить с одометром (счетчик пройденного расстояния): для смены номера головки, требуется «провернуть» определенное число секторов, а для перехода на следующий цилиндр, следует «провернуть» несколько головок.
Последовательное считывание информации в режиме LBA начинается с нулевого сектора, после чего читается первый, второй и т.д. Как уже упоминалось выше, первым сектором диска в режиме CHS будет 0,0,1. Режим LBA обозначает данный сектор как 0.

Для примера можно рассмотреть условный накопитель, который содержит один жесткий диск (задействованы обе поверхности жесткого диска), на каждом жестком диске содержится две дорожки (цилиндры) и на каждой дорожке по два сектора. Суммарная емкость накопителя составляет восемь секторов (2*2*2). Не стоит забывать, что нумерация головок и цилиндров всегда начинается с нуля, а отсчет физических секторов, расположенных на дорожке, - с единицы. Первый сектор, при использовании схемы CHS, определяется фразой «0,0,1 (0 цилиндр, 0 головка, 1 сектор)». Соответственно, второй сектор будет обозначен как 0,0,2, третий – 0,1,1 и так далее. Адрес последнего сектора, в нашем случае, будет таким - 1,1,2.
Также можно взять и пронумеровать все сектора от 0 до 7, не обращая внимания на цилиндры, головки и сектора. Таким образом, при необходимости считать четвертый сектор, можно указать на него как на 3 сектор в LBA режиме или 0,1,2 в CHS режиме.