Upload
internet
View
128
Download
3
Embed Size (px)
Citation preview
1
Barramento AVALON
Adelmario DouglasFrancisco DantasMillena AlmeidaPedro LagesWilliams Azevedo
2
Agenda
• Motivação• Características• Arquitetura• Arbitragem• Sinais• Transações• Exemplos• Referências
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
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
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
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
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
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
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
10
Arquitetura
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
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
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
14
Sinais – Avalon Master
15
Sinais – Avalon Master
16
Sinais - Avalon Slave
17
Sinais - Avalon Slave
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
33
Exemplo - Master Read Transfer With latency
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.
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
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
37
Dúvidas?
??