SST  6.1.0
StructuralSimulationToolkit
SST::Interfaces::SimpleMem::Request Class Reference

Represents both memory requests and responses. More...

#include <simpleMem.h>

Public Types

enum  Command {
  Read, Write, ReadResp, WriteResp,
  FlushLine, FlushLineInv, FlushLineResp
}
 Commands and responses possible with a Request object. More...
 
enum  Flags {
  F_NONCACHEABLE = 1<<1, F_LOCKED = 1<<2, F_LLSC = 1<<3, F_LLSC_RESP = 1<<4,
  F_FLUSH_SUCCESS = 1<<5
}
 Flags to specify conditions on a Request. More...
 
typedef uint64_t id_t
 
typedef uint32_t flags_t
 
typedef std::vector< uint8_t > dataVec
 Type of the payload or data.
 

Public Member Functions

 Request (Command cmd, Addr addr, size_t size, dataVec &data, flags_t flags=0, flags_t memFlags=0)
 Constructor.
 
 Request (Command cmd, Addr addr, size_t size, flags_t flags=0, flags_t memFlags=0)
 Constructor.
 
void setGroupId (uint32_t _groupId)
 Set Stats Group Id.
 
void setPayload (const std::vector< uint8_t > &data_in)
 Set the contents of the payload / data field.
 
void setPayload (uint8_t *data_in, size_t len)
 Set the contents of the payload / data field.
 
void setVirtualAddress (const Addr newVA)
 Set the virtual address associated with the operation.
 
uint64_t getVirtualAddress ()
 Get the virtual address associated with the operation.
 
void setInstructionPointer (const Addr newIP)
 
Addr getInstructionPointer ()
 Sets the instruction pointer associated with the operation.
 

Data Fields

Command cmd
 
Addr addr
 
size_t size
 
dataVec data
 
flags_t flags
 
flags_t memFlags
 
id_t id
 
uint32_t groupId
 
Addr instrPtr
 
Addr virtualAddr
 

Detailed Description

Represents both memory requests and responses.

Member Typedef Documentation

Member Enumeration Documentation

Commands and responses possible with a Request object.

Enumerator
Read 

Issue a Read from Memory

Write 

Issue a Write to Memory

ReadResp 

Response from Memory to a Read

WriteResp 

Response from Memory to a Write

FlushLine 

Cache flush request - writeback specified line throughout memory system

FlushLineInv 

Cache flush request - writeback and invalidate specified line throughout memory system

FlushLineResp 

Response to FlushLine; flag F_FLUSH_SUCCESS indicates success or failure

Flags to specify conditions on a Request.

Enumerator
F_NONCACHEABLE 

This request should not be cached

F_LOCKED 

This request should be locked. A LOCKED read should be soon followed by a LOCKED write (to unlock)

F_FLUSH_SUCCESS 

This flag is set if the flush was successful. Flush may fail due to LOCKED lines

Field Documentation

Addr SST::Interfaces::SimpleMem::Request::addr

Target address

Command SST::Interfaces::SimpleMem::Request::cmd

Command to issue

dataVec SST::Interfaces::SimpleMem::Request::data

Payload data (for Write, or ReadResp)

flags_t SST::Interfaces::SimpleMem::Request::flags

Flags associated with this request or response

id_t SST::Interfaces::SimpleMem::Request::id

Unique ID to identify responses with requests

Addr SST::Interfaces::SimpleMem::Request::instrPtr

Instruction pointer associated with the operation

Referenced by getInstructionPointer().

flags_t SST::Interfaces::SimpleMem::Request::memFlags

Memory flags - ignored by caches except to be passed through with request to main memory

size_t SST::Interfaces::SimpleMem::Request::size

Size of this request or response

Addr SST::Interfaces::SimpleMem::Request::virtualAddr

Virtual address associated with the operation

Referenced by getVirtualAddress().


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