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. */ |
161 void switchOut(); 162 |
163 /** Completes the switch out. */ |
164 void doSwitchOut(); 165 |
166 /** Takes over from another CPU's thread. */ |
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. */ |
252 void readFreeEntries(unsigned tid); 253 |
254 /** Checks the signals and updates the status. */ |
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. */ |
465 Stats::Scalar<> renamedSerializing; |
466 /** Number of instructions marked as temporarily serializing. */ |
467 Stats::Scalar<> renamedTempSerializing; |
468 /** Number of instructions inserted into skid buffers. */ |
469 Stats::Scalar<> renameSkidInsts; 470}; 471 472#endif // __CPU_O3_RENAME_HH__ |