From 71c4b000b3fd9fac98011c0672a57ccfc7d64d82 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Thu, 5 Jan 2017 18:08:12 -0800 Subject: [PATCH] Don't special-case power-of-2 replacement policy for BTB PLRU wasn't implemented correctly for the BTB, since it wasn't increasing the priority on replacement, only on usage. Regardless, this should be a second-order effect, so using FIFO always is fine. --- src/main/scala/rocket/btb.scala | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/main/scala/rocket/btb.scala b/src/main/scala/rocket/btb.scala index cbeb1cee..13b13472 100644 --- a/src/main/scala/rocket/btb.scala +++ b/src/main/scala/rocket/btb.scala @@ -182,15 +182,7 @@ class BTB(implicit p: Parameters) extends BtbModule { val updateHit = if (updatesOutOfOrder) updateHits.orR else r_btb_update.bits.prediction.valid val updateHitAddr = if (updatesOutOfOrder) OHToUInt(updateHits) else r_btb_update.bits.prediction.bits.entry - // we'd prefer PseudoLRU replacement, but it only works for powers of 2 - val nextRepl = - if (!isPow2(entries)) { - Counter(r_btb_update.valid && !updateHit, entries)._1 - } else { - val plru = new PseudoLRU(entries) - when (hits.orR) { plru.access(OHToUInt(hits)) } - plru.replace - } + val nextRepl = Counter(r_btb_update.valid && !updateHit, entries)._1 val useUpdatePageHit = updatePageHit.orR val usePageHit = pageHit.orR