Принцип работы проверки четности


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

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

Разряд данных: 0 1 2 3 4 5 6 7 Бит четности

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

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

Рассмотрим еще один пример.

Разряд данных: 0 1 2 3 4 5 6 7 Бит четности

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

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

При считывании из памяти та же самая микросхема проверяет информацию на четность.

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

В компьютере IBM PC: PARITY CHECK x

В-компьютере IBM XT: PARITY CHECK x~yyyyy (z)

В-компьютере IBM PC и последних моделях XT: PARITY CHECK x~yyyyy

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

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

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



Дата добавления: 2016-07-05; просмотров: 2716;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.