Localidade Princípio da localidade è um programa acessa uma

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
Modos de Transferência Acesso Direto à Memória (DMA)
CPU: Controle e processamento
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.
Técnicas para operações E/S
Aula 16: Memória Principal e Memória Virtual
ARQUITETURAS DE COMPUTADORES II
Arquitetura dos Microprocessadores 8086 e 8088
Capítulo 7.
Capítulo Sete Sistemas de Memória
MC542 Organização de Computadores Teoria e Prática
Processador Intel Itanium
MC Prof. Paulo Cesar Centoducatte MC542 Organização de Computadores Teoria e Prática.
1998 Morgan Kaufmann Publishers Paulo C. Centoducatte - IC/Unicamp- 2002s Prof. Paulo Cesar Centoducatte
1998 Morgan Kaufmann Publishers Paulo C. Centoducatte - IC/Unicamp- 2006s Prof. Paulo Cesar Centoducatte
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.
Mais sobre potência: As novas idéias CMP502 Profs. Luigi e Flávio.
Arquitetura de Computadores
Hierarquia de Memória Organização da cache
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Catholic University PUCRS C ACHE M EMORY. Introduction.
Arquitectura de Computadores II
Escola Secundária de Caldas das Taipas Técnico de Gestão de Equipamentos Informáticos Sistemas Digitais e Arquitetura de Computadores Memórias Ram e.
Prof. Felipe Ferreira de Oliveira
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Subsistemas de memória
Aveiro, 28 de Abril de Arquitectura de Computadores II Ano lectivo 2003/2004 Nuno
Organização e Arquitetura de Computadores
Infra-estrutura Hardware
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.
Processamento de dados na UCP e memória UCP
Memória Principal.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
ARQUITETURAS DE COMPUTADORES II
8088 Assembly Software Básico Mitsuo Takaki.
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.
Infra-Estrutura de Software
Arquitetura básica de um Computador
Memória 6 1.
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.
Sistemas de Memória Cache em Multiprocessadores
Bruno Iran Ferreira Maciel
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Infra-estrutura Hardware
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
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Memória Cache.
Arquitetura do ARM RISC (Reduced Instruction Set Computer) – Conjunto relativamente grande de registradores – Modelo “load/store “de processamento Operações.
Modos de Transferência Acesso Direto à Memória (DMA) ARQUITETURA DE COMPUTADORES II Prof. César Augusto M. Marcon.
Memória Virtual ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Integridade de Dados em Memórias Cache ARQUITETURAS DE COMPUTADORES II Prof. César Augusto M. Marcon.
Hierarquia de Memória – Parte 2 Prof. André Luis M. Silva
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
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:

Localidade Princípio da localidade è um programa acessa uma porção relativamente pequena do espaço endereçável em um instante qualquer. · Localidade temporal è Se um item é referenciado, ele tenderá a ser referenciado novamente. Exemplo è loops ( instruções e dados). · Localidade Espacial è Se um item é referenciado, itens cujos endereços são próximos a este, tenderão a ser referenciados também. Exemplo è acesso a dados de um array.

Memoria Cache – M.D. Como saber se o dado está na cache ? Se estiver, como encontrá-lo ? Tags - contém a informação do endereço necessária a identificar se a palavra na cache corresponde à palavra requerida -> necessita apenas da parte superior do endereço da palavra. No MIPS os dois últimos bits referem-se ao byte dentro da palavra (4 bytes -> 4x8 bits -> 2 bits para endereçar).

Acesso a Cache

Num de Bits Número de bits necessários para uma cache é função do tamanho da cache e do tamanho do endereço ( dados + tags) Procedimento Simples: 1) Endereço de 32 bits, cache com mapeamento direto de 2^n words com blocos de uma palavra (4 bytes) -> tag de 32 – (n + 2) 2) 2 bits usados para offset do byte e n para o índice. O número total de bits da cache -> 2^n X (32 + (32 – n –2) + 1) = 2^n X (63 – n).

Num de Bits Exemplo Quantos bits são necessários para uma cache com mapeamento direto com 64KB de dados e bloco de uma palavra, assumindo 32-bit de endereço? Solução: 64KB -> 16K palavras -> 2^14 palavras -> 2^14 blocos Cada bloco tem 32 bits de dados mais o tag (32 – 14 – 2 =16) mais o bit de validade Total de bits da cache 2^14 X ( 32 + 16+ 1) = 784 Kbits = 98 KB

Num de Bits Exemplo Quantos bits são necessários para uma cache com mapeamento direto com 64KB de dados e bloco de uma palavra, assumindo 32-bit de endereço? Solução: 64KB -> 16K palavras -> 2^14 palavras -> 2^14 blocos Cada bloco tem 32 bits de dados mais o tag (32 – 14 – 2 =16) mais o bit de validade Total de bits da cache 2^14 X ( 32 + 16+ 1) = 784 Kbits = 98 KB

Tratamento de Miss Etapas para uma leitura na cache (de dados ou de instruções) 1. Enviar o endereço para a cache ( vem do PC para leitura de instruções ou da ULA para leitura de dados) 2. Se existir o sinal hit, significa que a palavra desejada está disponível na linha de dados. Se existir o sinal de miss o endereço é enviado à memória principal, e quando o dado chega, é escrito na cache. Escrita -> na escrita de uma instrução de store -> o dado tem que ser escrito na cache -> valores diferentes entre cache e memória principal è inconsistência -> escrever também na memória principal -> writethrough. · Performance com write-through -> o desempenho diminui um fator maior que 2 -> solução possível -> write buffer. Outro esquema de atualização da memória è write back -> a memória só é atualizada quando o bloco da cache que sofreu modificação for substituído por outro.

Miss/Tamanho do bloco Outro esquema de atualização da memória -> write back -> a memória só é atualizada quando o bloco da cache que sofreu modificação for substituído por outro.

Associatividade

Associatividade

Achando Endereço e bloco Exemplo de mapeamento de um endereço em uma cache de multiword block è Cache com 64 blocos de tamanho de 16 bytes. Que bloco tem o endereço 1200 ? Solução: endereço do bloco = endereço do byte / bytes por bloco = 1200/16 = 75 bloco = (endereço do bloco) mod (número de blocos da cache) = 75 mod 64 = 11

Achando Endereço e bloco Exemplo de mapeamento de um endereço em uma cache de multiword block è Cache com 64 blocos de tamanho de 16 bytes. Que bloco tem o endereço 1200 ? Solução: endereço do bloco = endereço do byte / bytes por bloco = 1200/16 = 75 bloco = (endereço do bloco) mod (número de blocos da cache) = 75 mod 64 = 11

Cálculo de sets/tags Assumindo cache de 4K blocos (de uma palavra) e 32-bit de endereço, encontre o número total de sets e o número total de tag bits para caches direct mapped, 2-way set associative, 4- way set associative e fully associative. Solução: Direct Mapped -> 4K blocos -> 4K sets -> 12 bits de index -> 32-12=20 bits de tag -> total de bits de tag = 20 X 4K = 80K bits. 2-way set associative -> 4K/2 = 2K sets -> 11 bits de index -> 32 –11 = 21 bits de tag -> total de bits de tag = 21 X 2 X 2K = 84K bits. 4-way set associative -> 4K/4 = 1K sets -> 10 bits de index -> 32 –10 = 22 bits de tag -> total de bits de tag = 22 X 4 X 1K = 88K bits. Fully associative -> 1 set de 4K blocos -> tag de 32 bits -> total de bits de tag = 32 X 4K X 1 = 128K bits.