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