Buscar

Memória Cache e Algoritmos

Prévia do material em texto

(1) Qual é a finalidade da memória cache? 
R: . Ela tem como finalidade de atuar como uma memória temporária para que o 
chipset recupere rapidamente os dados, sem a necessidade de uma busca direta 
na memória principal, favorecendo um melhor desempenho para o sistema. Ou 
seja, a parte mais usada dos programas devem estar presentes na memória 
cache, enquanto o que não é usado no momento fica salvo na memória mais 
lenta, que tem maior capacidade de armazenamento. 
(2) Como é o mapeamento dos blocos da MP para a cache? 
R: Levando em consideração a diferença de tamanho entre a memória principal e a cache, é 
preciso mapear onde estarão os blocos da memória principal dentro da memória cache, pois 
não é possível fazer 1 para 1. Com isso, organiza-se a memória em um conjunto B de blocos. 
Cada bloco da MP é Composto de X células (X bytes, já que nos sistemas atuais e modernos 
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 chamados de linha. Cada uma das L linhas da cache possui X bytes, sendo 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? 
R: Cada bloco da memória principal é mapeado em apenas uma linha de cache. O 
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 cache. Dessa 
forma, se um programa fizer repetidas referências a palavras de dois blocos diferentes, 
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, 
melhora as desvantagens do mapeamento direto, possibilitando que cada bloco da memória 
principal seja inserido 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 é 
inserido na memória cache. 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 diversas 
vantagens do mapeamento direto e do mapeamento associativo e diminui de forma 
considerável as suas desvantagens. 
(4) Qual é a finalidade dos algoritmos de substituição? Descreva cada um deles. 
R: Os algoritmos de substituição tem como finalidade 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): Nesse 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 de forma aleatória. 
(5) Diferencie cache hit de cache miss. 
R: 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) Código Hamming 
 
(a) Para a palavra a seguir, calcule a palavra final a ser encaminhada utilizando: 
 
01010111 
R: 
 
Considerando o item (a), caso o D4 do código fosse alterado em um armazenamento, mostre a 
veracidade do código Hamming para descobrir o erro.

Continue navegando