class AlignerPlugin extends FiberPlugin with AlignerService with InjectorService
This plugin will deserialize the aligned fetched words into instructions. - withBuffer => A Fetch.WORD sized buffer will be added to allow unaligned instruction to be read - !withBuffer => Fetch lanes directly feed Decode lanes without muxes. This doesn't support RVC - Warning, if the plugin start to hold stats => you need to notify TrapService when flush a is pending
Here are the challenges : - When RVC is enabled, 32 bits instruction can be unaligned, so one instruction my need 2 fetch word - Branch prediction (ex: from a BTB) may produce a broken stream of fetched word on 32 bits unaligned instruction aswell producing predictions which aren't aligned with the real instruction layout (ex prediction from fetched word slice 2, while slice 2 isn't the last slice of a instruction) - Handeling all the corner cases while keeping the combinatorial path low
- Alphabetic
- By Inheritance
- AlignerPlugin
- InjectorService
- AlignerService
- FiberPlugin
- Hostable
- Area
- OverridedEqualsHashCode
- ValCallbackRec
- ValCallback
- NameableByComponent
- Nameable
- ContextUser
- ScalaLocated
- GlobalDataUser
- OwnableRef
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new AlignerPlugin(fetchAt: Int, lanes: Int, withBuffer: Boolean)
Type Members
-
abstract
type
RefOwnerType
- Definition Classes
- OwnableRef
Value Members
-
val
_context: Capture
- Definition Classes
- Area
-
def
addFirstSliceDataCtx(that: NamedType[_ <: Data]): LinkedHashSet[NamedType[_ <: Data]]
- Definition Classes
- AlignerService
-
def
addLastSliceDataCtx(that: NamedType[_ <: Data]): LinkedHashSet[NamedType[_ <: Data]]
- Definition Classes
- AlignerService
-
def
addService[T](that: T): T
- Definition Classes
- FiberPlugin
- val api: Handle[Area { ... /* 3 definitions in type refinement */ }]
-
def
awaitBuild(): Unit
- Definition Classes
- FiberPlugin
-
def
buildBefore(l: ⇒ Lock): Unit
- Definition Classes
- FiberPlugin
-
var
buildCount: Int
- Definition Classes
- FiberPlugin
-
def
childNamePriority: Byte
- Definition Classes
- Area
-
def
component: Component
- Definition Classes
- ContextUser
-
def
during: AnyRef { ... /* 2 definitions in type refinement */ }
- Definition Classes
- FiberPlugin
-
val
elaborationLock: Retainer
- Definition Classes
- AlignerService
-
def
equals(obj: Any): Boolean
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
val
firstSliceData: LinkedHashSet[NamedType[_ <: Data]]
- Definition Classes
- AlignerService
-
def
foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
- Definition Classes
- Nameable
-
def
getDisplayName(): String
- Definition Classes
- Nameable
-
def
getInstanceCounter: Int
- Definition Classes
- ContextUser
-
def
getName(default: String): String
- Definition Classes
- NameableByComponent → Nameable
-
def
getName(): String
- Definition Classes
- NameableByComponent → Nameable
-
def
getPartialName(): String
- Definition Classes
- Nameable
-
def
getPath(from: Component, to: Component): Seq[Component]
- Definition Classes
- NameableByComponent
-
def
getRefOwnersChain(): List[Any]
- Definition Classes
- OwnableRef
-
def
getScalaLocationLong: String
- Definition Classes
- ScalaLocated
-
def
getScalaLocationShort: String
- Definition Classes
- ScalaLocated
-
def
getScalaTrace(): Throwable
- Definition Classes
- ScalaLocated
-
val
globalData: GlobalData
- Definition Classes
- GlobalDataUser
-
def
hashCode(): Int
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
var
host: PluginHost
- Definition Classes
- FiberPlugin
-
val
hostLock: Lock
- Definition Classes
- FiberPlugin
-
def
injectPort(): Flow[Bits]
- Definition Classes
- InjectorService
-
val
injectPorts: ArrayBuffer[Flow[Bits]]
- Definition Classes
- InjectorService
-
val
injectRetainer: Retainer
- Definition Classes
- InjectorService
-
def
isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
-
final
def
isNamed: Boolean
- Definition Classes
- Nameable
-
def
isPriorityApplicable(namePriority: Byte): Boolean
- Definition Classes
- Nameable
-
def
isUnnamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
-
val
lastSliceData: LinkedHashSet[NamedType[_ <: Data]]
- Definition Classes
- AlignerService
-
val
lockables: LinkedHashSet[() ⇒ Lock]
- Definition Classes
- FiberPlugin
- val logic: Handle[Area { ... /* 23 definitions in type refinement */ }]
-
val
name: String
- Definition Classes
- Nameable
-
def
overrideLocalName(name: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
val
parentScope: ScopeStatement
- Definition Classes
- ContextUser
-
var
pluginEnabled: Boolean
- Definition Classes
- FiberPlugin
-
val
refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
-
def
reflectNames(): Unit
- Definition Classes
- Nameable
-
def
retains(head: Any, tail: Any*): RetainerGroup
- Definition Classes
- FiberPlugin
-
def
retains(that: Seq[Any]): RetainerGroup
- Definition Classes
- FiberPlugin
-
def
rework[T](body: ⇒ T): T
- Definition Classes
- Area
-
val
scalaTrace: Throwable
- Definition Classes
- ScalaLocated
-
def
setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, namePriority: Byte): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, weak: Boolean): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setHost(h: PluginHost): Unit
- Definition Classes
- FiberPlugin → Hostable
-
def
setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, namePriority: Byte): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, weak: Boolean): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setNameAsWeak(): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte, owner: Any): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, weak: Boolean): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, namePriority: Byte): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, weak: Boolean): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
-
def
setScalaLocated(source: ScalaLocated): AlignerPlugin.this.type
- Definition Classes
- ScalaLocated
-
def
setWeakName(name: String): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
setupRetain(l: ⇒ Lock): Unit
- Definition Classes
- FiberPlugin
-
val
subservices: ArrayBuffer[Any]
- Definition Classes
- FiberPlugin
-
def
toString(): String
- Definition Classes
- Area → Nameable → AnyRef → Any
-
def
unsetName(): AlignerPlugin.this.type
- Definition Classes
- Nameable
-
def
valCallback[T](ref: T, name: String): T
- Definition Classes
- ValCallbackRec → ValCallback
-
def
valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
- Definition Classes
- ValCallbackRec
-
def
valCallbackRec(obj: Any, name: String): Unit
- Definition Classes
- Area → ValCallbackRec
-
def
withPrefix(prefix: String): FiberPlugin
- Definition Classes
- FiberPlugin