rob.hh (2674:6d4afef73a20) rob.hh (2733:e0eac8fc5774)
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

40 */
41template <class Impl>
42class ROB
43{
44 protected:
45 typedef TheISA::RegIndex RegIndex;
46 public:
47 //Typedefs from the Impl.
1/*
2 * Copyright (c) 2004-2006 The Regents of The University of Michigan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met: redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer;

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

40 */
41template <class Impl>
42class ROB
43{
44 protected:
45 typedef TheISA::RegIndex RegIndex;
46 public:
47 //Typedefs from the Impl.
48 typedef typename Impl::FullCPU FullCPU;
48 typedef typename Impl::O3CPU O3CPU;
49 typedef typename Impl::DynInstPtr DynInstPtr;
50
51 typedef std::pair<RegIndex, PhysRegIndex> UnmapInfo;
52 typedef typename std::list<DynInstPtr>::iterator InstIt;
53
54 /** Possible ROB statuses. */
55 enum Status {
56 Running,

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

85 unsigned _smtROBThreshold, unsigned _numThreads);
86
87 std::string name() const;
88
89 /** Function to set the CPU pointer, necessary due to which object the ROB
90 * is created within.
91 * @param cpu_ptr Pointer to the implementation specific full CPU object.
92 */
49 typedef typename Impl::DynInstPtr DynInstPtr;
50
51 typedef std::pair<RegIndex, PhysRegIndex> UnmapInfo;
52 typedef typename std::list<DynInstPtr>::iterator InstIt;
53
54 /** Possible ROB statuses. */
55 enum Status {
56 Running,

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

85 unsigned _smtROBThreshold, unsigned _numThreads);
86
87 std::string name() const;
88
89 /** Function to set the CPU pointer, necessary due to which object the ROB
90 * is created within.
91 * @param cpu_ptr Pointer to the implementation specific full CPU object.
92 */
93 void setCPU(FullCPU *cpu_ptr);
93 void setCPU(O3CPU *cpu_ptr);
94
95 /** Sets pointer to the list of active threads.
96 * @param at_ptr Pointer to the list of active threads.
97 */
98 void setActiveThreads(std::list<unsigned>* at_ptr);
99
100 /** Switches out the ROB. */
101 void switchOut();

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

252 /** This is more of a debugging function than anything. Use
253 * threadEntries to get the instructions in the ROB unless you are
254 * double checking that variable.
255 */
256 int countInsts(unsigned tid);
257
258 private:
259 /** Pointer to the CPU. */
94
95 /** Sets pointer to the list of active threads.
96 * @param at_ptr Pointer to the list of active threads.
97 */
98 void setActiveThreads(std::list<unsigned>* at_ptr);
99
100 /** Switches out the ROB. */
101 void switchOut();

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

252 /** This is more of a debugging function than anything. Use
253 * threadEntries to get the instructions in the ROB unless you are
254 * double checking that variable.
255 */
256 int countInsts(unsigned tid);
257
258 private:
259 /** Pointer to the CPU. */
260 FullCPU *cpu;
260 O3CPU *cpu;
261
262 /** Active Threads in CPU */
263 std::list<unsigned>* activeThreads;
264
265 /** Number of instructions in the ROB. */
266 unsigned numEntries;
267
268 /** Entries Per Thread */

--- 51 unchanged lines hidden ---
261
262 /** Active Threads in CPU */
263 std::list<unsigned>* activeThreads;
264
265 /** Number of instructions in the ROB. */
266 unsigned numEntries;
267
268 /** Entries Per Thread */

--- 51 unchanged lines hidden ---