SSC510 Arquitetura de Computadores. 8ª aula

Documentos relacionados
SSC0611 Arquitetura de Computadores

Protocolos de Coerência de Memória Cache

Sistemas de Memória Cache para Multiprocessadores

Sistemas MIMD. CES-25 Arquiteturas para Alto Desmpenho. Paulo André Castro

SSC0611 Arquitetura de Computadores

Processamento Paralelo & Multiprocessadores

SSC0112 Organização de Computadores Digitais I

Processamento Paralelo

Large-Scale MPs MRs para Protocolos Snoopy vs. Diretório. Hierarquias com Memória Global. Snoopy Hierárquico

Memória Cache. Walter Fetter Lages.

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

SSC0611 Arquitetura de Computadores

MEMÓRIA COMPARTILHADA DISTRIBUÍDA

Multiprocessadores com Memória Compartilhada

SSC0112 Organização de Computadores Digitais I

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

Universidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache

Memória Cache. Aula 24

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 04 Revisão de Arquiteturas Paralelas -Parte 2 Prof. Jó Ueyama e Julio Cezar Estrella

Linguagem de Programação II

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

MEMÓRIA CACHE FELIPE G. TORRES

SSC0611 Arquitetura de Computadores

Organização de Computadores

Memória Cache. Adriano J. Holanda. 12 e 16/5/2017

Memória Compartilhada e Distribuída. _ Notas de Aula _ Prof. Tiago Garcia de Senna Carneiro DECOM/UFOP

Memória cache (cont.) Sistemas de Computação

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

SSC0112 Organização de Computadores Digitais I

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Os textos nestas caixas foram adicionados pelo Prof. Joubert

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Visão do Usuário da DSM

Gerenciamento de memória

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

Sistemas Operacionais

Avaliação de protocolo de coêrencia de cache utilizando protótipos virtuais

ARQUITETURA DE COMPUTADORES

Níveis de memória. Diferentes velocidades de acesso. Memória Cache. Memórias Auxiliar e Auxiliar-Backup

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Organização de Computadores

SSC0112 Organização de Computadores Digitais I - Turma 2

William Stallings Arquitetura e Organização de Computadores 8 a Edição

SSC0640 Sistemas Operacionais I

Memória Cache em uma Plataforma Multiprocessada

Arquitetura de Computadores

Arquitetura e Organização de Processadores. Aula 4. Pipelines

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ARQUITECTURA DE COMPUTADORES Ano Lectivo 2017/2018

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ARQUITECTURA DE COMPUTADORES Ano Lectivo 2018/2019

Caracterização de Sistemas Distribuídos

Correção de Erros. Erros de memória de semicondutores podem ser:

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CAPÍTULO 5. Cristina Boeres

Aula 25: E/S: Controladoras, Mapeamentos e Técnicas

Arquitetura de Computadores

Memória virtual. Sistemas de Computação

BARRAMENTOS. Adão de Melo Neto

Arquiteturas de Sistemas de Processamento Paralelo. Arquiteturas MIMD

BANCO DE DADOS 2 TRANSAÇÃO

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular ARQUITECTURA DE COMPUTADORES Ano Lectivo 2014/2015

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Arquitetura e organização de computadores

Peripheral Component Interconnect PCI

Infraestrutura de Hardware. Explorando a Hierarquia de Memória

É um sinal elétrico periódico que é utilizado para cadenciar todas as operações realizadas pelo processador.

Organização de Computadores II. Arquiteturas MIMD

Fundamentos de Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Organização e Arquitetura de Computadores I

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Memórias cache: uma introdução

CEFET-RS Curso de Eletrônica

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO4: MEMÓRIAPRINCIPAL

Arquitetura e Organização de Computadores

Hierarquia de Memória

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Universidade Federal do Rio de Janeiro Informática DCC/IM. Arquitetura de Computadores II. Arquiteturas MIMD. Arquiteturas MIMD

Barramento. Prof. Leonardo Barreto Campos 1

SSC0112 Organização de Computadores Digitais I

Arquitectura de Computadores

Organização de Computadores I

SSC546 -Avaliação de Desempenho de Sistemas

Notas da Aula 14 - Fundamentos de Sistemas Operacionais


Arquiteturas Paralelas

Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores

Organização e Arquitetura de computadores. Memórias

SSC0611 Arquitetura de Computadores

Multiprocessadores: uma introdução

Aula 6: Comunicação entre processos. Instituto Federal da Bahia INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 13: Memória Cache

SSC0611 Arquitetura de Computadores

ü Capítulo 4 Livro do Mário Monteiro ü Introdução ü Hierarquia de memória ü Memória Principal ü Memória principal ü Memória cache

Infra-Estrutura de Software

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

SSC510 Arquitetura de Computadores. 6ª aula

Organização e Arquitetura de Computadores I

Transcrição:

SSC510 Arquitetura de Computadores 8ª aula ARQUITETURAS MIMD COM MEMÓRIA COMPARTILHADA COERÊNCIA DE CACHE PROFA. SARITA MAZZINI BRUSCHI

Memórias Cache Políticas de Atualização As memórias caches possuem dois modos básicos para trabalhar em relação à atualização dos dados na memória principal durante uma escrita: Write-through: Os dados são atualizados tanto na memória cache como na memória principal. Write-back: Os dados são atualizados apenas na memória cache, e copiados para a memória principal, apenas quando da substituição do bloco/linha modificado na cache. 2

Problema de Coerência de Cache Os sistemas multiprocessados com memória compartilhada apresentam os seguintes problemas: Conteção de memória: o módulo de memória pode manipular somente uma requisição de memória por vez Contenção de comunicação: contenção dos links de comunicação, mesmo que deseje-se acessar módulos diferentes da memória Tempo de latência: tempo de comunicação utilizando as redes de interconexão tende a aumentar quando o número de processadores aumenta e a interconexão se torna mais complexa 3

Tempo de acesso à memória Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003 4

Problema de Coerência de Cache Para solucionar os problemas citados, utiliza-se memórias cache, objetivando reduzir o número de acessos à memória principal Problema: várias cópias de um mesmo bloco compartilhado por diversos processos ao mesmo tempo As várias cópias devem estar consistentes Problema denominado Problema de coerência de cache ou Problema de consistência de cache 5

Exemplo de algoritmos com compartilhamento de variáveis Problema do Produtor/Consumidor Variáveis compartilhadas: buffer, in, out e count 6

Políticas de coerência de cache Write-invalidate: política que mantém a consistência da seguinte maneira: Requisições de leitura são tratadas localmente caso já exista uma cópia local do bloco Todas as outas cópias são invalidadas caso o bloco seja atualizado Uma próxima atualização pelo mesmo processador pode ser feita localmente, já que as outras cópias estão invalidadas Múltiplos leitores, um escritor 7

Políticas de coerência de cache Write-invalidate 8

Políticas de coerência de cache Write-update: política que mantém a consistência da seguinte maneira: Ao invés de invalidar as cópias, esta política atualiza todas as outras cópias Múltiplos leitores e escritores 9

Políticas de coerência de cache Write-update 10

Exemplo 1 Produtor/consumidor Considere um processo produtor P e um processo consumidor C Cada processo está executando em uma máquina diferente O processo P executa k entradas na região crítica (inserções) seguidas O processo C executa k entradas na região crítica (remoções) seguidas 11

Exemplo 1 Produtor/consumidor Comparação do custo de comunicação para acesso à variável count para k execuções consecutivas na região crítica 12

Exemplo 2 Considere a seguinte sequencia de instruções Etapa Processador Atividade da memória Endereço de memória 1 P1 Leitura 100 2 P2 Escrita 104 3 P1 Leitura 100 4 P2 Leitura 104 5 P1 Leitura 104 6 P2 Leitura 100 Conte o número de transações do barramento utilizando os protocolos write-update, write-back e que o tamanho do bloco é igual a uma palavra (4 bytes) 13

Mecanismos de coerência Independente da política utilizada (write-invalidate ou write-update), as mensagens para manter a consistência dos dados devem ser enviadas para pelo menos as que possuem uma cópia do dado Para redes onde o custo de se fazer um broadcast não é muito alto, utiliza-se um protocolo denominado Snoopy Cache Protocol Para redes de interconexão mais complexas utiliza-se um protocolo denominado Directory Protocol 14

Snoopy Cache Protocol ou snooping O snooping distribui a responsabilidade da coerência entre os controles de cache, os quais reconhecem que a linha é compartilhada Esse monitoramento pode invalidar (política write-invalidate) ou atualizar (política write-update) a cópia do bloco na memória cache local que esteja sendo alterado por uma operação de escrita no barramento 15

Snoopy Cache Protocol ou snooping Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003 16

Directory Protocol Utilizado quando os processadores não são conectados por barramento Existe um controlador central, o qual faz parte do controlador da memória principal, que coleta e mantém informações sobre as cópias dos dados nas caches Quando uma linha da cache é refenciada, a base de dados é verificada para saber onde é limpa (shared) ou suja (modified) 17

Directory Protocol Antes de um processador atualizar os dados compartilhados, este deve requisitar ao controlador acesso exclusivo à linha desejada Para obter o acesso exclusivo, o controlador envia uma mensagem a todos os processadores com uma cópia cacheada dessa linha, forçando cada processador a invalidar sua cópia 18

Directory Protocol O controlador tem que receber uma mensagem de cada processador antes de dar o acesso exclusivo Quando um processador tenta ler uma linha que está com acesso exclusivo a outro processador, é enviada uma notificação de falha de acesso para o controlador O controlador requisita que o processador que tem acesso exclusivo faça a atualização da linha na memória principal e passa o acesso exclusivo ao processador que requisitou a linha e compartilha a linha como leitura para o processador que detinha o acesso exclusivo 19

Directory Protocol Problema: é centralizado, criando um gargalo central e sobrecarregando a comunicação entre os vários controladores de cache e o controlador central São eficientes em sistemas de larga escala, os quais envolvem múltiplos barramentos ou interconexões mais complexas 20

Protocolo MSI Este protocolo é utilizado com as políticas writeinvalidate e write-back Os exemplos das transições a seguir consideram a utilização de snooping Baseia-se em uma máquina de estados finitos com 3 estados: Shared (Compartilhado - somente leitura): esse bloco na cache é limpo (não escrito) e pode ser compartilhado Modified (Modificado leitura/escrita): esse bloco na cache é sujo (escrito) e pode não ser compartilhado Invalid (Inválido): esse bloco de cache não possui dados válidos 21

Protocolo MSI Transições ocorrem em três situações: Falha de leitura (read miss) Se estiver nos estados M ou S, o dado local é utilizado Se estiver no estado I, deve-se verificar se o bloco não está em outras caches Se estiver em outras caches no estado M, esta deve escrever o bloco de volta na memória principal e mudar seu estado para I Falha de escrita Se houver outra cópia no estado S, adquire o barramento, envia sinal de invalidação, copia o bloco da MP, atualiza e modifica o estado para M Se estiver no estado M, idem para falha de leitura Acerto de escrita Se estiver no estado M, nada acontece Se estiver no estado S, adquire o barramento e envia uma mensagem de invalidação para bloquear outras cópias Acertos de leitura não alteram o estado da cache 22

Protocolo MSI Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003 23

Protocolo MSI Fonte: Organização e Projeto de Computadores (Patterson & Hennesy), 2003 24

Protocolo MESI Divide o estado Shared (compartilhado) em dois outros estados: Shared (compartilhado): existem múltiplas cópias do bloco Exclusive (exclusivo): existe apenas uma cópia Existe apenas uma cópia do bloco e um acerto de escrita não precisa invalidar 25

Protocolo MESI Resumo dos 4 estados M (Modified) E (Exclusive) S (Shared) I (Invalid) A linha é válida? Sim Sim Sim Não A cópia da MP é... Desatualizada Válida Válida - Existe cópia em outra cache? Uma escrita nessa linha... Não Não Talvez Talvez Não precisa do barramento Não precisa do barramento Precisa do barramento e atualiza a cache Acessa direto o barramento Fonte: Computer Organization and Architecture (William Stallings), 2003 26

Protocolo MESI Fonte: Computer Organization and Architecture (William Stallings), 2003 27

Exercício Conte o número de transações no barramento para a seqüência de instruções, explicitando as transições na máquina de estado finito de um protocolo MESI Considere que os processadores utilizam as políticas write-invalidate, write-back, tamanho de bloco de uma word e que os blocos não estão na memória cache (estado inicial Invalid) 28

Exercício Etapa Processador Atividade da memória Endereço de memória 1 P1 Leitura 100 2 P1 Escrita 100 3 P3 Leitura 104 4 P2 Escrita 100 5 P3 Escrita 104 6 P3 Escrita 100 7 P1 Leitura 100 29