Skip to content

Commit e8efac5

Browse files
committed
perf: add perfevent
add perfevent for last level cache event: l2_cache_prefetch_{access, miss} l2_cache_{access, miss}_{rd, wr} add perfevent for cache hit/miss in L2: l2_cache_hit, l2_cache_miss
1 parent 8795306 commit e8efac5

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

src/main/scala/coupledL2/CoupledL2.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ trait HasCoupledL2Parameters {
145145
def sam = cacheParams.sam
146146

147147
// Hardware Performance Monitor
148-
def numPCntHc: Int = 12
148+
def numPCntHc: Int = 17
149149

150150
def getClientBitOH(sourceId: UInt): UInt = {
151151
if (clientBits == 0) {

src/main/scala/coupledL2/tl2chi/MainPipe.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,13 +1094,19 @@ class MainPipe(implicit p: Parameters) extends TL2CHIL2Module with HasCHIOpcodes
10941094

10951095
/* ===== Hardware Performance Monitor ===== */
10961096
val perfEvents = Seq(
1097+
("l2_cache_hit", hit_s3 && req_s3.fromA),
1098+
("l2_cache_miss", miss_s3 && req_s3.fromA),
10971099
("l2_cache_access", task_s3.valid && (sinkA_req_s3 && !req_prefetch_s3 || sinkC_req_s3)),
10981100
("l2_cache_l2wb", task_s3.valid && (mshr_cbWrData_s3 || mshr_snpRespDataX_s3)),
10991101
("l2_cache_l1wb", task_s3.valid && sinkC_req_s3 && (req_s3.opcode === ReleaseData)),
11001102
("l2_cache_wb_victim", task_s3.valid && mshr_cbWrData_s3),
11011103
("l2_cache_wb_cleaning_coh", task_s3.valid && mshr_snpRespDataX_s3),
1104+
("l2_cache_prefetch_access", task_s3.valid && sinkA_req_s3 && req_prefetch_s3),
1105+
("l2_cache_prefetch_miss", task_s3.valid && sinkA_req_s3 && req_prefetch_s3 && miss_s3),
11021106
("l2_cache_access_rd", task_s3.valid && sinkA_req_s3 && !req_prefetch_s3),
11031107
("l2_cache_access_wr", task_s3.valid && sinkC_req_s3),
1108+
("l2_cache_miss_rd", task_s3.valid && sinkA_req_s3 && !req_prefetch_s3 && miss_s3),
1109+
// ("l2_cache_miss_wr", Inclusive L2 always hit),
11041110
("l2_cache_inv", task_s3.valid && sinkB_req_s3 && (req_s3.param === toN))
11051111
)
11061112
generatePerfEvent()

0 commit comments

Comments
 (0)