1/* 2 * Copyright (c) 2010-2012 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 41 unchanged lines hidden (view full) --- 50#include "config/the_isa.hh" 51#include "cpu/pc_event.hh" 52#include "cpu/pred/bpred_unit.hh" 53#include "cpu/timebuf.hh" 54#include "cpu/translation.hh" 55#include "mem/packet.hh" 56#include "mem/port.hh" 57#include "sim/eventq.hh" |
58#include "sim/probe/probe.hh" |
59 60struct DerivO3CPUParams; 61 62/** 63 * DefaultFetch class handles both single threaded and SMT fetch. Its 64 * width is specified by the parameters; each cycle it tries to fetch 65 * that many instructions. It supports using a branch predictor to 66 * predict direction and targets. --- 123 unchanged lines hidden (view full) --- 190 ThreadStatus fetchStatus[Impl::MaxThreads]; 191 192 /** Fetch policy. */ 193 FetchPriority fetchPolicy; 194 195 /** List that has the threads organized by priority. */ 196 std::list<ThreadID> priorityList; 197 |
198 /** Probe points. */ 199 ProbePointArg<DynInstPtr> *ppFetch; 200 |
201 public: 202 /** DefaultFetch constructor. */ 203 DefaultFetch(O3CPU *_cpu, DerivO3CPUParams *params); 204 205 /** Returns the name of fetch. */ 206 std::string name() const; 207 208 /** Registers statistics. */ 209 void regStats(); 210 |
211 /** Registers probes. */ 212 void regProbePoints(); 213 |
214 /** Sets the main backwards communication time buffer pointer. */ 215 void setTimeBuffer(TimeBuffer<TimeStruct> *time_buffer); 216 217 /** Sets pointer to list of active threads. */ 218 void setActiveThreads(std::list<ThreadID> *at_ptr); 219 220 /** Sets pointer to time buffer used to communicate to the next stage. */ 221 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr); --- 351 unchanged lines hidden --- |