14

Мне всегда было интересно, как жесткий диск находит первый бит данных.

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

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

5 ответов5

17

Данные не записываются в виде произвольного потока единиц и нулей. Это написано в секторах. Каждый сектор имеет полезную нагрузку пользовательских данных и заголовок. Заголовок содержит коды с исправлением ошибок, а также специальное поле синхронизации, которое идентифицирует начало сектора, и номер сектора, чтобы привод мог знать, когда он обнаружил начало сектора и какой это сектор.

7

Psusi верен (данные на диске структурированы, и разные части компьютера используют разные части этой структуры), но на самом деле не доходит до вашего вопроса.

Диск действительно ничего не "знает". Он имеет низкоуровневую электронику, которая может считывать маркеры на диске (обычно записываемые на заводе-изготовителе или самой головкой привода), считывать блоки данных с диска или записывать блоки данных на диск или определять, находится ли конкретная точка на диск поврежден или поврежден, или что он должен быть перемещен в определенное место на диске. Это обо всем, что он "знает". Читающая головка не решает переместиться в другое место сама по себе, что-то более высокое в машине говорит ей ...

2

Он читает это с диска.

Данные на диске не только структурированы (как говорит @psusi), но и закодированы. Кодирование гарантирует, что записанные данные не могут быть перепутаны для маркеров положения в заголовках секторов, поэтому круговой поток может считываться до тех пор, пока не будет найден целевой маркер положения.

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

ОБНОВИТЬ:

Магнитный носитель - это материал, обладающий магнитным полем с двумя ключевыми свойствами: 1) он никогда не изменяется сам по себе и 2) записывающее устройство может изменять ориентацию поля в любой точке поверхности. При считывании носителя датчик определяет, где поле ориентировано в сторону датчика и где поле ориентировано вдали от датчика. Когда датчик перемещается по поверхности, он определяет время этих переходов полярности; первый уровень декодирования переводит эти временные значения в битовые значения. Из-за физически необходимых неопределенностей в этом процессе кодирование не должно требовать длинных отрезков одинаковой полярности; то есть это должно быть кодирование с ограничением по длине прогона (RLL).

Особенности конструкции жесткого диска, как правило, являются коммерческой тайной, но, по сути, существует два способа гарантировать, что секторальные маркеры никогда не появляются в отраслевом контенте:

  1. Разработайте RLL, который допускает специальные значения, которые никогда не будут результатом кодирования данных содержимого. Эти специальные значения могут использоваться не только для маркировки границ секторов, но также для исправления ошибок или любых других вторичных целей.

  2. Используйте второй уровень кодирования, который гарантирует, что значения маркера появляются только на маркерах. Это немного похоже на кодирование URL-адреса, позволяющее "скрывать" специальные символы в URL-адресах, но с дополнительным ограничением, эквивалентным ограничению количества символов, которое может быть добавлено, так что в конечном итоге оно больше похоже на кодирование base64.

Таким образом, считывающая головка перемещается по поверхности, обнаруживая изменения магнитной полярности, моменты времени этих изменений используются для определения соответствующей последовательности значений битов (возможно, включая некоторые исключительные значения, которые не представляют сохраненные данные), и эта последовательность используется для определить, какие секторы читаются и содержание этих секторов. Поскольку содержание секторов определено, данные могут быть сохранены в твердотельном буфере и / или сохранены в буфере RAM и / или отправлены обратно для выполнения запроса.

0

Ответ, который вы ищете, состоит из двух частей:

1) Аппаратный контроллер

2) Файловая система

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

Аппаратный контроллер выступает в качестве интерфейса между операционной системой и жестким диском. Контроллер может считывать положение пишущей головки, а также вращение пластин и использует эту информацию, чтобы решить, как расположить головку и пластины для чтения и записи. Он преобразует запросы на чтение и запись от операционной системы в управляющие сигналы, которые перемещают головку записи и вращают пластины, а также преобразует параллельные данные, поступающие из операционной системы, в одну последовательную строку данных. Он также разделяет эту последовательную линию и решает, в какое физическое местоположение или сектор поместить каждый фрагмент, и записывает эту информацию способом, заданным файловой системой.

Файловая система - это спецификация того, как и где хранить данные. Операционная система компьютера знает, как интерпретировать эту файловую систему, и использует эти знания для адекватной связи с аппаратным контроллером, в этом случае разбивая круговые кольца данных на пригодные для использования сегменты, называемые секторами, и сообщая файловой системе, где эти сектора физически расположены. Файловая система дает каждому сектору адрес, который является просто уникальным числом, и этот адрес переводится аппаратным контроллером в определенное вращение диска и положение считывающей головки, чтобы начать чтение или запись.

Для получения дополнительной информации следующие разделы в этих статьях Википедии весьма полезны:

См. Введение и раздел 3.1 "Управление пространством" здесь:https://en.wikipedia.org/wiki/File_system

Смотрите раздел 2.1 "Магнитная запись" здесь:https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording

0

В дополнение к другим ответам на жестких дисках, которые наверняка использовались (и могут быть), есть один диск ("головка" в терминах цилиндр / головка / сектор), который зарезервирован для данных калибровки / позиционирования, вообще не используется для хранения пользовательских данных. ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .