seps – processadores digitais de sinal i · processamento de imagem ... a codificação em...

21
© Gonçalo Tavares, Moisés Piedade 1 SEPS – PROCESSADORES DIGITAIS DE SINAL I Correlação Codificação PCM Cálculo de FFTs Filtros FIR programáveis Descodificador de Viterbi etc... Genéricos Específicos Arquitectura interna adaptada à resolução de problemas específicos (Algorithm-specific) Arquitectura interna adaptada para aplicações específicas (Application-specific) Processadores de sinal Controladores específicos Modem GMSK Transceptores wireless Canceladores de eco Igualizadores etc... Totalmente programáveis Semi-programáveis Dedicados (não permitem a programação)

Upload: phungthuy

Post on 01-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

© Gonçalo Tavares, Moisés Piedade1

SEPS – PROCESSADORES DIGITAIS DE SINAL I

Correlação

Codificação PCM

Cálculo de FFTs

Filtros FIR programáveis

Descodificador de Viterbi

etc...

Genéricos

Específicos

Arquitectura interna adaptada à resolução

de problemasespecíficos

(Algorithm-specific)

Arquitectura interna adaptada para

aplicações específicas(Application-specific)

Processadoresde sinal

Controladores específicos

Modem GMSK

Transceptores wireless

Canceladores de eco

Igualizadores

etc...

Totalmente programáveis

Semi-programáveis

Dedicados(não permitem a programação)

Page 2: 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

© Gonçalo Tavares, Moisés Piedade2

SEPS – PROCESSADORES DIGITAIS DE SINAL II

Genéricos

Texas Instruments

TMS320C64x (v. fixa)

TMS320C54x (v. fixa)

TMS320C67x

TMS320C4x

Motorola

DSP563x (v. fixa)

Analog Devices

ADSP21xxx (SHARC)

Específicos

Cirrus Logic

CS8420 conversor de frequência de amostragem(áudio)

Mitel

MT9300 cancelador de eco (voz)

PDSP16515A processadorFFT

VPDSP16256 filtro FIR

Page 3: 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

© Gonçalo Tavares, Moisés Piedade3

SEPS – PROCESSADORES DIGITAIS DE SINAL III

Processadores de sinal: muito rápidos com arquitecturas orientadas para o processamento de palavrasOperações mais usuais no processamento de sinal:

MultiplicaçãoSomaAtraso de um período de amostragemLeitura de tabelasFunções lógicasDecisões lógicas baseadas no valor de variáveis

Exemplos de blocos de processamento de sinal muito comuns que podem ser integrados numa única instrução:

SAC (Square, Accumulate, Compare) ⇒ aplicação no algoritmo de ViterbiMACD (Multiply, ACcumulate, Data move) ⇒ aplicação no cálculo de filtros digitais

Processadoresde sinal

Discretos

Monolíticos

Realizados com componentes discretos: ALU, multiplicador, registos, etc...

Realizados numa única pastilha de semicondutor

Page 4: 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

© Gonçalo Tavares, Moisés Piedade4

SEPS – PROCESSADORES DIGITAIS DE SINAL IVCaracterísticas gerais dos DSPs:

Grande comprimento de palavra (24 ou 32 bit)

Ciclo de instrução muito curto (maioria das instruções executam em apenas 1 ciclo de relógio)

Frequência de relógio elevada (ciclos muito rápidos)

Elevado número de registos internos de acesso rápido

muitospoucosNº de ciclos/instrução

lentorápidoCiclo de instrução

grandepequenoNº de instruções

por programapor circuitoRealização de operações aritméticas

?grandeComprimento da palavra

pequenograndeNº de registos internos

grandepequenaVersatilidade

μP geralDSPCaracterística

Page 5: 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

© Gonçalo Tavares, Moisés Piedade5

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

Page 6: 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

© Gonçalo Tavares, Moisés Piedade6

SEPS – PROCESSADORES DIGITAIS DE SINAL VI

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

Aplicações dos DSPs:

Page 7: 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

© Gonçalo Tavares, Moisés Piedade7

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

Memória pode ser partilhada (dados/programa)

Page 8: 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

© Gonçalo Tavares, Moisés Piedade8

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…)

Page 9: 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

© Gonçalo Tavares, Moisés Piedade9

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

ineficiência

Page 10: 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

© Gonçalo Tavares, Moisés Piedade10

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

eficiência (paralelismo)

Page 11: 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

© Gonçalo Tavares, Moisés Piedade11

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

Page 12: 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

© Gonçalo Tavares, Moisés Piedade12

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

Page 13: 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

© Gonçalo Tavares, Moisés Piedade13

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

Page 14: 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

© Gonçalo Tavares, Moisés Piedade14

Blocos de hardware específico e coprocessadores

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)

Page 15: 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

© Gonçalo Tavares, Moisés Piedade15

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

Page 16: 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

© Gonçalo Tavares, Moisés Piedade16

SEPS – PROCESSADORES DIGITAIS DE SINAL XVI – Eficiência/paralelismo

Linha de atraso

AtrasoTs

ia

(( ) )sx n i T− (( 1) )sx n i T− −

Resultadoacumulado nos

cálculosanteriores

Resultado actual(para as baixadas

seguintes)

(( ) )i sa x n i T⋅ −

Bloco básico de cálculo de um filtro transversal

Operações realizadas no cálculo1. Leitura de x((n-i)Ts)2. Leitura de ai

3. Multiplicação de ai por x((n-i)Ts)

4. Soma do produto com o resultado anterior

5. Atraso de x((n-i)Ts) de um período de amostragem Ts

Operações complexas para um processador convencional mas simples para um processador de sinal que as pode realizar num único ciclo de relógio

Page 17: 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

© Gonçalo Tavares, Moisés Piedade17

ContadorRegistoAR1

x(n-N+1)

x(n-N+2)

x(n)

RegistoT

CircuitoMultiplicador

paralelo(dedicado)

Registode

entrada

Produto(Registo P)

ALU (32 bit)Somador

Registoacumulador

ACC

Resultado actual

Resultado anterior

16

32

Contadorde

programaPC

16

a0

a1

aN-1

32

Barramento deprograma

Barramento dedados

Relógio (ciclo da máquina)

N

Barramento dedados

(( ) )i sa x n i T⋅ −

Atraso

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

Page 18: 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

© Gonçalo Tavares, Moisés Piedade18

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

Page 19: 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

© Gonçalo Tavares, Moisés Piedade19

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)

Page 20: 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

© Gonçalo Tavares, Moisés Piedade20

Very Large Instruction Word (VLIW)

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.

Page 21: 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

© Gonçalo Tavares, Moisés Piedade21

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