На обычных 64-битных архитектурах, таких как x86-64 и arm64, обычно только 48 бит используются для адресации памяти, тогда как другие биты являются копиями бита 47 (который обычно равен нулю для программ пользовательского пространства). Таким образом, оставшиеся 16 битов могут использоваться для хранения дополнительных данных, таких как теги типа и т. Д., При условии, что эти биты маскируются перед разыменованием. В качестве альтернативы, 48 бит могут вписываться в NaN-представление 64-битного числа с плавающей запятой. Обе технологии часто используются в динамических / интерпретируемых языках.
Я читал о 5-уровневом пейджинге Intel, который расширил бы диапазон адресов с 48 до 57 бит, таким образом, значительно уменьшив оставшиеся биты, а также отобразив NaN. Бокс невозможен. Ядро Linux уже добавило поддержку этой схемы пейджинга.
Учитывая, что 48 бит соответствуют 262 144 ГБ памяти, мы можем предположить, что 57-битный диапазон нам не понадобится в ближайшее время на потребительских устройствах, таких как ПК, ноутбуки. и телефоны, и, таким образом, можно предположить, что на этих устройствах мы будем оставаться в 48-битном режиме в течение долгого времени, при этом вышеупомянутые методы остаются жизнеспособными, в то время как 57-битный режим будет использоваться только для серверов / суперкомпьютеров.
Правильно ли я делаю эти предположения? Или есть признаки того, что даже устройства потребительского масштаба будут использовать 57-битный режим в ближайшем будущем?