cpu.cc (10417:710ee116eb68) cpu.cc (10464:2a0fe8bca031)
1/*
2 * Copyright (c) 2011-2012, 2014 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

400FullO3CPU<Impl>::~FullO3CPU()
401{
402}
403
404template <class Impl>
405void
406FullO3CPU<Impl>::regProbePoints()
407{
1/*
2 * Copyright (c) 2011-2012, 2014 ARM Limited
3 * Copyright (c) 2013 Advanced Micro Devices, Inc.
4 * All rights reserved
5 *
6 * The license below extends only to copyright in the software and shall
7 * not be construed as granting a license to any other intellectual
8 * property including but not limited to intellectual property relating

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

400FullO3CPU<Impl>::~FullO3CPU()
401{
402}
403
404template <class Impl>
405void
406FullO3CPU<Impl>::regProbePoints()
407{
408 BaseCPU::regProbePoints();
409
408 ppInstAccessComplete = new ProbePointArg<PacketPtr>(getProbeManager(), "InstAccessComplete");
409 ppDataAccessComplete = new ProbePointArg<std::pair<DynInstPtr, PacketPtr> >(getProbeManager(), "DataAccessComplete");
410 ppInstAccessComplete = new ProbePointArg<PacketPtr>(getProbeManager(), "InstAccessComplete");
411 ppDataAccessComplete = new ProbePointArg<std::pair<DynInstPtr, PacketPtr> >(getProbeManager(), "DataAccessComplete");
412
410 fetch.regProbePoints();
411 iew.regProbePoints();
412 commit.regProbePoints();
413}
414
415template <class Impl>
416void
417FullO3CPU<Impl>::regStats()

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

529void
530FullO3CPU<Impl>::tick()
531{
532 DPRINTF(O3CPU, "\n\nFullO3CPU: Ticking main, FullO3CPU.\n");
533 assert(!switchedOut());
534 assert(getDrainState() != Drainable::Drained);
535
536 ++numCycles;
413 fetch.regProbePoints();
414 iew.regProbePoints();
415 commit.regProbePoints();
416}
417
418template <class Impl>
419void
420FullO3CPU<Impl>::regStats()

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

532void
533FullO3CPU<Impl>::tick()
534{
535 DPRINTF(O3CPU, "\n\nFullO3CPU: Ticking main, FullO3CPU.\n");
536 assert(!switchedOut());
537 assert(getDrainState() != Drainable::Drained);
538
539 ++numCycles;
540 ppCycles->notify(1);
537
538// activity = false;
539
540 //Tick each of the stages
541 fetch.tick();
542
543 decode.tick();
544

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

1439 thread[tid]->numOp++;
1440 thread[tid]->numOps++;
1441 committedOps[tid]++;
1442
1443 system->totalNumInsts++;
1444 // Check for instruction-count-based events.
1445 comInstEventQueue[tid]->serviceEvents(thread[tid]->numInst);
1446 system->instEventQueue.serviceEvents(system->totalNumInsts);
541
542// activity = false;
543
544 //Tick each of the stages
545 fetch.tick();
546
547 decode.tick();
548

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

1443 thread[tid]->numOp++;
1444 thread[tid]->numOps++;
1445 committedOps[tid]++;
1446
1447 system->totalNumInsts++;
1448 // Check for instruction-count-based events.
1449 comInstEventQueue[tid]->serviceEvents(thread[tid]->numInst);
1450 system->instEventQueue.serviceEvents(system->totalNumInsts);
1451
1452 probeInstCommit(inst->staticInst);
1447}
1448
1449template <class Impl>
1450void
1451FullO3CPU<Impl>::removeFrontInst(DynInstPtr &inst)
1452{
1453 DPRINTF(O3CPU, "Removing committed instruction [tid:%i] PC %s "
1454 "[sn:%lli]\n",

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

1617 DPRINTF(Activity, "CPU already running.\n");
1618 return;
1619 }
1620
1621 DPRINTF(Activity, "Waking up CPU\n");
1622
1623 Cycles cycles(curCycle() - lastRunningCycle);
1624 // @todo: This is an oddity that is only here to match the stats
1453}
1454
1455template <class Impl>
1456void
1457FullO3CPU<Impl>::removeFrontInst(DynInstPtr &inst)
1458{
1459 DPRINTF(O3CPU, "Removing committed instruction [tid:%i] PC %s "
1460 "[sn:%lli]\n",

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

1623 DPRINTF(Activity, "CPU already running.\n");
1624 return;
1625 }
1626
1627 DPRINTF(Activity, "Waking up CPU\n");
1628
1629 Cycles cycles(curCycle() - lastRunningCycle);
1630 // @todo: This is an oddity that is only here to match the stats
1625 if (cycles != 0)
1631 if (cycles > 1) {
1626 --cycles;
1632 --cycles;
1627 idleCycles += cycles;
1628 numCycles += cycles;
1633 idleCycles += cycles;
1634 numCycles += cycles;
1635 ppCycles->notify(cycles);
1636 }
1629
1630 schedule(tickEvent, clockEdge());
1631}
1632
1633template <class Impl>
1634void
1635FullO3CPU<Impl>::wakeup()
1636{

--- 42 unchanged lines hidden ---
1637
1638 schedule(tickEvent, clockEdge());
1639}
1640
1641template <class Impl>
1642void
1643FullO3CPU<Impl>::wakeup()
1644{

--- 42 unchanged lines hidden ---