Baixe o app para aproveitar ainda mais
Prévia do material em texto
Realize os exercícios a seguir: (1) Qual é a finalidade da memória cache? R: Ela tem o objetivo de armazenar dados, informações e processos temporários que são acessados com frequência, agilizando o processo de uso quando são requisitados pelo processador. (2) Como é o mapeamento dos blocos da MP para a cache? R: Existem três tipos de mapeamentos, sendo: - Direto: Cada bloco da MP tem uma linha da cache específica, previamente definido onde será armazenado; - Associativo: Não há local fixo na memória cache para alocação de um bloco da MP. Cada bloco pode ser armazenado em qualquer linha da cache; - Associativo por conjunto: A memória cache é dividida em conjuntos, cada um com um número limitado de linhas ou blocos. Cada bloco da memória principal é mapeado em um conjunto específico da memória cache, mas pode ser armazenado em qualquer linha dentro desse conjunto. (3) Como é feita a atualização da cache? Qual é a vantagem e a desvantagem de cada abordagem? R: Toda vez que o processador realiza uma operação de escrita, esta ocorre imediatamente na cache. É necessário que, em algum momento, a MP seja atualizada, para que o sistema mantenha sua coerência de informação. As políticas de atualização são: - Write through: Todas as operações de escrita são feitas tanto na memória cache quanto na MP. Dessa forma, consegue-se assegurar que a MP estará sempre com dados válidos. A desvantagem é que essa pode ser uma política lente já que a MP possuí uma lentidão comparado ao processador. - Write back: As escritas do processador acontecem apenas na memória cache. Partes da MP podem ficar inválidas por um tempo e, portanto, o acesso à MP pelos dispositivos de E/S só poderá ser efetuado por meio da memória cache. A desvantagem é que a MP pode ficar desatualizada por algum período de tempo. - Write once: Escrita única, os dados armazenados na cache só podem ser escritos uma vez e, após a escrita, tornam-se somente leitura. A desvantagem da política "Write Once" é a inflexibilidade, se os dados na memória cache precisarem ser atualizados devido a alterações nos dados, a cache precisará ser invalidada e recarregada com os novos dados. - Protocolo MESI: O protocolo MESI (Modified, Exclusive, Shared, Invalid) é um protocolo de coerência de cache usado em sistemas multiprocessadores ou multiprocessados para garantir a consistência dos dados compartilhados entre várias caches. Ele controla o estado de cada bloco de dados na cache para garantir que todas as cópias de um bloco compartilhado estejam sempre atualizadas e consistentes entre os processadores. (4) Qual é a finalidade dos algoritmos de substituição? Descreva cada um deles. R: Ele tem por finalidade gerenciar o uso da memória determinando quais itens de dados devem ser removidos quando a memória cache está cheia, buscando equilibrar o desempenho. Os algoritmos de substituição existentes são: - LRU (Least Recently Used - Menos Recentemente Usado) substitui o item que não foi usado há mais tempo. Mantém um registro do histórico de acesso aos dados e remove o item que foi acessado menos recentemente; - LFU (Least Frequently Used - Menos Frequentemente Usado) remove o item que foi acessado menos frequentemente. Mantém uma contagem do número de vezes que cada item foi acessado e substitui aquele com a menor contagem; - FIFO (First-In, First-Out - Primeiro a Entrar, Primeiro a Sair) substitui o item que está na cache há mais tempo, ou seja, o primeiro item que foi colocado na cache será o primeiro a ser removido; - Random (Aleatório) escolhe aleatoriamente um item na cache para substituição. (5) Diferencie cache hit de cache miss. R: Quando o processador solicita dados na memória os dados estiverem na cache (hit), os buffers de dados e endereço são desativados e a comunicação é apenas entre o processador e a memória cache. Se os dados não estiver na cache (miss), o endereço desejado é carregado no barramento do sistema e os dados são transferidos através do buffer de dados para a cache e para o processador. (6) Código Hamming. (a) Para a palavra a seguir, calcule a palavra final a ser encaminhada utilizando: 01010111 R: Palavra inicial Dado 8 Dado 7 Dado 6 Dado 5 Dado 4 Dado 3 Dado 2 Dado 1 0 1 0 1 0 1 1 1 Portanto: TABELA DE REDUNDÂNCIA IDENTIFICAÇÃO DA POSIÇÃO IDENTIFICAÇÃO DOS DADOS ORIGINAIS x POSIÇÃO Redundância1 = 0001 Redundância1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7 Redundância1 = 1 ⊕ 1 ⊕ 0 ⊕ 1 ⊕ 1 = 0 Redundância2 = 0010 Redundância2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7 Redundância2 = 1 ⊕ 1 ⊕ 0 ⊕ 0 ⊕ 1 = 1 Redundância3 = 0100 Redundância3 = D2 ⊕ D3 ⊕ D4 ⊕ D8 Redundância3 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0 Redundância4 = 1000 Redundância4 = D5 ⊕ D6 ⊕ D7 ⊕ D8 Redundância4 = 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0 Palavra final Posição 12 Posição 11 Posição 10 Posição 9 Posição 8 Posição 7 Posição 6 Posição 5 Posição 4 Posição 3 Posição 2 Posição 1 Dado 8 Dado 7 Dado 6 Dado 5 Red. 4 Dado 4 Dado 3 Dado 2 Red. 3 Dado 1 Red. 2 Red. 1 0 1 0 1 0 0 1 1 0 1 1 0 (b) 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. R: Palavra recebida: Posição 12 Posição 11 Posição 10 Posição 9 Posição 8 Posição 7 Posição 6 Posição 5 Posição 4 Posição 3 Posição 2 Posição 1 Dado 8 Dado 7 Dado 6 Dado 5 Red. 4 Dado 4 Dado 3 Dado 2 Red. 3 Dado 1 Red. 2 Red. 1 0 1 0 1 0 1 1 1 0 1 1 0 Recalculo: TABELA DE REDUNDÂNCIA IDENTIFICAÇÃO DA POSIÇÃO IDENTIFICAÇÃO DOS DADOS ORIGINAIS x POSIÇÃO Redundância1 = 0001 Redundância1 = D1 ⊕ D2 ⊕ D4 ⊕ D5 ⊕ D7 Redundância1 = 1 ⊕ 1 ⊕ 1 ⊕ 1 ⊕ 1 = 1 Redundância2 = 0010 Redundância2 = D1 ⊕ D3 ⊕ D4 ⊕ D6 ⊕ D7 Redundância2 = 1 ⊕ 1 ⊕ 1 ⊕ 0 ⊕ 1 = 0 Redundância3 = 0100 Redundância3 = D2 ⊕ D3 ⊕ D4 ⊕ D8 Redundância3 = 1 ⊕ 1 ⊕ 1 ⊕ 0 = 1 Redundância4 = 1000 Redundância4 = D5 ⊕ D6 ⊕ D7 ⊕ D8 Redundância4 = 1 ⊕ 0 ⊕ 1 ⊕ 0 = 0 ⊕ 0 0 1 0 (redundância da palavra recebida / armazenada) ⊕ 0 1 0 1 (redundância recalculada pelo controlador de memória) ⊕ 0 1 1 1 Conferindo a posição do resultado na tabela: 0 1 1 1 representa a posição 07 que se refere ao dado 04. POSIÇÃO DA PALAVRA BINÁRIO DESCRIÇÃO 12 1100 Dado 8 11 1011 Dado 7 10 1010 Dado 6 09 1001 Dado 5 08 1000 Redundância4 07 0111 Dado 4 06 0110 Dado 3 05 0101 Dado 2 04 0100 Redundância3 03 0011 Dado 1 02 0010 Redundância2 01 0001 Redundância1
Compartilhar