Кодирование с ограничением длины поля записи
- 26.12.2005
RLL-кодирование
MFM-кодирование использовалось в ранних винчестерах, а также в флоппи-дисководах. Т.к. MFM-кодирование в два раза поднимало объем записываемой информации, такие гибкие диски назывались "double density". MFM-кодирование до сих пор используется в дисководах на магнитных дисках. Для жестких дисков, вскоре, был изобретен более эффективный метод кодирования информации: RLL. В случае с гибкими дисками, новые методы уже не использовались, в силу отсутствия необходимости в переносе больших объемов данных на гибких дисках (это было бы достаточно не надежно), а также, в случае с гибкими дисками требуется совместимость новых стандартов кодирования и старых: любой современный дисковод может читать как FM-, так и MFM-кодированные диски, в то время как принцип RLL-кодирования принципиально отличается от двух предыдущих.
RLL — run length limited или кодирование с ограничением длины поля записи. Этот тип кодирования был более сложным, и, строго говоря, это было семейство схем кодирования. У RLL-кодирования было два параметра, описывающих данный метод кодирования и в связи с этим было именно семейство схем кодирования, а не один метод кодирования.
FM-кодирование имеет простое соотношение между кодируемым битом и методом записи на диск. Требуется только знать текущий бит данных. MFM-кодирование улучшило эффективность по сравнению с FM-кодированием с помощью более умной схемы, которая следила за предыдущим записанным битом и клоковой информацией.
RLL-кодирование было шагом вперед по сравнению с MFM-кодированием. Этот метод кодирования рассматривает группы из нескольких бит, вместо рассмотрения одного бита в один промежуток времени. Идея кодирования состоит в том, чтобы смешивать клоковые смены полярности и смены полярности данных, чтобы допустить более плотную запись на поверхность магнитной пластины. Два параметра, описывающих RLL есть run length и run limit (отсюда и следует имя данного семейства кодирующих схем). Слово run здесь относится к последовательности записываемой информации без смены полярности. Параметр run length — это минимальная длина между двумя сменами полярности, в то время как run limit — это максимальная длина без смены полярности. Как и было сказано ранее, длина между двумя сменами полярности не может быть слишком длинной, иначе у нас потеряется синхронизация бит.
Конкретная схема кодирования пишется как RLL(x,y) или x,y RLL, где x это run length, а y это run limit. Наиболее часто встречающаяся схема кодирования информации на накопителях это RLL(1,7) и RLL(2,7). Для того чтобы произвести кодирование, нужно иметь некий словарь, ставящий в соответствие входные данные выходным, давайте посмотрим на данный словарь в случае 2,7 RLL:
Битовая последовательность | Кодированная последовательность | Количество смен полярности на бит | Вероятность встречи в случайном потоке данных |
11 | RNNN | 1/2 | 25% |
10 | NRNN | 1/2 | 25% |
011 | NNRNNN | 1/3 | 12.5% |
010 | RNNRNN | 2/3 | 12.5% |
000 | NNNRNN | 1/3 | 12.5% |
0010 | NNRNNRNN | 2/4 | 6.25% |
0011 | NNNNRNNN | 1/4 | 6.25% |
Взвешенное среднее | 0.4635 | 100% |
Для примера, возьмем следующую последовательность бит: 10001111 (0х8Fh), эта последовательность будет представлена контроллером, как 10-0011011 и закодирована как NRNN-NNNNRNNN-RNNN. Следует заметить, что в данной схеме кодирования, каждая кодируемая последовательность из словаря оканчивается как NN, отсюда и видно, что минимальная длина между двумя сменами полярности равна 2. Максимальная длина, равная 7, будет достигаться в случае кодирования двух последовательностей 0011-0011.
Сравнивая эту таблицу с такими же для FM и MFM, можно увидеть несколько интересных вещей. Наблюдается увеличивающаяся сложность кодирования: используется 7 различных последовательностей, и одновременно рассматривается до 4 бит. Среднее количество смен полярности на один бит равно 0.4635 или примерно 0.5. Это примерно одна треть от FM и примерно две трети от MFM. Так что, по сравнению с FM-кодированием, мы можем записать втрое больше информации на один и тот же участок поверхности.
На рисунке представлено кодированная форма записи байта "10001111" в случае FM, MFM и RLL 2,7 кодирования.

PRML-кодирование
Стандартные схемы чтения работают, используя определение смены полярности и представления их в соответствии с кодирующей схемой, которая была использована при записи информации. Сигнал читается с диска, используя головку и усилитель, после чего он подается на схему улавливания и декодирования. Контроллер переводит сигнал в цифровую форму, постоянно следя за сигналом с головок, синхронно с внутренним клоком и определяя маленькие всплески напряжения, которые означают смену полярности. Традиционный метод чтения и представления читаемой информации называется методом детектирования пиков.
Этот метод прекрасно работает, пока всплески напряжения достаточно большие, чтобы отличить их от шума. В то время как плотность записи растет, сигнал становится все сложнее и сложнее распознавать: амплитуда пиков падает, а также начинаются явления интерференции между двумя соседними всплесками. Получается интересная зависимость: для того, чтобы снизить интерференцию, надо уменьшить амплитуду записываемых данных, в то время как снижая амплитуду, мы уменьшаем помехозащищенность. При увеличении плотности записи, происходит увеличение интерференции. Следовательно, нужно снижать амплитуду записи, что приводит к более низкой помехозащищенности, и как следствие — к удорожанию и усложнению головок и схемы распознавания и декодирования.
Для борьбы с этой проблемой был предложен новый метод распознавания данных. Эта технология, называемая PRML (partial response, maximum likelihood) — частичный ответ, максимальное правдоподобие, которая в корне меняет принцип чтения и декодирования данных, полученных с поверхности накопителя. Вместо того чтобы пытаться отличать индивидуальные всплески, контроллер, использующий PRML, применяет большую тактовую частоту дискретизации при переводе аналогового сигнала в цифровой, восстанавливая структуру считанного сигнала в цифровой форме, фильтруя его и используя различные методы цифровой обработки сигналов. Рассматривает не один всплеск, а целый временной интервал, описывающий считанный сигнал. Далее контроллер сравнивает полученные результаты и подбирает наиболее похожий набор данных. Т.е. в данном методе не обязательно даже считать сигнал целиком, достаточно считать только его часть, после чего контроллер определит, на что именно похожа эта часть, и декодирует информацию.
Этот метод считывания и декодирования информации позволил поднять поверхностную плотность записи на 30-40% по сравнению со старой схемой, использовавшей детектирование всплесков.
EPRML
Революционным шагом явилось создание технологии EPRML — улучшенного варианта PRML. Сам принцип работы остался тем же, но были улучшены алгоритмы работы анализирующих схем. Это дало увеличение поверхностной плотности записи до 70% по сравнению со стандартным PRML методом.
Во всех современных винчестерах используются различные вариации именно EPRML метода при считывании информации. Таким образом, в любом современном винчестере происходит вероятностное считывание: информация никогда не считывается полностью, считывается только ее часть, и именно по части восстанавливается оригинальный битовый набор.
На верхнем рисунке представлен принцип перевода аналогового сигнала в цифровой в случае пикового детектирования, на нижнем — в случае PRML метода считывания информации.


Статьи
-
«Жёсткий» рентген
-
Винчестер, как один из самых важных компонентов компьютера
-
Головки чтения/записи
-
Кеш жёсткого диска
-
Ключевые моменты в развитии винчестеров
-
Кодирование с ограничением длины поля записи
-
Контроль и управление работой жёсткого диска
-
Контроль над параллельным выполнением команд и перестройка очереди
-
Магнитные головки
-
Материал для изготовления пластин жёстких дисков
-
Один или несколько приводов магнитных головок?
-
Особенности хранения информации на жестких дисках
-
Парковка магнитных головок
-
Первые винчестеры
-
Пластины в жестких дисках
-
Привод головок жесткого диска и система их позиционирования
-
Разъёмы (коннекторы) и конфигурационные переключатели (джамперы)
-
Сколько прослужит лампа в проекторе
-
Термокалибровка накопителей
-
Треки и сектора, плотность записи
-
Устройство и принципы работы современного жесткого диска
-
Форматирование жесткого диска
-
Частотная модуляция в кодировании информации для магнитных носителей
-
Шпиндельный двигатель