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) |
CostDBTypes::EntryTable | createSearch (const BaseRegisterFile &rf) const |
void | createSearchTypes () |
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 * | rfileProperty_ |
Entry key property of register file. More... | |
MatchTypeMap | searchTypes_ |
Types of matches used for searching entries from the cost database. More... | |
CostDBTypes::MatchTypeTable | interpMatchType_ |
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 55 of file InterpolatingRFEstimator.cc.
|
private |
Search type for each entry type.
Definition at line 414 of file InterpolatingRFEstimator.cc.
|
inline |
Definition at line 57 of file InterpolatingRFEstimator.cc.
References CostDatabaseRegistry::instance().
|
inlinevirtual |
Definition at line 62 of file InterpolatingRFEstimator.cc.
|
inlineprivate |
Creates a search to cost database to find entries matching the given register file.
rf | Register file which matches are searched. |
Definition at line 444 of file InterpolatingRFEstimator.cc.
References CostDBEntryKey::addField(), HDB::RFArchitecture::bidirPortCount(), CostDBTypes::EKF_BIDIR_PORTS, CostDBTypes::EKF_BIT_WIDTH, CostDBTypes::EKF_GUARD_LATENCY, CostDBTypes::EKF_GUARD_SUPPORT, CostDBTypes::EKF_LATENCY, CostDBTypes::EKF_MAX_READS, CostDBTypes::EKF_MAX_WRITES, CostDBTypes::EKF_NUM_REGISTERS, CostDBTypes::EKF_READ_PORTS, CostDBTypes::EKF_WRITE_PORTS, EntryKeyProperty::fieldProperty(), HDB::RFArchitecture::guardLatency(), HDB::RFArchitecture::hasGuardSupport(), HDB::RFArchitecture::latency(), HDB::RFArchitecture::maxReads(), HDB::RFArchitecture::maxWrites(), HDB::RFArchitecture::readPortCount(), CostDatabase::search(), HDB::RFArchitecture::size(), HDB::RFArchitecture::width(), and HDB::RFArchitecture::writePortCount().
|
inlineprivate |
Creates types of matches used for searching cost database entries.
Definition at line 516 of file InterpolatingRFEstimator.cc.
References CostDBTypes::EKF_BIDIR_PORTS, CostDBTypes::EKF_BIT_WIDTH, CostDBTypes::EKF_GUARD_LATENCY, CostDBTypes::EKF_GUARD_SUPPORT, CostDBTypes::EKF_LATENCY, CostDBTypes::EKF_MAX_READS, CostDBTypes::EKF_MAX_WRITES, CostDBTypes::EKF_NUM_REGISTERS, CostDBTypes::EKF_READ_PORTS, CostDBTypes::EKF_WRITE_PORTS, EntryKeyProperty::fieldProperty(), CostDBTypes::MATCH_EXACT, and CostDBTypes::MATCH_INTERPOLATION.
InterpolatingRFEstimator::DESCRIPTION | ( | "RF cost estimator plugin that estimates costs of RFs 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 RF the plugin interpolates the estimate if possible." | ) |
|
inlinevirtual |
Estimates the register file's area by fetching cost data named 'area' from HDB.
Reimplemented from CostEstimator::RFCostEstimationPlugin.
Definition at line 77 of file InterpolatingRFEstimator.cc.
References Exception::fileName(), Exception::lineNum(), Application::logStream(), and TTAMachine::Component::name().
|
inlinevirtual |
Estimates the energy consumed by given RF.
Estimate is done by computing the sum of all register file access type energies and RF idle energy. Register file access energies are stored with entries named 'rf_access_energy Nr Nw'. Nr is the number of read accesses, Nw the number of write accesses. For example, 'rf_access_energy 1 3' is the name of entry which tells how much energy is consumed by the RF in case RF is accessed simultaneously once for reading and trice for writing. Idle energy is stored in entry 'rf_idle_energy'.
Reimplemented from CostEstimator::RFCostEstimationPlugin.
Definition at line 268 of file InterpolatingRFEstimator.cc.
References debugLog, Exception::errorMessage(), Application::logStream(), TTAMachine::Component::name(), ExecutionTrace::registerFileAccessCounts(), ExecutionTrace::simulatedCycleCount(), Conversion::toString(), and trace.
|
inlinevirtual |
Estimates the register file maximum computation delay by fetching cost data named 'computation_delay' from HDB.
Reimplemented from CostEstimator::RFCostEstimationPlugin.
Definition at line 225 of file InterpolatingRFEstimator.cc.
References Application::logStream(), and TTAMachine::Component::name().
|
inlinevirtual |
Estimates the register file 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 RF in HDB.
Reimplemented from CostEstimator::RFCostEstimationPlugin.
Definition at line 175 of file InterpolatingRFEstimator.cc.
References Application::logStream(), TTAMachine::Port::name(), TTAMachine::Component::name(), and TTAMachine::RFPort::parentUnit().
|
inlinevirtual |
Estimates the register file 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 RF in HDB.
Reimplemented from CostEstimator::RFCostEstimationPlugin.
Definition at line 121 of file InterpolatingRFEstimator.cc.
References Application::logStream(), TTAMachine::Port::name(), TTAMachine::Component::name(), and TTAMachine::RFPort::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 427 of file InterpolatingRFEstimator.cc.
References CostDatabaseRegistry::costDatabase(), CostDBTypes::EK_RFILE, EntryKeyProperty::find(), and CostDatabase::setSearchStrategy().
|
private |
Registry of cost databases.
Definition at line 405 of file InterpolatingRFEstimator.cc.
|
private |
Cost database being used.
Definition at line 407 of file InterpolatingRFEstimator.cc.
|
private |
Table of types of match.
Definition at line 418 of file InterpolatingRFEstimator.cc.
|
private |
Entry key property of register file.
Definition at line 411 of file InterpolatingRFEstimator.cc.
|
private |
Types of matches used for searching entries from the cost database.
Definition at line 416 of file InterpolatingRFEstimator.cc.
|
private |
Search strategy to be used with the cost database.
Definition at line 409 of file InterpolatingRFEstimator.cc.