- •Физические принципы
- •Три важных физических факта
- •Базовая конструкция жесткого диска
- •Важность чистоты
- •Запись и считывание информации
- •Размер бита
- •Способы кодирования данных
- •Простой импульсный подход
- •Частотная модуляция
- •Кодирование без возврата к нулю
- •Модифицированная частотная модуляция
- •Улучшенное arll-кодирование
- •Проблема несовершенства и ее решение
- •Частичное решение — обнаружение ошибок
- •Исправление ошибок
Улучшенное arll-кодирование
Некоторым людям правится рисковать. Часть фирм-производителей жестких дисков пошли дальше обычного 2,7 RLL-кодирования и предложили улучшенное ARLL-кодирование. Суть этих способов сводится к тому, что в них допускается большее отношение максимального промежутка между переходами магнитного поля к минимальному, что позволяет упаковать данные на дорожке почти в два раза плотнее, чем в MFM-кодировании.
Про накопители с интерфейсом ESDI (Enhanced Small Device Interface — Улучшенный интерфейс малых устройств) и контроллерами SCSI иногда говорят, что в них применяется Enhanced RLL-кодированис (ERLL). Фактически же в них применяется 2,7 RLL-кодпрованис, но благодаря большей скорости битов они помещают на дорожку больше данных, чем накопители и контроллеры со стандартным RLL- кодированием.
Когда в накопителе и контроллере применяется специальное кодирование данных, очень важно их согласование друг с другом. Часто такую настройку невозможно осуществить, если оба компонента не одной и той же фирмы. Поскольку накопители с интерфейсами ESDI, SCSI и IDE/AT, а также жесткие диски, смонтированные на плате, обязательно имеют встроенные контроллеры, такая настройка возможна. Когда же контроллер продается отдельно от накопителя и обещает большую плотность данных, чем RLL-кодирование, такую ситуацию следует считать приглашением к потере данных. Примечание: в ESDI-накопителях применяется отдельный контроллер, но кодирование данных при записи и разделение синхронизации и данных при считывании выполняются в накопителе. Поэтому мы включили их в одну группу с IDE/AT- и SCSI-накопителями, а также дисками на плате.
Проблема несовершенства и ее решение
Мы разобрались с тем, как можно сохранить данные на жестком диске. Все способы кодирования должны обеспечить считывание точно той намагниченности, которая была записана. Однако ничего совершенного в реальной жизни нет. Чтобы справиться с неизбежными ошибками, производители накопителей и контроллеров вынуждены встраивать в свои изделия некоторые дополнительные возможности. В этом разделе показано, что делают производители для того, чтобы их накопители стали более совершенными, или, по крайней мере, информировали компьютер о том, когда они не могут быть совершенными. Последняя возможность позволяет компьютеру не использовать плохие данные так, как будто они хорошие.
Частичное решение — обнаружение ошибок
Компьютер просто сохраняет больше информации, чем ему требуется получить. Он также сохраняет дополнительные биты, которые помогают определить, можно ли доверять считанной информации.
Простейший способ обнаружения ошибок, который. применяется в системном ЗУПВ компьютера, заключается во введении бита паритета. В дисковых накопителях применяется несколько более сложный и мощный способ, называемый циклическим избыточным контролем.
Паритет. В системном ЗУПВ почти всех персональных компьютеров каждый байт (8 бит) данных сопровождается девятым битом, называемым битом паритета. При записи байта в ЗУПВ компьютер вычисляет его паритет, подсчитывая число единиц в байте. Если число единиц четное, соответствующий бит паритета устанавливается в 1, а в противном случае он сбрасывается в 0. Во всех девяти битах всегда должно быть нечетное число единичных битов, а иное означает возникновение ошибки. Отсюда появился и термин "нечетный паритет" (или нечетность). Если любой бит считан или сохранен неправильно, паритет оказывается нарушенным и компьютер узнает об ошибке. Конечно, компьютер не может определить ошибочный бит.
Если искажено четное число битов, паритет не обнаружит ошибку. К счастью, большинство ошибок в ЗУПВ приходится на однобитные и даже они возникают редко. Компьютер не может исправить ошибочные биты, поэтому он просто извещает об ошибке пользователя и останавливается. О таких ошибках свидетельствуют сообщения PARITY CHECK ONE и PARITY CHECK TWO.
Некоторые клоны в такой ситуации предоставляют больше информации. Они могут вывести примерно такое сообщение: I/O memory error at ХХХХ (Ошибка ввода-вывода памяти в ХХХХ). Буквы Х заменяются 16-ричными цифрами. Показанное 16-ричное число представляет собой адрес, по которому компьютер производил считывание при появлении ошибки паритета. После вывода сообщения клон, как и IBM PC, по-видимому, остановится.
Циклический избыточный контроль. Когда MS DOS записывает информацию на гибкий диск, она использует аналогичный способ защиты. Во-первых, она группирует информацию в секторы по 512 байт. После этого в конце данных она добавляет еще два байта. MS DOS вычисляет 16-битовое число, комбинируя все 512 байт сектора специальным образом, который называется циклическим избыточным контролем (Cyclical Redundancy Check — CRC).
Как и паритет, CRC является средством проверки искаженных данных. Он может выявить все однобитные и часть многобитных ошибок, но искаженные биты определить не может. Сообщение Error reading drive А (Ошибка считывания в накопителе А) обычно означает, что компьютер считал сектор с неправильным значением CRC.