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