rob.hh (9444:ab47fe7f03f0) rob.hh (9954:72a72649a156)
1/*
2 * Copyright (c) 2012 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

--- 38 unchanged lines hidden (view full) ---

47#include <string>
48#include <utility>
49#include <vector>
50
51#include "arch/registers.hh"
52#include "base/types.hh"
53#include "config/the_isa.hh"
54
1/*
2 * Copyright (c) 2012 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

--- 38 unchanged lines hidden (view full) ---

47#include <string>
48#include <utility>
49#include <vector>
50
51#include "arch/registers.hh"
52#include "base/types.hh"
53#include "config/the_isa.hh"
54
55struct DerivO3CPUParams;
56
55/**
56 * ROB class. The ROB is largely what drives squashing.
57 */
58template <class Impl>
59class ROB
60{
61 protected:
62 typedef TheISA::RegIndex RegIndex;

--- 23 unchanged lines hidden (view full) ---

86 /** Per-thread ROB status. */
87 Status robStatus[Impl::MaxThreads];
88
89 /** ROB resource sharing policy for SMT mode. */
90 ROBPolicy robPolicy;
91
92 public:
93 /** ROB constructor.
57/**
58 * ROB class. The ROB is largely what drives squashing.
59 */
60template <class Impl>
61class ROB
62{
63 protected:
64 typedef TheISA::RegIndex RegIndex;

--- 23 unchanged lines hidden (view full) ---

88 /** Per-thread ROB status. */
89 Status robStatus[Impl::MaxThreads];
90
91 /** ROB resource sharing policy for SMT mode. */
92 ROBPolicy robPolicy;
93
94 public:
95 /** ROB constructor.
94 * @param _numEntries Number of entries in ROB.
95 * @param _squashWidth Number of instructions that can be squashed in a
96 * single cycle.
97 * @param _smtROBPolicy ROB Partitioning Scheme for SMT.
98 * @param _smtROBThreshold Max Resources(by %) a thread can have in the ROB.
99 * @param _numThreads The number of active threads.
96 * @param _cpu The cpu object pointer.
97 * @param params The cpu params including several ROB-specific parameters.
100 */
98 */
101 ROB(O3CPU *_cpu, unsigned _numEntries, unsigned _squashWidth,
102 std::string smtROBPolicy, unsigned _smtROBThreshold,
103 ThreadID _numThreads);
99 ROB(O3CPU *_cpu, DerivO3CPUParams *params);
104
105 std::string name() const;
106
107 /** Sets pointer to the list of active threads.
108 * @param at_ptr Pointer to the list of active threads.
109 */
110 void setActiveThreads(std::list<ThreadID> *at_ptr);
111

--- 236 unchanged lines hidden ---
100
101 std::string name() const;
102
103 /** Sets pointer to the list of active threads.
104 * @param at_ptr Pointer to the list of active threads.
105 */
106 void setActiveThreads(std::list<ThreadID> *at_ptr);
107

--- 236 unchanged lines hidden ---