xml extended, sim config introduced

This commit is contained in:
Janik Schlemminger
2014-09-03 18:52:32 +02:00
parent 1807ef00f4
commit 320331164b
13 changed files with 53 additions and 119 deletions

View File

@@ -1,15 +1,12 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="0" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="0" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="50" />
<parameter id="scheduler" type="string" value="FIFO" />
<parameter id="capsize" type="uint" value="5" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="100" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>
<memconfig>
<BankwiseLogic value="0"/>
<OpenPagePolicy value="1" />
<AdaptiveOpenPagePolicy value="0" />
<RefreshAwareScheduling value="1" />
<MaxNrOfTransactions value="50" />
<Scheduler value="FIFO" />
<Capsize value="5" />
<PowerDownMode value="Staggered" />
<PowerDownTimeout value="100" />
<DatabaseRecordingEnabled value="1" />
</memconfig>

View File

@@ -8,5 +8,11 @@
<Capsize value="5" />
<PowerDownMode value="Staggered" />
<PowerDownTimeout value="100" />
<DatabaseRecordingEnabled value="1" />
<!--
<Buswidth value="128" />
<ReadWriteGrouping value="false" />
<ModelStorage value="false" />
<ModelErrorInjection value="false" />
<ReorderBuffer value="false" />
-->
</memconfig>

View File

@@ -1,15 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="1" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="0" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="2000" />
<parameter id="scheduler" type="string" value="FR_FCFS" />
<parameter id="capsize" type="uint" value="5" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="3" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>

View File

@@ -1,15 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="0" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="0" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="2000" />
<parameter id="scheduler" type="string" value="FR_FCFS" />
<parameter id="capsize" type="uint" value="5" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="3" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>

View File

@@ -1,14 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="0" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="1" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="50" />
<parameter id="scheduler" type="string" value="Grouper" />
<parameter id="capsize" type="uint" value="5" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="100" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>

View File

@@ -1,15 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="1" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="0" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="2000" />
<parameter id="scheduler" type="string" value="FR_FCFS" />
<parameter id="capsize" type="uint" value="5" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="3" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>

View File

@@ -1,15 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="0" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="1" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="50" />
<parameter id="scheduler" type="string" value="PAR_BS" />
<parameter id="capsize" type="uint" value="8" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="3" />
<parameter id="databaseRecordingEnabled" type="bool" value="0" />
</memconfig>
</memspec>

View File

@@ -1,15 +0,0 @@
<memspec>
<memconfig>
<parameter id="bankwiseLogic" type="bool" value="0" />
<parameter id="openPagePolicy" type="bool" value="1" />
<parameter id="adaptiveOpenPagePolicy" type="bool" value="0" />
<parameter id="refreshAwareScheduling" type="bool" value="0" />
<parameter id="maxNrOfTransactionsInDram" type="uint" value="50" />
<parameter id="scheduler" type="string" value="PAR_BS" />
<parameter id="capsize" type="uint" value="8" />
<parameter id="powerDownMode" type="string" value="Staggered" />
<parameter id="powerDownTimeout" type="uint" value="3" />
<parameter id="databaseRecordingEnabled" type="bool" value="1" />
</memconfig>
</memspec>

View File

@@ -58,7 +58,7 @@ ControllerCore::ControllerCore(IWrapperConnector& wrapperConnector, std::map<Ban
else
{
refreshManager = new RefreshManager(*this);
if(config.powerDownMode == PowerDownMode::Staggered)
if(config.PowerDownMode == EPowerDownMode::Staggered)
{
powerDownManager = new PowerDownManager(*this);
}

View File

@@ -41,16 +41,16 @@ int string2int(string s)
}
}
PowerDownMode string2PDNMode(string s)
EPowerDownMode string2PDNMode(string s)
{
if(s == "NoPowerDown")
return PowerDownMode::NoPowerDown;
return EPowerDownMode::NoPowerDown;
else if(s == "Staggered")
return PowerDownMode::Staggered;
return EPowerDownMode::Staggered;
else if (s == "TimeoutPDN")
return PowerDownMode::TimeoutPDN;
return EPowerDownMode::TimeoutPDN;
else if (s == "TimeoutSREF")
return PowerDownMode::TimeoutSREF;
return EPowerDownMode::TimeoutSREF;
else
{
SC_REPORT_FATAL("Configuration", ("Unknown PowerDownMode: " + s).c_str());
@@ -78,9 +78,23 @@ void Configuration::setParameter(std::string name, std::string value)
else if(name == "PowerDownTimeout")
powerDownTimeoutInClk = string2int(value);
else if(name == "PowerDownMode")
powerDownMode = string2PDNMode(value);
else if(name == "DatabaseRecordingEnabled")
databaseRecordingEnabled = string2bool(value);
PowerDownMode = string2PDNMode(value);
else if(name == "Buswidth")
Buswidth = string2int(value);
else if(name == "ReadWriteGrouping")
ReadWriteGrouping = string2bool(value);
else if(name == "ModelStorage")
ModelStorage = string2bool(value);
else if(name == "ModelErrorInjection")
ModelErrorInjection = string2bool(value);
else if(name == "ReorderBuffer")
ReorderBuffer = string2bool(value);
//SimConfig------------------------------------------------
else if(name == "DatabaseRecording")
DatabaseRecording = string2bool(value);
else if(name == "PowerAnalysys")
PowerAnalysys = string2bool(value);
else
{
SC_REPORT_FATAL("Configuration", ("Parameter " + name + " not defined in Configuration").c_str());

View File

@@ -14,7 +14,7 @@
namespace core{
enum class PowerDownMode{NoPowerDown, Staggered, TimeoutPDN, TimeoutSREF};
enum class EPowerDownMode{NoPowerDown, Staggered, TimeoutPDN, TimeoutSREF};
struct Configuration
@@ -37,10 +37,16 @@ struct Configuration
std::string Scheduler;
unsigned int Capsize = 5;
sc_time getPowerDownTimeout(){return powerDownTimeoutInClk*memSpec.clk;}
PowerDownMode powerDownMode = PowerDownMode::Staggered;
EPowerDownMode PowerDownMode = EPowerDownMode::Staggered;
unsigned int Buswidth = 128;
bool ReadWriteGrouping = false;
bool ModelStorage = false;
bool ModelErrorInjection = false;
bool ReorderBuffer = false;
//SimConfig
bool databaseRecordingEnabled = true;
bool DatabaseRecording = true;
bool PowerAnalysys = false;
//MemSpec(from DRAM-Power XML)
MemSpec memSpec;

View File

@@ -32,7 +32,7 @@ void PowerDownManagerTimeout::sleep(Bank bank, sc_time time)
if(canSleep() && !isInPowerDown() && (time - controller.state.getLastScheduledCommand().getEnd()) >= Configuration::getInstance().getPowerDownTimeout())
{
PowerDownState newState;
if(Configuration::getInstance().powerDownMode == PowerDownMode::TimeoutPDN)
if(Configuration::getInstance().PowerDownMode == EPowerDownMode::TimeoutPDN)
{
newState = controller.state.rowBufferStates.allRowBuffersAreClosed() ? PowerDownState::PDNPrecharge : PowerDownState::PDNActive;
}

View File

@@ -65,7 +65,7 @@ void Simulation::setupDebugManager(const string& traceName)
void Simulation::setupTlmRecorder(const string &traceName, const string &pathToResources, const DramSetup &setup, const std::vector<Device> &devices)
{
if(Configuration::getInstance().databaseRecordingEnabled)
if(Configuration::getInstance().DatabaseRecording)
{
TlmRecorder::recordingEnabled = true;
TlmRecorder::dbName = traceName;