1 ssc114 arquitetura de computadores paralelismo no nível de instrução e de tarefas aula 8...

47
1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

1

SSC114 Arquitetura de Computadores

Paralelismo no nível de instrução e de tarefas

Aula 8

01/09/10 (Turmas 1 e 2)

Profa. Sarita

Page 2: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

2

Tipos de Paralelismo

BLP: Bit Level Parallelism Interno a instrução Explorado desde a década de 70

ILP: Instruction Level Parallelism Paralelismo entre instruções Explorado a partir do final da década de 80 Processadores cada vez mais complexos

DLP: Data Level Parallelism (em paralelo) Explorado em arquiteturas SIMD, Arranjos

Sistólicos, etc.

Page 3: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

3

Tipos de Paralelismo

TLP: Task Level Parallelism Vários enfoques:

Processo Thread Job

Para cada enfoque tem-se diferentes arquiteturas

Page 4: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

4

Paralelismo a nível de instrução Processadores Escalares Processadores Superescalares Processadores Pipelined Processadores Superpipelined Processadores VLIW

Page 5: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

5

Processadores Superescalares Processadores Escalares

Uma instrução por ciclo Uma instrução terminada por ciclo

Processadores Superescalares Múltiplas instruções consideradas em um único

ciclo Múltiplas instruções podem ser terminadas em

um ciclo Desenvolvidos como uma alternativa a

processadores vetoriais

Page 6: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

6

Processadores Superescalares Processador pipeline de 4 estágios

Page 7: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

7

Processadores Superescalares Processador Superescalar com grau = 3 e

com pipeline de 4 estágios

Page 8: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

8

Processadores Superescalares Um processador superescalar com grau m

pode finalizar até m instruções por ciclo Depende da dependência de dados, conflito por

recurso e dos desvios

Page 9: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

9

O que significa Superescalar? Instruções comuns

aritméticas, load/store e desvios condicionais podem ser iniciados e executados independentemente

Aplicável igualmente a RISC e CISC na prática é implementado usualmente em

máquinas RISC

Page 10: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

10

Por que Superescalar?

Maioria das operações realizadas em valores escalares

Melhora desempenho dessas operações para melhorar o desempenho total

Proposta foi aceita rapidamente Máquinas superescalares comerciais surgiram apenas +/-

2 anos após o surgimento do termo superescalar Máquinas RISCs comerciais levaram +/- 8 anos

Page 11: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

11

Organização superescalar genérica Várias unidades funcionais organizadas em pipeline Ex.: duas op com inteiros

duas op com ponto flutuante

uma op de carga/armazenamento

Page 12: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

12

Limitações

Paralelismo a nível de instrução Nível que as instruções podem ser executadas em paralelo

Otimizações baseadas: No compilador e em técnicas de hardware

Limitações intrínsecas: Dependência de dados verdadeira (escrita-leitura) Dependências de desvio Conflitos no uso de recursos Dependência de saída (escrita-escrita) Antidependência (leitura-escrita)

Page 13: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

13

Processadores VLIW

VLIW – Very Large Instruction Word Explora paralelismo em nível de instrução Instruções de 128-1024 bits Cada instrução consiste de múltiplas

instruções independentes Diversas unidades funcionais interligadas por

um único registrador compartilhado

Page 14: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

14

Abordagem VLIW

Cache/memory

FetchUnit

Single multi-operation

instruction

multi-operation instruction

FU FU FU

Register file

[Ref : Sima et al]

Page 15: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

15

Abordagem Superescalar

Cache/memory

FetchUnit Multiple

instruction

Sequential stream of instructions

FU FU FU

Register file

Decode

and issue

unit

Instruction/control

Data

FU Funtional Unit

[Ref : Sima et al]

Page 16: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

16

Comparações: Pipeline, Superescalar e VLIW

[Ref : Hwang et al]

Page 17: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

17

Processadores VLIW x Superescalar Porque VLIW é menos popular que

superescalar? Compatibilidade entre códigos binários Mesmo compilador pode ser utilizado para

escalar e superescalar Exemplo de Superescalar: IBM RS/6000 Exemplo de VLIW: Crusoe TM 5400

Page 18: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

18

Arquiteturas Superpipeline

É um pipeline com muitos estágios Estágios necessitam tempos de ciclo

menores Normalmente menos que a metade

Velocidade interna de clock duplicada Executa duas "atividades“ por ciclo de clock externo

Superescalar permite executar a busca em paralelo

Page 19: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

19

Superescalar xSuperpipeline

Page 20: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

20

Pontos importantes

Processador superescalar: Emprega vários pipelines de instrução independentes Cada pipeline com seus estágios, executando instruções

diferentes simultaneamente Novo nível de paralelismo: diversos fluxos de instrução cada vez

Processador precisa buscar várias instruções: Instruções próximas que sejam independentes e possam ser

executadas em paralelo (ao mesmo tempo) Problemas com a dependência de dados Identificadas as dependências, execução pode ser feita fora de

ordem

Page 21: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

21

Pontos importantes

Dependências de dados podem ser solucionadas com: Registradores adicionais e renomeação de

referências a registradores

Dependências de controle RISCs puros empregam desvio atrasado Técnica não é adequada para processadores

superescalares São usados métodos tradicionais de predição de desvio

Page 22: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

22

Paralelismo a nível de tarefas

Paralelismo a nível de thread Considera aplicações com múltiplas threads Várias opções:

Multithreading (MT) Superthreading Simultaneous Multithreading (SMT) ou Hyperthreading Múltiplos Cores

Page 23: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

23

CPU com uma thread

RAM: 4 programas em execução

Front End: busca até 4 instruções

Sete pipelines de execução Programa vermelho em

execução Quadrados brancos:

estágios vazios Programas possuem uma

ou mais threads

Page 24: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

24

Simultaneous Multiprocessing (SMP) Arquitetura com mais de um

processador que compartilham recursos de memória, discos e executam o mesmo SO.

Dois processos executam simultaneamente em dois processadores

No final – contexto é salvo e dois novos processos são colocados nas CPUs

Page 25: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

25

Simultaneous Multiprocessing (SMP) Maior quantidade de

recursos Nenhum

procedimento para melhor utilização dos recursos

Menor utilização dos processadores

Evita chaveamento de contexto

Page 26: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

26

Multithread

Técnica para diminuir as perdas associadas com processamento de uma única thread

A técnica é chamada de time-slice multithreading ou superthreading

O processador que utiliza essa técnica é chamado processador multithreaded

Processador multithreaded é capaz de executar mais de uma thread em um instante

Page 27: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

27

Multithread

Threads compartilham suporte em hardware para troca entre threads em execução sem intervenção de software.

CPU possui informações sobre os estados associados com cada thread (contador de programa, registradores, etc.).

O hardware também deve conter um mecanismo para o escalonamento de thread, fetch e decodificação de instruções.

Page 28: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

28

Multithread

Número menor de estados perdidos

Um estágio do pipeline só pode ter instrução de uma thread

Front End – 4 instruções por clock

Processador – 7 unidades funcionais

Page 29: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

29

Multithreading

BTB and I-TLB

Decoder

Trace Cache

Rename/Alloc

Uop queues

Schedulers

Integer Floating Point

L1 D-Cache D-TLB

uCode ROMBTBL2 C

ache

and

Con

trol

Bus

Thread 1: floating point

Page 30: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

30

Multithreading

BTB and I-TLB

Decoder

Trace Cache

Rename/Alloc

Uop queues

Schedulers

Integer Floating Point

L1 D-Cache D-TLB

uCode ROMBTBL2 C

ache

and

Con

trol

Bus

Thread 2: integer operation

Page 31: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

31

Multithread

Multthreading auxilia nas esperas pela memória

Continua não explorando paralelismo dentro de threads

Page 32: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

32

Simultaneous Multithreading (SMT) Também denominado Hyperthreading - HT Explora TLP (thread-level parallelism) e ILP

(instruction-level parallelism) Apresenta um melhor aproveitamento dos

recursos Enquanto uma thread pode estar usando

uma unidade de ponto flutuante, outra pode estar usando a unidade de inteiro

Page 33: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

33

Simultaneous Multithreading (SMT)• 4 Programas na

Memória

• Front End recebe instruções de diferentes threads

Page 34: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

34

Simultaneous Multithreading (SMT) Com SMT

BTB and I-TLB

Decoder

Trace Cache

Rename/Alloc

Uop queues

Schedulers

Integer Floating Point

L1 D-Cache D-TLB

uCode ROMBTBL2 C

ache

and

Con

trol

Bus

Thread 1: floating pointThread 2:integer operation

Page 35: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

35

Formas de execução das threadsSuperescalar Simultaneous MultithreadingMultithreading

Issue slots

Clo

ck c

ycle

s

Empty Slot

Thread 1

Thread 2

Thread 3

Thread 4

Page 36: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

36

Simultaneous Multithreading (SMT) Simula em um único processador físico dois

processadores lógicos, não sendo um processador paralelo real

Cada processador lógico possui um controlador de interrupção programável e conjunto de registradores

Outros recursos são compartilhados entre os processadores lógicos: cache de memória, unidade de execução, unidade lógica e aritmética, unidade de ponto flutuante e barramentos

Page 37: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

37

Simultaneous Multithreading (SMT) O sistema operacional envia tarefas para os

processadores lógicos como se estivesse enviando para processadores físicos

Os sistemas operacionais e software aplicativos têm que suportar a tecnologia HyperThreading

Page 38: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

38

Formas de execuçãdo das threads

AS - registradores e controlador de interrupção

Page 39: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

39

Simultaneous Multithreading (SMT) A denominação HyperThreading foi

utilizada inicialmente pela Intel Segundo a Intel, a HyperThreading

oferece um aumento de desempenho de até 30% dependendo da configuração do sistema

Page 40: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

40

Simultaneous Multithreading (SMT)Desempenho

Sandra (the System ANalyser, Diagnostic and Reporting Assistant)

HT:

• P4 melhora de ~52.5%

• Xeons melhora de ~28%

Page 41: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

41

Simultaneous Multithreading (SMT)Desempenho Melhora no desempenho depende da

disponibilidade dos recursos compartilhados pelas threads em execução

Uma opção para obter melhor desempenho é considerar mais de um núcleo em cada processador

Duplicidade de recursos

Page 42: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

42

Multi Core

Múltiplos núcleos de CPU em um processador

Execuções simultâneas de tarefas Cada núcleo com o seu pipeline Cada núcleo com os recursos necessários

para execução de seu programa

Page 43: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

43

Multi Core

Possibilidade de Múltiplos núcleos

Intel – 2 núcleos Mainframes –

diversos núcleos

Page 44: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

44

Multi Core

BTB and I-TLB

Decoder

Trace Cache

Rename/Alloc

Uop queues

Schedulers

Integer Floating Point

L1 D-Cache D-TLB

uCode ROM

BTBL2 C

ache

and

Con

trol

Bus

BTB and I-TLB

Decoder

Trace Cache

Rename/Alloc

Uop queues

Schedulers

Integer Floating Point

L1 D-Cache D-TLB

uCode ROM

BTBL2 C

ache

and

Con

trol

Bus

Thread 1 Thread 3 Thread 2 Thread 4

Page 45: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

45

Multi CoreExemplo Programa de renderização de imagem Dividir a tela em blocos e associar uma

thread para cada bloco HyperThreading – processa duas ou mais threads

simultaneamente Sem HyperThreading - processa apenas uma

thread de cada vez. Processador Dual Core - pode executar o mesmo

programa de renderização e mais um outro qualquer.

Page 46: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

46

Multi CoreVantagens Maior eficácia do sistema e desempenho

aprimorado de aplicativos em computadores executando vários aplicativos simultaneamente

Desempenho aprimorado para aplicativos multi-threaded

Bom desempenho para única aplicação com uma thread – processos do SO em outro núcleo

Desempenho superior em aplicativos que utilizam processamento de forma intensiva

Page 47: 1 SSC114 Arquitetura de Computadores Paralelismo no nível de instrução e de tarefas Aula 8 01/09/10 (Turmas 1 e 2) Profa. Sarita

47

Comparando

Núcleos podem usar SMT ou não Possíveis combinações:

Um único núcleo, sem SMT (processador normal) Um único núcleo, com SMT Mútiplos núcleos, sem SMT Mútliplos núcleos, com SMT

Números de possíveis threads simultaneamente: 2, 4, ou 8