NOCs – CMP114 – 2003/I Integração de Sistemas Baseados em Redes Intra- Chip (NOCs) Alexandre...
Transcript of NOCs – CMP114 – 2003/I Integração de Sistemas Baseados em Redes Intra- Chip (NOCs) Alexandre...
NOCs – CMP114 – 2003/I
Integração de Sistemas Baseados em Redes Intra-
Chip (NOCs)
Alexandre de Morais Amory
José Carlos Sant’Anna Palma
Leandro Augusto de Oliveira
NOCs – CMP114 – 2003/I
Sumário
• Introdução
• NoCs Utilizadas no Trabalho
• Arquitetura do Processador MET2
• Processador R8
• Integração dos Sistemas
• Conclusões
NOCs – CMP114 – 2003/I
Introdução
• Nos atuais SoCs os componentes são interconectados
através de barramentos
• Desvantagens:
– Meio físico compartilhado, permitindo somente uma
transação de cada vez
– Necessidade de mecanismos de arbitragem
– Escalabilidade limitada
– Restrições de desempenho devido às linhas globais
• Solução: utilização de uma nova abordagem, baseada em
redes de conexão intra-chip, as Networks-on-Chip (NoCs)
NOCs – CMP114 – 2003/I
Motivação e Objetivos
• Motivação:
– Gerar conhecimento na área de Networks-On-
Chip, e dar um passo inicial em direção a este
novo paradigma de interconexão em sistemas
integrados.
– Dar continuidade aos trabalhos desenvolvidos
nesta área.
NOCs – CMP114 – 2003/I
Motivação e Objetivos (cont.)
• Objetivos:
– Estudo de modelos de comunicação empregados em
NoCs
– Integração de sistemas baseados em NoCs
– Utilização de diferentes processadores (FemtoJava,
MET2, R8)
– Projeto e descrição VHDL do processador MET2
– Aplicações sintéticas para validação dos sistemas
NOCs – CMP114 – 2003/I
NoCs Utilizadas no Trabalho
NOCs – CMP114 – 2003/I
Comparação Rasoc e Hermes
Hermes
Rasoc
Protocolos
Assíncrono
Síncrono
NOCs – CMP114 – 2003/I
Comparação Rasoc e Hermes
• Roteamento feito na origem– Não executa roteamento em
função do tráfego
– Difícil de ser modificado
• Realiza modificações no cabeçalho– Dificulta implementação de
controle de erros (CRC)
• Transmissão mais rápida (rajada)
• Menor área
• Roteamento e topologia de fácil modificação– Adaptativo, xy
– Mesh, torus, anel
• Roteamento realizado durante envio
• Transmissão mais lenta (flit a flit)
• Maior área
RasocRasoc HermesHermes
NOCs – CMP114 – 2003/I
Arquitetura do Processador MET2
• Processador de teste programável que pode ser usado para gerar padrões pseudo-aleatórios e compactar respostas de teste.
• Configurável– Largura do padrão/resposta (LFSR/MISR)
– Largura do PC e contador
• Programável– 3 instruções para gerar padrões
– 3 instruções para compactar respostas
– 1 instrução para avaliar assinatura
• Alto desempenho (um padrão por ciclo)
• Fácil reuso / sem reprojeto para BIST
• Flexível
• geração de tráfego
• DESVANTAGEM: Área de hardware adicional
NOCs – CMP114 – 2003/I
Processador R8
• Processador multi-ciclo o qual foi desenvolvido pelo grupo GAPH (PUCRS).
• Arquitetura load-store
• Banco de registradores
• Formato regular para as instruções
• Poucos modos de endereçamento
• Bloco de controle hardwired, e não micro-programado
• Características específicas da versão utilizada no trabalho:– dados e endereços de 16 bits
– endereçamento de memória a palavra
– banco de registradores com 16 registradores de uso geral.
– CPI entre 3 e 4.
NOCs – CMP114 – 2003/I
Integração dos Sistemas
• Rede Hermes:
– Nodo MET2_Hermes
– Nodo R8_Hermes
• Rede SoCIN:
– Nodo FemtoJava_SoCIN
– Nodo MET2_SoCIN
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo MET2_Hermes
MET2
memRAM
8 address
ce
16 dataOut
16 input
we
address
dataIn
patte
rn
outp
ut
16 16
resp
onse
cut_
resp
onse
hold
erro
r
halt
WrapperMET2_Hermes
avSe
nd
nWor
dSen
d
data
Send
busy
Send
data
Rec
eive
avR
ecei
ve
Send/Receive
3 5:16 5:16
8
busy
Cor
e
addr
essC
addr
essC
8 8
rx
ack_
rx
data
In
tx
ack_
tx
data
Out
Roteador Hermes
Norte Sul Leste Oeste
Lógica de cola
Nodo MET2_Hermes
O nodo envia e recebe pacotes com 5 palavras de
16 bits (1 palavra de cabeçalho + 4 padrões de
teste)
Lógica de cola ponte entre os protocolos do
MET2 e do Send/Receive
Módulo Send/Receive quebra os pacotes em flits e
os envia para o roteador (porta local)
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo R8_Hermes
CDI Controlador de Interrupções
R8 Mestre do barramentoMemória externa de programa e dados
Reg. ID Registrador de identificação do nodo
Periférico Hermes wrapper + roteador
(comunicação com o resto da NoC)
CPU
LocalInHermes
io
rw
data
memória
io
rw
data
ce
addressaddress
RegID
io
rw
data
address
Controlador deInterrupções
io
rw
data
address
rw
data
ce
address
req
ack
req
ack
fromNOCtoNOC
LocalOut
int_ack
int_reqint_ackint_req
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo R8_Hermes (cont.)
bus_
data
16
bus_
addr
16 bus_
io
WrapperR8_Hermes
avSe
nd
nWor
dSen
d
data
Send
busy
Send
data
Rece
ive
avRe
ceiv
e
Send/Receive
3 5:16 5:16
8
busy
Core
addr
essC
addr
essC
8 8
rx
ack_
rx
data
In
tx
ack_
tx
data
Out
Lógica de cola
bus_
rw
int_
req
int_
ack
Roteador Hermes
Norte Sul Leste Oeste
Periférico Hermes
Lógica de cola ponte entre os protocolos do
barramento e do Send/Receive
Buffers de envio e recebimento de dados
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo R8_Hermes (cont.)
1
2
3
1- Endereço do periférico = F1; Escrita no Buffer 3; Dado = “55AA”; Operação de escrita sinalizada pela porta bus_io = ‘1’, bus_rw = ‘0’.
2- bus_addr = “XX03” (última palavra do pacote); Envio de dados (avSend) do conteúdo do buffer dataSend.
3- Envio de dados pela rede. Sinalização de tx e ack_tx para cada flit.
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo FemtoJava_SoCIN
Wrapper dividido em dois módulos um de envio e outro de recebimento de
dados
FemtoJava
WrapperInput
WrapperOutput
wrapperFJ_Socin
fromNOC toNOC
porta localRasoc
nodo FJ_Socin
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo FemtoJava_SoCIN
NOCs – CMP114 – 2003/I
Proposta de Sistema – Nodo FemtoJava_SoCIN
FJ
FJ
FJFJFJ
FJ
FJ FJ
00 01 02
20 21 22
121110
Rasoc Socin
Sistema FJ
NOCs – CMP114 – 2003/I
FJ_System
Proposta de Sistema – Nodo FemtoJava_SoCIN
FJ_core
t0 t1int_ctrlram romwrapper
rasoc
Rasoc
NOCs – CMP114 – 2003/I
Proposta de Sistema – Nodo FemtoJava_SoCIN
• Vantagens– Simplicidade de implementação de hardware
– Transição simples de barramento para NOCs
– Fácil implementação de software• Importante para sistemas complexos (streaming applications)
– Separa comunicação de processamento
– Maior reuso dos núcleos
– Facilita a planta baixa do circuito
• Desvantagens– Protocolo implementado em software
– Maior tempo de comunicação
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo MET_SoCIN
1- envio
NOCs – CMP114 – 2003/I
Integração dos Sistemas – Nodo MET_SoCIN
1- recebimento
NOCs – CMP114 – 2003/I
Agradecimentos
• Aline e Möller (gaph)• Rodrigo• Júlio• Zeferino
NOCs – CMP114 – 2003/I
Contribuições
• Primeira implementação prática utilizando Rasoc
• Proposta de sistema que facilite a transição de barramento para NOC– Facilita implementação de software
– Necessita de wrapper simples
• Projeto que facilita reuso– Separação de processamento e comunicação
• Identificação de problemas de portabilidade do FJ
• Proposta de fluxo de projeto VHDL que facilite portabilidade
• Comparação dos roteadores Hermes e Rasoc
• Projeto e prototipação do processador MET2
NOCs – CMP114 – 2003/I
Dificuldades Encontradas
• Integração de diversos assuntos não dominados pelo grupo:– Mudança de paradigma bus2NoC– Redes SoCIN e Hermes– Processadores MET e FemtoJava– Sashimi
• Implementação dos wrappers:– Compreensão dos protocolos de comunicação dos processadores e
das redes.
• Validação e Integração de cores– Falta de exemplos de uso do Rasoc
• Dificuldade de integração e portabilidade do FJ– Muitos recursos só funcionam no Maxplus2
NOCs – CMP114 – 2003/I
Considerações Finais
• Políticas de reuso e portabilidade dos núcleos são uma
necessidade
• Gerenciamento de projetos grandes (FJ) com várias
pessoas não é trivial
• Necessidade de uma cultura de projeto VHDL que utilize
validação funcional com testbenches