как узнать cpuid процессора

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

как узнать cpuid процессора. cpu z. как узнать cpuid процессора фото. как узнать cpuid процессора-cpu z. картинка как узнать cpuid процессора. картинка cpu z.

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

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

CPUкак узнать cpuid процессора. cpu. как узнать cpuid процессора фото. как узнать cpuid процессора-cpu. картинка как узнать cpuid процессора. картинка cpu.

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

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

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

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

CACHESкак узнать cpuid процессора. caches. как узнать cpuid процессора фото. как узнать cpuid процессора-caches. картинка как узнать cpuid процессора. картинка caches.

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

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

MAINBOARDкак узнать cpuid процессора. mainboard. как узнать cpuid процессора фото. как узнать cpuid процессора-mainboard. картинка как узнать cpuid процессора. картинка mainboard.

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

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

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

MEMORYкак узнать cpuid процессора. memory. как узнать cpuid процессора фото. как узнать cpuid процессора-memory. картинка как узнать cpuid процессора. картинка memory.

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

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

SPDкак узнать cpuid процессора. spd. как узнать cpuid процессора фото. как узнать cpuid процессора-spd. картинка как узнать cpuid процессора. картинка spd.

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

GRAPHICSкак узнать cpuid процессора. graphics. как узнать cpuid процессора фото. как узнать cpuid процессора-graphics. картинка как узнать cpuid процессора. картинка graphics.

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

ABOUTкак узнать cpuid процессора. about. как узнать cpuid процессора фото. как узнать cpuid процессора-about. картинка как узнать cpuid процессора. картинка about.

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

Источник

Как узнать точную модель своего процессора (CPU), посмотреть его спецификацию, характеристики

как узнать cpuid процессора. Nakleyka na korpuse a model to. как узнать cpuid процессора фото. как узнать cpuid процессора-Nakleyka na korpuse a model to. картинка как узнать cpuid процессора. картинка Nakleyka na korpuse a model to.Доброго времени суток!

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

Можно, конечно, довериться наклейке на корпусе устройства (если она у вас, конечно, есть) — но далеко не всегда она отражает точную информацию (можно наколоться. 👀).

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

Итак, теперь по теме.

как узнать cpuid процессора. uskwin. как узнать cpuid процессора фото. как узнать cpuid процессора-uskwin. картинка как узнать cpuid процессора. картинка uskwin.

Способы узнать модель процессора

Способ 1: свойства Windows

как узнать cpuid процессора. Svoystva kompyutera smotrim model TSP. как узнать cpuid процессора фото. как узнать cpuid процессора-Svoystva kompyutera smotrim model TSP. картинка как узнать cpuid процессора. картинка Svoystva kompyutera smotrim model TSP.

Еще один рабочий способ: 👉 открыть панель управления Windows по следующему пути: Панель управления\Система и безопасность\Система.

👉 Кроме этого, можно использовать средство диагностики DirectX. Для этого нужно:

как узнать cpuid процессора. Zapuskaem sredstvo diagnostiki DirectX VchVSHfp. как узнать cpuid процессора фото. как узнать cpuid процессора-Zapuskaem sredstvo diagnostiki DirectX VchVSHfp. картинка как узнать cpuid процессора. картинка Zapuskaem sredstvo diagnostiki DirectX VchVSHfp.

Запускаем средство диагностики DirectX (DxDiag)

Во вкладке «Система» можно найти информацию о процессоре, BIOS, ОС, изготовители и т.д. Пример см. на скрине ниже. 👇

как узнать cpuid процессора. Sredstvo diagnostiki DirectX. как узнать cpuid процессора фото. как узнать cpuid процессора-Sredstvo diagnostiki DirectX. картинка как узнать cpuid процессора. картинка Sredstvo diagnostiki DirectX.

Средство диагностики DirectX

Способ 2: спец. утилиты

Гораздо больше информации о компьютере (в том числе и ЦП), его характеристиках можно получить с помощью специальных утилит. Что касается процессора, то порекомендую парочку чуть ниже.

Очень информативная утилита, которая покажет практически все сведения (за исключением температуры) о вашем процессоре. Что касается:

как узнать cpuid процессора. CPU Z podrobnaya informatsiya o TSP. как узнать cpuid процессора фото. как узнать cpuid процессора-CPU Z podrobnaya informatsiya o TSP. картинка как узнать cpuid процессора. картинка CPU Z podrobnaya informatsiya o TSP.

CPU-Z подробная информация о ЦП

Бесплатная и не нуждающаяся в установке утилита. После запуска покажет модель, платформу, частоту, ядра, потоки, ревизию и пр. информацию о CPU. Кроме этого, в углу окна программа отслеживает температуру: минимальную, максимальную, и текущую. Удобно!

как узнать cpuid процессора. CoreTemp maks. min. sredn. znachenie temperaturyi. как узнать cpuid процессора фото. как узнать cpuid процессора-CoreTemp maks. min. sredn. znachenie temperaturyi. картинка как узнать cpuid процессора. картинка CoreTemp maks. min. sredn. znachenie temperaturyi.

Core Temp: главное окно программы

Способ 3: BIOS/UEFI

В случаях, когда есть проблемы с загрузкой Windows (или просто даже жесткий диск не подключен к ПК), можно уточнить модель ЦП в BIOS (или его обновленной версии UEFI).

Как правило, чтобы получить самую основную информацию о компьютере, достаточно просто посетить главную страницу BIOS (возможно, вкладка Main). См. фото с примером ниже. 👇

как узнать cpuid процессора. UEFI prosmotr TSP OZU diska sostoyanie kulera i pr.. как узнать cpuid процессора фото. как узнать cpuid процессора-UEFI prosmotr TSP OZU diska sostoyanie kulera i pr.. картинка как узнать cpuid процессора. картинка UEFI prosmotr TSP OZU diska sostoyanie kulera i pr..

Способ 4: визуальный (если ПК не включается)

Вариант №1: Наклейки на корпусе

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

как узнать cpuid процессора. Nakleyka na korpuse. как узнать cpuid процессора фото. как узнать cpuid процессора-Nakleyka na korpuse. картинка как узнать cpuid процессора. картинка Nakleyka na korpuse.

Наклейка на корпусе

Но как говорил уже выше, достоверно доверять наклейкам, все же, нельзя.

Вариант №2: тех. документация

Обычно, при покупке нового ПК (ноутбука) в комплекте к нему идут документы (спецификации, тех. характеристики, инструкция пользователя и пр.). Почти наверняка в этих бумагах можно найти подробную информацию о ЦП.

Вариант №3: Разборка ПК (ноутбука), снятие радиатора

Это, пожалуй, наиболее достоверный способ. Правда, вам придется разобрать компьютер, снять радиатор, почистить поверхность ЦП от термопасты. См. скрин ниже.

как узнать cpuid процессора. Smotrim vizualno na TSI. как узнать cpuid процессора фото. как узнать cpuid процессора-Smotrim vizualno na TSI. картинка как узнать cpuid процессора. картинка Smotrim vizualno na TSI.

Смотрим визуально на ЦП

Просмотр характеристик [спецификации] ЦП

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

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

как узнать cpuid процессора. Spetsifikatsiya TSP ot Intel. как узнать cpuid процессора фото. как узнать cpuid процессора-Spetsifikatsiya TSP ot Intel. картинка как узнать cpuid процессора. картинка Spetsifikatsiya TSP ot Intel.

Спецификация ЦП от Intel (в качестве примера)

Источник

Как узнать, какой процессор установлен на ПК

Процессор — один из самых ключевых компонентов ПК и именно с него нужно начинать апгрейд. Но как посмотреть модель ЦПУ, чтобы можно было подобрать высокопроизводительный аналог под сокет материнской платы? Рассказываем в статье.

как узнать cpuid процессора. fit 300 200 false crop 1920 1080 0 100 q90 358292 852b7a2286. как узнать cpuid процессора фото. как узнать cpuid процессора-fit 300 200 false crop 1920 1080 0 100 q90 358292 852b7a2286. картинка как узнать cpuid процессора. картинка fit 300 200 false crop 1920 1080 0 100 q90 358292 852b7a2286.

как узнать cpuid процессора. fit 960 530 false crop 1920 1080 0 100 q90 358292 852b7a2286. как узнать cpuid процессора фото. как узнать cpuid процессора-fit 960 530 false crop 1920 1080 0 100 q90 358292 852b7a2286. картинка как узнать cpuid процессора. картинка fit 960 530 false crop 1920 1080 0 100 q90 358292 852b7a2286.

Когда возникает желание сделать апгрейд компьютера, необходимо знать, какие комплектующие установлены внутри. Таким образом можно будет проверить, какие железки совместимы с установленной платформой, а какие нет. Процессор — один из самых ключевых компонентов и именно с него нужно начинать апгрейд, если, конечно, вас устраивают возможности материнской платы. Согласитесь, не важно, насколько красивая будет графика в игре, если двухъядерный старичок будет запыхаться от нагрузки. Плавность игрового процесса во многом зависит именно от ЦПУ. Именно поэтому мы и рекомендуем в первую очередь менять старый камень на новый. И только потом смотреть в сторону свежей видеокарты и высокочастотной оперативной памяти. Сегодня мы расскажем о том, как узнать, какой процессор стоит на компьютере.

Как узнать, какой процессор на компьютере: встроенные в ОС средства

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

Свойства системы

Самый простой метод — залезть в свойства системы. Для этого нажмите правой кнопкой мыши по меню «Пуск» и выберите пункт «Система».

как узнать cpuid процессора. fit 960 530 false crop 1220 729 0 0 q90 358662 d1af4a3513. как узнать cpuid процессора фото. как узнать cpuid процессора-fit 960 530 false crop 1220 729 0 0 q90 358662 d1af4a3513. картинка как узнать cpuid процессора. картинка fit 960 530 false crop 1220 729 0 0 q90 358662 d1af4a3513.

В характеристиках устройства вы увидите модель процессора, его семейство и тактовую частоту. Также здесь будет отображаться количество оперативной памяти и разрядность системы, что тоже может быть полезно. Посмотреть свойства системы можно и с помощью основных сведений о компьютере, которые перекочевали в Windows 10 из предшествующих версий. Для этого зайдите в Проводник и в левой части окна найдите «Этот компьютер», нажмите по нему правой кнопкой мыши и перейдите в свойства. И вы обнаружите точно такие же сведения, как и в предыдущем окне.

как узнать cpuid процессора. fit 960 530 false crop 1087 585 0 0 q90 358672 5184eba450. как узнать cpuid процессора фото. как узнать cpuid процессора-fit 960 530 false crop 1087 585 0 0 q90 358672 5184eba450. картинка как узнать cpuid процессора. картинка fit 960 530 false crop 1087 585 0 0 q90 358672 5184eba450.

Диспетчер устройств

Для того, чтобы посмотреть не только наименование процессора, но и количество его ядер, нажмите на пункт «Диспетчер устройств» в левой части окна со свойствами системы. Если по каким-либо причинам у вас не получается попасть в диспетчер устройств, то вы можете вызвать его с помощью специальной команды. Для этого нажмите на клавиатуре комбинацию клавиш Win + R и в появившемся поле введите следующий текст: devmgmt.msc. После этого подтвердите операцию, нажав «Enter». Точку в конце команды ставить не нужно.

как узнать cpuid процессора. fit 723 530 false crop 775 568 0 0 q90 358682 53c6eedef3. как узнать cpuid процессора фото. как узнать cpuid процессора-fit 723 530 false crop 775 568 0 0 q90 358682 53c6eedef3. картинка как узнать cpuid процессора. картинка fit 723 530 false crop 775 568 0 0 q90 358682 53c6eedef3.

После проделанных манипуляций вы увидите окно со всеми подключенными к ПК устройствами, которые удалось распознать операционной системе. Как нетрудно догадаться в графе «Процессоры» и находится искомая информация. Необходимо посчитать количество пунктов в открывшейся графе. Вероятнее всего они и будут равняться числу ядер вашего процессора. Однако следует понимать, что диспетчер устройств считывает потоки процессора, а не его ядра. А количество ядер не всегда равняется количеству потоков. Поэтому если вы знаете, что ваш ЦПУ поддерживает функцию гиперпоточности (когда одно фактическое ядро делится на два виртуальных потока), то делите полученный результат на два. Так, например, Ryzen 5 2600 выдал нам 12 пунктов. Мы знаем, что данная модель поддерживает технологию SMT (от англ. simultaneous multithreading — аналог технологии Hyper-threading от Intel), а значит количество ядер равняется 6.

Диспетчер задач

Диспетчер задач предоставляет пользователю много полезной информации о компьютере, и в том числе может показать поверхностные данные об установленном процессоре. Для того, чтобы вызвать диспетчер задач, нажмите комбинацию клавиш Ctrl + Shift + Esc. после этого появится окно, в котором будут отображаться все запущенные процессы, которые потребляют ресурсы следующих компонентов ПК: процессор, оперативная память и жесткий диск. Кстати, исходя из этой информации, можно сделать вывод о том, насколько хорошо справляется с задачами ваш ЦПУ. Если вы столкнулись с высокой загрузкой процессора без видимой на то причины, то можете прочесть вот этот материал для того, чтобы устранить проблему.

Источник

Система команд x86

Влияние команды на флаги и форматы команды:

Описание:

Команда CPUID впервые была введена в процессоре Pentium, она предназначена для считывания программным обеспечением информации о продавце, семействе, модели и поколении процессора, а также специфической для процессора дополнительной информации (поддерживаемые наборы команд, размеры буферов, кэшей, разнообразные расширения архитектуры и т.п.).

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

Стандартные функции

Входное значение EAX = 0

При входном значении EAX = 0, после выполнения команды CPUID регистр EAX будет содержать максимальное значение, понимаемое командой CPUID (при запросе стандартных функций), а в регистрах EBX, EDX и ECX будет находится строка идентификации производителя процессора (EBX содержит первых 4 символа, EDX содержит следующие 4 символа и ECX содержит последние 4 символа). В таблице 6.33. приведены значения, выдаваемые наиболее распространенными моделями микропроцессоров.

Таблица 6.33. Строки идентификации, возвращаемые процессорами различных производителей

Содержимое регистров после выполнения команды CPUID (EAX = 0)

Тип процессора (производитель)

EBX : EDX : ECX

486SL … Pentium III Xeon (Intel)

GenuineIntel (756E6547h : 49656E69h : 6C65746Eh)

Pentium 4, Pentium 4D, Pentium 4E, Xeon, Core i3, i5, i7, Core 2 Duo (Intel)

Atom, Celeron, Celeron M (Intel)

CyrixInstead (69727943h : 736E4978h : 64616574h)

MediaGX MMX Enhansed (Cyrix)

WinChip 2, 2A, 2B, C6 (IDT)

CentaurHauls (746E6543h : 48727561h :736C7561h)

VIA Eden, Eden-N, Eden ESP, Eden ULV, Cyrix III, C3, C3-M, C7, C7-M, C7-D, CoreFusion (VIA)

VIA nano, nano-M, nano X2, Eden X2, QuadCore (VIA)

Am486, Am5x86, AMD K5, AMD K6, AMD K6-2, AMD K6-2+, AMD K6-III, AMD K6-III+, AMD K-7, AMD Athlon, AMD Athlon XP, Duron, AMD Athlon 64, DualCore AMD Athlon 64 X2, AMD Opteron, 2x AMD Opteron, DualCore AMD Opteron, AMD Sempron, AMD K-8, AMD Turion, DualCore AMD Turion (AMD)

AuthenticAMD (68747541h : 444D4163h : 69746E65h)

2x DualCore AMD Opteron, QuadCore AMD Phenom, DualCore AMD Phenom II X2, TripleCore AMD Phenom II X3, QuadCore AMD Phenom II X4, QuadCore AMD Phenom II TWKR, AMD Propus, AMD Athlon II X4, DualCore AMD Athlon II X2, AMD Sempron, 2x HexaCore AMD Opteron, 2x DodecaCore AMD Opteron (AMD)

HexaCore AMD Phenom II X6, Mobile DualCore AMD E2, QuadCore AMD A8, DualCore AMD Bobcat, DualCore AMD C-50, DualCore AMD G-T56N, DualCore AMD E-xxx (AMD)

QuadCore AMD Bulldozer, QuadCore AMD FX, OctalCore AMD FX, HexaCore AMD FX, 2x 16-Core AMD Opteron, QuadCore AMD A10, QuadCore AMD A8, QuadCore AMD A12, DualCore AMD A9, QuadCore AMD A4, QuadCore AMD Athlon, QuadCore AMD Temash, DualCore AMD GX, QuadCore AMD A6, Summit Ridge A stepping, OctalCore AMD Ryzen 7, QuadCore AMD Ryzen 5, 12-Core AMD Ryzen, 16-Core AMD Ryzen, 32-Core AMD EPYC (AMD)

RDC IAD 100 (RDC Semiconductor)

(756E6547h : 20656E69h : 43445220h)

SiS SiS SiS (20536953h : 20536953h : 20536953h)

NexGenDriven (4778654Eh : 72446E65h : 6E657669h)

Transmeta Crusoe, Transmeta Efficeon (Transmeta)

GenuineTMx86 ( 756E6547h : 54656E69h : 3638784Dh)

Rise mP6, Rise mP6-II (Rise)

RiseRiseRise ( 65736952h : 65736952h : 65736952h)

UMC UMC UMC ( 20434D55h : 20434D55h : 20434D55h)

Geode GX1, GXLV, GXm (National Semiconductor)

Geode by NSC ( 646F6547h : 79622065h : 43534E20h)

Geode GX2 (National Semiconductor)

Vortex86 (DM&P Electronics)

Vortex86 SoC ( 74726F56h : 36387865h : 436F5320h)

Входное значение EAX = 1

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

Регистры EBX и ECX зарезервированы.

В регистре EDX будет содержаться информация о некоторых свойствах и возможностях микропроцессора. Установленный флаг свойств указывает на то, что соответствующее свойство (возможность, функция) данной моделью микропроцессора поддерживается. Информация о свойствах определена следующим образом:

Не все из указанных битов свойств определены в различных моделях процессоров различных производителей. В ранних моделях некоторые из этих битов указываются как зарезервированные, некоторые биты могут по разному интерпретироваться. Но, поскольку постоянно выпускаются модифицированные версии старых моделей процессоров, могут встречаться самые разнообразные комбинации (основные наиболее важные для прикладного программирования биты, такие как: наличие интегрированного FPU, поддержка команд MMX и т.п., везде интерпретируются одинаково).

В таблице 6.34. представлена информация о содержимом регистров некоторых наиболее распространенных моделей микропроцессоров после выполнения команды CPUID с входным EAX = 1.

Источник

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

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

как узнать cpuid процессора. image loader. как узнать cpuid процессора фото. как узнать cpuid процессора-image loader. картинка как узнать cpuid процессора. картинка image loader.
Источник изображения: [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 не приводят к возникновению исключений, а вместо этого возвращают нули во всех четырёх регистрах, либо «мусор» (значения другого листа согласно спецификации). Допустимые же сочетания листов и подлистов образуют три непрерывных региона.

как узнать cpuid процессора. image loader. как узнать cpuid процессора фото. как узнать cpuid процессора-image loader. картинка как узнать cpuid процессора. картинка image loader.

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] на тысячу страниц, и потому она ускользала от меня очень долго.

Источник

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

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