1da3bf434SMaxpicca-Lipackage xiangshan 2da3bf434SMaxpicca-Li 38891a219SYinan Xuimport org.chipsalliance.cde.config.Parameters 4da3bf434SMaxpicca-Liimport chisel3._ 5da3bf434SMaxpicca-Liimport chisel3.util.log2Ceil 624519898SXuan Huimport xiangshan.backend.ctrlblock.{DebugLsInfo, DebugMdpInfo} 720e09ab1Shappy-lximport xiangshan.cache.{DCacheBundle, HasDCacheParameters} 88a00ff56SXuan Huimport xiangshan.backend.fu.FuType 920e09ab1Shappy-lximport utility.MemReqSource 1020e09ab1Shappy-lximport xiangshan.mem.prefetch.HasL1PrefetchHelper 11da3bf434SMaxpicca-Li 12da3bf434SMaxpicca-Li/** Mem */ 13da3bf434SMaxpicca-Liclass LoadMissEntry(implicit p: Parameters) extends DCacheBundle { 14da3bf434SMaxpicca-Li val timeCnt = UInt(XLEN.W) 15da3bf434SMaxpicca-Li val robIdx = UInt(log2Ceil(RobSize).W) 16da3bf434SMaxpicca-Li val paddr = UInt(PAddrBits.W) 17da3bf434SMaxpicca-Li val vaddr = UInt(VAddrBits.W) 18da3bf434SMaxpicca-Li // 1:first hit, 2:first miss, 3:second miss 19da3bf434SMaxpicca-Li val missState = UInt(3.W) 20da3bf434SMaxpicca-Li} 21da3bf434SMaxpicca-Li 2204665835SMaxpicca-Liclass LoadAccessEntry(implicit p: Parameters) extends LoadMissEntry{ 2304665835SMaxpicca-Li val pred_way_num = UInt(XLEN.W) 2404665835SMaxpicca-Li val dm_way_num = UInt(XLEN.W) 2504665835SMaxpicca-Li val real_way_num = UInt(XLEN.W) 2604665835SMaxpicca-Li} 2704665835SMaxpicca-Li 28da3bf434SMaxpicca-Liclass InstInfoEntry(implicit p: Parameters) extends XSBundle{ 29*248b9a04SYanqin Li /* 30*248b9a04SYanqin Li * The annotated signals are discarded in New Backend. 31*248b9a04SYanqin Li * But it can be used as a signal reference for instinfo 32*248b9a04SYanqin Li */ 33da3bf434SMaxpicca-Li val robIdx = UInt(log2Ceil(RobSize).W) 34*248b9a04SYanqin Li // val globalID = UInt(XLEN.W) 35*248b9a04SYanqin Li // val instType = FuType() 36*248b9a04SYanqin Li // val mdpInfo = new DebugMdpInfo 37*248b9a04SYanqin Li // val ivaddr = UInt(VAddrBits.W) 38da3bf434SMaxpicca-Li val dvaddr = UInt(VAddrBits.W) // the l/s access address 39da3bf434SMaxpicca-Li val dpaddr = UInt(VAddrBits.W) // need the physical address when the TLB is valid 40da3bf434SMaxpicca-Li val issueTime = UInt(XLEN.W) 41da3bf434SMaxpicca-Li val writebackTime = UInt(XLEN.W) 42*248b9a04SYanqin Li val dispatchLatency = UInt(XLEN.W) 43*248b9a04SYanqin Li val enqRsLatency = UInt(XLEN.W) 44*248b9a04SYanqin Li val selectLatency = UInt(XLEN.W) 45*248b9a04SYanqin Li val issueLatency = UInt(XLEN.W) 46*248b9a04SYanqin Li val executeLatency = UInt(XLEN.W) 47*248b9a04SYanqin Li val rsFuLatency = UInt(XLEN.W) 48*248b9a04SYanqin Li // val commitLatency = UInt(XLEN.W) // can not record when writing back 49*248b9a04SYanqin Li val tlbLatency = UInt(XLEN.W) // original requirements is L1toL2TlbLatency 50*248b9a04SYanqin Li val lsInfo = new DebugLsInfo 51*248b9a04SYanqin Li val exceptType = UInt(ExceptionVec.ExceptionVecSize.W) 52da3bf434SMaxpicca-Li} 530d32f713Shappy-lx 540d32f713Shappy-lxclass LoadInfoEntry(implicit p: Parameters) extends XSBundle{ 550d32f713Shappy-lx val pc = UInt(VAddrBits.W) 560d32f713Shappy-lx val vaddr = UInt(VAddrBits.W) 570d32f713Shappy-lx val paddr = UInt(PAddrBits.W) 580d32f713Shappy-lx val cacheMiss = Bool() 590d32f713Shappy-lx val tlbQueryLatency = UInt(64.W) 600d32f713Shappy-lx val exeLatency = UInt(64.W) 610d32f713Shappy-lx} 6220e09ab1Shappy-lx 6320e09ab1Shappy-lxclass StreamPFTraceInEntry(implicit p: Parameters) extends XSBundle with HasL1PrefetchHelper{ 6420e09ab1Shappy-lx val TriggerPC = UInt(VAddrBits.W) 6520e09ab1Shappy-lx val TriggerVaddr = UInt(VAddrBits.W) 6620e09ab1Shappy-lx val PFVaddr = UInt(VAddrBits.W) 6720e09ab1Shappy-lx val PFSink = UInt(SINK_BITS.W) 6820e09ab1Shappy-lx} 6920e09ab1Shappy-lx 7020e09ab1Shappy-lxclass StreamTrainTraceEntry(implicit p: Parameters) extends XSBundle with HasDCacheParameters{ 7120e09ab1Shappy-lx val Type = UInt(MemReqSource.reqSourceBits.W) 7220e09ab1Shappy-lx val OldAddr = UInt(VAddrBits.W) 7320e09ab1Shappy-lx val CurAddr = UInt(VAddrBits.W) 7420e09ab1Shappy-lx val Offset = UInt(32.W) 7520e09ab1Shappy-lx val Score = UInt(32.W) 7620e09ab1Shappy-lx val Miss = Bool() 7720e09ab1Shappy-lx} 7820e09ab1Shappy-lx 7920e09ab1Shappy-lxclass StreamPFTraceOutEntry(implicit p: Parameters) extends XSBundle with HasL1PrefetchHelper{ 8020e09ab1Shappy-lx val PFVaddr = UInt(VAddrBits.W) 8120e09ab1Shappy-lx val PFSink = UInt(SINK_BITS.W) 8220e09ab1Shappy-lx}