Неправильные значения CPUID?

Мой процессор — Intel Core2Quad Q9300 2,5 ГГц. CPU-Z дает мне значения для Family: 6, Model: 7 и Stepping: 7. Пытаясь написать сборку x86 с помощью инструкции cpuid с EAX=1, все, что я получаю, это значение 0000 0010 в AL (где, я полагаю, должно было быть 0111 0111).

Любая помощь, ребята?


person sample_nickname    schedule 25.01.2013    source источник


Ответы (1)


К сожалению (из-за большого количества отсоса), «семейные» числа Intel снизились с 5 (Pentium) до 6 (Pentium Pro, Pentium II, Pentium II) до 15 (Pentium 4), а затем снова до 6 (Pentium M). , Atom, Core, Core2, Nehalem, Sandy Bridge и т. д.).

В основном это означает, что (само по себе) поле «семейство» бесполезно для определения семейства ЦП. Вместо этого, если «семейство = 6», вы должны использовать номер модели для определения семейства (и номера моделей не в правильном порядке или что-то в этом роде — например, модели 8, 10 и 11 — это Pentium III, а в середине этого модель 9 — Pentium M).

Также обратите внимание, что номер модели изначально был 4-битным (биты с 4 по 7 в EAX), и этого было недостаточно, чтобы справиться с глупостью Intel «все — семейство 6», поэтому они расширили номер модели еще на 4 бита позже (биты с 16 по 7). 19 в ЕАХ). Это означает, что для получения полного номера модели вам нужно немного покрутить/сдвинуть (например, model = ( (EAX >> 4) & 0x0F) | ( (EAX >> 12) & 0xF0);).

Например, для модели 23 значение в EAX будет 0x???1??7?, и более старое программное обеспечение (разработанное до того, как было введено «расширение номера модели») будет ошибаться, думая, что ЦП — это «модель 7». когда это не так.

Я предполагаю, что вы сделали то же самое (забыли включить «расширенную модель» в номер вашей модели); а фактические данные вашего процессора: «семейство = 6, модель = 23». Это сделало бы его Core 2 (Penryn).

person Brendan    schedule 25.01.2013
comment
Что ж, спасибо за ответ! Мне определенно нужно проверить это немедленно, потому что я провел над этим всю ночь! Надеюсь, это сработает.. - person sample_nickname; 25.01.2013
comment
Отличный ответ. Это Статья CodeGuru описывает текущее состояние ситуации, включая глупости, описанные Бренданом, и дает несколько примеров кода. - person Assad Ebrahim; 21.04.2013