Você está na página 1de 44

Arquitetura de Computadores II

Aula 14
Paralelismo em Nível de
Thread
Capítulo 5

Prof. Jeferson F. Chaves


(jeferson@decom.cefetmg.br)

Engenharia de Computação 1
Agenda
n  Conceitos
n  Coerência de cache
n  Protocolo snooping
n  Protocolo de diretório
n  Protocolo snooping
n  Implementação
n  Extensões
n  Limitações

Engenharia de Computação 2
Introdução
n  Para modelos de hardware que tenham
um custo razoável, é improvável que os
custos de uma especulação muito
agressiva possa ser justificado.
n  A ineficiência energética e o uso do silício
são simplesmente muito altos.

Engenharia de Computação 3
Limite para ILP para processadores realizáveis
New Model Model Power 5
(2011)
Instructions 64 (no Infinite 4
Issued per restriction)
clock
Instruction Infinite, 256, 128, Infinite 200
Window Size 64,32
Renaming 64 integer + 64 Infinite 48 integer +
Registers FP register 40 Fl. Pt.
Branch Tournament Perfect 2% to 6%
Prediction predictor with 1K misprediction
entries com 16- (Tournament
bits Branch Predictor)
Cache Perfect Perfect 64KI, 32KD, 1.92MB
L2, 36 MB L3
Memory Alias HW Perfect -
disambiguation
Engenharia de Computação 4
Introdução
n  1986-2003: grande avanço no
desempenho dos uniprocessadores
n  Atualmente, não observamos avanços
significativos:
n  Limitação na exploração do ILP
n  Crescente preocupação com a potência
n  Avanços na direção dos
multiprocessadores.

Engenharia de Computação 5
Taxonomia
n  Multiprocessador:
n  Processadores fortemente acoplados
n  Coordenação e uso costumam ser

controlados por um único SO.


n  Compartilham memória através de um

espaço de endereçamento compartilhado.


n  Exploram o paralelismo no nível de threads

n  Processamento paralelo: execução de threads


fortemente acopladas
n  Paralelismo em nível de requisição: processos
independentes originários de um ou mais usuários
Engenharia de Computação 6
Multiprocessadores - Motivação
n  Eficiência menor no uso do silício e energia ao
explorar o ILP.
n  Crescente interesse por servidores de alto nível ->
computação em nuvem.
n  Crescente interesse por aplicações orientadas a
computação intensiva de dados.
n  Aplicações pesadas estão sendo feitas na nuvem
n  Compreensão melhor do uso do multiprocessador
n  Multiprocessadores fornecem o projeto de
replicação

Engenharia de Computação 7
Classificação de Flynn
n  Baseia-se nas possíveis unicidades e multiplicidades dos
fluxos de instruções e de dados para definir quatro tipos
de arquiteturas:
n  SISD (Single Instruction Stream, Single Data Stream):
uniprocessador
n  SIMD (Single Instruction Stream, Multiple Data Streams): A
mesma instrução é executada por múltiplos processadores
usando diferentes fluxos de dados. Memória de instrução única.
Data Level Paralelismo: Computadores vetoriais.
n  MISD (Multiple Instruction Streams, Single Data Stream):
não existem.
n  MIMD (Multiple Instruction Streams, Multiple Data Streams):
Cada processador busca sua própria instrução e opera sobre os
seus dados. Paralelismo no nível de threads.
n  Arquitetura utilizada nos multiprocessadores de propósito geral

Engenharia de Computação 8
Taxonomia
n  Processo: segmento de código que pode
ser executado independentemente.
n  O estado do processo contém toda a
informação necessária para executar o
programa no processador
n  Thread: linha de execução independente
dentro de um mesmo processo
n  compartilha o mesmo espaço de endereçamento
do processo em que foi criado

Engenharia de Computação 9
Taxonomia

Engenharia de Computação 10
Thread
n  Granularidade da thread: quantidade de
computação atribuída a uma thread.
n  Ex: Threads geradas por um compilador
paralelo: dezenas de iterações de um loop ou
escalonadas pelo SO

Engenharia de Computação 11
Taxonomia
n  Compartilhamento de memória:
n  Espaço de endereçamento compartilhado
n  Mas não significa necessariamente que

exista uma única memória física.


n  Sistemas de único chip com múltiplos núcleos:
multicores
n  Computadores consistindo em múltiplos chips,
cada qual podendo ter um projeto multicore.

Engenharia de Computação 12
Multiprocessadores MIMD
n  Multiprocessadores Simétricos de
Memória compartilhada:
n  UMA (Uniform Memory Access) ou SMP
(Symmetric Multiprocessor) : Leva o mesmo
tempo para acessar a memória centralizada
independente de qual processador o requisita
n  Todos os multicores existentes são SMP
n  Quando mais de um multicore é conectado,
existem memórias separadas para cada multicore.
n  Memória é distribuída.

Engenharia de Computação 13
Multiprocessador com memória compartilhada

Engenharia de Computação 14
Multiprocessadores MIMD
n  Multiprocessadores de Memória
compartilhada Distribuída:
n  Memória distribuída entre os processadores
n  DSM (Distributed Shared Memory)

n  Também chamado de NUMA (Non-uniform

Memory Access): Alguns acessos são mais


rápidos do que outros
Processadores NUMA podem escalar para
tamanhos maiores

Engenharia de Computação 15
Multiprocessador de memória distribuída

Engenharia de Computação 16
SMP e DSM
n  Comunicação entre threads ocorre através
de um espaço de endereço compartilhado
n  A referência de memória pode ser feita por
qualquer processador para qualquer local na
memória
n  Supondo que ele tenha os direitos de acesso.

n  Memória compartilhada = espaço de

endereço compartilhado

Engenharia de Computação 17
Taxonomia
n  Cluster: Um conjunto de computadores
conectados por uma rede local (LAN) que
funciona de forma autônoma.
n  Computadores em escala warehouse: clusters
com dezenas de milhares de servidores.
n  Nosso foco: multiprocessadores com número
pequeno a médio de processadores (2 a 32).

Engenharia de Computação 18
Cluster
n  Se parecem com computadores
individuais conectados por uma rede.
n  A memória de um processador não pode
ser acessada por outro processador sem a
assistência de um protocolo de
comunicação (envio de mensagem)

Engenharia de Computação 19
Taxonomia
n  Sincronização: O processo de coordenar o
comportamento de dois ou mais processos, que
podem estar sendo executados em diferente
processadores
n  Lock: um dispositivo de sincronização que
permite acesso a dados apenas a um
processador de cada vez
n  Alto desempenho: alta vazão para tarefas
independentes

Engenharia de Computação 20
Desafios do processamento paralelo

1) Primeiro desafio: paralelismo limitado


disponível nos programas
Suponha que você queira alcançar um
ganho de velocidade de 80 com 100
processadores. Que fração da
computação original pode ser sequencial?

Engenharia de Computação 21
Desafios do processamento paralelo

Somente 0,25% da computação original pode ser


sequencial

Engenharia de Computação 22
Desafios do processamento paralelo

2) Grande latência no acesso remoto em um


processador paralelo.
n  Computadores de memória compartilhada:
Comunicação pode custar entre 35-50 ciclos
de clock
n  Computadores em grande escala 1000 ciclos

de clock

Engenharia de Computação 23
Solução
n  Paralelismo inadequado: resolvido pelo
software, com novos algoritmos que
podem ter melhor desempenho paralelo
n  Longa latência: resolvido pela arquitetura
e programador.
n  Ex: caching de dados compartilhados (Hw) ou
restruturação de dados (Sw)

Engenharia de Computação 24
Memória Compartilhada Centralizada

n  Em processadores de alto desempenho, as


demandas de memória superaram a capacidade
de barramentos razoáveis
n  Microprocessadores recentes se conectam
diretamente a memória, dentro de um único chip
através de barramento backside ou de memória
n  Acessar a memória de outro chip requer passar
pelo processador “proprietário” da memória.
n  Acesso assimétrico: mais rápido para a memória
local e mais lento para a memória remota.

Engenharia de Computação 25
Memória Compartilhada Centralizada

n  Máquina simétricas de memória


compartilhada normalmente admitem o
caching de dados compartilhados e
privados
n  Dados privados: são usados por um único
processador
n  Dados compartilhados: são usados por

múltiplos processadores
n  Comunicação entre processadores através da
leitura e escrita de dados compartilhados

Engenharia de Computação 26
Memória Compartilhada Centralizada

n  Dados compartilhados colocados na cache


n  Podem ser replicados nas múltiplas caches
n  Vantagens: Redução na latência de acesso, da

largura de banda de memória exigida e redução na


disputa pelos itens de dados compartilhados
n  Problema: Coerência da cache.

Engenharia de Computação 27
Problema da Coerência de cache
n  Visão da memória de dois processadores se dá
através das caches individuais.
n  Podem acabar vendo dois valores diferentes.
n  Memória principal: estado global
n  Caches individuais: estado local

Engenharia de Computação 28
Coerência de cache
n  Coerência
n  Todas as leitura realizadas por qualquer
processador devem retornar o valor escrito
mais recentemente
P escreve no local X
P lê do local X
Retorna o valor escrito por P
n  Escritas no mesmo local da memória por
qualquer dois processadores são vistos na
mesma ordem por todos os processadores.
Escreve 1 no local X
Escreve 2 no local X
Leitura do local X será serializada: 1 e depois 2.

Engenharia de Computação 29
Coerência de cache
n  Consistência
n  Quando um valor escrito será retornado por
uma leitura
n  Se um processador escreve no local A seguido
pelo local B, qualquer processador que veja o novo
valor de B deve também ver o novo valor de A.
n  Se o intervalo entre a escrita e leitura for
muito pequena, talvez a leitura não retorne os
valores escritos.

Engenharia de Computação 30
Coerência de cache
n  Coerência: comportamento de leituras e
escritas no mesmo local de memória
n  Consistência: define o comportamento de
leituras e escritas com relação aos
acessos a outros locais da memória.

Engenharia de Computação 31
Coerência de cache
n  Suposições:
1) Uma escrita não termina até que todos os
processadores tenham visto o efeito dessa
escrita.
2) O processador não muda a ordem de
qualquer escrita com relação a qualquer outro
acesso à memória.

Engenharia de Computação 32
Esquemas básicos
n  Caches terão múltiplas cópias dos
mesmos dados
n  Migração: um item de dado pode ser movido
para uma cache local e usado ali em um
padrão transparente
n  Replicação: criam uma cópia do item de

dados na cache local.


n  Problema de coerência de cache: solução
de Hw, protocolo para manter as caches
coerentes.
Engenharia de Computação 33
Protocolos de coerência de caches

n  Baseada em diretório:
n  O estado de compartilhamento de um bloco de
memória física é mantido em apenas um local,
chamado diretório
n  SMP: diretório centralizado
n  DSM: diretório distribuído
n  Snooping:
n  Cada cache que tem a cópia dos dados de um bloco
de memória física pode rastrear o estado de
compartilhamento do bloco.
n  SMP: acesso por meio de broadcast. Todos os controladores
de cache monitoram ou bisbilhotam (snoop) o barramento
para avaliar se elas possuem cópia do bloco solicitado.
Engenharia de Computação 34
Protocolos de coerência por snooping

n  Protocolo de invalidação de escrita:


n  Garantir que um processador tenha acesso exclusivo
a um item de dados antes que escreva neste item.
n  Invalida outras cópias em uma escrita
n  Usa o barramento para serializar:
n  Uma escrita não pode ser completada até se ter o

acesso ao barramento.

Engenharia de Computação 35
Implementação - Snooping

n  Para invalidação, o processador adquire o


barramento e envia o endereço a ser
invalidado
n  Os processadores realizam o snoop do
barramento observando os endereços
n  Se estiver em sua cache, os dados serão
invalidados
n  Se dois processadores tentarem enviar ao
mesmo tempo:
n  Serialização da escrita.
Engenharia de Computação 36
Implementação - Snooping

n  E quando ocorre uma falha de cache?


n  Write-through: os dados mais recentes estão na
memória
n  Write-back: o valor mais recente pode estar em uma
cache privada e não em uma cache compartilhada ou
na memória
n  Snooping:
n  Cada processador bisbilhota o endereço colocado no

barramento
n  Se um processador descobrir que possui uma cópia

modificada do bloco solicitado:


n  Write-back do bloco.

n  Envia esse bloco de cache em resposta à soliticação

de leitura e aborta o acesso à memória.


Engenharia de Computação 37
Implementação - Snooping
n  Tags são usadas para implementar o processo
de snooping.
n  Bit validade para implementar a invalidação
n  Bit extra para indicar se um bloco é
compartilhado ou não.
n  Permite indicar se a escrita precisa gerar invalidação.
n  Se for compartilhado, a escrita gera invalidação no

barramento e marca o bloco como exclusivo


n  O processador com a única cópia é chamado de
proprietário
n  Se outro processador mais tarde exigir este bloco,
o estado retornará para compartilhado.
Engenharia de Computação 38
Implementação - Snooping
n  Incorporação de um controlador de
estados finitos em cada núcleo.
n  Responde a solicitações do processador e do
barramento
n  Estados: Modificado, Shared
(compartilhado) e Inválido (Protocolo MSI).
n  Compartilhado: bloco é potencialmente
compartilhado
n  Modificado: bloco atualizado na cache, bloco

é exclusivo.
Engenharia de Computação 39
Exemplo

Engenharia de Computação 40
Protocolo de coerência por snooping

Engenharia de Computação 41
Protocolo de coerência por snooping

Engenharia de Computação 42
Extensões do protocolo básico
n  Protocolo básico MSI (Modificado,
Compartilhado, Inválido)
n  Protocolo MESI (Modificado, Exclusivo,
Compartilhado, Inválido)
n  Exclusivo: o bloco da cache é residente em
somente uma única cache e está limpo.
n  Protocolo MOESI
n  Owned (proprietário): bloco associado é de
propriedade daquela cache e está
desatualizado na memória.
Engenharia de Computação 43
Limitações do snooping
n  Sistemas com no
máximo 4 a 8 núcleos
de alto desempenho
simétricos.
n  Mesmo usando uma
conexão com alta largura
de banda e uma cache
L3 compartilhada.
n  Soluções:
n  Usar redes ponto a ponto
com memória
configurada em múltiplos
bancos
n  Usa diretório com
snooping

Engenharia de Computação 44

Você também pode gostar