diff options
author | bd <bdunahu@operationnull.com> | 2025-03-05 14:17:45 -0500 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-05 14:17:45 -0500 |
commit | db158de830e4fd4ab20ef5d357e24147c7a9281d (patch) | |
tree | a00ae7890a5b8eba91f81ac84d20a5ee0c5be0d6 /inc/cache.h | |
parent | b4d1e8248400015f2fd0c4b0f04cf33dc867e9cd (diff) |
constructors + method declarations for cache, dram, reponse, storage
Diffstat (limited to 'inc/cache.h')
-rw-r--r-- | inc/cache.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/inc/cache.h b/inc/cache.h new file mode 100644 index 0000000..e808727 --- /dev/null +++ b/inc/cache.h @@ -0,0 +1,25 @@ +#ifndef CACHE_H +#define CACHE_H +#include <storage.h> + +class Cache : public Storage +{ + public: + /** + * Constructor. + * @param The number of `lines` contained in memory. The total number of + * words is this number multiplied by 4. + * @param The next lowest level in storage. Methods from this object are + * called in case of a cache miss. + * @param The number of clock cycles each access takes. + * @return A new cache object. + */ + Cache(int lines, Storage *lower, int delay); + ~Cache(); + + Response *write(Accessor accessor, signed int data, int address) override; + Response *read(Accessor accessor, int address) override; + int **view(int base, int lines) override; +}; + +#endif /* CACHE_H_INCLUDED */ |