Почему для преобразования адреса виртуальной памяти в физический адрес с трехуровневым разбиением на страницы (2-9-9-12, страница 4 КБ) требуется умножение индекса каждой страницы на 8 перед вычислением следующего?
Например, если у меня есть виртуальный адрес: 0xabde203 (в двоичном формате: 1010 1011 1101 1110 0010 0000 0011).
Первым шагом будет извлечение индекса «Таблица указателей каталогов страниц», который представлен двумя битами - 10, умножение его на 8 => 10000 и суммирование его значения с физическим адресом внешней таблицы, чтобы найти индекс каталога страниц. .
Я понимаю, что при обычном виртуальном переводе x86 разбиение на страницы выполняется с помощью двухуровневого разбиения по страницам (10-10-12), поэтому умножение каждого индекса (представленного 10 битами) на 4 (2 бита) будет равно размеру страницы.
Но почему при использовании PAE выполняется умножение на 8, как это представляет таблицу каталогов страниц?