Skip to main content

trackers

Cache_trk

Trackers are esential to our hardware testing. They keep an eye on what's happening inside our cache system, writing down every move it makes. Whether it's reading or writing data, or going through different stages of pipe or tq, trackers document it all. These trackers help us catch any weird behavior or mistakes in how our system handles information, helping us understand and fix issues and making sure everything runs ad it should. The motivation behind using trackers is to have a trustworthy record-keeper that helps us improve and perfect our hardware design. With each test execution we deploy a set of trackers, each assigned to record specific facets of our system's behavior.

Cache top Tracker

This tracker monitors the transactions at the top level of the cache. It observes high-level transactions within the cache, capturing information related to read and write operations. It aids in understanding the flow of data between the core and cache, facilitating the identification of potential issues or inefficiencies in transaction handling.

Signals Tracked:

SignalDescription
TimeTime of the cache operation
OPCODEOperation code
addressMemory address being accessed
REG/TQ_IDRegister or Transaction Queue ID
tagTag bits of the cache address
SetSet bits of the cache address
DataData associated with the operation

Pipe I/O tracker

This tracker monitors information related to requests and circulating within the cache pipeline. By capturing the specifics of these internal operations, it enables developers to diagnose performance bottlenecks, optimize data flow, and ensure seamless communication between different stages of the cache.

Signals Tracked:

SignalDescription
TimeTimestamp of the event
REQ/RSPRequest or Response indicator
OPCODEOperation code
TQ IDTransaction Queue ID
AddressMemory address involved in the operation
Rd IndRead indicator
Wr IndWrite indicator
Data/ResultData for a response or result of the operation.
CL DataCache line data

Pipe Stage tracker

This tracker provides a detailed view of the cache pipeline stages. It is motivated by the need to analyze and optimize the cache's internal processing. It provides insights into hit/miss scenarios, data movement, and various stages of the pipeline, facilitating a comprehensive understanding of the cache's behavior.

Signals tracked:

SignalDescription
TimeTimestamp of the event
OPCODEOperation code
TQ IDTransaction Queue ID
s_w_mruMRU status
Hit/MissHit or miss indicator
MB Hit CancelMerge Buffer hit cancel indicator
TagCache line tag
SetCache set
OffsetOffset within the cache line
DataData involved in the operation
s_w_validSet ways valid
s_w_modifiedSet ways modified
s_w_tagsSet ways tags
s_w_victimSet ways victim
s_w_hitSet ways hit
Fill ModifiedIndicate the fill is for a write op
Fill RdIndicate the fill is for a read op
Dirty EvictDirty eviction bit
CL Data Q3Cache line data at Q3
Data Array AddressAddress in the data array
CL DataCache line data

Cache TQ tracker

This tracker focuses on the Transaction Queue (TQ) entries. His role is to monitor TQ entries to aids ensuring proper synchronization between the core and cache, tracking state changes, and identifying any anomalies in the TQ.

Signals tracked:

SignalDescription
TimeTimestamp of the event.
ENTRYTQ entry id
StateCurrent state of the entry
RD/WRIndicates whether it's a read or write op
CL AddressCache line address
MB DataMerge Buffer data
REG IDRegister ID
CL Word OffsetOffset within the cache line
Rd/Wr HitIndicates read or write hit

Cache ref

These tracker log transactions between the core and cache.

Signals tracked:

SignalDescription
OPCODEOperation code
AddressMemory address involved in the operation.
REGRegister involved
TagCache line tag
SetCache set
DataData involved in the operation