• Nenhum resultado encontrado

2 Referencial Teórico

2.4 Simulador NoC

A heurística desenvolvida neste trabalho, detalhada no capítulo 4, simula em hardware a rede configurada com as topologias geradas a fim de coletar dados relacionados ao desempenho obtido quando uma aplicação é executada. Desta forma, é possível atribuir uma nota de qualificação e comparar o seu desempenho com o obtido pelas demais. Esta fase da execução faz o uso de uma versão modificada da ferramenta NoC42 (Network-on-

Figura 8: Exemplo de topologia com redundância de hardware nos canais Chip 42 ), desenvolvido por Avelino (2018).

A NoC42 é um simulador versátil codificado na linguagem SystemC baseado na rede SoCIN (SoC Interconnection Network), descrita em (ZEFERINO; SUSIN, 2003). Com o seu

desenvolvimento em um alto nível de abstração, a NoC42 permite a realização de um grande número de simulações em um curto período de tempo.

A SoCIN é uma rede-em-chip escalável que conta com as topologias mesh-2D e toróide. Ela utiliza o roteador parametrizável RASoC (ZEFERINO; KREUTZ; SUSIN, 2004), que

permite ajustar variáveis como largura dos canais, profundidade dos bu⇥ers e algoritmo de roteamento, conforme as necessidades da simulação. Os canais de comunicação de rede SoCIN (Figura 9) são bidirecionais, com cada via oposta enviando n bits de dados, 2 bits para o enquadramento do pacote (SystemC baseado na rede SoCIN (bop e eop), mais dois para o controle de fluxo (val e ack).

Figura 9: Canal de comunicação da SoCIN (ZEFERINO; SUSIN, 2003)

O algoritmo XY é utilizado pela SoCIN para o roteamento dos pacotes. Esta é uma abordagem determinística de baixo custo e livre de deadlock, perfeitamente aplicável em redes bidimensionais. Quando um pacote é enviado de um EP origem para um EP destino (Figura 10), o algoritmo XY prevê que ele primeiramente percorra os roteadores na direção X das linhas para depois percorrer o caminho Y das colunas até o seu destino.

Figura 10: Algorimo de roteamento XY

Em suas demais características, a rede SoCIN possui chaveamento wormhole, onde os pacotes são subdivididos em flits que, ao chegarem no roteador, são encaminhados por uma porta de saída quando há recurso disponível ou ficam armazenados nos bu⇥ers dos roteadores aguardando liberação de recursos. Utiliza uma arbitragem do tipo round- robin, onde cada entrada recebe uma prioridade que define a ordem de utilização do canal de saída, garantindo uma utilização balanceada. Possui um controle de fluxo baseado em handshake, onde o emissor da mensagem ativa um sinal de controle val e o receptor responde com um ack ao consumir o dado.

A SoCIN foi desenvolvida originalmente na linguagem VHDL (VHSIC Hardware Des- cription Language), uma linguagem de modelagem RTL (Register-Transfer Level ) onde os códigos descrevem os circuitos a nível de registrador, portanto, em um baixo nível de abstração. Sínteses VHDL em RTL permitem a observação do comportamento ao longo do tempo (CHEN; MISHRA; KALITA, 2012), porém com um custo de tempo elevado. Isso

torna inviável a sua utilização na exploração desenvolvida neste trabalho, que exige um número elevado de simulações.

Diferentemente da abordagem RTL, a TLM (Transaction-Level Modeling) é um mo- delo que destaca os elementos mais importantes do sistema enquanto diminui o enfoque em detalhes de baixo nível (GAJSKI; RAMACHANDRAN, 1994). Ferramentas TLM, utili- zadas para síntese em alto nível (HLS - High-Level Syntesis), geralmente utilizam um subconjunto da linguagem ANSI C, onde o desenvolvedor combina suas habilidades em linguagens de propósito geral com algum conhecimento em hardware para modelar siste- mas embarcados (ORUKLU et al., 2012). A NoC42 é um versão da rede SoCIN desenvolvida na linguagem SystemC e, por ser uma ferramenta TLM, tornou-se mais adequada para o desenvolvimento deste trabalho pela sua capacidade de realizar um grande número de

simulações com um baixo custo temporal.

Tendo inspiração na SoCIN, a NoC42 permite a variação de parâmetros como: ta- manho dos bu⇥ers, modo de arbitragem (estática, rotativa ou randômica) e algoritmo de roteamento (XY, negative first, north last, west first, odd even). A configuração é defi- nida em um arquivo que a ferramenta recebe como entrada ao efetuar uma simulação. Os algoritmos desenvolvidos neste trabalho foram executados em uma versão modificada do simulador NoC42. As alterações tiveram como principal objetivo tornar a ferramenta capaz de simular a rede com as topologias irregulares propostas neste trabalho.

Em sua versão original, a NoC42 organiza os roteadores em uma topologia regular mesh-2D com dimensões MxN fornecidas na entrada. Neste trabalho, a primeira modifi- cação está localizada no módulo que conecta os roteadores, tornando o simulador capaz de operar com topologias irregulares. No lugar de conectar os roteadores como uma topologia mesh-2D regular, a nova versão deste módulo é capaz de interligar ou não quaisquer pares de roteadores adjacentes.

A segunda modificação realizada no contexto desta dissertação permitiu que a rede fosse capaz de cumprir tempo real. Neste caso, a rede também recebe na entrada o deadline de tempo real de cada pacote e verifica se o mesmo foi cumprido após a sua entrega. O simulador também contabiliza a quantidade de pacotes que não foram entregues dentro do prazo e a retorna na saída do simulador.

Por fim, a última alteração realizada diz respeito à implementação de um algoritmo de roteamento baseado no algoritmo de Floyd-Warshall (FLOYD, 1962), que usa uma

tabela de roteamento (detalhado na seção 4.3). Esta alteração fez-se necessária para que o simulador fosse capaz de rotear os pacotes numa topologia em configuração irregular, o que não era possível com os algoritmos de roteamento presentes na versão original. O novo roteamento demandou o acréscimo de uma tabela em cada um dos roteadores da NoC42, a qual é consultada para determinar o próximo salto de um pacote durante a sua transmissão. As tabelas de roteamento são calculadas com base no grafo da topologia antes da execução de uma simulação. As informações são armazenadas em arquivos de texto que são carregados durante a simulação, que salva em cada roteador a sua tabela correspondente.

Documentos relacionados