No presente trabalho, será utilizado roteamento na origem, o que requer estabelecer uma função custo para a computação de rotas que garanta a menor latência para comunicação entre pares origem/destino. A adoção de múltiplas rotas entre pares comunicantes é uma possível solu- ção dentro do escopo deste trabalho.
2.3.4 EMPREGO DE MONITORES
O emprego de monitores em redes em chip tem múltiplos objetivos, incluindo o apoio ao teste do circuito, a depuração do projeto, a coleta de informações para auxiliar na avaliação de uso de recursos e também na coleta de informações com o objetivo de adaptação do uso da infraestru- tura de comunicação alvo. A seguir revisam-se alguns trabalhos relacionados ao monitoramento de redes em chip.
Ciordas et al. [CIO06] propõem uma infraestrutura de comunicação integrada com recursos
de monitoramento de transações entre núcleos IPs para observação em tempo de execução. Con- sidera-se transação os pedidos de leitura e escrita, bem como as respostas obtidas e as confirma- ções de atendimento da operação, realizados nas interfaces de rede da infraestrutura de comuni- cação. O objetivo deste sistema é contribuir para a depuração da comunicação que ocorre no sis- tema, a partir da reconstrução das transações para observação do que ocorre na infraestrutura de comunicação. Implementou-se um sistema composto de três partes: um “farejador” (em inglês
sniffer), um gerador de eventos e uma interface de monitoramento de rede. O primeiro é respon-
sável pela observação de transmissões flit a flit na rede, enquanto o segundo contabiliza as transa- ções. A última é responsável pelo empacotamento e envio dos valores obtidos em direção a um ponto de acesso ao serviço de monitoramento.
Mouhoub e Hammami [MOU06] propõem uma plataforma de monitoramento para dar su-
porte a que projetistas de software avaliem o quão eficiente é o uso dos recursos comunicação. Isto é obtido através da coleta de informações de ocupação de filas de armazenamento e de latên- cia de transmissão fim a fim de pacotes. Os valores são coletados de forma não intrusiva e transmi- tidos por um meio não compartilhado com a aplicação sob avaliação. O objetivo é evitar a influên- cia que o tráfego de dados de monitoramento possa causar na comunicação da aplicação. O traba- lho foi validado em uma NoC com dimensões 2x2, tendo Microblaze como PE.
Shobaki [SHO02] propõe uma arquitetura de monitoramento não intrusivo para sistemas
operacionais mono e multiprocessados de tempo real. A arquitetura baseia-se no emprego de nú- cleos IP reconfiguráveis que detectam a ocorrência de eventos e coletam informações. Exemplo de tais eventos são a execução de processos, sincronização e atividades de entrada e saída. O trabalho desenvolvido pelos autores é dito não intrusivo, pois se baseia na observação do barramento que interconecta os elementos e processadores. À ocorrência de eventos são adicionadas informações temporais (i. e. o momento em que ocorreram), as quais são transmitidas para um sistema externo à arquitetura de monitoramento, que contém uma base de dados de eventos e ferramentas de monitoramento de aplicações.
Tang e Xu [TAN08] propõem uma plataforma de depuração para sistemas multiprocessados
com comunicação baseada em NoCs. Tal plataforma permite a depuração concorrente de diferen- tes PEs através da observação de transações que ocorrem pela rede. A plataforma de depuração é
composta de: (i) um software de suporte a depuração, (ii) um controlador de depuração e (iii) uma arquitetura de depuração em chip. O primeiro permite o envio de comandos de depuração e a vi- sualização de resultados através de uma interface gráfica ou linha de comando. O segundo funcio- na como um tradutor, capturando os comandos gerados pelo software, inserindo estes na plata- forma de depuração através de uma interface JTAG. O terceiro é o mecanismo de depuração em chip, sendo posicionado entre os elementos sob depuração e sua interface de rede. Os autores as- sumem o uso de interfaces padronizadas (e. g. OCP-IP e AXI), extraindo dali as transações que o- correm no sistema multiprocessado. Um agente de depuração concentra a recepção dos comandos e encaminha para os mecanismos responsáveis por sua interpretação. Este mesmo agente é res- ponsável por repassar os resultados de depuração para fora do chip.
Kim et al. [KIM07] propõem um ambiente de monitoramento para auxiliar em tomadas de
decisão em tempo de projeto e contribuir para melhorar o desempenho da infraestrutura de co- municação em tempo de execução. O ambiente é composto por 3 elementos: (i) uma interface com o mundo externo, (ii) um controlador central e (iii) uma unidade de monitoramento. O primei- ro provê um meio para capturar resultados de monitoramento a partir de um computador hospe- deiro. O segundo habilita ou desabilita a monitoramento, de acordo com decisão do projetista. O último captura informações tais como latência fim-a-fim e utilização dos canais locais, recursos dispostos na interface de rede. Uma plataforma específica é implementada fazendo uso da infraes- trutura de comunicação proposta, que foi prototipada em um FPGA. Varia-se o tamanho das filas de armazenamento, até encontrar o menor tamanho que garanta o mesmo desempenho para a aplicação alvo. Para a decisão sobre qual o melhor caminho, pacotes são enviados por caminhos diferentes, sendo assumido como melhor o caminho do pacote que apresentar a menor latência no deslocamento.
Pollet et al. [NOL04] propõem uma plataforma conectando PEs através de uma NoC, sendo
esta infraestrutura de comunicação monitorada por elementos distribuídos na rede e gerenciada por um sistema operacional. O objetivo é garantir o melhor desempenho da infraestrutura de co- municação através do controle de injeção de tráfego e atualização de rotas de comunicação. A ob- servação da utilização da NoC é realizada nas interfaces de rede, onde para cada PE se monitora o número de mensagens enviadas, recebidas ou bloqueadas. Um PE centralizado (Mestre) recebe periodicamente as informações coletadas nas interfaces de rede (Escravos). O Mestre possui um sistema operacional com o poder de gerenciamento da infraestrutura de comunicação, enquanto
os escravos possuem um sistema básico de atendimento de funções. Com base na métrica de blo- queio de mensagens, o Mestre envia comandos de alteração da permissão de injeção de tráfego na rede por PE ou ainda atualiza as tabelas de roteamento. As adaptações são realizadas através do uso de mensagens de controle que trafegam por uma rede distinta da rede de dados, para minorar a interferência causada por estes na comunicação das aplicações.
Daneshtalab et al. [DAN06b] propõem um mecanismo de adaptação de rotas entre pares
comunicantes em redes em chip. Os autores baseiam-se em um algoritmo do tipo AntNet e tem como objetivo reduzir a ocorrência de pontos quentes e os congestionamentos consequentes. A- daptado para NoCs, o algoritmo AntNet foi inicialmente proposto por Di Caro et al. para redes de computadores [DIC98]. Este algoritmo baseia-se no comportamento de colônias de formigas, onde o deslocamento das mesmas em busca de alimento se dá por caminhos com maior a concentração de feromônios1 o que está diretamente relacionado com a quantidade destes insetos que adota um
dado caminho. No trabalho desenvolvido, as formigas são pacotes de controle e o alimento é defi- nido como o destino das comunicações. A topologia de rede é uma malha 2D, com roteamento de- finido por tabelas, a qual contém dados a serem utilizados como valor probabilístico no desloca- mento de pacotes de dados. Periodicamente, pacotes de controle são enviados para um destino, respeitando um algoritmo de roteamento. Durante o deslocamento, o pacote de controle coleta informações tais como a identificação do roteador pelo qual está passando e o estado de congesti- onamento do mesmo. Os autores assumem o estado de ocupação das filas de armazenamento como mecanismo de medida de congestionamento. Se o pacote de controle chegar ao destino, vis- to que a formação de um ciclo dentro da rede faz com que este seja eliminado, este é retransmiti- do ao roteador origem da comunicação, assumindo o caminho que utilizou para chegar ao destino. O caminho que foi adotado para chegar ao destino baseia-se nas probabilidades de uso de uma dada porta e no grau de congestionamento do roteador. Durante o retorno do pacote de controle, as tabelas de roteamento são atualizadas para que os pacotes de dados concentrem a transmissão dos dados pela rota menos congestionada. Os autores comparam seu trabalho, por simulação, com os algoritmos XY puro, .dd-Even e a infraestrutura de comunicação DyAD. Adota-se o padrão de tráfego transposto, tendo esta abordagem apresentado o maior afastamento do ponto de satura- ção.
1
Substância química secretada por algumas espécies de animais e captada/interpretada por animais de mesma espécie, sendo ca- paz de provocar reações fisiológicas/comportamentais em um grupo ou em um indivíduo.
Rantala et al. [RAN08] propõem dois métodos de monitoramento de cargas na rede. O pri-
meiro método concentra-se na ocupação das portas de saída do roteador local e dos roteadores vizinhos, no que se costuma chamar monitoramento do estado da rede, enquanto o segundo cap- tura a ocupação das filas de armazenamento da chave local e de seus vizinhos, no que se chama
monitoramento de FIF.s. O monitoramento é dito distribuído pelo fato de haver o conhecimento
do estado do roteador local e dos vizinhos. O compartilhamento das informações entre roteadores vizinhos se faz através do emprego de canais dedicados, o que evita que a interferência no tráfego de dados. Ambas as abordagens são usadas como mecanismo de suporte à adaptação de rotas. Resultados apontam para um melhor desempenho da adaptação quando se utiliza monitoramento de FIFOs. Mesmo assim, em ambos os métodos houve ganho de desempenho quando comparado a uma solução que não adota monitoramento.