Почему ОС не может использовать целые 64-битные адресации? Почему только 48 бит?

Я читаю "Понимание ядра Linux".

Пейджинг для 64-битных архитектур

Как мы видели в предыдущих разделах, двухуровневый пейджинг обычно используется 32-разрядными микропроцессорами. Однако двухуровневый пейджинг не подходит для компьютеров с 64-разрядной архитектурой. Давайте использовать мысленный эксперимент, чтобы объяснить, почему:

Начнем с предположения, что стандартный размер страницы составляет 4 КБ. Потому что 1 КБ охватывает диапазон 210 адреса, 4 КБ, обложки 212 адреса, поэтому поле смещения составляет 12 бит. Это оставляет до 52 бит линейного адреса для распределения между полями таблицы и справочника.Если сейчас мы решим использовать только 48 из 64 битов для адресации (это ограничение оставляет нам удобное адресное пространство 256 ТБ!)оставшиеся 48-12 = 36 бит должны быть разделены между полями таблицы и справочника. Если теперь мы решим зарезервировать 18 бит для каждого из этих двух полей, то и каталог страниц, и таблицы страниц каждого процесса должны включать 218 записей, то есть более 256 000 записей.

«Если сейчас мы решим использовать только 48 из 64 битов для адресации». Зачем? & Почему только 48 бит? Почему не какой-то другой номер?

Ну, я обычный пользователь ПК и программист. Мне просто трудно поверить, что 32-битная адресация, то есть 4 ГБ (2 ГБ / 3 ГБ, чтобы быть более правильным) адресного пространства на процесс, является пределом. если тыдействительно столкнулся с этим пределом. Пожалуйста, дайте мне пример.

Что это за предел для окон?

Я знаю, что виртуальная память! = Контакты физической памяти и адреса процессора не имеют ничего общего с виртуальной памятью. Это совершенно другой вопрос. Как узнать количество контактов адреса (= размер шины адреса) для процессора.http://ark.intel.com спецификации процессора не включают эту спецификацию.

Ответ:

УвидетьОтвет Пола Беттса за разумный ответ на 1-й вопрос.

Ответы на вопрос(7)

Ваш ответ на вопрос