@@ -260,17 +260,28 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
260
260
val pfRcv = Module (new PrefetchReceiver ())
261
261
val pbop = Module (new PBestOffsetPrefetch ()(p.alterPartial({
262
262
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
+ },
263
268
virtualTrain = false ,
264
269
badScore = 1 ,
265
270
offsetList = Seq (
266
271
- 32 , - 30 , - 27 , - 25 , - 24 , - 20 , - 18 , - 16 , - 15 ,
267
272
- 12 , - 10 , - 9 , - 8 , - 6 , - 5 , - 4 , - 3 , - 2 , - 1 ,
268
273
1 , 2 , 3 , 4 , 5 , 6 , 8 , 9 , 10 ,
269
274
12 , 15 , 16 , 18 , 20 , 24 , 25 , 27 , 30
270
- ))))
275
+ )
276
+ )))
271
277
})))
272
278
val vbop = Module (new VBestOffsetPrefetch ()(p.alterPartial({
273
279
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
+ },
274
285
badScore = 2 ,
275
286
offsetList = Seq (
276
287
- 117 ,- 147 ,- 91 ,117 ,147 ,91 ,
@@ -295,7 +306,11 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
295
306
case Some (param : PrefetchReceiverParams ) =>
296
307
if (param.hasTPPrefetcher) {
297
308
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
+ })))
299
314
}))))
300
315
} else None
301
316
case _ => None
@@ -343,7 +358,9 @@ class Prefetcher(implicit p: Parameters) extends PrefetchModule {
343
358
io.req <> pipe.io.out
344
359
345
360
// 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
+ }
347
364
348
365
/* pri vbop */
349
366
pftQueue.io.enq.valid := pfRcv.io.req.valid ||
0 commit comments