1. 06 9月, 2021 1 次提交
  2. 02 9月, 2021 1 次提交
  3. 25 8月, 2021 2 次提交
  4. 23 8月, 2021 1 次提交
  5. 22 8月, 2021 2 次提交
    • Y
      rename: [refactor] move free list into 'freelist' package · 39d3280e
      YikeZhou 提交于
              "trait" was used to improve code style
      parameters: use EnableIntMoveElim to control code generation
      [WIP] EnableIntMoveElim=false hasn't been tested
      39d3280e
    • Y
      backend, rename: performance bug fixed in move elimination process (#934) · d3975bec
      YikeZhou 提交于
      * Rename: add perf counter for move elimination
      [NOTE] There are three reasons why one ME is cancelled:
        1. counter reaching max value
        2. RAW dependency with former instruction
        3. 2 move instruction with same psrc in 1 cycle
      
      * Rename: add debug log + fix perf bug for move elim cancelation
      
      * AlternativeFreeList: parameterize width of counter
      
      * Rename:[bug fix] RAW conflict in meEnable decision
      (suppose former inst=i while latter inst=j, i does
      not have to be move instruction)
      d3975bec
  6. 21 8月, 2021 1 次提交
    • 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
  7. 24 7月, 2021 1 次提交
  8. 04 6月, 2021 1 次提交
  9. 01 5月, 2021 1 次提交
  10. 19 4月, 2021 1 次提交
    • J
      Refactor parameters, SimTop and difftest (#753) · 2225d46e
      Jiawei Lin 提交于
      * difftest: use DPI-C to refactor difftest
      
      In this commit, difftest is refactored with DPI-C calls.
      There're a few reasons:
      (1) From Verilator's manual, DPI-C calls should be more efficient than accessing from dut_ptr.
      (2) DPI-C is cross-platform (Verilator, VCS, ...)
      (3) difftest APIs are splited from emu.cpp to possibly support more backend platforms
      (NEMU, Spike, ...)
      
      The performance at this commit is quite slower than the original emu.
      Performance issues will be fixed later.
      
      * [WIP] SimTop: try to use 'XSTop' as soc
      
      * CircularQueuePtr: ues F-bounded polymorphis instead implict helper
      
      * Refactor parameters & Clean up code
      
      * difftest: support basic difftest
      
      * Support diffetst in new sim top
      
      * Difftest; convert recode fmt to ieee754 when comparing fp regs
      
      * Difftest: pass sign-ext pc to dpic functions && fix exception pc
      
      * Debug: add int/exc inst wb to debug queue
      
      * Difftest: pass sign-ext pc to dpic functions && fix exception pc
      
      * Difftest: fix naive commit num limit
      Co-authored-by: NYinan Xu <xuyinan1997@gmail.com>
      Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
      2225d46e
  11. 25 3月, 2021 1 次提交
    • A
      Refactor XSPerf, now we have three XSPerf Functions. · 408a32b7
      Allen 提交于
      XSPerfAccumulate: sum up performance values.
      XSPerfHistogram: count the occurrence of performance values, split them
      into bins, so that we can estimate their distribution.
      XSPerfMax: get max of performance values.
      408a32b7
  12. 11 3月, 2021 1 次提交
    • Y
      Add support for a simple version of move elimination (#682) · aac4464e
      Yinan Xu 提交于
      In this commit, we add support for a simpler version of move elimination.
      
      The original instruction sequences are:
      move r1, r0
      add r2, r1, r3
      
      The optimized sequnces are:
      move pr1, pr0
      add pr2, pr0, pr3 # instead of add pr2, pr1, pr3
      
      In this way, add can be issued once r0 is ready and move seems to be eliminated.
      aac4464e
  13. 08 3月, 2021 1 次提交
  14. 23 2月, 2021 1 次提交
  15. 26 1月, 2021 1 次提交
  16. 25 1月, 2021 1 次提交
  17. 21 1月, 2021 1 次提交
  18. 31 12月, 2020 1 次提交
  19. 21 12月, 2020 1 次提交
  20. 14 12月, 2020 1 次提交
  21. 13 12月, 2020 2 次提交
  22. 12 12月, 2020 2 次提交
  23. 10 12月, 2020 1 次提交
  24. 09 12月, 2020 1 次提交
  25. 30 11月, 2020 1 次提交
    • Y
      rename: don't bypass preg and leave it to dispatch1 · 99b8dc2c
      Yinan Xu 提交于
      Rename now provides vectors indicating whether there're matches between lsrc1/lsrc2/lsrc3/ldest
      and previous instructions' ldest. Dispatch1 updates uops' psrc1/psrc2/psrc3/old_pdest with
      previous instructions pdest. This method optimizes rename' timing.
      99b8dc2c
  26. 27 11月, 2020 1 次提交
  27. 18 11月, 2020 1 次提交
  28. 26 10月, 2020 2 次提交
  29. 25 10月, 2020 1 次提交
  30. 23 10月, 2020 1 次提交
  31. 20 10月, 2020 1 次提交
  32. 19 10月, 2020 1 次提交
  33. 17 9月, 2020 1 次提交
  34. 05 9月, 2020 1 次提交
  35. 07 8月, 2020 1 次提交