Main Page | Modules | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages | Examples

ac_cache Class Reference

#include <ac_cache.H>

Inheritance diagram for ac_cache:

Inheritance graph
[legend]
Collaboration diagram for ac_cache:

Collaboration graph
[legend]
List of all members.

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 ()

Detailed Description

ArchC class for cache devices This class contains cache parameters for behavioral simulation. The user must define three parameters: using macros for BLOCK_SIZE, NUM_BLOCKS and POLICIES

Definition at line 78 of file ac_cache.H.


Constructor & Destructor Documentation

ac_cache::ac_cache char *  n,
unsigned  bs,
unsigned  nb,
unsigned  ss,
unsigned  st,
unsigned char  wp = 0x11
 

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.


Member Function Documentation

unsigned ac_cache::get_chosen unsigned  s  ) 
 

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.

ac_word ac_cache::read unsigned  address  )  [virtual]
 

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:

unsigned char ac_cache::read_byte unsigned  address  )  [virtual]
 

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:

ac_Hword ac_cache::read_half unsigned  address  )  [virtual]
 

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:

void ac_cache::request_write_block ac_cache_if *  client,
unsigned  address,
char *  datum,
unsigned  size_bytes
 

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:

void ac_cache::write unsigned  address,
ac_word  datum
[virtual]
 

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:

void ac_cache::write_byte unsigned  address,
unsigned char  datum
[virtual]
 

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:

void ac_cache::write_half unsigned  address,
unsigned short  datum
[virtual]
 

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:


The documentation for this class was generated from the following files:
Generated on Thu Jun 24 08:30:08 2004 for ArchC by doxygen 1.3.4