iew_impl.hh (8232:b28d06a175be) iew_impl.hh (8240:38befb82b2c9)
1/*
2 * Copyright (c) 2010 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

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

189 .flags(total);
190
191 iewExecSquashedInsts
192 .name(name() + ".iewExecSquashedInsts")
193 .desc("Number of squashed instructions skipped in execute");
194
195 iewExecutedSwp
196 .init(cpu->numThreads)
1/*
2 * Copyright (c) 2010 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

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

189 .flags(total);
190
191 iewExecSquashedInsts
192 .name(name() + ".iewExecSquashedInsts")
193 .desc("Number of squashed instructions skipped in execute");
194
195 iewExecutedSwp
196 .init(cpu->numThreads)
197 .name(name() + ".EXEC:swp")
197 .name(name() + ".exec_swp")
198 .desc("number of swp insts executed")
199 .flags(total);
200
201 iewExecutedNop
202 .init(cpu->numThreads)
198 .desc("number of swp insts executed")
199 .flags(total);
200
201 iewExecutedNop
202 .init(cpu->numThreads)
203 .name(name() + ".EXEC:nop")
203 .name(name() + ".exec_nop")
204 .desc("number of nop insts executed")
205 .flags(total);
206
207 iewExecutedRefs
208 .init(cpu->numThreads)
204 .desc("number of nop insts executed")
205 .flags(total);
206
207 iewExecutedRefs
208 .init(cpu->numThreads)
209 .name(name() + ".EXEC:refs")
209 .name(name() + ".exec_refs")
210 .desc("number of memory reference insts executed")
211 .flags(total);
212
213 iewExecutedBranches
214 .init(cpu->numThreads)
210 .desc("number of memory reference insts executed")
211 .flags(total);
212
213 iewExecutedBranches
214 .init(cpu->numThreads)
215 .name(name() + ".EXEC:branches")
215 .name(name() + ".exec_branches")
216 .desc("Number of branches executed")
217 .flags(total);
218
219 iewExecStoreInsts
216 .desc("Number of branches executed")
217 .flags(total);
218
219 iewExecStoreInsts
220 .name(name() + ".EXEC:stores")
220 .name(name() + ".exec_stores")
221 .desc("Number of stores executed")
222 .flags(total);
223 iewExecStoreInsts = iewExecutedRefs - iewExecLoadInsts;
224
225 iewExecRate
221 .desc("Number of stores executed")
222 .flags(total);
223 iewExecStoreInsts = iewExecutedRefs - iewExecLoadInsts;
224
225 iewExecRate
226 .name(name() + ".EXEC:rate")
226 .name(name() + ".exec_rate")
227 .desc("Inst execution rate")
228 .flags(total);
229
230 iewExecRate = iewExecutedInsts / cpu->numCycles;
231
232 iewInstsToCommit
233 .init(cpu->numThreads)
227 .desc("Inst execution rate")
228 .flags(total);
229
230 iewExecRate = iewExecutedInsts / cpu->numCycles;
231
232 iewInstsToCommit
233 .init(cpu->numThreads)
234 .name(name() + ".WB:sent")
234 .name(name() + ".wb_sent")
235 .desc("cumulative count of insts sent to commit")
236 .flags(total);
237
238 writebackCount
239 .init(cpu->numThreads)
235 .desc("cumulative count of insts sent to commit")
236 .flags(total);
237
238 writebackCount
239 .init(cpu->numThreads)
240 .name(name() + ".WB:count")
240 .name(name() + ".wb_count")
241 .desc("cumulative count of insts written-back")
242 .flags(total);
243
244 producerInst
245 .init(cpu->numThreads)
241 .desc("cumulative count of insts written-back")
242 .flags(total);
243
244 producerInst
245 .init(cpu->numThreads)
246 .name(name() + ".WB:producers")
246 .name(name() + ".wb_producers")
247 .desc("num instructions producing a value")
248 .flags(total);
249
250 consumerInst
251 .init(cpu->numThreads)
247 .desc("num instructions producing a value")
248 .flags(total);
249
250 consumerInst
251 .init(cpu->numThreads)
252 .name(name() + ".WB:consumers")
252 .name(name() + ".wb_consumers")
253 .desc("num instructions consuming a value")
254 .flags(total);
255
256 wbPenalized
257 .init(cpu->numThreads)
253 .desc("num instructions consuming a value")
254 .flags(total);
255
256 wbPenalized
257 .init(cpu->numThreads)
258 .name(name() + ".WB:penalized")
258 .name(name() + ".wb_penalized")
259 .desc("number of instrctions required to write to 'other' IQ")
260 .flags(total);
261
262 wbPenalizedRate
259 .desc("number of instrctions required to write to 'other' IQ")
260 .flags(total);
261
262 wbPenalizedRate
263 .name(name() + ".WB:penalized_rate")
263 .name(name() + ".wb_penalized_rate")
264 .desc ("fraction of instructions written-back that wrote to 'other' IQ")
265 .flags(total);
266
267 wbPenalizedRate = wbPenalized / writebackCount;
268
269 wbFanout
264 .desc ("fraction of instructions written-back that wrote to 'other' IQ")
265 .flags(total);
266
267 wbPenalizedRate = wbPenalized / writebackCount;
268
269 wbFanout
270 .name(name() + ".WB:fanout")
270 .name(name() + ".wb_fanout")
271 .desc("average fanout of values written-back")
272 .flags(total);
273
274 wbFanout = producerInst / consumerInst;
275
276 wbRate
271 .desc("average fanout of values written-back")
272 .flags(total);
273
274 wbFanout = producerInst / consumerInst;
275
276 wbRate
277 .name(name() + ".WB:rate")
277 .name(name() + ".wb_rate")
278 .desc("insts written-back per cycle")
279 .flags(total);
280 wbRate = writebackCount / cpu->numCycles;
281}
282
283template<class Impl>
284void
285DefaultIEW<Impl>::initStage()

--- 1374 unchanged lines hidden ---
278 .desc("insts written-back per cycle")
279 .flags(total);
280 wbRate = writebackCount / cpu->numCycles;
281}
282
283template<class Impl>
284void
285DefaultIEW<Impl>::initStage()

--- 1374 unchanged lines hidden ---