Идентификация и установка процессора

Обновлено: 04.07.2024

Для идентификации процессоров фирмы Intel можно воспользоваться программой Intel Processor Frequency ID Utility для WindoVs. Эту программу можно бесплатно скачать с Web-сайта указанной фирмы. Она не только позволяет определить тип процессора стандартными возможностями CPUID, но также дает возможность выяснить частоту системной шины процессора и внутреннюю рабочую частоту самого процессора.

Такая специализированная программа идентификации параметров процессора незаменима в борьбе с многочисленными их подделками, связанными с перемаркировкой. Сама фирма Intel утверждает, что программа Intel Processor Frequency ID Utility разработана с целью определить, не работает ли процессор Intel на тактовой частоте, превышающей номинальную. Однако данная программа полезна и для пользователей, желающих разогнать или уже разогнавших элементы своих компьютеров. Следует отметить, что указанная программа сообщает правильные данные для частот даже в том случае, когда они превышают номинальные (рекомендованные) для данного процессора. Но если частота превышает рекомендованную величину, то программа предупреждает пользователя о всевозможных неприятных последствиях разгона

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

Процессоры, поддерживаемые функцией определения тактовой частоты (Frequency ID):

  • Intel Pentium III;
  • Intel Pentium III Xeon;
  • Intel Celeron с тактовой частотой от 533А МГц;
  • Mobile Intel Pentium III;
  • Mobile Intel Celeron с тактовой частотой от 450 МГц.

Процессоры, поддерживаемые функцией CPLJID:

  • Intel Pentium;
  • Intel Pentium с технологией ММХ;
  • Intel Pentium OverDrive;
  • Intel Pentium OverDrive с технологией ММХ;
  • Intel Pentium Pro;
  • Intel Pentium II OverDrive for Pentium Pro;
  • Intel Pentium II;
  • Intel Pentium II Xeon;
  • Intel Celeron;
  • Intel Pentium III;
  • Intel Pentium III Xeon;
  • Intel Pentium;
  • Mobile Intel Pentium II;
  • Mobile Intel Pentium III;
  • Mobile Intel Celeron.

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

Кроме того, программа CPUID предоставляет достаточно много сведений об установленном процессоре. Это может быть очень полезно, например, при поиске наиболее разгоняемых процессоров, т. к. характеристики "почти одинаковых" (с точки зрения идентификации) процессоров обычно похожи. В связи с этим следует ознакомиться с этими параметрами более подробно. Помимо использования утилиты Frequency, ID функции CPUID можно получить самыми разными способами и программами. В качестве одного из вариантов можно привести программу cpuid.exe фирмы Intel (рис. 12.32), выдающую такие параметры под операционную систему DOS.

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


Рис. 12.25. Результат работы программы CPUID


Рис. 12.26. Схема хранение информации о процессоре

Обычно программы предоставляют пользователю следующую информацию о процессоре.

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

Практическая работа №14
Тема: Идентификация и установка процессора.

Цель: ознакомление с идентификацией и установкой процессора

Знать:

– Основные характеристики процессора;

– Основные современные модели процессоров;

– Типы процессоров нового поколения;

Уметь:

– Идентифицировать и устанавливать процессоры.
Программное обеспечение: сборка персонального компьютера (видео), системная плата, процессор, кулер.
Теоретическая часть

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

Основные производители процессоров фирмы Intel и AMD. Процессоры AMD значительно дешевле своих конкурентов, но их надежность оставляет желать лучше. У самых производительных процессоров вышеуказанных фирм тактовая частота составляет порядка 5 ГГц.

Другой важный параметр частота шины, на которой работает процессор. Измеряется также в Герцах. Обычно в МГц . Ее размер чуть меньше тактовой частоты самого процессора и составляет порядка 533, 800 или 1066 МГц. Чем больше размер, тем и выше производительность компьютера.

Чем больше размер кэш-памяти, тем выше производительность процессора.

Символы S755 или S478 указывают промышленный стандарт подключения процессора к материнской плате (системная плата). Box – означает, что процессор продается в комплекте с кулером.
Материнская плата

Обозначается MB (Mother Board). Материнская плата предназначена, для передачи данных между всеми компонентами ПК и для механического крепления этих компонентов на ней.

Основной параметр - частота внутренней шины. Измеряется, как и у процессора в МГц. Естественно частота должна совпадать с частотой шины процессора. При выборе материнской платы главное, чтобы разъем (Socket 755) для подключения к ней процессора был точно такой же, как и у самого процессора.

Наиболее популярны материнские платы следующих производителей: Asus, GygaByte, Intel.
Установка процессора

Основа вычислительной системы – микропроцессор (МП). МП характеризуется следующими параметрами:

- Степень интеграции микросхемы (сколько транзисторов содержится в чипе).

- Внутренняя разрядность данных (количество бит, которые МП может обрабатывать одновременно);

- Внешняя разрядность данных (количество одновременно передаваемых бит в процессе обмена данными с памятью и другими устройствами);

- Адресуемая память (зависит от числа адресных бит).

Сперва определимся, какой тип процессора вы выбрали: от этого напрямую зависит способ установки его в нашу материнскую плату.

Процессоры от Intel.

На сегодняшний день, фирма выпускает процессоры для материнских плат на сокете 775 (сокет – место крепления процессора). В отличие от предыдущих моделей, эти процессоры не оснащены «ножками», тем самым уменьшается риск повредить его при неаккуратном обращении. На процессорах 775 сокета расположены контактные точки, а «ножки» расположены на самой системной плате.

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


  • отведите и поднимите рычаг гнезда на сокете;

  • откройте пластину крепления;

  • удалите защитную крышку сокета;

  • Материнская плата готова.

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


Убедитесь в том, что все крепления надежно закреплены. Осталось лишь подключить процессорный кулер в разъем с пометкой CPU-FAN на материнской плате. Все, наш процессор установлен.

Процессоры от AMD

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


Посмотрите на ваш процессор (сокет 939, сокет AM2), в одном из его углов несколько «ножек» располагаются иначе, чем в остальных. Это место помечено желтой стрелочкой, эта же стрелочка есть и на сокете материнской платы.


Так же как и в предыдущем примере, отодвигаем рычаг сокета, устанавливаем процессор и возвращаем рычаг на место.

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

Современный компьютер похож на конструктор. Только дети собирают трансформеров, а взрослым подавай видеокарты да процессоры. Когда необходимо установить или заменить компьютерную запчасть, появляется много нюансов и мелочей, без которых правильно собрать и настроить технику не получится. Здесь навыков игры в LEGO недостаточно. В такой ситуации всегда лучше один раз увидеть, чем сто раз услышать, поэтому мы покажем весь процесс от А до Я.

Подготовка

Save your game

Перед любой вылазкой в недра системного блока главное — сохранить важные данные куда-нибудь подальше. Например, на внешний жесткий диск, а еще лучше в домашний NAS или в облако. Уже после этого руки станут дрожать меньше и реже.

Как правило, после переустановки процессора сбрасываются настройки BIOS — их тоже лучше сохранить в специальный профиль. Также учитываем, что вместе с настройками полетят и другие параметры: RAID, если он настроен силами чипсета; разгон и настройка оперативной памяти. Поэтому еще раз и погромче:

Перед любой работой с комплектующими сохраняемся по-максимуму.

Набор домашнего админа

Для работы с компьютерной электроникой хватает классического набора инструментов:

  • отвертка,
  • ватка для протирания контактов,
  • спирт (не пить, а протирать),
  • запас термопасты.

А если работать по фэн-шую и в комфортных условиях, то вот список того, что точно понадобится для ремонта:

  • Перчатки антистатические. Человек заряжается статикой: будет достаточно одного разряда куда-нибудь в район оперативной памяти, видеовыходов или процессора, чтобы «попасть» на покупку новых железок. Гарантия при этом аннулируется, а ремонту такая электроника скорее всего не подлежит. Поэтому необходимо работать в специальных перчатках — безопасно и без «пальчиков».


  • Отвертка крестовая. Компьютерные винтики и болтики стандартные: к ним подойдет отвертка с жалом под винты типа М3. Еще лучше иметь под рукой набор отверток.
  • Ватные диски и ватные палочки. Для удаления пыли и загрязнений в компьютере лучше использовать бесконтактный метод, применяя сжатый воздух. С осторожностью, избегая близкого контакта воздушного потока с мелкими деталями. А для контактной чистки можно использовать салфетки, ватки и безворсовые материалы. Например, чтобы убрать термопасту с процессора и кулера, можно использовать влажные салфетки для техники.
  • Органайзер. Винты и мелкие детали в компьютере уникальны, и после разборки системы лучше сделать так, чтобы они не укатились за стол и не попали в лапы к домашним животным. Для этого можно использовать магнитные коврики, ну а если такую роскошь не найти, то для этого можно приспособить органайзер.
  • Жидкость для очистки. Классически это спирт. А по современному — специальные спреи и очистители. Нужна для того, чтобы без проблем снять прикипевшую термопасту с процессора, радиатора или хрупкого графического чипа. А также для протирки контактов процессора и оперативной памяти.
  • Термопаста. Обязательно иметь в запасе, если меняем процессор, охлаждение (кулер) и даже если просто снимаем радиатор — термопасту менять обязательно. Это может быть всеми любимая Arctic Cooling MX-4 или любая другая с высоким коэффициентом теплопроводности.


Разбираем систему

Отключаем системник

Перед тем, как заглянуть в системник, его нужно обесточить. Выключаем компьютер кнопкой «Завершить работу», дожидаемся полного выключения и щелкаем тумблер на блоке питания, а затем достаем вилку из розетки:


Снимаем боковые панели

Модные и современные корпуса имеют стеклянные боковые панели, которые крепятся на четырех винтах. Обычно на них присутствуют резиновые проставки — их лучше не терять:


Батарейка

Перед работой с электроникой в корпусе, необходимо вытащить батарейку CMOS. После этого компьютер будет полностью обесточен и готов к любым действиям:


Посторонние помехи

Для удобства работы с околосокетным пространством следует убрать лишние провода и детали. Например, достать видеокарту:


Система охлаждения

Для доступа к процессору необходимо снять систему охлаждения.

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

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

Заводское крепление охлаждения для процессоров AMD обладает быстросъемной системой, где нужно отпустить прижимную лапку, и радиатор будет освобожден.

Универсальные системы крепления снимаются проще и нагляднее: достаточно открутить четыре винта и процессор свободен. Это относится как к системам Intel, так и AMD:

Перед снятием радиатора не забываем вытащить клемму вентилятора или помпы из разъема:


Очищаем рабочие поверхности

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

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

Аналогичные действия проводим и с подошвой охлаждения:

Установка нового процессора

Во время установки нового процессора необходимо соблюдать несколько правил. Процессор — это хрупкий элемент и его легко повредить неаккуратными движениями. Например, у процессоров Intel есть дополнительные компоненты со стороны контактной площадки, которые легко сбиваются от ударов или грубых действий. Не забываем и про контакты в сокете — больше тысячи ножек так и ждут, чтобы их погнули:

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

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


Вынимаем старый

Чтобы достать процессор из материнской платы, необходимо открыть сокет. Процессоры AMD держатся в нем только за счет тех самых ножек. Достаточно потянуть за рычажок, чтобы сдвинуть контакты внутри сокета и освободить процессор:


Сокеты для процессоров Intel устроены иначе — контакты процессора должны плотно прилегать к контактам в разъеме. Особенность такой конструкции диктует свои условия: прижимная сила в сокете достаточно высокая, поэтому не нужно бояться применить чуть больше усилия в работе.

Для открытия сокета необходимо нажать на лапку, сдвинуть ее в сторону от сокета и поднять вместе с нажимной рамкой. Это освободит процессор и его можно будет достать:


Перед установкой

Прежде чем установить новый процессор, необходимо осмотреть его на наличие сколов, а также отсутствие испорченных контактов и поврежденных электронных компонентов на задней части:

Монтаж

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



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


После остается опрокинуть верхнюю часть сокета и зафиксировать систему рычажком. Нажимаем на металлическую лапку и заводим ее под замок:


Установка системы охлаждения

Наносим термопасту

Одна из философских тем на любом ресурсе — сколько термопасты наносить и каким способом размазать ее на процессоре. Энтузиасты проводят целые тесты и исследования, замеряют температуру и сравнивают различные пасты. Но эти «гонки» скорее из разряда «наши руки не для скуки», поэтому обычному пользователю с его домашней системой будет достаточно получить базовые знания по этой теме. Если лень читать, можно посмотреть видео, наглядно и мельчайших подробностях:

Если вместе с процессором меняется и система охлаждения, то, скорее всего, на подошве нового кулера уже будет нанесен заводской слой термопроводника — устанавливаем и пользуемся. Для уверенности можно изучить и ассортимент самих паст, чтобы подобрать лучшее по цене/качеству. В остальных случаях смотрим видеоинструкцию и выбираем метод по душе:

Например, легендарная термопаста Arctic Cooling MX-4 до сих пор эффективно охлаждает мощные восьмиядерники в разгоне:


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

Возвращаем радиатор на место

Система охлаждения процессора собирается в обратной последовательности.

Если это платформа Intel с боксовым (стандартный) кулером на клипсах, то его необходимо подготовить — нужно взвести все четыре ножки крепления, а затем вставить «ершики» в отверстия возле сокета и зафиксировать их нажатием клипс.

Стандартная система охлаждения AMD работает еще проще — возвращаем на место радиатор и рычажком придавливаем его к процессору. Тема установки различных систем уже неоднократно обсуждалась.

Универсальные системы с четырьмя винтами идентичны на всех платформах. Попадаем креплением радиатора или водоблока по четырем стойкам и притягиваем с усилием — качественные системы выполнены таким образом, чтобы длина резьбы притягивающих гаек закончилась раньше, чем он успеет перетянуть:


После установки не забываем подключить вентиляторы и помпу (если установлена жидкостная система охлаждения). Вентиляторы подключаются к разъему CPU FAN, а помпа управляется через AIO PUMP — названия могут меняться в зависимости от производителя.

Сборка

Возвращаем батарейку BIOS на место:


А также устанавливаем видеокарту и не забываем подключить к ней дополнительное питание:


Проверяем, все ли разъемы и провода находятся на своих местах, закрываем боковые крышки и делаем пробный пуск системы:


Компьютер включился, инициализация BIOS завершилась и на экране появился экран загрузки операционной системы — задача по установке нового процессора выполнена успешно!

И еще.

После установки новых комплектующих или смены термопасты нужно убедиться, что компьютер работает в нагрузке исправно и стабильно. Для этого можно запустить стресс-тест, например AIDA System Stability Test:


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

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


  • Обычный регион — все листы с номерами, начиная с нулевого и до максимального значения, равного CPUID.0.EAX[31:0]. Номер максимального листа постоянно растёт и уже давно перевалил за десятку.
  • Расширенный регион — все листы, начиная с 0x80000000 и до максимального значения, равного CPUID.0x80000000.EAX[31:0]. Довольно долгое время это максимальное значение остаётся равным 0x80000008. Я не нашёл документальных доказательств, но у меня есть чувство, что само появление диапазона расширенных листов связанно с введением компанией AMD 64-битного расширения архитектуры IA-32.
  • Диапазон листов 0x40000000-0x4fffffff считается зарезервированным; обещается, что возвращаемые для него CPUID значения всегда будут равны нулю. Однако это не мешает некоторым использовать его для своих нужд. Например, виртуальные машины KVM возвращают в листе 0x40000000 четвёрку чисел [0, 0x4b4d564b, 0x564b4d56, 0x4d].

  • CPUID.1.ECX[0] — SSE3 — векторные инструкции.
  • CPUID.1.ECX[9] — SSSE3 — другие векторные инструкции.
  • CPUID.1.ECX[7] — EIST — Enhanced Intel SpeedStep®, динамическое изменение частоты процессора.
  • CPUID.1.EDX[25] — SSE — ещё векторные инструкции.
  • CPUID.1.EDX[26] — SSE2 — снова векторные инструкции.
  • CPUID.6.EAX[1] — Intel Turbo Boost, оверклокинг «из коробки».
  • CPUID.7.0.EBX[4] — Hardware Lock Elision, CPUID.7.0.EBX[11] — Restricted Transactional Memory — два расширения от Intel для поддержки транзакционной памяти.
  • CPUID.0x80000001.ECX[5] — LZCNT, инструкция для подсчёта числа старших нулевых бит, похожая (даже слишком) на BSR.
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. Каждый подлист описывает один кэш: данных, кода или совмещённый, определяет его уровень, ёмкость и т.д. Хватит ли четвёртого листа надолго — поживём, увидим.

Топология
  • SMT — уровень гипер-потока, сущности, содержащей индивидуальное архитектурное состояние (регистры), но потенциально разделяющей исполнительные устройства с другими потоками (в составе одного ядра).
  • Ядро (core) — сущность, содержащая индивидуальный набор вычислительных устройств (сумматоров, умножителей и т.д.). Одно ядро может иметь в себе один, два (у ЦПУ с HyperThreading) или четыре (у Xeon Phi) гипер-потока.
  • Пакет (пэкадж, package) — собственно железка целиком, покупаемая в магазине и вставляемая в разъём (сокет) на матплате. Имеет на себе как минимум одно ядро. В многопроцессорных серверных системах может быть несколько пэкаджей.
Изменяемые поля
  • Бит 18 регистра CR4 влияет на CPUID.1:ECX.OSXSAVE[27], обозначающий поддержку инструкции XSAVE.
  • Поля регистра IA32_MISC_ENABLE влияют сразу на несколько полей CPUID: бит 3 — на поля TM1 и TM2, бит 16 — на поле EIST, бит 34 — на поле XD (execution disable) и т.д.
  • Включение бита 22 регистра IA32_MISC_ENABLE вообще «отрезает» все листы таблиц CPUID старше третьего (видимо, это было сделано для совместимости с Windows NT4, не зря этот бит так и называется — NT4).
Разное

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

Читайте также: