OpenASIP 2.2
|
Private Member Functions | |
PLUGIN_DESCRIPTION ("Adds resources until cycle count doesn't go down anymore.") | |
GrowMachine () | |
virtual bool | requiresStartingPointArchitecture () const |
virtual bool | producesArchitecture () const |
virtual bool | requiresHDB () const |
virtual bool | requiresSimulationData () const |
virtual std::vector< RowID > | explore (const RowID &configurationID, const unsigned int &) |
void | readParameters () |
bool | checkSuperiority (const ClockCycleCount &newCC, const ClockCycleCount &oldCC) const |
double | calculateImprovement (const ClockCycleCount &newCC, const ClockCycleCount &oldCC) const |
Private Attributes | |
unsigned int | superiority_ |
Percentage value of how much faster schedules are wanted until cycle count optimization is stopped. | |
Static Private Attributes | |
static const std::string | superiorityPN_ |
Additional Inherited Members | |
![]() | |
typedef std::pair< std::string, ExplorerPluginParameter > | Parameter |
typedef std::map< std::string, ExplorerPluginParameter > | ParameterMap |
typedef std::map< std::string, ExplorerPluginParameter >::iterator | PMIt |
typedef std::map< std::string, ExplorerPluginParameter >::const_iterator | PMCIt |
![]() | |
virtual bool | requiresApplication () const |
virtual std::string | description () const |
void | addParameter (TCEString name, ExplorerPluginParameterType type, bool compulsory=true, TCEString defaultValue="", TCEString description="") |
template<typename T > | |
void | readCompulsoryParameter (const std::string paramName, T ¶m) const |
template<typename T > | |
void | readOptionalParameter (const std::string paramName, T ¶m) const |
template<typename RT > | |
RT | parameterValue (const std::string ¶mName) const |
virtual | ~DesignSpaceExplorerPlugin () |
virtual void | giveParameter (const std::string &name, const std::string &value) |
virtual std::string | name () const |
virtual void | setPluginName (const std::string &pluginName) |
virtual bool | hasParameter (const std::string ¶mName) const |
ParameterMap | parameters () const |
virtual bool | booleanValue (const std::string ¶meter) const |
![]() | |
DesignSpaceExplorer () | |
virtual | ~DesignSpaceExplorer () |
virtual void | setDSDB (DSDBManager &dsdb) |
virtual bool | evaluate (const DSDBManager::MachineConfiguration &configuration, CostEstimates &results=dummyEstimate_, bool estimate=false) |
virtual DSDBManager & | db () |
std::vector< DesignSpaceExplorerPlugin * > | getPlugins () |
RowID | createImplementationAndStore (const DSDBManager::MachineConfiguration &conf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
bool | createImplementation (const DSDBManager::MachineConfiguration &conf, DSDBManager::MachineConfiguration &newConf, const double &frequency=0.0, const double &maxArea=0.0, const bool &createEstimates=true, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") |
IDF::MachineImplementation * | selectComponents (const TTAMachine::Machine &mach, const double &frequency=0.0, const double &maxArea=0.0, const std::string &icDec="DefaultICDecoder", const std::string &icDecHDB="asic_130nm_1.5V.hdb") const |
void | createEstimateData (const TTAMachine::Machine &mach, const IDF::MachineImplementation &idf, CostEstimator::AreaInGates &area, CostEstimator::DelayInNanoSeconds &longestPathDelay) |
RowID | addConfToDSDB (const DSDBManager::MachineConfiguration &conf) |
![]() | |
static DesignSpaceExplorerPlugin * | loadExplorerPlugin (const std::string &pluginName, DSDBManager *dsdb=NULL) |
![]() | |
DesignSpaceExplorerPlugin () | |
void | checkParameters () const |
![]() | |
TTAProgram::Program * | schedule (const std::string applicationFile, TTAMachine::Machine &machine, TCEString paramOptions="-O3") |
const ExecutionTrace * | simulate (const TTAProgram::Program &program, const TTAMachine::Machine &machine, const TestApplication &testApplication, const ClockCycleCount &maxCycles, ClockCycleCount &runnedCycles, const bool tracing, const bool useCompiledSimulation=false, std::vector< ClockCycleCount > *executionCounts=NULL) |
![]() | |
std::string | pluginName_ |
the name of the explorer plugin | |
ParameterMap | parameters_ |
Parameters for the plugin. | |
Explorer plugin that adds resources until cycle count doesn't go down anymore.
Supported parameters:
Definition at line 61 of file GrowMachine.cc.
|
inlineprivate |
Definition at line 64 of file GrowMachine.cc.
References DesignSpaceExplorerPlugin::addParameter(), superiority_, superiorityPN_, Conversion::toString(), and UINT.
|
inlineprivate |
Calculates the percentage of improvement in cycle count
newCC | The new minimum cycle count. |
oldCC | The old minimum cycle count. |
Definition at line 300 of file GrowMachine.cc.
Referenced by explore().
|
inlineprivate |
Checks whether cycle counts have been lowered enough.
newCC | The new minimum cycle count. |
oldCC | The old minimum cycle count. |
Definition at line 282 of file GrowMachine.cc.
References superiority_.
Referenced by explore().
|
inlineprivatevirtual |
Optimizes the architecture in regards of the cycle count.
Optimizes the architecture by growing it until cycle count doesn't go down anymore.
@TODO: average cycle count lowering, or lowest/largest lowering percentage among apps now it's largest lowering among apps. @TODO: parametrize machine growing, example how many buses to add each step.
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 95 of file GrowMachine.cc.
References DSDBManager::addArchitecture(), MachineResourceModifier::addBusesByAmount(), DSDBManager::addConfiguration(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, calculateImprovement(), checkSuperiority(), DSDBManager::configuration(), DSDBManager::cycleCounts(), DesignSpaceExplorer::db(), debugLog, Exception::errorMessage(), Exception::errorMessageStack(), DesignSpaceExplorer::evaluate(), DSDBManager::MachineConfiguration::hasImplementation, MachineResourceModifier::increaseAllFUsThatDiffersByAmount(), MachineResourceModifier::increaseAllRFsThatDiffersByAmount(), readParameters(), DesignSpaceExplorer::setDSDB(), Conversion::toString(), Application::verboseLevel(), verboseLog, and verboseLogC.
|
private |
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 76 of file GrowMachine.cc.
|
inlineprivate |
Reads the parameters given to the plugin.
Definition at line 270 of file GrowMachine.cc.
References DesignSpaceExplorerPlugin::readOptionalParameter(), superiority_, and superiorityPN_.
Referenced by explore().
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 77 of file GrowMachine.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 78 of file GrowMachine.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 75 of file GrowMachine.cc.
|
private |
Percentage value of how much faster schedules are wanted until cycle count optimization is stopped.
Definition at line 265 of file GrowMachine.cc.
Referenced by checkSuperiority(), GrowMachine(), and readParameters().
|
staticprivate |
Definition at line 260 of file GrowMachine.cc.
Referenced by GrowMachine(), and readParameters().