Você está na página 1de 57

102 – Arquitetura de Computadores | Unidade 04

UNIDADE 4 – ARQUITETURAS CONVENCIONAIS E NÃO CONVENCIONAIS


MÓDULO 1 – MÁQUINAS SEQUENCIAIS, MÁQUINAS RISC E CISC
01

1 - MÁQUINAS SEQUENCIAIS DE VON NEUMANN

Durante o estudo deste módulo falaremos sobre a importância das chamadas máquinas sequenciais de
von Neumann para computação. Falaremos também sobre as máquinas não von Neumann e
finalizaremos decorrendo sobre as características das arquiteturas RISC e CISC, bem como de projetos
recentes utilizando o melhor de cada uma dessas arquiteturas.

No início de nosso estudo sobre arquitetura e organização de computadores, começamos a ver o que é
um sistema computacional, a importância dos seus componentes, que são memórias, processadores,
dispositivos de E/S (entrada e saída) e meios de interconexão. No decorrer do nosso curso também
tivemos oportunidade de estudar que componentes do processador, como controladores, registradores
e coprocessadores, possuem um conjunto de instruções que operam sobre instruções e dados obtidos e
armazenados externamente e organizados em palavras. Vimos que Memórias são formadas
basicamente pela MP (memória principal) e MS (memória secundária), que o valor (custo) associado à
memória está diretamente relacionado à sua velocidade de operação e capacidade de armazenamento.

Os dispositivos de E/S (entrada e saída) são os que representam fisicamente os dados e são geralmente
mais lentos em comparação ao processador. Os meios de interconexão são os responsáveis pela
comunicação entre os componentes por meio dos barramentos que estão sob seu controle. Um dos
problemas que ocorrem é a disputa pelo uso simultâneo dos recursos compartilhados.

02

O resumo que acabamos que ver tem como intuito relembrar conceitos que já estudamos. Para você ter
um rendimento melhor nos estudos é necessário compreender que estes conceitos constituem a base
teórica para entendermos que, tendo por referência o relacionamento e a organização dos
componentes de um sistema computacional, poderemos classificar as máquinas que têm por base von
Neumann e as máquinas chamadas de não von Neumann.

Vimos a evolução da computação ao longo do tempo e também vimos


que o cientista John von Neumann foi um dos principais estudiosos da
matemática, física, meteorologia, economia e computação do século XX.
Ele nasceu na Hungria, na cidade de Budapeste no ano de 1903 e faleceu
em 1957. Para a área de TI, von Neumann, é o responsável pela estrutura
clássica dos computadores digitais que armazenam programas na
memória e geram outros programas.

Ele também contribuiu de maneira importante na arquitetura de


computadores, na análise de algoritmos, nos princípios de programação,
na computação científica, na análise numérica, nas redes neurais, na

© 2014 - AIEC - Associação Internacional de Educação Continuada

1
102 – Arquitetura de Computadores | Unidade 04

teoria dos autômatos e tolerância a falhas.

03

Uma característica básica da máquina von Neumann é sua composição. Esta é feita a partir de três
subsistemas básicos, que são: CPU ou UCP, memória principal e sistema de E/S. Observe a figura abaixo:

Vale a pena relembrar que a UCP (Unidade Central de Processamento) é formada pelos seguintes
componentes: unidade de controle (UC), unidade Lógico Aritmética (ALU) e registradores.

04

Podemos destacar que dentre as características principais das máquinas de von Neumann estão:

• o programa armazenado em memória,


• existência de um único caminho entre memória e a UC (unidade de controle)
• e a execução sequencial de instruções.

Há uma sequência de ciclos do modelo da máquina de von Neumann que são a execução de um
programa que faz uma busca da instrução (fetch), que nada mais é que uma transferência da instrução
da posição de memória para a UCP, e a execução da instrução propriamente dita, que consiste na
decodificação da instrução feita pela UC (Unidade de Controle) e a gerência dos passos para sua
execução pela Unidade Lógica Aritmética (ULA).

Outro modelo básico de máquinas von Neumann são as máquinas conhecidas como “máquinas de
Harvard”. A diferença dos modelos pode ser observada pela existência de vias separadas para dados e

© 2014 - AIEC - Associação Internacional de Educação Continuada

2
102 – Arquitetura de Computadores | Unidade 04

instruções entre a MP e UCP, conforme pode ser visualizado na figura abaixo. A origem do termo
“Máquinas de Harvard” surgiu durante a criação dos computadores Mark I a Mark IV, desenvolvidos em
Harvard, que tinham como característica possuir instruções e memórias de dados separadas.

Mark I
Chamado de Mark I (ASCC - Automatic Sequence Controlled Calculator) pela Universidade de Harvard,
este foi o primeiro computador eletromecânico automático de larga escala desenvolvido nos EUA.
Construído em 1944 num projeto da Universidade de Harvard em conjunto com a IBM.
(Fonte: http://pt.wikipedia.org/wiki/Harvard_Mark_I).

Saiba+
O Harvard Mark I, também conhecido como “Harvard-IBM Automatic Sequence Controlled Calculator”,
foi concluído em 1944 pelo renomado engenheiro de computação Howard H. Aiken, tendo tido a
contribuição e ajuda de uma equipe de engenheiros da IBM, que eram chefiados por Clair D. Lake. O
Mark I teve apoio e financiamento da IBM (International Business Machines), bem como, da marinha
americana. O projeto começou no ano de 1937 e o objetivo era construir um computador que ajudasse
na construção de novas armas, no cálculo de trajetórias de artilharia e também decodificar os códigos
secretos do inimigo. O Mark I era muito pesado, chegava a ter aproximadamente 5 toneladas e era
composto por setenta e oito máquinas calculadoras, que eram controladas por dispositivos mecânicos
e elétricos. O computador era operado por meio de uma fita de papel, na qual se armazenavam, por
meio de perfurações, as instruções codificadas. Uma vez inserido o programa, o computador iniciava os
cálculos. O Mark I teve sua utilidade voltada para fins militares e também foi utilizado no
desenvolvimento da bomba atômica. Entre 1947 e 1952, o cientista Howard Aiken construiu versões
melhoradas do Mark I, os Mark II, III e IV.

© 2014 - AIEC - Associação Internacional de Educação Continuada

3
102 – Arquitetura de Computadores | Unidade 04

05

2 - MÁQUINAS NÃO VON NEUMANN


As máquinas que não seguem o modelo de von Neumann são chamadas de máquinas “não von
Neumann”. Porém, não quer dizer que esse modelo seja contra ou antagônico ao modelo de von
Neumann, mas uma categoria um pouco mais ampla, em que incluímos os sistemas computacionais
chamados de:

06

3 - AVALIAÇÃO DE DESEMPENHO

Em virtude de haver um número grande de alternativas para a organização de um computador, é


necessário haver mecanismos que possibilitem a realização de uma avaliação de cada arquitetura. Para
isso, algumas medidas básicas de avaliação são necessárias. Atualmente o desempenho está associado
à velocidade de execução das instruções básicas representadas em MIPS (milhões de instruções por
segundo) e por flops. Outra maneira é a velocidade de execução de programas representativos das
aplicações em benchmarks (teste para avaliação de performance na execução de um programa).

Quando avaliamos o custo de um determinado componente precisamos nos atentar aos parâmetros que
mais influenciam o valor final que são: número de pinos, área de chip e número de chips por sistema.

Quando você resolve adquirir um laptop ou um notebook pode utilizar como parâmetro o tamanho, pois
para você um item importante é a facilidade de transporte e uso em viagens.

Será muito difícil avaliar um sistema de maneira isolada, geralmente a comparação básica que fazemos é
o custo e desempenho, que tenha um preço justo e um desempenho aceitável, que possamos assistir a
um filme em HD ou jogar determinado game. Aliás, quando falamos em jogos, o fator desempenho

© 2014 - AIEC - Associação Internacional de Educação Continuada

4
102 – Arquitetura de Computadores | Unidade 04

ganha um vulto maior, pois dependendo do jogo haverá uma alta exigência de recursos como
processador, memória, placa de vídeo dedicada, capacidade de armazenamento e etc. Vamos usar como
exemplo uma propaganda sobre as especificações e vantagens de adquirir um notebook da Marca XYZ:

“Você pode assistir a um filme de sucesso ou bater um recorde em um jogo sem problemas, pois a 4ª
Geração dos Processadores XYZ oferece bateria de longa duração e uma experiência visual
surpreendente para você aproveitar ao máximo seus aplicativos e jogos favoritos...”

Sendo assim, o mais importante é o entendimento da necessidade e do emprego de determinada


arquitetura.

FLOPS
Flop(s) é um acrônimo na computação que significa FLoating-point Operations Per Second, que, em
português, quer dizer operações de ponto flutuante por segundo. Isto é usado para determinar o
desempenho de um computador, especificamente no campo de cálculos científicos, que fazem grande
uso de cálculos com ponto flutuante; similar a instruções por segundo.
(Fonte: http://pt.wikipedia.org/wiki/FLOPS)

Benchmark
Em computação, benchmark é o ato de executar um programa de computador, um conjunto de
programas ou outras operações, a fim de avaliar a performance relativa de um objeto, normalmente
executando uma série de testes padrões e ensaios. (Fonte: http://pt.wikipedia.org/wiki/Benchmark).

Tamanho
No caso do tamanho, a avaliação está nas características físicas, exemplo: peso, volume, facilidade de
transporte e consumo de energia. Você também poderá considerar outro fator, por exemplo: para
estudar.

07

Arquitetura de alto desempenho

Um projeto de um sistema com arquitetura de alto desempenho só é possível alterando os algoritmos


para melhor ajustar à organização do sistema. Há outros casos em que apenas mudanças na organização
básica do sistema também serão necessárias. Dependendo da arquitetura, será mais adequado o uso
de paralelismo.

No processo de definição de arquitetura torna-se necessário observar alguns questionamentos:

- Qual será o tempo necessário para execução de um conjunto de programas de determinada aplicação?
- Qual será o espaço necessário para o armazenamento de um conjunto de programas ou dados?
- Qual será o uso efetivo dos diversos componentes do sistema?

Diante destas perguntas chegamos à conclusão de que não há uma resposta simples. Essas perguntas
exigem uma análise mais ampla, abrangendo o teste com programas (softwares) que exijam

© 2014 - AIEC - Associação Internacional de Educação Continuada

5
102 – Arquitetura de Computadores | Unidade 04

determinada resposta do sistema computacional. Por meio destes testes será possível desenvolver
projetos computacionais com arquitetura de alto desempenho identificando e retirando os possíveis
“gargalos” do sistema. Estes “gargalos” limitam o desempenho como um todo.

Paralelismo
O paralelismo ou também chamado de ILP (Paralelismo em nível de instrução) é uma técnica utilizada
no desenvolvimento de processadores e compiladores que melhoram (aumentam) o desempenho dos
computadores, fazendo que operações como multiplicações de ponto flutuante, adição de inteiros,
escrita e leitura de memória sejam executadas em paralelo. No nível de instruções, o paralelismo é
muito utilizado por arquiteturas de processadores que possuem a capacidade de operar dados ou
executar instruções em paralelo.

08

4 - ARQUITETURA RISC
Tendo por objetivo melhorar a performance, estudos sobre o comportamento da execução de
programas em linguagens de alto nível visam orientar o projeto de um novo tipo de arquitetura para
processadores, o chamado computador com conjunto reduzido de instruções(Reduced Instruction Set
Computes), também conhecido como arquitetura RISC.

Trata-se de uma linha de arquitetura de processadores que favorece um conjunto simples e pequeno
de instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas.

Trata-se de uma linha de arquitetura de processadores que favorece um conjunto simples e pequeno de
instruções que levam aproximadamente a mesma quantidade de tempo para serem executadas.

Desde o surgimento e desenvolvimento do 1º computador que utilizava a memória para


armazenamento dos programas, na década de 1950, não houve tantas mudanças significativas na área
de Arquitetura de Organização de Computadores. Podemos destacar que os maiores avanços foram:

© 2014 - AIEC - Associação Internacional de Educação Continuada

6
102 – Arquitetura de Computadores | Unidade 04

Linguagem de alto nível


Linguagem com um nível de abstração relativamente elevado, longe do código de máquina e mais
próximo à linguagem humana. Desse modo, as linguagens de alto nível não estão diretamente
relacionadas à arquitetura do computador. O programador de uma linguagem de alto nível não precisa
conhecer características do processador, como instruções e registradores. Essas características são
abstraídas na linguagem de alto nível.
(Fonte: http://pt.wikipedia.org/wiki/Linguagem_de_programa_de_alto_nivel)

09

Conforme vimos na lista anterior, é possível adicionar uma inovação muito interessante na arquitetura
de computadores que é chamada deconjunto reduzido de instruções (RISC). Essa arquitetura (RISC)
mudou as tendências da época na arquitetura de computadores.

Mesmo que o sistema RISC tenha sido definido de muitas maneiras por grupos diferentes de projetistas,
a maioria segue os seguintes elementos básicos:

• Foco em otimizar o pipeline de instruções;


• Número grande de registradores com o propósito geral ou o uso de tecnologias de compilação que
otimizam o uso de registradores;
• Conjunto de instruções limitado e simples.

Uma das maneiras de evidenciar a evolução das linguagens de programação foi também a evolução dos
computadores. Com a diminuição do valor (custo) do hardware, houve um aumento do software. Isso
ocorreu devido à diminuição do número de programadores disponíveis para o desenvolvimento de

© 2014 - AIEC - Associação Internacional de Educação Continuada

7
102 – Arquitetura de Computadores | Unidade 04

programas. Sendo assim, o preço do software passou a ser maior, no ciclo de vida de um sistema, do
que o do hardware. Além de apresentar um custo elevado, o software, geralmente, apresenta bugs, o
que diminui a confiança. Infelizmente é comum nos depararmos com situações que programas ou
aplicações apresentam erros inexplicáveis mesmo após vários anos de uso.

Bugs
Bug em inglês quer dizer “defeito”, é um erro no funcionamento de um software ou mesmo do
hardware, também chamado de falha na lógica de um programa. Pode vir a causar comportamentos
inesperados, como resultado incorreto ou comportamento indesejado. São geralmente causados por
erros no próprio código-fonte (código desenvolvido pelo programador).
(Fonte: http://pt.wikipedia.org/wiki/Bug)

10

5 - ARQUITETURA CISC
Há também a arquitetura CISC - Complex Instruction Set Computer, ou Computador com um Conjunto
Complexo de Instruções.

É uma linha de arquitetura de processadores capaz de executar centenas de instruções complexas


diferentes sendo, assim, extremamente versátil.

Havia uma tendência para o uso de conjuntos de instruções cada vez mais ricas, incluindo um grande
número de complexas instruções. Essa tendência teve por motivação duas grandes razões: desejo de
otimizar o desempenho e o desejo de simplificação dos compiladores.

Essas razões tinham por fundamentação a adoção da linguagem de alto nível nas atividades de
programação; os projetistas de computadores almejavam projetar máquinas que oferecessem o melhor
suporte possível para as linguagens de alto nível.

Não será nosso objetivo questionar o que motivou alguns projetistas de computadores adotarem a
técnica CISC. O importante é o entendimento que a tecnologia não para, como na canção do Cazuza “o
tempo não para”, a TI também não para. Atualmente, para a TI, as tecnologias ficam obsoletas em um
curto prazo de tempo. Consequentemente, as arquiteturas existentes variam dentro de um espectro,
não podendo ser classificadas em apenas duas categorias, RISC ou CISC, pois é pouco provável que
algum dia haja uma conclusão sobre o tipo de abordagem mais adequada, se uma arquitetura com
reduzido número de instruções (RISC) ou se a arquitetura com um complexo conjunto constituído de
grande quantidade de instruções (CISC).

Compilador
É um programa de sistema que traduz um programa descrito em uma linguagem de alto nível para um
programa equivalente em código de máquina para um processador. Em geral, um compilador não
produz diretamente o código de máquina, mas sim um programa em linguagem simbólica (assembly)
semanticamente equivalente ao programa em linguagem de alto nível. O programa em linguagem
simbólica é então traduzido para o programa em linguagem de máquina através de montadores.

© 2014 - AIEC - Associação Internacional de Educação Continuada

8
102 – Arquitetura de Computadores | Unidade 04

(Fonte: http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node37.html).

11

É interessante observar que mesmo a abordagem CISC tendo por premissa um complexo conjunto de
instruções, ela veio contribuir para a simplificação dos compiladores. Um compilador gera uma
sequência de instruções de máquina para cada comando da linguagem de alto nível. Caso existam
instruções de máquina que se assemelhem aos comandos de linguagens de alto nível, essa tarefa tornar-
se-á mais simples.

Contudo, esse raciocínio vem sendo discutido por pesquisadores adeptos da arquitetura RISC. Eles
descobriram que instruções de máquina complexas frequentemente são mais difíceis de serem
utilizadas, em virtude de o compilador ter de encontrar os casos em que essas instruções estejam
exatamente adequadas a uma dada construção da linguagem. Com o uso de um conjunto complexo de
instruções, fica muito mais difícil a tarefa de melhorar (otimizar) o código gerado. Fica difícil minimizar
seu tamanho, reduzir o número de instruções executadas e melhorar o desempenho da pipeline de
instruções.

Outro argumento utilizado e que merece destaque é a expectativa de que uma arquitetura CISC possa
produzir programas menores e mais rápidos. Programas menores têm duas vantagens. A primeira é
consumir um menor espaço de memória, resultando na economia desse recurso. Como a memória é,
hoje em dia, mais accessível e tornou-se mais barata, essa vantagem deixa de ser tão significativa. A
vantagem mais evidente e importante de programas menores é, consequentemente, contribuir
para melhorar o desempenho.

O problema com essa linha de raciocínio é que não se pode ter certeza de que um programa compilado
para arquitetura CISC será menor que um programa compilado para uma arquitetura RISC
correspondente. Em muitos casos, o programa CISC, expresso em linguagem de máquina simbólica,
pode ter um número menor de instruções, mas o número de bits de memória ocupada pode não ser
significativamente menor.

Melhorar o desempenho
Essa melhoria de desempenho pode acontecer de duas maneiras:
• Primeiro, um menor número de instruções significa menor número de bytes de instruções a serem
buscados.
• Segundo, em um ambiente de paginação, programas menores ocupam um número menor de
páginas, o que reduz a taxa de falta de páginas.

Paginação
Processo de virtualização da memória que consiste na subdivisão da memória física em pequenas
partições (frames), para permitir uma utilização mais eficiente da mesma. As frames da memória física
correspondem a páginas de memória virtual. A alocação de memória é requisitada por páginas, a
menor unidade deste método. Cada página é mapeada numa frame de memória através de um
processo que chama paginação. (http://pt.wikipedia.org/wiki/Mem%C3%B3ria_paginada).

© 2014 - AIEC - Associação Internacional de Educação Continuada

9
102 – Arquitetura de Computadores | Unidade 04

12

RISC X CISC – Projetos Recentes

Até o momento você deve ter observado as características de cada arquitetura (RISC X CISC) e
provavelmente deve estar pensando ou querendo saber qual delas seria realmente a melhor
arquitetura.

O interessante neste caso não é saber quem é a melhor, mas sim reconhecer que o projeto RISC pode
beneficiar-se com a inclusão de algumas características CISC e o CISC pode beneficiar-se com a inclusão
de algumas características RISC. O resultado é que projetos RISC mais recentes não são RISC “100%”,
assim como projetos CISC incorporam característica RISC.

Sendo assim, não há atualmente processadores que sigam fielmente uma arquitetura específica, RISC ou
CISC. Veja alguns exemplos.

Visando à praticidade, uma vantagem da arquitetura CISC é que já há várias instruções guardadas no
próprio processador, o que viabiliza o trabalho dos programadores que, desta forma, já têm disponível
as instruções necessárias para seus programas. Caso o programador estivesse programando para uma
arquitetura RISC, ele teria mais trabalho, pois as instruções são mais simples e exigiriam muito, caso
houvesse a necessidade de executar algumas tarefas mais complexas. Uma comparação bem
interessante e que ajuda na elucidação seria tentar usar uma calculadora comum (operações básicas)
para fazer cálculos de estatística ou usar a calculadora comum para fazer conversão de base.

Para finalizar nosso módulo, uma sugestão é você visitar a página


(http://www.techtudo.com.br/dicas-e-tutoriais/noticia/2014/03/quais-
as-diferencas-entre-os-processadores-amd-e-intel.html) e ler esta
reportagem sobre as diferenças entre processadores da marca Intel e
da marca AMD.

Outra sugestão é a reportagem


(http://www.tecmundo.com.br/processadores/2760-tabela-de-
processadores-intel.htm) que explica com detalhes as características
dos processadores da INTEL e vale a pena visitar a página da AMD
(http://www.amd.com/pt-br/products/processors) para conhecer
alguns tipos de processadores e suas características.

13

RESUMO

Durante o estudo desta unidade tivemos a oportunidade de entender as chamadas: máquinas von
Neumann e as não von Neumann. Uma característica básica da máquina von Neumann é sua
composição, a qual é feita a partir de três subsistemas básicos: CPU ou UCP, memória principal e
sistema de E/S. As máquinas que não seguem o modelo de von Neumann são chamadas de máquinas
“não-von Neumann”. Porém, não quer dizer que este modelo seja contra ou antagônico ao modelo de

© 2014 - AIEC - Associação Internacional de Educação Continuada

10
102 – Arquitetura de Computadores | Unidade 04

von Neumann. Um projeto de um sistema com arquitetura de alto desempenho só é possível alterando
os algoritmos para melhor ajustar à organização do sistema. Tendo por objetivo melhorar a
performance, estudos sobre o comportamento da execução de programas em linguagens de alto nível
visam orientar o projeto de um novo tipo de arquitetura para processadores, o chamado computador
com conjunto reduzido de instruções (Reduced Instruction Set Computes) ou também conhecido como
arquitetura RISC. Há também a arquitetura CISC, que era resultado de uma tendência para o uso de
conjuntos de instruções cada vez mais ricas, incluindo um grande número de complexas instruções. Essa
tendência teve por motivação duas grandes razões: desejo de otimizar o desempenho e desejo de
simplificação dos compiladores.

Ao final, concluímos que o mais interessante não é saber quem é a melhor (RISC ou CISC), mas sim
reconhecer que o projeto RISC pode beneficiar-se com a inclusão de algumas características CISC e o
CISC pode beneficiar-se com a inclusão de algumas características RISC. O resultado é que projetos RISC
mais recentes não são RISC “100%”, assim como projetos CISC incorporam características RISC.

UNIDADE 4 – ARQUITETURAS CONVENCIONAIS E NÃO CONVENCIONAIS


MÓDULO 2 – MÁQUINAS PARALELAS
01

1 - COMPUTAÇÃO PARALELA

No decorrer do estudo deste módulo entenderemos que quando falamos em computação paralela
fazemos referência à maneira de realizar vários cálculos (instruções) de maneira simultânea. Falaremos
da organização SMP, que faz referência a vários processadores similares em um mesmo computador,
ligados pelo barramento ou por meio de algum circuito de conexão. Você entenderá que cluster é o
conjunto de máquinas, ligadas entre si, que trabalham juntas como um sistema computacional único,
dando a impressão que é uma única máquina.

Falaremos também do sistema NUMA no qual o tempo gasto para acesso a uma palavra na memória
varia conforme a posição dessa palavra na referida memória. Você verá que computadores
superescalares são máquinas que possuem várias unidades de execução no mesmo processador, sendo
assim, executam em paralelo várias instruções de um mesmo programa. Estudaremos como é uma
organização MIMD, na qual cada processador irá processar todas as instruções para, de forma
adequada, realizar a transformação dos dados. Estudaremos a máquina SISD, a qual possui uma unidade
de controle que oferece uma sequência de instruções para uma unidade de processamento.

Na sequência, estudaremos o modelo PRAM, que é uma extensão do modelo sequencial RAM e também
o mais conhecido dos modelos de computação paralela. Veremos o modelo Bulk Synchronous Parallel
Model (BSP) que foi um dos primeiros a levar em consideração os custos da comunicação e não levar em
conta as características de uma máquina paralela em um número pequeno de parâmetros. E ao final,
veremos também o modelo Coarse Grained Multicomputer (CGM) que é muito similar ao modelo BSP.

Vamos ao nosso estudo!

© 2014 - AIEC - Associação Internacional de Educação Continuada

11
102 – Arquitetura de Computadores | Unidade 04

02

Caso alguém pedisse sua opinião para melhorar o desempenho de um sistema computacional,
provavelmente você aconselharia a aumentar o número de processadores. Se você teve esta ideia,
muito bem, está correto. A ideia de adicionar mais processadores para trabalharem (executarem) em
paralelo para melhorar a performance diante de uma carga de trabalho é muito bem-vinda. Tanto é,
que, hoje em dia, ao comprarmos uma máquina (computador) notamos que os processadores são, na
maioria das vezes, multicore (processador com mais de um núcleo).

Quando falamos em computação paralela, estamos fazendo referência à maneira de realizar vários
cálculos (instruções) de forma simultânea. Trata-se de dividir um grande problema em problemas
menores, os quais serão processados concorrentemente (paralelamente).

Esta técnica, chamada de paralelismo, é empregada há muito tempo e seu foco sempre foi a
computação de alto desempenho. Atualmente, em virtude da necessidade de criarmos máquinas mais
potentes, de tamanho reduzido e que consumam menos energia elétrica, tornou-se ainda mais
necessário o uso de processadores multinúcleo.

Todavia, há várias maneiras de organizar múltiplos processadores, vamos destacar:

• a organização de multiprocessadores simétricos (SMP),


• os NUMA (acesso não uniforme à memória) e
• os chamados agregados (clusters).

Sistema computacional
Conjunto de dispositivos eletrônicos (hardware) que processam informações de acordo com um
programa (software). O software mais importante é o sistema operacional, porque ele fornece as bases
para a execução das aplicações, às quais o usuário deseja executar. Exemplos de sistemas operacionais
são: GNU/Linux, Microsoft Windows, o IOS da Apple.
(Fonte: http://pt.wikipedia.org/wiki/Sistema_computacional).

03

2 - SMP / NUMA / CLUSTERS

Quando falamos de uma organização SMP (Symmetric MultiProcessor - multiprocessadores simétricos),


estamos fazendo referência a vários processadores similares em um mesmo computador, ligados pelo
barramento ou por meio de algum circuito de conexão. O que há de crítico neste arranjo é o que
chamamos de coerência de cache. Isto ocorre em virtude de cada processador ter sua memória cache e
quando trabalham em conjunto, por algum motivo, alguma linha de dados for alterada indevidamente a
MP (memória principal) terá uma versão inválida dessa linha.

Reforçando o conceito, um SMP consiste em vários processadores que compartilham uma memória
única ou mesmo um conjunto de memória através do compartilhamento de um barramento ou de outro
tipo de conexão. Esse sistema tem por característica que o tempo de acesso a qualquer região da

© 2014 - AIEC - Associação Internacional de Educação Continuada

12
102 – Arquitetura de Computadores | Unidade 04

memória é praticamente o mesmo para cada processador. O sistema SMP tem esta denominação em
referência tanto quanto ao comportamento do sistema operacional quanto à arquitetura de hardware.

Um sistema SMP tem as seguintes características:

 O controle do sistema é feito por um sistema operacional integrado, que estabelece uma
interação entre seus programas e os processadores, em nível de dados, arquivos e de tarefas;
 Em virtude de serem simétricos, os processadores poderão desempenhar as mesmas funções;
 Tanto por meio de canais distintos ou comuns que provêm caminhos para os dispositivos, todos
os processadores compartilham acesso aos dispositivos de entrada e saída (E/S);
 O tempo de acessa à memória é aproximadamente o mesmo para cada processador, isto
ocorre em virtude dos processadores compartilharem as facilidades de E/S e a mesma MP e
estão conectados por um barramento ou outro meio de conexão;
 Há dois ou mais processadores similares, com capacidade de computação compatível.

Coerência de cache
Diversas arquiteturas de máquinas paralelas atuais são construídas com processadores produzidos em
larga escala. Essas máquinas paralelas incorporam caches em suas arquiteturas, o que provoca o
problema de coerência de cache, que, em síntese, é a inconsistência de dados. Essa inconsistência é
provocada pelos seguintes motivos:
- múltiplas cópias de mesma posição de memória podem existir em diferentes caches,
- cada processador atualiza sua cópia local, não se preocupando com a existência de outras cópias em
outros processadores;
- cópias de mesmo endereço de memória poderão possuir valores diferentes.

Sistema Operacional
É um sistema que tem por objetivo organizar e controlar os softwares e o hardware tornando possível a
utilização de um computador (máquina).
(Fonte: http://pt.wikipedia.org/wiki/Sistema_operativo)

04

As vantagens do SMP são as seguintes:

• necessita de espaço físico e demanda de energia menor que um cluster;


• fisicamente falando é muito próximo ao modelo original de um processador único, sendo assim, fica
mais fácil para as aplicações desenvolvidas para monoprocessadores, pois a aplicação não precisa
“saber” quantos processadores há em uma máquina.

Quando falamos em cluster estamos fazendo referência a um conjunto de máquinas, ligados entre si,
que trabalham juntos como um sistema computacional único, dando a impressão que é uma única
máquina.

© 2014 - AIEC - Associação Internacional de Educação Continuada

13
102 – Arquitetura de Computadores | Unidade 04

Quando falamos no sistema NUMA (Non-Uniform Memory Access ou acesso não uniforme à memória)
estamos fazendo referência a um multiprocessador com memória compartilhada, no qual o tempo gasto
para acesso a uma palavra na memória varia conforme a posição dessa palavra na referida memória.
Então, como o próprio nome sugere, o tempo de acesso a diferentes regiões da memória pode não ser
igual para um processador NUMA. Um grupo de computadores com apenas um processador ou de SMP
independentes podem ser conectados por meio de cabos de rede ou outro tipo de conexão e formarem
um cluster.

Então não se esqueça, o sistema NUMA tem por característica o fato de todos os processadores
possuírem acesso a todas as áreas da MP (memória principal), via operação de armazenamento e de
carga. Sendo assim, o fator tempo de acesso à memória por um processador é diferente conforme a
região utilizada. Isso acontece com todos os processadores, contudo, as regiões de memória na qual o
acesso é mais rápido ou mais lento serão diferentes para diferentes tipos de organização utilizada nos
processadores.

05

3 - MÁQUINA SEQUENCIAL / MÁQUINA PARALELA

Tipicamente, uma máquina é vista como uma máquina sequencial. Grande parte das linguagens de
programação exige a especificação do algoritmo como uma sequência de instruções. Esta visão é que os
processadores executam programas através da execução sequencial de instruções de máquina.
Contudo, esta visão não é totalmente verdadeira. Isso devido ao fato de que ao nível de
microoperações, uma gama de sinais de controle é gerada ao mesmo tempo.

A técnica de Pipeline de instruções é utilizada há um certo tempo, fazendo sobreposição nas operações
de execução e busca de instruções. Esses são exemplos de execução em paralelo das funções.

Essa visão nos remete a uma organização chamada superescalar, que tem por objetivo explorar o
paralelismo ao nível de instrução. Nos chamados computadores superescalares, há várias unidades de
execução no mesmo processador, sendo assim, executam em paralelo várias instruções de um mesmo
programa.

© 2014 - AIEC - Associação Internacional de Educação Continuada

14
102 – Arquitetura de Computadores | Unidade 04

À proporção que há evolução da tecnologia e o preço do hardware da máquina (computador) diminui,


os projetistas de máquina estão buscando outras maneiras de aproveitar o paralelismo, geralmente com
o intuito de melhorar o desempenho e também aumentar a disponibilidade do sistema.

O cientista da computação, o americano Michael J. Flynn foi o criador do primeiro sistema para a
classificação de programas e computadores paralelos e sequenciais, ficando conhecida como
a taxonomia de Flynn, que veremos a seguir.

06

Flynn fez a seguinte classificação para as categorias de sistemas de computação paralela:

• SISD (Single Instruction Single Data) – “única instrução, único dado”. Significa que apenas um
processador irá executar uma única sequência de instruções, utilizando os dados que estão
armazenados em apenas uma memória. Pertencem a esta categoria os sistemas uniprocessados.

Na estrutura de uma máquina SISD há uma UC (unidade de controle) que oferece uma SI (sequência de
instruções) para uma UP (unidade de processamento). A UP opera sobre uma única SD de uma única
UM (unidade de memória). Na máquina SIMD, há uma única UC, que alimenta múltiplos EP (elementos
de processamento) com somente uma sequência de instruções. Cada elemento de processamento
possui sua própria memória ou compartilha uma memória. Na organização MIMD, há múltiplas UC, cada
qual alimentando seu próprio elemento de processamento com diferentes sequências de instruções.

• SIMD (Single Instruction Multiple Data) – “única instrução múltiplos dados”. Significa que apenas uma
instrução de máquina controla a execução simultânea de determinado número de elementos de
processamento, em passos de execução. Cada elemento de processamento está associado a uma
memória de dados, de tal maneira que cada instrução será executada em cada processador sobre um
conjunto de dados diferentes. Pertencem a esta categoria os processadores matriciais e os vetoriais.

07

© 2014 - AIEC - Associação Internacional de Educação Continuada

15
102 – Arquitetura de Computadores | Unidade 04

• MISD (Multiple Instruction Sigle Data) - “múltiplas instruções único dado”. Significa dizer que
determinada sequência de dados é enviada para um conjunto de processadores, cada processador
executa uma sequência diferente de instruções. Esta estrutura é experimental.

• MIMD (Multiple Instruction Multiple Data) – “múltiplas instruções múltiplos dados”. Significa que
determinado conjunto de processadores simultaneamente executam sequências diferentes de
instrução, sobre conjuntos de dados distintos. Pertencem a esta categoria os SMP, clusters e sistemas
NUMA.

Na organização MIMD, os processadores são utilizados para propósito geral, cada processador irá
processar todas as instruções para, de forma adequada, realizar a transformação dos dados.

Os sistemas MIMD podem, conforme a forma de comunicação, ser subdivididos. Os processadores


compartilham a mesma memória, então cada processador irá utilizar programas e dados que estão
armazenados na memória compartilhada e toda comunicação entre eles (processadores) será por meio
dessa memória. Este tipo de sistema é conhecido como SMP (multiprocessador simétrico).
Até a pouco tempo, a maioria dos PC (computadores pessoais) e das workstation (estações de trabalho)
possuíam apenas um processador. Em virtude da necessidade de melhor desempenho e a constante
queda do custo dos processadores, os fabricantes começaram a introduzir os sistemas SMP.

08

Para complementar o seu estudo, assista ao vídeo abaixo. Neste vídeo você terá oportunidade de
entender o que motivou o INPE (Instituto Nacional de Pesquisas Espaciais) a investir em um sistema
computacional de alto desempenho para o CPTEC (Centro de Previsão do Tempo e Estudos Climáticos),

© 2014 - AIEC - Associação Internacional de Educação Continuada

16
102 – Arquitetura de Computadores | Unidade 04

que é composto por um cluster de 1,1 mil processadores trabalhando em conjunto e está na lista dos
500 supercomputadores mais rápidos do mundo.

https://www.youtube.com/watch?v=gfBSNxcYRiU

Aproveite também para ler uma pequena reportagem da revista on-line Exame.com, que aborda como a
USP está utilizando os maiores e mais potentes clusters (aglomerado de computadores) do mundo
voltado para pesquisas de astronomia.

http://exame.abril.com.br/tecnologia/noticias/supercomputador-da-usp-estuda-estrelas-
gigantes/

09

4 - CLUSTER: BENEFÍCIOS
Cluster é um grupo de computadores interconectados, trabalhando em conjunto, como um
sistema computacional unificado, dando a impressão de ser um único computador.

Você poderá encontrar outras definições, que dizem: clusters são formados por vários “nós”, sendo que
cada “nó” representa um computador, sendo assim, cluster também poderá ser chamado de conjunto
de “nós” interconectados.

Quando falamos em clusters podemos ver que é uma área muito utilizada e promissora do projeto de
sistemas de computação. Clusters são uma alternativa para multiprocessadores simétricos (SMP), como
abordagem para o provimento de alta disponibilidade e alto desempenho, sendo muito utilizados em
ambiente de servidores.

Servidor
Na TI (Tecnologia da Informação) o termo “servidor” é utilizado para especificar um sistema de
computação centralizado que fornece serviços a uma rede de computadores. Esses serviços podem ser
de vários tipos, como por exemplo: servidor de arquivos (file server) ou de correio eletrônico (mail
server). As máquinas (computadores) que utilizam os serviços de um servidor são chamadas de clientes
ou estações de trabalho clientes. (Fonte: http://pt.wikipedia.org/wiki/Servidor).

© 2014 - AIEC - Associação Internacional de Educação Continuada

17
102 – Arquitetura de Computadores | Unidade 04

10

No ano de 1997 o autor Brewer, no seu livro “Clustering multiply and conquer”, que em uma tradução
simples seria “Cluster: dividir para conquistar”, fala sobre os benefícios do uso de clusters. Fazendo um
“parêntese”, essa expressão “dividir para conquistar” foi utilizada por grandes personagens da história,
como César (Roma) e Napoleão (França), no intuito de explicar uma estratégia de manter os inimigos
divididos, em grupos pequenos, ficando mais fácil dominá-los. Contudo, em nosso “mundo da TI” e mais
especificamente em Cluster, estamos fazendo referência a “dividir as tarefas” entre os processadores,
para “conquistar” uma melhor performance.

Abaixo podemos ver como Brewer relaciona os benefícios alcançados com clusters:

• Escalabilidade incremental;
• Escalabilidade absoluta;
• Melhor relação custo/desempenho;
• Alta disponibilidade.

Tanto cluster como SMP (multiprocessadores simétricos) possuem uma configuração com vários
processadores (múltiplos processadores) para suportar aplicações que exigem alto desempenho. Essas
soluções (cluster e SMP) estão disponíveis no mercado, sendo que a principal vantagem dos sistemas
SMP é a fácil configuração em relação a um cluster.

Fica também claro o que motiva as empresas a investirem em clusters para aplicações de alto
desempenho (exemplo do INPE, visto anteriormente), pois nos quesitos escalabilidade incremental,
escalabilidade absoluta e disponibilidade os clusters são muito mais eficientes e superiores que os SMP.

Escalabilidade Incremental
Na configuração de um cluster é possível adicionar novos computadores, tornado sua expansão
incremental. Dessa maneira, é possível começar com um sistema pequeno e expandir à medida do
aumento das necessidades.

Escalabilidade Absoluta
Capacidade de criação de grandes clusters, com capacidade de executar vários aplicativos de maneira
que ultrapassa várias vezes a capacidade de uma máquina comum. Um cluster pode ser formado por
muitas máquinas, sendo que cada uma constitui um processador ou multiprocessador.

Melhor relação custo/desempenho


Em virtude da facilidade da construção de um cluster, utilizando máquinas mais simples, com poder de
processamento menor ou mesmo máquinas que são consideradas ultrapassadas, é possível obter um
cluster com poder de computação igual ou maior que um servidor de rede de ultima geração, com um
valor muito mais acessível.

Alta Disponibilidade
Cada nó de um cluster é uma máquina independente, uma falha em qualquer destas máquinas não
significa uma perda total do serviço, pois as outras máquinas mantêm a disponibilidade da aplicação ou
serviço de rede.

© 2014 - AIEC - Associação Internacional de Educação Continuada

18
102 – Arquitetura de Computadores | Unidade 04

11

5 - NUMA: VANTAGENS E DESVANTAGENS

Dentre as principais vantagens de um sistema NUMA destacamos o desempenho efetivo em níveis de


paralelismo mais altos que o fornecido por sistemas SMP, sem necessidade de grandes mudanças no
software. Com vários “nós” NUMA, o tráfego no barramento em qualquer “nó” estará limitado à
demanda que esse barramento é capaz de suportar. Contudo, caso haja um grande número de acessos a
posições de memória localizadas em “nós” remotos, o desempenho cairá sensivelmente. Mas tudo isso
pode ser minimizado com uso da memória cache e também de memória virtual (visto anteriormente).

Há também algumas desvantagens no sistema NUMA, a primeira é que este sistema não se apresenta
de forma transparente como um SMP, havendo necessidade de modificações de software para a
migração de sistemas operacionais e aplicações do sistema SMP para o sistema NUMA. A segunda
desvantagem é a questão da disponibilidade, conforme vimos na comparação Cluster e SMP.

Na grande maioria dos softwares desenvolvidos para máquinas paralelas observam apenas o problema
da paralelização com baixos níveis de comunicação. Contudo, nas máquinas reais, o tempo de
comunicação é, geralmente, mais elevado que o tempo de processamento (computação). Sendo assim,
muitos algoritmos paralelos que na teoria são eficientes, para o modelo PRAM (memórias de acesso
aleatório com mudança de fase), não têm o desempenho que se espera quando implementados em
máquinas paralelas reais.

12

Com vimos até agora, o objetivo da computação paralela é a utilização simultaneamente de um


conjunto de processadores interligados (conectados), de tal modo que resolva um problema de maneira
conjunta e mais rapidamente do que seria em um processamento sequencial quando utilizado apenas
um processador.

Ao pararmos para pensar, poderemos ver que um computador paralelo é simplesmente um grupo
(coleção) de processadores, geralmente do mesmo tipo, interligados de tal modo que permita a

© 2014 - AIEC - Associação Internacional de Educação Continuada

19
102 – Arquitetura de Computadores | Unidade 04

coordenação de como é feita a troca de dados e também das suas atividades. Essas atividades podem
ser: quando o volume de dados e cálculos é muito grande e necessita-se de rapidez na resolução.

Na busca constante por um modelo adequado há a necessidade de compreender e incorporar, em tal


modelo, características peculiares da computação paralela.

No decorrer do nosso estudo vimos o modelo de computação sequencial de von Neumann, que assume
a existência de apenas uma UCP e uma memória de acesso aleatório (RAM), é possível estabelecer uma
relação entre os desempenhos das implementações e dos seus respectivos algoritmos por meio de
medidas de complexidade de tempo.

No modelo de von Neumann, estas medidas (complexidade de tempo) tornam possível medir de
maneira mais eficiente a performance dos algoritmos sequenciais, servindo como referência para as
implementações. Entretanto, na computação paralela, a mesma relação entre algoritmos e
implementações não há ainda um modelo padrão. Em virtude da presença de vários elementos de
processamento torna a definição de um modelo de computação paralela mais complicado.

13

6 - PRAM - PARALLEL RANDOM ACCESS MACHINE

O modelo PRAM (Parallel Random Access Machine) é uma extensão do modelo sequencial RAM e
também o mais conhecido dos modelos de computação paralela.

Podemos descrevê-lo como um conjunto de processadores que trabalham sob o controle do clock de
maneira síncrona. Cada processador possui uma identificação única e uma memória local própria,
comunicando-se com os demais processadores por meio de uma memória compartilhada.

© 2014 - AIEC - Associação Internacional de Educação Continuada

20
102 – Arquitetura de Computadores | Unidade 04

Apesar de sua importância conceitual e teórica, o modelo PRAM, não consegue espelhar com precisão a
noção de paralelismo. Algumas características que não foram incorporadas ao modelo têm grande
impacto no desempenho das implementações.

Em virtude das limitações do modelo PRAM, outras alternativas surgiram para contornar estes
problemas, estes modelos são chamados realísticos, exemplo, o BSP e o CGM, que veremos a seguir.

Clock
Significa a quantidade de ciclos que um processador é capaz de realizar durante um determinado
tempo. (Fonte: http://pt.wikipedia.org/wiki/Clock)

14

7 – MODELOS BSP E CGM

O modelo Bulk Synchronous Parallel Model (BSP), que em uma tradução simples seria “Modelo Paralelo
Síncrono Volumoso”, teve sua proposição feita por Valiant (Leslie Valiant – professor de Harward), no
ano de 1990, foi um dos primeiros em levar em consideração os custos da comunicação e não levar em
conta as características de uma máquina paralela em um número pequeno de parâmetros. Este modelo
tem como objetivo principal servir de ponte entre as necessidades na computação paralela de hardware
e software. Conforme a proposição de Leslie Valiant, este é um dos fatores responsáveis pelo sucesso do
modelo sequencial de von Neumann.

O modelo de máquina BSP consiste de um conjunto de “p” processadores com memória local, trocando
informações por meio de alguma interconexão, gerenciados por um roteador (faz a intermediação
entre um ou mais pontos) e com facilidade de sincronização global. Um algoritmo BSP consiste de uma
sequência de uma quantidade muito grande de passos (superpassos) separados por barreiras de
sincronização.

Há também o modelo Coarse Grained Multicomputer (CGM), que em uma tradução simples seria
“Multicomputador com Granularidade Grossa”, teve sua proposição feita por Dehne et al, no ano de
1993.

O modelo CGM é muito parecido com o modelo BSP, no entanto, é definido em apenas dois
parâmetros:
n = tamanho do problema e
p número de processadores.

Um algoritmo CGM consiste de sequência alternada de rodadas de computação e rodadas de


comunicação, separadas por uma barreira de sincronização. Ao falarmos de um algoritmo CGM,
precisamos entender que é uma sequência de rounds (rodadas), com alternância de fases bem definidas
de processamento local e estabelecendo uma conexão global. Geralmente, durante uma rodada de
computação é feita com a utilização do melhor algoritmo sequencial para o processamento dos dados
disponibilizados localmente.

© 2014 - AIEC - Associação Internacional de Educação Continuada

21
102 – Arquitetura de Computadores | Unidade 04

O cálculo do custo de um algoritmo CGM é feito pela soma dos tempos obtidos em termos do número
total de rounds de computação local e do número de superpassos, o que seria equivalente ao número
total rodadas de comunicação.

Granularidade grossa
Quando se fala em “coarse grained” (granularidade grossa) é em virtude do tamanho de o problema ser
razoavelmente maior que a quantidade de processadores, ou seja, “tamanho do problema” = “número
de processadores” (n/p = p).

15

Os modelos modernos de computação paralalela, BSP e CGM, têm por objetivo a redução dos custos de
comunicação de maneira muito semelhante e buscam a caracterização de uma máquina paralela por
meio de um conjunto de parâmetros. Podemos destacar que no número de operações de computação
local e no número de superpassos eles são muito semelhantes.

Entretanto, há diferenças. Destacamos que o modelo CGM é mais simples no projeto e o


desenvolvimento de algoritmos em virtude de ser um modelo mais simplificado e um pouco mais
poderoso que o modelo BSP. É interessante destacar que um algoritmo CGM pode ser convertido para o
modelo BSP sem nenhuma mudança. Em suma, os modelos BSP e CGM apresentam características
muito parecidas. Contudo, o modelo CGM é mais simples quanto ao custo da comunicação, o que
facilita bastante o projeto de algoritmos.

Fazendo referência ao final da década de 1980, observamos que houve o crescimento grande do
desenvolvimento de algoritmos paralelos para o modelo chamado PRAM. Em virtude, infelizmente, dos
resultados teóricos obtidos não serem positivos eles não foram utilizados para implementações nas
máquinas atuais. Na década de 1990, é quando surgem os modelos BSP e CGM. O desenvolvimento de
algoritmos para esses modelos, quando foram implementados nas máquinas atuais, apresentam
resultados satisfatórios de “Tempo do Algoritmo Sequencial Dividido pelo Tempo do Algoritmo Paralelo
com “p” processadores” (speedup) semelhantes ao que havia sendo ensaiado nas análises teóricas.

Os modelos BSP e CGM tornaram possível um progresso considerável na área de algoritmos paralelos,
mas o mais interessante é que ainda há muito a melhorar e que muitas pesquisas ainda serão
necessárias para atingir o estado da arte.

16

RESUMO

Durante nosso estudo você teve oportunidade de conhecer o que é Computação Paralela e sua maneira
de realizar vários cálculos (instruções) simultaneamente. Você compreendeu como é a organização SMP,
que faz referência a vários processadores similares em um mesmo computador, ligados pelo
barramento ou por meio de algum circuito de conexão. Você compreendeu que CLUSTER é o conjunto
de máquinas, ligadas entre si, que trabalham juntas como um sistema computacional único, dando a
impressão que é uma única máquina.

© 2014 - AIEC - Associação Internacional de Educação Continuada

22
102 – Arquitetura de Computadores | Unidade 04

Quando falamos em sistema NUMA estamos fazendo referência a um multiprocessador com memória
compartilhada, no qual o tempo gasto para acesso a uma palavra na memória varia conforme a posição
dessa palavra na referida memória. Você teve oportunidade de saber que computadores superescalares
são máquinas que possuem várias unidades de execução no mesmo processador. Na organização MIMD,
os processadores são utilizados para propósito geral, cada processador irá processar todas as instruções
para, de forma adequada, realizar a transformação dos dados.

Você compreendeu que na estrutura SISD há uma UC (unidade de controle) que oferece uma SI
(sequência de instruções) para uma UP (unidade de processamento). Você também teve oportunidade
de conhecer o que é um sistema NUMA (Acesso não uniforme à memória) que tem por característica
que todos os processadores possuem acesso a todas as áreas da MP (memória principal), via operação
de armazenamento e de carga. Você compreendeu que o modelo PRAM (Parallel Random Access
Machine) é uma extensão do modelo sequencial RAM e também o mais conhecido dos modelos de
computação paralela. Para finalizar você conheceu o modelo Bulk Synchronous Parallel Model (BSP) que
foi um dos primeiros a levar em consideração os custos da comunicação e não levar em conta as
características de uma máquina paralela em um número pequeno de parâmetros e o modelo Coarse
Grained Multicomputer (CGM) que é muito similar ao modelo BSP, no entanto, é definido em apenas
dois parâmetros: em que “n” é o tamanho do problema e “p” número de processadores.

UNIDADE 4 – ARQUITETURAS CONVENCIONAIS E NÃO CONVENCIONAIS


MÓDULO 3 – AMBIENTE DISTRIBUÍDO DE ALTO DESEMPENHO - FUNDAMENTOS
BÁSICOS
01

1 - ARQUITETURAS COMPUTACIONAIS

Durante o estudo deste módulo você terá a oportunidade de compreender que os sistemas
computacionais estão cada vez mais elaborados e complexos, requerendo o processamento de grandes
quantidades de informação e os computadores que as processam precisam ter um melhor
balanceamento de carga, uma melhor distribuição na concorrência de tarefas, além da redução do
tempo de resposta ao usuário.

As opções mais usuais para a solução desses problemas são: a utilização de processadores mais rápidos
(cujo custo normalmente é elevado); o desenvolvimento de melhores algoritmos (permitindo agilidade
nas aplicações); ou então, a agregação (clusters) ou distribuição geográfica (grids) dos computadores
locais permite a maximização da eficiência global das aplicações.

Com microprocessadores cada vez mais potentes, com um custo cada vez menor, além do avanço na
tecnologia de comunicação de dados houve a criação de um ambiente favorável para o
desenvolvimento e utilização de sistemas distribuídos.

© 2014 - AIEC - Associação Internacional de Educação Continuada

23
102 – Arquitetura de Computadores | Unidade 04

A computação distribuída ou paralela diz respeito à interligação de vários computadores a uma rede
com a finalidade de compartilhar e coordenar os recursos disponíveis para a solução de problemas
complexos na execução de tarefas.

02

Há inúmeras possibilidades na arquitetura dos computadores com a finalidade de uniformizar as


características dos sistemas computacionais, porém a taxonomia de Flynn é a mais aceita na área, pois
considera tanto o número de instruções executadas, quanto o conjunto de dados para os quais essas
instruções são submetidas. Vale a pena relembrar a classificação dos computadores segundo Flynn:

© 2014 - AIEC - Associação Internacional de Educação Continuada

24
102 – Arquitetura de Computadores | Unidade 04

03

Ao permitir a introdução de fluxos múltiplos de dados ou instruções, as arquiteturas MIMD criaram o


ambiente perfeito para o surgimento da computação distribuída. A classificação da arquitetura MIMD
pode ser feita sob dois prismas:

1) Multiprocessadores: há vários processadores compartilhando uma única memória ou


conjunto de memórias, sendo conhecida como fortemente acoplada, visto que há uma
interligação entre processadores e memória, através de um sistema local de interconexão. O
diferencial é que “a comunicação entre os processadores é efetuada através de instruções
de acesso comum à memória (as operações de carregamento e armazenamento), pois os
processadores compartilham a memória de uma forma global” (DANTAS, 2005). Há
restrições na escalabilidade de processadores.

© 2014 - AIEC - Associação Internacional de Educação Continuada

25
102 – Arquitetura de Computadores | Unidade 04

Fortemente acoplado
Sistemas fortemente acoplados são aqueles que possuem vários processadores compartilhando uma
memória física. Exemplos: SMP(UMA) e NUMA.

04

A interconexão entre processadores e memória pode ser efetuada por meio de uma barra, que permite
a configuração compartilhada.

05

Outra forma de interligação é usar um equipamento de comutação, (switch), estabelecendo uma


configuração comutada simples e até multinível.

© 2014 - AIEC - Associação Internacional de Educação Continuada

26
102 – Arquitetura de Computadores | Unidade 04

06

2) Multicomputadores: este tipo de arquitetura é composta por ambientes fracamente


acoplados, onde os processadores têm suas próprias memórias locais e a comunicação entre
processos é caracterizada por “troca de mensagens entre os processos que estão
executando nos processadores” (DANTAS, 2005). Há uma boa escalabilidade da estrutura da
máquina.

© 2014 - AIEC - Associação Internacional de Educação Continuada

27
102 – Arquitetura de Computadores | Unidade 04

07

Os multicomputadores também podem ser ligados em barramento e por comutação conforme as


figuras que se seguem:

Multicomputadores ligados em barramento

08

2 - SMP, CCNUMA E MPP

Multiprocessadores Simétricos (SMP)

© 2014 - AIEC - Associação Internacional de Educação Continuada

28
102 – Arquitetura de Computadores | Unidade 04

Conforme vimos anteriormente, os Multiprocessadores Simétricos (SMP) são arquiteturas de


compartilhamento total e representadas pelos Symmetric Multiprocessor SMP onde há inúmeros
processadores compartilhando toda a base computacional e executando as instruções num único
sistema operacional. São chamados de simétricos porque os processadores têm os mesmos custos para
acesso à memória e a qualquer dispositivo conectado no sistema de entrada e saída.

As máquinas são denominadas servidores de pequeno porte, que visam aumentar o desempenho de
aplicações por meio do compartilhamento do código com uma memória única utilizando fortemente os
processadores disponíveis, provendo maior rapidez nas consultas e atualizações de bancos de dados,
por exemplo. Uma das características dessa arquitetura é que os ambientes não são muito escaláveis,
pois o sistema de interconexão normalmente utilizado é um barramento que fixa a largura da banda e
cria uma limitação.

Fonte: Prof. Dr. Odemir Martinez Bruno – Processamento Paralelo – Slide ICMC – USP

09

ccNuma - Cache Coherence Non-Uniform Memory Access

A arquitetura de acesso não uniforme à memória – ccNuma (Non-Uniform Memory Access NUMA) tem
a característica de poder escalar centenas de processadores, preservando o modelo de programação
simples de uma configuração SMP. Os processadores podem compartilhar os mesmos dados que estão
armazenados em uma memória global. Há “um retardo para acesso a determinadas partes da memória
por determinados processadores dependendo de suas localizações” (DANTAS, 2005).

Referem-se a estas configurações como organização de multiprocessador distribuída de memória, onde


cada nó processador possui um cache local que reduz o tráfego na rede de interconexão e o
balanceamento de carga é realizado de forma dinâmica pelos protocolos de coerência das caches.

As arquiteturas ccNUMA são complexas e suas implementações dependem das soluções de cada
fabricante para a sincronização de acesso e consistência à memória, permitindo um melhor
desempenho da máquina.

© 2014 - AIEC - Associação Internacional de Educação Continuada

29
102 – Arquitetura de Computadores | Unidade 04

10

MPP - Massively Parallel Processors

É um tipo de arquitetura fracamente acoplada na qual os computadores são classificados como


multicomputadores e as máquinas possuem configuração massivamente paralelas (MPP), podendo ser
compostos por um conjunto de multiprocessadores, que representam um nó de uma configuração do
tipo multicomputador, com cache e memória local, e há milhares de nós interligados por dispositivos de
interconexão de alta velocidade.

Cada nó possui uma cópia de sistema operacional, onde as aplicações executam localmente e se
comunicam através de pacotes de troca de mensagem. A escalabilidade desta abordagem é maior, visto
que cada nó tem sua estrutura própria de memória e a interligação de vários nós é efetuada por
dispositivos chamados redes de interconexão, podendo ser implementadas de várias formas de acordo
com sua topologia, seu algoritmo de roteamento, a estratégia de comutação e o controle do fluxo entre
nós.

11

3 - SISTEMAS DISTRIBUÍDOS, CLUSTERS E GRIDS

São configurações que agregam computadores existentes nas redes convencionais e possuem grande
poder de escala em virtude disso. Nos ambientes distribuídos os conjuntos de máquinas existentes
permitem configurações diferenciadas de SMPs, MPP, de clusters e grids computacionais. Muitos
autores empregam o termo metacomputador como referência ao uso de sistemas distribuídos como um
grande computador, vide a própria internet que possui máquinas agrupadas para a execução de uma
aplicação.

É importante que a segurança, o retardo de comunicação, a confiabilidade, a disponibilidade e a


compatibilidade de versões de pacotes de software sejam analisados durante o processo de
implementação desta configuração, visto que, como há mais computadores, a probabilidade de uma
falha ocorrer aumenta substancialmente.

© 2014 - AIEC - Associação Internacional de Educação Continuada

30
102 – Arquitetura de Computadores | Unidade 04

12

Clusters

É a agregação de computadores de uma forma dedicada ou não dedicada para a execução de aplicações
específicas de uma organização ou que exijam um maior desempenho computacional agregado.
Normalmente, os clusters se encontram geograficamente localizados em uma determinada área da
organização, tendo uma disponibilidade de processadores, memórias e capacidade de armazenamento
específicos para este atendimento.

Nos clusters a escalabilidade é um diferencial, visto que a configuração pode ser aumentada de acordo
com os recursos disponíveis, melhorando o desempenho das aplicações.

© 2014 - AIEC - Associação Internacional de Educação Continuada

31
102 – Arquitetura de Computadores | Unidade 04

13

Grids

O termo computação em grade ou grids computacionais agregam ambientes geograficamente dispersos


criando uma malha de serviços, com foco na qualidade. Seu principal objetivo é o compartilhamento dos
mais diferentes tipos de recursos, desde os mais simples como um desktop até os de alto desempenho
como os de grande porte e os clusters, utilizando o tempo ocioso de sistemas computacionais.

Seu maior exemplo é a internet, que está num ambiente no qual diferentes tipos de aplicativos e de
requerimentos de qualidade são tratados de forma equivalente, através dos grids consegue-se
concentrar “toda a potencialidade de recursos e serviços disponíveis na internet para o processamento
de tarefas dos usuários pertencentes a uma ou mais configurações de grid”.

© 2014 - AIEC - Associação Internacional de Educação Continuada

32
102 – Arquitetura de Computadores | Unidade 04

14

4 - ESCALONAMENTO (SCHEDULING)

O escalonamento é necessário para minimizar o tempo de execução das aplicações, e


consequentemente seus custos de comunicação, além de maximizar a utilização dos recursos
computacionais disponíveis. Um algoritmo de escalonamento pode ser definido de diferentes formas
mas seu objetivo principal é o de produzir um desempenho excelente nas combinações de hardware e
software. Para tanto se deve verificar a plataforma computacional, o algoritmo de escalonamento e as
aplicações executadas.

A taxonomia proposta por Casavant (Casavant & Kuhl, 1988) é a mais abrangente e baseia-se nos tipos
de informações usadas, onde as tarefas serão alocadas, e na forma como serão efetuadas as tomadas de
decisão (centralizadas ou distribuídas) e a obtenção de informações. A classificação hierárquica é
dividida em escalonamento local e global.

© 2014 - AIEC - Associação Internacional de Educação Continuada

33
102 – Arquitetura de Computadores | Unidade 04

15

No escalonamento local, os períodos de tempo de utilização de um único host são chamados de time-
slices e são atribuídos aos processos em execução por meio da política de compartilhamento de tempo
(time-sharing) (TANEMBAUM, 2001).

O escalonamento global é a atividade que determina para qual o elemento o processo será alocado e
executado, podendo ser estático, onde a atribuição do processo é feita antes da execução do programa,
ou dinâmico, onde há a redistribuição de processos entre os elementos de processamento durante a
execução do programa, balanceando a carga (load balancing).

Fonte: Escalonamento de Processos em Sistemas Computacionais Distribuídos

As decisões relativas ao balanceamento de carga podem ser feitas de forma centralizada, distribuída ou
de uma combinação dessas abordagens.

© 2014 - AIEC - Associação Internacional de Educação Continuada

34
102 – Arquitetura de Computadores | Unidade 04

Centralizada
Na forma centralizada (não distribuída), estabelece-se que um único elemento de processamento
recebe as informações de carga, sendo responsável pelo escalonamento em todo o sistema.

Distribuída
Na forma distribuída, cada elemento de processamento tem autonomia para estabelecer sob que
condição ocorre a transferência de um processo.

Combinação
O processo de escalonamento pode ser feito de forma cooperativa, considerando os outros
processadores do sistema, ou não cooperativa (independente).

16

5 - DEPENDABILIDADE

Na sociedade moderna há uma grande dependência de sistemas computacionais e a dependabilidade


diz respeito à capacidade destes sistemas em prestar um serviço no qual se pode justificadamente
confiar.

Avizienis (2001) caracteriza a dependabilidade a partir de um conjunto de conceitos divididos em três


grupos: os atributos, os meios e as ameaças.

17

Atributos são medidas probabilísticas da dependabilidade. Em virtude da natureza não determinística


das circunstâncias consideradas, são associadas variáveis aleatórias a cada atributo e as medidas obtidas
são probabilidades. Os atributos comumente empregados são:

© 2014 - AIEC - Associação Internacional de Educação Continuada

35
102 – Arquitetura de Computadores | Unidade 04

Fonte: Repositório – UFSC -


https://repositorio.ufsc.br/bitstream/handle/123456789/89586/242963.pdf?sequence=1

18

Meios

Através dos meios da classificação da dependabilidade consegue-se trabalhar na prevenção, tolerância,


remoção ou previsão das falhas. Assim sendo, podem-se tratar as falhas que geram erros e propagam
defeitos.

Prevenção de falhas

Ao se preverem as falhas aumenta-se a confiabilidade dos sistemas, através de técnicas de controle da


qualidade nas etapas de projeto e desenvolvimento de sistemas. Como não há como eliminar todas as
falhas do sistema, estão previstos procedimentos manuais de reparo a fim de restaurar o sistema à
condição de serviço correto.

19

Tolerância a falhas

É a capacidade de um sistema apresentar um comportamento muito bem definido na ocorrência de


falhas ativas, utilizando-se de técnicas que aumentem a segurança e a operacionalidade do sistema.

a) Mascaramento: empregado para encobrir ou ocultar as falhas, porém sem apresentar defeito, é a

© 2014 - AIEC - Associação Internacional de Educação Continuada

36
102 – Arquitetura de Computadores | Unidade 04

forma mais completa de tolerância a falhas, a mais desejada e a de maior custo.


b) Não tolerância a falhas é uma forma extrema, porém a solução mais trivial, mais frágil e com o custo
mais reduzido, sendo a mais indesejada, visto que o sistema apresentará defeito.

Há também duas formas intermediárias de tolerância as falhas: o defeito seguro, que garante o estado
seguro do sistema, mas nada diz sobre o seu estado operacional; e, tolerância a falhas sem
mascaramento, onde o sistema permanecerá operacional, mesmo que ingresse num estado inseguro.

A redundância é a chave para se conseguir a tolerância a falhas e os sistemas distribuídos se utilizam de


múltiplas formas de redundância, como:

a) estrutura;
b) hardware e software;
c) informação;
d) tempo.

Estrutura
Técnica conhecida como N-version programming, que considera duas ou mais versões de um só
algoritmo;

Hardware e software
Replicação de partes componentes de um sistema, ou até mesmo o sistema como um todo, sendo para
alguns a única forma capaz de permitir a tolerância de falhas permanentes;

Informação
Há técnicas que utilizam os códigos de paridade onde a redundância na informação pode ser suficiente;

Tempo
São métodos caracterizados pela repetição da mesma atividade uma ou mais vezes, visto que a causa
do problema é de natureza atemporal. É mais utilizada na detecção de erros que resultem da
ocorrência de falhas transientes.

20

Implementação de tolerância a falhas

Para tornar um sistema tolerante a falhas há a necessidade do emprego de pelo menos uma das formas
de redundância, sendo que o ponto de partida é a detecção de erros.

Como os erros são uma propriedade do estado do sistema e há testes que podem ser executados para
sua detecção, que devem atender a três propriedades, um tanto difíceis de serem satisfeitas: basear-se
somente nas especificações do sistema, ser completo e correto, possuir independência do sistema com
relação à ocorrência de falhas para evitar erros nos testes.

© 2014 - AIEC - Associação Internacional de Educação Continuada

37
102 – Arquitetura de Computadores | Unidade 04

Outro passo é a recuperação do sistema, cujo objetivo é restaurá-lo a um estado onde não haja erros
detectados e nem falhas ativadas, gerando novos erros. Pode-se realizá-la tanto pelo tratamento dos
erros, quanto das falhas.

O tratamento dos erros (error handling) pode ser efetuado através de:

21

O tratamento de falhas (fault handling) objetiva impedir que falhas identificadas sejam ativadas
novamente e seu tratamento se dá em quatro etapas:

Remoção de falhas

Pode-se empregar a abordagem de remoção de falhas tanto na etapa de desenvolvimento, como


durante a vida operacional de um sistema.

No processo de desenvolvimento a remoção de falhas atua da seguinte forma: verificação (estática ou


dinâmica), em que se analisa se o sistema atende às condições de verificação; o diagnóstico, em que as

© 2014 - AIEC - Associação Internacional de Educação Continuada

38
102 – Arquitetura de Computadores | Unidade 04

origens das falhas são detectadas; e a correção, em quer as falhas são corrigidas. É importante avaliar se
a técnica implementada será eficiente e há um mecanismo de injeção de falhas (fault injection) que
introduz falhas controladas no sistema para avaliar o comportamento da técnica empregada, sob tais
condições. A remoção de falhas é realizada normalmente por meio de atividades de manutenção
corretiva ou preventiva.

22

Previsão de Falhas

A técnica de previsão de falhas usa avaliação do comportamento do sistema com relação à ocorrência
ou à ativação de falhas e possui dois aspectos:

Ameaças são aspectos que podem ameaçar a dependabilidade de um sistema distribuído e é necessária
a especificação do tipo de ameaça apresentada, por meio da identificação mais precisa de falhas, erros e
defeitos. Há uma relação de dependência entre falhas, erros e defeitos chamada de patologia da falha.

Fonte: Agnaldo L Martins – http://slideplayer.com.br/slide/1866374/

23

A falha é aquilo que ocasiona o erro, provocando no sistema uma transição de estado não planejada,
levando o sistema para o lado do erro.

© 2014 - AIEC - Associação Internacional de Educação Continuada

39
102 – Arquitetura de Computadores | Unidade 04

Quando a falha não apresenta erros é chamada de falha latente, quando produz um erro é chamada de
falha ativa. A latência de falhas é o tempo entre o surgimento da falha e sua ativação.

Avizienis (2001) classifica as falhas em três grupos distintos:

• falhas de projeto - que podem ter sido geradas a especificações erradas ou incompletas;
• falhas de interação - originadas de ações inadequadas do operador durante a operação e
manutenção;
• falhas físicas - resultantes do envelhecimento dos recursos computacionais existentes, seja por
duração, valor ou extensão.

Um erro é a manifestação da falha, fazendo que o sistema não atue de acordo com sua especificação,
ou seja, é parte de um estado errôneo que constitui uma diferença de um estado válido.

24

Defeito é um erro existente no sistema que alcança a interface do serviço e altera o seu resultado
esperado, ou seja, é um estado indesejado do sistema que pode resultar em um defeito.

A latência de erro é o tempo entre o surgimento de um erro e a manifestação do defeito e sua duração
depende das circunstâncias e do sistema computacional.

Há modos de defeitos (failure modes) ou modelos de defeitos (failure models) que são usados para
classificar os defeitos, em que os parâmetros mais utilizados são o domínio, a percepção pelos usuários
e as consequências no ambiente.

© 2014 - AIEC - Associação Internacional de Educação Continuada

40
102 – Arquitetura de Computadores | Unidade 04

25

RESUMO

Durante o estudo deste módulo você teve a oportunidade de compreender que há inúmeras
possibilidades na arquitetura dos computadores com a finalidade de uniformizar as características dos
sistemas computacionais, porém a taxonomia de Flynn é a mais aceita na área. Vimos que as
arquiteturas ccNUMA são complexas e suas implementações dependem das soluções de cada fabricante
para a sincronização de acesso e consistência à memória, permitindo um melhor desempenho da
máquina. É um tipo de arquitetura fracamente acoplada na qual os computadores são classificados
como multicomputadores e as máquinas possuem configuração massivamente paralelas (MPP),
podendo ser compostas por um conjunto de multiprocessadores, que representam um nó de uma
configuração do tipo multicomputador, com cache e memória local, e há milhares de nós interligados
por dispositivos de interconexão de alta velocidade.

Nos ambientes distribuídos, os conjuntos de máquinas existentes permitem configurações diferenciadas


de SMPs, MPP, de clusters e grids computacionais. Vimos também que normalmente os clusters se
encontram geograficamente localizados em uma determinada área da organização, tendo uma
disponibilidade de processadores, memórias e capacidade de armazenamento específicos para este
atendimento. No caso dos grids, o seu principal objetivo é o compartilhamento dos mais diferentes tipos
de recursos, desde os mais simples, como um desktop, até os de alto desempenho como os de grande
porte e os clusters, utilizando o tempo ocioso de sistemas computacionais. O escalonamento é
necessário para minimizar o tempo de execução das aplicações, e consequentemente seus custos de
comunicação, além de maximizar a utilização dos recursos computacionais disponíveis.

Você estucou que nossa sociedade moderna tem uma grande dependência de sistemas computacionais.
Esta dependência é chamada de dependabilidade. Este conceito diz respeito à capacidade que os
sistemas têm em prestar um serviço no qual se pode justificadamente confiar. Através dos meios da
classificação da dependabilidade consegue-se trabalhar na prevenção, tolerância, remoção ou previsão
das falhas. Assim, podem-se tratar as falhas que geram erros e propagam defeitos. Ao final do módulo,
vimos que, em sistemas de alto desempenho, a “tolerância a falhas” é a capacidade de um sistema
apresentar um comportamento muito bem definido na ocorrência de falhas ativas, utilizando-se de
técnicas que aumentem a segurança e a operacionalidade do sistema.

© 2014 - AIEC - Associação Internacional de Educação Continuada

41
102 – Arquitetura de Computadores | Unidade 04

UNIDADE 4 – ARQUITETURAS CONVENCIONAIS E NÃO CONVENCIONAIS


MÓDULO 4 – PROCESSADORES DE REDE, DISPOSITIVOS DE INTERCONEXÃO E
PROTOCOLOS LEVES
01

1 - MODELO TRADICIONAL DE REDE

Durante o estudo deste módulo teremos a oportunidade de entender por que os sistemas
computacionais necessitam de redes de comunicação cada vez mais eficazes, mas que, apesar do
aumento da disponibilidade destas redes, o desempenho das aplicações não tem evoluído na mesma
proporção, visto que são utilizados dispositivos de redes inadequados nos novos projetos de distribuição
de recursos e também de pacotes de softwares.

O incremento na oferta de largura da banda nos meios físicos de transmissão de concessionárias de


telecomunicações e energia elétrica, assim como TV a cabo, tem permitido o desenvolvimento de novas
tecnologias para aumentar a eficiência dos recursos disponibilizados. Urge fazer com que as aplicações
sejam executadas com melhor desempenho, utilizando um maior volume de dados e fazendo uso de
interfaces de rede, sistemas de interconexões de alta velocidade e protocolos mais leves para que a taxa
efetiva de transmissão seja maximizada.

No modelo tradicional, o sistema operacional acessa uma interface de rede (network interface card -
NIC), podendo ser uma rede local (LAN) ou geograficamente distribuída (WAN), para a realização de uma
aplicação, sendo que a rede é a responsável pelo envio das mensagens para a NIC do computador onde
está a aplicação destinatária, fazendo o caminho inverso.

© 2014 - AIEC - Associação Internacional de Educação Continuada

42
102 – Arquitetura de Computadores | Unidade 04

02

Denominada primeira geração de rede há o reconhecimento de quadros elétricos e endereços de placa,


tratados pelo dispositivo de rede do computador.

03

2 - APLICAÇÕES E INTERFACES DE REDE CONVENCIONAIS

Com a oferta maior de banda larga, os custos operacionais têm diminuído e novas aplicações se
beneficiam dessa situação, como:

• VOIP (Voz sobre IP);


• Transmissão áudio e vídeo;
• Aplicações Fim a Fim;
• VPN (Virtual Private Network).

© 2014 - AIEC - Associação Internacional de Educação Continuada

43
102 – Arquitetura de Computadores | Unidade 04

Tudo o que requer serviços diferenciados, qualidade de serviço, segurança e gerenciamento, necessita
de uma maior quantidade de processamento e consequentemente interfaces de rede que atendam a
essas demandas específicas e não há um desenvolvimento exponencial crescente dos processadores,
sinalizando que se deve buscar uma alternativa para as aplicações que utilizam a rede, minimizando o
baixo rendimento de processador central dos computadores.

Para o processamento de aplicações em rede, normalmente são utilizados os dispositivos FPGA (field
programmable gate arrays) para processamento de baixo nível (hardware) e GPP para os de alto nível
com aplicações mais complexas.

VOIP (Voz sobre IP)


Utiliza a rede de computadores para transmissão de voz.

Transmissão áudio e vídeo


Havendo uma infraestrutura eficiente o usuário pode usar seu computador para assistir vídeos e filmes,
além de conteúdos formais de bibliotecas digitais.

Aplicações Fim a Fim


Permite que uma aplicação residente num computador possa submeter uma tarefa para um ou mais
computadores. É também conhecido como P2P e o aplicativo mais conhecido é o SETI@HOME (2005),
que permite a execução de dados coletados no espaço em seu computador, uma execução remota que
não se restringe a uma busca, mas a um trabalho especifico.

VPN (Virtual Private Network)


São redes virtuais privadas que permite ao programador da aplicação o estabelecimento de formas de
ligação que faz seu local de trabalho físico esteja conectado a regiões geográficas diferentes. É uma
solução que pode prover redução no custo, oferecer maior segurança e um acesso remoto mais fácil às
aplicações, mas depende de infraestrutura.

© 2014 - AIEC - Associação Internacional de Educação Continuada

44
102 – Arquitetura de Computadores | Unidade 04

04

3 - PROCESSADORES DE REDE

No modelo tradicional de redes há retenções em virtude da governança e segurança das organizações e


as aplicações dos usuários são submetidas aos pacotes de firewall e tradução de endereços (network
address translation NAT), que geram um retardo às aplicações de rede. As redes de nova geração dão
maior prioridade para as aplicações de rede utilizando os processadores de rede (network processors
NP), que são roteadores, switches e interfaces para acelerar o processamento das solicitações.

Na 2ª Geração de sistemas de rede, há o processamento de quadros elétricos, endereçamento de rede,


classificação e reencaminhamento de pacotes efetuados na placa, cabendo ao processador central o
controle e tratamento de exceções.

05

Na 3ª geração de sistemas de rede ou new generation network (NGN), quando uma aplicação envia
mensagens para outra de forma remota, o processo é efetuado diretamente através de uma chamada
de solicitação de transmissão para o processador de rede (NP) e há um processamento na placa de
mensagens recebidas e aí há a entrega para a aplicação.

© 2014 - AIEC - Associação Internacional de Educação Continuada

45
102 – Arquitetura de Computadores | Unidade 04

06

As técnicas que tratam da comunicação das aplicações nas redes podem ser classificadas como:

• ASIC (Application Specific Integrated Circuit): promove um alto desempenho de hardware, porém sem
maior flexibilidade para programação.
• ASIP (Application Specific Instruction Processor): há processador especializado para um domínio
específico de aplicação, gerando um bom balanceamento entre flexibilidade de programação e
desempenho;
• Co-processor – é utilizada para melhorar uma determinada função de uma aplicação, como aplicações
gráficas ou de visualização, porém não há muita flexibilidade de programação;
• FPGA (Field programmable gate arrays): é um “dispositivo semiconductor que pode ser programado
pelo usuário final para execução de uma grande variedade de funções lógicas” (Dantas, 2002). É
programado em nível de portas e pode ser reconfigurado quando da mudança de requisitos de uma
aplicação.
• GPP (General Purpose Processor): possui grande flexibilidade de programação e pequeno
desempenho, por ser um processador de uso geral.

De todas as opções disponíveis, a melhor relação entre flexibilidade e desempenho é na tecnologia ASIP,
visto que permite boa utilização de software aliada ao desempenho de hardware, resultando numa
adaptação mais fácil aos padrões de rede e suas aplicações. Além disso, há uma excelente relação de
custo/benefício entre o desenvolvimento de software e a implementação em hardware.

07

4 - CARACTERÍSTICAS DE UM PROCESSADOR DE REDE

É um dispositivo programável com características de arquitetura e circuitos próprios para o


processamento de pacotes de rede (Dantas, 2002). Há no mercado inúmeras opções disponíveis com
grandes diferenças tecnológicas, no que tange à complexidade dos processadores, o suporte de
software, o sistema de memória e a arquitetura.

© 2014 - AIEC - Associação Internacional de Educação Continuada

46
102 – Arquitetura de Computadores | Unidade 04

© 2014 - AIEC - Associação Internacional de Educação Continuada

47
102 – Arquitetura de Computadores | Unidade 04

© 2014 - AIEC - Associação Internacional de Educação Continuada

48
102 – Arquitetura de Computadores | Unidade 04

08

Os processadores de rede estão cada vez mais especializados e os dispositivos usados são classificados
em três categorias: núcleo, borda e acesso.

• Núcleo: usado em aplicações que requerem um alto desempenho com menor flexibilidade de
programação, como os roteadores que transferem grandes quantidades de dados sem necessitar de
flexibilidade de programação;

© 2014 - AIEC - Associação Internacional de Educação Continuada

49
102 – Arquitetura de Computadores | Unidade 04

09

• Borda: como as aplicações executadas têm características de programação do nível do usuário final, os
equipamentos requerem certa flexibilidade de programação, com um desempenho menor do que no
tipo núcleo. Os dispositivos de borda tendem à utilização de processadores de rede ASIP;

10

• Acesso: seu foco está no provimento de acesso às redes, através de agregação do tráfego,
encaminhando para uma rede estruturada convencional. Os dispositivos de acesso têm um baixo
desempenho em relação aos demais tipos, porém são mais flexíveis para atender diferentes tipos de
aplicativos, como celulares, tablets e palmtops.

© 2014 - AIEC - Associação Internacional de Educação Continuada

50
102 – Arquitetura de Computadores | Unidade 04

11

5 - DISPOSITIVOS DE INTERCONEXÃO

Permitem um alto desempenho para aplicações distribuídas, classificados como:

1) Convencionais: interligados através de um cabo coaxial (thickwire), onde todos possuíam


acesso limitado ao meio (Ether) caso estivesse desocupado. Esta abordagem criada pela
Xerox foi chamada de Ethernet e aos poucos foi substituída por dispositivos concentradores
(hubs), que através de pares trançados permite a comunicação entre equipamentos e
comutados (switches), que permitem conexões paralelas através de interligação em pares.
Cabe ressaltar que se o processador do computador não for muito veloz não adianta ter
uma placa de rede com boa taxa de transferência efetiva.

12

2) Interconexão de alto desempenho: há inúmeras inovações tecnológicas nos


multicomputadores e multiprocessadores, como a interconexão de processadores e memórias
de arquiteturas paralelas, usualmente denominada de SAN (system area network), que
propiciam ambientes de alta taxa de transferência e baixo retardo, similares aos
multicomputadores ou multiprocessadores, utilizando-se de computadores convencionais do
tipo PC. Sendo assim os aplicativos podem ser executados, consultando uma grande massa de

© 2014 - AIEC - Associação Internacional de Educação Continuada

51
102 – Arquitetura de Computadores | Unidade 04

dados distribuída geograficamente, em supercomputadores dispersos numa rede com recursos


já existentes. As principais características que este dispositivo deve dispor é a grande
escalabilidade, um serviço de tolerância a falhas, retardo pequeno e a taxa de transmissão da
ordem de Gbytes/segundo, além da disponibilidade de um pacote de biblioteca de software de
programação para o equipamento. Há dois grupos que realizam essa interconexão:

a) Programação de troca de mensagem entre processadores no nível de placa de rede, que possibilita a
criação de configurações de multicomputadores.
b) Abstração de uma memória virtual única (multiprocessador) entre todos os computadores
interligados ao dispositivo.

© 2014 - AIEC - Associação Internacional de Educação Continuada

52
102 – Arquitetura de Computadores | Unidade 04

13

6 - PROTOCOLOS LEVES

Esta abordagem enfoca não só a maximização da utilização da infraestrutura das redes, mas também o
desempenho computacional de aplicações de diferentes naturezas em ambientes distribuídos de redes.

Atualmente, há a utilização de maiores larguras de bandas (band-width) com menor retardo (latency) e
o universo de equipamentos que estão sendo conectados às redes causam impacto nas arquiteturas de
protocolos de redes.

6.1 Arquitetura TCP/IP

O protocolo da camada da rede IP (internet protocol) é o padrão do ambiente internet, assim como os
protocolos de transporte, TCP (transmission Control Protocol) e UDP (user datagram protocol), que
representam o modo como as aplicações podem solicitar serviços orientados e não orientados à
conexão. Foram projetados num período onde as redes físicas de enlace tinham uma baixa qualidade,
ou seja, com alta frequência de erros nas redes de comunicação devido às condições físicas do meio,
sendo protocolos bastante robustos, e quando utilizados em uma infraestrutura mais adequada de
transmissão apresenta algumas deficiências.

A retransmissão go-back-n é a implementada


no protocolo TCP, quando uma conexão entre
dois pontos estiver em curso ou um erro de
recebimento for detectada, todos os pacotes a
partir do pacote perdido serão retransmitidos.
Uma delas é o desperdício da largura da banda
para a transmissão de pacotes que já haviam
chegado ao destinatário e também o
processamento dos pacotes pelo nó
destinatário e posterior descarte dos pacotes,
ou seja, há necessidade de soluções mais
adequadas quando do uso de redes com alta
taxa de transmissão, alto custo e baixa
ocorrência de erros.

14

6.2 Protocolos de Alto Desempenho

Há alguns mecanismos que auxiliam no aproveitamento do uso de rede, porém muitas ferramentas
foram projetadas para redes de comunicação e não para redes locais com altas disponibilidades de
largura de banda e baixo retardo, assim sendo, necessita-se de uma mudança para protocolos mais leves
(lightweight protocols) e mais eficientes, para que a troca de pacotes seja otimizada.

© 2014 - AIEC - Associação Internacional de Educação Continuada

53
102 – Arquitetura de Computadores | Unidade 04

Entre os exemplos existentes, há os sistemas denominados Beowulf que são um conjunto de


computadores pessoais interligados através de uma rede SAN, com o objetivo de atender um
determinado tipo de aplicação. São também chamados de o paradigma de Cluster Computing, uma
forma mais abrangente da computação de alto desempenho, num único ambiente computacional, onde
os recursos disponíveis são distribuídos.

Não há uma correlação direta entre a infraestrutura e o desempenho das aplicações nas redes e os
protocolos de transporte são inadequados para uma evolução das configurações atuais para ambientes
de alto desempenho.

6.3 Protocolos e Melhoria de Desempenho

Há três abordagens no que tange ao desempenho de uma arquitetura de protocolo: minimizar os


requerimentos de processamento, através da gerência da conexão; diminuir o controle de erros (error
free), com esquemas para tratamento de perda de dados na transmissão e buffer overflow, sem
causar overhead na rede, e melhorar o algoritmo de controle de fluxo, para evitar congestionamento na
banda.

15

6.4 PROTOCOLOS DE TRANSPORTE

Para incrementar a utilização da largura da banda através de conexões eficientes de transporte há


necessidade de novos protocolos e melhoria dos existentes. Há protocolos que foram projetados com o
objetivo de alto desempenho, como demonstrados na tabela a seguir.

© 2014 - AIEC - Associação Internacional de Educação Continuada

54
102 – Arquitetura de Computadores | Unidade 04

Fonte: Preparado pelo autor baseado em Dantas (2005)

© 2014 - AIEC - Associação Internacional de Educação Continuada

55
102 – Arquitetura de Computadores | Unidade 04

16

7 - ANÁLISE DAS FUNÇÕES DO PROTOCOLO DE TRANSPORTE

Dentre os mecanismos do protocolo de transporte, está a função de gerência de conexão, que estuda o
início e término de uma associação de transporte, analisando os aspectos de:

17

RESUMO

Durante nosso estudo tivemos a oportunidade de compreender que houve um incremento na oferta de
largura da banda nos meios físicos de transmissão de concessionárias de telecomunicações e energia

© 2014 - AIEC - Associação Internacional de Educação Continuada

56
102 – Arquitetura de Computadores | Unidade 04

elétrica. Sendo assim, urge fazer com que as aplicações sejam executadas com melhor desempenho,
utilizando um maior volume de dados e fazendo uso de interfaces de rede, sistemas de interconexões de
alta velocidade e protocolos mais leves para que a taxa efetiva de transmissão seja maximizada.

Você compreendeu que tudo o que requer serviços diferenciados, qualidade de serviço, segurança e
gerenciamento, necessita de uma maior quantidade de processamento e consequentemente interfaces
de rede que atendam a essas demandas específicas e não há um desenvolvimento exponencial
crescente dos processadores, sinalizando que se deve buscar uma alternativa para as aplicações que
utilizam a rede, minimizando o baixo rendimento do processador central dos computadores.

Entre todas as opções disponíveis, a melhor relação entre flexibilidade e desempenho é na tecnologia
ASIP, visto que permite boa utilização de software aliada ao desempenho de hardware, resultando
numa adaptação mais fácil aos padrões de rede e suas aplicações. Além disso, há uma excelente relação
de custo/benefício entre o desenvolvimento de software e a implementação em hardware. Esta
abordagem enfoca não só a maximização da utilização da infraestrutura das redes, mas também no
desempenho computacional de aplicações de diferentes naturezas em ambientes distribuídos de redes.

© 2014 - AIEC - Associação Internacional de Educação Continuada

57

Você também pode gostar