temporal_state transaction
API Reference Manual  /  5 Model-to-Simulator Interfaces  / 

timing_model

Description
The timing_model interface is used to communicate stall times for memory accesses. It is typically exported by cache models. The operate() function is then called on every memory access that misses in the STC, and the return value from the call is the number of cycles to stall.

The snoop_memory interface has the exact same layout as the timing_model interface, but its operate() function is called after the memory access has been performed. The return value from the operate() function of a snoop_memory interface is ignored.

The operate function is invoked via the timing_model attribute of the memory-space where the STC miss happens.

See the Model Builder User's Guide for more information on how to use these interfaces.

SIM_INTERFACE(timing_model) {
        cycles_t (*operate)(conf_object_t *NOTNULL mem_hier,
                            conf_object_t *NOTNULL space,
                            map_list_t *map_list,
                            generic_transaction_t *NOTNULL mem_op);
};

#define TIMING_MODEL_INTERFACE "timing_model"

SIM_INTERFACE(snoop_memory) {
        cycles_t (*operate)(conf_object_t *NOTNULL mem_hier,
                            conf_object_t *NOTNULL space,
                            map_list_t *map_list,
                            generic_transaction_t *NOTNULL mem_op);
};

#define SNOOP_MEMORY_INTERFACE "snoop_memory"
        

Execution Context
Cell Context for all methods.

temporal_state transaction