Buscar

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: (D8) 1(D7) 0(D6) 1(D5) 0(D4) 1(D3) 1(D2) 1(D1) 
 
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.