gem5  v20.1.0.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
MemChecker::WriteCluster Class Reference

The WriteCluster class captures sets of writes where all writes are overlapping with at least one other write. More...

#include <mem_checker.hh>

Public Member Functions

 WriteCluster ()
 
void startWrite (Serial serial, Tick _start, uint8_t data)
 Starts a write transaction. More...
 
void completeWrite (Serial serial, Tick _complete)
 Completes a write transaction. More...
 
void abortWrite (Serial serial)
 Aborts a write transaction. More...
 
bool isComplete () const
 

Public Attributes

Tick start
 Start of earliest write in cluster. More...
 
Tick complete
 Completion of last write in cluster. More...
 
std::unordered_map< Serial, Transactionwrites
 Map of Serial --> Transaction of all writes in cluster; contains all, in-flight or already completed. More...
 

Private Attributes

Tick completeMax
 
size_t numIncomplete
 

Detailed Description

The WriteCluster class captures sets of writes where all writes are overlapping with at least one other write.

Capturing writes in this way simplifies pruning of writes.

Definition at line 138 of file mem_checker.hh.

Constructor & Destructor Documentation

◆ WriteCluster()

MemChecker::WriteCluster::WriteCluster ( )
inline

Definition at line 141 of file mem_checker.hh.

Member Function Documentation

◆ abortWrite()

void MemChecker::WriteCluster::abortWrite ( MemChecker::Serial  serial)

Aborts a write transaction.

Parameters
serialUnique identifier of a write previously started.

Definition at line 101 of file mem_checker.cc.

References warn.

◆ completeWrite()

void MemChecker::WriteCluster::completeWrite ( MemChecker::Serial  serial,
Tick  _complete 
)

Completes a write transaction.

Parameters
serialUnique identifier of a write previously started.
_completeWhen the write was sent off to the memory subsystem.

Definition at line 70 of file mem_checker.cc.

References MemChecker::TICK_FUTURE, and warn.

◆ isComplete()

bool MemChecker::WriteCluster::isComplete ( ) const
inline
Returns
true if this cluster's write all completed, false otherwise.

Definition at line 175 of file mem_checker.hh.

References complete, and MemChecker::TICK_FUTURE.

Referenced by startWrite().

◆ startWrite()

void MemChecker::WriteCluster::startWrite ( MemChecker::Serial  serial,
Tick  _start,
uint8_t  data 
)

Starts a write transaction.

Parameters
serialUnique identifier of the write.
_startWhen the write was sent off to the memory subsystem.
dataThe data that this write passed to the memory subsystem.

Definition at line 43 of file mem_checker.cc.

References chatty_assert, complete, data, isComplete(), numIncomplete, start, MemChecker::TICK_FUTURE, and writes.

Member Data Documentation

◆ complete

Tick MemChecker::WriteCluster::complete

Completion of last write in cluster.

Definition at line 179 of file mem_checker.hh.

Referenced by isComplete(), and startWrite().

◆ completeMax

Tick MemChecker::WriteCluster::completeMax
private

Definition at line 188 of file mem_checker.hh.

◆ numIncomplete

size_t MemChecker::WriteCluster::numIncomplete
private

Definition at line 189 of file mem_checker.hh.

Referenced by startWrite().

◆ start

Tick MemChecker::WriteCluster::start

Start of earliest write in cluster.

Definition at line 178 of file mem_checker.hh.

Referenced by startWrite().

◆ writes

std::unordered_map<Serial, Transaction> MemChecker::WriteCluster::writes

Map of Serial --> Transaction of all writes in cluster; contains all, in-flight or already completed.

Definition at line 185 of file mem_checker.hh.

Referenced by startWrite().


The documentation for this class was generated from the following files:

Generated on Wed Sep 30 2020 14:02:27 for gem5 by doxygen 1.8.17