Реклама:

ется в соответствующем разряде памяти как девятый бит (бит четности). Общее количество единиц во всех девяти разрядах при этом становится нечетным. Если же количество единиц в восьми разрядах исходных данных нечетное, то бит четности равен нулю, и сумма двоичных цифр в девяти разрядах также остается нечетной.

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

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

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

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

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

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

Сообщения об ошибках четности в разных компьютерах имеют следующий вид.

В IBM PC: PARITY CHECK x

В IBM XT: PARITY CHECK x yyyyy (z)

В IBM AT и последних моделях XT: PARITY CHECK x yyyyy

Здесь x может принимать значение 1 (ошибка произошла на системной плате) или 2 (ошибка произошла в разъеме расширения). Символы YYYYY ~ это шестнадцатеричное число от 00000 до FFFFF, указывающее адрес байта, в котором произошла ошибка. Символ z может принимать значение S (ошибка четности в системном блоке) или е (ошибка четности в корпусе-расширителе).

Примечание

Компания IBM разработала корпуса-расширители для компьютеров PC и XT, чтобы увеличить количество разъемов расширения.

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

В большинстве компьютеров в случае ошибки четности процессор не останавливает свою работу и пользователю предоставляется возможность либо перезагрузить компьютер, либо продолжить работу, как будто ничего не случилось. В подобных системах сообщение об


⇐ Предыдущая страница| |Следующая страница ⇒