Skip to content

Simulation of a computational system with a single cache between processor and main memory to test various configurations of cache designs and obtain the existing hit and miss rates.

Notifications You must be signed in to change notification settings

ErnaneJ/cachesim-mapping-ca

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CacheSim AC • Memória Cache - Atividade 5

Universidade Federal do Rio Grande do Norte (UFRN)
Centro de Tecnologia - Departamento de Engenharia de Computação e Automação (DCA)

  • Disciplina: DCA0104 – Arquitetura de Computadores
  • Professor: Diogo Pinheiro Fernandes Pedrosa

Este repositório consiste em construir uma simulação de um sistema computacional com cache única entre processador e memória principal para testar várias configurações de projetos de cache e, com isso, obter as taxas de acertos e falhas existentes. Para seu desenvolvimento foi utilizado a biblioteca pyCacheSim.

As simulações versam sobre um sistema hipotético com uma memória principal de 64K bytes de tamanho, endereçada a byte (ou seja, o tamanho da palavra desse sistema é igual a 1 byte). Esse sistema é de um único processador, com uma cache simples de dados (cache única), de 4K bytes de tamanho.

Para as simulações foram utilizados dados de referências que estão presentes no arquivo de referêcia 1 e 2.

Para cada uma dessas sequências (também chamada de traço da memória), foi simulado:

  1. Uma cache diretamente mapeada, com blocos de 8, 16, 32 e 64 bytes, respectivamente; e
  2. Uma cache associativa em conjunto com 2, 4, 8 e 16 vias, sendo que cada uma delas apresenta blocos de 8, 16, 32 e 64 bytes, respectivamente.

Para o caso da simulação com cache associativa em conjunto, foram testados as três políticas de substituição de linha (LRU, FIFO e aleatória).

Já para a simulação de uma cache totalmente associativa, consideramos uma configuração diferente: cache única de dados, de 1K bytes de tamanho, com linhas armazenando 8, 16, 32 e 64 bytes, respectivamente.

Ou seja, foram realizadas 4 (mapeamento direto) + 16 (associativo em conjunto) + 4 (totalmente associativo) simulações diferentes. Em cada uma delas, foi obtido as taxas de acerto e de falha de cache. Esses resultados são gerados automaticamente e armazenados no csv presente aqui.

Com base nos dados obtidos foi possível realizar a construção de gráficos por meio da biblioteca MathPlotLib para facilitar a leitura e interpretação dos dados. Esses gráficos estão presentes na tabela abaixo e, neles, é possível efetuar um comparativo entre a taxa de erros e acertos para cada configuração.

- -
associativo por conjuntos aleatorio associativo por conjuntos fifo
associativo por conjuntos lru mapeamento_direto
totalmente associativo aleatorio totalmente associativo fifo
totalmente associativo lru -

About

Simulation of a computational system with a single cache between processor and main memory to test various configurations of cache designs and obtain the existing hit and miss rates.

Topics

Resources

Stars

Watchers

Forks

Languages