inst_queue.hh (5336:c7e21f4e5a2e) | inst_queue.hh (5529:9ae69b9cd7fd) |
---|---|
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; --- 27 unchanged lines hidden (view full) --- 36#include <queue> 37#include <vector> 38 39#include "base/statistics.hh" 40#include "base/timebuf.hh" 41#include "cpu/inst_seq.hh" 42#include "cpu/o3/dep_graph.hh" 43#include "cpu/op_class.hh" | 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; --- 27 unchanged lines hidden (view full) --- 36#include <queue> 37#include <vector> 38 39#include "base/statistics.hh" 40#include "base/timebuf.hh" 41#include "cpu/inst_seq.hh" 42#include "cpu/o3/dep_graph.hh" 43#include "cpu/op_class.hh" |
44#include "sim/eventq.hh" |
|
44#include "sim/host.hh" 45 | 45#include "sim/host.hh" 46 |
47class DerivO3CPUParams; |
|
46class FUPool; 47class MemInterface; 48 49/** 50 * A standard instruction queue class. It holds ready instructions, in 51 * order, in seperate priority queues to facilitate the scheduling of 52 * instructions. The IQ uses a separate linked list to track dependencies. 53 * Similar to the rename map and the free list, it expects that --- 11 unchanged lines hidden (view full) --- 65 */ 66template <class Impl> 67class InstructionQueue 68{ 69 public: 70 //Typedefs from the Impl. 71 typedef typename Impl::O3CPU O3CPU; 72 typedef typename Impl::DynInstPtr DynInstPtr; | 48class FUPool; 49class MemInterface; 50 51/** 52 * A standard instruction queue class. It holds ready instructions, in 53 * order, in seperate priority queues to facilitate the scheduling of 54 * instructions. The IQ uses a separate linked list to track dependencies. 55 * Similar to the rename map and the free list, it expects that --- 11 unchanged lines hidden (view full) --- 67 */ 68template <class Impl> 69class InstructionQueue 70{ 71 public: 72 //Typedefs from the Impl. 73 typedef typename Impl::O3CPU O3CPU; 74 typedef typename Impl::DynInstPtr DynInstPtr; |
73 typedef typename Impl::Params Params; | |
74 75 typedef typename Impl::CPUPol::IEW IEW; 76 typedef typename Impl::CPUPol::MemDepUnit MemDepUnit; 77 typedef typename Impl::CPUPol::IssueStruct IssueStruct; 78 typedef typename Impl::CPUPol::TimeStruct TimeStruct; 79 80 // Typedef of iterator through the list of instructions. 81 typedef typename std::list<DynInstPtr>::iterator ListIt; --- 23 unchanged lines hidden (view full) --- 105 InstructionQueue<Impl> *iq_ptr); 106 107 virtual void process(); 108 virtual const char *description() const; 109 void setFreeFU() { freeFU = true; } 110 }; 111 112 /** Constructs an IQ. */ | 75 76 typedef typename Impl::CPUPol::IEW IEW; 77 typedef typename Impl::CPUPol::MemDepUnit MemDepUnit; 78 typedef typename Impl::CPUPol::IssueStruct IssueStruct; 79 typedef typename Impl::CPUPol::TimeStruct TimeStruct; 80 81 // Typedef of iterator through the list of instructions. 82 typedef typename std::list<DynInstPtr>::iterator ListIt; --- 23 unchanged lines hidden (view full) --- 106 InstructionQueue<Impl> *iq_ptr); 107 108 virtual void process(); 109 virtual const char *description() const; 110 void setFreeFU() { freeFU = true; } 111 }; 112 113 /** Constructs an IQ. */ |
113 InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr, Params *params); | 114 InstructionQueue(O3CPU *cpu_ptr, IEW *iew_ptr, DerivO3CPUParams *params); |
114 115 /** Destructs the IQ. */ 116 ~InstructionQueue(); 117 118 /** Returns the name of the IQ. */ 119 std::string name() const; 120 121 /** Registers statistics. */ --- 380 unchanged lines hidden --- | 115 116 /** Destructs the IQ. */ 117 ~InstructionQueue(); 118 119 /** Returns the name of the IQ. */ 120 std::string name() const; 121 122 /** Registers statistics. */ --- 380 unchanged lines hidden --- |