Cтраница 2
![]() |
Связь между виртуальными и физическими адресами, получаемая с помощью таблицы страниц. [16] |
Сама по себе возможность отображения 16 виртуальных страниц на любой из восьми страничных блоков с помощью установки соответствующей карты в диспетчере памяти не решает проблемы, заключающейся в том, что размер виртуального адресного пространства больше физической памяти. [17]
![]() |
Внутренняя операция диспетчера памяти в системе с шестнадцатью страницами размером 4 Кбайт. [18] |
Назначение таблицы страниц заключается в отображении виртуальных страниц на страничные блоки. Говоря математически, таблица страниц - это функция, имеющая в качестве аргумента номер виртуальной страницы и получающая в результате номер физического блока. Используя результат действия этой функции, поле виртуальной страницы в виртуальном адресе может быть заменено полем страничного блока, таким образом, формируется физический адрес. [19]
![]() |
Буфер быстрого преобразования памяти для увеличения скорости страничной подкачки. [20] |
Интересная ситуация получается, если номер виртуальной страницы не находится в буфере быстрого преобразования адреса. Диспетчер памяти обнаруживает отсутствие страницы и выполняет обычный поиск в таблице страниц. Затем он удаляет одну из записей из буфера TLB и заменяет ее только что найденной записью из таблицы страниц. Таким образом, если эта страница снова вскоре будет затребована, во второй раз поиск окажется успешным, а не неудачным. Когда запись удаляется из буфера быстрого преобразования адреса, бит изменения копируется в запись таблицы страниц в памяти. Другие величины уже находятся там. Когда буфер TLB загружается из таблицы страниц, все паля берутся из памяти. [21]
![]() |
Связь между виртуальными и физическими адресами, получаемая с помощью таблицы страниц. [22] |
Сама по себе возможность отображения 16 виртуальных страниц на любой из восьми страничных блоков с помощью установки соответствующей карты в диспетчере памяти не решает проблемы, заключающейся в том, что размер виртуального адресного пространства больше физической памяти. [23]
![]() |
Внутренняя операция диспетчера памяти в системе с шестнадцатью страницами размером 4 Кбайт. [24] |
Назначение таблицы страниц заключается в отображении виртуальных страниц на страничные блоки. Говоря математически, таблица страниц - это функция, имеющая в качестве аргумента номер виртуальной страницы и получающая в результате номер физического блока. Используя результат действия этой функции, поле виртуальной страницы в виртуальном адресе может быть заменено полем страничного блока, таким образом, формируется физический адрес. [25]
![]() |
Буфер быстрого преобразования памяти для увеличения скорости страничной подкачки. [26] |
Интересная ситуация получается, если номер виртуальной страницы не находится в буфере быстрого преобразования адреса. Диспетчер памяти обнаруживает отсутствие страницы и выполняет обычный поиск в таблице страниц. Затем он удаляет одну из записей из буфера TLB и заменяет ее только что найденной записью из таблицы страниц. Таким образом, если эта страница снова вскоре будет затребована, во второй раз поиск окажется успешным, а не неудачным. Когда запись удаляется из буфера быстрого преобразования адреса, бит изменения копируется в запись таблицы страниц в памяти. Другие величины уже находятся там. Когда буфер TLB загружается из таблицы страниц, все поля берутся из памяти. [27]
![]() |
Отображения виртуальных адресов в физические в машине UltraSPARC II. [28] |
Поэтому TLB содержит только номера самых последних используемых виртуальных страниц. Страницы команд и страницы данных рассматриваются отдельно. Для каждой из этих категорий в TLB включены номера 64 последних виртуальных страниц. Каждый элемент этого буфера включает номер виртуальной страницы и соответствующий номер физического страничного кадра. [29]
Эта таблица построена как кэш-память прямого отбражения виртуальных страниц. Каждый 16-байтный элемент данной таблицы указывает на одну виртуальную страницу и содержит бит достоверности, номер контекста, тег виртуального адреса, номер физической страницы и несколько флаговых битов. Если размер кэш-памяти составляет, скажем, 8192 элемента, тогда все виртуальные страницы, у которых младшие 13 битов отображаются в 0000000000000, будут претендовать на элемент 0 в данной таблице. Размер таблицы определяется программным обеспечением и передается в контроллер управления памятью через специальные регистры, доступные только для операционной системы. [30]