Skip to content

Commit d2adb9a

Browse files
committed
Revert "feat(OpenLLC): add support for ReadNoSnp transaction (#22)"
This reverts commit 914b2a7.
1 parent 829e987 commit d2adb9a

File tree

3 files changed

+7
-11
lines changed

3 files changed

+7
-11
lines changed

src/main/scala/openLLC/MainPipe.scala

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,9 @@ class MainPipe(implicit p: Parameters) extends LLCModule with HasCHIOpcodes {
126126
val cleanInvalid_s3 = !refill_task_s3 && opcode_s3 === CleanInvalid
127127
val cleanShared_s3 = !refill_task_s3 && opcode_s3 === CleanShared
128128
val writeCleanFull_s3 = !refill_task_s3 && opcode_s3 === WriteCleanFull
129-
val readNoSnp_s3 = !refill_task_s3 && opcode_s3 === ReadNoSnp
130129

131130
assert(!task_s3.valid || refill_task_s3 || readNotSharedDirty_s3 || readUnique_s3 || makeUnique_s3 || writeBackFull_s3 ||
132-
evict_s3 || makeInvalid_s3 || cleanInvalid_s3 || cleanShared_s3 || writeCleanFull_s3 || readNoSnp_s3, "Unsupported opcode")
131+
evict_s3 || makeInvalid_s3 || cleanInvalid_s3 || cleanShared_s3 || writeCleanFull_s3, "Unsupported opcode")
133132

134133
/**
135134
* Requests have different coherence states after processing
@@ -258,7 +257,6 @@ class MainPipe(implicit p: Parameters) extends LLCModule with HasCHIOpcodes {
258257
val cleanInvalid_s4 = RegNext(cleanInvalid_s3, false.B)
259258
val cleanShared_s4 = RegNext(cleanShared_s3, false.B)
260259
val writeCleanFull_s4 = RegNext(writeCleanFull_s3, false.B)
261-
val readNoSnp_s4 = RegNext(readNoSnp_s3, false.B)
262260
val sharedReq_s4 = RegNext(sharedReq_s3, false.B)
263261
val exclusiveReq_s4 = RegNext(exclusiveReq_s3, false.B)
264262
val releaseReq_s4 = RegNext(releaseReq_s3, false.B)
@@ -376,7 +374,7 @@ class MainPipe(implicit p: Parameters) extends LLCModule with HasCHIOpcodes {
376374
val respSC_s4 = sharedReq_s4
377375
val respUC_s4 = makeUnique_s4 || !makeUnique_s4 && exclusiveReq_s4 && (!selfDirty_s4 || !self_hit_s4)
378376
val respUD_s4 = !makeUnique_s4 && exclusiveReq_s4 && self_hit_s4 && selfDirty_s4
379-
val respI_s4 = releaseReq_s4 || invalidReq_s4 || cleanReq_s4 || writeCleanFull_s4 || readNoSnp_s4
377+
val respI_s4 = releaseReq_s4 || invalidReq_s4 || cleanReq_s4 || writeCleanFull_s4
380378
val snpVec_comp_s4 = VecInit(
381379
Mux(
382380
request_snoop_s4,
@@ -396,12 +394,12 @@ class MainPipe(implicit p: Parameters) extends LLCModule with HasCHIOpcodes {
396394
)
397395

398396
comp_s4.valid := task_s4.valid && (
399-
releaseReq_s4 || invalidReq_s4 || cleanReq_s4 || makeUnique_s4 || writeCleanFull_s4 || readNoSnp_s4 ||
397+
releaseReq_s4 || invalidReq_s4 || cleanReq_s4 || makeUnique_s4 || writeCleanFull_s4 ||
400398
(readNotSharedDirty_s4 || readUnique_s4) && !self_hit_s4
401399
)
402400
comp_s4.bits.state.s_comp := false.B
403401
comp_s4.bits.state.s_urgentRead := true.B
404-
comp_s4.bits.state.w_datRsp := !(readNotSharedDirty_s4 || readUnique_s4 || readNoSnp_s4)
402+
comp_s4.bits.state.w_datRsp := !(readNotSharedDirty_s4 || readUnique_s4)
405403
comp_s4.bits.state.w_snpRsp := !Cat(snpVec_comp_s4).orR
406404
comp_s4.bits.state.w_compack := !(readUnique_s4 || readNotSharedDirty_s4 || makeUnique_s4)
407405
comp_s4.bits.state.w_comp := !(cleanInvalid_s4 && self_hit_s4 && selfDirty_s4)
@@ -422,7 +420,7 @@ class MainPipe(implicit p: Parameters) extends LLCModule with HasCHIOpcodes {
422420
mem_task_s4.expCompAck := false.B
423421

424422
// need ReadNoSnp/WriteNoSnp downwards
425-
val memRead_s4 = (readNotSharedDirty_s4 || readUnique_s4) && !self_hit_s4 && !peerRNs_hit_s4 || readNoSnp_s4
423+
val memRead_s4 = (readNotSharedDirty_s4 || readUnique_s4) && !self_hit_s4 && !peerRNs_hit_s4
426424
val memWrite_s4 = cleanReq_s4 && unique_peerRN_s4 || writeCleanFull_s4
427425
mem_s4.valid := task_s4.valid && (memRead_s4 || memWrite_s4)
428426
mem_s4.bits.state.s_issueReq := false.B

src/main/scala/openLLC/RequestArb.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,8 @@ class RequestArb(implicit p: Parameters) extends LLCModule with HasClientInfo wi
6767
val isCleanInvalid_s1 = !task_s1.bits.refillTask && task_s1.bits.chiOpcode === CleanInvalid
6868
val isCleanShared_s1 = !task_s1.bits.refillTask && task_s1.bits.chiOpcode === CleanShared
6969
val isWriteCleanFull_s1 = !task_s1.bits.refillTask && task_s1.bits.chiOpcode === WriteCleanFull
70-
val isReadNoSnp_s1 = !task_s1.bits.refillTask && task_s1.bits.chiOpcode === ReadNoSnp
7170

72-
val isRead_s1 = isReadNotSharedDirty_s1 || isReadUnique_s1 || isReadNoSnp_s1
71+
val isRead_s1 = isReadNotSharedDirty_s1 || isReadUnique_s1
7372
val isClean_s1 = isCleanInvalid_s1 || isCleanShared_s1 || isWriteCleanFull_s1
7473

7574
// To prevent data hazards caused by read-after-write conflicts in the directory,

src/main/scala/openLLC/ResponseUnit.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -265,8 +265,7 @@ class ResponseUnit(implicit p: Parameters) extends LLCModule with HasCHIOpcodes
265265
}
266266

267267
/* Issue */
268-
val isRead = buffer.map(e => e.task.chiOpcode === ReadUnique || e.task.chiOpcode === ReadNotSharedDirty ||
269-
e.task.chiOpcode === ReadNoSnp)
268+
val isRead = buffer.map(e => e.task.chiOpcode === ReadUnique || e.task.chiOpcode === ReadNotSharedDirty)
270269
txdatArb.io.in.zip(buffer).zip(isRead).foreach { case ((in, e), r) =>
271270
in.valid := e.valid && e.state.w_datRsp && e.state.w_snpRsp && e.state.s_urgentRead && !e.state.s_comp && r
272271
in.bits.task := e.task

0 commit comments

Comments
 (0)