summaryrefslogtreecommitdiff
path: root/ext/drampower/src/libdrampower/LibDRAMPower.h
diff options
context:
space:
mode:
Diffstat (limited to 'ext/drampower/src/libdrampower/LibDRAMPower.h')
-rw-r--r--ext/drampower/src/libdrampower/LibDRAMPower.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/ext/drampower/src/libdrampower/LibDRAMPower.h b/ext/drampower/src/libdrampower/LibDRAMPower.h
index 4d9ccefe5..46e14bdd3 100644
--- a/ext/drampower/src/libdrampower/LibDRAMPower.h
+++ b/ext/drampower/src/libdrampower/LibDRAMPower.h
@@ -31,7 +31,11 @@
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * Authors: Matthias Jung, Omar Naji
+ * Authors: Matthias Jung
+ * Omar Naji
+ * Subash Kannoth
+ * Éder F. Zulian
+ * Felipe S. Prado
*
*/
@@ -44,35 +48,42 @@
#include "CommandAnalysis.h"
#include "MemoryPowerModel.h"
#include "MemCommand.h"
+#include "MemBankWiseParams.h"
+
class libDRAMPower {
public:
libDRAMPower(const Data::MemorySpecification& memSpec, bool includeIoAndTermination);
+ libDRAMPower(const Data::MemorySpecification& memSpec, bool includeIoAndTermination,const Data::MemBankWiseParams& bwPowerParams);
~libDRAMPower();
void doCommand(Data::MemCommand::cmds type,
int bank,
int64_t timestamp);
- void updateCounters(bool lastUpdate);
-
- void clearCounters(int64_t timestamp);
-
- void clearState();
-
void calcEnergy();
+ void calcWindowEnergy(int64_t timestamp);
+
const Data::MemoryPowerModel::Energy& getEnergy() const;
const Data::MemoryPowerModel::Power& getPower() const;
// list of all commands
std::vector<Data::MemCommand> cmdList;
private:
+ void updateCounters(bool lastUpdate, int64_t timestamp = 0);
+
+ void clearCounters(int64_t timestamp);
+
+ void clearState();
+
Data::MemorySpecification memSpec;
public:
Data::CommandAnalysis counters;
private:
bool includeIoAndTermination;
+ bool bankwiseMode;
+ Data:: MemBankWiseParams bwPowerParams;
// Object of MemoryPowerModel which contains the results
// Energies(pJ) stored in energy, Powers(mW) stored in power. Number of
// each command stored in timings.