• Nenhum resultado encontrado

Capítulo 2 APARELHO DE AUXÍLIO AUDITIVO E DSP

2.2.2 DSP – Arquiteturas

Um DSP consiste basicamente, como qualquer processador, de um núcleo de processamento onde são realizadas as operações, mencionado como core em inglês; de memória volátil para a execução das operações; e de periféricos para realizar comunicações entre o DSP e o mundo exterior. O núcleo de processamento pode ser dividido de forma simples em datapath e controlpath. O datapath consiste de circuitos de transformação de dados, que são as unidades de processamento (Unidade Lógica Aritmética – ULA, MAC, Deslocadores, Multiplicadores) e de armazenamento temporário destes dados, registradores (Vahid e Givargis, 1999). O controlpath consiste de uma máquina de estado finita programável ou controlador de fluxo de programa, de memória de programa e de decodificador de instrução. De forma simples, a execução de um algoritmo de PDS é controlada pelo controlpath que decodifica as instruções, realiza os acessos à memória e passa ao datapath os operandos e as operações a serem realizadas em unidades específicas de processamento.

As arquiteturas de DSP‟s foram desenvolvidas baseando-se principalmente em arquiteturas RISC (Reduced Instruction Set Computing), porém com algumas características de arquiteturas CISC (Complex Instruction Set Computing), como diferentes modos de endereçamento e operações de memória, normalmente para melhora do desempenho nas

computações interativas, por exemplo, a convolução que chega a ser 10% das operações em um DSP (LIU, 2008).

RISC é uma classe de arquiteturas de processadores que possui um conjunto de instruções simples e de tamanho único e que normalmente executam as instruções com a mesma quantidade de ciclos de clock. CISC é outra classe outra de arquiteturas que possui um conjunto de instruções complexas e de tamanhos variados, tornando o processador mais versátil.

Segundo Liu (2008), a arquitetura de um processador é a organização de seu núcleo e seus periféricos, incluindo memória. Tal organização pode ser dividida em duas partes: a definição do seu ISA e a especificação de sua Microarquitetura, que é a organização do hardware. Para um determinado ISA, pode haver diferentes microarquiteturas que o implementa.

O desempenho, o custo e o consumo de potência são parâmetros chaves no projeto da microarquitetura. Do ponto de vista do desempenho, é possível um grande incremento pela paralelização em nível de instrução, ou em inglês Instruction Level Parallelization (ILP), na execução. Sistemas computacionais são considerados com ILP quando a execução de seus programas é realizada com multiplicas operações (como soma, multiplicação e loads) executando simultaneamente, mesmo se apenas um único dado de execução estiver presente no sistema (FISHER; FARABOSCHI; YOUNG, 2005). Segundo Patterson e Hennessy (2007), o primeiro processador com pipeline que explorava o ILP apareceu em 1960 e por volta de 1985, a maioria dos processadores de alto desempenho já utilizava ILP para sobrepor a execução de instruções e melhorar o desempenho.

Uma importante característica das aplicações de DSP é que seus algoritmos tem o fluxo de programa bem conhecido antes de serem executados, uma vez os processamentos são realizados principalmente por loops repetitivos. Esta característica possibilita a paralelização na busca e execução de múltiplas instruções por ciclo de clock. Uma preocupação quando se tem execução em paralelo é sobre as dependências, sendo que existem dois tipos de dependência que precisam ser tratadas: a dependência de dados, onde uma instrução precisa de dados gerados por outra instrução, e a dependência de recursos, quando se tem mais de uma operação necessitando utilizar a mesma unidade de processamento, i.e. duas instruções de multiplicação e apenas um multiplicador. Duas microarquiteturas utilizadas em DSP‟s que permitem explorar o paralelismo na execução dos algoritmos (ILP) são a Superscalar e o VLIW.

- Superscalar, é uma microarquitetura que suporta processamento paralelo e pode operar programas com instruções irregulares. Executa múltiplas instruções em paralelo, realizando o reconhecimento e tratamento das dependências de dados através de unidades exclusivas para tais tarefas, em diversas unidades de execução para evitar a dependência de recursos (LIU, 2008). Por tratar os problemas de dependência através do hardware, tem grande complexidade ao nível de circuitos, o que impacta nas área e consumo dos DSP‟s. Por outro lado, com esta microarquitetura pode-se reduzir a complexidade ao nível do software, o que reflete na simplificação de compiladores e na possibilidade da reutilização de programas em DSP‟s que tem diferentes microarquiteturas mas mesmo ISA.

- VLIW, é uma microarquitetura que, juntamente com um compilador avançado, é uma alternativa para a microarquitetura Superscalar. O compilador irá procurar e tratar as dependências antes da execução dos algoritmos. Quando o compilador detecta dependências ele troca a ordem das instruções ou insere instruções NOP (No Operation), o que acarreta a diminuição do throughput do DSP. Uma instrução VLIW contém múltiplas instruções menores e é executada em ciclo de clock. Assim que a instrução VLIW é buscada da memória, todas as instruções contidas nela são decodificadas e executadas em múltiplas unidades sem qualquer verificação de dependência.

Na tabela 2 são mostradas resumidamente as principais características das duas microarquiteturas.

Tabela 2: Comparação entre arquiteturas Superscalar e VLIW Microarquitetura Superscalar VLIW

Custo (Silício) Alto Baixo

Consumo potência Médio Baixo

Eficiência de Código Alta (toda instrução é útil) Baixa (devido aos NOP‟s) Execução Paralela Implícita

Não perceptível

Explícita

Notada pelo compilador Dependência de Dados Gerenciada por Hardware Gerenciada pelo Compilador Dependência de

Recursos

Gerenciada por Hardware Gerenciada pelo Compilador

Execução Fora de Ordem

Programa baixo nível Fácil de Programar Difícil de Programar Compatibilidade

(Código Binário)

Compatível para diferentes microarquiteturas

Não Compatível

Em geral, quando se tem um DSP que terá alto volume de produção, baixos custo financeiro e consumo de potencia, microarquiteturas VLIW são mais recomendadas. Quando há a exigência de compatibilidade entre microarquiteturas para reuso de programas ou a necessidade de programação em baixo nível, microarquiteturas Superscalar são recomendadas (LIU, 2008).

Documentos relacionados