Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Будылдина1 / тси на Kot_434_ / Лабораторная работа № 1,2.doc
Скачиваний:
41
Добавлен:
11.04.2015
Размер:
11.31 Mб
Скачать

3.5.4. Контроль четности и коды коррекции ошибок (есс).

Ошибки при хранении информации в памяти неизбежны. Они обычно классифицируются как отказы и нерегулярные ошибки (сбои).

Если нормально функционирующая микросхема вследствие, например, физического по­вреждения начинает работать неправильно, то все происходящее и называется постоянным отказом. Чтобы устранить этот тип отказа, обычно требуется заменить некоторую часть ап­паратных средств памяти, например неисправную микросхему SIMM или DIMM.

Другой, более коварный тип отказа — нерегулярная ошибка (сбой). Нерегулярная ошиб­ка — это непостоянный отказ, который не происходит при повторении условий функциони­рования или через регулярные интервалы.

Контроль четности - это один из стандартов, введенных фирмой IBM, в соответствии с которым информация в банках памяти хранится фрагментами по девять битов, причем восемь из них (составляющих один байт) предназначены собственно для данных, а девятый является битом четности (parity). Использование девятого бита позволяет схемам управления памятью на аппаратном уровне кон­тролировать целостность каждого байта данных. Если обнаруживается ошибка, работа компью­тера останавливается и на экран выводится сообщение о неисправности. Если вы работаете на компьютере под управлением Windows или OS/2, то при возникновении ошибки контроля чет­ности сообщение, возможно, не появится, а просто произойдет блокировка системы.

Модули SIMM бывают как с битом четности, так и без него. До недавнего времени во всех PC-совместимых компьютерах для повышения надежности предусматривался контроль четно­сти. Однако в компьютерах многих других фирм он никогда не использовался.

Как все это делается? В большинстве новых системных плат предусмотрена возможность отключения схем контроля четности для того, чтобы на них можно было устанавливать мо­дули SIMM без бита четности. В старых системных платах можно было использовать только модули SIMM с битом четности, поскольку отключить схему контроля было нельзя. Сейчас на одних системных платах устанавливается перемычка для включения и отключения схемы контроля, а в других в программу установки параметров BIOS введен соответствующий па­раметр. Кроме того, в некоторых компьютерах автоматически проверяется существование разряда четности, и, если его нет хотя бы в одном банке, схема контроля отключается. Появ­ление ошибок четности является первым признаком, неисправности системы, поэтому отсут­ствие разряда четности в большинстве новых компьютеров не радует.

Некоторые системы вообще не поддерживают контроль четности. Данный факт ставит под сомнение четкую работу системы с критическими приложениями, требую­щими контроля четности.

При разработке схемы контроля четности фирма IBM установила, что значение бита четности задается таким, чтобы количество единиц во всех девяти разрядах (восемь разрядов данных и разряд четности) было нечетным. Другими словами, когда байт (8 бит) данных за­носится в память, специальная схема контроля четности (микросхема, установленная на сие- t темной плате или на плате памяти) подсчитывает количество единиц в байте. Если оно чет­ное, на выходе микросхемы формируется сигнал логической единицы, который сохраняется в соответствующем разряде памяти как девятый бит (бит четности). Количество единиц во всех девяти разрядах при этом становится нечетным. Если же количество единиц в восьми разря­дах исходных данных нечетное, то бит четности равен 0 и сумма двоичных цифр в девяти разрядах также остается нечетной.

Рассмотрим конкретный пример (имейте в виду, что разряды в байте нумеруются, начиная с нуля, т.е. О, 1, 2,..., 7):

Разряд данных: 01234567 Бит четности

Значение бита: 10110011 О

В данном случае общее число единичных битов данных нечетное (5), поэтому бит четности должен быть равен нулю, чтобы количество единиц во всех девяти разрядах было нечетным. Рассмотрим еще один пример:

Разряд данных: 01234567 Бит четности

Значение бита: 00110011 1

В этом примере общее число единичных битов данных четное (4), поэтому бит четности должен быть равен единице, чтобы количество единиц во всех девяти разрядах, как и в пре­дыдущем примере, было нечетным.

При считывании из памяти та же самая микросхема проверяет информацию на четность. Если в 9-разрядном байте число единиц четное и бит четности также равен единице, значит, при считывании или записи данных произошла ошибка. Определить, в каком разряде она произошла, невозможно (нельзя даже выяснить количество испорченных разрядов). Более то­го, если сбой произошел в трех разрядах (в нечетном их количестве), то ошибка будет зафик­сирована; однако при двух ошибочных разрядах (или четном их количестве) сбой не регист­рируется.

При обнаружении ошибки схема контроля четности на системной плате формирует немаскируемое прерывание (Non-maskable Interrupt— NMI), по которому основная работа прекращается и инициируется специальная процедура, записанная в BIOS. В результате ее выполнения экран очищается и в левом верхнем углу выводится сообщение об ошибке. Текст сообщения зависит от типа компьютера. В некоторых старых компьютерах фирмы IBM при выполнении указанной процедуры приостанавливается работа процессора, компьютер блоки­руется и пользователю приходится перезапускать его с помощью кнопки сброса или выклю­чать и через некоторое время вновь включать питание. При этом, естественно, теряется вся несохраненная информация. (Немаскируемое прерывание — это системное предупреждение, которое программы не могут проигнорировать.)