6 <§5.3> Considere uma hierarquia de memória de três níveis. O tempo de acesso ao primeiro nível é de 0,4 \mathrm{~ns}, ao segundo nível é 0,5 \mathrm{~ns} e ao terceiro nível é 50 ns . Certo programa executa 5 \times 10^{9} acessos à memória e possui taxa de acerto de 97 \% no primeiro nível e 90 \% no segundo nível.
a) Qualonúmerodehitsnoprimeironível?
b) Qualonúmerodeacessosquenãoencontrarãoodadonoprimeironível,causando misses nele?
c) Quantos misses do primeiro nível encontrarão o dado no segundo nível?
d) Qualotempototaldeacessoàmemória?

Passo 1

Enunciado e dados fornecidos (vou listar claramente o que o exercício pede e os números que você deu):\n
  • Número total de acessos à memória: N = 5\times 10^{9}.\n
  • Tempo de acesso ao nível 1: t_1 = 0,4\\ \mathrm{ns}.\n
  • Tempo de acesso ao nível 2: t_2 = 0,5\\ \mathrm{ns}.\n
  • Tempo de acesso ao nível 3: t_3 = 50\\ \mathrm{ns}.\n
  • Taxa de acerto no nível 1: h_1 = 97\% (ou seja, 0,97 em fração).\n
  • Taxa de acerto no nível 2: h_2 = 90\% (interpreto como taxa de acerto condicional ao acessar o nível 2, ou seja, entre os acessos que faltaram no nível 1).\n
    Perguntas pedidas:\n
    a) Quantos hits no primeiro nível?\n
    b) Quantos acessos não encontrarão o dado no primeiro nível (misses em L1)?\n
    c) Quantos misses do primeiro nível encontrarão o dado no segundo nível (hits em L2, condicionalmente aos misses de L1)?\n
    d) Qual o tempo total de acesso à memória (para todos os N acessos)?\n

Passo 2

Calcular o número de hits no primeiro nível.\n
Explicação rápida do conceito: a taxa de acerto h_1 diz a fração dos acessos que são atendidos diretamente em L1. Para obter o número absoluto, multiplicamos essa fração pelo número total de acessos N.\n
Fórmula usada:\n
\text{hits\_L1} = h_1 \cdot N.\n
Cálculo numérico:\n
\text{hits\_L1} = 0,97 \cdot 5\times10^{9} = 4,85\times10^{9}.

Passo 3

Calcular o número de misses no primeiro nível (acessos que NÃO encontram o dado em L1).\n
Explicação: a fração de misses em L1 é 1-h_1. Multiplicando pelo total N obtemos o número de acessos que precisam ir para L2.\n
Fórmula:\n
\text{misses\_L1} = (1 - h_1)\cdot N.\n
Cálculo numérico:\n
\text{misses\_L1} = (1 - 0,97)\cdot 5\times10^{9} = 0,03\cdot 5\times10^{9} = 1,50\times10^{8}.

Passo 4

Calcular quantos desses misses do L1 encontrarão o dado no segundo nível (hits em L2 entre os que chegaram em L2).\n
Explicação: h_2 é a taxa de acerto condicional em L2 dado que o acesso chegou a L2 (isto é, dado que houve miss em L1). Logo o número de hits em L2 é h_2 vezes \text{misses\_L1}.\n
Fórmula:\n
\text{hits\_L2} = h_2 \cdot \text{misses\_L1}.\n
Cálculo numérico (usando o valor de \text{misses\_L1} do passo anterior):\n
\text{hits\_L2} = 0,90 \cdot 1,50\times10^{8} = 1,35\times10^{8}.\n
Também é útil notar (para calcular tempos) quantos acessos faltam em ambos os níveis e vão para L3:\n
\text{misses\_L2} = (1 - h_2)\cdot \text{misses\_L1} = 0,10\cdot 1,50\times10^{8} = 1,50\times10^{7}.

Passo 5

Calcular o tempo médio por acesso (AMAT — Average Memory Access Time) e, em seguida, o tempo total para os N acessos.\n
Explicação didática do modelo de tempos: cada acesso sempre paga o tempo de L1, t_1. Se houver miss em L1 (fração \text{miss\_L1} = 1-h_1), paga-se também o tempo de acessar L2, t_2. Se houver miss em L2 (fração condicional 1-h_2 entre os que foram a L2, ou globalmente \text{miss\_L1}\cdot(1-h_2)), paga-se também o tempo de acessar L3, t_3.\n
Uma forma compacta da fórmula (muito usada) é:\n
\text{AMAT} = t_1 + \text{miss\_L1}\cdot t_2 + \text{miss\_L1}\cdot(1-h_2)\cdot t_3.\n
Onde \text{miss\_L1} = 1-h_1.\n
Substituindo números:\n
\text{miss\_L1} = 0,03,\qquad 1-h_2 = 0,10.\n
Cálculo passo a passo dos termos:\n
\text{termo\_L2} = \text{miss\_L1}\cdot t_2 = 0,03\cdot 0,5 = 0,015\\ \mathrm{ns},\n
\text{termo\_L3} = \text{miss\_L1}\cdot(1-h_2)\cdot t_3 = 0,03\cdot 0,10\cdot 50 = 0,15\\ \mathrm{ns}.\n
Agora a AMAT:\n
\text{AMAT} = t_1 + \text{termo\_L2} + \text{termo\_L3} = 0,4 + 0,015 + 0,15 = 0,565\\ \mathrm{ns}.\n
Tempo total para os N acessos (multiplicando AMAT por N):\n
\text{Tempo\_total} = N \cdot \text{AMAT} = 5\times10^{9}\cdot 0,565\\ \mathrm{ns} = 2,825\times10^{9}\\ \mathrm{ns}.\n
Converter para segundos ( 1\\ \mathrm{s} = 10^{9}\\ \mathrm{ns} ):\n
\text{Tempo\_total} = \frac{2,825\times10^{9}\\ \mathrm{ns}}{10^{9}} = 2,825\\ \mathrm{s}.

Resposta

a) 4,85\times10^{9}\n
b) 1,50\times10^{8}\n
c) 1,35\times10^{8}\n
d) 2,825\times10^{9}\\ \mathrm{ns} = 2,825\\ \mathrm{s}

Exercícios relacionados