SEPS – PROCESSADORES DIGITAIS DE SINAL I · Processamento de imagem ... A codificação em hardware (vírgula fixa ou flutuante) permite, em apenas um ciclo de intrução: ler dois
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
SEPS – PROCESSADORES DIGITAIS DE SINAL VVantagens dos DSPs:1. Resolução ⇒ pode obter-se grande precisão fazendo as contas com
palavras de comprimento grande
2. Gama dinâmica ⇒ ALU’s com grande comprimento de palavra (N bit) permitem gama dinâmica muito elevada (aproximadamente 6N dB), impossível de conseguir com circuitos analógicos
3. Estabilidade de características ⇒ um sistema implementado com DSPsnão sofre desvios de características por tolerância e/ou envelhecimento dos componentes, ou influências térmicas.
4. Versatilidade ⇒ o mesmo circuito pode ser utilizado para resolver problemas diferentes apenas por alteração da programação do DSP
5. Facilidade em gerar funções não-lineares ⇒ por tabela (seno, tan, etc…)6. Facilidade em implementar algoritmos adaptativos
Inconvenientes dos DSPs:1. Necessitam de conversores A/D e D/A ⇒ para comunicar com o mundo
analógico
2. Têm consumo elevado ⇒ em muitos casos os circuitos analógicos podem consumir entre 1 a 100 vezes menos para realizar funções equivalentes
3. Necessário sistema de desenvolvimento específico ⇒ caro
Telecomunicações:Processamento de sinais em emissores/receptores (modems)Igualadores adaptativosCanceladores de ecoCodificação de áudioAnálise e síntese de sinaisCodificação de imagem
Controlo industrial:Processamento de imagemReconhecimento de formasControlo de processos em tempo realContadores electrónicos de energiaSuspensões activas
Electrónica de consumo:Áudio digital (igualação, cancelamento, etc…)Efeitos sonorosSintetizadores de somSíntese e reconhecimento de voz
SEPS – PROCESSADORES DIGITAIS DE SINAL VII – Arquitecturas
μP genérico com arquitectura de Von NeumannOperações sequenciaisUnidades não envolvidas na execução da instrução esperam a sua finalização ⇒ ineficiência
Aumento da rapidez global ⇒ só possível à custa do aumento da rapidez de cada unidade
SEPS – PROCESSADORES DIGITAIS DE SINAL VIII – Arquitecturas
DSP genérico com arquitectura de Harvard
Múltiplos barramentos. Barramento de dados separado do barramento de programa (arquitectura de Harvard). Barramentos específicos para entrada/saída
Possibilidade de acesso directo àmemória (DMA) para transferências rápidas de blocos de dados
Unidades aritméticas e lógicas (ALU), multiplicador de hardwaree pequenos blocos de processamento (por exemplo: Multiply-Accumulate ou Multiply-Accumulate-Compare) realizados em hardware
Necessário memória de dados e programa distinta
O elevado desempenho dos DSP é obtido por meio de técnicas:
Arquitectura de Harvard
Pipelining
Hardware dedicado
Memória interna/cache
Modos de endereçamento avançados (circular, bit-reversed, etc…)Paralelismo (SIMD, VLIW…)
SEPS – PROCESSADORES DIGITAIS DE SINAL IX – Arquitecturas
Microprocessador standard: um único barramento para dados e programa (Von Neumann)A execução de uma instrução envolve 3 fases distintas:Fetch ⇒ o código da instrução é lido da memória de programaDecode ⇒ a instrução édescodificadaExecute ⇒ a instrução éexecutada (envolvendo em geral a escrita/leitura da memória de dados)
Como o barramento de programa e dados (e em geral também a memória física) écomum, a execução da instrução n não pode ser feita em paralelo com o fetch da instrução n+1
Exemplo: ler o valor OP1 (no endereço ADR1) e guardar o valor nas posições de memória com endereços ADR2 e ADR3
SEPS – PROCESSADORES DIGITAIS DE SINAL X – Arquitecturas
Microprocessador com arquitectura de HarvardDados e programa residem em memórias fisicamente distintas, com barramentos distintosComo existem barramentos separados para programa e dados, a execução da instrução n pode ser feita em paralelo com a leitura (fetch) da instrução n+1
Arquitectura de Harvard modificada ⇒ existe comunicação entre a memória de programa e a memória de dados
SEPS – PROCESSADORES DIGITAIS DE SINAL XI – Eficiência/paralelismo
Pipelining: técnica que permite explorar o paralelismo inerente às fases de execução de uma instrução (que são independentes numa arquitectura de Harvard). No caso anterior temos 3 fases independentes: pipe com 3 estágios (utilizado nos processadores da Texas Instruments)Necessário:
Contador pre-fetch: contém o endereço da próxima instrução a ser lida da memória (fetched)Registo de instrução: contém o código da próxima instrução a ser executadaFila de espera de instruções: mantém o código das instruções a executar se a instrução actual ainda estiver a ser executada (instruções com mais de um ciclo de relógio)
Devido ao overhead associado à gestão do pipe a eficiência éinferior ao nº de estágios Como são realizadas 3 operações em paralelo, o pipelining provoca um aumento do nº de acessos àmemória
Técnicas para aumentar a eficiência dos processadoresUtilização de memória interna rápida
Memória externa lenta obriga à inserção de wait-states (por software ou hardware) que fazem diminuir o desempenho do processador tanto em acessos de dados como de programa. A memória interna obvia este problema: durante a fase de inicialização o programa é transferido da memória externa (lenta) para memória interna (rápida)
Utilização de Cache internaPermite acelerar a execução de segmentos de código frequentes
Repetição encadeada de blocos de instruçõesO controlo é feito por hardware dedicado, evitando todo o overhead associado ao controlo de ciclos por software. Podem ser implementados vários níveis de encadeamento (4 níveis no processador ADSP-2115 da Analog Devices, por exemplo). A execução repetida de blocos pode beneficiar grandemente da existência de Cache
SEPS – PROCESSADORES DIGITAIS DE SINAL XII – Eficiência/paralelismo
Técnicas para aumentar a eficiência dos processadoresBarramentos múltiplos (dados e programa)
4 barramentos no TMS320C5416, 10 no TMS320C6416/6713
Utilização de hardware dedicado e coprocessamento
Utilização de instruções especiaisExecutam mais do que uma operação por ciclo de instrução
Replicação de hardwareReplicação de multiplicadores e ALUs de modo a aumentar o paralelismo no cálculo. O processador TMS320C6416 tem 4 multiplicadores de 16ä16 bit. O processador TMS320C6713 tem 6 ALUs dedicadas
Técnicas para aumentar o paralelismo no processamentoProcessamento Single Instruction Multiple Data (SIMD)
Utilização de Very Large Instruction Word (VLIW)
Processamento superescalar
SEPS – PROCESSADORES DIGITAIS DE SINAL XIII – Eficiência/paralelismo
SEPS – PROCESSADORES DIGITAIS DE SINAL XIV – Eficiência/paralelismo
Multiply-Accumulate (MAC)Operação muito comum em processamento digital de sinais
A codificação em hardware (vírgula fixa ou flutuante) permite, em apenas um ciclo de intrução: ler dois operandos (ambos de memória de dados, ou um de memória de dados e outro de memória de programa) multiplicá-los e acumular o resultado a um valor anterior
Variante: Multiply-Accumulate-Data Move(MACD)
Além das operações anteriores faz deslocamento do conteúdo de uma das posições da memória de dados endereçada: útil para a implementação de linhas de atraso (realização de filtros)
SEPS – PROCESSADORES DIGITAIS DE SINAL XV – Eficiência/paralelismo
TsConversor
A/Dsω
Ts Ts
0a 1a 2a 1Na −
( )sy nT
( )sx nT (( 1) )sx n T− (( 1) )sx n N T− +
Arquitectura de um DSP – Realização de filtros transversais
1
0
( ) (( ) )N
i si
y nTs a x n i T−
== ⋅ −∑A saída actual y(nTs) depende da entrada actual x(nTs) e das restantes N-1 entradas anteriores (não depende das saídas anteriores ⇒ não tem realimentação ⇒ é não-recursivo)O filtro transversal permite realizar qualquer função de filtragem através do dimensionamento dos coeficientes aiO filtro transversal tem resposta impulsional finita (FIR-FiniteImpulse Response) com duração NTs segundosO filtro transversal é sempre estável ⇒ é ideal para processamento adaptativo
SEPS – PROCESSADORES DIGITAIS DE SINAL XVII – Eficiência/paralelismo
Arquitectura de Harvard modificada
Exemplo com processador de 16 bit
O contador AR1 é inicializado com o valor N (comprimento do filtro FIR) e aponta para a amostra x(n-N+1) O contador de programa endereça o coeficiente aN-1
Em cada ciclo de relógio AR1decrementa de 1 (o contador de programa incrementa de 1); é feito o produto aix((n-i)Ts) e este é somado na ALU com o resultado anterior
Blocos de hardware específico e coprocessadoresTurbo Decoder Coprocessor
Utilização em comunicação digital (3G por exemplo)Viterbi Decoder (e.g. TMS320C54x)
A unidade de cálculo elementar é a Compare-Select-Store Unit (CSSU)O acumulador A (32 bit) contém Met1+D1 na parte alta e Met2+D2 na parte baixa. O bloco COMP compara estas palavras de 16 bit e sinaliza ao bloco SELECT qual a maior, que deve seleccionar e guardar.
O acumulador B contém outras métricas acumuladas e é depois seleccionado (MUX) para fazer outra comparação da treliça.
SEPS – PROCESSADORES DIGITAIS DE SINAL XVIII – Eficiência/paralelismo
Single Instruction Multiple Data (SIMD)Permite aumentar o número de operações realizadas por cada instrução
SEPS – PROCESSADORES DIGITAIS DE SINAL XIX – Eficiência/paralelismo
Devido à multiplicidade de barramentos, multiplicadores e unidades aritméticas, uma sóinstrução pode conter diversos operandos que são entregues a estas unidades e processados em paralelo
Versatilidade: pode optar-se por realizar uma operação MAC de 32ä32 bit ou em alternativa, 4 operações MAC de 16ä16 bit
Útil quando os dados existem e podem ser acedidos concorrentemente (não de forma sequencial)
Permite aumentar o número de instruções executadas em cada ciclo de instruçãoUma VLIW contém múltiplas instruções elementares (mais pequenas) e requer a existência de várias unidades de execução
SEPS – PROCESSADORES DIGITAIS DE SINAL XX – Eficiência/paralelismo
Exemplo: TMS320C62x: existem 8 unidade de execução agrupadas em dois conjuntos (L1, S1, M1, D1) e (L2, S2, M2, D2). As instruções elementares são de 32 bit e uma VLIW contém 8 instruções elementares (256 bit).1) O processador faz o fetch de uma VLIW
(packet). 2) As 8 instruções são analizadas e se for possível executá-las em paralelo é formado um execution packet que é distribuído pelas unidades de execução. 3) Se não for possível executar todas as instruções em paralelo são formados diversos execution packets (com tamanho entre 1 e 8 instruções) e enviados sequencialmente para as unidades de execução.
Processadores superescalaresPor definição e tal como com VLIW, permitem aumentar o número de instruções por ciclo de execução. Na prática combinam os conceitos anteriores (SIMD e VLIW)
SEPS – PROCESSADORES DIGITAIS DE SINAL XXI – Eficiência/paralelismo
Exemplo: TigerSHARC da Analog Devices. Processador superescalar estático (paralelismo é determinado antes da execução). A pré-análise do programa é necessária também para evitar dependência de dados e de controlo (fluxo do programa), o que também acontece com os processadores VLIW.
Uma instrução pode conter dados para as duas ALU (SIMD), ou podem ser enviadas 2 instruções diferentes para as 2 unidades de execução (VLIW).
Unidades aritméticas podem funcionar com 8, 16, 32 ou 64 bits, o que permite aumentar o paralelismo de instrução: por exemplo, podem realizar-se 8 MAC de 16 bit em vez de 2 MAC de 32 bit