Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 15
Paralelismo em Nível de
Thread
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
Engenharia de Computação 5
Memória distribuída compartilhada
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
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