37
1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Embed Size (px)

Citation preview

Page 1: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

1

Barramento AVALON

Adelmario DouglasFrancisco DantasMillena AlmeidaPedro LagesWilliams Azevedo

Page 2: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

2

Agenda

• Motivação• Características• Arquitetura• Arbitragem• Sinais• Transações• Exemplos• Referências

Page 3: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

3

Motivação

• As plataformas montadas para FPGAs da Altera usam geralmente o Avalon como barramento padrão

• É um dos mais difundidos entre os desenvolvedores de SoCs que costumam usar FPGAs

Page 4: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

4

Introdução

• Consiste numa arquitetura de barramento desenvolvida para conectar processadores e periféricos em SoPCs – SoPC – System on Programmable Chip

• É de propriedade da Altera

• O Avalon é um barramento especial que prioriza a velocidade de transmissão de dados, permitindo conexões em paralelo

Page 5: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

5

Características

• Os sinais são ativados em LOW ou HIGH– Multiplexadores determinam que sinais comanda cada periférico

• Espaço de endereçamento de até 4Gb– Memória e periféricos são mapeados em espaços de até 32 bits

• Interface Síncrona– Todos os sinais são síncronos com o clock, facilitando a

integração de periféricos de alta velocidade– Não é necessária nenhum handshaking/acknowledge assíncrono

• Tamanho de dados dinâmico– Possibilita a conexão de periféricos com diferentes tamanhos de

interface– Suporta dispositivos mestres e escravos que trabalhem com dados de 8,

16 ou 32 bits

Page 6: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

6

Características

• Linhas de dados, endereço e controle separados– Os periféricos não precisam decodificar ciclos de endereço e dado,

nem precisam desabilitar a saída quando esta não está selecionada– Cada sinal utiliza uma porta separada e dedicada

• Decodificação interna de endereço– O Avalon decodifica o endereço passado pelo dispositivo mestre e

seleciona o periférico alvo desejado– Os dispositivos escravos não precisam realizar verificação de

endereços

• Arquitetura com Múltiplos mestres– Geração automática de lógica de arbitragem para possibilitar a

utilização de um periférico por mais de um mestre

• Paralelismo na Comunicação– Múltiplos mestres podem se comunicar simultaneamente desde

que eles não estejam acessando o mesmo escravo ao mesmo tempo

Page 7: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

7

Características

• Simplicidade– Possui um protocolo simples de entender

• Lógica de barramento otimizada– Conserva elementos de lógica (LEs) dentro do dispositivo de

lógica programável (PLD)

• Operação Síncrona– Fácil integração com outras lógicas coexistentes no mesmo

PLD

• Arbitragem transparente– os mestres que estão esperando não sabem porque estão esperando,

eles não sabem que ocorreu acesso simultâneo

Page 8: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

8

Serviços Oferecidos

• Multiplexação do Data-Path – Os multiplexadores do barramento transferem os dados do

escravo para o mestre

• Decodificação de endereço– O Chip select é gerado automaticamente, simplificando o

projeto do periférico que não precisa decodificar os sinais de endereço

• Geração de Wait-States– Extende uma transação por um ou mais ciclos, beneficiando

periféricos com necessidades especiais de sincronização– Utilizado quando o periférico não consegue responder em

apenas um ciclo

Page 9: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

9

Serviços Oferecidos

• Prioridade de Interrupções– Quando um ou mais periféricos geram interrupção, o

barramento passa a interrupção de maior prioridade junto com o número apropriado do pedido da interrupção (IRQ)

• Latência– A lógica requerida para executar transferências com a latência

entre pares master-slave é contida dentro do barramento

• Streaming para leitura e escrita– A lógica requerida para executar transferências com streaming

entre pares master-slave é contida dentro do barramento

Page 10: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

10

Arquitetura

Page 11: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

11

Arquitetura

System CPU(Master 1)

I/O1Program

Memory

Slaves DataMemory

ArbiterArbiter

DataMemory

AribiterAribiter

DSP(Master 2)

I/O1

Masters

Slaves

Switch Fabric

I/O CPU(Master 3)

I/O3

ProgramMemory

DataMemory

ArbiterArbiter

CustomAccelerator Peripheral

Page 12: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

12

Conexão

• Periféricos On-chip– Conexão gerada automaticamente no tempo de configuração

• Periféricos Off-chip peripherals– Conectados a pinos do chip

• Sinais de controle e dados das portas mestres passam pelo barramento e interagem com a porta escrava

• Portas mestres iniciam as transações

• Interfaces sincronizadas pelo clock do barramento mestre– Todas as transações ocorrem simultaneamente com o ciclo do

clock

Page 13: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

13

Arbitragem

• Arbitragem é necessária quando múltiplas portas mestres querem acesso a um escravo ao mesmo tempo– Resolvido no barramento

• Slave-side arbitration

• Transparente para o componentes mestre e escravos– Cada mestre atua como se fosse o único mestre presente na

plataforma – Quando dois ou mais mestres requisitam acesso a

determinado escravo simultaneamente, só um mestre será atendido, os demais ficarão aguardando tal escravo

• Simplifica o projeto dos periféricos

Page 14: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

14

Sinais – Avalon Master

Page 15: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

15

Sinais – Avalon Master

Page 16: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

16

Sinais - Avalon Slave

Page 17: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

17

Sinais - Avalon Slave

Page 18: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Transferências

• Uma das principais características do barramento Avalon é sua flexibilidade

• O Avalon oferece diferentes tipos de transferências que permitem adaptar o uso do barramento para diferentes configurações de pares de dispositivos mestre e escravo– Um periférico que não executa leitura não precisa ter uma

interface que permite este tipo de transferência, sua interface pode permitir apenas o envio de dados a escravos.

– O formato das interfaces para comunicar periférico e barramento depende exclusivamente dos tipos de transferência que o periférico executa e esta informação deve ser passada pelo desenvolvedor ao montar uma plataforma

Page 19: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Tipos de Transações - Leitura

• Leitura Fundamental - Mestre– Interface mestre requisita uma leitura e receberá o dado

requisitado na primeira subida de clock em que o sinal waitrequest estiver setado com nível baixo

• Leitura Fundamental – Escravo– Realizado por escravos assíncronos– A interface escravo recebe a requisição de leitura e

imediatamente esta requisição é atendida e o dado requisitado é passado para o barramento

• Leitura com número fixo de wait states– Os estados de espera correspondem ao tempo que a interface

escravo irá demorar em responder a uma transferência – a interface escravo irá apresentar o dado requisitado após um

número pré-determinado de ciclos de clock

Page 20: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Tipos de Transações - Leitura

• Leitura com número de estados de espera controlado pelo periférico – O tempo que a interface escravo irá demorar em atender a

transferência não é determinado – A interface indica ao barramento que não está pronta, quando

o sinal é ativado, com nível lógico baixo, o barramento captura o dado requisitado

• Leitura com tempo de Setup– É adotado por periféricos que necessitam esperar que os sinais

de controle e endereçamento se ‘estabilizem’ – Sinais devem permanecer ativados por um tempo pré-

determinado, ao término deste tempo o tipo de transferência é indicado

Page 21: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Tipos de Transações - Leitura

• Leitura com Latência (fixa ou variável)– Requisições de leitura podem ser enviadas a cada ciclo de

clock– Dados estarão disponíveis apenas depois do um determinado

tempo (latência)– Também conhecida com pipeline

• Leitura em Rajada– Executa várias requisições de leitura de uma só vez

Page 22: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Tipos de Transações - Escrita

• Escrita Fundamental– A interface mestre inicia uma escrita ativando uma série de

sinais, estes sinais devem permanecer ativados enquanto waitrequest vindo do barramento estiver em nível alto

• Escrita com número fixo de wait states– o barramento só poderá passar outra transferência a interface

escravo quando o tempo do wait states tiver passado

• Escrita com número de estados de espera controlado pelo periférico – O tempo que a interface escravo irá demorar em atender a

transferência não é determinado – O barramento pode passar outra transferência ao escravo

enquanto espera uma escrita finalizar

Page 23: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

Tipos de Transações - Leitura

• Escrita com tempo de Setup– É adotado por periféricos que necessitam esperar que os sinais de

controle e endereçamento se ‘estabilizem’ – Sinais devem permanecer ativados por um tempo pré-

determinado, ao término deste tempo o tipo de transferência é indicado

• Escrita com Latência (fixa ou variável)– Requisições de escrita podem ser enviadas a cada ciclo de clock– Dados estarão disponíveis apenas depois do um determinado

tempo (latência)– Também conhecida com pipeline

• Leitura em Rajada– Executa várias requisições de escrita de uma só vez

Page 24: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

24

Exemplo - Slave Read Transfer

A. Primeiro ciclo inicia com a subida do clock

B. Address e read estão válidos para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. Escravo retorna o dado dentro do primeiro ciclo

E. Readdata é capturado na próxima subida do clock

Page 25: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

25

Exemplo - Slave Read Transfer (single wait state)

A. Primeiro ciclo inicia com a subida do clock

B. Address e read estão válidos para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. A próxima subida do clock indica o primeiro e único wait state, e captura o byteenable, read e chipselect

E–F. Readdata é capturado na próxima subida do clock

Page 26: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

26

Exemplo - Slave Read Transfer (multiple wait states)

A. Primeiro ciclo inicia com a subida do clock

B. Address e read estão válidos para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. A próxima subida do clock indica o primeiro . byteenable, read e chipselect estão disponíveis

E. Próxima subida do clock marca o segundo e último wait state

F-G. Readdata é capturado na próxima subida do terceiro clock

Page 27: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

27

Exemplo - Slave Read Transfer (peripheral controlled wait states)

A. Primeiro ciclo inicia com a subida do clock

B. Address e read estão válidos para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. Porta escrava habilita o waitrequest antes da próxima subida do clock

E. Barramento obtém o waitrequest

F-G. Vários ciclos se passam

H. Porta escrava disponibiliza readdata

I. Porta escrava desabilita o waitrequest

J. Barramento captura o readdata

Page 28: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

28

Exemplo - Slave Read Transfer (with setup time)

A. Primeiro ciclo inicia com a subida do clock

B. Address válido para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. Subida do clock indica o final do setup-time e início do wait state

E. Barramento habilita o sinal read

F. Subida do clock indica o final dos wait states

G. Porta escrava disponibiliza readdata

H. Barramento captura o readdata

Page 29: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

29

Exemplo - Slave Read Transfer With Latency

A. Primeiro ciclo inicia com a subida do clock, chipselect, read e address são disponibilizados

B. Porta escrava habilita o waitrequest

C. Escravo desabilita o waitrequest e captura o endereço

D. Fim do primeiro ciclo de latência

E. Fim do segundo ciclo de latência. Readdata disponível

F. Barramento habilita address, read e chipselect

G. Outra transação de leitura é iniciada

H. Barramento captura o readdata depois de 2 ciclos de latência

I. Barramento captura o readdata depois de 2 ciclos de latência

Page 30: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

30

Exemplo - Slave Write Transfer

A. Primeiro ciclo inicia com a subida do clock

B. Address, writedata, write válido para o escravo

C. Barramento decodifica o endereço e habilita o chipselect

D. Barramento captura o writedata, address, write e chipselect na próxima subida do clock

Page 31: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

31

Exemplo - Master Read Transfer

A. Primeiro ciclo inicia com a subida do clock

B. Porta mestre habilita Address, byteenable e read

C. Readdata retorna no mesmo ciclo

D. Barramento captura o readdata

Page 32: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

32

Exemplo - Master Read Transfer (with wait states)

A. Primeiro ciclo inicia com a subida do clock

B. Porta mestre habilita Address, byteenable e read válidos

C. Barramento habilita o waitrequest antes da próxima subida do clock

D. Mastre aceita o waitrequest na subida do clock. Inicia o wait state

E-F. mastre armazena as constantes de saída enquanto o waitrequest está habilitado

G. Readdata válido é disponibilizado

H. Barramento desabilita o waitrequest

I. Porta mestre captura o readdata

Page 33: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

33

Exemplo - Master Read Transfer With latency

Page 34: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

34

Exemplo - Master Write Transfer

A. Primeiro ciclo inicia com a subida do clock

B. Porta mestre habilita Address, byteenable e write

C. Waitrequest não é habilitado. Transação termina.

Page 35: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

35

Exemplo - Master Write Transfer (2 wait requests)

A. Primeiro ciclo inicia com a subida do clock

B. Porta mestre habilita Address, data e write

C. Waitrequest é habilitado na subida do clock. Início do primeiro waitstate. Constantes de saída não são liberadas

D. Waitrequest é habilitado novamente. Segundo waitstate

E. Waitrequest é desabilitado

F. Mastre desabilita todas as saídas. Transação finalizada

Page 36: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

36

Referências

• Especificação do Barramento Avalon– Altera– Disponível em:– http://www.cin.ufpe.br/~if729/arquivos/manuais/mnl_avalon_bus.pdf

• Modelagem e Integração do Barramento Avalon em Plataformas MPSoC em níveis TL– Trabalho de Graduação de Emanoel Xavier

Page 37: 1 Barramento AVALON Adelmario Douglas Francisco Dantas Millena Almeida Pedro Lages Williams Azevedo

37

Dúvidas?

??