Сборник по задачам и примерам Assembler

             

Команда CPUID — получение информации о текущем процессоре



Команда CPUID — получение информации о текущем процессоре

Для получения информации о процессоре необходимо в регистр ЕАХ поместить параметр — одно из значений 0, 1 или 2.

Если ЕАХ = 0, то в регистрах ЕАХ, ЕВХ, EDX, ЕСХ формируется следующая информация:

  • ЕАХ = n, где n — максимально допустимое значение параметра, которое может быть помещено в регистр ЕАХ для задания режима сбора информации;
  • (EBX)+(EDX)+(ECX) — в этих регистрах содержится строка-идентификатор процессора Geninnelntel .
  • Если ЕАХ = 1, то в регистрах процессора сформируется следующая информация:

  • ЕАХ = n — информация о микропроцессоре (см. табл. 8.1 и 8.2);
  • EDX = n — информация о возможностях процессора (см. табл. 8.3).
  • Если ЕАХ = 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

    Таблица 8.3. Поля регистра EDX после выполнения команды CPUID (при ЕАХ=n)













































































































































































































    Биты EDX


    Назначение (если биты установлены)


    0


    Присутствует сопроцессор с набором команд i387


    1


    Поддержка расширенных возможностей обработки прерываний в режиме

    виртуального процессора i8086


    2


    Процессор поддерживает точки прерывания ввода-вывода (точки останова

    по обращению к портам) для предоставления расширенных возможностей

    отладки и доступ к регистрам DR4 и DR5. Флаг CR4.DE=1


    3


    Процессор поддерживает 4-мегабайтные страницы


    4


    Поддержка счетчика меток реального времени TSC


    5


    Поддержка команд RDMSR и WRMSR для работы с модельно-зависимыми

    регистрами


    6


    Процессор поддерживает физические адреса, большие, чем 32 бита,

    расширенный формат элемента таблицы страниц, дополнительный

    уровень трансляции страничного адреса и 2-мегабайтные страницы


    7


    Поддержка исключения 18 — машинного контроля


    8


    Поддержка инструкции CMPXCHG8B


    9


    Микропроцессор содержит программно-доступный контроллер

    прерываний APIC


    10


    Резерв


    11


    Поддержка инструкций SYSENTER и SYSEXIT быстрых системных вызовов


    12


    Поддержка регистра управления кэшированием MTRR_CAP

    (относится к MSR-регистрам)


    13


    Поддержка работы с битом G, определяющим глобальность страницы

    в PTDE и РТЕ. Бит CR4.PGE = 1


    14


    Поддержка архитектуры машинного контроля (MSR-регистр MCG_CAP)


    15


    Поддержка инструкций CMOV, FCMOVCC, FCOMI условной пересылки


    16


    Поддержка инструкций CMOVCC, FMOVCC и FCOMI (если установлен бит 0)


    17


    Процессор поддерживает 36-разрядную физическую адресацию

    с 4-мегабайтными страницами


    18


    Процессор поддерживает собственную идентификацию по уникальному

    96-битному номеру и эта поддержка активна


    19-22


    Резерв


    23


    Поддержка целочисленного MMX-расширения


    24


    Процессор поддерживает команды FXSAVE и FXRSTOR


    25


    Поддержка MMX-расширения с плавающей точкой


    24-31


    Резерв


    Таблица 8.4. Значения дескрипторов, описывающих кэш-память, и дескрипторов TLB



















    дескриптора

    Значение

    00h

    Olh

    Нулевой дескриптор

    Буфер TLB-команд: размер страницы — 4 Кбайт,

    ассоциативный 4-канальный, 32 входа

    02h

    Буфер TLB-команд: размер страницы — 4 Кбайт, ассоциативный,

    2 входа

    03h

    Буфер TLB-данных: размер страницы — 4 Кбайт,

    ассоциативный 4-канальный, 64 входа

    04h

    Буфер TLB-данных: размер страницы — 4 Кбайт,

    ассоциативный 4-направленный, 8 входов

    06h

    Кэш команд: размер 8 Кбайт, наборно-ассоциативный 4-канальный,

    длина строки 32 байта

    08h

    Кэш команд: размер 16 Кбайт, наборно-ассоциативный 2-канальный,

    длина строки 32 байта

    Oah

    Кэш данных: размер 8 Кбайт, ассоциативный 2-направленный,

    длина строки 32 байта

    Och

    Кэш данных: размер 16 Кбайт,

    ассоциативный 2-или 4-направленный, длина строки 32 байта

    40h

    Кэш-память второго уровня (L2) отсутствует

    41h

    Объединенный кэш: размер 128 Кбайт,

    наборно-ассоциативный 4-канальный, длина строки 32 байта

    42h

    Объединенный кэш: размер 256 Кбайт,

    наборно-ассоциативный 4-направленный, длина строки 32 байта

    43h

    Объединенный кэш: размер 512 Кбайт,

    наборно-ассоциативный 4-направленный, длина строки 32 байта

    44h

    Объединенный кэш: размер 1 Мбайт,

    наборно-ассоциативный 4-направленный, длина строки 32 байта

    45h

    Объединенный кэш: размер 2 Мбайт,

    наборно-ассоциативный 4-нанравлеиный, длина строки 32 байта
    Рассмотрим подробнее средства для мониторинга производительности, которые включают счетчик меток реального времени TSC (Time Stamp Counter) и счетчики событий CTRO, CTRL

     

    Содержание  Назад  Вперед







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий