Por que estudar a hierarquia de memória?

A memória é um recurso vital para os sistemas computacionais. Desde a implementação do conceito de programa armazenado, a memória abastece o processador com instruções e dados, e também recebe o resultado da computação feita pelo mesmo.

A memória pode ser vista como um grande gargalo que limita o desempenho do computador e, ao mesmo tempo, uma vilã, responsável pelo aumento dos custos para a implementação da solução computacional. Entretanto, os usuários gostariam de ter memórias com capacidade de armazenamento infinita, baratas, com baixíssimos tempos de resposta (análogos ao tempo de processamento da CPU) e que não fossem voláteis. Ah, sim, e que nunca estragassem!

A hierarquia de memória agrupa diferentes tecnologias de memória, de maneira hierárquica (obviamente), as quais oferecem aos programas dos computadores uma ilusão que há uma grande quantidade de memória, rápida, barata e não volátil. Os princípios de localidade espacial e temporal permitem que esta hierarquia faça sentido e melhoram o desempenho das soluções computacionais com custos mais razoáveis. Sobre uma memória nunca estragar, bem, para isso há a replicação, como em backups!

Entender como essa hierarquia de memória funciona é essencial aos profissionais da computação e, ao mesmo tempo, um desafio. Isso ocorre porque há diferentes componentes de hardware e software que, quando usados em conjunto, criam essa abstração chamada Hierarquia de Memória. Compreender a estrutura de tais componentes e, principalmente, como eles funcionam e afetam o desempenho, exige uma boa dose de imaginação. O Amnesia polariza essa compreensão, por meio da simulação!

Paulo Sérgio Lopes de Souza
Sarita Mazzini Bruschi
LaSDPC/SSC/ICMC/USP