Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
FACULDADE ESTÁCIO SISTEMAS DE INFORMAÇÃO AULA 5 – MEMÓRIA CACHE Organização de Computadores PROF :DJACIR MACIEL maciel.estacio@gmail.com A memória Cache foi criada na busca pela otimização da relação entre o processador e a memória principal; O melhor resultado obtido foi o ganho de velocidade de execução de instrução pelo processador; Memória Cache Para que seja possível entender perfeitamente o sentido da criação e do desenvolvimento das memórias cache é necessário entender dois conceitos: Diferença de Velocidade Processador/MP; Conceito de Localidade. Memória Cache Diferença de Velocidade Processador/MP Se todos os circuitos do processador e da MP fossem fabricados com elementos de mesma tecnologia, este problema deixaria de existi e não havia necessidade de memória cache. Memória Cache Conceito de Localidade Memória Cache Conceito de Localidade O conceito de localidade é definido como a relação entre a forma como o programa foi desenvolvido e o processo e como eles são executados pela CPU; Memória Cache Conceito de Localidade Este princípio pode ser decomposto em duas modalidade: Localidade espacial e Temporal Memória Cache Localidade espacial Memória Cache Localidade Temporal Memória Cache Localidade Temporal Memória Cache Organização e Funcionamento da Memória Cache A memória cache, deve possuir : Elevada velocidade de transferência; Tamanho capaz de armazenar partes de um programa, para obter o máximo rendimento do princípio da localidade espacial e Devem ser suficientemente pequenas para não elevar em excesso o custo do sistema de computação. Memória Cache Funcionamento da Memória Cache Memória Cache Eficiência da Cache E = (Acertos (hit) / Total de Acertos) * 100 Memória Cache Organização Genérica de Memórias Cache Disposição física da MP Memória Cache Disposição genérica de uma Memória Cache Memória Cache Disposição genérica de uma Memória Cache Memória Cache No entanto , a quantidade de blocos B é sempre muito maior que a quantidade de linhas L; Isso requer que se tenha que métodos para mapear os blocos da MP nas poucas linhas da cache; Existem três métodos desenvolvidos :Direto, Associativo e Associativo por Conjunto; Memória Cache TIPOS DE USO DE MEMÓRIA CACHE Existem dois tipos básicos de empregos de cache nos sistemas : Relação UCP/MP (cache de RAM ou RAM Cache); Relação MP/Discos (cache de disco ou "Disk Cache). Memória Cache ELEMENTOS DE PROJETO DE UMA MEMÓRIA CACHE Para se efetivar o projeto e a implementação de uma memória cache deve-se decidir entre várias alternativas tecnológicas, atualmente disponíveis, as quais podem ser agrupadas por função: Memória Cache Função de mapeamento de dados MP/cache; Algoritmos de substituição de dados na cache; Política de escrita pela cache; Níveis de cache; Definição do tamanho das memórias cache; Escolha de largura de linha de cache; Memória Cache Mapeamento de Dados MP/Cache A cada instante, a memória cache possui um conjunto de blocos de MP armazenados em suas linhas com os dados que o processador deve precisar (para haver acertos e não faltas). Porém, como L << B ,(há muito mais blocos que linhas, não é possível uma linha da cache estar dedicada a armazenar um específico bloco da MP; Memória Cache Em outras palavras, há necessidade de se determinar um meio eficaz de determinar qual a linha em que um bloco específico será armazenado, quando solicitado pelo sistema. Como vimos antes, existem três métodos que iremos estudá-los agora; Memória Cache Mapeamento Direto Por esta técnica, cada bloco da MP tem uma linha da cache previamente definida onde será armazenado Como há mais blocos do que linhas da cache, isso significa que muitos blocos irão ser destinados a uma mesma linha; Naturalmente, um bloco de cada vez; É, portanto, preciso definir a regra a ser seguida para a escolha da linha específica de cada bloco. Memória Cache Mapeamento Direto Memória Cache Mapeamento Direto Memória Cache Nesta organização, cada bloco da Memória Principal só pode ser carregado numa determinada linha da Cache, não sendo possível carregá-lo em uma outra linha; O Bloco “0” é carregado na linha “0”, o bloco “1” na linha “1” e assim sucessivamente; Memória Cache Neste caso, quando um determinado bloco é mapeado para a última linha da cache, o bloco seguinte volta a ser mapeado na primeira linha dando a criação dos ciclos de mapeamento; Diferentes endereços de blocos de memória podem estar mapeados na mesma linha; Como saber de que região da memória pertence o conteúdo de uma determinada linha da cache? É aí que entra o campo TAG. Memória Cache Ele guarda os bits mais significativos do endereço que representam o número do ciclo; Permitindo que a cache identifique com exatidão de que lugar da Memória Principal pertence o conteúdo carregado naquela linha. Memória Cache Memória Cache Puramente Associativa Neste tipo de cache, o bloco da Memória Principal pode ser carregado em qualquer uma das linhas existentes; Esta versatilidade resolve o problema de endereços conflitantes mencionado na Memória Cache de Mapeamento Direto. Memória Cache Sendo assim, a variedade de blocos da Memória Principal que podem vir a ser carregados em uma determinada linha é bem maior que a da cache de Mapeamento Direto; Enquanto no Mapeamento Direto o TAG armazenava o número do ciclo, neste caso, o TAG irá armazenar o endereço do bloco, já que pode ser carregado em uma determinada linha qualquer bloco da Memória Principal. Memória Cache Memória Cache Puramente Associativa Memória Cache Quando a CPU solicita o conteúdo de uma determinada célula da Memória Principal, a Memória Cache verifica se algum TAG já contém o endereço; Como o bloco pode estar carregado em qualquer linha, a Memória Cache (que é do tipo associativa) compara o endereço do bloco, com os TAGs de todas as linhas simultaneamente. Memória Cache Caso ocorra alguma coincidência, então teremos um hit, e neste caso a cache fornece o conteúdo correspondente numa velocidade muito superior ao da Memória Principal; Contudo, se nenhum TAG contiver o endereço do bloco, então teremos um miss, forçando a Memória Cache a carregar este bloco em uma de suas linhas. Memória Cache Diferente do Mapeamento Direto esta cache possui uma vasta opção de linhas para carregar o bloco; Sendo então necessário estabelecer um método de escolha da linha; Foram criadas as políticas de substituição. Memória Cache Políticas de Substituição As políticas de substituição têm por objetivo escolher qual das linhas terá o seu conteúdo descartado para que um outro bloco seja carregado; A esta linha damos o é dado o Nome de Linha Vítima. Memória Cache No momento em que se vai fazer a inserção de um dado,é necessário retirar um conteúdo já existente é necessário utilizar um método de escolha; Aleatório; FIFO; LFU (Menos Freqüentemente Usada); LRU (Menos Recentemente Usada). Memória Cache Memória Cache Associativa por Conjunto Neste tipo de cache, as suas linhas são agrupadas formando diversos conjuntos de linhas dentro da cache; O bloco da Memória Principal será mapeado para um desses conjuntos de forma semelhante ao Mapeamento Direto. Memória Cache Memória Cache Associativa por Conjunto Memória Cache Considerando que este mapeamento é feito para um conjunto de linhas, então, poderão ser carregados a mesma quantidade de blocos que linhas existentes no conjunto, diminuindo a possibilidade de misses; Dentro de um determinado conjunto, o bloco pode ser carregado em qualquer uma das linhas; Memória Cache Níveis de Cache de Memória Atualmente, os fabricantes e montadores de sistemas estabeleceram dois e até três diferentes níveis de memória cache, todos constituídos de memórias SRAM, porém cada uma com características e localização diferentes; Memória Cache Estes níveis,/camadas são classificados, dependendo do projeto do sistema de computação: Nível1(Level 1) ou L1, sempre localizada no interior do processador; Nível 2 (Level 2) ou L2, sendo localizado em geral, na placa-mãe do computador, ou seja, exteno ao processador. Memória Cache Porém, têm sido lançados processadores em que a cache L2 está localizada no interior da pastilha do processador, separada deste; Nível 3 (Level 3) ou L3 - existente em alguns processadores, quando estes possuem L1 e L2 internamente em seu invólucro; Memória Cache As memórias podem ser fabricadas com duas características : Cache de instrução I e D, de cache de dados). Memória Cache Tamanho da Memória Cache A definição da faixa de tamanho adequada para uma cache depende de uma série de fatores específicos de um certo sistema, tais como: Tamanho da memória principal, Relação acertos,/fa1tas, Tempo de acesso da MP, Custo médio por bit, da MP, e da memória cache L7 ou L2, Tempo de acesso da cache L7 ou L2, Natureza do programa em execução (princípio da localidade). Memória Cache OBRIGADO Memória Cache
Compartilhar