1. 29 12月, 2021 2 次提交
    • Y
      dispatch: block enq when previous instructions have exception (#1400) · 3a6db8a3
      Yinan Xu 提交于
      This commit adds blocking logic for instructions when they enter
      dispatch queues. If previous instructions have exceptions, any
      following instructions should be enter dispatch queue.
      
      Consider the following case. If uop(0) has an exception and is a load.
      If uop(1) does not have an exception and is a load as well. Then the
      allocation logic in dispatch queue will allocate an entry for both
      uop(0) and uop(1). However, uop(0) will not set enq.valid and leave
      the entry in dispatch queue empty. uop(1) will be allocated in dpq.
      In dispatch queue, pointers are updated according to the real number
      of instruction enqueue, which is one. While the second is actually
      allocated. This causes errors.
      3a6db8a3
    • W
      bump huancun (#1402) · 95a04c59
      wakafa 提交于
      * bump huancun
      
      * Fix probe BtoB
      Co-authored-by: NLinJiawei <linjiawei20s@ict.ac.cn>
      95a04c59
  2. 28 12月, 2021 1 次提交
    • W
      mem: refactor l1 error implementation (#1391) · 9ef181f4
      William Wang 提交于
      * dcache: add source info in L1CacheErrorInfo
      
      * ICache: fix valid signal and add source/opType
      
      * dcache: fix bug in ecc error
      
      * mem,csr: send full L1CacheErrorInfo to CSR
      
      * icache: provide cache error info for CSR
      
      * dcache: force resp hit if tag ecc error happens
      
      * mem: reorg l1 cache error report path
      
      Now dcache tag error will force trigger a hit
      
      * dcache: fix readline ecc check error
      
      * dcache: mainpipe will not be influenced by tag error
      
      * dcache: fix data ecc check error
      
      * dcache: if coh state is Nothing, do not raise error
      Co-authored-by: Nzhanglinjuan <zhanglinjuan20s@ict.ac.cn>
      Co-authored-by: NJinYue <jinyue20s@ict.ac.cn>
      9ef181f4
  3. 27 12月, 2021 3 次提交
  4. 26 12月, 2021 3 次提交
  5. 25 12月, 2021 1 次提交
    • W
      mem: fix ld-ld violation writeback priority (#1393) · 46fe3272
      William Wang 提交于
      If s2_data_invalid and s2_ldld_violation happens together, enter
      s2_ldld_violation workflow.
      
      Note:
      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.
      46fe3272
  6. 24 12月, 2021 2 次提交
  7. 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
  8. 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
  9. 21 12月, 2021 7 次提交
  10. 20 12月, 2021 7 次提交
  11. 18 12月, 2021 1 次提交
  12. 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
  13. 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
  14. 15 12月, 2021 3 次提交