Disciplina de Arquitetura de Computadores - …wiki.icmc.usp.br/images/0/0c/SSC0510-Aula12.pdf ·...

20
1 USP - SSC-510 - Informática T1 / 2009-2 Arquitetura de Computadores Prof. Fernando Osório Out. 2009 1 Aula 12 Aula 12 Prof. Fernando Santos Prof. Fernando Santos Osório Osório Email: Email: fosorio fosorio [at] { [at] { icmc icmc. . usp usp. . br br , , gmail gmail. com } . com } Página Página Pessoal Pessoal: http://www.icmc.usp.br/~fosorio/ : http://www.icmc.usp.br/~fosorio/ Estagiário Estagiário PAE PAE Maurício Maurício Dias Dias - Email: acdias29 [at] yahoo.com.br Email: acdias29 [at] yahoo.com.br Material on Material on-line: COTEIA line: COTEIA - http://coteia.icmc.usp.br http://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-2 Arquitetura de Computadores Prof. Fernando Osório Out. 2009 2 Aula 12 – Arquiteturas Especiais Conteúdos Abordados: 1. Arquiteturas Paralelas: Processamento Paralelo do SISD ao MIMD 1.1. SISD 1.2. MISD 1.3 SIMD 1.4 MIMD 2. Arquiteturas Avançadas: Processadores Super-Escalares Processadores Vetoriais >> Discussão: Trabalho 2

Transcript of Disciplina de Arquitetura de Computadores - …wiki.icmc.usp.br/images/0/0c/SSC0510-Aula12.pdf ·...

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