Хранение информации на диске несколько похоже на представление информации в штрих-коде. Каждое местоположение на дорожке диска поляризовано одним из двух способов, эквивалентных белым и черным областям штрих-кода; как со штрих-кодом, эти поляризованные области имеют различную ширину, которая используется для кодирования данных. Фактическое кодирование отличается, однако, поскольку штрих-коды обычно используются для хранения десятичных цифр или символов, выбранных из сравнительно небольшого набора (43 символа в случае кода 39), тогда как дисковые накопители используются для хранения байтов с 256 базовыми символами. Обратите внимание, что в старых технологиях приводов использовались только три области магнитных импульсов, самая широкая из которых была в три раза шире самой узкой. Новые приводные технологии используют гораздо больше ширины, поскольку ширина самой узкой области, которую могут поддерживать носители, значительно шире, чем минимальное различимое расстояние между ширин. В 1980-х годах увеличение количества дисков различной ширины с заданной минимальной шириной увеличило бы полезную емкость на 50%. Я не знаю, каково соотношение сегодня.
Информация на произвольно записываемом диске делится на секторы, каждому из которых предшествует заголовок сектора; заголовок сектора сам предшествует и сопровождается пробелом. Как заголовок сектора, так и сектор начинаются со специальных шаблонов ширины области, которые не могут встречаться где-либо еще. Чтобы прочитать сектор, накопитель следит за специальным шаблоном, который указывает «заголовок сектора», а затем читает байты, следующие за ним. Если они соответствуют сектору, который хочет диск, то он ищет шаблон, указывающий «заголовок данных», и считывает связанные данные. Если данные не соответствуют интересующему сектору, накопитель возвращается к поиску другого «заголовка сектора».
Написание сектора немного сложнее. Электроника привода занимает короткое, но ненулевое (и не полностью предсказуемое) время для переключения между режимами чтения и записи. Чтобы справиться с этим, диски записывают данные только по целому сектору за раз. Чтобы записать сектор, накопитель запускается в режиме чтения, ждет, пока не увидит заголовок записываемого сектора; затем он переключается в режим записи, выводит данные, а затем переключается обратно в режим чтения. Поскольку существуют пробелы до и после области данных, не имеет значения, если диск иногда переключается в режим записи немного быстрее или медленнее, при условии, что (1) шаблону «запуска» для блока предшествуют некоторые данные, которые не не совпадает с шаблоном запуска, поэтому даже если диск запускается «поздно», часть старого блока, которая не была удалена, выиграет »
При считывании данных определяется, какие данные представлены конкретной точкой на диске, путем «подсчета» магнитных областей, видимых после предыдущей маркировки начала блока. При записи данных то, какие данные представлены пятном на диске, которое проходит головка, будет определяться подсчетом контроллера количества записанных данных. Обратите внимание, что не существует способа точно предсказать, какой бит будет представлен каким-либо местом на диске перед его записью, поскольку в процессе записи существует определенное количество «откатов».