package prediction
- Alphabetic
- Public
- All
Type Members
-
class
BtbPlugin extends FiberPlugin with FetchWordPrediction with InitService
Implement the Branch Target Buffer in the fetch stages, aswell as the Return Address Stack.
Implement the Branch Target Buffer in the fetch stages, aswell as the Return Address Stack. See https://spinalhdl.github.io/VexiiRiscv-RTD/master/VexiiRiscv/BranchPrediction/index.html#btbplugin for more doc. in particular to understand the chunk topology.
-
trait
FetchConditionalPrediction extends AnyRef
Implemented by the GSharePlugin, allows the BtbPlugin to access the branch prediction at a given stage.
-
trait
FetchWordPrediction extends AnyRef
Used just to signal the functionality presence
-
case class
ForgetCmd() extends Bundle with Product with Serializable
Interface used by the DecodePlugin to make the BtbPlugin forget a given prediction entry, as that entry produced a prediction which is incompatible with the instruction (ex predicted a branch from a instruction which is a memory load)
- trait ForgetSource extends AnyRef
-
class
GSharePlugin extends FiberPlugin with FetchConditionalPrediction with HistoryUser with InitService
Implements conditional branch prediction using a RAM of taken/non-taken bias indexed by the PC xor branch history
- case class HistoryJump(laneAgeWidth: Int) extends Bundle with Product with Serializable
-
class
HistoryPlugin extends FiberPlugin
This the plugin in change of handeling the branch history state, provide ports to modify it, and inject it in the fetch pipeline
-
trait
HistoryUser extends AnyRef
Allows branch prediction plugins to specify how many bits of history they need
-
case class
LearnCmd(hmElements: Seq[NamedType[_ <: Data]]) extends Bundle with Product with Serializable
Interface used to get traces of the branch/jump instruction execution.
Interface used to get traces of the branch/jump instruction execution. This is used by the BtbPlugin/GSharePlugin to learn patterns
- class LearnPlugin extends FiberPlugin with LearnService
-
trait
LearnService extends AnyRef
Provide an API allowing plugins to access the LearnCmd interface (used by BtbPlugin/GSharePlugin), aswell as a way to specify additional execute pipeline payload which should be collected and feeded to the LearnCmd
- trait LearnSource extends AnyRef
Value Members
-
object
Prediction extends AreaObject
Used to define a few signal which travel on the fetch pipeline for prediction purposes