1. 20 6月, 2022 2 次提交
  2. 18 6月, 2022 2 次提交
    • Y
      decode: do not set lsrc of LUI for better timing (#1586) · a19215dd
      Yinan Xu 提交于
      This commit changes the lsrc/psrc of LUI in dispatch instead of
      decode to optimize the timing of lsrc in DecodeStage, which is
      critical for rename table.
      
      lsrc/ldest should be directly get from instr for the timing. Fused
      instructions change lsrc/ldest now, which will be optimized later.
      a19215dd
    • W
      perfcnt: keep strict regularity of perf counter name (#1585) · d18dc7e6
      wakafa 提交于
      * buspmu: avoid inner space in perf-cnt name
      
      * perfcnt: judge regularity of perfname
      
      * perfcnt: fix some irregular perfname
      
      * bump huancun
      d18dc7e6
  3. 17 6月, 2022 1 次提交
  4. 11 6月, 2022 1 次提交
  5. 09 6月, 2022 1 次提交
  6. 06 6月, 2022 3 次提交
    • J
      discard iprefetch req when resource busy · e8747464
      Jenius 提交于
      e8747464
    • J
      delete 500 cycle wait · 19d62fa1
      Jenius 提交于
      * add SRAM ready (resetfinish) condition for *Array (metaArray/dataArray)
      req.ready
      19d62fa1
    • J
      fix bugs in IFU and delete 500-cycle ready · 625ecd17
      Jenius 提交于
      * fix mmio_resend_af wrong assignment
      * fix wb_half_flush missOffset(using wb_lastIdx instead of PredictWidth
      -1)
      * change pipeline ready condition (this_ready =  this_stage_fire || this_stage_empty)
      * delete 500-cycle ready condition (toICache(*).ready means the SRAM has
      been reset and ready for read)
      625ecd17
  7. 02 6月, 2022 1 次提交
    • L
      ittage: we should write new target when alloc · 3b7c55f8
      Lingrui98 提交于
      Previous logic checked the value of old_ctr to select between old target and
      new target when updating ittage table. However, when we need to alloc a new
      entry, the value of old_ctr is X because we do not reset ittage table. So we
      would definitely write an X to the target field, which is the output of the
      mux, as the selector is X.
      3b7c55f8
  8. 31 5月, 2022 1 次提交
  9. 29 5月, 2022 1 次提交
  10. 26 5月, 2022 1 次提交
  11. 25 5月, 2022 1 次提交
  12. 11 5月, 2022 2 次提交
    • W
      Fix vcs simulation support, support manually set ram_size (#1551) · 25ac26c6
      William Wang 提交于
      * difftest: disable runahead to make vcs happy
      
      * difftest: bump huancun to make vcs happy
      
      * difftest: bump difftest and ready-to-run
      
      * difftest support ramsize and paddr base config
      * 8GB/16GB nemu so are provided by ready-to-run
      
      * ci: update nightly ci, manually set ram_size
      
      * difftest: bump huancun to make vcs happy
      
      * difftest,nemu: support run-time assign mem size
      
      * ci: polish nightly ci script
      25ac26c6
    • Y
      rob: don't set hasWFI if there're exceptions (#1550) · d2df63c3
      Yinan Xu 提交于
      An instruction with exceptions may have arbitrary instr values and
      may be decoded into WFI instructions, which cause errors.
      d2df63c3
  13. 09 5月, 2022 3 次提交
  14. 07 5月, 2022 1 次提交
  15. 06 5月, 2022 2 次提交
    • H
      feat: parameterize load store (#1527) · 46f74b57
      Haojin Tang 提交于
      * feat: parameterize load/store pipeline, etc.
      
      * fix: use LoadPipelineWidth rather than LoadQueueSize
      
      * fix: parameterize `rdataPtrExtNext`
      
      * SBuffer: fix idx update logic
      
      * atomic: parameterize atomic logic in `MemBlock`
      
      * StoreQueue: update allow enque requirement
      
      * feat: support one load/store pipeline
      
      * feat: parameterize `EnsbufferWidth`
      
      * chore: resharp codes for better generated name
      46f74b57
    • W
      chore: remove sc too many fail assertion (#1514) · 5d6ad649
      William Wang 提交于
      * chore: remove sc too many fail assertion
      
      * chore: use XSWarn()
      5d6ad649
  16. 05 5月, 2022 2 次提交
  17. 04 5月, 2022 2 次提交
  18. 29 4月, 2022 1 次提交
  19. 28 4月, 2022 1 次提交
    • Y
      core,rob: support the WFI instruction · b6900d94
      Yinan Xu 提交于
      The RISC-V WFI instruction is previously decoded as NOP. This commit
      adds support for the real wait-for-interrupt (WFI).
      
      We add a state_wfi FSM in the ROB. After WFI leaves the ROB, the next
      instruction will wait in the ROB until an interrupt.
      b6900d94
  20. 25 4月, 2022 2 次提交
  21. 14 4月, 2022 1 次提交
    • L
      mmu.l2tlb: divide missqueue into 'missqueue' and llptw (#1522) · 92e3bfef
      Lemover 提交于
      old missqueue: cache req miss slot and mem access-er
      Problem: these two func are totally different, make mq hard to handle in a single select policy.
      Solution: divide these two funciton into two module.
        new MissQueue: only hold reqs that page cache miss and need re-req cache, a simple flushable queue
        llptw: Last level ptw, only access ptes, priorityMux queue
      
      * mmu: rename PTW.scala to L2TLB.scala
      
      * mmu: rename PTW to L2TLB
      
      * mmu: rename PtwFsm to PTW
      
      * mmu.l2tlb: divide missqueue into 'missqueue' and llptw
      
      old missqueue: cache req miss slot and mem access-er
      Problem: these two func are totally different, make mq hard to handle
        in single select policy.
      Solution: divide these two funciton into two module.
        new MissQueue: only hold reqs that page cache miss and new re-req
        cache
        llptw: Last level ptw, only access ptes
      
      * mmu.l2tlb: syntax bug that misses io assign
      
      * mmu.l2tlb: fix bug that mistakes ptw's block signal
      92e3bfef
  22. 02 4月, 2022 1 次提交
    • W
      mem: reduce refill to use latency (#1401) · 09203307
      William Wang 提交于
      * mem: optimize missq reject to lq timing
      
      DCache replay request is quite slow to generate, as it need to compare
      load address with address in all valid miss queue entries.
      
      Now we delay the usage of replay request from data cache.
      Now replay request will not influence normal execuation flow until
      load_s3 (1 cycle after load_s2, load result writeback to RS).
      
      It is worth mentioning that "select refilling inst for load
      writeback" will be disabled if dcacheRequireReplay in the
      last cycle.
      
      * dcache: compare probe block addr instead of full addr
      
      * mem: do not replay from RS when ldld vio or fwd failed
      
      ld-ld violation or forward failure will let an normal load inst replay
      from fetch. If TLB hit and ld-ld violation / forward failure happens,
      we write back that inst immediately. Meanwhile, such insts will not be
      replayed from rs.
      
      It should fix "mem: optimize missq reject to lq timing"
      
      * mem: fix replay from rs condition
      
      * mem: reduce refill to use latency
      
      This commit update lq entry flag carefully in load_s3 to avoid extra
      refill delay. It will remove the extra refill delay introduced by #1375
      without harming memblock timing.
      
      In #1375, we delayed load refill when dcache miss queue entry fails
      to accept a miss. #1375 exchanges performance for better timing.
      
      * mem: fix rs feedback priority
      
      When dataInvalid && mshrFull, a succeed refill should not cancel
      rs replay.
      09203307
  23. 01 4月, 2022 1 次提交
    • L
      l2tlb.cache: store invalid entries(only super entries) into sp to avoid mem access waste (#1518) · 8d8ac704
      Lemover 提交于
      Corner Case that makes l2tlb's performance decrease sharply:
      core may have mis-speculative memory access, which may cause tlb-miss and ptw req to l2tlb.
      In l2tlb, the reqs may still miss and even have invalid pte that won't be stored in l2tlb.cache.
      If the relative ptes are invalid, these reqs will be held by miss queue and wait for page walker performing
      page table walk one by one. It's too slow and will raise time out assert in l2tlb.missqueue.
      
      Solution:
      store invalid entries(only super entries) into sp.
      Bad news is that sp only has16 entries, so invaid entries will pollute sp as well.
      Good news is that the invalid reqs are always in same super page, so only one entries is mostly enough.
      
      * l2tlb.cache: sp entries now handles invalid entries
      
      * l2tlb.cache: fix syntax error, forgot assgin some signals
      8d8ac704
  24. 31 3月, 2022 1 次提交
  25. 30 3月, 2022 1 次提交
  26. 28 3月, 2022 1 次提交
  27. 27 3月, 2022 1 次提交
  28. 23 3月, 2022 2 次提交