41#ifndef __CPU_MEMTEST_MEMTEST_HH__
42#define __CPU_MEMTEST_MEMTEST_HH__
44#include <unordered_map>
45#include <unordered_set>
49#include "params/MemTest.hh"
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Cycles is a wrapper class for representing cycle counts, i.e.
void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the peer.
Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from our peer.
void recvTimingSnoopReq(PacketPtr pkt)
Receive a timing snoop request from the peer.
CpuPort(const std::string &_name, MemTest &_memtest)
void recvReqRetry()
Called by the peer if sendTimingReq was called on this peer (causing recvTimingReq to be called on th...
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the peer.
The MemTest class tests a cache coherent memory system by generating false sharing and verifying the ...
EventFunctionWrapper tickEvent
const bool suppressFuncErrors
std::unordered_set< Addr > outstandingAddrs
gem5::MemTest::MemTestStats stats
std::unordered_map< Addr, uint8_t > atomicPendingData
const Cycles progressCheck
const unsigned percentFunctional
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port with a given name and index.
Addr blockAlign(Addr addr) const
Get the block aligned address.
const unsigned percentAtomic
const unsigned percentReads
void completeRequest(PacketPtr pkt, bool functional=false)
Complete a request by checking the response.
const unsigned progressInterval
std::unordered_map< Addr, uint8_t > referenceData
const unsigned sizeBlocks
EventFunctionWrapper noRequestEvent
EventFunctionWrapper noResponseEvent
RequestorID requestorId
Request id for all generated traffic.
bool sendPkt(PacketPtr pkt)
const unsigned percentUncacheable
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Ports are used to interface objects to each other.
A RequestPort is a specialisation of a Port, which implements the default protocol for the three diff...
This is a simple scalar statistic, like a counter.
ClockedObject declaration and implementation.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
const PortID InvalidPortID
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
uint64_t Tick
Tick count type.
Declaration of Statistics objects.
statistics::Scalar numWrites
statistics::Scalar numReads
statistics::Scalar numAtomics
MemTestStats(statistics::Group *parent)