gem5
v20.1.0.0
|
Base class to implement the predictor tables. More...
#include <multiperspective_perceptron.hh>
Public Member Functions | |
HistorySpec (int _p1, int _p2, int _p3, double _coeff, int _size, int _width, MultiperspectivePerceptron &_mpp) | |
virtual unsigned int | getHash (ThreadID tid, Addr pc, Addr pc2, int t) const =0 |
Gets the hash to index the table, using the pc of the branch, and the index of the table. More... | |
virtual void | setBitRequirements () const |
Sets the size requirements of the table, used when initializing to set the proper size of the tables. More... | |
Public Attributes | |
const int | p1 |
First parameter. More... | |
const int | p2 |
Second parameter. More... | |
const int | p3 |
Third parameter. More... | |
const double | coeff |
Coefficient of the feature, models the accuracy of the feature. More... | |
const int | size |
Pre-assigned size in bits assigned to this feature. More... | |
const int | width |
Width of the table in bits More... | |
MultiperspectivePerceptron & | mpp |
Reference to the branch predictor class. More... | |
Base class to implement the predictor tables.
Definition at line 216 of file multiperspective_perceptron.hh.
|
inline |
Definition at line 232 of file multiperspective_perceptron.hh.
|
pure virtual |
Gets the hash to index the table, using the pc of the branch, and the index of the table.
tid | Thread ID of the branch |
pc | address of the branch |
pc2 | address of the branch shifted 2 bits to the right |
t | integer index of the table |
Implemented in MultiperspectivePerceptron::SGHISTPATH, MultiperspectivePerceptron::RECENCYPOS, MultiperspectivePerceptron::BLURRYPATH, MultiperspectivePerceptron::GHISTMODPATH, MultiperspectivePerceptron::GHISTPATH, MultiperspectivePerceptron::MODPATH, MultiperspectivePerceptron::LOCAL, MultiperspectivePerceptron::PATH, MultiperspectivePerceptron::IMLI, MultiperspectivePerceptron::RECENCY, MultiperspectivePerceptron::BIAS, MultiperspectivePerceptron::MODHIST, MultiperspectivePerceptron::ACYCLIC, and MultiperspectivePerceptron::GHIST.
Referenced by MultiperspectivePerceptronTAGE::getIndex(), and MultiperspectivePerceptron::getIndex().
|
inlinevirtual |
Sets the size requirements of the table, used when initializing to set the proper size of the tables.
Reimplemented in MultiperspectivePerceptron::RECENCYPOS, MultiperspectivePerceptron::BLURRYPATH, MultiperspectivePerceptron::GHISTMODPATH, MultiperspectivePerceptron::GHISTPATH, MultiperspectivePerceptron::MODPATH, MultiperspectivePerceptron::LOCAL, MultiperspectivePerceptron::PATH, MultiperspectivePerceptron::IMLI, MultiperspectivePerceptron::RECENCY, MultiperspectivePerceptron::MODHIST, MultiperspectivePerceptron::ACYCLIC, and MultiperspectivePerceptron::GHIST.
Definition at line 253 of file multiperspective_perceptron.hh.
const double MultiperspectivePerceptron::HistorySpec::coeff |
Coefficient of the feature, models the accuracy of the feature.
Definition at line 224 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::computeOutput(), and MultiperspectivePerceptron::train().
MultiperspectivePerceptron& MultiperspectivePerceptron::HistorySpec::mpp |
Reference to the branch predictor class.
Definition at line 230 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::GHIST::getHash(), MultiperspectivePerceptron::ACYCLIC::getHash(), MultiperspectivePerceptron::MODHIST::getHash(), MultiperspectivePerceptron::RECENCY::getHash(), MultiperspectivePerceptron::IMLI::getHash(), MultiperspectivePerceptron::PATH::getHash(), MultiperspectivePerceptron::LOCAL::getHash(), MultiperspectivePerceptron::MODPATH::getHash(), MultiperspectivePerceptron::GHISTPATH::getHash(), MultiperspectivePerceptron::GHISTMODPATH::getHash(), MultiperspectivePerceptron::BLURRYPATH::getHash(), MultiperspectivePerceptron::RECENCYPOS::getHash(), MultiperspectivePerceptron::SGHISTPATH::getHash(), MultiperspectivePerceptron::GHIST::setBitRequirements(), MultiperspectivePerceptron::ACYCLIC::setBitRequirements(), MultiperspectivePerceptron::MODHIST::setBitRequirements(), MultiperspectivePerceptron::RECENCY::setBitRequirements(), MultiperspectivePerceptron::IMLI::setBitRequirements(), MultiperspectivePerceptron::PATH::setBitRequirements(), MultiperspectivePerceptron::LOCAL::setBitRequirements(), MultiperspectivePerceptron::MODPATH::setBitRequirements(), MultiperspectivePerceptron::GHISTPATH::setBitRequirements(), MultiperspectivePerceptron::GHISTMODPATH::setBitRequirements(), MultiperspectivePerceptron::BLURRYPATH::setBitRequirements(), and MultiperspectivePerceptron::RECENCYPOS::setBitRequirements().
const int MultiperspectivePerceptron::HistorySpec::p1 |
First parameter.
Definition at line 218 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::GHIST::getHash(), MultiperspectivePerceptron::ACYCLIC::getHash(), MultiperspectivePerceptron::MODHIST::getHash(), MultiperspectivePerceptron::RECENCY::getHash(), MultiperspectivePerceptron::IMLI::getHash(), MultiperspectivePerceptron::PATH::getHash(), MultiperspectivePerceptron::LOCAL::getHash(), MultiperspectivePerceptron::MODPATH::getHash(), MultiperspectivePerceptron::GHISTPATH::getHash(), MultiperspectivePerceptron::GHISTMODPATH::getHash(), MultiperspectivePerceptron::BLURRYPATH::getHash(), MultiperspectivePerceptron::RECENCYPOS::getHash(), MultiperspectivePerceptron::SGHISTPATH::getHash(), MultiperspectivePerceptron::ACYCLIC::setBitRequirements(), MultiperspectivePerceptron::MODHIST::setBitRequirements(), MultiperspectivePerceptron::RECENCY::setBitRequirements(), MultiperspectivePerceptron::IMLI::setBitRequirements(), MultiperspectivePerceptron::PATH::setBitRequirements(), MultiperspectivePerceptron::MODPATH::setBitRequirements(), MultiperspectivePerceptron::GHISTPATH::setBitRequirements(), MultiperspectivePerceptron::GHISTMODPATH::setBitRequirements(), MultiperspectivePerceptron::BLURRYPATH::setBitRequirements(), and MultiperspectivePerceptron::RECENCYPOS::setBitRequirements().
const int MultiperspectivePerceptron::HistorySpec::p2 |
Second parameter.
Definition at line 220 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::GHIST::getHash(), MultiperspectivePerceptron::ACYCLIC::getHash(), MultiperspectivePerceptron::MODHIST::getHash(), MultiperspectivePerceptron::RECENCY::getHash(), MultiperspectivePerceptron::PATH::getHash(), MultiperspectivePerceptron::MODPATH::getHash(), MultiperspectivePerceptron::GHISTPATH::getHash(), MultiperspectivePerceptron::GHISTMODPATH::getHash(), MultiperspectivePerceptron::BLURRYPATH::getHash(), MultiperspectivePerceptron::SGHISTPATH::getHash(), MultiperspectivePerceptron::GHIST::setBitRequirements(), MultiperspectivePerceptron::MODHIST::setBitRequirements(), MultiperspectivePerceptron::MODPATH::setBitRequirements(), MultiperspectivePerceptron::GHISTMODPATH::setBitRequirements(), and MultiperspectivePerceptron::BLURRYPATH::setBitRequirements().
const int MultiperspectivePerceptron::HistorySpec::p3 |
Third parameter.
Definition at line 222 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::ACYCLIC::getHash(), MultiperspectivePerceptron::RECENCY::getHash(), MultiperspectivePerceptron::PATH::getHash(), MultiperspectivePerceptron::MODPATH::getHash(), MultiperspectivePerceptron::GHISTPATH::getHash(), MultiperspectivePerceptron::GHISTMODPATH::getHash(), MultiperspectivePerceptron::BLURRYPATH::getHash(), MultiperspectivePerceptron::SGHISTPATH::getHash(), and MultiperspectivePerceptron::ACYCLIC::setBitRequirements().
const int MultiperspectivePerceptron::HistorySpec::size |
Pre-assigned size in bits assigned to this feature.
Definition at line 226 of file multiperspective_perceptron.hh.
const int MultiperspectivePerceptron::HistorySpec::width |
Width of the table in bits
Definition at line 228 of file multiperspective_perceptron.hh.
Referenced by MultiperspectivePerceptron::computeOutput(), and MultiperspectivePerceptron::train().