dram_ctrl.hh (11676:8a882e297eb2) dram_ctrl.hh (11677:beaf1afe2f83)
1/*
2 * Copyright (c) 2012-2016 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

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

51
52#ifndef __MEM_DRAM_CTRL_HH__
53#define __MEM_DRAM_CTRL_HH__
54
55#include <deque>
56#include <string>
57#include <unordered_set>
58
1/*
2 * Copyright (c) 2012-2016 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

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

51
52#ifndef __MEM_DRAM_CTRL_HH__
53#define __MEM_DRAM_CTRL_HH__
54
55#include <deque>
56#include <string>
57#include <unordered_set>
58
59#include "base/callback.hh"
59#include "base/statistics.hh"
60#include "enums/AddrMap.hh"
61#include "enums/MemSched.hh"
62#include "enums/PageManage.hh"
63#include "mem/abstract_mem.hh"
64#include "mem/qport.hh"
65#include "params/DRAMCtrl.hh"
66#include "sim/eventq.hh"

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

404 */
405 void flushCmdList();
406
407 /*
408 * Function to register Stats
409 */
410 void regStats();
411
60#include "base/statistics.hh"
61#include "enums/AddrMap.hh"
62#include "enums/MemSched.hh"
63#include "enums/PageManage.hh"
64#include "mem/abstract_mem.hh"
65#include "mem/qport.hh"
66#include "params/DRAMCtrl.hh"
67#include "sim/eventq.hh"

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

405 */
406 void flushCmdList();
407
408 /*
409 * Function to register Stats
410 */
411 void regStats();
412
413 /**
414 * Computes stats just prior to dump event
415 */
416 void computeStats();
417
412 void processActivateEvent();
413 EventWrapper<Rank, &Rank::processActivateEvent>
414 activateEvent;
415
416 void processPrechargeEvent();
417 EventWrapper<Rank, &Rank::processPrechargeEvent>
418 prechargeEvent;
419
420 void processRefreshEvent();
421 EventWrapper<Rank, &Rank::processRefreshEvent>
422 refreshEvent;
423
424 void processPowerEvent();
425 EventWrapper<Rank, &Rank::processPowerEvent>
426 powerEvent;
427
428 };
429
418 void processActivateEvent();
419 EventWrapper<Rank, &Rank::processActivateEvent>
420 activateEvent;
421
422 void processPrechargeEvent();
423 EventWrapper<Rank, &Rank::processPrechargeEvent>
424 prechargeEvent;
425
426 void processRefreshEvent();
427 EventWrapper<Rank, &Rank::processRefreshEvent>
428 refreshEvent;
429
430 void processPowerEvent();
431 EventWrapper<Rank, &Rank::processPowerEvent>
432 powerEvent;
433
434 };
435
436 // define the process to compute stats on simulation exit
437 // defined per rank as the per rank stats are based on state
438 // transition and periodically updated, requiring re-sync at
439 // exit.
440 class RankDumpCallback : public Callback
441 {
442 Rank *ranks;
443 public:
444 RankDumpCallback(Rank *r) : ranks(r) {}
445 virtual void process() { ranks->computeStats(); };
446 };
447
430 /**
431 * A burst helper helps organize and manage a packet that is larger than
432 * the DRAM burst size. A system packet that is larger than the burst size
433 * is split into multiple DRAM packets and all those DRAM packets point to
434 * a single burst helper such that we know when the whole packet is served.
435 */
436 class BurstHelper {
437

--- 507 unchanged lines hidden ---
448 /**
449 * A burst helper helps organize and manage a packet that is larger than
450 * the DRAM burst size. A system packet that is larger than the burst size
451 * is split into multiple DRAM packets and all those DRAM packets point to
452 * a single burst helper such that we know when the whole packet is served.
453 */
454 class BurstHelper {
455

--- 507 unchanged lines hidden ---