MARCELO DANIEL BEREJUCK REDE INTRA-CHIP COM QUALIDADE DE SERVIÇOS PARA USO EM TELECOMUNICAÇÕES

Tamanho: px
Começar a partir da página:

Download "MARCELO DANIEL BEREJUCK REDE INTRA-CHIP COM QUALIDADE DE SERVIÇOS PARA USO EM TELECOMUNICAÇÕES"

Transcrição

1 MARCELO DANIEL BEREJUCK REDE INTRA-CHIP COM QUALIDADE DE SERVIÇOS PARA USO EM TELECOMUNICAÇÕES São José (SC), agosto de 2009

2 UNIVERSIDADE DO VALE DO ITAJAÍ CURSO DE MESTRADO ACADÊMICO EM COMPUTAÇÃO APLICADA REDE INTRA-CHIP COM QUALIDADE DE SERVIÇOS PARA USO EM TELECOMUNICAÇÕES por Marcelo Daniel Berejuck Dissertação apresentada como requisito parcial à obtenção do grau de Mestre em Computação Aplicada. Orientador: Cesar Albenes Zeferino, D.Sc. São José (SC), agosto de

3 FOLHA DE APROVAÇÃO

4 A minha esposa Mirian e minhas filhas Mariana e Gabriela, que deram seu apoio incondicional aos meus esforços. A elas dedico todo meu amor e mais profundo agradecimento.

5 "Há homens que lutam um dia e são bons. Há outros que lutam um ano e são melhores. Há os que lutam muitos anos e são muito bons. Porém, há os que lutam toda a vida. Esses são os imprescindíveis. Bertolt Brecht A curiosidade é mais importante que o conhecimento. Albert Einstein

6 AGRADECIMENTOS No passado sempre imaginei que poderia realizar meus sonhos se tivesse determinação. Ao longo da vida descobri que os sonhos são realizados sim com muita determinação, mas não é suficiente. Muitas vezes eles se materializam graças à ajuda de diversas pessoas que conhecemos ao longo do caminho. No passado também imaginava que a realização de meus sonhos traria uma satisfação única! Hoje, descobri que sim, traz muita satisfação, mas não é a única. Poder olhar para trás e ver seu sonho realizado porque você conheceu pessoas diferentes que ajudaram a construí-lo é uma sensação engrandecedora, que faz com que eu sinta que meus sonhos materializaram-se e tornaramse imortais, pois agora são conhecidos e, muitas vezes, ainda compartilhados por outros. Tenho muito a agradecer e a muitas pessoas. Em especial agradeço à Direção da Intelbras S.A por ter acreditado em minhas propostas e financiado minhas pesquisas. Agradeço também ao professor Cesar Albenes Zeferino pelo exelente trabalho realizado como meu orientador. Cresci muito tecnicamente graças ao seu incentivo e orientação. E finalmente agradeço à minha família: minhas filhas Gabriela e Mariana e minha amada esposa Mirian, por terem apoiado meus esforços e suportado minhas ausências nos finais de semana dedicados aos estudos.

7 REDE INTRA-CHIP COM QUALIDADE DE SERVIÇOS PARA USO EM TELECOMUNICAÇÕES Marcelo Daniel Berejuck Agosto / 2009 Orientador: Cesar Albenes Zeferino, D.Sc. Área de Concentração: Computação Aplicada Linha de Pesquisa: Sistemas Embarcados e Distribuídos Palavras-chave: SoC, NoC, PABX. Número de páginas: 145 RESUMO O crescente aumento na densidade dos circuitos integrados tem permitido aos projetistas implementar múltiplos processadores de diferentes tipos em um mesmo chip. São sistemas completos em uma única pastilha de silício, normalmente conhecidos como Systems-on-a-Chip (SoCs). A interconexão de componentes nos futuros SoCs irá exigir arquiteturas de comunicação reutilizáveis e com desempenho escalável, características não encontradas nas arquiteturas usadas atualmente. Uma solução de consenso para esse problema são as Networks-on-Chip (NoCs), arquiteturas de comunicação intra-chip baseadas em redes chaveadas. Entre as principais vantagens dessa abordagem, pode-se destacar o fato de que essas redes provêem paralelismo na comunicação, largura de banda escalável e modularidade de projeto. O uso de NoC no desenvolvimento de equipamentos PABX Private Automatic Branch exchange - é uma solução interessante para alcançar essa escalabilidade de projeto, fator importante para ampliar a velocidade de desenvolvimento de novos produtos num mercado que tem sua expansão rumo à convergência digital entre voz, vídeo e dados. Este trabalho apresentada três propostas de mecanismos para prover qualidade de serviços (QoS) na rede SoCIN e que podem ser utilizadas em um sistema de telecomunicações do tipo PABX: chaveamento de circuitos, canais virtuais e envelhecimento de pacotes. O trabalho desenvolvido incluiu uma revisão detalhada da bibliografia e do estado-da-arte em NoCs, com foco nas redes com provimento de QoS. Para avaliação de desempenho das propostas oferecidas à rede SoCIN, foi utilizado o suporte de uma ferramenta de simulação de tráfego elaborada em SystemC. Outro critério avaliado nas implementações foi o consumo de silício que cada proposta gerou em relação à versão original do roteador da rede. Esses relatórios de consumo foram obtidos após a implementação dos modelos sintetizáveis descritos em VHDL numa ferramenta de síntese lógica. Os resultados obtidos confirmam a viabilidade de implementação da proposta e podem ser consideradas como as primeiras contribuições de mecanismos de qualidade de serviços descritas em linguagem de síntese para a rede SoCIN.

8 NETWORK-ON-CHIP WITH QUALITY OF SERVICES TO BE USED IN TELECOMMUNICATIONS Marcelo Daniel Berejuck August / 2009 Advisor: Cesar Albenes Zeferino, D.Sc. Area of Concentration: Applied Computer Science Reseach Line: Embedded and Distributed Systems Keywords: SoC, NoC, PABX. Number of pages: 145 ABSTRACT The growing increase in density of integrated circuits has enabled designers to implement multiple processors of different types on a single chip. These complete systems, built on a single silicon chip, are commonly known as Systems-on-a-Chip (SoC). The interconnection of components in future SoCs will require reusable communication architectures with scalable performance, features not found in current architectures. A solution to this problem, on which there is a consensus within the industry, is the Network-on-Chip (NoC), an intra-chip communication architecture based on switched channels. One of the main advantages of this approach is that these networks provide parallelism of communication, scalable bandwidth, and modularity of design. The use of NoCs in the development of PABX (Private Automatic Branch exchange) equipment is an interesting solution for achieving this design scalability, an important factor for increasing the speed of development of new products in a market which is expanding towards a digital convergence of voice, video and data. This work proposes three mechanisms for providing quality of service (QoS) in the SoCIN NoC for use in a telecommunications system: circuit switching, virtual channels and packet aging. The work included a detailed review of the literature and the latest developments in NoCs, focusing on networks with QoS provisioning. To evaluate the performance of the proposed solutions to provide QoS to SoCIN, a SystemC-based simulator was used. Another criterion for evaluation in the implementations was the silicon overhead of each proposal, which was obtained after the implementation and synthesis of the VHDL descriptions of the proposed architectures. The results confirm the feasibility of implementing the proposals, and may be considered as the first contributions of mechanisms for quality of services described in language synthesis for the SoCIN network.

9 LISTA DE ILUSTRAÇÕES Figura 1. Crescimento da diferença entre produtividade dos projetistas e densidade de um chip...19 Figura 2. Representação do processo de amostragem de um sinal...27 Figura 3. Tabela de conversão utilizada no processo de digitalização de sinais de voz...28 Figura 4. Representação de um sistema PCM básico...29 Figura 5. Estrutura básica de um quadro PCM de 32 canais...30 Figura 6. Princípio básico de um sistema TDM...31 Figura 7. Diagrama em blocos de uma central telefônica de comutação temporal...32 Figura 8. Topologias regulares: (a) malha 2-D; (b) toróide 2-D; (c) hipercubo 3-D...35 Figura 9. Exemplo de uma rede irregular...35 Figura 10. Modelo genérico de roteador...37 Figura 11. Modelo genérico de árbitro...39 Figura 12. Diagrama espaço-tempo de um exemplo de chaveamento de circuito...41 Figura 13. Diagrama espaço-tempo de um exemplo de chaveamento por pacotes...42 Figura 14. Gráfico Vazão Tráfego oferecido para uma rede genérica...46 Figura 15. Gráfico Latência Tráfego oferecido para uma rede genérica...47 Figura 16. Relação entre o tempo de chegada dos pacotes e o tempo de reprodução...49 Figura 17. Taxonomia das Aplicações...51 Figura 18. Exemplo de Fila FIFO...53 Figura 19. Exemplo de Fila de Prioridades...53 Figura 20. Exemplo de Weighted Fair Queuing (WFQ)...54 Figura 21. Exemplo de conformação de tráfego Leaky Bucket...55

10 Figura 22. Exemplo de conformação de tráfego token bucket...56 Figura 23. Exemplo de transmissão de quatro flits (A, B, C e D) com GO-BACK-N...61 Figura 24. Visão geral da arquitetura do módulo de saída do roteador...63 Figura 25. Arquitetura do módulo de saída do roteador...64 Figura 26. Arquitetura do roteador da Æthereal...66 Figura 27. Campos que compõem um pacote da QNoC...69 Figura 28. Canais de comunicação do roteador da QNoC...70 Figura 29. Portas de entrada e saída do roteador da QNoC...71 Figura 30. Formas de onda na transmissão da QNoC: preempção de um pacote Real-time...72 Figura 31. Topologia da malha bidirecional na rede Hermes...73 Figura 32. Largura de banda em um roteador Hermes-CS...74 Figura 33. Arquitetura do roteador Hermes-FP...76 Figura 34. Campos dos pacotes transmitidos pela rede Hermes-FP...76 Figura 35. Arquitetura do roteador Hermes-DP...78 Figura 36. Campos do pacote de controle...79 Figura 37. Campos do pacote de dados...80 Figura 38. Arquitetura do roteador Hermes com suporte a o escalonamento baseado em taxas...80 Figura 39. Exemplo de malha 2-D...82 Figura 40. Enlace da rede SoCIN...82 Figura 41. Formato do pacote da rede SoCIN...83 Figura 42. Cabeçalho da rede SoCIN: (a) campos previstos; (b) detalhamento do campo RIB...84 Figura 43. Interfaces do roteador ParIS...85 Figura 44. Interfaces do roteador ParIS...86 Figura 45. Sistema de coordenadas adotado na rede SoCIN...87 Figura 46. Visão geral do roteador ParIS...88 Figura 47. Visão geral do bloco Xin...89 Figura 48. Sinais de entrada e saída do bloco IFC...89

11 Figura 49. Sinais de entrada e saída do bloco IB...90 Figura 50. Sinais de entrada e saída do bloco IC...91 Figura 51. Visão geral do bloco Xout...92 Figura 52. Sinais de entrada e saída do bloco OFC...93 Figura 53. Sinais de entrada e saída do bloco OC...93 Figura 54. Visão interna do bloco OC...94 Figura 55. Organização detalhada do roteador ParIS...95 Figura 56. Grafo representando a comunicação entre dois núcleos..101 Figura 57. Grafo representando um sistema PABX Figura 58. Representação simbólica da disposição dos elementos básicos de um FPGA Figura 59. Metade superior de um SLICE da família Virtex-II Pro Figura 60. Exemplo de plataforma para avaliação de desempenho da rede SoCIN Figura 61. Fluxo para avaliação de desempenho Figura 62. Exemplo de gráfico da ferramenta Figura 63. Formato do pacote modificado Figura 64. Estrutura Bloco REQ_REG alterado Figura 65. Simulação funcional do roteador ParIS com Chaveamento de Circuitos Figura 66. Novos módulos com canais virtuais: (a) Xin2vc; e (b) Xout2vc Figura 67. Enlace da rede SoCIN-VC Figura 68. Simulação funcional do roteador ParIS-VC: preempção de fluxos BE por fluxos GT Figura 69. Simulação funcional do roteador ParIS-VC: não preempção entre fluxos de mesma categoria Figura 70. Diagrama em blocos da arquitetura proposta com aging no roteador ParIS Figura 71. Formato do pacote modificado para aging Figura 72. Sinais de entrada e saída do bloco Stampler...126

12 Figura 73. Estrutura interna do bloco Stampler Figura 74. Interface do novo árbitro para escalonamento baseado na idade e na classe do pacote Figura 75. Estrutura interna do OC com árbitro de aging Figura 76. Cenário com pacotes RT0 para validação do mecanismo de aging Figura 77. Cenário de testes para validação do árbitro de Aging segunda configuração Figura 78. Simulação funcional do roteador ParIS-AG Figura 79. Representação gráfica dos valores apresentados na Tabela Figura 80. Tráfego padrão utilizado par avaliar o mecanismo de chaveamento de circuitos...137

13 LISTA DE TABELAS Tabela 1. Polinômios padronizados...64 Tabela 2. Sinais do roteador da QNoC...69 Tabela 3. NoCs e os mecanismos implementados para garantir qualidade de serviços Tabela 4. Mapeamento do volume de dados em uma aplicação PABX Tabela 5. Nomenclatura adotada para as classes da aplicação PABX Tabela 6. Códigos de comando para suporte ao chaveamento por circuito Tabela 7. Codificação do campo Flit_Type Tabela 8. Comparativo sobre o custo de silício chaveamento de circuitos Tabela 9. Comparativo sobre o custo de silício canais virtuais Tabela 10. Classes de fluxos definidas no campo CLS Tabela 11. Comparativo sobre o custo de silício envelhecimento de pacotes Tabela 12. Custo das implementações em relação ao roteador ParIS original com FIFOs de entrada de profundidades diferentes Tabela 13. Caracterização dos fluxos usados nos experimentos Tabela 14. Avaliação do impacto causado pelo chaveamento de circuitos na rede Tabela 15. Avaliação do impacto causado pelo uso de canais virtuais e aging

14 LISTA DE ABREVIATURAS E SIGLAS ARQ BE CAD CDA CPA-T CRC CRT CSIP DMA DSP EDF FIFO Flit FPGA FTP GSM GT HLP I/O IB IC IFC IP ITRS LUTs MPSoC NBS NoC NoS OC OCN OFC OS PABX PbD PCM Phit QoS RIB SAF SoC SoCIN SPIN TDM TRA Automatic Repeat Request Best Effort Conversor Analógico/Digital Conversor Digital/Analógico Controle por Programa Armazenado Temporal Cyclic Redundancy Check Current Routing Table Currently Serviced Input Port Direct Memory Access Digital Signal Processor Earliest Deadline First First-In, First-Out Flow control unit Field Programmable Gate Array File Transfer Protocol Global System for Mobile communications Guaranteed Throughput Higher Level Protocol Input/Output Input Buffer Input Controller Input Flow Controller Internet Protocol International Technology Roadmap for Semiconductors Look-Up Table Multiprocessor System-on-a-Chip Next Buffer State Network-on-Chip Network-on-Silicon Output Controller On-Chip Network Output Flow Controller Output Switch Private Automatic Branch exchange Platform-based Design Pulse Code Modulation Physical unit Quality-of-Service Routing Information Bits Store-and-Forward Systems-on-a-Chip System-on-Chip, Interconnection Network Scalable Programmable Integrated Network Time Division Multiplexing Target Routing Address

15 UNIVALI VCT VHDL VHSIC WFO Universidade do Vale do Itajaí Virtual Cut-Through VHSIC Hardware Description Language Very High Speed Integrated Circuit Weighted Fair Queuing

16 LISTA DE SÍMBOLOS µ Micro (10-6 ) m Mili (10-3 ) Marca registrada em órgão oficial de registro de patentes.

17 SUMÁRIO 1 INTRODUÇÃO PROBLEMA DE PESQUISA OBJETIVOS Objetivo Geral Objetivos Específicos METODOLOGIA ORGANIZAÇÃO DO DOCUMENTO REVISÃO DA LITERATURA CONCEITOS DE TELECOMUNICAÇÕES Digitalização de sinais de áudio PCM Pulse Code Modulation TDM Time Division Multiplex Central Telefônica de Comutação Temporal CONCEITOS DE REDES DE INTERCONEXÃO CHAVEADAS Classificação de Redes de Interconexão Topologia Roteadores Deadlock, Livelock e Starvation MÉTRICAS PARA AVALIAÇÃO DE DESEMPENHO DE REDES CLASSIFICAÇÃO DE APLICAÇÕES EM REDES Aplicações de Tempo Real (Não Elásticas) Aplicações de Tempo Não Real (Elásticas) QUALIDADE DE SERVIÇOS Super-dimensionamento Política de filas Modelo de Tráfego Classes de Serviços ARQUITETURAS DE REDES-EM-CHIP COM QOS XPIPES Visão geral da arquitetura Visão geral do roteador ÆTHEREAL Visão geral da arquitetura Visão geral do roteador QNOC Visão geral da arquitetura Visão geral do roteador HERMES...72

18 3.4.1 Visão geral da arquitetura Visão geral do roteador com Chaveamento de Circuitos (CS) Visão geral do roteador com Prioridades Fixas (FP) Visão geral do roteador com Prioridades Dinâmicas (DP) Visão do roteador com escalonamento baseado em taxas (RB) SOCIN Características gerais da rede SoCIN Tratamento de fluxos na rede SoCIN ESTADO DA ARTE DEFINIÇÕES DE ESCOPO DO TRABALHO Modelamento do Sistema Segmento de Telecomunicações alvo na SoCIN Considerações sobre os fluxos de dados Considerações na Rede SoCIN Métricas de Qualidade de Serviços Métrica de consumo de recursos de silício Ferramenta para avaliação de desempenho DESENVOLVIMENTO CHAVEAMENTO DE CIRCUITOS NA SOCIN SOCIN-CS Arquitetura proposta Resultados alcançados Validação funcional CANAIS VIRTUAIS NA REDE SOCIN SOCIN-VC Arquitetura proposta Resultados alcançados Validação funcional ENVELHECIMENTO DE PACOTES NA REDE SOCIN SOCIN-AG Arquitetura proposta Resultados alcançados Validação funcional AVALIAÇÃO DOS MECANISMOS UTILIZADOS PARA PROVER QOS NA REDE SOCIN Custos de silício Análise de desempenho CONCLUSÕES CONTRIBUIÇÕES DA DISSERTAÇÃO PUBLICAÇÕES TRABALHOS FUTUROS REFERÊNCIAS...142

19 19 1 INTRODUÇÃO A complexidade dos circuitos em termos de transistores que podem ser integrados em um chip tem aumentado a uma taxa de 58% por ano (HEMANI et al., 2000). Segundo o International Technology Roadmap for Semiconductors ITRS, até o final desta década, os sistemas integrados em um chip deverão utilizar até quatro bilhões de transistores operando abaixo de um volt, com freqüência de operação em 10 GHz (BENINI; DE MICHELI, 2002). Este aumento na densidade dos circuitos integrados tem permitido aos projetistas implementar múltiplos processadores de diferentes tipos em um mesmo chip. São sistemas completos em uma única pastilha de silício, normalmente conhecidos como Systems-on-a-Chip (SoCs). Com efeito, cada vez mais surgem novas aplicações com maior complexidade aumentando ainda mais a dificuldade de implementação dos projetos. Por outro lado, a produtividade dos projetistas não tem crescido a mesma taxa que o número de transistores por chip (VAHID; GIVARGIS, 2002, p. 22), como ilustra a Figura 1. Esse problema é conhecido pelo termo gape de produtividade e reduzir esse gape é o principal objetivo da comunidade de automação de projetos. Capacidade do Circuito Integrado (em milhões de transistores/chip) Capacidade do CI Produtividade Gape Produtividade (em mil transistores/projetista-mês) Figura 1. Crescimento da diferença entre produtividade dos projetistas e densidade de um chip Fonte: Vahid e Givargis (2002, p. 22). Para lidar com esse aumento na demanda por novas soluções, foram desenvolvidos, ao longo das últimas décadas, diversos métodos que aumentaram a produtividade dos projetistas. Um caminho para alcançar esta produtividade consiste em compor novos sistemas através do reuso de componentes de hardware previamente projetados e verificados. Tais blocos são referenciados pelos

20 20 termos núcleo (do inglês core), os quais, segundo Gupta e Zorian (1997), contêm pelo menos portas lógicas. Por serem produtos de tecnologia sujeitos à patente e a copyright, são também chamados de blocos de IP (Intelectual Property). Dessa forma, SoCs consistem de um conjunto de núcleos que representam funções complexas, como, por exemplo, filtros e outras primitivas. O usuário pode armazenar estes núcleos em bibliotecas específicas para reuso dos componentes de acordo com suas funcionalidades (MADISETTI; SHEN, 1997). Outra metodologia importante para a concepção de sistemas é o conceito de Projeto baseado em Plataforma 1 (PbD Platform-based Design). Uma plataforma consiste de uma biblioteca de componentes associadas com suas regras de composição (SANGIOVANNI-VICENTELLI et al., 2004). Essas padronizações permitem o reuso de núcleos e da infra-estrutura de comunicação, criando assim o conceito de plataforma de desenvolvimento, o qual contribui para minimizar o tempo de entrada de novos produtos no mercado (time-to-market 2 ). Apesar dos avanços no desenvolvimento de ferramentas e métodos, os futuros SoCs com várias dezenas de núcleos precisarão de infra-estrutura de comunicação reutilizável e com desempenho escalável, prevendo o suporte a futuras adaptações do sistema no desenvolvimento de novos produtos que possam ter tráfego de dados diferenciados. Segundo Benini e De Micheli (2002), diversas características elétricas inerentes aos processos de confecção do chip passarão a ser preponderantes para o correto funcionamento dos novos SoCs de alta densidade. Por exemplo, com baixos níveis de tensão, os circuitos ficam mais suscetíveis a ruídos e a efeitos de crosstalk digital, gerando erros na transmissão de dados. A sincronização dos futuros chips utilizando apenas uma fonte de sinal de clock será muito difícil, senão impossível. A falta de um clock único fará com que o mecanismo de comunicação entre os dispositivos seja completamente distribuído, com pequena ou nenhuma coordenação global. A interconexão (comunicação) deverá ser o fator limitante para operacionalizar os novos projetos de SoC. 1 Keutzer et al. (2000) apresentam a seguinte definição de plataforma: Como conseqüência desta evolução do mundo dos Circuitos Integrados, se é possível determinar um denominador comum de hardware (o qual nos referimos como uma plataforma de hardware) que poderia ser compartilhado por múltiplas aplicações em um dado domínio de aplicação, aumentando o volume de produção, os custos totais podem ser eventualmente (muito) menores do que no caso em que o chip é customizado para a aplicação. 2 Segundo Vahid e Givargis (2002, p. 7), time-to-market é a quantidade de tempo necessária para projetar e manufaturar um sistema até o ponto em que o sistema pode ser vendido aos consumidores.

21 21 Benini e De Micheli (2002) afirmam que as técnicas de barramentos de comunicação não serão a solução em interconexão mais adequada para os futuros SoCs. Adaptar modelos, técnicas e ferramentas de projetos de Redes de Computadores para uso em projetos de SoC é uma solução mais adequada aos desafios elétricos impostos pelos SoCs de alta densidade. Este conceito de interconexão intra-chip é conhecido como Network-on-Chip (NoC), terminologia proposta por Hemani et al. (2000). Em português, são utilizados os termos Rede-em-Chip e Rede Intra-chip. Uma NoC consiste de um arranjo de canais ponto-a-ponto, chaveados por roteadores e compartilhados pelos núcleos do sistema, e que provêm meios para comunicação entre os núcleos por meio da comutação por circuitos ou por pacotes. As NoCs apresentam-se como uma alternativa promissora de interconexão de futuros SoCs, pois: Estruturam as conexões globais e, portanto suas propriedades elétricas são otimizadas e bem controladas (DALLY, 2001); Facilitam a modularidade devido ao uso de interface padronizada (DALLY, 2001); Possuem largura de banda escalável (DALLY, 2001); Oferecem reuso de componentes consolidados (DALLY, 2001); Permitem a distribuição de sinais de clock de forma mais adequada para sistemas mais complexos (ZEFERINO; SANTO; SUSIN, 2004); e Permitem o paralelismo nas comunicações (ZEFERINO; SUSIN, 2003). As tecnologias de SoCs e a convergência digital levam à possibilidade de desenvolvimento de produtos de telecomunicação cada vez mais complexos, com o uso de múltiplos processadores. Equipamentos de uso pessoal, como telefones celulares, possuem diversos serviços associados ao aparelho, além da função básica de transmissão e recepção de sinais de voz como, por exemplo, o envio e recebimento de mensagens eletrônicas, aplicativos de correio eletrônico ( ), câmera fotográfica digital, execução de áudio em modo de compressão MP3 entre outros. A complexidade dos serviços é ainda maior para os equipamentos de telecomunicações destinados ao uso corporativo, como centrais telefônicas do tipo PABX Private Automatic Branch exchange. Originalmente, esses equipamentos eram definidos como unidades de comutação de sinais de voz, geralmente encontrados em empresas e usados apenas internamente à corporação (por

22 22 isso private). Eles permitem a conexão automática (sem a interferência de um operador manual) de chamadas feitas pelos usuários entre as extensões internas (ramais) e entre essas e as linhas externas, pertencentes às operadoras de telefonia. Pode-se entender um equipamento PABX como um subsistema para a rede pública de telefonia. Com o advento da convergência digital, os equipamentos PABX estão sendo adaptados para gerenciar, além dos sinais de voz, a comutação de pacotes de dados e de sinais de multimídia como videoconferência. Os produtos de telecomunicações estão recebendo rapidamente novos serviços de tecnologia convergente, gerando necessidades em termos de metodologias e tecnologias de projeto específicas para minimizar o time-to-market de modo a lidar de maneira mais adequada com a complexidade dos projetos e reduzir o gape de produtividade do setor. 1.1 PROBLEMA DE PESQUISA Para atender essa demanda por um menor tempo de desenvolvimento e por uma redução nos custos do projeto, conforme já discutido, as metodologias utilizadas no projeto de SoCs são baseadas no reuso de componentes de hardware previamente projetados e verificados. O uso de NoC para interconexão desses componentes garante escalabilidade ao projeto, permitindo uma rápida adaptação do produto às necessidades do mercado. O uso de NoC no desenvolvimento de equipamentos PABX é uma solução interessante para alcançar essa escalabilidade de projeto, fator importante para ampliar a velocidade de desenvolvimento de novos produtos num mercado que tem sua expansão rumo à convergência digital entre voz, vídeo e dados. Até o momento não se conhece nenhuma aplicação de rede intrachip para este tipo de equipamento de telecomunicações. Dentre as diversas alternativas de arquitetura de NoC, destaca-se a rede SoCIN (System-on- Chip Interconnection Network) (ZEFERINO, 2003), cuja arquitetura apresenta como diferencial o fato de poder ser dimensionada de modo a atender a requisitos de custo e desempenho da aplicação alvo. Esta se baseia em um núcleo de roteador configurável, na qual a largura dos canais e a profundidade dos buffers podem ser dimensionadas em função dos requisitos do sistema. Além disso, sua descrição foi feita em linguagem de síntese (VHDL) e em forma de módulos sintetizáveis o que permite a exploração do espaço arquitetural pela substituição das alternativas utilizadas por

23 23 outras que melhor atendam aos requisitos da aplicação alvo. A disponibilidade desse modelo tem fomentado o desenvolvimento de muitos projetos de pesquisa. A arquitetura SoCIN provê suporte somente ao serviço de comunicação do tipo melhor esforço (BE Best Effort) não oferecendo nenhuma garantia temporal às aplicações e assegurando apenas que a entrega será efetivada. Nesse tipo de serviço, todas as aplicações são tratadas de forma igual e o envio de pacotes pode sofrer atrasos arbitrários. O termo Qualidade de Serviço (QoS Quality-of-Service) refere-se à capacidade de uma rede de distinguir fluxos de dados diferentes e prover níveis diferentes de serviço para estes fluxos (FOROUZAN, 2006, p. 269). Conseqüentemente, serviços do tipo melhor esforço são inadequados para satisfazer requisitos de QoS de determinadas aplicações, como no caso, por exemplo, dos fluxos multimídia (MELLO, 2006, p 16). Uma rede utilizada em telecomunicações pode ter que tratar com diferentes tipos de fluxos, como voz, dados ou vídeo sob demanda. Tipicamente, os sinais de voz e vídeo possuem a premissa de serem entregues ao seu destino com um limite máximo de tempo, não admitindo retardos na transmissão. Por esse motivo, eles são tratados como prioritários no sistema de comutação. Falhas na entrega, seja por atraso ou por chegada de dados fora de ordem, prejudicam a qualidade dos sinais reconstruídos no destino. O problema que é tratado neste trabalho consiste em como utilizar a rede SoCIN como infraestrutura de comunicação em SoCs dedicados a equipamentos de telecomunicações conhecidos como PABX, para uma classe de aplicações que demande QoS em comunicação. 1.2 OBJETIVOS Objetivo Geral Disponibilizar uma versão da Rede SoCIN com garantias de QoS para aplicações de equipamentos PABX utilizados em telecomunicações, visando a sua utilização em uma plataforma de projeto para o desenvolvimento de produtos integrados em um único chip.

24 Objetivos Específicos São objetivos específicos deste trabalho: Caracterizar requisitos de QoS de aplicações de Telecomunicações; Caracterizar soluções arquiteturais de NoCs descritas na literatura que ofereçam garantias de QoS e analisar as limitações e as necessidades da SoCIN para atender aos requisitos de QoS das aplicações caracterizadas; Projetar uma NoC baseada na arquitetura da rede SoCIN e nas soluções identificadas para o provimento de QoS para aplicações tipo PABX de uso em Telecomunicações; Implementar a arquitetura proposta utilizando linguagem de síntese VHDL e validar seu funcionamento através de simulação funcional; e Validar a NoC em um ambiente de simulação desenvolvido em linguagem SystemC, verificando sua capacidade de atender os requisitos de QoS das aplicações. 1.3 METODOLOGIA Inicialmente, foi realizada uma revisão bibliográfica sobre temas tratados nesta proposta. Em telecomunicações foram estudados os requisitos de um sistema PABX e os mecanismos de funcionamento de seus principais componentes. Sobre NoCs, foi feito um estudo mais detalhado sobre o estado-da-arte para NoCs, especialmente àquelas que tratam de Qualidade de Serviços. A rede SoCIN foi estudada em mais detalhes e foram analisadas alternativas de QoS para um modelo de rede baseado nesta arquitetura. Com base nestes estudos, foi proposta a inclusão de três mecanismos na Rede SoCIN que atendem aos requisitos de QoS da classe de aplicação alvo deste trabalho: chaveamento de circuitos, canais virtuais e envelhecimento de pacotes. Os mecanismos foram modelados com o uso da linguagem de descrição de hardware VHDL no intuito de confirmar a viabilidade de implementação de cada um deles e analisar o impacto no consumo de recursos de silício que tais implementações provocam. Em seguida, os mecanismos foram portados para um simulador SystemC da Rede SoCIN, o qual permitiu que fossem avaliados os desempenhos da implementações, confirmando, dessa forma, o atendimento dos requisitos de QoS da aplicação alvo. Como resultados destes

25 25 trabalhos, foram elaborados dois artigos científicos, submetidos e aceitos para publicação em anais de eventos científicos. 1.4 ORGANIZAÇÃO DO DOCUMENTO O presente documento está organizado em cinco capítulos. No Capítulo 1, foi apresentada uma introdução ao trabalho, estabelecendo os objetivos gerais e específicos do mesmo. No Capítulo 2, é apresentada uma revisão da literatura. Inicialmente, são tratados conceitos de telecomunicações, conceitos sobre redes de interconexão e algumas métricas para avaliação de desempenho em redes de interconexão. Também é apresentada uma classificação para aplicações em redes e o conceito de qualidade de serviços, onde estão descritos alguns mecanismos utilizados para alcançar níveis de qualidade de serviços em redes de interconexão. No Capítulo 3, são apresentados trabalhos correlatos de redes-em-chip, descrevendo-se seis arquiteturas de NoC com diferentes métodos para provimento de qualidade de serviços. Após, é descrito o estado da arte sobre qualidade de serviços para NoCs e são discutidos os mecanismos explorados nas redes apresentadas previamente e que foram utilizadas como referências em QoS. Finalmente, são apresentas as definições de escopo adotadas para trabalho. No Capítulo, é apresentado o desenvolvimento desta dissertação. Inicialmente, é descrita a primeira contribuição deste trabalho, a implementação de mecanismo de chaveamento de circuitos na Rede SoCIN, detalhando-se os métodos aplicados e os resultados obtidos. Após, se apresenta a segunda contribuição deste trabalho, a implementação de canais virtuais na Rede SoCIN, também descrevendo os métodos aplicados e os resultados que foram obtidos. Na sequência, de forma similar, é apresentada a técnica de análise do envelhecimento de pacotes implementada na Rede SoCIN e que é a terceira contribuição deste trabalho, fazendo as devidas considerações sobre os métodos de implementação e avaliação de resultados. Finalizando o capítulo, é feita uma avaliação dos mecanismos empregados para prover QoS na rede SoCIN, discutindo o custo de silício de cada solução e suas respectivas performances. No Capítulo 4, é apresentada uma análise final sobre o trabalho realizado, relatando suas contribuições e apontando alternativas para trabalhos futuros.

26 26 2 REVISÃO DA LITERATURA Este trabalho buscou a implementação de soluções arquiteturais para provimento de garantias de QoS para a rede SoCIN quando utilizada como solução de interconexão intra-chip para aplicações de equipamentos PABX, utilizados em Telecomunicações. Mais especificamente, visouse à sua utilização em uma plataforma de projeto para o desenvolvimento de produtos integrados em um único chip. Para fornecer a fundamentação teórica necessária para este trabalho, este capítulo foi dividido em cinco seções com o objetivo de organizar os temas estudados e que são fundamentais para o desenvolvimento deste trabalho. Na Seção 2.1, são tratados conceitos de telecomunicações, focando em centrais telefônicas privadas de comutação temporal. Na Seção 2.2, são revisados os conceitos de redes de interconexão chaveada para computadores paralelos, que constituem a base teórica para as NoCs. A Seção 2.3 define métricas usadas para análise de desempenho de uma rede. A Seção 2.4 apresenta uma classificação para aplicações em redes de interconexão. Finalizando este capítulo, a Seção 2.5 apresenta o conceito de qualidade de serviços e descreve alguns mecanismos utilizados para alcançá-la em redes de interconexão. 2.1 CONCEITOS DE TELECOMUNICAÇÕES Digitalização de sinais de áudio As ondas sonoras se propagam de modo contínuo no tempo e no espaço. Para que sejam representadas no meio digital, seu comportamento analógico (contínuo) tem que ser convertido numa série de valores discretos (descontínuos). Esses valores são números (dígitos) que representam amostras instantâneas do som. Isso é realizado por meio de um dispositivo denominado de conversor analógico/digital (CAD). Para que se possa ouvir novamente o som, torna-se necessário que os sinais digitais, representados por números binários, sejam convertidos novamente em sinais analógicos por meio de um dispositivo com a função inversa à do CAD, conhecido como conversor digital/analógico (CDA). A digitalização de voz e a sua transmissão começaram a ser viáveis a partir de 1950 com a evolução dos dispositivos de estado sólido. Em 1962, A Bell Systems (USA) estabeleceu a primeira

27 27 transmissão digital para uso em comutação de voz em uma área da cidade de Chicago (USA). Na época, foi utilizado um modelo de transmissão denominado enlace 3 T1 (BELLAMY, 2000, p. 56). A Figura 2 apresenta o princípio básico da amostragem de sinal. Uma chave é ligada a um gerador do sinal x(t) que deve ser amostrado durante um intervalo de tempo τ, com freqüência f a = 1/ T a. Durante o resto do período (T a τ) os terminais de saída são mantidos em nível zero, ou seja, são curto-circuitados (JESZENSKY, 2007, p 139). Figura 2. Representação do processo de amostragem de um sinal Fonte: Jeszensky (2007, p. 139). Segundo Jeszensky (2007, p. 140), é possível recuperar a forma original do sinal x(t) apresentado na Figura 2, bastando para tanto passar o sinal amostrado x a (t) por um filtro passa - baixa. As condições necessárias para a recuperação do sinal a partir de suas amostras são: A informação deve ser limitada em freqüência, isto é, X(f) = 0 para f > f m, onde f m é a maior freqüência contida no sinal; e A freqüência de amostragem deve ser alta o suficiente para que se tenha f a 2.f m, ou seja, a freqüência do amostrador deve ser pelo menos duas vezes maior que a maior freqüência a ser amostrada. 3 Também conhecido como Link. Circuito de comunicação ou via de transmissão conectando dois pontos.

28 PCM Pulse Code Modulation Os sinais amostrados no processo de digitalização variam continuamente em função da informação, podendo assumir qualquer valor. Se as amostras forem perturbadas por ruídos, não há meios de, na recepção, ser demodulado o valor exato do que foi transmitido. Uma técnica empregada para minimizar este efeito é assumir alguns valores fixos para codificar os valores amostrados. Se a separação entre estes valores for grande, em comparação com o ruído, torna-se mais fácil para o receptor definir o valor que estava sendo transmitido. Esse sistema de codificação é conhecido como PCM Pulse Code Modulation (JESZENSKY, 2007, p 146). Uma tabela básica para codificação de voz é apresentada na Figura 3. Nela, o fabricante de dispositivos semicondutores, Zarlink, apresenta as codificação para uma linha de dispositivos onde são implementadas a técnica PCM para digitalização de sinais de voz (MT8961,63,75 e 67 ). Figura 3. Tabela de conversão utilizada no processo de digitalização de sinais de voz Fonte: Zarlink Semiconductor (2007). O primeiro passo para o processo de digitalização é amostrar periodicamente o sinal que se deseja digitalizar. Toda informação necessária para a reconstrução do sinal original está contida em cada amostra se elas forem obtidas com uma taxa constante de 8 KHz. O segundo passo é a

29 29 quantização, processo no qual é identificado em qual intervalo de amplitude de um grupo de intervalos adjacentes uma amostra se enquadra. Esses dados, devidamente amostrados e quantizados é que são então codificados e transmitidos num enlace (BELLAMY, 2000, p56). A Figura 4 ilustra o processo de codificação PCM, composto pelos três passos apresentados. Na primeira etapa um sinal x(t) é amostrado por um circuito eletrônico que utiliza como valor de freqüência de amostragem (F a ) um valor pelo menos duas vezes maior que a maior freqüência contida no sinal x(t). O sinal resultante deste processo de amostragem, x s (t) é então quantizado em um determinado número de níveis (neste exemplo em q níveis genéricos) e transferido para um codificador que atribui valores numéricos binários para o sinal quantizado gerando assim o sinal PCM. x(t) xs(t) xsq(t) PCM Amostrador Quantizador Codificador Fa 2.fm q níveis σ pulsos μ amplitudes Figura 4. Representação de um sistema PCM básico Fonte: Jeszensky (2007, p. 147). O sistema primário de 30 canais, sendo 30 canais de áudio e 2 canais de controle, é recomendado pela ITU-T1 e adotado no Brasil através de regulamentação da Agência Nacional de Telecomunicações (Anatel). O sinal de voz possui freqüência máxima de 4 khz e cada canal é filtrado em 3,4 KHz e amostrado a 8 khz (lembrando que a freqüência de amostragem deve ser pelo menos duas vezes maior que a freqüência do sinal amostrado: f a 2.f m ). Isso faz com que duas amostras de um mesmo canal sejam amostradas em um intervalo de 125 μs entre si. Esse intervalo de tempo é utilizado para a multiplexação de 32 canais, tendo cada canal 3,9 μs de duração. Em cada canal, a codificação das amostras é efetuada em 8 bits, ou seja, 256 níveis de quantização. Com isso, a taxa de transmissão é de Mbit/s, o que leva ao tempo de 488 ns para transmissão de cada bit (JESZENSKY, 2007, p 152). A Figura 5 ilustra um quadro (ou frame) PCM com 32 canais. É comum o uso do nome PCM 30 para este sistema.

30 μs: 32 canais ,9 μs: 1 canal 488 ns: 1 bit Figura 5. Estrutura básica de um quadro PCM de 32 canais Fonte: Jeszensky (2007, p. 153) TDM Time Division Multiplex A multiplexação por divisão de tempo ou TDM (Time Division Multiplex) é uma técnica para transmissão de várias mensagens por um único meio, consistindo da divisão do tempo em canais apropriados, também conhecidos por conexões no tempo (time slots). Levando-se em conta o princípio do processo de amostragem, verifica-se que durante o tempo de (T a τ) segundos de um período o sinal é nulo, conforme ilustra a Figura 2. A técnica TDM utiliza estes intervalos de tempo para a transmissão de outros sinais. A Figura 6 apresenta um sistema com várias entradas x i (t), todas com freqüências limitadas em f m, que são seqüencialmente amostradas por um comutador. O comutador completa o ciclo de revolução no tempo T a, extraindo uma amostra de cada entrada. Se o sistema estiver amostrando n entradas, então o espaçamento de amostra a amostra é T a /n, enquanto o espaçamento entre amostras provenientes de uma mesma entrada é T a. No lado receptor, um sistema análogo ao comutador, denominado distribuidor, separa as amostras e as distribui para os canais de destino, após terem sido filtradas por filtros passa - baixa (LPF). O distribuidor opera de modo sincronizado com o comutador.

31 31 Comutador Comutador x 1 (t) LPF x 2 (t). Meio de transmissão. LPF x n (t) LPF Sincronizados Figura 6. Princípio básico de um sistema TDM Fonte: Jeszensky (2007, p. 153) Central Telefônica de Comutação Temporal Em telecomunicações, central telefônica é o equipamento eletrônico que realiza a ligação (comutação) entre dois usuários (assinantes) do serviço de telefonia. Também conhecida pelo nome técnico de CPA-T (Controle por Programa Armazenado Temporal) esses equipamentos possuem um programa armazenado na sua memória principal, responsável pelas funções básicas de comutação e controle. Pode-se dizer que é um sistema de comutação digital controlado por um sistema de informação baseado em computador (JESZENSKY, p 315). Os principais componentes de uma central telefônica são apresentados na Figura 7. Em uma central é possível observar três blocos básicos: Interface de linha e assinantes; Rede de comutação digital; e Controle central. A função das interfaces de linha é fornecer a conexão externa da central telefônica com outras centrais para promover a comunicação entre estas. As interfaces de assinantes conectam a central telefônica ao usuário final permitindo o seu acesso ao sistema telefônico. A rede de comutação digital é o mecanismo que possibilita o encaminhamento de uma chamada telefônica entre assinantes. A comutação é dita temporal por adotar o princípio do TDM para a digitalização dos canais de áudio (o tempo de 125 μs é dividido para 32 canais). O controle central é responsável

32 32 por administrar todas as chamadas realizadas na central telefônica. Geralmente, as tarefas relativas ao controle são realizadas por múltiplos processadores trabalhando de forma colaborativa. Conexões com assinantes (usuários) Conexões (linhas) com outras Centrais Telefônicas Interfaces de linhas e assinantes Enlaces PCM... Barramentos de controle Rede de comutação digital Controle central Figura 7. Diagrama em blocos de uma central telefônica de comutação temporal Fonte: Jeszensky (2007, p. 315). Um PABX (Private Automatic Branch exchange) é um tipo de Central telefônica pertencente a uma empresa que não inclui como sua atividade o fornecimento de serviços telefônicos ao público em geral. Em um ambiente corporativo, normalmente, existem muito mais ramais do que linhas telefônicas, principalmente devido ao custo, havendo a necessidade de um ponto central para gerenciar e distribuir as chamadas, o que é feito pelo PABX. O equipamento torna-se também um elemento de controle dos usuários de ramais, podendo gerenciar permissões de uso individuais ou por grupo. Pode-se ainda entender um PABX como uma Central telefônica por aonde chegam as linhas da rede pública e saem os ramais para os usuários de uma rede privada. 2.2 CONCEITOS DE REDES DE INTERCONEXÃO CHAVEADAS As NoC baseiam-se em arquiteturas de redes de interconexão para computadores paralelos, as quais utilizam soluções de baixo custo de implementação em silício e de alto desempenho que uma comunicação. Segundo Zeferino (2003, p.29), uma rede de interconexão é constituída basicamente por roteadores e enlaces (ou links). Os enlaces ligam os roteadores entre si e aos nodos do computador paralelo, enquanto que os roteadores estabelecem o caminho necessário à transferência de dados pela rede. Esses dados são transferidos sob a forma de mensagens, as quais podem ser divididas em unidades menores chamadas pacotes.

33 33 Uma rede de interconexão é caracterizada pela sua topologia e por um conjunto de mecanismos que definem a forma como ocorre a transferência de mensagens pela rede. Por isso, esta seção apresenta uma revisão básica dos conceitos que envolvem este tipo de rede. Na Subseção 2.2.1, são apresentadas as classificações de redes de interconexão, enquanto que as principais topologias que essas redes utilizam são descritas na Subseção Na Subseção 2.2.3, são apresentadas as definições de roteadores, tratando de seus mecanismos de controle de fluxo, técnicas de arbitragem e modos de chaveamento Classificação de Redes de Interconexão A arquitetura de uma rede de comunicação especifica a sua topologia e a sua organização física. Os elementos de uma arquitetura de rede são as unidades de processamento e armazenamento (memória), os quais são denominados nós ou nodos, os roteadores e os enlaces físicos. (BENINI; DE MICHELI, 2006, p. 23). Considerando as definições apresentadas por Benini e De Micheli (2006) e por Zeferino (2003), as arquiteturas de redes podem ser classificadas em quatro grupos de acordo com sua topologia: Redes compartilhadas (barramentos): neste tipo de rede, o meio de transmissão (enlace) é compartilhado por todos os nós. Apenas dispositivos iniciadores (ou mestres) podem acessar os recursos da rede a qualquer momento e conectar um ou mais dispositivos alvos (ou escravos). Cada dispositivo conectado à rede possui suas interfaces de rede, com elementos de requisição, drivers e circuitos de recepção. Essas redes são geralmente do tipo passivo e não geram mensagens de controle (BENINI; DE MICHELI, 2006, p. 25); Redes diretas: nas redes diretas, cada roteador está associado a um processador e esse par pode ser visto como um elemento único dentro do computador (o qual pode ser referenciado simplesmente pelo termo nodo ). Cada nodo possui ligações ponto-aponto diretas para um determinado número de nodos vizinhos. Uma mensagem trocada entre dois nodos não-vizinhos deve passar por um ou mais nodos intermediários. Se uma mensagem recebida por um nodo é destinada a outro nodo dentro da rede, o roteador do primeiro deve repassá-la para algum dos seus nodos vizinhos para que a mensagem avance em direção ao seu destinatário. Apenas os roteadores são envolvidos nessa

34 34 comunicação, sem interferência aos processadores dos nodos intermediários. Um algoritmo de roteamento é utilizado pelo roteador a fim de decidir para qual nodo vizinho à mensagem deve ser repassada (ZEFERINO, 2003, p. 33); Redes indiretas: nas redes indiretas, os roteadores não são acoplados a processadores, formando um elemento único, como nas redes diretas. Os nodos (neste caso, processadores, módulos de memória ou subsistemas completos) possuem uma interface para uma rede de roteadores. Cada roteador possui um conjunto de portas bidirecionais para ligações com outros roteadores e/ou com os nodos da máquina. Somente alguns roteadores possuem conexões para os nodos e apenas estes últimos podem servir de fonte ou destinatário de uma mensagem. A topologia da rede é definida pela estrutura de interconexão desses roteadores (ZEFERINO, 2003, p. 34); Redes híbridas: são redes que combinam os mecanismos e estruturas das redes compartilhadas, diretas e indiretas (BENINI; DE MICHELI, 2006, p.32). As arquiteturas de comunicação que vêm sendo propostas para os futuros sistemas integrados em único chip baseiam-se, sobretudo, nas soluções arquiteturais adotadas nas redes de interconexão para computadores paralelos, discutidas por Duato, Yalamanchili e Ni (2003) e de Dally e Towles (2004). Isso porque essas redes visam, sobretudo, prover uma infra-estrutura que ofereça desempenho compatível com a demanda em comunicação exigida pelas aplicações que executam nesses computadores. Logo, o entendimento das arquiteturas de comunicação para sistemas integrados passa pelo estudo dos conceitos base de redes de interconexão Topologia Segundo Dally e Towles (2004, p. 13), as redes de interconexão são compostas por um arranjo de nodos e canais compartilhados e a topologia é a forma como estão arranjados estes nodos e canais. As topologias podem ser regulares, quando é possível definir um padrão deste arranjo com base na estrutura dos elementos de roteamento. Caso este padrão não possa ser identificado, a topologia é denominada irregular. A Figura 8 ilustra alguns tipos de topologias regulares e a Figura 9 mostra um exemplo de topologia irregular. Estas figuras apresentam as redes como grafos em que os elementos de roteamento são representados por vértices e os enlaces são representados por arestas.

35 35 No do = CPU + roteador (a) (b) (c) Figura 8. Topologias regulares: (a) malha 2-D; (b) toróide 2-D; (c) hipercubo 3-D Fonte: Zeferino (2003, p. 33). Figura 9. Exemplo de uma rede irregular Fonte: Bjerregaard e Mahadevan (2006, p. 14) Roteadores Na definição de Duato, Yamanchili e Ni (2003, p.13), um roteador é um dispositivo que manipula mensagens de comunicação entre nodos de uma rede. Basicamente, ele é o elemento responsável por escolher um caminho (de canais e roteadores) pelo qual uma mensagem irá atravessar a rede. A Figura 10 ilustra um modelo genérico de roteador. Os principais componentes destacados neste modelo são descritos a seguir: Buffers: são blocos de memória utilizados para armazenamento de mensagens em trânsito pelo roteador. Normalmente são do tipo FIFO 4 e estão associados a cada canal físico de entrada e a cada canal físico de saída. Em alguns modelos alternativos de 4 First-In-First-Out: Peterson (2007, p. 468) define a FIFO como uma fila de armazenamento onde o primeiro elemento armazenado nesta fila será o primeiro elemento a ser retirado da mesma.

36 36 roteadores, os buffers podem estar associados apenas aos canais de entrada ou apenas aos canais de saída; Switch: componente responsável por conectar os buffers dos canais de entrada aos buffers dos canais de saída do roteador. O intervalo de tempo entre a entrada e a saída de uma informação do roteador é denominado de atraso de roteamento ou latência do roteador; Unidade de roteamento e arbitragem: este componente implementa um algoritmo de roteamento que seleciona o canal de saída para a mensagem que esta sendo recebida, No caso de várias mensagens estarem disputando um mesmo canal de saída, esta unidade utiliza um mecanismo de arbitragem para definir a ordem de saída das mensagens pelo canal de saída; Controladores de interface (IC Interface Controller): responsável pelo controle do fluxo de mensagens através de canais físicos entre roteadores adjacentes. A Subseção apresenta alguns mecanismos utilizados para este fim; Interface de processador: este componente implementa uma interface física para um processador ao invés de um roteador adjacente. Consiste de um ou mais canais de injeção de dados vindos do processador e um ou mais canais de ejeção de dados para o processador. Os canais de ejeção são conhecidos também por canais de entrega ou canais de consumo.

37 37 Canal de Injeção Canal de Ejeção IC IC.... IC IC Canais de Entrada IC IC SWITCH IC IC Canais de Saída IC ROTEAMENTO E ARBITRAGEM IC Figura 10. Modelo genérico de roteador Fonte: Adaptado de Duato, Yalamanchili e Ni (2003, p. 45) Técnicas de controle de fluxo Tanenbaum (2003, p. 422) define um fluxo como sendo uma seqüência de pacotes enviados desde uma origem até um destino. Para Dally e Towles (2004, p ) o controle de fluxo determina como os recursos de Rede são alocados para os pacotes que estão percorrendo a Rede. Ele afirma também que os mecanismos mais utilizados para realizar o controle de fluxo são: baseado em créditos; on/off; e ack/nack. No controle de fluxo baseado em créditos (credit based), quando o roteador deseja enviar um dado para o roteador adjacente ao seu canal, ele verifica se o canal selecionado para a transmissão dos dados possui créditos. Isso significa que é feita a verificação se o buffer do rotador destino associado ao canal possui espaço disponível para armazenamento de novos dados dado. Enquanto existir espaço disponível nesse buffer, os dados são armazenados e os créditos são decrementados na origem. Quando o número de créditos alcançar zero, nenhum dado adicional

38 38 pode ser enviado para o destino. Os créditos são incrementados quando um dado é consumido pelo roteador destino, ou seja, o roteador re-transmite um dado a outro elemento da rede disponibilizando espaço no seu buffer. No controle de fluxo on/off, o estado do roteador origem é um único bit de controle que indica se o roteador origem pode transmitir (on) ou não (off). Um sinal é transmitido ao roteador origem somente quando é necessário trocar este estado (de on para off ou vice-versa). Um sinal off é enviado quando o bit de controle está em on e o número de espaços ocupados no buffer de entrada do roteador adjacente é maior que o limite máximo estipulado. Se o bit de controle é off e o número de espaços ocupados no buffer de entrada do roteador adjacente está abaixo do limite mínimo, um sinal on é enviado. No controle de fluxo ack/nack, também chamado de handshake, não existe controle da disponibilidade de espaço no buffer de entrada. O roteador origem transmite dados no momento em que estes se tornam disponíveis. Se o roteador destino tem espaço disponível no seu buffer de entrada, o dado é aceito e o roteador destino envia um sinal de confirmação (ack) ao roteador origem. Se não há espaço disponível quando o dado é transmitido, o roteador destino descarta o dado e envia o sinal de confirmação negado (nack). O roteador origem armazena o dado até receber um ack. Se um nack é recebido, o dado é retransmitido. Em algumas implementações do handhake, não existe o sinal de nack. A sinalização da indisponibilidade do destino para receber um novo dado é feita retardando o envio do sinal de ack Técnicas de arbitragem Sempre que um recurso, como um buffer ou um canal, é compartilhado por diversos usuários, um árbitro se faz necessário para determinar qual dos usuários irá alocar o recurso em um determinado momento (DALLY; TOWLES, 2004, p. 350). A Figura 11 ilustra um árbitro genérico. Neste, as entradas r 0,..., r n (do inglês request r) são linhas de requisição e as saídas g 0,..., g n (do inglês grant g) são linhas de concessão. A operação de um árbitro consiste basicamente de três etapas:

39 39 1. Receber todas as requisições para alocação de um determinado recurso; 2. Executar um algoritmo de arbitragem determina qual requisição será atendida; e 3. Habilitar a linha de concessão que indicará liberação do recurso. r 0 g 0 r 1 g r n g n Figura 11. Modelo genérico de árbitro Fonte: Dally e Towles (2004, p. 350). De acordo com Dally e Towles (2004, p. 351), o principal elemento em uma arbitragem é a igualdade. Intuitivamente, um árbitro que age com igualdade permite o mesmo direito de acesso a um recurso para as diferentes requisições. No entanto o significado de igualdade pode variar de aplicação para aplicação. Podem ser definidos três níveis diferentes de igualdade: Fraca: na qual toda requisição será eventualmente atendida; Forte: na qual as requisições serão atendidas freqüentemente; e FIFO: as requisições serão atendidas de acordo com a ordem de chegada. As subseções que seguem apresentam algumas técnicas de arbitragem. Árbitro fixo Neste tipo de arbitragem, é estabelecida uma ordem de prioridade para as diferentes requisições que não é alterada ao longo do tempo. Nessa técnica, existe a possibilidade de algumas requisições serem postergadas indefinidamente. Por exemplo, se fosse adotada a seguinte ordem de prioridade para quatro requisições genéricas r 0, r 1, r 2 e r 3 sendo que r 0 tem a maior prioridade que r 1, r 1 tem prioridade maior que r 2, e assim sucessivamente. Então, se a requisição r 0 fosse constantemente ativada, as outras requisições jamais seriam atendidas.

40 40 Árbitro variável Nesta técnica de arbitragem, a ordem de prioridade das diferentes requisições é alterada de modo aleatório de tempos em tempos. Esta técnica minimiza os problemas apresentados pelo árbitro fixo. Árbitro oblivious Nesta técnica, o árbitro desloca a prioridade de modo circular, de uma posição, de tempos em tempos. Por exemplo, se três requisições possuem a seguinte ordem de prioridade (da maior para a menor) r 0, r 1 e r 2 em um determinado momento. Então, na próxima troca de prioridade tem-se a ordem de prioridade (da maior para a menor) como sendo r 2, r 0 e r 1, e assim sucessivamente. Árbitro round-robin Utiliza o princípio de que uma requisição que acabou de ser atendida terá a menor prioridade no próximo processo de arbitragem. Por exemplo, se três requisições possuem a seguinte ordem de prioridade (da maior para a menor) r 0, r 1 e r 2 em um determinado momento, então, na próxima troca de prioridade tem-se a ordem de prioridade (da maior para a menor) como sendo r 1, r 2 e r 0, e assim sucessivamente. Árbitro de fila Nesta técnica, toda requisição que chega é colocada em uma fila FIFO. A cada ciclo de arbitragem, o árbitro atende as requisições de acordo com a ordem de chegada na FIFO (a primeira requisição a chegar é a primeira requisição a ser atendida) Técnicas de chaveamento Numa rede de interconexão, a comunicação entre os nodos ocorre pela troca de mensagens. Em algumas redes, as mensagens são transferidas pelo chaveamento (ou comutação) de circuitos, enquanto em outras pelo chaveamento de pacotes. Essas duas técnicas básicas de chaveamento serão apresentadas nas subseções que seguem. Chaveamento de circuitos No chaveamento de circuitos, um caminho físico da origem da mensagem até seu destino é reservado com prioridade para a transmissão de dados. Isto é realizado colocando-se campos

41 41 específicos no cabeçalho do pacote. Esses campos contêm o endereço de destino e algumas informações adicionais de controle. O pacote contendo uma solicitação de reserva de recursos avança pela rede registrando as ligações físicas que foram realizadas para o seu encaminhamento até seu destino final. Quando o pacote chega ao seu destino final, o caminho completo está definido para a reserva de circuitos e um pacote de aceitação é enviado para a origem. Ao receber o indicativo de que o caminho está reservado, a origem pode transmitir dados pelo caminho estabelecido. Após a conclusão da transmissão, a origem deve enviar um pacote de liberação de reserva para permitir que os recursos alocados possam ser utilizados por outros nodos da rede (DUATO; YALAMANCHILI; NI, 2003, p. 50). A Figura 12 apresenta o diagrama espaço-tempo do exemplo de um chaveamento de circuito. Nesta, a partir do circuito C é solicitada uma reserva de recursos (pacote REQ) até o circuito A. O circuito A aceita a reserva enviando um pacote de aceitação (ACK). O tempo que se dá entre o pedido de reserva feito pelo circuito C até a chegada do pacote de aceitação (ACK) neste, é denominado de tempo de criação (t setup ). Até esse momento, os recursos da rede são ocupados em frações de tempo, ficando ociosos durante o resto do tempo. Com o caminho reservado, todo o tempo dos recursos estará dedicado para a transmissão dos dados do circuito C para o circuito A (t dado ). Circuito C REQ ACK B A t ocioso t setup t dado Tempo de ocupação Figura 12. Diagrama espaço-tempo de um exemplo de chaveamento de circuito Fonte: Duato, Yalamanchili e Ni (2003, p. 50).

42 42 Chaveamento por pacotes No chaveamento por pacotes, uma mensagem completa é transmitida após o circuito ter sido requisitado. Alternativamente, a mensagem pode ser fracionada e transmitida em pacotes menores. Os primeiros bytes de cada pacote contêm informações de controle e de roteamento e é denominado de cabeçalho de pacote (do inglês packet header). Cada pacote é individualmente encaminhado da origem ao seu destino pacotes (DUATO; YALAMANCHILI; NI, 2003, p. 52). A Figura 13 apresenta o diagrama espaço-tempo do exemplo de um chaveamento por pacotes. Nessa figura, uma mensagem foi fracionada em três pacotes menores e transmitida do circuito C para o circuito A. É importante observar que o tempo total para a transmissão da mensagem inclui o tempo em que os recursos não estão sendo utilizados. Na técnica de chaveamento de circuitos, o tempo total para a transmissão de uma mensagem é menor devido à plena utilização do tempo dos recursos obtida após a confirmação da reserva de circuitos. Circuito Cabeçalho C Dados B t ocioso A t pacote Tempo de ocupação Figura 13. Diagrama espaço-tempo de um exemplo de chaveamento por pacotes Fonte: Duato, Yalamanchili e Ni (2003, p. 52). Em redes de interconexão, existem três tipos básicos de chaveamento por pacotes (DUATO; YALAMANCHILI; NI, 2003, p ): SAF (Store-and-Forward): é possível dividir as mensagens em pacotes de comprimento fixo, cada um incluindo um cabeçalho com as informações necessárias para o seu roteamento pela rede. Os pacotes são enviados um a um e cada pacote reserva apenas os recursos necessários para avançar de nodo em nodo. Em cada canal de entrada dos roteadores, deve ser incluído um buffer (tipicamente uma fila) com capacidade para

43 43 armazenar um pacote inteiro. Quando um roteador recebe um pacote, este é armazenado no buffer do canal de entrada pelo qual chegou ao roteador. Em seguida, um circuito de roteamento identifica o destinatário do pacote e requisita um canal de saída. Essa requisição é escalonada por um árbitro que determina quando cada canal de entrada será conectado ao canal de saída requisitado. Quando a conexão é realizada, os pacotes armazenados nos buffers de entrada são encaminhados para os roteadores adjacentes ou para o nodo de processamento local, caso este seja o destinatário; VCT (Virtual Cut-Through): visa reduzir a latência na comunicação quando um pacote chega a um roteador e o canal desejado já se encontra disponível. Na técnica SAF, quando isso ocorre, o pacote deve ser armazenado inteiramente para então ser retransmitido pelo canal de saída desejado, mesmo que este esteja ocioso. No chaveamento VCT, quando o cabeçalho do pacote contendo as informações de roteamento chega a um roteador e o canal de saída desejado encontra-se disponível, o restante do pacote (carga útil e terminador) desvia o buffer, reduzindo a latência da comunicação. Um pacote só é armazenado no buffer se o canal desejado estiver alocado a outro pacote. Para isso, o roteador deve ter espaço em buffer suficiente para armazenar completamente o pacote bloqueado. No pior caso, quando a rede está muito carregada, o VCT se comporta como o chaveamento SAF; Wormhole: Um pacote é dividido em flits que avançam pela rede em um modo pipeline 5. Um flit (Flow Control Unit) é a menor unidade de dados sobre a qual é realizado o controle de fluxo e pode ser pequeno e ter tantos bits quanto um phit (Physical Unit largura do canal físico de dados), ou ser tão grande quanto um pacote. Em geral, em redes de interconexão, um flit tem o tamanho de um a quatro phits para conter, no mínimo, a informação necessária ao roteamento do pacote, ou seja, o cabeçalho. A vantagem desta técnica em relação às anteriores está no fato de o Wormhole utilizar uma quantidade menor de buffers e proporcionar uma menor latência Roteamento 5 É uma técnica de hardware que permite que a execução de tarefas seja realizadas em ciclos subseqüentes de relógio. Estas instruções são colocadas em uma fila onde aguardam o momento de serem executadas.

44 44 O desempenho da comunicação na rede de interconexão depende fortemente do algoritmo de roteamento utilizado (ZEFERINO, 2003, p.37). Em geral, o algoritmo visa atender a alguns objetivos específicos, os quais têm conseqüência direta em algumas propriedades da rede de interconexão, como (DUATO; YALAMANCHILI; NI, 2003, p. 115): Conectividade: capacidade de encaminhar pacotes de qualquer nodo fonte para qualquer nodo destinatário; Liberdade de deadlock e livelock: capacidade de garantir que nenhum pacote ficará bloqueado ou circulando pela rede sem atingir o seu destinatário; Adaptabilidade: capacidade de encaminhar pacotes através de caminhos alternativos quando ocorrer congestionamento ou falha em algum componente do caminho em uso; e Tolerância a falhas: capacidade de encaminhar pacotes na presença de falhas em componentes. A tolerância a falhas pode ser obtida sem adaptabilidade, efetuando o encaminhamento de um pacote em duas ou mais fases Deadlock, Livelock e Starvation Em uma rede de interconexão, as mensagens geralmente atravessam alguns roteadores antes de atingir o destinatário. No entanto, é possível que algumas mensagens não alcancem seus destinos, mesmo que as conexões do caminho sejam consideradas livres de falha (DUATO; YALAMANCHILI; NI, 2003, p.83). Existem três situações que podem impedir que um pacote chegue ao seu destinatário: deadlock, livelock e starvation, as quais são descritas a seguir. Deadlock: pode ser definido como uma dependência cíclica entre pacotes requisitando acesso a um conjunto de recursos (canais e/ou buffers), de forma que nenhum consiga obter progresso algum, independentemente da seqüência de eventos que ocorra. Todos os pacotes envolvidos em um deadlock ficam permanentemente bloqueados; Livelock: ocorre quando pacotes circulam em torno do seu nó de destino, nunca o alcançando, pois o canal requisitado para fazê-lo está sendo ocupado por outros pacotes;

45 45 Starvation: é quando um pacote pode ficar permanentemente parado em um tráfego intenso na rede porque os recursos requisitados por este estão sempre sendo obtidos por outros pacotes que também estão solicitando os mesmos recursos. 2.3 MÉTRICAS PARA AVALIAÇÃO DE DESEMPENHO DE REDES Para Peterson (2007, p. 40) espera-se que uma rede tenha um bom desempenho, assim como são esperados bons desempenhos para os elementos que estão conectados a esta. Segundo ele, o desempenho de uma rede pode ser medido através de dois modos fundamentais: pela avaliação da vazão (throughput) e pela avaliação da latência (também chamada de atraso delay). Nas subseções seguintes serão apresentadas as definições de vazão e de latência. Também será apresentada a definição para jitter, que é um conceito relacionado à latência Vazão A vazão é a taxa na em que pacotes são entregues por uma rede utilizando como referência um tráfego padrão. Normalmente é medido contando-se o número de pacotes que chegam ao seu destino sobre um determinado intervalo de tempo para cada fluxo (para um par origem-destino específicos). A vazão é algumas vezes chamada de tráfego aceito e comparada com o tráfego oferecido à rede como forma de avaliação de desempenho desta (DALLY; TOWLES, 2004, p. 452). A Figura 14 mostra um exemplo de gráfico no qual a vazão é comparada com o tráfego oferecido para uma rede qualquer. Até o nível de saturação, a vazão é igual à demanda e a curva é uma linha reta ascendente. Se for aumentado o tráfego oferecido, a rede pode atingir seu ponto de saturação, que é o maior nível de demanda no qual a vazão é igual à demanda. Se a demanda for aumentada a partir deste ponto, a rede não estará apta a entregar os pacotes com a mesma taxa em que são gerados, o que pode ser observado com a linha reta a partir do tráfego oferecido de 50% de sua capacidade de geração.

46 46 0,6 VAZÃO (fração da capacidade) 0,5 0,4 0,3 0,2 0,1 0,0 0,0 0,2 0,4 0,6 0,8 1,0 TRÁFEGO OFERECIDO (fração da capacidade) Figura 14. Gráfico Vazão Tráfego oferecido para uma rede genérica Fonte: Dally e Towles (2004, p. 452) Latência A latência é o tempo necessário para que um pacote atravesse a rede de uma origem até um destino. De modo similar ao que é feito na análise por vazão, a latência é comparada com o tráfego oferecido à rede como forma de avaliação de desempenho desta (DALLY; TOWLES, 2004, p. 455). A Figura 15 mostra um exemplo de gráfico no qual a latência é comparada com o tráfego oferecido para uma rede qualquer. Com o aumento de tráfego, aumentam as disputas por recursos da rede, fazendo com que os pacotes tenham de esperar mais tempo para serem entregues. No exemplo, até o ponto de 80% do tráfego oferecido este aumento é pouco significativo. Qualquer aumento adicional ao tráfego oferecido passará a exigir um tempo substancialmente maior para que os pacotes sejam entregues aos seus destinos.

47 47 0,6 0,5 LATÊNCIA MÉDIA (em ciclos) 0,4 0,3 0,2 0,1 0,0 0,0 0,2 0,4 0,6 0,8 1,0 TRÁFEGO OFERECIDO (fração da capacidade) Figura 15. Gráfico Latência Tráfego oferecido para uma rede genérica Fonte: Dally e Towles (2004, p. 455) Jitter O jitter (ou flutuação) é a variação no atraso dos pacotes pertencentes a um mesmo fluxo. As aplicações de áudio e vídeo em tempo real não toleram altos valores de jitter. Por exemplo, um sistema de broadcast de vídeo em tempo real é ineficiente se houver 2 ms de atraso para o primeiro e o segundo pacotes e um atraso de 60 ms para o terceiro e quarto pacotes. Por outro lado, não importa se os pacotes transportando informação em um arquivo têm atrasos diferentes. A camada de transporte do destino espera até que todos os pacotes cheguem antes de entregá-los à camada de aplicação (FOROUZAN, 2006, p. 569). 2.4 CLASSIFICAÇÃO DE APLICAÇÕES EM REDES As aplicações para redes podem ser divididas em dois tipos: aplicações de tempo real (ou não elásticas) e aplicações de tempo não real (ou elásticas) (PETERSON, 2007, p.500) Aplicações de Tempo Real (Não Elásticas) Aplicações de tempo real são aquelas que têm uma relação temporal rígida entre a origem e o destino. Uma informação recebida no destino depois de um limite de tempo determinado é considerada inútil e é descartada. Esse limite de tempo deve ser conhecido tanto pela origem quanto pelo destino (PETERSON, 2007, p.500) e é usualmente referenciado pelo termo deadline.

48 48 Tome-se como exemplo a digitalização de canais de áudio através da técnica PCM, apresentada na Seção Para transmitir estes sinais por uma rede, as amostras digitalizadas são inseridas em pacotes, os quais são transmitidos através da rede e recebidos em um terminal. No destino, os dados devem ser reproduzidos em uma taxa apropriada, como, por exemplo, a uma taxa semelhante à da digitalização 125μs. Pode-se dizer então que, no caso do áudio, cada amostra tem um tempo de reprodução que é 125μs após a amostra precedente. Se dados chegam depois do momento apropriado de reprodução, ou porque este foi atrasado na rede ou porque este foi descartado e subseqüentemente retransmitido, ele é considerado inútil. A completa inutilidade de dados com atraso é que caracteriza aplicações de tempo real (PETERSON, 2007, p.501). Para que se possa garantir que uma aplicação de áudio possa funcionar adequadamente é importante assegurar que todas as amostras levem exatamente a mesma quantidade de tempo para atravessar a rede. Deste modo, se as amostras são injetadas a uma determinada taxa, então estas irão ser entregues no receptor na mesma taxa prontas para serem reproduzidas. É difícil garantir a entrega dos dados a uma mesma taxa através de uma rede chaveada. Os pacotes são armazenados em buffers nos roteadores e a ocupação desses buffers varia com o tempo, o que significa que a latência pode variar com o tempo e ser potencialmente diferente para cada pacote no fluxo de áudio. Um mecanismo utilizado para resolver este problema é armazenar grandes quantidades de dados no receptor final em um buffer de reprodução (play-back) e reproduzi-los de uma única vez com a taxa adequada. A Figura 16 apresenta um diagrama que mostra o comportamento dos pacotes ao trafegarem na rede e como o buffer de reprodução funciona. Quando um pacote chega ao destino, este é armazenado no buffer até seu tempo de reprodução chegar. Quanto menor a latência do pacote na rede, maior será o tempo de espera no buffer. Quanto maior a latência do pacote na rede, menor será o tempo de espera no buffer. Deste modo, uma quantidade de tempo de armazenamento constante é adicionado ao tempo de reprodução de todos os pacotes, como margem de segurança para garantir a qualidade da reprodução. Essa quantidade adicional é denominada de ponto de reprodução (PETERSON, 2007 p.501).

49 49 Chegada dos pacotes Geração dos pacotes Número de seqüência Latência na rede Tempo de chegada Latência no buffer Tempo Figura 16. Relação entre o tempo de chegada dos pacotes e o tempo de reprodução Fonte: Peterson (2007, p. 502). Segundo Peterson (2007, p. 503) as aplicações de tempo real podem ser classificadas como tolerantes ou intolerantes dependendo se podem ou não desrespeitar, dentro de certos limites, os requisitos de QoS. As aplicações intolerantes são aquelas que possuem requisitos rígidos de QoS, onde uma vez violados tais requisitos, a aplicação produz sinais com qualidade inaceitável. Com as aplicações tolerantes o critério é menos rígido, admitindo uma determinada perda de cada parâmetro de QoS, sem por isso inutilizar a aplicação. Para Peterson (2007, p. 504) as aplicações tolerantes podem ser divididas em adaptativas e não adaptativas. Uma aplicação adaptativa é capaz de variar o ponto de reprodução de acordo com a latência da rede. Se pacotes estão quase sempre chegando ao destino num limite de tempo após serem transmitidos pela origem, então o ponto de reprodução pode ser definido de acordo com este limite. As aplicações adaptativas podem ser ajustadas de acordo com a latência ou de acordo com a taxa de reprodução. No caso de utilizar um ajuste por taxa, as aplicações podem manter um compromisso entre a taxa de transmissão de bits e a qualidade. Por exemplo, os parâmetros de uma aplicação podem ser definidos de acordo com uma determinada largura de banda da rede. Se mais largura de banda torna-se disponível, a aplicação pode mudar seus parâmetros para aumentar a qualidade.

50 Aplicações de Tempo Não Real (Elásticas) Diferentemente das aplicações de tempo real, as aplicações de tempo não real não exigem taxas rígidas para alcançar a qualidade de serviço necessária. Para estas aplicações, a recepção correta dos dados é mais importante do que a sua transferência em uma taxa constante, embora possam se beneficiar de latências menores. As aplicações de tempo não real podem ser classificadas como assíncronas e interativas. Aplicações assíncronas são relativamente insensíveis ao tempo. Um exemplo de uma aplicação assíncrona é o correio eletrônico ( ). Quando uma mensagem de correio eletrônico é enviada, não há a obrigatoriedade de confirmação de recebimento por parte do destino (PETERSON, 2007, p. 500). Aplicações interativas assumem alguma relação temporal entre a origem e o destino enquanto um fluxo está sendo transmitido. Entretanto, a relação temporal não é tão rígida quanto em aplicações de tempo real. Aplicações interativas exigem que seus dados sejam entregues ao destino tão rápido quanto possível. Aplicações interativas podem ser divididas em dois tipos de interatividade: rajada e volume. Aplicações interativas do tipo rajada são aquelas que interagem rápida e freqüentemente com um usuário, onde a latência fim-a-fim da rede é a latência predominante. Devido à sensibilidade à latência da rede, esse tipo de aplicação deve ser identificada para que a arquitetura e o projeto da rede satisfaçam seus requisitos de latência. Um exemplo de aplicação interativa do tipo rajada é o aplicativo TELNET. Aplicações interativas do tipo volume são aquelas em que o processamento realizado pela aplicação possui a latência predominante. Os requisitos de latência da rede para essas aplicações tornam-se menos significativos para esse tipo de aplicação. Um exemplo de uma aplicação interativa do tipo volume é a transferência de arquivos via FTP File Transfer Protocol (PETERSON, 2007, p ). A Figura 17 apresenta um resumo com as classificações das aplicações elásticas e nãoelásticas.

51 51 Aplicações Elástica Não elástica Interativa Assíncrona Intolerante Tolerante Rajada Volume Não adaptativa Adaptativa Latência Vazão Figura 17. Taxonomia das Aplicações Fonte: Peterson (2007, p. 504). 2.5 QUALIDADE DE SERVIÇOS Em uma rede orientada a conexões, todos os pacotes que pertencem a um fluxo seguem uma mesma rota. Em uma rede sem conexões, estes podem seguir rotas diferentes. As necessidades de cada fluxo podem ser caracterizadas por quatro parâmetros principais: confiabilidade, latência, jitter (flutuação) e vazão. Juntos estes termos definem a qualidade de serviço (QoS Quality of Service) que o fluxo exige (TANENBAUM, 2003, p. 422). Segundo Forouzan (2006, p. 569) e Tanenbaum (2003, p. 424) as técnicas mais utilizadas para melhorar a qualidade de serviços em redes são: Super-dimensionamento; Política de filas; Estabelecimento de modelos de tráfego; Controle e admissão; e Reserva de recursos. As subseções seguintes apresentarão os mecanismos utilizados em cada técnica.

52 Super-dimensionamento Uma solução para garantir QoS é fornecer aos roteadores largura de banda e tamanho de buffers para que os pacotes possam ser transmitidos com facilidade. Nesse caso, entende-se que há capacidade disponível na rede de modo que a demanda sempre pode ser atendida. Essa é uma solução simples, mas que tem sua principal limitação no seu custo de implantação, que pode inviabilizar a solução em alguns casos (TANENBAUM, 2003, p.424) Política de filas Em uma rede, pacotes de diferentes fluxos chegam ao roteador para serem processados. Cada roteador deve executar alguns mecanismos de filas para ordenar a forma como os pacotes são armazenados enquanto esperam para serem transmitidos. Esses modos de armazenamento podem afetar a latência de cada pacote, determinando quanto tempo cada um ficará aguardando para ser transmitido (PETERSON, 2007, p. 467). As subseções a seguir apresentam duas técnicas de filas que foram desenvolvidas para melhorar a QoS: a fila FIFO (First-In, First-Out), a fila de prioridade e a WFO (Weighted Fair Queuing) Fila FIFO Na fila FIFO, os pacotes alocados num buffer (fila) esperam até que o roteador possa realmente processá-los. Os pacotes são armazenados seqüencialmente e o primeiro pacote a entrar é o primeiro a sair. Se a taxa de chegada dos pacotes for maior que a taxa de processamento dos mesmos, a fila será preenchida e os novos pacotes serão descartados. A Figura 18 ilustra a visão conceitual da fila FIFO.

53 53 Figura 18. Exemplo de Fila FIFO Fonte: Forouzan (2006) Fila de Prioridade Numa fila de prioridade, os pacotes recebem primeiramente uma classe de prioridade. Cada classe de prioridade possui uma fila própria do tipo FIFO. Os pacotes na fila de prioridade mais elevada são processados primeiro. Os pacotes na fila de prioridade mais baixa são processados por último. O sistema não pára de fazer o uso de uma fila até que esta esteja vazia. A Figura 19 mostra a situação para o caso onde existem dois níveis de prioridade Figura 19. Exemplo de Fila de Prioridades Fonte: Forouzan (2006) Weighted Fair Queuing Nesta técnica, os pacotes ainda são atribuídos a diferentes classes e admitidos em filas diferentes. Porém, as filas recebem pesos baseados na prioridade de cada uma delas; uma prioridade alta significa um peso maior. O sistema processa os pacotes em cada fila no modo de petição, isto é, com a quantidade de pacotes selecionados em cada fila baseado no peso correspondente. Por exemplo, se os pesos são 3, 2 e 1, três pacotes são processados na primeira fila, dois na segunda fila

54 54 e um na terceira fila. Se o sistema não impuser prioridade sobre as classes, todos os pesos são iguais. A Figura 20 ilustra a técnica para três classes. Figura 20. Exemplo de Weighted Fair Queuing (WFQ) Fonte: Forouzan (2006) Modelo de Tráfego A técnica de estabelecimento de um modelo do tráfego é um mecanismo para controlar a quantidade e a taxa do tráfego de dados enviados para uma rede. Duas técnicas comuns conformam o tráfego: Leaky Bucket (balde furado) e Token Bucket (balde de fichas) (FOROUZAN, 2006, p. 570) Leaky bucket Uma analogia para este método é considerar um balde com um pequeno furo no fundo. O vazamento de água do balde acontece a uma taxa constante enquanto houver água no balde. A vazão não depende da taxa com que a água é colocada no balde, exceto quando o balde estiver vazio. A taxa de entrada de água pode variar, dentro de certo limite, mas a taxa de saída permanece constante. Similarmente, numa rede, uma técnica denominada Leaky Bucket pode suavizar um

55 55 tráfego em rajadas. Parte da rajada é armazenada no buffer enquanto a outra parte é transmitida a uma taxa constante (FOROUZAN, 2006, p. 571). A Figura 21 ilustra a técnica Leaky Bucket. Figura 21. Exemplo de conformação de tráfego Leaky Bucket. Fonte: Forouzan (2006) Token Bucket O método de Leaky Bucket impõe um padrão de saída rígido à taxa média, independente da irregularidade do tráfego. Já o método Token Bucket surgiu como uma alternativa onde é permitido que a saída aumente um pouco sua velocidade quando chegarem rajadas maiores de dados. Neste método, fichas são inseridas no balde a uma taxa de dados T e a profundidade do balde é definida pelo tamanho da rajada R. Periodicamente o sistema envia uma quantidade de fichas ao balde (buffer). Se houver fichas suficientes no balde quando um fluxo chega ao roteador, então esse fluxo é transmitido na mesma taxa em que foi recebido e a quantidade correspondente de fichas é removida. Se não houver fichas suficientes, então o fluxo não pode ser transmitido na taxa em que está sendo recebido, podendo ser transmitido em taxas menores ou descartado. A Figura 22 ilustra o mecanismo de Token Bucket.

56 56 Figura 22. Exemplo de conformação de tráfego token bucket. Fonte: Forouzan (2006) Controle de admissão O controle de admissão trata dos mecanismos usados por um roteador para aceitar ou não um fluxo baseado em parâmetros predefinidos denominados especificações do fluxo. Antes que o roteador aceite um fluxo de dados para processamento, geralmente ele analisa as especificações do fluxo para verificar se tem capacidade para encaminhar o fluxo (em termos da largura de banda, tamanho do buffer, velocidade da CPU, etc.) e se ao aceitar o novo fluxo não comprometerá os fluxos já aceitos (FOROUZAN, 2006, p. 573) Reserva de recursos Os recursos da rede são alocados para os fluxos conforme suas características. Porém, eventualmente não é possível atender às características de todos os fluxos, significando que alguns deles devem receber menos recursos de rede do que desejam. Uma das maiores questões associadas à alocação de recursos está em definir quando rejeitar um fluxo (PETERSON, 2007, p. 458) Mecanismos de alocação de recursos As subseções seguintes apresentam três formas de caracterizar mecanismos de alocação de recursos, conforme discutido por Peterson (2007, p ).

57 57 Roteadores e núcleos Uma primeira forma de caracterizar os mecanismos de alocação de recursos é classificá-los em dois grandes grupos: o dos mecanismos que endereçam o problema sob o ponto de vista da rede (centrado nos roteadores) e o dos mecanismos que endereçam na borda da rede (centrado nos núcleos). Em um projeto centrado no roteador, cada roteador tem a responsabilidade de decidir quando os pacotes são transmitidos e selecionar quais pacotes serão descartados, bem como informar aos núcleos que estão gerando o fluxo quantos pacotes eles podem enviar. No projeto centrado no núcleo, os núcleos observam as condições da rede e ajustam seu comportamento de acordo com essas condições. É importante observar que os dois grupos não são mutuamente exclusivos. Reserva e realimentação Uma segunda forma de caracterizar os mecanismos de alocação de recursos é fazê-lo classificando-o quanto ao uso ou não de reserva de recursos. No método baseado em reservas, o núcleo requisita à rede uma determinada quantidade de recursos para que um fluxo seja transmitido. Cada roteador então aloca os recursos suficientes para satisfazer essa requisição. Se a requisição não pode ser atendida em algum roteador, então o roteador rejeita o fluxo. No método sem reservas baseado em realimentação (feedback), o núcleo começa transmitindo dados, sem primeiro reservar recursos, e em seguida ajusta sua taxa de transmissão de acordo com o retorno que ele recebe. Esse retorno pode ser explícito (por exemplo, um roteador congestionado envia uma mensagem ao núcleo pedindo para que ele reduza a taxa de transmissão) ou implícito (por exemplo, o núcleo ajusta sua taxa transmissão de acordo com o comportamento da rede, tal como perda de pacotes). É importante notar que um método baseado em reservas sempre implica em um mecanismo de alocação de recursos centrado no roteador. Isso acontece porque cada roteador é responsável por manter a quantidade de seus recursos que está atualmente reservada. Por outro lado, um método baseado em realimentação pode implicar ou em um mecanismo centrado no roteador ou em um mecanismo centrado no núcleo. Tipicamente, se o retorno é explícito, então o roteador é envolvido na reserva de recursos. Se o retorno é implícito, então quase sempre o mecanismo é centrado no

58 58 núcleo, sendo que os roteadores, quando se tornam congestionados, descartam pacotes silenciosamente. Janelas e taxas A terceira forma de caracterizar mecanismos de alocação de recursos é se eles são baseados em janelas ou baseados em taxas. Essa terminologia é usada tanto para controle de fluxo quanto para mecanismos de alocação de recursos, porque ambos necessitam expressar ao transmissor a quantidade de dados que ele pode transmitir. No método baseado em janela, o receptor envia uma janela ao transmissor. Essa janela corresponde à quantidade de espaço no buffer que o receptor possui, e isto limita a quantidade de dados que o transmissor pode transmitir. No método baseado em taxas, o comportamento do transmissor é controlado usando uma taxa. O receptor informa quantos bits por segundo ele é capaz de absorver, e então o transmissor faz os ajustes necessários para transmitir nessa taxa Classes de Serviços Diferentes classes de serviços envolvem diferentes compromissos entre garantias de QoS e utilização de recursos. Nas subseções que seguem, serão descritos dois níveis de serviços definidos em Peterson (2007, p. 506): serviço de melhor esforço e serviço garantido Serviço Melhor Esforço Um serviço melhor esforço (do inglês Best Effort ou BE) não possui nenhum contrato com a rede, exceto a promessa de não atrasar ou descartar pacotes desnecessariamente. Serviços melhor esforço usam bem os recursos porque são tipicamente projetados para cenários de caso médio em lugar de cenários de pior caso. Eles também são fáceis e rápidos para usar, porque não exigem reserva de recursos. Sua principal desvantagem é que os pacotes podem ter atraso arbitrário ou até mesmo serem descartados. Devido a essas características, o serviço melhor esforço normalmente é utilizado para transportar dados de aplicações de tempo não real (elásticas) Serviço Garantido No nível de serviço garantido, também chamado de serviço determinístico ou serviço integrado, existe um contrato entre a rede e o cliente. O lado cliente do contrato determina as características do fluxo, por exemplo, a vazão máxima oferecida. O lado da rede aceita o contrato se

59 59 possuir recursos suficientes para garantir o desempenho requisitado pelo cliente. Geralmente, o contrato é acertado antes da transferência de dados, durante o processo de estabelecimento de conexão, e é mantido ao longo do tempo de vida da conexão. Para aumentar a dinamicidade e a flexibilidade, este nível de serviço pode ser estendido para permitir que o contrato seja modificado durante a existência de uma conexão. Uma conexão é estabelecida com base nas características das conexões existentes. No serviço garantido, se a rede está funcionando e o cliente está transmitindo dados com as características estabelecidas no contrato, então o serviço é atendido. Este nível de serviço não requer que os outros clientes da rede concordem com suas características do fluxo. Por esse motivo, o serviço garantido é indicado para aplicações de tempo real (não elásticas) intolerantes, rígidas, que não permitam perda de pacotes e que necessitam de garantias absolutas sobre o serviço que recebem. Serviços garantidos exigem reserva de recursos para os cenários de pior caso, o que pode ser caro. Para garantir vazão a um fluxo, deve-se reservar largura de banda para sua vazão máxima, mesmo quando sua vazão média é muito mais baixa. Como conseqüência, quando serviços garantidos são usados, os recursos são freqüentemente subutilizados. Além da baixa utilização dos recursos, os serviços garantidos necessitam armazenar o estado de cada fluxo nos roteadores ao longo do caminho reservado. Neste capítulo foram tratados conceitos de telecomunicações, focando em centrais telefônicas privadas de comutação temporal. Estes conceitos são importantes para a contextualização sobre o segmento alvo em telecomunicações adotado no trabalho e para as definições de escopo do mesmo, assunto que será tratado na Seção 3.7. Também foram revisados os conceitos de redes de interconexão chaveada para computadores paralelos, que constituem a base teórica para as NoCs e foram listadas as métricas descritas na literatura que são utilizadas para a análise de desempenho de uma rede. Finalizando este capítulo, foi apresentada uma classificação para aplicações em redes de interconexão e o conceito de qualidade de serviços. O Capítulo 3 irá apresentar as principais referências da literatura em NoCs com qualidade de serviços e descrever os mecanismos utilizados para alcançá-la em redes de interconexão.

60 60 3 ARQUITETURAS DE REDES-EM-CHIP COM QOS Neste capítulo, são apresentas NoCs descritas na literatura e que oferecem garantias de qualidade de serviços em comunicação: Xpipes (Seção 3.1), Æthereal (Seção 3.2), QNoC (Seção 3.3), Hermes (Seção 3.4) e, finalizando, SoCIN (Seção 3.5). Inicialmente, as redes são descritas; em seguida uma análise comparativa dessas redes é apresentada. Apesar de a rede SoCIN ter sido originalmente concebida para ser uma arquitetura para fluxos de melhor esforço (BE), é possível fazer considerações sobre qualidade de serviços para esta rede se for levado em conta a técnica de super-dimensionamento da rede como método para o provimento de qualidade de serviços, conforme apresentado previamente na Subseção Essa rede será apresentada mais detalhadamente do que as outras arquiteturas porque a partir dela serão feitas contribuições de outras técnicas para garantir qualidade de serviços em um segmento específico de Telecomunicações, o que constitui o foco principal deste trabalho. Finalizando este capítulo, a Seção 3.7 apresenta as definições de escopo do trabalho onde é definido o segmento de telecomunicações alvo e conseqüentemente são feitas considerações sobre os fluxos de dados das aplicações deste segmento. Também são estabelecidas nesta seção as métricas adotadas para avaliação de qualidade de serviços, métricas para consumo de recursos de silício e a metodologia adotada para a avaliação de desempenho. 3.1 XPIPES Visão geral da arquitetura A rede Xpipes (lê-se cross-pipes) foi proposta por Bertozzi et al. (2004) para arquiteturas homogêneas ou heterogêneas de SoCs multiprocessados. Nessa rede, os roteadores operam com chaveamento Wormhole e o algoritmo de roteamento estático denominado Street Sign Routing. O roteador da Xpipes é gerado a partir de um modelo parametrizável, tendo como parâmetros de especificação: o número de canais de entrada e de saída, o número de canais virtuais, a largura dos canais de comunicação entre os roteadores e o tamanho dos buffers de saída. A rede Xpipes possui suporte à comunicação confiável, o que foi alcançado por meio de detecção de erro distribuída, ou seja, o erro de transmissão é detectado em cada roteador. Um

61 61 mecanismo de retransmissão de mensagens é implementado utilizando a estratégia Go-Back-N, de modo similar ao usado nas redes de computadores. A Figura 23 apresenta um exemplo de funcionamento do mecanismo Go-Back-N, o qual consiste de um mecanismo de controle de erros que prevê o envio de múltiplos quadros antes que a resposta do primeiro ACK seja recebida pelo transmissor. O transmissor mantém uma cópia de todos os quadros enviados até que o respectivo ACK retorne (FOROUZAN, 2006, p. 256). Flits no roteador de origem Link (a) Transmissão D C B A C B A (b) Aceite do Flit D C B A D C B A ACK = 1 ACK_VALID = 1 (c) Detecção de erro no Flit D C B A D C B A. ACK = 1 ACK_VALID = 1 ACK = 0 ACK_VALID = 1 (d) Propagação de ACK/NACK D C B A A ACK = 0 ACK_VALID = 1 (e) Retransmissão D C B B D C B A. (f) GO-BACK- N D C B D C B A Figura 23. Exemplo de transmissão de quatro flits (A, B, C e D) com GO-BACK-N Fonte: Dall Osso (2003). Na Figura 23(a), o roteador de origem inicia a transmissão de quatro flits, denominados A, B, C e D. Na Figura 23(b), o flit A chegou ao buffer do roteador de destino e definido como válido pelo mecanismo de detecção de erros. Este roteador envia um sinal de ACK válido para o roteador

62 62 de origem. Seqüencialmente, na Figura 23(c), chega o flit B que está corrompido e um ACK de flit inválido é enviado ao roteador de origem. A partir deste instante, todo flit que chegar ao destino será descartado e ACK de flits inválidos serão enviados à origem. O roteador de origem descarta o flit A de seu buffer após o recebimento do ACK de flit válido, conforme ilustra a Figura 23(e) e, na seqüência, reinicia a transmissão dos N flits que foram indicados como inválidos pelo roteador de destino Visão geral do roteador Para garantir a insensibilidade à latência, o roteador da rede Xpipes utiliza a técnica de canais virtuais. Essa técnica é similar à TDM onde é feita a transmissão de várias mensagens por um único meio, consistindo da divisão do tempo de um canal físico para suportar múltiplos canais lógicos, sendo que a cada um é alocada uma fatia de tempo (time slot) do canal físico. No entanto, o uso de canais virtuais não implica em um escalonamento estático de slots do canal físico para os canais lógicos, como ocorre no TDM. Tipicamente, o escalonamento é dinâmico e utiliza critérios diversos. No roteador da rede Xpipes, é necessária uma significativa capacidade de armazenamento de flits, pois cada flit transmitido tem de ser aceito pelo destino antes de ser descartado do buffer do roteador de origem. Conforme visto na subseção anterior, durante o tempo de espera do sinal de aceitação, outros flits podem ser transmitidos, mas também ainda não aceitos pelos destinos. Esse aumento na capacidade de armazenamento implica em um maior custo de silício na implementação do roteador. Um exemplo de roteador baseado na arquitetura Xpipes é ilustrado na Figura 24. O roteador exemplificado possui quatro portas de entrada, quatro portas de saída e quatro grupos de sinais para controle de fluxo. A arquitetura consiste de múltiplas replicações de um mesmo módulo de saída, um para cada porta de saída do roteador, e todas as portas de entrada são conectadas a cada entrada do módulo de saída. Os sinais de controle de fluxo gerados em cada módulo são coletados por uma unidade centralizada, a qual se responsabiliza por gerar os sinais de ACK e NACK para os flits que chegam para cada porta de entrada do roteador.

63 63 OUT [1] IN [1] Controle Fluxo [1] IN[0] IN[1] IN[2] IN[3] Módulo de Saída OUT [0] Controle Fluxo [0] IN [2] OUT [0]. Controle_de_Fluxo_interno [0] Controle de Fluxo OUT [2] IN [0] Controle_de_Fluxo_interno [3] Controle Fluxo [2] IN[0] IN[1] IN[2] IN[3] Módulo de Saída OUT [3] IN [3] OUT [3] Controle Fluxo [3] Figura 24. Visão geral da arquitetura do módulo de saída do roteador Fonte: Dall Osso (2003). Como pode ser observado na Figura 25, cada módulo de saída tem sete estágios de pipeline no intuito de maximizar a freqüência de operação de relógio do roteador. Os impactos na latência que poderiam ser causados pelos decodificadores CRC para detecção de erros são minimizados porque essas estruturas estão trabalhando em paralelo com a operação do roteador. O CRC (Cyclic Redundancy Check) é um mecanismo de redundância que se baseia numa divisão binária para gerar os bits extras a serem transmitidos. Os bits constituem o resto de uma divisão do bloco de dados por um polinômio pré-determinado (FOROUZAN, 2006, p. 242). A Tabela 1 apresenta alguns polinômios padronizados.

64 64 Figura 25. Arquitetura do módulo de saída do roteador Fonte: Dall Osso (2003). Tabela 1. Polinômios padronizados Nome Polinômio Aplicação CRC-8 X 8 + X 2 + X + 1 ATM Header CRC-10 X 10 + X 9 + X 5 + X 4 + X ATM AAL ITU-16 X 16 + X 12 + X HDLC Fonte: Forouzan (2006, p. 242). O primeiro estágio do pipeline ilustrado na Figura 25 verifica o cabeçalho dos pacotes recebidos nas diferentes portas de entrada para determinar se os pacotes devem ser encaminhados através da porta de saída em análise. Somente pacotes direcionados para esta porta de saída são enviados para o segundo estágio, no qual são resolvidas disputas baseadas em uma política roundrobin. A arbitragem é realizada quando o flit terminador do pacote antecessor é recebido, de modo que todos os outros flits de um pacote possam ser propagados sem contenção referente ao atraso neste estágio. É gerado um NACK para flits de pacotes não selecionados. O terceiro estágio possui apenas um multiplexador, o qual seleciona a porta de entrada prioritária. O estágio seguinte de

65 65 arbitragem guarda o estado do buffer de canal virtual e determina se flits podem ser armazenados no buffer ou não. O flit de cabeçalho é enviado para o buffer com o maior número de posições livres, seguido por sucessivos flits do mesmo pacote. O quinto estágio é o estágio de registro, e a resposta ACK/NACK neste estágio indica se um flit foi armazenado corretamente ou não. O estágio seguinte se responsabiliza pelo envio do controle de fluxo: um flit é transmitido para o próximo roteador somente quando a porta de saída do roteador destino possuir posições livres disponíveis no buffer adequado. O último estágio de arbitragem irá multiplexar os canais virtuais no enlace do canal físico. 3.2 ÆTHEREAL Visão geral da arquitetura A rede Æthereal, desenvolvida por Goossens et al. (2005), proporciona tanto serviços de melhor esforço (BE Best Effort) como serviços de vazão garantida (GT Guaranteed Throughput). Para implementar serviços garantidos, foi utilizada uma técnica de roteamento livre de contenção baseada na técnica TDM, a qual provê um chaveamento de circuitos. Isso exige uma noção lógica de sincronismo em que todos os roteadores e interfaces de rede estão em time slots (fatias de tempo) específicos. Os circuitos são criados através da reserva de time slots consecutivos nos roteadores consecutivos. Isto é, os circuitos são estabelecidos em pipeline de modo que se um circuito é estabelecido do roteador R para um roteador R' e o time slot S é reservado no roteador R, então o time slot (S+1) deve ser reservado no roteador R'. Nesses circuitos, um dado recebido em um time slot será encaminhado ao próximo roteador no próximo time slot. Esse mecanismo assegura que os dados são transportados pela rede sem contenção, garantindo, dessa forma, a vazão e a latência. Como mencionado acima, circuitos são criados através da reserva de time slots. Essas reservas são feitas de tal maneira que não mais do que um fluxo GT seja escalonado ao mesmo tempo em uma porta de saída de um roteador ou interface de rede. Os fluxos de BE são transferidos sobre os slots que não são utilizados pelo fluxo GT quer sejam time slots que estão sem reservas ou as faixas que foram reservadas, mas não estão sendo utilizadas. Os fluxos BE podem ser adiados devido à maior prioridade de um fluxo GT ou por causa da contenção de portas.

66 Visão geral do roteador No intuito de minimizar o custo da implementação, o roteador da Æthereal utiliza o chaveamento wormhole, no qual a capacidade do buffer pode ser menor que o tamanho de um pacote. Para reduzir a capacidade de fila, e conseqüentemente minimizar área de implementação, são utilizadas filas de entrada, conforme ilustra a Figura 26, denominadas filas GT para fluxos com garantia de vazão e filas BE para fluxos com garantias de melhor esforço. CONTROLE DE FLUXO CONTROLADOR CONTROLE DE FLUXO PACOTE GT PACOTE BE PACOTE GT PACOTE BE PACOTE GT PACOTE BLOCOS DE CONTROLE DE CABEÇALHO BE CHAVEADOR Figura 26. Arquitetura do roteador da Æthereal Fonte: Dielissen (2003). Dielissen et al. (2003) definiram o roteamento na origem como esquema de endereçamento, por julgarem ser uma implementação com maior grau de independência e de menor custo (sem a necessidade de uso de lookup table 6 na construção dos roteadores). Nesse esquema de roteamento, o caminho por onde o pacote irá seguir até seu destino está incluso no cabeçalho do pacote. Na Æthereal, esse caminho é uma lista com endereços de destino, a partir do qual cada roteador no caminho remove o primeiro elemento para o seu próprio uso. Cada roteador possui um elemento de controle e um caminho de dados, conforme ilustra a Figura 26. No caminho de dados, as mensagens de entrada, tanto do roteador quanto das interfaces 6 São estruturas de dados que implementam vetores ou conjunto de vetores utilizando elementos de memória em silício

67 67 de rede são analisadas pela Unidade de Análise de Cabeçalho (Header Parsing Unit). Essa unidade remove o primeiro elemento para o caminho, envia o flit analisado para a fila GT ou BE e informa o Controlador (Controller) que um novo pacote está disponível para ser transmitido. O Controlador então escalona os flits para o próximo ciclo. Após ter escalonado todos os flits presentes na fila de GT, o Controlador escalona os slots restantes para os fluxos BE. Em caso de conflito, como por exemplo, dois fluxos BE endereçando o mesmo destinatário, um esquema de arbitragem roundrobin é aplicado. Para evitar transbordo na fila de entrada de fluxos BE, foi implementado um esquema de detecção de nível do canal. Cada roteador é inicializado com uma quantidade de espaço livre nas suas conexões com roteadores ou interfaces de rede. Toda vez que um flit é enviado a outro roteador, o contador de espaço livre do destinatário correspondente é decrementado. Quando um roteador escalona um flit para o próximo slot, este sinaliza ao seu predecessor que o contador de espaço livre pode ser incrementado. 3.3 QNOC Visão geral da arquitetura A rede QNoC (Quality-of-Service NoC) foi proposta por Bolotin et al. (2003). Baseados na premissa de que a topologia de uma rede pode variar dependendo das necessidades do sistema e do tamanho e posicionamento dos módulos, os autores propuseram a malha irregular como sendo a topologia mais adequada para a QNoC. Uma vez que os requisitos de comunicação do SoC são identificados, a rede é customizada (em tempo de projeto) levando em consideração os seguintes aspectos: Os módulos (núcleos) são posicionados de modo a minimizar a densidade de tráfego espacial; Os canais de comunicação e os roteadores desnecessários são removidos da rede; e A largura de banda é alocada de modo balanceado para os canais de comunicação e roteadores remanescentes de acordo com a sua carga relativa de utilização. O principal objetivo de uma rede de interconexão é o de proporcionar mecanismos eficientes a todas as demandas de comunicação heterogêneas que possam existir num sistema intra-chip. Os

68 68 autores da QNoC identificaram quatro tipos diferentes de requisitos de comunicação e definiram níveis de serviços adequados para suportá-los. De acordo com essa definição, os fluxos podem ser divididos em quatro níveis (ou classes) de serviço: Sinalização: nível de serviço com a maior prioridade na rede, para assegurar baixa latência. É utilizado por interrupções e sinais de controle; Tempo real: nível de serviço que garante largura de banda e latência para aplicações de tempo real; Leitura/Escrita (RD/WR): nível de serviço projetado para suportar acessos curtos a memórias e registradores; e Transferência de bloco: nível de serviço usado para transferência de mensagens longas e blocos grandes de dados, tal como linhas de cache e transferências DMA (Direct Memory Access). Foi estabelecida uma tabela de prioridades para os quatro níveis de serviços, na qual o nível Sinalização possui o maior grau de prioridade e o nível Transferência de Blocos possui o menor. Se dois fluxos com níveis de serviços diferentes competirem por um mesmo recurso do roteador, a prioridade de acesso ao recurso será dada sempre ao serviço de maior prioridade. Eventuais disputas por recursos entre dois fluxos de mesma classe de serviço são resolvidas por meio de arbitragem round-robin. Os pacotes da rede são formados por três campos distintos: campo de informações de roteamento, campo de comandos e campo de dados, conforme ilustra a Figura 27. O campo de informações de roteamento ou TRA (Target Routing Address) contém o endereço necessário para o roteamento do pacote. O campo de comandos especifica o tipo de operação ao qual se referem os dados que são transportados no campo de dados.

69 69 TRA Comandos Dados Figura 27. Campos que compõem um pacote da QNoC Fonte: Bolotin et al. (2003). Os pacotes são divididos em flits e são transmitidos através de sinais específicos do roteador, denominados de Dados de Saída (Data_o), conforme ilustra a Tabela 2. Os flits são classificados em três tipos básicos: FP (Full Packet): primeiro flit do pacote; EP (End of Packet): ultimo flit do pacote; e BDY (Body): não é o último flit do pacote. Os tipos de flits e níveis de serviços são informados em um grupo de sinais denominado de Tipo (Type), conforme ilustra a Tabela 2. Tabela 2. Sinais do roteador da QNoC Sinais Largura Descrição Clk 1 Relógio que sincroniza a transmissão de flits. Data_o Parametrizável Dados saindo do roteador Type 2 Tipo do flit: 00: idle 01: EP 10: BDY 11: FP SL 2 Nível (classe) de serviço do flit Buffer_Credit_SL 4 Indica se existe espaço disponível no buffer para cada nível de serviço. Buffer_Credit_Valid 1 Indica se Buffer_Credit_SL transporta uma informação de crédito válido. Fonte: Bolotin et al. (2003).

70 Visão geral do roteador A Figura 28 mostra que o roteador da rede possui até cinco canais de comunicação. Um canal conecta um núcleo local e outros quatro podem ser conectados a roteadores vizinhos. O roteador transfere pacotes recebidos nas portas de entrada para as portas de saída. Os dados são recebidos em flits e cada flit que chega é primeiro armazenado em buffers de entrada. MÓDULO Módulo ou outro Roteador ROTEADOR Figura 28. Canais de comunicação do roteador da QNoC Fonte: Bolotin et al. (2003). Existem buffers separados para cada um dos quatro níveis de serviço, conforme ilustra a Figura 29. Buffers relativamente pequenos são alocados para cada nível de serviço, com capacidade de armazenamento de alguns poucos flits. É utilizado o algoritmo XY para o roteamento dos flits. Esse algoritmo de roteamento é executado toda vez que chega um novo pacote nos buffers de entrada. As informações de roteamento de cada nível de serviço para cada porta de entrada são armazenadas em uma tabela de roteamento denominada CRT (Current Routing Table), conforme ilustra a Figura 29, até que o último flit do pacote seja recebido, processado e encaminhado ao seu destino. Quando um flit é encaminhado de um canal de entrada para um canal de saída, um buffer fica disponível e um crédito de buffer (buffer_credit) é enviado para o roteador de origem através dos sinais dedicados, conforme apresenta a Tabela 2. Cada canal de saída de um roteador é conectado a um canal de entrada de outro roteador através de um canal de comunicação. O canal de saída mantém informação sobre o espaço de armazenamento disponível em buffer para cada nível de serviço no próximo canal de entrada. Essa informação é denominada crédito e é armazenada em uma unidade denominada NBS (Next Buffer State). O número de créditos é decrementado toda vez que um flit é transmitido e incrementado

71 71 quando é recebido um crédito de buffer vindo do próximo roteador. Quando há espaço livre para transmissão, o canal de saída escalona os flits de um determinado buffer de canal de entrada e os encaminha para a rede. O estado presente do escalonador round-robin é armazenado em uma unidade denominada CSIP (Currently Serviced Input Port). Esse número é incrementado quando for finalizada a transmissão de um pacote completo ou se não há mais nenhum pacote de mesmo nível para ser transmitido de um canal de entrada em particular. CROSSBAR PACOTE SIG. R. T. RD/WR CRT CRT CRT CSIP NBS CSIP NBS CSIP NBS SIG. R. T. RD/WR PACOTE BLOCK CRT CSIP NBS BLOCK PACOTE CRÉDITOS DE BUFFER SIG. R. T. RD/WR BLOCK CONTROLE DE SWITCH. CONTROLE DE SWITCH CRT CRT CRT CRT CSIP NBS CSIP NBS CSIP NBS CSIP NBS CONTROLE. SIG. R. T. RD/WR BLOCK CONTROLE CRÉDITOS DE BUFFER PACOTE CRÉDITOS DE BUFFER CRÉDITOS DE BUFFER Figura 29. Portas de entrada e saída do roteador da QNoC Fonte: Bolotin et al. (2003). O método de escalonamento provido na QNoC implica que um determinado flit pode ser transmitido por um canal de saída enquanto o buffer do canal de entrada do roteador seguinte estiver com espaço disponível para receber dados (há crédito disponível) e se não houver nenhum pacote com serviço de maior prioridade escalonado para o referido canal de saída. Se um pacote de maior

72 72 prioridade aparecer em um dos canais de entrada, a transmissão do pacote em andamento é interrompida para que seja feita a transmissão do pacote de maior prioridade (ou seja, o escalonador prevê preempção). A transmissão do pacote de menor prioridade só será finalizada após terem sido concluídas as transmissões de pacotes com prioridades maiores. A Figura 30 ilustra a interrupção na transmissão de um pacote para permitir a transmissão de outro de maior prioridade. Entre dois flits BDY de um pacote da classe Tempo real, é transferido um pacote de um único flit da classe Sinalização, que possui prioridade maior. CLK Data_o FLIT FLIT FLIT Type BDY FP BDY SL Real Time Real Time Real Time Figura 30. Formas de onda na transmissão da QNoC: preempção de um pacote Real-time Fonte: Bolotin et al. (2003). 3.4 HERMES Visão geral da arquitetura A rede Hermes foi proposta por Moraes et al. (2004) como uma infra-estrutura capaz de gerar redes intra-chip com topologia em malha 2-D. Diz-se infra-estrutura porque não existe uma única rede intra-chip. O usuário define a rede que deseja implementar a partir de parâmetros configuráveis, tais como: Mecanismo de controle de fluxo; Dimensão da rede; Largura do canal de comunicação; Profundidade dos buffers; e

73 73 Algoritmo de roteamento. Na topologia da rede Hermes, cada roteador tem um número diferente de portas, dependendo de sua posição no que diz respeito aos limites da rede, conforme apresentado na Figura 31. Nesse exemplo, o roteador central tem cinco portas, entretanto, cada roteador do limite da rede tem somente três ou quatro portas. Na Figura 31, os elementos denominados R são os roteadores e os elementos N são núcleos. Figura 31. Topologia da malha bidirecional na rede Hermes Fonte: Mello (2006). Originalmente, a rede Hermes foi concebida para atuar como uma rede de melhor esforço (BE Best Effort). Posteriormente, foram desenvolvidas quatro variações da rede Hermes com mecanismos de QoS (MELLO, 2006): Rede Hermes com chaveamento por circuitos (Hermes-CS); Rede Hermes com escalonamento baseado em prioridades fixas (Hermes-FP); Rede Hermes com escalonamento baseado em prioridades dinâmicas (Hermes-DP); e Rede Hermes com escalonamento baseado em taxas (Hermes-RB). A seguir, serão apresentadas visões gerais dos roteadores das três possibilidades arquiteturais de QoS para a rede Hermes.

74 Visão geral do roteador com Chaveamento de Circuitos (CS) A rede Hermes-CS faz a diferenciação entre fluxos através do estabelecimento de conexão. Ela oferece um serviço com vazão garantida (GT Guaranteed Throughput) aos fluxos com requisitos de QoS e um serviço BE aos fluxos sem requisitos de QoS, de modo similar à diferenciação de fluxos oferecida pela rede Æthereal. A rede Hermes-CS implementa dois canais virtuais, sendo que um deles transporta dados utilizando chaveamento por circuito, enquanto o outro canal virtual transporta dados utilizando chaveamento por pacote. Fluxos GT têm maior prioridade do que fluxos BE, com garantia de latência fim-a-fim. Quando um fluxo GT deixa um canal físico livre, fluxos BE podem usar este canal, sem com isso penalizar o fluxo GT. A Figura 32 ilustra o compartilhamento da largura de banda da porta North por um fluxo GT (oriundo da porta South) e um fluxo BE (oriundo da porta West) (MELLO, 2006). Figura 32. Largura de banda em um roteador Hermes-CS Fonte: Mello (2006). Um fluxo GT requer o estabelecimento de uma conexão antes da transmissão dos dados. Uma conexão entre um núcleo origem e um núcleo destino requer a reserva do canal virtual ao longo do caminho entre seus respectivos roteadores. Essa reserva de caminho impede outras conexões no mesmo caminho. O protocolo usado para transmitir dados dos fluxos GT é o seguinte: 1. O núcleo origem envia um pacote BE de controle (através do canal virtual para fluxos BE) ao núcleo destino, solicitando a criação de uma conexão; 2. Um sinal de aceitação (ACK) é ativado quando o pacote de controle chega ao núcleo destino. O sinal ACK é propagado até o núcleo origem em r ciclos de relógio, onde r é o

75 75 número de roteadores no caminho da conexão (incluindo os roteadores de origem e destino); 3. Quando o sinal ACK chega ao núcleo origem, a conexão é efetivamente estabelecida e os dados podem ser transmitidos através do canal virtual para fluxos GT; 4. Quando o núcleo de origem não tem mais dados para transmitir, envia um pacote BE de controle (através do canal virtual para fluxos BE) solicitando a remoção da conexão; e 5. Quando o pacote de controle chega ao núcleo destino, o sinal ACK é desativado, sendo esta informação propagada até a origem em r ciclos de relógio. Quando o sinal ACK desativado chega ao núcleo origem, a conexão é efetivamente removida Visão geral do roteador com Prioridades Fixas (FP) A segunda alternativa arquitetural, a rede Hermes-FP, possui mecanismos de alocação de recursos baseados em prioridades fixas, o que permite a diferenciação dos fluxos de acordo com suas necessidades de desempenho, de modo similar ao que foi implementado na rede QNoC. A Figura 33 (na página a seguir) ilustra a arquitetura do roteador para esta rede. Na arquitetura Hermes-FP, cada canal virtual é associado a uma prioridade estática, dada por seu índice ver (1) e é servido conforme essa prioridade. Desse modo, esta rede é capaz de diferenciar até n fluxos, onde n é o número de canais virtuais por canal físico. prioridade de C i = i 1 (1) Para diferenciar fluxos, um campo denominado priority é inserido na parte alta do primeiro flit do pacote, conforme ilustrado na Figura 34. Esse campo determina qual canal virtual é usado para transmissão do pacote. Por exemplo, o canal virtual C2 transmite pacotes com prioridade 1. O usuário deve atribuir ao campo priority um valor entre zero e (n 1), sendo zero atribuído aos pacotes de menor prioridade e (n 1) aos de maior prioridade. Somente o roteador origem verifica o campo priority. Os demais roteadores transmitem pacotes usando o mesmo canal virtual alocado pelo roteador origem.

76 76 Figura 33. Arquitetura do roteador Hermes-FP Fonte: Mello (2006). Figura 34. Campos dos pacotes transmitidos pela rede Hermes-FP. Fonte: Mello (2006). A atribuição de prioridades fixas aos canais virtuais requer uma política de arbitragem e escalonamento do roteador. O pacote associado ao canal virtual com prioridade maior é servido primeiro, mesmo se os outros pacotes estão esperando há mais tempo. Logo, a transmissão dos dados dos canais virtuais com prioridade menor depende da carga dos canais virtuais com prioridade maior, a qual pode variar dinamicamente. Por essa razão, os limites de latência fim-a-fim não podem ser determinados para todos os pacotes, apenas para os pacotes transmitidos pelo canal

77 77 virtual com prioridade mais alta. Quando pacotes com a mesma prioridade competem por recursos, o mecanismo de prioridades fixas não provê garantias rígidas a nenhum dos pacotes Visão geral do roteador com Prioridades Dinâmicas (DP) A terceira alternativa arquitetural, a rede Hermes-DP, é semelhante à Hermes-FP, porém um mecanismo de alocação de recursos baseado em prioridades dinâmicas é utilizado para prover serviços diferenciados aos fluxos. Esse mecanismo, como o anterior, não necessita alterações na interface do roteador. Na Hermes-DP, a prioridade de cada canal virtual varia conforme a prioridade do pacote que o mesmo está transmitindo, o que permite: A transmissão de pacotes por qualquer canal virtual livre; A transmissão de um pacote por canais virtuais diferentes em roteadores diferentes; e A transmissão de pacotes com mesma prioridade por canais virtuais diferentes em um mesmo roteador. Nesta alternativa, o campo priority também é incluído no cabeçalho do pacote. No entanto, o usuário pode atribuir a este campo um valor entre zero e (2.t 1), onde t é a largura em bits de um flit. Conseqüentemente, a Hermes-DP pode diferenciar um número maior de fluxos (2.t) do que a Hermes-FP. A alocação de recursos baseada em prioridades dinâmicas requer modificações na política de arbitragem, no roteamento e no escalonamento do roteador, conforme ilustrado na Figura 35.

78 78 Figura 35. Arquitetura do roteador Hermes-DP Fonte: Mello (2006). No escalonamento, o vetor priority é verificado para determinar qual canal virtual tem o pacote com maior prioridade. Em caso de empate, uma das seguintes abordagens é adotada: Round-robin, onde os x pacotes com maior prioridade recebem 1/x da largura de banda do canal físico; ou Um dos pacotes com maior prioridade recebe 100% da largura de banda do canal físico. A abordagem utilizada pelo escalonador é parametrizável e deve ser definida na fase de projeto da rede. O empate pode ocorrer porque pacotes com a mesma prioridade podem ser transmitidos por canais virtuais diferentes, o que não é possível na Hermes- FP.

79 Visão do roteador com escalonamento baseado em taxas (RB) Este mecanismo define a prioridade de cada fluxo dinamicamente de acordo com a taxa requerida e taxa usada pelo mesmo. A política de escalonamento baseada em taxas proposta por Mello (2006, p.87) compreende duas etapas: controle de admissão seguido por um escalonamento dinâmico. A etapa de admissão determina se um novo fluxo pode ser admitido pela rede sem colocar em risco as garantias de desempenho dadas a outros fluxos QoS. A etapa de admissão começa pelo envio de um pacote de controle do roteador origem ao roteador destino, contendo a taxa requerida pelo núcleo, conforme ilustrado na Figura 36. O fluxo QoS é admitido pela rede se e somente se todos os roteadores no caminho até o destino podem transmitir a taxa requerida. Quando o pacote de controle chega ao destino, um sinal de confirmação (ACK) é propagado até o roteador origem. Este processo é similar ao estabelecimento de conexão no chaveamento por circuito, mas diferentemente do chaveamento por circuito não existe nenhuma reserva estática. Figura 36. Campos do pacote de controle Fonte: Mello (2006). Quando o fluxo QoS é admitido, um conexão virtual é estabelecida entre o roteador origem e o roteador destino. Essa conexão virtual corresponde a uma linha na tabela de fluxos, conforme ilustra a Figura 38, de cada roteador no caminho da conexão. Cada linha da tabela de fluxos identifica um fluxo QoS usando os seguintes campos: roteador origem, roteador destino, taxa requerida e taxa usada. A profundidade da tabela de fluxos determina quantos fluxos QoS simultâneos podem ser admitidos por cada roteador. Depois da transmissão completa, a conexão virtual é removida pelo roteador origem através do envio de outro pacote de controle.

80 80 Uma vez o caminho virtual estabelecido, o roteador origem pode começar a enviar pacotes de dados do fluxo QoS, conforme ilustrado na Figura 37. Quando os pacotes de dados chegam a uma porta de entrada de um roteador, eles são armazenados nos buffers de entrada, arbitrados e roteador para uma porta de saída Figura 38. Pacotes roteados para a mesma porta de saída são servidos de acordo com a política de escalonamento implementada. Figura 37. Campos do pacote de dados Fonte: Mello (2006). Figura 38. Arquitetura do roteador Hermes com suporte a o escalonamento baseado em taxas Fonte: Mello (2006). Na política de escalonamento implementada, fluxos BE são transmitidos somente quando nenhum fluxo QoS requer o canal físico. Quando dois ou mais fluxos QoS competem, o fluxo com maior prioridade é escalonado primeiro.

81 81 A tabela de fluxos é lida pelo escalonador, chamado de E na Figura 38, para encontrar a prioridade de cada fluxo QoS roteado para uma mesma porta de saída. A prioridade de um fluxo QoS é a diferença entre a taxa requerida e a taxa atualmente usada pelo fluxo QoS. Essa prioridade do fluxo é atualizada periodicamente de acordo com (2). Uma prioridade positiva significa que, no período de amostragem considerado, o fluxo está usando menos largura de banda do que a requerida. Uma prioridade negativa significa que, no período de amostragem considerado, o fluxo está violando a taxa admitida. prioridade = taxa requerida taxa usada (2) 3.5 SOCIN A arquitetura de rede-em-chip denominada SoCIN (System-on-Chip, Interconnection Network) foi apresentada por Zeferino (2003). Originalmente foi concebida como uma rede de melhor esforço (BE) para o tratamento dos fluxos de dados. Nesta subseção, serão abordados dois aspectos: (i) uma visão geral das principais características desta arquitetura; e (ii) uma contribuição para o tratamento de fluxos na rede SoCIN Características gerais da rede SoCIN Topologia de Rede A rede SoCIN utiliza como topologia de referência a malha 2-D. A escolha dessa topologia deve-se ao fato de que as estruturas 2-D constituem-se nas mais fáceis de implementar com as tecnologias de fabricação correntes (ZEFERINO, 2003, p. 123). A Figura 39 ilustra uma malha 2-D em que cada quadrado representa um roteador e as linhas entre os roteadores indicam enlaces utilizados para o encaminhamento de pacotes entre os roteadores. Uma linha no canto superior esquerdo de um roteador representa um enlace terminal (ou, simplesmente, terminal) no qual pode ser conectado um núcleo (ex. processador ou memória).

82 82 Figura 39. Exemplo de malha 2-D Enlace Os enlaces da rede SoCIN são implementados por dois canais unidirecionais em oposição (Figura 40). Cada canal é constituído por n bits de dados e dois bits de banda lateral, sendo n+2 o valor da largura física do canal (phit). Os dois bits de banda lateral correspondem aos sinais usados para o enquadramento do pacote, os quais constituem os marcadores de início de pacote (bop begin-of-packet) e fim de pacote (eop end-of-packet). O parâmetro n deve ser definido em função dos requisitos do sistema e pode incluir além dos sinais necessários para o transporte dos dados do pacote, sinais adicionais a serem manipulados por um protocolo de mais alto nível. Além dos n+2 bits, cada canal inclui um par de sinais necessários ao controle de fluxo (val e ret), os quais não são contabilizados no cálculo do phit da rede, pois não atravessam os roteadores e não são armazenados em seus buffers (ZEFERINO, 2003, p. 125). n+2 n data bop eop n+2 val ret Figura 40. Enlace da rede SoCIN Fonte: Zeferino, Santo e Susin (2004). Formato do pacote Todos os pacotes na rede SoCIN são constituídos por flits, sendo que cada flit possui o tamanho de um phit, o qual é igual a n+2 bits. O primeiro flit do pacote constitui o seu cabeçalho e inclui as informações necessárias ao estabelecimento do caminho do pacote na rede. Os demais flits

83 83 incluem a informação a ser transferida pelo pacote, sendo que eles seguem o flit de cabeçalho pela rede em um modo pipeline. O último flit da carga útil é também o terminador do pacote. (ZEFERINO, 2003, p.128). A Figura 41 apresenta o formato do pacote na rede SoCIN. e o p b o p 0 1 n+2 bits n bits Cabeçalho Terminador Carga útil Figura 41. Formato do pacote da rede SoCIN Fonte: Zeferino (2003). No cabeçalho de um pacote SoCIN, alguns bits são reservados à informação de roteamento. Esse parâmetro pode ser configurado em função do tamanho da rede a ser sintetizada, sendo que o número de bits deve ser menor ou, no máximo, igual ao número de bits da palavra de dados menos dois bits (ADDRESS_WIDTH = DATA_WIDTH 2). Estes bits são denominados RIB (Routing Information Bits) e incluem os campos relacionados às coordenadas X e Y do roteador de origem da mensagem e as coordenadas X e Y do roteador de destino da mesma (X_SRC, Y_SRC, X_DST, e Y_DST na Figura 42(b)). Os demais bits do cabeçalho não são manipulados pelos roteadores e são reservados a protocolos de mais alto nível (HLP Higher Level Protocol) dos adaptadores de comunicação. Esses bits podem ser utilizados, por exemplo, para a identificação do emissor do pacote, identificação da thread que enviou o pacote em um processador multithreaded ou para implementar protocolos de detecção e sinalização de erro de paridade (ZEFERINO, 2003, p.133). Portanto, na Figura 42 apenas os campos sombreados são processados pelo roteador, pois se referem às informações necessárias para o roteamento e para o estabelecimento e cancelamento de canais com base no enquadramento do pacote.

84 84 EOP BOP HLP RIB DATA_WIDTH HLP_WIDTH ADDRESS_WIDTH (a) RIB_WIDTH/2 RIB_WIDTH EOP BOP HLP X_SRC Y_SRC X_DST Y_DST (b) Figura 42. Cabeçalho da rede SoCIN: (a) campos previstos; (b) detalhamento do campo RIB Interface do roteador O roteador ParIS (Parameterizable Interconnect Switch) é um dos elementos que compõem a rede SoCIN. Ele possui sua interface externa com até cinco portas de comunicação bidirecionais (Figura 43), as quais são denominadas L, N, E, S e W (denominações derivadas dos termos em inglês, Local, North, East, South e West, respectivamente). Cada porta de comunicação é constituída por dois canais unidirecionais: um de entrada (in) e um de saída (out). Por exemplo, a porta Local (L) é formada pelos canais de entrada Lin e de saída Lout.

85 85 L L in N N out N in L out w in E out W E w out E in S in S out S Figura 43. Interfaces do roteador ParIS Fonte: Zeferino, Santo e Susin (2004). Conexões entre canais Na Figura 44, é apresentada uma matriz de chaveamento que indica as conexões possíveis entre os canais de entrada (representados pelas linhas) e de saída do roteador (representados pelas colunas). A primeira linha (mais acima) e a primeira coluna (mais à esquerda) estão relacionadas aos canais Lin e Lout, respectivamente. As demais linhas e colunas obedecem à ordem N, E, S e W. Um círculo sobre o cruzamento das linhas e colunas indica uma conexão possível entre um determinado canal de entrada com outro de saída. A ausência deste círculo no desenho indica que a conexão não é possível.

86 86 L in N in E in S in W in L out N out E out S out W out Figura 44. Interfaces do roteador ParIS Fonte: Zeferino, Santo e Susin (2004). Como pode ser observado na Figura 44, a matriz de chaveamento indica que o canal de entrada Lin pode ser conectado a todos os canais de saída menos ao canal Lout, pois existe um círculo sobre o cruzamento da primeira linha com as todas as colunas, menos com a primeira. Essa restrição deve-se ao fato de ser proibido a um pacote retornar pelo canal de saída da mesma porta pela qual entrou no roteador. Ou seja, todas as conexões representadas pelos cruzamentos na diagonal principal não são permitidas. É importante destacar que essa matriz de chaveamento constitui-se em uma restrição mínima, pois dependendo do algoritmo de roteamento utilizado, outras conexões também podem ser proibidas, estendendo-se o nível de restrições. Roteamento Foi adotado um esquema de coordenadas para identificação dos roteadores de modo a permitir que o roteamento seja feito de maneira distribuída e que cada roteador pode determinar o caminho a ser utilizado com base nas suas coordenadas e nas coordenadas do roteador ao qual o núcleo destinatário está conectado. O sistema de coordenadas é ilustrado na Figura 45.

87 87 Y 3 0,3 1,3 2,3 3,3 2 0,2 1,2 2,2 3,2 1 0,2 1,1 2,1 3,1 0 0,0 1,0 2,0 3, Figura 45. Sistema de coordenadas adotado na rede SoCIN Fonte: Zeferino, Santo e Susin (2004). 3 X No sistema de coordenadas utilizado, cada roteador possui um par de coordenadas (x, y) que identificam sua posição na rede. No exemplo da Figura 45 o roteador no canto inferior esquerdo tem coordenadas (0,0), enquanto que o do canto superior direito tem coordenadas (3,3). Quando um núcleo envia um pacote a outro, ele inclui, no cabeçalho do pacote, as coordenadas do destinatário (x dest, y dest ), e quando um roteador com coordenadas (x id, y id ) recebe esse pacote, ele analisa o cabeçalho e, ao executar o algoritmo de roteamento, compara as coordenadas do destinatário (x dest,y dest ) com as suas próprias coordenadas (x id,y id ). Se as coordenadas do destinatário forem iguais às do roteador, então o pacote é encaminhado à porta L do roteador (terminal no canto superior esquerdo). Por outro lado, se forem diferentes, a porta ser utilizada é determinada pelo algoritmo de roteamento, como será explicado logo a seguir. Adicionalmente, o cabeçalho do pacote pode conter outras informações, as quais, geralmente, não são tratadas pelos roteadores da rede. Entre essas informações adicionais podem estar, por exemplo, as coordenadas do roteador ao qual o emissor do pacote está conectado (x src, y src ). Essa informação será útil ao receptor do pacote quando ele precisar responder ao emissor enviando-lhe uma mensagem de resposta.

88 88 Visão geral do roteador Internamente, o roteador ParIS possui uma organização distribuída baseada na estrutura ilustrada na Figura 46. Todos os canais de entrada (Lin, Nin, Ein, Sin e Win) são tratados pelos blocos de entrada X in. Esses blocos são responsáveis por armazenar os pacotes recebidos e, a partir da análise do cabeçalho de cada pacote, realizar os seus roteamentos. Os pacotes são entregues aos blocos X out através de um sistema de matrizes crossbar 7 distribuídas. Utilizando um algoritmo de arbitragem, o bloco X out encaminha os pacotes para os canais de saída especificados nos respectivos cabeçalhos. Lin Xin Xout Lout Nin Xin Xout Nout Ein Xin Xout Eout Sin Xin Xout Sout Win Xin Xout Wout Figura 46. Visão geral do roteador ParIS Bloco de entrada Xin Internamente o bloco X in é composto por três blocos fundamentais: IFC (Input Flow Controller), IB (Input Buffer) e IC (Input Controller), apresentados na Figura Segundo Duato, Yalamanchili e Ni (2003, p. 16) uma matriz crossbar é um switch que permite que vários processadores em um sistema possam conectar-se a outros processadores ou unidades de memória simultaneamente, sem contenção.

89 89 Requisições para os blocos Xout IC Canal de entrada IFC IB Fluxo para A matriz crossbar Figura 47. Visão geral do bloco X in O bloco IFC é responsável pelo controle de fluxo de entrada. Ele regula o tráfego dos flits que chegam ao roteador e lida com a alocação de filas e canais para os pacotes que fluem pela rede. A Figura 48 apresenta um detalhamento deste bloco. Na interface do bloco IFC, os sinais i_val e i_ret realizam o controle de fluxo em nível de enlace dos pacotes que chegam ao roteador. O sinal i_val indica a presença de um flit válido no canal de entrada, enquanto que a função do sinal i_ret depende do mecanismo de controle de fluxo implementado: handshake ou baseado em créditos. IFC i_val o_ret o_w R i_wok i_rd i_rok Figura 48. Sinais de entrada e saída do bloco IFC No mecanismo handshake, o sinal i_ret opera como um sinal de ACK (acknowledgment), reconhecendo o recebimento do dado presente no canal e validado pelo sinal i_val. No mecanismo baseado em créditos, o sinal i_val tem o mesmo significado que na técnica anterior, porém, ele só é emitido quando houver espaço no buffer de entrada. O bloco emissor do fluxo, X out mantém um contador de créditos. Na inicialização do sistema, esse contador é carregado com um número de créditos correspondente ao tamanho do buffer do bloco X in. A cada flit (dado) enviado, o contador é decrementado, e quando o mesmo chegar à zero, nenhum novo flit pode ser enviado. Porém, quando o X in consome o dado do buffer, liberando mais espaço, o bloco IFC envia um crédito ao bloco

90 90 emissor, X out, através do sinal i_ret. A cada crédito recebido pelo bloco X out, o seu contador de créditos é incrementado. O bloco IB é responsável pelo armazenamento temporário dos flits dos pacotes que chegam ao roteador enquanto eles não são encaminhados aos seus destinatários. A Figura 49 apresenta um detalhamento do bloco IB. IB i_din o_dout i_wr o_wok o_rok i_rd Figura 49. Sinais de entrada e saída do bloco IB Na interface ilustrada na Figura 49, os sinais i_din e o_dout são canais de entrada e de saída, respectivamente, e possuem uma largura igual ao tamanho de um phit. A escrita do dado presente no canal de entrada é comandada pelo sinal i_wr, mas só é efetuada se o_wok estiver ativado, indicando que o buffer não está cheio. Do outro lado, a leitura do canal de saída é comandada pelo sinal i_rd e só é realizada se i_rok estiver ativado, indicando que o buffer não está vazio. O bloco denominado IC (Input Controller) está associado aos canais de entrada dos roteadores e é responsável pela implementação do mecanismo de roteamento. Esse bloco permite a implementação de diferentes alternativas de roteamento para redes com topologia em grelha 2-D, como os roteamentos XY e o West-First (WF). O bloco IC utiliza a interface que é ilustrada na Figura 50.

91 91 IC i_xdest o_req_l i_ydest o_req_n i_rok i_rd i_eop i_bop o_req_e o_req_s o_req_w o_requesting i_l_idle i_n_idle i_e_idle i_s_idle i_w_idle Figura 50. Sinais de entrada e saída do bloco IC Os sinais do lado esquerdo da interface são associados ao canal de entrada ao qual o circuito de roteamento está alocado. Os sinais i_rok e i_rd estão relacionados ao protocolo FIFO para leitura de flits do bloco IB (Input Buffer). Esses sinais são monitorados pelo bloco IC para determinar quando há um cabeçalho presente na saída do bloco IB e quando é efetuada a leitura da última palavra do pacote. Essas condições são determinadas com o auxílio do monitoramento dos bits i_bop e i_eop do canal de saída do bloco IB. Se i_rok=1 e i_bop=1, então há um cabeçalho no canal de saída do bloco IB. Por outro lado, se i_rok=1 e i_eop=1, então há um terminador no canal de saída do bloco IB. O sinal i_rd é monitorado para determinar quando o terminador é efetivamente encaminhado, após o que a conexão previamente estabelecida pode ser cancelada. Além desses sinais, esse lado da interface inclui dois sinais denominados i_xdest e i_ydest, que são sinais provenientes do cabeçalho e pelos quais são lidas as coordenadas do destinatário para a execução do algoritmo de roteamento. O estabelecimento de uma conexão irá ocorrer após a execução dos seguintes passos: 1. Detecção da presença de um cabeçalho na saída do bloco IB; 2. Execução do algoritmo de roteamento e seleção do canal de saída a ser utilizado;

92 92 3. Envio de uma requisição ao canal de saída selecionado; e 4. Seleção dessa requisição e confirmação pelo canal de saída requisitado. Os três primeiros passos ocorrem no primeiro ciclo de relógio após a chegada do cabeçalho de um pacote na saída do bloco IB, enquanto que o último passo pode consumir um ou vários ciclos de relógio. Quando o bloco IC recebe i_eop igual a 1, ele sabe que a conexão já foi estabelecida e que a mesma deve ser cancelada tão logo i_rd também seja igual a 1. Isso indica que o terminador do pacote foi encaminhado ao próximo roteador ou ao destinatário, e que o mesmo já leu esse terminador. Os sinais do lado direito do bloco IC estão diretamente vinculados ao algoritmo de roteamento a ser executado. Os sinais de estado i_l_idle, i_n_idle, i_e_idle, i_s_idle e i_w_idle indicam se os referidos canais de saída estão livres (=1) ou não (=0). Esses sinais são utilizados apenas pelo roteamento WF (West-First) e é previsto o uso do mesmo para algoritmos semelhantes ao WF. Os sinais o_req_l, o_req_n, o_req_e, o_req_s e o_req_w são os sinais de requisição a serem enviados ao canal de saída selecionado pelo algoritmo de roteamento executado. Essa interface é genérica o bastante para acomodar não apenas diferentes modelos de roteamento, mas, também, diferentes instâncias de canais de entrada, as quais, não necessariamente precisam utilizar todos os sinais de estado e de requisição da interface. Bloco de saída Xout Internamente o bloco X out é composto por três blocos fundamentais: OC (Output Controller), OS (Output Switch) e OFC (Output Flow Controller), apresentados na Figura 51. Requisições de IC OC OS OFC Figura 51. Visão geral do bloco Xout

93 93 Assim como o bloco IFC, o bloco OFC (Output Flow Controller) é também responsável pelo mecanismo de controle de fluxo. Esse bloco possui a interface apresentada na Figura 52. OFC i_rok o_val o_rd i_ret Figura 52. Sinais de entrada e saída do bloco OFC Na interface do bloco OFC, os sinais i_val e i_ret cumprem a mesma função dos sinais correspondentes na interface do bloco IFC. Porém, no bloco OFC, eles realizam o controle de fluxo para o envio de flits, enquanto que no bloco IFC eles fazem o controle de fluxo para o recebimento de flits. No outro lado da interface do bloco OFC, os sinais i_rok e i_rd implementam o controle de fluxo do tipo FIFO no sentido da leitura. O sinal i_rok indica que há pelo menos um flit para ser lido do bloco IB, enquanto que o sinal i_rd é o comando para leitura dos flits. O bloco OC (Output Controller) implementa o mecanismo de arbitragem do roteador ParIS. Esse bloco foi planejado de modo a permitir a implementação de diferentes alternativas de arbitragem distribuída. O bloco OC utiliza a interface ilustrada na Figura 53. OC i_r o_g o_idle Figura 53. Sinais de entrada e saída do bloco OC Internamente, o bloco OC é constituído por dois blocos: o bloco de arbitragem e o bloco PPE (Programmable Priority Encoder), que são ilustrados na Figura 54. O bloco PPE recebe n sinais de requisição (i_r n-1 i_r 0 ), os quais são avaliados segundo um critério de prioridades estabelecido pelo bloco de arbitragem que determina qual requisição deve ser atendida. A requisição selecionada é então confirmada através do sinal de grant correspondente (i_g n-1 i_g 0 ). Esses sinais são utilizados para comandar o bloco OS, também denominado bloco de chaveamento,

94 94 a ser descrito adiante. Além desses sinais, a interface inclui o sinal de estado o_idle, o qual indica se o canal de saída controlado pelo bloco OC está ocioso (=1) ou ocupado (=0). ARBITRO PPE i_g o_p i_p o_g i_r o_idle Figura 54. Visão interna do bloco OC O bloco OC possui três mecanismos de arbitragem distintos: arbitragem estática, dinâmica e round-robin (RR). No mecanismo estático, cada requisição tem sempre o mesmo nível de prioridade. No mecanismo dinâmico cada requisição pode ter seu nível de prioridade modificado dinamicamente no tempo. Ou seja, o critério de prioridade é alterado randomicamente no tempo. O terceiro método possível, RR, oferece um escalonamento igualitário das requisições, baseado em prioridades circulares. O bloco OS implementa o chaveamento entre as entradas e as saída do roteador. Isso é realizado por um crossbar distribuído implementado por um conjunto de multiplexadores. As conexões entre os sinais de entrada e de saída são estabelecidas a partir de sinais de controle derivados dos blocos OC. O crossbar implementa a matriz de chaveamento permitida pelo algoritmo de roteamento considerado. Uma vez que uma requisição emitida por um bloco IC é selecionada por um bloco OC, o bloco OS conecta a saída do buffer de entrada ao canal de saída. A Figura 55 apresenta roteador ParIS com todos os blocos que foram descritos.

95 REQUISIÇÕES VINDAS DE IC REQUISIÇÕES PARA OC L IN IFC IB IC Nou t Eout Sout Wout. L Nin Ein Sin Win OS OC OFC OUT N IN IFC IB IC Lout Eout Sout Wout.... Lin Ein Sin Win. OS OC IFC N OUT E IN IFC IB IC Lout Nout Sout Wout Lin Nin Sin Win OS OC OFC E OUT S IN W IN IFC IFC IB IB IC IC Lout Nout Eout Wout Lout Nout Eout Sout Lin Nin Ein Win Lin Nin Ein Sin OS OS OC IFC OC IFC S OUT Figura 55. Organização detalhada do roteador ParIS Tratamento de fluxos na rede SoCIN Corrêa (2007) propôs a utilização da técnica de envelhecimento (aging) combinada com descarte para priorizar pacotes com requisitos de prazo de entrega (deadline) em fluxos de comunicação de tempo real soft 8. Nessa técnica, um pacote é injetado na rede com um nível de prioridade inicial, o qual é incrementado com o seu tempo de permanência na rede, especialmente em situações de contenção. Com isso, o pacote passa a receber mais oportunidades quando competir com pacotes injetados mais recentemente, reduzindo a latência para chegar ao destinatário. Cada pacote possui informações que permitem ao roteador determinar se o prazo de entrega já foi descumprido e, nesse caso, descartar o pacote. Para fluxos de tempo real soft que admitem um determinado grau de perdas de prazo, os resultados experimentais feitos por simulação 8 É um sistema de tempo real no qual uma falha temporal é da mesma ordem de grandeza que os benefícios do sistema em operação normal, ou seja, a ocorrência de uma falha não causa a destruição do sistema (CORRÊA, 2007, p.47).

96 96 demonstraram que o uso combinado do envelhecimento e do descarte permite reduzir a perda de prazos quando comparado com os resultados obtidos numa rede do tipo melhor-esforço. Destaca-se que o foco da solução proposta está na redução de perdas de prazos buscando minimizar a latências de fluxos de maior prioridade. Porém, não é possível garantir uma latência máxima e nem tampouco uma quantidade mínima de vazão. Uma limitação dos experimentos realizados por Corrêa para avaliar a utilização dessas técnicas é que aqueles se basearam em um modelo de simulação no nível de transação (TL Transaction Level) e o autor não avaliou as limitações físicas e nem os custos de implementação. 3.6 ESTADO DA ARTE Para atender aos requisitos de comunicação em sistemas complexos projetados em uma única pastilha de silício, as redes-em-chip têm sido propostas pela comunidade acadêmica como uma alternativa eficiente de arquitetura de comunicação. Salminen et al. (2007) elaboraram um mapeamento genérico das redes-em-chip que foram publicadas pela comunidade acadêmica. Diversos aspectos arquiteturais foram apresentados pelos autores como topologias, tamanho das redes e critérios de avaliação das mesmas. Dentre esses critérios de avaliação estão latência e vazão, duas métricas utilizadas na avaliação de qualidade de serviços de redes. Apesar de latência e vazão serem critérios de avaliação para QoS, algumas redes apresentadas por Salminen et al. (2007) são consideradas redes de melhor esforço nas quais as garantias de vazão e latência são atendidas pelo sobre-dimensionamento destas redes, pois o projeto dimensiona a rede para o pior caso. No trabalho apresentado por Mello (2006), é apresentado um mapeamento de redes-em-chip, planejadas para atenderem os fluxos que necessitam de garantias de Qualidade de Serviços. Nesse trabalho, são citados os métodos empregados pelos autores para alcançar QoS e as vantagens e desvantagens das arquiteturas apresentadas. Na análise dos projetos de redes intra-chip apresentada no capítulo anterior, observou-se que os autores adotaram um dos seguintes métodos para prover QoS: Super-dimensionar a rede para prover largura de banda suficiente para satisfazer os requisitos de todos os núcleos no sistema;

97 97 Prover suporte ao chaveamento por circuito para todos ou para núcleos selecionados; ou Tornar disponível o escalonamento baseado em prioridades para transmissão de pacotes. Os principais parâmetros de desempenho usados pelas redes revisadas são latência fim-a-fim e vazão. O primeiro método para prover QoS mencionado acima é adotado pela rede Xpipes. Um projetista dimensiona a Xpipes de acordo com os requisitos das aplicações, ajustando a largura de banda de cada canal a fim de atender totalmente a esses requisitos. Adicionalmente, aplicando somente este método, não é garantido que congestionamentos locais sejam evitados, mesmo se a largura de banda é amplamente aumentada. Por essas razões, este método torna-se inadequado para satisfazer aos requisitos de um conjunto amplo de aplicações distintas. O segundo método, chaveamento por circuito, provê QoS através do estabelecimento de conexões. Esse método é usado nas redes Æthereal e Hermes-CS. As redes com chaveamento por circuito criam conexões para todos ou para fluxos selecionados. O estabelecimento das conexões requer alocação de recursos, tais como buffers ou largura de banda do canal. Esse método tem a vantagem de garantir limites temporais rígidos para fluxos individuais. No entanto, este pode levar a um uso ineficiente da largura de banda devido ao fato da alocação de recursos ser baseada nos cenários de pior caso, desperdiçando os recursos da rede especialmente quando fluxos são transmitidos em rajada. Uma situação também a ser considerada é quando se utiliza o chaveamento por circuito. Neste caso, a rede pode rejeitar um número de fluxos, devido à quantidade limitada de conexões simultaneamente suportadas, mesmo se a rede possui largura de banda disponível. Convém salientar que a rede Æthereal utiliza TDM e a rede Hermes-CS não. A QNoC e a Hermes-FP adotam o terceiro método, chaveamento por pacote com escalonamento baseado em prioridades fixas. Essa técnica sem estabelecimento de conexão agrupa fluxos em classes diferentes, com níveis de serviço diferentes para cada classe. O método requer áreas de armazenamento separadas para manipular pacotes de acordo com os níveis de serviço. Cada nível de serviço recebe uma prioridade. A rede sempre serve primeiro os buffers com prioridade maior e não vazios. Buffers com prioridade menor recebem atenção somente quando não existem dados esperando para serem servidos em buffers com prioridade maior. Esse método oferece melhor adaptação à variação do tráfego da rede e, potencialmente, uma melhor utilização dos recursos da rede. Entretanto, vazão e latência fim-a-fim não podem ser garantidos, exceto para fluxos com prioridade máxima. Além disso, é necessário prover alguma forma de prevenir

98 98 starvation para fluxos com prioridade baixa. Quando fluxos compartilham recursos, mesmo fluxos com prioridade maior podem ter um comportamento imprevisível. A rede Hermes-DP também adota o terceiro método com a diferença de ter os níveis de prioridade adaptáveis durante a operação da rede, o que teoricamente poderia prevenir a ocorrência de starvation. Isso pode não ocorrer porque, nesta rede, pacotes de mesma prioridade podem ser encaminhados por canais virtuais diferentes, o que não ocorre na Hermes-FP. Outra penalidade está no aumento da complexidade do mecanismo de arbitragem e, portanto, do custo de implementação. A proposta de Corrêa (2007) para a rede SoCIN de utilizar a técnica de envelhecimento (aging) combinada com descarte para priorizar pacotes com requisitos de prazo de entrega apresenta uma abordagem apropriada para aplicações de tempo real soft. Com esta técnica os pacotes que estão a mais tempo na rede passam a receber mais oportunidades quando competem com pacotes injetados mais recentemente, reduzindo a latência para chegar ao destinatário. Duas considerações devem ser feitas com relação a esta proposta. A primeira é que o descarte de pacotes, apesar de adequado para alguns tipos de aplicações, torna-se um limitante para aplicações mais rígidas de telecomunicações. A segunda questão é que a proposta foi validada em nível de simulação com o uso de linguagem C. Não houve síntese em lógica programável para avaliar requisitos como o consumo de recursos de silício. A Tabela 3, na página a seguir, apresenta um resumo das principais redes que apresentam mecanismos para garantia de qualidade de serviços, incluindo as redes detalhadas neste texto e aquelas referenciadas por Salminen et al. (2007) e Mello (2006), como a Arteris, a ASoC, a STNoC e a RSoC. Estas redes não foram detalhadas neste trabalho por utilizarem métodos de garantias de qualidade de serviços similares às redes aqui analisadas. Por este motivo foram apenas citadas nesta Tabela. A Tabela 3 é dividida em cinco colunas. Na primeira coluna, mais a esquerda, é citado o nome da NoC e na coluna seguinte é indicado o ano de sua publicação. A terceira coluna refere-se às cinco técnicas citadas na bibliografia e que são utilizadas para provisionamento de QoS em redes (super dimensionamento, política de filas, modelamento de tráfego, controle e admissão e reserva de recursos). As técnicas de implementação das NoCs utilizadas pelos seus referidos autores não se encaixam apenas em uma destas técnicas citadas e sim numa combinação delas. Foram escolhidas nesta coluna apenas a técnica que mais se destaca na NoC analisada. Por fim, a quarta coluna

99 99 apresenta uma vantagem destacada em cada NoC e a quinta coluna apresenta uma limitação apresentada por cada NoC.

100 100 Tabela 3. NoCs e os mecanismos implementados para garantir qualidade de serviços NoC Ano Técnica de QoS Vantagens Limitações Super - Dimensionamento Política de filas Modelamento de tráfego Controle e admissão Reserva de recursos Garantias rígidas de QoS Diminui latência dos pacotes Boa utilização dos recursos da rede devido à otimização dos roteadores e canais de comunicação XPipes 2002 X X Arteris 2005 X X Minimiza problemas de starvation Alto custo de implementação Sem garantias temporais para QoS Fluxos de melhor esforço são preteridos Tempo para estabelecimento da conexão não é conhecido Latência fim-a-fim não é garantida ASoC 2000 X X X Æthereal 2002 X X X SoCBus 2002 X X X STNoC 2007 X X X QNoC 2003 X X X RSoC 2005 X X X Hermes-CS 2006 X X X Hermes-FP 2006 X X X Hermes-DP 2006 X X X X X Hermes-RB 2006 X X X SoCIN Aging 2007 X X X

101 DEFINIÇÕES DE ESCOPO DO TRABALHO As subseções que seguem apresentam as definições de escopo deste trabalho onde é definido o segmento de telecomunicações alvo e conseqüentemente são feitas considerações sobre os fluxos de dados das aplicações deste segmento. Também são estabelecidas as métricas adotadas para avaliação de qualidade de serviços, métricas para consumo de recursos de silício e a metodologia adotada para a avaliação de desempenho. Os resultados obtidos neste trabalho estão baseados nos critérios e ferramentas estabelecidos nestas subseções Modelamento do Sistema Hu e Marculescu (2003) propuseram a descrição de uma aplicação, para a realização da atividade de mapeamento, através de um grafo de caracterização da aplicação, denominado APCG (APplication Characterization Graph): Um Grafo de Caracterização de Aplicação (APCG) G = G(C, A) é um grafo direto, onde cada vértice Ai ε C representa o núcleo, e cada arco direto Ai,j caracteriza o processo de comunicação do núcleo Ci para o núcleo Cj. Cada Ai,j pode ser mapeado com informações específicas da aplicação, (como por exemplo o volume de comunicação, taxa de comunicação, etc.) e restrições específicas de projeto (como por exemplo a largura de banda de comunicação, requisitos de latência, etc.). A Figura 56 ilustra a comunicação entre dois núcleos, denominados c i e c j, baseada na notação de grafos proposta por Marculescu: G = (c i, a i,j ), onde a i,j = (c i, c j ) e w é o mapeamento de uma informação referente à comunicação. Esta técnica de representação será utilizada neste trabalho para apresentar, na Subseção, um modelo de equipamento PABX comercial de pequeno porte fornecido por um fabricante de produtos para Telecomunicações. w c i c j Figura 56. Grafo representando a comunicação entre dois núcleos

102 Segmento de Telecomunicações alvo na SoCIN Segundo Jeszensky (2007), em Telecomunicações uma rede telefônica pode ser descrita como um sistema integrado de fios, de cabos, de terminais - correspondentes aos aparelhos utilizados pelos usuários do sistema - e de um vasto conjunto de equipamentos, tudo isto com o objetivo de interligar os usuários (assinantes) à central telefônica e a várias centrais entre si. Uma rede de telecomunicações pode ser composta de várias sub-redes, dependentes do tipo de serviço que é provido ao usuário. As interconexões dessas sub-redes podem ser feitas através de equipamentos que utilizam tecnologia de comunicação sem fio, por fibra ótica ou cabos metalizados. Os serviços utilizados pelos assinantes são dispostos em categorias. As categorias mais comuns são: Telefonia Fixa (rede de Telefonia Fixa); Telefonia Celular (rede de Telefonia Celular); Telefonia Pública; e Comunicação de Dados. As redes de telecomunicações estão continuamente sendo aperfeiçoadas para suportar a transmissão de informações com a introdução de novas tecnologias convergentes, tanto do lado dos equipamentos da rede (conhecidos como elementos de rede) quanto dos meios de transmissão (também conhecidos como redes de transporte) e dos sistemas de operação para gerenciamento (usualmente denominado Gerência de Redes de Telecomunicações). Diante das possibilidades de cenários de Telecomunicações que poderiam ser utilizados para estudos na rede SoCIN, optou-se por trabalhar com características de tráfego relativas a equipamentos tipo PABX, utilizados em Telefonia fixa. Esta opção se deve ao fomento às pesquisas proporcionado pela Intelbras S.A., um empresa brasileira com capital 100% nacional e que tem interesse em utilizar técnicas de NoC no desenvolvimento de seus produtos como forma de minimizar o time-to-market para novos produtos e que, no entendimento deste autor, será a primeira empresa brasileira deste segmento de telecomunicações a utilizar esta tecnologia. PABX Digital é uma central telefônica que tem como principal objetivo a comutação de ligações entre diversas tecnologias de comunicação, tais como ramais e troncos analógicos e

103 103 digitais. Normalmente, um PABX é composto por vários processos executando sobre processadores, micro-controladores e Processadores Digitais de Sinais (DSP). Normalmente, possuem processos complexos e que mantém uma grande aleatoriedade na comunicação entre si. A complexidade dos processos tem origem nas diferentes naturezas tecnológicas e na variedade de protocolos implementados. A aleatoriedade, por sua vez, tem origem na forte influência dos estímulos externos no fluxo de dados. É possível efetuar o mapeamento de um sistema PABX por grafos orientados, fazendo-se as seguintes considerações: Considerar os processos que executam sobre um mesmo processador mas que tenham um volume de processamento considerável como sendo elementos individuais de processamento (ou núcleos), com uma necessidade de comunicação bem definida; e Considerar os volumes mínimos e máximos de dados que podem ser trafegados entre os núcleos. A Figura 57 apresenta um modelo em grafos aproximado de um PABX comercial de pequeno porte fornecido pelo fabricante de equipamentos de Telecomunicações Intelbras S.A. Devido às questões de sigilo industrial, alguns dados não puderam ser acessados para uso neste trabalho. Porém, com os dados fornecidos foi possível dividir o sistema PABX em núcleos da seguinte forma: n 1 é um processador de controle do sistema PABX; n 2 e n 3 são processos responsáveis pelo processamento digital de sinais utilizados na sinalização do sistema; n 4 são interfaces de ramais; n 5 são interfaces de linha ou troncos; e n 6 é uma interface de comunicação com microcomputador padrão IBM PC.

104 104 F1 n 4 F3 F5 F7 F4 F6 F8 F9 F10 F11 F12 n 1 n 2 n 3 F13 F15 F17 F20 F14 F2 F16 Figura 57. Grafo representando um sistema PABX F18 n 5 n 6 F19 Os fluxos de dados possíveis num sistema PABX foram mapeados em quatro classes diferentes. A primeira classe é de fluxos de sinalização, na qual um núcleo comunica a ocorrência de um evento de tempo real que precisa ser tratado, como a sinalização de sensores de ocupação dos ramais. Para o sistema estudado, quatro bytes são suficientes para um pacote deste tipo de comunicação. A segunda classe é a das aplicações de tempo real, como tráfego de voz. Tipicamente, são enviados conjuntos de até 8ms de voz, o que implica em pacotes de 64 bytes para este tipo de comunicação. A terceira classe é a das escritas e leituras entre núcleos para troca de pequenas quantidades de dados. Normalmente 16 bytes são suficientes para um pacote deste tipo de comunicação. A quarta e última classe identificada é a das grandes transferências de dados, ou transferência de blocos de dados. Enquadram-se nesta classe a atualização de aplicativo de software do sistema e serviços como transferência de arquivos de tarifação de ligações telefônicas realizadas no PABX. Os tamanhos destes blocos podem variar de 64 Kbytes até 8 Mbytes. A Tabela 4 apresenta um resumo dos fluxos mapeados para a aplicação PABX.

105 105 Tabela 4. Mapeamento do volume de dados em uma aplicação PABX Comunicação Fluxo mínimo Fluxo máximo F1 Sinalização Tráfego de canais de voz F2 Sinalização Tráfego de canais de voz F3 Sinalização Processamento digital de sinais F4 Sinalização Processamento digital de sinais F5 Sinalização Escritas e leituras F6 Sinalização Escritas e leituras F7 Sinalização Processamento digital de sinais F8 Sinalização Processamento digital de sinais F9 Sinalização Escritas e leituras F10 Sinalização Escritas e leituras F11 Sinalização Escritas e leituras F12 Sinalização Escritas e leituras F13 Sinalização Processamento digital de sinais F14 Sinalização Processamento digital de sinais F15 Sinalização Escritas e leituras F16 Sinalização Escritas e leituras F17 Sinalização Blocos de dados F18 Sinalização Blocos de dados F19 Sinalização Processamento digital de sinais F20 Sinalização Processamento digital de sinais alvo: No escopo deste trabalho, foram adotadas as seguintes premissas em relação à aplicação Adotar a existência de quatro tipos de fluxos diferentes dentro de um sistema PABX, sendo eles: sinalização, tráfego de tempo real, leituras e escrita de dados e transferência de grandes blocos de dados. Considerar como fluxo de sinalização o tratamento de interrupções de alta prioridade que enviam até 2 flits de informação; Considerar como fluxo de tempo real apenas tráfego de voz, com 16 flits de informação por canal; Considerar como fluxo de escrita e leitura de dados a transferência de até 4 flits de informação; e Considerar como fluxo de transferência de bloco de dados o envio de mais de 2000 flits de informação.

106 Considerações sobre os fluxos de dados O tráfego de voz sobre canais digitais, como link E1, é passível de perdas de dados na sua transmissão. Esse fato é levado em consideração pelo órgão internacional de regulação ITU-T (International Telecommunication Union Telecommunication Standarization Sector) em sua Norma Q.921 (ITU-T, 1997) que permite técnicas diferenciadas de compensação dos erros para cada tipo de dado transmitido como voz, imagem, etc. Considerando que na aplicação PABX os fluxos de sinalização possuem poucos dados para serem transmitidos e são fluxos de prioridade para o encaminhamento por influenciarem na integridade do sistema (gerência do sistema PABX), neste trabalho optou-se por considerá-los, juntamente com os fluxos de tempo real, como fluxos que necessitam de prioridade na vazão. Foram adotadas as seguintes premissas em relação à classificação dos fluxos: Foram adotadas duas categorias de fluxos: Melhor Esforço (BE Best Effort) e Garantia de Vazão (GT Guaranteed Throughput); Os fluxos de escrita e leitura e transferência de blocos de dados ficam enquadrados na categoria BE; Os fluxos de sinalização e tempo real ficam enquadrados na categoria GT; e Os fluxos da categoria GT são prioritários em relação aos fluxos BE no encaminhamento de pacotes pelo roteador. Neste trabalho, foram adotadas as abreviaturas RT para os fluxos GT e nrt para os fluxos BE, ambos seguidos de um número, 0 ou 1, dependendo da classe a que pertencem. A Tabela 5 apresenta esta nomenclatura. Tabela 5. Nomenclatura adotada para as classes da aplicação PABX Classe de fluxo Categoria Nomenclatura Sinalização GT RT0 Tempo real GT RT1 Escrita / Leitura BE nrt0 Transferência de blocos BE nrt1

107 Considerações na Rede SoCIN A arquitetura do roteador ParIS utilizado na rede SoCIN é parametrizável, o que significa dizer que a rede pode ser sintetizada de acordo com as características necessárias para atender os requisitos das aplicações alvo. Entre os parâmetros possíveis estão o tamanho dos buffers utilizados, o tamanho dos canais de dados, tipo de arbitragem, etc. Este trabalho se propôs a implementar e avaliar mecanismos que possibilitam o provimento de Qualidade de Serviços para a rede SoCIN. Para todas as soluções arquiteturais exploradas foram adotadas as seguintes premissas em relação à parametrização da rede: O controle de fluxos é baseado em créditos; Utilização de buffers apenas nos canais de entrada dos roteadores; e Os canais de dados serão de 32 bits, pois a maioria dos processadores para sistemas embarcados, como os processadores NIOS, MicroBlaze, MIPS e ARM por exemplo, utilizam esta configuração para barramento de dados Métricas de Qualidade de Serviços Conforme foi visto na Seção 2.3, tradicionalmente, são utilizados quatro parâmetros para avaliar a qualidade de serviços em uma rede: confiabilidade, latência, jitter e vazão. No escopo deste trabalho, duas classes de fluxos foram atribuídas a uma categoria (GT) onde são considerados fluxos prioritários. A primeira classe (sinalização) é composta por poucos flits (até 2) e para este caso uma latência mínima é um fator desejável. A segunda classe (Tempo Real) foi definida como tráfego de voz. Esse tipo de fluxo possui uma latência máxima permitida (até 125 µs), porém não tem restrição para valores de latência menores. Com base no comportamento que as duas classes prioritárias apresentam em relação à latência, a métrica de QoS adotada no escopo deste trabalho é a busca por uma arquitetura na rede SoCIN que apresente uma latência mínima para fluxos prioritários.

108 Métrica de consumo de recursos de silício Segundo Ordonez et al. (2003, p.16), FPGAs (Field Programmable Gate Arrays) são circuitos programáveis compostos por um conjunto de células lógicas ou blocos lógicos alocados em forma de uma matriz. Em algumas arquiteturas, os blocos lógicos possuem recursos seqüenciais tais como Flip-flops e/ou registradores. Cada fabricante nomeia seu bloco lógico, podendo haver mais de um nome para um mesmo fabricante. A estrutura básica de um FPGA pode variar de fabricante para fabricante, de família para família ou até em uma mesma família de um mesmo fabricante podem existir variações, mas alguns elementos fundamentais são mantidos. Para Ordonez et al. (2003, p.16), é possível destacar três elementos fundamentais em um FPGA: CLB (Configurable Logic block): bloco lógico configurável, unidade lógica de um FPGA; IOB (In/Out Block): bloco de entrada e saída, localizado na periferia dos FPGAs, são responsáveis pela interface com o ambiente; e SB (Switch Box): caixa de conexão, responsável pela interconexão entre os CLBs, através dos canais de roteamento. A Figura 58 apresenta uma ilustração simbólica dos elementos básicos de um FPGA e sua disposição interna.

109 109 IOB IOB IOB IOB IOB IOB IOB IOB SB SB SB SB SB CLB CLB CLB SB CLB CLB CLB SB CLB SB SB SB SB CLB SB SB SB SB CLB SB IOB IOB IOB IOB IOB IOB IOB IOB CANAIS DE ROTEAMENTO Figura 58. Representação simbólica da disposição dos elementos básicos de um FPGA Neste trabalho, as implementações físicas foram feitas na ferramenta de síntese ISE do fabricante Xilinx, tendo como dispositivo FPGA alvo o modelo XC2VP30-7FF1152, da família Virtex-II Pro. Nessa família, os blocos de CLB são compostos por três SLICES. Cada SLICE é composto por um mesmo conjunto de circuitos eletrônicos básicos, onde os elementos que representam os maiores custos em silício são os pequenos blocos de memórias conhecidos como LUTs (Lookup Table) e os Flip-flops. Na família Virtex-II Pro, cada SLICE possui duas LUTs e dois Flip-flops. A Figura 59 apresenta a ilustração da metade superior de um SLICE. Em todas as implementações realizadas foram coletados os valores relativos ao consumo de SLICES. Nem sempre os SLICES estão com todos os seus dispositivos eletrônicos utilizados em uma síntese, mas apenas uma determinada quantidade deles. Por este motivo, também foram coletadas as informações de consumo de LUTs e Flip-flops.

110 110 Figura 59. Metade superior de um SLICE da família Virtex-II Pro Fonte: Xilinx (2007) Ferramenta para avaliação de desempenho Para avaliar o desempenho das implementações propostas foi utilizada a ferramenta BrownPepper, originalmente denominada X-Gsim (ZEFERINO et al., 2007; BRUCH; CANCIAN; ZEFERINO, 2008; BRUCH; PIZZONI; ZEFERINO, 2009). Esta ferramenta consiste de um software que é composto por um ambiente visual integrado e um conjunto de ferramentas adicionais. BrownPepper trabalha com uma plataforma SoC baseada em modelos descritos em linguagem SystemC do roteador ParIS, geradores de tráfego (TG) e medidores de tráfego (TM). O roteador ParIS é modelado em SystemC em RTL enquanto o TG e o TM são modelados em TL (Transaction Level). Um par TG-TM é conectado a cada terminal da rede e são responsáveis por injetar pacotes na rede e coletar os dados relativos ao desempenho da mesma. A Figura 60 apresenta um exemplo de plataforma para avaliação de desempenho da rede SoCIN na ferramenta

111 111 BrownPepper. A rede SoCIN está configurada numa malha 4x4 e tem conectado em cada roteador ParIS um par de gerador e medidor. TG T M TG T M TG T M TG T M ParIS ParIS ParIS ParIS TG T M TG T M TG T M TG T M ParIS ParIS ParIS ParIS TG T M TG T M TG T M TG T M ParIS ParIS ParIS ParIS TG T M TG T M TG T M TG T M ParIS ParIS ParIS ParIS Figura 60. Exemplo de plataforma para avaliação de desempenho da rede SoCIN. Fonte: Zeferino et al. (2007). Para automatizar a geração de modelos de redes e de sistemas de qualquer tamanho, bem como o processo de geração de padrões de tráfego e de análise de resultados da simulação, a ferramenta BrownPepper faz a interface entre o usuário e um conjunto de ferramentas de apoio que são utilizadas conforme o fluxo mostrado na Figura 61. A ferramenta gnoc gera redes compatíveis com a arquitetura SoCIN (socin.h), enquanto que a ferramenta gsys gera a descrição de um sistema (main.cpp) com arquitetura utilizada como referência para a avaliação. Essa descrição é compilada pelo gcc que gera um simulador do sistema (system.x). Na sua execução, esse simulador lê o arquivo de configuração de tráfego gerado pela ferramenta gtr e produz arquivos de log (ext_x_y.out) gerados pelos medidores de tráfego. Esses arquivos são então analisados pela ferramenta atr que determina os índices de desempenho da rede (ZEFERINO et al., 2007). Os resultados das simulações são armazenados em arquivos de relatórios e podem ser apresentados de forma gráfica pela ferramenta. Na Figura 62 é apresentado um exemplo de representação gráfica que esta ferramenta oferece, onde é visualizada graficamente a evolução da latência média pelo tráfego oferecido em um determinado experimento relacionando latência e freqüência de operação para configurações de roteador com profundidades diferentes de buffer de entrada.

112 112 Dimensões da Rede Parâmetros do tráfego gnoc gsys gtr socin.h main.cpp paris tg tm traffic.cfg gcc system.x ext_x_y.out ext_x_y.out ext_x_y.out ext_x_y.out atr Relatório Final Figura 61. Fluxo para avaliação de desempenho Fonte: Zeferino et al. (2007).

113 113 Figura 62. Exemplo de gráfico da ferramenta Fonte: Bruch, Pizzoni e Zeferino (2009).

114 114 DESENVOLVIMENTO O objetivo deste trabalho foi explorar o uso da Rede SoCIN como infra-estrutura de comunicação em SoCs dedicados a equipamentos de telecomunicações do tipo PABX, para uma classe de aplicações com demanda de QoS em comunicação. Como fundamentação teórica necessária para atingir este objetivo foi realizada no Capítulo 2 uma revisão da literatura abordando os principais conceitos de telecomunicações, conceitos de redes de interconexão e aspectos relacionados à qualidade de serviços. Complementando o estudo, no Capítulo 3foram apresentadas NoCs descritas na literatura e que oferecem garantias de qualidade de serviços em comunicação. Este capítulo apresenta o desenvolvimento do trabalho realizado na Rede SoCIN. Inicialmente, a Seção 3.8 é apresentada a primeira contribuição: a implementação de chaveamento de circuitos na Rede SoCIN. A Seção 3.9 apresenta a segunda contribuição, que é a implementação de canais virtuais na SoCIN. Na Seção 3.10, é apresentada a terceira contribuição deste trabalho obtida com a implementação do mecanismo de envelhecimento de pacotes na Rede SoCIN. Estas três seções apresentam a arquitetura proposta para cada contribuição, relatam os resultados alcançados e descrevem a validação funcional das propostas. Finalizando este capítulo, na Seção 3.11, é feita a avaliação dos mecanismos utilizados para prover QoS na Rede SoCIN, onde são discutidos os custos de implementação em silício e a análise de desempenho das propostas. 3.8 CHAVEAMENTO DE CIRCUITOS NA SOCIN SOCIN-CS Esta seção apresenta a primeira contribuição desta dissertação: a implementação de mecanismos de chaveamento de circuitos na rede SoCIN. O objetivo foi alterar o código do roteador ParIS para oferecer o chaveamento por circuito simultaneamente com o chaveamento por pacotes, permitindo que alguns fluxos de comunicação utilizem um ou outro modo de chaveamento. A abordagem utilizada buscou minimizar os impactos na arquitetura do roteador fazendo com que o chaveamento por circuitos fosse mapeado sobre o chaveamento por pacotes. Na Subseção 3.8.1é apresentada a arquitetura proposta com a alteração que provisiona chaveamento de circuitos para a rede SoCIN e na Subseção 3.8.2são apresentados os resultados alcançados. A validação funcional do roteador é apresentada na Subseção

115 Arquitetura proposta A fim de implementar o chaveamento por circuito, segundo as diretrizes de projeto estabelecidas, foram selecionados dois bits no cabeçalho (extraídos do campo HLP Higher Level Protocol) para indicar o tipo do pacote, sob o ponto de vista do chaveamento por circuito. Esse campo de dois bits, denominado CMD permite identificar se o pacote é regular (00) ou se é um pacote de alocação (01), de liberação (10) ou de confirmação de circuito (11). A Figura 63 apresenta o cabeçalho modificado e a Tabela 6 resume os valores possíveis desse novo campo. Na figura, observa-se que o campo CMD foi posicionado de modo a permitir que o endereço do roteador origem seja posicionado ao lado do endereço do roteador destino. 0 1 HLP CMD X src Y src X dest Y dest 0 0 Flits da carga útil 1 0 Último flit da carga útil (terminador) Figura 63. Formato do pacote modificado Tabela 6. Códigos de comando para suporte ao chaveamento por circuito CMD (MSB:LSB) Comando Função 00 Normal Transferência de dados em curso. 01 Allocate Informa ao roteador que está solicitando alocação de circuito. 10 Release Informa ao roteador que está liberando o circuito alocado. 11 Grant Confirmação de circuito alocado. No modo de chaveamento por pacotes, a comunicação entre dois nodos (origem e destino) é feita de tal forma que cada pacote deve alocar e liberar canais de comunicação da rede, de roteador em roteador. Todos os pacotes utilizam CMD = 00 e o cabeçalho sofre com uma latência mínima de 3 ciclos por roteador, podendo ser maior no caso de ocorrer contenção. A latência total do pacote depende do tamanho da sua carga útil. No modo de chaveamento por circuitos, o estabelecimento e o cancelamento de um circuito são feitos por meio de pacotes com CMD igual a 01 (Aloccate) e a 10 (Release), respectivamente. A confirmação do estabelecimento de um circuito pelo nodo destino é feita com envio de um pacote com o comando Grant (10) ao nodo origem do circuito.

116 116 Uma vantagem do uso do chaveamento por circuito é que, da forma implementada, blocos de flits podem ser enviados sem experimentar latências de roteamento. Como o circuito é implementado na forma de um pipeline (ou seja, uma cadeia de registradores), a latência por roteador é reduzida a 1 ciclo. Porém, apenas o primeiro flit do bloco (o cabeçalho) sofre essa latência, já que uma vez que o pipeline é preenchido, um novo flit é entregue ao nodo origem a cada ciclo. Adicionalmente, da forma como foi feita a implementação, blocos de flits transferidos sobre o circuito podem ser organizados sob a forma de um pacote Normal (CMD = 00) e permitindo que alguma informação de protocolo de alto nível (e.g. identificação de thread) seja encaminhada em um cabeçalho precedendo o bloco de bits. A passagem de um pacote Normal pelo circuito não interfere a conexão estabelecida e esse pacote sofre apenas com a latência de 1 ciclo por roteador mais o tamanho da carga útil. Nesta revisão do protocolo da rede SoCIN para suportar o chaveamento por circuito, os bits bop e eop foram reunidos em um campo de enquadramento que identifica o tipo do flit. Além dos três tipos já existentes (cabeçalho, carga útil e terminador), um quarto tipo foi definido para uso futuro. Esse quarto tipo indica que o conteúdo do flit foi complementado na transmissão e deve ser complementado na recepção. Este será utilizado futuramente para implementar mecanismos de redução da atividade de chaveamento nos canais e, portanto, o consumo de energia na comunicação. A Tabela 7 apresenta a codificação do campo Flit_Type. Tabela 7. Codificação do campo Flit_Type Flit_Type (eop+bop) Função 00 Corpo do pacote ou carga útil (payload). 01 Início de pacote ou cabeçalho (header). 10 Fim de pacote (terminador). 11 Inversão de payload. Para uso futuro. Para prover o chaveamento de circuito foram feitas alterações mínimas na arquitetura interna do roteador ParIS. Dentro do bloco IC (Input Controller), ilustrado previamente na Figura 50, existe um registrador especial, denominado REQ_REG (Request Register), o qual registra uma requisição para um canal de saída selecionado por um algoritmo de roteamento. A requisição é registrada quando do recebimento do cabeçalho e se mantém ativa até que o terminador do pacote seja entregue, liberando a conexão estabelecida. Para tal, o registrador REQ_REG monitora os

117 117 sinais bop e eop para determinar o enquadramento do pacote, solicitando uma conexão quando bop = 1 e cancelando essa conexão quando eop = 1. A nova versão desse registrador (Figura 64) passou a receber dois barramentos de dois bits cada: o FLIT_TYPE, que codifica os sinais bop e eop originais, e o barramento CMD, que implementa o protocolo de requisição de chaveamento de circuito apresentado na Tabela 7. REQ_REG RST OUT_REQ_L 2 2 CLK ROK RD FLIT_TYPE CS_CMD IN_REQ_L OUT_REQ_N OUT_REQ_E OUT_REQ_S OUT_REQ_W IN_REQ_N IN_REQ_E IN_REQ_S IN_REQ_W Figura 64. Estrutura Bloco REQ_REG alterado Resultados alcançados A implementação do bloco REQ_REG foi feita na ferramenta ISE da empresa Xilinx e o dispositivo FPGA utilizado foi o modelo XC2VP30-7FF1152, da mesma empresa. O custo de silício dessa implementação foi menor do que a versão original do roteador ParIS em cerca de 1,8% do total de SLICES, conforme apresenta a Tabela 8. Ambos os roteadores foram configurados com cinco portas, canais de dados de 32 bits e FIFOs de entrada com profundidade de 4 flits. Uma explicação para a redução no consumo de recursos de silício é que o aumento foi essencialmente de lógica combinatória e a ferramenta de síntese trabalha com otimização buscando aproveitar parte dos SLICES que não foram plenamente utilizados na síntese anterior.

118 118 Tabela 8. Comparativo sobre o custo de silício chaveamento de circuitos Recurso Versão original do roteador ParIS Versão com chaveamento de circuitos # SLICES (-1,8%) # Flip-flops (-1,26) # LUTs (-2,67%) Validação funcional A validação das modificações realizadas foi feita por simulação na ferramenta ISE da Xilinx. Foram gerados diversos padrões de tráfego de pacotes a fim de confirmar o correto funcionamento do circuito. A Figura 65, apresenta o diagrama de forma de ondas de uma simulação que mostra o funcionamento do mecanismo de chaveamento de circuitos implementado. Nesta simulação, o canal L in do roteador ParIS recebe um pacote de alocação de circuito, dois pacotes normais que devem ser transmitidos neste circuito e um terminador de pacote, porém sem o comando de liberação de circuito. Nesse momento, o canal N in (Norte) também inicia a transmissão de dados. Tanto os pacotes da porta Local como os da porta Norte concorrem pela utilização do canal Sul. O pacote recebido na entrada Local possui os seguintes flits (valores hexadecimal): 1º pacote: { h, 00000AAAA h, 00000AAAA h, 20000AAAA h } No item numerado como 1 na Figura 65, o primeiro byte do pacote enviado contém a requisição de alocação de circuito para esta comunicação (request - quinto byte do cabeçalho com valor 1 h ). No terceiro byte deste pacote não foi enviado o comando de liberação do canal (release - valor 2 h para o quinto byte do cabeçalho). Por este motivo, o pacote da porta de entrada Norte não pode ser encaminhado até o momento em que a porta Local envia o segundo pacote com o comando de release: 2º pacote: { h, 20000AAAA h } Este segundo pacote é ilustrado no item numerado como 2 na Figura 65. A partir deste momento, a porta Sul pode iniciar a transmissão do terceiro pacote, originário da porta Norte: 3º pacote: { h, 00000BBBB h, 00000BBBB h, 20000BBBB h }

119 119 Figura 65. A transmissão do terceiro e último pacote da porta Norte é ilustrada no item numerado 3 da Figura 65. Simulação funcional do roteador ParIS com Chaveamento de Circuitos O comportamento observado na Figura 65 confirma o correto funcionamento do mecanismo de chaveamento de circuitos proposto. A porta Local requisitou e manteve para seu uso o canal de comunicação com a porta Sul. Outro fluxo, neste caso da porta Norte, só pôde utilizar o canal de comunicação com a porta Sul após a liberação do mesmo pela porta Local. 3.9 CANAIS VIRTUAIS NA REDE SOCIN SOCIN-VC Esta seção apresenta a segunda contribuição desta dissertação, a inserção de canais virtuais na rede SoCIN. Essa técnica permite que mecanismos de alocação de recursos sejam utilizados pela rede, possibilitando a diferenciação no tratamento dos fluxos. Na Subseção 3.9.1é apresentado o projeto de alteração para a rede SoCIN e na Subseção 3.9.2são apresentados os resultados alcançados. A validação funcional do roteador SoCIN-VC e apresentado na Subseção Arquitetura proposta A rede SoCIN original não implementa nenhuma técnica para prover diferenciação de serviços. Para contornar esta limitação e atender as premissas estabelecidas na Seção 3.8 foram incluídos dois circuitos de canais virtuais: um para fluxos de melhor esforço (chamado de nrt) e outro para fluxos com garantia de vazão (chamado de RT). A Figura 66 ilustra a implementação dos canais virtuais, a qual foi baseada na replicação dos blocos X in e X out, aqui denominados de X in2vc e X out2vc. Na Figura, observa-se que o bloco X in2vc é composto por dois blocos X in e um bloco seletor, enquanto o bloco X out2vc é composto por dois blocos X out e outro bloco seletor (os novos blocos inseridos no roteador ParIS estão preenchidos em cor cinza na Figura 66).

120 120 Figura 66. Novos módulos com canais virtuais: (a) X in2vc ; e (b) X out2vc Quando um pacote é recebido no bloco X in2vc de um roteador este é encaminhado ao bloco X in do canal selecionado (RT ou nrt). Já no canal de saída do roteador, quando existirem pacotes nos blocos X outrt e X outnrt, o primeiro irá sempre escalonado antes do segundo. Se em um determinado momento, já houver um pacote nrt sendo encaminhado pelo canal de saída, na presença de um pacote RT, o primeiro será temporariamente preemptado pelo segundo. O enlace original da rede SoCIN inclui dois canais físicos em oposição e cada canal físico é constituído por um canal de dados e dois sinais de controle de fluxo: val e ret (conforme já ilustrado no capítulo anterior). Para permitir e controlar a multiplexação de cada canal físico de dados por dois canais virtuais, foi preciso replicar os sinais de controle de fluxo, alocando um par de sinais para cada canal virtual: val RT e ret RT ; e val nrt e ret nrt, conforme ilustrado na Figura 67. val RT ret RT data val nrt ret nrt val RT ret RT data val nrt ret nrt Figura 67. Enlace da rede SoCIN-VC Quando um pacote é injetado na rede, em função de sua classe, o núcleo (ou sua interface de rede) seleciona o canal a ser utilizado e sinaliza a presença do pacote no canal de dados utilizando o

121 121 sinal de validação correspondente ao canal selecionado: val RT ou val nrt. Uma vez injetado na rede, o pacote circulará pelos roteadores utilizando sempre o canal selecionado (RT ou nrt) Resultados alcançados A implementação do roteador ParIS com canais virtuais também foi realizada na ferramenta ISE da empresa Xilinx. O dispositivo FPGA utilizado foi o modelo XC2VP30-7FF1152. O sobre-custo de silício dessa implementação foi de 109,5% a mais em SLICES do que a versão original do roteador ParIS, sendo 126,5% a mais em recursos de Flip-flops e de 99,9% a mais do total de LUTs, conforme ilustra a Tabela 9. Isso era de se esperar visto que a implementação dos canais virtuais foi baseada na duplicação dos blocos constituintes do roteador. Essa técnica permite um resultado mais rápido na obtenção dos canais virtuais, mas replica os custos de implementação da versão original. Para as análises de consumo de silício, ambos os roteadores foram configurados com cinco portas, canais de dados de 32 bits e FIFOs de entrada com profundidade de 4 flits. Tabela 9. Comparativo sobre o custo de silício canais virtuais Recurso Versão original do roteador ParIS Versão com Canais Virtuais # SLICES (109,5%) # Flip-flops (126,5%) # LUTs (99,9%) Validação funcional O roteador SoCIN-VC também foi descrito em linguagem de síntese VHDL e validado por simulação funcional. São esperados dois comportamentos distintos para este mecanismo: A ocorrência de preempção de fluxos BE por fluxos GT; e A não ocorrência de preempção entre fluxos de mesma classe. Foram realizadas duas simulações distintas para verificar estes comportamentos. A Figura 68 mostra a primeira configuração usada para validar a ocorrência de preempção de fluxos BE por fluxos GT. Nesta, é ilustrada a chegada de um pacote pelo canal virtual BE da porta de entrada Local e outro pacote pelo canal virtual GT da porta de entrada Norte. Ambos os pacotes concorrem pela porta de saída Sul. O pacote recebido na entrada Local possui os seguintes flits (dados em valores hexadecimais):

122 122 1º pacote: { h, h, h, h } e outro pacote é recebido na entrada Norte, com um ciclo de atraso, com a seguinte seqüência de flits: 2º pacote: { h, 00000AAAA h, 20000AAAA h } Em ambos os pacotes o valor hexadecimal mais significativo do primeiro flit (1) indica que estes flits são cabeçalhos dos respectivos pacotes. O valor 2221 h no primeiro flit indica que o roteamento tem origem no roteador 2,2 com destino ao roteador conectado na porta Sul (S) e endereçado por 2,1. No quarto flit do pacote recebido na entrada Local e no terceiro flit recebido na entrada Norte, o valor hexadecimal mais significativo (2) indica que estes são flits terminadores. Todos os outros flits são payload e possuem valores hexadecimais 5 h para o fluxo BE e A h para o fluxo GT apenas para facilitar a visualização na simulação Figura 68. Simulação funcional do roteador ParIS-VC: preempção de fluxos BE por fluxos GT Os passos enumerados na simulação da Figura 68 são descritos a seguir: 1. A entrada Local recebe um pacote de quatro flits de categoria BE. O sinal i_l_in_val_be indica a presença de um flit de categoria BE válido nesta porta de entrada; 2. Um ciclo depois chega um pacote de categoria GT na porta de entrada Norte. O sinal i_n_in_val_gt indica a presença de um flit de categoria GT válido nesta porta de entrada;

123 Três ciclos de clock depois, a saída Sul começa enviar os flits recebidos da porta Local, colocando o sinal o_s_out_val_be em nível lógico 1. A partir deste ponto o sinal i_l_in_ret_be começa a receber créditos a cada flit enviado pela porta Sul, sendo colocado em nível lógico 1; 4. Três ciclos de clock depois da indicação do sinal i_n_in_val_gt o roteador suspende a transmissão dos dados vindos da porta Local colocando o sinal o_s_out_val_be em nível lógico 0 e começa a transmitir os flits da porta Norte, de maior prioridade, colocando o sinal o_s_out_val_gt em nível lógico 1; e 5. Ao terminar a transmissão dos flits recebidos da porta Norte, o roteador coloca o sinal o_s_out_val_gt em nível lógico 0 volta a transmitir os flits da porta Local colocando novamente o sinal o_s_out_val_be em nível lógico 1 até finalizar o processo com o respectivo flit terminador. A Figura 69 apresenta os resultados obtidos na segunda configuração utilizada para confirmar que não ocorre preempção entre fluxos de mesma categoria neste mecanismo. Nesta, é ilustrada a chegada de um pacote pelo canal virtual GT da porta de entrada Local e outro pacote pelo canal virtual GT da porta de entrada Norte. Ambos os pacotes concorrem pela porta de saída Sul. O pacote recebido na entrada Local possui os seguintes flits (dados em valores hexadecimais): 1º pacote: { h, 00000AAAA h, 00000AAAA h, 20000AAAA h } e outro pacote é recebido na entrada Norte, com um ciclo de atraso, com a seguinte seqüência de flits: 2º pacote: { h, 00000BBBB h, 00000BBBB h, 20000BBBB h } No item numerado 1 da Figura 69, observa-se que o pacote recebido pela porta Local é transferido integralmente pela porta de saída Sul e, só então, são transmitidos os dados do pacote recebido pela porta de entrada Norte que chegou com um ciclo de clock de atraso em relação ao pacote da porta Local. A transmissão do pacote da porta Norte é apresentada no item numerado 2 da Figura 69.

124 Figura 69. Simulação funcional do roteador ParIS-VC: não preempção entre fluxos de mesma categoria Os resultados obtidos nas simulações das duas configurações de testes confirmaram os dois comportamentos esperados para o mecanismo de canais virtuais, que são a ocorrência de preempção de fluxos BE por fluxos GT e a não ocorrência de preempção entre fluxos de mesma classe ENVELHECIMENTO DE PACOTES NA REDE SOCIN SOCIN-AG Esta seção apresenta a terceira contribuição desta dissertação, a utilização de análise do envelhecimento (AG aging) de pacotes na rede SoCIN na priorização de fluxos. Nessa técnica, um pacote é injetado na rede com um nível de prioridade inicial, o qual é incrementado com o seu tempo de permanência na rede, especialmente em situações de contenção. Com isso, o pacote passa a receber mais oportunidades quando competir com pacotes da mesma classe injetados mais recentemente, reduzindo a latência para chegar ao destinatário. Na Subseção é apresentado o projeto de alteração para a rede SoCIN e na Subseção são apresentados os resultados alcançados. Na Subseção é apresentada a validação funcional do roteador SoCIN-AG Arquitetura proposta A arquitetura proposta para a SoCIN-AG é baseada no roteador ParIS com dois canais virtuais: um para fluxos de melhor esforço (chamado de nrt) e outro para fluxos com garantia de vazão (chamado de RT). Ao canal RT é adicionado um mecanismo de envelhecimento de pacotes e outro de escalonamento baseado na idade do pacote.

125 125 Quando um pacote RT é criado, este recebe um selo de idade (age) com valor inicial igual a 0. Ao chegar num canal RT de um roteador, este selo é incrementado periodicamente enquanto o pacote estiver aguardando para ser liberado no roteador. O incremento do selo (stamp) de idade é feito por um circuito denominado Stampler adicionado ao bloco Xin RT, conforme ilustrado na Figura 70. A definição de quando um pacote será liberado para o encaminhamento na rede é feito pelo circuito de arbitragem do canal de saída selecionado, que é implementado dentro do bloco X out e será descrito mais adiante. Xin 2VC XinRT stampler Xin nrt Figura 70. Diagrama em blocos da arquitetura proposta com aging no roteador ParIS De modo similar ao que foi feito na técnica de chaveamento de circuitos apresentada na Seção 3.8, foram extraídos alguns bits do campo HLP para tratamento de aging: o campo AGE com três bits e o campo CLS de dois bits, que são apresentados na Figura 71. O campo AGE é tratado nos novos blocos X in e X out do roteador ParIS, alterados para este fim, e o bloco CLS é avaliado exclusivamente no novo bloco X out. RIB_WIDTH/2 RIB_WIDTH EOP BOP AGE(2) AGE(1) AGE(0) CLS(1) CLS(0) CMD(1) HLP X_SRC Y_SRC X_DST Y_DST CMD(0) Figura 71. Formato do pacote modificado para aging Os sinais de interface do bloco Stampler são quatro: um barramento de entrada (i_din), um barramento de saída (o_dout), o sinal de indicação de início de pacote (i_bop) e o sinal de indicação de buffer não vazio (i_rok). Estes sinais são apresentados na Figura 72.

126 126 i_din o_dout i_bop i_rok Figura 72. Sinais de entrada e saída do bloco Stampler A Figura 73 apresenta o mecanismo interno de funcionamento do bloco Stampler. A chegada de um novo pacote é indicada pelos sinais i_bop = 1 e i_rok = 1 e detectado pelo bloco CONTROLE. Ao ser detectado, o pacote recebe um selo com seu valor inicial de tempo Este valor é incrementado periodicamente, baseado em ciclos de clock do sistema, pelo bloco CONTADOR. O número de ciclos de clock que é contado para incrementar o campo AGE é definido através de parâmetros de síntese. Apenas os sinais do barramento i_din relativos ao campo AGE passam pelo bloco Stampler e um multiplexador controlado pela presença dos sinais i_bop e i_rok é o responsável por atualizar este campo no barramento de saída o_dout enquanto o pacote estiver aguardando para ser roteado. i_bop i_rok & CONTADOR CONTROLE o_dout i_hp o_clr o_ena i_clr i_ena + w_new_age w_age 1 0 i_din i_dout Figura 73. Estrutura interna do bloco Stampler O bloco X in é responsável por atualizar o campo AGE enquanto o pacote estiver aguardando na entrada do roteador. Conforme já mencionado, a definição de quando o encaminhamento na rede pode ocorrer é de responsabilidade do bloco X out. Em relação à versão original do roteador ParIS

127 127 original, o que mudou no bloco X out foi a inclusão de um novo tipo de árbitro, neste projeto denominado de AG (aging). A Figura 74 ilustra a interface do novo bloco OC que contempla os sinais necessários para o novo tipo de arbitragem. Os sinais i_age (de 0 a 3) são os bits dos campos AGE de cada entrada do roteador. Os sinais i_cls (de 0 a 3) definem a classe a qual pertence o pacote. Atendendo as premissas de projeto, foram contempladas quatro classes diferentes de fluxos. Os valores e definições desses fluxos são apresentados na Tabela 10. OC i_age_0 i_age_1 o_g o_idle i_age_2 i_age_3 i_cls_0 i_cls_1 i_cls_2 i_cls_3 i_r i_bop i_rok Figura 74. Interface do novo árbitro para escalonamento baseado na idade e na classe do pacote Tabela 10. Classes de fluxos definidas no campo CLS CLS (MSB:LSB) Classe de fluxo 00 Sinalização 01 Tempo Real 10 Escrita/Leitura 11 Transferência de blocos A ordem de prioridade dos fluxos é (da maior prioridade para a menor): 00 Sinalização; 01 Tempo Real; 10 Escrita/Leitura e 11 Transferência de Blocos. A Figura 75 apresenta a estrutura interna do novo bloco OC. De modo similar ao que acontecia no roteador ParIS original, o bloco PPE recebe n sinais de requisição (i_r n-1 i_r 0 ), os quais são avaliados segundo um critério de prioridades estabelecido pelo bloco de arbitragem que determina qual requisição deve ser atendida. A requisição selecionada é então confirmada através

128 128 do sinal de Grant correspondente (i_g n-1 i_g 0 ). O bloco ARBITRO recebe informações de dois blocos, i_en_age vindo do bloco IDADE e i_en_cls vindo do bloco CLASSE. O sinal i_en_age informa qual o pacote está a mais tempo aguardando por encaminhamento na entrada do roteador e o sinal i_en_cls informa quais pacotes estão habilitados para serem encaminhados por serem da mesma classe prioritária para o roteador. Por exemplo, se o sinal i_en_cls indicar que o pacote da entrada 0 e o pacote da entrada 2 tem a mesma prioridade, significa que ambos são classe 00 e podem ser encaminhados. A partir dessa informação, o bloco ARBITRO verifica o valor do sinal i_en_age. Se no exemplo, este indicar o pacote da entrada 2 como mais antigo (campo AGE maior do que o mesmo campo da entrada 0), então o pacote presente na entrada 2 é encaminhado para a saída. IDADE ARBITRO i_age_0 i_age_1 i_age_2 i_age_3 i_age_0 i_age_1 o_ena i_age_2 i_age_3 CLASSE i_en_age i_r i_p i_r PPE o_g o_idle o_g o_idle i_cls_0 i_cls_1 i_cls_2 i_cls_3 i_cls_0 i_cls_1 i_cls_2 i_cls_3 o_ena i_en_cls i_bop i_rok Figura 75. Estrutura interna do OC com árbitro de aging As regras de prioridade são estáticas para ambos os blocos IDADE e CLASSE. Para o bloco IDADE são definidas as seguintes diretivas: Apenas uma entrada pode ser habilitada; A entrada com maior idade tem prioridade sobre as outras entradas; e

129 129 No caso de duas ou mais entradas estarem com mesma idade, vale a seguinte ordem de prioridade entre as entradas (da mais prioritária para menos prioritária): Entrada 0, 1, 2 e 3. Para o bloco CLASSE valem as seguintes diretivas: Entradas de classe Sinalização (00) são prioritárias sobre as entradas com classe Tempo Real (01); e Duas ou mais entradas podem ser habilitadas desde que possuam a mesma classe prioritária e esta classe seja a de maior prioridade no momento Resultados alcançados De modo similar às contribuições anteriores, a implementação dos blocos Stampler e OC foi feita na ferramenta ISE da empresa Xilinx. O dispositivo FPGA utilizado foi o mesmo modelo utilizado anteriormente, o XC2VP30-7FF1152. O sobre-custo de silício dessa implementação foi de 109,5% a mais em SLICES do que a versão original do roteador ParIS, sendo 74,0% a mais em recursos de Flip-flops e de 99,9% a mais do total de LUTs. A Tabela 11 apresenta estes valores. O aumento no consumo de Flip-flops não chegou a dobrar, como o que ocorreu com o consumo de LUTs, porque o novo modelo de árbitro foi implementado com o uso maior de LUTs do que utilizando Flip-flops. Além do mais, o sintetizador da ferramenta ISE faz re-uso de parte dos SLICES que não tenham sido previamente utilizados na versão original. Tabela 11. Comparativo sobre o custo de silício envelhecimento de pacotes Recurso Versão original do roteador ParIS Versão com Aging # SLICES (109,5%) # Flip-flops (74,0%) # LUTs (99,9%) Validação funcional De modo similar ao outros dois mecanismos apresentados, o roteador SoCIN-AG também foi validado por simulação funcional. A Figura 76 mostra a configuração adotada para validar o funcionamento das alterações incluídas no roteador ParIS. Foram colocados quatro pacotes diferentes nas entradas Local (L), Norte (N), Leste (E) e Oeste (W) do roteador, todos com classe

130 130 RT0 e que competem pelo canal de saída Sul. O que se buscou nesta configuração foi mostrar que numa arbitragem por envelhecimento de pacotes os fluxos de mesma classe GT - que competem por um mesmo recurso não estão sujeitos à arbitragem do tipo round-robin. RT0 RT0 L N RT0 W E RT0 S Figura 76. Cenário com pacotes RT0 para validação do mecanismo de aging A Figura 77 apresenta uma representação gráfica da seqüência de chegada dos pacotes nas entradas do roteador sob validação. Todos os pacotes possuem três flits e são rotulados como H x para flit de cabeçalho do pacote x, P x para um flit de payload do pacote x e T x para flit terminador do pacote x. O índice A é usado para representar o fluxo da entrada Local, B é usado para representar o fluxo da entrada Norte, C é usado para a representação do fluxo da entrada Leste e E é usado para representar o fluxo da entrada Oeste. Estes valores possuem valores similares em numeração hexadecimal e foram usados no intuito de facilitar a visualização na simulação. Conforme pode ser verificado na Figura 77 o fluxo da Entrada Local (L) é transmitido até o seu payload (até o ciclo n+1). A transmissão é suspensa por 6 ciclos de clock (até o ciclo n+7) e então é transmitido o flit terminador deste pacote. No terceiro ciclo de clock (n+2) chega um pacote na entrada Leste (E). Com cinco ciclos de clock, chega um pacote na entrada Norte (N) e com sete ciclos de clock a entrada Oeste (W) recebe um pacote. O que se espera é que nenhum dos pacotes sofra preempção e que, após a chegada do flit terminador do pacote da entrada Local (L) o próximo pacote a ser enviado seja o da entrada Leste (E) por estar a mais tempo aguardando para ser encaminhado. Numa arbitragem round-robin era de se esperar que o próximo pacote a ser encaminhado fosse o da entrada Norte (N).

131 131 Entrada L H A P A T A Entrada N H B P B T B Entrada E H C P C T C Entrada W H E P E T E n n+1 n+2 n+3 n+4 n+5 n+6 n+7 n+8 n+9 Ciclo Figura 77. Cenário de testes para validação do árbitro de Aging segunda configuração Os pacotes recebidos nas entradas possuem os seguintes flits (dados em valor hexadecimal): 1º pacote: { h, 0AAAAAAAA h, 2AAAAAAAA h } 2º pacote: { h, 0BBBBBBBB h, 2BBBBBBBB h } 3º pacote: { h, 0CCCCCCCC h, 2CCCCCCCC h } 4º pacote: { h, 0EEEEEEEE h, 2EEEEEEEE h } Em todos os pacotes o valor hexadecimal mais significativo do primeiro flit (1) indica que estes flits são cabeçalhos dos respectivos pacotes. O valor 2221 h no primeiro flit indica que o roteamento tem origem no roteador 2,2 com destino ao roteador conectado na porta Sul (S) e endereçado por 2,1. O valor 0000 h no primeiro flit de todos os pacotes indica que todos eles são de mesma classe e categoria (RT0). No terceiro flit de todos os pacotes, o valor hexadecimal mais significativo (2) indica que estes são flits terminadores. Todos os outros flits são payload e possuem valor hexadecimal onde A h é usado para o fluxo da entrada Local, B h é usado para o fluxo da entrada Norte, C h é usado para o fluxo da entrada Leste e E h é usado para o fluxo da entrada Oeste. A Figura 78 mostra a simulação funcional de um roteador recebendo os pacotes apresentado no cenário da Figura 77. Os passos enumerados na simulação da Figura 78 são descritos a seguir:

132 O fluxo da entrada Local (L) é o primeiro a chegar ao roteador e também o primeiro a ser encaminhado para a saída Sul (S); 2. Como ainda não recebeu o flit terminador, o canal fica retido à disposição do fluxo de entrada Local (L) aguardando que este flit seja recebido (2AAAAAAAA h ); 3. O flit terminador da entrada Local (L) já foi recebido e o próximo fluxo transmitido é o pertencente à entrada Leste (E) por estar a mais tempo aguardando por seu roteamento; 4. A saída S já concluiu a transmissão do pacote recebido na entrada Leste (E) e passa a transmitir o pacote da entrada Norte (N); 5. O fluxo da entrada Oeste (W) é transmitido pela saída Sul (S). Este foi o último pacote a chegar ao roteador Figura 78. Simulação funcional do roteador ParIS-AG A validação funcional realizada para o roteador com mecanismo de aging mostrou que na arbitragem por envelhecimento de pacotes os fluxos da mesma classe GT que competem por um mesmo recurso não estão sujeitos à arbitragem do tipo round-robin, o que era de se esperar.

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 4 Camada de Rede 4.1 a 4.3 Prof. J ó Ueyama Abril/2011 SSC0641-2011 1 Objetivos do Capítulo 4 Camada de Rede Entender os princípios dos serviços da camada de rede:

Leia mais

Capítulo 4: Camada de rede

Capítulo 4: Camada de rede Capítulo 4: Camada de Objetivos do capítulo: entender os princípios por trás dos serviços da camada de : modelos de serviço da camada de repasse versus roteamento como funciona um roteador roteamento (seleção

Leia mais

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio

Conceitos básicos de comunicação. Prof. Marciano dos Santos Dionizio Conceitos básicos de comunicação Prof. Marciano dos Santos Dionizio Conceitos básicos de comunicação A comunicação é um processo de transferência e processamento de informações entre dois pontos por meio

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

REDES II. e Heterogêneas. Prof. Marcos Argachoy

REDES II. e Heterogêneas. Prof. Marcos Argachoy Convergentes e Heterogêneas Prof. Marcos Argachoy REDES CONVERGENTES Cont./ Convergência Refere-se a redução para uma única conexão de rede, fornecendo todos os serviços, com conseqüente economia de escala.

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Princípios de Telecomunicações. PRT60806 Aula 19: Modulação por Código de Pulso (PCM) Professor: Bruno Fontana da silva 2014

Princípios de Telecomunicações. PRT60806 Aula 19: Modulação por Código de Pulso (PCM) Professor: Bruno Fontana da silva 2014 1 Princípios de Telecomunicações PRT60806 Aula 19: Modulação por Código de Pulso (PCM) Professor: Bruno Fontana da silva 2014 Bloco de Comunicação Genérico Emissor sinais analógicos x sinais digitais Sinais

Leia mais

Transmissão de Informação

Transmissão de Informação Transmissão de Informação 1.Multiplexação e Modulação Sempre que a banda passante de um meio físico for maior ou igual à banda passante necessária para um sinal, podemos utilizar este meio para a transmissão

Leia mais

Hardware Reconfigurável

Hardware Reconfigurável Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Hardware Reconfigurável DCA0119 Sistemas Digitais Heitor Medeiros Florencio Tópicos Alternativas de projeto

Leia mais

Barramento CoreConnect

Barramento CoreConnect Barramento CoreConnect MO801 1º semestre de 2006 Prof. Rodolfo Jardim de Azevedo Fabiana Bellette Gil - RA 028671 CoreConnect Agenda Conceitos básicos Introdução ao CoreConnect Arquitetura Referências

Leia mais

Aula 3 Redes de Interconexão

Aula 3 Redes de Interconexão Aula 3 Redes de Interconexão As redes de interconexão são de fundamental importância nas arquiteturas paralelas Não importa o tipo da arquitetura, todo computador paralelo necessita de uma rede de interconexão

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Macêdo Firmino Camada Física Macêdo Firmino (IFRN) Redes de Computadores Setembro de 2011 1 / 32 Pilha TCP/IP A B M 1 Aplicação Aplicação M 1 Cab M T 1 Transporte Transporte

Leia mais

Telefonia IP. Transmissão de mídias pela Internet vs melhor esforço. Prof. Emerson Ribeiro de Mello. Instituto Federal de Santa Catarina IFSC

Telefonia IP. Transmissão de mídias pela Internet vs melhor esforço. Prof. Emerson Ribeiro de Mello. Instituto Federal de Santa Catarina IFSC Telefonia IP Transmissão de mídias pela Internet vs melhor esforço Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/tip

Leia mais

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

Mecanismos para o provimento de tolerância a faltas em Redes-em-Chip Mecanismos para o provimento de tolerância a faltas em Redes-em-Chip Cesar Albenes Zeferino Universidade do Vale do Itajaí UNIVALI Laboratório de istemas Embarcados e Distribuídos - LED Itajaí, anta Catarina,

Leia mais

ENGG55 REDES INDUSTRIAIS Introdução aos Sistemas de Comunicação Industrial

ENGG55 REDES INDUSTRIAIS Introdução aos Sistemas de Comunicação Industrial ENGG55 REDES INDUSTRIAIS Introdução aos Sistemas de Comunicação Industrial Prof. Eduardo Simas (eduardo.simas@ufba.br) DEE Departamento de Engenharia Elétrica Escola Politécnica - UFBA 1 Introdução Muitas

Leia mais

Tecnologias de Rede de Acesso e CORE

Tecnologias de Rede de Acesso e CORE Tecnologias de Rede de Acesso e CORE 3º Ano / 1º Semestre 2017 lvilanculos@up.ac.mz Curso de Informática Docente: Luís Vilanculos 1 Sinal Analógico Sinal analógico é uma Onda Eletromagnética cuja a sua

Leia mais

Introdução aos Sistemas Operacionais

Introdução aos Sistemas Operacionais 1 Introdução aos Sistemas Operacionais 1.1 O que é um sistema operacional 1.2 História dos sistemas operacionais 1.3 O zoológico de sistemas operacionais 1.4 Conceitos sobre sistemas operacionais 1.5 Chamadas

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores O Roteador Slide 1 Principal Função do Roteador Repasse Quando um pacote chega ao enlace de entrada de um roteador, este deve conduzi-lo até o enlace de saída apropriado. Roteamento

Leia mais

Multiplexação por Divisão de Tempo UNIP. Renê Furtado Felix.

Multiplexação por Divisão de Tempo UNIP. Renê Furtado Felix. Multiplexação por Divisão de Tempo UNIP rffelix70@yahoo.com.br Comunicação Serial Como funciona a comunicação serial? Você sabe que a maioria dos PCs têm portas seriais e paralelas. Você também sabe que

Leia mais

CURSO TÉCNICO EM INFORMÁTICA

CURSO TÉCNICO EM INFORMÁTICA 1. O modelo de referência OSI (Open Systems Interconnection) baseia-se no conceito de camadas sobrepostas, onde cada camada executa um conjunto bem definido de funções. Relacione cada uma das camadas do

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Memória Cache Slide 1 Introdução Tamanho Função de Mapeamento Política de Escrita Tamanho da Linha Número de Memórias Cache Cache em Níveis Slide 2 Introdução

Leia mais

Redes de Computadores I Conceitos Básicos

Redes de Computadores I Conceitos Básicos Redes de Computadores I Conceitos Básicos Prof. Luís Rodrigo lrodrigo@lncc.br http://lrodrigo.lncc.br 2009/1 v2-2009.03.11 Histórico Anos 50-60 Computadores Grandes Porte Sistemas Batch Anos 60-70 Time-sharing

Leia mais

a redução do tamanho das células (cell spliting); a utilização de antenas inteligentes, e;

a redução do tamanho das células (cell spliting); a utilização de antenas inteligentes, e; 19 1. Introdução Nas últimas décadas, a demanda por serviços de comunicação móvel celular tem crescido de forma espantosa em todo o mundo, principalmente com relação a serviços suplementares e complementares.

Leia mais

Redes X.25. Prof. Monteiro, Emiliano S. - Monteiro, Emiliano S.

Redes X.25. Prof. Monteiro, Emiliano S.  - Monteiro, Emiliano S. Redes X.25 Prof. Monteiro, Emiliano S. www.csecurity.com.br - Monteiro, Emiliano S. X.25 A especificação X.25 surgiu a partir da necessidade de se conectar computadores usando uma rede externa (rede pública)

Leia mais

SEL 0412 Tecnologia Digital Teoria

SEL 0412 Tecnologia Digital Teoria SEL 0412 Tecnologia Digital Teoria Aquisição de Dados Profa. Tania Regina Tronco Conceito É a coleta de informações para fins de análise dos dados e consequente controle e monitoramento de um processo;

Leia mais

Principais fundamentos de um sistema telefônico

Principais fundamentos de um sistema telefônico Principais fundamentos de um sistema telefônico O sistema telefônico é composto por assinantes, sistemas de distribuição, centrais telefônicas e sistemas de transmissão. A figura 2 mostra um esboço de

Leia mais

Integrated Services Digital Network (ISDN) Carlos Messani

Integrated Services Digital Network (ISDN) Carlos Messani Integrated Services Digital Network (ISDN) Carlos Messani ISDN - Conceitos ISDN é uma rede que fornece conectividade digital fim-a-fim, oferecendo suporte a uma ampla gama de serviços, como voz e dados.

Leia mais

Transporte Multimídia em Redes. Transporte Multimídia em Redes. Transmissão multimídia em tempo real. Categorias dos protocolos

Transporte Multimídia em Redes. Transporte Multimídia em Redes. Transmissão multimídia em tempo real. Categorias dos protocolos Transporte Multimídia em Redes Transporte Multimídia em Redes A transmissão multimídia requer que garantias diversas de Qualidade de Serviço (QoS) sejam estabelecidas e mantidas para que se atendam aos

Leia mais

2 Transmissão de Pacotes na Segunda Geração 2.1. Introdução

2 Transmissão de Pacotes na Segunda Geração 2.1. Introdução 2 Transmissão de Pacotes na Segunda Geração 2.1. Introdução Embora alguma forma de comunicação móvel já fosse possível desde a Segunda Guerra Mundial (através de aparatos eletrônicos montados sobre veículos

Leia mais

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11

REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11 REDES DE COMPUTADORES E TELECOMUNICAÇÕES MÓDULO 11 Índice 1. ROTEAMENTO...3 1.1 Introdução... 3 1.2 O roteamento e seus componentes... 3 1.3 Tabelas de roteamento... 3 1.4 Protocolos de roteamento... 3

Leia mais

RT 1. Routers IP. Manuel P. Ricardo. Faculdade de Engenharia da Universidade do Porto

RT 1. Routers IP. Manuel P. Ricardo. Faculdade de Engenharia da Universidade do Porto RT 1 Routers IP Manuel P. Ricardo Faculdade de Engenharia da Universidade do Porto RT 2 Bibliografia» Aula preparada com base seguinte bibliografia S. Keshav, An Engineering Approach to Computer Networking,

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Gerência de Dispositivos Dispositivos de E/S Device Drivers Controladores Subsistema de E/S 2 Gerência de Dispositivos A gerência de

Leia mais

ROUTER. Alberto Felipe Friderichs Barros

ROUTER. Alberto Felipe Friderichs Barros ROUTER Alberto Felipe Friderichs Barros Router Um roteador é um dispositivo que provê a comunicação entre duas ou mais LAN s, gerencia o tráfego de uma rede local e controla o acesso aos seus dados, de

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES Prof. Esp. Fabiano Taguchi fabianotaguchi@gmail.com http://fabianotaguchi.wordpress.com BENEFÍCIOS MODELO OSI Menor complexidade; Interfaces padronizadas; Interoperabilidade entre

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina Redes de Banda Larga Prof. Andrey Halysson Lima Barbosa Aula 1 Conceitos básicos de comunicação Sumário Técnicas de transmissão

Leia mais

FPGA & VHDL. Tutorial

FPGA & VHDL. Tutorial FPGA & VHDL Tutorial 2009-2 FPGA FieldProgrammableGateArray Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programadas ) para desempenhar uma função simples Chaves

Leia mais

Modelo de Referência OSI. Prof. Alberto Felipe

Modelo de Referência OSI. Prof. Alberto Felipe Modelo de Referência OSI Prof. Alberto Felipe Modelo em camadas Redes de computadores são sistemas complexos; Decomposição dos sistemas em elementos realizáveis; Organizadas como uma série de camadas Permite

Leia mais

Capítulo 5. A camada de rede

Capítulo 5. A camada de rede Capítulo 5 A camada de rede slide slide 1 1 slide 2 Questões de projeto da camada de rede Comutação de pacote: store-and-forward Serviços fornecidos à camada de transporte Implementação do serviço não

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.

Leia mais

Circuitos Seqüenciais

Circuitos Seqüenciais ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I Circuitos Seqüenciais prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno 2 / 13 Sistemas Digitais Definição funcional: Aparato dotado de conjuntos

Leia mais

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

Desenvolvendo aplicações com LabVIEW FPGA. Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas Desenvolvendo aplicações com LabVIEW FPGA Rogério Rodrigues Engenheiro de Marketing Técnico Marcos Cardoso Engenheiro de Vendas Agenda O que são FPGAs e por que eles são úteis? Programando FPGAs Hardware

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina Redes de Banda Larga Prof. Andrey Halysson Lima Barbosa Aula 4 Redes Frame Relay Sumário Definições; Circuitos Virtuais Permanentes

Leia mais

13 CIRCUITOS DIGITAIS MOS

13 CIRCUITOS DIGITAIS MOS 13 CIRCUITOS DIGITAIS MOS 13.1. CONCEITOS BÁSICOS 13.1.1. Tecnologias de CIs Digitais e Famílias de Circuitos Lógicos Cada família é fabricada com uma mesma tecnologia, possui a mesma estrutura e oferece

Leia mais

Topologias de Arquiteturas de Comunicação

Topologias de Arquiteturas de Comunicação ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Topologias de Arquiteturas de Comunicação Alexandre Amory Edson Moreno 2 / 31 Índice 1. Introdução 2. Topologias 3. Exercícios 3 / 31 Topologias de Infra-estruturas

Leia mais

Arquitetura de Computadores. Processamento Paralelo

Arquitetura de Computadores. Processamento Paralelo Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple

Leia mais

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura

Leia mais

TRANSMISSÃO DE DADOS

TRANSMISSÃO DE DADOS TRANSMISSÃO DE DADOS Aula 2: Transmissão Digital Notas de aula do livro: FOROUZAN, B. A., Comunicação de Dados e Redes de Computadores, MCGraw Hill, 4ª edição Prof. Ulisses Cotta Cavalca

Leia mais

HARDWARE DOS RELÉS NUMÉRICOS

HARDWARE DOS RELÉS NUMÉRICOS HARDWARE DOS RELÉS NUMÉRICOS 1. CONSIDERAÇÕES INICIAIS Objetivos idênticos ao hardware dos relés convencionais, ou seja, recebem sinais analógicos de tensão, corrente e outros, sinais digitais de contatos

Leia mais

Barramento compartilhado

Barramento compartilhado Barramento compartilhado A organização de rede de barramento compartilhado usa um único caminho de comunicação entre todos os processadores e módulos de memória: a rota pela qual as mensagens transitam.

Leia mais

SISTEMAS OPERACIONAIS DE REDE

SISTEMAS OPERACIONAIS DE REDE SISTEMAS OPERACIONAIS DE REDE Questão 01 O sistema operacional gerencia o sistema de arquivos, que irá armazenar as informações/arquivos. Para esta tarefa, durante a formatação do disco rígido, são criados

Leia mais

Protocolo Frame Relay. Prof. Marcos Argachoy

Protocolo Frame Relay. Prof. Marcos Argachoy REDES II Protocolo Prof. Marcos Argachoy Perfil desse tema Características Modelo de camadas Componentes Formato do Frame Redes Características: Protocolo desenvolvido na década de 80 Utiliza comutação

Leia mais

Gerência de Dispositivos. Adão de Melo Neto

Gerência de Dispositivos. Adão de Melo Neto Gerência de Dispositivos Adão de Melo Neto 1 Gerência de Dispositivos Introdução Acesso ao Subsistema de E/S Subsistema de E/S Device Drivers Controladores Dispositivos de E/S Discos Magnéticos Desempenho,

Leia mais

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 5: REDE DE ACESSO CAMADA ENLACE. Prof. LUIZ LEÃO

FUNDAMENTOS DE REDES DE COMPUTADORES AULA 5: REDE DE ACESSO CAMADA ENLACE. Prof. LUIZ LEÃO AULA 5: REDE DE ACESSO CAMADA ENLACE Prof. LUIZ LEÃO Conteúdo Desta Aula FLUXO DE TRANSMISSÃO TOPOLOGIA FÍSICA PROTOCOLOS DE CONTROLO DE ACESSO 1 2 3 4 5 LINHAS DE COMUNICAÇÃO MÉTODOS DE CONTROLE DE ACESSO

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Redes de Computadores I

Redes de Computadores I Redes de Computadores I Prof.ª Inara Santana Ortiz Aula 3 Protocolos de Comunicação Protocolos de Comunicação Protocolos de Comunicação Para que ocorra a transmissão de uma informação entre o transmissor

Leia mais

Prof. Antonio P. Nascimento Filho. Tecnologias de rede. Ethernet e IEEE Token ring ATM FDDI Frame relay. Uni Sant Anna Teleprocessamento e Redes

Prof. Antonio P. Nascimento Filho. Tecnologias de rede. Ethernet e IEEE Token ring ATM FDDI Frame relay. Uni Sant Anna Teleprocessamento e Redes Tecnologias de rede Ethernet e IEEE 802.3 Token ring ATM FDDI Frame relay Ethernet A Ethernet é uma tecnologia de broadcast de meios compartilhados. Entretanto, nem todos os dispositivos da rede processam

Leia mais

Sistemas Operacionais. Tipos de SO

Sistemas Operacionais. Tipos de SO Sistemas Operacionais Tipos de SO Tipos de Sistemas Operacionais Tipos de Sistemas Operacionais Sistemas Monoprogramáveis/ Monotarefas Sistemas Multiprogramáveis/ Multitarefas Sistemas com Múltiplos Processadores

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Software de Rede Slide 1 Serviço X Protocolo Serviço: Conjunto de primitivas (operações) que uma camada oferece à camada situada acima dela. [TAN, 03] Protocolo: Conjunto de regras

Leia mais

Modelo OSI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação

Modelo OSI. Marcelo Assunção 10º13. Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos. Disciplina: Redes de Comunicação Modelo OSI Marcelo Assunção 10º13 Curso Profissional Técnico de Gestão e Programação de Sistemas Informáticos Disciplina: Redes de Comunicação 2013/2014 Índice Modelo OSI Open System Interconnection (OSI)

Leia mais

Analisador de Espectros

Analisador de Espectros Analisador de Espectros O analisador de espectros é um instrumento utilizado para a análise de sinais alternados no domínio da freqüência. Possui certa semelhança com um osciloscópio, uma vez que o resultado

Leia mais

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

BARRAMENTOS DO SISTEMA FELIPE G. TORRES BARRAMENTOS DO SISTEMA FELIPE G. TORRES BARRAMENTOS DO SISTEMA Um computador consiste em CPU, memória e componentes de E/S, com um ou mais módulos de cada tipo. Esses componentes são interconectados de

Leia mais

REDES DE COMPUTADORES. Comunicação de Dados

REDES DE COMPUTADORES. Comunicação de Dados Objetivos Gerais da Cadeira Compreender a comunicação de dados entre locais remotos através de conceitos e procedimentos envolvidos na conexão de computadores, meios e dispositivos de redes. Objetivos

Leia mais

NOVO ESCALONADOR PARA REDE LTE. Renê Pomilio de Oliveira. Prof. Dr. Augusto Foronda. Prof. Dr. Lourival A. Góis

NOVO ESCALONADOR PARA REDE LTE. Renê Pomilio de Oliveira. Prof. Dr. Augusto Foronda. Prof. Dr. Lourival A. Góis PPGCC Programa de Pós Graduação em Ciência da Computação Mestrado em Ciência da Computação NOVO ESCALONADOR PARA REDE LTE Renê Pomilio de Oliveira Prof. Dr. Augusto Foronda Prof. Dr. Lourival A. Góis 2016

Leia mais

Introdução ao módulo LabVIEW FPGA

Introdução ao módulo LabVIEW FPGA Introdução ao módulo LabVIEW FPGA Guilherme Yamamoto Engenheiro de Marketing de Produto Tecnologia FPGA Blocos de E/S Acesso direto às E/S digitais e analógicas. Interconexões programáveis Roteamento de

Leia mais

Aula 2 Topologias de rede

Aula 2 Topologias de rede Aula 2 Topologias de rede Redes e Comunicação de Dados Prof. Mayk Choji UniSALESIANO Araçatuba 13 de agosto de 2016 Sumário 1. Topologias de Rede 2. Topologias Físicas Ponto-a-Ponto Barramento BUS Anel

Leia mais

ESPECIFICANDO FORMALMENTE TOPOLOGIAS PARA REDES EM CHIP SPECIFYING FORMALLY TOPOLIGIES FOR NETWORK ON CHIP

ESPECIFICANDO FORMALMENTE TOPOLOGIAS PARA REDES EM CHIP SPECIFYING FORMALLY TOPOLIGIES FOR NETWORK ON CHIP ESPECIFICANDO FORMALMENTE TOPOLOGIAS PARA REDES EM CHIP E. V. Santos¹ e K. D. N. Ramos¹ ¹UERN Universidade do Estado do Rio Grande do Norte eliselma.vieira@natal.uern.com.br- karlaramos@uern.br Artigo

Leia mais

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura Introdução Organização e Arquitetura INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Eduardo Max Amaro Amaral Arquitetura são os atributos visíveis ao programador. Conjunto de instruções, número

Leia mais

Arranjo de Processadores

Arranjo de Processadores Um arranjo síncrono de processadores paralelos é chamado arranjo de processadores, consistindo de múltiplos elementos processadores (EPs) sob a supervisão de uma unidade de controle (UC) Arranjo de processadores

Leia mais

5. Tipos de produtos multimédia Baseados em páginas

5. Tipos de produtos multimédia Baseados em páginas 5. Tipos de produtos multimédia 5.1. Baseados em páginas 1 2 Baseados em páginas Os tipos de produtos multimédia baseados em páginas são desenvolvidos segundo uma estrutura organizacional do tipo espacial

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 19 Barramentos: Estruturas de Interconexão Rodrigo Hausen 14 de outubro de 2011 http://cuco.pro.br/ach2034 1/40 Apresentação 1. Bases Teóricas 2. Organização de computadores

Leia mais

I/O para Dispositivos Externos e Outros Computadores. Redes de Interconexão. Redes de Interconexão. Redes de Computadores Correntes

I/O para Dispositivos Externos e Outros Computadores. Redes de Interconexão. Redes de Interconexão. Redes de Computadores Correntes para Dispositivos Externos e Outros Computadores Processor interrupts Cache Memory - Bus Main Memory Disk Disk Graphics Network ideal: bandwidth alto, baixa latência Redes de Computadores Correntes Objetivos:

Leia mais

Parte I: Introdução. O que é a Internet. Nosso objetivo: Visão Geral:

Parte I: Introdução. O que é a Internet. Nosso objetivo: Visão Geral: Parte I: Introdução Tarefa: ler capítulo 1 no texto Nosso objetivo: obter contexto, visão geral, sentimento sobre redes maior profundidade e detalhes serão vistos depois no curso abordagem: descritiva

Leia mais

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

FPGA & VHDL. Tutorial Aula 1. Computação Digital FPGA & VHDL Tutorial Aula 1 Computação Digital FPGA Field Programmable Gate Array Dispositivo lógico contendo uma matriz de: Células lógicas genéricas Configuráveis ( programáveis ) para desempenhar uma

Leia mais

Nível de Rede. Funções do nível de rede GCAR

Nível de Rede. Funções do nível de rede GCAR Nível de Rede Funções do nível de rede Multiplexação Endereçamento Mapeamento entre endereços de rede e de enlace Roteamento Estabeleciment/Liberação conexões de rede Controle de Congestionamento 1 Funções

Leia mais

Redes para Automação Industrial: Introdução às Redes de Computadores Luiz Affonso Guedes

Redes para Automação Industrial: Introdução às Redes de Computadores Luiz Affonso Guedes Redes para Automação Industrial: Introdução às Redes de Computadores Luiz Affonso Guedes Conteúdo Definição Classificação Aplicações típicas Software de rede Modelos de referências Exemplos de redes Exemplos

Leia mais

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

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

Implementação de uma plataforma MP-SoC baseada em NoC com solução de diretório para manutenção da coerência de cache

Implementação de uma plataforma MP-SoC baseada em NoC com solução de diretório para manutenção da coerência de cache PublICa III (2007) 09-17 Implementação de uma plataforma MP-SoC baseada em NoC com solução de diretório para manutenção da coerência de cache Gustavo Girão 1, Bruno Cruz de Oliveira 1, Ivan Saraiva Silva

Leia mais

Universidade de Pernambuco Escola Politécnica de Pernambuco

Universidade de Pernambuco Escola Politécnica de Pernambuco Universidade de Pernambuco Escola Politécnica de Pernambuco TV Analógica e Digital Codificação de Fonte Prof. Márcio Lima E-mail:marcio.lima@poli.br 12.06.2014 Introdução A principal função de um sistema

Leia mais

PRINCÍPIOS DE COMUNICAÇÃO

PRINCÍPIOS DE COMUNICAÇÃO PRINCÍPIOS DE COMUNICAÇÃO MODULAÇÃO DE PULSO Evelio M. G. Fernández - 2011 Sistemas de Comunicações Digitais Sistema digital no sentido de utilizar uma seqüência de símbolos pertencentes a um conjunto

Leia mais

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

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Gerência de Dispositivos Subsistemas de E/S Device Driver Controlador de E/S

Leia mais

Sistemas de Troca de Mensagens

Sistemas de Troca de Mensagens Universidade Federal do Rio de Janeiro Programa de Pós-Graduação em Informática DCC/IM - NCE/UFRJ Arquitetura de Sistemas Paralelos Sistemas de Troca de Mensagens Sistemas de Comunicação O Sistema de Comunicação

Leia mais

Osciloscópio Digital. Diagrama em blocos:

Osciloscópio Digital. Diagrama em blocos: Osciloscópio Digital Neste tipo de osciloscópio, o sinal analógico de entrada é inicialmente convertido para o domínio digital através de um conversor A/D rápido, sendo em seguida armazenado em uma memória

Leia mais

Estruturas básicas de redes Internet Padronização e Protocolos

Estruturas básicas de redes Internet Padronização e Protocolos Estruturas básicas de redes Internet Padronização e Protocolos Universidade Católica de Pelotas Cursos de Engenharia da Computação Disciplina: Rede Computadores I 2 Agenda Estruturas básicas de redes A

Leia mais

FDDI (Fiber Distributed Data Interface)

FDDI (Fiber Distributed Data Interface) FDDI (Fiber Distributed Data Interface) O padrão FDDI (Fiber Distributed Data Interface) foi desenvolvido pelo ASC X3T9.5 da ANSI nos EUA e adotado pela ISO como padrão internacional (ISO 9314/1/2/3) em

Leia mais

CIRCUITOS E SISTEMAS ELECTRÓNICOS

CIRCUITOS E SISTEMAS ELECTRÓNICOS INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Apontamentos sobre Conversores A/D e D/A CIRCUITOS E SISTEMAS ELECTRÓNICOS APONTAMENTOS SOBRE CONVERSORES ANALÓGICO-DIGITAL E DIGITAL-ANALÓGICO Índice

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 20ª Aula Arquiteturas Paralelas Arquitetura MIMD com Memória Compartilhada Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Arquiteturas MIMD As arquiteturas MIMD dividem-se

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA DE. Marcelo Daniel Berejuck

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA DE. Marcelo Daniel Berejuck UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE ENGENHARIA DE AUTOMAÇÃO E SISTEMAS Marcelo Daniel Berejuck REDE INTRA-CHIP COM PREVISIBILIDADE DE LATÊNCIA PARA USO EM SISTEMAS DE TEMPO REAL Florianópolis

Leia mais

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace Redes de Computadores II Módulo 1 Introdução e a camada de enlace 1 Comunicação de Dados e Redes de Computadores O problema fundamental da comunicação é reproduzir em um ponto exatamente ou aproximadamente

Leia mais

Definição das 7 Camadas do Modelo OSI e Explicação das Funções

Definição das 7 Camadas do Modelo OSI e Explicação das Funções O modelo OSI (Open Systems Interconnect) tem sete camadas. Este artigo as descreve e explica, começando pela camada "inferior" na hierarquia (a camada física) e avançando até a "superior" (a camada de

Leia mais

Aplicações Informáticas B 12º Ano

Aplicações Informáticas B 12º Ano Aplicações Informáticas B 12º Ano Prof. Adelina Maia 2013/2014 AIB_U3A 1 Introdução ao multimédia digital Multimédia Etimologicamente, a palavra multimédia é composta por duas partes Media é o plural da

Leia mais

CURSO TÉCNICO EM INFORMÁTICA

CURSO TÉCNICO EM INFORMÁTICA 1. A arquitetura TCP/IP possui diferentes protocolos organizados em uma estrutura hierárquica. Nessa arquitetura, exemplos de protocolos das camadas de Rede, Transporte e Aplicação, são, respectivamente,

Leia mais

Redes de Computadores e Telecomunicações - Modelo OSI

Redes de Computadores e Telecomunicações - Modelo OSI Redes de Computadores e Telecomunicações - Modelo OSI Objetivos Fundamentos do Modelo OSI Entender as camadas do Modelo OSI Aplicação Apresentação Sessão Transporte Rede Enlace Fisíca Arquitetura de camadas

Leia mais

2/10/2014 Prof. Roberto Cesar Betini 1

2/10/2014 Prof. Roberto Cesar Betini 1 REDES INDUSTRIAIS AULA 1 REDES DE COMPUTADORES 2/10/2014 Prof. Roberto Cesar Betini 1 Componentes de um Sistema de Computação 2/10/2014 2 Componentes de um Sistema de Computação 2/10/2014 3 Evolução dos

Leia mais

Definição de Mídia. Em inglês: media Plural da palavra medium em Latim. Significa meio, centro Meio de distribuir e representar a informação

Definição de Mídia. Em inglês: media Plural da palavra medium em Latim. Significa meio, centro Meio de distribuir e representar a informação Definição de Mídia Em inglês: media Plural da palavra medium em Latim Significa meio, centro Meio de distribuir e representar a informação Tipos de Mídia Mídia de Percepção Como os humanos percebem a informação

Leia mais

Redes de Computadores. Comutação de Pacotes. Técnicas de Comutação. Comutação de circuitos (1/3) Comutação de Pacotes. Comutação de Pacotes.

Redes de Computadores. Comutação de Pacotes. Técnicas de Comutação. Comutação de circuitos (1/3) Comutação de Pacotes. Comutação de Pacotes. Comutação de Pacotes Comutação de Pacotes (Cap. do livro texto) Sumário Comutação e Repasse Pontes e Comutadores de LANs Comutação de Células Hardware de Comutadores/Chaves DCC/UFMG Comutação de Pacotes

Leia mais

DSP (Conversão AD/ DA) Processo de conversão AD. Processo de conversão AD. Current A/D technology (cont.) Currente tecnologia A/D

DSP (Conversão AD/ DA) Processo de conversão AD. Processo de conversão AD. Current A/D technology (cont.) Currente tecnologia A/D DSP (Conversão AD/ DA) Conversão Analógico-> Digital Aula 3 Por Manoel Eusebio de Lima Centro de Informática - UFPE Processo de conversão AD Processo de conversão AD Amostragem do sinal de entrada (limitado

Leia mais

Seminário de programação em sistemas embarcados

Seminário de programação em sistemas embarcados Seminário de programação em sistemas embarcados Implementando controle PID digital em sistemas embarcados Felipe S. Neves Agenda Compensadores, o compensador PID; Implementação PID em sistemas embarcados;

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO.

INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO. INFORMÁTICA BÁSICA HARDWARE: COMPONENTES BÁSICOS E FUNCIONAMENTO isabeladamke@hotmail.com Componentes de um Sistema de Computador HARDWARE: unidade responsável pelo processamento dos dados, ou seja, o

Leia mais