EXCLUSIVO PARA ASSINANTES
Foto do(a) coluna

Por dentro da rede

Opinião|Comportamento errático em processadores é preocupante

Parece que nem o que está “escrito em silício” é imutável ou plenamente confiável

PUBLICIDADE

Atualização:
Não é nenhuma novidade que a crescente miniaturização dos componentes de circuitos integrados de silício cria fragilidades Foto: Kim Kyung-Hoon/Reuters - 29/2/2016

Há um vídeo na internet em que Peter Hochschild, um pesquisador do Google, descreve a identificação de comportamentos erráticos em módulos de processamento. O adjetivo que ele usa para isso é interessante: “comportamento mercurial”. O romano Mercúrio, Hermes dos gregos, era o deus da comunicação e também do comércio. Dotado de sandálias aladas, era rápido, mas muitas vezes errático. E de comportamento imprevisível: uma comunicação “hermética” refere-se a algo obscuro, não facilmente inteligível. O mercúrio, metal fluido e vivaz, prata-líquida ou prata-viva, faz jus ao nome.

PUBLICIDADE

Não é nenhuma novidade que a crescente miniaturização dos componentes de circuitos integrados de silício cria fragilidades. Uma célula de memória atualmente é tão pequena, e com tão pouca carga elétrica associada, que eventos de radiação cósmica ionizante, partículas alfa ou mesmo alguma radioatividade do invólucro poderiam alterar algum “um” para “zero”, ou vice-versa.

Há diversas formas de proteção contra esses riscos: a inclusão de algum tipo de verificação de consistência dos dados que detecte alterações ou, em casos mais críticos e sofisticados, a adição de informação redundante que permita não apenas apontar uma corrupção nos dados, mas consertá-la. Do lado dos processadores, em aplicações muito críticas, ou onde há exposição a agressões maiores, como em aplicações espaciais, pode-se aumentar a segurança provendo a triplicação de recursos computacionais.

Desta forma, em caso de alguma discrepância, haverá uma “maioria” que permita descartar o dissonante e dar mais segurança ao resultado.

Poderia haver aí uma analogia com as formas da evolução biológica? Afinal, somos o que somos porque uma infinidade de transformações aleatórias, devidamente filtradas e sancionadas pelo ambiente, nos trouxe a esse estágio. O risco de alterações inesperadas é atenuado quando se dispõe de alguma redundância. Há mecanismos que buscam automaticamente consertar “erros” em DNA, e biólogos poderão falar disso muito melhor mas, para um mero engenheiro, o fato do DNA ser uma fita dupla já parece uma ajuda importante em prevenir mutações caóticas: uma fonte adicional de dados provê aos reparadores automáticos uma segunda referência.

Publicidade

Problemas causados por fatores exteriores não se confundem com erros gerados por deficiências no projeto do “hardware” ou falhas na programação em “firmware” ou “software”. Há diversos casos bem documentados de erros encontrados em versões de equipamentos, que foram corrigidos nas versões seguintes. Um caso famoso, por exemplo, é o relacionado a problemas de cálculo em divisões em ponto flutuante de processadores Pentium em 1995, que foi rapidamente consertado. Uma outra fonte de surpresas, mas que não seria um “erro de projeto”, é a existência de instruções ocultas, não documentadas nos manuais.

Lembro que o processador Motorola 6800 tinha uma instrução não documentada conhecida como HCF (Halt and Catch Fire, ou “pare e pegue fogo”), que fazia o processador transformar-se num simples contador sequencial. A preocupação suscitada agora não é comportamento errático gerado por falhas de projeto ou de programação, e nem mesmo o efeito corruptor que elementos externos possam causar na exatidão do processamento, mas uma característica errática, não especialmente rara, que vem sendo detectada em processadores de alta capacidade e alta densidade.

Um ponto de alerta preocupante: parece que nem o que está “escrito em silício” é imutável ou plenamente confiável.

*É ENGENHEIRO ELETRICISTA 

Opinião por Demi Getschko
Tudo Sobre
Comentários

Os comentários são exclusivos para assinantes do Estadão.