Escolar Documentos
Profissional Documentos
Cultura Documentos
A busca por máquinas mais rápidas é uma constante pelos projetistas. As máquinas
podem ser aceleradas simplesmente aumentando a velocidade do hardware, por
exemplo, aumentando a freqüência do clock. Contudo limites físicos como a velocidade
de propagação no cobre que é de aproximadamente 20 cm/ns é um problema. Isto
significa que, para construir um computador com tempo de instrução de
1 nanossegundo, a distância total que os sinais elétricos podem viajar dentro da CPU,
para a memória, e de volta à CPU não pode ser maior que 20 centímetros, Tanenbaum
(2000). A solução é miniaturizar para diminuir o tempo de propagação dos sinais no
chip. Isto gera problemas como o efeito de dissipação térmica (efeito Joule)
potencializados com o aumento do número de componentes no chip. Pela Lei de Moore
o número de transistores integrados em um chip dobra a cada dezoito meses. Só que
isto tem um limite físico, o tamanho do componente.
Os supercomputadores necessitam de sistemas especiais para retirar o calor do
processador, tais como radiadores com água ou com fréon líquido (CFC, um
refrigerante já proibido).
Como solução, em vez de se utilizar uma única CPU de alta velocidade, implementa-se
uma máquina com muitas ULAs mais lentas e mais baratas, ou CPUs completas em
paralelo para se obter o mesmo poder computacional a um custo menor.
Segundo Hennessy e Patterson (2008), há cerca de 40 anos, Flynn [1966] propôs um
modelo simples de categorizar todos computadores, o qual ainda é útil hoje. Ele viu o
paralelismo nos fluxos de instrução e dados exigidos pelas instruções no componente
mais restrito do multiprocessador e colocou todos os computadores em uma dentre
quatro categorias: SISD, SIMD, MIND E MISD.
As máquinas paralelas podem ser divididas em quatro categorias baseando-se nos
fluxos de instruções e de dados que elas têm, Tanenbaum (2000) e Hennessy e
Patterson (2008):
1. SISD: Single Instruction, Single Data. Fluxo único de instruções e de dados;
• Essa categoria é caracterizada pelo processador único e serial.
• Dados armazenados em memória única.
• Arquitetura de um computador serial, que tem uma ULA e um barramento de
dados com uma unidade de controle.
INSTRUÇÃO DADOS
UC UP UM
Figura 1
1
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
D
UP2 ML2
INSTRUÇÃO
UC
D
UPn MLn
Figura 2
2
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
• Exemplos de MIMD:
a) Com memória compartilhada.
INSTRUÇÃO DADOS
UC1 UP1
Compartilhada
INSTRUÇÃO DADOS
Memória
UC2 UP2
INSTRUÇÃO DADOS
UCn UPn
Figura 3
Interconexão
INSTRUÇÃO DADOS
Rede de
UC2 UP2 LM2
INSTRUÇÃO DADOS
UCn UPn LMn
Figura 4
c) Clusters
Um grupo de computadores completos interconectados;
Trabalham juntos como um único recurso;
Ilusão de ser uma única máquina;
Cada computador é chamado de nó (node);
Comunicação via conexões de rede ou diretas.
P P P P
Figura 5
RAID
Figura 6
3
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Resumindo:
A máquina tradicional de John Von Neumann é SISD. Ela tem apenas um fluxo de
instruções, ou seja, um programa, executado por uma única CPU, e uma memória
contendo seus dados processados.
O paralelismo pode-se dar de duas formas gerais:
1. O paralelismo a nível de instrução, onde o paralelismo é explorado dentro de
instruções individuais para se obter máquinas mais rápidas;
2. O paralelismo ao nível de processador, onde vários processadores trabalham
juntos para a solução de um problema.
E1 E2 E3 E4 E5
Unidade de Unidade de Unidade de Unidade de
Unidade de
busca da decodificação da busca de execução da
gravação
Instrução instrução operando instrução
Figura 7
4
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
INSTRUÇÃO
E E1 1 2 3 4 5 6 7 8 9
S
T E2 1 2 3 4 5 6 7 8
Á
E3 1 2 3 4 5 6 7 ...
G
I E4 1 2 3 4 5 6
O
S E5 1 2 3 4 5
Figura 8
• Arquitetura Superescalar
A figura 9 mostra uma estrutura com dois pipelines, onde uma única unidade de busca
de instruções busca pares de instruções ao mesmo tempo e coloca cada uma delas em
seu próprio pipeline, completo com sua própria ALU para operação paralela. Para
poder executar em paralelo, as duas instruções não devem ter conflito de utilização de
5
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
E1 E2 E3 E4 E5
Unidade de Unidade de Unidade de
Unidade de
decodificação busca de execução da
gravação
da instrução operando instrução
Unidade de
busca da
Instrução
Unidade de Unidade de Unidade de Unidade de
decodificação busca de execução da
da instrução operando instrução
gravação
E4
ULA
ULA
E1 E2 E3 E5
Unidade de Unidade de Unidade de
Unidade de
busca da decodificação busca de LOAD
gravação
Instrução da instrução operando
STORE
Ponto
flutuante
Figura 10
6
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
o Máquina vetorial
As máquinas do tipo SIMD operam com muitos conjuntos de dados em paralelo.
Por exemplo, na previsão do tempo onde muitos cálculos devem ser realizados
em paralelo com dados diferentes. Uma arquitetura apropriada para esta tarefa é
uma máquina vetorial, vista na figura 11a, onde o fluxo de dados é distribuído
entre várias ULAS, na forma de um vetor de n entradas. Esta ULA vetorial é
capaz de realizar uma adição vetorial como mostrada na figura 11b, gerando na
saída um novo vetor.
Figura 11
o Processador Matricial
Um processador matricial é uma máquina que possui um grande número de
processadores idênticos os quais efetuam a mesma seqüência de instruções em
diferentes conjuntos de dados. Segundo Tanenbaum (2007), o primeiro
processador matricial do mundo foi o ILLIAC IV da Universidade de Illinois,
ilustrado na Figura 12. O plano original era construir uma máquina que
consistisse em quatro quadrantes, cada um deles com uma grade quadrada
8 X 8 de elementos de processador/memória. Uma única unidade de controle
por quadrante transmitia instruções, que eram efetuadas no mesmo passo por
todos os processadores, cada um usando seus próprios dados de sua própria
memória (carregada durante a fase de inicialização). Em função do custo
somente um quadrante foi construído, com desempenho de 50 Megaflops (50
milhões de operações de ponto flutuante por segundo). O processador matricial
é também um exemplo de máquina tipo SIMD.
Os elementos de processamento em um processador matricial não são CPUs
independentes, pois há só uma única unidade de controle compartilhada por
todos eles. Esta unidade de controle distribui instruções em broadcast para
todos os processadores.
7
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Figura 12
o Multiprocessador
Uma terceira categoria é a máquina tipo MIMD, na qual CPUs diferentes (cada
qual com a sua própria unidade de controle) executam programas diferentes, às
vezes compartilhando alguma memória comum.
Como exemplo pode-se citar um processo de reserva de passagem aérea, onde
reservas simultâneas múltiplas (múltiplos dados) não seguem em paralelo,
instrução por instrução. Deste modo tem-se um fluxo múltiplo de instrução e um
fluxo múltiplo de dados.
Na figura 13a tem-se um exemplo de uma máquina multiprocessada com
memória compartilhada e na figura 13b tem-se um exemplo de uma máquina
multiprocessada com memórias locais, as quais só são acessadas pelo
processador, podendo ser utilizada para itens de programa ou para dados. O
acesso a estas memórias se dá por barramentos locais o que diminui o trafego
do barramento principal e reduz o efeito de conflitos na hora dos acessos à
memória principal.
Figura 13
8
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Referências bibliográficas:
TANENBAUM, Andrew S. Organização estruturada de computadores. 5ª edição. São
Paulo, Ed. Prentice Hall do Brasil, 2007.
TANENBAUM, Andrew S. Organização estruturada de computadores. 3ª edição. Rio de
Janeiro, LTC, 2000.
MONTEIRO, M. A. Introdução à organização de computadores. 3ª edição. Rio de
Janeiro, LTC, 1996.
HENNESSY, J. L. e PATTERSON, D.A. Arquitetura de Computadores. Uma
abordagem quantitativa. 4ª edição. Rio de Janeiro, Elsevier, 2008.