Skip to content

Commit 3300621

Browse files
authored
TP: fix compile problem when disable TP by adding 'hastp/tp' parameter (#160)
1 parent 4875678 commit 3300621

7 files changed

+32
-9
lines changed

src/main/scala/coupledL2/CoupledL2.scala

+1
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ trait HasCoupledL2Parameters {
7575
val hasPrefetchBit = prefetchOpt.nonEmpty && prefetchOpt.get.hasPrefetchBit
7676
val hasPrefetchSrc = prefetchOpt.nonEmpty && prefetchOpt.get.hasPrefetchSrc
7777
val topDownOpt = if(cacheParams.elaboratedTopDown) Some(true) else None
78+
val hasTPPrefetcher = prefetchOpt.nonEmpty && prefetchOpt.get.hasTPPrefetcher
7879

7980
val enableHintGuidedGrant = true
8081

src/main/scala/coupledL2/prefetch/BestOffsetPrefetch.scala

+3-1
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,13 @@ case class BOPParameters(
5252
90, 96, 100, 108, 120, 125, 128, 135,
5353
144, 150, 160, 162, 180, 192, 200, 216,
5454
225, 240, 243, 250/*, 256*/
55-
))
55+
),
56+
hastp: Boolean = true)
5657
extends PrefetchParameters {
5758
override val hasPrefetchBit: Boolean = true
5859
override val hasPrefetchSrc: Boolean = true
5960
override val inflightEntries: Int = 16
61+
override val hasTPPrefetcher: Boolean = hastp
6062
}
6163

6264
trait HasBOPParams extends HasPrefetcherHelper {

src/main/scala/coupledL2/prefetch/PrefetchParameters.scala

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ trait PrefetchParameters {
2727
val hasPrefetchBit: Boolean
2828
val hasPrefetchSrc: Boolean
2929
val inflightEntries: Int // max num of inflight prefetch reqs
30+
val hasTPPrefetcher: Boolean
3031
}
3132

3233
trait HasPrefetchParameters extends HasCoupledL2Parameters {

src/main/scala/coupledL2/prefetch/PrefetchReceiver.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ case class PrefetchReceiverParams(n: Int = 32, tp: Boolean = true) extends Prefe
3131
override val hasPrefetchBit: Boolean = true
3232
override val hasPrefetchSrc: Boolean = true
3333
override val inflightEntries: Int = n
34-
val hasTPPrefetcher: Boolean = tp
34+
override val hasTPPrefetcher: Boolean = tp
3535
}
3636

3737
class PrefetchReceiver()(implicit p: Parameters) extends PrefetchModule {

src/main/scala/coupledL2/prefetch/Prefetcher.scala

+20-3
Original file line numberDiff line numberDiff line change
@@ -260,17 +260,28 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
260260
val pfRcv = Module(new PrefetchReceiver())
261261
val pbop = Module(new PBestOffsetPrefetch()(p.alterPartial({
262262
case L2ParamKey => p(L2ParamKey).copy(prefetch = Some(BOPParameters(
263+
hastp = prefetchOpt match {
264+
case Some(param: PrefetchReceiverParams) =>
265+
if (param.hasTPPrefetcher) true else false
266+
case _ => false
267+
},
263268
virtualTrain = false,
264269
badScore = 1,
265270
offsetList = Seq(
266271
-32, -30, -27, -25, -24, -20, -18, -16, -15,
267272
-12, -10, -9, -8, -6, -5, -4, -3, -2, -1,
268273
1, 2, 3, 4, 5, 6, 8, 9, 10,
269274
12, 15, 16, 18, 20, 24, 25, 27, 30
270-
))))
275+
)
276+
)))
271277
})))
272278
val vbop = Module(new VBestOffsetPrefetch()(p.alterPartial({
273279
case L2ParamKey => p(L2ParamKey).copy(prefetch = Some(BOPParameters(
280+
hastp = prefetchOpt match {
281+
case Some(param: PrefetchReceiverParams) =>
282+
if (param.hasTPPrefetcher) true else false
283+
case _ => false
284+
},
274285
badScore = 2,
275286
offsetList = Seq(
276287
-117,-147,-91,117,147,91,
@@ -295,7 +306,11 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
295306
case Some(param: PrefetchReceiverParams) =>
296307
if (param.hasTPPrefetcher) {
297308
Some(Module(new TemporalPrefetch()(p.alterPartial({
298-
case L2ParamKey => p(L2ParamKey).copy(prefetch = Some(TPParameters()))
309+
case L2ParamKey => p(L2ParamKey).copy(prefetch = Some(TPParameters(hastp = prefetchOpt match {
310+
case Some(param: PrefetchReceiverParams) =>
311+
if (param.hasTPPrefetcher) true else false
312+
case _ => false
313+
})))
299314
}))))
300315
} else None
301316
case _ => None
@@ -343,7 +358,9 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
343358
io.req <> pipe.io.out
344359

345360
// tpmeta interface
346-
tp.foreach(_.io.tpmeta_port <> tpio.tpmeta_port.get)
361+
if (hasTPPrefetcher) {
362+
tp.foreach(_.io.tpmeta_port <> tpio.tpmeta_port.get)
363+
}
347364

348365
/* pri vbop */
349366
pftQueue.io.enq.valid := pfRcv.io.req.valid ||

src/main/scala/coupledL2/prefetch/TemporalPrefetch.scala

+5-3
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ case class TPParameters(
3636
triggerQueueDepth: Int = 4,
3737
throttleCycles: Int = 4, // unused yet
3838
replacementPolicy: String = "random",
39-
debug: Boolean = false
39+
debug: Boolean = false,
40+
hastp: Boolean = true
4041
) extends PrefetchParameters {
41-
override val hasPrefetchBit: Boolean = true
42-
override val hasPrefetchSrc: Boolean = true
42+
override val hasPrefetchBit: Boolean = true
43+
override val hasPrefetchSrc: Boolean = true
4344
override val inflightEntries: Int = 16
45+
override val hasTPPrefetcher: Boolean = hastp
4446
}
4547

4648
trait HasTPParams extends HasCoupledL2Parameters {

utility

0 commit comments

Comments
 (0)