1. 06 9月, 2021 1 次提交
  2. 05 9月, 2021 4 次提交
  3. 04 9月, 2021 2 次提交
  4. 03 9月, 2021 4 次提交
  5. 02 9月, 2021 7 次提交
    • L
      l0tlb: add a new level tlb, a load tlb and a store tlb (#961) · a0301c0d
      Lemover 提交于
      * Revert "Revert "l0tlb: add a new level tlb to each mem pipeline (#936)" (#945)"
      
      This reverts commit b052b972.
      
      * fu: remove unused import
      
      * mmu.tlb: 2 load/store pipeline has 1 dtlb
      
      * mmu: remove btlb, the l1-tlb
      
      * mmu: set split-tlb to 32 to check perf effect
      
      * mmu: wrap tlb's param with TLBParameters
      
      * mmu: add params 'useBTlb'
      
      dtlb size is small: normal 8, super 2
      
      * mmu.tlb: add Bundle TlbEntry, simplify tlb hit logic(coding)
      
      * mmu.tlb: seperate tlb's storage, relative hit/sfence logic
      
      tlb now supports full-associate, set-associate, directive-associate.
      more: change tlb's parameter usage, change util.Random to support
      case that mod is 1.
      
      * mmu.tlb: support normalAsVictim, super(fa) -> normal(sa/da)
      
      be carefull to use tlb's parameter, only a part of param combination
      is supported
      
      * mmu.tlb: fix bug of hit method and victim write
      
      * mmu.tlb: add tlb storage's perf counter
      
      * mmu.tlb: rewrite replace part, support set or non-set
      
      * mmu.tlb: add param outReplace to receive out replace index
      
      * mmu.tlb: change param superSize to superNWays
      
      add param superNSets, which should always be 1
      
      * mmu.tlb: change some perf counter's name and change some params
      
      * mmu.tlb: fix bug of replace io bundle
      
      * mmu.tlb: remove unused signal wayIdx in tlbstorageio
      
      * mmu.tlb: separate tlb_ld/st into two 'same' tlb
      
      * mmu.tlb: when nWays is 1, replace returns 0.U
      
      before, replace will return 1.U, no influence for refill but bad
      for perf counter
      
      * mmu.tlb: give tlb_ld and tlb_st a name (in waveform)
      a0301c0d
    • W
      chore: fix frontend / memblock merge conflict · 154904ce
      William Wang 提交于
      154904ce
    • W
      Merge branch 'master' into vaddr-fwd · b9ec0501
      William Wang 提交于
      b9ec0501
    • Y
      Merge pull request #949 from OpenXiangShan/me-opt · a260c31a
      YikeZhou 提交于
      backend, rename: configurable free list & `headPtr` bug fix & `dst=0/dst=src` move inst elimination
      a260c31a
    • S
      Merge pull request #986 from OpenXiangShan/decoupled-frontend · c858a02a
      Steve Gou 提交于
      merge decoupled frontend into master
      c858a02a
    • Y
      rs,mem: support fast load-to-load wakeup and issue (#984) · 718f8a60
      Yinan Xu 提交于
      This PR adds support for fast load-to-load wakeup and issue. In load-to-load fast wakeup and issue, load-to-load latency is reduced to 2 cycles.
      
      Now a load instruction can wakeup another load instruction at LOAD stage 1. When the producer load instruction arrives at stage 2, the consumer load instruction is issued to load stage 0 and using data from the producer to generate load address.
      
      In reservation station, load can be dequeued from staged 1 when stage 2 does not have a valid instruction. If the fast load is not accepted, from the next cycle on, the load will dequeue as normal.
      
      Timing in reservation station (for imm read) and load unit (for writeback data selection) to be optimized later.
      
      * backend,rs: issue load one cycle earlier when possible
      
      This commit adds support for issuing load instructions one cycle
      earlier if the load instruction is wakeup by another load. An extra
      2-bit UInt is added to IO.
      
      * mem: add load to load addr fastpath framework
      
      * mem: enable load to load forward
      
      * mem: add load-load forward counter
      Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
      718f8a60
    • Y
      Rename: fix doAllocate logic in refactored version · 4efb89cb
      YikeZhou 提交于
      MEFreeList: remove useless code + give specified
      (instead of DontCare) value to phy reg allocated port
      4efb89cb
  6. 01 9月, 2021 13 次提交
  7. 31 8月, 2021 4 次提交
    • J
      fudian: The new floating-point lib to replace hardfloat (#975) · dc597826
      Jiawei Lin 提交于
      * Add submodule 'fudian'
      
      * IntToFP: use fudian
      
      * FMA: use fudian.CMA
      
      * FPToInt: remove recode format
      dc597826
    • L
    • Z
      Alu: optimize timing for bitmanip (#979) · 28c18878
      zfw 提交于
      * Alu: optimize timing
      
      This pull request optimizes timing by adding a 32bit adder for addw and changing the encode.
      28c18878
    • Y
      backend,exu: connect writeback when possible (#977) · dd381594
      Yinan Xu 提交于
      This commit optimizes ExuBlock timing by connecting writeback when
      possible.
      
      The timing priorities are RegNext(rs.fastUopOut) > fu.writeback >
      arbiter.out(--> io.rfWriteback --> rs.writeback). The higher priority,
      the better timing.
      
      (1) When function units have exclusive writeback ports, their
      wakeup ports for reservation stations can be connected directly from
      function units' writeback ports. Special case: when the function unit
      has fastUopOut, valid and uop should be RegNext.
      
      (2) If the reservation station has fastUopOut for all instructions
      in this exu, we should replace io.fuWriteback with RegNext(fastUopOut).
      In this case, the corresponding execution units must have exclusive
      writeback ports, unless it's impossible that rs can ensure the
      instruction is able to write the regfile.
      
      (3) If the reservation station has fastUopOut for all instructions in
      this exu, we should replace io.rfWriteback (rs.writeback) with
      RegNext(rs.wakeupOut).
      dd381594
  8. 30 8月, 2021 5 次提交