Você está na página 1de 20

Arquitetura de Computadores II

Aula 15
Paralelismo em Nível de
Thread

Prof. Jeferson F. Chaves


(jeferson@decom.cefetmg.br)

Engenharia de Computação 1
Agenda
n  Desempenho
n  Memória distribuída compartilhada
n  MSF – visão da cache
n  MSF – visão do Diretório

Engenharia de Computação 2
Desempenho
n  Coerência influencia o desempenho da
cache
n  Tráfego de falhas da cache do uniprocessador
n  Tráfego causado pela comunicação, que resulta em
invalidações e subsequentes falhas de caches.
n  Falhas de compartilhamento verdadeiras
n  Comunicação de dados pelos mecanismos de
coerência de cache.
n  Escrita em um bloco compartilhado (transmissão da
invalidação)
n  Leitura de uma palavra modificada no bloco invalidado
n  Ocorre uma falha e o bloco modificado é transmitido

Engenharia de Computação 3
Desempenho
n  Falhas de compartilhamento falso
n  Ocorre quando um bloco é invalidado seguido
por uma referência que causa uma falha
n  Uma palavra foi escrita no bloco, mas não é aquela
que foi lida.
n  A invalidação não causa um novo valor a ser
comunicado, mas somente uma falha extra.
n  O bloco é compartilhado, mas não a palavra no bloco é
compartilhada.
n  Não ocorreria se o tamanho do bloco fosse uma palavra.

Engenharia de Computação 4
Desempenho
Time P1 P2
1 Write x1
2 Read x2
3 Write x1
4 Write x2
5 Read x2

n  2: Falha de compartilhamento falso. O bloco foi


invalidado pela escrita de X1, mas o valor de X1 não é
usado em P2.
n  4: Falha de compartilhamento falso
n  5: Falha de compartilhamento verdadeiro

Engenharia de Computação 5
Memória distribuída compartilhada

n  Snooping: não possui estrutura centralizada para


o estado das caches
n  Vantagem: pouco dispendioso
n  Desvantagem: escalabilidade
n  Diretório: Mantém o estado de cada bloco que
pode ser mantido na cache. Por exemplo:
n  Quais caches que possuem cópias do bloco
n  Se esses blocos estão modificados
n  As invalidações são enviadas para caches
específicas
n  Multicore: vetor de bits = # de cores para cada
bloco L3.
Engenharia de Computação 6
Memória distribuída compartilhada

n  Único diretório não é escalável.


n  Diretório deve ser distribuído
n  Mas, a distribuição deve ser feita de forma
que o protocolo saiba onde encontrar a
informação de diretório para qualquer bloco.
n  O status de compartilhamento do bloco está

sempre em uma única localização conhecida

Engenharia de Computação 7
Diretório
n  Cada diretório é responsável por rastrear as caches que
compartilham os endereços de memória da porção de
memória no nó.
n  Uma entrada para cada bloco de memória
n  Diretório = # blocos na memória x # processadores

Engenharia de Computação 8
Diretório
n  Para cada bloco, mantém o estado:
n  Compartilhado
n  Um ou mais nós tem o bloco em sua cache, valor da
memória está atualizado
n  Conjunto de IDs dos nós
n  Uncached
n  Nenhum processador tem a cópia do bloco na cache
n  Modificado
n  Exatamente um nó tem uma cópia do bloco da cache, e
o valor da memória está desatualizado
n  ID do nó proprietário
n  Diretório mantém os estados dos blocos e
envia as mensagens de invalidação.
Engenharia de Computação 9
Diretório
n  Vetor de bits (até 64 nós)
n  Bloco compartilhado: cada bit indica se o
processador correspondente possui uma cópia desse
bloco
n  Indica quem é o proprietário do bloco no estado
modificado (exclusivo).
n  O processo de invalidar ou localizar uma cópia
exclusiva, consiste da:
n  Comunicação entre o nó solicitante (nó local) e o
diretório, e
n  Entre o diretório e um ou mais nós remotos.

Engenharia de Computação 10
Diretório
n  Nó raiz (home node): nó onde residem o local da
memória e a entrada do diretório para um
determinado endereço.
n  Nó local: nó onde uma solicitação origina.
n  Nó remoto: nó que possui uma cópia do bloco da
cache (exclusivo ou compartilhado).
n  Suposições:
n  As mensagens serão recebidas e trabalhadas na
mesma ordem em que são enviadas.
n  Não vamos apresentar mensagens de comunicação
explicita para invalidação e falha de escrita: acks.

Engenharia de Computação 11
Diretório – tipos de mensagens

n  P : # processador solicitante, A: endereço solicitado, D: conteúdo de dados

Engenharia de Computação 12
MSF para o bloco da cache

Engenharia de Computação 13
MSF para o diretório
n  Diretório: implementa a outra metade do
protocolo
n  Msg enviada para o diretório pode:
n  Atualizar o estado do diretório
n  Enviar mensagens adicionais para atender a
solicitação
n  O estado no diretório indica o estado de TODAS
as cópias de um bloco de memória.
n  Bloco pode não estar em nenhuma cache
(uncached), ser compartilhado ou exclusivo
n  Sharers: rastreiam os nós que possuem um cópia do
bloco
Engenharia de Computação 14
MSF para o diretório
n  Para blocos “uncached”(a cópia na
memória é o valor atual) :
n  Falha de leitura
n  O nó solicitante recebe os dados solicitados e é
feito como o único nó que compartilha esses
dados. O bloco vai para o estado Shared
(Compartilhado).
n  Falha de escrita
n  O nó solicitante recebe os dados solicitados. O
bloco vai para o estado Exclusivo. Sharers
indicam a identidade do proprietário do bloco.

Engenharia de Computação 15
MSF para o diretório
n  Para blocos no estado compartilhado, o valor
da memória está atualizado
n  Falha de leitura: O nó solicitante recebe os dados
solicitados da memória, o processador solicitante é
adicionado ao conjunto de Sharers.
n  Falha de escrita: O nó solicitante recebe os dados
solicitados da memória. Todos os processadores no
conjunto shared recebem uma mensagem de
invalidação. O conjunto Sharers é atribuído ID do
solicitante. O estado do bloco é feito exclusivo.

Engenharia de Computação 16
MSF para o diretório
n  Blocos no estado exclusivo (valor na
cache indicada pelo conjunto Sharers
como proprietário)
n  Falha de leitura:
n  O processador proprietário recebe uma mensagem
de busca, que faz com que o bloco passe para o
estado compartilhado
n  Ele envia os dados para o diretório, onde são
escritos na memória e enviados para o solicitante.
n  O processador solicitante é incluído nos conjunto
Sharers

Engenharia de Computação 17
MSF para o diretório
n  Falha de escrita: O bloco tem um novo
proprietário.
n  Uma mensagem é enviada ao proprietário antigo,
fazendo a invalidação do bloco
n  Esse proprietário antigo envia o valor ao diretório,
que envia ao processador solicitante (novo
proprietário).
n  Sharers é definido com a identidade do novo
proprietário.

Engenharia de Computação 18
MSF para o diretório
n  Write-back dos dados: O processador
proprietário está substituíndo o bloco
n  Esta escrita torna a cópia da memória atualizada.
n  O bloco agora não está mais na cache e o conjunto
de Sharers está vazio.

Engenharia de Computação 19
MSF para o diretório

Engenharia de Computação 20

Você também pode gostar