SPDS/PSC PROCESSADORES DIGITAIS DE SINAL I

Documentos relacionados
Arquitetura e Organização de Processadores. Aula 14. Processadores DSP

processadores µprocessador µcontrolador DSP ASIP especialização crescente

FCA - Editora de Informática xv

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

AULA1 Introdução a Microprocessadores gerais. Disciplina: Aplicações Avançadas de Microprocessadores (AAM)

Sistemas Embebidos I , Tiago Miguel Dias ADEETC - Secção de Arquitecturas e Sistemas Operativos

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Microarquiteturas Avançadas

Introdução à Computação: Arquitetura von Neumann

Microprocessadores MICROPROCESSADORES. Unidade de Processamento. Sumário

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Conceitos Básicos Processador

Organização e Arquitetura de Computadores I

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

ORGANIZAÇÃO DE COMPUTADORES

Microprocessadores. Execução em Paralelo Pipelines

Prof. Leonardo Augusto Casillo

Organização e Arquitetura de Computadores I

Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)

Organização de computadores. Aula 05

Unidade Central de Processamento UCP (CPU)

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

SSC510 Arquitetura de Computadores 1ª AULA

Organização e Arquitetura de Computadores INTRODUÇÃO

Circuitos Sequenciais Escola Naval - Dep. Armas e Electrónica v

SSC0112 Organização de Computadores Digitais I

Sistemas Operacionais

09 Unidade de controlo. v0.1

Arquitetura de Computadores. Prof. João Bosco Jr.

Processador. Processador

EEL711 Processamento de Sinais. Introdução

Arquitetura de Microprocessadores

2. A influência do tamanho da palavra

Microprocessadores II - ELE 1084

Arquitetura de Um Computador

ORGANIZAÇÃO DE COMPUTADORES

2. A influência do tamanho da palavra

Microprocessadores. São máquinas elétricas onde podemos armazenar instruções lógicas, aritméticas e de tomada de decisão;

Barramento. Prof. Leonardo Barreto Campos 1

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

Arquitetura de Computadores. Processamento Paralelo

Unidade Central de Processamento (CPU) Processador. Bernardo Gonçalves Introdução ao Computador 2008/01

Arquitetura de Computadores Unidade Central de Processamento CPU

Barramentos internos/externos

Infraestrutura de Hardware. Melhorando Desempenho de Pipeline Processadores Superpipeline, Superescalares, VLIW

Computadores e Programação (DCC/UFRJ)

Arquitetura e Organização de Processadores. Aula 08. Arquiteturas VLIW

ELE Microprocessadores I

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Projeto de Processadores Programáveis

Microcontroladores. Rafael Silva de Lima

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Arquitetura de Computadores. Ciclo de Busca e Execução

Aula Fev-07 Arquitectura de Computadores 2006/07

sumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3

INTRODUÇÃO: MICROCONTROLADORES

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores?

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

µinstruções µoperações representadas em binário podem ser compactadas numa só µinstrução exemplo (as 3 últimas µinstruções anteriores):

Conjunto de Instruções e Modelos de Arquiteturas

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

Sumário. O processador de sinal TMS320C31

INTRODUÇÃO AOS SISTEMAS LÓGICOS INTRODUÇÃO

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Micro-Arquiteturas de Alto Desempenho. Introdução. Ementa

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

FUNCIONAMENTO DO COMPUTADOR. Adão de Melo Neto

Universidade Federal do Rio de Janeiro Pós-Graduação em Informática. Introdução. Gabriel P. Silva. Gabriel P. Silva

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

SISTEMAS DIGITAIS (SD)

UNIDADE CENTRAL DE PROCESSAMENTO

Sistemas Digitais (SD)

Prof. Gustavo Oliveira Cavalcanti

Evolução dos computadores

Arquitectura de Computadores LEEC/MEEC (2006/07 2º Sem.)

III.2 - Princípios de Arquitetura

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 3

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Seminário de programação em sistemas embarcados

SISTEMAS DIGITAIS (SD)

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Estrutura Básica de um Computador

Introdução à Organização de Computadores. Aula 8

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

SEL-0415 Introdução à Organização de Computadores Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira

Arquitetura de Computadores Aula 11 - Multiprocessamento

COMPUTADOR. Adão de Melo Neto

Organização e Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

SISTEMAS DIGITAIS (SD)

Faculdade de Engenharia da Universidade do Porto Projecto Seminário Trabalho de Fim de Curso. A Memória

Transcrição:

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

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 2

Processadores de sinal SPDS/PSC PROCESSADORES DIGITAIS DE SINAL III Discretos Monolíticos semicondutor 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 Realizados com componentes discretos: ALU, multiplicador, registos, etc... Realizados numa única pastilha de 3

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 Nº de ciclos/instrução poucos muitos 4

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 3. Necessário sistema de desenvolvimento específico caro 5

SINAL VI Aplicações dos DSPs: 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 6

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 Memória pode ser partilhada (dados/programa) 7

SINAL VIII Arquitecturas 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 ) 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: Multiply-Accumulate ou Multiply- Accumulate-Compare) realizados em hardware Necessário memória de dados e programa distinta 8

SINAL IX Arquitecturas 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 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 ineficiência 9

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 eficiência (paralelismo) Arquitectura de Harvard modificada existe comunicação entre a memória de programa e a memória de dados 10

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 11

SINAL XII Eficiência/paralelismo 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 12

SINAL XIII Eficiência/paralelismo 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 13

SINAL XIV Eficiência/paralelismo Blocos de hardware específico e coprocessadores 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) 14

SINAL XV Eficiência/paralelismo Arquitectura de um DSP Realização de filtros transversais w s Conversor A/D xnt ( s ) x(( n - 1) T s ) x(( n - N + 1) T s ) T s T s T s N -1 ynts ( ) = å ai x(( n-it ) s) i= 0 a0 a1 a2 an - 1 A saída actual y(nt s ) depende da entrada actual x(nt s ) 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 a i O filtro transversal tem resposta impulsional finita (FIR-Finite Impulse Response) com duração NT s segundos O filtro transversal é sempre estável é ideal para processamento adaptativo ynt ( s ) 15

SINAL XVI Eficiência/paralelismo 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 Linha de atraso x(( n - it ) s ) Atraso x(( n -i -1) T s ) T s a i Resultado acumulado nos cálculos anteriores a x(( n -it ) ) i s Resultado actual (para as baixadas seguintes) Operações complexas para um processador convencional mas simples para um processador de sinal que as pode realizar num único ciclo de relógio 16

SINAL XVII Eficiência/paralelismo Exemplo com processador de 16 bit Relógio (ciclo da máquina) x(n) Atraso Arquitectura de Harvard modificada a N-1 N Contador Registo AR1 x(n-n+2) 16 Registo T Circuito Multiplicador paralelo (dedicado) Registo de entrada 16 a 1 Contador de programa PC 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 a N-1 Em cada ciclo de relógio AR1 decrementa de 1 (o contador de programa incrementa de 1); é feito o produto a i x((n-i)t s ) e este é somado na ALU com o resultado anterior 32 x(n-n+1) Barramento de dados 32 ALU (32 bit) Somador Registo acumulador ACC Produto (Registo P) Resultado actual Resultado anterior Barramento de dados a x(( n -it ) ) i s a 0 Barramento de programa 17

SINAL XVIII Eficiência/paralelismo 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. 18

SINAL XIX Eficiência/paralelismo Single Instruction Multiple Data (SIMD) Permite aumentar o número de operações realizadas por cada instrução 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) 19

SINAL XX Eficiência/paralelismo 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 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. 20

SINAL XXI Eficiência/paralelismo 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) 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 21