38#ifndef __MEM_RUBY_SYSTEM_HTMSEQUENCER_HH__
39#define __MEM_RUBY_SYSTEM_HTMSEQUENCER_HH__
45#include "mem/ruby/protocol/HtmCallbackMode.hh"
46#include "mem/ruby/protocol/HtmFailedInCacheReason.hh"
49#include "params/RubyHTMSequencer.hh"
66 const HtmCallbackMode,
67 const HtmFailedInCacheReason);
69 bool empty()
const override;
70 void print(std::ostream& out)
const override;
88 RubyRequestType primary_type,
89 RubyRequestType secondary_type)
override;
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void rubyHtmCallback(PacketPtr pkt, const HtmFailedInCacheReason fail_r)
bool empty() const override
statistics::Vector m_htm_transaction_abort_cause
Causes for HTM transaction aborts.
HtmCacheFailure htmRetCodeConversion(const HtmFailedInCacheReason rc)
Htm return code conversion.
HTMSequencer(const RubyHTMSequencerParams &p)
Counter m_htmstart_instruction
RequestStatus insertRequest(PacketPtr pkt, RubyRequestType primary_type, RubyRequestType secondary_type) override
statistics::Histogram m_htm_transaction_cycles
Histogram of cycle latencies of HTM transactions.
statistics::Histogram m_htm_transaction_instructions
Histogram of instruction lengths of HTM transactions.
void htmCallback(Addr, const HtmCallbackMode, const HtmFailedInCacheReason)
std::deque< SequencerRequest * > m_htmCmdRequestTable
void print(std::ostream &out) const override
HTMSequencer(const HTMSequencer &obj)
HTMSequencer & operator=(const HTMSequencer &obj)
A vector of scalar stats.
std::ostream & operator<<(std::ostream &os, const BoolVec &myvector)
double Counter
All counters are of 64-bit values.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
uint64_t Tick
Tick count type.