OpenASIP
2.0
|
Private Member Functions | |
PLUGIN_DESCRIPTION ("Removes resources until the real time " "requirements of applications are not reached anymore.") | |
MinimizeMachine () | |
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 () |
RowID | minimizeMachine (RowID confToMinimize) |
RowID | minimizeBuses (RowID confToMinimize, std::vector< ClockCycleCount > &maxCycleCounts) |
RowID | minimizeRegisterFiles (RowID confToMinimize, std::vector< ClockCycleCount > &maxCycleCounts) |
RowID | minimizeFunctionUnits (RowID confToMinimize, std::vector< ClockCycleCount > &maxCycleCounts) |
bool | evalNewConfigWithoutImplementation (DesignSpaceExplorer &explorer, const TTAMachine::Machine &mach, DSDBManager &dsdb, DSDBManager::MachineConfiguration &newConfiguration, RowID &confID, CostEstimates &newEstimates) |
bool | checkCycleCounts (const DSDBManager::MachineConfiguration &conf, const std::vector< ClockCycleCount > &maxCycleCounts) |
Private Attributes | |
bool | minBus_ |
minimize busses More... | |
bool | minFU_ |
minimize function units More... | |
bool | minRF_ |
minimize register files More... | |
unsigned int | frequency_ |
running frequency in MHz for apps More... | |
Static Private Attributes | |
static const std::string | minBusPN_ |
static const std::string | minFUPN_ |
static const std::string | minRFPN_ |
static const std::string | frequencyPN_ |
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 More... | |
ParameterMap | parameters_ |
Parameters for the plugin. More... | |
Explorer plugin that removes resources until the real time requirements of applications are not reached anymore.
@TODO: maxRunTime parameter, which overrides app dir max runtime setting @TODO: if no maxRunTime then no frequency is needed == no cycle count limits
Supported parameters:
Definition at line 70 of file MinimizeMachine.cc.
|
inlineprivate |
Definition at line 74 of file MinimizeMachine.cc.
References BOOL, Conversion::toString(), and UINT.
|
inlineprivate |
Checks that max cycle counts are not exceeded.
Expects that maxCycleCount vector contains cycle counts for the matching programs in the same order as the estimates.
estimates | Estimations that contain cycle counts. |
maxCycleCounts | Maximum cycle counts of the applications. |
Definition at line 701 of file MinimizeMachine.cc.
References abortWithError, and DSDBManager::MachineConfiguration::architectureID.
|
inlineprivate |
Create, store and evaluate a new configuration without implementation.
explorer | Design space explorer to use to evaluate. |
mach | machine for the new configuration. |
dsdb | Design space database to store the new configuration. |
newConfiguration | New machine configuration. |
confID | Row ID of the new configuration in the DSDB. |
newEstimates | Estimates that are calculated during evaluation. |
Definition at line 669 of file MinimizeMachine.cc.
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::MachineConfiguration::architectureID, DesignSpaceExplorer::evaluate(), and DSDBManager::MachineConfiguration::hasImplementation.
|
inlineprivatevirtual |
Minimizes given configuration by not exceeding applications max runtime which depends on given frequncy
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 99 of file MinimizeMachine.cc.
|
inlineprivate |
Reduces the number of buses in the machine as much as possible to still achieve the application run time requirements.
This function can handle implementations. Uses binary search to minimize the buses.
confToMinimize | ID of the machine configuration which buses are reduced. |
maxCycleCounts | Max cycle counts per program. |
Definition at line 228 of file MinimizeMachine.cc.
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), DSDBManager::addImplementation(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, CostEstimates::area(), assert, TTAMachine::Machine::busNavigator(), DSDBManager::configuration(), TTAMachine::Machine::Navigator< ComponentType >::count(), debugLog, DesignSpaceExplorer::evaluate(), DSDBManager::MachineConfiguration::hasImplementation, DSDBManager::implementation(), DSDBManager::MachineConfiguration::implementationID, CostEstimates::longestPathDelay(), MachineResourceModifier::removeBuses(), IDF::MachineImplementation::removeBusImplementation(), and DesignSpaceExplorer::setDSDB().
|
inlineprivate |
Reduces the number of function units in the machine as much as possible to still achieve the application run time requirements.
This function won't handle implementations.
confToMinimize | ID of the machine configuration which function units are reduced. |
maxCycleCounts | Max cycle counts per program. |
Definition at line 544 of file MinimizeMachine.cc.
References DSDBManager::addArchitecture(), MachineResourceModifier::analyzeFunctionUnits(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), TTAMachine::Machine::Navigator< ComponentType >::count(), debugLog, DesignSpaceExplorer::evaluate(), TTAMachine::Machine::functionUnitNavigator(), DSDBManager::MachineConfiguration::hasImplementation, TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::loadState(), TTAMachine::Machine::removeFunctionUnit(), MachineResourceModifier::removeNotConnectedSockets(), TTAMachine::Machine::saveState(), and DesignSpaceExplorer::setDSDB().
Minimizes the number of buses, function units and register files in the given configuration in that order.
This function minimizes the buses first, then function units and then register files. Removes also the extra sockets after minimization. Won't handle implementaions (IDF handling missing from fu and rf part).
confToMinimize | Configuration to be minimized. |
maxCycles | Maximum clock cycle count that won't be exceeded. |
Definition at line 157 of file MinimizeMachine.cc.
References DSDBManager::applicationIDs(), DSDBManager::applicationPath(), DSDBManager::configuration(), debugLog, and TestApplication::maxRuntime().
|
inlineprivate |
Reduces the number of register files in the machine as much as possible to still achieve the application run time requirements.
This function won't handle implementations.
confToMinimize | ID of the machine configuration which register files are reduced. |
maxCycleCounts | Max cycle counts per program. |
Definition at line 414 of file MinimizeMachine.cc.
References DSDBManager::addArchitecture(), MachineResourceModifier::analyzeRegisters(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, DSDBManager::configuration(), TTAMachine::Machine::Navigator< ComponentType >::count(), debugLog, DesignSpaceExplorer::evaluate(), DSDBManager::MachineConfiguration::hasImplementation, TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Machine::loadState(), TTAMachine::Machine::registerFileNavigator(), MachineResourceModifier::removeNotConnectedSockets(), TTAMachine::Machine::removeRegisterFile(), TTAMachine::Machine::saveState(), and DesignSpaceExplorer::setDSDB().
|
private |
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 90 of file MinimizeMachine.cc.
|
inlineprivate |
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 91 of file MinimizeMachine.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 92 of file MinimizeMachine.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 89 of file MinimizeMachine.cc.
|
private |
running frequency in MHz for apps
Definition at line 130 of file MinimizeMachine.cc.
|
staticprivate |
Definition at line 121 of file MinimizeMachine.cc.
|
private |
minimize busses
Definition at line 124 of file MinimizeMachine.cc.
|
staticprivate |
Definition at line 118 of file MinimizeMachine.cc.
|
private |
minimize function units
Definition at line 126 of file MinimizeMachine.cc.
|
staticprivate |
Definition at line 119 of file MinimizeMachine.cc.
|
private |
minimize register files
Definition at line 128 of file MinimizeMachine.cc.
|
staticprivate |
Definition at line 120 of file MinimizeMachine.cc.