Microcode - Como atualizar o firmware do processador

O que é microcode e como o Debian permite trabalhar com essa funcionalidade.

[ Hits: 54.073 ]

Por: Perfil removido em 09/05/2014


Conceitos básicos



O computador é um misto de hardware e software. A maior parte do software é composta por programas utilitários que, teoricamente, nunca se relacionam diretamente com o hardware.

No entanto, existe uma categoria de software que está diretamente envolvida com o funcionamento do hardware. Esse software, relacionado com o hardware, é chamado de driver (no Windows) e de módulo (no GNU/Linux).

Sem o driver (módulo) apropriado, um hardware simplesmente não funcionará. Quando instalamos uma nova versão do Windows ou um novo kernel Linux, precisamos atualizar nosso software de driver (módulo) de modo a adequar esse software com a nova versão de sistema operacional.

Um driver (módulo), é um software como outro qualquer e, por isso, está sujeito a erros de programação (bugs). Quando um erro é corrigido, uma atualização de versão é lançada. Neste caso, basta o usuário descarregar a atualização pela Internet e instalar, ou recompilar, o seu kernel Linux com suporte para o novo módulo. Um novo driver (módulo) possui melhoramentos, que podem fazer seu hardware trabalhar melhor e de forma mais estável.

Porém, existem situações em que a simples atualização do driver (módulo) não é suficiente para introduzir correções ou melhorias. Nestes casos mais graves, a falha está em um nível anterior ao carregamento do driver (módulo), sendo necessário atualizar o software embarcado no próprio dispositivo. Esse software embarcado, é chamado de firmware ou microcode. Conhecemos esse software embarcado, de modo geral, como BIOS.

Os sistemas BIOS estão presentes em vários dispositivos de hardware e muitos são atualizáveis, mas, nem todos. A maioria dos firmwares é armazenada em memórias do tipo EEPROM e podem ser atualizados (a BIOS da placa mãe é um exemplo disso). Nós, que lidamos com hardware, já estamos acostumados a atualizar a BIOS da placa mãe, o firmware do roteador Wireless ou do gravador de DVD. Isso deve ser feito em casos extremos, por ser uma operação que pode danificar permanentemente seu hardware, se executada de modo errado.

Agora, quando um problema é detectado no funcionamento de um processador, não há como atualizar o software embarcado nele, pois não há uma EEPROM dentro do processador. O microcode original, é implementado no processador na forma de circuitos.

Apesar de extremamente avançados e modernos, os processadores não estão livres de erros em sua programação interna, e isso é muito mais comum do que você pode imaginar!

Erros na programação interna de processadores são muito difíceis de detectar e estão relacionados com comportamentos estranhos e que geram travamentos (telas azuis ou kernel panic) ou reboots aleatórios da máquina.

Quando esses erros aparecem, normalmente atualizamos a BIOS da placa mãe, os drivers (módulos), os softwares utilitários e, por fim, o próprio sistema operacional.

Muitas vezes, o erro desaparece e outras vezes, não. Quando esses travamentos ocorrem, o mais comum é a troca de partes do equipamento como: memórias RAM, fonte de energia, placas PCI, o cooler e, por fim, o próprio processador.

Mas, nem isso é uma garantia de solução ao problema e muitos hardwares acabam simplesmente condenados pela avaliação de um técnico, que não encontra o problema facilmente.

    Próxima página

Páginas do artigo
   1. Conceitos básicos
   2. CPU Microcode
Outros artigos deste autor

Desenvolvendo aplicações GUI simples em Python & Glade (PyGTK) com banco de dados SQLite

Swing e gerenciadores de layout

Cacti + Plugins (Settings, Monitor, Thold e Weathermap) - Instalação e configuração

A camada de enlace de dados

Novidades do Kernel 2.6.35

Leitura recomendada

Gerenciando Mouses da Razer

Chipset Atheros: Reconhecendo e configurando placas wireless na mão

Instalando sidux em pendrive para usar como "Canivete Suíço"

Speedtouch USB no Debian

Configurando a placa de som C-MEDIA (CM8738) no Slackware

  
Comentários
[1] Comentário enviado por robsontex em 09/05/2014 - 00:54h

Muito bom artigo. Bastante esclarecedor.

[2] Comentário enviado por nicolo em 09/05/2014 - 11:13h

Não sabia que o código do processdor precisava de atualização.
Atualizeiu a BIOS duas vezes: Na primeira vez perdi uma plada ASUS pentium 100.
Mais recente atualizei uma ASUS AM3+ com sucesso usando o Windows XP. A tal ferramenta da BiOS da placa mãe simplesmente não funciona.

Os firmware são perigosos de mexer. As ferramentas nem, sempre funcionam bem.

O LINUX , na configuração do Kernel tem opção para selecionar o processador de modo mais específico. AS distros preferem deixar no Genérico., assim todos funcionam, como mula manca mas funcionam.

Pergunto se essa alteração no Kernel favorece o carregamento do tal microcode que carrega em tempo de boot.

[3] Comentário enviado por mattos_gru em 09/05/2014 - 15:36h


[2] Comentário enviado por nicolo em 09/05/2014 - 11:13h:

Não sabia que o código do processdor precisava de atualização. .... ....

..... Pergunto se essa alteração no Kernel favorece o carregamento do tal microcode que carrega em tempo de boot.


Ola!

O microcode favorece a estabilidade do CPU como um todo, principalmente em Kernels genéricos, i.e. não recompilado para aquele CPU específico.

Como brilhantemente elucidado pelo autor @Kyetoy, o microcode será carregado como módulo e a maquina terá uma melhor estabilidade/escalabilidade e, em alguns casos, pode até eliminar ou reduzir "comportamentos estranhos" de alguns hardwares.

A fim de exemplificar, após adotar o microcode, se não me engano em 2010, em três servidores de produção, um deles que a cada dois/três meses desligava do nada, não deu mais problemas.

Adotado em notebooks, posso afirmar por experiência própria, os mesmos tornaram-se mais confiáveis - porem à que se tomar outras precauções tambem, como limpeza periódica, coolers de apoio, etc, etc.

O Artigo lhe agradou ou lhe ajudou? De sua nota

A Comunidade VOL agradece!

Dell Vostro 1310 wxga mate - Bios A15
Intel Core2 Duo T8300 @ 2.40GHz
8 GB RAM - HDs 250 Gb + 400 Gb Sata II
Intel Mobile GM965/GL960 Graphics Controller
Debian Sid Kernel 3.14.2-1-rt-amd64 x86_64 PREEMPT_RT
Kde 4.12.4-1 - plasma-desktop 4.11.8-1
Debian 7.5 Wheezy Kernel 3.12.9-1~bpo70+1 x86_64
Kernel 3.2.57-3-rt-amd64 x86_64 PREEMPT_RT
Kde 4.8.4-2 - plasma-desktop 4.8.4-6

[4] Comentário enviado por albfneto em 11/05/2014 - 14:16h

Bom artigo, 10

em sabayon e gentoo verifiquei, os arquivos de Microcode existem apenas para os processadores Intel, os para AMD não.

[5] Comentário enviado por Buckminster em 24/05/2014 - 22:58h

Antes de instalar dei um fgrep -i microcode /proc/cpuinfo e apareceu

microcode : 0xa07
microcode : 0xa07
microcode : 0xa07
microcode : 0xa07

e o dmesg |fgrep -i microcode apareceu

[ 5.938157] [drm] Loading RV710 Microcode

O sistema (Debian Wheezy 7.5 64 bits) foi instalado ontem, está como veio ao mundo.

O processador é um Core 2 Quad.

Depois de instalado mudou para:

microcode : 0xa0b
microcode : 0xa0b
microcode : 0xa0b
microcode : 0xa0b

e

[ 5.938157] [drm] Loading RV710 Microcode
[37223.490341] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa07
[37223.493810] platform microcode: firmware: agent loaded intel-ucode/06-17-0a into memory
[37223.497837] microcode: CPU0 updated to revision 0xa0b, date = 2010-09-28
[37223.498781] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa07
[37223.501861] platform microcode: firmware: agent loaded intel-ucode/06-17-0a into memory
[37223.505828] microcode: CPU1 updated to revision 0xa0b, date = 2010-09-28
[37223.506936] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa07
[37223.509990] platform microcode: firmware: agent loaded intel-ucode/06-17-0a into memory
[37223.513907] microcode: CPU2 updated to revision 0xa0b, date = 2010-09-28
[37223.516471] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa07
[37223.519910] platform microcode: firmware: agent loaded intel-ucode/06-17-0a into memory
[37223.523910] microcode: CPU3 updated to revision 0xa0b, date = 2010-09-28
[37223.526548] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba


Reiniciei o computador e continuou instalado.
Desliguei o computador, desliguei a fonte, esperei 1 minuto, liguei tudo e continuou instalado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts