Как отображается сообщение «Неподдерживаемый процессор установлен»?

55

У меня есть неподдерживаемый процессор вставляется в моей машине , и я получаю эту ошибку во время загрузки компьютера: Unsupported CPU installed. Мой вопрос не в том, как это исправить, а скорее:

Как отображается это сообщение об ошибке, если процессор не используется? Может ли BIOS работать без процессора?

Дэвид
источник
13
Очевидно, что процессор достаточно хорош для запуска процедуры проверки процессора и отображения некоторого текста на экране, но недостаточно хорош для загрузки реальной ОС на вашем оборудовании.
Дмитрий Григорьев
22
@DmitryGrigoryev "Очевидно, что процессор [...] недостаточно хорош для загрузки реальной ОС на вашем оборудовании." Не обязательно так очевидно. Что если я захочу загрузить, скажем, FreeDOS? Какой BIOS, чтобы сказать, что я загружаю на ПК? Есть причина, почему любой загрузчик MBR, даже сегодня, изначально работает в реальном режиме.
CVN
7
@ MichaelKjörling Я полагаю, что производитель BIOS решил, что поддержка TPM и обеспечение того, чтобы пользователи Windows были довольны, важнее, чем позволить вам загрузить FreeDOS.
Дмитрий Григорьев
3
@ MichaelKjörling: BIOS может содержать исправления микрокода, которые не могут быть применены. В то время невозможно предсказать удобство использования процессора.
MSalters
2
Какой процессор установлен и на какой материнской плате? Например, вы как-то устанавливали процессор Coffee Lake на плату Z270 или Z170? (Эта комбинация не будет работать, потому что Coffee Lake и ее чипсет Z370 внесли несовместимые изменения в распиновку разъема, несмотря на использование того же физического разъема LGA1151.)
bwDraco

Ответы:

50

Нет, BIOS не может работать без процессора.

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

Как только эти вещи проверяются, однако, ЦПУ начинает выполнение программы, содержащейся в ПЗУ BIOS, которая выполняет некоторые дополнительные проверки более высокого уровня (например, работают ли тайминги памяти, могут ли корректно загружаться дополнительные прошивки для встроенных устройств и т. Д.). Эта программа ПЗУ написано на языке ассемблера x86 и вовсе требует процессора для его выполнения.

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

В любом случае, однако, ЦП обеспечивает достаточную поддержку BIOS, чтобы он мог выполнять программы, хранящиеся в его ПЗУ (включая перемещение байтов в видеопамять и из нее). Это просто не может быть дальше, чем это.

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

Уэс Сайид
источник
21
Я думаю, что важные части этого ответа неверны. BIOS не может работать без процессора , как это самая первая программа ЦПУ выполняет . Он ничего не может сделать сам по себе. ( Кстати, без центрального процессора звуковые коды не поступают; он может делать звуковые коды без оперативной памяти благодаря тщательной инициализации только с регистрами). Это сообщение, вероятно, связано с тем, что оно ожидает от ЦП функций, которые оно не предоставляет, но из-за того, что x86 достаточно инициализации, можно выполнить его для печати.
DarkDust
21
Производитель материнской платы может создать простую аналоговую систему, которая подаст звуковой сигнал через 5 секунд после запуска, если только BIOS не отключит ее. Так что технически это будет не функция BIOS, а скорее функция отсутствия BIOS.
MSalters
5
Даже после редактирования это не правильно: это простая электрическая проверка того, что все выходы шины подключены к правильным входам. Если эта простая проверка не прошла, вы получите звуковой код (или, возможно, светодиодный дисплей на некоторых материнских платах). Эта проверка не требует процессора… Кроме того, не BIOS запускает выполнение программы в ПЗУ, это делает процессор, а эта программа - BIOS. Извините за придирки, но из вашего ответа звучит так, будто BIOS - это некое аппаратное обеспечение, которое частично не зависит от ЦП, хотя на самом деле BIOS является «просто» программой в ПЗУ (или флэш-памяти).
DarkDust
5
@TobySpeight: не волшебство. Просто еще один процессор. Это EC, встроенный контроллер, как у всех ноутбуков. В ноутбуке он управляет зарядом батареи и индикаторами состояния. На рабочем столе он может управлять обновлениями BIOS. Также иногда они управляют настройками питания платы и такими вещами, как USB-порты зарядки.
Зан Рысь
4
@WesSayeed: Вы уверены, что это так? Поскольку AFAIK, такой вещи, как «проверка шины», не существует, поскольку проверка чистого электрического провода потребует очень дорогих модификаций микросхем DRAM и обеспечит небольшую дополнительную ценность. Как только процессор получает питание, он начинает чтение и выполнение инструкций из ПЗУ BIOS, которые будут считывать SPD и настройки каждого DIMM из ОЗУ CMOS и пытаться инициализировать контроллер DRAM. Затем он быстро протестирует DRAM (POST) с последующей инициализацией всех других соответствующих периферийных устройств. Смотрите это видео: youtube.com/watch?v=xc08SN6Dhz4
mic_e
11

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

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

фургон
источник
3
Вероятно, проблема заключается в том, что не пропущены расширения набора команд. Скорее, это что-то вроде процессора, слишком нового для BIOS (например, IvyBridge в мобе Sandybridge без обновленного BIOS), поэтому он не знает, как правильно запрограммировать настройки управления. (Например, регистры конфигурации управления питанием ЦП, которые устанавливают пороговые значения мощности для Turbo, устройства синхронизации DRAM контроллера памяти или что-то в этом роде. И если ЦП слишком новый, могут быть новые вещи, которые должен делать BIOS, но это не знает о. Также графическое оборудование отличается в новых процессорах.
Peter Cordes
8

«Неподдерживаемый процессор» не говорит о том, что процессор не работает. Это, вероятно, означает, что микропрограмма на материнской плате (будь то BIOS или UEFI) выполнила некоторый код на ЦП, который определил, что ЦП несовместим с некоторыми конкретными функциями, на которые опирается материнская плата во время нормальной работы. Или просто, что материнская плата не была протестирована с этим процессором, и производитель не хочет рисковать.

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

Artelius
источник
... и когда Артелиус пишет «современные процессоры x86», если мы можем доверять вступительному абзацу Википедии по этому вопросу, это относится к чему-то более недавнему, чем процессоры Pentium 1993 года или 80486SL, что звучит правильно. Обратите внимание, что очевидно (я не проверял документацию Intel для проверки) CPUID полагается на регистр EAX, который был представлен с 80386 еще в 1985 году ...
CVn
-10

BIOS имеет контрольный список (POST), который он проходит для инициализации всех частей компьютера. Когда они не проходят проверку, вы получаете ошибку, такую ​​как ваша. Часть набора инструкций POST заключается в назначении прерывания для компонента. Если все компоненты правильно имеют прерывания, ОС загружается и прерывания передаются в ОС, чтобы ОС могла взаимодействовать с компонентами. Это упрощенная версия того, что происходит для краткости. Вот более подробный список происходящего: детали загрузки

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

Musselman
источник
4
Это неверно BIOS не может сделать что-то настолько сложное, как отображение информации на экране, если некоторые корректные возможности обработки от процессора не работают правильно.
Уэс Сайид
6
Похоже, у вас сложилось впечатление, что прерывания используются для управления оборудованием. Они не. Кроме того, прерывания в значительной степени выполняются через ЦП, поэтому, если ЦП не сможет выполнить код, он не может выполнить прерывание (которое является чуть более чем слегка прославленной инструкцией косвенного перехода) и, конечно , не сможет установить любой из векторов прерываний. Маловероятно, что BIOS сможет настроить обновление памяти, даже если память, в которой хранятся векторы прерываний (в x86, самый низкий 1 КБ адресного пространства), вряд ли будет использоваться.
CVN
6
В этом ответе есть более фундаментальная проблема: BIOS - это просто код, работающий на процессоре. Он не отделен от процессора и не может действовать сам по себе.
18:00