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 --- |