#include <ac_cache.H>
Inheritance diagram for ac_cache:
Public Member Functions | |
virtual ac_word | read (unsigned address) |
Reading the content of an address. | |
virtual unsigned char | read_byte (unsigned address) |
Reading a byte. | |
virtual ac_Hword | read_half (unsigned address) |
Reading half word. | |
virtual void | write (unsigned address, ac_word datum) |
Writing into the cache. | |
virtual void | write_byte (unsigned address, unsigned char datum) |
Class's Constructor. | |
virtual void | write_half (unsigned address, unsigned short datum) |
Class's Constructor. | |
ac_cache (char *n, unsigned bs, unsigned nb, unsigned ss, unsigned st, unsigned char wp=0x11) | |
Class's Constructor. | |
~ac_cache () | |
Class's Destructor. | |
void | bindTo (ac_cache &lower) |
void | set_codeSize (unsigned s) |
Method to initialize Data array dynamically. | |
unsigned | get_chosen (unsigned s) |
void | update (unsigned s, unsigned e) |
Method that implements the policies of replacement, based on the last access. | |
unsigned | get_codeSize () |
void | stall () |
void | ready () |
void | request_block (ac_cache_if *client, unsigned address, unsigned size_bytes) |
void | request_write_byte (ac_cache_if *client, unsigned address, unsigned char datum) |
void | request_write_half (ac_cache_if *client, unsigned address, unsigned short datum) |
void | request_write (ac_cache_if *client, unsigned address, ac_word datum) |
void | request_write_block (ac_cache_if *client, unsigned address, char *datum, unsigned size_bytes) |
void | response_block (char *block) |
void | response_write_byte () |
void | response_write_half () |
void | response_write () |
void | response_write_block () |
void | bindToNext (ac_cache_if &next) |
void | bindToPrevious (ac_cache_if &previous) |
void | process_request () |
Definition at line 78 of file ac_cache.H.
|
Class's Constructor. The needed arguments are 'n', 'bs', 'nb', 'ss' and 'st': 'n' is the object's name, for instance: "IC2" (Instruction Cache Level 2). 'bs' is the Block Size described by the number of words at each cache line. 'nb' is the Number of Blocks (or lines) of the cache. 'ss' is the Set Size (associativity) in number of grouped blocks at each set. 'st' is the Strategy used for replacement (LRU or RANDOM) 'wp' is the write policiy Definition at line 582 of file ac_cache.cpp. |
|
Least-recently used (LRU) Spreads allocation uniformly Returns the value in the chosen list at the suitable set Definition at line 659 of file ac_cache.cpp. |
|
Reading the content of an address. Takes as argument the 32-bit address. Searches inside the cache cobject the address asked. The operation can result in a Hit, when the addressed tag is present and the valid bit is ok, returning the resquested data else it can gets a Miss, asking the next hierarchical level for the data, through the "next_level" pointer. Reimplemented from ac_storage. Definition at line 296 of file ac_cache.cpp. References ac_storage::name, ac_storage::read(), and update(). |
Here is the call graph for this function:
|
Reading a byte. Takes the address and the data to be writen. Searches inside the cache cobject the address asked. The operation can result in a Hit, when the addressed tag is present and thus the new data can be writen else it can gets a Miss, wrinting at the next_level too. Reimplemented from ac_storage. Definition at line 326 of file ac_cache.cpp. References ac_storage::name, ac_storage::read_byte(), and update(). |
Here is the call graph for this function:
|
Reading half word. Trace files generating Reimplemented from ac_storage. Definition at line 355 of file ac_cache.cpp. References ac_storage::name, ac_storage::read_half(), and update(). |
Here is the call graph for this function:
|
AC_WORDSIZE/8 AC_WORDSIZE/8 Definition at line 792 of file ac_cache.cpp. References write(). |
Here is the call graph for this function:
|
Writing into the cache. Trace files generating Reimplemented from ac_storage. Definition at line 385 of file ac_cache.cpp. References ac_storage::name, update(), and ac_storage::write(). Referenced by request_write_block(). |
Here is the call graph for this function:
|
Class's Constructor. The needed arguments are 'n', 'bs', 'nb', 'ss' and 'st': 'n' is the object's name, for instance: "IC2" (Instruction Cache Level 2). Reimplemented from ac_storage. Definition at line 453 of file ac_cache.cpp. References ac_storage::name, ac_storage::read_byte(), update(), and ac_storage::write_byte(). |
Here is the call graph for this function:
|
Class's Constructor. The needed arguments are 'n', 'bs', 'nb', 'ss' and 'st': 'n' is the object's name, for instance: "IC2" (Instruction Cache Level 2). 'st' is the Strategy used for replacement (LRU or RANDOM) Definition at line 515 of file ac_cache.cpp. References ac_storage::name, ac_storage::read_half(), update(), and ac_storage::write_half(). |
Here is the call graph for this function: