diff options
author | Siddarth Suresh <155843085+SiddarthSuresh98@users.noreply.github.com> | 2025-03-21 21:55:48 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-21 21:55:48 -0400 |
commit | 82096f8cea42d78505b49d9f8ba22573daa2cc12 (patch) | |
tree | 33b40e742db09c1bb2b630f28343d53520ba1f2b /src/storage/cache.cc | |
parent | b2dbd9fa44f57bfa7b67f828ed8b354f4af3a0b6 (diff) | |
parent | 7e01ac0891452dfda93c2dcfd0817a4d43871c4b (diff) |
Merge pull request #28 from bdunahu/bdunahuer
Rewrite current cache.cc tests, add test-helper function to dram
Diffstat (limited to 'src/storage/cache.cc')
-rw-r--r-- | src/storage/cache.cc | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/storage/cache.cc b/src/storage/cache.cc index 3e2a5e0..f15c919 100644 --- a/src/storage/cache.cc +++ b/src/storage/cache.cc @@ -34,7 +34,7 @@ Response Cache::write_word(Accessor accessor, signed int data, int address) this->requester = accessor; if (this->requester == accessor) { - fetch_resource(address); + handle_miss(address); if (this->is_waiting) r = BLOCKED; else if (this->wait_time == 0) { @@ -59,7 +59,7 @@ Response Cache::write_line( this->requester = accessor; if (this->requester == accessor) { - fetch_resource(address); + handle_miss(address); if (this->is_waiting) r = BLOCKED; else if (this->wait_time == 0) { @@ -84,7 +84,7 @@ Response Cache::read_line( if (this->requester == IDLE) this->requester = accessor; if (this->requester == accessor) { - fetch_resource(address); + handle_miss(address); if (this->is_waiting) r = BLOCKED; else if (this->wait_time == 0) { @@ -103,7 +103,7 @@ Response Cache::read_word(Accessor accessor, int address, signed int &data) if (this->requester == IDLE) this->requester = accessor; if (this->requester == accessor) { - fetch_resource(address); + handle_miss(address); if (this->is_waiting) r = BLOCKED; else if (this->wait_time == 0) { @@ -116,15 +116,15 @@ Response Cache::read_word(Accessor accessor, int address, signed int &data) return r; } -void Cache::fetch_resource(int expected) +void Cache::handle_miss(int expected) { - Response r = OK; - Response q; + Response r, q; int tag, index, offset; std::array<signed int, LINE_SIZE> *actual; std::array<int, 2> *meta; get_bit_fields(expected, &tag, &index, &offset); + r = OK; meta = &this->meta.at(index); actual = &this->data->at(index); |