SóProvas


ID
71779
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Arquitetura de Computadores
Assuntos

O termo mapeamento é usado para indicar o relacionamento dos dados do nível inferior com as posições da memória cache. O mapeamento de memória cache, no qual a posição na cache depende do endereço da palavra e cada palavra possui uma posição fixa na cache, é denominado

Alternativas
Comentários
  • Mapeamento Direto:• Forma mais simples de mapeamento;• Posição na cache depende do endereço da palavra;• Cada palavra possui uma posição fixa na cache;• Como tenho menos espaço na cache do que no nível inferior, um grupo de palavras é mapeado na mesma posição da cache;• Este mapeamento é dado diretamente através de uma operação no endereço que seestá procurando.
  • o número de linhas da memória cache é bem menor que o número de blocos da memória principal. Assim, devemos encontrar uma forma de mapear os blocos da memória principal para a cache. Existem 3 técnicas diferentes que podem ser utilizadas: mapeamento direto, mapeamento associativo e mapeamento associativo por conjunto.Mapeamento Direto:este método é o mais simples, sendo cada bloco da memória principal mapeado em uma única linha da cache, em uma posição fixa.Mapeamento Associativo:neste modo é permitido que um bloco da memória principal seja mapeado para qualquer linha da memória cache.Mapeamento Associativo por Conjunto:este método minimiza os problemas do mapeamento associativo e combina esta nova estratégia com as vantagens do mapeamento direto. Agora a memória cache é dividida em conjuntos, cada um contendo linhas.
  • Mapeamento Direto = Existe um ponto fixo entre o endereço da palavra (Fácil configuração)(Apresenta Erros)

    Mapeamento Associativo = Não tem ponto fixo ( Difícil configuração)(Maior taxa de acertos)

    fonte: http://www.clubedohardware.com.br/artigos/Como-o-Cache-de-Memoria-Funciona/1410/7

  • Mapeamento direto

    Para entendermos a diferença entre os tipos de mapeamento, vamos fazer uma analogia com uma sala de cinema. Imagine que o cinema é a Memória Cache e cada pessoa é um dado a ser armazenado na memória. No mapeamento direto cada pessoa (sócia daquele cinema) receberá uma cadeira dedicada a ele. Sempre que ele for ao cinema, deverá sentar no mesmo lugar. O problema é que a Memória Principal é muito maior do que a Memória Cache, então não há cadeira para todos. Para resolver, cada cadeira é distribuída por várias pessoas, apostando que nem sempre as pessoas que compartilham o mesmo número de cadeira irão assistir ao mesmo filme no mesmo horário. Mas quando isso acontece, a pessoa que chegou por último não pode sentar em outra cadeira mesmo estando livre. A pessoa que chega depois toma o lugar da pessoa que está sentada, porque no caso da memória Cache, o último sempre tem preferência. Imagine quanta confusão isso geraria nesse cinema!

    O bom do mapeamento direto é porque ele é muito fácil de organizar e a CPU encontra sempre seu dado muito facilmente. No exemplo do cinema, se alguém estiver querendo saber se uma pessoa está no cinema (na Cache) ou não (na Memória Principal) basta saber o número da cadeira dele e ir lá verificar se é ele quem está sentado. Isso acelera bastante o trabalho de busca da CPU. Mas se a memória Cache for muito menor que a Memória Principal, haverá muitos blocos com mesmo código e pode haver muito conflito de posição, reduzindo o desempenho.

     

    Mapeamento associativo

    No mapeamento associativo, o mecanismo de alocação de blocos da Memória Principal na Cache não segue posição fixa. Cada bloco vai ocupar a primeira posição vazia encontrada. Voltando ao exemplo do cinema, seria uma sala sem cadeira reservada, mas com um porém. Se uma pessoa chegar e o cinema estiver cheio, a direção do cinema (no computador é o Sistema de Memória) vai escolher uma pessoa a ser removida para dar lugar a nova pessoa que chegou (talvez alguém que estiver dormindo ou conversando durante o filme).

     

    Mapeamento associativo por conjunto

    O problema do Mapeamento Associativo é encontrar blocos em memórias Cache grandes. A solução para isso é utilizar uma abordagem mista, que utiliza os princípios dos mapeamentos direto e associativo. Ela divide a memória em conjuntos. Cada bloco então é mapeado para um conjunto (semelhante ao que é feito para o Mapeamento Direto, mas para o nível de conjunto). Sempre que um bloco for ser buscado ou salvo, ele será feito no conjunto fixo dele, mas dentro do conjunto ele pode ser armazenado em qualquer posição livre.

    Voltando ao cinema, é como se uma grande sala fosse dividida em salas menores.

     

    Fonte: http://producao.virtual.ufpb.br/books/edusantana/introducao-a-arquitetura-de-computadores-livro/livro/livro.chunked/ch05s07.html

  • Mapeamento Direto - Cada endereço da Memória Principal está mapeado em uma posição fixa da cache. Sendo a mais simples. É como se fosse aquele relacionando 1 : 1 entre a memória principal e a cache.

    Mapeamento Totalmente Associativo - O endereço da Memória Principal está mapeado em qualquer posição da cache. Por isso, exige um hardware especial para realizar a busca, tornando-se cara.

    Mapeamento Associativo por Conjuntos - Este mapeamento é o que apresenta melhor custo benefício. Cada endereço da Memória Principal está mapeado em mais de uma posição da cache. É como se fosse aquele relacionando 1 : N entre a memória principal e a cache.

  • D e E = Lhufas

    A = Cada palavra com UMA CERTA LINHA

    B = Cada palavra com UMA LINHA QUALQUER

    C = CONJUNTO DE PALAVRAS PARA CONJUNTO DE LINHAS

    GABARITO A