OpenASIP 2.2
|
Private Member Functions | |
PLUGIN_DESCRIPTION ("Optimizes the IC of the given configuration") | |
SimpleICOptimizer () | |
virtual bool | requiresStartingPointArchitecture () const |
virtual bool | producesArchitecture () const |
virtual bool | requiresHDB () const |
virtual bool | requiresSimulationData () const |
virtual bool | requiresApplication () const |
virtual std::vector< RowID > | explore (const RowID &startPointConfigurationID, const unsigned int &) |
void | readParameters () |
void | removeAllConnections (TTAMachine::Machine &mach) |
bool | fixIntRegisters (TTAMachine::Machine &mach) |
void | addConnections (TTAMachine::Machine &mach, Program &prog) |
Private Attributes | |
std::string | tpef_ |
name of the tpef file | |
bool | addOnly_ |
can we remove connections | |
bool | evaluateResult_ |
evaluate the result(s) | |
bool | preserveMinimalOpset_ |
respect minimal opset when removing connections | |
Static Private Attributes | |
static const std::string | tpefPN_ |
static const std::string | tpefDefaultPN_ |
static const std::string | addOnlyPN_ |
static const std::string | evaluatePN_ |
static const std::string | preserveMinOpsPN_ |
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 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 optimizes the interconnection network of the given configuration by removing the connections that are not used in the parallel program.
Definition at line 79 of file SimpleICOptimizer.cc.
|
inlineprivate |
Definition at line 82 of file SimpleICOptimizer.cc.
References addOnly_, addOnlyPN_, DesignSpaceExplorerPlugin::addParameter(), BOOL, evaluatePN_, evaluateResult_, preserveMinimalOpset_, preserveMinOpsPN_, STRING, Conversion::toString(), and tpefPN_.
|
inlineprivate |
Adds connections used in the program to the given machine.
Connections to add are determined by procedure instructions in application domains programs.
mach | Machine where the connections are added. |
prog | Scheduled program where the used connections are searched. |
Definition at line 423 of file SimpleICOptimizer.cc.
References assert, TTAMachine::Socket::attachBus(), TTAProgram::Move::bus(), TTAMachine::Machine::busNavigator(), TTAProgram::Move::destinationSocket(), TTAMachine::Socket::INPUT, TTAProgram::CodeSnippet::instructionAtIndex(), TTAProgram::CodeSnippet::instructionCount(), TTAMachine::Socket::isConnectedTo(), TTAProgram::Terminal::isImmediate(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAProgram::Instruction::move(), TTAProgram::Instruction::moveCount(), TTAMachine::Component::name(), TTAMachine::Socket::OUTPUT, TTAProgram::Program::procedure(), TTAProgram::Program::procedureCount(), TTAMachine::Bus::segment(), TTAMachine::Bus::segmentCount(), TTAMachine::Socket::setDirection(), TTAMachine::Machine::socketNavigator(), TTAProgram::Move::source(), and TTAProgram::Move::sourceSocket().
Referenced by explore().
|
inlineprivatevirtual |
Optimizes the IC of the given configuration by removing not used connections.
First removes connections and then adds them by looking all application domains programs instructions and their moves. Needs the start point configuration to get the architecture which connections are optimized.
Supported parameters:
startPointConfigurationID | Configuration to optimize. |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 125 of file SimpleICOptimizer.cc.
References DSDBManager::addArchitecture(), DSDBManager::addConfiguration(), addConnections(), addOnly_, DSDBManager::applicationIDs(), TestApplication::applicationPath(), DSDBManager::applicationPath(), DSDBManager::architecture(), DSDBManager::MachineConfiguration::architectureID, RegisterQuantityCheck::checkIntRegs(), DSDBManager::configuration(), DesignSpaceExplorer::createImplementation(), DesignSpaceExplorer::db(), Exception::errorMessage(), Exception::errorMessageStack(), DesignSpaceExplorer::evaluate(), evaluateResult_, DesignSpaceExplorerPlugin::explore(), fixIntRegisters(), DesignSpaceExplorerPlugin::giveParameter(), DSDBManager::MachineConfiguration::hasImplementation, DesignSpaceExplorer::loadExplorerPlugin(), TTAProgram::Program::loadFromTPEF(), program, readParameters(), removeAllConnections(), DesignSpaceExplorer::schedule(), tpef_, verboseLog, and verboseLogC.
|
inlineprivate |
Checks that produced machine is still usable
mach | Machine where the connections are added. |
Definition at line 398 of file SimpleICOptimizer.cc.
References RegisterQuantityCheck::canFixIntRegs(), RegisterQuantityCheck::checkIntRegs(), RegisterQuantityCheck::fixIntRegs(), and verboseLog.
Referenced by explore().
|
private |
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 102 of file SimpleICOptimizer.cc.
|
inlineprivate |
Reads the parameters given to the plugin.
Definition at line 314 of file SimpleICOptimizer.cc.
References addOnly_, addOnlyPN_, evaluatePN_, evaluateResult_, preserveMinimalOpset_, preserveMinOpsPN_, DesignSpaceExplorerPlugin::readOptionalParameter(), tpef_, and tpefPN_.
Referenced by explore().
|
inlineprivate |
Removes all socket-bus connection from the given machine.
mach | Machine which connections are removed. |
Definition at line 327 of file SimpleICOptimizer.cc.
References TTAMachine::Machine::busNavigator(), RegisterQuantityCheck::checkWithIgnore(), MinimalOpSetCheck::checkWithIgnore(), TTAMachine::Machine::Navigator< ComponentType >::count(), TTAMachine::Socket::detachBus(), TTAMachine::Machine::Navigator< ComponentType >::item(), TTAMachine::Component::name(), TTAMachine::Port::parentUnit(), TTAMachine::Socket::port(), TTAMachine::Socket::portCount(), preserveMinimalOpset_, and TTAMachine::Machine::socketNavigator().
Referenced by explore().
|
inlineprivatevirtual |
Reimplemented from DesignSpaceExplorerPlugin.
Definition at line 105 of file SimpleICOptimizer.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 103 of file SimpleICOptimizer.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 104 of file SimpleICOptimizer.cc.
|
inlineprivatevirtual |
Implements DesignSpaceExplorerPlugin.
Definition at line 101 of file SimpleICOptimizer.cc.
|
private |
can we remove connections
Definition at line 304 of file SimpleICOptimizer.cc.
Referenced by explore(), readParameters(), and SimpleICOptimizer().
|
staticprivate |
Definition at line 297 of file SimpleICOptimizer.cc.
Referenced by readParameters(), and SimpleICOptimizer().
|
staticprivate |
Definition at line 298 of file SimpleICOptimizer.cc.
Referenced by readParameters(), and SimpleICOptimizer().
|
private |
evaluate the result(s)
Definition at line 306 of file SimpleICOptimizer.cc.
Referenced by explore(), readParameters(), and SimpleICOptimizer().
|
private |
respect minimal opset when removing connections
Definition at line 308 of file SimpleICOptimizer.cc.
Referenced by readParameters(), removeAllConnections(), and SimpleICOptimizer().
|
staticprivate |
Definition at line 299 of file SimpleICOptimizer.cc.
Referenced by readParameters(), and SimpleICOptimizer().
|
private |
name of the tpef file
Definition at line 302 of file SimpleICOptimizer.cc.
Referenced by explore(), and readParameters().
|
staticprivate |
Definition at line 296 of file SimpleICOptimizer.cc.
|
staticprivate |
Definition at line 295 of file SimpleICOptimizer.cc.
Referenced by readParameters(), and SimpleICOptimizer().