Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.

Slides:



Advertisements
Apresentações semelhantes
Coerência de Cache em Multiprocessadores
Advertisements

Integridade de Dados em Memórias Cache
Exercícios de Dimensionamento de Memórias Cache
Prof.: Sergio Pacheco Linguagem PHP Prof.: Sergio Pacheco 1.
Gerência de Memórias Cache (Mapeamento de Endereços)
William Stallings Arquitetura e Organização de Computadores 8a Edição
Arquitetura e organização de computadores
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
Aula 16: Memória Principal e Memória Virtual
Arquitetura dos Microprocessadores 8086 e 8088 Sistemas Embarcados.
Arquitetura dos Microprocessadores 8086 e 8088
Arquitetura de Sistemas Operacionais
Processador Intel Itanium
1998 Morgan Kaufmann Publishers Paulo C. Centoducatte - IC/Unicamp- 2002s Prof. Paulo Cesar Centoducatte
Princípio da localidade
MEMORIAS RAUL DIAZ ROSAS.
SSC SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória 3
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
REPRESENTAÇÃO DE INSTRUÇÕES
Gerência de Memória Algoritmos de Substituição de Páginas
Organização da Memória Principal
Hierarquia de Memória Organização da cache
Revisão da Linguagem C.
Arquitectura de Computadores II
SISTEMAS OPERACIONAIS
SSC SISTEMAS OPERACIONAIS I Aula 11 – Gerenciamento de Memória 2
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Representação Digital da Informação
SISTEMAS OPERACIONAIS
Subsistemas de memória
Gerência de Memória Virtual
Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno
Funcionamento básico de um processador de 8 bits
Infra-estrutura Hardware
Entrada e Saída (E/S ou I/O)
Agenda Modos de Endereçamento.
PUCC 1 Agenda Memória CACHE. PUCC 2 Memória Cache Motivo –Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.
Agenda - Aula 03 Introdução (Computador Digital) Memória
Memória Principal.
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Introdução à Hierarquia de Memória
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Arquitetura de Computadores
INTRODUÇÃO À COMPUTAÇÃO
Mapeamento em Memória Cache
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Localidade Princípio da localidade è um programa acessa uma
DSC/CEEI/UFCG Introdução à Computação. DSC/CEEI/UFCG 2 Hardware – Memória  Componente de um sistema de computação cuja função é armazenar informações.
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
Memória 6 1.
Coerência de Cache Márcia A. Santos – RA Novembro/2005.
Parte 4 Memória.
Hierarquia de Memória Arquitetura de Computadores Aula 4 – Memória 23/08/2012 Bruno Iran Ferreira Maciel Mestrando em Ciências da Computação – Cin/UFPE.
Prof. André Luis M. Silva Hierarquia de Memória Prof. André Luis M. Silva
Memória.
MEMÓRIA CACHE E TÉCNICAS DE MAPEAMENTO Capítulo 5
Gerência de Memórias Cache (Mapeamento de Endereços)
William Stallings Arquitetura e Organização de Computadores 8a Edição
Memória Cache.
Memória Virtual.
Integridade de Dados em Memórias Cache ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
 Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer  Localidade Temporal  Um item referenciado.
Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento.
Arquitectura de Computadores
Transcrição da apresentação:

Memórias cache CPU procura por dados em L1, depois em L2 e finalmente na memória principal CPU registradores ALU L1 cache barramento de cache barramento de sistema barramento de memória memória principal L2 cache interface de barramento ponte E/S

Organização geral da memória cache 1bit válido por linha t bits para tag por linha B = 2b bytes por bloco de cache valid tag 1 • • • B–1 E linhas por conjunto conj. 0: • • • valid tag 1 • • • B–1 valid tag 1 • • • B–1 conj. 1: • • • S = 2s sets valid tag 1 • • • B–1 • • • valid tag 1 • • • B–1 conj. S-1: • • • valid tag 1 • • • B–1 Tamanho da cache: C = B x E x S bytes

Endereçamento de cache Endereço A: t bits s bits b bits m-1 v tag 1 • • • B–1 conj.0: • • • <tag> <índ. conj.> <offset> v tag 1 • • • B–1 v tag 1 • • • B–1 conj 1: • • • A palavra no endereço A está na cache se os bits de tag em uma das linhas válidas no conjunto <ind. conj.> são idênticos aos bits do campo <tag>. O conteúdo da palavra começa no deslocamento de <offset> bytes a partir do início do bloco v tag 1 • • • B–1 • • • v tag 1 • • • B–1 conj. S-1: • • • v tag 1 • • • B–1

Cache mapeada diretamente Forma mais simples Caracterizada por ter uma linha por conjunto E=1 linha por conjunto conj. 0: valid tag bloco da cache conj. 1: valid tag bloco da cache • • • conj. S-1: valid tag bloco da cache

Acesso a caches mapeadas diretamente Seleção do conjunto feita pelos bits de índice de conjunto conj. 0: valid tag • • • bloco da cache conj. selecionado conj. 1: t bits s bits b bits conj. S-1: 0 0 0 0 1 m-1 tag ind. conj offset

Acesso a caches mapeadas diretamente Encontre uma linha válida no conjunto selecionado com campo tag idêntico a bits de tag e extrai a palavra desejada =1? (1) O bit válido tem que ser 1 1 2 3 4 5 6 7 conj. (i) selecionado: 1 0110 w0 w1 w2 w3 = ? (2) Os bits de tags na linha da cache tem que casar com os bits de tag do endereço (3) Se (1) e (2), então acerto, e offset seleciona o byte inicial. t bits s bits b bits 0110 i 100 m-1 tag ind. conj. offset

Exemplo de cache mapeada diretamente M=endereço para 16 células, B=2 bytes/bloco, S=4 conj., E=1 linha/conj. Acessos a endereços (leituras): 0 [00002], 1 [00012], 13 [11012], 8 [10002], 0 [00002] x t=1 s=2 b=1 xx 1 m[1] m[0] v tag data 0 [00002] (miss) (1) 1 m[1] m[0] v tag data m[13] m[12] 13 [11012] (miss) (3) M[0-1] 1 1 M[12-13] M[0-1] 0 [00002] (miss) 8 [10002] (miss) v tag data v tag data 1 M[12-13] M[8-9] 1 1 M[12-13] M[0-1] m[1] m[0] 1 1 m[9] m[8] (5) (4) 1 1 m[13] m[12]

Caches associativas por conjunto Caracterizadas por mais de uma linha no conjunto valid tag bloco de cache E=2 linhas por conj. conj. 0: valid tag bloco de cache valid tag bloco de cache conj. 1: valid tag bloco de cache • • • valid tag bloco de cache conj. S-1: valid tag bloco de cache

Acesso a caches associativas por conjuntos Seleção do conjunto é igual à memória mapeada diretamente valid tag • • • bloco de cache conj. 0: Conj. selecionado conj. 1: t bits s bits conj. S-1: b bits 0 0 0 0 1 m-1 tag ìnd. conj. offset

Acesso a caches associativas por conjunto Compara o tag de cada linha válida do conjunto selecionado =1? (1) Bit válido deve ser 1. 1 2 3 4 5 6 7 1 1001 conj.(i) selecionado): = ? (2) Os bits de tag em uma das linhas de cache tem que casar com bits de tag do endereço 1 0110 w0 w1 w2 w3 (3) Se (1) e (2), então acerto, e offset seleciona byte inicial. t bits s bits b bits 0110 i 100 m-1 tag ind. conj. offset

Caches totalmente associativas Caracterizadas por um único conjunto conter todas as linhas valid tag bloco de cache valid tag bloco de cache valid tag bloco de cache conj. 0: E=C/B linhas em um único conjunto valid tag bloco de cache • • • valid tag bloco de cache valid tag bloco de cache

Acesso a caches totalmente associativas Conjunto 0 é sempre selecionado valid tag bloco de cache valid tag bloco de cache valid tag bloco de cache conj. 0: valid tag bloco de cache • • • t bits b bits valid tag bloco de cache m-1 tag offset valid tag bloco de cache

Acesso a caches totalmente associativas Compara tag do endereço com campo tag da cache =1? (1) Bit válido deve ser 1. 1 2 3 4 5 6 7 1 1001 cache inteira: 0110 1 1001 w0 w1 w2 w3 = ? 0110 (2) Os bits de tag em uma das linhas de cache tem que casar com bits de tag do endereço =? (3) Se (1) e (2), então acerto, e offset seleciona byte inicial. t bits b bits 1001 100 m-1 tag offset

Algoritmo de substituição de dados Consiste em determinar qual o bloco da memória cache deve ser retirado para ceder lugar a outro por ocasião de uma falta No mapeamento direto não há opção! Nos demais mapeamentos … LRU - Least Recently Used FIFO - First In First Out LFU - Least Frequently Used Escolha aleatória (*)

Política de escrita I A escrita é sempre realizada na cache pela CPU. Quando deve ser realizada na memória principal? Problema: vários processos em várias CPU ou dispositivos de E/S podem acessar um mesmo bloco na MP valores diferentes para um mesmo dado! Políticas de escrita... write through write back write once

Política de escrita II Escrita em ambas (write through) Sempre que se escreve na cache, escreve-se na memória principal Pode haver queda no desempenho Escrita somente no retorno (write back) Escreve apenas quando o bloco é substituído: há bit de alteração A memória principal pode ficar desatualizada (ex: E/S via DMA)