提交 e8747464 编写于 作者: J Jenius

discard iprefetch req when resource busy

上级 19d62fa1
......@@ -1014,6 +1014,7 @@ class Ftq(implicit p: Parameters) extends XSModule with HasCircularQueuePtrHelpe
}
XSError(isBefore(bpuPtr, prefetchPtr) && !isFull(bpuPtr, prefetchPtr), "\nprefetchPtr is before bpuPtr!\n")
XSError(isBefore(prefetchPtr, ifuPtr) && !isFull(ifuPtr, prefetchPtr), "\nifuPtr is before prefetchPtr!\n")
}
else {
io.toPrefetch.req <> DontCare
......
......@@ -89,6 +89,8 @@ class IPrefetchPipe(implicit p: Parameters) extends IPrefetchModule
val p0_valid = fromFtq.req.valid
val p0_vaddr = addrAlign(fromFtq.req.bits.target, blockBytes, VAddrBits)
p0_fire := p0_valid && p1_ready && toITLB.fire() && !fromITLB.bits.miss && toIMeta.ready && enableBit
//discard req when source not ready
// p0_discard := p0_valid && ((toITLB.fire() && fromITLB.bits.miss) || !toIMeta.ready || !enableBit)
toIMeta.valid := p0_valid
toIMeta.bits.vSetIdx(0) := get_idx(p0_vaddr)
......@@ -108,7 +110,7 @@ class IPrefetchPipe(implicit p: Parameters) extends IPrefetchModule
fromITLB.ready := true.B
fromFtq.req.ready := (!enableBit || (enableBit && p3_ready)) && toIMeta.ready //&& GTimer() > 500.U
fromFtq.req.ready := true.B //(!enableBit || (enableBit && p3_ready)) && toIMeta.ready //&& GTimer() > 500.U
/** Prefetch Stage 1: cache probe filter */
val p1_valid = generatePipeControl(lastFire = p0_fire, thisFire = p1_fire || p1_discard, thisFlush = false.B, lastFlush = false.B)
......@@ -178,7 +180,7 @@ class IPrefetchPipe(implicit p: Parameters) extends IPrefetchModule
val p3_hit_dir = VecInit((0 until nPrefetchEntries).map(i => prefetch_dir(i).valid && prefetch_dir(i).paddr === p3_paddr )).reduce(_||_)
p3_discard := p3_hit_dir || p3_check_in_mshr
p3_discard := p3_hit_dir || p3_check_in_mshr || (p3_valid && enableBit && !toMissUnit.enqReq.ready)
toMissUnit.enqReq.valid := p3_valid && enableBit && !p3_discard
toMissUnit.enqReq.bits.paddr := p3_paddr
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册