1. 22 8月, 2021 2 次提交
    • Y
      backend, rs: add a maximum dequeue width (default 2) (#935) · ba8c0d5e
      Yinan Xu 提交于
      This commit limits dequeue width of every RS to 2 for better timing.
      ba8c0d5e
    • L
      l0tlb: add a new level tlb to each mem pipeline (#936) · 5aae5b8d
      Lemover 提交于
      * Miniconfig: change dtlb size to 32 at minimal config
      
      * mmu.dtlb: change tlb's replacement access code style
      
      dtlb now can support plru (functionaly).
      plru with multi-access is chained, so there will be long latency
        for dtlb to use plru.
      
      * mmu.tlb: add tlb at new level named btlb
      
      bridge tlb:
      one l0-tlb in each mem pipeline
      all the l0-tlb connect to bridge tlb
      btlb connects to l2tlb, so btlb is also l1-tlb
      itlb remains the same
      
      * mmu.tlb: set tlb size: l0-8, l1-64
      
      * mmu.btlb: add sfence logic
      
      * mmu.tlb: fix bug of sfence logic of g bit
      
      * mmu.btlb: add some perf counter
      
      * mmu.btlb: fix bug of random replace
      
      * mmu.filter: add port vector to record which ports the reqs come from
      
      * mmu.btlb: add some perf counter && add refill mask
      
      * mmu.filter: add check for flushed req
      5aae5b8d
  2. 21 8月, 2021 4 次提交
    • L
      difftest: disable jtag remote bitbang server as default (#938) · 096d1aa8
      lqre 提交于
      * Use difftest version that auto diables jtag rbb server
      
      Use newer difftest version so that jtag remote bitbang server is automatically disabled. Use --enable-jtag to enable.
      096d1aa8
    • Y
      backend: separate store address and data (#921) · 85b4cd54
      Yinan Xu 提交于
      This commit separates store address and store data in backend, including both reservation stations and function units. This commit also changes how stIssuePtr is updated. stIssuePtr should only be updated when both store data and address issue. 
      85b4cd54
    • L
      mmu.l2tlb: cut down l2tlb.l2 size to 256 and set l2tlb.l3 way to 8, keep l3's size (#927) · 149086ea
      Lemover 提交于
      * Miniconfig: change dtlb size to 32 at minimal config
      
      * mmu.dtlb: change tlb's replacement access code style
      
      dtlb now can support plru (functionaly).
      plru with multi-access is chained, so there will be long latency
        for dtlb to use plru.
      
      * mmu.l2tlb: cut down l2tlb.l2 to 256 and set l3.way to 8
      
      * mmu.l2tlb: cut down l2tlb.l3 to 2048 from 4096
      
      * Revert "mmu.l2tlb: cut down l2tlb.l3 to 2048 from 4096"
      
      This reverts commit efbb077ef4be1d4e585a49537ba9be3144423b52.
      149086ea
    • Y
      backend, rename: support move elimination (#920) · 8b8e745d
      YikeZhou 提交于
      * Bundle, Rename: Add some comments
      FreeList, RenameTable: Comment out unused variables
      
      * refcnt: Implement AdderTree for reference counter
      
      * build.sc: add testOne method for unit test
      
      * AdderTest: add testbench for Adder (passed)
      
      * AdderTree: Add testbench for AdderTree (passed)
      
      * ReferenceCounter: implement a 2-bit counter
      
      * Rename: remove redundant code
      
      * Rename: prepared for move elimination [WIP]
      
      * Roq: add eliminated move bit in roq entry;
        label elim move inst as writebacked
      AlternativeFreeList: new impl for int free list
      Rename: change io of free list
      Dispatch1: (todo) not send move to intDq
      Bundle: add eliminatedMove bit in roqCommitInfo, uop and debugio
      ReferenceCounter: add debug print msg
      
      * Dispatch1: [BUG FIX] not send move inst to IntDq
      
      * DecodeUnit: [BUG FIX] differentiate li from mv
      
      * Bug fix:
        1. Dispatch1: should not label pdest of move as busy in busy table
        2. Rename: use psrc0 to index bit vec isMax
        3. AlternativeFreeList: fix maxVec calculation logic and ref counter
           increment logic
      Besides, more debug info and assertions were added.
      
      * AlternativeFreeList Bug Fix:
        1. add redirect input - shouldn't allocate reg when redirect is
           valid
        2. handle duplicate preg in roqCommits in int free list
      
      * AlternativeFreeList: Fix value assignment race condition
      
      * Rename: Fix value assignment race condition too
      
      * RenameTable: refactor spec/arch table write process
      
      * Roq: Fix debug_exuData of move(addi) instruction
        (it was trash data before because move needn't enter exu)
      
      * Rename: change intFreeList's redirect process
        (by setting headPtr back) and flush process
      
      * ME: microbench & coremark & linux-hello passed
        1. DecodeUnit: treat `mv x,x` inst as non-move
        2. AlternativeFreeList: handle duplicate walk req correctly
        3. Roq: fix debug_exuData bug (make sure writeback that updates
      debug_exuData happens before ME instruction in program order)
      
      * AlternativeFreeList: License added
      build.sc: remove unused config
      Others: comments added
      
      * package rename: remove unused modules
      
      * Roq: Replace debug_prf with a cleaner fix method
      
      * Disp1/AltFL/Rename: del unnecessary white spaces
      
      * build.sc: change stack size
      AlternativeFreeList: turn off assertions
      
      * build.sc: change stack size for test
      8b8e745d
  3. 20 8月, 2021 1 次提交
  4. 19 8月, 2021 3 次提交
  5. 17 8月, 2021 2 次提交
  6. 08 8月, 2021 1 次提交
  7. 06 8月, 2021 2 次提交
  8. 05 8月, 2021 3 次提交
    • W
      Merge pull request #908 from OpenXiangShan/fix-mmio-cmt · c8a06dff
      William Wang 提交于
      mem,sq: don't set commited flag when mmio commits
      c8a06dff
    • W
      mem,sq: replace !hasInflightMMIO flag with s_idle · 248b2726
      William Wang 提交于
      248b2726
    • Y
      mem,sq: don't set commited flag when mmio commits · 568e7b25
      Yinan Xu 提交于
      For simplicity, we increase cmtPtr and set commited flags when
      store instructions commit from ROB. However, this causes problems
      when there's an MMIO at the head and new instructions enqueue after
      the MMIO finishes but before the MMIO commits.
      
      For example, at cycle T0 mmio store instruction with sqPtr p0
      finishes and deqPtr is increased. At cycle T1, a new store
      instruction enqueues and the p0 is allocated for this new instruction.
      At cycle T2, the mmio instruction commits from ROB. With cmtPtr,
      p0 is set to commited. However, since p0 is allocated to the new
      store instruction, the commited flag should be false.
      
      The example causes at least two issues. (1) when redirect happens, p0
      will not be flushed. (2) p0 will be commit to sbuffer before p0
      writes back to store queue.
      
      In this commit, we change how commited flag works. We add a
      `hasInflightMMIO` flag. When store instructions commit, we only
      set commited flag when `hasInflightMMIO` is not set.
      568e7b25
  9. 04 8月, 2021 1 次提交
  10. 29 7月, 2021 1 次提交
  11. 28 7月, 2021 3 次提交
  12. 25 7月, 2021 1 次提交
  13. 24 7月, 2021 3 次提交
  14. 19 7月, 2021 1 次提交
  15. 18 7月, 2021 2 次提交
  16. 17 7月, 2021 1 次提交
    • L
      mstatus.tvm: add tvm check for satp access and sfence.vma (#885) · b37cea47
      Lemover 提交于
      * CSR: add csr access check for mstatus.tvm
      
      tvm: trap virtual Memory.
      when tvm is set, r/w the satp in S-mode will raise illegal-instr
      
      * Fence: add tvm check that may disallow sfence
      
      when tvm is set and at s-mode, sfence.vma will raise illegal-instr
      b37cea47
  17. 16 7月, 2021 2 次提交
  18. 14 7月, 2021 2 次提交
  19. 12 7月, 2021 1 次提交
  20. 11 7月, 2021 1 次提交
    • L
      ptw: update PTWRepeater to support multi-port by RRArbiter (#874) · 5d64f936
      Lemover 提交于
      * PTW: Repeater support multi req by RRArbiter
      
      * ptw: add parameter to choose repeater and filter(default)
      
      simple ci test show that: the filter is critical for perf
      like mcf(5m):
        old ptw:2.38
        new ptw with repeater: 2.41
        new ptw with filter: 2.58
      5d64f936
  21. 08 7月, 2021 2 次提交
  22. 07 7月, 2021 1 次提交