diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index fc57fbf7b..2a4cb9b7e 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,6 +1,6 @@
 *       @Ivyfeather @linjuanZ
-src/main/scala/coupledL2/Directory.scala @cailuoshan
-src/main/scala/coupledL2/utils/ @cailuoshan
+src/main/scala/coupledL2/Directory.scala @cailuoshan @linjuanZ
+src/main/scala/coupledL2/utils/ @cailuoshan @linjuanZ
 src/main/scala/coupledL2/prefetch/ @Maxpicca-Li
 src/main/scala/coupledL2/prefetch/ @wakafa1
 src/test/scala/ @Kumonda221-CrO3
diff --git a/src/main/scala/coupledL2/Directory.scala b/src/main/scala/coupledL2/Directory.scala
index 59f2fca18..b16200df2 100644
--- a/src/main/scala/coupledL2/Directory.scala
+++ b/src/main/scala/coupledL2/Directory.scala
@@ -282,14 +282,14 @@ class Directory(implicit p: Parameters) extends L2Module {
   val rrip_hit_s3 = Mux(refillReqValid_s3, false.B, hit_s3)
   // origin-bit marks whether the data_block is reused
   val origin_bit_opt = if(random_repl) None else
-    Some(Module(new SRAMTemplate(Bool(), sets, ways, singlePort = true)))
+    Some(Module(new SRAMTemplate(Bool(), sets, ways, singlePort = true, shouldReset = true)))
   val origin_bits_r = origin_bit_opt.get.io.r(io.read.fire, io.read.bits.set).resp.data
   val origin_bits_hold = Wire(Vec(ways, Bool()))
   origin_bits_hold := HoldUnless(origin_bits_r, RegNext(io.read.fire, false.B))
   origin_bit_opt.get.io.w(
-      replacerWen,
-      rrip_hit_s3,
-      req_s3.set,
+      !resetFinish || replacerWen,
+      Mux(resetFinish, rrip_hit_s3, false.B),
+      Mux(resetFinish, req_s3.set, resetIdx),
       UIntToOH(touch_way_s3)
   )