desenvolvimento de sistemas reconfiguráveis utilizando...

Post on 06-Nov-2020

8 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Desenvolvimento de Sistemas

Reconfiguráveis utilizando Handel-C

Por:Bruno PimentelJoel Arrais

Orientação:

Valery Sklyarov

23 de Abril de 2004

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 2

Field-Programmable Gate Array(FPGA)

- Reconfigurabilidade

- Combinar as vantagens da programação em software com o nível de performance do hardware dedicado

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 3

RC200Principais características:

Xilinx Virtex II FPGA-XC2V1000-4

Memória-2*4Mbytes ZBT SRAM

Ethernet-10/100 MAC

Vídeo-Vídeo composto (in/out)-S-Video (in/out)-VGA (out)-Camera (in)

Áudio

Bluetooth

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 4

Linguagem Handel-C

• Linguagem de alto nível baseada no ISO/ ANSI-C que permite o desenvolvimento de Sistemas Reconfiguráveis.

• Principais diferenças:– Flexibilidade no comprimento das variáveis;– Execução de código em paralelo;– Utilização de canais.

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 5

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 6

Vantagens do Handel-C• Elimina alguma da complexidade da

implementação em Hardware;• Menor custo de desenvolvimento;

• Portabilidade do código;• Facilidade na utilização de periféricos;• Garantias de tempos de execução;• Possibilidade de se utilizar diferentes domínios

de relógio.

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 7

Exemplo de Handel-C

a=1 b=2

canal=b

c=canal

a=0

unsigned int 1 a;unsigned int 2 b,c;

par{

a = 1;

canal ? C;

seq{

b=2;canal ! b;

}}a = 0;

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 8

• O código Handel-C éeditado no DK2.

O fluxo de trabalho

DK

ISE

FTU

Handel-C

EDIF

Bit stream

• O bit stream é transferido para a FPGA sendo esta reconfigurada

• No ISE é criado o bit stream a partir do ficheiro EDIF.

• O código é compilado pelo DK2 e é criado o ficheiro EDIF

FPGA

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 9

Plataform Developer’s Kit for DK (PDK)

RC200

Plataform Support Library

(PSL)

Programa em Handel-C

• Memória• Rato/Teclado• LEDs e Seven Segmentdisplays• Video in/out• SmartMedia• Switches e Botões• Audio in/out• Ethernet

Biblioteca que permite facilitar o acesso aos periféricos.

PDK

Dependente da plataforma.

RC100

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 10

Plataform Developer’s Kit for DK (PDK)

RC200

Plataform Support Library (PSL)

RC100

Plataform Abstration

Layer (PAL)

Programa em Handel-C• Memória• Rato/Teclado• LEDs e Seven Segmentdisplays• Video in/out• SmartMedia• Switches e Botões• Audio in/out• Ethernet

PDK

Outra

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 11

Demonstração

Exemplo simples em Handel-C

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 12

• Utilização de FPGA como co-processador

Especificação do projecto

>> Velocidade de processamento <<

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 13

Problema de SAT

1 0 - - - - - - -2 - 1 - - - - - -3 - - 0 - - - - -4 - - - 1 - - - -5 - - - - 0 - - -6 - - - - - 1 - -7 - - - - - - 0 -8 - 1 - - - - - -

A B C D E F G H

Encontrar um vector que seja ortogonal com todas as linhas da matriz

Vector: 1 0 1 0 1 0 1 -

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 14

Especificação do projecto

• Transferência de dados como bottleneckDuas abordagens:– Dados genéricos comprimidos/descomprimidos– Dados em formato especifico compactado

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 15

Primeira Abordagem

SAT solver

Dados originais

Compressão

Dados comprimidos

Resultados

Dados originais

Descompressão

Dados comprimidos

Resultados

Porta paralela ou Ethernet

RC200

PC Anfitrião

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 16

Segunda Abordagem

SAT solver

Resultados Resultados

Matriz noformato CS3M

Matriz noformato CS3M

Porta paralela ou Ethernet

RC200PC Anfitrião

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 17

Algoritmo de Compressão / Descompressão

• Características tidas em conta:– Eficiência;– Simplicidade;– Implementabilidade em hardware

de recursos limitados.

• Algoritmo adoptado:– Huffman (versão adaptativa).

• Adaptações incorporadas:– Mecanismo de remoção da

redundância em repetições consecutivas;

– Mecanismo limitador do tamanho da codificação dos símbolos.

01000011 01000010 01000011 010001000100010001000100B B CCCA

Ficheiro Original

01000010 01000011 01000100

A B C

1

Sequência de bits original

Caracter representado

Nº. de ocorrências não consecutivas 2 1

Tabela de Frequência

Árvore de Ordenação

C1

B2

A1

Tamanho da maior sequência de ocorrências consecutivas

11 3

B2

Árvore de Huffman:

Tabela de Codificação:

B B C C C

x 3C

A

1 00 1 01 11

Dados Comprimidos:

A1

C1

AC2

A1

C1

AC2

B2

ABC3

0

0

1

1

B2

A1

C1

AC2

a)

b)

c) d)

e) f)

g)

h)

201C

01B

000A

Nº de bitsp/ repet.CódigoCaracter

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 18

Compressão (desenvolvida em C++)

• Análise dos dados originais

• Geração da árvore de Huffman

• Exportação da árvore de Huffman

• Tradução e exportação dos dados comprimidos<Bit>::=0|1

<Simbolo>::=<Bit><Bit><Bit><Bit><Bit><Bit><Bit><Bit>

<TamanhoRepeticao>::=<Bit><Bit>

<Folha>::=<TamanhoRepetição><Simbolo>

<Ramo>::=0<Folha>|1<Ramo><Ramo>

<ArvoreHuffman>::=<Ramo>

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 19

Descompressão (desenvolvida em Handel-C)

• Importação da árvore de Huffman e geração da tabela de codificação;

• Reconstituição efectiva dos dados originais, tendo em conta:– Os símbolos explícitos;– Repetições consecutivas.

Parser daÁrvore deHuffman

Tradutor Código/Caracter

Ficheiro Descomprimido

Ficheiro Comprimido

Tabela deCodificação

Gestor de Leitura doFicheiro Comprimido

Gestor de Escrita noFicheiro Descomprimido

a) b)

c)

d)

g)

e)

h)

f)

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 20

Recursividade

• Adopção do modelo RHFSM(Recursive Hieraquichal Finite State Machine)[Sklyarov, 2004].

• Criação de primitivas para gestão das variáveis internas ao suporte do modelo:– HFSM_init();– HFSM_go_to();– HFSM_jump_to();– HFSM_end_module();– HFSM_state();– HFSM_done();

Stack deMódulos

Stack deEstados

Profundidade

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 21

Resultados das experiências relativas àCompressão/Descompressão de Huffman

24.50723.0248721.4830.07719.260256 × 1500

16.50615.3802301.1260.08712.940256 × 1000

4.0623.715600.3470.1053.310256 × 256

4.2603.8002200.4600.1393.310256 × 500

1.0600.943200.1170.130

12 %

0.903128 × 128

TTaC + TD

(ms)TD

(ms)TC

(ms)TTaC

(ms)Rácio

Recursosda FPGAutilizados

TT

(ms)Dimensões da Matriz(nº colunas × nº linhas)

TT – Tempo médio de Transmissão sem CompressãoTTaC – Tempo médio de Transmissão após CompressãoTC – Tempo médio de Compressão (no PC anfitrião)TD – Tempo médio de Descompressão (na placa RC200)

Dados utilizados: Matrizes ternárias no formato convencional

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 22

• Problemas da primeira abordagem:– Tempos globais de transferência são comprometedores;– Matrizes descomprimidas, no formato convencional,

implicam armazenamento considerável, na FPGA.

• Abordagem alternativa– Assume matrizes convertidas para SAT3;– Utiliza formato comprimido sem necessitar de

descompressão;– Permite operar sobre matrizes de maiores dimensões.

Mudança de Abordagem

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 23

Implementação da solução

GestorEthernet

SAT3Solver

Vector solução

RC200

FPGA

Controlador de Ethernet

EthernetPC Anfitrião

Linhasda Matriz

Block RAM

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 24

Formato Comprimido para Matrizes SAT3

NIA Índice 1 V 1 Índice 3 V 3Índice 2 V 2

2 bits 8 bits 1 bit 8 bits 1 bit 8 bits 1 bit

MUX 1

Más

cara

de

Col

unas

MUX 2 MUX 3

Necessita de 29 bits para cada linha de matrizes com até 256 colunas.

Máscara das colunas não dont-care activas da linha actual

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 25

Acesso às linhas da matriz

Máscara das colunas não dont-care activas

Índices das colunas não dont-care

Valores das colunas não dont-care

Linha ortogonal

Colunas activas todas a dont-care

Uma única coluna não dont-careÍndice da coluna não dont-careValor da coluna não dont-care

CircuitoCombinatório

Vector Solução Intermédia

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 26

Resultados das experiências relativas ao SAT3 Solver

Tempo médio deobtenção do resultado (s)

0.2640.0101454 %256 × 1500

0.1950.0070954 %256 × 1000

0.1490.0035754 %256 × 256

0.1270.0043830 %128 × 500

0.1040.0008730 %128 × 128

MatrizesIrresolúveis

MatrizesResolúveis

Recursos daFPGA

utilizados

Dimensões da Matriz(nº colunas × nº linhas)

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 27

Conclusões

• As FPGA’s conciliam a reconfigurabilidade típica em software e a performance que o hardwarededicado apresenta.

• O Handel-C permite aumentar a abstracção, permitindo, no entanto, um controlo de baixo nível e boa performance.

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 28

Conclusões

• Transmissão via Ethernet permite grande rapidez de transmissão com baixos custos.

• Foi implementada a versão adaptativa do algortimo de compressão/descompressão de Huffman.

• Para implementar a recursividade, adoptou-se o modelo RHFSM, para o qual, se criou uma biblioteca de primitivas de suporte.

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 29

Conclusões

• Utilizando um formato comprimido específico para matrizes SAT3 que pode ser interpretado sem descompressão, torna-se possível:– Um factor de compressão significativamente superior;– Albergar matrizes de maior tamanho na FPGA.

• A percentagem de recursos da FPGA utilizados pelo SAT3 Solver para 256 colunas permite prever a possibilidade de optimização para 512.

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 30

Referências• [1] “RC200 Hardware and Instalation Manual”, Celoxica, 2003.• [2] “RC200 Platform Support Library Reference Manual”, Celoxica, 2003.• [3] “Handel-C Language Reference Manual”, Celoxica, 2002.• [4] “Archive compression tests”, [Online, em Janeiro de 2004]:

http://compression.ca/.• [5] “Lossless Data Compression”, [Online, em Janeiro de 2003]: http://www.data-

compression.com/lossless.html#huff.• [6] V. Sklyarov, “FPGA-based Implementation of Recursive Algorithms”, Elsevier

Journal Microprocessors and Microsystems, Abril, 2004.• [7]. “BNF Notation”, [Online, em Janeiro de 2003]: http://cui.unige.ch/db-

research/Enseignement/analyseinfo/AboutBNF.html.• [8] V. Sklyarov, “Hierarchical Finite-State Machines and Their Use for Digital Control”,

IEEE Transactions on VLSI Systems, 1999, Vol. 7, No 2, pp. 222-228.• [9] Web Course Tools para a disciplina de Computação Reconfigurável leccionada na

Universidade de Aveiro, [Online]: http://webct.ua.pt.

top related