После установки переделанного серверного процессора Intel Xeon 5320 (LGA771) в материнскую плату Intel DG965SS (с разъёмом LGA775), операционная система Windows 10 заработала только при выключении в БИОСе режима "Core multiplexing" (в отличии от прекрасно работающей Ubuntu 17.10). При этом процессор работал только в однопоточном режиме, так что, согласно тесту CPU-Z, производительность в многопоточном режиме оказалась в 2 раза ниже, чем у Intel Core 2 duo E6300.
Оказалось, что микрокоды процессора должны быть обновлены. Можно сделать это и в программном режиме, причём в Ubuntu операция на голову проще, чем в Windows 10. Да и в последней нужно позаботиться о том, чтобы микрокоды обновлялись при каждой загрузке. Также есть возможность обновить микрокоды и в БИОСе, по крайней мере в некоторых BIOS от AWARD, AMI, Phoenix, особенно в версиях до UEFI.
Инструкций для материнских плат Intel намного меньше. И не удивительно. С Intel DG965SS пришлось очень прилично повозиться.
Перед обновлением микрокодов нужно установить процессор, поддержку которого мы хотим обеспечить. Если потребуется установить другой процессор, то процедуру придётся повторить.
Некоторые инструкции предлагают создать загрузочную дискету, т.к. не все компьютеры позволяют загружаться в флешки. Я сделал загрузочную флешку с FreeDOS при помощи бесплатного приложения с открытым исходным кодом Rufus (для этого нужно отметить галочкой "Create a bootable disk using" и выбрать из списка пункт "FreeDOS").
Далее нужно скачать для нашего процессора Intel Xeon E5320 с сайта Intel микрокоды "Linux* Processor Microcode Data File
Linux* Processor Microcode Data File". Скаченный архив нужно распаковать и найти в нём файл microcode.dat .
Из microcode.dat потребуется извлечь .bin файлы. Сделать это можно при помощи утилиты microdecode.exe
Следующая команда извлекает .bin файлы из microcode.dat в текущую папку, в которой должны находиться и microdecode.exe, и microcode.dat
microdecode.exe microcode.dat
В случае с "Linux* Processor Microcode Data File" версии 20170707 получилось 160 .bin файлов. Нам понадобятся только .bin файлы, относящиеся к нашему процессоры.
В некоторых версия БИОС можно увидить CPU ID. В случае с Intel DG965SS пришлось заглянуть в приложение CPU-Z. Сложив Family 6 Model F Stepping 7 получим 6f7
( Свернуть )Из 160 файлов с подходящим CPU ID оказалось всего 2: cpu000006f7_plat00000010_ver0000006a_date20101002.bin и cpu000006f7_plat00000040_ver0000006b_date20101002.bin .
Осталось достать приложение для обновления микрокодов. Скачиваем checkup.zip и распаковываем его содержимое в корень загрузочной флешки. Также копируем в корень флешки нужные .bin файлы: cpu000006f7_plat00000010_ver0000006a_date20101002.bin и cpu000006f7_plat00000040_ver0000006b_date20101002.bin.
Далее на флешке редактируем при помощи текстового редактора (Notepad++, Notepad,... но только не MS Word) файл autoexec.bat
Для обновление микрокодов нужно выполнить checkup7.exe (Processor Update Utility for Intel(R) P6 and Intel NetBurst(R)) с параметром -p и указанием .bin файла.
Я пробовал сделать autoexec.but со следующим содержанием:
checkup7.exe -p cpu000006f7_plat00000010_ver0000006a_date20101002.bin
а также с таким:
checkup7.exe -p cpu000006f7_plat00000010_ver0000006a_date20101002.bin
cpu000006f7_plat00000040_ver0000006b_date20101002.bin
В итоге остановился на первом варианте. При этом checkup7.exe выдавал ошибку. Но зато появлялась командная строка, в которой команда DIR позволяла найти сокращённое FreeDOS имя файла.
Далее оставалось ввести пару команд:
checkup7.exe -p cpu000~1.bin
checkup7.exe -p cpu000~2.bin
Одна из команд не обновляла микрокоды, а другая приводила к успешному результату.
Чтобы не заморачиваться с выбором файлов для нашего процессора, можно объединить все .bin файлы в один.
copy /b *.bin all.bin
Повторная попытка обновить те же самые микрокоды конечно же показывает, что в этом нет необходимости.
В результате команда
checkup7.exe -p all.bin
приводила к сообщению "No changes are needed" (изменения не нужны):
=========================================================================
| Processor Update Utility for Intel(R) P6 and Intel NetBurst(R) |
| Microarchitecture Family of Microprocessors |
| Version 7.14, 09/23/2005, Production |
| Copyright 1995-2004, Intel Corporation. |
=========================================================================
The system BIOS supports the microcode update API.
Searching database file for Processor Signature=000006F7 Platform ID=40
Attempting to permanently install the microcode update(s) in your system BIOS.
Checking microcode update for processor signature 06F7 and platform ID 40:
BIOS microcode update revision = 6B
Database microcode update revision = 6B
The microcode update currently loaded in your processor(s) is the
latest revision as of 09/23/2005. No changes are needed.
Please make sure you have the latest version of the utility.
В результате обновления микрокодов процессор Intel Xeon E5320 в Windows 10 заработал в двухпоточном режиме
К большому сожалению, при включении режима "Core Multiplexing" в БИОС материнской платы Intel DG965SS в Windows 10 продолжает возникать ошибка "SYSTEM THREAD EXCEPTION NOT HANDLED", так что мултиплексирование ядер процессора приходится отключать (либо нужно отказаться от Виндоуз и работать в Linux).
p.s. Получилось всё в последний момент. Вроде бы всё просто, но без инструкций пришлось потратить очень много времени. Хотел уже всё бросить и искать альтернативный БИОС вроде coreboot от Google, либо пытаться обновлять микрокоды перед загрузкой Windows 10 (хотя не понимаю, как это можно сделать).
Смотрите также: