Протокол MESIF является когерентность кэша и когерентность памяти протокол , разработанный Intel для кэширования когерентных неравномерных архитектур памяти . [1] Протокол состоит из пяти состояний: модифицированный (M), эксклюзивный (E), общий (S), недействительный (I) и прямой (F). [2]
Состояния M, E, S и I такие же, как в протоколе MESI . Состояние F является специализированной формой состояния S и указывает, что кэш должен действовать как назначенный ответчик на любые запросы для данной строки. Протокол гарантирует, что, если какой-либо кеш содержит строку в состоянии S, самое большее количество одного (другого) кеша удерживает ее в состоянии F.
В системе кэшей, использующей протокол MESI, запрос строки кэша, который принимается множеством кешей, содержащих строку в состоянии S, будет обслуживаться неэффективно. Он может быть удовлетворен либо из (медленной) основной памяти, либо все совместно используемые кеши могут отвечать, забрасывая запрашивающую избыточными ответами. В системе кэшей, использующей протокол MESIF, на запрос строки кэша будет отвечать только кэш, удерживающий строку в состоянии F. [3] Это позволяет запрашивающей стороне получать копию со скоростью передачи из кэша в кэш, при этом позволяя использовать как можно меньше многоадресных пакетов, насколько позволяет топология сети.
M | E | S | я | F | |
---|---|---|---|---|---|
M | |||||
E | |||||
S | |||||
я | |||||
F |
Поскольку кэш может в одностороннем порядке отбросить (сделать недействительным) строку в состоянии S или F, возможно, что ни один кеш не имеет копии в состоянии F, даже если копии в состоянии S существуют. В этом случае запрос строки удовлетворяется (менее эффективно, но все же правильно) из основной памяти. Чтобы свести к минимуму вероятность того, что линия F будет отброшена из-за отсутствия интереса, самому последнему инициатору запроса строки назначается состояние F; когда кэш в состоянии F отвечает, он передает состояние F новому кешу.
Таким образом, основное отличие от протокола MESI состоит в том, что запрос копии строки кэша для чтения всегда поступает в кэш в состоянии F. Единственный способ войти в состояние S - удовлетворить запрос на чтение из основной памяти.
Для любой данной пары кешей разрешенные состояния данной строки кэша перечислены в таблице справа. Порядок, в котором перечислены состояния, не имеет другого значения, кроме как сделать акроним MESIF произносимым.
Существуют и другие методы для удовлетворения запросов на чтение из общих кешей при подавлении избыточных ответов, но наличие только одного назначенного ответа кеша упрощает аннулирование всех копий, когда это необходимо для перехода в монопольное состояние.
Сравнение с протоколом MOESI
Состояние F в этом протоколе не следует путать с состоянием O «Владелец» в протоколе MOESI. Хотя оба состояния идентифицируют один кеш из набора разделяющих сторон для эффективной передачи данных с использованием прямых передач из кеша в кеш (вместо ожидания информации из основной памяти), существует разница в намерениях этих двух состояний.
- Строка кэша в состоянии F чиста и может быть удалена в любое время без предварительного уведомления.
- Строка кэша в состоянии O загрязнена и должна быть записана обратно в память перед удалением.
Состояние F в протоколе MESIF - это просто способ выбрать одного из разделителей чистой строки кэша для ответа на запрос чтения данных с использованием прямой передачи из кэша в кеш вместо ожидания поступления данных из основного объем памяти. Эта оптимизация имеет смысл в архитектурах, где задержка между кешем намного меньше по сравнению с задержкой доступа к основной памяти. Ключевым моментом, который следует здесь отметить, является то, что, как и в протоколе MESI, когда данные находятся в общем состоянии (с одним из кешей в состоянии F), данные являются чистыми.
Состояние O в протоколе MOESI является оптимизацией протокола MESI, где требование чистоты общих данных ослаблено. Другими словами, кеши могут обмениваться данными, которые являются грязными, пока один из участников совместного использования берет на себя ответственность за владение данными. Запросы на предоставление общих данных теперь будет удовлетворять владелец. Эта оптимизация позволяет отложить обратную запись данных, разрешив совместное использование грязных данных. [4] Ключевое отличие протокола MOESI состоит в том, что, в отличие от протокола MESIF, состояние Owned не является чистым.
Можно построить протокол MOESIF.
Смотрите также
Рекомендации
- ↑ Дэвид Кантер (28 августа 2007 г.), «Общий интерфейс системы: будущее межсоединения Intel» , Real World Tech : 5 , получено 12 августа 2012 г. CS1 maint: обескураженный параметр ( ссылка )
- ^ Майкл Э. Томадакис (17 марта 2011 г.). «Архитектура процессора Nehalem и платформ SMP Nehalem-EP» (PDF) . Техасский университет A&M. п. 30–34. Архивировано из оригинального (PDF) 11 августа 2014 года . Проверено 21 марта 2014 . CS1 maint: обескураженный параметр ( ссылка )
- ^ США 6922756 , Hum, Герберт HJ и Джеймс Р. Гудман, « Вперед состояние для использования в кэше - когерентности в многопроцессорной системе », выданный 2005-07-26, назначен корпорация Intel
- ^ Хеннесси, Дж .; Паттерсон, Д. Компьютерная архитектура: количественный подход (пятое изд.). п. 362.