Soluções híbridas de hardware/software para a detecção de erros em systems-on-chip (SoC) de tempo real

Nos ultimos anos, o crescente aumento do numero de aplicacoes criticas envolvendo sistemas de tempo real aliado ao aumento da densidade dos circuitos integrados e a reducao progressiva da tensao de alimentacao, tornou os sistemas embarcados cada vez mais susceptiveis a ocorrencia de falhas transientes. Tecnicas que exploram o aumento da robustez de sistemas em componentes integrados (SoC) atraves do aumento do ciclo de trabalho do sinal de relogio gerado por um bloco PLL para acomodar eventuais atrasos indesejados da logica [1] sao possiveis solucoes para aumentar a confiabilidade de sistemas eletronicos. Diz-se que estes sistemas utilizam tecnicas de error avoidance. Outras tecnicas cujo objetivo nao e o de evitar falhas, mas sim o de detecta-las, sao ditas tecnicas de error detection. Este trabalho aborda esse segundo tipo de tecnica para aumentar a confiabilidade de sistemas eletronicos; ou seja, aborda o desenvolvimento de tecnicas que realizam a deteccao de erros em tempo de execucao do sistema. Sistemas de tempo real nao dependem somente do resultado logico de computacao, mas tambem no tempo em que os resultados sao produzidos. Neste cenario, diversas tarefas sao executadas e o escalonamento destas em funcao de restricoes temporais e um tema de grande importância. Durante o funcionamento destes sistemas em ambientes expostos a interferencia eletromagnetica (EMI), existe a enorme probabilidade de ocorrerem falhas transientes. Assim, a utilizacao de tecnicas capazes de detectar erros evita que dados erroneos se propaguem pelo sistema ate atingir as saidas e portanto, produzindo um defeito e/ou comprometendo a caracteristica temporal do sistema. Basicamente, as tecnicas de deteccao sao classificadas em duas categorias: solucoes baseadas em software e solucoes baseadas em hardware. Neste contexto, o objetivo principal deste trabalho e especificar e implementar uma solucao baseada em software (descrito em linguagem C e inserida no nucleo do Sistema Operacional de Tempo Real - RTOS) ou baseada em hardware (descrito em linguagem VHDL e conectada no barramento do processador) capaz de detectar em tempo de execucao eventuais erros devido a falhas ocorridas no sistema. As falhas consideradas neste trabalho sao aquelas que afetam a execucao correta do fluxo de controle do programa. A solucao proposta e inovadora no sentido de se ter como alvo sistemas SoC com RTOS multitarefa em ambiente preemptivo. A solucao proposta associa a estes sistemas, tecnicas hibridas de deteccao de erros: baseadas em software (YACCA [2,3]) e em hardware (WDT [4,5], OSLC [6,7] e SEIS [8,9,10]). Diferentes versoes do sistema proposto foram implementadas. Em seguida, foram validadas em um ambiente de interferencia eletromagnetica (EMI) segundo a norma IEC 62132-2 [11] que define regras para os testes de circuitos integrados expostos a EMI irradiada. A analise dos resultados obtidos demonstra que a metodologia proposta e bastante eficiente, pois apresenta uma alta cobertura de falhas e supera os principais problemas presentes nas solucoes propostas na literatura. Ou seja, associa uma menor degradacao de desempenho com um menor consumo de memoria e uma maior cobertura de falhas.