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

Например през януари Intel пусна анти-Specter актуализации на микрокод за своите процесори Broadwell, Haswell, Skylake, Kaby Lake и Coffee Lake, наред с други пачове. Но почти веднага се оказа, че те водят до провали и. Първоначално 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 и как работи, компанията публикува специален технически доклад.

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

Всъщност оригиналният метод, оборудване и микрокодове могат да бъдат намерени (директно инструкции за AMI) и в повечето случаи използването на този метод не създава никакви проблеми и няма клопки, но в моята практика редовно се сблъсквах с такъв проблем:

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

Като компромис избрах следното решение - вземаме най-новите версии на микрокодове за всички процесори поколение COREвъв всички конструкции (Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon *3xxx/*5xxx) и ги заменете с всичко, което е било преди. Наборът от микрокодове е както следва:

Обемът на този комплект е само 76 килобайта. Този файлполучен чрез комбиниране на тези файлове:

cpu00010676_plat00000001_ver0000060f_date20100929.bin
cpu00010676_plat00000004_ver0000060f_date20100929.bin
cpu00010676_plat00000010_ver0000060f_date20100929.bin
cpu00010676_plat00000040_ver0000060f_date20100929.bin
cpu00010677_plat00000010_ver0000070a_date20100929.bin
cpu0001067a_plat00000011_ver00000a0b_date20100928.bin
cpu0001067a_plat00000044_ver00000a0b_date20100928.bin
cpu000006f2_plat00000001_ver0000005d_date20101002.bin
cpu000006f6_plat00000001_ver000000d0_date20100930.bin
cpu000006f6_plat00000004_ver000000d2_date20101001.bin
cpu000006f7_plat00000010_ver0000006a_date20101002.bin
cpu000006f7_plat00000040_ver0000006b_date20101002.bin
cpu000006fb_plat00000001_ver000000ba_date20101003.bin
cpu000006fb_plat00000004_ver000000bc_date20101003.bin
cpu000006fb_plat00000010_ver000000ba_date20101003.bin
cpu000006fb_plat00000040_ver000000bc_date20101003.bin
cpu000006fd_plat00000001_ver000000a4_date20101002.bin

Самата процедура за модификация също се промени малко и стана, ако не по-лесна, то по-бърза:

Етап 1- отворете изображението на BIOS в програмата MMTool:



Стъпка 2- за проверка отидете на последния раздел(CPU PATCH) и вижте броя на микрокодовете. Ето ги например 31 броя:

Стъпка 3- отидете в раздела Замяна и потърсете елемента „P6 Micro Code“ в него:

Стъпка 4- след като изберете елемента „P6 Micro Code“, натиснете бутона Ikshtsyu, изберете файла ncpucode.bin, описан по-горе, и го заменете с бутона Replace:





Стъпка 5- за да проверите, отидете на последния раздел (CPU PATCH) и вижте броя на микрокодовете. След промяна на микрокодовете останаха 17, последната версия:

Няма фундаментална разлика с реда за модификация, описан на delidded.com. В повечето случаи изходът, разбира се, не е същият, но процесорът получава желания микрокод. От субективно добри точкиБих искал само да обърна внимание на факта, че микрокодовете гарантирано се актуализират за всички текущи процесори, независимо дали са „граждански“ или „сървърни“, и практически няма риск да получите съобщение за липса на място. Въпреки че в моята практика дори за такъв набор от микрокодове нямаше достатъчно място няколко пъти, това беше с BIOS за платки ECS P4M900T-M и ECS P4M900T-M2, които обикновено са съвместими с Xeon E5450.

По традиция публикувам линк към архива с инструменти - (zip, 234KB). Архивът съдържа изпълним файл MMTOL.exe(версия 3.22 BKMOD), фърмуерен файл за всички 45/65nm core/xeon процесори ncpucode.bin, както и два файла 45nm.binи 65nm.binс микрокодове само за 45nm процесори и само за 65nm. Използването на тези файлове може да бъде полезно в случаите, когато е необходимо да се освободи допълнително място в BIOS, например за нов фърмуер на някакъв контролер, мрежа, диск и др.

!NB: Нито файлът ncpucode.bin, нито файловете 45nm.bin/65nm.bin поддържат процесори Pentium 4, Celeron (без буквени индекси), Pentium D, Celeron D и Xeon W (Xeon 5080 например). Това са процесори от поколение NetBrust.

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

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

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

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

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

За да видите микроархитектурата на процесора и коя версия на микрокода се използва, изпълнете командата 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). Микроархитектурата е дадена като три числа на редове, обозначени като "семейство на процесора", "модел" и "стъпка". Те са подходящи за идентифициране дали дадена грешка в процесора може да е от значение за процесора на вашия компютър. Редът с надпис "микрокод" показва номера на версията на микрокода (за конкретната микроархитектура) в шестнадесетичен формат.

Можете да оптимизирате производителността на процесора Intel или AMD на вашия компютър, като инсталирате най-новия фърмуер на процесора. Оптимизацията се постига основно чрез коригиране на грешки в стандартния микрокод, получен от фърмуера на дънната платка.

Актуализациите на фърмуера на BIOS/UEFI на вашата дънна платка обикновено съдържат нови версии на фърмуера за поддържани дънна платкацентрални процесори. Поради тази причина първото нещо, което трябва да направите, е да се уверите, че използвате най-новата версия на BIOS/UEFI.

Това ръководство ви позволява да оптимизирате производителността само на онези процесори, които са разработени от Intel и AMD.

Бележки:

  • Инсталиране на пакет софтуерс микрокодове може да доведе до нестабилност на компютъра. Поради тази причина трябва да инсталирате този пакет само когато имате проблеми, свързани с функционирането на процесора на вашия компютър!
  • Не инсталирайте софтуерния пакет на фърмуера на процесора, ако е пуснат преди BIOS/UEFI фърмуера на дънната платка на вашия компютър!

1. Процесори на Intel

В случай на използване на производствения процесор от Intelможете да продължите, както е описано по-долу.

Забележка:Имате ли нужда от пакет фърмуер на процесора Intel, който е по-нов от този в официалното хранилище на дистрибуцията? В този случай можете да изтеглите файла на софтуерния пакет с разширение .debот

Мениджър на пакети Synaptic Софтуер

Мениджър на пакети Synaptic„Търсене на компютър“), въведете заявка Синаптичен Мениджър на пакети Synaptic Мениджър на пакети Synaptic "Търсене" "микрокод"и натиснете бутона "Търсене"до него.

3.201501106.1 (в този случай версия 3 на пакета е създадена на 6 ноември 2015 г.).

« intel-микрокод"и натиснете бутона "Приложи"

dmesg | grep микрокод

Въведете

2. Процесори на AMD

При използване на процесори, произведени от AMD това ръководствоще бъде от значение само за тези, пуснати след 2006 г. (AMD K10 и по-нови). Ако вашият компютър има инсталиран един от тези процесори, можете да продължите, както е описано по-долу.

Забележка:Имате ли нужда от пакет фърмуер на AMD CPU, който е по-нов от този в официалното хранилище на дистрибуцията? В този случай можете да изтеглите файла на софтуерния пакет с разширение .debот хранилището за разпространение на Debian, където са поставени пакетите най-новите версии. След като изтеглите пакетния файл, трябва да го намерите с помощта на файловия мениджър и да щракнете двукратно, за да инсталирате микрокодовете в системата. След като инсталацията приключи, трябва да рестартирате компютъра си.

A. Ако използвате дистрибуцията на Ubuntu, ще трябва да инсталирате Мениджър на пакети Synaptic(това може да стане с приложението Софтуер). В Linux Mint този мениджър на пакети присъства веднага след инсталирането.

Б. Преди всичко трябва да бягате Мениджър на пакети Synaptic. AT Разпределение на Ubuntuза тази цел щракнете върху бялото лого на Ubuntu в горната част на страничната лента ( „Търсене на компютър“), въведете заявка Синаптичени изберете първото от предложените приложения Мениджър на пакети Synaptic. Няма нужда да използвате полето за бързо търсене на софтуерни пакети на главния прозорец Мениджър на пакети Synaptic, тъй като съответният механизъм е ненадежден; вместо това натиснете бутона "Търсене"на лентата с инструменти, в полето за търсене на диалоговия прозорец, който се отваря, въведете заявка "amd64-микрокод"и натиснете бутона "Търсене"до него.

C. Сега трябва да проверите датата на създаване на софтуерния пакет с микрокодове на централните процесори: този пакет трябва да бъде създаден по-късно от фърмуера на BIOS / UEFI на дънната платка на вашия компютър! Датата на създаване на въпросния пакет е отразена например в номера на версията му 2.20160316.1 (в този случай версия 2 на пакета е създадена на 2 март 2016 г.).

D. Време е да поставите отметка в квадратчето до името на софтуерния пакет "amd64-микрокод"и натиснете бутона "Приложи"в лентата с инструменти на приложението.

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

Е. След рестартиране си струва да проверите дали един от инсталираните микрокодове е зареден правилно, като напишете следната команда в терминален прозорец (използвайте функциите за копиране/поставяне, за да избегнете грешки):

dmesg | grep микрокод

След като приключите с въвеждането на командата, натиснете клавиша Въведетеза нейното изпълнение. Ако фърмуерът е зареден успешно, ще видите няколко съобщения за това.

Искате ли да научите за други настройки и трикове за работа с Linux системи? Този уебсайт съдържа голям брой такива материали.

Ако чипсетът и дънната платка 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 за няколко минути. Освен това процесорът вече се възприема правилно от компютъра и работи както трябва.

Basic Input Output System - основна входно-изходна система, съкратено като BIOS. малък чип на дънна платка, който първи получава управление при включване на компютъра. При условие: основни настройки PC проверка на компютърните компоненти при стартиране...