Mem - PowerPoint PPT Presentation

About This Presentation
Title:

Mem

Description:

... sequ ncia inv lida (a) e sequ ncia v lida Consist ncia PRAM Escritas feitas ... escutam barramento e sabem quando algum conte do de sua cache ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 27
Provided by: ufr128
Category:
Tags: cache | mem | pram

less

Transcript and Presenter's Notes

Title: Mem


1
Memória Compatilhada Distribuída
  • Bruno M. Carvalho
  • Sala 3F2
  • Horário 35M34

2
Introdução
  • Como compartilhar informações entre
    processadores?
  • Mensagens em multicomputadores
  • Memória compartilhada em multiprocessadores
  • Comunicação através de mensagens cria novas
    preocupações, como mensagens perdidas,
    bufferização, bloqueios, etc.
  • Multicomputadores são fáceis de contruir mas
    difíceis de programar
  • Multiprocessadores são difíceis de construir mas
    fáceis de programar

3
Memória Compartilhada
  • O uso de memória compartilhada distribuída (DSM)
    simula um espaço de endereçamento compartilhado
    por multicomputadores
  • Referências a páginas locais são feitas pelo
    hardware. Page faults de páginas remotas são
    atendidos pelo SO como se fossem um acesso ao
    disco local
  • Sistema fácil de contruir e programar, mas sua
    performance não é adequada em aplicações onde se
    tenha muitas page faults

4
Memória Compartilhada
  • Pode-se compartilhar somente uma parte do espaço
    de endereçamento
  • Replicação de variáveis compartilhadas em várias
    máquinas. Leituras locais e escritas através de
    atualização de multicópias
  • Compartilhamento de objetos (dados mais métodos)

5
Memória no Chip
  • Memória pode estar contida no chip com barramento
    conectando processadores a memória
  • Escalabilidade muito baixa
  • Complicado e caro

6
Multiprocessadores de Barramento
  • Barramentos ligam CPUs a memória e outros
    dispositivos como E/S
  • Pode-se ligar várias CPUs ao mesmo bus
  • Para melhorar performance, usa-se caches nas CPUs
  • Caches write-trough snoopy (bisbilhoteiras)
    escutam barramento e sabem quando algum
    conteúdo de sua cache fica inválido (escrita por
    outra CPU)

7
Multiprocessadores de Barramento
  • Conteúdo de uma posição de uma cache que foi
    escrita por outra CPU pode ser atualizada ou
    marcada como inválida
  • Protocolo write-once dá possessão temporária de
    posições da memória
  • Entradas podem ser inválidas, limpas ou sujas
  • Posições acessadas para leitura podem ser
    armazenadas em várias caches ao mesmo tempo
  • Em escritas, uma cache que quer escrever uma
    posição que outra está escrevento toma controle

8
Multiprocessadores de Barramento
  • Entrada na nova cache é marcada como suja (dirty)
    e na antiga como inválida
  • Atualização na memória é feita quando posição da
    cache é retirada da mesma
  • Este protocolo tem três carcterísticas
    importantes
  • A consistência é atingida usando-se caches snoopy
  • O protocolo pode ser construído na unidade de
    gerenciamento de memória
  • O algortimo inteiro é executado em menos que um
    ciclo de memória

9
Multiprocessadores em Anel
  • Espaço de endereçamento único é dividido em
    partes privada e compartilhada, que é comum a
    todas máquinas (Memnet)
  • A interface do anel, a MMU (unidade de
    gerenciamento de memória), a cache e parte da
    memória são integradas no dispositivo Memnet
  • Não possui memória global centralizada, e cada
    bloco de 32 bytes no espaço compartilhado tem uma
    máquina home na qual memória está sempre
    reservada no campo memória home
  • Um bloco pode ser cached em outra máquina que não
    a home
  • Cada entrada na tabela do Memnet tem bits que
    indicando o estado do bloco da cache

10
Multiprocessadores de Anel
  • Um bloco read-only pode estar presente em várias
    máquinas read-write só pode estar presente em uma
    máquina
  • Um bloco não precisa estar na sua máquina home
  • O dispositivo Memnet em cada máquina tem uma
    tabela que contém uma entrada para cada bloco,
    indexada pelo número dos blocos
  • Quando uma máquina precisa ler um bloco que não
    está presente localmente, uma mensagem é enviada
    ao anel (aapós adquirir o token) solicitando-o, e
    quando a mensagem retorna, o bloco está nela
  • No caso de escrita, blocos em outrs máquinas
    precisam ser invalidados primeiro

11
Multiprocessadores Switched
  • Sistemas com barramento ou anel não tem boa
    escalabilidade
  • Pode-se melhorar escalabilidade diminuindo a
    comunicação necessária (cache) ou aumentando a
    capacidade de comunicação
  • Uma alternativa e se contruir um sistema
    hierárquico, com algumas CPUs em um barramento
    (cluster), conectá-los com barramentos
    intercluster, e criar outros níveis de hierarquia
    se necessário
  • Um exemplo é a máquina Dash (Stanford), onde cada
    cluster tem um diretório que controla quais
    clusters tem cópias dos seus blocos

12
Multiprocessadores Switched
  • Dash tinha 16 clusters com 4 CPUs cada com 256MB
    de memória global (16 x 16)
  • Caching é feita em dois níveis, e cada cache de
    segundo nível monitora o barramento, e cada
    entrada da cache pode ser uncached, clean ou
    dirty
  • Protocolos são baseados em possessão e
    invalidação, pois em cada instante cada bloco de
    cache tem um único dono
  • Acessos a blocos são feitos de acordo com a
    hierarquia
  • Um simples acesso a memória pode requerer que
    várias mensagens sejam enviadas

13
Multiprocessadores NUMA
  • Significa Acesso de Memória Não-Uniforme e não
    tenta esconder o fato de que acesso a memórias
    remotas são mais lentos do que a memória local,
    isto é caching não é usado
  • Código e dados são automaticamente movidos para
    onde são necessários. Performance depende de onde
    a página está localizada na memória
  • Page faults geram uma decisão pelo SO, se deve
    replicar a página sem mudar a página original
    (leitura), ou se devem mapeá-las como de acesso
    remoto ou transferi-las (escrita)
  • Decisão vai afetar performance enormemente

14
Multiprocessadores NUMA
  • Caso decisão não tenha sido a melhor, SO pode
    corrigi-la usando scanners de páginas, que coleta
    estatísticas sobre uso das páginas e número de
    page-faults
  • Scanner pode desmapear páginas, gerando uma nova
    decisão quando for acessada novamente, ou
    congelá-las, bloquenado sua mudança
  • Scanners podem usar diferentes estratégias para
    relocação de páginas, como invalidar páginas que
    tiveram mais acessos remotos que locais

15
Comparação de Sistemas de Memória Compartilhada
  • Sistemas de memória compartilhada vão de sistemas
    que mantém consistência
  • inteiramente em hardware multiprocessador com
    barramento único(sequent, firefly) ou comutados
    (dash, alewife)
  • gerenciada pelo SO máquina NUMA (cm, butterfly)
    ou DSM baseada em páginas (ivy, mirage)
  • gerenciada pelo sistema de execução da linguagem
    DSM de variáveis compartilhadas (munin, midway)
    ou DSM baseada em objetos (linda, orca)

16
Modelos de Consistência
  • Manter consistência perfeita é muito difícil,
    logo alguns DSMs aceitam consistências mais
    relaxadas dos dados na memória
  • Um modelo de consistência é um contrato entre o
    software e a memória, que diz que se o software
    obedecer certas regras a memória funcionará de
    acordo com o prometido
  • Modelos de consistência com maiores restrições
    são mais fáceis de programar mas são menos
    eficientes do que os modelos de consistência com
    menores restrições

17
Consistência Estrita
  • Define que qualquer leitura de uma posição da
    memória x retorna o valor gravado pela mais
    recente escrita
  • Comum em sistemas uniprocessados
  • Quase impossível de se obter em um DSM, já que
    enquanto atualização de uma variável esteja sendo
    enviada pelo barramento ou rede, outro
    processador pode efetuar uma leitura
  • Exemplos correto (esquerda) incorreto (direita)
  • W(x)1
    W(x)1
  • R(x)1
    R(x)0 R(x)1

18
Consistência Sequencial
  • O resultado da execução é o mesmo como se as
    operações de todos os processadores foram
    executadas em alguma ordem sequencial e é igual
    em todos os processadores
  • Um método para expressar consistência sequencial
    é o seguinte sequências de leituras e escritas
    do processo i são designadas Hi e o conjunto de
    todas elas é H
  • Strings de H são misturados em S onde cada
    operação aperece somente uma vez em S (ordem das
    operações caso memória fosse centralizada)

19
Consistência Sequencial
  • Todos as sequências legais de S devem seguir as
    regras
  • Ordem dos programas deve ser mantida (se A
    aparece antes de B em algum Hi, então A aparece
    antes de B em S)
  • Coerência da memória deve ser respeitada (leitura
    de x deve retornar valor mais recentemente
    escrito em x)

20
Consistência Causal
  • Faz distinção entre eventos que são causamente
    relacionados e os que não são
  • Escritas que são causamente relaciondas devem ser
    vistas por todos os processos na mesma ordem.
    Escritas concorrentes podem ser vistas em ordens
    diferentes em máquinas diferentes
  • Implementação de consistência causal requer
    informação sobre quais processos viram quais
    escritas

21
Consistência Causal
  • Exemplo 1- W(x)b e W(x)c são concorrentes
  • Exemplo 2 sequência inválida (a) e sequência
    válida

22
Consistência PRAM
  • Escritas feitas por um so processo são recebidas
    pelos outros processos na ordem em que ocorreram,
    mas escritas de processos diferentes podem ser
    vistas em ordens diferentes por processos
    diferentes
  • Nome significa Pipelined RAM, porque escritas por
    um processo podem ser pipelined
  • Fácil de se implementar, já que a única garantia
    de ordenação é em relação a escritas de um mesmo
    processo

23
Consistência Fraca
  • Nem todas aplicações precisam ver todas as
    escritas, mesmo que desordenadas. Ex em um
    processo em um loop dentro de uma região crítica,
    escritas são propagadas e nunca são usadas
  • Utiliza uma operação para a sincronização da
    memória
  • A consistência fraca tem as seguintes
    características
  • Acessos a variáveis de sincronização são
    sequencialmente consistentes
  • Nenhum acesso a uma variável de sincronização
    pode ser feito até que todas as escritas
    anteriores sejam completadas em todos os locais
  • Nenhum acesso a dados (escrita ou leitura) pode
    ser feito até que acessos prévios a variáveis de
    sincronização sejam finalizados

24
Consistência Fraca
  • Estas características significam que
  • Todos os processos veêm as variáveis de
    sincronização na mesma ordem
  • O acesso a uma variável de sincronização força a
    finalização de todas as escritas para todas as
    memórias
  • Quando uma variável é acessada para leitura ou
    escrita, todas as sincronizações prévias foram
    finalizadas
  • Programador ou SO precisa bloquear e liberar dados

25
Consistência de Liberação
  • Na consistência fraca, quando uma variável de
    sincronização é acessada, a memória não sabe se
    um processo está para acessar a variável ou se
    acabou de escrevê-la
  • A consistência de liberação divide sincronização
    nas fases de aquisição e liberação
  • Aquisição informa ao sistema de memória que uma
    região crítica está para ser iniciada
  • Liberação informa que uma região crítica foi
    finalizada
  • Podem ser usadas com barreiras (barriers)

26
Consistência de Liberação
  • Variáveis compartilhadas que são mantidas
    consistentes com as variáveis de sincronização
    são chamadas de protegidas
  • Uma memória compartilhada distribuída tem
    consistência de liberação se
  • Antes de um acesso comum a uma variável
    compartilhada é realizado, todos as aquisições
    prévias feitas pelo processo devem ter sido
    completadas com sucesso
  • Antes de uma liberação ser permitida, todas as
    leituras e escritas prévias feitas pelo processo
    devem ter sido completadas
  • Os acessos a aquisições e liberações devem ter
    consistência PRAM
Write a Comment
User Comments (0)
About PowerShow.com