Первое ограничение вызвано тем, что величины разрешений головки и магнитного носителя, как правило, являются фиксированными. Второе ограничение необходимо для того, чтобы обеспечить синхронизацию устройств.
В табл. 9.2 приведена схема кодирования по методу RLL 2,7, разработанная IBM.
Таблица 9.2. Последовательность зон смены знака при записи по методу RLL 2,7
Бит данных |
Последовательность зон смены знака |
1\1ТМ1\Г |
|
0010 |
|
0011 |
* Т — смена знака есть; N — смены знака нет.
При внимательном изучении этой таблицы можно заметить, что кодировать, например, байт 00000001 нельзя, поскольку его нельзя составить из комбинации приведенных в таблице групп битов. Однако на практике при этом никаких проблем не возникает. Дело в том, что контроллер не оперирует байтами, а формирует сразу целые секторы записи. Поэтому, если ему попадается такой байт, он просто начинает искать подходящую для разбивки на группы комбинацию с учетом следующего байта последовательности. Затруднение может возникнуть только в том случае, если указанный байт последний в секторе. В этой ситуации кодер, установленный в контроллере, просто дописывает в конец последнего байта несколько дополнительных битов. При последующем считывании они отбрасываются, и последний байт воспроизводится таким, каким он должен быть.
Сравнение способов кодирования
На рис. 9.9 показаны диаграммы сигналов, формируемых при записи на жесткий диск Л8СП-кода символа "X" для трех различных способов кодирования.
В верхней строке каждой из этих диаграмм показаны отдельные биты данных (01011000) в битовых ячейках, границами которых являются синхронизирующие сигналы, обозначенные точками. Под этой строкой изображен сам сигнал, представляющий собой чередование положительных и отрицательных значений напряжения, причем в моменты смены полярности напряжения происходит запись зоны смены знака. В нижней строке показаны ячейки перехода, причем Т обозначает ячейку, содержащую зону смены знака, а N — ячейку, в которой зоны смены знака нет.
Разобраться в РМ-кодировании очень просто. В каждой битовой ячейке содержится две ячейки перехода: одна для синхронизирующего сигнала, другая для самих данных. Все ячейки перехода, в которых записаны сигналы синхронизации, содержат зоны смены знака. В то же время ячейки перехода, в которых записаны данные, содержат зону смены знака только в том случае, если значение бита равно логической единице. При нулевом значении бита зона смены знака не формируется. Поскольку в нашем примере значение первого бита — 0, он будет записан в виде комбинации Т№ Значение следующего бита равно 1, и ему соответствует комбинация ТТ. Третий бит — тоже нулевой (Т^ и т.д. С помощью приведенной выше диаграммы РМ-кодирования легко проследить всю кодирующую комбинацию для рассматриваемого примера байта данных. Отметим, что при таком способе записи зоны смены знака могут следовать непосредственно одна за другой; в терминах ШХ-кодирования это означает, что минимальный "пробег" равен нулю. С другой стороны, максимально возможное количество пропущенных подряд зон смены знака не может превышать единицы — вот почему РМ-коди-рование можно обозначить как RLL 0,1.