Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ernanej/cachesim-mapping-ca
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.
https://github.com/ernanej/cachesim-mapping-ca
cache cachesim dca0104 pycachesim
Last synced: 24 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/ernanej/cachesim-mapping-ca
- Owner: ErnaneJ
- Created: 2023-06-02T03:12:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-05T03:14:22.000Z (over 1 year ago)
- Last Synced: 2024-10-24T21:59:13.634Z (2 months ago)
- Topics: cache, cachesim, dca0104, pycachesim
- Language: Python
- Homepage:
- Size: 861 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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](https://github.com/RRZE-HPC/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](./data/reference-1.txt) e [2](./data/reference-2.txt).
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](./data/result.csv).
Com base nos dados obtidos foi possível realizar a construção de gráficos por meio da biblioteca [MathPlotLib](https://matplotlib.org/) 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](./assets/imgs/associativo_por_conjuntos_aleatorio.png)|![associativo por conjuntos fifo](./assets/imgs/associativo_por_conjuntos_fifo.png)|
|![associativo por conjuntos lru](./assets/imgs/associativo_por_conjuntos_lru.png)|![mapeamento_direto](./assets/imgs/mapeamento_direto.png)|
|![totalmente associativo aleatorio](./assets/imgs/totalmente_associativo_aleatorio.png)|![totalmente associativo fifo](./assets/imgs/totalmente_associativo_fifo.png)|
|![totalmente associativo lru](./assets/imgs/totalmente_associativo_lru.png)| - |