• Nenhum resultado encontrado

Síntese em alto nível de uma rede de interconexão dinâmica para multicomputador

N/A
N/A
Protected

Academic year: 2021

Share "Síntese em alto nível de uma rede de interconexão dinâmica para multicomputador"

Copied!
130
0
0

Texto

(1)

JÚLIO CESAR GAVILAN

SÍNTESE EM ALTO NÍVEL DE UMA REDE DE

INTERCONEXÃO DINÂMICA PARA

MULTICOMPUTADOR

Dissertação submetida à Universidade Federal de Santa Catarina como parte dos requisitos para a obtenção do grau de Mestre em Ciência da Computação

Orientador - Prof. José Mazzucco Jr.,Dr.

Co-orientador - Prof. César Albenes Zeferino, M.Sc.

(2)

Júlio Cesar Gavilan

Esta dissertação foi julgada adequada para a obtenção do Título de

Mestre em Ciência da Computação

Área de Concentração: Sistemas de Computação, e aprovada em sua forma

final pelo Curso de Pós-Graduação em Ciência da Computação - CPGCC

(3)

redução de preços de hardware, o que motivou a popularização dos microcomputadores pessoais, permitindo a construção de máquinas paralelas com baixo custo e de alto desempenho baseadas em microcomputadores interligados por meio de uma rede de interconexão - os multicomputadores.

No Departamento de Ciência da Computação da Universidade Federal de Santa Catarina, está sendo desenvolvido um projeto, denominado Projeto Nó// ( lê-se nó paralelo), que tem como objetivo a implementação de um ambiente completo para processamento paralelo, incluindo a construção de um multicomputador baseado numa rede de interconexão dinâmica. O sistema de comunicação do multicomputador Nó// é baseado no protocolo Transputer Link.

Neste trabalho é apresentado um projeto de uma rede de interconexão experimental a ser utilizada nesse sistema de comunicação, especificada em VHDL e validada através de simulação, estando pronta para s'er sintetizada em FPGA. No texto são descritos os problemas que motivaram o desenvolvimento dessa rede, a metodologia adotada e a solução implementada.

(4)

the reduction of hardware prices, what motivated the popularization of the personal microcomputers, allowing the construction of parallel machines with low cost and o f high performance based on interlinked microcomputers by means of an interconnection network - the Multicomputer System.

In Department of Computer Science of Federal University of Santa Catarina, a project is being developed, called No // (Parallel node), that has as goal is to build a Parallel/Distributed Programming Environment, including the construction o f a Multicomputer System with a dynamic interconnection network. The system of communication of the Multicomputer System of the No // it is based on the protocol Transputer Link.

In this work a project is presented of a experimental interconnection network to be used in that communication system, specified in VHDL and validated through simulation, being ready to be synthesized in FPGA. In the text they are described the problems that motivated the development of that net, the adopted methodology and the implemented solution.

(5)

AGRADECIMENTOS

Aos Professores Cláudio Kirner e Goro, da UFSCar e IPEN respectivamente, pelos conselhos sinceros.

A todos os professores, amigos e funcionários do CPGCC que apoiaram, influenciaram e ajudaram na realização deste trabalho.

Ao Sr. Itamar Coelho e aos amigos da INFOTECNICA, onde meus conhecimentos foram consolidados. Em especial ao Daniel Warmling, pela amizade e conhecimentos transmitidos.

Aos coordenadores dos cursos de Engenharia de Computação e Ciência da Computação, Prof. José Leomar Todesco e Fernanda dos Santos Cunha, pela oportunidade oferecida e paciência e aos amigos professores da UNIVALI.

Ao Prof. Rogério Antônio Casagrande da UNESC, pelo apoio recebido.

Um especial agradecimento ao Prof. Luiz Fernando Friedrich - INE/UFSC, por ter iniciado o trabalho de orientação deste trabalho.

Ao meu orientador Prof. José Mazzucco Jr. - INE/UFSC, pela continuação na orientação deste trabalho, paciência e estímulo nas horas mais difíceis.

Um agradecimento muito especial ao Prof. César Albenes Zeferino da FACIC, pela excelente co-orientação, mostrando-me os caminhos corretos e direcionando meu trabalho.

Agradeço aos meus irmãos, pelos seus exemplos que sempre me orientaram e influenciaram.

Agradeço aos meus pais, por todo carinho, dedicação, esforço, proteção e orientação.

(6)

ÍNDICE ANALÍTICO

SUM ÁRIO...i SU M M ARY...ii DEDICATÓRIA...iii AGRADECIMENTOS... ...iv ÍNDICE ANALÍTICO... ... v

LISTA DE FIGURA... ... viii

INTRODUÇÃO... ix CAPÍTULO 1 - PARALELISMO... 1 INTRODUÇÃO... :...1 1 .1 -CO NCEITO S... ... 1 Definição... 1 Granularidade...2 Latência... 2 Exploração do Paralelismo...3

Máquinas Paralelas em Relação à Aplicação... 3

Distribuição de Trabalho... ...4 Localidade...4 Comunicação... 5 Escalabilidade...5 Sincronismo...5 “Speedup" ... ... 5

1.2 - PROBLEMAS DA COMPUTAÇÃO PARALELA... ... 6

Desempenho de um Computador Paralelo...6

Comunicação...6

Natureza das Aplicações... 6

Confiabilidade...7

Medição do Paralelismo... 7

1 .3 - DESENVOLVIMENTO DA TECNOLOGIA DE H A R D W A R E ... 7

1.3.1 - O Computador Eletrônico...8

1 .3 .2 - Arquitetura Seqüencial dos Computadores...9

1.3.3 - Arquitetura Paralela... ... 10 1.3.3.4 - Multiprocessadores...14 1.3.3.5 - Multicomputadores... ... 14 1.3.3.6 - Arquitetura DATAFLOW ... ...15 1.4 - MODELOS COMPUTACIONAIS... ... ...16 1.4.1 - Classificação de Flvnn... ... 17

(7)

1.5 - SUPERCOMPUTADORES... ...20

CAPÍTULO 2 - REDES DE INTERCONEXÃO... 22

INTRODUÇÃO...22

2.1 - TOPOLOGIA... 23

2.2 - SISTEMA DE COMUNICAÇÃO... 23

2.2.1 - Barramentos... 23

2.2.2 - Redes Bipontuais Estáticas... ...24

2.2.3 - Redes Bipontuais Dinâmicas... 25

2.3.- PROJETO DE UMA REDE DE INTERCONEXÃO...26

CAPÍTULO 3 - 0 PROJETO NÓ//... 28

INTRODUÇÃO... ... 28

3 . 1 - 0 MULTICOMPUT ADOR N Ó //... 28

3.2 - ELEMENTOS DO MULTICOMPUT ADOR N ó//... 32

3. 2 . 1 - Nós de Trabalho...32

3.2.2 - Nó de Controle... 33

3.2.3 - LinkA dapter C 011...33

3.2.4 - Crossbar IMS C 004... 36

3.3 - RESUMO... 39

CAPÍTULO 4 - METODOLOGIAS DE PROJETO... 40

INTRODUÇÃO... r . ... 40

4 . 1 - .LÓGICA PROGRAMÁVEL... ... ...40

4.1.1 - Característica da familia FLEX 8 0 0 0 ... ...42

4^<2 - Característica da família FLEX 10K ...42

4.2 - VHDL - LIGUAGEM DE DESCRIÇÃO DE HARDW ARE... ... 44

4.2.1 - Descrição Estrutural... ... 45

4 .2.1 - Descrição Comportamental... 46

4.2.3 - Primitivas VH DL... 46

4 . 3 - 0 AMBIENTE DE PROJETO DE FPG A... ...50

4 . 3 . 1 - 0 ambiente de desenvolvimento Altera MAX+PLUS II ... 50

4.4 - MODELAGEM EM MÁQUINA DE E ST A D O S ... ... 52

4.4.1 - Máquina de M oore... 52

4.4.2 - Máquina de Mealy... ... 53

CAPÍTULO 5 - PROJETO DA REDE DE INTERCONEXÃO... 54

INTRODUÇÃO... :...:... ... ...54

5 . 1 - .PROTÓTIPO DO C RO SSBAR...54

5.2.- PROJETO-DE HARDWARE...56

./ 5 2.1 - Módulo 1 - Lógica de controle... 57

5.2^ X M ód ulo 2 - Multiplexadores... ... 67

(8)

CAPÍTULO 6 - SIMULAÇÃO DO PROJETO LÓGICO... ... 69

INTRODUÇÃO...69

6.1 - ESTABELECIMENTO DE UMA C O N E X Ã O ... 70

6.2 - STA TUS DE UM CANAL DE SA ÍD A ...73

6.3 - DESCONEXÃO... 75 6.4 - R E S E T D A S SAÍDAS...77 6.5 - BRO AD CASTING ... 79 CONCLUSÃO ...81 REFERÊNCIAS BIBLIOGRÁFICAS...83 ANEXO I ... 86

(9)

LISTA DE FIGURA

Figura 1. 1- Modelo de von Neumann...10

Figura 1.2 - Diagrama da execução de uma instrução...12

Figura 1.3 - Esquema de um processador vetorial...13

Figura 1.4 - Esquema de um processador matricial... 13

Figura 1.5 - Esquema de uma multiprocessador... 14

Figura 1 6 - Figura esquemática de um multicomputador...15

Figura 1.7 - Mecanismo básico de uma arquitetura D ataflow ... 16

Figura 1.8 - Classificação dos modelos computacionais propostos por Flynn... 18

Figura 1.9 - Classificação das Arquiteturas de Processamento Paralelo...21

Figura 2 . 1 - Sistema de Barramento... 24

Figura 2.2 - Linhas em um barramento... 24

Figura 2.3 - Redes bipontuais estáticas...25

Figura 2.4 - Esquema de um crossbar com N fontes e N destinos... 26

Figura 3 . 1 - Modelo de Arquitetura baseado no Compartilhamento de Barramento...29

Figura 3.2 - Modelo de Arquitetura baseado no Sistema de Interrupção... 30

Figura 3.3 - Modelo de Arquitetura com linhas de Interrupção e Barramento Compartilhado...31

Figura 3.4 - Estrutura de um Nó de trabalho...32

Figura 3.5 -Estrutura do Nó M estre... 33

Figura 3.6 - Pacote de dados e reconhecimento dos produtos IN M O S...34

Figura 3.7 - Diagrama de blocos do IMS C 011 no modo 1... 34

Figura3.8 - Diagrama de blocos do IMS - C 004... ... 37

Figura 3.9 - Organização interna do IMS - C 004...37

Figura 4 . 1 - Arquitetura interna de FPGA da família 8 0 0 0 ... .. 43

Figura 4.2 - Arquitetura de um LE da família 8 0 0 0 ... ... 44

Figura 4.3 - Descrição estrutural de um MUX 2 x 1 ... ... 45

Figura 4 . 4 - 0 fluxo do projeto... . 51

Figura 4.5 - Máquina de Estados de M oore... 53

Figura 4.6 - Máquina de Estados de M ealy... 53

Figura 5.1 - Protótipo do crossbar...55

Figura 5.2 - Representação lógica do crossbar em dois módulos... 57

Figura 5.3 - Diagrama de blocos da lógica de controle...58

Figura 5.4 - Máquina de estados para controle da leitura do byte... 59

Figura 5.5 - Máquina de estados para controle do tamanho da mensagem de configuração... 60

Figura 5.6 - Registrador de deslocamento...61

Figura 5.7 - Decodificadores... 62

Figura 5.8 - Máquina de estado para gerar sinais de conexão... 63

Figura 5.9 - Máquina de estado para a verificação do status de uma saída...64

Figura 5.10 - Máquina para desconexão de uma saída endereçada...65

Figura 5 . 11 — Máquina de estado para desconexão de duas saídas...66

Figura 5.12 — Máquina de estado para gerar sinais de conexão de uma entrada em todas as saídas...67

(10)

INTRODUÇÃO

O desenvolvimento da microeletrônica tem permitido o aparecimento de microprocessadores cada vez mais velozes, o que tem resultado em computadores com alto poder de processamento. Porém, os computadores baseados no modelo de von Neumann, sofrem algumas limitações. Todos os acessos a dados e controle são realizados através de um barramento de comunicação entre processador e memória1, o que causa o aparecimento do “gargalo de von Neumann”. Outra característica desse modelo, é a execução das instruções de um programa, em uma ordem seqüencial, o que é conhecido por “processamento seqüencial”.

O Princípio da Incerteza , postulado por Heisenberg, impõe um limite para a tecnologia de compactação dos circuitos, limitando dessa forma, o crescente aumento da velocidade dos microprocessadores.

Esse motivo tem estimulado a busca por novos modelos de arquiteturas ou então direcionado o estudo para o processamento paralelo3, que surgiu como uma solução promissora para aumentar o poder de processamento e atender as crescentes necessidades computacionais nas áreas de simulação de fenômenos físicos, projetos de engenharia, processamento de imagens, sistemas de banco de dados e previsão meteorológica.

O conceito de processamento paralelo é tão antigo quanto o surgimento do computador. Porém, devido ao elevado custo inicial do hardware e às dificuldades iniciais encontradas na programação paralela, as pesquisas se voltaram exclusivamente para o processamento seqüencial.

1 HWANG, K ., BRIGGS: F. A., Computer Architecture and Parallel Processing, Mcgraw-Hill, 1985

2 RUGGIERO, Carlos Antônio, Arquitetura não-Convencionais, curso ministrado no IV Simpósio Brasileiro de Arquiteturas de Computadores - Processamento de Alto Desempenho, São Paulo, 1992

(11)

Novas teorias e técnicas de programação paralela4, além da crescente queda nos preços do hardware têm favorecido a investigação no sentido de tentar desenvolver máquinas paralelas, com um grande número de processadores. Essa solução, porém, não é simples, pois além de existirem várias formas de colocar as unidades processadoras em paralelo, surgem problemas quanto a forma de gerenciamento das máquinas e de como manter a coerência na informação.

Pesquisadores do Departamento de Informática da Universidade Federal de Santa Catarina tem se empenhado no desenvolvimento de uma máquina paralela (projeto Nó// - lê- se nó paralelo), onde será possível processar algoritmos paralelos com um ótimo desempenho.

A concepção do projeto Nó//, determina a utilização de uma rede de interconexão dinâmica para interligar os vários processadores no multicomputador.

Neste trabalho será apresentado a implementação lógica de uma rede de interconexão dinâmica (crossbar) a ser utilizada no desenvolvimento do projeto em questão, utilizando-se dispositivos lógicos programáveis.

Este trabalho está dividido em seis partes, sendo que no primeiro capítulo, serão apresentados conceitos básicos envolvendo o Paralelismo, um histórico do desenvolvimento dos computadores eletrônicos, Modelos Computacionais e Taxonomia.

O segundo capítulo apresentará uma visão geral sobre as Redes de Interconexão, topologias das redes de interconexão e considerações em relação ao projeto de uma rede.

O terceiro capítulo apresentará as primícias do projeto Nó//, buscando descrever com detalhes os elementos que foram definidos para compor o seu sistema de comunicação.

No quarto capítulo, será apresentada as metodologias para o desenvolvimento do projeto. Uma visão geral sobre os Dispositivos Lógicos Programáveis, mostrando o ambiente de desenvolvimento de projetos de hardware e linguagem de descrição de hardware e modelagem em máquina de estado.

Será apresentado no quinto capítulo, o detalhamento do projeto lógico de um crossbar com as mesmas características funcionais do crossbar definido para ser utilizado na implementação da máquina paralela e no sexto capítulo será apresentado os resultados obtidos a partir de simulação sobre o projeto lógico.

Na conclusão, serão realizados considerações sobre o projeto do crossbar e o multicomputador e perspectivas de trabalhos futuros

(12)

CAPÍTULO 1 - PARALELISMO

INTRODUÇÃO

O motivo fundamental para o estudo do paralelismo é o desenvolvimento de máquinas que atinjam um alto desempenho5, utilizando, para isso, vários processadores trabalhando concorrentemente.

O uso de vários processadores, como os utilizados em máquinas seqüenciais, executando um algoritmo simultaneamente, possibilita uma solução mais veloz de um problema do que somente com um processador resolvendo o mesmo algoritmo.

Mesmo nos supercomputadores atuais, vários algoritmos são lentos, como por exemplo, os algoritmos de resolução do problema da previsão meteorológica, bancos de dados, sistemas de arquivos, simulação de fenômenos de aerodinâmica.

Uma outra motivação para o estudo do paralelismo é aumentar a produtividade dos programadores no desenvolvimento de algoritmos paralelos.

Esse capítulo apresenta conceitos e terminologias que envolvem o paralelismo, uma visão geral das Arquiteturas de Computadores e Modelos Computacionais existentes e um histórico do desenvolvimento dos Computadores Eletrônicos.

1.1 -CONCEITOS

Definição

Segundo HWANG e BR1GGS6:

5 RUGGIERO, Carlos Antônio, A rquitetura não-C onvencionais. curso ministrado no IV Simpósio Brasileiro de Arquiteturas de Computadores - Processamento de Alto Desempenho. São Paulo. 1992

(13)

“Processamento paralelo é a uma forma eficiente de processamento da informação que enfatiza a exploração dos eventos concorrentes no processo de computação. Concorrência implica em paralelismo, simultaneidade e pipeline. Eventos paralelos podem ocorrer em vários dispositivos durante o mesmo intervalo de tempo; eventos simultâneos podem ocorrer no mesmo instante de tempo; e pipeline podem ocorrer em tempos sobrepostos. Esses eventos concorrentes são alcançados em um sistema de computação em vários níveis de processamento. Processamento paralelo demanda concorrência na execução de vários programas no computador. É um contraste em relação ao processamento seqüencial. Através de atividades concorrentes é possível melhorar a relação custo-desempenho dos sistemas computacionais.”

Granularidade

A granularidade de um computador paralelo corresponde ao tamanho das unidades de trabalho ou, então, à quantidade de instruções de um segmento de programa submetida aos processadores. Essa granularidade pode ser fina, grossa ou média, e a dimensão do grão varia de acordo com o tamanho das unidades de trabalho.

Se está previsto para uma arquitetura paralela alocar grandes processos a um pequeno número de processadores, dizemos que a arquitetura tem granularidade grossa. São exemplos desse tipo de definição, os multiprocessadores ditos convencionais.

Em contrapartida, se uma arquitetura prevê pequenas quantidades de unidades de trabalho sendo alocadas para um grande número de processadores, dizemos que a arquitetura tem uma granularidade fina. São exemplos dessa arquitetura, as máquinas de fluxo de dados. Potencialmente, a granularidade fina implicaria em um processamento mais veloz devido ao maior paralelismo, porém isso pode não ocorrer devido a latência (veja definição do termo a seguir) na comunicação entre os processadores, o que compromete o desempenho.

Latência7

E a medida de tempo de sobrecarga (overheacf) de comunicação que ocorre entre subsistemas de uma máquina. Por exemplo, latência de memória é o tempo necessário para o processador acessar a memória e latência de sincronização é o tempo necessário para dois processos sincronizarem suas operações um com o outro.

6 HWANG, K. , BRIGGS, F. A., Com puter A rchitecture and P arallel Processing, Mcgraw-Hill, 1985. pg. 6-7.

7 DECEGAMA, Angel L.. Technolog}7 of P arallel Processing: P arallel Processing A rchitectures and VLSI

(14)

A latência impõe um fator limitante na dimensão da escalabilidade (definição do termo a seguir) de um sistema. Por exemplo, a latência de memória aumenta com o aumento da capacidade de memória, limitando o contínuo aumento no tamanho da mesma.

Exploração do Paralelismo

Um ponto importante a ser discutido são as possíveis formas que podemos explorar o paralelismo. Podemos dividir em quatro níveis:

■ Programa ou job

■ Subrotina ou procedimento

■ Instrução

■ Intra-instrução

A nível de programa ou job, a exploração do paralelismo é uma árdua tarefa desempenhada pelo programador, que deve desenvolver algoritmos processáveis paralelamente. Nesse nível é muito grande a dependência do software na alocação eficiente dos recursos de hardware. Nesse caso, “um grão” é composto de milhares de instruções (granularidade grossa). Na prática, isso acontece nos supercomputadores com pequeno número de poderosos processadores.

Já a nível de intra-instrução, podemos implementar o paralelismo diretamente no hardware, explorando, dessa forma, um alto grau de paralelismo e eliminando do programador a tarefa de paralelizar o algoritmo. Isso acontece em máquinas que alocam instruções a processadores, como as de fluxo de dados, que são consideradas de granularidade bastante fina.

Nos níveis intermediários (subrotina ou procedimento e instrução), há um balanço entre a dependência do software e hardware na exploração do paralelismo.

Máquinas Paralelas em Relação à Aplicação

Quanto aos tipos de programas que cada uma das máquinas paralelas pode executar, podemos definir as máquinas paralelas como:

(15)

• de propósito geral: máquinas que utilizam grande variedade de programas em vários tipos de aplicações distintas;

• dedicadas: podem ser utilizadas somente em uma aplicação ou em um conjunto restrito de aplicações.

Máquinas dedicadas normalmente apresentam uma relação custo-desempenho melhor que as máquinas de propósito geral. Porém é muito caro construir máquinas dedicadas para cada tipo de aplicação. Dessa forma, a tendência é desenvolver máquinas de propósito geral.

Distribuição de Trabalho

Esse termo está relacionado com a distribuição das tarefas igualmente entre os vários processadores. É um dos itens mais importantes e pesquisados no estudo de paralelismo entre a máquinas paralelas.

E simples verificar que a distribuição do trabalho é mais eficiente em máquinas com granularidade fina do que em máquinas de granularidade grossa, pelo fato de existir mais trabalho a ser distribuído.

Localidade

Podemos distinguir dois tipos de localidade: localidade espacial, que está relacionada com o fato de que, em determinada arquitetura, instruções e processos relacionados ente si são executados em processadores próximos ou não, e localidade temporal, onde instruções e processos são executados em tempos próximos.

Em arquiteturas que exploram a localidade espacial e temporal encontramos uma diminuição na comunicação entre os processadores, o que aumenta o desempenho da máquina.

(16)

Comunicação8

Uma análise importante a ser realizada em arquiteturas paralelas é a quantidade de comunicação entre os processadores que ela impõe. A taxa de comunicação numa unidade de tempo é chamada de largura de banda (bandwidth).

Em máquinas de granularidade fina, têm-se uma maior quantidade de comunicação entre os processadores do que em máquinas de granularidade grossa. Igualmente, em arquiteturas onde é explorado o paralelismo a nível de instrução, existe uma maior quantidade de comunicação entre os processadores do que em arquiteturas que exploram o paralelismo a nível de programa.

Escalabiiidade

A escalabiiidade de uma máquina paralela é a capacidade de efetivamente utilizar um número crescente de unidades processadoras. Se não existe degradação no desempenho da máquina, podemos dizer que é escalável.

Sincronismo

Em relação ao sincronismo, podemos classificar os sistemas paralelos como síncronos e assíncronos. Os sistemas síncronos mantém uma relação fixa de velocidade de processamento dos diversos componentes. Os sistemas assíncronos permitem que cada componente tenha sua própria velocidade, devendo ter sua execução paralisada no caso de necessitar de informações ainda não disponíveis de algum outro componente.

“Speedup”

“Speedup” é o aumento de velocidade observado entre um computador paralelo com P processadores e outro com somente um processador. Pode ser definido como:

Sp = Tl/Tp,

8 RUGGIERO. Carlos Antônio. Arquitetura não-Convencionais, curso ministrado no IV Simpósio Brasileiro de Arquiteturas de Computadores - Processamento de Alto Desempenho, São Paulo, 1992

(17)

onde Tl é o tempo de execução de um programa em um único processador e Tp é o tempo de execução do mesmo programa num computador com P processadores.

Se o programa que foi executado apresenta taxas elevadas de paralelismo e não há latência de comunicação entre os processadores, então Tp tende a Tl/p. Isso faz com que o “Speedup” tenda a p, que é o valor máximo. Essa é a situação ideal. Porém, na prática, sempre ocorre latência na comunicação, impedindo que o “Speedup” tenha valor máximo.

1.2 - PROBLEMAS DA COMPUTAÇÃO PARALELA

O desenvolvimento efetivo de máquinas paralelas têm esbarrado em problemas que ainda não foram exaustivamente explorados e solucionados. Aqui, é apresentado e discutido os mais importantes.

Desempenho de um Computador Paralelo

A suposição de que um computador paralelo com P processadores iguais trabalhando concorrentemente, realizará uma determinada tarefa P vezes mais rapidamente que um computador com somente um processador não é verdadeira, pois o overhead de comunicação e o conflito no acesso à memória também aumenta, o que diminui a desempenho. Portanto, um problema inicial é a definição do número ideal de processadores a serem utilizados para atingir-se uma boa relação custo-desempenho. Outro problema a ser resolvido é a ineficiência dos algoritmos paralelos em explorar a natureza concorrente de alguns problemas.

Comunicação

Em qualquer arquitetura paralela encontraremos o problema da comunicação entre os processadores. É necessário definir-se que tipos de informações serão trocadas entre os mesmos, quais os níveis de paralelismo explorado e que tipo de comunicação deve ser adotado, assíncrona ou síncrona.

Natureza das Aplicações

Não é claro que tipos de aplicações devem ser executadas em ambientes paralelos. Assim, deve-se resolver os seguintes problemas:

(18)

• que algoritmos devem ser utilizados em arquiteturas paralelas?

• qual a importância relativa de máquinas de propósito geral e de máquinas dedicadas?

• como o programador verá a máquina? Quais as facilidades que ele encontrará na implementação de determinada aplicação (compiladores, editores de textos)

Confiabilidade

Em computadores paralelos com várias unidades funcionais (de processamento) é possível que algumas dessas unidades falhem. Seria interessante que a máquina não parasse completamente como ocorre com máquinas seqüenciais com somente um processador. De fato, a máquina deveria ser capaz de continuar executando uma aplicação (obviamente, com certo prejuízo no desempenho) mesmo que fosse detectado que algumas unidades funcionais não estivessem funcionando corretamente.

Medição do Paralelismo

Não existe forma de se avaliar o paralelismo existente nos vários estágios da preparação de um software (fase de implementação de um código fonte, compilação, relação com o Sistema Operacional, produção do código de máquina), sendo que um algoritmo paralelo pode acabar se transformando em um código seqüencial.

1.3 - DESENVOLVIMENTO DA TECNOLOGIA DE HARDWARE

Um dos fenômenos mais surpreendentes é que praticamente todos os computadores construídos desde o final da década de quarenta obedecem ao mesmo princípio base. Trata- se de máquinas inteiramente automáticas, que dispõem de uma memória ampliada e de uma unidade de comando interno, que efetuam operações lógicas de cálculo e de processamento da informação graças a algoritmos armazenados em sua memória9.

Desde os tempos mais remotos, o homem reconheceu suas limitações em relação a cálculos mentais. O evidente sentimento de frustração no tempo consumido efetuando longos, repetitivos e fatigantes cálculos, levou-o a desenvolver dispositivos artificias que o auxiliassem no exercício de tal atividade.

(19)

A criação desses dispositivos permitiu que pessoas que não tivessem domínio na arte de calcular, pudessem, pelo seu uso, efetuar operações aritméticas10. Assim, a utilização do Ábaco na China, passando pelas Réguas de Cálculo e os vários computadores eletromecânicos desenvolvidos a partir dos trabalhos de Blaise Pascal, são exemplos de ferramentas de cálculo desenvolvidas pelo homem. Porém, somente com o desenvolvimento da tecnologia dos dispositivos eletrônicos é que foi possível atingir um alto grau de velocidade e confiabilidade nos cálculos que observamos no presente momento.

1.3.1 - O Computador Eletrônico

As etapas do desenvolvimento dos atuais computadores eletrônicos foram descritas em termos de “geração”, onde o tipo de tecnologia eletrônica utilizada na construção do computador é o parâmetro classificatório.

P rim eira geração (1945-1954): caracterizada pela construção de computadores que utilizavam a tecnologia dos tubos de vácuo e memórias de relês, sendo que os dispositivos eram interconectados por fios isolados. Computadores desenvolvidos nessa época caracterizavam-se pelo grande volume que ocupavam, como é o caso do ENIAC, o primeiro computador eletrônico plenamente operacional. Outros representantes importante dessa geração são o EDVAC e o IBM 701.

Segunda geração (1955-1964): o grande salto no campo de componentes, ocorreu quando as válvulas foram substituídas pelos transistores e pelos circuitos impressos. Com isso, de uma velocidade de 5 mil operações por segundo, passou-se para uma velocidade de 200 mil. Isso permitiu a realização de máquinas mais potentes e menos volumosas. Exemplos dessa geração, são o IBM 7090 e o Univac LARC.

Terceira geração (1965-1974): iniciaram a utilização da tecnologia dos circuitos integrados de estado sólido, que são dispositivos de silício, onde foi possível combinar vários componentes eletrônicos para as unidades de lógica e memória. Os circuitos integrados tinham inicialmente uma pequena e média escala de integração (SSI e MSI). Os principais representantes desta geração são o IBM/360-370, Texas Instruments ASC (Advanced Scientific Computer) e o PDP-8 da Digital Equipament

(20)

Quarta geração (1975-1991): os computadores dessa geração caracterizam-se pela

utilização de circuitos integrados com larga escala e muita larga escala de integração dos seus componentes (LSI e VLSI). Os circuitos integrados LSI continham até 50 mil transistores cravados em uma peça de silício de 1 cm e os VLSI até 100 mil. Como representantes desta geração podemos citar o VAX 9000, o IBM 3090 e o Cray X-MP.

Quinta geração (1992-presente): os atuais sistemas computacionais se caracterizam pela

alta densidade e alta velocidade dos seus processadores e memórias resultante da utilização da tecnologia proporcionada pelos circuitos VLSI. Sistemas computacionais dessa geração são o Fujitsu VPP500, o Intel Paragon e o Cray/MPP.

1.3.2 - Arquitetura Seqüencial dos Computadores

Genericamente, o termo arquitetura é utilizado para referenciar tanto os aspectos arquiteturais como os aspectos organizacionais. Os primeiros referem-se principalmente ao conjunto de instruções, enquanto os últimos dizem respeito a como esse conjunto de instruções é implementado. Um mesmo conjunto de instruções pode ser implementado sob diferentes organizações, como é o caso da família x86, onde, a cada geração, uma nova organização é utilizada para incrementar o desempenho de uma mesma arquitetura. Neste texto, o termo arquitetura é utilizado em seu sentido mais amplo, englobando tanto os aspectos arquiteturais como os organizacionais11

Ao longo dos anos, os projetistas procuraram aperfeiçoar esses diferentes elementos bem como propor novas formas de organização interna mais racionais, porém predomina a contribuição dada por von Neumann.12

Principalmente os computadores da primeira e da segunda geração eram baseados no que é conhecido como arquitetura de von Neumann, onde quatro elementos aparecem como básicos e fundamentais em um computador: um dispositivo de memória, que armazena os dados e as instruções, uma única unidade de lógica e aritmética, que processa a informação, uma única unidade de controle, que organiza o funcionamento interno da máquina e os diferentes elementos de entrada e saída de dados. As informações são tratadas

11 STALLINGS, William. Computer Organization and Architecture: principies of structures and function. 3 ed. New York: Macmillan, 1993. pg. 3

(21)

uma após as outras na unidade de lógica. A unidade de lógica e aritmética e a unidade de controle compõe a unidade central de processamento (CPU). Essa estrutura já tinha sido proposta por Babbage no século passado. Na figura 1.1 ilustramos o modelo de von Neumann.

Memória

Figura 1. 1- Modelo de von Neumann. Os traços cheios indicam o fluxo de dados e os tracejados indicam o fluxo de controle

1.3.3-Arquitetura Paralela

O conceito de diferentes partes de um computador operar em paralelo já tinha sido proposto por Babbage no século passado13. Porém, o desenvolvimento da tecnologia de computadores paralelos não se desenvolveu em função das dificuldades encontradas por projetistas e programadores. Os projetistas esbarraram no alto custo do hardware e os programadores nas dificuldades em desenvolver programas paralelos.

Com a crescente demanda por maiores velocidades de processamento, fez-se necessário o desenvolvimento de máquinas que utilizam outros conceitos diferentes do tradicional modelo de von Neumann, onde a exploração do paralelismo é a chave para o aumento na desempenho da máquina.

A crescente queda dos custos do hardware também é um fator que tem estimulado o desenvolvimento de novas tecnologias.

Muitos sistemas de uso geral compostos de múltiplos processadores, hoje disponíveis, podem ser classificados em três grandes grupos em função do grau de integração dos seus componentes: multiprocessadores, multicomputadores e redes locais.

(22)

Esses grupos se distinguem pelo grau e velocidade das interações possíveis entre seus componentes. Os multiprocessadores (ou máquinas paralelas com memória compartilhada) são computadores individuais com um número reduzido de processadores que acessam memórias compartilhadas. Os multicomputadores (ou máquina paralela com memória distribuída) são compostos de nós largamente autônomos cada um dos quais dispondo de um processador, de uma memória privativa e de canais de comunicação ligados através de redes de interconexão compostas por múltiplos canais de comunicação bipontuais. As redes locais são compostas de computadores independentes completos interconectados através de redes concebidas como canais de comunicação compartilhados.

Esses três grupos podem formar um sistema integrado no qual os nós de uma rede local sejam representados por multiprocessadores e multicomputadores além de estações de trabalho individuais.

1

.

3

.

3.1 - Pipeling

Pode-se definir o termo pipeline como a capacidade de sobrepor um conjunto de estágios, explorando, dessa forma, o paralelismo temporal.

Por exemplo, de modo geral, os estágios de uma instrução em uma Arquitetura de von Neumann envolvem: busca da instrução na memória (IF), decodificação da instrução (ID), busca dos operandos na memória (OF) (se necessário) e execução da instrução (EX). Em um computador sem pipeline, uma nova instrução é realizada somente após a finalização desses quatro estágios da instrução anterior. Em um computador pipeline, cada estágio de uma instrução é sobreposto aos estágios de outras instruções, fazendo com que instruções sejam executadas em conjunto em um número menor de ciclos de máquina. No diagrama da figura 1.2. são mostradas as diferenças entre a execução de um conjunto de instruções em um esquema pipeline e em um esquema sem pipeline.

Pela figura, é observado, que enquanto pelo esquema b) são realizadas apenas duas instruções, no esquema apresentado em a) é realizada uma sobreposição no ciclo de execução de instruções, o que permite a execução de cinco instruções ao mesmo tempo.

(23)

» Estágjos Pipeline EX li I2

I

3

I

4

Is OF li

h

I

3

I

4

I

5

ID li

h

h

I4

I

5

IF li

h

h

I

4

Is --- 1 2 3 4 5 6 7 8 Tempo (ciclos de pipeline) a) ‘ ‘ Estágios EX li h OF li h ID I, h IF li h --- 1 2 3 4 5 6 7 8 tempo b > .

Figura 1.2 - Diagrama da execução de uma instrução: a) utilizando o esquema pipeline e b) sem pip elin e;

1.3.3.2 - Computadores Vetoriais

São caracterizados por conseguirem a elevação da velocidade de processamento com o uso de “pipeline”. O supercomputador CRAY-1, é um exemplo de máquina que tem esta característica em sua arquitetura. A organização básica desses processadores consiste de: um processador de instrução, que busca e decodifica instruções utilizando um esquema pipeline, uma unidade de processamento vetorial, para executar fluxos de dados, e um

(24)

Memória Principal Unidade de Processamento Processador Escal ar Processador de instruções

Figura 1.3 - Esquema de um processador vetorial

1.3.3.3 - Processadores Matriciais

Os processadores matriciais possuem um paralelismo espacial do tipo síncrono. Esta arquitetura é caracterizada por vários elementos de processamento (EP), supervisionadas por uma unidade de controle, de onde emanam as instruções que operam sincronamente sobre os diferentes dados. Para a comunicação entre os elementos de processamento, do ponto de vista da transmissão de dados e resultados, os processadores matriciais possuem uma estruturas de interconexão entre os elementos de processamento permitindo o roteamento dos dados. Normalmente, as instruções escalares são executadas diretamente na unidade de controle, enquanto as instruções vetoriais são executadas na matriz de elementos de processamento.

(25)

1.3.3.4 - Multiprocessadores

São máquinas com várias unidades processamento que compartilham uma única unidade de memória, onde estão armazenados os dados e as instruções a serem executadas. Devido ao compartilhamento da memória, os multiprocessadores são limitados na quantidade de processadores que podem ser conectados ao sistema (poucas dezenas). A escalabilidade dos multiprocessadores é pequena, pois a inserção de um novo elemento processador pode acarretar em uma saturação da utilização da memória. O compartilhamento da memória é realizado através de uma rede de interconexão

Figura 1.5 - Esquema de uma multiprocessador. Legenda: EP. elemento processador.

1.3.3.5 - Multicomputadores

São caracterizados pela utilização de várias unidades processadoras, cada uma com sua própria memória local, interligadas através de um sistema de interconexão.

Em um multicomputador com N elementos interligados por um sistema de interconexão, cada elemento dessa rede é um computador seqüencial tradicional (von Neumann), isto é, processador mais memória. Esses elementos são designados por nós.

A conjunção das seguintes características permite distinguir os multicomputadores das outras máquinas paralelas14:

(26)

• grande número de elementos processadores homogêneos - o baixo custo dos microprocessadores e a facilidade de montagem permitem a construção de máquinas com centenas de processadores.

• grande número de canais de comunicação bipontuais - as redes de interconexão se dispõem em topologias regulares com muitos canais exclusivos conectandos aos pares os nós dessas máquinas.

• interação baseada em troca de mensagens - os processos de um programa paralelo que executam em nós diferentes podem interagir exclusivamente através de troca de mensagens, sendo que normalmente, as mensagens não possuem tamanho fixo.

• alta velocidade de comunicação - as redes de interconexão dos multicomputadores constituem meios confiáveis de comunicação entre nós com velocidades de uma ordem de grandeza superior às das redes locais.

• granularidade média de processamento - os multicomputadores encorajam a exploração do paralelismo real pela decomposição de programas em vários processos cooperantes. Entretanto, uma granularidade muito fina pode se tornar ineficiente pelo predomínio das comunicações.

Figura 1.6 - Figura esquemática de um multicomputador. Legenda: EP, elemento processador; MM, módulo de memória privativa.

1.3.3.6 - Arquitetura DATAFLOW

Os computadores convencionais são baseados no mecanismo de fluxo de controle na qual a ordem de execução do programa determina a ordem de execução das instruções e é explicitado pelo programador. Dessa forma, as instruções sempre são realizadas de forma seqüencial. Além disso, as arquiteturas baseadas no modelo de von Neumann sofrem algumas limitações, pois todo o acesso a dados e instruções é realizado através de um único barramento de comunicação entre o processador e a memória.

(27)

A característica fundamental do modelo de arquitetura Dataflow é a execução do paradigma no qual instruções são avaliadas para a execução tão logo todos os operandos necessários tornem-se disponíveis. Portanto, a seqüência de execução de uma instrução é baseada na dependência dos dados, permitindo desta forma, a exploração de um alto grau de paralelismo a nível de instrução.15 Os dados gerados, são multiplicados em várias cópias e passados a todas as instruções que necessitem desse dado. Dessa forma, os dados consumidos por alguma instrução, podem ser usados por outras instruções.

Essa arquitetura não requer nenhuma memória compartilhada, mas sim um mecanismo especial para detectar os dados avaliados e enviá-los para as instruções necessárias, e um mecanismo para sincronizar a execução de instruções assíncronas.

Pacote de resultados Unidade de Operação Pacote de operações Update Busca ---» Fila de instruções ---► ---► A rm azenador de atividades

<

3---Acesso de ^ Acesso de * leitura e leitura escrita

Figura 1. 7 - Mecanismo básico de uma arquitetura Dataflow

1.4 - MODELOS COMPUTACIONAIS

Esforços no sentido de classificar as várias propostas de arquiteturas de computadores têm auxiliado atuais projetistas de hardware no desenvolvimento dos seus projetos. Pode-se separar cada proposta de arquitetura em um conjunto de regras que são seguidas na execução do projeto.

(28)

1.4.1 - Classificação de Flynn

A classificação mais aceita é a proposta por Flynn em 1966 baseada nos fluxos de dados e instruções, que considerou o processo computacional como uma execução de uma seqüência de instruções sobre um conjunto de dados. Dessa forma, foi possível separar as arquiteturas em 4 categorias de máquinas conforme a multiplicidade do fluxo de dados e instruções:

• SISD (Single Instruction Single Data): tratam-se de máquinas baseadas no modelo de von Neumann, onde somente uma única instrução é executada seqüencialmente.

• SIMD (Single Instruction Multiple Data): corresponde aos processadores matriciais paralelos. Vários elementos processadores sendo supervisionados por uma mesma unidade de controle, isto é, todos os dados recebem a mesma instrução para operarem sobre diferentes dados.

• MISD (Multiple Instruction Single Data): corresponderia a uma máquina que tivesse vários elementos processadores recebendo o mesmo fluxo de dados. O resultado de um processador seria a entrada do próximo. Essa estrutura não existe na prática, apesar de alguns autores classificam as máquinas pipeline como representantes dessa categoria. • MIMD (Multiple Instruction Multiple Data): representantes dessa categoria seriam os

multiprocessadores e multicomputadores. Cada unidade de processamento possui sua unidade de controle executando instruções sobre um conjunto de dados, e o que mantém a interação entre os diversos processadores é a memória. Pesquisas envolvendo o desenvolvimento de arquiteturas paralelas se concentram nessa categoria.

(29)

FI a) .Arquitetura SISD UC FI UP, FD, U P 2 + F D , UP„ FD„ MC MM] MMj M M , FI Legenda:

UC: Unidade de Controle UP: Unidade de Processamento MM : Módulo de Memória MC : Memória Compartilhada FD : Fluxo de Dados F I : Fluxo de Instruções b) Arquitetura SIM D c) Arquitetura M ISD d) Arquitetura M IM D

FONTE: Hang,K.& Bnggs. F.A., "Computer Architecture and Parallel Processing”, pg.33

(30)

1.4.2 - Classificação de Sistemas de Processamento Paralelo

Há três propostas para computadores paralelos: von Neumann, Dataflow e máquinas de redução. Uma outra proposta é um híbrido da proposta Dataflow e de redução.

A proposta de von Neumann também referenciada como processamento dirigido pelo controle (control-driven), pois a execução do programa é dirigida pela unidade de controle, obedecendo a ordem seqüencial de instruções estabelecida pelo programa, consiste na conexão de dois ou mais processadores do tipo de von Neumann.

A proposta Dataflow (item 1.3.6), também referenciada como processamento dirigido por fluxo de dados (data-driven), é baseada no conceito de execução das instruções tão logo os seus operandos estejam disponíveis, o contrário da proposta de von Neumann que segue uma seqüência ditada pelo ordem das instruções de um programa.

A proposta de Redução, também referenciada como processamento dirigido por demanda (demand-driven), consiste no reconhecimento de expressões que possam ser reduzidas, substituindo-as por seus valores calculados até que aconteça a redução de todo o programa, gerando o resultado final. Um programa é visto como um conjunto de aplicações, e a execução procede por sucessivas reduções da aplicação mais interna, de acordo com a semântica dos seus respectivos operadores, até a realização da aplicação mais externa (ou seja, quando não houverem mais aplicações). Uma instrução é realizada somente quando os seus resultados são necessários para outros e não quando os operandos estão disponíveis, como na máquinas Dataflow.

Na proposta Híbrido, os processadores, ao invés de realizarem instruções que já estão prontas para a execução, como na arquitetura Dataflow, deverão, inicialmente, realizar instruções necessárias se os seus operandos estiverem prontos. Se os operandos ainda não tiverem sido avaliados, o processador deverá requerê-los de outros processadores enquanto trabalha com itens de menor prioridade. Isso evita que os dados circulem pela máquina, o que é uma característica da arquitetura Dataflow.

Na figura 1.8, tem-se uma visão geral das diferentes propostas para arquitetura de processamento paralelo. As pesquisas ainda tem se direcionado em grande parte ao desenvolvimento de computadores baseados na proposta de von Neumann.

Observa-se, pela figura, que essa classificação engloba a taxonomia de Flynn (item 1.4.1), o que é um requerimento colocado por DUNCAN 16, pois os sistemas baseados na

(31)

proposta de von Neumann estão classificados de acordo com os fluxos de instruções e de dados.

Não faz parte do escopo deste trabalho a análise de cada um dos sistemas mostrados na figura 1.8. Para este trabalho, são importantes somente os sistemas MIMD baseados na utilização de redes de interconexão do tipo crossbar.

1.4.2.1 - Sistemas MIMD - Crossbar

A utilização de uma rede de interconexão do tipo crossbar permite a conexão de dois ou mais processadores, módulos de memória e dispositivos de entrada e saída. O crossbar proporciona um desempenho melhor do que os sistemas organizados no compartilhamento de barramento. Porém, são mais complexos, maiores (em termos de volume) e mais caros (um estudo sobre as redes de interconexão será realizado no capítulo 2). Basicamente, são dois os sistemas que fazem uso de crossbar: os multiprocessadores (item 1.3.3.4) e os multicomputadores (item 1.3.3.5).

1.5 - SUPERCOMPUTADORES

Supercomputadores são definidos como os computadores mais rápidos existentes numa determinada época.

Atualmente, os supercomputadores apresentam um desempenho de centenas a milhares de Mflops (milhões de operações de ponto flutuante por segundo), usam palavras de 64 bits, possuem uma memória principal com dezenas de palavras e custam cerca de 2 a 20 milhões de dólares.

Todos os supercomputadores conseguem um elevado desempenho pelo uso de componentes de alta velocidade e pela execução de múltiplas operações simultaneamente.

(32)

Computadores Paralelos

VLIW

Modelo von Neumann Dataflow Redução

Pipeline Conexão associativo Bus Network Multiestágio Crossbar Switch Lattice Diretas Bus Grupo de

simples Bus Simples Grupo

Network

Processors arravs

Hipercubo hierárquicos

grade Arrays Frente de

Sistólico onda

Árvore Pirâmide Prisma

FONTE: Decegama, Angel L., “Technology of Parallel Processing : Parallel Processing Architectures and VLSI Hardware”, pg. 64.

Figura 1.9 - Classificação das Arquiteturas de Processamento Paralelo. Em negrito, as ramificações que levam aos sistemas que utilizam redes de interconexão do tipo crossbar.

(33)

CAPÍTULO 2 - REDES DE INTERCONEXÃO

INTRODUÇÃO

Com o crescente desenvolvimento de arquiteturas paralelas, os subsistemas de comunicação, interligando os vários elementos processadores, módulos de memórias e unidades de entrada e saída, tornaram-se uma importante característica no projeto e desenvolvimento de uma arquitetura, pois têm um impacto direto na capacidade, desempenho, dimensão e custo de todo sistema. Duas alternativas de subsistemas de comunicação podem ser utilizadas: os barramentos e as redes de interconexão.

Para sistemas com um pequeno número de elementos conectados, os barramentos tem um desempenho adequado, e proporciona um simples subsistema de comunicação. Porém para um grande número de elementos conectados, observa-se uma sobrecarga na taxa de requisição do barramento. Nesse caso, o uso de uma rede de interconexão, que consiste em múltiplos caminhos entre uma fonte e um destino, elimina esse problema, proporcionando desejável conectividade e desempenho. Porém, o custo e a complexidade de uma grande rede de interconexão, além da dimensão, crescem com o aumento do número de elementos conectados, apresentando uma queda na relação custo-desempenho com o aumento do número de conexão.

Neste capítulo, será apresentada uma discussão dos mecanismos de comunicação em um sistema de processamento paralelo, apresentando as topologias de barramento e redes de interconexão. Apresenta também os aspectos necessários para o projeto, implementação e utilização de uma rede de interconexão do tipo crossbar.

(34)

2 .1 -TOPOLOGIA

O termo topologia de um sistema de interconexão está relacionado com a forma pela qual as várias unidades funcionais de um sistema estão interligadas umas as outras. As

topologias17 tendem a ser agrupadas em duas categorias: estáticas e dinâmicas. As redes estáticas são formadas por conexões ponto-a-ponto fixas, as quais não mudam durante a execução do programa. As redes dinâmicas são implementadas através de canais chaveados, que podem ser reconfigurados dinamicamente configurando-se as chaves.

2.2 - SISTEMA DE COMUNICAÇÃO

Pode-se dividir os sistemas de comunicação em dois tipos: os barramentos, onde há um meio físico comum a todos os processadores, e as redes bipontuais, que possuem canais que são responsáveis pela conexão entre pares de nós processadores.

2.2.1 - Barramentos

Os barramentos consistem em um sistema de comunicação onde há compartilhamento de um caminho entre mais de um par de elementos que compõe o sistema, para a troca de mensagem. Pode ser implementado por um simples conjunto de fios. Na figura 2.1, é mostrado um esquema de sistema de barramento.

As operações de transferência de dados são controladas por um mecanismo de resolução do conflito, que avalia se o barramento pode ser utilizado. Ou seja, antes de ser enviada uma mensagem pelo barramento, deve ser avaliado se ele já não está sendo utilizado por outro elemento do sistema. Esse mesmo mecanismo também é responsável em avaliar se o destino está apto a receber a mensagem.

Os barramentos são constituídos por um número de diferentes linhas, denominadas de sinais: (a) linha de endereço, especifica o endereço de um processador, módulo de memória ou unidade de entrada e saída, (b) linha de dados é utilizada para a transferência de dados em paralelo (deve ter o tamanho da palavra do computador), (c) linha de controle, por onde passam todos os sinais de controle do tipo estado do barramento, indicação de leitura ou escrita, reconhecimentos e clock, entre outros que podem ser implementados conforme a necessidade do sistema; (d) sinais de interrupção, por onde podem ser

(35)

transmitidos sinais com prioridade maior dentro do sistema, por exemplo o sinal de reset. Na figura 2.2 são mostradas as várias linhas que pode-se encontrar dentro de um barramento.

Figura 2.1 - Sistema de Barramento.

Linha de endereço

Linha de dados

Linha de controle

Linha de interrupções

Figura 2.2 - Linhas em um barramento.

As redes bipontuais se dividem por sua vez em estáticas e dinâmicas.

2.2.2 - Redes Bipontuais Estáticas

Se caracterizam por não ser possível alterar a sua configuração. Podem ser classificadas de acordo com a dimensão do seu layout, mais especificamente, são unidimensionais, bidimensionais, tridimensionais e hipercubo. Exemplo de redes unidimensionais são as que incluem arranjos lineares como algumas arquiteturas pipeline. Exemplos de bidimensionais são as redes do tipo anel, grelha, estrela e árvore. As redes onde todos os nós estão conectados (completamente conectados) e o cubo são exemplos de redes estáticas tridimensionais. Na figura 2.3, são mostradas os exemplos citados.

(36)

0 0 0 0

-a) arranjo linear b) anel

d) árvore

FONTE: Feng, T., “A Suvey of Interconnection Network”, IEEE Computer, pg. 7

Figura 2.3 - Redes bipontuais estáticas

2.2.3 - Redes Bipontuais Dinâmicas

Possuem o poder de alterar sua topologia dinamicamente, conforme a necessidade da aplicação, através de comutadores de conexão. As redes dinâmicas podem ser classificadas em três categorias: crossbar, simples-estágio e multi-estágios.

2.2.3.1 - Crossbar

Em um crossbar existem várias linhas de entrada e saída. No cruzamento de cada linha há um elemento chaveador, que permite a conexão das linha de entrada com a linha de saída de um lado e com as linhas de saída com as de entrada do outro. Os elementos chaveadores podem ser configurados por algum componente do sistema externo. O crossbar

(37)

proporciona vários caminhos separados de comunicação entre dois componentes do sistema. Pode-se conectar vários componentes ao mesmo tempo. Na figura 2.4, é mostrado o esquema de um crossbar. Um crossbar pode atingir um alto desempenho, porém, apresenta problemas com a aumento do número de componentes conectados, pois a relação custo- desempenho torna-se ruim, além da tendência da dimensão e da complexidade do crossbar crescerem.

Figura 2.4 - Esquema de um crossbar com N fontes e N destinos

2.2.3.2 - Simples-estágio

É composta de um estágio de elementos chaveados em cascata que servem de canais de comunicação.

2.2.3.3 - Multi-estágio

Consiste de mais de um estágio de elementos chaveados e é usualmente capaz de conectar um número arbitrário de entradas com um número arbitrário de saídas. Trata-se de uma combinação de elementos com capacidade de conectar, simultaneamente, duas entradas (ou mais) e duas saídas (ou mais) . E possível construir uma rede dinâmica multi-estágio que permita a conexão entre quaisquer elementos.

2.3 - PROJETO DE UMA REDE DE INTERCONEXÃO

Na escolha de uma arquitetura de uma rede de interconexão, quatro itens devem ser considerados: modo de operação, estratégia de controle, método de chaveamento e topologia da rede.

(38)

Modo de operação, do ponto de vista de comunicação, uma rede pode operar de modo

síncrono ou assíncrono. Comunicação síncrona é necessária para processamentos nos quais os caminhos de comunicação são estabelecidos sincronamente para cada função de manipulação de dados ou transmissão de instruções e dados. Comunicação assíncrona é necessária para multiprocessamento nos quais conexões são requisitadas dinamicamente. Um sistema também pode ser projetado para trabalhar de modo síncrono e assíncrono.

Estratégia de controle, consiste no número de elementos chaveadores e links de

intercomunicação. As conexões são realizadas através de um devido conjunto de controle dos elementos chaveadores. A rede pode ser gerenciada por um controle central denominado “controle centralizado” ou, então, por elementos chaveadores individuais, sendo denominado “controle distribuído” .

Metodologia de chaveamento, podem ser de dois tipos: circuito chaveado, que consiste em

estabelecer um caminho físico entre fonte e destino; e pacote, onde os dados são empacotados e roteados através da rede de interconexão sem estabelecer um caminho físico. Em geral, circuito chaveado é mais útil para um grande volume de dados transmitidos, e pacote é mais eficiente para pequenos dados. Outra opção e integrar os dois tipos, capacitando a realizar os dois tipos de chaveamento.

Topologia da rede, uma rede pode ser descrita por um grafo nos quais os nós representam

os pontos chaveadores e as arestas representam os links de comunicação. A topologia tende a ser regular e pode ser agrupada dentro de duas categorias: dinâmicas e estáticas. Na topologia estática, links entre dois elementos processadores não podem ser reconfiguráveis e na topologia dinâmica os links podem ser reconfiguráveis (ou seja, podem ser alterados).

(39)

CAPÍTULO 3 - 0 PROJETO NÓ//

INTRODUÇÃO

0 projeto Nó// (lê-se nó paralelo) prevê o projeto e implementação de um multicomputador que apresenta um conjunto processadores, representados por nós, conectados entre si por intermédio de dois dispositivos distintos: uma rede de interconexão dinâmica do tipo crossbar e um barramento de serviço. Esse projeto está sendo desenvolvido por pesquisadores do Departamento de Informática e Estatística (INE) da Universidade Federal de Santa Catarina (UFSC), e tem o objetivo de servir como instrumento de ensino, pesquisa e desenvolvimento de novas tecnologias.

Neste capítulo, serão descritas a arquitetura do projeto Nó// e os componentes mais importantes que já foram definidos para serem utilizados na implementação do projeto.

3.1 - O MULTICOMPUTADOR NÓ//

18 •

Segundo Brich Hansen , uma máquina de propósito geral deve ter as seguintes características:

1 Arquitetura escalável para milhares de processadores; 2. As unidades processadoras devem ser de propósito geral,

3. computador deve suportar diferentes tipos de estruturas de processos (como pipeline, árvore, e outras) de maneira transparente,

4.A criação de processos, comunicação e finalizações devem ser operações de hardware,

5. computador paralelo deve distribuir automaticamente os processos

computacionais, carregando e roteando as mensagens entre os processadores.

(40)

A máquina proposta satisfaz as condições citadas e consiste em um multicomputador, ou seja, uma máquina paralela com memória distribuída, que utiliza uma rede de interconexão dinâmica. Na sua primeira versão, ela é projetada para a interligação de 16 até 32 computadores com CPU x86 (ou Pentium). As comunicações são realizadas através de transputer-links. Cada nó representa um computador com CPU x86 (ou Pentium) e memória local, com total autonomia e canais de conexão com um crossbar. Um nó especial (nó de controle) é ligado a todos os outros nós (nós de trabalho) e é responsável por comandar todas as operações de controle. Existem dois tipos de conexão: conexão por demanda, via crossbar, que permite a interconexão independente ponto-a-ponto entre pares de nós, e conexão de serviço. A implementação da conexão de serviço pode ser realizada de duas formas distintas, o que levou a concepção de modelos distintos de arquitetura para o multicomputador.

Modelo de Arquitetura Baseada em um Barramento Comum, consiste na ligação do nó

de controle com os nós de trabalho através de um barramento compartilhado, denominado barramento de serviço, como mostra a figura 3.1. O nó de controle é o responsável pelo comando do crossbar e do barramento de serviço. Através de um processo de polling, este nó identifica se um nó de trabalho solicita algum serviço de conexão ou desconexão, e se encarrega de configurar o crossbar. Em função do compartilhamento do barramento de serviço, essa arquitetura apresenta uma sobrecarga de comunicação no barramento e um atraso na execução do processo de polling. Por essa razão foi concebido um outro modelo de arquitetura onde não há o compartilhamento de um barramento.

Barramento de Serviço

(41)

Modelo de Arquitetura Baseada em um Sistema de Interrupção, consiste na ligação do

nó de controle com os nós de trabalho através de linhas de interrupção exclusivas. Cada linha é formada por um par de linhas unidirecionais (figura 3.2) por onde, através de um sinal de interrupção, um nó de trabalho solicita algum serviço de conexão ou desconexão para o nó de controle (INTRtc). O nó de controle identifica a origem do sinal de interrupção e configura o crossbar e conecta-se com este o nó de trabalho. Logo a seguir o nó de controle interrompe o nó de trabalho (INTRct) para o recebimento do serviço através do crossbar. Após o recebimento do serviço realiza a desconexão com o nó de trabalho e realiza o serviço solicitado. Novamente interrompe o nó de trabalho (INTct), confirmando a realização do serviço solicitado. Nesse modelo, o atendimento a um serviço requisitado por algum nó tem seu tempo reduzido em relação ao modelo apresentado anteriormente, pois depende somente do atendimento da interrupção e do chaveamento do crossbar.

A utilização combinada do crossbar e do sistema de interrupção permite estabelecer rotas entre os nós de trabalho por onde é realizada a troca de mensagens, o que oferece uma flexibilidade maior em relação às redes de interconexão estática. Isso se deve ao fato de o sistema de interrupção ser utilizado como meio permanentemente confiável para a transmissão de requisitos de conexão e desconexão de canais. O estabelecimento de uma conexão individual através do crossbar é uma operação muito rápida que pode ser efetuada a qualquer momento sem afetar outras conexões já existentes.

Este modelo elimina a sobrecarga no barramento de serviço do modelo anterior, porém a complexidade do hardware associado ao sistema de interrupção cresce proporcionalmente à quantidade de nós da máquina paralela, o que torna este modelo pouco escalável.

(42)

Modelo de Arquitetura com Linhas de Interrupção e Barramento Compartilhado, esse

modelo reúne as características dos dois modelos já apresentado visando reduzir a complexidade e custo do hardware e atingir um bom desempenho.

Consiste na ligação de cada nó de trabalho com o nó de controle por meio de uma linha de interrupção e de um barramento de serviço compartilhado, como mostra a figura 3.3. As linha de interrupção são canais unidirecionais que são utilizadas pelos nós de trabalho para interromper o nó de controle quando houver a necessidade de um serviço.

Quando um nó de trabalho deseja solicitar algum serviço ao nó de controle, gera uma interrupção e envia através da linha de interrupção. Ao receber uma interrupção, o nó de controle inicia um ciclo de polling endereçada àquele nó de trabalho e estabelece uma conexão através do barramento de serviço. Com a chegada do comando de polling, o nó de trabalho envia sua requisição de serviço ao nó de controle que busca atender o serviço requisitado. Através do mesmo barramento de serviço o nó de controle confirma ao nó de trabalho, o atendimento do serviço requisitado.

O hardware desse modelo torna-se mais complexo devido à necessidade de uma interface para as linhas de interrupção, para o barramento de serviço e para a comunicação via crossbar em cada nó. Porem, o uso combinado das linhas de interrupção e do barramento de serviço elimina a sobrecarga do primeiro modelo e apresenta uma boa relação custo- desempenho.

Referências

Documentos relacionados

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

O romance Usina, diferentemente dos demais do conjunto da obra pertencente ao ciclo-da-cana-de-açúcar, talvez em função do contexto histórico em que se insere, não

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

[r]

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Reconhecimento de face utilizando banco de imagens monocromáticas e coloridas através dos métodos da análise do componente principal (PCA) e da Rede Neural Artificial (RNA)

Os resultados mostraram que a cinética de secagem do yacon é fortemente influenciada pela temperatura e também pela PVOD, com menor tempo de processo e maior

aquilo e comentou na semana passada na palavra livre que a administração começou perdendo tirando a EPAGRI daqui, e acha que perdeu bastante, quando a gente coloca