300 likes | 435 Views
Universidade Federal do Amazonas P rograma de P ós-Graduação em E ngenharia E létrica. Verificação de Propriedades Temporais em Filtros Digitais de Ponto-Fixo usando Teorias do Módulo da Satisfatibilidade. Renato Abreu renatoabreu@ufam.edu.br. Verificação de Sistemas.
E N D
Universidade Federal do Amazonas Programa de Pós-Graduação em Engenharia Elétrica Verificação de Propriedades Temporais em Filtros Digitais de Ponto-Fixo usando Teorias do Módulo da Satisfatibilidade Renato Abreu renatoabreu@ufam.edu.br
Verificação de Sistemas • Aplicado a hardware e software que em que a falha é inaceitável • Métodos utilizados: • Simulações e testes • Métodos formais - inserir entradas e observar saídas - não cobre todas as possíveis combinações - descreve o sistema usando lógica matemática - garante corretude para todas as possíveis entradas e saídas Typecast overflow!
Filtros Digitais • Encontrados em: • carros • aeronaves • sistemas de comunicação • produtos eletrônicos • equipamentos médicos, etc • Utilizados para: • remoção de ruídos • equalização de canal de comunicação • análise espectral de sinais, etc • Frequentemente implementados em: • DSPs • FPGAs • Processadores de ponto fixo
Implementação em Ponto Fixo Filtro estável: anulando a entrada a saída deve ir pra zero Referência Porém, em ponto fixo... Referência Overflow Com quantização (10 bits) Wrap-around
Aspectos da Implementação de Filtros • Projeto de filtros feito em ponto flutuante, mas a implementação é feita em ponto fixo • Simulações e testes extensivos são insuficientes para detectar todos os possíveis problemas (Cox et al., 2012) • Determinar o comprimento da palavra (bits para parte inteira e parte fracionária) considerando: • Precisão • Desempenho • Custo
Objetivos • Detectar problemas em filtros digitais em ponto fixo utilizando um verificador BMC baseado em SMT • Verificação de overflow, ciclo limite, restrições temporais e nível de ruídos através de um BMC de prateleira • Verificação de filtros de diversos tipos e com diferentes formatos de ponto fixo • Aprimorar implementação para diminuir tempo de verificação • Verificação de benchmarks e comparação dos resultados
Implementação de Filtros Sistema linear invariante no tempo • floatiirFilterI() • { • floatyn = 0; • for (int k = 0; k < M; k++) • { • yn+= *b++ * *x--; • } • for (intk = 1; k < N; k++) • { • yn-= *a++ * *y--; • } • returnyn; • } Forma Direta I
Modelo Realista com Quantização Quantização da entrada DSPs modernos possuem acumuladores para armazenar os resultados com maior precisão Quantização nas operações intermediárias Quantização dos coeficientes Q(x) 2k-1-2-l Máximo 2-l 2-l-1 Arredondamento: -2-l-1 ≤ e(x) ≤2-l-1 Mínimo -2k-1 Complemento de dois, k bits inteiros, l bits de precisão
Lógica Proposicional • A sintaxe das fórmulas em lógica proposicional por: • Um solucionador SAT é um algoritmo que toma como entrada uma fórmula ϕ na forma normal conjuntiva e decide se ela é satisfatível ou insatisfatível • Ex. 1: • Ex. 2: É satisfatívelpois a fórmula é verdadeira, porexemplopara: É insatisfatívelpois a fórmula é falsaparaqualquer valor e
Teoria da Satisfatibilidade • Um solucionador SMT decide sobre a satisfatibilidade de uma fórmula de primeira ordem usando diferentes teorias de suporte e então generaliza a satisfatibilidade proposicional Verificar overflow
BMC baseado em SMT • Tem sido aplicado para verificação de softwares sequenciais • Verifica a negação de uma determinada propriedade a uma determinada profundidade • Sistema de transição de estados M desdobrado k vezes • Estado: contador de programa e variáveis do programa • Desdobramento a partir do fluxo de controle (loops, trocas de contexto) • Traduzidoemumacondição de verificaçãoψtalque • ψ é satisfatível se e somente se ϕtem um contraexemploemumaprofundidade de no máximok
BMC usando o ESBMC OK Conversão de restrições e propriedades Fluxo de controle Forma SSA Código C/C++ Programa em GOTO Contexto Lógico Solver SMT Contra-exemplo
Verificação de Filtros Digitais • Projetar o filtro usando o método e ferramenta de preferência • Estimar intervalo de saída para uma dada faixa de entrada • Definir o comprimento da palavra, levando em conta o custo, problemas de quantização e desempenho • Entrar com parâmetros do filtro no modelo de estrutura em C • Realizar análise do pior caso de tempo de execução (WCET) • Configurar assertivas no modelo em C • Overflow • Ciclo limite • Restrições temporais • Outras propriedades (propriedades de projeto, SNR, etc) • Executar verificação e caso falhe, obter contraexemplo
Exemplo1: Verificação de Overflow • Filtro IIR com as seguintes especificações • Butterworth corta-faixa de 2ª ordem • Frequências de corte: 7 e 10 kHz • Frequência de amostragem: 48 kHz • Atenuação nas frequências de corte: 3dB 0,75 x(n) y(n) -0,703125 -0,703125 -0,5 0,75
Exemplo1: Verificação de Overflow • Estimando o intervalo para a saída: • Para um sistema estável, • No Matlaba funçãoimpzcalcula a respostaaoimpulso • = 1,8178 • Para x entre [-1,1], • Representando em • Intervalo [-2, 1,984375] • Erro ±0,0078125
Exemplo1: Verificação de Overflow • O verificador aplica entradas não-determinísticas dentro do intervalo [-1,1] em busca da negação de: • Aqui a verificação retorna a seguinte entrada como contraexemplo: • x = { 0.0f, 0.015625f, 0.0f, -0.890625f, 0.96875f, -0.890625f } • xaux = { -0.890625f, 0.96875f, -0.890625f } • yaux = { 0f, -0.671875f, 0.890625f } -2,03125 0,75 -0,890625 0,75 = -0,6718750 O filtro também falha se implementado na Forma Direta II, mas não falha na Forma Transposta II devido a ordem de execução das operações + 0,968750 -0,703125 = -0,6875 -0,703125 -0,703125 + 0,75 -0,5 -0,890625 0,75 = -0,671875 +
Exemplo 2: Verificação de Ciclo Limite • Filtro IIR de um pólo com 2 bits para inteiros e 4 bits de precisão Q Wraparound
Verificação de Ciclo Limite • Utilizamos uma entrada nula e valores não determinísticos para as saídas anteriores • Uma assertiva detecta uma falha caso o conjunto de estados anteriores das saídas se repetir Repetição com entrada nula. Ciclo Limite! y y(2) y(3) y(1) y(0) = -0,0625 = -0,0625 = 0,0625 = 0,0625 = 0 n 0 -1 1 2 3 -0,0625 0,0625 -0,0625 -0,0625 -0,0625 0,0625 0,0625 0,125
Verificação de Restrições Temporais • Baseada na análise de tempo de execução do pior caso (WCET) • Exemplo de operação em um trecho de código para MSP430: • O verificadoraplicaumaentradaqualquerembusca da negação de MOV.W @r9+,r12 5 cycles MOV.W @r9+,r13 5 cycles SUB.W #4,r10 5 cycles MOV.W 4(r10),r14 3 cycles MOV.W 6(r10),r15 3 cycles CALL #__fs_mpy 5 cycles MOV.W r7,r14 1 cycle MOV.W r8,r15 1 cycle CALL #__fs_add 5 cycles MOV.W r12,r7 1 cycle MOV.W r13,r8 1 cycle • floatiirFilterI() { • floatyn = 0; • for (int k = 0; k < M; k++){ • yn += *b++ * *x--; • } • for (int k = 1; k < N; k++){ • yn -= *a++ * *y--; • } • returnyn; • } sum += *b++ * *x--; • Quantidade de instruções dependerá da ordem do filtro. • Duração das operações dependerá da plataforma e do tamanho da palavra Deadline Número de ciclos Duração do ciclo
Avaliação Experimental • Ambiente: • Intel Core i7-2600, 3.40 GHz com 24 GB de RAM, Fedora64-bits • ESBMC v1.21 • SMT solver Z3 v3.2, usando aritmética de vetor de bits • Timeout: 3600 segundos • Filtros verificados • obtidos da literatura ou projetados no Matlab • Fs= 48KHz (típica em áudio) • restrição temporal baseada em Fsde 48 KHz e clock de 16 MHz (MSP430) • Benchmarks disponíveis em www.esbmc.org
Resultados Tipo de filtro Número de coeficientes de realimentação Número de coeficientes diretos Soma do módulo da resposta ao impulso Intervalo de entrada para aplicação Bits para parte inteira e fracionária Tamanho da entrada aplicada Tipo de falha obtida Rápida verificação de restrição temporal. Código sequencial. Verificados diferentes tipos de filtros de diversas ordens Overflow detectado mesmo para estimativa conservadora Rápida verificação de filtros de baixa ordem e com pequeno tamanho de palavra Alto tempo de verificação de filtros mais complexos Falha de restrição temporal para filtros de maior ordem OF - Overflow, LC - Ciclo limite, TC - restrição temporal, TO - Time out
Conclusões • Conclusões gerais • Foi proposta uma abordagem para verificação de filtros digitais utilizando um verificador BMC baseado em SMT • Permite encontrar problemas relacionados a representação em ponto fixo • É possível detectar problemas que seriam difíceis de identificar através de testes e simulações • Contribuições • Exploramos as vantagens do verificador de prateleira ESBMC em cima de um modelo em C • Estendemos a abordagem com a verificação de restrições temporais baseadas em WCET em conjunto com o BMC • Observações • Alto tempo de verificação para filtros mais complexos
Trabalhos Futuros • Aplicação do método para outras formas de filtros • Forma Direta II, Forma Transposta, em Cascata, em Paralelo, etc • Aumentar eficiência do sistema de verificação • Implementação de uma biblioteca de ponto fixo • Adicionar mais propriedades para verificação • Especificações da resposta em frequência • Nível de ruído (SNR) • Outras aplicações em processamento digital de sinais • Verificação de sistema OFDM
Metodologia de Desenvolvimento Tabela - Cronograma de atividades
Implementação de Filtros Sistema linear invariante no tempo Forma em Cascata Forma Direta II Forma em Paralelo Forma Transposta II Forma Direta I
Representação em Ponto Fixo • Representação em complemento de dois • ⟨k, l⟩ sendo k bits para parte inteira e l bits para fracionária • Um bit de sinal • (bk−1 bk−2 ... b1 b0 · b−1 b−2 ... b−l) • Valor máximo • Valor mínimo
Referências • Verificação de modelos • L. de Moura et al., “Z3: Anefficient SMT solver,” TACAS, 2008 • L. Cordeiro et al. “SMT-basedboundedmodelchecking for embedded ANSI-C software,” IEEE Transactions on Software Engineering, 2012 • E. Clarke et al., “A tool for checking ANSI-C programs,” TACAS, 2004 • Verificação de restrições temporais • S. Kim et al., “Using a modelcheckerto determine worstcaseexecution time,” Columbia UniversityReports, 2009 • R. Barreto et al., “VerifyingEmbedded C Software with Timing ConstraintsUsinganUntimedBoundedModel Checker,” SBESC, 2011 • Verificação de filtros digitais • D.A. Baileyand A.A. Beex, “Simulationoffilterstructures for fixedpointimplementation,” Proceedings of the 28th Southeastern Symposium on System Theory, 1996 • BehzadAkbarpourandSofièneTahar, “Erroranalysisof digital filtersusing HOL theoremproving,” JournalofAppliedLogic, 2007 • C.F. Fang et al., “Fast, accuratestaticanalysis for fixed-point finite-precisioneffects in DSP designs,” ICCAD, 2003 • A. Cox et al., “A bit too precise? Boundedverificationofquantized digital filters,” TACAS, 2012