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

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

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

Разряды "Доступа" и "Грязи". Разряды "Доступа" A (accessed) и "Грязи" D
(dirty) обеспечивают операционную систему данными об обращениях к
странице в таблицах страниц обоих уровней.
МП устанавливает разряд А до записи или чтения при обращении к странице.
Для 4-Кбайтных страниц МП устанавливает разряды А в записях таблиц
страниц обоих уровней.
Процессор проверяет разряд "грязи" D перед записью и при некоторых
условиях вырабатывает ловушки. Обработчик ловушки затем может
проанализировать соответствующие значения разрядов "грязи". Для 4-
Мбайтных страниц используется разряд D из записи страничной директории, а
для 4-Кбайтных страниц - разряд D только из записи таблицы страниц
второго уровня.
ОС, поддерживающая страничную память, может воспользоваться разрядами D и
А для выбора страниц, подлежащих удалению из физической памяти, когда
запросы на память превышают возможности физической памяти. Разряды D и А
обычно сбрасываются в "О" по инициативе ОС. Процессор устанавливает
разряд А при обращении к странице при операции записи или чтения. Если
при обращении к данным происходит ошибка и выполняется разрешенная
запись, обработчик ловушки устанавливает разряд D, затем повторно
выполняет команду.
ОС несет ответственность за координацию обновлений этих разрядов
центральным процессором или другими процессорами, которые могут разделять
эти страницы.
Алгоритм адресной трансляции. Процесс трансляции линейного адреса в
физический проходит по следующему алгоритму. Положим, что "Директория"
(DIR), "Страница" (PAGE) и "Смещение" (OFFSET) являются полями линейного
адреса; пусть PFA1 и PFA2 являются соответственно адресными полями
страничных кадров из записей таблиц страниц первого и второго уровней
(PDE и РТЕ); DTB - базовый адрес таблицы страничных директорий,
содержащийся в регистре базового адреса таблицы страничных директорий (в
МП "Intel"-управляющий регистр CR3).
1. Читается запись страничной директории (PDE) по физическому адресу,
сформированному по полям DTB:DIR:00.
266
ФУНКЦИОНИРОВАНИЕ ПАМЯТИ
2. Если в PDE разряд Р равен нулю, генерируется ошибка обращения к
данному или команде.
3. Если в PDE разряд R/W равен нулю, выполняется запись, и, если или
разряд U в регистре psr установлен или разряд WP установлен, то
генерируется ошибка обращения к данному.
4. Если в PDE разряд U/S в нуле и установлен разряд U в регистре psr,
генерируется ошибка доступа к данному или команде.
5. Если в PDE разряд доступа А нулевой и имеет место кэш-промах при
обращении к буферу ассоциативной трансляции TLB в блокированной
последовательности, генерируется ошибка доступа к данному или команде.
(Данная ловушка позволяет ПО установить разряд А в "1" и осуществить
рестарт последовательности. Это помогает аппаратуре внешней магистрали
недвусмысленно установить тот факт, что адрес соответствует закрытому
семафору).
6. Если в PDE разряд 7 находится в единице (4-Мбайтная страница) и
выполняется операция записи, и в PDE разряд "грязи" D = 0, генерируется
ошибка доступа к данному.
7. Если в PDE разряд А = 1, перейти к шагу 11, в противном случае
возбуждается сигнал на контакте LOCK#.
8. Выполняется чтение PDE подобно тому, как это делалось на шаге 1, и
проверяются разряды Р, W, U аналогично шагам со 2-го по 4-й.
9. Записывается PDE с разрядом доступа А, равным единице.
10. Снимается сигнал блокировки на контакте LOCK#.
11. Если в PDE разряд 7 в единице (4-Мбайтная страница), формируется
физический адрес из полей PFA1 :OFFSET и осуществляется выход из
алгоритма страничной трансляции. В этом случае поле PFA1 является 10-
разрядным, а поле OFFSET -22-разрядным.
12. Остальные шаги выполняются для 4-Кбайтных страниц. Если в PDE разряд
доступа А был перед началом трансляции нулевым, возбуждается сигнал
блокировки на контакте LOCK#.
13. Выбирается запись страничной директории РТЕ по физическому адресу,
сформированному по полям: PFA1 :PAGE:00.
14. Выполняются проверки разрядов А, Р, W, итак же как это делалось в
шагах со 2-го по 5-й только по записи РТЕ таблицы страниц второго уровня.
Если в РТЕ разряд А в нуле и имел место кэш-промах в блокированной
последовательности, вырабатывается ошибка доступа к данному или команде.
Сигнал на контакте LOCK# остается активным.
15. При операции записи и нулевом значении разряда D в РТЕ генерируется
ошибка доступа к данному.
16. Если разряд доступа А в PDE до того как началась трансляция уже
установлен и разряд А в РТЕ уже также установлен, осуществляется переход
к шагу 20.
17. Если контакт LOCK# уже не активен, он возбуждается и повторно
выбирается запись РТЕ.
18. Делаются проверки разрядов U, W, Р и установка разряда А в РТЕ
подобно тому как, это делается в шагах 8-9. Делается блокированное
обновление записи РТЕ, чтобы разблокировать магистраль, даже если разряд
доступа А в РТЕ уже в единице.
19. Сбрасывается сигнал на контакте LOCK#.
20. Формируется физический адрес из полей PFA2:OFFSET. В этом случае поле
Предыдущая << 1 .. 149 150 151 152 153 154 < 155 > 156 157 158 159 160 161 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

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

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed