iew.hh (2935:d1223a6c9156) | iew.hh (3125:febd811bccc6) |
---|---|
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; --- 202 unchanged lines hidden (view full) --- 211 /** Returns if the LSQ has any stores to writeback. */ 212 bool hasStoresToWB() { return ldstQueue.hasStoresToWB(); } 213 214 void incrWb(InstSeqNum &sn) 215 { 216 if (++wbOutstanding == wbMax) 217 ableToIssue = false; 218 DPRINTF(IEW, "wbOutstanding: %i\n", wbOutstanding); | 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; --- 202 unchanged lines hidden (view full) --- 211 /** Returns if the LSQ has any stores to writeback. */ 212 bool hasStoresToWB() { return ldstQueue.hasStoresToWB(); } 213 214 void incrWb(InstSeqNum &sn) 215 { 216 if (++wbOutstanding == wbMax) 217 ableToIssue = false; 218 DPRINTF(IEW, "wbOutstanding: %i\n", wbOutstanding); |
219 assert(wbOutstanding <= wbMax); |
|
219#ifdef DEBUG 220 wbList.insert(sn); 221#endif 222 } 223 224 void decrWb(InstSeqNum &sn) 225 { 226 if (wbOutstanding-- == wbMax) 227 ableToIssue = true; 228 DPRINTF(IEW, "wbOutstanding: %i\n", wbOutstanding); | 220#ifdef DEBUG 221 wbList.insert(sn); 222#endif 223 } 224 225 void decrWb(InstSeqNum &sn) 226 { 227 if (wbOutstanding-- == wbMax) 228 ableToIssue = true; 229 DPRINTF(IEW, "wbOutstanding: %i\n", wbOutstanding); |
230 assert(wbOutstanding >= 0); |
|
229#ifdef DEBUG 230 assert(wbList.find(sn) != wbList.end()); 231 wbList.erase(sn); 232#endif 233 } 234 235#ifdef DEBUG 236 std::set<InstSeqNum> wbList; --- 208 unchanged lines hidden (view full) --- 445 /** Cycle number within the queue of instructions being written back. 446 * Used in case there are too many instructions writing back at the current 447 * cycle and writesbacks need to be scheduled for the future. See comments 448 * in instToCommit(). 449 */ 450 unsigned wbCycle; 451 452 /** Number of instructions in flight that will writeback. */ | 231#ifdef DEBUG 232 assert(wbList.find(sn) != wbList.end()); 233 wbList.erase(sn); 234#endif 235 } 236 237#ifdef DEBUG 238 std::set<InstSeqNum> wbList; --- 208 unchanged lines hidden (view full) --- 447 /** Cycle number within the queue of instructions being written back. 448 * Used in case there are too many instructions writing back at the current 449 * cycle and writesbacks need to be scheduled for the future. See comments 450 * in instToCommit(). 451 */ 452 unsigned wbCycle; 453 454 /** Number of instructions in flight that will writeback. */ |
453 unsigned wbOutstanding; | |
454 | 455 |
456 /** Number of instructions in flight that will writeback. */ 457 int wbOutstanding; 458 |
|
455 /** Writeback width. */ 456 unsigned wbWidth; 457 458 /** Writeback width * writeback depth, where writeback depth is 459 * the number of cycles of writing back instructions that can be 460 * buffered. */ 461 unsigned wbMax; 462 --- 39 unchanged lines hidden (view full) --- 502 Stats::Scalar<> predictedNotTakenIncorrect; 503 /** Stat for total number of mispredicted branches detected at execute. */ 504 Stats::Formula branchMispredicts; 505 506 /** Stat for total number of executed instructions. */ 507 Stats::Scalar<> iewExecutedInsts; 508 /** Stat for total number of executed load instructions. */ 509 Stats::Vector<> iewExecLoadInsts; | 459 /** Writeback width. */ 460 unsigned wbWidth; 461 462 /** Writeback width * writeback depth, where writeback depth is 463 * the number of cycles of writing back instructions that can be 464 * buffered. */ 465 unsigned wbMax; 466 --- 39 unchanged lines hidden (view full) --- 506 Stats::Scalar<> predictedNotTakenIncorrect; 507 /** Stat for total number of mispredicted branches detected at execute. */ 508 Stats::Formula branchMispredicts; 509 510 /** Stat for total number of executed instructions. */ 511 Stats::Scalar<> iewExecutedInsts; 512 /** Stat for total number of executed load instructions. */ 513 Stats::Vector<> iewExecLoadInsts; |
514 /** Stat for total number of executed store instructions. */ 515// Stats::Scalar<> iewExecStoreInsts; |
|
510 /** Stat for total number of squashed instructions skipped at execute. */ 511 Stats::Scalar<> iewExecSquashedInsts; 512 /** Number of executed software prefetches. */ 513 Stats::Vector<> iewExecutedSwp; 514 /** Number of executed nops. */ 515 Stats::Vector<> iewExecutedNop; 516 /** Number of executed meomory references. */ 517 Stats::Vector<> iewExecutedRefs; --- 28 unchanged lines hidden --- | 516 /** Stat for total number of squashed instructions skipped at execute. */ 517 Stats::Scalar<> iewExecSquashedInsts; 518 /** Number of executed software prefetches. */ 519 Stats::Vector<> iewExecutedSwp; 520 /** Number of executed nops. */ 521 Stats::Vector<> iewExecutedNop; 522 /** Number of executed meomory references. */ 523 Stats::Vector<> iewExecutedRefs; --- 28 unchanged lines hidden --- |