Skip to content

Commit 91fe59a

Browse files
fix(RequestArb): eliminated sink C stall by directory
1 parent 7aa6ed2 commit 91fe59a

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/main/scala/coupledL2/RequestArb.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,15 +158,15 @@ class RequestArb(implicit p: Parameters) extends L2Module
158158
io.sinkC.ready := sink_ready_nodir && !block_C
159159

160160
val chnl_task_s1 = Wire(Valid(new TaskBundle()))
161-
chnl_task_s1.valid := (io.sinkC.valid && !io.mshrTask.valid || io.dirRead_s1.ready) && sinkValids.orR && resetFinish
161+
chnl_task_s1.valid := (io.sinkC.valid && !mshr_task_s1.valid || io.dirRead_s1.ready) && sinkValids.orR && resetFinish
162162
chnl_task_s1.bits := ParallelPriorityMux(sinkValids, Seq(C_task, B_task, A_task))
163163

164164
// mshr_task_s1 is s1_[reg]
165165
// task_s1 is [wire] to s2_reg
166166
val task_s1 = Mux(mshr_task_s1.valid, mshr_task_s1, chnl_task_s1)
167-
val s1_to_s2_valid = task_s1.valid && !mshr_replRead_stall
167+
val s1_to_s2_valid = task_s1.valid && (!mshr_replRead_stall || task_s1.bits.fromC)
168168

169-
s1_cango := task_s1.valid && !mshr_replRead_stall
169+
s1_cango := s1_to_s2_valid
170170
s1_fire := s1_cango && s2_ready
171171

172172
io.taskInfo_s1.valid := s1_fire

0 commit comments

Comments
 (0)