stringtranslate.com

Однократная запись (когерентность кэша)

В литературе по протоколу когерентности кэша Write-Once был первым определенным протоколом MESI . Он имеет оптимизацию выполнения сквозной записи при первой записи и обратной записи при всех последующих записях, что снижает общий трафик шины при последовательных записях в память компьютера . Впервые он был описан Джеймсом Р. Гудманом в (1983). [1] Протоколы когерентности кэша являются важной проблемой в симметричных многопроцессорных системах, где каждый ЦП поддерживает кэш памяти.

Штаты

В этом протоколе каждый блок в локальном кэше находится в одном из четырех состояний:

Эти состояния имеют точно такие же значения, как и четыре состояния протокола MESI (они просто перечислены в обратном порядке), но это упрощенная форма, которая избегает операции Read for Ownership. Вместо этого вся недействительность выполняется путем записи в основную память.

Для любой заданной пары кэшей разрешенные состояния заданной строки кэша следующие (сокращенно в указанном выше порядке):

Переходы

Протокол следует некоторым правилам перехода для каждого события:

Диаграмма перехода однократной записи
Переход «WM» из состояния «Недопустимо » ошибочен; запись должна быть выполнена в памяти, поэтому строка остается в состоянии « Зарезервировано» .

Это вариант протокола MESI, но нет явного чтения для владения или широковещательной операции недействия для помещения строки в кэш в состоянии Exclusive без выполнения записи в основную память. Вместо этого первая запись в строку кэша Valid (также известную как Shared ) выполняет запись через память, что неявно делает другие кэши недействительными. После этого строка находится в состоянии Reserved ( Exclusive ), и дальнейшие записи могут выполняться без ссылки на основную память, оставляя строку кэша в состоянии Dirty ( Modified ).

Ссылки

  1. ^ Гудман, Джеймс Р. (1983). «Использование кэш-памяти для уменьшения трафика процессор-память». ACM Sigarch Computer Architecture News . 11 (3): 124–131. doi : 10.1145/1067651.801647 .