Universidade Federal do Amazonas

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

Algoritmo e Programação
AULA 02 PROGRAMAÇÃO LINEAR INTEIRA
Programação em Java Prof. Maurício Braga
Software Básico Silvio Fernandes Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula 05:
VERIFICAÇÃO FORMAL DE BLOCOS COMPLEXOS
Arquitetura de Computadores
Amintas engenharia.
Estruturas de Repetição
Operações envolvendo imagens
Sinais Digitais Sistemas em tempo discreto Sistemas quantificados
Fig. 2 Especificação de um filtro passa-baixo: banda de passagem, banda de transição e banda de corte. Ondulação na banda de passagem e atenuação mínima.
Especificações de Filtros
Diagramas de Blocos e Graphos
Especificações de Filtros
Diagramas de Blocos e Graphos
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Relatividade Restrita
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Software Básico Silvio Fernandes
Modelos de Troca de Dados em Nível Elétrico
Modelos no Domínio do Tempo de Sistemas LTI Contínuos
Laboratório 4 Sistemas embarcados Período
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
Arquitetura de Sistemas Operacionais
Teste em Esquemas de Dados Maria Cláudia Figueiredo Pereira Emer Universidade Federal do Paraná Departamento de Informática Seminário.
MC542 Organização de Computadores Teoria e Prática
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
6. Estruturas p/ Sistemas Discretos
10. Análise de Fourier usando DFT
7. Técnicas de Projeto de Filtros
Medida do Tempo de Execução de um Programa
Avaliação de Desempenho
Maria Aparecida Castro Livi
Maria Aparecida Castro Livi
Introdução à Lógica de Programação (cont.)
Universidade Federal do Rio Grande do Sul Programa de Pós-Graduação em Computação Exploração do espaço de projeto para uma arquitetura de processamento.
Classificação e Pesquisa de Dados
Estruturas de Controle
I – Informação Digital Escola Politécnica da USP MBA EPUSP em Gestão e Engenharia do Produto EP018 O Produto Internet e suas Aplicações Tecnologias de.
TIPOS DE TESTES APLICÁVEIS E NÃO APLICÁVEIS AO PROJETO
Listas Encadeadas.
Introdução à Programação
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Compressão de Textos Juliano Palmieri Lage.
Latches e Flip-Flops GSI008 – Sistemas Digitais
Fundamentos de Telecomunicações
Sistema de Monitorização da Condução de um Automóvel
Circuitos Elétricos 2 Circuitos Elétricos Aplicados
Verificação de Códigos Lua Utilizando BMCLua
Arquitetura de computadores
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Introdução a Linguagens de Programação
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
GESTÃO DE PROJETOS Aula 5 1.
Introdução e Busca Cega
How to Break Software Capítulo 3 Taíse Dias Testing from the user Interface.
Conceitos básicos em grafos
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Agenda Modos de Endereçamento.
Linguagem e Ambiente Scratch
Campus de Caraguatatuba Licenciatura em Matemática Semestre de 2013
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
CMP 167– Programação com Objetos Distribuídos Prof. Cláudio Geyer
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Fontes de Erros Aula 1 Introdução; Erros em processos numéricos;
Contagem Sequencial do Estoque
Faculdade de Engenharia da Universidade do Porto Licenciatura em Engenharia Electrotécnica e de Computadores Ramo de Telecomunicações, Electrónica e Computadores.
Engenharia de Sistemas Embarcados Aula 5: Um Conjunto Básico de Ferramentas.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Transcrição da apresentação:

Renato Abreu renatoabreu@ufam.edu.br 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: Utilizados para: 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 Vantagens Desvantagens Menor custo de hardware Melhor desempenho (velocidade e consumo de energia) Efeitos de quantização Menor intervalo dinâmico → overflow Ciclo limite 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 𝑦 𝑛 =− 𝑘=1 𝑁 𝑎 𝑘 y n−k + 𝑘=0 𝑀 𝑏 𝑘 x n−k Sistema linear invariante no tempo 𝐻 𝑧 = 𝑌(𝑧) 𝑋(𝑧) = 𝑘=0 𝑀 𝑏 𝑘 𝑧 −𝑘 1+ 𝑘=1 𝑁 𝑎 𝑘 𝑧 −𝑘 Forma Direta I float iirFilterI() { float yn = 0; for (int k = 0; k < M; k++) yn += *b++ * *x--; } for (int k = 1; k < N; k++) yn -= *a++ * *y--; return yn;

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 2-l-1 2-l Q(x) 2k-1-2-l -2k-1 Complemento de dois, k bits inteiros, l bits de precisão Máximo Arredondamento: -2-l-1 ≤ e(x) ≤ 2-l-1 Mínimo

É insatisfatível pois a fórmula é falsa para qualquer valor 𝑥1 e 𝑥2 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ível pois a fórmula é verdadeira, por exemplo para: 𝑥1↦1, 𝑥2↦0,𝑥3↦1, 𝑥4↦0 (𝑥1∨𝑥2)⋀(𝑥3∨𝑥4) ( 1 ∨0 )⋀( 1∨ 0 )≡1 É insatisfatível pois a fórmula é falsa para qualquer valor 𝑥1 e 𝑥2 (𝑥1∨𝑥2)⋀(¬𝑥1∨¬𝑥2)

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 Teoria Exemplo Igualdade 𝑥1=𝑥2∧¬(𝑥1=𝑥3)⇒¬ 𝑥1=𝑥3 Vetor de bits 𝑏≫𝑖 &1=1 Aritmetica linear (4𝑦1+3𝑦2≥4)∨(𝑦2−3𝑦3≤3) Arrays 𝑗=𝑘∧𝑎 𝑘 =2 ⇒𝑎 𝑗 =2 Teorias combinadas 𝑗≤𝑘∧𝑎 𝑗 =2 ⇒𝑎 𝑖 <3 𝑘,𝑙 × 𝑘,𝑙 = 2𝑘,2𝑙 2𝑘,2𝑙 ≫𝑓= 2𝑘,𝑓 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) Traduzido em uma condição de verificação ψ tal que ψ é satisfatível se e somente se ϕ tem um contraexemplo em uma profundidade de no máximo k

Conversão de restrições e propriedades 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,703125 -0,5 0,75 x(n) y(n)

Exemplo1: Verificação de Overflow Estimando o intervalo para a saída: Para um sistema estável, 𝑦 𝑛 ≤ 𝑥 𝑚𝑎𝑥 𝑘=−∞ ∞ ℎ 𝑘 No Matlab a função impz calcula a resposta ao impulso ℎ 𝑘=0 100 ℎ 𝑘 = 1,8178 Para x entre [-1,1], 𝑦 𝑛 ≤1,82 Representando em 2, 6 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: 𝑙 𝑜𝑣𝑒𝑟𝑓𝑙𝑜𝑤 ⟺(−2≤𝐹𝑃) ∧(𝐹𝑃≤1,984375) 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 } -0,890625 × 0,75 = -0,6718750 0,75 -2,03125 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,890625 × 0,75 = -0,671875 0,75 -0,5 +

Exemplo 2: Verificação de Ciclo Limite Filtro IIR de um pólo com 2 bits para inteiros e 4 bits de precisão 𝑦 𝑛 =−0,5 y n−1 +x n −0,5 Q[−0,5 ] Wrap around

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! -1 1 2 3 n y = 0 y(1) y(3) y(2) y(0) = -0,0625 = -0,0625 = 0,0625 = 0,0625 −𝟎,𝟓 -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 verificador aplica uma entrada qualquer em busca da negação de 𝑙 𝑡𝑖𝑚𝑖𝑛𝑔 ⟺ (𝑁×𝑇)≤𝐷 float iirFilterI() { float yn = 0; for (int k = 0; k < M; k++){ yn += *b++ * *x--; } for (int k = 1; k < N; k++){ yn -= *a++ * *y--; return yn; 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 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, Fedora 64-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 Fs de 48 KHz e clock de 16 MHz (MSP430) Benchmarks disponíveis em www.esbmc.org

Tempo de verificação (s) 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 # Filtro Na Nb ∑|hk| Entrada Bits xsize Falhas Tempo de verificação (s) OF LC TC 1 LP-IIR 2 [-1,1] <2,4> 6 OF, LC 39 4 <1 LP-Butterworth-IIR 3 1.2 [-1.6,1.6] <2,5> 579 634 <3,4> 210 29 1.56 - 110 51 5 LP-FIR 31 1.93 <2,6> TO 98 HP-ChebyshevI-IIR 1.33 <2,10> 853 2058 7 BP-Elliptic-IIR 1.24 [-1.0,1.0] 546 474 8 BS-Butterworth-IIR 1.81 <2,8> 106 1299 9 0.91 [-1.1,1.1] <1,8> 10 20 HP-Butterworth-IIR 1.58 [-1.27, 1.27] 2468 1508 11 BP-ChebyshevI-IIR 1.51 [-1.33, 1.33] 12 HP-Elliptic-IIR 5.39 <3,13> 14 73 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 Contribuições Observações 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

OBRIGADO!

Metodologia de Desenvolvimento Tabela - Cronograma de atividades

Implementação de Filtros 𝑦 𝑛 =− 𝑘=1 𝑁 𝑎 𝑘 y n−k + 𝑘=0 𝑀 𝑏 𝑘 x n−k Forma em Cascata Forma em Paralelo Forma Direta II Forma Transposta II Sistema linear invariante no tempo 𝐻 𝑧 = 𝑌(𝑧) 𝑋(𝑧) = 𝑘=0 𝑀 𝑏 𝑘 𝑧 −𝑘 1+ 𝑘=1 𝑁 𝑎 𝑘 𝑧 −𝑘 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) 𝑋=− 𝑏 𝑘−1 2 𝑘−1 + 𝑖=𝑘−2 −𝑙 𝑏 𝑖 2 𝑖 Valor máximo 2 𝑘−1 − 2 −𝑙 Valor mínimo − 2 𝑘−1

Fórmulas Lógicas

Referências Verificação de modelos Verificação de restrições temporais L. de Moura et al., “Z3: An efficient SMT solver,” TACAS, 2008 L. Cordeiro et al. “SMT-based bounded model checking 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 model checker to determine worstcase execution time,” Columbia University Reports, 2009 R. Barreto et al., “Verifying Embedded C Software with Timing Constraints Using an Untimed Bounded Model Checker,” SBESC, 2011 Verificação de filtros digitais D.A. Bailey and A.A. Beex, “Simulation of filter structures for fixedpoint implementation,” Proceedings of the 28th Southeastern Symposium on System Theory, 1996 Behzad Akbarpour and Sofiène Tahar, “Error analysis of digital filters using HOL theorem proving,” Journal of Applied Logic, 2007 C.F. Fang et al., “Fast, accurate static analysis for fixed-point finite-precision effects in DSP designs,” ICCAD, 2003 A. Cox et al., “A bit too precise? Bounded verification of quantized digital filters,” TACAS, 2012