This commit is contained in:
parent
c19d6f475d
commit
a6f51e4558
|
|
@ -5,7 +5,7 @@ Cache::Cache(char *argv[])
|
|||
{
|
||||
this->blockSize = atoi(argv[1]);
|
||||
this->size = atoi(argv[2]);
|
||||
this->Assoc = atoi(argv[3]);
|
||||
this->assoc = atoi(argv[3]);
|
||||
this->replicementPolicy = atoi(argv[4]);
|
||||
this->writePolicy = atoi(argv[5]);
|
||||
|
||||
|
|
@ -54,12 +54,14 @@ uint32_t Cache::getMaxIndex(){
|
|||
uint32_t Cache::getAssoc() {
|
||||
return this->assoc;
|
||||
}
|
||||
|
||||
int Cache::log2_floor(uint32_t x) {
|
||||
return x == 0 ? -1 : 31 - __builtin_clz(x);
|
||||
}
|
||||
CacheTIO Cache::Address2TIO(uint32_t addr)
|
||||
{
|
||||
uint32_t offset = addr & om;
|
||||
uint32_t index = (addr & im) >> o;
|
||||
uint32_t tag = addr >> (o + i);
|
||||
uint32_t offset = addr & this->offsetMask;
|
||||
uint32_t index = (addr & this->indexMask) >> this->offset;
|
||||
uint32_t tag = addr >> (this->offset + this->index);
|
||||
return {tag, index, offset};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ public:
|
|||
|
||||
uint32_t getMaxIndex();
|
||||
uint32_t getAssoc();
|
||||
int log2_floor(uint32_t x)
|
||||
|
||||
void writeCache(uint32_t address);
|
||||
void readCache(uint32_t address);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#define LFU 1
|
||||
|
||||
#define WBWA 0
|
||||
#define WTNA
|
||||
#define WTNA 1
|
||||
|
||||
#include <algorithm>
|
||||
#include <cstdint>
|
||||
|
|
|
|||
Loading…
Reference in New Issue