Национальный исследовательский ядерный университет «МИФИ»
Опубликован: 05.04.2005 | Доступ: свободный | Студентов: 17148 / 6009 | Оценка: 4.25 / 4.16 | Длительность: 12:55:00
Специальности: Разработчик аппаратуры
Лекция 16:

Система управления памятью в персональной ЭВМ

< Лекция 15 || Лекция 16: 12 || Лекция 17 >

Сокращение потерь времени при использовании сегментно-страничной организации памяти в персональной ЭВМ

Преобразование логического адреса в физический при сегментно-страничной организации памяти требует, как минимум, трех обращений к системным таблицам, расположенным в оперативной памяти (таблице дескрипторов, КТС и ТС ). Это может привести к существенному снижению производительности компьютера. Механизм сокращения потерь времени на такое преобразование основывается на том факте, что изменение состояния сегментных регистров производится относительно редко, например, при переключении ЭВМ на новую задачу, а новое страничное преобразование требуется лишь при выходе программы за пределы загруженной в оперативную память страницы.

При сегментном преобразовании адреса после первого считывания дескриптора из таблицы дескрипторов, расположенной в оперативной памяти (например, после изменения состояния сегментного регистра при переключении на новую задачу), он запоминается в программно-недоступных ("теневых") регистрах микропроцессора ( рис. 16.4). При последующих обращениях к данному сегменту используется дескриптор из "теневого" регистра без обращения к ОП. Поэтому на его вызов требуется минимальное время. Так как состояние сегментных регистров меняется относительно редко, то такой подход приводит к значительной экономии времени при сегментном преобразовании адреса.

Сохранение дескрипторов сегментов в "теневых" регистрах микропроцессора

Рис. 16.4. Сохранение дескрипторов сегментов в "теневых" регистрах микропроцессора

При страничном преобразовании номера виртуальной страницы в номер физической страницы используется кэш-буфер ассоциативной трансляции ( TLB ), содержащий физические адреса 32-х наиболее активно используемых страниц ( рис. 16.5) и расположенный непосредственно в микропроцессоре.

Формат буфера ассоциативной трансляции адреса страницы

Рис. 16.5. Формат буфера ассоциативной трансляции адреса страницы

Номер виртуальной страницы представляет собой старшие 20 разрядов линейного адреса, полученного при сегментном преобразовании ( А31 - А12 ). По младшим разрядам ( А14 - А12 ) этого номера выбирается блок в буфере ассоциативной трансляции. Содержимое поля тэгов каждой из четырех строк этого блока ассоциативным образом (одновременно) сравнивается с разрядами ( А31 - А15 ) линейного адреса. Если значения для одной из строк выбранного блока совпали, значит, номер этой виртуальной страницы уже преобразовывался в номер физической страницы и результат этого преобразования находится в найденной строке TLB. Если сравнение не было успешным, то преобразование номера виртуальной страницы в номер физической проходит обычным образом через обращения к каталогу таблиц страниц и к таблице страниц, а полученное значение заносится в TLB. При этом в поле тэгов заносятся старшие 17 разрядов линейного адреса этой страницы ( A31-A15 ). Если нет свободной строки в блоке, определяемом разрядами А14 - А12 линейного адреса, то из блока вытесняется строка, информация в которой дольше всего не использовалась (механизм LRU ).

< Лекция 15 || Лекция 16: 12 || Лекция 17 >
Илья Бекиров
Илья Бекиров
Кирилл Кондратьев
Кирилл Кондратьев