uncore
HasClientSideCoherencePolicy
trait
HasClientSideCoherencePolicy extends AnyRef
Abstract Value Members
-
abstract
def
clientMetadataOnCacheControl(cmd: UInt, meta: ClientMetadata): ClientMetadata
-
abstract
def
clientMetadataOnGrant(incoming: Grant, cmd: UInt, meta: ClientMetadata): ClientMetadata
-
-
-
abstract
def
clientMetadataOnReset: ClientMetadata
-
abstract
val
clientStatesWithDirtyData: Vec[UInt]
-
abstract
val
clientStatesWithReadPermission: Vec[UInt]
-
abstract
val
clientStatesWithWritePermission: Vec[UInt]
-
abstract
def
getAcquireType(cmd: UInt, meta: ClientMetadata): UInt
-
abstract
def
getReleaseType(p: Probe, meta: ClientMetadata): UInt
-
abstract
def
getReleaseType(cmd: UInt, meta: ClientMetadata): UInt
-
abstract
def
isValid(meta: ClientMetadata): Bool
-
abstract
val
nClientStates: Int
Concrete Value Members
-
final
def
!=(arg0: AnyRef): Boolean
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: AnyRef): Boolean
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clientStateWidth: Int
-
def
clone(): AnyRef
-
final
def
eq(arg0: AnyRef): Boolean
-
def
equals(arg0: Any): Boolean
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
def
isHit(cmd: UInt, meta: ClientMetadata): Bool
-
final
def
isInstanceOf[T0]: Boolean
-
final
def
ne(arg0: AnyRef): Boolean
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
requiresAcquireOnSecondaryMiss(first_cmd: UInt, second_cmd: UInt, meta: ClientMetadata): Bool
-
def
requiresReleaseOnCacheControl(cmd: UInt, meta: ClientMetadata): Bool
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Inherited from AnyRef
Inherited from Any
This API contains all functions required for client coherence agents. Policies must enumerate the number of client states and define their permissions with respect to memory operations. Policies must fill in functions to control which messages are sent and how metadata is updated in response to coherence events. These funtions are generally called from within the ClientMetadata class in metadata.scala