OpenASIP
2.0
|
Private Types | |
typedef std::map< const EntryKeyProperty *, CostDBTypes::MatchTypeTable > | MatchTypeMap |
Search type for each entry type. More... | |
Private Member Functions | |
void | initializeEstimator (const HDBManager &hdb) |
void | createSearchTypes () |
CostDBTypes::EntryTable | createSearch (const FunctionUnit &fu) const |
Private Attributes | |
CostDatabaseRegistry * | costDatabaseRegistry_ |
Registry of cost databases. More... | |
CostDatabase * | costdb_ |
Cost database being used. More... | |
SearchStrategy * | strategy_ |
Search strategy to be used with the cost database. More... | |
EntryKeyProperty * | unitProperty_ |
Entry key property of function unit. More... | |
MatchTypeMap | searchTypes_ |
Types of matches used for searching entries from the cost database. More... | |
CostDBTypes::MatchTypeTable | unitMatchType_ |
Table of types of match. More... | |
Additional Inherited Members | |
Protected Attributes inherited from CostEstimator::CostEstimationPlugin | |
std::string | name_ |
the name of the plugin class in the HDB; used to identify cost data More... | |
Definition at line 62 of file InterpolatingFUEstimator.cc.
|
private |
Search type for each entry type.
Definition at line 408 of file InterpolatingFUEstimator.cc.
|
inline |
Definition at line 64 of file InterpolatingFUEstimator.cc.
References CostDatabaseRegistry::instance().
|
inlinevirtual |
Definition at line 69 of file InterpolatingFUEstimator.cc.
|
inlineprivate |
Creates a search to cost database to find entries matching the given function unit.
fu | Function unit which matches are searched. |
Definition at line 453 of file InterpolatingFUEstimator.cc.
References CostDBEntryKey::addField(), CostDBTypes::EKF_BIT_WIDTH, CostDBTypes::EKF_FUNCTION_UNIT, EntryKeyProperty::fieldProperty(), TTAMachine::FunctionUnit::operationPortCount(), TTAMachine::FunctionUnit::port(), CostDatabase::search(), and TTAMachine::BaseFUPort::width().
|
inlineprivate |
Creates types of matches used for searching cost database entries.
Definition at line 434 of file InterpolatingFUEstimator.cc.
References CostDBTypes::EKF_BIT_WIDTH, CostDBTypes::EKF_FUNCTION_UNIT, EntryKeyProperty::fieldProperty(), CostDBTypes::MATCH_EXACT, and CostDBTypes::MATCH_INTERPOLATION.
InterpolatingFUEstimator::DESCRIPTION | ( | "FU cost estimator plugin that estimates costs of FUs by generating" "cost database from cost values of HDB and uses interpolation to " "estimate the costs. In case there's no cost data available for the " "given FU the plugin interpolates the estimate if possible." | ) |
|
inlinevirtual |
Estimates the function unit's area by fetching cost data named 'area' from HDB.
Reimplemented from CostEstimator::FUCostEstimationPlugin.
Definition at line 84 of file InterpolatingFUEstimator.cc.
References Application::logStream(), and TTAMachine::Component::name().
|
inlinevirtual |
Estimates the energy consumed by given FU.
Estimate is done by computing the sum of all operation execution energies and FU idle energy. Operation execution energies are stored with entries named 'operation_execution_energy operation_name'. The idle energy is in entry named 'fu_idle_energy'.
Reimplemented from CostEstimator::FUCostEstimationPlugin.
Definition at line 263 of file InterpolatingFUEstimator.cc.
References debugLog, Exception::errorMessage(), ExecutionTrace::functionUnitOperationTriggerCounts(), implementation, Application::logStream(), TTAMachine::Component::name(), ExecutionTrace::simulatedCycleCount(), StringTools::stringToLower(), and trace.
|
inlinevirtual |
Estimates the function unit maximum computation delay by fetching cost data named 'computation_delay' from HDB.
Reimplemented from CostEstimator::FUCostEstimationPlugin.
Definition at line 226 of file InterpolatingFUEstimator.cc.
References Application::logStream(), and TTAMachine::Component::name().
|
inlinevirtual |
Estimates the function unit port read delay by fetching cost data named 'output_delay' from HDB.
Assumes that all ports have the same output delay, that is, there is only one 'output_delay' entry for a FU in HDB.
Reimplemented from CostEstimator::FUCostEstimationPlugin.
Definition at line 177 of file InterpolatingFUEstimator.cc.
References Application::logStream(), TTAMachine::Port::name(), TTAMachine::Component::name(), and TTAMachine::BaseFUPort::parentUnit().
|
inlinevirtual |
Estimates the function unit port write delay by fetching cost data named 'input_delay' from HDB.
Assumes that all ports have the same input delay, that is, there is only one 'input_delay' entry for a FU in HDB.
Reimplemented from CostEstimator::FUCostEstimationPlugin.
Definition at line 122 of file InterpolatingFUEstimator.cc.
References Application::logStream(), TTAMachine::Port::name(), TTAMachine::Component::name(), and TTAMachine::BaseFUPort::parentUnit().
|
inlineprivate |
Initializes the plugin.
hdb | The HDB to be used in searching entries. Cost database is created in basis of this HDB. |
Definition at line 421 of file InterpolatingFUEstimator.cc.
References CostDatabaseRegistry::costDatabase(), CostDBTypes::EK_UNIT, EntryKeyProperty::find(), and CostDatabase::setSearchStrategy().
|
private |
Registry of cost databases.
Definition at line 399 of file InterpolatingFUEstimator.cc.
|
private |
Cost database being used.
Definition at line 401 of file InterpolatingFUEstimator.cc.
|
private |
Types of matches used for searching entries from the cost database.
Definition at line 410 of file InterpolatingFUEstimator.cc.
|
private |
Search strategy to be used with the cost database.
Definition at line 403 of file InterpolatingFUEstimator.cc.
|
private |
Table of types of match.
Definition at line 412 of file InterpolatingFUEstimator.cc.
|
private |
Entry key property of function unit.
Definition at line 405 of file InterpolatingFUEstimator.cc.