desenvolvimento de sistemas reconfiguráveis utilizando...

30
Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C Por: Bruno Pimentel Joel Arrais Orientação: Valery Sklyarov 23 de Abril de 2004

Upload: others

Post on 06-Nov-2020

8 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

Desenvolvimento de Sistemas

Reconfiguráveis utilizando Handel-C

Por:Bruno PimentelJoel Arrais

Orientação:

Valery Sklyarov

23 de Abril de 2004

Page 2: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 3: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 4: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.

Page 5: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 5

Page 6: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.

Page 7: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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;

Page 8: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 9: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 10: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 11: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 11

Demonstração

Exemplo simples em Handel-C

Page 12: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

Desenvolvimento de Sistemas Reconfiguráveis utilizando Handel-C 12

• Utilização de FPGA como co-processador

Especificação do projecto

>> Velocidade de processamento <<

Page 13: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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 -

Page 14: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 15: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 16: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 17: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 18: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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>

Page 19: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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)

Page 20: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 21: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 22: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 23: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 24: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 25: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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

Page 26: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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)

Page 27: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.

Page 28: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.

Page 29: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.

Page 30: Desenvolvimento de Sistemas Reconfiguráveis utilizando ...sweet.ua.pt/jpa/Downloads_files/PalestraIEETA_21394_21540.pdf · Desenvolvimento de Sistemas Reconfiguráveis utilizando

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.