Какие процессоры поддерживают страницы объемом 1 ГБ?

19

Некоторые процессоры Intel поддерживают страницы объемом 1 ГБ. Это можно определить, посмотрев на CPUID 0x80000001, бит EDX 26 . Ядро Linux предоставляет это через , /proc/cpuinfoкак pdpe1gbфлаг .

Где мы узнаем, какие процессоры поддерживают это, а какие нет? Или какая линейка продуктов поддерживает эту функцию? На этих страницах Intel ARK нет ничего, что указывало бы на поддержку этой функции.

Процессоры , которые делают поддержку 1GB страницы:

Другие процессоры, которые не поддерживают страницы объемом 1 ГБ:

Джонатон Рейнхарт
источник
1
Связанный: Как использовать страницы Intel Westmere 1GB на Linux?
Джонатон Рейнхарт

Ответы:

4

Согласно этой странице :

в дополнение к стандартным страницам объемом 4 КБ, более новые процессоры x86-64, такие как более новые процессоры AMD64 AMD и процессоры Intel Westmere и более поздние, могут использовать страницы объемом 1 ГБ в длинном режиме.

Кажется, что это правда, так как это была новая особенность процессоров Westmere .

Вячеслав Родионов
источник
5
Да, я определенно просмотрел все эти страницы Википедии! Однако этот ответ не верен. Sandy Bridge новее, чем Westmere, и теперь у меня есть два процессора Sandy Bridge, которые его не поддерживают.
Джонатон Рейнхарт
2
@JonathonReinhart: огромный недостаток Hugepages для общего пользования, особенно 1G страниц, это то, что вся огромная страница связывает столько физической памяти. Если процесс обычно выделяет 1 ГБ, то только части, к которым он когда-либо прикасался, фактически занимают виртуальную память. (overcommit даже позволяет выделения, которые ядро ​​не имеет достаточно места подкачки для обработки). Linux не может вывести огромные страницы на диск, даже когда процесс остановлен, поэтому выделение огромных страниц эффективно фиксирует / блокирует такой объем физической памяти.
Питер Кордес
1
2М hugepages имеют смысл , когда они не будут оставлены полупустой (например , когда вы точно знаете , что вы которые собираетесь писать каждый 4k из 2M в любом случае), но не хватает подкачки большое дело. Проектирование программного обеспечения общего назначения, которое ужасно плохо работает на рабочих столах с ограниченной памятью, не очень хорошая идея. Я не думаю, что вы даже можете отобразить файл на диске с 2M огромных страниц, но это было бы плохой идеей для исполняемых файлов, потому что в блоке 2M будет 4k страниц, которые не будут затронуты. Они могут быть удалены из кэша страниц (при условии, что они были предварительно выбраны), освобождая оперативную память.
Питер Кордес
1
С текущими процессорами, имеющими многоуровневые TLB, общее время, потраченное на пропуски TLB, вероятно, не так уж и плохо, не так ли? Я не представлял большие вещи, как Firefox. Мне было бы интересно посмотреть удобочитаемую сводку о том, сколько времени он тратит на промахи TLB (особенно обход страниц) и что-то вроде промахов I-кэша L1. Я знаю, что мог бы просто указать perfна это ... Даже если бы вы захотели использовать 2M огромных страниц для Firefox, я бы предположил, что большая часть его внутренних данных размещается меньшими порциями, чем эта. Было бы непросто убедиться, что вы минимизировали внешнюю фрагментацию выделений внутри огромного буфера страниц.
Питер Кордес
1
Промахи TLB являются дорогостоящими при операциях с большим объемом оперативной памяти, таких как многие приложения баз данных. Огромные страницы имеют большое значение - но даже там, они говорят о 2 МБ страницах, а не 1 ГБ. Операционная система является наиболее вероятным пользователем страниц объемом 1 ГБ благодаря прямому отображению всего физического адресного пространства.
GreenReaper