Команда CPUID — получение информации о текущем процессоре
Для получения информации о процессоре необходимо в регистр ЕАХ поместить параметр — одно из значений 0, 1 или 2.
Если ЕАХ = 0, то в регистрах ЕАХ, ЕВХ, EDX, ЕСХ формируется следующая информация:
Если ЕАХ = 1, то в регистрах процессора сформируется следующая информация:
Если ЕАХ = 2, то в регистрах ЕАХ, ЕВХ, ЕСХ и EDX формируется информация о кэшпамяти первого уровня и TLB-буферах. Первый байт регистра ЕАХ содержит число, означающее, сколько раз необходимо последовательно выполнить команду CPUID для получения полной информации о кэш-памяти первого уровня и TLB-буферах. Другие байты регистра ЕАХ и все байты регистров ЕВХ, ЕСХ и EDX содержат однобайтовые дескрипторы, характеризующие кэш-память и TLB-буферы (см. табл. 8.4). Старший бит каждого регистра характеризует достоверность информации в регистре. Если он равен нулю, то информация достоверна, иначе — регистр не используется.
Таблица 8.1. Поля регистра ЕАХ после выполнения команды CPUID (при ЕАХ = 1)
Биты ЕАХ |
Назначение |
|
0...3 |
Версия изменений модели |
|
4...7 |
Модель в семействе (см. табл. 8.2) |
|
8...11 |
Семейство микропроцессоров (см. табл. 8.2) |
|
12...13 |
Тип процессора (00 — обычный процессор; 01 — Overdrive-процессор; |
|
10 — процессор для использования в двухпроцессорных системах) |
Таблица 8.2., Значения бит 4...7 и 8...11 регистра ЕАХ
Биты ЕАХ (8...11) |
Биты ЕАХ (4...7) |
Тип процессора |
0100 |
0000 или 0001 |
I486DX |
0100 |
0010 |
I486SX |
0101 |
0010 |
Pentium 75-200 |
0101 |
0100 |
Pentium MMX 166-200 |
0110 |
0001 |
Pentium Pro |
0110 |
0011 |
Pentium II, модель 3 |
0110 |
0101 |
Pentium II, модель 5, |
Pentium II Xeon |
||
0110 |
0110 |
Celeron, модель 6 |
0110 |
0111 |
Pentium III и Pentium HI |
Xeon |
||
0110 |
0011 |
Pentium II OverDrive |