🚀 Projeto 17 – Simulador de Cache e Registradores Von Neumann
🎯 Objetivo
Desenvolver um modelo conceitual simulando o ciclo de busca e execução (Fetch-Decode-Execute) e a hierarquia de memória entre Registradores, Cache L1 e RAM.
📋 Requisitos do Projeto
- Simular a busca de dados: Implementar uma rotina de busca de dados que primeiro verifica o registrador L1 Cache (
hit) e, em caso de falha (miss), busca na memória RAM e atualiza a Cache L1. - Medição de Desempenho: Calcular a taxa de acerto (Hit Ratio) após \(N\) acessos à memória.
💡 Algoritmo de Referência
class MemoriaHierarquica:
def __init__(self):
self.ram = {i: f"Dado_{i}" for i in range(100)}
self.cache_l1 = {}
self.hits = 0
self.misses = 0
def buscar(self, endereco: int) -> str:
if endereco in self.cache_l1:
self.hits += 1
return f"[CACHE HIT] {self.cache_l1[endereco]}"
else:
self.misses += 1
dado = self.ram.get(endereco, "NULO")
self.cache_l1[endereco] = dado # Preenche Cache
return f"[CACHE MISS -> RAM] {dado}"
# Teste
mem = MemoriaHierarquica()
print(mem.buscar(10)) # Miss
print(mem.buscar(10)) # Hit