Modelagem e Simulação de Mecanismos de Sincronização entre Unidades econfiguráveis para Projeto Baseado em edes em Chip Tiago Patrocinio, Natasha ebelo, Ivan Saraiva Silva Departamento de Computação Universidade Federal do Piauí (UFPI) Teresina, PI Brasil tiagodsp93@gmail.com, natasha_potter3@hotmail.com, ivan@ufpi.edu.br esumo. Arquiteturas reconfiguráveis estão se tornando frequentemente adotadas e desenvolvidas pela indústria e academia por unir flexibilidade do software com o desempenho do hardware. Com esta tecnologia de tecnologias reconfiguráveis, circuitos integrados necessitam de formas eficientes de comunicação entre as centenas de unidades reconfiguráveis. As redes em chip (NoC - Network on Chip) surgiram como alternativas eficientes para a comunicação entre unidades reconfiguráveis, pois oferecem flexibilidade, comunicação escalável e alto desempenho. Neste trabalho apresenta-se o projeto, descrição e simulação de um mecanismo de sincronização entre unidades reconfiguráveis. Este mecanismo, utilizado no desenvolvimento de arrays reconfiguráveis baseados em redes em chip, pode garantir comunicação paralela entre unidades adjacentes. Simulações mostram que o mecanismo proposto provê latência reduzida comparado ao encapsulamento e roteamento de mensagens por intermédio da rede. 1. Introdução Com o crescimento de tecnologias de integração, o desenvolvimento de arquiteturas em circuitos integrados tem tido como objetivo a busca por flexibilidade e desempenho, tornando-se ponto crucial em projeto de processadores. Arquiteturas reconfiguráveis surgiram como alternativa para prover flexibilidade compatível com os processadores de propósito geral e desempenho compatível com os circuitos dedicados. A denominação de tais arquiteturas vem da capacidade de modificarem sua estrutura de acordo com a aplicação que executam. Para possuírem tal capacidade, são, geralmente, constituídas por um array de unidades reconfiguráveis (s) interconectadas. O aumento do número de unidades de processamento (eventualmente s) em novas arquiteturas requer observâncias dos aspectos relacionados à escalabilidade e reusabilidade. Quando associados a comunicação entre unidades de processamento (UPs), a escalabilidade e reusabilidade tem sido provida pela ede em Chip (NoC Network on Chip). Tais estruturas de interconexão, possibilitam a comunicação entre grande quantidade de UPs, tanto homogêneas quanto heterogêneas. Sendo suas principais vantagens, o paralelismo de comunicação e a comunicação ponto-à-ponto. Este trabalho está associado ao desenvolvimento de arquiteturas reconfiguráveis baseadas em edes em Chip, fazendo parte de projeto de iniciação científica do programa PIBIC (Programa Institucional de Bolsas de Iniciação Científica). O objetivo
é propor, descrever em VHDL e validar um mecanismo de sincronização entre unidades de uma arquitetura reconfigurável baseada em redes em chip. Por se tratar de uma arquitetura ainda em desenvolvimento, as simulações não incluem a rede em chip, simulando apenas o mecanismo de sincronização. 2. Arquitetura reconfigurável Arquiteturas reconfiguráveis são sistemas computacionais que combinam uma unidade de processamento reconfigurável e um processador de propósito geral. Estes sistemas permitem customizações da unidade reconfigurável a fim de atender os requerimentos computacionais específicos de diferentes aplicações. Arquiteturas reconfiguráveis, em detrimento das demais arquiteturas, não possuem uma estrutura adaptada a uma finalidade específica. Em outras palavras, os recursos internos e a estrutura dos dispositivos reconfiguráveis encontram-se incompletos até que sejam mapeados em hardware mediante uma configuração. Tradicionalmente, arquiteturas reconfiguráveis utilizam mecanismos de comunicação próprio. Por exemplo, na proposta de Feng (Feng, 2013) é utilizado um sistema de interconexão baseado em chaveamentos monodirecionais. MorphoSys (Singh, 2000) apresenta suas Unidades Lógicas Aritméticas (ULAs) ligadas a um array 8x8 no formato malha 2D. Cada ULA conecta-se apenas com outras na mesma linha ou coluna. Dessa forma, essas arquiteturas de comunicação entre unidades reconfiguráveis são específicas apenas para sua arquitetura, não atendendo o conceito da reusabilidade. Mais recentemente, as redes em chip (NoC) têm sido usadas como solução para interconexão em arquiteturas reconfiguráveis. AccNoSys (Cruz, 2016), por exemplo, atendendo aos requisitos de flexibilidade, reuso e desempenho, utiliza rede em chip como estrutura de interconexão. 3. Arquitetura Neste trabalho propõe-se um array de s duplamente interconectadas. A primeira via de comunicação (A na figura 1) é uma rede em chip com topologia do tipo grelha-2d. Nesta topologia, cada roteador () se conecta a uma e a quatro roteadores vizinhos, por intermédio de conexão ponto-a-ponto. A existência da rede possibilita a comunicação entre s a qualquer distância, por intermédio de troca de mensagens. Esta comunicação tem latência variável, dependendo da distância entre as s e da carga na rede (Chen, 2011).
Banco de egistradores Caminho de Dados (C) (B) (A) Figura 1 Modelo de comunicação proposto. (A) Canais de sincronização entre nós adjacentes. (B) Comunicação entre roteadores. Topologia NoC do tipo Grelha-2D. A segunda via de comunicação (B na figura 1) é implementada por intermédio de portas de sincronização. Cada é diretamente ligada a quatro s adjacentes por intermédio das portas de sincronização. As portas são mapeadas e nomeadas de acordo com sua localização na, tem-se assim as portas Norte, Sul, Leste e Oeste. Para a realização de operações, as s podem receber dados de s adjacentes, situadas ao norte, sul, leste ou oeste, s remotas ou do banco de registradores (C na figura 1). Quando os dados a serem utilizados tem origem em s remotas, a rede em chip é utilizada para encaminhar as mensagens da origem até o destino, qualquer que seja a localização destas na rede. Para isto, os algoritmos de roteamento XY deve ser utilizado. As s possuem ainda, acesso direto a um banco de registradores, podendo acessar os dados diretamente do banco implantado no caminho do processador. Este trabalho apresenta a arquitetura das portas de sincronização, bem como apresenta sua descrição e validação. A rede em chip a ser utilizada é a rede em chip SoCin (Zeferino, 2003), para a qual já existe uma implementação em VHDL que é a distribuída pelos autores. 4. Proposta de Mecanismo de Sincronização A inclusão de portas de sincronização tem por objetivo permitir que uma opere com dados gerados por s adjacentes. A comunicação deve ocorrer de forma síncrona e direta, diminuindo a latência ocasionada pelo encapsulamento, roteamento e arbitragem das mensagens entre nós da rede. Cada porta de sincronização é constituída por um canal de entrada e um canal de saída. O canal de entrada é constituído por um registrador de dados e um circuito de sincronização. O circuito de sincronização é responsável por manter a informação de validade do dado presente no registrador, bem como por controlar as operações de leitura (realizada pela local) e escrita (realizada pela adjacente). Para escrever no registrador de dados, a adjacente emite uma requisição de escrita e aguarda a recepção de um sinal de confirmação (Acknowledge). Após a escrita, o dado é marcado como válido pelo circuito de sincronização. A presença de um dado válido no
read_request Data_consumed Valid_data registrador inibe qualquer operação de escrita até que este seja consumido, do mesmo modo, a validade do dado habilita a execução de operações (leitura) pela local. (B) Data Acknowledge Write eq. Buffer write_request Input egister Data (A) Operative Unit data_out acknowledge (C) write_request V Figura 3 Circuito Lógico da porta de sincronização. A figura 3 apresenta a proposta de implementação da porta de sincronização. A operação por parte da depende da validade dos dados nas entradas a serem utilizadas (portas Norte, Sul, Leste, Oeste ou ede em Chip), bem como da disponibilidade de uma porta de saída ou um registrador do banco de registradores. O procedimento de validação e invalidação dos dados é executado de forma independente em cada porta. Uma unidade de controle na parte operativa (A na figura 3) controla o sistema de validação de dados nas portas de sincronização, emitindo sinais de requisição de leitura dos dados recebidos (B na figura 3), desvalidação dos dados consumidos e requisições de escrita para s adjacentes (C na figura 3). A figura 4 apresenta um diagrama de fluxo para a execução de uma operação em uma. Para a elaboração do diagrama considerou-se que a operação utiliza operandos das portas de entrada Norte e Sul e envia o resultado produzido para a pora Leste. O uso de dados corresponde a operação/requisições de leitura, enquanto que o envio do resultado corresponde a operação/requisição de escrita. Início Processa a Operação da Instrução Atual Bool EntradaA = valido(porta NOTE); Bool EntradaB = valido(porta SUL); equisiçãodeescrita(porta LESTE); Falso Verdadeiro EntradaA AND EntradaB Verdadeiro Falso Enviar equisição de Leitura para a Porta NOTE e desvalida o dado. Enviar equisição de Leitura para a Porta SUL e desvalida o dado. Opera os dados e escreve na porta LESTE. Busca a Próxima Instrução Figura 4 Diagrama de fluxo do controle de validação de uma instrução que recebe operandos das portas Norte e Sul e o resultado gravado na porta Leste.
5. Validação e esultados O mecanismo de sincronização foi descrito na linguagem VHDL. Para realizar as simulações, foram elaboradas três unidades de sincronização sem uma rede em chip. As unidades foram conectadas de forma circular, onde a porta leste de cada uma é conectada com a oeste da unidade adjacente. A tabela 1 apresenta o formato de instruções adotado para testar o mecanismo de sincronização. Tabela 1 Instruções Teste Instrução Destino Dado #1 Dado #2 Descrição add POTA POTA POTA Soma entre Portas addi POTA POTA CONSTANTE Soma entre Portas e Constantes Cada possui um núcleo de processamento com uma Unidade Lógica Aritmética (ULA). A tabela 2 apresenta as instruções executadas pelas s durante a simulação de validação. A figura 5 apresenta o resultado da simulação, mostrando que os dados são transferidos com sucesso de uma unidade para outra. As unidades com dados não válidos aguardam até que todas a portas estejam válidas (setas A e B na figura 6) para efetuar a operação (seta C na figura 6). Isso demonstra o sucesso da comunicação do mecanismo de sincronização proposto. A comunicação entre unidades adjacentes acontece imediatamente assim que uma porta de sincronização destino encontre-se disponível, possuindo latência de um ciclo. Tabela 2 Configuração de Instruções por Unidade Sequencia Core 0 Core 1 Core 2 1 addi east, zero, 15; addi east, weast, 5; addi east, weast, 11; 2 add east, weast, east; addi weast, zero, 5; 3 addi north, weast, 1; Figura 6 Simulação do mecanismo de sincronização. (A, B) Sincronização de dados entre unidades reconfiguráveis. (C) Sincronização do resultado da operação.
De acordo com Zererino (Zeferino, 2003), a comunicação entre roteadores do tipo wormhole em uma rede em chip é obtido considerando o tempo associado ao escalonamento do pacote (roteamento e chaveamento), tempo de propagação nos canais internos do roteador e tempo para transferência da carga útil do pacote a ser transferindo. Isso mostra, que mesmo para distâncias curtas (roteador-roteador), desconsiderando bloqueios por indisponibilidade do canal, a latência da rede em chip é elevada. Em contraste, o modelo de sincronização proposto nesse artigo prover uma rápida comunicação entre unidades adjacentes, pois dispensa as etapas de encapsulamento de mensagens e possui carga útil fixa. 6. Conclusão e Trabalhos Futuros Nesse trabalho foi apresentado um mecanismo de sincronização entre unidades reconfiguráveis para uma proposta de arquitetura reconfigurável baseada em redes em chip. Foi discutido, descrito e validado uma forma de garantir que ocorram operações apenas com dados válidos, estabelecendo uma comunicação confiável entre as unidades. Em trabalhos futuros, pretende-se integrar uma NoC para comunicação entre unidades reconfiguráveis e coletar dados de desempenho junto ao modelo de sincronização entre unidades adjacentes. eferências Feng, C. and Yang, L. (2013) Design and Evaluation of a Novel econfigurable ALU Based on FPGA. In International Conference on Mechatronic Sciences, Electric Engineering and Computer (MEC). Shenyang, China. Singh, H. et al. (2000) MorphoSys: An Integrated econfigurable System for Data- Parallel and Computation-Intensive Application. In IEEE Transactions on Computers, vol. 49, no. 5. Cruz, M. (2016) "AccNoSys: Uma Arquitetura Adaptativa Aceleradora com Interconexão baseada em ede em Chip". Dissertação de Mestrado, UFN. Chen, J., Li, C. and Gillard, P. (2011) "Network-on-Chip (NoC) Topologies and Performance: A eview". In IEEE Newfoundland and Labrador Section. Zeferino, C. A. and Susin, A. A. (2003) SoCIN: A Parametric and Scalable Network on-chip. In SBCCI 2003, IEEE CS Press, 2003. p. 169-174.