1. 04 6月, 2021 1 次提交
  2. 12 5月, 2021 1 次提交
    • W
      Configs: update MinimalConfig for FPGA (#809) · 05f23f57
      William Wang 提交于
      * Configs: add MinimalFPGAConfig
      
      * TODO: change cache parameters
      
      * Chore: add parameter print
      
      * README: add simulation usage
      
      Currently, XiangShan does not support NOOP FPGA. FPGA related
      instructions are removed
      
      * Configs: limit frontend width in MinimalConfig
      
      * MinimalConfig: limit L1/L2 cache size
      
      * MinimalConfig: limit ptw size, disable L2
      
      * MinimalConfig: limit L3 size
      
      * Sbuffer: force trigger write if sbuffer fulls
      05f23f57
  3. 11 5月, 2021 1 次提交
    • W
      backend,mem: add Store Sets memory dependence predictor (#796) · de169c67
      William Wang 提交于
      * LoadQueue: send stFtqIdx via rollback request
      
      * It will make it possible for setore set to update its SSIT
      
      * StoreSet: setup store set update req
      
      * StoreSet: add store set identifier table (SSIT)
      
      * StoreSet: add last fetched store table (LFST)
      
      * StoreSet: put SSIT into decode stage
      
      * StoreSet: put LFST into dispatch1
      
      * Future work: optimize timing
      
      * RS: store rs now supports delayed issue
      
      * StoreSet: add perf counter
      
      * StoreSet: fix SSIT update logic
      
      * StoreSet: delay LFST update input for 1 cycle
      
      * StoreSet: fix LFST update logic
      
      * StoreSet: fix LFST raddr width
      
      * StoreSet: do not force store in ss issue in order
      
      Classic store set requires store in the same store set issue in seq.
      However, in current micro-architecture, such restrict will lead to
      severe perf lost. We choose to disable it until we find another way
      to fix it.
      
      * StoreSet: support ooo store in the same store set
      
      * StoreSet: fix store set merge logic
      
      * StoreSet: check earlier store when read LFST
      
      * If store-load pair is in the same dispatch bundle, loadWaitBit should
      also be set for load
      
      * StoreSet: increase default SSIT flush period
      
      * StoreSet: fix LFST read logic
      
      * Fix commit c0e541d1
      
      * StoreSet: add StoreSetEnable parameter
      
      * RSFeedback: add source type
      
      * StoreQueue: split store addr and store data
      
      * StoreQueue: update ls forward logic
      
      * Now it supports splited addr and data
      
      * Chore: force assign name for load/store unit
      
      * RS: add rs'support for store a-d split
      
      * StoreQueue: fix stlf logic
      
      * StoreQueue: fix addr wb sq update logic
      
      * AtomicsUnit: support splited a/d
      
      * Parameters: disable store set by default
      
      * WaitTable: wait table will not cause store delay
      
      * WaitTable: recover default reset period to 2^17
      
      * Fix dev-stad merge conflict
      
      * StoreSet: enable storeset
      
      * RS: disable store rs delay logic
      
      CI perf shows that current delay logic will cause perf loss. Disable
      unnecessary delay logic will help.
      
      To be more specific, `io.readyVec` caused the problem. It will be
      updated in future commits.
      
      * RS: opt select logic with load delay (ldWait)
      
      * StoreSet: disable 2-bit lwt
      Co-authored-by: NZhangZifei <zhangzifei20z@ict.ac.cn>
      de169c67
  4. 30 4月, 2021 1 次提交
    • W
      MemBlock: split store addr and store data (#781) · 1b7adedc
      William Wang 提交于
      * RSFeedback: add source type
      
      * StoreQueue: split store addr and store data
      
      * StoreQueue: update ls forward logic
      
      * Now it supports splited addr and data
      
      * Chore: force assign name for load/store unit
      
      * RS: add rs'support for store a-d split
      
      * StoreQueue: fix stlf logic
      
      * StoreQueue: fix addr wb sq update logic
      
      * AtomicsUnit: support splited a/d
      
      * StoreQueue: add sbuffer enq condition assertion
      
      Store data op (std) may still be invalid after store addr op's (sta)
      commitment, so datavalid needs to be checked before commiting
      store data to sbuffer
      
      Note that at current commit a non-completed std op for a
      commited store may exist. We should make sure that uop
      will not be cancelled by a latter branch mispredict. More work
      to be done!
      
      * Roq: add std/sta split writeback logic
      
      Now store will commit only if both sta & std have been writebacked
      Co-authored-by: NZhangZifei <zhangzifei20z@ict.ac.cn>
      1b7adedc
  5. 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
  6. 05 4月, 2021 1 次提交
  7. 31 3月, 2021 1 次提交
  8. 25 3月, 2021 2 次提交
    • 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
    • W
      Perf: add queue perf analysis utility (#714) · e90e2687
      wakafa 提交于
      * perf: set acc arg of XSPerf as false by default
      
      * perf: add write-port competition counter for intBlock & floatBlock
      
      * perf: remove prefix of perf signal
      
      * perf: add perf-cnt for interface between frontend & backend
      
      * perf: modify perf-cnt for prefetchers
      
      * Ftq: bypass 'commit state' to fix dequeue bug
      
      * perf: uptimize perf-cnt in ctrlblock & ftq
      
      * perf: fix compilation problem in ftq
      
      * perf: remove duplicate perf-cnt
      
      * perf: calcu extra walk cycle exceeding frontend flush bubble
      
      * Revert "perf: calcu extra walk cycle exceeding frontend flush bubble"
      
      This reverts commit 2c30e9896b6af93a34e2d8d78055d810ebd0ac70.
      
      * perf: add perf-cnt for ifu
      
      * perf: add perf-cnt for rs
      
      * RS: optimize numExist signal
      
      * RS: fix some typo
      
      * perf: add QueuePerf util to monitor usage info of queues
      
      * perf: remove some duprecate perfcnt
      e90e2687
  9. 08 3月, 2021 1 次提交
  10. 28 2月, 2021 1 次提交
    • W
      Perf: add more performance counter (#607) · 0be64786
      wakafa 提交于
      * perf: set acc arg of XSPerf as false by default
      
      * perf: add write-port competition counter for intBlock & floatBlock
      
      * perf: remove prefix of perf signal
      
      * perf: add perf-cnt for interface between frontend & backend
      
      * perf: modify perf-cnt for prefetchers
      0be64786
  11. 26 2月, 2021 2 次提交
  12. 23 2月, 2021 2 次提交
  13. 21 2月, 2021 1 次提交
  14. 20 2月, 2021 2 次提交
  15. 05 2月, 2021 1 次提交
  16. 02 2月, 2021 3 次提交
  17. 31 1月, 2021 6 次提交
  18. 29 1月, 2021 1 次提交
  19. 28 1月, 2021 1 次提交
  20. 27 1月, 2021 2 次提交
  21. 26 1月, 2021 2 次提交
  22. 25 1月, 2021 5 次提交
  23. 24 1月, 2021 1 次提交