En realidad, se puede encontrar el método, el equipo y los microcódigos originales (directamente la instrucción AMI), y en la mayoría de los casos el uso de este método no plantea ningún problema y no tiene trampas, pero en mi práctica me encontré con este problema con regularidad:

Aquellos. había una escasez banal espacio libre dentro de la imagen. Cuando modifica el BIOS usted mismo para un procesador específico, puede ignorar esto, porque Siempre puede cargar solo un microcódigo específicamente para su procesador, o eliminar algún microcódigo antiguo para liberar espacio, pero cuando lo modifica con una secuencia, debe buscar otra solución de compromiso.

Como compromiso, elegí la siguiente solución: tomamos las últimas versiones de microcódigo para todos los procesadores de la generación CORE en todas las construcciones (Celeron E, Pentium E, Core 2 Duo, Core 2 Quad, Xeon * 3xxx / * 5xxx) y reemplazamos ellos con todo lo que vino antes ... El conjunto de microcódigos resultó ser el siguiente:

El volumen de este conjunto es de solo 76 kilobytes. Este archivo se obtuvo combinando estos archivos:

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

El procedimiento de modificación en sí también ha cambiado ligeramente y se ha vuelto, si no más simple, más rápido:

Paso 1- abra la imagen de la BIOS en el programa MMTool:



Paso 2- para comprobarlo, vaya a la última pestaña (CPU PATCH) y observe el número de microcódigos. Aquí, por ejemplo, hay 31 de ellos:

Paso 3- vaya a la pestaña Reemplazar y busque el elemento "P6 Micro Code" en él:

Etapa 4- al seleccionar el elemento "P6 Micro Code", presione el botón Ikschtsyu, seleccione el archivo ncpucode.bin descrito anteriormente y reemplácelo con el botón Reemplazar:





Paso 5- para comprobarlo, vaya a la última pestaña (CPU PATCH) y observe el número de microcódigos. Después del reemplazo de microcódigos, quedan 17, la última versión:

No existe una diferencia fundamental con la orden de modificación descrita en delidded.com. En la mayoría de los casos, la salida, por supuesto, no es la misma, pero el procesador recibe el microcódigo requerido. De los aspectos subjetivos positivos, me gustaría llamar su atención solo sobre el hecho de que se garantiza que los microcódigos se actualizan para todos los procesadores actuales, ya sean "civiles" o "de servidor", y prácticamente no hay riesgo de recibir un mensaje. sobre la falta de espacio. Aunque, en mi práctica, incluso para un conjunto de microcódigos de este tipo, no había suficiente espacio un par de veces, fue con el BIOS para las placas ECS P4M900T-M y ECS P4M900T-M2, que generalmente son compatibles con el Xeon E5450. .

Por tradición, publico un enlace al archivo con herramientas - (zip, 234KB). El archivo contiene Archivo ejecutable MMTOL.exe(versión 3.22 BKMOD), archivo de microcódigo para todos los procesadores de 45/65 nm de la generación core / xeon ncpucode.bin, así como dos archivos 45nm.bin y 65nm.bin con microcódigos solo en procesadores de 45 nm y solo en 65 nm. El uso de estos archivos puede resultar útil en los casos en que sea necesario liberar espacio adicional en la BIOS, por ejemplo, para nuevo firmware de algún controlador, red, disco, etc.

! NB: Ni el archivo ncpucode.bin ni los archivos 45nm.bin / 65nm.bin admiten procesadores Pentium 4, Celeron (sin índices de letras), Pentium D, Celeron D y Xeon W (Xeon 5080, por ejemplo). Estos son los procesadores de generación NetBrust.

Desde principios de enero, ha sido difícil perderse las noticias sobre las vulnerabilidades de hardware de Spectre y Meltdown; el tema resultó ser muy serio y omnipresente. Aunque los fabricantes conocen estos problemas desde el verano pasado, la mayoría parece haber comenzado a reaccionar solo después de que los especialistas dieran a conocer los detalles. equipos de google Proyecto cero.

Por ejemplo, Intel en enero, entre otros parches, lanzó actualizaciones de microcódigo contra Spectre para sus procesadores Broadwell, Haswell, Skylake, Kaby Lake y Coffee Lake. Pero casi de inmediato resultó que conducían a fallas y. Intel declaró inicialmente que el problema solo afectaba a los chips Broadwell y Haswell, pero luego reconoció la existencia de fallas en las computadoras con Procesadores Skylake, Kaby Lake y Coffee Lake y los socios y usuarios se abstendrán de aplicar parches por ahora. Finalmente, a principios de febrero, se presentó una versión revisada del microcódigo, pero solo para los chips de consumo de escritorio y móviles de la familia Skylake.

Ahora, tras un mes de intensas pruebas y parches por parte de Intel y sus partners, ha llegado el momento de otros procesadores más o menos relevantes: se han lanzado actualizaciones de microcódigo para chips basados ​​en arquitecturas Kaby Lake y Coffee Lake, así como para los basados ​​en Skylake. plataformas no afectadas por la actualización anterior. Estamos hablando de procesadores de sexta, séptima y octava generación núcleo Intel i, así como las últimas familias Core X, Xeon Scalable y Xeon D.

La nueva versión del microcódigo estará disponible en la mayoría de los casos a través del lanzamiento por parte de los OEM de un nuevo firmware para placas base y computadoras portátiles. Intel continúa instando a las personas a actualizar constantemente sus sistemas para versiones actuales, y también publicó un documento en el que describía el estado de correcciones de microcódigo similares para sus otros productos, incluidos chips anteriores, comenzando con 45nm Core 2. Para algunos de estos chips, los parches solo están planeados, para otros, están en el estado temprano pruebas, para el tercero, ya existen en forma de versión beta. Por lo general, cuanto más antigua sea la arquitectura, más tarde recibirá el firmware protegido por Spectre. Sin embargo, las actualizaciones de microcódigo para las arquitecturas Sandy Bridge, Ivy Bridge, Haswell y Broadwell, más o menos actuales, ya están en fase de prueba. Además, varios chips Atom e incluso aceleradores Xeon Phi ya han recibido parches.

Intel recordó que existen otros métodos para luchar contra las vulnerabilidades expuestas de la unidad de predicción de sucursales en los procesadores modernos. Por ejemplo, Retpoline, desarrollado por Google contra Spectre CVE-2017-5715 (inyección de objetivo de ramificación). Para aquellos interesados ​​en obtener más información sobre Retpoline y cómo funciona, la empresa ha publicado un informe técnico especial.

Las actualizaciones de microcódigo publicadas por Intel contra Spectre comenzarán a implementarse en los próximos días y semanas a medida que firmware nuevo BIOS para varias placas base. Me pregunto si tendrán un efecto adicional sobre la degradación del rendimiento de los sistemas finales.

Represento al donante BioStar A740G M2L + (AMD 740G / SB710) y al destinatario BioStar A740G M2 + (AMD 740G / SB700). La placa base con la letra "L" es más reciente y admite oficialmente procesadores AM3, a diferencia de la otra, que está limitada solo por el soporte para procesadores AM2 +. Rogando por análisis comparativo Su BIOS.
Desde la oficina. cargamos el sitio solamente Última actualización Firmware de BIOS para cada una de estas placas base:
- para A740G M2 + última beta A74GM916.BSS para septiembre de 2009
- para A740G M2L + - archivo 74GCU511.BSS- para mayo de 2010

A continuación, nos armamos con la utilidad MMTOOL (Usé las versiones 3.22, 3.23 y 3.26; no encontré ninguna diferencia en el trabajo)... Para trabajar con MMTOOL, las extensiones de archivo de firmware del BIOS deben cambiarse de nombre a * .rom.

Ahora lanzamos dos MMTOOL y cargamos los archivos de firmware de dos tapetes en ellos. tableros. Preste atención a los diferentes tamaños en la columna "Tamaño de fuente" (y por supuesto también en el "Tamaño en Rom") del módulo 11 "P6 Micro Code" en cada uno de los firmwares.

Vaya a la sección CPU PATCH para obtener una comparación detallada:

El archivo de donantes 74GCU511.rom - cpu_list contiene 14 líneas con soporte CPURev.ID + 1 vacía (Fig. 1).

La versión beta del destinatario A74GM916.rom - cpu_list contiene 13 líneas con soporte CPURev.ID + 1 vacía (Fig. 2).

Después de analizar las listas de estos dos BIOS, resulta obvio que para la placa base más nueva, los desarrolladores utilizaron parches más recientes para procesadores AMD, donde el microcódigo de dos líneas con CPURev.IDs 1043 y 1062 (fecha 2009/07/31) y se corrige una línea con CPURev. Se agregó la ID 10A0 (fecha 2010/02/17).

Método n. ° 1: modificar cadenas distintivas.
Estas tres líneas distintivas se extraen del donante 74GCU511.rom - las acciones "Extraer datos de un parche" + "Aplicar" + 1 última línea vacía y se guardan en archivos separados.

Anteriormente, en la sección CPU PATCH del archivo del destinatario A74GM916.rom, dos líneas con los números CPURev.ID 1043 y 1062 (cuyo microcódigo es más antiguo de lo que insertaremos más adelante) y la última línea vacía - las acciones "Eliminar un parche de datos" + “Aplicar” (fig. 3).

Después de eso, se inserta un microcódigo más nuevo uno por uno de cuatro archivos de parche recibidos previamente para CPURev.ID 1043, 1062, 10A0 y una línea vacía (Fig. 4).

Preste atención a los tamaños ("Tamaño fuente" y "Tamaño en Rom") del módulo 11 "Microcódigo P6" antes y después de aplicar estos cambios en el archivo del destinatario.
Después de la aplicación, estas dimensiones en el receptor (Fig. 6) serán idénticas a las dimensiones del mismo módulo en el archivo de donante 74GCU511.rom (Fig. 5).
Vale la pena señalar que es fácil comprender cómo se forma el tamaño del módulo (cada línea en la sección CPU PATCH ocupa 2048 bytes).

Es mejor guardar los cambios con un nuevo nombre de archivo.
A continuación, se comprueba este archivo para que MMTOOL se abra de nuevo sin errores.

Método n. ° 2: modificación reemplazando todo el módulo.
En realidad, es él quien se describe en Internet (por ejemplo, parcialmente).

En MMTOOL cargamos el archivo donante 74GCU511.rom, vamos a la pestaña “Extraer” y buscamos la línea “P6 Micro Code”. Luego lo seleccionamos, en el campo “archivo de módulo” le damos el nombre ncpucode.bin y ejecutamos Extraer módulo “en forma descomprimida”.

Ahora cargamos el archivo del destinatario A74GM916.rom en MMTOOL, vamos a la pestaña “Reemplazar” y buscamos la línea “P6 Micro Code” nuevamente. Selecciónelo, espere a Examinar y seleccione nuestro módulo de donantes ncpucode.bin. Haga clic en Reemplazar y luego acepte reemplazar este módulo.

Nuevamente prestamos atención a los tamaños ("Tamaño fuente" y "Tamaño en Rom") del módulo 11 "P6 Micro Code" antes y después de reemplazar este módulo en el archivo del destinatario.
Después de la aplicación, estas dimensiones en el receptor (Fig. 7) serán idénticas a las dimensiones del mismo módulo en el archivo de donante 74GCU511.rom (Fig. 5).

Si comparamos los resultados de ambos métodos (Fig. 6 y Fig. 7), entonces hay una diferencia notable de 10 bytes en la dirección RomLoc del módulo "Definido por el usuario o reservado" después del módulo "P6 Micro Code" actualizado - quizás estas sean las peculiaridades del funcionamiento de MMTOOL ...

Conclusión y epílogo.
Por lo tanto, de diferentes firmwares de BIOS de varios mat. placas en el zócalo AM2 + (e incluso AM3 para comparar), puede encontrar los últimos microcódigos para cada tipo de CPURev.ID, tanto en BIOS Award como AMI, y luego combinarlos en un solo ncpucode.bin.
Como resultado, me resultó con un tamaño de 32768 bytes de 16 líneas (microcódigos) con las fechas más recientes de entre los firmwares estudiados de varios BIOS: con 15 diferentes tipos revisiones del procesador para el socket AM2 + (040A, 0413, 0414, 041B, 0433, 0680, 0C1B, 1000, 1020, 1022, 1040, 1041, 1043, 1062, 10A0) y la línea 16 para RevID 0000 (aparentemente algún microcódigo universal para revisiones de procesadores no descritos en otras líneas, en mi humilde opinión, por ejemplo, los futuros).

Al combinar su propio ncpucode.bin importando los parches necesarios (microcódigos) para cada revisión requerida de procesadores, absolutamente cualquier firmware BIOS AMI con el módulo "P6 Micro Code" puede usarse como uno de laboratorio.

Sin embargo, al guardar el archivo de firmware, se notó una característica desagradable de MMTOOL: la utilidad, por alguna razón, agregó 8 bytes cero al final del módulo "P6 Micro Code", resultó ser de 32776 bytes de tamaño. Al extraer el mismo MMTOOL del firmware del laboratorio, el archivo ncpucode.bin también se convirtió en 32776 bytes de tamaño en la salida.
Puede editar estas cosas con editores simples disponibles para todos. Pero también descubrí (accidentalmente) forma alternativa: cuando la utilidad universal BIOS_EXT.EXE extrajo todos los módulos del firmware del laboratorio, ya se obtuvo el archivo ncpucode.bin tamaño correcto 32768 bytes: la utilidad BIOS_EXT.EXE ha detectado correctamente el final del módulo "P6 Micro Code" al guardarlo en un archivo.

Si el conjunto de chips y la placa base LGA 775 pueden, en teoría, admitir el XEON 771, pero el BIOS nativo no lo admite y el BIOS modificado no, entonces puede modificar el BIOS usted mismo.

IMPORTANTE

1. Todos los cambios en el firmware de la BIOS (archivo .ROM generalmente) los realiza bajo su propio riesgo y riesgo. En caso de error, se obtiene un "ladrillo" garantizado de la placa base.
2. El tamaño del archivo del firmware original y la versión modificada deben coincidir hasta en un byte.

3. El firmware del archivo de BIOS modificado que regresa al microcircuito se realiza únicamente mediante la utilidad patentada del desarrollador de la placa base (debe descargarla del sitio web del fabricante).
4. Las placas base superiores en el BIOS tienen un módulo de actualización de firmware incorporado (por ejemplo, la utilidad EZ Flash 2 para ASUS P5Q en la sección Herramientas), la mejor opción.

Cómo hacerlo mejor:
1. ¿Sigues buscando una versión lista para usar con soporte XEON en Internet?
2. Descarga desde el sitio oficial ultima versión firmware y agregar microcódigos?

Como puede ver, la segunda opción es más segura, en cualquier caso, descarga el firmware original desde el sitio web del fabricante de la placa base, es decir. Se garantiza la última versión y la ausencia de errores (más precisamente, la corrección de todos los errores encontrados anteriormente). Al descargar una versión lista para usar de recursos de terceros (por razones obvias, no estará en el sitio original), puede obtener una versión corrupta y eliminar el BIOS.

De manera preliminar, puede evaluar la presencia de microcódigos XEON en el firmware del BIOS.

- obtenga la imagen actual de BIOS AMI a través de Universal BIOS Backup ToolKit 2.0
- mirar el contenido del archivo ROM recibido a través de AMIBCP V 3.37

Opción BIOS AMI (American Megatrends Inc).

1. Descarga la última versión BIOS desde el sitio web del fabricante de su placa base

3. Descargue microcódigos para procesadores XEON 771: lga771_microcodes

4. Averigüe el CPUID de su procesador usando AIDA64 o un programa similar (parece cpu0001067Ah). Si BIOS se coserá antes de instalar el procesador, luego omitimos este elemento.

5. Desempaquete los archivos MMTool y lga771_microcodes y salir de archivos con la extensión .compartimiento solo aquellos archivos que comienzan con el mismo CPUID de su computadora (por ejemplo, cpu0001067a_plat00000044_ver00000a0b_date20100928.bin)

Si no sabemos qué código, lo cosimos todo.

UNA. Lanzamiento MMTool... Presione el botón (1) Cargar ROM y cargue el BIOS más reciente para su placa base en el programa. Si tiene la BIOS más reciente, también puede combinar la utilidad de copia de seguridad de la BIOS desde la PC y editarla.

B. Ir a la pestaña (2) Parche de CPU, luego con el botón (3) Navegar, abre el archivo .compartimiento correspondiente a su CPUID.

C. Deje el valor predeterminado en opciones "Insertar datos de un parche" y presione el botón (4) Solicitar.

Después de actualizar con BIOS modificado necesitas hacer un restablecimiento de fábrica mediante el botón de reinicio o los puentes, si la placa base admite dicho reinicio, o extrayendo la batería del BIOS durante un par de minutos. Además, el procesador ya es percibido correctamente por la computadora y funciona como debería.

Sistema básico de entrada y salida: sistema básico de entrada y salida, abreviado como BIOS. Pequeño microcircuito encendido tarjeta madre, que recibe el control por primera vez cuando se enciende la PC. Incluido: la configuración básica de la PC comprueba los componentes de la PC al inicio ...

Los procesadores modernos son dispositivos complejos que pueden tener errores. Además, en lugar de ejecutar instrucciones x86 directamente, los procesadores x86 modernos contienen código interno que implementa el soporte para el conjunto de instrucciones x86. El código interno se llama microcódigo. El microcódigo se puede actualizar para corregir o mitigar errores de CPU.

Algunos errores de CPU pueden hacer que Firefox se bloquee. Por ejemplo, se sabe que Firefox 57 y versiones posteriores se bloquean ocasionalmente en las CPU de Broadwell-U con microcódigo antiguo de una manera que no se ve con las versiones de microcódigo de Broadwell-U más nuevas.

Las actualizaciones de microcódigo se pueden cargar en la CPU por firmware (generalmente llamado BIOS incluso en computadoras que técnicamente tienen firmware UEFI en lugar de BIOS de estilo antiguo) o por el sistema operativo... Las actualizaciones de microcódigo no persisten durante el reinicio, por lo que, en el caso de un sistema de arranque dual, si la actualización de microcódigo no se envía a través del BIOS, ambos sistemas operativos deben proporcionar la actualización.

En Mac, para tener un sistema actualizado, aplique todas las actualizaciones del sistema OS X y las actualizaciones de firmware de Apple que se ofrecen en el panel Actualizaciones del Tienda de aplicaciones aplicación.

Para permitir que Windows cargue el microcódigo actualizado en la CPU, asegúrese de actualizacion de Windows está habilitado y configurado para instalar actualizaciones.

Para ver la microarquitectura del procesador y qué revisión de microcódigo está en uso, ejecute el comando reg query HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPTION \ System \ CentralProcessor \ 0 en el símbolo del sistema de Windows. ( Usted puede abra el símbolo del sistema presionando Windows + R, escribiendo cmd y presionando Retorno.) La línea etiquetada "VendorIdentifier" muestra el proveedor de la CPU (GenuineIntel para Intel o AuthenticAMD para AMD). La línea denominada "Identificador" da la microarquitectura en tres números: "Familia", "Modelo" y "Pasos". Estos son relevantes para identificar si un error de CPU en particular puede ser relevante para la CPU de su computadora. La línea etiquetada "Actualizar revisión" muestra la revisión actual del microcódigo (para la microarquitectura en particular) con ceros en ambos lados. Por ejemplo, Actualizar revisión REG_BINARY 000000001E000000 significa que la revisión es 1E (hexadecimal). La línea etiquetada "Revisión de actualización anterior" muestra la revisión de microcódigo cargada desde BIOS.

Si el proveedor es GenuineIntel, la familia es 6, el modelo es 61 y el paso es 4, para evitar fallas con Firefox 57 o posterior, la revisión del microcódigo debe ser 1A o superior.

El uso de actualizaciones de microcódigo de forma predeterminada depende de la distribución de Linux y puede diferir para las CPU de Intel y AMD.

  • En las distribuciones basadas en Debian, incluido Ubuntu, las actualizaciones de microcódigo para los procesadores Intel las proporciona el paquete intel-microcode y las actualizaciones de microcódigo para los procesadores AMD las proporciona el paquete amd64-microcode.
  • En Arch, las actualizaciones de microcódigo de AMD se instalan de forma predeterminada, pero las actualizaciones de microcódigo de Intel requieren pasos especiales.
  • En Fedora, las actualizaciones de microcódigo se instalan de forma predeterminada.

Para ver la microarquitectura del procesador y qué revisión de microcódigo está en uso, ejecute el comando less / proc / cpuinfo en la terminal. La línea etiquetada "vendor_id" muestra el proveedor de la CPU (GenuineIntel para Intel o AuthenticAMD para AMD). La microarquitectura se da como tres números en líneas etiquetadas como "familia de cpu", "modelo" y "paso a paso". Estos son relevantes para identificar si un error de CPU en particular puede ser relevante para la CPU de su computadora. La línea etiquetada "microcódigo" muestra el número de revisión del microcódigo (para la microarquitectura particular) en hexadecimal.