fetch.hh (9982:b2bfc23f932c) fetch.hh (10023:91faf6649de0)
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"
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"
58
59struct DerivO3CPUParams;
60
61/**
62 * DefaultFetch class handles both single threaded and SMT fetch. Its
63 * width is specified by the parameters; each cycle it tries to fetch
64 * that many instructions. It supports using a branch predictor to
65 * predict direction and targets.

--- 123 unchanged lines hidden (view full) ---

189 ThreadStatus fetchStatus[Impl::MaxThreads];
190
191 /** Fetch policy. */
192 FetchPriority fetchPolicy;
193
194 /** List that has the threads organized by priority. */
195 std::list<ThreadID> priorityList;
196
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
197 public:
198 /** DefaultFetch constructor. */
199 DefaultFetch(O3CPU *_cpu, DerivO3CPUParams *params);
200
201 /** Returns the name of fetch. */
202 std::string name() const;
203
204 /** Registers statistics. */
205 void regStats();
206
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
207 /** Sets the main backwards communication time buffer pointer. */
208 void setTimeBuffer(TimeBuffer<TimeStruct> *time_buffer);
209
210 /** Sets pointer to list of active threads. */
211 void setActiveThreads(std::list<ThreadID> *at_ptr);
212
213 /** Sets pointer to time buffer used to communicate to the next stage. */
214 void setFetchQueue(TimeBuffer<FetchStruct> *fq_ptr);

--- 351 unchanged lines hidden ---
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 ---