diff --git a/cache/Project1/Proj1-2/Proj1-2/src/cache.cc b/cache/Project1/Proj1-2/Proj1-2/src/cache.cc index d0e559b..5d48ee8 100644 --- a/cache/Project1/Proj1-2/Proj1-2/src/cache.cc +++ b/cache/Project1/Proj1-2/Proj1-2/src/cache.cc @@ -46,7 +46,7 @@ int CacheConfig::log2(uint32_t x) uint32_t CacheConfig::getMaxIndex() { - return (1 << i); + return (1 << index); } uint32_t CacheConfig::getVictimAs() @@ -61,50 +61,50 @@ uint32_t CacheConfig::getAs() void CacheConfig::setupTIO() { - // setup t, i, b + // setup tag, index, b o = log2(blockSize); - i = log2(s / (blockSize * assoc)); - t = 32 - o - i; + index = log2(s / (blockSize * assoc)); + tag = 32 - o - index; - om = (1 << o) - 1; - im = ((1 << i) - 1) << o; + offsetMask = (1 << o) - 1; + indexMask = ((1 << index) - 1) << o; if (!victimSize) return; - vo = log2(blockSize); - vi = 0; - vt = 32 - vo - vi; + victimOffset = log2(blockSize); + victimIndex = 0; + victimTag = 32 - victimOffset - victimIndex; victimAsso = victimSize / blockSize; - vom = (1 << vo) - 1; - // vim = ((1<> vo; - uint32_t tag = addr >> vo; + // uint32_t index = (addr & vim) >> victimOffset; + uint32_t tag = addr >> victimOffset; return {tag, 0, offset, addr}; } CacheIndex CacheConfig::AddrParser(uint32_t addr) { - uint32_t offset = addr & om; - uint32_t index = (addr & im) >> o; - uint32_t tag = addr >> (o + i); + uint32_t offset = addr & offsetMask; + uint32_t index = (addr & indexMask) >> o; + uint32_t tag = addr >> (o + this->index); return {tag, index, offset, addr}; } uint32_t CacheConfig::UnParser(uint32_t tag, CacheIndex tio) { - return (tag << (o + i)) | (tio.index << o) | (tio.offset); + return (tag << (o + index)) | (tio.index << o) | (tio.offset); } uint32_t CacheConfig::UnParserVic(uint32_t tag, CacheIndex tio) { - return (tag << (vo)) | (tio.offset); + return (tag << (victimOffset)) | (tio.offset); } Cache::Cache(CacheConfig* config, Cache* nextCache) diff --git a/cache/Project1/Proj1-2/Proj1-2/src/cache.h b/cache/Project1/Proj1-2/Proj1-2/src/cache.h index 9397d20..a928d8a 100644 --- a/cache/Project1/Proj1-2/Proj1-2/src/cache.h +++ b/cache/Project1/Proj1-2/Proj1-2/src/cache.h @@ -18,25 +18,25 @@ class CacheConfig public: string level; - int blockSize; // Block Size - int s; // Size - int assoc; // Assoc - int replicementPolicy; // Replicement Policy - int writePolicy; // Write Policy: 1 -> WTNA, 0 -> + int blockSize; + int s; // Size + int assoc; // Assoc + int replicementPolicy; + int writePolicy; - int victimSize; // Victim Size - int victimAsso; // Victim Asso + int victimSize; + int victimAsso; - int t; // tag bit - int i; // index + int tag; // tag bit + int index; // index int o; // offset - uint32_t om; // offset mask - uint32_t im; // index mask + uint32_t offsetMask; + uint32_t indexMask; - int vt; // victim tag bit - int vi; // victim index - int vo; // victim offset + int victimTag; + int victimIndex; + int victimOffset; uint32_t vom; // victim offset mask uint32_t vim; // victim index mask @@ -88,7 +88,6 @@ public: int writeBack = 0; int exchange = 0; - int getCommunication(); double getMR(); double getMR2(); diff --git a/cache/Project1/Proj1-2/Proj1-2/src/main.o b/cache/Project1/Proj1-2/Proj1-2/src/main.o index 47a97fe..7a4ca26 100644 Binary files a/cache/Project1/Proj1-2/Proj1-2/src/main.o and b/cache/Project1/Proj1-2/Proj1-2/src/main.o differ diff --git a/cache/Project1/Proj1-2/Proj1-2/src/sim_cache b/cache/Project1/Proj1-2/Proj1-2/src/sim_cache index f3cec8b..9868214 100644 Binary files a/cache/Project1/Proj1-2/Proj1-2/src/sim_cache and b/cache/Project1/Proj1-2/Proj1-2/src/sim_cache differ