Some names slightly changed to better describe their purpose.

ChipSeed --> ErrorChipSeed
csvfile --> ErrorCSVFile
StorMo --> ErrorStoreMode
StorMode --> ErrorStoreMode
StorageMode --> ErrorStorageMode

(Changes after code review)
This commit is contained in:
Éder Ferreira Zulian
2015-05-11 14:08:39 +02:00
parent 0fc640ad0d
commit 9846a56da4
7 changed files with 37 additions and 38 deletions

View File

@@ -7,8 +7,7 @@
<PowerDownMode value="TimeoutSREF" />
<PowerDownTimeout value="100" />
<!-- Error Modelling -->
<Chipseed value="42" />
<csvfile value="../src/error/error_new.csv" />
<StorMo value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
<ErrorChipSeed value="42" />
<ErrorCSVFile value="../src/error/error_new.csv" />
<ErrorStoreMode value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
</memconfig>

View File

@@ -7,7 +7,7 @@
<PowerDownMode value="TimeoutPDN" />
<PowerDownTimeout value="100" />
<!-- Error Modelling -->
<Chipseed value="42" />
<csvfile value="../src/error/error_new.csv" />
<StorMo value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
<ErrorChipSeed value="42" />
<ErrorCSVFile value="../src/error/error_new.csv" />
<ErrorStoreMode value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
</memconfig>

View File

@@ -7,9 +7,9 @@
<PowerDownMode value="TimeoutPDN" />
<PowerDownTimeout value="100" />
<!-- Error Model: -->
<Chipseed value="42" />
<csvfile value="../src/error/error_new.csv" />
<StorMo value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
<ErrorChipSeed value="42" />
<ErrorCSVFile value="../src/error/error_new.csv" />
<ErrorStoreMode value="NoStorage" /> <!--3 Modes: NoStorage, Store (store data without errormodel), ErrorModel (store data with errormodel)-->
<!--
<Buswidth value="128" />
<ReadWriteGrouping value="false" />

View File

@@ -92,13 +92,13 @@ void Configuration::setParameter(std::string name, std::string value)
PowerAnalysis = string2bool(value);
else if(name == "Debug")
Debug = string2bool(value);
//Specification for Chipseed, csvfile path and StorageMode
else if(name == "Chipseed")
Chipseed = string2int(value);
else if(name == "csvfile")
csvfile = value;
else if(name == "StorMo")
StorMode = StringToEnum(value);
// Specification for ErrorChipSeed, ErrorCSVFile path and ErrorStoreMode
else if(name == "ErrorChipSeed")
ErrorChipSeed = string2int(value);
else if(name == "ErrorCSVFile")
ErrorCSVFile = value;
else if(name == "ErrorStoreMode")
ErrorStoreMode = StringToEnum(value);
else
{
SC_REPORT_FATAL("Configuration", ("Parameter " + name + " not defined in Configuration").c_str());

View File

@@ -14,7 +14,7 @@
#include "../../../common/Utils.h"
enum class EPowerDownMode{NoPowerDown, Staggered, TimeoutPDN, TimeoutSREF};
DEFINE_ENUM_CLASS_WITH_STRING_CONVERSIONS(StorageMode, (NoStorage)(Store)(ErrorModel));
DEFINE_ENUM_CLASS_WITH_STRING_CONVERSIONS(ErrorStorageMode, (NoStorage)(Store)(ErrorModel));
struct Configuration
{
@@ -52,10 +52,10 @@ struct Configuration
void setParameter(std::string name, std::string value);
void setParameters(std::map<std::string, std::string> parameterMap);
//Configs for Seed, csv file and StorageMode
unsigned int Chipseed;
std::string csvfile ="not defined.";
StorageMode StorMode;
//Configs for Seed, csv file and ErrorStorageMode
unsigned int ErrorChipSeed;
std::string ErrorCSVFile ="not defined.";
ErrorStorageMode ErrorStoreMode;
private:
Configuration();

View File

@@ -30,7 +30,7 @@ flip_memory::flip_memory()
// Initialize Random generator with current system time
// Only do this once in a simulation
//srand(time(NULL));
srand(Configuration::getInstance().Chipseed); // Chipseed constant, so that errors allways at the same address
srand(Configuration::getInstance().ErrorChipSeed); // ErrorChipSeed constant, so that errors allways at the same address
// Fixed values for development process
TEMPERATURE = 90;
@@ -39,7 +39,7 @@ flip_memory::flip_memory()
BIT_ERR = 0;
// path of csv file
errormap = new nest_map(Configuration::getInstance().csvfile);
errormap = new nest_map(Configuration::getInstance().ErrorCSVFile);
// Constants for address calculations
ROWS_PER_BANK = Configuration::getInstance().memSpec.NumberOfRows; //8192

View File

@@ -50,7 +50,7 @@ struct Dram: sc_module
tlm_utils::simple_target_socket<Dram, BUSWIDTH, tlm::tlm_base_protocol_types> tSocket;
IFPOW(libDRAMPower *DRAMPower);
StorageMode StorMode = Configuration::getInstance().StorMode;
ErrorStorageMode ErrorStoreMode = Configuration::getInstance().ErrorStoreMode;
flip_memory * fmemory;
map< unsigned long int, unsigned char[BUSWIDTH/2] > memory;
@@ -61,9 +61,9 @@ struct Dram: sc_module
IFPOW( MemorySpecification memSpec(MemSpecParser::getMemSpecFromXML(Configuration::getInstance().memspecUri)) );
IFPOW( DRAMPower = new libDRAMPower( memSpec, 0 ) );
cout << "StorageMode: " << EnumToString(StorMode) << endl;
cout << "ErrorStorageMode: " << EnumToString(ErrorStoreMode) << endl;
if(StorMode == StorageMode::ErrorModel)
if(ErrorStoreMode == ErrorStorageMode::ErrorModel)
{
fmemory = new flip_memory[Configuration::getInstance().memSpec.NumberOfBanks];
}
@@ -75,7 +75,7 @@ struct Dram: sc_module
IFPOW( DRAMPower->calcEnergy() );
IFPOW( cout << endl << endl << "Total Energy" << "\t" << DRAMPower->getEnergy().total_energy << endl);
IFPOW( cout << "Average Power" << "\t" << DRAMPower->getPower().average_power << endl );
if(StorMode == StorageMode::ErrorModel)
if(ErrorStoreMode == ErrorStorageMode::ErrorModel)
{
for(int b = 0; b < 8; b++)
{
@@ -111,7 +111,7 @@ struct Dram: sc_module
sendToController(payload, END_ACT, delay + getExecutionTime(Command::Activate, payload));
unsigned int row = DramExtension::getExtension(payload).getRow().ID();
if (StorMode == StorageMode::ErrorModel)
if (ErrorStoreMode == ErrorStorageMode::ErrorModel)
{
fmemory[bank].refresh(row);
}
@@ -121,11 +121,11 @@ struct Dram: sc_module
IFPOW(DRAMPower->doCommand(MemCommand::WR, bank, cycle));
//save data:
if (StorMode == StorageMode::NoStorage)
if (ErrorStoreMode == ErrorStorageMode::NoStorage)
{
// Don't store data
}
else if (StorMode == StorageMode::Store) // Use Storage
else if (ErrorStoreMode == ErrorStorageMode::Store) // Use Storage
{
memcpy(&memory[payload.get_address()], payload.get_data_ptr(), BUSWIDTH/8);
}
@@ -140,7 +140,7 @@ struct Dram: sc_module
IFPOW(DRAMPower->doCommand(MemCommand::RD, bank, cycle));
// Load data:
if (StorMode == StorageMode::Store) //use StorageMode
if (ErrorStoreMode == ErrorStorageMode::Store) //use ErrorStorageMode
{
if(memory.count(payload.get_address()) == 1)
{
@@ -151,7 +151,7 @@ struct Dram: sc_module
//SC_REPORT_WARNING ("DRAM", "Reading from an empty memory location.");
}
}
else if(StorMode == StorageMode::ErrorModel)// use StorageMode with errormodel
else if(ErrorStoreMode == ErrorStorageMode::ErrorModel)// use ErrorStorageMode with errormodel
{
fmemory[bank].load(payload);
}
@@ -163,11 +163,11 @@ struct Dram: sc_module
IFPOW(DRAMPower->doCommand(MemCommand::WRA, bank, cycle));
//save data:
if (StorMode == StorageMode::NoStorage)
if (ErrorStoreMode == ErrorStorageMode::NoStorage)
{
// Don't store data
}
else if (StorMode == StorageMode::Store) // Use Storage
else if (ErrorStoreMode == ErrorStorageMode::Store) // Use Storage
{
memcpy(&memory[payload.get_address()], payload.get_data_ptr(), BUSWIDTH/8);
}
@@ -182,7 +182,7 @@ struct Dram: sc_module
IFPOW(DRAMPower->doCommand(MemCommand::RDA, bank, cycle));
// Load data:
if (StorMode == StorageMode::Store) //use StorageMode
if (ErrorStoreMode == ErrorStorageMode::Store) //use ErrorStorageMode
{
if(memory.count(payload.get_address()) == 1)
{
@@ -193,7 +193,7 @@ struct Dram: sc_module
//SC_REPORT_WARNING ("DRAM", "Reading from an empty memory location.");
}
}
else if(StorMode == StorageMode::ErrorModel)// use StorageMode with errormodel
else if(ErrorStoreMode == ErrorStorageMode::ErrorModel)// use ErrorStorageMode with errormodel
{
fmemory[bank].load(payload);
}
@@ -206,7 +206,7 @@ struct Dram: sc_module
sendToController(payload, END_REFA, delay + getExecutionTime(Command::AutoRefresh, payload));
unsigned int row = DramExtension::getExtension(payload).getRow().ID();
if (StorMode == StorageMode::ErrorModel)
if (ErrorStoreMode == ErrorStorageMode::ErrorModel)
{
fmemory[bank].refresh(row);
}