4.7 Validity and reliability
4.7.1 Construct validity
O primeiro conjunto de experimentos conduzido teve dois objetivos: (i) validar a funcionali- dade da NoC Hermes-SR e (ii) comparar o desempenho desta com o da NoC Hermes. Empregou-se a ferramenta Atlas [GAP09], uma evolução da ferramenta Maia [OST05], como suporte à geração das estruturas usadas nos experimentos. Enquanto o ambiente Maia [OST05] tem suporte limitado à NoC Hermes, o ambiente Atlas foi concebido para habilitar a integração de recursos para auto- matizar os processos de geração, geração de estímulos, simulação e análise de desempenho de múltiplas NoCs. Apesar de não trivial, o processo de integrar uma nova arquitetura de NoC ao am- biente Atlas é simplificado pela estrutura de código aberto e o projeto visando a expansibilidade do arcabouço de programação do ambiente Atlas. Dentro do escopo deste trabalho inseriu-se o su- porte à NoC Hermes-SR como parte das arquiteturas de NoC que podem ser operadas a partir do ambiente Atlas. Isto possibilita: (i) gerar automaticamente descrições em VHDL RTL de instâncias da NoC Hermes-SR; (ii) gerar cenários de tráfego de simulação para esta rede; (iii) simular a rede
com os cenários de tráfego produzidos; (iv) e avaliar os resultados a partir de diversos recursos tex- tuais e gráficos disponíveis no ambiente Atlas.
4.1.1 EXPERIMENTOS CONDUZIDOS
Neste experimento, o parâmetro tamanho da fila de entrada dos roteadores foi variado a partir da ferramenta de geração automática do ambiente Atlas para as NoCs Hermes e Hermes-SR, resultando em diversas configurações distintas para cada rede. Os parâmetros a seguir foram fixa- dos para a comparação das NoCs:
• Dimensão da rede: 5x5;
• Tamanho de flit: 16 bits;
• Controle de fluxo: baseado em créditos;
• Uso de canais virtuais: não;
• Roteamento: XY puro (determinístico).
Cenários de rotas são gerados e armazenados em um arquivo externo à descrição da NoC Hermes-SR denominado arquivo de rotas (via ambiente Atlas). Este arquivo é usado durante a si- mulação, sendo lido por módulos descritos em SystemC (produzidos pelo ambiente Atlas). Neste experimento, as rotas foram produzidas tomando por base o algoritmo de roteamento XY puro, para viabilizar uma comparação coerente das infraestruturas de comunicação Hermes e Hermes- SR. Assim, a rota de cada par comunicante é exatamente a mesma nas duas NoCs. O desempenho das infraestruturas de comunicação foi medido para os diferentes tamanhos de fila de entrada. Es- te parâmetro (i.e. tamanho da fila de entrada) é comum as duas NoCs e influencia diretamente os fenômenos de congestionamento. Quatro descrições diferentes de cada NoC resultaram da confi- guração do tamanho das filas de entrada, variado entre 4, 8, 16 e 32 posições.
Para a avaliação das NoCs definiram-se cinco cenários de tráfego. Em cada cenário adotou- se taxas distintas de inserção de pacotes (i. e. distribuição temporal) e distribuição espacial unifor- me de tráfego. As taxas de inserção usadas foram 10%, 20%, 30%, 40% e 50% da capacidade máxi- ma de cada canal da NoC. Como se emprega uma frequência de operação padronizada em 50MHz, controle de fluxo baseado em crédito (onde 1 flit pode ser transmitido a cada ciclo de relógio) e tamanho de flit igual a 16 bits, tem-se que a capacidade máxima de cada canal é igual a 800 Mbps
(de 50MHz*16 bits=800Mbps). Os percentuais definidos anteriormente para a geração de cenários de tráfego podem ser traduzidos como taxas de injeção de 80Mbps, 160Mbps, 240Mbps, 320Mbps e 400Mbps. Os pares origem/destino foram definidos de forma aleatória para os cenários de tráfe- go deste experimento, garantindo-se que para todo par o destino é diferente da origem. Definiu-se ainda que pacotes tenham tamanho em torno de 20 flits. A imprecisão deve-se às diferenças nos tamanhos dos campos que identificam o destino para as NoC Hermes e Hermes-SR. Na primeira, usa-se exatamente 1 flit para identificar o endereço do roteador destino, enquanto que na Her- mes-SR são necessários ao menos 2 flits, conforme já descrito na Seção 3.1.1.
DII Latência Ideal Latência de Aplicação Latência de Rede DRI DIR E DRR Onde :
DII – Distribuição Ideal de Injeção; DRI – Distribuição de Real de Injeção DIR – Distribuição Ideal de Recepção; DRR – Distribuição Real de Recepção
Figura 4.1 - Métricas distintas de latência.
Para a avaliação de desempenho baseado em simulações RTL (empregando o simulador Modelsim executado de dentro do ambiente Atlas), adotou-se como medida a latência dos paco- tes. Todavia, a métrica de latência pode ser observada de diferentes formas, conforme ilustra a Fi- gura 4.1. Os valores de latência aqui apresentados não se limitam ao atraso de transmissão na re- de. A Figura 4.1 diferencia as latências de transmissão de acordo com a distribuição da injeção e recepção. A distribuição de injeção ideal (DII) é especificada no arquivo texto contendo o cenário de tráfego e descreve os momentos ideais planejados para injeção de cada pacote [TED05]. A dis-
tribuição real de injeção (DRI) considera o momento exato de inserção de um pacote na rede, que
pode ser diferente daquele definido na DII devido à ocorrência de contenção em tempo de simula- ção. A distribuição ideal de recepção (DIR) representa os momentos estimados de entrega dos pa- cotes. A distribuição real de recepção (DRR) revela os momentos reais de entrega de pacotes em seus destinos. A Figura 4.1 mostra distribuições ilustrativas de tais cenários de injeção e recepção. A latência ideal é o número mínimo de ciclos de relógio que um pacote precisa para alcançar seu destino. Este valor é obtido a partir da diferença entre o momento ideal de injeção do pacote e o momento esperado de entrega do mesmo. A latência de rede é o atraso de transmissão de um pa-
cote durante seu trânsito da origem até o destino, que pode ser influenciado pela competição por recursos da NoC (e. g. canais, filas de armazenamento, arbitragem, roteamento). A latência de apli-
cação ilustra o impacto mais importante no desempenho ideal de uma comunicação. Ela é compu-
tada como a diferença entre o momento ideal de injeção de pacotes e seu momento efetivo de en- trega no destino. A latência de aplicação é assumida como métrica de comparação neste trabalho.
4.1.2 RESULTADOS OBTIDOS
A partir da configuração das NoCs e da geração dos cenários de tráfego, a ferramenta Mo-
delsim da Mentor foi utilizada para simulação das NoCs. A Figura 4.2 apresenta os resultados de
distribuição de latências obtidos com diferentes cenários tráfegos e diferentes NoCs.
(a) (b)
Figura 4.2 – Latência média obtida para as NoCs Hermes (a) e Hermes-SR (b) variando-se o tamanho da fila de armazenamento.
Na Figura 4.2 pode-se observar que as latências máximas alcançada com a NoC Hermes-SR são sempre inferiores àquelas alcançadas na Hermes original. Isto se deve a três fatores: (i) a dimi- nuição do tempo para encaminhar um pacote da porta de entrada para a porta de saída em um roteador, (ii) a adoção de um algoritmo de arbitragem mais eficiente e principalmente, (iii) a des- centralização do mecanismo de arbitragem. Ao chegar um pacote em um roteador da NoC Hermes, são necessários entre 6 e 7 ciclos para a transmissão do primeiro flit. Na NoC Hermes SR a mesma operação requer entre 2 e 3 ciclos. Quanto ao algoritmo de arbitragem, a NoC Hermes utiliza
Round Robin, que pode causar postergação indefinida para a transmissão de um pacote. Já na
Hermes-SR o algoritmo FCFS torna o pior caso de espera na transmissão previsível, visto que todas as portas têm a mesma probabilidade de arbitragem, característica garantida pelo enfileiramento
de requisições que garante o atendimento destas de forma ordenada.
Pode-se observar na Figura 4.2 que a NoC Hermes-SR com filas de entrada de tamanho 4 proporciona latência média de transmissão similar àquela obtida com a NoC Hermes com 32 posi- ções para a fila de entrada. A implementação inicial da NoC Hermes-SR mostrou-se eficiente, pois empregando tamanhos menores de filas de armazenamento proporcionou latências máximas e- quiparáveis àquelas obtidas com a NoC Hermes. Enfatizando o critério desempenho, isto compensa o maior custo em área de hardware quando comparada à NoC Hermes com mesmo tamanho de fila de armazenamento. A Tabela 4.1 resume os valores de custo em área quando da síntese do ro- teador central das NoCs para um dispositivo do tipo FPGA da Xilinx.
Tabela 4.1 –Comparação de área ocupada por roteadores centrais das NoCs Hermes e Hermes-SR em FPGA. O dispositivo alvo usado foi um FPGA da família Virtex-II PRO, o xc2vp30-7. Resultados da síntese utilizando-
se a ferramenta XST do ambiente ISE versão 9.1i. NoC Hermes NoC Hermes-SR
LUTs Portas lógicas equivalentes LUTs Portas lógicas equivalentes Tamanho de fila 4 683 26,858 897 33,464 Tamanho de fila 8 644 26,469 986 33,876 Tamanho de fila 16 683 26,882 986 34,407 Tamanho de fila 32 782 27,711 1,046 34,987