Memória Cache.

Slides:



Advertisements
Apresentações semelhantes
Microcontroladores Uma visão geral.
Advertisements

Integridade de Dados em Memórias Cache
Sistemas Operacionais
Sistemas Operacionais
Capitulo 6: Entrada e Saída
Introdução à Hierarquia de Memória
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
Arquitetura de Sistemas Operacionais
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.
Problemas com Entrada e Saída
Princípio da localidade
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
REPRESENTAÇÃO DE INSTRUÇÕES
Organização da Memória Principal
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Hierarquia de Memória Organização da cache
Introdução e Análise do Desempenho
Sistemas Operacionais I
Processadores – Aula 3 Professor: André Luis Meneses Silva
Gerência de Memória.
Sistemas Operacionais I
Arquitectura de Computadores II
Prof. Felipe Ferreira de Oliveira
Fundamentos da Arquitetura de Computadores
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Subsistemas de memória
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.
Processamento de dados na UCP e memória UCP
Sistemas Operacionais
Unidade Central De Processamento: Processador
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
ARQUITETURA DE COMPUTADORES II
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Capítulo VIII Ambientes de Execução
Arquitetura de Computadores
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Localidade Princípio da localidade è um programa acessa uma
Ch7b-1 Capítulo Sistemas de Memória - Memória Virtual.
ARQUITETURAS E ORGANIZAÇÃO DE COMPUTADORES
Gerenciamento de 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.
Bruno Iran Ferreira Maciel
Funcionamento interno do computador
Sistemas Operacionais IV – Gerenciamento de E/S
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 Virtual.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
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.
Transcrição da apresentação:

Memória Cache

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade Temporal Um item referenciado tende a ser referenciado novamente dentro de um espaço de tempo curto Localidade Espacial Se um item é referenciado, itens cujos endereços sejam próximos ao dele tendem a ser logo referenciados

Localidade em Programas Localidade temporal: Em função de sua estrutura, as instruções e dados da maioria dos programas tendem a ser acessados de maneira repetitiva Localidade espacial: As instruções são acessadas quase sempre de maneira seqüencial Elementos de arrays ou registros

Níveis de Memória - 01 Dados sempre copiados entre níveis de memória adjacentes Análise focada apenas em dois níveis, um superior e um inferior Bloco: Unidade mínima de informação trocada entre níveis

Níveis de Memória - 02 Processador Dados transferidos

Taxa/Razão de Acertos Mede desempenho da Hierarquia Acerto: Falta: Informação solicitada pelo processador encontra-se no nível superior Taxa de acerto: fração de acessos com acerto Falta: Informação solicitada pelo processador não se encontrada no nível superior Nível inferior acessado em busca do bloco. Taxa de faltas = (1 – taxa de acerto)

Tempo de Acerto e Penalidade por Faltas Determinam a eficiência da implementação de uma hierarquia de memória Tempo de acerto – tempo para acesso ao nível superior, incluindo o tempo para determinar o acerto ou falta Penalidade por falta – tempo para a substituição dos blocos mais o tempo de envio da informação ao processador Tempo de acerto <<< penalidade por falta

Memória Cache Originalmente, nível da hierarquia de memória situado entre o processador e a memória principal Termo estendido para qualquer memória gerenciada de modo a tirar vantagem da localidade de acesso

Características - 01 Diminui o gargalo existente entre processador e memória principal Diferença de velocidade 5 a 10 vezes mais rápidas que a memória principal Ligada diretamente à MP

Características - 02 Tecnologia semelhante à da CPU e, em conseqüência, possui tempos de acesso compatíveis com a mesma, resultando numa considerável redução da espera da CPU para receber dados e instruções da cache

Níveis De Cache - 01 L1 – Level 1 (nível 1) Dentro do processador Mesma velocidade do processador L2 – Level 2 (nível 2) Dentro do invólucro, fora do chip Metade da velocidade do processador L3 – Level 3 (nível 3) Cache externa, situada na placa mãe

Níveis De Cache - 02 Invólucro do processador Processador Memória principal Processador Cache L2 Cache L1

Divisão da Cache L1 A cache L1 é geralmente dividida em cache de dados e cache de instruções: processamento mais rápido processador dados instruções Cache L1

Localidade Devido ao princípio da localidade, é interessante que a memória cache armazene o pedaço do programa que é executado repetidas vezes, deixando o restante do programa que não está sendo utilizado na memória principal

Utilização da Cache - 01 Sempre que o processador vai buscar uma nova instrução (ou dado), ele acessa a memória cache: Se a instrução estiver na cache (acerto ou hit), ela é transferida em alta velocidade para o processador Se a instrução não estiver na cache (falta ou miss), a execução do programa é interrompida e a instrução desejada é transferida da MP para a MC

Utilização da Cache - 02 Não é feita a transferência somente da instrução, mas sim de um bloco que, segundo o princípio da localidade, contém instruções que serão usadas em seguida

controlador de cache Memória principal Cache Processador Palavra (instrução ou dado) Bloco de palavras

Elementos de Projetos de uma Cache Função de mapeamento MP/MC Algoritmos de substituição de dados na cache Políticas de escrita

Função de Mapeamento A função de mapeamento indica quais blocos da MP estão presentes na cache e onde eles estão localizados na cache A MC e MP estão divididas em blocos de x palavras A MC pode conter m blocos (linhas) A MP pode conter b blocos

. Bloco 0 Byte 0 Byte 1 Byte 63 Bloco 1 Bloco 226 -1 MP Divisão da MP de 4G bytes em blocos de 64 bytes então tem-se 226 blocos de 64 bytes

MC ... Linha 0 ... Linha 1 ... Linha 2 . ... Linha 1023 Byte 63 Byte 1 Byte 0 ... Linha 1 Byte 63 Byte 1 Byte 0 ... Linha 2 Byte 63 Byte 1 Byte 0 . ... Linha 1023 Byte 63 Byte 1 Byte 0 Divisão da MC de 64K bytes em linhas de 64 bytes então tem-se 1024 linhas de 64 bytes Tag ou rótulo

Mapeamento Direto - 01 Cada bloco da MP tem uma linha de cache previamente definida para ser armazenado Muitos blocos irão ser destinados a uma mesma linha

Bloco 1023 ... Byte 0 Byte 1 tag B 0 Linha 0 Byte 63 Linha 1 Linha 2 226 -1 ... Linha 0 Linha 1 Linha 2 Linha 1023 tag Bloco 1023

Mapeamento Direto - 02 Cada linha da MC deverá acomodar 216 blocos ou 65536 blocos (um de cada vez) O campo tag serve para identificar qual bloco a linha está armazenando no momento

Mapeamento Direto - 03 Cada endereço de MP pode ser dividido nos seguintes elementos: Número do bloco na linha Número da linha Número do byte 16 bits 216= 64K blocos 10 bits 210= 1024 linhas 6 bits 26= 64 bytes 32 bits

Mapeamento Direto - 04 Exemplo: O processador manda para a MC o seguinte endereço: 00000000000001000000011001001000 4 25 8

Tag ou rótulo ... Linha 0 Linha 1 Linha 2 Linha 1023 Byte 0 Tag ou rótulo Byte 1 Byte 63 ... Linha 0 Linha 1 Linha 2 Linha 1023 00000000000001000000011001001000 4 25 8 Byte 8 Linha 25

Mapeamento Direto - 05 Se o campo tag do endereço for igual ao campo tag da linha da cache, o conteúdo do byte solicitado é enviado para o processador

Mapeamento Direto - 06 Se os campos tag forem diferentes, isso significa que o bloco desejado não se encontra na cache e, portanto, deve ser transferido da MP para a linha 25, substituindo o atual bloco para, em seguida, a palavra (o byte) requerida ser transferida para o processador pelo barramento de dados

Mapeamento Direto - 08 A técnica de mapeamento direto é simples e de baixo custo Desvantagem: fixação da localização para os blocos Imagine se durante a execução de um programa um dado código fizer referências repetidas a palavras situadas em blocos alocados na mesma linha, então haverá necessidade de sucessivas idas à MP para substituição de blocos (muitas faltas) e queda no desempenho do sistema

Mapeamento Associativo - 01 Os blocos não têm uma linha fixada previamente para seu armazenamento O bloco é armazenado em uma linha que é selecionada de acordo com o algoritmo de substituição de cache

... Byte 0 Byte 1 tag B 0 Linha 0 Byte 63 Linha 1 Linha 2 B 1 226 -1 ... Linha 0 Linha 1 Linha 2 Linha 1023 tag

Mapeamento Associativo - 02 Cada linha da MC pode acomodar um dos 226 blocos da memória principal O campo tag tem agora 26 bits de tamanho

Mapeamento Associativo - 03 Cada endereço de MP é dividido nos seguintes elementos: Número do bloco Número do byte 26 bits 226 blocos 6 bits 26 bytes 32 bits

Mapeamento Associativo - 04 Quando o processador realiza um acesso à memória, o campo bloco do endereço é comparado com todos os 1024 tags da cache para verificar se o bloco está ou não presente

Mapeamento Associativo - 05 Se o bloco estiver presente, o byte é transferido para a CPU senão o endereço do bloco é usado para buscar na memória principal o bloco ausente

Mapeamento Associativo - 06 Desvantagem: teste do campo bloco do endereço de memória com todos os tags da cache

Mapeamento Associativo por Conjunto de N Posições - 01 Esquema intermediário entre o direto e o totalmente associativo Número fixo de posições onde um bloco pode ser armazenado na cache Cache associativa de n posições: n posições possíveis para cada bloco Cache com conjuntos de n posições Blocos mapeados diretamente em um conjunto e colocado em qualquer elemento do conjunto

Bits de Validade Quando o processador é inicializado, a cache está vazia e os rótulos não têm significado Bits de validade são adicionados à cache para identificar se um bloco tem informações válidas Bit igual a zero -> Informação inválida

Tratamento de Faltas – 01 Atividades do controle principal: Parar o processador Congelar o conteúdo dos registradores Um controle separado trata as faltas: Busca a informação necessária na memória Atualiza a informação na cache Execução retomada no ciclo gerador da falta

Tratamento de Faltas – 02 Enviar à memória o valor original de PC Comandar uma leitura da unidade de memória e esperar o resultado Escrever o resultado da leitura na entrada da cache, seu rótulo e bit de validade Reiniciar a execução da instrução no passo 1

Parada em Uso Técnica para redução do número de ciclos parados pela falta no acesso à cache Baseia-se no processamento de outras instruções durante o tratamento de faltas Na falta produzidas pelo acesso a dados novas instruções que não dependem do dado podem ser executadas Não ajuda para faltas no acesso a instruções Geralmente, não mostra ganhos expressivos pela dependência do dado sendo acessado

Algoritmos De Substituição De Cache - 01 Qual bloco atualmente armazenado na cache deve ser retirado para dar lugar a um novo bloco que está sendo transferido? LRU (Least Recently Used): O controlador de cache escolhe o bloco que está há mais tempo sem ser utilizado pela CPU FIFO (First in first out): O controlador de cache escolhe o bloco que está armazenado há mais tempo na cache, independentemente de estar sendo usado ou não com freqüência pela CPU

Algoritmos De Substituição De Cache - 02 LFU (Least Frenquently Used): o controlador de cache escolhe o bloco que tem tido menos acessos (menos referências) por parte da CPU Escolha aleatória

Políticas de Escrita pela Memória Cache - 01 Quando o processador realiza uma operação de escrita, esta acorre imediatamente na cache A memória cache é uma memória intermediária logo é necessário que a MP seja atualizada para que o sistema mantenha sua correção e integridade

Antes da execução da instrução X = Y + Z Memória Principal Cache Processador X = 1 Y = 7 Z = 2 X = Y + Z X = 1 Y = 7 Z = 2 X = Y + Z X = Y + Z Bloco 4 Bloco 4

Depois da execução da instrução X = Y + Z Memória Principal Cache Processador X = 1 Y = 7 Z = 2 X = Y + Z X = 9 Y = 7 Z = 2 X = Y + Z X = Y + Z Bloco 4 Bloco 4

Processador Processador Processador X = Y + Z Cache X = 1 Cache X = 1 cache X = 9 X = 9 X = 9 X = 9 MP X = 1

Políticas de Escrita pela Memória Cache - 02 O bloco 4 (o valor de X) precisa ser atualizado na memória Quando? Depende da política de escrita

Write Through - 01 Cada escrita em uma palavra da cache acarreta em uma escrita na palavra correspondente na MP, assegurando validade permanente e igual ao conteúdo de ambas as memórias Caso haja outras CPUs, estas alterarão também suas caches

Write Through - 02 Simples, mas não favorece o desempenho Qualquer escrita faz com que a informação seja escrita também na memória principal Aumento do número de ciclos de clock Buffer de escrita: Armazena o dado enquanto este aguarda sua escrita na memória Reduz o problema das escritas na mem. principal Buffer cheio – Processador parado em escritas

Write Through - 03 Faltas de escrita: Processador simplesmente atualiza a memória principal, como antes Não ocorrem leituras da memória principal durante a escrita pelo processador

Write Back Quando ocorre uma escrita, o novo valor é escrito apenas no bloco da cache O bloco só será escrito na memória principal quando ele precisar ser substituído na cache Pode melhorar muito o desempenho, porém é mais complexo que o write- through

Tamanho do Bloco – 01 Relaciona-se com a exploração da localidade espacial e desempenho Em geral, a taxa de faltas cai com o aumento do tamanho do bloco

Tamanho do Bloco – 02 Taxa de faltas pode crescer se o bloco representar uma fração considerável do tamanho da cache Pequeno número de blocos -> Alta competição Blocos retirados da cache sem muita exploração