quarta-feira, 21 de setembro de 2011

Arquiteturas Reconfiguráveis e Unidade de Controle

(Resenha Capítulo 3)

A Arquitetura Reconfigurável permite um tipo de computação semi-flexível que está entre computação dedicada (implementada por hardware) e a computação de propósito geral (implementado por software). Em termos gerais, a Arquitetura Reconfigurável tenta combinar a velocidade do Hardware e a flexibilidade do Software. Um Sistema de Arquitetura Reconfigurável possui a habilidade de modificar seu próprio hardware para se adequar à aplicação.
Pode-se utilizar este conceito de reconfigurabilidade em vários dispositivos físicos, entre eles o processador.  Na Literatura é fácil encontrar o conceito de Processadores com Conjunto de Instruções Reconfiguráveis. Estes possuem em seu núcleo de microprocessamento conjuntos de instruções implementado sob uma lógica reconfigurável, que pode sofrer alterações durante o tempo de execução, oferecendo ao processador a possibilidade de se adaptar à aplicação.
As instruções reconfiguráveis podem ser (e normalmente são) identificadas por um Código de Operação (CodOp) especial através de um campo extra contido na própria instrução. A forma mais utilizada de se fazer isto é através da utilização de um identificador que indexa uma tabela de configuração onde são armazenadas palavras de reconfiguração.


Codificação das instruções através de identificador.

          O primeiro processador reconfigurável foi criado por Razdan e Smith em 1994 e chamado de PRISC (PRogrammable Instruction Set Computer). O PRISC contém um conjunto de instruções RISC e uma série de instruções de aplicação especifica que são implementadas em hardware por unidades funcionais programáveis (PFUs).
A fim de se combater tendências de se desenvolver diferentes formas de utilização de lógica reconfigurável, utiliza-se o padrão OCP (Open Core Protocol). Este padrão consiste em um conjunto de definições de sinais e protocolos de comunicação desenvolvido de modo a prover a interconexão de módulos de circuitos, tornando compatível a troca de informações entre eles. Este protocolo define uma série de sinais básicos para fim de sincronização, endereçamento de escrita, transferência de dados, entre outros.
[Augusto, 2005] Construiu a Unidade de Controle para um processador reconfigurável sob a forma de uma maquina de estados finitos. Desta forma, conjuntos distintos de instruções simples podem ser utilizados pelo processador. Cada código de operação corresponde a uma série de estados que podem estar associados a uma ou mais instruções distintas. Assim, cada conjunto executa uma instrução diferente a partir do mesmo código de operação. Foram criadas algumas operações para que o usuário pudesse mudar o conjunto de instruções utilizado.
Tendo em vista estes aspectos dos sistemas computacionais reconfiguráveis, conclui-se que estes, apesar de possuir certa complexidade em seu desenvolvimento, podem ser utilizados em aplicações hibridas que desejam se aproveita da flexibilidade dos sistemas de propósito geral e da velocidade dos sistemas dedicados.


Principais Referências:


  • Bauer, L.  Shafique, M.  Henkel, J.Concepts, Architectures, and Run-time Systems for Efficient and Adaptive Reconfigurable Processors. Karlsruhe Inst. of Technol. (KIT), Karlsruhe, Germany. IEEE 2011.

  • Augusto, L. Casillo. Projeto e Implementação em FPGA de um Processador com Conjunto de Instrução Reconfigurável Utilizando VHDL. Universidade Federal do Rio Grande do Norte. Natal - RN. Maio de 2005.

Nenhum comentário:

Postar um comentário