Может ли конкретный MMU работать с 32- и 64-битными виртуальными адресами?

Когда запускается новый процесс, операционная система инициализирует регистры MMU таблицей страниц процесса. При трансляции виртуального адреса MMU получает виртуальный адрес, передает его компараторам и получает физический адрес (пожалуйста, поправьте меня, если я ошибаюсь). Итак, если таблица страниц является частью аппаратного обеспечения, как один MMU может работать с 32- и 64-разрядными операционными системами. Я имею в виду, если он запрограммирован на получение 32-битного виртуального адреса, как он работает, когда получает 64-битный виртуальный адрес.

Спасибо.


person user1289    schedule 22.07.2015    source источник


Ответы (1)


Просто: системы, которые позволяют сосуществовать 32- и 64-битным процессам, имеют MMU, которые могут принимать 32- и 64-битные адреса. Это совсем не сложно. Самым простым решением было бы добавить 32 нулевых бита к 32-битному адресу. Помните, что виртуальный адрес имеет смысл только для этого процесса, а не для оборудования.

person MSalters    schedule 22.07.2015