Как головки находят данные, хранящиеся на жестком диске?

5

Я слышал, что для чтения или записи данных на жесткий диск нам нужны идентификатор цилиндра и идентификатор сектора. Сначала переместите ч / б головки жесткого диска в цилиндр, указанный в идентификаторе цилиндра, а затем в сектор, указанный в идентификаторе сектора. Это правильно?

Нужен ли нам идентификатор диска и какая из двух поверхностей диска? Или, что то же самое, идентификатор дорожки (поскольку у нас есть идентификатор цилиндра)?

Благодарю.

Тим
источник

Ответы:

7

Как головки находят данные, хранящиеся на жестком диске?

Считывая (и сравнивая) адресную информацию каждого сектора, когда он вращается под головкой.

Детали (в исполнении контроллера диска):

  1. Контроллер диска перемещает сборку головки R / W из текущего положения в требуемый цилиндр .
    (Время выполнения этой операции называется временем поиска .)

  2. Контроллер диска выбирает запрошенную головку чтения / записи .
    (Время выполнения этой операции называется временем установления и выбора головы .)

  3. Контроллер диска ждет, пока запрошенный сектор повернется в нужное положение.
    3a. При обнаружении каждого сектора (прерыванием, вызванным нахождением адресной метки на дорожке), считывается идентификационная запись сектора.
    3b. Если идентификационная запись не соответствует запрошенному цилиндру или головке, то произошла ошибка поиска или контроллера, и необходимо выполнить процедуру ошибки.
    3в. Если запись идентификатора не соответствует запрошенному сектору, то продолжайте ждать следующего сектора (т. Е. Повторите 3a).
    3d. В противном случае запрошенный сектор найден, поскольку запись идентификатора действительно соответствует запрошенному цилиндру, головке и сектору (или номеру логического сектора или LBA).
    (Время выполнения этой операции называется задержкой вращения .)

Примечание. Если метка указателя встречается дважды (т. Е. Более одного полного поворота), то вся дорожка была отсканирована, а запрошенный сектор не был найден. Процедура ошибки должна быть выполнена.

Я слышал, что для чтения или записи данных на жесткий диск нам нужны идентификатор цилиндра и идентификатор сектора.

Вы пропустили (чтение / запись) номер головы.

Сначала переместите ч / б головки жесткого диска в цилиндр, указанный в идентификаторе цилиндра, а затем в сектор, указанный в идентификаторе сектора. Это правильно?

Не совсем. Первая часть точна, но не последняя.

Нужен ли нам идентификатор блюда, ...

На самом деле, нет.

... а какая из двух поверхностей блюда?

На каждой поверхности есть одна головка для чтения / записи.
Таким образом, указание номера головы выбирает поверхность диска.

Или, что то же самое, идентификатор дорожки (поскольку у нас есть идентификатор цилиндра)?

На уровне контроллера диска «идентификатор дорожки» обычно не используется. Номер цилиндра и номер головки более полезны.

Поскольку оригинальный BIOS IBM PC взаимодействовал напрямую с контроллером диска (на основе чипа Western Digital), BIOS должен был использовать эту адресацию цилиндра, головки, сектора (или CHS). Но поскольку контроллер диска был перенесен с шины ISA в корпус диска (стиль IDE), набор команд ATAPI сделал адресацию CHS по существу устаревшей в пользу адресации логического сектора.

Также см. Когда происходит чтение или запись на диск, куда отправляются данные?

опилки
источник