1. 24 12月, 2021 2 次提交
  2. 23 12月, 2021 1 次提交
    • J
      IPrefetch: fix prefetchPtr stop problem (#1387) · de7689fc
      Jay 提交于
      * IPrefetch: fix prefetchPtr stop problem
      
      * This problem happens because prefetchPtr still exits when close IPrefetch
      
      * Fix PMP req port still be occupied even when ICache miss
      
      * Shut down IPrefetch
      
      * IPrefetch: fix Hint not set PreferCache bit
      
      * bump HuanCun
      de7689fc
  3. 22 12月, 2021 2 次提交
    • W
      mem: optimize missq reject to lq timing (#1375) · 6b6d88e6
      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 execution flow until
      load_s3 (1 cycle after load_s2, load result writeback to RS).
      
      Note1: It is worth mentioning that "select refilling inst for load
      writeback" will be disabled if dcacheRequireReplay in the
      last cycle.
      
      Note2: 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.
      
      * dcache: compare probe block addr instead of full addr
      6b6d88e6
    • W
      ci: add cacheop test (without difftest) (#1370) · 9c297294
      William Wang 提交于
      * difftest: bump difftest to support --no-diff test
      
      * ci: add cacheoptest test (--no-diff)
      9c297294
  4. 21 12月, 2021 7 次提交
  5. 20 12月, 2021 7 次提交
  6. 18 12月, 2021 1 次提交
  7. 17 12月, 2021 3 次提交
    • L
      pmp: add static pmp check that stored in tlb entries (#1366) · 5b7ef044
      Lemover 提交于
      * memblock: regnext ptw's resp
      
      * pmp: timing optimization from tlb.sram.ppn to pmp, add static pmp check
      
      long latency: tlb's sram may be slow to gen ppn, ppn to pmp may be
      long latency.
      Solution: add static pmp check.
      
      Fatal problem: pmp grain is smalled than TLB pages(4KB, 2MB, 1GB)
      Solution: increase pmp'grain to 4K, for 4K entries, pre-check pmp and
      store the result into tlb storage. For super pages, still dynamic check
      that translation and check.
      
      * pmp: change pmp grain to 4KB, change pma relative init config
      
      * bump ready-to-run, update nemu so for pmp grain
      
      * bump ready-to-run, update nemu so for pmp grain again
      
        update pmp unit test. The old test assumes that pmp grain is less than 512bit.
      5b7ef044
    • Y
      csr: use zext pc when vm is disabled (#1361) · bd1f1bf3
      Yinan Xu 提交于
      bd1f1bf3
    • J
      Change default L3 size to 6MB (#1365) · 0fbed464
      Jiawei Lin 提交于
      * Change L3 to 6MB
      
      * Bump huancun
      0fbed464
  8. 16 12月, 2021 4 次提交
    • Y
      rename: check valid condition for lui (#1368) · 89c0fb0a
      Yinan Xu 提交于
      89c0fb0a
    • L
      Trigger: hardwire timing to 1 · ddb65c47
      Li Qianruo 提交于
      We have singlestep already so triggers do not need to hit after inst commits
      ddb65c47
    • Z
      dcache: remove redundant ecc array (#1358) · 77decb47
      zhanglinjuan 提交于
      * dcache: fix bug in ecc check
      
      * dcache: remove redundant ecc array
      
      * CacheInstruction: fix typo
      
      * dcache: fix bugs in cache instruction on ecc
      
      * MetaArray: wrap ecc array as a single module
      77decb47
    • J
      Fix false hit bug after IFU timing optimization (#1367) · a1351e5d
      Jay 提交于
      * fix invalidTakenFault use wrong seqTarget
      
      * IFU: fix oversize bug
      
      * ctrl: mark all flushes as level.flush for frontend
      
      This commit changes how flushes behave for frontend.
      
      When ROB commits an instruction with a flush, we notify the frontend
      of the flush without the commit.
      
      Flushes to frontend may be delayed by some cycles and commit before
      flush causes errors. Thus, we make all flush reasons to behave the
      same as exceptions for frontend, that is, RedirectLevel.flush.
      
      * IFU: exclude lastTaken situation when judging beyond fetch
      Co-authored-by: NYinan Xu <xuyinan@ict.ac.cn>
      a1351e5d
  9. 15 12月, 2021 4 次提交
  10. 14 12月, 2021 6 次提交
    • H
      README: fix a typo (#1357) · 6a326a79
      Haojin Tang 提交于
      6a326a79
    • Y
      difftest: move sc_valid to AtomicsUnit (#1350) · e13d224a
      Yinan Xu 提交于
      e13d224a
    • Y
      dp2: out.bits does not depend on lsq.canAccept (#1352) · 74ca315b
      Yinan Xu 提交于
      This commit optimizes Dispatch2Rs timing by ignoring lsq.canAccept
      when sending bits to reservation stations.
      74ca315b
    • J
      Optimize IFU and PreDecode timing (#1347) · 2a3050c2
      Jay 提交于
      * ICache: add ReplacePipe for Probe & Release
      
      * remove ProbeUnit
      
      * Probe & Release enter ReplacePipe
      
      * fix bugs when running Linux on MinimalConfig
      
      * TODO: set conflict for ReplacePipe
      
      * ICache: fix ReplacePipe invalid write bug
      
      * chores: code clean up
      
      * IFU: optimize timing
      
      * PreDecode: separate into 2 module for timing optimization
      
      * IBuffer: add enqEnable to replace valid for timing
      
      * IFU/ITLB: optimize timing
      
      * IFU: calculate cut_ptr in f1
      
      * TLB: send req in f1 and wait resp in f2
      
      * ICacheMainPipe: add tlb miss logic in s0
      
      * Optimize IFU timing
      
      * IFU: fix lastHalfRVI bug
      
      * IFU: fix performance bug
      
      * IFU: optimize MMIO commit timing
      
      * IFU: optmize trigger timing and add frontendTrigger
      
      * fix compile error
      
      * IFU: fix mmio stuck bug
      2a3050c2
    • Z
      dcache: fix bug in ecc check (#1349) · dd95524e
      zhanglinjuan 提交于
      dd95524e
    • Y
      csr: update mtval/stval according to the trap mode (#1344) · 7c071650
      Yinan Xu 提交于
      This commit changes the condition to update mtval and stval.
      
      According to the RISC-V spec, when a trap is taken into M/S-mode,
      mtval/stval is either set to zero or written wrih exception-specific
      information to assist software in handling the trap.
      
      Previously in XiangShan, mtval/stval is updated depending on the
      current priviledge mode, which is incorrect.
      7c071650
  11. 13 12月, 2021 3 次提交