rename.hh (2670:9107b8bd08cd) | rename.hh (2674:6d4afef73a20) |
---|---|
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; --- 143 unchanged lines hidden (view full) --- 152 void setRenameMap(RenameMap rm_ptr[Impl::MaxThreads]); 153 154 /** Sets pointer to the free list. */ 155 void setFreeList(FreeList *fl_ptr); 156 157 /** Sets pointer to the scoreboard. */ 158 void setScoreboard(Scoreboard *_scoreboard); 159 | 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; --- 143 unchanged lines hidden (view full) --- 152 void setRenameMap(RenameMap rm_ptr[Impl::MaxThreads]); 153 154 /** Sets pointer to the free list. */ 155 void setFreeList(FreeList *fl_ptr); 156 157 /** Sets pointer to the scoreboard. */ 158 void setScoreboard(Scoreboard *_scoreboard); 159 |
160 /** Switches out the rename stage. */ |
|
160 void switchOut(); 161 | 161 void switchOut(); 162 |
163 /** Completes the switch out. */ |
|
162 void doSwitchOut(); 163 | 164 void doSwitchOut(); 165 |
166 /** Takes over from another CPU's thread. */ |
|
164 void takeOverFrom(); 165 166 /** Squashes all instructions in a thread. */ 167 void squash(unsigned tid); 168 169 /** Ticks rename, which processes all input signals and attempts to rename 170 * as many instructions as possible. 171 */ --- 68 unchanged lines hidden (view full) --- 240 unsigned validInsts(); 241 242 /** Reads signals telling rename to block/unblock. */ 243 void readStallSignals(unsigned tid); 244 245 /** Checks if any stages are telling rename to block. */ 246 bool checkStall(unsigned tid); 247 | 167 void takeOverFrom(); 168 169 /** Squashes all instructions in a thread. */ 170 void squash(unsigned tid); 171 172 /** Ticks rename, which processes all input signals and attempts to rename 173 * as many instructions as possible. 174 */ --- 68 unchanged lines hidden (view full) --- 243 unsigned validInsts(); 244 245 /** Reads signals telling rename to block/unblock. */ 246 void readStallSignals(unsigned tid); 247 248 /** Checks if any stages are telling rename to block. */ 249 bool checkStall(unsigned tid); 250 |
251 /** Gets the number of free entries for a specific thread. */ |
|
248 void readFreeEntries(unsigned tid); 249 | 252 void readFreeEntries(unsigned tid); 253 |
254 /** Checks the signals and updates the status. */ |
|
250 bool checkSignalsAndUpdate(unsigned tid); 251 252 /** Either serializes on the next instruction available in the InstQueue, 253 * or records that it must serialize on the next instruction to enter 254 * rename. 255 * @param inst_list The list of younger, unprocessed instructions for the 256 * thread that has the serializeAfter instruction. 257 * @param tid The thread id. --- 193 unchanged lines hidden (view full) --- 451 /** Stat for total number of renamed destination registers. */ 452 Stats::Scalar<> renameRenamedOperands; 453 /** Stat for total number of source register rename lookups. */ 454 Stats::Scalar<> renameRenameLookups; 455 /** Stat for total number of committed renaming mappings. */ 456 Stats::Scalar<> renameCommittedMaps; 457 /** Stat for total number of mappings that were undone due to a squash. */ 458 Stats::Scalar<> renameUndoneMaps; | 255 bool checkSignalsAndUpdate(unsigned tid); 256 257 /** Either serializes on the next instruction available in the InstQueue, 258 * or records that it must serialize on the next instruction to enter 259 * rename. 260 * @param inst_list The list of younger, unprocessed instructions for the 261 * thread that has the serializeAfter instruction. 262 * @param tid The thread id. --- 193 unchanged lines hidden (view full) --- 456 /** Stat for total number of renamed destination registers. */ 457 Stats::Scalar<> renameRenamedOperands; 458 /** Stat for total number of source register rename lookups. */ 459 Stats::Scalar<> renameRenameLookups; 460 /** Stat for total number of committed renaming mappings. */ 461 Stats::Scalar<> renameCommittedMaps; 462 /** Stat for total number of mappings that were undone due to a squash. */ 463 Stats::Scalar<> renameUndoneMaps; |
464 /** Number of serialize instructions handled. */ |
|
459 Stats::Scalar<> renamedSerializing; | 465 Stats::Scalar<> renamedSerializing; |
466 /** Number of instructions marked as temporarily serializing. */ |
|
460 Stats::Scalar<> renamedTempSerializing; | 467 Stats::Scalar<> renamedTempSerializing; |
468 /** Number of instructions inserted into skid buffers. */ |
|
461 Stats::Scalar<> renameSkidInsts; 462}; 463 464#endif // __CPU_O3_RENAME_HH__ | 469 Stats::Scalar<> renameSkidInsts; 470}; 471 472#endif // __CPU_O3_RENAME_HH__ |