Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

3.2.3. Алгоритм кэш-замещений

Кэш-памяти данных, команд и адресной трансляции (TLB) используют аналогичные ал­горитмы для выбора того, какой из четырех кэш-модулей (четырех входов) будет переза­писан, когда выборка строки сопровождается кэш-промахом.

Во-первых, замещается первая некорректная строка в ряду из четырех в порядке 0,1, 2, 3. Когда нет больше некорректных строк в данном ряду, работает алгоритм псевдослу­чайного выбора замещаемой корректной строки. Алгоритм управляется размещенными внутри ЧИПа МП-счетчиками. По сигналу RESET эти счетчики обнуляются, так что «слу­чайность» детерминирована и два ЦП на базе МП данного типа, исполняющие одну и туже программу на идентичных материнских платах, будут иметь абсолютно одинаковую после­довательность кэш-попаданий, кэш-промахов и кэш-замещений.

3.2 4. Состояния кэш-памяти данных

Отметим, что кэш-команда реализует лишь «SI» часть MESI-протокола, так как коман­ды из кэш-памяти команд нельзя записывать обратно в память.

Состояние кэш-строки может изменяться как в результате внутренних (из ЧИПа), так и вне­шних (от магистрали) воздействий, связанных с этой строкой. В табл. 3.2 представлены пере­ходы состояний в кэш-памяти данных в результате внутренних воздействий со стороны МП.

Таблица 3.2

Протокол кэш-согласования. МП обычно реализуют кэш-согласование посредством MESI-протокола (Modified - измененный, Exclusive - исключительный, Shared - разделенный, Invalid -некорректный).

Поддержка внешнего кэш-согласования обеспечивается с помощью циклов запросов. Цик­лы запросов инициируются другими процессорами в мультипроцессорной системе для про­верки, нет ли кэш-копии адреса во внутренней кэш-памяти МП. В табл. 3.3 представлены пере­ходы состояния строки, инициированные циклами запросов.

Стратегия однократной записи (write once). Стратегия однократной записи может быть осуществлена, используя входной контакт WB/WT#. Сигнал на этом контакте опрашивается как в цикле записи, так и чтения. Кэш-промах при чтении вызывает, после заполнения стро­ки, перевод строки, в состояние S или Е. Если контакты WB/WT# имеют низкий уровень сигнала и в то же время контакт NA# активен или первый сигнал на контакте BRDY# активен, строка входит в состояние S, усиливая следующее КЭШ-попадание при записи в эту строку передачей на магистраль. Если контакты WB/WT# имеют высокий уровень сигнала, строка переходит в состояние Е. В циклах сквозной записи состояние строки изменяется с S на Е при высоком уровне сигнала на контакте WB/WT #, так что последующие записи не будут сквозными. Таким образом, если этот сигнал приводить к низкому уровню при циклах чтения и высокому при циклах записи, то реализуется стратегия однократной записи. Самый про­стой путь осуществления однократной записи - это подключить этот контакт к выходному контакту W/R# процессора.

Если разряд WT в записи таблицы страниц установлен, то МП игнорирует сигнал на контакте WB/WT# для циклов, которые связаны кэш-попаданиями в эту страницу, и все­гда выполняет сквозную запись. Другими словами, аппаратура не может изменить выбор стратегии сквозной записи, осуществленный ПО.

Блокированные обращения. Блокированные обращения - это те загрузки или сохра­нения данного, которые возникают после команды «lock», включая первую загрузку или сохранение после соответствующей команды «unlock».

Переходы состояния для блокированных обращений отличаются от приведенных в табл. 3.2 в плане гарантий таким образом, что блокированные обращения видны всем процессорам в системе. Любая блокированная загрузка или сохранение производит как просмотр кэш, так и вырабатывает цикл внешней магистрали независимо от того, есть кэш-попадание или нет.