Аналог и цифра — единство и борьба противоположностей

Интересно, многие ли из нас задумывались о соотношении цифрового и аналогового начал в предмете нашего профессионального интереса – компьютерах? Сегодня я хочу рассказать о том, как эти две стороны одного целого уживаются в жёстких дисках (HDD)…

Но сначала – чуть-чуть вообще о «внешних накопителях»: всё начиналось с перфокарт и перфолент, и как раз на них метод записи был вполне-таки цифровым/дискретным – либо дырка есть, либо её нету… 🙂

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

Далее встал вопрос увеличения плотности информации на погонную единицу носителя – и появился метод MFM, принципиально он отличается от FM несколько усложнённым алгоритмом смены полярности тока записи: теперь смена полярности на текущем бите стала зависеть от предыдущего бита…

Некоторое время MFM более/менее всех устраивал, но… «Аппетит приходит во время еды» — © — Ф.Рабле. Коль скоро вычислительные мощности микроконтроллеров очень возрасли (отдельное спасибо Гордону Муру с его Законом), — почему бы не усложнить метод кодирования с целью дальнейшего увеличения плотности записи?.. Сказано – сделано, появился метод RLL. Опять же, не вдаваясь в математические тонкости обоснования корректности такого кодирования, буквально в двух словах: за счёт возможности кодирования не двух битов а более крупных групп битов (естественно, на декодирование RLL нужны несколько бОльшие вычислительные мощности, нежели на декодирование FM и MFM) удалось ещё немножко повысить плотность записи…

Что дальше? А вот что: PRML. Думаю, многие слышали эту аббревиатуру (кто-то даже знает её расшифровку: Partial-Response, Maximum-Likelihood) и даже в курсе, что это т.н. «космическая технология»; но многие ли осознают, зачем это было надо?

Причина очень простая и жизненная: к моменту появления PRML в HDD технологические возможности уменьшения зазора в магнитных головках были близки к исчерпанию, области намагниченных доменов стали слишком мелкими для их уверенно-однозначного опознания контроллером (ребята, если бы вы видели реальные осциллограммы читаемых головками сигналов – вы бы просто ужаснулись!). Но… сюрприз-сюрприз!.. благодаря пресловутому Закону Мура у нас опять был в резерве некоторый избыток вычислительной мощности – и способ декодирования считанных магнитной головкой сигналов изменился принципиально: теперь весь мусор, читаемый головкой, оцифровывается и подаётся на вход DSP (полагаю, эта аббревиатура тоже всем знакома? ), а он уже сравнивает то, что удалось прочитать, с набором образцов (паттернов) возможных в RLL комбинаций – и выбирает из разрешённых максимально похожую…

Естественно, такая сложная схема декодирования имеет изрядную вероятностную составляющую – и для минимизации ошибок чтения применяется не только опознание паттерна, как разрешённого, но и вычисление CRC блока информации (тоже с контролем на допустимые паттерны). Конечно, всегда существует вероятность того, что данные при опознавании паттернов исказились так «удачно», что даже и CRC совпала – ну так на то и процесс чтения «вероятностный»…

Это один из аспектов проблемы совмещения аналогового процесса записи/чтения с цифровой сутью данных; но есть и (как минимум) ещё один аспект: проблема правильного позиционирования головок считывания/записи…

Когда в ходУ были накопители на магнитных лентах (НМЛ) – применялись многодорожечные головки чтения/записи (до десяти головок в одном блоке: 8 для данных, 1 для бита чётности/нечётности и 1 для сигнала синхронизации). Позиционирование многодорожечной головки считывания/записи относительно магнитной ленты производилось вручную (для этого существовали специальные мастер-ленты и осциллографы с отвёртками).

Естественно, для НЖМД (HDD) такая схема неприменима в принципе (хотя и существовали т.н. «магнитные барабаны» — суть устройств была в том, что это были именно барабаны с ба-альшим количеством головок вдоль образующей поверхности цилиндра — там, в сущности, двигалась только именно магнитная поверхность барабана мимо блока неподвижных головок; но эти монстры достаточно быстро вымерли). Что делать? А вот что: в первых НЖМД применялись либо шаговые двигатели (в них самой конструкцией двигателя предусмотрен поворот/выдвижение рабочего органа на определённое количество градусов/долей миллиметра в качестве ответа на определённое воздействие по линиям питания), либо линейные электродвигатели с навесной измерительной линейкой с оптической/магнитной обратной связью.

Но очень скоро количество возможных положений ротора/сердечника шаговых двигателей и скорость их позиционирования на заданном положении перестали удовлетворять растущие потребности: принципиальной особенностью шагового двигателя является необходимость пройти все шаги от текущего положения до нового, это получается недопустимо долго. У линейных электродвигателей с обратной связью проявилась другая проблема (актуальная, впрочем, и для шаговых двигателей): плотность расположения дорожек на блинах НЖМД достигла такого уровня, что изменения рабочей температуры конструкции НЖМД стали приводить к неверному позиционированию блока головок.

Найденное решение тоже вполне отличалось изяществом: сначала одна из поверхностей пакета блинов была назначена «сервисной» — и на неё в заводских условиях записывались сигналы синхронизации; а далее была изыскана возможность записывать синхросигналы вообще на каждой из рабочих поверхностей (вот кстати: именно с того момента т.н. «низкоуровневое форматирование» НЖМД стало мифом: эту операцию возможно произвести только на заводе-изготовителе и только с применением специальной весьма дорогостоящей аппаратуры — т.н. «серворайтера»). Тем не менее, для увеличения скорости позиционирования блока головок НЖМД на необходимой дорожке, каждый современный НЖМД периодически выполняет т.н. процедуру «термокалибровки» — производится поиск определённых дорожек и запоминаются конкретные уровни управляющего сигнала на линейном электродвигателе перемещения коромысла с блоком головок…

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

3 × два =