пусть, например, устройство "D1" имеет память отображенную на адрессное пространнство 0xFF000000 - 0xFF0000FF. И процессор натолкнулся на mov eax, [0xFF000077]. Ни в каких буфферах значения этого DWORD-а нет. Значит должна быть выполнена PCI комманда чтению из памяти этого DWORD из памяти устройства. Но устройство говорит, что выполнить эту комманду ни как не может. 1) Такое вообще возможно? 2) Будет ли процессор дожидаться выполнения PCI комманда чтения?
Читай спецификацию PCI. Да возможно но там либы отказ от выполнения команды. что вличет за собой прикращение цикла чтения. Или же мы поподаем в тайм аут когда ниодно из устройств не отвичаетна запрос. Разумеется на это все тратиться время и процессор будет короткое время простаивать и ждать возращения результата. Тайм аут стони наносекунд. Если свящь установлинна то ограничения связанны с частотой шины. И там опять таки цифра такогоже порядка может дольше. А есл там идет запрос на медленноее сойдинение то скорость ограничивается частотой самой медленной шины. Доступ к томуже порту COM идет через шину PCI. И процессор подвисал ровно на то время пока шло чтение с этого порта по его скорости.
а как процессор будет дожидаться. Будут "холостые такты" или его "работа остановиться"? Интересно что будет с счетчиком тактов TSC?