1
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
1Aula 12Aula 12
Prof. Fernando Santos Prof. Fernando Santos OsórioOsório
Email: Email: fosoriofosorio [at] { [at] { icmcicmc. . uspusp. . brbr , , gmailgmail. com }. com }
PáginaPágina PessoalPessoal: http://www.icmc.usp.br/~fosorio/: http://www.icmc.usp.br/~fosorio/
EstagiárioEstagiário PAE PAE MaurícioMaurício Dias Dias -- Email: acdias29 [at] yahoo.com.brEmail: acdias29 [at] yahoo.com.br
Material onMaterial on--line: COTEIA line: COTEIA -- http://coteia.icmc.usp.brhttp://coteia.icmc.usp.br
USP - ICMC - SSC SSC 0510 - Informática - 2o. Semestre 2009
Disciplina de
Arquitetura de Computadores
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
2
Aula 12 – Arquiteturas Especiais
Conteúdos Abordados:
1. Arquiteturas Paralelas:Processamento Paralelo do SISD ao MIMD1.1. SISD1.2. MISD1.3 SIMD1.4 MIMD
2. Arquiteturas Avançadas:Processadores Super-EscalaresProcessadores Vetoriais
>> Discussão: Trabalho 2
2
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
3
Arquiteturas Paralelas
Níveis de paralelismo
– Instrução (granulosidade fina)� Paralelismo entre as instruções
� Arquiteturas Pipeline, Superescalar, VLIW
– Tarefas (granulosidade média)� Paralelismo entre as threads
� Arquiteturas SMT (Simultaneous MultiThreading)
– Processos (granulosidade grossa)� Paralelismo entre os processos
� Computação Paralela
� Arquiteturas multiprocessadores e multicomputadores
Contribuição/Slides: Profa. Sarita / USP
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
4
Arquiteturas Paralelas
Computação Paralela – Conceitos
– Permite a execução das tarefas em menor tempo, através da execução em paralelo de diversas tarefas.
– O paralelismo pode ser obtido em diversos níveis, com ou sem o uso de linguagens de programação paralela.
– Arquiteturas de diversos tipos, elaboradas para aplicações específicas, podem ser utilizadas para acelerar a execução dessas aplicações.
3
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
5
Arquiteturas Paralelas
Computação Paralela – Conceitos
– Programação Seqüencial
– Programação Concorrente
� Um servidor, atendendo vários clientes através de uma política de escalonamento no tempo
– Programação Paralela
� Vários servidores, atendendo vários clientes simultaneamente no tempo
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
6
Arquiteturas Paralelas
Computação Paralela – Aplicações
– Genoma Humano
– Biologia Estrutural
– Farmacêutica
– Simulação:
• Turbulência dos Fluidos
• Dinâmica de Fluidos Viscosos
• Circulação de Oceanos (água, poluentes)
• Dinâmica de veículos e de aeronaves
• Simulação Física (partículas, eletromagnetismo, multiphysics)
– Metereologia: Previsão do Tempo (maior antecedência)
– Modelagem de Supercondutores
– Processamento de Imagens e Visão por Computador
– Computação Gráfica, Realidade Virtual, Jogos de Computador7
4
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
7
Arquiteturas Paralelas
Computação Paralela – Classificação e Tipos
Arquiteturas multiprocessada
Arquiteturas multiprocessada
Arquitetura de um Grid Computacional
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
8
Arquiteturas Paralelas
Computação Paralela – Classificação e Tipos
Multicore Processor
Intel
Cell Processor
PlayStation 3
Mas também...
Pipeline, Pré-Fetch, Multi-Level Caches, ...
Parallel Distributed Processing (PDP) ;^)
MultiCore, MultiProcessador, Clusters => Processamento Neural
5
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
9
Arquiteturas Paralelas
Computação Paralela – Classificação e Tipos
� Existem diversas classificações para as arquiteturas paralelas
� Devido a constante evolução, nenhuma classificação consegue abranger todas as arquiteturas existentes
� Classificação de Flynn (1972): – “Some computer organizations and their effectiveness”, IEEE Transactions on Computers, vol. C-21, pp. 948-960, 1972.
– Mais conhecida– Baseia-se na unicidade e multiplicidade do fluxo de
dados e instruções
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
10
Arquiteturas Paralelas
Classificação de Duncan (1990)
– “A survey of parallel computer architectures”, IEEE Computer, pp. 5-16, Fevereiro, 1990
– classificação mais recente e abrangente
– menos conhecida
6
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
11
Arquiteturas Paralelas
Classificação de Flynn (1972)
SISD
Single InstructionSingle Data
SIMD
Single InstructionMultiple Data
MISD
Multiple InstructionSingle Data
MIMD
Multiple InstructionMultiple Data
Único Múltiplo
Único
Múltiplo
Fluxo de instruções
Fluxo de dados
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
12
Arquiteturas Paralelas
Classificação de Flynn (1972)
SISD:
Single Instruction stream, Single Data stream
MISD:
Multiple Instruction stream, Single Data stream
SIMD:
Single Instruction stream, Multiple Data stream
MIMD:
Multiple Instruction stream, Multiple Data stream
7
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
13
Arquiteturas Paralelas
SISD: único fluxo de instrução, único fluxo de dados
– classe que representa os computadores convencionais (seriais)
– as instruções são executadas serialmente, porém os estágios (busca da instrução, decodificação, busca do operando e execução) podem ser sobrepostos (pipeline)
– Pode-se saber o que está ocorrendo exatamente em cada instante de tempo e reproduzir o processo passo a passo mais tarde
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
14
Arquiteturas Paralelas
SISD: único fluxo de instrução, único fluxo de dados
FI
FI FD
FI - Fluxo de instruçõesFD - Fluxo de dadosUP - Unidade de Processamento
UC UP M
M - MemóriaUC - Unidade de Controle
8
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
15
Arquiteturas Paralelas
SISD: único fluxo de instrução, único fluxo de dados
Exemplo (SISD)
For I = 1 to N
LOAD A(I)
B(I)=A(I)*4 => MULT 4
STORE B(I)
TEMPO:
t1
t2
t3
LOAD A(1)
MULT 4
STORE B(1)
Processador P
Processador P
Processador P
t4
t5
t6
LOAD A(2)
MULT 4
STORE B(2)
Processador P
Processador P
Processador P
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
16
Arquiteturas Paralelas
MISD: múltiplo fluxo de instruções, único fluxo de dados
– vários processadores, onde cada um recebe instruções distintas mas operam sobre o mesmo conjunto de dados
– poucos exemplos
� Múltiplos filtros de freqüência operando sobre um único fluxo de sinal
� Múltiplos algoritmos de criptografia para decodificar uma mensagem
9
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
17
Arquiteturas Paralelas
MISD: múltiplo fluxo de instruções, único fluxo de dados
M
M
M
....
....
Memória
UP
UP
UP
....
....
UC
UC
UC..
....
..
FI
FI
FI
FI
FI
FI
FD
FD
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
18
Arquiteturas Paralelas
SIMD: único fluxo de instruções, múltiplo fluxo de dados
– Classe que representa os processadores matriciais, paralelos e associativos
– Uma única unidade de controle que envia um fluxo de instruções para vários processadores
– Os processadores recebem a mesma instrução ao mesmo tempo e atuam sobre diferentes fluxos de dados
– IBM, Sony, Toshiba Group: Cell Processor
– GAPP Processor => Image Processing
– Modern Graphics Processing Units areoften very wide SIMD implementations
10
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
19
Arquiteturas Paralelas
SIMD: único fluxo de instruções, múltiplo fluxo de dados
FI
FI FD
UCUP
MUP
UP
M
M
FD
FD
....
....
....
....
FI
FI
Memória
•1024 processadores em um array 32x32, ou 4096 em 64x64•processador de controle armazena instruções e dados são armazenados na memória de cada processador
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
20
Arquiteturas Paralelas
SIMD: único fluxo de instruções, múltiplo fluxo de dados
Exemplo (SIMD)
LOAD A(I)
B(I)=A(I)*4 => MULT 4
STORE B(I)
TEMPO:
t1
t2
t3
LOAD A(3)
MULT 4
STORE B(3)
P3
P3
P3
LOAD A(2)
MULT 4
STORE B(2)
P2
P2
P2
LOAD A(1)
MULT 4
STORE B(1)
P1
P1
P1
11
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
21
Arquiteturas Paralelas
MIMD: múltiplo fluxo de instruções, múltiplo fluxo de dados
– vários processadores, cada um controlado por uma unidade de controle
– processadores recebem instruções diferentes e operam sob fluxo de dados diferentes
– podem ser síncronos ou assíncronos
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
22
Arquiteturas Paralelas
MIMD: múltiplo fluxo de instruções, múltiplo fluxo de dados
....
....
M
M
M
....
....
Memória
FI
FI
FI
FD
FD
FI
FI
FI
UP
UP
UP
....
....
UC
UC
UC
....
....
FD
12
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
23
Arquiteturas Paralelas
MIMD: Exemplo (MIMD)
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
24
Arquiteturas Paralelas
SISD: o computador consiste de uma unidade de processamento que recebe um fluxo simples de instruções e opera sobre um simples fluxo de dados;
Ex.: computadores von Neumann (o usual)Contribuição/Slides: Prof. Navarro / USP
13
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
25
Arquiteturas Paralelas
MISD: N processadores, cada um com sua unidade de controle e unidade de processamento, dividem uma mesma memória e executam diferentes instruções sobre o mesmo dado
Ex.: arquitetura difícil de ser encontrada. Poderia ser utilizada para aplicar diferentes algorítmos em um mesmo dado.
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
26
Arquiteturas Paralelas
SIMD: o computador consiste de uma unidade de controle e N unidades de processamento. Todo o processamento esta sobre o controle de um único fluxo de instruções mas opera sobre N fluxos de dados;
Ex.: processadores vetoriais.
14
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
27
Arquiteturas Paralelas
MIMD: consiste de N processadores distintos, controlados por N fluxos de instruções e operando sobre N fluxos de dados.
Ex.: multiprocessadores e multicomputadores.
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
28
Arquiteturas Paralelas
Modelos de acesso à memória
Um computador convencional consiste de um
processador executando um programa armazenado na memória:
Memória principal
Processador
Instruções para o processador
Dados para ou do processador
15
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
29
Arquiteturas Paralelas
Modelos de acesso à memória
� Cada lugar da memória possui um endereço que inicia em 0 e vai até 2n - 1, onde n é o número de bits do endereço
� Em computação paralela, pode-se ter:
– memória compartilhada (multiprocessadores)
– memória distribuída (multicomputadores)
Servidor
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
30
Arquiteturas Paralelas
MIMD com Memória Compartilhada
� A mesma memória é acessada pelos múltiplos processadores
� Sincronização entre tarefas é feita por escrita/leitura na/da memória compartilhada e usuário é responsável por sua especificação
� Um lugar da memória não pode ser modificado por uma tarefa enquanto outra o estiver acessando
� Arquitetura “BlackBoard”
16
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
31
Arquiteturas Paralelas
MIMD com Memória Compartilhada
� Comunicação entre tarefas é rápida
� Escalabilidade limitada pelo número de caminhos entre memória e processadores
UC1
UC2
UCn
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
32
Arquiteturas Paralelas
MIMD com Memória Compartilhada
� Usuário é responsável pela sincronização
� Programação:
– Linguagens de programação paralela
� Construções e instruções paralelas permitem declarações de variáveis compartilhadas e seções paralelas de código
� Compilador responsável pela geração do código final executável
– Threads
� Seqüências de código escritas em alto nível para processadores individuais que podem acessar localidades compartilhadas
Exemplos: SMP (Symetric MultiProcessors)
NUMA (NonUniform Memory Access)
17
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
33
Arquiteturas Paralelas
MIMD com Memória Distribuída
� Memória fisicamente distribuída entre os processadores e cada memória local só pode ser acessada pelo seu processador
� Tarefas se comunicam através de troca de mensagense a sincronização entre as tarefas é feita através dessa troca
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
34
Arquiteturas Paralelas
MIMD com Memória Distribuída
Programação:
– Bibliotecas com rotinas para passagem de mensagens que são ligadas a programas seqüenciais convencionais são bastante utilizadas;
– Problema dividido em um número de tarefas que se comunicam;
– MPI é um protocolo independente de linguagem usado para programar computadores paralelos.“Message Passing Interface (MPI) is a specification for an API that allows many computers to communicate with one another. It is used in computer clusters and supercomputers.”
18
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
35
Arquiteturas Paralelas
MIMD com Memória Distribuída
UC1
UC2
UCn
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
36
Arquiteturas Paralelas
MIMD
Memória Distribuída Memória Compartilhada
19
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
37
Arquiteturas Paralelas
MIMD com Memória Distribuída
MPP (Massively Parallel Processors)
– interconectadas por rede de alta velocidade
– boa escalabilidade (podem ser formadas por uma grande quantidade de máquinas)
– complicadas de programar
– alto custo (em torno de US$ 1.000.000)
– Exemplos:� Intel Paragon
� Cray T3E
� Thinking Machines CM-5
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
38
Arquiteturas Paralelas
MIMD com Memória Distribuída
COW (Cluster of Workstations)
– Utilização de estações de trabalho em uma rede local de processamento
– Baixo custo
– Boa relação custo/benefício
20
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
39
Arquiteturas Paralelas
Fonte: A. Tanenbaum Structured Computer Organization
Arquiteturas Paralelas
SISD SIMD MISD MIMD
(Von Neumann)
VectorProcessor
Multi-Processors
ArrayProcessor
Multi-Computers
UMA COMA NUMA MPP COW
Bus SwitchedCC-
NUMANC-
NUMAGrid
?
UMA: Uniform memory access / NUMA: Nouniform memory access
COMA: Cache-Only Memory Architectures / CC - Cache Coherent
USP - SSC-510 - Informática T1 / 2009-2Arquitetura de ComputadoresProf. Fernando Osório
Out. 2009
40
INFORMAÇÕES SOBRE A DISCIPLINA
USP USP -- Universidade de São Paulo Universidade de São Paulo -- São Carlos, SPSão Carlos, SPICMC ICMC -- Instituto de Ciências Matemáticas e de Computação Instituto de Ciências Matemáticas e de Computação
SSC SSC -- Departamento de Sistemas de ComputaçãoDepartamento de Sistemas de Computação
Prof. Fernando Santos OSÓRIOProf. Fernando Santos OSÓRIO
Web institucional: http://www.icmc.usp.br/ssc/Web institucional: http://www.icmc.usp.br/ssc/
Página pessoal: http://www.icmc.usp.br/~fosorio/Página pessoal: http://www.icmc.usp.br/~fosorio/
EE--mailmail: : fosoriofosorio [[atat] ] icmcicmc. . uspusp. . brbr ou ou fosoriofosorio [[atat] ] gmailgmail. com. com
Disciplina de Arquitetura de Computadores / InformáticaDisciplina de Arquitetura de Computadores / Informática
Estagiário PAE: Maurício A. DiasEstagiário PAE: Maurício A. Dias
Web disciplina: COTEIA Web disciplina: COTEIA -- Http://coteia.icmc.usp.brHttp://coteia.icmc.usp.br
> Programa, Material de Aulas, Critérios de Avaliação,> Programa, Material de Aulas, Critérios de Avaliação,
> Lista de Exercícios, Trabalhos Práticos, Datas das Provas> Lista de Exercícios, Trabalhos Práticos, Datas das Provas