A memória cache serve para acelerar o acesso a informações de um programa que tem uma maior frequência de uso. Ou seja, a parte mais utilizada dos programas devem estar presentes na memória cache, enquanto o que não é utilizado no momento permanece na memória mais lenta, porém que possui maior capacidade de armazenamento.
2) Como é o mapeamento dos blocos da MP para a cache?
Tendo em vista a diferença de tamanho entre a memória principal e a cache, é
necessário mapear onde estarão os blocos da memória principal dentro da cache, pois não se consegue fazer 1 para 1. Com isso, organiza-se a memória em um conjunto B de blocos. Cada bloco da MP é constituído de X células (X bytes, já que nos sistemas atuais uma célula armazena 8 bits ou 1 byte de dados). A quantidade B de blocos da MP é B = N / X ou B = 2E / X e a memória cache é organizada como um conjunto de L grupos de bytes, sendo cada um deles denominado linha. Cada uma das L linhas da cache possui X bytes, isto é, a mesma quantidade de bytes de um bloco da MP.
3) Como é feita a atualização da cache? Qual é a vantagem e a desvantagem de cada
abordagem?
Cada bloco da memória principal é mapeado em uma única linha de cachê.
A técnica de mapeamento direto é simples e tem custo de implementação baixo. Sua principal desvantagem é que cada bloco é mapeado em uma posição fixa na memória cachê. Dessa forma, se um programa fizer repetidas referências a palavras de dois blocos distintos, mapeados em uma mesma linha, esses blocos serão trocados continuamente na memória cache e a taxa de acertos à memória cache será baixa. A técnica de Mapeamento Associativo, Evita as desvantagens do mapeamento direto, permitindo que cada bloco da memória principal seja carregado em qualquer linha de memória cachê. O mapeamento associativo oferece maior flexibilidade para a escolha do bloco a ser substituído quando um novo bloco é trazido para a memória cachê. A principal desvantagem do mapeamento associativo é a complexidade do conjunto de circuitos para a comparação dos rótulos de todas as linhas da memória cache. Já no Mapeamento Associativo por Conjuntos, é combinado vantagens do mapeamento direto e do mapeamento associativo e diminui suas desvantagens. UNIVERSIDADE PRESBITERIANA MACKENZIE LISTA DE EXERCÍCIOS – UNIDADE 3 – LISTA 1
4) Qual é a finalidade dos algoritmos de substituição? Descreva cada um deles.
Os algoritmos de substituição servem para escolher qual dos blocos armazenados na memória cache deve ser substituído para dar lugar a um novo. Os algoritmos de substituição mais utilizados são: Least Recently Used (LRU): Neste algoritmo, o bloco que será substituído será o que está há mais tempo sem ser utilizado. First in, First out (FIFO): Neste método é uma fila para escolher qual o bloco que será substituído, com isso, temos que o primeiro bloco que entrou na cache, também será o primeiro a sair dela. Ou seja, o bloco que está há mais tempo na memória será o próximo a ser substituído. Least Frequently Used (LFU): Este algoritmo implementa um sistema que faz a contagem de acessos aos blocos e indica que o bloco que será substituído é o com menor frequência de acessos. Escolha aleatória: Este método substituirá o bloco aleatoriamente.
5) Diferenciar cache hit de cache miss.
Quando existe um endereço na memória RAM, o controle de cache intercepta o endereço e o controle da cache conclui se o byte (dado) solicitado está ou não armazenado na cache. Quando ele está, este é denominado como hit. Já quando não está é denominado como miss.
6) Explique o funcionamento da hierarquia de memória.
A hierarquia de memória, é uma classificação de tipos de memória em relação ao seu desempenho. Esse sistema possui três níveis, sendo eles: 1. O disco rígido, muito espaço de armazenamento e longos tempos de busca dos dados (tempo de acesso). 2. A memória RAM], que possui tempo de recuperação bem menor que o disco rígido, assim fica mais fácil buscar os arquivos mais utilizados pelo usuário. 3. A memória cache, que apesar de ter pouca quantidade de armazenamento, é muito rápida.