-
Notifications
You must be signed in to change notification settings - Fork 0
/
cachecontrol.h
59 lines (41 loc) · 1.42 KB
/
cachecontrol.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <iostream>
#include <stdlib.h>
#include <string>
#include <stdio.h>
#include "cache.h"
using namespace std;
#define SPLIT_CACHE 1 // Se Ture, tem cache de dados e cache de instruções
#define NIVEIS_DE_CACHE 2 //define a quantidade de níveis de cache que serão criados (L1, L2, L3, etc.)
#define CHKBIT(n, p) ((n >> p) & 1U)
// definição da classe
class cachecontrol {
private:
// propriedades privadas
cache* cacheDados;
cache* cacheInstrucoes;
bool split_cache;
int niveis_de_cache;
int bits_byteOffset;
int bits_index;
int maxval_byteOffset;
// métodos privados
string* split_comando(string comando);
string* split_config(string config);
int64_t* split_endereco(int64_t endereco);
int64_t endereco_decimal(string endereco);
public:
// construtores
cachecontrol();
cachecontrol(string config_file);
// métodos públicos
string processaComando(string comando);
// expondo propriedades
int getMissesInstrucoes(int nivel);
int getHitsInstrucoes(int nivel);
int getLeiturasInstrucoes(int nivel);
int getGravacoesInstrucoes(int nivel);
int getMissesDados(int nivel);
int getHitsDados(int nivel);
int getLeiturasDados(int nivel);
int getGravacoesDados(int nivel);
};