gem5
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 141 of file mem_checker.hh.

Constructor & Destructor Documentation

◆ WriteCluster()

MemChecker::WriteCluster::WriteCluster ( )
inline

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 104 of file mem_checker.cc.

References complete, completeMax, numIncomplete, warn, and writes.

◆ 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 73 of file mem_checker.cc.

References complete, completeMax, numIncomplete, MemChecker::TICK_FUTURE, warn, and writes.

◆ isComplete()

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

Definition at line 178 of file mem_checker.hh.

References MemChecker::Transaction::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 46 of file mem_checker.cc.

References chatty_assert, complete, 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 182 of file mem_checker.hh.

Referenced by abortWrite(), completeWrite(), and startWrite().

◆ completeMax

Tick MemChecker::WriteCluster::completeMax
private

Definition at line 191 of file mem_checker.hh.

Referenced by abortWrite(), and completeWrite().

◆ numIncomplete

size_t MemChecker::WriteCluster::numIncomplete
private

Definition at line 192 of file mem_checker.hh.

Referenced by abortWrite(), completeWrite(), and startWrite().

◆ start

Tick MemChecker::WriteCluster::start

Start of earliest write in cluster.

Definition at line 181 of file mem_checker.hh.

Referenced by MemChecker::ByteTracker::completeRead(), MemChecker::ByteTracker::inExpectedData(), and 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 188 of file mem_checker.hh.

Referenced by abortWrite(), completeWrite(), and startWrite().


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

Generated on Fri Apr 20 2018 09:05:08 for gem5 by doxygen 1.8.13