Apenas as assertivas II e III estão corretas. Vamos aos comentários..
I) INCORRETA. Na verdade, aqui temos uma descrição do mapeamento direto. No mapeamento associativo, os blocos de memória alocados na cache não tem posição fixa, isto é, eles são alocados sempre na primeira linha vaga do cache. Quando todos as linhas estiverem ocupadas, será necessário um algoritmo de substituição de blocos tais como o LRU ou FIFO...
No mapeamento direto, cada linha da cache é reservada para uma posição da memória. Como existem mais posiçõs na memória principal que a na cache, geralmente neste mapeamento varias posições da memória são designadas para a mesma linha de cache. Por exemplo, imaginem que da posição 0h a AAh da memória os blocos sempre ocupados nas linha 2 da memória.
II) CORRETA
III) CORRETA
IV) INCORRETA. Aqui a banca tentou nos confundir mais uma vez. Na verdade ela descreveu a estratégia write through.
Mapeamento associativo total ou completamente associativo: Oposto do mapeamento direto, não existe posição fixa para cada bloco de memória em cache. O bloco é buscado na memória principal e armazenado na cache junto com o seu endereço, em qualquer posição que não esteja ocupada.
Escrita Existem três políticas possíveis para a atualização dos dados escritos na memória cache.
São os chamados mecanismos de coerência:
Write back: escrita na cache e posteriormente na RAM - visa o desempenho.
Write through: escrita simultânea na cache e na RAM - visa a confiabilidade (são mais lentas).
Write Once: escrita uma única vez - sistemas com multiprocessadores.
L1 - A menor delas, mais rápida, mais cara e mais próxima ao processador. Alguns projetos dividem a L1 em dados e instruções (Arquitetura de Harvard).
L2 - Supre as deficiências de tamanho da L1 e como é maior, tornou-se um trunfo das arquiteturas modernas por mais desempenho. Não é tão rápida, mas com uma boa taxa de acerto para reduzir o tempo perdido quando houver uma falha na cache de nível 1.
L3 - Proposta pela AMD, apresenta mais um nível de maior tamanho e menor desempenho.
Normalmente, utiliza-se a cache de nível 1 separada para instruções e uma cache de nível 2 unificada .