29#ifndef __CPU_TESTERS_SPATTER_GEN_UTILITY_STRUCTS_HH__
30#define __CPU_TESTERS_SPATTER_GEN_UTILITY_STRUCTS_HH__
37#include "enums/SpatterKernelType.hh"
101 const std::queue<AccessPair>& access_pairs
148 uint8_t* pkt_data =
new uint8_t[req->getSize()];
150 for (
int i = 0;
i < req->getSize();
i++) {
192 size_t index_size,
Addr base_index_addr,
193 size_t value_size,
Addr base_value_addr
207 indices.assign(pattern.begin(), pattern.end());
217 std::queue<AccessPair> access_pairs;
219 access_pairs.emplace(index_addr,
indexSize);
223 uint32_t front =
indices.front();
226 access_pairs.emplace(value_addr,
valueSize);
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,...
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void dataDynamic(T *p)
Set the data pointer to a value that should have delete [] called on it.
SpatterAccess::AccessPair AccessPair
void setIndices(const std::vector< uint32_t > &pattern)
enums::SpatterKernelType SpatterKernelType
SpatterAccess * nextSpatterAccess()
SpatterKernel(RequestorID requestor_id, uint32_t id, uint32_t delta, uint32_t count, SpatterKernelType type, size_t index_size, Addr base_index_addr, size_t value_size, Addr base_value_addr)
SpatterKernelType type() const
std::deque< uint32_t > indices
std::queue< Tick > insertionTimes
bool hasReady(Tick current_time) const
void push(T item, Tick insertion_time)
std::enable_if_t< std::is_integral_v< T >, T > random()
Use the SFINAE idiom to choose an implementation based on whether the type is integral or floating po...
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::shared_ptr< Request > RequestPtr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.
Declaration of the Packet class.
A virtual base opaque structure used to hold state associated with the packet (e.g....
PacketPtr createPacket(Addr addr, size_t size, MemCmd cmd) const
SpatterKernelType type() const
Tick tripTimeSoFar() const
enums::SpatterKernelType SpatterKernelType
std::tuple< Addr, size_t > AccessPair
SpatterAccess(RequestorID requestor_id, SpatterKernelType kernel_type, const std::queue< AccessPair > &access_pairs)
SpatterKernelType _kernelType
AccessPair nextAccessPair()
std::queue< AccessPair > accessPairs
void recordTripTime(Tick trip_time)