Modelagem e Simulação de Mecanismos de Sincronização entre Unidades Reconfiguráveis para Projeto Baseado em Redes em Chip

Documentos relacionados
Uma Arquitetura Reconfigurável de Granularidade Grossa Para Multicore

Sumário. Introdução a SoCs. Introdução a SoCs. Introdução a SoCs. Introdução a SoCs. Systems on Chips Multiprocessados: MPSoCs

Proposta e Avaliação de uma Rede-em-Chip Programável

Barramento. Prof. Leonardo Barreto Campos 1

Arranjo de Processadores

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Introdução à Computação

Barramento CoreConnect

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

PROCESSADORES Unidade de Controle Unidade Aritmética e Lógica efetua memória de alta velocidade registradores Program Counter Instruction Register

ANÁLISE DE DESEMPENHO DAS TOPOLOGIAS PARA SISTEMAS SOC

Projeto em VHDL de um Processador de Rede Intra-Chip

Dispositivos de Lógica Programável

Organização e Arquitetura de Computadores I

AVALIAÇÃO DE DESEMPENHO EM UMA NOC DE UMA APLICAÇÃO DISTRIBUÍDA UTILIZANDO UM MIDDLEWARE JAVA

Aula 3 Redes de Interconexão

ESTUDO SOBRE O IMPACTO DOS PROCESSADORES HOSPEDEIROS SPARC V8 E NIOS II NO DESEMPENHO DA ARQUITETURA RECONFIGURÁVEL HÍBRIDA RoSA

Arquitetura de Computadores. Processamento Paralelo

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Organização e Arquitetura de Computadores I

18/10/2010. Unidade de Controle Controle. UC Microprogramada

Algoritmos e Lógica de Programação Componentes e Arquitetura

FUNDAMENTOS DE REDES DE COMPUTADORES TP1

FUNDAMENTOS DE REDES DE COMPUTADORES TP2

Arquitetura e Organização de Computadores

ORGANIZAÇÃO DE COMPUTADORES

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Organização e Arquitetura de Computadores I

ARQUITETURA DE COMPUTADORES

Sistemas de Informação. Sistemas Operacionais

SSC510 Arquitetura de Computadores 1ª AULA

Organização e comunicação em plataformas paralelas

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Mecanismos para o provimento de tolerância a faltas em Redes-em-Chip

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Processamento Paralelo

Os textos nestas caixas foram adicionados pelo Prof. Joubert

Dispositivo Lógico Programável(PLD)

Organização e Arquitetura de Computadores INTRODUÇÃO

30/5/2011. Sistemas computacionais para processamento paralelo e distribuído

FPGA & VHDL. Tutorial

Sistemas de Troca de Mensagens

Sistemas Distribuídos

Organização de Computadores II. Arquiteturas MIMD

Topologias de Arquiteturas de Comunicação

Redes de Computadores

Memória interna para Projeto de Sistema Computacionais com Capacidade de Detecção de Erro de Escrita e Configuração de Recursos de Redundância

Desenvolvendo aplicações com LabVIEW FPGA. Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO

Organização de computadores. Segundo Bimestre CNAT Prof. Jean Galdino

Microarquiteturas Avançadas

PLANEJAMENTO DAS DISCIPLINAS DE SISTEMAS DIGITAIS NA EC3. Workshop de Graduação do PCS Prof. Edson S. Gomi 31 de julho de 2018

CURSO TÉCNICO EM INFORMÁTICA

CURSO TÉCNICO EM INFORMÁTICA

Implementação de Canais Virtuais em Redes em Chip

Compreendendo o Cisco Express Forwarding (CEF)

COMPUTADOR. Adão de Melo Neto

Sistemas Distribuídos

Sistemas Operacionais. Conceitos de Hardware

Visualização Distribuída utilizando Agrupamentos de PCs 10

Hardware Reconfigurável

ELD - Eletrônica Digital Aula 11 Introdução à Lógica Programável. Prof. Antonio Heronaldo de Sousa

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ORGANIZAÇÃO COMPUTACIONAL

Entrada e saída do ARC Prof. Luís Caldas Aula 08 pág.125 a 126

Introdução à Computação

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade.

Conjunto de fios paralelos que permitem a transmissão de dados, endereços e sinais de controle entre a UCP, memória e dispositivos de entrada e

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

LISTA DE EXERCÍCIOS #2 (BASEADO NO ENADE COMPUTAÇÃO)

Microcontrolador FemtoJava Pipeline (Low Power)

Organização de Computadores

Introdução aos Sistemas Distribuídos

FPGA & VHDL. Tutorial Aula 1. Computação Digital

Análise de Desempenho de Topologias para Redes em Chip

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

PROJETO LÓGICO DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Aula 1 Conceitos Básicos

SSC0112 Organização de Computadores Digitais I - Turma 2

Introdução. Redes de Interconexão - Prof a Luiza Mourelle 1

Comunicação de Dados II

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Computadores Digitais II

Capítulo 14. Expandindo as portas de comunicação 8031 com a PPI Interface PPI 8255

Aula 06 - Máquina Multinível e Von Neumann

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Sistemas Operacionais Distribuídos

BARRAMENTO DO SISTEMA. Adão de Melo Neto

Análise do Tráfego Interno em uma Rede-em-Chip por meio de Simulação

Introdução à Computação: Máquinas Multiníveis

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

de petróleo. Um novo domínio chamado computação de propósito geral em processadores gráficos (GPGPU) surgiu quando os pipelines de gráficos de

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Arquiteturas RISC e CISC. Adão de Melo Neto

SSC0611 Arquitetura de Computadores

Transcrição:

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.