Расчет размеров параметров таблицы страниц - PullRequest
0 голосов
/ 08 января 2019

Мне дана система с 64-битным виртуальным адресным пространством. с размером страницы 2 КБ. Также указывается, что объем физической памяти составляет 16 ГБ.

Мне нужно рассчитать следующие параметры: количество записей страницы (количество строк в таблице страниц), сколько бит необходимо для смещения страницы, сколько бит необходимо для номера виртуальной страницы (VPN) и сколько бит необходимо для номера физической страницы ( ППН).

Итак, сначала я пришел к выводу, что размер виртуальной памяти составляет 2 ^ 64 байта, и это означает, что в таблице страниц есть 2 ^ 53 записи.

Из размера страницы я пришел к выводу, что для смещения страницы требуется 11 бит.

Отсюда я не так уверен.

Поскольку каждый виртуальный адрес имеет размер 64, то VPN имеет размер 64 - 11 = 53 бита.

Поскольку размер физической памяти составляет 2 ^ 34 байта, тогда физический адрес равен 34 битам. Это означает, что PPN имеет размер 34 - 11 = 23 бита.

Верны ли мои расчеты? а также правильно ли мое мышление?

Помощь будет оценена

1 Ответ

0 голосов
/ 08 января 2019

Некоторые из ваших результатов верны. PPN - 23 бита, VPN - 53 бита. Но все, что касается таблиц страниц, неверно.

Таблица страниц содержит набор физических адресов страниц. Следовательно, поскольку PPN составляет 23 бита, для описания PP требуется 4 байта (степень 2 выше 23). Если размер страницы составляет 2 Кбайт, вы можете сохранить 2 ^ 9 PP адресов на странице.

Поскольку VPN - это 53 бита, и каждая таблица может разрешать 9 бит, преобразование может быть выполнено 6 последовательными таблицами. Если вы не знакомы с многоуровневыми страницами, есть много хороших обучающих программ. Смотри например https://en.wikipedia.org/wiki/Page_table

Что точно, так это то, что размер СТ НЕ 2 ^ 53 !! Во-первых, потому что 2 ^ 55 - безумное количество памяти (~ 10 ^ 16). И во-вторых, потому что общее количество PP составляет 2 ^ 23, так зачем использовать таблицу в 1 миллиард раз больше ... (и именно поэтому мы используем многоуровневые таблицы страниц)

...