Контакти

Оновлення me code процесора Intel. Виправлення помилок у CPU. Як отримати це оновлення

Не для кого не секрет, що процесор є автоматом з мікропрограмним управлінням. І будь-яка його інструкція є сукупністю мікрокоманд, прошитих у ПЗУ процесора під час його виготовлення. Помилки мікрокоду та схемні похибки (errata), допущені при проектуванні, можуть викликати відхилення від специфікацій процесора та помилок у його роботі. При випуску процесора зазвичай публікуються його специфікація та список виявлених errata.

Всі процесори Intel з архітектурою P6, а до них відносяться сімейства Pentium Pro, Pentium II & III, Celeron, Pentium II & III Xeon і Pentium II Overdrive, мають таку чудову властивість, як "reprogrammable microcode". У цих процесорах є можливість зміни мікрокоду, тобто. є можливість виправлення помилок у програмно-схемотехнічній реалізації конкретних процесорів сімейства P6 та деяких вбудованих помилок практично на рівні "заліза". Помилки можуть з'являтися на етапі проектування процесорів, а вони виправляються саме за допомогою зміни мікрокоду. Кожна з підродин (PII, Celeron, PPro, Xeon) має специфікацію. При випуску кожного нового степінгу процесора (всередині його всі прилади є ідентичними в рамках технологічних відхилень), Intel публікує для нього оновлення специфікації, де вказуються виявлені та виправлені errata (відхилення від специфікації).

Помилки ці можуть у принципі ускладнити життя програмного забезпечення, яке працює на цих "дефектних" процесорах (і користувачеві;-)).

Звісно, ​​все залежить від конкретних помилок. Для позбавлення від подібних жахів і потрібна зміна мікрокоду процесора, внаслідок чого помилка може бути повністю усунена або можуть бути просто пом'якшені наслідки її присутності.

До речі, підтримка біосами процесорів, що знову вийшли, визначається, зокрема, і наявністю відповідної прошивки. Наприклад, коли з'явився перший Celeron, саме відсутність відповідної версії мікрокоду не дозволяло коректно запустити систему із цим процесором.

Самі оновлення мікрокоду - це 2-кілобайтні блоки даних, прошиті в системному BIOS. Такий блок є для кожного степінгу процесора із сімейства P6. Intel постачає нові версії мікрокоду провідним виробникам BIOS. База даних з оновленнями поповнюється та змінюється з появою нових моделей та версій мікрокоду. Intel рекомендує виконувати оновлення версій мікрокоду за допомогою своєї утиліти під час встановлення нового процесора на материнську плату або перепрограмування флеш-пам'яті, щоб бути впевненим, що в BIOS міститься найсвіжіша версія мікрокоду. Ця програма визначає процесор, що використовується (за допомогою CPUID) і шукає відповідне йому оновлення у своїй базі. Якщо знайдено свіжу версію мікрокоду, утиліта локально перепрошує код у BIOS, не торкаючись інших ділянок. Т.ч. відпадає необхідність перепрограмування всього флешу підтримки нового ЦПУ, як це було раніше. Оновлення бази даних Intel періодично викладає свій сайт.

Остання з доступних нам баз має ревізію 5.01 і містить наступні версії мікрокоду:

ProcessorProcessor SteppingMicrocode Update Rev
Pentium III Processor0x6720x04
Pentium III Processor0x6730x02
Pentium III Xeon Processor0x6720x21
Pentium III Xeon Processor0x6730x22
Pentium II Processor0x6330x34
Pentium II Processor0x6340x35
Pentium II Processor0x6500x32
Pentium II Processor0x6510x30
Pentium II Processor0x6520x14
Pentium II Processor0x6530x01
Pentium II Xeon Processor0x6520x29
Pentium II Xeon Processor0x6530x04
Intel Celeron Processor0x6500x32
Intel Celeron Processor0x6510x30
Intel Celeron Processor0x6600x09
Intel Celeron Processor0x6650x02
Pentium II OverDrive Processorx16320x02
Pentium Pro Processor0x6120xC6
Pentium Pro Processor0x6160xC6
Pentium Pro Processor0x6170xC6
Pentium Pro Processor0x6190xD2

Завантажити останню версію утиліти, що виправляє мікрокод, можна прямо звідси: pupdt501.exe (115 Kb)

Стару базу (PEP15.PDB) можна завантажити звідси: pupdt461.exe (111 Кб)

Після закінчення роботи утиліти необхідно вимкнути живлення комп'ютера. Завантаження оновлення в процесор відбувається під час виконання POST під час кожного запуску системи. Звичайно для роботи утиліти потрібно дозволити перезапис флеш-пам'яті перемичкою або в BIOS Setup. Програма має запускатися з-під "голого" ДОСа.

Однак для такого ідеального варіанта необхідна підтримка BIOS"ом спеціального API оновлення мікрокоду процесора, що дозволяє утиліті оновлення за допомогою BIOS завантажити новий мікрокод. Якщо використовується версія системного BIOS не підтримує API, користувачеві нічого не залишається, крім як видобути нову версію у виробника материнської плати. Однак буває, що знайти її не так вже й просто, якщо не неможливо.Часто, після припинення виробництва будь-якої моделі системної плати, виробник перестає випускати і оновлення біосів для неї, але при цьому нові процесори можуть з'явитися у продажу, а у користувача може виникне бажання встановити в свою систему новий CPU.

В даному випадку, утиліта, проте, може завантажити виправлення технічних похибок безпосередньо в процесор. У цьому випадку утиліта викликає завантаження операційної системи одразу після оновлення мікрокоду. Однак оновлення мікрокоду буде втрачено під час м'якого або жорсткого перезавантаження системи.

Виникає питання, а чим загрожує самостійне оновлення прошивки? Ну, по-перше, спочатку потрібно переконатися, що вам це справді необхідно. Якщо версія прошивки стара, а нових версій BIOS виробник системної плати не пропонує, але, головне, ви зіткнулися з нестабільною роботою якоїсь програми, і розраховуєте, що зміна мікрокоду процесора вам допоможе. Тільки в цьому випадку є сенс самостійно змінити прошивку. А щодо того, чим це загрожує - на мою думку, нічим небезпечним. По-перше, не варто забувати, що завантаження оновлення мікрокоду в процесор застосовується у всіх BIOS на платах для P6 і вже давно (багато хто бачив у Setup загадкову опцію Microcode Update: Enable/Disable). І нічого! Все працює.

Це ще раз наголошує на необхідності його використання. Хто знає, як була справа без цього оновлення! Відмінність лише в тому, що раніше мікрокод оновлювався із встановленням нової версії флеша, а тепер можна перепрограмувати не весь вміст BIOS, а лише обмежений шматок.

Мій особистий досвід роботи з цією програмою поки що був обмежений 7 випадками, з яких вдалося оновити мікрокод лише на одній системній платі (Abit LX6 з PII 233). В інших випадках BIOS вже містив оновлені версії мікрокоду. Також не вдалося зустріти BIOS, який не підтримує оновлення мікрокоду.

Що стосується аналогічної можливості оновлення мікрокоду в процесорах інших виробників (AMD, Cyrix), то жодної інформації з цього питання мені не вдалося знайти. Але я майже впевнений, що у цих CPU є аналогічна можливість зміни мікрокоду.

Представляю донора BioStar A740G M2L+ (AMD 740G/SB710) та реципієнта BioStar A740G M2+ (AMD 740G/SB700). Мат.плата, що з літерою «L», свіжіша і підтримує процесори AM3 офіційно, на відміну від іншої, що обмежена лише підтримкою процесорів AM2+. Напрошуються на порівняльний аналіз їх БІОСи.
З оф. сайту завантажуємо лише останнє оновлення прошивки БІОС для кожної з цих мат.плат:
- для A740G M2+ остання бета A74GM916.BSSза вересень 2009р.
- для A740G M2L+ - файл 74GCU511.BSS- за травень 2010р.

Далі озброюємось утилітою MMTOOL (я використав версії 3.22, 3.23 та 3.26 - відмінностей у роботі не виявив). Для роботи з MMTOOL розширення файлів прошивок Біос необхідно перейменовувати на *.rom.

Тепер запускаємо дві MMTOOL та в них підвантажуємо файли прошивок від двох матів. плат. Звертаємо увагу на різні розміри в стовпці "Source size" (та і в "Size in 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).

Після аналізу списків цих двох БІОСів стає очевидним, що для більш нової мат.плати розробники використовували свіжіші патчі для процесорів AMD, де підправлено мікрокод двох рядків з CPURev.ID 1043 і 1062 (датуються 2009/07/31) і один рядок з CPURev .ID 10A0 додано (датується 2010/02/17).

Спосіб №1 – модифікація відмінних рядків.
Проводиться вилучення цих трьох відмінних рядків з донора 74GCU511.rom - дії "Extract a Patch Data" + "Apply" + 1 останній порожній рядок та збереження їх в окремі файли.

Попередньо в розділі CPU PATCH файлу реципієнта A74GM916.rom видаляються два рядки з номерами CPURev.ID 1043 і 1062 (чий мікрокод старіший ніж ми будемо далі вставляти) і останній порожній рядок - дії «Delete a Patch Data» + «Apply» ( рис.3).

Після цього по черзі вставляється новий мікрокод з чотирьох вже раніше отриманих файликів-патчів для CPURev.ID 1043, 1062, 10A0 і порожній рядок (мал.4).

Звертаємо увагу на розміри (Source size і Size in Rom) модуля 11 P6 Micro Code до і після застосування даних змін у файлі реципієнта.
Після застосування ці розміри реципієнта (рис.6) стануть ідентичні розмірам такого ж модуля у файлі-донорі 74GCU511.rom (рис.5).
Варто відмітити, що неважко зрозуміти, як формується розмір модуля (кожний рядок, що в розділі CPU PATCH, займає по 2048 байт).

Зберігати зміни краще під новим ім'ям файлу.
Далі цей файл перевіряється, щоб по новій без помилок відкривався MMTOOL.

Спосіб №2 - модифікація заміною модуля цілком.
Власне, саме він і описаний на просторах інтернету (наприклад частково).

У MMTOOL підточуємо файл донора 74GCU511.rom, переходимо у вкладку Extract і шукаємо рядок P6 Micro Code. Потім виділяємо її, у полі "module file" задаємо йому ім'я ncpucode.bin і виконуємо Extract module "in uncompressed form".

Тепер у MMTOOL підвантажуємо файл реципієнта A74GM916.rom, переходимо у вкладку "Replace" і знову шукаємо рядок "P6 Micro Code". Виділяємо її, чекаємо на Browse і вибираємо наш донорський модуль ncpucode.bin. Тиснемо Replase і далі погоджуємося на заміну даного модуля.

Знову звертаємо увагу на розміри (Source size і Size in Rom) модуля 11 P6 Micro Code до і після заміни даного модуля у файлі реципієнта.
Після застосування ці розміри реципієнта (рис.7) стануть ідентичні розмірам такого ж модуля у файлі-донорі 74GCU511.rom (рис.5).

Якщо порівняти результати обох способів (рис.6 і мал.7), то помітна різниця в 10байт в адресі RomLoc модуля «User Defined or Reserved», що настає за модулем «P6 Micro Code», що оновлюється - можливо, це особливості роботи MMTOOL...

Висновок та післямова.
Таким чином з різних прошивок БІОС різних мат. плат на сокеті АМ2+ (і навіть АМ3 для порівняння) можна знайти найсвіжіші мікрокоди для кожного типу CPURev.ID, як у Award так і AMI біосах, потім скомбінувати в єдиний ncpucode.bin.
В результаті він вийшов у мене розміром 32768 байт з 16 рядків (мікрокодів) з найсвіжішими датами з числа вивчених прошивок різних БІОСів: з 15ю різними типами ревізій процесорів для сокету АМ2+ (040A, 0413, 0414, 0, 0 1000, 1020, 1022, 1040, 1041, 1043, 1062, 10A0) і 16-м рядком для RevID 0000 (мабуть, якийсь універсальний мікрокод для ревізій процесорів, не описаних в інших рядках - імхо, наприклад майбутніх).

При комбінуванні власного ncpucode.bin імпортуванням необхідних патчів (мікрокодів) для кожної необхідної ревізії процесорів як лабораторний можна використати будь-яку прошивку AMI біос з модулем «P6 Micro Code».

Однак при збереженні файлу прошивки була помічена неприємна особливість MMTOOL – утиліта чомусь додавала 8 нульових байт у кінець модуля «P6 Micro Code» – він виходив розміром 32776 байт. При вийманні тим же MMTOOL з лабораторного прошивки файл ncpucode.bin також ставав на виході розміром 32776 байт.
Можна це відредагувати найпростішими доступними всім редакторами. Але я також (випадково) виявив альтернативний спосіб: при вилученні універсальної утилітою BIOS_EXT.EXE всіх модулів з лабораторної прошивки файл ncpucode.bin вже виходив правильного розміру 32768 байт - утиліта BIOS_EXT.EXE сама правильно визначила кінець модуля у файл.

Придбаний на Аліекспрес в материнську плату Intel DG965SS (з роз'ємом LGA775). Можна звичайно і самому переробити LGA771 в LGA775, але при ціні $6,5 доларів за процесор набагато простіше взяти його і китайців.

При використанні Intel Xeon 5320 операційна система Windows 10 запрацювала тільки при виключенні в БІОС режиму "Core multiplexing" (на відміну від Ubuntu 17.10, що чудово працює). При цьому процесор працював тільки в однопотоковому режимі, так що, згідно з тестом CPU-Z, продуктивність у багатопотоковому режимі виявилася вдвічі нижчою, ніж у Intel Core 2 duo E6300, на заміну якому і купувався Xeon.

Виявилося, що мікрокод процесора повинні бути оновлені. Можна зробити це і в програмному режимі, причому в Ubuntu операція на голову простіше, ніж у Windows 10. Та й в останній потрібно подбати про те, щоб мікрокоди оновлювалися при кожному завантаженні. Також є можливість оновити мікрокоди і в Біосі, принаймні в деяких BIOS від AWARD, AMI, Phoenix, особливо у версіях до UEFI.

Інструкцій для материнських плат Intel набагато менше. І не дивно. З Intel DG965SS довелося дуже пристойно повозитися.

Перед оновленням мікрокодів необхідно встановити процесор, підтримку якого хочемо забезпечити. Якщо потрібно встановити інший процесор, процедуру доведеться повторити.

Деякі інструкції пропонують створити дискету для завантаження, т.к. не всі комп'ютери дозволяють завантажуватись у флешки. Я зробив завантажувальну флешку з FreeDOS за допомогою безкоштовної програми з відкритим вихідним кодом Rufus (для цього потрібно відзначити галочкою Create a bootable disk using і вибрати зі списку пункт FreeDOS).

Якщо чіпсет і материнська плата LGA 775 теоретично можуть підтримувати XEON 771, але рідний BIOS не підтримує його, а модифікованого немає - можна модифікувати BIOS самостійно.

ВАЖЛИВО

1. Всі зміни в прошивці BIOS (.ROM файл зазвичай) Ви робите на свій страх та ризик. При помилці з материнської плати виходить гарантована «цегла»
2. Розмір файлу оригінальної прошивки та зміненого варіанта повинні співпадати до байта.

3. Прошивка зміненого файлу BIOS назад у мікросхему виконується лише за допомогою фірмової утиліти від розробника материнської плати (необхідно завантажити із сайту виробника).
4. У топових материнських платах у самому BIOS є вбудований модуль оновлення прошивки (наприклад, EZ Flash 2 utility для ASUS P5Q у розділі Tools) – найкращий варіант.

Як краще зробити:
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_microcodesта залишаємо з файлів з розширенням .binтільки ті файли, початок яких збігається з CPUID вашого комп'ютера (наприклад, cpu0001067a_plat00000044_ver00000a0b_date20100928.bin)

Якщо не знаємо якийсь код, то зашиваємо все.

A.Запускаємо MMTool. Тиснемо кнопку (1) Load ROMта завантажуємо в програму останній BIOS для вашої матплати. Якщо у вас найновіший BIOS, то можна злити утилітою бекап BIOS з ПК і правити його.

B.Переходимо на вкладку (2) CPU Patch, потім кнопкою (3) Browse, відкрийте файл .binвідповідний вашому CPUID.

C.В опціях залиште значення за замовчуванням "Insert a Patch data"та натисніть кнопку (4) Apply.

Після оновлення модифікованим біосом необхідно зробити скидання налаштуваньчерез кнопку скидання або перемички, якщо матплата підтримує такий скидання, або витягуванням на пару хвилин батарейки BIOS. Далі процесор вже коректно сприймається комп'ютером і працює як слід.

Basic Input Output System – базова система введення-виводу, скорочено BIOS. Невелика мікросхема на материнській платі, яка першою отримує управління при включенні ПК. Забезпечуються: базові налаштування ПК - перевірка компонентів ПК при старті...

Ви можете оптимізувати роботу встановленого у комп'ютері центрального процесора виробництва Intel або AMD, встановивши новітню версію його мікрокоду. Оптимізація досягається головним чином за рахунок виправлення помилок стандартного мікрокоду, що отримується від прошивки материнської плати.

Оновлення прошивок BIOS/UEFI вашої материнської плати зазвичай містять нові версії мікрокодів для центральних процесорів, що підтримуються материнською платою. З цієї причини насамперед слід переконатися, що використовується найновіша версія BIOS/UEFI.

Даний посібник дозволяє оптимізувати роботу лише тих центральних процесорів, розроблених компаніями Intel і AMD.

Примітки:

  • Інсталяція пакета програмного забезпечення з мікрокодами може призвести до нестабільної роботи комп'ютера. З цієї причини слід встановлювати пакет лише тоді, коли спостерігаються будь-які проблеми, пов'язані з функціонуванням центрального процесора вашого комп'ютера!
  • Не встановлюйте пакет програмного забезпечення з мікрокодами центральних процесорів, якщо він випущений раніше, ніж прошивка BIOS/UEFI материнської плати вашого комп'ютера!

1. Центральні процесори виробництва компанії Intel

У разі використання центрального процесора виробництва Intel ви можете діяти таким чином.

Примітка:вам потрібен пакет програмного забезпечення з мікрокодами центральних процесорів виробництва компанії Intel, новий, ніж той, що знаходиться в офіційному репозиторії дистрибутива? У цьому випадку ви можете завантажити файл пакета програмного забезпечення з розширенням .debз

Менеджер пакетів Synaptic Software

Менеджер пакетів Synaptic«Пошук на комп'ютері»), ввести запит «Synaptic» "Менеджер пакетів Synaptic" Менеджери пакетів Synaptic «Пошук» "microcode"та натиснути кнопку «Пошук»поряд з ним.

3.201501106.1 (В даному випадку версія 3 пакета була створена 6 листопада 2015).

« intel-microcode»та натиснути кнопку "Застосувати"

dmesg | grep microcode

Enter

2. Центральні процесори виробництва компанії AMD

У разі використання процесорів виробництва компанії AMD цей посібник буде актуальним лише для тих з них, які були випущені після 2006 року (AMD K10 і новіші). Якщо на комп'ютері встановлено один із таких центральних процесорів, ви можете діяти таким чином.

Примітка:вам потрібен пакет програмного забезпечення з мікрокодами центральних процесорів виробництва компанії AMD, новий, ніж той, що знаходиться в офіційному репозиторії дистрибутива? У цьому випадку ви можете завантажити файл пакета програмного забезпечення з розширенням .debз репозиторію дистрибутива Debian , який міститься пакети новітніх версій. Після закінчення завантаження файлу пакета слід знайти його за допомогою менеджера файлів та використовувати подвійний клік для встановлення мікрокодів у систему. Після завершення інсталяції необхідно перезавантажити комп'ютер.

A. У разі використання дистрибутива Ubuntu вам доведеться встановити Менеджер пакетів Synaptic(це можна зробити за допомогою програми Software). У Linux Mint цей менеджер пакетів присутній відразу після установки.

B. Насамперед слід запустити Менеджер пакетів Synaptic. У дистрибутиві Ubuntu для цієї мети слід натиснути на білий логотип Ubuntu у верхній частині бічної панелі ( «Пошук на комп'ютері»), ввести запит «Synaptic»та вибрати перший із запропонованих варіантів додатків "Менеджер пакетів Synaptic". Не потрібно використовувати поле швидкого пошуку пакетів програмного забезпечення головного вікна Менеджери пакетів Synaptic, Оскільки відповідний механізм ненадійний; натомість слід натиснути кнопку «Пошук»на панелі інструментів, у полі пошуку діалогового вікна, що відкрилося, ввести запит «amd64-microcode»та натиснути кнопку «Пошук»поряд з ним.

C. Тепер слід перевірити дату створення пакета програмного забезпечення з мікрокодами центральних процесорів: цей пакет має бути створений пізніше, ніж прошивка BIOS/UEFI материнської плати комп'ютера! Дата створення пакета, що розглядається, відображена в його номері версії, наприклад 2.20160316.1 (В даному випадку версія 2 пакета була створена 2 березня 2016).

D. Настав час встановити прапорець навпроти назви пакета програмного забезпечення «amd64-microcode»та натиснути кнопку "Застосувати"на панелі інструментів програми.

E. Після завершення інсталяції програмного забезпечення потрібно перезавантажити комп'ютер.

F. Після перезавантаження слід перевірити коректність завантаження одного із встановлених мікрокодів шляхом введення наступної команди у вікні терміналу (використовуйте функції копіювання/вставки для того, щоб уникнути помилок):

dmesg | grep microcode

Після завершення введення команди слід натиснути клавішу Enterдля її виконання. Якщо мікрокод успішно завантажено, ви побачите кілька повідомлень про це.

Бажаєте дізнатися про інші налаштування та прийоми роботи з Linux-системами? На даному веб-сайті розміщено велику кількість подібних матеріалів.



Сподобалась стаття? Поділіться їй