Тогда начинаю длинный расказ: имеем (опуская архитектурные тонкости)

Тогда начинаю длинный расказ: имеем (опуская архитектурные тонкости) шину 64-бит от CPU к хосту, шину 32-бит от хоста к мосту, шину 16-бит от моста на ISA, шину 8-бит с ISA на BIOS ROM.
Предположим, что в одной из связей нарушена линия (сейчас неважно - обрыв, закоротка на Vcc или GND, либо межпроводниковая проблема). Чтобы проверить, где именно проблема, необходима 64-битная посылка. Она выполняется с помощью посылки заведомо известного паттерна (например, EAX=55AAFF00h) приблизительно так:
OUT 80,EAX ; out at ports 80, 81, 82, 83


OUT 84,EAX ; out at ports 84, 85, 86, 87
NOT EAX ; EAX=0AA5500FFh
OUT 80,EAX ; out at ports 80, 81, 82, 83
OUT 84,EAX ; out at ports 84, 85, 86, 87
Наблюдаем (пока неважно как), что получили. Если проблема в 64-битном линке (поэтому архитектурные тонкости и неважны - важно знать, где на данной платформе есть такой линк: на современных платах это связь от процессора до Южного Моста), то имеем всего одну ошибку. Если проблема в 32-битном соединении, то мы можем видеть симметричное искажение паттерна, повторяемое дважды. Аналогично вплоть до проблемы с подключением BIOS ROM, у которого при повреждении линии данных ошибка будет повторяться в каждом порту. Линию адреса не рассматриваем, т.к. в этом случае код из ROM и выполняться не будет (хотя и здесь есть хитрость, примененная в LiteBIOS, чтобы минимизировать потери управления на неисправных платформах).
Последний случай особенно симптоматичен на конструктиве DIP-32, когда прыткий пользователь, снимая чип BIOS отверткой, порезал проводники.
That's all, folks:)

BIOS-тест