Pular para conteúdo

🚀 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

  1. 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.
  2. 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