diff options
Diffstat (limited to 'qtmips_machine/cache.h')
-rw-r--r-- | qtmips_machine/cache.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/qtmips_machine/cache.h b/qtmips_machine/cache.h index 6027bd3..d08e66a 100644 --- a/qtmips_machine/cache.h +++ b/qtmips_machine/cache.h @@ -101,6 +101,15 @@ private: void kick(unsigned associat_indx, unsigned row) const; std::uint32_t base_address(std::uint32_t tag, unsigned row) const; void update_statistics() const; + inline void compute_row_col_tag(std::uint32_t &row, std::uint32_t &col, + std::uint32_t &tag, std::uint32_t address) const { + address = address >> 2; + std::uint32_t ssize = cnf.blocks() * cnf.sets(); + tag = address / ssize; + std::uint32_t index = address % ssize; + row = index / cnf.blocks(); + col = index % cnf.blocks(); + } }; } |