1
0

Merge branch 'gh-pages'

This commit is contained in:
Henry Cook 2015-05-07 16:16:13 -07:00
commit 8362eba00f
5 changed files with 30 additions and 16 deletions

View File

@ -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
View File

@ -0,0 +1 @@
My GitHub Page

View 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")

View File

@ -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)

View File

@ -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