• Nenhum resultado encontrado

SPDS/PSC PROCESSADORES DIGITAIS DE SINAL I

N/A
N/A
Protected

Academic year: 2021

Share "SPDS/PSC PROCESSADORES DIGITAIS DE SINAL I"

Copied!
21
0
0

Texto

(1)

SPDS/PSC – 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

(2)

2

SPDS/PSC – 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 processador

FFT

VPDSP16256 filtro FIR

(3)

SPDS/PSC – PROCESSADORES DIGITAIS DE SINAL III

Processadores de sinal: muito rápidos com arquitecturas

orientadas para o processamento de palavras

Operações mais usuais no processamento de sinal:

 Multiplicação  Soma

 Atraso de um período de amostragem  Leitura de tabelas

 Funções lógicas

 Decisõ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 Viterbi

MACD (Multiply, ACcumulate, Data move)  aplicação no

cálculo de filtros digitais

Processadores

de sinal

Discretos Monolíticos

Realizados com componentes discretos: ALU, multiplicador, registos, etc... Realizados numa única pastilha de

(4)

4

SPDS/PSC – PROCESSADORES DIGITAIS DE SINAL IV

Caracterí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

Característica DSP mP geral

Versatilidade pequena grande

Nº de registos internos grande pequeno

Comprimento da palavra grande ?

Realização de operações aritméticas por circuito por programa

Nº de instruções pequeno grande

Ciclo de instrução rápido lento

(5)

SPDS/PSC – PROCESSADORES DIGITAIS DE SINAL V

 Vantagens 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 DSPs

nã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

(6)

6

SPDS/PSC – PROCESSADORES DIGITAIS DE SINAL VI

 Telecomunicações:

 Processamento de sinais em emissores/receptores (modems)  Igualadores adaptativos

 Canceladores de eco  Codificação de áudio

 Análise e síntese de sinais  Codificação de imagem

 Controlo industrial:

 Processamento de imagem  Reconhecimento de formas

 Controlo de processos em tempo real  Contadores electrónicos de energia  Suspensões activas

 Electrónica de consumo:

 Áudio digital (igualação, cancelamento, etc…)  Efeitos sonoros

 Sintetizadores de som

 Síntese e reconhecimento de voz

(7)

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL VII – Arquitecturas

mP genérico com arquitectura de Von Neumann

Operações sequenciais

Unidades 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

(8)

8

SPDS/PSC – 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 hardware e pequenos blocos de

processamento (por exemplo:

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 HarvardPipelining

Hardware dedicadoMemória interna/cache

 Modos de endereçamento avançados (circular, bit-reversed, etc…)

(9)

SPDS/PSC – 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 programa  Decode  a instrução é

descodificada

Execute  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

(10)

10

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL X – Arquitecturas

Microprocessador com

arquitectura de Harvard

Dados e programa residem em

memórias fisicamente distintas,

com barramentos distintos

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

(11)

SPDS/PSC – 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 executada

Fila 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

(12)

12 

Técnicas para aumentar a eficiência dos processadores

Utilizaçã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 interna

 Permite acelerar a execução de segmentos de código frequentes 

Repetição encadeada de blocos de instruções

O 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

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL XII – Eficiência/paralelismo

(13)

Técnicas para aumentar a eficiência dos processadores

Barramentos 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 especiais

 Executam mais do que uma operação por ciclo de instrução 

Replicação de hardware

 Replicaçã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 processamento

Processamento Single Instruction Multiple Data (SIMD)Utilização de Very Large Instruction Word (VLIW)

 Processamento superescalar

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL XIII – Eficiência/paralelismo

(14)

14 

Blocos de hardware específico e coprocessadores

SPDS/PSC – 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)

(15)

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL XV – Eficiência/paralelismo

Ts Conversor A/D s w Ts Ts 0 a a1 a2

1 N a -( s) y nT ( s) x nT x n(( -1) )Ts x n(( -N +1) )Ts

Arquitectura de um DSP – Realização de filtros transversais

1 0

(

)

((

) )

N i s i

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 ai

O filtro transversal tem resposta impulsional finita (FIR-Finite

Impulse Response) com duração NTs segundos

O filtro transversal é sempre estável  é ideal para processamento adaptativo

(16)

16

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL XVI – Eficiência/paralelismo

Linha de atraso Atraso Ts i a (( ) )s x n -i T x n(( - -i 1) )Ts Resultado acumulado nos cálculos anteriores Resultado actual (para as baixadas seguintes) (( ) ) i s a x n⋅ -i T

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

Operações realizadas no

cálculo

1.

Leitura de x((n-i)T

s

)

2.

Leitura de a

i

3.

Multiplicação de a

i

por

x((n-i)T

s

)

4.

Soma do produto com o

resultado anterior

5.

Atraso de x((n-i)T

s

) de

um período de

amostragem T

s

Operações complexas para um processador convencional mas

simples para um processador de sinal que as pode realizar

num único ciclo de relógio

(17)

Contador Registo AR1 x(n-N+1) x(n-N+2) x(n) Registo T Circuito Multiplicador paralelo (dedicado) Registo de entrada Produto (Registo P) ALU (32 bit) Somador Registo acumulador ACC Resultado actual Resultado anterior 16 32 Contador de programa PC 16 a0 a1 aN-1 32 Barramento de programa Barramento de dados Relógio (ciclo da máquina)

N Barramento de dados (( ) ) i s a x n⋅ -i T Atraso

SPDS/PSC – 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-1Em cada ciclo de relógio AR1

decrementa 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

(18)

18  Blocos de hardware específico e coprocessadores

Turbo 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.

SPDS/PSC – PROCESSADORES DIGITAIS DE

SINAL XVIII – Eficiência/paralelismo

(19)

Single Instruction Multiple Data (SIMD)

 Permite aumentar o número de operações realizadas por cada

instrução

SPDS/PSC – 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)

(20)

20 

Very Large Instruction Word (VLIW)

 Permite aumentar o número de instruções executadas em cada ciclo de instrução

 Uma VLIW contém múltiplas instruções elementares (mais pequenas) e requer a existência de várias unidades de execução

SPDS/PSC – 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.

(21)

Processadores superescalares

 Por 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)

SPDS/PSC – 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

Referências

Documentos relacionados

A intenção desta pesquisa foi apresentar a importância da realização de investimentos sistemáticos em infraestrutura hídrica como ferramenta relevante para o desenvolvimento de

função recursiva, mais recursos de memória são necessários para executar o programa, o que pode torná-lo lento ou. computacionalmente

 Caminho simples que contém todas as arestas do grafo (e,. consequentemente, todos os

imunização passiva é utilizada quando há a necessidade de uma proteção imediata, como por exemplo, quando um indivíduo é picado por uma serpente venenosa, quando suspeita-se de

Tomando  como  referência  a  problemática  do  meio  ambiente,  este  estudo  traça  uma  radiografia  social,  econômica  e  ecológica  da  região  do 

Débitos tributários e condominiais (propter rem) serão sub-rogados no valor da arrematação (art.. interessados a pesquisar e confirmar diretamente nos órgãos competentes,

A amplitude da passada não se mostrou significativamente diferente nas duas corridas, já a freqüência da passada houve uma diminuição significativa dos 50 para os

Neste estudo, concluímos que os animais submetidos a choque hemorrágico e não tratados quando o lactato atingir 10mM/L resulta fatal. O lactato arterial é um excelente