Что такое cpuid в компьютере

Cpuid

cpuid

CPUID (CPU Identification) — ассемблерная мнемоника инструкции процессоров x86, используется для получения информации о процессоре. Используя её, программа может определить тип ЦП и его возможности (например, можно определить, какие расширения поддерживаются процессором).

Инструкция CPUID впервые появилась в процессорах i486. Потом она начала поддерживаться всеми процессорами начиная с Intel 486DX/SX/DX2 SL, AMD 486DX4, Cyrix 6×86 (M1), UMC U5S.

Содержание

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

Так как инструкция CPUID отсутствовала в первых процессорах архитектуры x86, перед её использованием следует удостоверится что ЦП её поддерживает. Для этого производится попытка изменить бит 21 (ID) регистра EFLAGS. Если бит успешно поменяется, то инструкция CPUID процессором поддерживается.

Приведённый ниже исходный код проверяет поддержку инструкции CPUID:

В данном примере используется инструкция XOR, так как она непременно поменяет только 21-й флаг ID не затронув другие. Обратите внимание: здесь используются 32-битные инструкции, поэтому рекомендуем сначала проверить поддерживает ли процессор 32-битные директивы.

Использование CPUID

Инструкция CPUID по содержимому регистра EAX определяет какого рода информацию о процессоре необходимо вернуть. Первый раз её следует вызывать со значением EAX = 0. При этом будет возвращено максимально допустимое значение параметра инструкции, поддерживаемое данным процессором.

Для того, чтобы получить информацию о дополнительных функциях, имеющихся в процессорах, в регистре EAX перед вызовом CPUID должен быть установлен бит 31. Например, чтобы определить максимально допустимое значение параметра для дополнительных функций, необходимо выполнить CPUID со значением EAX = 80000000h.

EAX = 0: Получить идентификатор производителя процессора

При EAX = 0 ЦП возвращает идентификатор производителя процессора (англ. Vendor ID ) в виде 12 символов ASCII, содержащихся в регистрах EBX, EDX, ECX (именно в таком порядке). В регистре EAX же возвращается максимально допустимое значение EAX при вызове CPUID.

Вот некоторые идентификаторы производителей процессоров:

ASCii-строкаHEX-значения EBX:EDX:ECXНазвание
производителя
"GenuineIntel"756E6547:49656E69:6C65746EIntel
"AuthenticAMD"68747541:69746E65:444D4163AMD
"CyrixInstead"69727943:736E4978:64616574Cyrix
"CentaurHauls"746E6543:48727561:736C7561Centaur
"SiS SiS SiS "20536953:20536953:20536953SiS
"NexGenDriven"4778654E:72446E65:6E657669NexGen
"GenuineTMx86"756E6547:54656E69:3638784DTransmeta
"RiseRiseRise"65736952:65736952:65736952Rise
"UMC UMC UMC "20434D55:20434D55:20434D55UMC
"Geode by NSC"646F6547:79622065:43534E20National Semiconductor

Ссылки

Полезное

Смотреть что такое «Cpuid» в других словарях:

cpuid — (CPU Identification) ассемблерная мнемоника инструкции процессоров x86, используется для получения информации о процессоре. Используя её, программа может определить тип ЦП и его возможности (например, можно определить, какие расширения… … Википедия

cPUID — (CPU Identification) ассемблерная мнемоника инструкции процессоров x86, используется для получения информации о процессоре. Используя её, программа может определить тип ЦП и его возможности (например, можно определить, какие расширения… … Википедия

CPUID — (CPU Identification) ассемблерная мнемоника инструкции процессоров x86, используется для получения информации о процессоре. Используя её, программа может определить тип процессора и его возможности (например, можно определить, какие… … Википедия

CPUID — The CPUID opcode is a processor supplementary instruction (its name derived from CPU IDentification) for the x86 architecture. It was introduced by Intel in 1993 when it introduced the Pentium and SL Enhanced 486 processors.[1] By using the CPUID … Wikipedia

CPUID — Die CPUID Kennung ist seit den späteren 486ern Teil der x86 Prozessorarchitektur, ab dem Pentium war sie dann vollständig verfügbar. Die Kennung erlaubt der Software im laufenden Betrieb den Prozessor zu identifizieren, einschließlich des… … Deutsch Wikipedia

CPUID — abbr. Central Processing Unit IDentifier (CPU) … United dictionary of abbreviations and acronyms

CPUID String — Четырехзначная строка символов, по которой производится идентификация процессора. Первым символом обычно идет ноль, второй и третий означают семейство и номер модели, четвертый символ означает степпинг. Например, сравнивая два процессора с CPUID… … Глоссарий терминов бытовой и компьютерной техники Samsung

CPU-Z — CPUID Développeur Franck Delattre … Wikipédia en Français

Xeon — New Intel Xeon Logo used in 2011 Produced From 1998 to present Common manufacturer(s) … Wikipedia

Intel Core (microarchitecture) — This article is about the Intel microarchitecture. For Intel processors branded as Intel Core, including the Core microarchitecture based Core 2 and others not based on the Core microarchitecture, see Intel Core. The Intel Core microarchitecture… … Wikipedia

Источник

CPU-Z CPUID – Если нужно узнать характеристики процессора и не только

Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

З нать какие точные характеристики скрывает ваш центральный процессор, его частоту, количество ядер, маркировку, да и просто банально название, крайне полезно для общего развития и демонстрации знаний при выборе или замене этого устройства. В этом деле нам то и поможет маленькая программка под названием CPU-Z. Помимо определения типа процессора и его маркировки, она отображает различное множество других не менее важных характеристик процессора.

Итак, при запуске программы после непродолжительного сбора данных об установленных на компьютер вычислительных компонентах вы попадаете сразу на вкладку CPU, где отображаются все сведения о вашем процессоре. Пойдем по порядку.

CPU Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Далее идут отображения данных тактовых частот процессора, шины:

Тут же радом отображается информация о кэш-памяти процессора:

Нижняя строчка, где находится меню Selection – позволяет выбрать процессор, для отображения его характеристик. Так же здесь показано количество ядер(Cores) процессора и количество потоков(Threads).

В этой программе помимо основных характеристик процессора можно более подробно посмотреть данные кэш-памяти процессора во вкладке Caches.

CACHES Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Обычно тут отображается полный размер кэш-памяти Size – в Кб или Мб, а также строка Descriptor – которая отображает характеристики кэш-памяти, ассоциативность и объем линии кэша.

Помимо сведений о процессоре можно посмотреть информацию о вашей системной плате во вкладке Mainboard.

MAINBOARD Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Далее идет техническая информация о компоненте BIOS:

В группе Graphic Interface представлена информация о типе графической шины:

Еще одна не менее интересная вкладка это Memory – сведения об установленной на ваш компьютер оперативной памяти.

MEMORY Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Далее идут параметры тайминга оперативной памяти, которые показывают время выполнения определенного действия:

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

SPD Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

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

GRAPHICS Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

И последняя вкладка, отображающая сведения об авторе программы и ее версии About. В ней помимо этого можно сохранить ваши технические характеристики в виде отчета в формате TXT или HTML.

ABOUT Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютереКак видите, эта программа показывает достаточно большое и полное количество технических характеристик вашего персонального компьютера. И хоть она и призвана отображать данные только о вашем центральном процессоре, но также ей можно воспользоваться для просмотра таких характеристик как оперативная память, материнская плата, графический адаптер. И как говорится эта программа, которая Must have – что значит должна быть.

Источник

Что скрывается за аббревиатурой CPUID?

CPU-Z идентифицирует не каждый процессор. Устройства без поддержки инструкции CPUID не определяются. Вы вряд ли встретите несовместимый с командой кристалл. Разберёмся, чем примечательна аббревиатура, что собой представляет. Покажем, как узнать, реализована ли CPUID в процессоре компьютера или ноутбука.

Что такое CPUID

CPU ID – процессорная инструкция, созданная для сбора и выдачи технической информации о ЦП. Она помогает BIOS, операционной системе и приложениям идентифицировать процессор. Внедряться начала с 1993 года параллельно с выходом на рынок кристаллов Intel 80486 вместе с ещё 75 командами.

Многие из вас думали, что CPUID – это название компании-разработчика?

Перед обращением к процессору в регистр EAX (изредка ECX) помещается значение, указывающее, какие сведения необходимо выдать. В зависимости от входного значения, которое отличается у разных разработчиков и моделей ЦП, получателю отправляются разные данные.

В инструкции два набора команд. Один возвращает основную сводку о CPU, второй – дополнительные сведения.

Как проверить, поддерживает ли процессор CPUID

Если вашему процессору менее 20 лет, значит он совместим с инструкцией. Не все древние модели, выпущенные в середине 1990-х годов, поддерживают инструкцию. Начиная с линейки Intel486 (80486), кристаллы предоставляют возможность проверить, реализована ли в них команда CPUID. За это отвечает особый флаг (последовательность битов) в регистре EFLAGS. Если значение флага изменяется, команда поддерживается, если недоступно для редактирования – нет.

Для проверки применяется следующий алгоритм (на Ассемблере):

Этот код уже внедрён и в CPU-Z.

Последовательность идентификации процессора с помощью CPUID

Исходя из содержимого EAX-регистра, CPUID знает, какие свойства или характеристики нужно выдать.

Какие данные можно получить при помощи CPUID-инструкции

Благодаря команде утилиты вроде CPU-Z и сама операционная система получают массу подробностей о ЦП. Windows, например, они нужны для идентификации аппаратуры при написании приложений на низкоуровневых языках программирования – операционные системы, компиляторы, драйверы. К получаемым характеристикам относятся:

Какие программы используют инструкцию CPUID

Инструкция CPUID может выполняться не только ядром операционной системы, но и пользовательским программным обеспечение. Это даёт возможность программистам писать приложения для исследования центральных процессоров. Создано много такого софта, предоставляющего сведения о CPU посредством инструкции CPUID.

Из переводящих полученные биты в человеко-понимаемую форму отметим:

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

CPUID (CPU Identification)

Содержание

История

Эволюция процедуры идентификации процессора была необходима, потому что, поскольку архитектура Intel распространяется, рынок IT-технологий должен был быть готов к настройке функциональности процессора на фоне множества поколений и моделей, имеющих разный набор характеристик. Ожидая, что такая тенденция распространиться и на будущие поколения процессоров, нововведение в архитектуру Intel CPUID инструкция расширяема. Учитывая сильные стороны инструкции CPUID, разработчики могут создавать приложения и инструменты, которые могут использоваться совместно несмотря на богатое разнообразие поколений процессоров Intel в прошлом, настоящем и будущем. [1]

Проверка возможности исполнения CPUID инструкции

Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Результат работы CPUID инструкции

Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Инструкция CPUID поддерживает два набора функций. Первый набор функций возвращает базовую информацию о процессоре. С помощью второго набора можно получить дополнительную информацию о процессоре. На рисунке 2 проиллюстрировано то, какая базовая информация о процессоре может быть получена и где она хранится. Выходные данные инструкции CPUID полностью зависимы от содержания регистра EAX. Это означает, что, помещая различные значения в регистр EAX, а затем выполняя инструкцию CPUID, инструкция CPUID выполняет определенную функцию в зависимости от того, какое значение было помещено в регистр EAX (см. таблицу 1). Чтобы определить максимально допустимое входное значение регистра EAX и функций CPUID, которые возвращают базовую информацию о процессоре, программе следует установить значение параметра регистра EAX в нулевое, а затем выполнить инструкцию CPUID следующим образом:

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

Чтобы определить максимально допустимое входное значение регистра EAX и функций CPUID, которые возвращают дополнительную информацию, программе следует установить значение параметра регистра EAX, равное 80000000h а затем исполнить инструкцию CPUID следующим образом:

После выполнения инструкции CPUID возвращаемое значение будет в регистре EAX. Всегда используйте значение параметра регистра EAX, которое больше либо равно 80000000h и меньше либо равно максимальному допустимому значению EAX. На сегодняшних и будущих IA-32 процессорах 31 бит в регистре EAX будет очищен, когда выполнится CPUID с входным параметром, большим, чем максимальное значение для любого набора функций, и когда расширенные функции не поддерживаются. Все остальные значения битов, возвращаемые процессором в ответ на инструкцию CPUID со значением в EAX больше подходящего для этого процессора, являются уникальными для данной модели и не рекомендуется их изменять.

Идентификатор производителя

В дополнение к возврату максимально допустимого значения в регистре EAX одновременно может быть также проверен идентификатор производителя Intel. Если регистр EAX содержит на входе ноль, то инструкция CPUID также возвращает идентификатор производителя в EBX, EDX и ECX регистрах (см. рисунок 2). Эти регистры содержат строку ASCII: GenuineIntel.

В то время как любой имитатор архитектуры Intel может поддержать инструкцию CPUID, ни одни из них не может претендовать на то, что он является подлинной частью Intel. Таким образом, присутствие строки GenuineIntel является гарантией того, что инструкция CPUID и идентификатор реализованы в соответствии с документом, содержащим описание процессоров Intel и инструкции CPUID. Если такая строка не появилась после исполнения инструкции, не полагайтесь на информацию в этом документе для интерпретации информации, возвращенной инструкцией CPUID.

Таблица 1. Информация, возвращаемая инструкцией CPUID

Начальное значение EAXПредоставляемая информация о процессоре
Базовая информация
0HEAX Максимальное входное значение
EBX «Genu»
ECX «ntel»
EDX «ineI»
1HEAX 32-битный идентификатор производителя (Расширенные семейство и модель, тип, семейство, модель, версия также 95-64 биты из 96-битного серийного номера, когда установлен флаг PSN)
EBX Биты 7-0: Индекс
Биты 15-8: Размер строки CLFLUSH (размер строки кэша = возвращаемое значение * 8). Допустимо только при установке флага CLFSH
Биты 23-16: Граф логических процессоров. Допустимо только при установке флага HTT
Биты 31-24: Уникальное значение контроллера APIC (работает с прерываниями). Только для Pentium 4 и последующих.
ECX Зарезервирован под дополнительные флаги
EDX Флаги характеристик
2HEAX. EBX, ECX, EDX Кэш и TLB дескрипторы
3HEAX Зарезервировано
EBX Зарезервировано
ECX Биты 31-0 96-битного серийного номера
EDX Биты 31-0 96-битного серийного номера
Расширенная информация
80000000hEAX максимальное входное значение
EBX, ECX, EDX Зарезервированы
80000001hEAX Расширенный идентификатор производителя, а также характеристики
EBX, ECX, EDX Зарезервированы
80000002hEAX Строка бренда
EBX, ECX, EDX Продолжение строки бренда
80000003hEAX, EBX, ECX, EDX Продолжение строки бренда
80000004hEAX, EBX, ECX, EDX Продолжение строки бренда

Процессорная идентификационная подпись

Что такое cpuid в компьютере. Смотреть фото Что такое cpuid в компьютере. Смотреть картинку Что такое cpuid в компьютере. Картинка про Что такое cpuid в компьютере. Фото Что такое cpuid в компьютере

Процессоры, которые поддерживают инструкцию CPUID, также возвращают 32-разрядную идентификационную подпись процессора, после сброса. Однако, инструкция CPUID дает возможность проверки подписи процессора в любое время. Рисунок 3 показывает формат 32-разрядной подписи процессора для Intel486 и последующих процессоров. Обратите внимание на то, что значение подписи процессора EDX после сброса эквивалентно выходному значению подписи процессора в регистре EAX на рисунке 2. Рассмотрим содержание EDX регистра подробнее: (здесь можно сделать таблицу)

Флаги и характеристики

Когда регистр EAX содержит значение 1, инструкция CPUID (в дополнение к загрузке подписи процессора в регистре EAX), загружает EDX и регистр ECX со значениями флагов. Значения флагов (когда Флаг = 1) показывают, какие функции поддерживает процессор. Чтобы узнать, какие функции поддерживает процессор, следует обратиться к руководству для разработчиков, пользователей или другой подходящей документации процессора.

Размер кэша, формат и информация TLB

Когда регистр EAX содержит значение 2, инструкция CPUID загружает EAX, EBX, ECX и регистры EDX с дескрипторами, которые указывают кэш процессоров и характеристики TLB. Последние 8 бит регистра EAX (AL) содержат значение, которое показывает, сколько раз должна выполниться инструкция CPUID, чтобы получить полную картину системы кэширования процессора. Например, процессор Pentium 4 возвращает значение 1 в последних 8 битах регистра EAX, чтобы указать, что инструкция CPUID должна быть выполнена один раз (при EAX = 2) для получения полной картины конфигурации процессора.

Остальной EAX регистр, EBX, ECX и EDX регистры содержат кэш и дескрипторы TLB. Таблица 3 показывает, что когда бит 31 в данном регистре равен нулю, этот регистр содержит допустимые 8-разрядные дескрипторы. Чтобы декодировать дескрипторы, переместитесь последовательно от старшего значащего байта регистра вниз до младшего значащего байта регистра. Предполагая, что 31 бит равен 0, то в этом случае регистр содержит допустимый кэш или дескрипторы TLB в битах с 24 по 31, с 16 по 23, с 8 по 15 и с 0 по 7. Программа должна сравнить значение, находящееся в конце битовых полей дескриптора со значениями, декодирующими дескриптор, и таким образом определить кэш и TLB характеристики процессора.

Таблица 3. Форматы дескриптора

Бит 31Тип дескриптораОписание
1ЗарезервированЗарезервирован для будущего использования
08-битные дескрипторыДескрипторы, указывающие на параметр таблицы для определения характеристик кэша. Указывает на NULL, если содержит 0

Серийный номер процессора

Серийный номер процессора создает уникальное программное решение для конкретного процессора. Серийный номер в комбинации с другими классификаторами может быть применен к идентификации пользователя. Приложения включают проверку подлинности членства, резервное копирование данных / восстановление, съемная защита данных хранения, управление доступом к файлам, или подтвержденный обмен документом между надлежащими пользователями. Также серийный номер может использоваться для включения доверенного PC.

Наличие серийного номера процессора

Чтобы определить, поддерживается ли функция определения серийного номера процессора, программе следует установить значение параметра регистра EAX равным 1, а затем выполнить инструкцию CPUID следующим образом:

После выполнения инструкции CPUID регистры ECX и EDX содержат характеристики и флаги. Если флаг PSN (бит 18 регистра EDX) равен 1, то серийный номер процессора поддерживается и включен. При 0 он либо выключен, либо не поддерживается.

Формирование 96-битного серийного номера

После ее выполнения регистр EAX содержит идентификационную подпись процессора. Она включает старшие 32-разрядные бита серийного номера процессора. Значение в EAX должно быть сохранено до сбора оставшихся 64 битов серийного номера.

Чтобы получить к ним доступ, программе следует установить параметр регистра EAX в 3, а затем выполнить инструкцию CPUID:

После выполнения инструкции CPUID регистр EDX содержит средние 32 бита, а регистр ECX содержит младшие значащие 32 бита серийного номера. После этого программа может соединить сохраненную идентификационную подпись, EDX и ECX, а затем возвратить полный 96-битный серийный номер процессора. [2]

Номер, помогающий идентифицировать процессор

Начиная с процессоров Pentium 3, концепция идентификации процессора была расширена добавлением специального идентификационного номера. Он представляет собой 8-битный номер, доступный через инструкцию CPUID. Может быть использован приложениями для облегчения идентификации процессора.

Процессоры, которые имеют такой номер, возвращают его в битах с 0 по 7 в регистре EBX, когда CPUID выполняется со стартовым значением 1 регистра EAX. Процессоры, которые не поддерживают такой номер, возвращают нулевое значение в этих же битах регистра EBX.

Строка идентификации

Таблица 4. Характеристики идентификационной строки процессора

Входное значение EAXФункцииВозвращаемое значение
80000000hНаибольшая поддерживаемая функцияEAX=80000004, EBX, ECX, EDX зарезервированы
80000001hРасширенная идентификационная подпись и битыEAX, EBX, ECX, EDX зарезервированы
80000002hИдентификационная строкаEAX, EBX, ECX, EDX содержат ASCII строку
80000003hИдентификационная строкаEAX, EBX, ECX, EDX содержат ASCII строку
80000004hИдентификационная строкаEAX, EBX, ECX, EDX содержат ASCII строку

Последовательность идентификации процессора

Для идентификации процессора с помощью CPUID инструкции, программе следует придерживаться следующей последовательности:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *