Você está na página 1de 54

PROCESSADORES DIGITAIS DE

SINAIS (DSPs) E SUAS


APLICAES

Rodrigo Coura Torres


Laboratrio de Processamento de Sinais (LPS)
COPPE / UFRJ
torres@lps.ufrj.br

Roteiro da Apresentao
1.

2.
3.
4.
5.
6.
7.

Processamento Digital de Sinais


Digital Signal Processors (DSP)
Famlia Sharc e TigerSharc
Ferramentas de Desenvolvimento
Multiprocessamento com DSPs
Fases de um Projeto com DSPs
Aplicaes

Processamento Digital de Sinais

a cincia que estuda as regras que governam


o comportamento de sinais discretos, bem como
os dispositivos que os processam.
Surge como uma alternativa ao processamento
analgico de sinais, apresentando diversas
vantagens.
Para que o sinal seja processado digitalmente,
necessita ser, primeiramente, discretizado.

Tipos de Processamento Digital de


Sinais

Offline

Online

No existe restrio de tempo.


Os dados a serem processados j foram previamente
armazenados.
Possibilidade de implementao de sistemas no causais.
Os dados so apresentados ao processador, mas o mesmo no
precisa terminar o processamento do dado antes que um novo
chegue.
Necessidade de um elemento de memria.

Real Time

Tempo de processamento crtico.


O processamento de um dado tem que terminar antes que um
novo chegue.

DSP: Aplicao
O processamento digital de sinais tipicamente
usado para:
Implementar algoritmos de intenso clculo
matemtico.
Operaes em tempo real, as quais requerem
que o processamento mantenha o fluxo dos
sinais de entrada e sada: deve processar os
sinais enquanto a tarefa se desenvolve.
Sistemas flexveis e adaptativos.

DSP: Exemplo

Na fase de gravao, o sinal de udio


analgico convertido para um sinal
digital por meio do ADC.
O DSP recebe este sinal e realiza a
codificao MP3, salvando-a em
memria.
Na reproduo, o sinal decodificado
pelo DSP e convertido para analgico,
atravs do DAC.
A sada pode ento alimentar a caixa
de som.
O DSP ainda pode realizar funes
como controle de volume, equalizao,
interface com o usurio, etc.

Vantagens do Processamento
Digital

Programabilidade: um filtro digital pode ser


reprogramado, passando de um passa-baixa
para um passa-alta, sem troca de hardware.
Em alguns casos, nem preciso se
reprogramar o dispositivo: podemos apenas
melhorar a sua performance.
Exemplo: guiar msseis, quando situaes de
combate podem mostrar deficincias no
encontradas durante os testes de simulao. A
alterao pode ser feita pela simples troca de
um dispositivo de memria, por exemplo.

Vantagens (2)

Estabilidade

Melhoram a confiabilidade.
Reduzem os efeitos de envelhecimento de
componentes.
Reduzem os efeitos de desvio de caractersticas com
a variao da temperatura.
Podem ser programados para detectar e compensar
variaes das partes analgicas e mecnicas de um
projeto completo.

Vantagens (3)

Reduo de custos
Reduzem os requisitos de hardware (devido a
programabilidade).
Reduzem a necessidade de partes de preciso.
Reduzem a quantidade de CIs (integrao).
Reduzem o tempo de desenvolvimento
(ferramentas de desenvolvimento, suporte de
projeto).

Vantagens (4)

Facilidades de implementao de
algoritmos adaptativos
Controle por filtro adaptativo (cancelamento
de rudo).
Um DSP pode se adaptar facilmente a
mudanas nas variveis de interesse.
O algoritmo adaptativo simplesmente calcula
os novos parmetros e os armazena na
memria, apagando os antigos valores.

Vantagens (5)

Realizao de funes especiais


Filtros de fase linear.
Reconhecimento e sntese de voz.
Implementao de cdigos de correo de
erro.
Transmisso e armazenamento de dados.
Compresso de dados

Sem perdas
9 Com perdas (compactao).
9

Hardwares para Processamento


Digital de Sinais

Microprocessadores
FPGAs
Microcontroladores
DSPs (Digital Signal Processors)

Microprocessadores

Rodam diversas aplicaes.


Otimizados para grandes aplicaes.
Significativo gerenciamento de memria.
Uma operao por vez.
Arquitetura CISC Complex Instruct Set Computers

Blocos computacionais bsicos: ALU, SHIFTER.


Operaes como soma, subtrao e movimento de dados so
facilmente realizadas em poucos ciclos de clock.
Instrues mais complexas, tais como multiplicaes e diviso so
construdas de sries de operaes simples de adio,
deslocamento ou subtrao.
Instruo de multiplicao pode ser hard coded in on-chip ROM,
mas leva vrios ciclos de clock.
A += BC no muito adequada, pois no eficientemente
implementada em microcomputadores de uso geral.

FPGAs

Composta por portas lgicas bsicas, como


portas AND, OR, INV e shift registers.
So extremamente rpidas, uma vez que o
tempo de apresentar um resultado igual ao
tempo de propagao da entrada pelo
integrado.
A programabilidade relativamente simples,
mas pode tornar-se bastante complicada para
processamentos mais complexos.

Microcontroladores

Dedicados a uma nica aplicao e nela


inseridos.
Comparam um sinal externo a um valor
conhecido e, ento, realizam um movimento de
dados ou uma funo de chaveamento para
controlar um perifrico.
Possui uma unidade lgica e aritmtica simples,
que realiza todo o processamento.
No possui dispositivos internos de otimizao.

DSPs

Realizam funes matemticas de alto nvel.


Realizam mltiplas operaes por ciclo.
Adequados a aplicaes mais complexas, com
requisitos matemticos em tempo real.
Possuem diversos dispositivos internos de
otimizao do processamento.

O que um DSP?

DSP significa Digital Signal Processor.


Processadores cujo hardware, software e conjunto de
instrues so otimizados para aplicaes de
processamento numrico de alta velocidade.
So microprocessadores em um nico CI que so
especialmente projetados para manipular sinais digitais, de
acordo com um algoritmo fornecido pelo usurio.
O objetivo dos DSPs realizar o mximo de processamento
possvel antes que um novo dado tenha que ser
manipulado.
O DSP realiza operaes como a acumulao de somas
parciais resultantes de mltiplos produtos (produtos
internos) mais rapidamente que um microprocessador de
uso geral.

O que um DSP (2)

A arquitetura do DSP concebida para explorar a natureza


repetitiva do processamento digital de sinais, por meio de
um pipeline do fluxo de dados, de modo a ganhar
velocidade.
Hoje, o engenheiro que deseja tirar partido da capacidade
computacional dos DSPs pode escolher de uma lista de
dispositivos que cresce sem fim.
A escolha, porm, requer ateno: capacidade de
processamento, endereamento, preciso aritmtica e
performance (benchmarking) devem ser levadas em conta.
O suporte de projeto e a qualidade das ferramentas de
desenvolvimento de hardware e software para o dispositivo
tambm so extremamente importantes na deciso.

DSP: Viso Geral Interna


Program address bus
Data address bus

To-from external
Memory and
peripherals

External
Addess bus
interface
Address
Program ROM
Data

Program
sequencer

Control

Random-access
And read-only
Memory for
X data

X Data
Address
generator

Random-access
And read-only
Memory for
Y data

Y Data
Address
generator

Program
cache
Program bus
X data bus

Y data bus

External
data bus
interface

Functions common to DSPs and microprocessors


Functions unique to DSPs

Timer
Multiplier and
accumulator

Serial input
and
Output ports

To-from
Serial
peripherals

DSP: Tempo Real

O sinal chega ao DSP na forma de amostras


(ADC).
Para uma filtragem em tempo real, o DSP deve
completar todo o processamento matemtico e
as operaes necessrias sobre uma dada
amostra antes que a prxima chegue.
Em aplicaes complexas, alta velocidade e
acurcia so essenciais.

Arquitetura Bsica

Unidades computacionais paralelas.


Memria interna e mltiplos barramentos.
Geradores de endereos.
Cache de dados e instrues.

Pipeline.

Canais e DMA.
Portas externas.
Portas seriais.

Timers.

Set especial de instrues.


Interface JTag para emulao.

Unidades Computacionais Paralelas

Os DSPs possuem unidades separadas para operaes


lgicas e aritmticas, multiplicao e deslocamento.
A sada de qualquer unidade pode ser a entrada de
outra no ciclo seguinte.
Arquitetura otimizada para multiplicaes com
acumulao.

ALU

Multiplier

Shifter

Pipeline

Consiste em quebrar a cadeia de processamento em blocos


independentes (Fetch, Decode e Execute), separados por
registradores.
Permite que a CPU comece a executar a prxima instruo antes de
terminar a instruo atual.
A principal desvantagem o efeito gargalo ocasionado no incio da
execuo e aps alguma descontinuidade do cdigo.
Sem Pipeline

Etapa / Ciclo

Fetch

Decode
Execute

Com Pipeline
4

B
A

Fetch

Decode

B
A

Etapa / Ciclo

Execute

Cache de Dados e Instrues

So elementos de memria que ficam


prximos as unidades computacionais, de
forma que seus contedos sejam
acessados rapidamente (sem overhead).
Armazenam dados e instrues que so
utilizados com muita freqncia pelo DSP,
otimizando o processamento interno.

Memria Interna Dividida e


Mltiplos Barramentos

Possuem uma memria de dados e uma de programa.


Cada uma com geradores de endereo e barramento
prprios.
Diferente dos computadores do tipo PC, que usam a
arquitetura de memria de Von Neuman, os DSPs
utilizam a arquitetura Harvard, com barramentos
independentes para dados e instrues.
Com isso, pode-se acessar simultaneamente um dado na
memria de dados e uma instruo na memria de
programa.
Se a instruo a ser utilizada estiver no cache de
instrues, o barramento de instrues pode ser
utilizado para o acesso a um dado que possa estar na
memria de programa.

Geradores de Endereos

So utilizados para calcular o endereo do


prximo dado (ou instruo) a ser
acessado.
Implementam, sem overhead, funes
especiais como:
Buffers circulares.
Iteradores em Hardware.

Operao de Bit-Reverso.

Unidades de DMA (Direct Memory

Access)

Unidade interna do DSP que responsvel por


realizar transferncia, sem interveno da
unidade de processamento, entre a memria e
outros recursos do DSP (portas externas, portas
seriais, etc).
Permitem manter o processador ncleo
operando sobre um dado, enquanto novos
dados so transferidos para a memria interna,
para que estejam disponveis para o processador
ncleo no prximo ciclo de processamento.

Portas Externas

Permitem o interfaceamento do DSP com


dispositivos externos como:
Memrias.
Outros DSPs.
Dispositivos customizados.
Um computador hospedeiro.

Portas Seriais

Possibilitam acesso a recursos externos de


comunicao serial como:
CODECs.
Dispositivos customizados.
Outros DSPs.

Timers

Dispositivo que armazena um valor inicial, que


decrementado a cada ciclo de clock.
Quando o valor chega a zero, uma interrupo
gerada, podendo ser tratada por algum
dispositivo interno do DSP.
A valor original ento restaurado, e uma nova
contagem se inicia.
Assim, processamento que precisem de um
perodo fixo podem ser facilmente
implementados.

Set de Instrues Especiais

DSPs possuem instrues prprias para tarefas


tpicas de processamento digital como
multiplicao e acumulao, exponencial, raiz
quadrada, entre outras.
Com isso, enquanto um computador tipo PC
gasta em mdia 10 ciclos para fazer uma soma
com acumulao, um DSP pode realizar a
mesma tarefa em um nico ciclo.

Interface JTag para Emulao

Sistema padro IEEE para emulao de sistemas


com DSPs.
Baseia-se num protocolo interno do DSP que
possibilita o total acesso a estrutura interna do
DSP.
Assim, possvel ler contedo de registradores,
memrias, e at mesmo alter-los, facilitando
posteriores upgrades de um sistema de
processamento digital.

Estrutura Interna: viso geral

Exemplo de Programao: rotina de


organizao de vetores.
; Esta funo pega um vetor com 512 amostras e joga as amostras de ndices pares para o vetor de nome Ch0, e
as de ndices mpares, para o vetor Ch1.
; Constantes da funo.
NSAMPLES .set 512 ; Tamanho do vetor de entrada.
DATA_ADDR .set 0x03000 ; Endereo do vetor de entrada.
Ch0_ADDR .set 0x04000 ; Endereo do vetor correspondente ao canal
canal 1.
Ch1_ADDR .set 0x05000 ; Endereo do vetor correspondente ao canal
canal 2.
; Atribuio de nomes para os registradores.
.asg AR2, Data
.asg AR3, Ch0
.asg AR4, Ch1
; Processamento
Ch0 = #Ch0_ADDR
#Ch0_ADDR
Ch1 = #Ch1_ADDR
#Ch1_ADDR
BRC = #NSAMPLES
dblockrepeat(end_procdblockrepeat(end_proc-1)
Data = #DATA_ADDR
*Ch0+ = *Data+
*Ch1+ = *Data+
end_proc
; Fim do processo. Total: 519 ciclos.

;(2 ciclos).
;(2 ciclos).
;Contador de iteraes. (2
(2 ciclos).
;(3 ciclos (delayed)).
;(2 ciclos)
;(1 ciclo)
;(1 ciclo)

Famlia SHARC (Analog Devices)

Processadores de 32/40-Bit IEEE em ponto flutuante.


Arquiteturas SISD e SIMD.
Velocidades entre 40 e 200 MHz.
Memrias de 544 kBits a 4 MBits.
Todas as instrues so realizadas em um nico ciclo.
Buffers circulares em hardware.
32 ponteiros de endereos permitindo 32 buffers circulares.
Iteradores em hardware de at 6 nveis, sem overhead.
Assembly algbrico.
Set de instrues com aritmtica condicional, manipulao de bits, diviso e
raiz quadrada, entre outras.
Canais de DMA operando a velocidade do clock, e sem interveno do
processador ncleo.
Excelentes para aplicaes de multiprocessamento.

Famlia TigerSharc

Famlia de altssimo desempenho.


Possui as mesmas caractersticas da
famlia SHARC.
Capaz de manusear dados de 1, 8,
16 e 32 bits em ponto fixo, bem
como dados em ponto flutuante
(32/40 bits).
Arquitetura VLIW.
Utilizao de branch prediction.
Permite at 4 instrues de 32 bits
simultneas.
Clocks de 300 a 600 MHz (2400 a
4800 MMACs).
Memria interna variando entre 6 e
24 MBits.
Permite utilizar DSPs em situaes
onde apenas FPGAs eram possveis.

Multiprocessamento com DSPs


Com as Famlias Sharc e TigerSharc

Divide-se em:

Acesso pela memria compartilhada.


Portas de ligao.
Conexo serial.

Acesso Pela Memria Compartilhada

Sistema baseado na filosofia


mestre-escravo, onde um
processador, ao ser definido
como mestre, pode acessar a
memria interna e os
registradores de qualquer
processador escravo.
Possibilidade de escrita por
irradiao (broadcast).
Memria interna de todos os
processadores esto mapeadas
em um espao de memria de
processamento.
A desvantagem so os
problemas que sistemas
baseados em memria
compartilhada apresentam,
como baixa configurabilidade e
a disputa pelo barramento.

Portas de Ligao

Fornecem capacidades adicionais de I/O.


Conexo fsica entre processadores, podendo
implementar topologias paralelas de uma, duas ou trs
dimenses.
Possibilita a utilizao de memria distribuda, facilitando
possveis upgrades no sistema.
Podem operar simultaneamente e independentemente.
Seus dados podem ser lidos diretamente pelo
processador ncleo, ou pela DMA, para serem
transmitidos para a memria interna do DSP.
Podem ser acessadas pelo processador host, permitindo
comunicao direta com o DSP.

Exemplo com Portas de Ligao

Conexo Serial

Permitem ligar o DSP a dispositivos externos, como


memria e outros perifricos.
Pode ser uma maneira simples de expandir um sistema
de multiprocessamento.
Supondo que um determinado problema utiliza uma placa
com 4 DSPS e que torna-se necessrio aumentar este
poder de processamento. Isto pode ser feito adquirindose uma nova placa com 4 DSPs e fazendo a interconexo
de ambas pelas portas seriais, reduzindo drasticamente o
custo e a complexidade deste upgrade.

Ferramentas de Desenvolvimento

Permitem rpido desenvolvimento de


projetos.
Forte participao de empresas parceiras.
Constituem-se de:
IDE
Emuladores
Placas de avaliao
Placas filhas

IDE para Elaborao de Projetos

Permitem realizar tanto a elaborao


do cdigo, bem como o debug do
mesmo.
Possibilitam acessos memria interna
do DSP, de forma que possvel
apresentar seus valores na forma de
grficos, ou na forma numrica
convencional.
Possibilidade de insero de
breakpoints para anlise intermediria
de execuo.
Possuem opes para profile, visando
o calculo do tempo de execuo das
funes do sistema, e posterior
identificao de gargalos de execuo.
Permitem tambm realizar simulaes,
de forma que se possa avaliar um
determinado DSP, sem a necessidade
inicial de compra do mesmo.
Possuem diversas bibliotecas
otimizadas em assembly como FFTs,
filtros, etc.
A codificao pode ser em C/C++ ou
assembly.
Interfaceamento com a controladora
JTag do DSP.

Dispositivos de Emulao JTAG

Interface de comunicao direta com o DSP.


Permite ler e escrever dados na memria ou
registradores do DSP de maneira no-intrusiva,
sem interrupo do processamento.
OS dados lidos podem ser analisados na IDE
usada.
Soluo mais eficiente do que a tradicional In-

Circuit Emulation.

Placas de Avaliao

Permitem realizar avaliao inicial do DSP escolhido aps


a simulao.
Apresenta alguns recursos j conectados ao DSP
(conversores AD/DA, memrias externas, etc).
Apresentam, em geral, conector JTAG para emulao.
Para permitir conexo com dispositivos externos placa
de avaliao (placas filhas, por exemplo), possuem
conectores ligados aos pinos do DSP responsveis por
funes como:

Transmisso serial.
Acesso a bancos de memria externos.
Pinos de I/O genricos.

Placas Filhas

Estendem as funcionalidades
das placas de avaliao.
Placas destinadas a uma
determinada famlia possuem
compatibilidade pino a pino
com a respectiva placa de
avaliao.
Implementam
funcionalidades como:

Conversores AD/DA rpidos.


Bancos de memria externa.
Controladores variados
(disco, rede, etc).

Fases de Um Projeto com DSPs

Pesquisa

Simulao

Realizada na ferramenta de desenvolvimento.


Permite que se avalie um DSP, sem a necessidade de comprcompr-lo.

Avaliao

Busca por dispositivos atravs do conhecimento inicial do problema


problema (ponto fixo /
flutuante).
Normalmente realizada no site do fabricante.

Realizada em placas padronizadas de avaliao fornecidas pelo fabricante,


fabricante, que contm o
DSP selecionado na simulao, e recursos que permitem a conexo do mesmo com outros
dispositivos.
EvitaEvita-se assim, a necessidade de confeco de PCBs complexas.

Emulao

Realizado quando o DSP j se encontra embutido no ambiente que operar


operar (uma placa
especfica dentro de um submarino, por exemplo).
Necessita da utilizao da interface JTag.
Permite futuras atualizaes de cdigo, visando correo de bugs s encontrados nesta
etapa.

Projetos com DSPs: DSPs e


Computadores

DSP + hospedeiro: grande capacidade


de processamento e poder de deciso
Hospedeiro
9 Gerencia

(maneja dados)

grande quantidade de dados.


9 Tem capacidade de tomar decises complexas.
9 Facilidade em armazenar/resgatar dados.
9 Requer: linguagem de alto nvel, sistema
operacional, aplicativos.

DSPs e Computadores (2)

DSP (maneja sinais)


Gerencia e processa sinais.
9 Realiza intensivamente operaes matemticas.
9 Processa dados conforme eles so produzidos
(tempo real).
9 independente do hospedeiro (host).
9 Requer: alta velocidade, software escrito
eficientemente.
9

Aplicao de Exemplo: Sistema em


Tempo Real de Efeitos para
Guitarras

Sistema operando em tempo real, que implementa dois


efeitos conhecidos: distoro e eco.
A ativao de um efeito feita por interrupes, que
trocam o estado (ligado / desligado) do efeito.
Leds sinalizam ao usurio qual efeito est ativado.

Aplicao de Exemplo: Filtragem


em Tempo Real

Supe-se a recepo ruidosa de


uma senoide de 1kHz.
Observando-se o espectro, percebese que o rudo limitado em banda,
e que no compartilha a freqncia
do sinal.
Um filtro digital do tipo IIR de 8
ordem pode, ento, ser adotado
para filtrar em tempo real o sinal
recebido.

Aplicao de Exemplo: Detector


Offline de Mons

O DSP realiza, neste caso, o papel de emissor e


receptor de sinais.
Um filtro casado realiza a anlise do sinal
recebido, comparando com uma imagem
conhecida, para determinar se um mon foi
recebido.
O controle do emissor feito atravs de botes
na placa de avaliao, e LEDs indicam a resposta
dada pelo receptor.

Sintetizador Online de Voz

Sistema baseado em trs partes:


2)

Interface de usurio, operando em um PC.


Interface de converso de nvel de tenso RS-232 / DSP.

3)

Sintetizador de voz em DSP.

1)

O DSP recebe o texto a ser sintetizado pela sua


porta serial e realiza a sntese do mesmo,
enviando as amostras resultantes para o DAC.
Sistema de
Aquisio de
Texto

Conversor RS232 / DSP

LPS / COPPE / UFRJ

Sintetizador
em DSP

53

Concluses

DSPs permitem ao engenheiro eletrnico o


desenvolvimento de sistemas em tempo real de
maneira fcil e segura.
Alguns DSPs j apresentam tamanha
performance que j podem ser utilizados em
projetos dominados at ento por FPGAs.
O crescimento do uso tem favorecido muito a
contnua queda nos preos, bem como um
crescente nmero de opes disponveis.