СУЭБ ИВТ СО РАН |
А.М.Федотов |
В протоколах наблюдения (snoopy protocols или просто snooping) ответственность за поддержание когерентности всех кэшей многопроцессорной системы возлагается на контроллеры кэшей.
В системах, где реализованы протоколы наблюдения, контроллер каждой локальной кэш-памяти содержит блок слежения за шиной, который следит за всеми транзакциями на общей шине и, в частности, контролирует все операции записи. Процессоры должны широковещательно передавать на шину любые запросы на доступ к памяти, потенциально способные изменить состояние когерентности совместно используемых блоков данных. Локальный контроллер кэш-памяти каждого процессора затем определяет, присутствует ли в его кэш-памяти копия модифицируемого блока, и если это так, то такой блок аннулируется или обновляется.
Протоколы наблюдения характерны для мультипроцессорных систем на базе шины, поскольку общая шина достаточно просто обеспечивает как наблюдение, так и широковещательную передачу сообщений. Однако здесь необходимо принимать меры, чтобы повышенная нагрузка на шину, связанная с наблюдением и трансляцией сообщений, не «съела» преимуществ локальных кэшей.
Некоторые из наиболее распространенных протоколов наблюдения:
В большинстве протоколов стратегия обеспечения когерентности кэш-памяти расценивается как смена состояний в конечном автомате. При таком подходе предполагается, что любой блок в локальной кэш-памяти может находиться в одном из фиксированных состояний. Обычно число таких состояний не превышает четырех, поэтому в теге каждого блока кэш-памяти имеются два бита, называемые битами состояния (SB, Status Bit). Следует также учитывать, что некоторым идентичным по смыслу состояниям блока кэш-памяти разработчиками различных протоколов присвоены разные наименования. Например, состояние блока, в котором были произведены локальные изменения, в одних протоколах называют Dirty («грязный»), а в других - Modified («модифицированный» или «измененный»).
Основная
Ключевые термины публикации:Когерентность кэш-памяти; Аппаратные способы решения проблемы когерентности;
© 2013-2024, Евразийский национальный университет им. Л.Н.Гумилева, Астана © 2007-2024, Новосибирский государственный университет, Новосибирск © 1998-2024, Институт вычислительных технологий СО РАН, Новосибирск © 1998-2024, Федотов А.М. |
ФИТ НГУ НГУ ЕНУ им.Гумилева ИВТ СО РАН |