Un microcódigo o microcode es un tipo particular de firmware utilizado en algunos microprocesadores de propósito general. El diseño de microprocesadores de propósito general conoce dos técnicas que conducen a una clasificación de éstos en dos grupos:
- Los microprocesadores “cableados”: Aquellos que tienen una unidad de control específicamente diseñada sobre el silicio para un juego de instrucciones concreto.
- Los microprocesadores “microprogramados”: Aquellos que tienen una unidad de control genérica o prediseñada y que implementan un juego de instrucciones u otro dependiendo de un microprograma.
Explicándolo de otro modo, un microcode es una capa de instrucciones de nivel de hardware que implementan instrucciones de código de máquina de alto nivel. el microcode se utiliza en unidades centrales de procesamiento generales, en los procesadores más especializados tales como microcontroladores, procesadores de señales digitales, controladores de canal, los controladores de disco, controladores de interfaz de red, procesadores de red, unidades de procesamiento de gráficos, etc.
El microcode normalmente reside en una memoria especial de alta velocidad y traduce las instrucciones de la máquina, los datos de máquina de estado u otra entrada en secuencias de operaciones detalladas a nivel de circuito. Separa las instrucciones de la máquina de la electrónica subyacentes por lo que las instrucciones se pueden diseñar y alternar con mayor libertad. También facilita la construcción de las instrucciones de multi-pasos complejas, al tiempo que reduce la complejidad de los circuitos de ordenador.
Actualmente Intel y AMD ofrecen actualizaciones a sus microcodes con la finalidad de corregir errores o mejorar el comportamientos de sus productos, ya que no es posible escribir directamente el firmware del CPU la actualización del microcode debe aplicarse en cada inicio del sistema, su instalación en Debian y derivados es bastante sencilla.
En el caso de Debian primero debe comprobar que su repositorio principal en el archivo /etc/apt/sources.list contenga el parámetro “non-free” y luego realizar el proceso que se describe a continuación, para los derivados solo debe ejecutar los siguientes comandos (como root).
- Para CPU Intel.
# apt update # apt install intel-microcode
- Para CPU AMD.
# apt update # apt install amd64-microcode
En el caso de openSUSE los paquetes se llaman ucode-intel y ucode-amd respectivamente.
Después de instalar y reiniciar podemos comprobar que el microcode se aplico correctamente ejecutando el siguiente comando (como root).
# dmesg | grep microcode
El resultado debería ser algo como esto.
En el caso de que al ejecutar el comando el resultado no sea similar a este puede deberse a que su equipo no es compatible con el microcode o que no lo necesita.
Fuente: sinfallas