Prévia do material em texto
Universidade Federal de Pelotas Centro de Desenvolvimento Tecnológico Programa de Pós-Graduação em Computação Arquiteturas de Computadores Tema 3: Parte 2 Conceitos básicos de memórias cache Prof. Marcelo Schiavon porto porto@inf.ufpel.edu.br 2 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Cache, em inglês: lugar seguro para esconder ou guardar algo • Cacher, em francês: esconder, guardar • Nome usado para designar o nível de memória entre o processador e a memória principal • Este nome foi usado pela máquina que introduziu pioneiramente (no início dos anos 1960) este nível de memória (entre a memória principal e o processador) • Cache funciona pois explora o princípio da localidade • Hoje em dia, usa-se este nome para designar qualquer memória que explore o princípio da localidade Memória Cache 3 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • A princípio, uma hierarquia de memória pode ter qualquer número de níveis • Entretanto, os dados sempre serão copiados entre dois níveis adjacentes (i e i+1, onde i está mais próximo do processador) • Podemos concentrar nossa atenção em dois níveis quaisquer i e i+1: i, que chamaremos de superior (mais próximo do processador) e i+1, que chamaremos de inferior Definições 4 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Bloco: unidade mínima de informação, contendo um certo número de palavras de memória. • Exemplo, com 8 palavras (de memória) Definições Informação* XXXXX000 XXXXX001 XXXXX010 XXXXX011 XXXXX100 XXXXX101 XXXXX110 XXXXX111 * informação = instrução ou dado 5 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Se a informação solicitada pelo processador estiver presente no nível superior da hierarquia, ocorre um acerto (hit) • Se a informação solicitada pelo processador não puder ser encontrada no nível superior, a tentativa de encotrá-la gera uma falta (fault ou miss) • Quando ocorre uma falta, o nível imediatamente inferior é acessado, na tentativa de se recuperar o bloco com a informação solicitada pelo processador Definições 6 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Se um bloco está presente no nível i, então ele também está presente no nível i+1 Definições processador Cache L2 Memória principal Cache L1 Nível 1 Nível 2 Nível 3 7 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • A taxa de acertos ou razão de acertos (hit ratio) corresponde à fração dos acessos à memória encontrados no nível superior (com frequência, é usada como medida de desempenho do sistema de memória) • A taxa de faltas (= 1- taxa de acertos), ou miss ratio, é a fração de acessos à memória não encontrados no nível superior Definições 8 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Tempo de acerto (hit time) é o tempo necessário para acessar o nível superior da hierarquia, que inclui o tempo necessário para determinar se a tentativa de acesso à informação vai gerar um acerto ou uma falta • A penalidade por falta (fault penalty) é o tempo necessário para substituir um dos blocos do nível superior pelo bloco do nível inferior que contém a informação desejada, mais o tempo para enviar a informação ao processador Definições Tempo de acerto Tempo de acesso ao nível imediatamente inferior << 9 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Tc = tempo de acesso à cache Tm = tempo de acesso à memória principal Tce = tempo efetivo de acesso à cache, considerando o efeito dos misses Impacto no Desempenho 10 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Assumamos as seguintes características de um sistema de memória extremamente simples: • O processador sempre requisita uma única palavra • Existe apenas um nível de memória cache (L1) • Os blocos de L1 são constituídos por somente uma palavra Memória Cache 11 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores x4 x1 Xn-2 Xn-1 x2 x3 x4 x1 Xn-2 Xn-1 x2 xn x3 Fazendo referência ao dado xn antes depois • Como saber se uma informação está na cache? • Caso ela esteja, como encontrá-la? Memória Cache 12 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Um bloco só pode ser colocado em exatamente um lugar na cache • “Existe um caminho, mapeado previamente, de qualquer endereço de bloco da memória principal para uma única posição da cache” • A posição da cache é dada por: (Endereço do bloco) módulo (Número de blocos da cache) • O mapeamento direto é um dos extremos Mapeamento Direto 13 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • É o outro extremo, dos tipos de mapeamento • Um bloco da memória principal pode ser colocado em qualquer posição da cache • Um bloco de memória pode ser associado a qualquer “entrada” (conjunto) da cache • É preciso pesquisar todas as entradas da cache, a fim de localizar um determinado bloco (pois ele pode estar em qualquer uma das entradas) • Para reduzir o tempo da pesquisa, ela é feita em paralelo, usando um comparador para cada entrada da cache • O custo do hardware é alto: tal esquema somente é atrativo para caches pequenas Mapeamento Totalmente Associativo 14 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Fica entre os dois tipos de mapeamento anteriores • Existe um número fixo de posições na cache (no mínimo duas) nas quais cada bloco pode ser colocado • Cache associativa n: é uma cache associativa por conjunto com n posições possíveis para guardar um bloco em cada conjunto • É composta por um certo número de conjuntos, cada conjunto com n blocos • Cada bloco da memória principal é mapeado para um dos conjuntos da cache, determinado pelo campo de índice do endereço (sendo que o bloco pode ser colocado em qualquer dos elementos desse conjunto) • O conjunto que contém o bloco de memória é dado por (Número do bloco) módulo (Número de conjuntos da cache) Mapeamento Associativo por Conjunto (ou Bloco Associativo) 15 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Política de substituição em caches • Quando ocorre um perda de leitura (capacidade ou de conflito) a controladora da cache precisa escolher um bloco para ser substituído • Como esta substituição ocorre no mapeamento direto? • Não existe escolha, apenas uma posição da cache pode ser substituída • Como esta substituição ocorre no mapeamento associativo? • Aleatória • Uso menos recente (LRU) • Primeiro a entrar, primeiro a sair (FIFO) 16 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Política de substituição em caches • Aleatória • O bloco a ser substituído é simplesmente escolhido aleatoriamente • Estratégia simples para implementação em hardware • Circuitos LFSR (Linear Feedback Shifter Register) são usados para gerar números pseudo-aleatórios em hardware 17 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Política de substituição em caches • Uso menos recente (LRU) • Os acessos aos blocos devem ser registrados • O bloco a ser substituído é aquele que está a mais tempo sem ser solicitado • Explora o princípio da localidade temporal • Controle mais complexo • Complexidade aumenta com o aumento do tamanho dacache • Geralmente é apenas aproximado 18 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Política de substituição em caches • Primeiro a entrar, primeiro a sair (FIFO) • Uma forma simplificada de implementar o LRU • O bloco “mais antigo” é substituído e não o LRU • Controle menos complexo 19 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Fontes de Misses (3Cs) • Compulsórios (cold start ou chaveamento de processos, primeira referência): primeiro acesso a uma linha • De Conflito (ou Colisão) • De Capacidade • Invalidação: outro processo (p.ex. I/O) atualiza memória 20 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Fontes de Misses • Compulsórios • É um “fato da vida”: não se pode fazer muito a respeito • Se o programa vai executar “bilhões” de instruções, misses compulsórios são insignificantes • Uma solução para amenizar o problema é a pré-carga da cache 21 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Fontes de Misses • De conflito (ou colisão) • Múltiplas linhas de memória acessando o mesmo conjunto da cache conjunto-associativa ou mesma linha da cache com mapeamento direto • Solução 1: aumentar tamanho da cache • Solução 2: aumentar associatividade • De capacidade • Cache não pode conter todas as linhas accessadas pelo programa • Solução: aumentar tamanho da cache 22 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Fontes de Misses 23 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Quantidade de misses segundo a fonte 24 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • A maior parte dos acessos a memória por parte do processador são para leituras • Escritas representam 7% do tráfego geral da memória • Cerca de 28% se considerarmos apenas uma cache de dados • De modo geral, deve-se otimizar o tempo de leitura, para aumentar o desempenho médio do sistema • Processadores tradicionalmente esperam o fim das leituras, mas não das escritas Escritas na cache 25 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Suponha que na execução de uma instrução store o dado seja escrito somente na cache • Que tipo de problema esta operação irá causar? • Isto causará uma inconsistência: após, a escrita na cache, a memória principal terá um valor diferente daquele que foi escrito na cache Escritas na cache 26 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Duas soluções básicas: • Esquema Write through • A informação é escrita no bloco da cache e também na memória principal (ou cache de nível inferior) • Esquema Write Back • A informação é escrita somente no bloco da cache, e só será escrito na memória principal quando for substituído Escritas na cache 27 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Esquema Write Through • Vantagens • Fácil de implementar • Um cache miss nunca resulta em uma escrita na memória principal • Memória sempre possui o dado mais recente, mantendo sempre a coerência dos dados • Desvantagens • Escritas são mais lentas • Cada escrita requer em acesso a memória principal • Necessita de maior largura de banda de memória Escritas na cache 28 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Esquema Write Back • Vantagens • As escritas ocorrem na velocidade da cache • Várias escritas em um bloco da cache resultam em apenas uma escrita na memória principal • Menor largura de banda e menor consumo de energia • Desvantagens • Implementação mais complexa • Dados na cache e na memória principal podem estar inconsistentes • Uma leitura pode gerar uma escrita na memória principal Escritas na cache 29 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Esquema Write Back • Dirty bit (bit de sujo) • Como muitas vezes o bloco armazenado na cache não está consistente com a memória principal, um “bit se sujo” é usado para indicar esta inconsistência • Caso o bit de sujo esteja em “0” (limpo), o dado está consistente e não será escrito na memória principal em caso de write miss • Caso o bit de sujo esteja em “1” (sujo), o dado está inconsistente e deverá ser escrito na memória principal em caso de write miss Escritas na cache 30 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • O que é um Write Miss (perda de escrita)? • Quando o processador solicita uma escrita o endereço solicitado não está armazenado na cache. • Duas opções em caso de write miss: • Alocação de escrita • As perdas de escrita atuam como perdas de leitura • Alocação sem escrita • As perdas de escrita não afetam a cache • O bloco é modificado apenas na memória principal Escritas na cache 31 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Write Through • Alocação sem escrita 32 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Write Back • Alocação de escrita 33 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • O esquema write-through não favorece o desempenho • Qualquer escrita faz com que a memória principal seja escrita também Tratamento das Escritas 34 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Escrita na cache de dados com Buffer de escrita: • Buffer de escrita armazena o dado enquanto este aguarda para ser escrito na memória • Após escrever o dado na cache e no buffer de escrita, o processador pode continuar a execução das instruções • Se o buffer de escrita estiver cheio quando o processador tiver que executar uma instrução de escrita, o processador precisa parar, até que haja posição disponível no buffer Esquema Write-Through com Buffer de Escrita 35 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Escrita na cache de dados com Buffer de escrita: • Se a velocidade da memória para completar as escritas for menor que a taxa à qual o processador está gerando as escritas, nenhum buffer (por maior que seja) conseguirá resolver o problema • O tamanho do buffer de escrita depende da relação citada no item anterior Esquema Write-Through com Buffer de Escrita 36 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Write buffer é uma FIFO • Funciona bem se: • Frequência de escritas << 1 / ciclo escrita DRAM • Problema • Frequência de escritas > 1 / ciclo escrita DRAM • Saturação do Write Buffer Esquema Write-Through com Buffer de Escrita 37 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Frequência de escritas > 1 / ciclo escrita DRAM • Se esta condição existe por um longo período de tempo (porque tempo de ciclo da CPU é rápido demais e/ou ocorrem muitas instruções store em sequência): • Write-Buffer terá overflow, não importa quão grande ele seja • Solução para saturação do Write Buffer? • Usar cache com write back • Instalar uma cache de segundo nível (L2) Esquema Write-Through com Buffer de Escrita 38 Conceitos básicos de memória cache Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores PATTERSON, David A.; HENESSY, John L. Organização e Projeto de Computadores: a interface hardware/software. 2a.ed. Rio de Janeiro: Campus, 2005.Bibliografia