User can choose bankwise power calculation

This commit is contained in:
Éder F. Zulian
2016-05-10 18:18:00 +02:00
parent 375efaadac
commit ab2af8c953
4 changed files with 15 additions and 1 deletions

View File

@@ -6,6 +6,8 @@
<PowerAnalysis value="1" />
<PowerWindowSize value="1000" />
<PowerWindowUnit value="ns" />
<BankwisePower value="0" />
<BankwisePowerFactor value="50" />
<NumberOfTracePlayers value="1"/>
<NumberOfMemChannels value="4"/>
<ControllerCoreDisableRefresh value="0"/>

View File

@@ -140,6 +140,10 @@ void Configuration::setParameter(std::string name, std::string value)
PowerWindowSize = std::stod(value.c_str());
else if (name == "PowerWindowUnit")
PowerWindowUnit = string2TimeUnit(value);
else if(name == "BankwisePower")
BankwisePower = string2bool(value);
else if(name == "BankwisePowerFactor")
BankwisePowerFactor = string2int(value);
else if(name == "Debug")
Debug = string2bool(value);
else if (name == "NumberOfTracePlayers")

View File

@@ -76,6 +76,8 @@ struct Configuration
bool DatabaseRecording = true;
bool PowerAnalysis = false;
double PowerWindowSize;
bool BankwisePower = false;
unsigned int BankwisePowerFactor = 100;
enum sc_time_unit PowerWindowUnit;
bool Debug = false;
unsigned int NumberOfTracePlayers = 1;

View File

@@ -73,6 +73,8 @@ struct Dram : sc_module
sc_time powerWindowSize = sc_time(pWindowSize, pWindowUnit);
libDRAMPower *DRAMPower;
double sumOfEnergyWindows = 0.0;
bool bankwisePower = Configuration::getInstance().BankwisePower;
unsigned int bankwisePowerFactor = Configuration::getInstance().BankwisePowerFactor;
// Bandwith realted:
unsigned long long int numberOfTransactionsServed;
@@ -173,7 +175,11 @@ struct Dram : sc_module
memSpec.memPowerSpec = memPowerSpec;
memSpec.memArchSpec = memArchSpec;
DRAMPower = new libDRAMPower( memSpec, 0 );
if (bankwisePower) {
DRAMPower = new libDRAMPower( memSpec, 0, bankwisePower, bankwisePowerFactor );
} else {
DRAMPower = new libDRAMPower( memSpec, 0 );
}
// Create a thread that is triggered every $powerWindowSize
// to generate a Power over Time plot in the Trace analyzer: