В данной фазе определяется состояние строк кэш-памяти, к которым происходит обращение при выполнении трансакции. В зависимости от строки реализуются остальные фазы обмена. При выполнении этой фазы используются следующие сигналы, поступающие на внешние выводы процессора:
· HIT#(I/0) - устанавливается агентом, если при обращении происходит попадание в не модифицированную строку кэш-памяти, содержащуюся в данном агенте (сообщает о попадании адреса трансакции в кэш-память другого агента.
· HITM# (I/0) – устанавливается агентом, если происходит попадание в модифицированную строку кэш-памяти.
· DEFER# (I) – сигнал отсрочки обмена. Устанавливается памятью или внешним устройством, если они не готовы завершить данную трансакцию.
Сигналы HIT# и HITM# обеспечивают реализацию протокола MESI, который позволяет осуществлять правильное обращение к данным, размещённым в кэш-памяти различных агентов в мультипроцессорной системе. В зависимости от установленной комбинации этих сигналов возможны 4 варианта выполнения этой фазы.
HIT#
HITM#
Вариант выполнения операции
CLEAN
MODIFIED
SHARED
STALL
Вариант CLEAN реализуется если данная строка не содержится в кэш-памяти какого-либо из агентов. Агент инициализировавший запрос может сохранить строку в кэш-памяти.
Вариант MODIFIED имеет место, если данная строка содержится в кэш-памяти одного из агентов с атрибутом «MODIFIED». Агент, содержащий эту строку, должен произвести её запись в память. А агент, инициировавший запрос, записывает эту строку в свою кэш-память с атрибутом «SHARED».
Вариант SHARED соответствует случаю, когда выбранная строка содержится в кэш - памяти одного из агентов, но не модифицированная. Агент, инициализировавший, может сохранить её в своей кэш-памяти с атрибутом SHARED.
Вариант STALL реализуется, когда какой-либо агент не готов к фазе завершения снупинга. В это случае агент устанавливает значения сигналов HIT#=HITM# = 0 и продлевает фазу на 2 такта.