Pular para conteúdo

Solução e Explicação Detalhada: Aula 06 - Cache e Localidade

Abaixo estão as respostas esperadas e o embasamento teórico para os exercícios propostos na Aula 06.

Solução da Questão 1 - 1. Cache Hit e Cache Miss (Básico 1)

Explicação Detalhada do Assunto:

O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.

  • Cache Hit: Acerto! A CPU pediu a posição [1], ela já estava na Cache e a conta foi resolvida quase imediatamente.

  • Cache Miss: Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir.


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 1. Cache Hit e Cache Miss determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 2 - 2. Localidade Espacial vs Temporal (Básico 2)

Explicação Detalhada do Assunto:

As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):

Se o programa acessou a variável na posição de memória X, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória X + 1.

Se o programa visitou a variável Y agora, há enorme probabilidade dele visitá-la nos próximos ms.


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 2. Localidade Espacial vs Temporal determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 3 - 3. False Sharing e Lógica Invertida (A Morte do C++) (Intermediário 1)

Explicação Detalhada do Assunto:

A estrutura define a localidade espacial. Prefira dezenas de minúsculas variáveis sequenciais nos métodos a usar longos grafos com saltos randômicos baseados em ponteiros, se for iterar a esmo.

Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 3. False Sharing e Lógica Invertida (A Morte do C++) determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 4 - 1. Cache Hit e Cache Miss (Intermediário 2)

Explicação Detalhada do Assunto:

O desempenho do seu loop for() depende maciçamente da Cache Hit Rate.

  • Cache Hit: Acerto! A CPU pediu a posição [1], ela já estava na Cache e a conta foi resolvida quase imediatamente.

  • Cache Miss: Erro! O processador precisou parar o Pipeline, ir até a RAM lenta, injetar o bloco de bytes na lenta escalada D-Cache/L3/L2/L1 e prosseguir.


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 1. Cache Hit e Cache Miss determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.

Solução da Questão 5 - 2. Localidade Espacial vs Temporal (Desafio)

Explicação Detalhada do Assunto:

As duas premissas arquiteturais da Localidade em Sistemas de Computação (que fundamentam toda escrita C/C++ otimizada):

Se o programa acessou a variável na posição de memória X, há extrema probabilidade de que no ciclo de CPU seguinte ele acesse a variável de memória X + 1.

Se o programa visitou a variável Y agora, há enorme probabilidade dele visitá-la nos próximos ms.


Expectativa de Resposta

O aluno deve inferir com clareza que o conceito de 2. Localidade Espacial vs Temporal determina o desempenho global e não pode ser ignorado nas linguagens compiladas. Para níveis intermediários e desafio, exige-se consciência das integrações entre RAM, CPU e Kernel.


Voltar para Exercício