Go to the documentation of this file.
42 #ifndef __CPU_SIMPLE_BASE_HH__
43 #define __CPU_SIMPLE_BASE_HH__
73 struct BaseSimpleCPUParams;
74 namespace branch_prediction
78 class SimpleExecContext;
150 panic(
"readMem() is not implemented");
157 panic(
"initiateMemRead() is not implemented\n");
165 panic(
"writeMem() is not implemented\n");
172 panic(
"amoMem() is not implemented\n");
179 panic(
"initiateMemAMO() is not implemented\n");
208 #endif // __CPU_SIMPLE_BASE_HH__
virtual Fault initiateMemAMO(Addr addr, unsigned size, Request::Flags flags, AtomicOpFunctorPtr amo_op)
void serializeThread(CheckpointOut &cp, ThreadID tid) const override
Serialize a single thread.
Counter totalOps() const override
std::vector< SimpleExecContext * > threadInfo
Trace::InstRecord * traceData
StaticInstPtr curStaticInst
Current instruction.
virtual Fault amoMem(Addr addr, uint8_t *data, unsigned size, Request::Flags flags, AtomicOpFunctorPtr amo_op)
BaseSimpleCPU(const BaseSimpleCPUParams ¶ms)
void unserializeThread(CheckpointIn &cp, ThreadID tid) override
Unserialize one thread.
void checkForInterrupts()
virtual void htmSendAbortSignal(HtmFailureFaultCause cause)=0
This function is used to instruct the memory subsystem that a transaction should be aborted and the s...
virtual Fault writeMem(uint8_t *data, unsigned size, Addr addr, Request::Flags flags, uint64_t *res, const std::vector< bool > &byte_enable=std::vector< bool >())
virtual Fault readMem(Addr addr, uint8_t *data, unsigned size, Request::Flags flags, const std::vector< bool > &byte_enable=std::vector< bool >())
std::shared_ptr< FaultBase > Fault
const Params & params() const
void setupFetchRequest(const RequestPtr &req)
std::shared_ptr< Request > RequestPtr
std::list< ThreadID > activeThreads
void traceFault()
Handler used when encountering a fault; its purpose is to tear down the InstRecord.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
branch_prediction::BPredUnit * branchPred
void resetStats() override
Callback to reset stats.
virtual Fault initiateMemRead(Addr addr, unsigned size, Request::Flags flags, const std::vector< bool > &byte_enable=std::vector< bool >())
double Counter
All counters are of 64-bit values.
void serviceInstCountEvents()
Basically a wrapper class to hold both the branch predictor and the BTB.
void wakeup(ThreadID tid) override
void advancePC(const Fault &fault)
std::ostream CheckpointOut
void haltContext(ThreadID thread_num) override
Notify the CPU that the indicated context is now halted.
std::unique_ptr< AtomicOpFunctor > AtomicOpFunctorPtr
Counter totalInsts() const override
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
StaticInstPtr curMacroStaticInst
virtual Fault initiateHtmCmd(Request::Flags flags)=0
Hardware transactional memory commands (HtmCmds), e.g.
int16_t ThreadID
Thread index/ID type.
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
#define panic(...)
This implements a cprintf based panic() function.
Generated on Tue Sep 21 2021 12:24:57 for gem5 by doxygen 1.8.17