gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
base.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011-2013, 2017, 2020 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software
9 * licensed hereunder. You may use the software subject to the license
10 * terms below provided that you ensure that this notice is replicated
11 * unmodified and in its entirety in all distributions of the software,
12 * modified or unmodified, in source code or in binary form.
13 *
14 * Copyright (c) 2002-2005 The Regents of The University of Michigan
15 * Copyright (c) 2011 Regents of the University of California
16 * All rights reserved.
17 *
18 * Redistribution and use in source and binary forms, with or without
19 * modification, are permitted provided that the following conditions are
20 * met: redistributions of source code must retain the above copyright
21 * notice, this list of conditions and the following disclaimer;
22 * redistributions in binary form must reproduce the above copyright
23 * notice, this list of conditions and the following disclaimer in the
24 * documentation and/or other materials provided with the distribution;
25 * neither the name of the copyright holders nor the names of its
26 * contributors may be used to endorse or promote products derived from
27 * this software without specific prior written permission.
28 *
29 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40 */
41
42#ifndef __CPU_BASE_HH__
43#define __CPU_BASE_HH__
44
45#include <memory>
46#include <vector>
47
49#include "arch/generic/mmu.hh"
50#include "base/statistics.hh"
51#include "debug/Mwait.hh"
52#include "dev/intpin.hh"
53#include "mem/htm.hh"
54#include "mem/port_proxy.hh"
55#include "sim/clocked_object.hh"
56#include "sim/eventq.hh"
57#include "sim/full_system.hh"
58#include "sim/insttracer.hh"
59#include "sim/probe/pmu.hh"
60#include "sim/probe/probe.hh"
61#include "sim/signal.hh"
62
63namespace gem5
64{
65
66class BaseCPU;
67struct BaseCPUParams;
68class CheckerCPU;
69class ThreadContext;
70class System;
71
73{
75 bool doMonitor(PacketPtr pkt);
76
77 bool armed;
80 uint64_t val;
81 bool waiting; // 0=normal, 1=mwaiting
83};
84
85class CPUProgressEvent : public Event
86{
87 protected:
92
93 public:
94 CPUProgressEvent(BaseCPU *_cpu, Tick ival = 0);
95
96 void process();
97
98 void interval(Tick ival) { _interval = ival; }
99 Tick interval() { return _interval; }
100
101 void repeatEvent(bool repeat) { _repeatEvent = repeat; }
102
103 virtual const char *description() const;
104};
105
106class BaseCPU : public ClockedObject
107{
108 protected:
109
113
114 // every cpu has an id, put it in the base cpu
115 // Set at initialization, only time a cpuId might change is during a
116 // takeover (which should be done from within the BaseCPU anyway,
117 // therefore no setCpuId() method is provided
119
125 const uint32_t _socketId;
126
129
132
138 uint32_t _taskId;
139
142 uint32_t _pid;
143
146
149
185
190 static std::unique_ptr<GlobalStats> globalStats;
191
193
194 public:
195
202 virtual Port &getDataPort() = 0;
203
210 virtual Port &getInstPort() = 0;
211
213 int cpuId() const { return _cpuId; }
214
216 uint32_t socketId() const { return _socketId; }
217
222
233 Port &getPort(const std::string &if_name,
234 PortID idx=InvalidPortID) override;
235
237 uint32_t taskId() const { return _taskId; }
239 void taskId(uint32_t id) { _taskId = id; }
240
241 uint32_t getPid() const { return _pid; }
242 void setPid(uint32_t pid) { _pid = pid; }
243
244 inline void workItemBegin() { baseStats.numWorkItemsStarted++; }
245 inline void workItemEnd() { baseStats.numWorkItemsCompleted++; }
246 // @todo remove me after debugging with legion done
247 Tick instCount() { return instCnt; }
248
249 protected:
251
252 public:
255 {
256 if (interrupts.empty())
257 return NULL;
258
259 assert(interrupts.size() > tid);
260 return interrupts[tid];
261 }
262
263 virtual void wakeup(ThreadID tid) = 0;
264
265 void postInterrupt(ThreadID tid, int int_num, int index);
266
267 void
268 clearInterrupt(ThreadID tid, int int_num, int index)
269 {
270 interrupts[tid]->clear(int_num, index);
271 }
272
273 void
275 {
276 interrupts[tid]->clearAll();
277 }
278
279 bool
281 {
282 return FullSystem && interrupts[tid]->checkInterrupts();
283 }
284
285 protected:
287
289
291
292 public:
293
294
297 static const uint32_t invldPid = std::numeric_limits<uint32_t>::max();
298
301
303 virtual void activateContext(ThreadID thread_num);
304
307 virtual void suspendContext(ThreadID thread_num);
308
310 virtual void haltContext(ThreadID thread_num);
311
313 int findContext(ThreadContext *tc);
314
316 virtual ThreadContext *getContext(int tn) { return threadContexts[tn]; }
317
319 unsigned
321 {
322 return static_cast<unsigned>(threadContexts.size());
323 }
324
327
328 public:
330 BaseCPU(const Params &params, bool is_checker = false);
331 virtual ~BaseCPU();
332
333 void init() override;
334 void startup() override;
335 void regStats() override;
336
337 void regProbePoints() override;
338
340
341 // Functions to deschedule and reschedule the events to enter the
342 // power gating sleep before and after checkpoiting respectively.
345
353 virtual void switchOut();
354
366 virtual void takeOverFrom(BaseCPU *cpu);
367
379 virtual void setReset(bool state);
380
390 void flushTLBs();
391
397 bool switchedOut() const { return _switchedOut; }
398
408 virtual void verifyMemoryMode() const { };
409
415
417
421 inline Addr cacheLineSize() const { return _cacheLineSize; }
422
433 void serialize(CheckpointOut &cp) const override;
434
445 void unserialize(CheckpointIn &cp) override;
446
453 virtual void serializeThread(CheckpointOut &cp, ThreadID tid) const {};
454
462
463 virtual Counter totalInsts() const = 0;
464
465 virtual Counter totalOps() const = 0;
466
480 void scheduleInstStop(ThreadID tid, Counter insts, std::string cause);
481
490
492
501 void scheduleInstStopAnyThread(Counter max_insts);
502
510 uint64_t getCurrentInstCount(ThreadID tid);
511
512 public:
517
525 virtual void probeInstCommit(const StaticInstPtr &inst, Addr pc);
526
527 protected:
536
547
552
555
558
561
572
579
582
584 inline void
586 {
587 uint32_t delta = curCycle() - previousCycle;
588
590 ppActiveCycles->notify(delta);
591 }
592
593 switch (state) {
594 case CPU_STATE_WAKEUP:
595 ppSleeping->notify(false);
596 break;
597 case CPU_STATE_SLEEP:
598 ppSleeping->notify(true);
599 break;
600 default:
601 break;
602 }
603
604 ppAllCycles->notify(delta);
605
607 previousState = state;
608 }
609
610 // Function tracing
611 private:
613 std::ostream *functionTraceStream;
617 void enableFunctionTrace();
619
620 private:
622
623 public:
624 void
630
631 static int numSimulatedCPUs() { return cpuList.size(); }
632 static Counter
634 {
635 Counter total = 0;
636
637 int size = cpuList.size();
638 for (int i = 0; i < size; ++i)
639 total += cpuList[i]->totalInsts();
640
641 return total;
642 }
643
644 static Counter
646 {
647 Counter total = 0;
648
649 int size = cpuList.size();
650 for (int i = 0; i < size; ++i)
651 total += cpuList[i]->totalOps();
652
653 return total;
654 }
655
656 public:
658 {
660 // Number of CPU insts and ops committed at CPU core level
663 // Number of CPU cycles simulated
665 /* CPI/IPC for total cycle counts and macro insts */
671
672 private:
674
675 public:
676 void armMonitor(ThreadID tid, Addr address);
677 bool mwait(ThreadID tid, PacketPtr pkt);
678 void mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseMMU *mmu);
681 {
682 assert(tid < numThreads);
683 return &addressMonitor[tid];
684 }
685
687
696 virtual void
697 htmSendAbortSignal(ThreadID tid, uint64_t htm_uid,
699 {
700 panic("htmSendAbortSignal not implemented");
701 }
702
703 // Enables CPU to enter power gating on a configurable cycle count
704 protected:
705 void enterPwrGating();
706
710
711
712 public:
714 {
715 FetchCPUStats(statistics::Group *parent, int thread_id);
716
717 /* Total number of instructions fetched */
719
720 /* Total number of operations fetched */
722
723 /* Number of instruction fetched per cycle. */
725
726 /* Total number of branches fetched */
728
729 /* Number of branch fetches per cycle. */
731
732 /* Number of cycles stalled due to an icache miss */
734
735 /* Number of times fetch was asked to suspend by Execute */
737
738 };
739
741 {
742 ExecuteCPUStats(statistics::Group *parent, int thread_id);
743
744 /* Stat for total number of executed instructions */
746 /* Number of executed nops */
748 /* Number of executed branches */
750 /* Stat for total number of executed load instructions */
752 /* Number of executed store instructions */
754 /* Number of instructions executed per cycle */
756
757 /* Number of cycles stalled for D-cache responses */
759
760 /* Number of condition code register file accesses */
763
764 /* number of float alu accesses */
766
767 /* Number of float register file accesses */
770
771 /* Number of integer alu accesses */
773
774 /* Number of integer register file accesses */
777
778 /* number of simulated memory references */
780
781 /* Number of misc register file accesses */
784
785 /* Number of vector alu accesses */
787
788 /* Number of predicate register file accesses */
791
792 /* Number of vector register file accesses */
795
796 /* Number of ops discarded before committing */
798 };
799
801 {
802 CommitCPUStats(statistics::Group *parent, int thread_id);
803
804 /* Number of simulated instructions committed */
807
808 /* Number of instructions committed that are not NOP or prefetches */
811
812 /* Number of instructions committed in user mode */
815
816 /* Ratio of instructions committed in user mode */
819
820 /* CPI/IPC for total cycle counts and macro insts */
823
824 /* Number of committed memory references. */
826
827 /* Number of float instructions */
829
830 /* Number of int instructions */
832
833 /* number of load instructions */
835
836 /* Number of store instructions */
838
839 /* Number of vector instructions */
841
842 /* Number of instructions committed by type (OpClass) */
844
845 /* number of control instructions committed by control inst type */
847
848 /* number of function calls committed */
850
851 /* Number of function calls and returns committed */
853
854 void updateComCtrlStats(const StaticInstPtr staticInst);
855
856 };
857
861};
862
863} // namespace gem5
864
865#endif // __CPU_BASE_HH__
void regStats() override
Callback to set stat parameters.
Definition base.cc:451
int findContext(ThreadContext *tc)
Given a Thread Context pointer return the thread num.
Definition base.cc:541
RequestorID dataRequestorId() const
Reads this CPU's unique data requestor ID.
Definition base.hh:219
probing::PMUUPtr ppRetiredInsts
Instruction commit probe point.
Definition base.hh:545
const Cycles pwrGatingLatency
Definition base.hh:707
virtual void serializeThread(CheckpointOut &cp, ThreadID tid) const
Serialize a single thread.
Definition base.hh:453
virtual Counter totalOps() const =0
RequestorID instRequestorId() const
Reads this CPU's unique instruction requestor ID.
Definition base.hh:221
Cycles syscallRetryLatency
Definition base.hh:686
static Counter totalNumSimulatedInsts()
Definition base.hh:633
Tick functionEntryTick
Definition base.hh:616
uint32_t socketId() const
Reads this CPU's Socket ID.
Definition base.hh:216
void traceFunctionsInternal(Addr pc)
Definition base.cc:812
trace::InstTracer * tracer
Definition base.hh:290
const bool powerGatingOnIdle
Definition base.hh:708
void registerThreadContexts()
Definition base.cc:493
virtual void haltContext(ThreadID thread_num)
Notify the CPU that the indicated context is now halted.
Definition base.cc:608
probing::PMUUPtr ppRetiredLoads
Retired load instructions.
Definition base.hh:549
void clearInterrupts(ThreadID tid)
Definition base.hh:274
Tick instCnt
Instruction count used for SPARC misc register.
Definition base.hh:112
Addr currentFunctionEnd
Definition base.hh:615
SignalSinkPort< bool > modelResetPort
Definition base.hh:192
probing::PMUUPtr ppAllCycles
CPU cycle counter even if any thread Context is suspended.
Definition base.hh:557
probing::PMUUPtr ppRetiredInstsPC
Definition base.hh:546
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
Definition base.cc:330
uint32_t getPid() const
Definition base.hh:241
System * system
Definition base.hh:416
void mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseMMU *mmu)
Definition base.cc:297
Addr cacheLineSize() const
Get the cache line size of the system.
Definition base.hh:421
Cycles previousCycle
Definition base.hh:580
void enterPwrGating()
Definition base.cc:614
AddressMonitor * getCpuAddrMonitor(ThreadID tid)
Definition base.hh:680
BaseInterrupts * getInterruptController(ThreadID tid)
Definition base.hh:254
void updateCycleCounters(CPUState state)
base method keeping track of cycle progression
Definition base.hh:585
void taskId(uint32_t id)
Set cpu task id.
Definition base.hh:239
probing::PMUUPtr pmuProbePoint(const char *name)
Helper method to instantiate probe points belonging to this object.
Definition base.cc:385
static const uint32_t invldPid
Invalid or unknown Pid.
Definition base.hh:297
void postInterrupt(ThreadID tid, int int_num, int index)
Definition base.cc:247
std::vector< std::unique_ptr< IntSourcePin< BaseCPU > > > cpuIdlePins
Definition base.hh:288
bool mwait(ThreadID tid, PacketPtr pkt)
Definition base.cc:274
const uint32_t _socketId
Each cpu will have a socket ID that corresponds to its physical location in the system.
Definition base.hh:125
void unserialize(CheckpointIn &cp) override
Reconstruct the state of this object from a checkpoint.
Definition base.cc:757
void workItemBegin()
Definition base.hh:244
void scheduleInstStopAnyThread(Counter max_insts)
Schedule an exit event when any threads in the core reach the max_insts instructions using the schedu...
Definition base.cc:850
void serialize(CheckpointOut &cp) const override
Serialize this object to the given output stream.
Definition base.cc:736
virtual ThreadContext * getContext(int tn)
Given a thread num get tho thread context for it.
Definition base.hh:316
probing::PMUUPtr ppRetiredStores
Retired store instructions.
Definition base.hh:551
bool _switchedOut
Is the CPU switched out or active?
Definition base.hh:145
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port on this CPU.
Definition base.cc:475
Addr currentFunctionStart
Definition base.hh:614
virtual Counter totalInsts() const =0
void schedulePowerGatingEvent()
Definition base.cc:524
@ CPU_STATE_SLEEP
Definition base.hh:576
@ CPU_STATE_WAKEUP
Definition base.hh:577
std::vector< std::unique_ptr< CommitCPUStats > > commitStats
Definition base.hh:860
static std::unique_ptr< GlobalStats > globalStats
Pointer to the global stat structure.
Definition base.hh:190
virtual Port & getDataPort()=0
Purely virtual method that returns a reference to the data port.
virtual void verifyMemoryMode() const
Verify that the system is in a memory mode supported by the CPU.
Definition base.hh:408
void regProbePoints() override
Register probe points for this object.
Definition base.cc:394
void scheduleSimpointsInstStop(std::vector< Counter > inst_starts)
Schedule simpoint events using the scheduleInstStop function.
Definition base.cc:841
uint32_t taskId() const
Get cpu task id.
Definition base.hh:237
trace::InstTracer * getTracer()
Provide access to the tracer pointer.
Definition base.hh:300
virtual void suspendContext(ThreadID thread_num)
Notify the CPU that the indicated context is now suspended.
Definition base.cc:577
static int numSimulatedCPUs()
Definition base.hh:631
void enableFunctionTrace()
Definition base.cc:231
unsigned numContexts()
Get the number of thread contexts available.
Definition base.hh:320
gem5::BaseCPU::BaseCPUStats baseStats
virtual Port & getInstPort()=0
Purely virtual method that returns a reference to the instruction port.
ThreadID numThreads
Number of threads we're actually simulating (<= SMT_MAX_THREADS).
Definition base.hh:414
probing::PMUUPtr ppRetiredBranches
Retired branches (any type)
Definition base.hh:554
void deschedulePowerGatingEvent()
Definition base.cc:516
std::vector< std::unique_ptr< ExecuteCPUStats > > executeStats
Definition base.hh:859
Tick instCount()
Definition base.hh:247
bool checkInterrupts(ThreadID tid) const
Definition base.hh:280
CPUState previousState
Definition base.hh:581
virtual void wakeup(ThreadID tid)=0
probing::PMUUPtr ppActiveCycles
CPU cycle counter, only counts if any thread contexts is active.
Definition base.hh:560
bool functionTracingEnabled
Definition base.hh:612
int cpuId() const
Reads this CPU's ID.
Definition base.hh:213
uint32_t _taskId
An intrenal representation of a task identifier within gem5.
Definition base.hh:138
void setPid(uint32_t pid)
Definition base.hh:242
std::vector< BaseInterrupts * > interrupts
Definition base.hh:250
void startup() override
startup() is the final initialization call before simulation.
Definition base.cc:369
virtual void unserializeThread(CheckpointIn &cp, ThreadID tid)
Unserialize one thread.
Definition base.hh:461
void traceFunctions(Addr pc)
Definition base.hh:625
virtual ~BaseCPU()
Definition base.cc:236
virtual void switchOut()
Prepare for another CPU to take over execution.
Definition base.cc:620
void clearInterrupt(ThreadID tid, int int_num, int index)
Definition base.hh:268
std::vector< std::unique_ptr< FetchCPUStats > > fetchStats
Definition base.hh:858
virtual void setReset(bool state)
Set the reset of the CPU to be either asserted or deasserted.
Definition base.cc:700
static Counter totalNumSimulatedOps()
Definition base.hh:645
void flushTLBs()
Flush all TLBs in the CPU.
Definition base.cc:722
ThreadID contextToThread(ContextID cid)
Convert ContextID to threadID.
Definition base.cc:241
void armMonitor(ThreadID tid, Addr address)
Definition base.cc:262
ProbePointArg< bool > * ppSleeping
ProbePoint that signals transitions of threadContexts sets.
Definition base.hh:570
PARAMS(BaseCPU)
std::ostream * functionTraceStream
Definition base.hh:613
virtual void takeOverFrom(BaseCPU *cpu)
Load the state of a CPU from the previous CPU object, invoked on all new CPUs that are about to be sw...
Definition base.cc:634
std::vector< AddressMonitor > addressMonitor
Definition base.hh:673
const Addr _cacheLineSize
Cache the cache line size that we get from the system.
Definition base.hh:148
std::vector< ThreadContext * > threadContexts
Definition base.hh:286
static std::vector< BaseCPU * > cpuList
Static global cpu list.
Definition base.hh:621
RequestorID _instRequestorId
instruction side request id that must be placed in all requests
Definition base.hh:128
EventFunctionWrapper enterPwrGatingEvent
Definition base.hh:709
void scheduleInstStop(ThreadID tid, Counter insts, std::string cause)
Schedule an event that exits the simulation loops after a predefined number of instructions.
Definition base.cc:774
bool switchedOut() const
Determine if the CPU is switched out.
Definition base.hh:397
BaseCPU(const Params &params, bool is_checker=false)
Definition base.cc:129
void workItemEnd()
Definition base.hh:245
uint32_t _pid
The current OS process ID that is executing on this processor.
Definition base.hh:142
virtual void probeInstCommit(const StaticInstPtr &inst, Addr pc)
Helper method to trigger PMU probes for a committed instruction.
Definition base.cc:410
uint64_t getCurrentInstCount(ThreadID tid)
Get the number of instructions executed by the specified thread on this CPU.
Definition base.cc:783
RequestorID _dataRequestorId
data side request id that must be placed in all requests
Definition base.hh:131
virtual void activateContext(ThreadID thread_num)
Notify the CPU that the indicated context is now active.
Definition base.cc:552
virtual void htmSendAbortSignal(ThreadID tid, uint64_t htm_uid, HtmFailureFaultCause cause)
This function is used to instruct the memory subsystem that a transaction should be aborted and the s...
Definition base.hh:697
CPUProgressEvent(BaseCPU *_cpu, Tick ival=0)
Definition base.cc:88
Counter lastNumInst
Definition base.hh:89
void repeatEvent(bool repeat)
Definition base.hh:101
virtual const char * description() const
Return a C string describing the event.
Definition base.cc:124
void interval(Tick ival)
Definition base.hh:98
CheckerCPU class.
Definition cpu.hh:85
ClockedObject(const ClockedObjectParams &p)
ClockedObjectParams Params
Parameters of ClockedObject.
Cycles curCycle() const
Determine the current cycle, corresponding to a tick aligned to a clock edge.
Cycles is a wrapper class for representing cycle counts, i.e.
Definition types.hh:79
Event(Priority p=Default_Pri, Flags f=0)
Definition eventq.hh:407
virtual std::string name() const
Definition named.hh:60
Ports are used to interface objects to each other.
Definition port.hh:62
ProbePointArg generates a point for the class of Arg.
Definition probe.hh:273
ThreadContext is the external interface to all thread state for anything outside of the CPU.
A formula for statistics that is calculated when printed.
Statistics container.
Definition group.hh:93
This is a simple scalar statistic, like a counter.
A vector of scalar stats.
STL vector class.
Definition stl.hh:37
ClockedObject declaration and implementation.
#define panic(...)
This implements a cprintf based panic() function.
Definition logging.hh:220
const Params & params() const
virtual void resetStats()
Callback to reset stats.
Definition group.cc:86
Bitfield< 7 > i
Definition misc_types.hh:67
Bitfield< 33 > id
Bitfield< 4 > pc
Bitfield< 30, 0 > index
std::unique_ptr< PMU > PMUUPtr
Definition pmu.hh:60
const FlagsType total
Print the total.
Definition info.hh:59
double Counter
All counters are of 64-bit values.
Definition types.hh:46
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36
int16_t ThreadID
Thread index/ID type.
Definition types.hh:235
const PortID InvalidPortID
Definition types.hh:246
std::ostream CheckpointOut
Definition serialize.hh:66
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition types.hh:147
int16_t PortID
Port index/ID type, and a symbolic name for an invalid port id.
Definition types.hh:245
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
Definition root.cc:220
uint64_t Tick
Tick count type.
Definition types.hh:58
uint16_t RequestorID
Definition request.hh:95
Packet * PacketPtr
RefCountingPtr< StaticInst > StaticInstPtr
int ContextID
Globally unique thread context ID.
Definition types.hh:239
HtmFailureFaultCause
Definition htm.hh:48
PortProxy Object Declaration.
Declaration of Statistics objects.
bool doMonitor(PacketPtr pkt)
Definition base.cc:796
statistics::Scalar numWorkItemsStarted
Definition base.hh:668
BaseCPUStats(statistics::Group *parent)
Definition base.cc:428
statistics::Scalar numOps
Definition base.hh:662
statistics::Formula ipc
Definition base.hh:667
statistics::Formula cpi
Definition base.hh:666
statistics::Scalar numInsts
Definition base.hh:661
statistics::Scalar numCycles
Definition base.hh:664
statistics::Scalar numWorkItemsCompleted
Definition base.hh:669
statistics::Scalar numCallsReturns
Definition base.hh:852
statistics::Scalar numFpInsts
Definition base.hh:828
statistics::Vector committedInstType
Definition base.hh:843
statistics::Scalar numVecInsts
Definition base.hh:840
void updateComCtrlStats(const StaticInstPtr staticInst)
Definition base.cc:1096
statistics::Vector committedControl
Definition base.hh:846
statistics::Scalar numInstsNotNOP
Definition base.hh:809
statistics::Formula cpi
Definition base.hh:821
statistics::Scalar numUserInsts
Definition base.hh:813
statistics::Scalar numStoreInsts
Definition base.hh:837
statistics::Scalar numInsts
Definition base.hh:805
CommitCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:1020
statistics::Formula ipc
Definition base.hh:822
statistics::Formula ratioUserOps
Definition base.hh:818
statistics::Scalar numOpsNotNOP
Definition base.hh:810
statistics::Scalar numUserOps
Definition base.hh:814
statistics::Scalar numLoadInsts
Definition base.hh:834
statistics::Scalar numIntInsts
Definition base.hh:831
statistics::Scalar functionCalls
Definition base.hh:849
statistics::Scalar numMemRefs
Definition base.hh:825
statistics::Scalar numOps
Definition base.hh:806
statistics::Formula ratioUserInsts
Definition base.hh:817
statistics::Scalar numIntRegReads
Definition base.hh:775
statistics::Scalar numVecPredRegReads
Definition base.hh:789
statistics::Scalar dcacheStallCycles
Definition base.hh:758
statistics::Scalar numCCRegReads
Definition base.hh:761
statistics::Scalar numBranches
Definition base.hh:749
statistics::Scalar numInsts
Definition base.hh:745
statistics::Scalar numIntRegWrites
Definition base.hh:776
statistics::Formula numStoreInsts
Definition base.hh:753
statistics::Scalar numMemRefs
Definition base.hh:779
statistics::Formula instRate
Definition base.hh:755
statistics::Scalar numVecAluAccesses
Definition base.hh:786
statistics::Scalar numMiscRegReads
Definition base.hh:782
statistics::Scalar numCCRegWrites
Definition base.hh:762
statistics::Scalar numVecPredRegWrites
Definition base.hh:790
statistics::Scalar numFpAluAccesses
Definition base.hh:765
statistics::Scalar numFpRegWrites
Definition base.hh:769
statistics::Scalar numDiscardedOps
Definition base.hh:797
statistics::Scalar numNop
Definition base.hh:747
statistics::Scalar numIntAluAccesses
Definition base.hh:772
ExecuteCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:933
statistics::Scalar numVecRegWrites
Definition base.hh:794
statistics::Scalar numFpRegReads
Definition base.hh:768
statistics::Scalar numVecRegReads
Definition base.hh:793
statistics::Scalar numMiscRegWrites
Definition base.hh:783
statistics::Scalar numLoadInsts
Definition base.hh:751
statistics::Scalar numOps
Definition base.hh:721
statistics::Scalar numInsts
Definition base.hh:718
statistics::Formula fetchRate
Definition base.hh:724
statistics::Formula branchRate
Definition base.hh:730
statistics::Scalar numFetchSuspends
Definition base.hh:736
statistics::Scalar numBranches
Definition base.hh:727
FetchCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:898
statistics::Scalar icacheStallCycles
Definition base.hh:733
statistics::Value simOps
Definition base.hh:156
void resetStats() override
Callback to reset stats.
Definition base.hh:177
statistics::Formula hostInstRate
Definition base.hh:158
statistics::Value simInsts
Definition base.hh:155
static Counter numSimulatedInsts()
Definition base.hh:165
GlobalStats(statistics::Group *parent)
Definition base.cc:858
static Counter numSimulatedOps()
Definition base.hh:171
statistics::Formula hostOpRate
Definition base.hh:159

Generated on Mon Oct 27 2025 04:13:01 for gem5 by doxygen 1.14.0