Как узнать идентификатор процессора

Как получить уникальный идентификатор процессора (CPU) средствами C++?

Интересуют методы через которые можно получить id процессора средствами c++.

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

2 ответа 2

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

Пример для Windows (код для чтения таблицы SMBIOS взят из проекта sysinv):

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Попробуйте через команду cpuid. Полная инструкция :

Может быть там есть, что вы ищете. Пример :

4.2. Forming the 96-bit Processor Serial Number The 96-bit processor serial number is the concatenation of three 32-bit entities. To access the most significant 32-bits of the processor serial number the program should set the EAX register parameter value to “1” and then execute the CPUID instruction as follows: MOV EAX, 01H CPUID After execution of the CPUID instruction, the EAX register contains the Processor Signature. The Processor Signature comprises the most significant 32-bits of the processor serial number. The value in EAX should be saved prior to gathering the remaining 64-bits of the processor serial number. To access the remaining 64-bits of the processor serial number the program should set the EAX register parameter value to “3” and then execute the CPUID instruction as follows: MOV EAX, 03H CPUID After execution of the CPUID instruction, the EDX register contains the middle 32-bits, and the ECX register contains the least significant 32-bits of the processor serial number. Software may then concatenate the saved Processor Signature, EDX, and ECX before returning the complete 96-bit processor serial number. Processor serial number should be displayed as 6 groups of 4 hex nibbles (Ex. XXXX-XXXX-XXXX-XXXXXXXX-XXXX where X represents a hex digit). Alpha hex characters should be displayed as capital letters.

Судя по приватности запрос с EAX=0x03 всегда возвращает ноль. Пользуйтесь всей другой доступной информацией. Иногда люди пользуются виртуальными компьютерами. Так-что запрос идентичности не очень получиться у вас.

Источник

ПО для идентификации процессоров Intel® — версия для Windows*

Введение

Эта загрузка устанавливается в версию 6.7.21.1028 ПО для идентификации процессоров Intel® для Windows*.

Лицензия на использование программного обеспечения Intel

Файлы, доступные для скачивания

Подробное описание

Обзор

Программное ПО для идентификации процессоров Intel® является свободным программным обеспечением, которое может определять спецификации вашего процессора. Она отображает информацию о графике, информацию о наборе микросхем, поддерживаемые процессором технологии и многое другое.

Эта версия приложения поддерживает автоматические обновления программного обеспечения. Вы будете уведомлены о появлении нового обновления. Список поддерживаемых процессоров можно найти ниже.

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

Этот скачиваемый файл подходит для нижеуказанных видов продукции.

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

Для работы технологий Intel может потребоваться специальное оборудование, ПО или активация услуг. // Ни один продукт или компонент не может обеспечить абсолютную защиту. // Ваши расходы и результаты могут отличаться. // Производительность зависит от вида использования, конфигурации и других факторов. // См. наши юридические уведомления и отказ от ответственности. // Корпорация Intel выступает за соблюдение прав человека и избегает причастности к их нарушению. См. Глобальные принципы защиты прав человека в корпорации Intel. Продукция и программное обеспечение Intel предназначены только для использования в приложениях, которые не приводят или не способствуют нарушению всемирно признанных прав человека.

Источник

(Само)идентификация процессоров. Часть вторая. Волосатый CPUID

В первой части я рассказал о необходимости идентификации расширений, присутствующих на конкретном процессоре. Это нужно для того, чтобы исполняющийся код (операционная система, компилятор или пользовательское приложение) смог надёжно определить, какие возможности аппаратуры он может задействовать. Также в предыдущей статье я сравнил несколько популярных архитектур центральных процессоров общего назначения. Возможности по идентификации между ними сильно разнятся: некоторые предоставляют полную информацию о расширениях ISA, тогда как другие ограничиваются парой чисел для различения вендора и ревизии.
В этой части я расскажу об одной инструкции архитектуры Intel IA-32 — CPUID, введённой специально для перечисления декларируемых процессором расширений. Немного о том, что было до её появления, что она умеет сообщать, какие неожиданности могут поджидать и какой софт позволяет интерпретировать её вывод.

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора
Источник изображения: [1]

История

Как я уже утверждал в первой части, присутствует следующая тенденция: чем более «встраиваемая» природа у процессора, тем меньше возможностей для идентификации заложено в его архитектуру. Создатели встраиваемых систем почему-то не волнуются о переносимости двоичного кода.

Не являлся исключением и Intel 8086 — микропроцессор 1970-х годов, выросший из «калькуляторной» серии 8008, 8080, 8085. Изначально в него не было заложено никаких средств идентификации.
Начиная с 808386 сведения о модели, степпинге и семействе стали сообщаться в регистре EDX сразу после перезагрузки (получения сигнала RESET). Инструкция CPUID, кодируемая байтами 0x0f 0xa2, была введена в процессорах 80486. Наличие CPUID можно было распознать по возможности записи в бит 21 регистра флагов. Для поддержки работы на более старых ЦПУ приходилось идти на очень изощрённые методы для того, чтобы различать процессоры серий от 8086 до 80386.

Перечисленные в оригинальной статье техники были опробованы преимущественно на ЦПУ от Intel. В статье автор признаёт, что они не позволяют надёжно классифицировать клоны x86 других производителей.

Интерфейс

Для системного программиста работа по идентификации некоторого расширения обычно заключается в установке входных значений в регистрах EAX (лист, англ. leaf) и ECX (подлист, англ. subleaf), исполнению CPUID и прочтению результата в четырёх регистрах: EAX, EBX, ECX, EDX. Отдельные битовые поля выходных регистров будут содержать информацию о значениях связанных с ними архитектурных параметров конкретного ядра процессора.

Все валидные сочетания входных листов-подлистов и четвёрок регистров на выходе формируют таблицу CPUID. Для современных процессоров она содержит около двух десятков строк по четыре 32-битных столбца.
Я не буду расписывать детально все официально описанные поля этой таблицы. Интересующиеся всегда могут найти их в Intel SDM [1] (рекомендую запастись терпением — около 40 страниц текста только про CPUID). Болеее того, для уже заявленных, но ещё не выпущенных в физических продуктах расширений ISA соответствующие им новые поля CPUID могут быть найдены в [3]. Вместо этого я классифицирую информацию, которую можно извлечь из вывода этой инструкции. Для обозначения битовых полей таблицы я буду использовать принятую для этого нотацию: CPUID.leaf.subleaf.reg[bitstart:bitend]. Например, CPUID.0.EBX[31:0] — это биты с 0 по 31 выходного регистра EBX после исполнения CPUID, которая на вход получила лист 0 (EAX = 0); подлист (входное значение ECX) игнорируется, поэтому он не указан.

Регионы листов

Неподдерживаемые значения входных EAX и ECX не приводят к возникновению исключений, а вместо этого возвращают нули во всех четырёх регистрах, либо «мусор» (значения другого листа согласно спецификации). Допустимые же сочетания листов и подлистов образуют три непрерывных региона.

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Brand String

Конечно же, ни один вендор не упустит возможности увековечить своё имя в идентификационных данных своего продукта. Причём желательно сделать это не просто в виде числа, а впечатать ASCII-строку (хорошо хоть, что не Unicode).
В IA-32 CPUID текст можно найти минимум в двух группах листов. CPUID.0.EBX, ECX, EDX содержат 12 байт ASCII-строки, специфичной для каждого вендора. Для Intel это, конечно же, «GenuineIntel». А три листа CPUID.0x80000002–0x80000004 предоставляют аж 48 байт для кодирования в ASCII так называемой Brand String. Именно её видно при распечатке cat /proc/cpuinfo в Linux. И, хотя формат её более-менее стандартизован: «вендор марка серия CPU @ частота», я настоятельно не рекомендую по её содержимому принимать решения в программном коде. Слишком значительно её содержимое может варьироваться: частота может быть указана в МГц или в ГГц (а в реальности быть совсем иной из-за динамической подстройки), пробелы могут менять положение, а симулятор или виртуальная машина могут подставить туда вообще что угодно. Вся информация из brand string может быть найдена программно более надёжными способами.

Информация о кэшах, такая как их тип, количество, ёмкость, геометрия, разделяемость между ядрами полезна для тюнинга высокопроизводительного математического софта, например, библиотек BLAS (basic linear algebra system).
Изначально конфигурацию кэшей описывал лист 2. Спроектировали его не очень дальновидно. Формат кодирования информации в нём был выбран не самый гибкий, он не смог в будущем поддержать постоянные изменения в объёме и конфигурации нескольких уровней кэшей. В настоящее время использование информации из листа 2 не рекомендуется, там могут стоять 0xFF-ки.
Судя по тому, что лист 0x80000006 входит в расширенный диапазон (хотя я не уверен, документальных доказательств пока что не нашёл), он был добавлен не Intel. С помощью него была сделана попытка информацию листа 2 дополнить данными о строении кэшей, которые потребовались разработчикам софта. При этом опять же не было намерения предоставить пространство для роста.
Лист 4 — последнее и пока что наиболее гибкое представление данных о кэшах. Цена этому — добавление концепции подлистов, кодируемых в ECX. Каждый подлист описывает один кэш: данных, кода или совмещённый, определяет его уровень, ёмкость и т.д. Хватит ли четвёртого листа надолго — поживём, увидим.

Топология
Изменяемые поля
Разное

В этой секции я собрал прочие интересные моменты, связанные с историей и работой команды CPUID.

Processor Serial Number

Во времена Pentium III каждый процессор получил уникальный серийный номер, содержавшийся в CPUID.3.ECX и CPUID.3.EDX [7]. Легко представить, насколько такая фича была бы удобна для нужд защиты ПО от копирования. Однако в 1999 году Европейское сообщество запротестовало, разумно опасаясь, что подобная функциональность повредит приватности пользователей таких систем. Уже в Intel Pentium IV серийный номер был убран, сейчас лист 3 возвращает нули.

Вендоры и CPUID

Очень интересная таблица [5] повествует о том, что хранят (или в прошлом хранили) в разных листах CPUID разные вендоры. Например, описывается некий mystery level 0x8fffffff, в котором процессоры AMD K8 возвращали строку IT’S HAMMER TIME.

Agner Fog о войнах ISA

История появления расширений набора инструкций IA-32 в условиях конкурентной борьбы нескольких компаний [4]. Добавление новых инструкций всегда влияло на CPUID, и не всегда все могли договориться о том, как это сделать правильно.

Они испортили CPUID! IA32_BIOS_SIGN_ID

Инструкция CPUID всегда нравилась мне лаконичностью своего интерфейса и отсутствием неожиданностей в работе: один регистр на входе и четыре на выходе. В её работе нет генерации исключений, нет обращений к памяти, нет чтения/модификации регистра флагов, на неё не влияют префиксы, она работает во всех режимах процессора. По сравнению с зоопарком CISC-команд IA-32 это был почти идеал.
… пока не оказалось, что иногда на вход необходимо подать два регистра для кодирования листа и подлиста. Окей, не так всё хорошо. Ну хотя бы выходные регистры заранее известны и всегда изменяются…
И тут оказалось, что иногда CPUID изменяет ещё один регистр — а именно IA32_BIOS_SIGN_ID, — и сохраняет в нём сигнатуру текущей программы микрокода процессора. Происходит это, если до этого было произведено обновление прошивки процессора. По каким-то причинам информация об этой процедуре была раскидана по мануалу [1] на тысячу страниц, и потому она ускользала от меня очень долго.

Источник

Как идентифицировать мой процессор Intel®

Тип материала Определить мой продукт

Идентификатор статьи 000006059

Последняя редакция 04.09.2020

Существуют различные методы определения названий и номеров процессоров Intel®.

Приведенные ниже методы относятся ко всем процессорам Intel®, а именно процессорам Intel® Core™, Intel® Xeon®, Intel® Pentium®, Intel® Celeron® и Intel Atom®.

Метод 1: Операционная система

Windows*

В следующих примерах представлен выбор системной информации, а затем – Система.

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Linux*

Введите следующую команду

lscpu | grep «Model name»

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

MAC OS

Введите следующую команду в приложении терминала

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Метод 2: Упаковка

Если вы приобрели процессор Intel® в штучной упаковке, его номер нанесен на упаковке вместе с другой информацией, такой как номер партии (FPO) и серийный номер (ATPO).

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Метод 3: Маркировка процессоров

Название и номер процессора Intel® нанесены сверху процессора. См. следующий пример.

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

См. следующий видеоролик, чтобы узнать, как идентифицировать название и номер процессора Intel®.

Идентификация поколения процессора Intel® Core™

Вы также можете идентифицировать поколение процессора, если ваш процессор – это процессор Intel® Core™. Поколение процессора определяется числом, стоящим после i9, i7, i5 или i3.

Источник

Где найти номера деталей процессоров Intel® в штучной упаковке для проверки состояния гарантии?

Тип материала Определить мой продукт

Идентификатор статьи 000005609

Последняя редакция 09.06.2021

Информация о номерах процессоров Intel® в штучной упаковке для гарантийного обслуживания

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Для обработки запроса на гарантийное обслуживание или проверки статуса вашего процессора вам потребуется два номера:

FPO расшифровывается как Finished Process Order (завершенный технологический заказ), а ATPO — как Assembly Test Process Order (технологический заказ на испытания в сборе).

Нажмите или название темы для получения информации:

Где найти номера для гарантийного обслуживания

На упаковке процессора Intel® в штучной упаковке указаны два номера.

Номер партии (FPO) указан как Batch#, а полный серийный номер (ATPO) — как S/N:

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

См. пример расположения номеров на маркировке ниже:

Как проверить статус гарантии моего процессора Intel®

Воспользуйтесь информацией Гарантийного центра. Для этого сделайте следующее:

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Как узнать идентификатор процессора. Смотреть фото Как узнать идентификатор процессора. Смотреть картинку Как узнать идентификатор процессора. Картинка про Как узнать идентификатор процессора. Фото Как узнать идентификатор процессора

Если результат поиска не дал ожидаемого результата, вы можете обратиться в службу поддержки Intel и выбрать процессоры Intel®.

Источник

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

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