fetch.hh (2840:227f7c4f8c81) | fetch.hh (2843:19c4c6c2b5b1) |
---|---|
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; --- 166 unchanged lines hidden (view full) --- 175 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr); 176 177 /** Initialize stage. */ 178 void initStage(); 179 180 /** Processes cache completion event. */ 181 void processCacheCompletion(PacketPtr pkt); 182 | 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; --- 166 unchanged lines hidden (view full) --- 175 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr); 176 177 /** Initialize stage. */ 178 void initStage(); 179 180 /** Processes cache completion event. */ 181 void processCacheCompletion(PacketPtr pkt); 182 |
183 /** Begins the switch out of the fetch stage. */ 184 void switchOut(); | 183 /** Begins the drain of the fetch stage. */ 184 void drain(); |
185 | 185 |
186 /** Completes the switch out of the fetch stage. */ 187 void doSwitchOut(); | 186 /** Resumes execution after a drain. */ 187 void resume(); |
188 | 188 |
189 /** Tells fetch stage to prepare to be switched out. */ 190 void switchOut(); 191 |
|
189 /** Takes over from another CPU's thread. */ 190 void takeOverFrom(); 191 192 /** Checks if the fetch stage is switched out. */ 193 bool isSwitchedOut() { return switchedOut; } 194 195 /** Tells fetch to wake up from a quiesce instruction. */ 196 void wakeFromQuiesce(); --- 219 unchanged lines hidden (view full) --- 416 /** Thread ID being fetched. */ 417 int threadFetched; 418 419 /** Checks if there is an interrupt pending. If there is, fetch 420 * must stop once it is not fetching PAL instructions. 421 */ 422 bool interruptPending; 423 | 192 /** Takes over from another CPU's thread. */ 193 void takeOverFrom(); 194 195 /** Checks if the fetch stage is switched out. */ 196 bool isSwitchedOut() { return switchedOut; } 197 198 /** Tells fetch to wake up from a quiesce instruction. */ 199 void wakeFromQuiesce(); --- 219 unchanged lines hidden (view full) --- 419 /** Thread ID being fetched. */ 420 int threadFetched; 421 422 /** Checks if there is an interrupt pending. If there is, fetch 423 * must stop once it is not fetching PAL instructions. 424 */ 425 bool interruptPending; 426 |
427 /** Is there a drain pending. */ 428 bool drainPending; 429 |
|
424 /** Records if fetch is switched out. */ 425 bool switchedOut; 426 427 // @todo: Consider making these vectors and tracking on a per thread basis. 428 /** Stat for total number of cycles stalled due to an icache miss. */ 429 Stats::Scalar<> icacheStallCycles; 430 /** Stat for total number of fetched instructions. */ 431 Stats::Scalar<> fetchedInsts; --- 33 unchanged lines hidden --- | 430 /** Records if fetch is switched out. */ 431 bool switchedOut; 432 433 // @todo: Consider making these vectors and tracking on a per thread basis. 434 /** Stat for total number of cycles stalled due to an icache miss. */ 435 Stats::Scalar<> icacheStallCycles; 436 /** Stat for total number of fetched instructions. */ 437 Stats::Scalar<> fetchedInsts; --- 33 unchanged lines hidden --- |