• Nenhum resultado encontrado

UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO

N/A
N/A
Protected

Academic year: 2021

Share "UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO"

Copied!
63
0
0

Texto

(1)

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

PROVIMENTO DE TOLERÂNCIA A FALTAS EM REDES-EM-CHIP

Área de Sistemas Embarcados

por

Fabrício Veiga

Cesar Albenes Zeferino, Dr.

Orientador

(2)

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

PROVIMENTO DE TOLERÂNCIA A FALTAS EM REDES-EM-CHIP

Área de Sistemas Embarcados

por

Fabrício Veiga

Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação.

Orientador: Cesar Albenes Zeferino, Dr.

(3)

iii

SUMÁRIO

LISTA DE ABREVIATURAS... v

LISTA DE FIGURAS...vii

LISTA DE TABELAS ...viii

RESUMO ...ix

ABSTRACT... x

1

INTRODUÇÃO ... 1

1.1

PROBLEMATIZAÇÃO ... 2

1.1.1

Formulação do Problema ... 2

1.1.2

Solução Proposta ... 2

1.2

OBJETIVOS ... 3

1.2.1

Objetivo Geral ... 3

1.2.2

Objetivos Específicos ... 3

1.3

METODOLOGIA... 3

1.4

ESTRUTURA DO TRABALHO ... 4

2

FUNDAMENTAÇÃO TEÓRICA ... 5

2.1

CONFIABILIDADE DE SISTEMAS COMPUTACIONAIS... 5

2.1.1

Conceitos de falta, erro e falha ... 5

2.1.2

Fundamentos de confiabilidade... 8

2.1.3

Parâmetros de confiabilidade ... 10

2.1.4

Medidas de confiabilidade... 10

2.1.5

Curva da banheira ... 11

2.2

TOLERÂNCIA A FALTAS ... 13

2.2.1

Técnicas de tolerância a faltas ... 14

2.3

CONFIABILIDADE E TOLERÂNCIA A FALTAS EM REDES-EM-CHIP

16

2.3.1

Definição de Rede-em-Chip ... 16

2.3.2

Faltas e Falhas em Redes-em-Chip ... 19

2.3.3

Estratégias para Prover Tolerância a Faltas em Redes-em-Chip... 21

2.4

REDE SOCIN ... 27

2.4.1

Arquitetura da rede ... 27

2.4.2

Modelo de comunicação ... 28

2.4.3

Chaveamento ... 28

2.4.4

Roteamento e formato do pacotes ... 29

2.4.5

Arbitragem, controle de fluxo e armazenamento ... 30

2.4.6

Arquitetura do Roteador RASoC... 30

2.4.7

Arquitetura do Roteador ParIS... 32

(4)

3

DESENVOLVIMENTO ... 36

3.1

VISÃO GERAL ... 36

3.2

ANÁLISE DE REQUISITOS... 38

3.2.1

Requisitos Funcionais ... 38

3.2.2

Requisitos não-funcionais... 38

3.3

PROJETO ... 39

3.3.1

Projeto do Enlace da Rede ... 39

3.3.2

Projeto do Módulo Transmissor - Xout... 40

3.3.3

Projeto do Módulo Receptor - Xin ... 41

3.4

IMPLEMENTAÇÃO ... 42

3.4.1

Implementação do Módulo Sabotador... 42

3.4.2

Implementação da Técnica de Paridade... 44

3.4.3

Implementação da Técnica de CRC... 45

3.4.4

Componente OFC ... 46

3.5

EXPERIMENTOS E RESULTADOS... 48

3.5.1

Técnica de CRC... 48

3.5.2

Técnica de Paridade... 49

3.5.3

Estimativa de Sobrecustos... 50

4

CONCLUSÕES ... 51

REFERÊNCIAS BIBLIOGRÁFICAS ... 52

(5)

v

LISTA DE ABREVIATURAS

ABS Anti-Blocking System

BDY Body

BER Bit Error Rate

BOP Begin of packet

COM Crosspoint Matrix

CRC Cycle Redundancy Code

DBP Default Backup Path

EOP End of packet

EP End of packet

FIFO First In First Out

FIT Failure in Time

FP Full packet

GSED Grupo de Sistemas Embarcados e Distribuídos HLP Higher Level Protocol

IB Input Buffer

IC Input Controller

IFC Input Flow Control

IP Intellectual Property

IRS Input Read Switch

LSB Least Significant Bits

MAF Maximal Aggressor Fault

MG Mask Generator

MP3 Moving Picture Experts Group - 1/2 Audio Layer 3 MSB Most Significant Bits

MTBF Mean Time Between Failures

MTTF Mean Time do Failure

MTTR Mean Time To Repair

NoC Networks-on-Chip

OC Output Controller

OCP Open Core Protocol

ODS Output Data Switch

OFC Output Flow Controller

ORS Output Read Switch

OWS Output Write Switch

ParIS Parameterizable Interconnect Switch PDA Personal Digital Assistant

RASoC Router Architecture for System-on-chip

RG Random Generator

SER Soft Error Rate

SEU Single Event Upset

SoC System-on-Chip

SoCIN SoC Interconnection Network TCC Trabalho de Conclusão de Curso TMR Triple Modular Redundancy TRA Target Routing Address UNIVALI Universidade do Vale do Itajaí

(6)

VCI Virtual Component Interface

VHDL VHSCI Hardware Description Language VHSCI Very-High-Speed Integrated Circuit

(7)

vii

LISTA DE FIGURAS

Figura 1. Conceitos de falha, falta e erro. ...6

Figura 2. Atividades de confiabilidade para reduzir as falhas. ...7

Figura 3. Os diversos aspectos de confiabilidade. ...9

Figura 4. A curva da banheira. ...11

Figura 5. Replicação ativa de componente – configuração estática...15

Figura 6. Replicação passiva de componente – configuração dinâmica. ...15

Figura 7. Exemplo da estrutura de uma mensagem. ...17

Figura 8. Um canal de comunicação. ...18

Figura 9. Estrutura genérica de um roteador de uma rede em chip...18

Figura 10. Crosstalk e soft errors em um circuito integrado. ...20

Figura 11. Duas topologias para rede SoCIN: malha e toróide...27

Figura 12. Enlace da rede SoCIN...28

Figura 13. Exemplos de rotas permitidas no roteamento XY. ...29

Figura 14. Interface e arquitetura do roteador RASoC. ...31

Figura 15. Estrutura interna do roteador ParIS. ...32

Figura 16. Estrutura interface da porta de entrada do roteador ParIS. ...34

Figura 17. Estrutura interface da porta de saída do roteador ParIS...34

Figura 18. Detalhamento do Roteador ParIS. ...37

Figura 19. Estrutura da Rede SoCIN com o módulo Sabotador. ...37

Figura 20. Enlace da rede SoCIN modificado: (a) Enlace com ...39

Figura 21. Porta de saída contendo do componente de decodificação CRC...40

Figura 22. Porta de entrada contendo do componente de codificação CRC. ...41

Figura 23. Possíveis efeitos de crosstalk no modelo MAF. ...42

Figura 24. Estrutura interna do sabotador. ...44

Figura 25. Esquema do bloco da abordagem de paridade única. ...45

Figura 26. Esquema do bloco da abordagem de técnica de CRC. ...46

Figura 27. Diagrama de formas de onda da simulação da técnica de CRC. ...49

(8)

LISTA DE TABELAS

Tabela 1. Medidas de confiabilidade...11

Tabela 2. Descrição das etapas da curva da banheira. ...13

Tabela 3. Características de uma rede em chip. ...19

Tabela 4. Modelos de falhas e faltas tradicionalmente consideradas para uma rede de interconexão. ...21

Tabela 5. Comparação qualitativa dos protocolos de controle de fluxo. ...23

Tabela 6. Comparação do aumento de fios. ...25

Tabela 7. Resultados de atraso. ...25

(9)

ix

RESUMO

VEIGA, Fabrício. Provimento de Tolerância a faltas em Redes-em-Chip. Itajaí, 2010. 57 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2010.

Com o advento de novas tecnologias de fabricação de circuitos integrados, tais sistemas estão cada vez mais complexos incluindo diversos componentes como processadores, memórias e outros periféricos em uma mesma pastilha de silício. Para o futuro desses sistemas computacionais integrados, as Redes-em-Chip (NoCs – Networks-on-Chip) emergem como melhor alternativa para alto desempenho em comunicação. Porém esses componentes são suscetíveis a faltas decorrentes de aquecimento, sobrecarga de energia, radiação externa e entre outras. Faltas em um roteador ou em um enlace da rede podem levar à transferência de dados corrompidos ou, dependendo da natureza da falta, provocar problemas no roteamento de pacotes, como o encaminhamento de um pacote para um destino incorreto ou mesmo o impedimento de que um determinado caminho na rede seja utilizado, resultando em falhas no sistema. Uma NoC tolerante a faltas deve ser capaz de detectar uma falta e evitar que ela leve a falhas no sistema, assegurando o correto funcionamento da aplicação. No texto, é apresentada uma revisão dos conceitos sobre confiabilidade e a disponibilidade de redes-em-chip, com ênfase nos aspectos relacionados à tolerância a faltas. Após, apresenta-se o projeto e a implementação de mecanismos de injeção, detecção e recuperação de faltas em uma NoC, os quais foram modelados em SystemC e validados por simulação.

(10)

ABSTRACT

With the advent of new technologies for integrated circuits manufacturing, it has been possible to integrate entire system on a single chip, including several components such as processors, memories and other peripherals. For the future of integrated systems, Networks-on-Chip (NoCs) emerge as the best alternative for high performance in communications. But these components are susceptible to faults resulting from heating, power surges, external radiation and others effects. Faults on a router or on a link can lead to a wrong data transfer, which can cause problems in packet routing, resulting in system failures. A fault-tolerant NoC should be able to detect a fault and prevent it of leading the system to fail, ensuring the proper operation of the application. This work fits into this context, including studies of solutions to increase the reliability and availability of networks-on-chip and the implementation of mechanisms for detection and recovery of faults in a NoC. In the text presents a review of concepts about reliability and availability of networks-on-chip, with emphasis on aspects related to fault tolerance. After, we present the design and implementation of mechanisms for injection, detection and recovery of faults in a NoC, which were modeled in SystemC and validated by simulation.

(11)

1 INTRODUÇÃO

Nos últimos anos, tem-se observado uma demanda crescente por produtos com sistemas computacionais embarcados. Atualmente é notável que sistemas embarcados estejam presentes numa variedade de produtos, sejam eles eletrodomésticos, MP3 players, PDAs (Personal Digital Assitants), telefones celulares dispositivos de controles automotivos, em aeronaves, equipamentos industriais, entre outros (DE MICHELI; BENINI, 2006).

Com o advento de novas tecnologias de fabricação de circuitos integrados, tais sistemas estão cada vez mais complexos, integrando memórias, processadores, controladores e periféricos em um único chip, os quais são denominados Systems-on-Chip (SoC).

Para atender a requisitos de mercado, especialmente quanto ao tempo de projeto, os componentes de um SoC devem ser baseados em modelos de hardware reutilizáveis pré-projetados e pré-verificados, os quais são chamados núcleos ou cores (GUPTA; ZORIAN, 1997).

Nos SoCs atuais, os núcleos são usualmente interligados por barramentos compartilhados, os quais provêem a infra-estrutura de comunicação. Apesar de serem facilmente reutilizados, os barramentos possuem paralelismo limitado e não são escaláveis, dessa forma, não atendendo a requisitos previstos para futuros SoC com várias dezenas de núcleos integrados (ZEFERINO, 2003b).

Uma solução para esse problema discutida na literatura consiste no uso de redes de interconexão chaveada comumente conhecida como Redes-em-Chip ou Networks-on-Chip – NoCs (JANTSCH; TENHUNEM, 2003) que apresentam como vantagens o fato de serem reutilizáveis, possuírem largura desempenho escalável e oferecerem paralelismo em comunicação.

Uma NoC é constituída por roteadores e enlaces ponto-a-ponto que interconectam esses roteadores e os ligam aos núcleos de processamento. Esses componentes de comunicação são suscetíveis a faltas, sejam elas decorrentes de eventos como aquecimento, sobrecarga de energia ou radiação externa, entre outras. Por exemplo, o estudo realizado por Frantz (2007) ataca o problema de prover tolerâncias a faltas em NoCs através da diminuição de soft errors e faltas de crosstalk em NoCs pela aplicação de técnicas baseadas em códigos de correção de erros e de redundância de hardware.

(12)

Ao ocorrer uma falta em um roteador ou em um enlace da rede, as rotas baseadas no componente que sofreu a falta podem ser comprometidas, afetando o funcionamento do sistema como um todo. Uma NoC tolerante a faltas deve ser capaz de detectar essa falta e evitar que ela leve a uma falha do sistema e a um mal funcionamento da aplicação.

1.1

PROBLEMATIZAÇÃO

1.1.1

Formulação do Problema

No contexto de NoCs, o Grupo de Sistemas Embarcados e Distribuídos da Universidade do Vale do Itajaí (GSED-UNIVALI) possui um projeto na área de NoCs chamado SoCIN (SoC Interconnection Network) no qual têm sido desenvolvidas NoC baseadas na arquitetura da rede SoCIN (ZEFERINO, 2003). Até o momento, em nenhuma dessas redes, foram implementados mecanismos para prover tolerância à faltas no âmbito do GSED. Este trabalho insere-se nesse contexto visando estudar soluções para aumentar a confiabilidade e a disponibilidade da rede SoCIN, implementando mecanismos para detecção e recuperação de faltas.

1.1.2

Solução Proposta

A solução proposta neste Trabalho de Conclusão de Curso – TCC consiste em desenvolver e aplicar técnicas de tolerância a faltas na rede SoCIN e aumentar a disponibilidade da rede. A partir de um estudo sobre faltas possíveis de occorer em NoCs e técnicas adotadas para prover tolerância a faltas, foi selecionada um tipo de falta (crosstalk) e duas técnicas básicas para tolerância a faltas (paridade e CRC).

Este projeto se justifica como um Trabalho de Conclusão de Curso em Ciência da Computação, pois integra conceitos estudados em disciplinas do curso, em especial, Circuitos Digitais, Arquitetura e Organização de Computadores e Redes de Computadores, e aborda novos conceitos para tratar um problema de interesse das comunidades científica e industrial.

(13)

3

1.2

OBJETIVOS

1.2.1

Objetivo Geral

O objetivo geral deste projeto é investigar mecanismos para detecção e tratamento de faltas ocorridas em Redes-em-Chip para assegurar a sua continuidade de operação quando da ocorrência de uma falta em um de seus componentes.

1.2.2

Objetivos Específicos

Os objetivos específicos deste trabalho são:

1. Analisar a teoria básica sobre confiabilidade de sistemas e tolerância a faltas, com ênfase na caracterização de soluções disponíveis para prover tolerância a faltas em NoCs; 2. Prover tolerância a faltas à rede SoCIN e avaliar a efetividade dos mecanismos

implementados através de experimentos de simulação; 3. Validar o modelo de simulação em linguagem SystemC; e 4. Documentar e divulgar os resultados do trabalho.

1.3

Metodologia

A metodologia adotada para produção deste documento se dividiu em Etapa de Estudo, Análise, Especificação, Projeto, Desenvolvimento e Validação, Documentação e Divulgação dos resultados.

Na Etapa de Estudos, foram feitos estudos relacionados aos conceitos sobre confiabilidade e disponibilidade de sistemas, e tolerância a faltas em sistemas computacionais, identificação e compreensão desses conceitos, características e tecnologias. Como material de pesquisa, foram utilizados livros e artigos científicos.

Na Etapa de Análise, foi feita a seleção da NoC a ser adaptada para disponibilizar tolerâncias a faltas, detalhando as características da NoC selecionada. Também foi realizada seleção do tipo de falha a ser abordada para tratamento, também especificando as características da falha.

Na Etapa de Desenvolvimento e Validação, foi feita a modelagem das técnicas em SystemC e do módulo de injeção de faltas utilizando-se procedimentos de validação baseados em simulação.

(14)

Os componentes modelados foram integrados na rede SoCIN, sobre a qual foi realizada uma validação baseada em experimentos de simulação SystemC.

Na Etapa de Documentação, foi realizada a documentação de todo o processo existente no trabalho, desde a descrição do problema, a proposta de uma solução, a implementação da solução, validação e resultados finais. Esta etapa incluiu também a produção textual dividida em relatórios quinzenais, estudos de artigos científicos e teses de mestrado, bem como próprio TCC.

1.4

Estrutura do trabalho

Este trabalho está dividido em quatro capítulos. O Capítulo 1, Introdução, apresenta uma visão geral do trabalho bem como seus objetivos.

O Capítulo 2, Fundamentação Teórica, é apresentada uma revisão bibliográfica sobre confiabilidade de sistemas computacionais, assim como os conceitos abordados neste capitulo. Ainda neste capitulo, é feita uma descrição de tolêrancias a faltas e estratégias para prover tal tolerância em NoCs. Por fim, é feita uma síntese da rede SoCIN apresentando aspectos e características.

O Capítulo 3, Desenvolvimento, apresenta o projeto e a implementação dos mecanismos de selecionados para prover tolerância a faltas na rede SoCIN.

No Capítulo 4, Avaliação, apresentam-se as conclusões, onde são abordados as considerações sobre os experimentos e as dificuldades encontradas.

(15)

2

FUNDAMENTAÇÃO TEÓRICA

2.1

CONFIABILIDADE DE SISTEMAS COMPUTACIONAIS

Com o advento de novas tecnologias de fabricação de circuitos integrados, os sistemas computacionais estão cada vez mais complexos, integrando memórias, processadores, controladores e periféricos em um único chip, os quais são denominados Systems-on-Chip (SoCs). Essas novas tecnologias têm propiciado a massificação de sistemas computacionais, em especial os chamados sistemas embarcados (do inglês, embedded systems). Sistemas embarcados podem ser definidos como sistemas eletrônicos de processamento de informação embutidos em um produto de forma transparente para o usuário (MARWEDEL, 2006, p. 01). Exemplos de aplicações de sistemas computacionais embarcados incluem: tocadores de MP3, máquinas fotográficas digitais, injeção eletrônica, sistema de freios ABS (Anti-Blocking System), piloto automático, sistema de controle de vôo e de navegação, entre outros.

Confiabilidade e disponibilidade são cada vez mais desejáveis em sistemas computacionais, pois dia-a-dia aumenta a dependência das pessoas a sistemas automatizados e informatizados. Muitas aplicações de sistemas embarcados, como, por exemplo, sistema de freios ABS, são críticas e exigem que o sistema seja extremamente confiável, por razões de segurança. Outras são menos críticas, como, por exemplo, tocadores de MP3, mas também exigem certo nível de confiabilidade. Segundo Lung, Bessani e Fraga (2004, p. 149), “um sistema computacional é confiável se tem alta probabilidade de proceder sua função de acordo com sua especificação”.

Esta seção apresenta e discute conceitos sobre confiabilidade em sistemas computacionais visando fornecer uma base para o projeto proposto neste trabalho.

2.1.1

Conceitos de falta, erro e falha

Segundo Lafraia (2001, p. 12-15), falha é a perda de toda ou qualquer atividade que o sistema desempenha, sob o ponto de vista operacional, podendo também ser definida como a impossibilidade de um sistema ou componente cumprir com sua função corretamente. Lung, Bessani e Fraga (2004, p. 152) complementam essa definição afirmando que um sistema falha quando seu procedimento viola sua especificação.

(16)

As falhas são causadas por faltas, que podem ser de origem interna ou externa ao sistema. Lung, Bessani e Fraga (2004, p. 152) afirmam que uma falta pode permanecer inativa por um tempo até ser ativada. Um exemplo é um bug em um programa de computador que pode permanecer em estado inativo até ser eventualmente ativado pelo usuário. Esse bug é um erro de programação que pode levar o programa a um estado falho. Ou seja, a falta é a causa de um erro, que se constitui na parte do estado do sistema (estado errôneo), podendo conduzir a uma falha no sistema.

Assim, por exemplo, um chip de memória que apresenta uma falha do tipo grudado-em-zero (do inglês, stuck-at-zero) em um de seus bits (falta), pode provocar uma interpretação errada da informação armazenada em uma estrutura de dados (erro) e como resultado o sistema pode negar a autorização de embarque para todos os passageiros de um vôo (falha). Na Figura 1, é mostrada uma simplificação dos conceitos de falha, falta e erro, ilustrando uma relação de causa e efeito, sendo que uma falta pode vir a provocar um erro que pode levar a uma falha. No entanto, é importante observar que uma falta não necessariamente induz a um erro, e um erro não necessariamente conduz a uma falha (WEBER, 2001, p. 04).

Figura 1. Conceitos de falha, falta e erro. Fonte: Adaptado de Weber (2001, p. 04)

Lafraia (2001, p. 09) relata que os equipamentos falham numa visão ampla devido a três fatores básicos:

(17)

7

• Falha de projeto;

• Falha na fabricação; e

• Falha na utilização.

As falhas de projeto ocorrem quando o projeto não identifica as necessidades do cliente ou quando essas necessidades não estão adequadas. Um exemplo de falha de projeto é a seleção inadequada de materiais para o projeto.

Na fase de fabricação, a possibilidade de surgimento de falhas dá-se por processos de fabricação e/ou montagem inadequados para o sistema ou produto sendo processado.

Por último, a incorreta utilização do produto ou sistema em questão ocasionará uma possibilidade de falhas no mesmo, incluindo também a manutenção inadequada. As técnicas de confiabilidade abordam essas falhas através de métodos de melhoria da confiabilidade, recuperação e detecção e análise das falhas. Essas técnicas são ilustradas na Figura 2. Por exemplo, a melhoria da confiabilidade e a recuperação consistem em fazer com que as coisas parem de dar errado.

Figura 2. Atividades de confiabilidade para reduzir as falhas.

(18)

Alem dos fatores básicos de falhas em componentes computacionais, para definir uma falha considera-se ainda:

• Natureza: falha de hardware, falha de projeto, de operação, entre outras.

• Duração ou persistência: permanente ou temporária;

• Extensão: local a um módulo, global; e

• Valor: determinado ou indeterminado no tempo.

2.1.2

Fundamentos de confiabilidade

Lafraia (2001, p. 11) relaciona os conceitos de falha e confiabilidade afirmando que “a confiabilidade é a probabilidade de que um sistema exercerá sua função sem falhas, por um período de tempo previsto, sob condições de operação especificadas”. Neste contexto, Andrade (2002) afirma que a confiabilidade de um sistema pode ser definida como a probabilidade que o sistema irá operar corretamente e livre de falhas através de um intervalo de tempo.

Em alguns sistemas, falhas podem produzir efeitos mais severos que em outros. Por exemplo, uma falha em um sistema de fornecimento de energia de uma usina elétrica para um centro industrial altamente consumidor é altamente indesejável, pois, além de prejuízos econômicos, devido à paralisação de indústrias, também afetará outros sistemas em maior ou menor grau, como hospitais e aeroportos (LAFRAIA, 2001, p. 01).

Para reduzir a probabilidade de falhas em um sistema devem-se tomar precauções para evitar situações indesejáveis. Porém essas precauções somente poderão ser implantadas após avaliação probabilística de pontos “falhos” visando proporcionar um funcionamento adequado com observações de falhas em menor quantidade. Essa análise de confiabilidade é necessária, pois esforços básicos são insuficientes para alcançar essas características em sistemas cada vez mais complexos.

No projeto de um sistema confiável, deve-se investir tempo e recursos para assegurar que o nível de confiabilidade desejado seja alcançado. Além disso, o projetista deverá ter conhecimento adequado sobre as técnicas necessárias para prover a confiabilidade.

Segundo Lafraia (2001, p. 01), em alguns sistemas complexos, a maioria das variáveis não é considerada no projeto do sistema, pois essas variáveis não apresentam valores bem definidos,

(19)

9

requerendo tratamentos estatísticos. Nesse contexto, uma análise estatística visa fornecer parâmetros para tratar esses aspectos aleatórios no projeto, já que a confiabilidade de um sistema é iniciada anteriormente ao estágio do projeto, e após esse estágio não poderão ser feitas modificações para melhorar o requisito de confiabilidade.

Em alguns sistemas ou projetos de sistemas, diversas variáveis não são abordadas, pois apresentam de um modo geral, valores discrepantes. Para cenários com diferentes variações, são empregados procedimentos estatísticos, pois dessa forma é possível aproximar-se da realidade, com possibilidades de ocorrer uma falha no sistema (LAFRAIA, 2001, p. 02).

Segundo Lafraia (2001, p. 02), a confiabilidade está intimamente relacionada com a confiança que se emprega sobre um produto ou sistema, ou seja, que não apresente falhas. Na Figura 3, são demonstradas as idéias relacionadas ao conceito de confiabilidade.

Figura 3. Os diversos aspectos de confiabilidade.

(20)

2.1.3

Parâmetros de confiabilidade

Os conceitos de “confiança no sistema”, “durabilidade” e “pronto para operar sem falhas” são relacionados à idéia de confiabilidade e servem como parâmetros para obter-se confiabilidade em um sistema. O conceito matemático de confiabilidade é a probabilidade de que um sistema cumpra suas funções com sucesso, por um período de tempo previsto e sob condições de operação especificadas. (LAFRAIA, 2001, p. 15)

As fases da vida de um sistema são apresentadas e descritas pela curva da banheira, a qual é descrita na próxima subseção. Antes, porém, é necessário definir o que é taxa de falhas.

A taxa de falhas, segundo Lafraia (2001, p. 15), é a “freqüência com que as falhas ocorrem, num certo intervalo de tempo, medida pelo número de falhas para cada hora de operação ou número de operações do sistema.” Normalmente, a taxa de falhas é representada por λ. A proporção inversa da taxa de falhas é conhecida como “tempo médio entre falhas” (ou MTBF – Mean Time Between Failures). A expressão matemática do tempo médio entre falhas é definida por:

λ

1

=

TMEF Equação 1

2.1.4

Medidas de confiabilidade

Segundo Weber (2001, p. 06) as medidas de confiabilidades mais utilizadas na implementação de um projeto de circuitos integrados são:

• Taxa de defeitos;

• MTTF (Mean Time To Failure – Tempo Médio para Falhas);

• MTTR (Mean Time To Repair – Tempo Médio para Reparo); e

• MTBF.

A Tabela 1 mostra uma descrição resumida dessas medidas. Os fabricantes devem fornecer essas medidas para os seus produtos, tanto para os componentes eletrônicos, como para os sistemas computacionais mais complexos. Essas medidas são determinadas pelo fabricante, observando o comportamento dos componentes e dispositivos fabricados.

(21)

11 Tabela 1. Medidas de confiabilidade

Medidas de confiabilidade Descrição Taxa de defeitos

Número esperado de defeitos em um dado período de tempo, assumindo um valor constante durante o tempo de vida útil do componente.

MTTF Tempo esperado até a primeira ocorrência de defeito. MTTR Tempo médio para reparo do sistema.

MTBF Tempo médio entre as falhas do sistema. Fonte: Adaptado de Weber (2001, p. 07)

Weber (2001, p. 07) relata que a taxa de defeitos de um componente é dada por faltas por unidade de tempo e varia com o tempo de vida de um componente. Na próxima subseção é representada a vida de um componente através da curva da banheira.

2.1.5

Curva da banheira

A curva da banheira representa de uma maneira geral as fases da vida de um sistema ou componente. A Figura 4 ilustra a curva da banheira de um componente (ou sistema), a qual apresenta os três períodos de vida do componente: mortalidade infantil, período de vida útil e período de desgaste.

Figura 4. A curva da banheira.

(22)

No período chamado de “Mortalidade Infantil”, ocorrem as falhas prematuras. A taxa de falhas é decrescente. Essas falhas podem ter as seguintes origens: processos de fabricação e controle de qualidade deficiente, mão-de-obra desqualificada, materiais utilizados no projeto do sistema fora de especificação, erro humano, entre outras.

O período chamando de “Vida Útil” é caracterizado por uma taxa de falhas constante. Em geral as falhas são de natureza aleatória, pouco podendo ser realizado para evitá-las. Alguns exemplos de causas dessas falhas incluem: interferência indevida de tensão ou resistência, efeitos externos de radiação, falhas não detectáveis pelo melhor programa de manutenção preventiva, entre outras.

No período de “Desgastes”, a taxa de falhas cresce continuamente e dá-se o término do período de “Vida Útil”. As causas do período de desgastes são envelhecimento, desgaste, degradação, corrosão, deterioração mecânica, elétrica, química ou hidráulica, entre outras. Um resumo dessas características é apresentado na Tabela 2.

(23)

13 Tabela 2. Descrição das etapas da curva da banheira.

Falhas Prematuras Falhas Casuais Falhas por Desgaste Processos de fabricação

deficientes

Interferência indevida tensão ou resistência Envelhecimento Controle de qualidade deficiente Fator de segurança insuficiente Desgaste ou abrasão Mão-de-obra desqualificada Cargas aleatórias maiores que

as esperadas

Degradação de resistência Pré-teste insuficiente Defeitos abaixo do limite de

sensibilidade dos ensaios

Fluência

Debugging insuficiente Erros humanos durante uso Corrosão Materiais fora da

especificação

Aplicação indevida Deterioração mecânica, elétrica, química ou hidráulica

Componentes não especificados

Abusos Manutenção insuficiente ou

deficiente Componentes não testados Falhas não detectáveis pelo

melhor programa de manutenção preventiva

Vida de projeto muito curta

Componentes que falharam devido ao transporte indevido

Falhas não detectáveis durante o melhor debugging

Sobrecarga no primeiro teste Causas inexplicáveis Contaminação Fenômenos naturais

imprevisíveis Erro humano

Instalação imprópria

Fonte: Adaptado de Lafraia (2001, p. 17)

2.2

TOLERÂNCIA A FALTAS

Conceitualmente, tolerância a faltas visa permitir que o sistema continue seu fluxo de operação sem interrupções, mesmo na ocorrência de faltas parciais. Lung, Bessani e Fraga (2004, p. 152) definem que um sistema computacional tolerante a faltas utiliza técnicas de redundâncias para manter o serviço funcionando corretamente de acordo com o especificado, mesmo em presença de componentes faltosos.

Conforme ilustrado previamente na Figura 1, uma falta produz um erro que pode levar a uma falha. Um sistema tolerante a faltas evita que essa falha aconteça mesmo na ocorrência da falta. Disso origina o termo “tolerância a faltas”, o qual deriva da expressão em inglês fault tolerance. No Brasil, alguns grupos de pesquisa traduzem essa expressão para “tolerância a falhas” e adotam uma

(24)

terminologia diferente da utilizada neste trabalho. Para esses grupos, uma falha produz um erro e pode levar a um defeito.

2.2.1

Técnicas de tolerância a faltas

A função de tolerância a faltas é mascarar as faltas ocorridas no sistema, mantendo seu fluxo de funcionamento corretamente. No projeto de sistemas tolerantes a faltas são abordadas técnicas para prover tal tolerância. Essas técnicas são descritas como:

• Detecção de erros;

• Confinamento de erros;

• Recuperação de erros; e

• Tratamento de faltas.

A técnica de detecção de erros identifica a presença de elementos faltosos através de deduções pela constatação de erros, utilizando métodos de testes completos, testes de aceitação, testes independentes, testes internos entre outros.

A técnica de confinamento de erro consiste em introduzir mecanismos que incorporem barreiras de isolamento, a fim de minimizar ou evitar a propagação de erros para todo o sistema. Um no-break ligado a um computador central é tipicamente um exemplo de confinamento de erros causados pela falta de energia elétrica.

A técnica de recuperação de erros consiste em restaurar o sistema, na ocorrência de erro, levando-o a um estado correto. São utilizadas duas técnicas para recuperação de erros:

• Processamento de erros: é dividido em:

o Recuperação em retrocesso: retorna ao um estado anterior (correto no sistema) e a partir desse estado recomeça o processamento.

o Recuperação em avanço: a partir de um estado errôneo, coloca-se em um estado posterior correto.

• Mascaramento de erros: utilização de componentes redundantes para que componentes faltosos sejam mascarados.

(25)

15

O tratamento de faltas pode ser configurado de maneira estática ou dinâmica para remover os elementos faltosos do sistema. Na configuração estática, utilizam-se técnicas de replicação ativa de um componente. Nesse caso, como ilustra a Figura 5, todos os componentes são ativos (M1, M2 e M3), pois recebem as mesmas entradas e fornecem supostamente as mesmas saídas. Um bloco votador coleta todos os dados de saída de cada componente, compara-os e fornece como saída aquela que tiver maior ocorrência ou que apresentar a maioria.

Figura 5. Replicação ativa de componente – configuração estática. Fonte: Adaptado de Lafraia (2001, p. 157)

A configuração dinâmica é implementada usando replicação passiva. Nessa técnica, os componentes de hardware são replicados e quando um detector de erros identifica que o componente principal sofreu uma falta, o sistema automaticamente chaveia para um componente secundário, de mesma característica, como apresentado na Figura 6.

Figura 6. Replicação passiva de componente – configuração dinâmica. Fonte: Adaptado de Lafraia (2001, p. 157)

(26)

2.3

CONFIABILIDADE E TOLERÂNCIA A FALTAS EM REDES-EM-CHIP

Esta seção apresenta uma discussão em que são apresentados conceitos básicos sobre NoCs. Após, são descritos trabalhos relacionados a esta pesquisa em que é tratada a questão da confiabilidade e da tolerância a faltas em NoCs com o objetivo de caracterizar as soluções propostas na literatura, englobando a falta abordada, os componentes da NoC considerados, a implementação da solução avaliada e os resultados obtidos.

2.3.1

Definição de Rede-em-Chip

Segundo Zeferino (2003a), uma rede-em-chip (ou NoC – Network-on-Chip) pode ser definida como um conjunto de roteadores (do inglês, router) e canais ponto-a-ponto que interligam os núcleos1 de um sistema integrado (do inglês, SoCs) a fim de prover e suportar comunicação entre esses núcleos. Essas redes são fortemente inspiradas na aplicação de redes de computadores convencionais.

As NoCs são baseadas em arquiteturas de redes de interconexão usadas em computadores paralelos e são constituídas por roteadores e enlaces (do inglês, links). Um enlace é descrito como uma ligação entre dois roteadores e pode possuir um ou dois canais físicos unidirecionais. Em NoCs, em geral, os enlaces são constituídos por dois canais unidirecionais opostos, sendo utilizados de forma a permitir transferência simultânea de informação nas duas direções. Uma NoC é caracterizada por sua topologia e pelos mecanismos de comunicação utilizados (ZEFERINO, 2003a).

Zeferino (2003b, p. 29) descreve que o modelo de comunicação tipicamente utilizado em sistemas baseados em redes-em-chip é o da troca de mensagens, sendo que a comunicação entre os núcleos é realizada através do envio e do recebimento de mensagens de solicitação e de resposta.

Uma mensagem é geralmente constituída por três partes (Figura 7):

1

De acordo com Barcelos (2008, p. 15), um núcleo é um componente de hardware de um SoC fabricado e pré-verificado. São denominados também como IP (do inglês, Intellectual Property) e podem ser desenvolvidos pela empresa responsável pelo projeto ou adquiridos de terceiros (BRIÃO, 2008). Esses núcleos podem executar diversas tarefas em um sistema computacional integrado e correspondem a processadores, memórias, interfaces de protocolos de comunicação, entre outros.

(27)

17

Cabeçalho (do inglês, header): inclui informações de roteamento e de controle utilizados pelo roteador;

Carga útil (do inglês, payload): composta pelo conteúdo da mensagem; e

Terminador (do inglês, trailer): inclui informações para sinalização do fim da mensagem e também dados utilizados para detecção de erros.

Figura 7. Exemplo da estrutura de uma mensagem. Fonte: Adaptado de Zeferino (2003b)

Geralmente as mensagens enviadas e recebidas são particionadas em unidades menores de transferência chamadas pacotes. Um pacote é composto por uma sequencia de palavras cuja largura é igual à largura física do canal. A largura física do canal é definida pelo número de bits de dados simultaneamente transmitidos. Tal característica é descrita como physical unit ou phit. O phit ainda pode incluir sinais de enquadramento e de controle de integridade do dado.

A Figura 8 ilustra um canal de comunicação entre o emissor e o receptor. Além dos fios associados ao phit (banda lateral e palavra de dado), um canal inclui um terceiro conjunto de fios para regular o tráfego sobre ele.

(28)

Figura 8. Um canal de comunicação. Fonte: Adaptado de Zeferino (2003a)

O componente construtivo de uma rede em chip é o seu roteador. Zeferino (2003a) afirma que “o roteador tem a função de encaminhar mensagens ou pacotes transferidos pela rede”. Segundo Brião (2008, p. 32) um roteador é composto basicamente de uma estrutura de chaveamento, canais de entrada e saída, um módulo de controle e elementos de armazenamento temporário conhecidos como buffers, presentes nas entradas e saídas dos canais. A Figura 9 ilustra resumidamente os componentes básicos de um roteador de uma rede em chip.

Figura 9. Estrutura genérica de um roteador de uma rede em chip. Fonte: Adaptado de Brião (2008, p. 32)

De acordo com Zeferino (2003a, p. 32), uma rede-em-chip pode ser caracterizada por sua topologia, roteamento, controle de fluxo, chaveamento e arbitragem conforme sua utilização. A Tabela 3 resume essas características bem como sua definição ou função.

(29)

19 Tabela 3. Características de uma rede em chip. Característica Definição ou Função

Topologia Define a disposição dos roteadores e enlaces sob forma de um grafo Roteamento Determina um caminho dentro do grafo que uma mensagem percorre

Chaveamento Define como e quando um canal de entrada de um roteador é conectado a um canal de saída selecionado pelo algoritmo de roteamento

Controle de fluxo Gerencia a alocação de canais e buffers para uma mensagem que atravessa o grafo

Arbitragem Determina qual canal de entrada pode utilizar um determinado canal de saída do roteador

Memorização Define como e onde serão armazenadas mensagens bloqueadas em um roteador

Fonte: Adaptado de Zeferino (2003a, p. 32)

2.3.2

Faltas e Falhas em Redes-em-Chip

As NoCs foram propostas como uma plataforma alternativa de comunicação capaz de prover interconexões e comunicação entre os núcleos de um mesmo chip, tratando questões como desempenho, consumo de energia e reusabilidade para grandes sistemas integrados. Por outro lado, a mesma evolução tecnológica dos componentes reduziu drasticamente a confiabilidade de circuitos integrados, tornando-os dispositivos mais sensíveis a novos tipos de faltas.

De Micheli e Benini (2006, p. 81) classificam as faltas em redes-em-chip como: (i) estáticas, se estão presentes na rede quando o sistema está ativo ou ligado; ou (ii) dinâmicas, se aparecem de forma aleatória durante o funcionamento do sistema.

Uma falta estática surge na rede quando o sistema é posto em funcionamento e permanece até que a falta provocada seja reparada. Um exemplo é a stuck-at-fault, em que um elemento do circuito permanece “amarrado” ou “grudado” (stuck-at) em nível lógico 0 (stuck-at 0) ou em nível lógico 1 (stuck-at 1).

Já uma falta dinâmica é transitória e surge aleatoriamente durante a operação do sistema. Dois exemplos conhecidos de faltas transitórias são o crosstalk e o soft error. O crosstalk é causado por um acoplamento indutivo e capacitivo entre fios metálicos no interior do circuito, o que pode gerar sinais incorretos dentro do circuito quando um ou mais sinais acoplados chaveiam. O soft

error é uma falta também transitória provocada pela interação de partículas energéticas com o

substrato de silício do chip, que produz um caminho ionizado podendo carregar ou descarregar o nodo atingido gerando um pulso de corrente temporário (FRANTZ, 2007). O efeito principal de soft

(30)

error é um bit-flip (mudança de estado) em uma célula de memória conhecido como Single Event

Upset – SEU (FRANTZ, 2007). A Figura 10 ilustra essas duas faltas dinâmicas: crosstalk devido ao efeito de acoplamento e o soft error causando uma ionização do substrato de silício devido a uma partícula atingida.

Figura 10. Crosstalk e soft errors em um circuito integrado. Fonte: Adaptado de Frantz (2007)

De Micheli e Benini (2006) discutem esses e outros modelos de faltas e de falhas que podem ocorrer em uma NoC. Esses modelos são resumidos na Tabela 4.

(31)

21

Tabela 4. Modelos de falhas e faltas2 tradicionalmente consideradas para uma rede de interconexão.

Modelo de falha Modelo de falta Valor

típico

Unidade

Ruído gaussiano num canal Erro de bit transitório 10-20 BER (errors/bit) Partícula alfa atingindo uma

memória (por chip) Soft-error 10

-9

SER (s-1) Partícula alfa atingindo uma lógica

(por chip) Erro de bit transitório 10

-10

BER (s-1) Eletromigração de um condutor Falta do tipo stuck-at 1 MTBF (FITs) Deslocamento do threshold em um

dispositivo Falta do tipo stuck-at 1 MTBF (FITs)

Corrosão de conector aberto Falta do tipo stuck-at 10 MTBF (FITs)

Solda fria Falta do tipo stuck-at 10 MTBF (FITs)

Falha de fonte de alimentação Parada de funcionamento 104 MTBF (FITs) Falha de software

Parada de funcionamento ou

Byzantine (funcionamento

incorreto)

104 MTBF (FITs)

Fonte: Adaptado de De Micheli e Benini (2006, p. 82)

Onde: BER: Bit Error Rate SER: Soft Error Rate FIT: Failure in Time

2.3.3

Estratégias para Prover Tolerância a Faltas em Redes-em-Chip

A tolerância a faltas em NoCs é uma questão que vem sendo investigada por diferentes grupos de pesquisa, os quais abordam esse problema com diferentes focos. Nesta subseção, são analisadas algumas contribuições descritas na literatura. Destaca-se que não foi realizada uma revisão exaustiva do estado da arte referente a esse tema, mas os trabalhos aqui apresentados fornecem uma visão do cenário recente de pesquisa sobre tolerância a faltas em NoCs.

Avaliação dos efeitos de SEU e crosstalk em roteadores de NoC

Frantz et al. (2006) avaliaram os efeitos e os impactos sobre faltas decorrentes do processo de fabricação de componentes em NoCs, do aumento da freqüência de operação do circuito e da radiação presente no espaço do ambiente no serviço de chaveamento. Para avaliar os efeitos causados por essas faltas, os autores desenvolveram um mecanismo de injeção de faltas baseado nos

2

(32)

modelos de falta de erro transitório de bit (para faltas de crosstalk) e de soft error (para faltas do tipo SEU – Single Event Upset).

Para avaliação, foi implementado um mecanismo de injeção de faltas dividido em dois blocos: Gerador Randômico (RG – Random Generator) e um Gerador de Máscara (MG – Mask Generator). O primeiro produz padrões pseudo-aleatórios que são decodificados pelo segundo. O MG gera todos os sinais de falta habilitadas que controlam a lógica da injeção de falta adicionada para todos os pontos suscetíveis no modelo de simulação, ou seja, registradores e buffers. O local e o momento em que a falta ocorre são escolhidos aleatoriamente pelo RG.

O mecanismo de injeção de faltas de soft error simula os efeitos de SEU em componentes relacionados com a memória (ou seja, registradores, memórias e flip-flops, entre outros), provocando bit flips internamente. O mecanismo de injeção de faltas de erro transitório de bit simula efeitos de crosstalk no enlace utilizando o modelo MAF3 (Maximal Aggressor Fault).

Os efeitos de faltas de soft error e crosstalk sobre roteador de uma NoC foram avaliados através da ferramenta ModelSim com ambiente de simulação in tandem (um roteador isento de faltas e um outro roteador com presença de faltas). Com os resultados obtidos, os autores concluíram que a ocorrência de tais faltas pode afetar o funcionamento correto de uma NoC. No artigo, os autores não apresentaram nenhuma solução para prover tolerância a faltas.

Avaliação do sobrecusto de tolerância a faltas em mecanismos de controle de fluxo

Pullini et al. (2005) analisaram o sobrecusto de prover tolerância a faltas transitórias (crosstalk, ruído de fonte de alimentação, interferência eletro-magnética e soft-errors) no mecanismo de controle de fluxo de uma NoC. Os autores avaliaram três estratégias de controle de fluxo utilizadas em enlaces longos que requerem repetidores: (i) STALL/GO; (ii) T-error; e (iii) ACK/NACK. Esses repetidores são em geral baseados em FIFOs de duas posições. Os autores avaliaram os custos e o desempenho dessas técnicas, sendo que os custos de silício e de potência foram estimados de forma qualitativa e usando modelos analíticos. O desempenho foi avaliado através de simulação usando a plataforma virtual MPARM (BENINI et al., 2005) e a NoC xpipes

3 Segundo Lucas e Moraes (2009), MAF (Maximal Aggressor Fault) é um modelo de falta para simplificar a criação de

vetores de teste para induzir a ocorrência de efeitos de crosstalk em circuitos integrados. Este modelo reduz o conjunto de faltas considerando as combinações do pior caso.

(33)

23

(BERTOZZI; BENINI, 2004). A Tabela 5 apresenta um resumo dos resultados obtidos pelos autores. Na tabela, N indica o número de repetidores, M é um parâmetro de projeto do T-Error (que é menor ou igual a 50% de N) e k é um parâmetro de projeto do ACK/NACK que define o tamanho de um buffer de retransmissão no nodo fonte da comunicação.

Com base nesses resultados, os autores concluíram que STALL/GO possui um sobrecusto menor e um melhor desempenho, porem é mais suscetível a faltas. O T-Error pode ser implementado para melhorar o desempenho do enlace ou para melhorar a confiabilidade do sistema, porém não traz benefícios para o mesmo quando o número de estágio de pipeline é reduzido. A técnica de ACK/NACK oferece um suporte mais extensivo para manipulação faltas, mas apresenta um maior sobrecusto de potência e da área. Além disso, na presença de congestionamentos pesados ou enlaces muito extensos com pipeline, essa técnica apresenta perda de desempenho. Em outro cenário, quando o enlace é curto ou os congestionamentos são relativamente baixos, o aumento da latência percebida na aplicação tornou-se insignificante quando usado o ACK/NACK.

Tabela 5. Comparação qualitativa dos protocolos de controle de fluxo.

Métricas STALL/GO T-Error ACK/NACK

Área de buffer 2N + 2 > 3M + 2 3N + k

Área de lógica Baixo alto médio

Desempenho Bom bom dependente

Potência dissipada Baixa média / alta alta Tolerância a faltas indisponível parcial suportado Fonte: Adaptado de Pullini et al. (2005)

Tolerância a faltas em NoCs usando codificação e retransmissão

Braga, Cota e Lubaszewski (2009) trataram faltas ocorridas nos enlaces em uma arquitetura de NoC utilizando técnicas de codificação e retransmissão de dados para a detecção e/ou correção de erros. Foram abordadas três técnicas de tolerância a faltas aplicadas no canal de comunicação: (i) abordagem de paridade única; (ii) abordagem de retransmissão única; e (iii) abordagem de transmissão utilizando codificação Hamming.

A abordagem da paridade única prevê dois fios adicionais ao canal de comunicação do enlace da rede: um para enviar a paridade dos dados transmitidos e outro para sinalizar um erro de paridade no dado transferido. O transmissor, ao enviar um dado, calcula e envia a paridade desse dado. O receptor, ao receber o dado, calcula a paridade do dado recebido e compara-o a paridade

(34)

sinalizada pelo transmissor. Se forem iguais, o dado é consumido. Do contrário, um sinal de erro é enviado e o transmissor deve reenviar o dado. Na retransmissão, o dado é dividido em duas metades: LSB (Least Significant Bits) e MSB (Most Significant Bits). Primeiramente, a metade LSB é enviada em duas cópias pelos fios do canal e a paridade é calculada sobre uma das cópias. Ao receber o dado, o receptor analisa a paridade da cópia associada ao bit de paridade e, a partir dessa análise, consegue determinar qual cópia deve consumir: aquela para a qual foi transmitido o bit de paridade ou a outra. Após, o mesmo procedimento é utilizado na retransmissão da metade mais significativa (MSB). Com isso, é possível contornar uma falha transitória ou permanente que tenha ocorrido em uma das metades do canal de dados. A vantagem desta técnica está no baixo sobrecusto de fios e a desvantagem está na necessidade de duas retransmissões.

A segunda abordagem é baseada na redução da quantidade de retransmissões para apenas uma. Para tal, em relação ao método anterior, este método são adicionados mais dois fios ao canal de comunicação, implementando um par de bits de paridade e de erro para cada metade dos bits de dados do canal. O transmissor calcula as duas paridades: uma para os bits menos significativos e outra para os bits mais significativos, e envia essas paridades com os bits de dados através de canais dedicados (paridade LSB e paridade MSB, respectivamente). O receptor verifica a paridade enviada pelo transmissor e calcula da paridade dos bits de dado recebidos. Se o dado transmitido está correto, o dado é processado no receptor. Caso contrário, o receptor sinaliza o erro através de um canal (sinal de erro), de acordo com a sua posição: error_LSB, se o erro estiver na metade menos significativa, ou error_MSB, se o erro estiver na metade mais significativa.

O transmissor recebe o sinal de erro relativo à metade faltosa do dado e, em seguida, retransmite apenas a metade faltosa nas duas metades do canal, junto com o bit de paridade. O receptor recebe as duas cópias da metade transferida, calcula a paridade de uma das cópias, compara com a paridade enviada e escolhe a cópia correta. A técnica de 2 bits de paridade apresenta como principal desvantagem a necessidade de duas retransmissões de dados.

Na terceira abordagem, é aplicada a codificação Hamming nos dados e nos sinais de val, e no sinal ack é aplicado TMR – (Triple Modular Redundancy). Os dados enviados pelo transmissor são codificados antes de serem enviados e são decodificados antes de serem consumidos pelo receptor. Nesta técnica, são adicionados dois fios para cada sinal de controle de fluxo da rede SoCIN (sinal val e sinal ack) e mais os fios adicionais para aplicar codificação Hamming, que variam de acordo com o número de bits de dados. Por exemplo, para 18 bits de dados são

(35)

25

totalizados 9 fios adicionais, sendo 5 para os dados, 2 fios a mais para o sinal val e 2 dois mais para

ack.

O resultado apresentado pelos autores foi concentrado no sobrecusto de fios e no atraso nas transmissões de dados. Na Tabela 6, é observado um aumento de fios adicionais na técnica de codificação Hamming enquanto técnicas por paridades esse número mantém constante.

Tabela 6. Comparação do aumento de fios.

# de bits NoC_1P NoC_2P NoC_HP

18 (16+2) 7 10 9

34 (32+2) 7 10 10

66 (64+2) 7 10 11

130 (128+2) 7 10 12

Fonte: Adaptado de Braga, Cota e Lubaszewski (2009)

Na Tabela 7 é apresentada uma comparação dos resultados de atraso entre as três técnicas abordadas (NoC_1P – abordagem de paridade única, NoC_2P – abordagem de retransmissão única e NoC_HP - abordagem de transmissão utilizando codificação Hamming) e uma NoC sem tolerância a faltas (NoC_SP). É apresentado também o atraso na transmissão de dados na ocorrência de uma falta.

Tabela 7. Resultados de atraso.

Atraso NoC_1P NoC_1P NoC_2P NoC_HC

Transmissão livre de faltas 5.718 9.213 7.836 11.09

Transmissão faltosa 5.718 27.639 15.672 11.09

Fonte: Adaptado de Braga, Cota e Lubaszewski (2009)

Mecanismo leve tolerante a faltas em NoCs

Koibuchi et al. (2008) propuseram um mecanismo leve tolerante a faltas baseado em um caminho padrão de backup (DBP – Default Backup Path) para prover alta confiabilidade em uma NoC. A fim de manter a conectividade da rede, o mecanismo implementado fornece um caminho alternativo como backup entre determinadas portas do roteador e dos núcleos para contornar uma falta permanente no crossbar do roteador.

O mecanismo consiste em desviar o caminho de dados dentro do roteador faltoso através de um caminho padrão de backup, apresentando baixa suscetibilidade para faltas, devido à sua

(36)

simplicidade do projeto. O mecanismo assegura uma degradação baixa do desempenho da rede quando do aumento do número de faltas no roteador, sem levar a rede a falhar.

Enquanto todos os roteadores estão íntegros, nenhum dos caminhos padrão de backup é utilizado. O DBP é ativado somente quando um elemento de processamento local não pode enviar ou receber pacotes, ou quando um pacote não pode ser corretamente transferido ao longo do caminho de dados (causado por uma falta grave em um roteador). Com a utilização do DBP nos roteadores faltosos, é formada uma topologia anel unidirecional capaz de prover um roteamento livre de deadlock com apenas dois canais virtuais

O mecanismo proposto foi implementado em uma rede 2-D wormhole com síntese em uma tecnologia de standard cell de 90 nm e apresentou um sobrecusto de área de 12,6%. Foi implementado um simulador da rede em nível de flit escrito em C++. Os experimentos de simulação realizados mostraram que o mecanismo assegura uma baixa degradação no desempenho da rede na medida em que aumenta o número de faltas nos roteadores.

Tolerância a faltas de crosstalk em NoC

Lucas e Moraes (2009) propuseram um mecanismo de recuperação de erros devido a efeitos de crosstalk em nível em flits para aumentar a confiabilidade de uma NoC. Segundo os autores, essa técnica prove baixo sobrecusto de área, alta cobertura de faltas e latência mínima na recuperação de erros.

Os autores trataram de faltas de crosstalk nos enlaces entre roteadores utilizando um mecanismo de codificação CRC (Cycle Redundancy Check) para detecção de faltas, retransmitindo flits quando da ocorrência de uma falta no próximo ciclo de clock.

Para habilitar a codificação de um flit por ciclo de clock, os autores implementaram um circuito de codificação CRC em paralelo nas interfaces de transmissão dos roteadores. Nas interfaces de recepção, um decodificador baseado no mesmo circuito de codificação compara os bits de paridade recebidos com os bits gerados localmente pelo decodificador. Se os bits de paridade recebidos forem diferentes, é acionado um sinal de erro pelo decodificador a fim de notificar o transmissor e o flit recebido não é armazenado no buffer de entrada. O flit é então retransmitido pelo transmissor.

(37)

27

O mecanismo proposto foi implementado na rede Hermes (uma NoC 2-D wormhole) com enlaces de 16 bits e sintetizado em uma tecnologia de standard cell de .35 µm, apresentando um sobrecusto de área de 13,3%. Para avaliação de desempenho, foi utilizado um simulador SystemC/VHDL da rede Hermes e os resultados mostraram que, num cenário de pior caso, o sobrecusto na latência foi de 17%.

2.4

REDE SOCIN

Este trabalho busca a implementação de mecanismos para detecção e tratamento de faltas, os quais serão adicionados na arquitetura de uma NoC. Os experimentos serão baseados em um modelo de simulação da NoC a fim de permitir a injeção de faltas e a avaliação da capacidade da rede de detectar e se recuperar dessas faltas. Para tal utilizará como arquitetura de referência a NoC SoCIN (SoC Interconnection Network), a qual foi desenvolvida por Zeferino (2003b). Esta seção apresenta uma visão geral da rede, descrevendo os aspectos necessários para o projeto a ser apresentado.

2.4.1

Arquitetura da rede

A rede SoCIN pode ser construída usando topologias 2-D, como malha ou toróide, sendo a topologia em malha apresentando baixo custo, enquanto a toróide prove redução na latência das mensagens. Essas topologias são ilustradas na Figura 11. A utilização de uma topologia toróide na SoCIN tem a vantagem de reduzir o tamanho do enlace e o consumo de energia, além de melhorar a freqüência de operação do canal na rede.

Figura 11. Duas topologias para rede SoCIN: malha e toróide. Fonte: Adaptado de Zeferino, Santo e Susin (2003)

(38)

Os enlaces constituídos na rede SoCIN incluem dois canais unidirecionais opostos, cada um com seus dados, enquadramentos e sinais de controle de fluxo (Figura 12). Cada canal é composto por n bits para dados e dois bits para enquadramento do pacote: bop (begin of packet) presente no cabeçalho do pacote e eop (end of packet), configurado na última palavra do pacote. Além dos n + 2 bits, cada canal inclui um par de sinais necessários ao controle de fluxo (val e ack), 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.

Figura 12. Enlace da rede SoCIN.

Fonte: Adaptado de Zeferino, Santo e Susin (2003)

2.4.2

Modelo de comunicação

Assim como na maioria das redes-em-chip, o modelo de comunicação utilizado na SoCIN é baseado na troca de mensagens. Nos sistemas baseados na SoCIN, a comunicação dos componentes dá-se através do envio e recebimento de mensagens de requisições e respostas.

Os núcleos são implementados em dois modelos de comunicação OCP (Open Core Protocol) e VCI (Virtual Component Interface), para permitir integração de outros núcleos compatíveis com a interface padrão existente. O protocolo de comunicação utilizado na rede SoCIN é do VCI.

2.4.3

Chaveamento

A rede SoCIN utiliza chaveamentos por pacote do tipo wormhole. Neste tipo de chaveamento, um pacote é dividido em flits que avançam pela rede em um modo pipeline. Os buffers têm capacidade para armazenar poucos flits, de modo que os flits de um pacote sejam mantidos em diferentes roteadores na rede, para caso onde o tamanho do pacote é maior que o

(39)

29

espaço livre do buffer do componente. A principal vantagem do chaveamento por wormhole visa obter roteadores rápidos e de baixo custo.

2.4.4

Roteamento e formato do pacotes

O roteamento na rede SoCIN é determinístico e baseado na origem. Cada emissor de pacotes deve determinar o caminho a ser utilizado pelo pacote e inclui informações de roteamento no cabeçalho do pacote. A técnica de roteamento utilizado na SoCIN é XY, que consiste em percorrer primeiro os canais na direção X até atingir a coluna à qual o destinatário está posicionado, em seguida deve percorrer os canais na direção Y. Uma desvantagem do roteamento XY é uso restrito de toda a banda disponível na rede, porém torna-se economicamente viável apresentando baixo custo.

Na Figura 13 são apresentados alguns exemplos de rotas permitidas pelo roteamento XY em uma rede com topologia em grelha 2-D (a tabela ao lado da lista mostra as rotas ilustradas na figura). Como pode ser observado, o caminho tomado pelos pacotes emitidos para cada um dos dois núcleos é diferente, pois a direção Y só pode ser utilizada após serem esgotados os deslocamentos na direção X.

Figura 13. Exemplos de rotas permitidas no roteamento XY. Fonte: Adaptado de Zeferino (2003b, p. 122)

Numa segunda versão da rede SoCIN (ZEFERINO; SANTO; SUSIN, 2004), passou-se adotar uma estratégia de roteamento distribuído, ao invés de roteamento na origem. Dessa forma, a decisão do roteamento é feita pelos roteadores a partir da comparação do endereço do destinatário com o endereço do próprio roteador. Com isso, além do roteamento determinístico, é possível implementar algoritmos de roteamento parcial ou totalmente adaptativos.

(40)

O pacote de dados da rede SoCIN é composto por um flit cabeçalho e por flit de carga útil. Cada flit possui n bits de dados e dois bits (eop e bop) para sinalizar o início e o fim do pacote. No cabeçalho, é reservado m bits para armazenar informações de roteamento (RIB) e n-m para uso do protocolo de alto nível (HLP – Higher Level Protocol).

2.4.5

Arbitragem, controle de fluxo e armazenamento

Na SoCIN, a arbitragem é feita de forma distribuída e apresenta um árbitro round-robin em cada canal de saída de cada porta de comunicação do roteador. Quando um canal de entrada recebe um cabeçalho de pacote e executa o algoritmo de roteamento, ele envia uma requisição ao árbitro do canal de saída selecionado por esse algoritmo. Em caso de existir várias requisições simultâneas ao mesmo árbitro. O arbitro então aplica um critério baseado em prioridades dinâmicas rotativas para selecionar uma das requisições.

O controle de fluxo na rede SoCIN é baseado no protocolo de handshake. Cada canal físico liga um emissor a um receptor. O emissor ativa a linha val para sinalizar a presença de um dado no canal e o receptor ativa ack para sinalizar que o dado foi recebido. Na nova versão da rede SoCIN, foi incluída alternativa de se utilizar controle de fluxo baseado em créditos (ZEFERINO; SANTO; SUSIN, 2004).

Quanto à memorização, existe um buffer FIFO (First-In, First-Out) em cada canal de entrada de cada porta de comunicação. Esses parâmetros podem ser dimensionados conforme os requisitos da aplicação. A segunda versão da rede SoCIN, oferece a possibilidade de se utilizar FIFOs nos canais de saída, além dos canais de entrada.

2.4.6

Arquitetura do Roteador RASoC

O bloco construtivo da rede SoCIN é o roteador RASoC (Router Architeture for System-on-Chip). O roteador RASoC possui até cinco portas bi-direcionais. As portas são denominadas como L (Local), N (North), E (East), S (South) e W (West), e dependendo da posição do RASoC na rede e a topologia de rede, uma ou duas dessas portas não são necessárias ser implementadas, reduzindo o custo da rede.

Conforme ilustrado na Figura 14, cada porta é compatível com os sinais de enlace SoCIN e possui dois canais unidirecionais: canal de entrada (sufixo in) e canal de saída (sufixo out). Internamente, o roteador RASoC possui um crossbar 5x5 parcial que implementa apenas 20 das 25

(41)

31

conexões que poderiam ser realizadas em um crossbar com essas dimensões. Essa limitação deve-se de que não permitido a um canal de entrada de uma porta deve-ser conectado ao canal de saída associado à mesma porta. Por exemplo, um pacote que chega ao canal de entrada da porta W de um roteador, não pode ser encaminhado ao canal de saída dessa porta. Neste exemplo, os únicos canais de saída possíveis de serem utilizados por esse pacote são aqueles associados às portas L, N, E e S.

Figura 14. Interface e arquitetura do roteador RASoC. Fonte: Adaptado de Zeferino, Santo e Susin (2003)

Para a segunda versão da rede SoCIN (ZEFERINO; SANTO; SUSIN, 2004), foi implementado um novo roteador que estende a capacidade de parametrização do roteador RASoC, acrescentando alternativas arquiteturais, conforme já discutido. Esse novo roteador é denominado ParIS (Parameterizable Interconnect Switch).

O módulo do canal de entrada é composto por quatro blocos arquiteturais denominados Input Flow Control (IFC), Input Buffer (IB), Input Controller (IC) e Input Read Switch (IRS), ilustrados na Figura 15.

O bloco IFC implementa a lógica de tradução entre o handshake e o protocolo de controle de fluxo FIFO, através de uma porta AND. O bloco IC desempenha as funções de roteamento. Ao detectar a presença de um flit cabeçalho no bloco IB de saída, o mecanismo analisa as informações do campo RIB do flit cabeçalho e executa o algoritmo de roteamento para selecionar o canal de saída. Em seguida, envia uma solicitação para o canal de saída selecionado e atualiza os campos Xmod ou Ymod. O bloco IRS recebe os quatro pares de sinais x_rd e x_gnt de cada módulo de saída e

Referências

Documentos relacionados

E HABILIDADES DESAFIO DO DIA FORTALECENDO SABERES DINÂMICA LOCAL INTERATIVA LINGUAGENS MAT.,

Entre estes pacientes, 52 intervenções (50%) foram realizadas em decorrência de edema de laringe após broncoscopia, 11 casos para assistência ventilatória, 12 para introdução

[r]

Os candidatos reclassificados deverão cumprir os mesmos procedimentos estabelecidos nos subitens 5.1.1, 5.1.1.1, e 5.1.2 deste Edital, no período de 15 e 16 de junho de 2021,

Desse modo, podemos dizer que a significação é dotada tanto de uma sintaxe (relação entre elementos) quanto de uma semântica (carga de sentidos dos elementos e de suas relações).

O facto de ter um campo de vento homogéneo (Figura 5), não influi notoriamente nos resultados simulados, pois a grelha de 0.025 o da região dos Açores foi aninhada com as duas

Verificou-se que mais de 80% dos casos se referiam a conviventes de doentes com exame bacteriol6gico da expectoray3o positivo por exame directo com colorayao de Ziehl-Neelsen

Observando-se a Figura 6.5.1, nota-se que as amostras de 10B(Sr)+5Al tratadas por 24h e 100h apresentam um resultado melhor que as outras duas.. composições, porém para 800h sua