SóProvas


ID
2575714
Banca
IESES
Órgão
IGP-SC
Ano
2017
Provas
Disciplina
Arquitetura de Computadores
Assuntos

A memória de um computador é organizada em uma estrutura hierárquica composta de múltiplos níveis: memória principal, memória cache e registradores. Considere um sistema computacional com palavra de dados de 32 bits e que possua um único nível de memória cache, com caches de instrução e de dados separadas, cada uma com capacidade de 16 palavras (64 Bytes). Analise as seguintes assertivas e assinale a alternativa correta:


I. A memória cache promove ganho de desempenho na execução de um programa apenas quando este exibe algum nível de localidade no acesso às instruções e/ou dados.

II. Se a cache de dados for baseada no mapeamento direto, para se obter uma maior taxa de acertos na execução de um programa com alta localidade espacial no acesso a dados, é melhor organizar essa cache em 16 blocos com 01 palavra/bloco do que em 04 blocos com 04 palavras/bloco.

III. Para programas que exibam localidade temporal no acesso às instruções, para obter uma menor taxa de faltas, é melhor que a cache de instruções seja baseada no mapeamento associativo de duas vias do que no mapeamento direto. Isso se justifica porque o mapeamento associativo oferece alternativas de blocos para carregar uma posição da memória principal na cache e isso reduz a necessidade de substituição de blocos na cache.

Alternativas
Comentários
  • Alternativa II está errada pois se trata de alta localidade espacial, ou seja, a probabilidade das instruções do programa estarem posicionadas sequencialmente na memória principal (MP) é grande. Sendo assim, estruturar a cache com mais palavras/blocos aproveitará a caracteristica da localidade espacial. Se caracteristica fosse de localidade temporal, o mais poderia ser a estruturação de menos palavras/bloco já que os acessos à MP não seriam, na maioria das vezes, em endereços contínuos.

  • Uma pequena correção no comentário do colega Israel.

    Como o mapeamento direto é a maneira mais simples de atribuir um LOCAL(locaidade espacial) na cache para cada palavra da memória, ou seja, cada local da memória é mapeado diretamente para um local exato na cache.

    Como a alternativa II menciona: "é melhor organizar essa cache em 16 blocos com 01 palavra/bloco do que em 04 blocos com 04 palavras/bloco." Ou seja é melhor eu ter 16 andares, porém com somente um  comodo, do que eu ter 4 andares com 4 comodos cada andar, ficará mais dificil de eu mapear diretamente, pois terá mais comodos nessa 2ª hipotese . Conforme cita Patterson no seu livro Organização de Computadores "Blocos maiores exploram a localidade espacial para diminuir as taxas de falhas"

  • GABARITO: B

  • Conforme cita Patterson no seu livro Organização de Computadores "Blocos maiores exploram a localidade espacial para diminuir as taxas de falhas"

     

  • Vamos por conceitos:

    Mapeamento direto : cada bloco da MP tem uma linha de cache previamente definida. Como o tamanho da memoria é muito maior que o da cache, é necessário se obter o tag do bloco e verificar se é o mesmo tag que está na linha indicada, indicando um hit. Método simples porém de pouca flexibilidade.

    Associativo : Não há local fixo na cache para um bloco da MP, será necessário comparar o tag com o tag de cada linha.

    Princípios de localidade

    temporal -> se um item é referenciado tende a ser referenciado novamente. Exemplo LOOPS

    espacial -> se um item é referenciado , itens cujos endereços são próximos tendem a ser referenciados em seguida. Exemplo: acesso a dados de um array

    Item I e III corretos.

    Item II errado pois: II. Se a cache de dados for baseada no mapeamento direto, para se obter uma maior taxa de acertos na execução de um programa com alta localidade espacial no acesso a dados, é melhor organizar essa cache em 16 blocos com 01 palavra/bloco do que em 04 blocos com 04 palavras/bloco.

    Inverte o final, 4 blocos podem estar mais proximos e sequenciais do que os 16 blocos, e o mapeamento seria associativo por conjunto. que é o conjunto do Direto com o Associativo.