Sei sulla pagina 1di 15

PROJETO LGICO DE COMPUTADORES

Prof. Ricardo Rodrigues Barcelar


http://www.ricardobarcelar.com.br


1

- Aula 6 -

ARQUITETURAS AVANADAS DE COMPUTADORES

1. INTRODUO

As arquiteturas dos processadores tm evoludo ao longo dos anos, e junto com ela o
conceito de arquitetura avanada tem se modificado.
Nos anos 60 os computadores ditos de grande porte (IBM, CDC) eram considerados
exemplos de alto desempenho.
Um pouco depois surgiram os supercomputadores, arquiteturas especficas para a
realizao de clculos com valores reais dispostos em arranjos de matrizes e vetores.
No incio dos anos 80 surgiram os primeiros microcomputadores, com desempenho muito
longe dos computadores de grande porte e supercomputadores.
A evoluo das tecnologias de integrao de componentes em larga escala permitiu que
esses processadores evolussem em desempenho, atingindo um amplo espectro de aplicaes
comerciais.

2. REVISO DE CONCEITOS

2.1. Arquitetura CISC

A arquitetura CISC possui as seguintes caractersticas:
- Instrues complexas demandando um nmero grande e varivel de ciclos de mquina
para sua execuo.
- Uso de diversos modos de endereamento de operandos.
Instrues com formato muito varivel.
- Diferentes tipos de instrues podem referenciar operandos na memria principal.
- Cada fase do processamento da instruo pode ter durao varivel em funo da
complexidade.

Essa implementao traz alguns inconvenientes, como:
- Difcil implementao com uso de pipeline
- Baixas taxas mdias de execuo das instrues por ciclo
- A unidade de controle em geral microprogramada.
- Cdigos compactos podem ser gerados pelos compiladores.

2.2. Arquitetura RISC

A arquitetura RISC possui as seguintes caractersticas:
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


2

- Instrues mais simples demandando um nmero fixo de ciclos de mquina para sua
execuo;
- Uso de poucos modos simples de endereamento de operandos;
- Poucos formatos diferentes de instrues;
- Apenas as instrues de load e store referenciam operandos na memria principal;
- Cada fase de processamento da instruo tem a durao fixa igual a um ciclo de
mquina.

Assim como na arquitetura CISC, esta trs algumas conseqncias, como:
- So implementadas com o uso do pipeline;
- A taxa mdia de execuo de instrues por ciclo de mquina tambm baixa, porm
superior a arquitetura CISC;
- A unidade de controle em geral hardwired;
- Processo de compilao complexo e requer cuidados especiais para otimizao do
desempenho do cdigo gerado.

Essas arquiteturas so teis para dar solues as mais diversas necessidades do dia-a-
dia. No entanto, algumas aplicaes nas reas de cincia, engenharia e na indstria demandam
computadores com alto potencial de processamento (alta performance), mas a velocidade de
operao dos circuitos eletrnicos est limitada, por alguns fatores:
- A velocidade dos sinais eltricos aproximadamente igual velocidade da luz;
- A proximidade dos componentes aumenta a dissipao de calor;
- Tamanho dos transistores tem limite fsico (princpio da incerteza de Heisenberg).

3. ARQUITETURAS COM DESEMPENHO SUPERIOR A UMA INSTRUO POR CICLO

Existem diversas formas de melhorar o desempenho de computadores para atender
necessidades de reas especficas da cincia, engenharia e da indstria. Dentre elas podemos
citar:
- Arquitetura superescalares: Possibilitam a execuo de mltiplas instrues,
escalonadas por hardware e/ou software, concorrentemente.
- Arquitetura VLIW (Very Long Instruction Word): Possibilitam a execuo de mltiplas
operaes, escalonadas por software, concorrentemente.
- Arquitetura Multithreading e SMT: Permitem a execuo simultnea de mais de uma
thread no processador.
- Arquiteturas Multicore: Permite o uso de vrios processadores em um mesmo
encapsulamento, compartilhando ou no a cache de nvel 2.
Todas essas arquiteturas possibilitam a otimizao na execuo de instrues e/ou
operaes por meio de hardware ou de software.


PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


3

3.1. Arquiteturas Superescalares

As mquinas superescalares so conhecidas por possurem mais de um pipeline em
paralelo em sua arquitetura. Isso gera problemas de acesso aos recursos comuns, que precisam
ser duplicados em sua maioria. Os barramentos devem possuir largura suficiente para a busca de
mais de uma instruo por ciclo.
O uso de caches separadas para dados e instrues uma soluo para permitir leitura e
escrita simultneas memria. comum, tambm a existncia de vrias portas de leitura e de
escrita no banco de registradores.
Devido a problemas de dependncias de dados e controle pode acontecer que em alguns
ciclos no haja instrues prontas para serem executadas. Esquemas mais simples de despacho,
simplesmente congelam o pipeline nesse caso. Esquemas mais sofisticados continuam a busca e
tentam executar as instrues fora-de-ordem, com mecanismos que posteriormente permitam a
retirada dessas instrues, e atualizao do estado da mquina, na mesma ordem estabelecida
pelo programa objeto.

3.2. Arquiteturas VLIW (Very Long Instruction Word)

Estas so mquinas que exploram o paralelismo no nvel das instrues. Vrias operaes
so executadas em paralelo em diferentes unidades funcionais, tais como em mquinas
superescalares. A diferena est no controle do despacho e na terminao das operaes.
Nas mquinas superescalares as dependncias so resolvidas em tempo de execuo por
um hardware dedicado, nas mquinas VLIW as dependncias so resolvidas em tempo de
compilao pelo compilador.
Em uma mquina VLIW, vrias operaes so codificadas em uma mesma instruo. A
palavra de instruo bastante longa, podendo conter vrias operaes (que operam sobre vrios
operandos) independentes. A posio de cada operao dentro da palavra VLIW determina a
unidade funcional que ser usada. Deste modo, o hardware de despacho simples.
Em uma mquina VLIW o compilador responsvel por determinar as operaes que
sero executadas em paralelo. As operaes que possam ser executadas em paralelo so
atribudas a uma mesma palavra de instruo. Dentro de um mesmo bloco bsico (seqencial) as
instrues podem ser escalonadas com base na dependncia de dados.

3.3. Arquiteturas SMT

SMT uma tcnica que permite mltiplas threads despacharem mltiplas instrues a
cada ciclo para unidades funcionais de um processador superescalar.
O SMT combina a capacidade de despacho de mltiplas instrues das arquiteturas
superescalares, com a habilidade de esconder latncia das arquiteturas multithreading.
A cada instante de tempo instrues de diferentes threads podem estar sendo executadas
simultaneamente. Busca reduzir o nmero de slots de despacho no ocupados a cada ciclo
(elevado em arquiteturas multithreading) e o nmero de ciclos em que nenhuma instruo
despachada (elevado em arquiteturas superescalares).
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


4

As arquiteturas SMT podem ser de trs tipos bsicos:
- Full Simultaneous issue: modelo ideal, mas de difcil realizao, onde no h restrio
sobre o nmero de instrues de cada thread que pode ser despachada a cada ciclo.
- Limited Simultaneous Issue: apenas um nmero limitado (1 a 4 tipicamente) de instrues
de cada thread pode ser despachado a cada ciclo.
- Limited Connection: restringem o nmero de unidades funcionais de cada tipo que podem
estar conectadas a cada contexto.


Figura 1 - Threads
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


5


Figura 2 - Thread

3.3. Arquiteturas Multicore

Vrios processadores encapsulados em uma mesma pastilha, podendo compartilhar ou
no a cache de nvel. Normalmente so processadores idnticos, tanto em termos de arquitetura
quanto em velocidade de processamento. As tarefas podem ser executadas indistintamente em
cada um dos processadores.
O sistema operacional responsvel pelo escalonamento das tarefas (processos e/ou
threads) para cada um dos processadores. uma alternativa muito adotada recentemente devido
aos ganhos de consumo de energia que podem ser obtidos, sem perda de desempenho quando
h um nmero adequado de tarefas para serem executadas em paralelo.

4. PROJETO DE MQUINAS PARALELAS

Possveis solues para aumento de performance seriam o uso de paralelismo em nvel
de instrues (~10x), atravs de pipeline ou arquitetura superescalar, ou o paralelismo real
(~100x, 1000x), onde vrios processadores trabalham juntos e com eficincia.
Os projetos de computadores paralelos diferem basicamente na quantidade de elementos
(processadores e memrias), no tamanho desses elementos, no tipo de elementos usados e na
maneira de interconect-los.


PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


6

4.1. Aspectos Importantes

Os Sistemas de Memria, em computao paralela esto divididos em mdulos que
operam de modo independente entre si, porm em paralelo para permitir que vrios
processadores acessem as informaes simultaneamente. Com isso, podem estar integrados ao
processador ou localizados em placas separadas, sendo possvel serem projetados com 2, 3 ou,
s vezes, 4 nveis de cache.
Os esquemas de interconexo podem ser, a grosso modo, de dois tipos:
- Estticos: ligam os componentes do sistema de maneira fsica: em estrela, em anel ou
em grade.
- Dinmicos: componentes esto ligados a elementos comutadores que roteiam mensagem
entre eles.
Outro aspecto importante a granularidade no paralelismo, pois se refere aos tipos de
algoritmos e softwares (aplicaes) que so rodados no computador e tem reflexo direto no
hardware e podem ser:
- Paralelismo de granularidade alta (ou grossa): existentes nos sistemas que rodam
programas grandes em paralelo com pouca, ou nenhuma, comunicao entre eles. Rodam em
regime de tempo compartilhado e podem atender a milhares de usurios remotos. So exemplos
deste tipo de paralelismo sistemas de transio de bancos, de empresas areas, etc.
- Paralelismo de granularidade baixa (ou fina): implementado nos sistemas de
processamento vetorial, onde se usa um alto grau de processamento pipeline, ou por meio de
vrias UALs operando sobre a mesma instruo ao mesmo tempo. O objetivo ganhar
velocidade na soluo de um nico tipo de problema. So exemplos computadores que rodam
jogo de xadrez, previso de tempo, etc.
- Paralelismo de granularidade mdia: possui as caractersticas dos dois modelos
anteriores.
Alm do paralelismo no processamento, h que se considerar o nvel de acoplamento no
paralelismo que se relaciona as caractersticas de hardware:
- Sistemas fracamente acoplados: possuem pequena quantidade de processadores
grandes, independentes e com conexes de baixa velocidade entre si.
- Sistemas fortemente acoplados: compostos de processadores de pouca potncia
computacional, fisicamente prximos uns dos outros e que interagem freqentemente por meio de
redes de comunicao de alta velocidade.

4.2. Modelos de Comunicao

O Modelo de Comunicao refere-se maneira como os processadores se comunicam
entre si para trocar informaes quando da execuo de diferentes partes de uma mesma tarefa.
Nesse sentido, importante separar a forma como se d a comunicao de acordo com a
organizao do processamento:


PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


7

4.2.1. MULTIPROCESSADORES (ou Sistemas de Memria Compartilhada)

Neste modelo todos os processadores compartilham de uma nica memria fsica. Dois
processos se comunicam escrevendo/lendo (Load/Store) dados na memria compartilhada. A
Figura abaixo ilustra que cada processador responsvel pelo processamento de uma parte da
imagem. Essa arquitetura requer algum tipo de coordenao na execuo da tarefa, pois alguns
objetos ocupam mais do que uma seo da imagem.


Figura 3 - (a) Sistema multiprocessador com 16 processadores compartilhando uma nica memria. (b) Imagem
dividida em 16 sees, cada uma delas sendo analisada por um processador diferente

4.2.2. MULTICOMPUTADORES (ou Sistemas de Memria Distribuda)

Diferente do modelo anterior, cada processador tem sua prpria memria, com
exclusividade para leitura e escrita diretas. Dois processos trocam mensagens entre si usando a
rede de interconexo e as primitivas send e receive, implementadas por software.
Quando um processador A precisa de dados de outro processador B:
- O processador A envia (send) uma mensagem requisitando uma cpia da memria de B.
- O processador A fica bloqueado at receber (receive) uma resposta do processador B.

A diviso correta dos dados e sua colocao em posies timas um aspecto muito
importante para eficincia dos multicomputadores. Isto responsabilidade do programador.

PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


8


Figura 4 - (a) Sistema multicomputador com 16 processadores, cada qual com a sua prpria memria. (b) O mapa de
bits da Figura 1 dividido entre as 16 memrias do sistema.

importante observar que programar um multicomputador muito mais difcil do que
programar um multiprocessador.
Multicomputadores de grande porte so muito mais simples de serem construdos, e muito
mais baratos do que multiprocessadores com o mesmo nmero de processadores
Assim, muito complicado implementar compartilhamento de memria para centenas de
processadores e, mais simples construir multicomputadores com 10.000 processadores.
Assim sendo, soluo hbrida seria uma alternativa interessante como forma de combinar
dos pontos fortes de cada arquitetura, ou seja, a busca de computadores fceis de construir e de
programar.
A figura abaixo demonstra algumas solues que podem ser usadas para implementao
de memria compartilhada em diferentes nveis da mquina.
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


9


Figura 5 - As diversas camadas nas quais a memria compartilhada pode ser implementada.
(a) hardware. (b) O sistema operacional. (c) O ambiente de execuo da linguagem.

4.3. Redes de Interconexo

As redes de interconexo usam mecanismos de troca de mensagens (pacotes) para
implementar a comunicao entre seus componentes. Alm dos processadores e dos mdulos de
memria possuem outros trs componentes:
- Interfaces
- Links
- Comutadores

As interfaces so dispositivos responsveis pelo envio e recepo das mensagens. So
representados pelos chips ou placas ligadas a cada barramento local dos processadores. Podem
se comunicar tanto com o processador quanto com a memria local e faz a leitura e escrita em
vrias memrias, o que possibilita a transferncia de blocos de dados.
Os links so canais fsicos sobre os quais os bits se movimentam. Consiste em banda
passante mxima (# de bits que pode ser transferidos por segundo). A transferncia dos dados
pode ocorrem de trs modos distintos, transmisses em uma, duas ou ambas as direes
simultaneamente:
- Simplex
- Half duplex
- Full duplex

Os comutadores so dispositivos com vrias portas de entrada e de sada (transferem
entradas para determinadas sadas).
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


10

Ao se projetar ou analisar uma rede de interconexo deve-se considerar, ainda, a
topologia, o funcionamento dos comutadores e o algoritmo de roteamento de mensagens.

4.3.1. TOPOLOGIA

A topologia de uma rede de interconexo descreve a organizao de seus links e de seus
comutadores. Geralmente so modelados como grafos, com os links sendo os arcos e os
comutadores os ns.

Figura 6 - Diversas topologias. Os pontos representam os comutadores. Os processadores e as memrias no
aparecem na figura. Topologia: (a) em rede. (b) rede totalmente conectada. (c) em rvore. (d) em anel. (e) em
grade. (f) double torus. (g) em cubo. (h) hipe

- Cada n da rede tem certo nmero de links ligados a ele, conhecido como grau do n.
- O dimetro da rede definido como a distncia, medida em nmeros de links a serem
percorridos, entre dois ns mais afastados.
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


11

- A dimenso da rede determinada pelo nmero de escolhas que podem ser feitas para
se ir de uma fonte para um destino. Quando se tem uma nica escolha, a dimenso zero. A
dimenso n-1 quando se tem n escolhas.

4.3.2. COMUTADORES

Uma rede de interconexo composta de comutadores e de fios que os conectam. Sua
tarefa aceitar pacotes que chegam a qualquer uma das portas de entrada, enviando-os para a
porta de sada correta, de acordo com seu destino final.
Cada porta de sada ligada a uma porta de entrada de outro comutador por intermdio de
um link serial ou paralelo, conforme linhas pontilhadas abaixo.

Figura 7 - Rede de interconexo em forma de uma grade quadrada com 4 comutadores.
Somente dois dos quatro processadores aparecem na figura

Os comutadores podem ser empregados de diversas formas de acordo com as estratgias
de uso dos comutadores.

4.3.2.1. Comutao de circuitos

Reservam-se, a priori, todos os recursos (portas e buffers) do caminho entre a origem e o
destino antes que o pacote possa ser enviado. Assim, os bits so enviados pela fonte na
velocidade mxima, passando por todos os comutadores at chegar ao seu destino. A Figura 7,
exposta acima, ilustra bem essa estratgia onde so reservadas trs portas de entrada e trs de
sada.
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


12

A desvantagem desta abordagem que os recursos alocados ficam bloqueados para
outras transmisses at que a transmisso corrente termine.
4.3.2.2. Comutao de pacotes store-and-forward:

Nesta abordagem no h a necessidade de reserva antecipada de recursos.

Figura 8 - Rede de comutao de pacotes store-and-forward

Na ilustrao acima os comutadores utilizam buffers para armazenar os pacotes evitando
perda de informao. Existem trs estratgias de armazenamento:
- Armazenamento na entrada: O pacote armazenado em 1 fila (FIFO) e espera porta de
sada ser liberada. O problema nesta abordagem o bloqueio pelo cabea da fila que segura
outros pacotes at que sua porta seja liberada.
- Armazenamento na sada: Na medida em que os bits vo chegando, eles vo sendo
armazenados nos buffers das respectivas portas de sada. Isso evita o bloqueio pelo cabea de
fila, pois pacotes da porta m no so bloqueados pelos da porta n. Este modelo pode ter
problemas com tamanhos dos buffers com perdas de pacotes.
- Armazenamento comum: Um nico pool de buffers alocado dinamicamente s portas,
conforme o necessrio. O problema que implementa um modelo de gerenciamento mais
complexo. Sofre, ainda, o problema de latncia (retardo) ao longo da rede de interconexo, uma
vez que cada pacote s pode mudar de buffer aps ter sido armazenado por completo no buffer
anterior.
- Soluo hbrida: A Comutao de pacotes divide o pacote em subpacotes

4.3.3 ALGORITMOS DE ROTEAMENTO

A regra para se determinar qual a sequncia de ns que um pacote deve seguir para sair
da fonte e chegar ao destino chamado de algoritmo de roteamento.
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


13

Um bom algoritmo de roteamento deve dividir a carga da rede sobre seus diversos links,
de maneira a utilizar totalmente a banda passante disponvel. O algoritmo de roteamento deve
evitar ocorrncia de deadlock. Um deadlock ocorre quando vrios pacotes em trnsito requisitam,
ao mesmo tempo, um conjunto de recursos, mas nenhum deles consegue obter todos os
recursos. Nesse caso todos os pacotes ficam bloqueados (travados) para sempre.

Figura 9 - Ocorrncia do deadlock em uma rede de comutao de circuitos

4.4. Desempenho

O desempenho de mquinas paralelas pode seguir duas abordagens de medida: por
hardware ou por software.

4.4.1. MEDIDAS NO HARDWARE

Na medida no hardware considera-se
- Velocidade do processador
- Velocidade dos dispositivos de E/S
- Performance da rede de interconexo

Essa ltima depende das medidas de desempenho conhecidas como latncia e da banda
passante.
A Latncia total o tempo gasto por um processador para enviar um pacote e receber
uma resposta (depende da topologia da rede e dos tempos de inicializao e de transmisso).
PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


14

A Banda passante agregada a quantidade mxima de bits que podem transitar pela
rede de uma s vez.
A Banda passante mdia de cada processador limita a quantidade de dados que cada
processador pode alocar em sua sada.
Nesse contexto a latncia mais importante que a banda passante.

4.4.2. MEDIDAS DO SOFTWARE

Para o usurio interessa saber quo mais rpido seu programa vai rodar numa arquitetura
em paralelo, em relao a um nico processador utilizaremos a figura baixo para ilustrar a
performance de 3 programas e o quanto eles se afastam do ganho perfeito.

Figura 10 - Os programas reais no conseguem chegar ao ganho perfeito, indicado pela linha pontilhada.

A razo de no se ter um ganho perfeito deve-se :
- Componentes sequenciais (nas inicializaes, leitura de dados e obteno de resultados)
de programas
- Latncias nas comunicaes
- Bandas passantes finitas
- Nem todos os processadores so usados
- Ineficincias de algoritmos: nem todos os algoritmos timos so paralelizveis




PROJETO LGICO DE COMPUTADORES
Prof. Ricardo Rodrigues Barcelar
http://www.ricardobarcelar.com.br


15

4.5. Software

Sem um software paralelo, o hardware paralelo tem pouco ou nenhum uso. Dessa forma
de suma importncia que os programas e aplicativos sejam construdos para suportar hardware
que opera em paralelo.
Existem quatro metodologias para produo de software para mquinas paralelas:

a) Adicionam-se bibliotecas para tratamento de nmeros s linguagens de programao
seqencial, como inversores de matrizes, solues para equaes diferenciais, etc. Os
Clculos podem ser realizados por diversos processadores, em paralelo. O problema
que somente os clculos especiais so realizados em paralelo, o resto do programa
seqencial.
b) Adicionam-se bibliotecas especiais com primitivas de comunicao e controle. O
programador responsvel por criar e gerenciar o paralelismo, usando as primitivas
c) Adicionam-se linguagem de programao convencional, algumas estruturas
especiais para criao de processos paralelos, execuo de operaes aritmticas
sobre todos os elementos de um vetor ao mesmo tempo e execuo, em paralelo, das
iteraes de um loop.
d) Desenvolve-se uma linguagem de programao nova, totalmente voltada para a
programao paralela. A vantagem que se tem uma linguagem dedicada
programao paralela, poremos desenvolvedores de programas devem aprender essa
nova linguagem.

Existem cinco aspectos que formam o corao de todos os softwares para computadores
paralelos, a saber:
- Modelos de Controle
- Granularidade do paralelismo
- Paradigmas computacionais
- Mtodos de comunicao
- Primitivas de sincronizao

Potrebbero piacerti anche