gem5 v24.0.0.0
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 "base/statistics.hh"
50#include "debug/Mwait.hh"
51#include "mem/htm.hh"
52#include "mem/port_proxy.hh"
53#include "sim/clocked_object.hh"
54#include "sim/eventq.hh"
55#include "sim/full_system.hh"
56#include "sim/insttracer.hh"
57#include "sim/probe/pmu.hh"
58#include "sim/probe/probe.hh"
59#include "sim/signal.hh"
60#include "sim/system.hh"
61
62namespace gem5
63{
64
65class BaseCPU;
66struct BaseCPUParams;
67class CheckerCPU;
68class ThreadContext;
69
71{
73 bool doMonitor(PacketPtr pkt);
74
75 bool armed;
78 uint64_t val;
79 bool waiting; // 0=normal, 1=mwaiting
81};
82
83class CPUProgressEvent : public Event
84{
85 protected:
90
91 public:
92 CPUProgressEvent(BaseCPU *_cpu, Tick ival = 0);
93
94 void process();
95
96 void interval(Tick ival) { _interval = ival; }
97 Tick interval() { return _interval; }
98
99 void repeatEvent(bool repeat) { _repeatEvent = repeat; }
100
101 virtual const char *description() const;
102};
103
104class BaseCPU : public ClockedObject
105{
106 protected:
107
111
112 // every cpu has an id, put it in the base cpu
113 // Set at initialization, only time a cpuId might change is during a
114 // takeover (which should be done from within the BaseCPU anyway,
115 // therefore no setCpuId() method is provided
117
123 const uint32_t _socketId;
124
127
130
136 uint32_t _taskId;
137
140 uint32_t _pid;
141
144
147
159
164 static std::unique_ptr<GlobalStats> globalStats;
165
167
168 public:
169
176 virtual Port &getDataPort() = 0;
177
184 virtual Port &getInstPort() = 0;
185
187 int cpuId() const { return _cpuId; }
188
190 uint32_t socketId() const { return _socketId; }
191
196
207 Port &getPort(const std::string &if_name,
208 PortID idx=InvalidPortID) override;
209
211 uint32_t taskId() const { return _taskId; }
213 void taskId(uint32_t id) { _taskId = id; }
214
215 uint32_t getPid() const { return _pid; }
216 void setPid(uint32_t pid) { _pid = pid; }
217
220 // @todo remove me after debugging with legion done
221 Tick instCount() { return instCnt; }
222
223 protected:
225
226 public:
229 {
230 if (interrupts.empty())
231 return NULL;
232
233 assert(interrupts.size() > tid);
234 return interrupts[tid];
235 }
236
237 virtual void wakeup(ThreadID tid) = 0;
238
239 void postInterrupt(ThreadID tid, int int_num, int index);
240
241 void
242 clearInterrupt(ThreadID tid, int int_num, int index)
243 {
244 interrupts[tid]->clear(int_num, index);
245 }
246
247 void
249 {
250 interrupts[tid]->clearAll();
251 }
252
253 bool
255 {
256 return FullSystem && interrupts[tid]->checkInterrupts();
257 }
258
259 protected:
261
263
264 public:
265
266
269 static const uint32_t invldPid = std::numeric_limits<uint32_t>::max();
270
273
275 virtual void activateContext(ThreadID thread_num);
276
279 virtual void suspendContext(ThreadID thread_num);
280
282 virtual void haltContext(ThreadID thread_num);
283
285 int findContext(ThreadContext *tc);
286
288 virtual ThreadContext *getContext(int tn) { return threadContexts[tn]; }
289
291 unsigned
293 {
294 return static_cast<unsigned>(threadContexts.size());
295 }
296
300 {
301 return static_cast<ThreadID>(cid - threadContexts[0]->contextId());
302 }
303
304 public:
306 BaseCPU(const Params &params, bool is_checker = false);
307 virtual ~BaseCPU();
308
309 void init() override;
310 void startup() override;
311 void regStats() override;
312
313 void regProbePoints() override;
314
316
317 // Functions to deschedule and reschedule the events to enter the
318 // power gating sleep before and after checkpoiting respectively.
321
329 virtual void switchOut();
330
342 virtual void takeOverFrom(BaseCPU *cpu);
343
355 virtual void setReset(bool state);
356
366 void flushTLBs();
367
373 bool switchedOut() const { return _switchedOut; }
374
384 virtual void verifyMemoryMode() const { };
385
391
393
397 inline Addr cacheLineSize() const { return _cacheLineSize; }
398
409 void serialize(CheckpointOut &cp) const override;
410
421 void unserialize(CheckpointIn &cp) override;
422
429 virtual void serializeThread(CheckpointOut &cp, ThreadID tid) const {};
430
437 virtual void unserializeThread(CheckpointIn &cp, ThreadID tid) {};
438
439 virtual Counter totalInsts() const = 0;
440
441 virtual Counter totalOps() const = 0;
442
456 void scheduleInstStop(ThreadID tid, Counter insts, std::string cause);
457
468
477 void scheduleInstStopAnyThread(Counter max_insts);
478
486 uint64_t getCurrentInstCount(ThreadID tid);
487
488 public:
501 virtual void probeInstCommit(const StaticInstPtr &inst, Addr pc);
502
503 protected:
512
523
528
531
534
537
555
558
560 inline void
562 {
563 uint32_t delta = curCycle() - previousCycle;
564
566 ppActiveCycles->notify(delta);
567 }
568
569 switch (state) {
570 case CPU_STATE_WAKEUP:
571 ppSleeping->notify(false);
572 break;
573 case CPU_STATE_SLEEP:
574 ppSleeping->notify(true);
575 break;
576 default:
577 break;
578 }
579
580 ppAllCycles->notify(delta);
581
584 }
585
586 // Function tracing
587 private:
589 std::ostream *functionTraceStream;
593 void enableFunctionTrace();
595
596 private:
598
599 public:
600 void
606
607 static int numSimulatedCPUs() { return cpuList.size(); }
608 static Counter
610 {
611 Counter total = 0;
612
613 int size = cpuList.size();
614 for (int i = 0; i < size; ++i)
615 total += cpuList[i]->totalInsts();
616
617 return total;
618 }
619
620 static Counter
622 {
623 Counter total = 0;
624
625 int size = cpuList.size();
626 for (int i = 0; i < size; ++i)
627 total += cpuList[i]->totalOps();
628
629 return total;
630 }
631
632 public:
634 {
636 // Number of CPU insts and ops committed at CPU core level
639 // Number of CPU cycles simulated
641 /* CPI/IPC for total cycle counts and macro insts */
647
648 private:
650
651 public:
652 void armMonitor(ThreadID tid, Addr address);
653 bool mwait(ThreadID tid, PacketPtr pkt);
654 void mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseMMU *mmu);
657 {
658 assert(tid < numThreads);
659 return &addressMonitor[tid];
660 }
661
663
672 virtual void
673 htmSendAbortSignal(ThreadID tid, uint64_t htm_uid,
675 {
676 panic("htmSendAbortSignal not implemented");
677 }
678
679 // Enables CPU to enter power gating on a configurable cycle count
680 protected:
681 void enterPwrGating();
682
686
687
688 public:
690 {
691 FetchCPUStats(statistics::Group *parent, int thread_id);
692
693 /* Total number of instructions fetched */
695
696 /* Total number of operations fetched */
698
699 /* Number of instruction fetched per cycle. */
701
702 /* Total number of branches fetched */
704
705 /* Number of branch fetches per cycle. */
707
708 /* Number of cycles stalled due to an icache miss */
710
711 /* Number of times fetch was asked to suspend by Execute */
713
714 };
715
717 {
718 ExecuteCPUStats(statistics::Group *parent, int thread_id);
719
720 /* Stat for total number of executed instructions */
722 /* Number of executed nops */
724 /* Number of executed branches */
726 /* Stat for total number of executed load instructions */
728 /* Number of executed store instructions */
730 /* Number of instructions executed per cycle */
732
733 /* Number of cycles stalled for D-cache responses */
735
736 /* Number of condition code register file accesses */
739
740 /* number of float alu accesses */
742
743 /* Number of float register file accesses */
746
747 /* Number of integer alu accesses */
749
750 /* Number of integer register file accesses */
753
754 /* number of simulated memory references */
756
757 /* Number of misc register file accesses */
760
761 /* Number of vector alu accesses */
763
764 /* Number of predicate register file accesses */
767
768 /* Number of vector register file accesses */
771
772 /* Number of ops discarded before committing */
774 };
775
777 {
778 CommitCPUStats(statistics::Group *parent, int thread_id);
779
780 /* Number of simulated instructions committed */
783
784 /* Number of instructions committed that are not NOP or prefetches */
787
788 /* CPI/IPC for total cycle counts and macro insts */
791
792 /* Number of committed memory references. */
794
795 /* Number of float instructions */
797
798 /* Number of int instructions */
800
801 /* number of load instructions */
803
804 /* Number of store instructions */
806
807 /* Number of vector instructions */
809
810 /* Number of instructions committed by type (OpClass) */
812
813 /* number of control instructions committed by control inst type */
815 void updateComCtrlStats(const StaticInstPtr staticInst);
816
817 };
818
822};
823
824} // namespace gem5
825
826#endif // __CPU_BASE_HH__
void regStats() override
Callback to set stat parameters.
Definition base.cc:431
int findContext(ThreadContext *tc)
Given a Thread Context pointer return the thread num.
Definition base.cc:519
RequestorID dataRequestorId() const
Reads this CPU's unique data requestor ID.
Definition base.hh:193
probing::PMUUPtr ppRetiredInsts
Instruction commit probe point.
Definition base.hh:521
const Cycles pwrGatingLatency
Definition base.hh:683
virtual void serializeThread(CheckpointOut &cp, ThreadID tid) const
Serialize a single thread.
Definition base.hh:429
virtual Counter totalOps() const =0
RequestorID instRequestorId() const
Reads this CPU's unique instruction requestor ID.
Definition base.hh:195
Cycles syscallRetryLatency
Definition base.hh:662
Tick functionEntryTick
Definition base.hh:592
uint32_t socketId() const
Reads this CPU's Socket ID.
Definition base.hh:190
void traceFunctionsInternal(Addr pc)
Definition base.cc:780
trace::InstTracer * tracer
Definition base.hh:262
const bool powerGatingOnIdle
Definition base.hh:684
void registerThreadContexts()
Definition base.cc:471
virtual void haltContext(ThreadID thread_num)
Notify the CPU that the indicated context is now halted.
Definition base.cc:576
probing::PMUUPtr ppRetiredLoads
Retired load instructions.
Definition base.hh:525
void clearInterrupts(ThreadID tid)
Definition base.hh:248
Tick instCnt
Instruction count used for SPARC misc register.
Definition base.hh:110
Addr currentFunctionEnd
Definition base.hh:591
SignalSinkPort< bool > modelResetPort
Definition base.hh:166
probing::PMUUPtr ppAllCycles
CPU cycle counter even if any thread Context is suspended.
Definition base.hh:533
probing::PMUUPtr ppRetiredInstsPC
Definition base.hh:522
void init() override
init() is called after all C++ SimObjects have been created and all ports are connected.
Definition base.cc:310
uint32_t getPid() const
Definition base.hh:215
System * system
Definition base.hh:392
void mwaitAtomic(ThreadID tid, ThreadContext *tc, BaseMMU *mmu)
Definition base.cc:277
Addr cacheLineSize() const
Get the cache line size of the system.
Definition base.hh:397
Cycles previousCycle
Definition base.hh:556
void enterPwrGating()
Definition base.cc:582
AddressMonitor * getCpuAddrMonitor(ThreadID tid)
Definition base.hh:656
BaseInterrupts * getInterruptController(ThreadID tid)
Definition base.hh:228
void updateCycleCounters(CPUState state)
base method keeping track of cycle progression
Definition base.hh:561
void taskId(uint32_t id)
Set cpu task id.
Definition base.hh:213
probing::PMUUPtr pmuProbePoint(const char *name)
Helper method to instantiate probe points belonging to this object.
Definition base.cc:365
static const uint32_t invldPid
Invalid or unknown Pid.
Definition base.hh:269
void postInterrupt(ThreadID tid, int int_num, int index)
Definition base.cc:231
bool mwait(ThreadID tid, PacketPtr pkt)
Definition base.cc:254
const uint32_t _socketId
Each cpu will have a socket ID that corresponds to its physical location in the system.
Definition base.hh:123
void unserialize(CheckpointIn &cp) override
Reconstruct the state of this object from a checkpoint.
Definition base.cc:725
void workItemBegin()
Definition base.hh:218
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:818
void serialize(CheckpointOut &cp) const override
Serialize this object to the given output stream.
Definition base.cc:704
virtual ThreadContext * getContext(int tn)
Given a thread num get tho thread context for it.
Definition base.hh:288
probing::PMUUPtr ppRetiredStores
Retired store instructions.
Definition base.hh:527
bool _switchedOut
Is the CPU switched out or active?
Definition base.hh:143
Port & getPort(const std::string &if_name, PortID idx=InvalidPortID) override
Get a port on this CPU.
Definition base.cc:455
Addr currentFunctionStart
Definition base.hh:590
virtual Counter totalInsts() const =0
void schedulePowerGatingEvent()
Definition base.cc:502
@ CPU_STATE_SLEEP
Definition base.hh:552
@ CPU_STATE_WAKEUP
Definition base.hh:553
std::vector< std::unique_ptr< CommitCPUStats > > commitStats
Definition base.hh:821
static std::unique_ptr< GlobalStats > globalStats
Pointer to the global stat structure.
Definition base.hh:164
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:384
void regProbePoints() override
Register probe points for this object.
Definition base.cc:374
void scheduleSimpointsInstStop(std::vector< Counter > inst_starts)
Schedule simpoint events using the scheduleInstStop function.
Definition base.cc:809
uint32_t taskId() const
Get cpu task id.
Definition base.hh:211
trace::InstTracer * getTracer()
Provide access to the tracer pointer.
Definition base.hh:272
virtual void suspendContext(ThreadID thread_num)
Notify the CPU that the indicated context is now suspended.
Definition base.cc:550
static int numSimulatedCPUs()
Definition base.hh:607
void enableFunctionTrace()
Definition base.cc:221
unsigned numContexts()
Get the number of thread contexts available.
Definition base.hh:292
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:390
probing::PMUUPtr ppRetiredBranches
Retired branches (any type)
Definition base.hh:530
void deschedulePowerGatingEvent()
Definition base.cc:494
std::vector< std::unique_ptr< ExecuteCPUStats > > executeStats
Definition base.hh:820
Tick instCount()
Definition base.hh:221
bool checkInterrupts(ThreadID tid) const
Definition base.hh:254
CPUState previousState
Definition base.hh:557
virtual void wakeup(ThreadID tid)=0
probing::PMUUPtr ppActiveCycles
CPU cycle counter, only counts if any thread contexts is active.
Definition base.hh:536
bool functionTracingEnabled
Definition base.hh:588
int cpuId() const
Reads this CPU's ID.
Definition base.hh:187
uint32_t _taskId
An intrenal representation of a task identifier within gem5.
Definition base.hh:136
void setPid(uint32_t pid)
Definition base.hh:216
std::vector< BaseInterrupts * > interrupts
Definition base.hh:224
void startup() override
startup() is the final initialization call before simulation.
Definition base.cc:349
virtual void unserializeThread(CheckpointIn &cp, ThreadID tid)
Unserialize one thread.
Definition base.hh:437
void traceFunctions(Addr pc)
Definition base.hh:601
virtual ~BaseCPU()
Definition base.cc:226
virtual void switchOut()
Prepare for another CPU to take over execution.
Definition base.cc:588
void clearInterrupt(ThreadID tid, int int_num, int index)
Definition base.hh:242
std::vector< std::unique_ptr< FetchCPUStats > > fetchStats
Definition base.hh:819
virtual void setReset(bool state)
Set the reset of the CPU to be either asserted or deasserted.
Definition base.cc:668
void flushTLBs()
Flush all TLBs in the CPU.
Definition base.cc:690
ThreadID contextToThread(ContextID cid)
Convert ContextID to threadID.
Definition base.hh:299
void armMonitor(ThreadID tid, Addr address)
Definition base.cc:242
ProbePointArg< bool > * ppSleeping
ProbePoint that signals transitions of threadContexts sets.
Definition base.hh:546
static Counter numSimulatedOps()
Definition base.hh:621
PARAMS(BaseCPU)
std::ostream * functionTraceStream
Definition base.hh:589
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:602
std::vector< AddressMonitor > addressMonitor
Definition base.hh:649
const Addr _cacheLineSize
Cache the cache line size that we get from the system.
Definition base.hh:146
std::vector< ThreadContext * > threadContexts
Definition base.hh:260
static std::vector< BaseCPU * > cpuList
Static global cpu list.
Definition base.hh:597
RequestorID _instRequestorId
instruction side request id that must be placed in all requests
Definition base.hh:126
EventFunctionWrapper enterPwrGatingEvent
Definition base.hh:685
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:742
bool switchedOut() const
Determine if the CPU is switched out.
Definition base.hh:373
BaseCPU(const Params &params, bool is_checker=false)
Definition base.cc:129
void workItemEnd()
Definition base.hh:219
uint32_t _pid
The current OS process ID that is executing on this processor.
Definition base.hh:140
virtual void probeInstCommit(const StaticInstPtr &inst, Addr pc)
Helper method to trigger PMU probes for a committed instruction.
Definition base.cc:390
uint64_t getCurrentInstCount(ThreadID tid)
Get the number of instructions executed by the specified thread on this CPU.
Definition base.cc:751
RequestorID _dataRequestorId
data side request id that must be placed in all requests
Definition base.hh:129
static Counter numSimulatedInsts()
Definition base.hh:609
virtual void activateContext(ThreadID thread_num)
Notify the CPU that the indicated context is now active.
Definition base.cc:530
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:673
CPUProgressEvent(BaseCPU *_cpu, Tick ival=0)
Definition base.cc:88
Counter lastNumInst
Definition base.hh:87
void repeatEvent(bool repeat)
Definition base.hh:99
virtual const char * description() const
Return a C string describing the event.
Definition base.cc:124
void interval(Tick ival)
Definition base.hh:96
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
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
virtual std::string name() const
Definition named.hh:47
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Definition packet.hh:295
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:264
void notify(const Arg &arg)
called at the ProbePoint call site, passes arg to each listener.
Definition probe.hh:313
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:188
const Params & params() const
atomic_var_t state
Definition helpers.cc:211
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 - Pranith Kumar Copyright (c) 2020 Inria 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
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:764
statistics::Scalar numWorkItemsStarted
Definition base.hh:644
BaseCPUStats(statistics::Group *parent)
Definition base.cc:408
statistics::Scalar numOps
Definition base.hh:638
statistics::Formula ipc
Definition base.hh:643
statistics::Formula cpi
Definition base.hh:642
statistics::Scalar numInsts
Definition base.hh:637
statistics::Scalar numCycles
Definition base.hh:640
statistics::Scalar numWorkItemsCompleted
Definition base.hh:645
statistics::Scalar numFpInsts
Definition base.hh:796
statistics::Vector committedInstType
Definition base.hh:811
statistics::Scalar numVecInsts
Definition base.hh:808
void updateComCtrlStats(const StaticInstPtr staticInst)
Definition base.cc:1048
statistics::Vector committedControl
Definition base.hh:814
statistics::Scalar numInstsNotNOP
Definition base.hh:785
statistics::Formula cpi
Definition base.hh:789
statistics::Scalar numStoreInsts
Definition base.hh:805
statistics::Scalar numInsts
Definition base.hh:781
CommitCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:989
statistics::Formula ipc
Definition base.hh:790
statistics::Scalar numOpsNotNOP
Definition base.hh:786
statistics::Scalar numLoadInsts
Definition base.hh:802
statistics::Scalar numIntInsts
Definition base.hh:799
statistics::Scalar numMemRefs
Definition base.hh:793
statistics::Scalar numOps
Definition base.hh:782
statistics::Scalar numIntRegReads
Definition base.hh:751
statistics::Scalar numVecPredRegReads
Definition base.hh:765
statistics::Scalar dcacheStallCycles
Definition base.hh:734
statistics::Scalar numCCRegReads
Definition base.hh:737
statistics::Scalar numBranches
Definition base.hh:725
statistics::Scalar numInsts
Definition base.hh:721
statistics::Scalar numIntRegWrites
Definition base.hh:752
statistics::Formula numStoreInsts
Definition base.hh:729
statistics::Scalar numMemRefs
Definition base.hh:755
statistics::Formula instRate
Definition base.hh:731
statistics::Scalar numVecAluAccesses
Definition base.hh:762
statistics::Scalar numMiscRegReads
Definition base.hh:758
statistics::Scalar numCCRegWrites
Definition base.hh:738
statistics::Scalar numVecPredRegWrites
Definition base.hh:766
statistics::Scalar numFpAluAccesses
Definition base.hh:741
statistics::Scalar numFpRegWrites
Definition base.hh:745
statistics::Scalar numDiscardedOps
Definition base.hh:773
statistics::Scalar numNop
Definition base.hh:723
statistics::Scalar numIntAluAccesses
Definition base.hh:748
ExecuteCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:901
statistics::Scalar numVecRegWrites
Definition base.hh:770
statistics::Scalar numFpRegReads
Definition base.hh:744
statistics::Scalar numVecRegReads
Definition base.hh:769
statistics::Scalar numMiscRegWrites
Definition base.hh:759
statistics::Scalar numLoadInsts
Definition base.hh:727
statistics::Scalar numOps
Definition base.hh:697
statistics::Scalar numInsts
Definition base.hh:694
statistics::Formula fetchRate
Definition base.hh:700
statistics::Formula branchRate
Definition base.hh:706
statistics::Scalar numFetchSuspends
Definition base.hh:712
statistics::Scalar numBranches
Definition base.hh:703
FetchCPUStats(statistics::Group *parent, int thread_id)
Definition base.cc:866
statistics::Scalar icacheStallCycles
Definition base.hh:709
Global CPU statistics that are merged into the Root object.
Definition base.hh:150
statistics::Value simOps
Definition base.hh:154
statistics::Formula hostInstRate
Definition base.hh:156
statistics::Value simInsts
Definition base.hh:153
GlobalStats(statistics::Group *parent)
Definition base.cc:826
statistics::Formula hostOpRate
Definition base.hh:157

Generated on Tue Jun 18 2024 16:24:02 for gem5 by doxygen 1.11.0