Merge branch 'gh-pages'
This commit is contained in:
commit
8362eba00f
@ -5,3 +5,11 @@ version := "2.0"
|
|||||||
name := "uncore"
|
name := "uncore"
|
||||||
|
|
||||||
scalaVersion := "2.10.2"
|
scalaVersion := "2.10.2"
|
||||||
|
|
||||||
|
site.settings
|
||||||
|
|
||||||
|
site.includeScaladoc()
|
||||||
|
|
||||||
|
ghpages.settings
|
||||||
|
|
||||||
|
git.remoteRepo := "git@github.com:ucb-bar/uncore.git"
|
||||||
|
1
uncore/index.html
Normal file
1
uncore/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
My GitHub Page
|
5
uncore/project/plugins.sbt
Normal file
5
uncore/project/plugins.sbt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
resolvers += "jgit-repo" at "http://download.eclipse.org/jgit/maven"
|
||||||
|
|
||||||
|
addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.5.3")
|
||||||
|
|
||||||
|
addSbtPlugin("com.typesafe.sbt" % "sbt-site" % "0.8.1")
|
@ -42,7 +42,7 @@ class ClientMetadata extends CoherenceMetadata {
|
|||||||
*
|
*
|
||||||
* @param client_xact_id client's transaction id
|
* @param client_xact_id client's transaction id
|
||||||
* @param addr_block address of the cache block
|
* @param addr_block address of the cache block
|
||||||
* @param op_code a memory operation from [[uncore.MemoryOpConstants]]
|
* @param op_code a memory operation from [[uncore.constants.MemoryOpConstants]]
|
||||||
*/
|
*/
|
||||||
def makeAcquire(
|
def makeAcquire(
|
||||||
client_xact_id: UInt,
|
client_xact_id: UInt,
|
||||||
@ -114,14 +114,14 @@ class ClientMetadata extends CoherenceMetadata {
|
|||||||
|
|
||||||
/** New metadata after a op_code hits this block
|
/** New metadata after a op_code hits this block
|
||||||
*
|
*
|
||||||
* @param op_code a memory operation from [[uncore.MemoryOpConstants]]
|
* @param op_code a memory operation from [[uncore.constants.MemoryOpConstants]]
|
||||||
*/
|
*/
|
||||||
def onHit(op_code: UInt): ClientMetadata =
|
def onHit(op_code: UInt): ClientMetadata =
|
||||||
Bundle(co.clientMetadataOnHit(op_code, this), { case TLId => id })
|
Bundle(co.clientMetadataOnHit(op_code, this), { case TLId => id })
|
||||||
|
|
||||||
/** New metadata after receiving a [[uncore.Probe]]
|
/** New metadata after receiving a [[uncore.Probe]]
|
||||||
*
|
*
|
||||||
* @param op_code a memory operation from [[uncore.MemoryOpConstants]]
|
* @param op_code a memory operation from [[uncore.constants.MemoryOpConstants]]
|
||||||
*/
|
*/
|
||||||
def onCacheControl(op_code: UInt): ClientMetadata =
|
def onCacheControl(op_code: UInt): ClientMetadata =
|
||||||
Bundle(co.clientMetadataOnCacheControl(op_code, this), { case TLId => id })
|
Bundle(co.clientMetadataOnCacheControl(op_code, this), { case TLId => id })
|
||||||
@ -157,11 +157,11 @@ class ManagerMetadata extends CoherenceMetadata {
|
|||||||
/** Converts the directory info into an N-hot sharer bitvector (i.e. full representation) */
|
/** Converts the directory info into an N-hot sharer bitvector (i.e. full representation) */
|
||||||
def full(dummy: Int = 0): UInt = co.dir.full(this.sharers)
|
def full(dummy: Int = 0): UInt = co.dir.full(this.sharers)
|
||||||
|
|
||||||
/** Does this [[uncore.Acquire]] require [[uncore.Probes]] to be sent */
|
/** Does this [[uncore.Acquire]] require [[uncore.Probe Probes]] to be sent */
|
||||||
def requiresProbes(acq: Acquire): Bool = co.requiresProbes(acq, this)
|
def requiresProbes(acq: Acquire): Bool = co.requiresProbes(acq, this)
|
||||||
/** Does this memory op require [[uncore.Probes]] to be sent */
|
/** Does this memory op require [[uncore.Probe Probes]] to be sent */
|
||||||
def requiresProbes(op_code: UInt): Bool = co.requiresProbes(op_code, this)
|
def requiresProbes(op_code: UInt): Bool = co.requiresProbes(op_code, this)
|
||||||
/** Does an eviction require [[uncore.Probes]] to be sent */
|
/** Does an eviction require [[uncore.Probe Probes]] to be sent */
|
||||||
def requiresProbesOnVoluntaryWriteback(dummy: Int = 0): Bool =
|
def requiresProbesOnVoluntaryWriteback(dummy: Int = 0): Bool =
|
||||||
co.requiresProbes(M_FLUSH, this)
|
co.requiresProbes(M_FLUSH, this)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ case object TLNManagers extends Field[Int]
|
|||||||
case object TLNClients extends Field[Int]
|
case object TLNClients extends Field[Int]
|
||||||
/** Number of client agents that cache data and use custom [[uncore.Acquire]] types */
|
/** Number of client agents that cache data and use custom [[uncore.Acquire]] types */
|
||||||
case object TLNCachingClients extends Field[Int]
|
case object TLNCachingClients extends Field[Int]
|
||||||
/** Number of client agents that do not cache data and use built-in [[uncoreAcquire]] types */
|
/** Number of client agents that do not cache data and use built-in [[uncore.Acquire]] types */
|
||||||
case object TLNCachelessClients extends Field[Int]
|
case object TLNCachelessClients extends Field[Int]
|
||||||
/** Maximum number of unique outstanding transactions per client */
|
/** Maximum number of unique outstanding transactions per client */
|
||||||
case object TLMaxClientXacts extends Field[Int]
|
case object TLMaxClientXacts extends Field[Int]
|
||||||
@ -488,7 +488,7 @@ class ProbeToDst extends Probe with HasClientId
|
|||||||
/** Contains factories for [[uncore.Probe]] and [[uncore.ProbeToDst]]
|
/** Contains factories for [[uncore.Probe]] and [[uncore.ProbeToDst]]
|
||||||
*
|
*
|
||||||
* In general you should avoid using these factories directly and use
|
* In general you should avoid using these factories directly and use
|
||||||
* [[uncore.ManagerMetadata.makeProbe]] instead.
|
* [[uncore.ManagerMetadata.makeProbe(UInt,Acquire)* makeProbe]] instead.
|
||||||
*
|
*
|
||||||
* @param dst id of client to which probe should be sent
|
* @param dst id of client to which probe should be sent
|
||||||
* @param p_type custom probe type
|
* @param p_type custom probe type
|
||||||
@ -515,7 +515,7 @@ object Probe {
|
|||||||
* write back data, for example in the event that dirty data must be evicted on
|
* write back data, for example in the event that dirty data must be evicted on
|
||||||
* a cache miss. The available types of Release messages are always customized by
|
* a cache miss. The available types of Release messages are always customized by
|
||||||
* a particular [[uncore.CoherencePolicy]]. Releases may contain data or may be
|
* a particular [[uncore.CoherencePolicy]]. Releases may contain data or may be
|
||||||
* simple acknowledgements. Voluntary Releases are acknowledged with [[uncore.Grants]].
|
* simple acknowledgements. Voluntary Releases are acknowledged with [[uncore.Grant Grants]].
|
||||||
*/
|
*/
|
||||||
class Release extends ClientToManagerChannel
|
class Release extends ClientToManagerChannel
|
||||||
with HasCacheBlockAddress
|
with HasCacheBlockAddress
|
||||||
@ -608,7 +608,7 @@ class GrantToDst extends Grant with HasClientId
|
|||||||
* for [[uncore.Grant]] and [[uncore.GrantToDst]]
|
* for [[uncore.Grant]] and [[uncore.GrantToDst]]
|
||||||
*
|
*
|
||||||
* In general you should avoid using these factories directly and use
|
* In general you should avoid using these factories directly and use
|
||||||
* [[uncore.ManagerMetadata.makeGrant]] instead.
|
* [[uncore.ManagerMetadata.makeGrant(uncore.AcquireFromSrc* makeGrant]] instead.
|
||||||
*
|
*
|
||||||
* @param dst id of client to which grant should be sent
|
* @param dst id of client to which grant should be sent
|
||||||
* @param is_builtin_type built-in or custom type message?
|
* @param is_builtin_type built-in or custom type message?
|
||||||
@ -693,13 +693,13 @@ class TileLinkIO extends UncachedTileLinkIO {
|
|||||||
* It is intended for use within client agents.
|
* It is intended for use within client agents.
|
||||||
*
|
*
|
||||||
* Headers are provided in the top-level that instantiates the clients and network,
|
* Headers are provided in the top-level that instantiates the clients and network,
|
||||||
* probably using a [[uncore.ClientTileLinkPort]] module.
|
* probably using a [[uncore.ClientTileLinkNetworkPort]] module.
|
||||||
* By eliding the header subbundles within the clients we can enable
|
* By eliding the header subbundles within the clients we can enable
|
||||||
* hierarchical P-and-R while minimizing unconnected port errors in GDS.
|
* hierarchical P-and-R while minimizing unconnected port errors in GDS.
|
||||||
*
|
*
|
||||||
* Secondly, this version of the interface elides [[uncore.Finish]] messages, with the
|
* Secondly, this version of the interface elides [[uncore.Finish]] messages, with the
|
||||||
* assumption that a [[uncore.FinishUnit]] has been coupled to the TileLinkIO port
|
* assumption that a [[uncore.FinishUnit]] has been coupled to the TileLinkIO port
|
||||||
* to deal with acking received [[uncore.Grants]].
|
* to deal with acking received [[uncore.Grant Grants]].
|
||||||
*/
|
*/
|
||||||
class ClientUncachedTileLinkIO extends TLBundle {
|
class ClientUncachedTileLinkIO extends TLBundle {
|
||||||
val acquire = new DecoupledIO(new Acquire)
|
val acquire = new DecoupledIO(new Acquire)
|
||||||
@ -721,10 +721,10 @@ class ClientTileLinkIO extends ClientUncachedTileLinkIO {
|
|||||||
* Managers need to track where [[uncore.Acquire]] and [[uncore.Release]] messages
|
* Managers need to track where [[uncore.Acquire]] and [[uncore.Release]] messages
|
||||||
* originated so that they can send a [[uncore.Grant]] to the right place.
|
* originated so that they can send a [[uncore.Grant]] to the right place.
|
||||||
* Similarly they must be able to issues Probes to particular clients.
|
* Similarly they must be able to issues Probes to particular clients.
|
||||||
* However, we'd still prefer to have [[uncore.ManagerTileLinkPort]] fill in
|
* However, we'd still prefer to have [[uncore.ManagerTileLinkNetworkPort]] fill in
|
||||||
* the header.src to enable hierarchical p-and-r of the managers. Additionally,
|
* the header.src to enable hierarchical p-and-r of the managers. Additionally,
|
||||||
* coherent clients might be mapped to random network port ids, and we'll leave it to the
|
* coherent clients might be mapped to random network port ids, and we'll leave it to the
|
||||||
* [[uncore.ManagerTileLinkPort]] to apply the correct mapping. Managers do need to
|
* [[uncore.ManagerTileLinkNetworkPort]] to apply the correct mapping. Managers do need to
|
||||||
* see Finished so they know when to allow new transactions on a cache
|
* see Finished so they know when to allow new transactions on a cache
|
||||||
* block to proceed.
|
* block to proceed.
|
||||||
*/
|
*/
|
||||||
@ -852,7 +852,7 @@ class FinishQueue(entries: Int) extends Queue(new FinishQueueEntry, entries)
|
|||||||
*
|
*
|
||||||
* Creates network headers for [[uncore.Acquire]] and [[uncore.Release]] messages,
|
* Creates network headers for [[uncore.Acquire]] and [[uncore.Release]] messages,
|
||||||
* calculating header.dst and filling in header.src.
|
* calculating header.dst and filling in header.src.
|
||||||
* Strips headers from [[uncore.Probes]].
|
* Strips headers from [[uncore.Probe Probes]].
|
||||||
* Responds to [[uncore.Grant]] by automatically issuing [[uncore.Finish]] to the granting managers.
|
* Responds to [[uncore.Grant]] by automatically issuing [[uncore.Finish]] to the granting managers.
|
||||||
*
|
*
|
||||||
* @param clientId network port id of this agent
|
* @param clientId network port id of this agent
|
||||||
@ -900,7 +900,7 @@ object ClientTileLinkHeaderCreator {
|
|||||||
*
|
*
|
||||||
* Creates network headers for [[uncore.Probe]] and [[uncore.Grant]] messagess,
|
* Creates network headers for [[uncore.Probe]] and [[uncore.Grant]] messagess,
|
||||||
* calculating header.dst and filling in header.src.
|
* calculating header.dst and filling in header.src.
|
||||||
* Strips headers from [[uncore.Acquire]], [[uncore.Release]] and [[uncore.Finish],
|
* Strips headers from [[uncore.Acquire]], [[uncore.Release]] and [[uncore.Finish]],
|
||||||
* but supplies client_id instead.
|
* but supplies client_id instead.
|
||||||
*
|
*
|
||||||
* @param managerId the network port id of this agent
|
* @param managerId the network port id of this agent
|
||||||
|
Loading…
Reference in New Issue
Block a user