inst_queue_impl.hh (7720:65d338a8dba4) | inst_queue_impl.hh (7823:dac01f14f20f) |
---|---|
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; --- 740 unchanged lines hidden (view full) --- 749 if (idx >= 0) 750 fuPool->freeUnitNextCycle(idx); 751 } else { 752 int issue_latency = fuPool->getIssueLatency(op_class); 753 // Generate completion event for the FU 754 FUCompletion *execution = new FUCompletion(issuing_inst, 755 idx, this); 756 | 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; --- 740 unchanged lines hidden (view full) --- 749 if (idx >= 0) 750 fuPool->freeUnitNextCycle(idx); 751 } else { 752 int issue_latency = fuPool->getIssueLatency(op_class); 753 // Generate completion event for the FU 754 FUCompletion *execution = new FUCompletion(issuing_inst, 755 idx, this); 756 |
757 cpu->schedule(execution, curTick + cpu->ticks(op_latency - 1)); | 757 cpu->schedule(execution, curTick() + cpu->ticks(op_latency - 1)); |
758 759 // @todo: Enforce that issue_latency == 1 or op_latency 760 if (issue_latency > 1) { 761 // If FU isn't pipelined, then it must be freed 762 // upon the execution completing. 763 execution->setFreeFU(); 764 } else { 765 // Add the FU onto the list of FU's to be freed next cycle. --- 644 unchanged lines hidden --- | 758 759 // @todo: Enforce that issue_latency == 1 or op_latency 760 if (issue_latency > 1) { 761 // If FU isn't pipelined, then it must be freed 762 // upon the execution completing. 763 execution->setFreeFU(); 764 } else { 765 // Add the FU onto the list of FU's to be freed next cycle. --- 644 unchanged lines hidden --- |