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; --- 67 unchanged lines hidden (view full) --- 76 77 switchedOut = false; 78 79 numThreads = params->numberOfThreads; 80 81 // Set the number of physical registers as the number of int + float 82 numPhysRegs = numPhysIntRegs + numPhysFloatRegs; 83 |
84 //Create an entry for each physical register within the 85 //dependency graph. 86 dependGraph.resize(numPhysRegs); 87 88 // Resize the register scoreboard. 89 regScoreboard.resize(numPhysRegs); 90 91 //Initialize Mem Dependence Units --- 25 unchanged lines hidden (view full) --- 117 //@todo:make work if part_amt doesnt divide evenly. 118 int part_amt = numEntries / numThreads; 119 120 //Divide ROB up evenly 121 for (int i = 0; i < numThreads; i++) { 122 maxEntries[i] = part_amt; 123 } 124 |
125/* |
126 DPRINTF(IQ, "IQ sharing policy set to Partitioned:" 127 "%i entries per thread.\n",part_amt); |
128*/ |
129 130 } else if (policy == "threshold") { 131 iqPolicy = Threshold; 132 133 double threshold = (double)params->smtIQThreshold / 100; 134 135 int thresholdIQ = (int)((double)threshold * numEntries); 136 137 //Divide up by threshold amount 138 for (int i = 0; i < numThreads; i++) { 139 maxEntries[i] = thresholdIQ; 140 } 141 |
142/* |
143 DPRINTF(IQ, "IQ sharing policy set to Threshold:" 144 "%i entries per thread.\n",thresholdIQ); |
145*/ |
146 } else { 147 assert(0 && "Invalid IQ Sharing Policy.Options Are:{Dynamic," 148 "Partitioned, Threshold}"); 149 } 150} 151 152template <class Impl> 153InstructionQueue<Impl>::~InstructionQueue() --- 203 unchanged lines hidden (view full) --- 357 nonSpecInsts.clear(); 358 listOrder.clear(); 359} 360 361template <class Impl> 362void 363InstructionQueue<Impl>::setActiveThreads(std::list<unsigned> *at_ptr) 364{ |
365 activeThreads = at_ptr; 366} 367 368template <class Impl> 369void 370InstructionQueue<Impl>::setIssueToExecuteQueue(TimeBuffer<IssueStruct> *i2e_ptr) 371{ |
372 issueToExecuteQueue = i2e_ptr; |
373} 374 375template <class Impl> 376void 377InstructionQueue<Impl>::setTimeBuffer(TimeBuffer<TimeStruct> *tb_ptr) 378{ |
379 timeBuffer = tb_ptr; 380 381 fromCommit = timeBuffer->getWire(-commitToIEWDelay); 382} 383 384template <class Impl> 385void 386InstructionQueue<Impl>::switchOut() --- 1028 unchanged lines hidden --- |