gem5  v21.1.0.2
Public Member Functions | Public Attributes | Private Attributes | List of all members
gem5::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 143 of file mem_checker.hh.

Constructor & Destructor Documentation

◆ WriteCluster()

gem5::MemChecker::WriteCluster::WriteCluster ( )
inline

Definition at line 146 of file mem_checker.hh.

Member Function Documentation

◆ abortWrite()

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

Aborts a write transaction.

Parameters
serialUnique identifier of a write previously started.

Definition at line 106 of file mem_checker.cc.

References warn.

◆ completeWrite()

void gem5::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 74 of file mem_checker.cc.

References gem5::MemChecker::TICK_FUTURE, and warn.

◆ isComplete()

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

Definition at line 180 of file mem_checker.hh.

References complete, and gem5::MemChecker::TICK_FUTURE.

Referenced by startWrite().

◆ startWrite()

void gem5::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 47 of file mem_checker.cc.

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

Member Data Documentation

◆ complete

Tick gem5::MemChecker::WriteCluster::complete

Completion of last write in cluster.

Definition at line 184 of file mem_checker.hh.

Referenced by isComplete(), and startWrite().

◆ completeMax

Tick gem5::MemChecker::WriteCluster::completeMax
private

Definition at line 193 of file mem_checker.hh.

◆ numIncomplete

size_t gem5::MemChecker::WriteCluster::numIncomplete
private

Definition at line 194 of file mem_checker.hh.

Referenced by startWrite().

◆ start

Tick gem5::MemChecker::WriteCluster::start

Start of earliest write in cluster.

Definition at line 183 of file mem_checker.hh.

Referenced by startWrite().

◆ writes

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

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

Definition at line 190 of file mem_checker.hh.

Referenced by startWrite().


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

Generated on Tue Sep 21 2021 12:27:45 for gem5 by doxygen 1.8.17