Реализация 2.0
70
И PERR# и SERR# являются требуемыми сигналами, так как требуется передача сигналов ошибки четности
на PCI. Однако это требование отклонено для двух классов устройств.
1. Устройства, которые разработаны исключительно для использования на плоских системных платах;
например, наборы чипов. Продавцы систем имеют контроль над использованием этих устройств, пока
они не будут появляться на сетевых платах.
2. Устройства, которые никогда не имеют дело с любыми данными, которые представляют постоянную или
остаточную системы состояния прикладной программы, например, человеческого интерфейса
и видео /
аудио устройств. Эти устройства только касаются данных, которые являются временным представлением
(например, пиксели) постоянных или остаточных систем или состояний прикладной программы, и
следовательно, не склонны создавать проблемы целостности системы в случае необнаруженного сбоя.
Обратите внимание, что все агенты требуют генерировать четность (нет никаких исключений для этого
требования). Использование SERR# для сообщения об ошибках нечетности необязательно. Однако должно
быть принято, что передача сигналов на SERR# генерирует NMI и, следовательно, неисправима.
Следовательно, нужно осторожно использовать SERR#.
Следующие разделы описывают ответственность каждого агента шины относительно передачи
сигналов на PERR# и SERR#.
3.7.2.1. Ответ ошибки четности и сообщений на PERR#
Этот раздел описывает соответствующий запрос, сообщение, ошибки четности данных во всех операциях
шины за исключением команд Специальных Циклов. Все ошибки четности адреса, также как ошибки
четности данных команд Специального Цикла сообщаются на SERR#, и описаны в следующем разделе. Все
ссылки к ошибкам четности в этом разделе ограничены строго четностью данных (за исключением
команд
Специального Цикла).
PCI использует сигнал PERR# , чтобы сообщить об ошибке четности данных между связанными
устройствами на PCI (за исключением команд Специального Цикла). Только мастеру разрушенной
передачи данных позволяют сообщить ошибки четности программному обеспечению, используя не PERR#,
а другие механизмы. Адресаты всегда сообщают об ошибке четности данных обратно мастеру на PERR#.
Это дает создателю доступа на каждом аппаратном
или программном уровне возможность восстановления.
Исключая установку бита обнаружения Ошибки Четности, вся передача сигналов ошибки четности и ответ
управляется битом Ответа Ошибки Четности. Этот бит требуется в предварительно перечисленных
устройствах. Если бит очищен, агент игнорирует все ошибки четности и завершает транзакцию, как если бы
четность была правильна. Если бит установлен, агент должен выставить PERR#. Во всех случаях
,
Обнаруженный бит Ошибки Четности должен быть установлен.
Агент должен всегда выставлять PERR# на два PCI такта после передачи данных, в котором ошибка
произошла, как показано на Рисунке 3-22. Агент, получающий данные свободен выставить PERR#, когда
ошибка четности обнаружена (которая может происходить прежде, чем данные перемещены)
13
. Когда
PERR# выключен, он должен остаться таким два такта после фактической передачи. Мастер знает, что
ошибка четности данных произошла в любое время, когда PERR# выставлен, но также знает, что передача
была свободна от ошибок 2 такта после передачи.
В случае многократной передачи данных без вмешательства, PERR# будет квалифицирован на
многократных последовательных тактах соответственно, и может быть выставлен на любом или на всех.
13
На транзакции записи это может происходить, когда IRDY# выставлен, и адресат вставляет состояние
ожидания. На транзакции чтения это происходит, когда TRDY# выставлен, и мастер вставляет состояние
ожидания.