xml extended, sim config introduced
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user