MMU и TLB пропускают - PullRequest
       81

MMU и TLB пропускают

0 голосов
/ 16 июля 2010

Предположим следующее.У меня есть система с виртуальной памятью с одним пейджинговым рычажком, у меня есть MMU, а TLB управляется программным обеспечением.

Хорошо ... так что представьте, что я процесс, и я хочу прочитать слово вОЗУ виртуального адреса vaddr.

Итак, CPU выдает MMU vaddr, MMU проверяет в TLB, есть ли запись с (предположим) 5 старшими значащими битами vaddr.Если он там ... все в порядке, он вычисляет физический адрес и все идет хорошо.

Теперь ... предположим, что его не было в TLB.В этом случае MMU делает прерывание (ошибка страницы).Хорошо ... теперь я в обработчике ошибки страницы.

В PBR (регистр базы страниц) у меня есть адрес начала таблицы страниц.Мой вопрос здесь.Это физический адрес?Я думаю, да, потому что если бы он был виртуальным, это означало бы две вещи: 1) Должно быть как-то зарезервировано в виртуальном адресном пространстве процесса (никогда не слышал о чем-то подобном) 2) Если этот адрес отсутствует в TLB, будетснова ошибка страницы, и у меня будет бесконечный цикл.

Тот же вопрос об адресах в таблицах.Если бы у меня был двухуровневый пейджинг.Адрес в записи в таблице первого уровня (который указывает на таблицу второго уровня) является виртуальным или физическим?

Спасибо.

1 Ответ

3 голосов
/ 16 июля 2010

Домашнее задание?

В любом случае, такие вещи подробно описаны в руководстве по архитектуре процессора (и вы даже не написали, о каком процессоре вы говорите - x86 не генерирует сбои страниц в TLBпромахи).

...