Какво дава фърмуера на микрокода на процесора. Коригиране на грешки в процесора. Процесори на Intel

Представяме ви BioStar A740G M2L+ донор (AMD 740G / SB710) и BioStar A740G M2+ реципиент (AMD 740G / SB700). Дънната платка с буквата “L” е по-нова и официално поддържа AM3 процесори, за разлика от другата, която е ограничена само до AM2 + процесори. Молейки за сравнителен анализтехния биос.
От офиса само зареждане на сайта Последна актуализация BIOS фърмуер за всяка от тези дънни платки:
- за A740G M2+ най-новата бета версия A74GM916.BSSза септември 2009г
- за A740G M2L+ - файл 74GCU511.BSS- май 2010г

След това се въоръжаваме с помощната програма MMTOOL (Използвах версии 3.22, 3.23 и 3.26 - не намерих разлики в работата). За да работи с MMTOOL, файловите разширения на фърмуера на BIOS трябва да бъдат преименувани на *.rom.

Сега стартираме два MMTOOL и зареждаме файлове на фърмуера от две подложки в тях. дъски. Обръщаме внимание на различните размери в колоната „Изходен размер“ (и в „Размер в Rom“, разбира се) на модул 11 „P6 Micro Code“ във всеки от фърмуерите.

Отидете в раздела CPU PATCH за подробно сравнение:

Донорският файл 74GCU511.rom - cpu_list съдържа 14 реда с поддръжка на CPURev.ID + 1 празен ред (фиг. 1).

Бета версията на получателя A74GM916.rom - cpu_list съдържа 13 реда с поддръжка на CPURev.ID + 1 празен (фиг. 2).

След анализ на списъците на тези два BIOS-а става очевидно, че за по-нова дънна платка разработчиците са използвали по-нови корекции за AMD процесори, където микрокодът на два реда с CPURev.ID 1043 и 1062 е коригиран (с дата 2009/07/31) и е добавен един ред с CPURev.ID 10A0 (с дата 2010/02/17).

Метод номер 1 - модификация на отличителни низове.
Тези три отличителни реда се извличат от донора 74GCU511.rom - действието "Извличане на данни за корекция" + "Прилагане" + 1 последен празен ред и се записват в отделни файлове.

Преди това в секцията CPU PATCH на файла получател A74GM916.rom се изтриват два реда с CPURev.ID номера 1043 и 1062 (чийто микрокод е по-стар, отколкото ще вмъкнем по-нататък) и последният празен ред - действията „Изтриване на корекция Данни” + “Приложи” ( Фиг.3).

След това се вмъква по-нов микрокод на свой ред от четири предварително получени файла с корекции за CPURev.ID 1043, 1062, 10A0 и празен низ (фиг. 4).

Обърнете внимание на размерите („Размер на източника“ и „Размер в Rom“) на модул 11 „P6 Micro Code“ преди и след прилагане на тези промени във файла получател.
След прилагане тези размери за реципиента (фиг. 6) ще станат идентични с размерите на същия модул в донорския файл 74GCU511.rom (фиг. 5).
Струва си да се отбележи, че е лесно да се разбере как се формира размерът на модула (всеки ред в раздела CPU PATCH отнема 2048 байта).

По-добре е да запазите промените под ново име на файл.
След това този файл се проверява, така че MMTOOL да се отваря отново без грешки.

Метод номер 2 - модификация чрез подмяна на целия модул.
Всъщност той е описан в интернет (например частично).

В MMTOOL ограждаме донорския файл 74GCU511.rom, отиваме в раздела „Извличане“ и търсим реда „P6 Micro Code“. След това го избираме, в полето "module file" му даваме името ncpucode.bin и изпълняваме Extract module "in uncompressed form".

Сега в MMTOOL зареждаме файла получател A74GM916.rom, отиваме в раздела „Замяна“ и отново търсим реда „P6 Micro Code“. Изберете го, изчакайте Преглед и изберете нашия донорен модул ncpucode.bin. Щракнете върху Replase и след това се съгласете да замените този модул.

Отново обърнете внимание на размерите („Размер на източника“ и „Размер в Rom“) на модул 11 „P6 Micro Code“ преди и след замяната на този модул във файла получател.
След прилагане тези размери за реципиента (фиг. 7) ще станат идентични с размерите на същия модул в донорския файл 74GCU511.rom (фиг. 5).

Ако сравним резултатите от двата метода (фиг. 6 и фиг. 7), тогава има забележима разлика от 10 байта в RomLoc адреса на модула „Defined или Reserved“ след актуализирания модул „P6 Micro Code“ - може би това са характеристиките на MMTOOL...

Заключение и послеслов.
По този начин, от различни BIOS фърмуери на различни рогозки. платки на сокет AM2 + (и дори AM3 за сравнение) можете да намерите най-новите микрокодове за всеки тип CPURev.ID, както в Award, така и в AMI BIOS, след което да ги комбинирате в един ncpucode.bin.
Впоследствие за мен се оказа с размер 32768 байта от 16 реда (микрокодове) с най-новите дати от изследваните фърмуери на различни BIOS-и: от 15-ти различни видоверевизии на процесора за сокет AM2+ (040A, 0413, 0414, 041B, 0433, 0680, 0C1B, 1000, 1020, 1022, 1040, 1041, 1043, 1062, 10A0) и 16-ти ред за RevID 0000 (вероятно ревизии за някакъв универсален микрокод на процесори, които не са описани в други редове - IMHO, например бъдещи).

Когато комбинирате свой собствен ncpucode.bin чрез импортиране на необходимите пачове (микрокодове) за всяка необходима ревизия на процесора, можете да използвате абсолютно всеки фърмуер на AMI BIOS с модула P6 Micro Code като лабораторен.

При запазване на файла на фърмуера обаче беше забелязана неприятна функция на MMTOOL - по някаква причина помощната програма добави 8 нулеви байта в края на модула P6 Micro Code - оказа се, че е с размер 32776 байта. При извличането на същия MMTOOL от лабораторния фърмуер, файлът ncpucode.bin също стана с размер 32776 байта.
Можете да редактирате това с прости редактори, достъпни за всички. Но аз също (случайно) открих алтернативен начин: при извличане универсална полезност BIOS_EXT.EXE на всички модули от лабораторния фърмуер, файлът ncpucode.bin вече се оказа с правилния размер от 32768 байта - самата помощна програма BIOS_EXT.EXE правилно определи края на модула "P6 Micro Code", когато го записа в файл.

Ако чипсетът и дънната платка LGA 775 могат теоретично да поддържат XEON 771, но родният BIOS не го поддържа и няма модифициран, тогава можете сами да модифицирате BIOS.

ВАЖНО

1. Всички промени във фърмуера на BIOS (обикновено .ROM файл) правите на свой собствен риск. В случай на грешка се получава гарантирана „тухла“ от дънната платка
2. Размерът на файла на оригиналния фърмуер и модифицираната версия трябва да съвпадат до байт.

3. Фърмуер на модифицирания BIOS файлобратно към микросхемата се извършва само с помощта на собствена помощна програма от разработчика на дънната платка (да се изтегли от уебсайта на производителя).
4. В горната част дънни платкиах, самият BIOS има вграден модул за актуализиране на фърмуера (например помощната програма EZ Flash 2 за ASUS P5Q в секцията Инструменти) - най-добрият вариант.

Как да го направите по-добре:
1. Все още ли търсите в интернет готова версия с поддръжка на XEON?
2. Изтеглете от официалния сайт последна версияфърмуер и добавяне на микрокодове?

Както можете да видите, вторият вариант е по-безопасен; във всеки случай изтегляте оригиналния фърмуер от уебсайта на производителя на дънната платка, т.е. най-новата версия и липсата на грешки са гарантирани (по-точно корекцията на всички грешки, открити по-рано). Когато изтегляте готова версия от ресурси на трети страни (по очевидни причини тя няма да бъде на оригиналния сайт) - можете да получите крива версия и да убиете BIOS.

Предварително можете да оцените наличието на микрокодове XEON във фърмуера на BIOS.

- вземете текущото изображение на AMI BIOS чрез Universal BIOS Backup ToolKit 2.0
- прегледайте съдържанието на получения ROM файл през AMIBCP V 3.37

Опция за BIOS AMI (American Megatrends Inc.).

1. Изтеглете най-новата версия BIOSот уебсайта на производителя на вашата дънна платка

3. Изтеглете микрокодове за процесори XEON 771: lga771_microcodes

4. Разберете CPUID на вашия процесор, като използвате AIDA64или подобна програма (изглежда като cpu0001067Ah). Ако BIOSще бъде зашит преди инсталирането на процесора, тогава пропускаме този елемент.

5. Разопаковайте архивите MMToolи lga771_микрокодовеи излезте от файлове с разширение .binсамо тези файлове, чието начало съвпада с CPUID на вашия компютър (напр. cpu0001067a_plat00000044_ver00000a0b_date20100928.bin)

Ако не знаем какъв код, тогава зашиваме всичко.

А.Ние стартираме MMTool. Натиснете бутона (1) Заредете ROMи заредете най-новия BIOS за вашата дънна платка в програмата. Ако имате най-новия BIOS, тогава можете също да обедините помощната програма за архивиране на BIOS от компютъра и да я редактирате.

b.Отидете на раздел (2) Кръпка на процесора, след това бутон (3) Прегледайте, отворете файла .binсъответстващ на вашия CPUID.

° С.Оставете опциите по подразбиране. „Вмъкване на данни за корекция“и натиснете бутона (4) Приложи.

След ъпдейт с модифициран биос трябва да направите фабрично нулиранечрез бутона за нулиране или джъмперите, ако дънната платка поддържа такова нулиране, или като извадите батерията на BIOS за няколко минути. Освен това процесорът вече се възприема правилно от компютъра и работи както трябва.

Основна входно-изходна система - базова система I/O, съкратено като BIOS. Малък чип на дънната платка, който първи получава управление, когато компютърът е включен. При условие: основни настройки PC проверка на компютърните компоненти при стартиране...

Не е тайна, че процесорът е машина с микропрограмно управление. И всяка от неговите инструкции е набор от микроинструкции, флашнати в ROM на процесора по време на неговото производство. Грешките в микрокода и грешките в дизайна (errata) могат да причинят отклонения от спецификациите на процесора и грешки в работата му. Когато процесорът бъде пуснат, неговата спецификация и списък с открити грешки обикновено се публикуват.

Всички процесори Intel P6, които включват семействата Pentium Pro, Pentium II & III, Celeron, Pentium II & III Xeon и Pentium II Overdrive, имат забележителната функция "препрограмируем микрокод". В тези процесори е възможно да се промени микрокода, т.е. възможно е да се коригират грешки в софтуерната и схемната реализация на конкретни процесори от семейството P6 и някои вградени грешки почти на хардуерно ниво. Грешките могат да се появят на етапа на проектиране на процесорите и те се коригират точно чрез промяна на микрокода. Всяка от подфамилиите (PII, Celeron, PPro, Xeon) има спецификация. С пускането на всеки нов степпинг на процесора (в него всички устройства са идентични в рамките на технологичните отклонения), Intel публикува актуализация на спецификацията за него, която посочва откритите и коригирани errata (отклонения от спецификацията).

Тези грешки по принцип могат да усложнят живота. софтуер, който работи на тези "дефектни" процесори (и потребителя ;-)) .

Разбира се, всичко зависи от конкретните грешки. За да се отървете от такива ужаси, е необходима промяна в микрокода на процесора, в резултат на което грешката може да бъде напълно елиминирана или последствията от нейното присъствие могат просто да бъдат смекчени.

Между другото, поддръжката на BIOS за новоиздадени процесори се определя по-специално от наличието на подходящия фърмуер. Например, когато се появи първият Celeron, именно липсата на подходяща версия на микрокода попречи на системата да стартира правилно с този процесор.

Самите актуализации на микрокод са 2K блокове данни, флашнати в системния BIOS. Такъв блок има за всеки степинг на процесора от семейството P6. Intel доставя най-новите версии на микрокод на водещи доставчици на BIOS. Базата данни за актуализации се актуализира и актуализира, когато новите модели и версии на фърмуера станат достъпни. Intel препоръчва да актуализирате версиите на фърмуера, като използвате неговата помощна програма, когато инсталирате нов процесор на дънната платка или препрограмирате флаш паметта, за да сте сигурни, че BIOS съдържа най-много свежа версиямикрокод. Тази програма определя използвания процесор (използвайки CPUID) и търси съответната актуализация в своята база данни. Ако бъде намерена нова версия на микрокода, помощната програма локално мига кода в BIOS, без да засяга останалите области. Че. няма нужда да препрограмирате цялата флаш памет, за да поддържа новия процесор, както беше преди. Intel периодично публикува актуализации на базата данни на своя уебсайт.

Най-новата достъпна за нас база данни е с версия 5.01 и съдържа следните версии на микрокод:

ПроцесорСтеппинг на процесораАктуализация на микрокод Rev
Процесор Pentium III0x6720x04
Процесор Pentium III0x6730x02
Процесор Pentium III Xeon0x6720x21
Процесор Pentium III Xeon0x6730x22
Процесор Pentium II0x6330x34
Процесор Pentium II0x6340x35
Процесор Pentium II0x6500x32
Процесор Pentium II0x6510x30
Процесор Pentium II0x6520x14
Процесор Pentium II0x6530x01
Процесор Pentium II Xeon0x6520x29
Процесор Pentium II Xeon0x6530x04
Процесор Intel Celeron0x6500x32
Процесор Intel Celeron0x6510x30
Процесор Intel Celeron0x6600x09
Процесор Intel Celeron0x6650x02
Процесор Pentium II OverDrivex16320x02
Процесор Pentium Pro0x6120xC6
Процесор Pentium Pro0x6160xC6
Процесор Pentium Pro0x6170xC6
Процесор Pentium Pro0x6190xD2

Можете да изтеглите най-новата версия на помощната програма за поправка на микрокод директно от тук: pupdt501.exe (115 Kb)

Старата база данни (PEP15.PDB) може да бъде изтеглена от тук: pupdt461.exe (111 Kb)

След като помощната програма приключи, трябва да изключите захранването на компютъра. Актуализацията се изтегля на процесора по време на POST при всяко стартиране на системата. Естествено, за да работи помощната програма, е необходимо да позволите флаш паметта да бъде презаписана с джъмпер или в BIOS Setup. Програмата трябва да се стартира от "голия" DOS.

Този идеален сценарий обаче изисква поддръжка на BIOS за специален API за актуализиране на микрокод на процесора, който позволява на помощната програма за актуализиране на BIOS да зареди нов микрокод.Ако използваната версия на системния BIOS не поддържа API, потребителят няма друг избор, освен да получи нов версия от производителя на дънната платка.Случва се обаче намирането му да не е толкова лесно, ако не и невъзможно.Често, след преустановяване на производството на модел дънна платка, производителят спира да пуска актуализации на BIOS за него, но в същото време нови процесори може да се появят в продажба и потребителят може да поиска да инсталира нов процесор във вашата система.

В този случай помощната програма все още може да изтегли технически поправки директно на процесора. В този случай помощната програма извиква зареждане операционна системаведнага след актуализацията на фърмуера. Актуализацията на фърмуера обаче ще бъде загубена при меко или твърдо рестартиране на системата.

Възниква въпросът какъв е рискът от самообновяване на фърмуера? Е, първо, първо трябва да се уверите, че наистина имате нужда от това. Ако версията на фърмуера е стара, но производителят на дънната платка не предлага нови версии на BIOS, но най-важното е, че сте изправени пред нестабилна работа на някое приложение и очаквате, че промяната на микрокода на процесора ще ви помогне. Само в този случай има смисъл сами да промените фърмуера. А за това с какво е изпълнен - ​​според мен нищо опасно. Първо, не забравяйте, че зареждането на актуализация на микрокод в процесора се използва във всички BIOS на P6 платки и е от дълго време (много хора видяха мистериозната актуализация на микрокод: опцията Активиране/Деактивиране в Настройката). И нищо! Всичко работи.

Това отново подчертава необходимостта от използването му. Кой знае как щяха да са нещата без тази актуализация! Единствената разлика е, че по-рано микрокодът беше актуализиран с инсталацията нова версияфлаш и сега можете да препрограмирате не цялото съдържание на BIOS, а само ограничена част.

моя личен опитработата с тази програма досега беше ограничена до 7 случая, от които беше възможно да се актуализира микрокодът само на една дънна платка (Abit LX6 с PII 233). В други случаи BIOS вече съдържа актуализирани версии на микрокода. Освен това не беше възможно да се срещне BIOS, който не поддържа актуализации на микрокод.

Що се отнася до подобна възможност за актуализиране на микрокода в процесори от други производители (AMD, Cyrix), не можах да намеря информация по този въпрос. Но съм почти сигурен, че тези процесори имат подобна способност да променят микрокода.

Съвременните процесори са сложни устройства, които могат да имат грешки. Освен това, вместо да изпълняват директно x86 инструкции, съвременните x86 процесори съдържат вътрешен код, който реализира поддръжка за набора от инструкции x86. Вътрешният код се нарича микрокод. Микрокодът може да се актуализира, за да коригира или смекчи грешките на процесора.

Някои грешки в процесора могат да доведат до срив на Firefox. Например, известно е, че Firefox 57 и по-нови версии от време на време се сриват на процесори Broadwell-U със стар микрокод по начин, който не се наблюдава при по-новите версии на микрокод Broadwell-U.

Актуализациите на микрокод могат да бъдат заредени в процесора чрез фърмуер (обикновено наричан BIOS дори на компютри, които технически имат UEFI фърмуер вместо стар стил BIOS) или от операционната система. Актуализациите на микрокода не се запазват при рестартиране, така че в случай на система с двойно зареждане, ако актуализацията на микрокода не се достави чрез BIOS, и двете операционни системи трябва да предоставят актуализацията.

На Mac, за да имате актуална система, приложете всички системни актуализации на OS X и актуализации на фърмуера на Apple, предлагани в панела Актуализации на App Storeап.

За да позволите на Windows да зареди актуализиран микрокод в процесора, уверете се актуализация на windowsе активиран и настроен да инсталира актуализации.

За да видите микроархитектурата на процесора и коя версия на микрокода се използва, изпълнете командата reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0 в командния ред на Windows. ( Можешотворете командния ред, като натиснете Windows + R, напишете cmd и натиснете Return.) Редът с етикет „VendorIdentifier“ показва доставчика на процесора (GenuineIntel за Intel или AuthenticAMD за AMD). Редът с надпис „Идентификатор“ дава микроархитектурата като три числа: „Семейство“, „Модел“ и „Стъпка“. Те са подходящи за идентифициране дали дадена грешка в процесора може да е от значение за процесора на вашия компютър. Редът с надпис „Актуализиране на ревизия“ показва текущата ревизия на микрокода (за конкретната микроархитектура) с нули от двете страни. Например Update Revision REG_BINARY 000000001E000000 означава, че ревизията е 1E (шестнадесетичен). Редът с надпис „Предишна версия на актуализацията“ показва версията на микрокода, заредена от BIOS.

Ако доставчикът е GenuineIntel, семейството е 6, моделът е 61 и степента е 4, за да се избегнат сривове с Firefox 57 или по-нова версия, ревизията на микрокода трябва да бъде 1A или по-висока.

Дали актуализациите на микрокод се използват по подразбиране зависи от дистрибуцията на Linux и може да се различава за процесорите на Intel и AMD.

  • В базирани на Debian дистрибуции, включително Ubuntu, актуализациите на микрокод за процесори Intel се предоставят от пакета intel-microcode, а актуализациите на микрокод за процесори AMD се предоставят от пакета amd64-microcode.
  • В Arch актуализациите на микрокод на AMD са инсталирани по подразбиране, но актуализациите на микрокод на Intel изискват специални стъпки.
  • Във Fedora актуализациите на микрокод се инсталират по подразбиране.

За да видите микроархитектурата на процесора и коя версия на микрокода се използва, изпълнете командата less /proc/cpuinfo в терминала. Редът с етикет "vendor_id" показва доставчика на процесора (GenuineIntel за Intel или AuthenticAMD за AMD). Микроархитектурата е дадена като три числа на редове, обозначени като "семейство на процесора", "модел" и "стъпка". Те са подходящи за идентифициране дали дадена грешка в процесора може да е от значение за процесора на вашия компютър. Редът с надпис "микрокод" показва номера на версията на микрокода (за конкретната микроархитектура) в шестнадесетичен формат.

От началото на януари беше трудно да пропуснете новините относно хардуерните уязвимости на Spectre и Meltdown - темата се оказа толкова сериозна и изчерпателна. Въпреки че производителите са наясно с тези проблеми от миналото лято, повечето изглежда са започнали да реагират едва след оповестяването на подробностите. Екипи на GoogleПроект Нула.

Например през януари Intel, наред с други корекции, пусна актуализации на микрокод срещу Spectre за своите процесори Broadwell, Haswell, Skylake, езерото Кабии кафе езеро. Но почти веднага се оказа, че те водят до провали и. Първоначално Intel заяви, че проблемът засяга само чипове Broadwell и Haswell, но по-късно призна наличието на повреди на компютри с процесори Skylake, Kaby Lake и Coffee Lake и партньорите и потребителите засега да се въздържат от инсталиране на пачове. И накрая, в началото на февруари, коригирана версия на микрокода, но само за мобилни и настолни потребителски чипове от семейството Skylake.

Сега, след месец на интензивно тестване и корекции от Intel и неговите партньори, дойде времето за други повече или по-малко подходящи процесори: бяха пуснати актуализации на микрокод за чипове, базирани на архитектурите Kaby Lake и Coffee Lake, както и Skylake- базирани платформи, незасегнати от предишната актуализация. Говорим за процесори от 6-то, 7-мо и 8-мо поколение. Intel Core i, както и най-новите семейства Core X, Xeon Scalable и Xeon D.

Новият вариант на фърмуера ще бъде достъпен в повечето случаи чрез OEM версии на нов фърмуер на дънната платка и лаптопа. Intel все още насърчава хората да поддържат системите си актуални текущи версии, а също така публикува документ, който очертава състоянието на подобни корекции на микрокод за други продукти, включително по-ранни чипове, започващи с 45nm Core 2. За някои от тези чипове корекциите са само планирани, за други те са в процес на ранно тестване, за третата - вече съществува под формата на бета версия. Като правило, колкото по-стара е архитектурата, толкова по-късно ще получи фърмуер със защита срещу Spectre. Въпреки това, актуализациите на микрокод за повече или по-малко текущи архитектури Sandy Bridge, Ivy Bridge, Haswell и Broadwell вече са в бета тестване. Освен това редица чипове Atom и дори ускорителите Xeon Phi вече са получили корекции.

Intel припомни, че има и други методи за борба с откритите уязвимости на блока за прогнозиране на разклоненията в съвременните процесори. Например Retpoline, разработен от Google срещу Spectre CVE-2017-5715 (инжектиране на целта на клон или инжектиране на цел в клон). За тези, които се интересуват да научат повече за Retpoline и как работи, компанията публикува специална бяла книга.

Актуализациите на микрокод Anti-Specter, пуснати от Intel, ще започнат да се разпространяват през следващите дни и седмици под формата на нов BIOS фърмуер за различни дънни платки. Любопитно е дали те ще имат допълнителен ефект върху влошаването на производителността на крайните системи?