9 <§5.3> Suponha um processador com um CPI base de 1, com frequência de clock de 4 GHz . Considere um tempo de acesso à memória principal de 100 ns , incluindo todo o tratamento de falhas. Suponha que a taxa de misses por instrução na cache primária seja de
. O quão mais rápido será o processador se acrescentarmos uma cache secundária que tenha um tempo de acesso de 5 ns tanto para hit quanto para miss e que seja grande o suficiente de modo a reduzir a taxa de misses para a memória principal para
?
Passo 1
O enunciado pede para determinar o quanto o processador ficará mais rápido ao acrescentar uma cache secundária. Informações dadas (vou listar todas elas exatamente como estão no enunciado):
frequência de clock
tempo de acesso à memória principal (inclui todo o tratamento de falhas)
taxa de misses por instrução na cache primária (antes de L2)
com a cache secundária: tempo de acesso da L2 (tanto para hit quanto para miss)
com a cache secundária: taxa de misses que chegam à memória principal
Pergunta que preciso responder: o quão mais rápido (fator de speedup) o processador fica ao adicionar essa cache secundária?
frequência de clock
tempo de acesso à memória principal
taxa de misses por instrução na cache primária (antes de L2)
com a cache secundária: tempo de acesso da L2
com a cache secundária: taxa de misses que chegam à memória principal
Pergunta que preciso responder: o quão mais rápido (fator de speedup) o processador fica ao adicionar essa cache secundária?
Passo 2
Conceitos e fórmula que vamos usar (explicadinho, passo a passo):
- A latência do clock (período) é o tempo de um ciclo e vale
. Vou converter tempos absolutos (ns) em ciclos dividindo por . - A contribuição das faltas de cache para o CPI (os “stall cycles” por instrução) é dada por
Aqui “penalidade por miss” significa quantos ciclos a CPU espera a mais quando ocorre uma falta.
- O CPI efetivo será
- O speedup entre duas configurações com mesma frequência é dado por
Vou aplicar essas fórmulas primeiro ao caso sem L2 (baseline) e depois ao caso com L2.
Passo 3
Calcular o período do clock para converter ns em ciclos:
Portanto
ciclo
.
Passo 4
Caso baseline (sem L2): cada miss da L1 vai direto para a memória principal, cuja latência é
. Convertendo em ciclos, a penalidade por miss é
A taxa de misses por instrução é
. Então os stalls por instrução são
Assim o CPI efetivo no baseline é
Passo 5
Caso com L2: interpretar cuidadosamente os dados. A taxa de misses que chegam à memória principal depois de colocar a L2 é
por instrução. As requisições que chegam à L2 são exatamente as faltas da L1, ou seja
por instrução. Logo a fração das faltas da L1 que também faltam na L2 (ou seja a taxa local de miss da L2) é
Isto significa que
das faltas de L1 também faltam na L2;
das faltas de L1 são acertadas na L2.
Passo 6
Calcular a penalidade média por uma falta da L1 quando existe a L2. Para cada falta da L1: sempre há um acesso à L2 que custa
. Se a L2 também faltar (probabilidade
), então vamos ainda pagar o acesso à memória principal de
. Então a penalidade média em tempo é
Converter para ciclos:
Agora as stalls por instrução com L2 (lembre: ainda temos
faltas de L1 por instrução) são
Portanto o CPI efetivo com L2 é
Passo 7
Calcular o speedup (frequência igual nos dois casos):
Arredondando razoavelmente, o processador fica cerca de
vezes mais rápido.
Resposta
O processador será aproximadamente
mais rápido.