Каждый байт в памяти имеет числовой адрес, начинающийся с 0. CPU имеет один или несколько регистров , которые содержат адрес того одного байта, над которым выполняется работа.Регистр является физическим устройством и имеет ограничения на количество сохраняемых им чисел.
размер виртуального адреса: 32 бита
Это означает, что регистр адреса может хранить одноадрес (число), который может быть любым между 0
и 2^32 -1
.
Поскольку наибольший адрес, который может хранить регистр адресов, равен 2^32 -1
, нет смысла иметь больше байтов памяти.Потому что процессор никогда не сможет с ними работать.Поэтому в общем случае мы предполагаем, что общий объем памяти равен 2^32
байтов.
размер страницы = 4 КБ = 2 ^ 12 байтов
Общий объем памяти в миллионах байтовна самом деле организованы кусками, называемыми страницами.Здесь общая память 2^32
байтов разбита на страницы 2^12
байтов.
Какое количество страниц?
ответ (2 ^ 32) / (2 ^ 12) = 2 ^ 20.Хорошая работа!
но почему?я думаю, что это должно быть (2 ^ 32) / (2 ^ 15) из-за преобразования битов (2 ^ 12) * (8) = 2 ^ 15
Здесь 2^32
- этообщее количество байтов в памяти.2^12
- общее количество байтов на странице.Числитель и знаменатель должны быть в одинаковых единицах - байтах.Поэтому вам не нужно преобразовывать знаменатель в биты.
Примечание:
Я использовал более упрощенные термины, такие как memory
, address
, register
и т. Д. Многие изПриведенные выше утверждения не действительны для реального ноутбука, но полезны для начального обучения.