2

Недавно я узнал, что процессоры AMD-64 (x86_64) теоретически способны адресовать 64-битное адресное пространство, фактически только адрес 48-битные. Очевидно, AMD не думала, что полное 64-битное адресное пространство будет необходимо или практично в ближайшее время.

Из статьи Википедии:

Архитектура AMD64 определяет 64-битный формат виртуальных адресов, из которых младшие 48 бит используются в текущих реализациях. Это позволяет использовать до 256 ТБ (2 48 байт) виртуального адресного пространства.

Фактически, это ограниченное адресное пространство иногда фактически "используется" программистами, которые наполняют старшие 16-битные указатели дополнительной информацией. (См., Например, tagged_ptr в библиотеках Boost C++).

Я пытаюсь выяснить, подходит ли эта же практика для других 64-разрядных архитектур, таких как IA64 и PowerPC. Я уже некоторое время гуглю, но не могу найти никакой информации по этому поводу.

Имеет ли (малоиспользуемая) архитектура IA64 или архитектура PowerPC также только 48-битное адресное пространство на практике?

1 ответ1

3

Нет, нормальная ситуация для всех 64 битов, которые будут использоваться для адреса, хотя многие из этих битов всегда будут нулями.

Необычной является только ситуация с AMD64, поэтому стоит упомянуть, что используются только 48 бит.

Из IA-64:

Это 64-битная явно параллельная архитектура с богатым регистром. Слово базовых данных имеет 64-битную адресацию. Логическое адресное пространство составляет 2 64 байта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .