Перейти к содержимому

Как узнать серийный номер процессора intel

  • автор:

Идентификация после аппаратного сброса

Возможность программного определения типа процессора заложена в архитектуру 32-разрядных процессоров «отродясь». В любом процессоре сразу после аппаратного сброса в регистре (E)DX можно прочитать номер семейства (3 — 386, 4 — 486, 5 — Pentium, 6 — P6. ), модели, типа и степпинга. Расшифровка основных полей приводится в таблице 1. Кроме перечисленных в таблице, имеется поле степпинга (биты 3:0) — номер версии процессора в пределах одной модели. Информацию этого поля, к сожалению, без таблиц изготовителя не расшифровать. Поле «тип» (биты 13:12) различает процессоры OEM-версий (00), OverDrive (01) и Dual (10); значение 11 зарезервировано. Наиболее интересная информация содержится в полях «семейство» (биты 11:8) и «модель» (биты 7:3). Старшие биты (14–31) регистра EDX пока не используются (они нулевые). Процессоры 80386 имели несколько иное назначение бит: поле «семейство» совпадает, поле «модель» занимает биты 15:11, биты 7:0 отводятся под степпинг. Для младших процессоров регистр DH содержит идентификатор процессора (01 — 8086/88, 02 —80286), DL — номер модели. Поле «модель» позволяет отличать, например, Pentium MMX от «просто» Pentium 75–233 МГц или Pentium 60–66 МГц, Celeron от Pentium II или Pentium Pro. По полю «тип» можно отличить, например, процессоры OverDrive. Поле «степпинг» без таблиц не расшифровать, оно несет информацию о нюансах — например, исправлены ли те или иные ошибки, возможный диапазон частот (определяется косвенно и не точно).
Вернуться к содержанию

Коды идентификации процессоров

Информация из (E)DX доступна только для BIOS в самом начале запуска машины (ее может считать тест POST). Поскольку BIOS ориентирован на процессоры одного поколения (семейства), проблем с различием использования регистра (E)DX не возникает. Потребность в идентификации процессора операционной системой и приложениями созревала по мере расширения диапазона функциональных возможностей и уровня производительности процессоров.
Вернуться к содержанию

Команда CPUID

Начиная с процессоров Pentium появилась новая инструкция CPUID , по которой любая программа на любом уровне привилегий в любой момент времени могла получить ту же информацию, что и BIOS после сброса, и, вдобавок, 32-битный набор флагов расширений базовой архитектуры, реализованных в данном процессоре. Полученную информацию программа может использовать, например, для выбора исполняемого кода, оптимального для данного процессора (или отказа исполнения на «недостойном» ее процессоре), а также для настройки констант программных реализаций задержек. Инструкция CPUID была реализована и в ряде поздних моделей процессоров класса 486. Формат инструкции практически безгранично расширяем, с ее помощью процессор может выдавать хоть весь свой словесный портрет (если эту возможность заложат его разработчики). Однако информация для CPUID «зашивается» в процессор на этапе изготовления кристалла, что не позволяет, например, «выпытать» у процессора его официальную тактовую частоту (она определяется позже — на этапе тестирования уже готового процессора). А эта информация была бы полезна при борьбе с пиратским разгоном (перемаркировкой) процессоров, что, в общем-то, волнует изготовителя.

Следующий шаг, уже явно нацеленный на учет и контроль, был сделан в процессоре Pentium II Xeon. Здесь имеется специальная постоянная (только для чтения) память процессорной информации PIROM , которая хранит такие данные, как электрические спецификации ядра процессора и кэш-памяти (диапазоны частот и питающих напряжений), S-спецификацию (степпинг) и 64-битный серийный номер процессора. Кроме того, имеется энергонезависимая память Scratch EEPROM, которая предназначена для занесения системной информации поставщиком процессора (или компьютера с этим процессором) и может быть защищена от последующей записи. Для взаимодействия с PIROM и Scratch EEPROM (а также устройством термоконтроля) процессор имеет дополнительную последовательную шину SMBus (System Management Bus) — отдельный электрический интерфейс, с которым работает чипсет системной платы. Обращение к этим учетным данным получается довольно сложным — это целая процедура, привязанная к реализации чипсета, а не одна инструкция.

И, наконец, в Intel решили соединить всеобщий учет (и контроль) с простотой доступа: в процессор Pentium-3 ввели расширение инструкции CPUID , по которому легко можно получить 64-битный уникальный идентификатор данного процессора. Идентификатор процессора, по замыслу Intel, должен стать дополнительным средством аутентификации в сети Internet (и других сетях), наряду с именем пользователя и паролем, вводимыми вручную. Однако, если имя и пароль можно сменить в любое время, идентификатор присваивается навечно и принудительно, хотя имеется возможность запретить процессору сообщать свой идентификатор. Вот эта всеобщая инвентаризованность и вызвала бурю обсуждений прав на частную жизнь пользователей нового процессора. После жарких споров фирма Intel «идя навстречу пожеланиям трудящихся» постановила, что по умолчанию выдача идентификатора запрещена, а разрешается только с ведома пользователя. Как подчеркивает Intel, идентификатор сообщается пассивно, то есть компьютер с новым процессором, ОС и броузером не кричит на весь мир «я — номер такой-то!». Это естественно, поскольку для идентификации процессор должен исполнить фрагмент программного кода, в котором вызывается инструкция CPUID и интерпретируются ее результаты.

Для управления выдачей идентификатора в модельно-специфичном регистре BBL_CR_CTL (MSR 119h) выделяется запрещающий бит (бит 21). Он может быть установлен в «1» программно — с помощью инструкции обращения к MSR, и тогда по инструкции CPUID будет доступна только традиционная информация. Заметим, что инструкции обращения к MSR обычно привилегированы, т. е. могут выполняться только на уровне привилегий ядра ОС. По аппаратному сбросу процессора (и только так!) бит обнуляется, и полная идентификация разрешается. Декларированное «отключение по умолчанию» возлагается на ОС, и для Windows предлагается специальная утилита, опрашивающая значение бита MSR и управляющая его установкой, а также сообщающая прочитанный (по возможности) идентификатор. Для использования ОС, отличных от Windows, Intel рекомендует разработчикам BIOS включать фрагмент кода аналогичного назначения в BIOS Setup (здесь любое переключение будет требовать перезагрузки).

Основная информация о процессоре предоставляется по инструкции CPUID , доступность которой определяется через бит 21 (ID) регистра EFLAGS. По инструкции CPUID (0) можно определить производителя процессора и возможности данной инструкции. Вызов CPUID (1) сообщает сигнатуру процессора — тип, семейство, модель и степинг (таблица 1), а также список расширений архитектуры (таблица 2). Как видно из таблицы 1, одному и тому же сочетанию типа, семейства и модели может соответствовать несколько типов процессоров — например, Pentium-2 и Pentium-2 Xeon по ним неразличимы. Эти процессоры различаются элементами системы кэширования, и их можно распознать по дескрипторам (таблица 3), сообщаемым по CPUID (2). И, наконец, серийный номер процессора, если это позволено (см. ниже), можно узнать по CPUID (3). Серийный номер появился с процессорами Pentium 3 (он был введен еще в кристалл Celeron модели 6, но на конечном этапе производства эту возможность отключали).

Заметим, что здесь нигде в явном виде не фигурирует тактовая частота процессора — для каждой модели и степинга выпускаются процессоры с некоторым диапазоном тактовых частот, а конкретное значение обозначается на корпусе после отбраковочных испытаний. В процессорах Xeon «официальная» тактовая частота заносится в энергонезависимую память конфигурации, откуда может быть считана по интерфейсу SMBus. Доступ к этой памяти осуществляется по процедурам, определяемым чипсетом системной платы, но не по одной определенной инструкции процессора. Возможно, тактовую частоту можно определить и по серийному номеру процессора, но пока на это нет официальных указаний.

Идентификация процессора требуется на разных уровнях ПО. Первым делом идентификацию выполняет BIOS — для того, чтобы сообщить о найденных процессорах пользователю и выполнить необходимые настройки под конкретную модель и степинг процессора. Для процессоров 6-го поколения эта информация позволяет определить, какими ошибками (erratum) страдает данный процессор и какими «заплатками» эти ошибки нейтрализуются. Нейтрализация ошибок может выполняться как с помощью модификации микрокода процессора (update microcode), так и специфическими фрагментами программного кода для обработчиков прерываний и исключений. Эти «заплатки» могут входить как в операционные системы, так и в BIOS. Если конкретный процессор «не знаком» для BIOS или ОС, «заплатки» для него не будут загружены и возможны различные неожиданности при работе. В этом случае стоит позаботиться об обновлении BIOS (для флэш-BIOS это технически несложно) или приобретении загружаемых «заплат» для ОС.

В зависимости от обнаруженного процессора, ОС может использовать те или иные варианты реализации своих функций. ОС защищенного режима (а теперь иными практически и не пользуются) разрешает или запрещает те или иные архитектурные расширения (в основном записью в регистр CR4). Прикладным программам остается только согласиться с предлагаемым набором свойств процессора или отказаться от работы. Прикладные программы могут получать информацию о процессоре по инструкции CPUID при любом уровне привилегий, а привилегированные программы (PL=0) могут пользоваться и данными CR4.
Вернуться к содержанию

Идентификация процессоров пользовательскими программами

  • у процессоров 8086/88 биты 12–15 всегда установлены — попытка их сброса не удается;
  • у 80286 в реальном режиме биты 12–15 всегда сброшены;
  • у 32-разрядных процессоров в реальном режиме бит 15 всегда сброшен, а биты с 12–14 хранят последнее загруженное в них значение. В защищенном режиме бит 15 всегда сброшен, а бит 14 хранит последнее загруженное в него значение (биты 12, 13 можно изменить только при IOPL=0).
  • бит 18 доступен, начиная с процессоров 486, — у 80386 его невозможно изменить;
  • биты 19 (VIF) и 20 (VIP) у процессоров, не поддерживающих расширения виртуального режима (VME) всегда нулевые;
  • бит 21 (ID) определяет возможность использования инструкции CPUID . Признаком доступности инструкции является возможность программного изменения значения этого бита.

Для определения присутствия сопроцессора выполняют инструкцию FNINIT, после чего исполняют инструкцию FNSTENV и проверяют корректность образа сопроцессора, сохраненного в памяти. Тип сопроцессора обычно определяется типом CPU, кроме процессора 80386, который может работать как с 80287, так и с 80387. Их различить можно по способу представления +бесконечность и –бесконечность: у 287 они одинаковы, у 387 — различны.

  • CPUID (0) — в регистре EAX возвращается максимально допустимое значение параметра вызова; в регистрах EBX, EDX и ECX процессор возвращает символьную строку, специфичную для производителя. Символы строки размещаются в регистрах в указанном порядке, начиная с младших байт.
    Процессоры Intel возвращают строку «GenuineIntel»:
    • EBX=756E6547h — «Genu», символ «G» в регистре BL,
    • EDX=49656E69h — «ineI», символ «i» в регистре DL,
    • ECX=6C65746Eh — «ntel», символ «n» в регистре CL.
    • EBX=68747541h
    • ECX=444D4163h
    • EDX=69746E65h
    • EAX[3:0] — степпинг;
    • EAX[7:4] — модель;
    • EAX[11:8] — семейство;
    • EAX[13:12] — тип;
    • EAX[31:14] — зарезервировано (0);
    • Регистры EBX=0, ECX=0 (резерв).
    • Регистр EDX содержит список имеющихся расширений базовой архитектуры — отображает регистр свойств (Feature Flags register). Назначение бит регистра приведено в таблице 2.
    MOV ECX,119h RDMSR ;загрузка значения MSR в EDX:EAX OR EAX,00200000h ;модификация бита 21 WRMSR ;запись в MSR

    Вызовы инструкций CPUID с EAX>3 (в пределах разрешенного значения, сообщенного процессором при вызове CPUID (0) зарезервированы для будущих применений.

    Фирма AMD расширила вызовы CPUID . Для проверки наличия расширений вызывается CPUID с EAX=8000_0000h. При наличии расширений в EAX результатом будет число, большее 8000_0000h, — максимальный параметр расширенного вызова. Вызовом EAX=8000_0001h можно определить специфические расширения архитектуры от AMD. Например, поддержка 3DNow! определяется по установленному биту 31 регистра EDX.
    Вернуться к содержанию

    Назначение флагов расширения архитектуры

    Таблица 2

    Бит Название Назначение
    0 FPU Floating Poin Unit — наличие математического сопроцессора
    1 VME Virtual-8086 Mode Enhancements — расширение режима V86 (виртуализация флага прерываний)
    2 DE Debugging Extensions — расширение отладки (возможность остановки по обращению к портам)
    3 PSE Page Size Extension — возможность применения размера страницы в 4 Мбайт
    4 TSC Time Stamp Counter — наличие счетчика меток реального времени
    5 MSR Model Specific Register — поддержка модельно-специфических регистров в стиле Pentium (инструкции RDMSR, WRMSR)
    6 PAE Physical Address Extension — возможность расширения физического адреса до 36 бит
    7 MCE Machine Check Exception — поддержка исключения машинного контроля #MC
    8 CX8 Поддержка инструкции CMPXCHG8B
    9 APIC Наличие встроенного программно-доступного контроллера прерываний APIC
    10 Зарезервировано
    11 SEP SYSENTER Present — поддержка инструкций быстрых системных вызовов SYSENTER и SYSEXIT
    12 MTRR Memory Type Range Registers — наличие регистра управления кэшированием MTRRcap
    13 PGE Page Global Enable — поддержка бит глобальности в элементах каталога и таблиц страниц, а также бита PGE в регистре CR4
    14 MCA Machine Check Architecture — поддержка архитектуры машинного контроля
    15 CMOV Conditional Move — поддержка инструкций условной пересылки CMOVcc, а если есть FPU, то и инструкций FCMOVCC и FCOMI
    16 PAT Page Attribute Table — поддержка таблиц атрибутов страниц (PAT)
    17 PSE-36 36-bit Page Size Extension — возможность использования 36-битной физической адресации для страниц в 4 Мб
    18 PN Processor Number — поддержка сообщения 96-битного серийного номера по инструкции CPUID (3)
    18–22 Зарезервировано
    23 MMX Поддержка MMX
    24 FXSR Fast floating point save and restore — поддержка инструкций быстрого сохранения и восстановления контекста FPU (инструкций FXSAVE и FXRSTOR). Указывает и на доступность индикатора использования этих инструкций операционной системой (CR4.OSFXSR)
    25 XMM Наличие блока XMM (поддержка новых инструкций расширения SSE)
    24. 31 Зарезервировано

    Дескрипторы элементов кэширования

    Таблица 3

    00h Нулевой дескриптор (в неиспользуемых байтах)
    01h TLB инструкций: страницы 4К, 4WSA, 32 вхождения
    02h TLB инструкций: страницы 4М, FA, 2 вхождения
    03h TLB данных: страницы 4К, 4WSA, 64 вхождения
    04h TLB данных: страницы 4М, 4WSA, 8 вхождений
    06h Кэш инструкций (LI): 8К, 4WSA, размер строки 32 байта
    08h Кэш инструкций (LI): 16К, 4WSA, размер строки 32 байта
    0Ah Кэш данных (LI): 8К, 2WSA, размер строки 32 байта
    0Ch Кэш данных (LI): 16К, 2WSA, размер строки 32 байта
    40h Нет вторичного кэша
    41h Вторичный кэш 128К, 4WSA, размер строки 32 байта
    42h Вторичный кэш 256К, 4WSA, размер строки 32 байта
    43h Вторичный кэш 512К, 4WSA, размер строки 32 байта
    44h Вторичный кэш 1М, 4WSA, размер строки 32 байта
    45h Вторичный кэш 2М, 4WSA, размер строки 32 байта

    4WSA — четырехканальный наборно-ассоциативный кэш
    FA — полностью ассоциативный кэш
    Вернуться к содержанию

    • http://www.mp.dpt.ustu.ru/Users/oe/
    • Гук М. Аппаратные средства IBM PC. Энциклопедия. — СПб: Питер, 1999.
    • Гук М. Аппаратные средства IBM PC. Энциклопедия. 2-е изд. — СПб: Питер, 2001.

    Маркировка процессоров Intel

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

    Следующая информация помогает Вам идентифицировать маркировки серверного процессора. Маркировки процессора сообщают поддержке клиентов, если Вы являетесь имеющими право на гарантийный обмен. Спрятать

    • Похожие публикации
    • Поделиться
    • Код вставки
    • Добавить в избранное
    • Комментарии

    Как узнать серийный номер процессора intel

    Сообщения: 5382
    Благодарности: 1105

    Добрый день
    Стоит задача принять к учёту несколько системных блоков. Однако бухгалтерия требует серийные номера всех компонентов.
    Во всех компьютерах используется процессор Intel Pentium G620.
    Сейчас стоит Windows XP SP3.

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

    ——-
    Самое совершенное оружие, которым забиты арсеналы богатых и процветающих наций, может легко уничтожить необразованного, больного, бедного и голодного. Но оно не может уничтожить невежество, болезнь, нищету и голод. (Фидель Кастро)

    Почему всех осужденных за измену Родине при Сталине реабилитировали при Горбачёве по отсутствию состава преступления? Потому что при Горбачёве измену Родине перестали считать преступлением.

    Как программно узнать серийный номер процессора?

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

    Голосование за лучший ответ
    Никак. Только посмотреть на теплораспределительной крышке.
    На современных процессорах вывод серийного номера программным способом блокируется.
    Никак. он нигде «внутри» не прошит.

    если тебя «паранойка бьёт» — это не сюда, а к ДОКТОРУ надо ;)))
    .
    «серийники» гравируются на «крышке» проца и вряд-ли кто будет ради тебя «особенного» полировать её и «набивать» другой номер ;))

    IncantarictusПросветленный (37153) 6 лет назад

    Полировать и набивать, конечно, никто не будет, а вот крышки поменять — на раз два. Случаи, когда под видом i7 продавали Celeron-ы с хитспредерами от i7 — не редки.

    Oleg Yefremov Искусственный Интеллект (131461) поменьше надо Х_НЮ всякую покупать в «левых» магазинах — тогда и не будут под видом i7 продавать Celeron-ы ;))

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

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