1 de janeiro de 2024
O que é hierarquia de memória?
Diverso
Na arquitetura de computadores, tipos diferentes de memória são frequentemente usados em conjunto para otimizar o tempo gasto na leitura e inserção de dados. Isso é crucial, pois, um computador gasta boa parte do tempo fazendo esse tipo de tarefa. Os dados mais críticos podem ser armazenados com uma memória mais eficiente e mais próximo de onde estão sendo requeridos, enquanto as informações não cruciais no momento podem ficar em um nível mais baixo da pirâmide, onde é mais lento, porém seu custo é reduzido.
Falando de uma maneira bem simplista, para o computador executar um programa, este deve pesquisar o código executável na sua memória, geralmente em um disco rígido (HD) ou unidade de estado sólido (SSD). Em seguida, esse programa é carregado na memória RAM. Quando o processador precisa de algum dado, ele faz uma requisição para a memória RAM. O problema é que essas requisições são custosas em termos de tempo! Se todas às vezes que o processador precisasse de algum dado, ele tivesse que “perguntar” a memória RAM, o tempo de execução dos programas seria muito maior.
Para resolver isso, existem camadas de memória que guardam as informações importantes mais próximas de onde estão sendo usadas. O primeiro nível de “cache” é a L1. Esse é um tipo de memória extremamente rápida e cara, e serve para guardar dados críticos para o registrador do processador.
O registrador, localizado no topo da pirâmide, é responsável por fornecer dados diretamente ao processador. Em seguida, no terceiro segmento da pirâmide, há o cache para L1, a memória L2, e em seguida o cache para L2, L3. E não para por aqui, daí vêm RAM, o HD/SDD, servidor externo, etc. Essa hierarquia permite manter os dados mais críticos para o CPU em um lugar de acesso rápido, enquanto os não essenciais podem ficar em algum lugar mais baixo da hierarquia, mais barato e, consequentemente, maior.
A regra geral é que, quanto mais próximo do topo, maior a rapidez, e quanto mais longe, mais lenta e barata é a memória.
Abaixo está uma imagem que ilustra essa hierarquia.
Referência
Fonte da imagem: Randal E. Bryant (Author), David R. O'Hallaron (Author), Computer Systems: A Programmer's Perspective, Global Edition 3rd Edition