Как узнать, под каким "семейством процессоров" находится процессор Intel?

В руководстве Intel есть таблицы, содержащие списки Performance-Monitoring Counters, но они чрезвычайно специфичны для конкретного семейства процессоров.

Например, в одной таблице перечислены счетчики P6 Familyи другие списки для Pentium,

В Ubuntu, если я сделаю cat /proc/cpuinfoЯ получаю строку, которая говорит cpu family, но это одно число. Есть ли какое-то соответствие между этим числом и понятием Intel о processor family?

Я также посмотрел эту страницу от Intel, но там даже не упоминается слово "семья".

Кстати, я нахожусь на X3470 так что я подумал Xeon была семья, но руководство не перечисляет это.

3 ответа

Решение

В частности, для "X3470" он основан на микроархитектуре Nehalem.

В общем; для Intel 80x86 и только Intel 80x86 (исключая такие вещи, как Itanium и Xeon Phi/KNC и все другие производители процессоров 80x86 - не забудьте проверить строку "ID поставщика" в CPUID):

  • CPUID не поддерживается означает, что он 80486 или старше (есть способы узнать, какой, но вас это не волнует, так как нет мониторинга производительности)
  • CPUID.family == 4 означает, что это 80486 (без мониторинга производительности)
  • CPUID.family == 5 означает, что это Pentium
  • CPUID.family == 15 означает, что это "Netburst" (Pentium 4, Pentium D, Pentium EE, и некоторые Celeron, а не другие, и некоторые Xeon и не другие)
  • CPUID.family == 6 означает что-то от Pentium Pro (1995) до последней версии Haswell (2014), за исключением Netburst

За CPUID.family == 6 Вы должны проверить CPUID.model поле. Вы можете найти диапазоны номеров моделей, кропотливо просматривая все различные обновления спецификаций, бормотая ругательства на своем дыхании (примечание: это традиционный метод). Я не знаю, есть ли менее безумный способ расшифровать это.

Обратите внимание, что существует также "маркетинговая ерунда" (вещи, предназначенные для продавцов, которые совершенно бесполезны для разработчиков программного обеспечения). Это включает в себя торговые марки процессоров (Xeon, Celeron, Core i7 и т. Д.) И названия моделей процессоров ("X3470"). Страница, на которую вы смотрели, - это "маркетинговая ерунда".

"Семья" - это неоднозначное понятие. Число, возвращаемое /proc/cpuinfo, является полем "семейства" из инструкции CPUID, которое дает смутное представление о том, какие процессоры связаны с этим, и действительно полезно только для поиска в таблице, чтобы выбрать, какое имя отображать для процессоры, которые не поддерживают расширенную инструкцию CPUID "строка бренда процессора".

Вы можете попытаться проанализировать "строку бренда процессора" для получения нужной информации, но вам, вероятно, лучше проверить расширенные инструкции CPUID, чтобы узнать, поддерживаются ли искомые счетчики.

ИМХО, вместо того, чтобы выяснять семейство, ищите флаги возможностей ЦП, как в::

http://lxr.linux.no/#linux+v3.13.5/arch/x86/include/asm/cpufeature.h

Другие вопросы по тегам