Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 149

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 143 144 145 146 147 148 < 149 > 150 151 152 153 154 155 .. 528 >> Следующая

программой ПО, которая использует команду "flush". Команда "flush" очень
быстро реализует обратные записи в памяти. Тот же эффект (обратная запись
измененной строки) можно получить по команде загрузки, но это будет
сделано в два раза медленнее - загрузка должна сначала сделать 4 передачи
по магистрали, чтобы получить новое данное, затем сделать обратную запись
измененной строки. Команда "flush" реализует обратные записи, не требуя
чтения данного из основной памяти, замещающего измененную строку.
Согласованность пространства адресов. В мультизадачных системах с
виртуальной адресацией ОС может управлять памятью так, что несколько
процессов используют одну и ту же физическую память при доступах по
разным виртуальным адресам. Когда ОС переключает процессы, она изменяет
поле DTB регистра базы таблицы страничных директорий для указания другой
страничной директории, задающей новое адресное пространство. При этом все
кэш-памяти должны стать некорректными: поскольку из TLB-буферов должны
читаться новые страничные директории, а не кэш-памяти данных и команд,
потому что, виртуальные адреса из нового адресного пространства,
очевидно, не совпадают со скопированными в кэш-память виртуальными
адресами из старого пространства.
Некорректность кэш-памятей фиксируется путем установки разряда ITI при
записи содержимого в регистр базы таблицы страничных директорий.
Некорректность кэш-команд относится как к физическим, так и виртуальным
тегам, поскольку кэш-память команд имеет один разряд корректности, общий
для физического и для виртуального тегов. Для кэшпамяти данных установка
разряда ITI фиксирует некорректность только виртуальных тегов. Тем не
менее, некоторые измененные строки будут возможно перезаписаны в память,
254
КЭШ-ПАМЯТЬ КОМАНД И ДАННЫХ
когда их место потребуется для строк из нового адресного пространства иди
когда внешние устройства, подключенные к магистрали, запросят измененные
данные через циклы
запросов. _
Как уже сказано, некорректность кэш-памятеи фиксируется установкой
разряда ITI при занесении содержимого в регистр базы таблицы страничных
директорий. Тем не менее отметим, что программа ОС, которая очищает кэш-
памяти, должна находиться в памяти в ходе очистки. Обычно эта программа
имеет один и тот же виртуальный адрес дЛЯ всех
П*Э Разрешение или маскирование (запрещение) адресной трансляции (с
помощью разряда APG) подобно изменению поля DTB, так как в этом случае
также изменяется распределение памяти. Перед изменением состояния разряда
APG виртуальные теги в кэш-памятях команд и данных должны быть помечены
как некорректные.
Согласованность кэш-памяти команд. Когда ПО модифицирует некоторую
страницу, содержащую команды [например, отладчик помещает некоторую
команду с командой "trap" (ловушка] для указания точки останова) кэш-
память команд может оказаться несогласованной по следующим причинам:
• из-за того, что кэш-память данных использует стратегию обратной записи,
изменения в страницах скопированных в кэш-память и содержащих команды
обновляют память с задержкой;
• изменения в командах не приводят к автоматическому обновлению кэш-
памяти команд;
• кэш-промахи при обращениях к кэш-памяти команд не проверяются в кэш-
памяти данных.
ПО должно удостовериться, что измененные строки, содержащие команды,
записаны в основную память до попытки прочитать их в кэш-памяти команд.
Для этого пригодны два способа:
1) очистка кэш-памяти данных с применением команды "flush"; заметим, ЧТо
для того чтобы сделать кэш-память команд согласованной с кэш-памятью
данных, кэш-память данных должна быть очищена перед фиксацией
некорректности кэш-памяти команд;
2) пометить все страницы команд как страницы со сквозной записью
установкой разряда WT в записях страниц, так чтобы изменения в командах
приводили к немедленной перезаписи в память; этот вариант, пожалуй, самый
лучший.
В любом случае после того как страница программы будет изменена, чтобы
обновленные команды читались из основной памяти, должна быть
зафиксирована некорректность кэш-памяти команд (путем установки разряда
ITI в содержимом регистра базы таблицы
страничных директорий).
Согласованность таблиц страниц. Данные в TLB-буферах становятся
некорректными, когда ОС изменяет таблицы страниц или страничных
директорий по следующим причинам:
• так как кэш-память данных использует стратегию обратной записи,
обновления кэш-копий таблиц страниц не приводят к незамедлительному
обновлению памяти;
• изменения таблиц страниц не сопровождаются автоматическим обновлением
TLB-бу-феров;
• в процессе трансляции МП "Intel" обращаются за страничными директориями
и таблицами страниц, размещенными только во внешней памяти; он не
использует кэш-данных (данные не передаются из кэш-памяти данных в TLB-
буферы в ходе циклов замещения TLB-буферов).
ПО должно удостовериться в том, что измененные строки, содержащие записи
таблицы страниц, записаны в основную память, прежде чем блок страничной
Предыдущая << 1 .. 143 144 145 146 147 148 < 149 > 150 151 152 153 154 155 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed