В этой фазе агент, которому выполняется обращение в данной трансакции, выдает сигналы RS [2-0], определяющие возможные варианты ответа на поступивший запрос.
Кроме этого используются сигналы:
RSP# – бит четности для сигналов RS.
TRDY# - отвечающего агента, указывающий на его готовность к обмену данными.
Hard Failure – указывает, что произошла аппаратная ошибка. Агент, инициировавший запрос, должен принять действия по восстановления данных.
Implicit WRITE BACK – выдается в случае, когда сигнал HITM# был активен в фазе завершения- снупинга. Агент, выдавший сигнал HITM#, должен произвести запись модифицированной строки в кэш в основную память, а агент, запросивший данные, должен принять модифицированную строку.
(неверное предложение)Ответ Deferred имеет место, если в фазе запроса был активен сигнал DEN#, а в фазе завершения – снупинга был активен сигнал DEFER#.
Агент, выдавший данный ответ, обещает завершить трансакцию в будущем, использую трансакцию типа DEFERRED Replay (отложенный ответ).
Ответ Retry – РЕАЛИЗУЕТСЯ, ЕСЛИ В ФАЗЕ ЗАВЕРШЕНИЯ – СНУПИНГА, БЫЛ активен сигнал DEFER# и неактивен сигнал HITM#.
Отвечающий агент сообщает, то трансакция должна быть повторена.
Ответ NORMAL DATA – указывает, что данная трансакция предполагает чтение данных и сигналы HITM#, DEFER#, установленные в фазе завершения снупинга были неактивны. Вместе с ответом отвечающий агент должен установить необходимые сигналы для проведения трансакции.
Ответ NO DTAT – выдается, если тип трансакции не предполагает чтение данных и в фазе завершения снупинга сигналы HIMT#, DEFER# были не активны, при этом трансакция завершается без передачи данных.
Фаза данных
В этой фазе выполняется передача данных, завершающая трансакцию.
Используются сигналы:
DRDY# (I/0) - готовность данных. Устанавливается агентом, передающим данные, когда эти данных поступают на системную шину.
При многотактовых передачах установка DRDY# в 1 вызывает введение тактов ожидания пока не будет установлено активное значение сигнала DRDY# (то есть равно 0).
Содержит передаваемые данные. При этом сигналы BE (7-0), поступающие на шину адреса во втором такте фазы запроса, определяют, какие байты шины данных содержат достоверную информацию.
Содержат биты ECC – кода, используемые для контроля и коррекции ошибок в передаваемых данных.
Командный цикл (операция) – выборка команды из памяти и её выполнение. Состоит из одной или более трансакций. Первая трансакция – выборка команды.
ADD BL, CL; регистровая – регистровая BL+CL => BL
Командный цикл (операция) - трансакции: выборка команды
ADD BL, AS; регистровая – прямая BL+AS => BL
ТРАНСАКЦИИ – выборка команды, чтение в памяти
ADD AS, BL; прямая - регистровая, AS+BL => as
Трансакции – выборка команды, чтение памяти, запись в память
IN AL, 20h; регистровая - прямая, 20h => AL
Чтение содержимого порта с адресом 20h
Трансакции: выборка команды, чтение из порта
Адрес порта > FFh (255)> загружается в регистр DX.
MOV DX, 378h
IN AL, DX; регистровая – косвенно – регистровая
Все современные процессоры – с изолированной шиной. У любого процессора есть адресное пространство памяти. При обращении к памяти процессор может использовать всю шину адреса.
Для передачи адреса порта используются линии А15 – А0 шины адреса.
У микропроцессоров с изолированной памятью адресное пространство памяти и адресное пространство ввода – вывода перекрываться, т.е. есть порт с адресом 0 и ячейка с адресом 0. Для работы с портами и памятью используются разные команды.
Для работы с портами используются команды:
вывод из порта IN AL(AX, EAX), адрес порта. Содержимое порта копируется в рон AL, AX, EAX (4 байта)
Вывод в порт адрес порта, AL, AX, EAX. Содержимое аккумулятора копируется в порт.
Если адрес порта больше 255 (FFh) его следует загружать в регистр DX.