User can choose bankwise power calculation
This commit is contained in:
@@ -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"/>
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user