1. 26 11月, 2021 4 次提交
    • L
      bpu: timing optimizations · ab890bfe
      Lingrui98 提交于
      * use one hot muxes for ftb read resp
      * generate branch history shift one hot vec for history update src sel
        and update for all possible shift values
      ab890bfe
    • Y
      decode,fusion: optimize detection logic for addw and logic ops (#1262) · 6535afbb
      Yinan Xu 提交于
      This commit optimizes instruction fusion detection logic for fused
      addw{byte, bit, zexth, sexth}, mulw7, and logic{lsb, zexth}
      instructions.
      
      Previously we use fuType and fuOpType from the normal decoder, and this
      incurs a bad timing. Now we change the detection logic to use only the
      raw instructions. Though the fused instruction still uses the
      fuOpType from the normal decoder, there should be only serveral MUXes
      left.
      6535afbb
    • Y
      refCounter: optimize timing for freeRegs (#1255) · 459d1cae
      Yinan Xu 提交于
      This commit changes how isFreed is calculated. Instead of using
      refCounter in the next, we compute it at this cycle and RegNext it.
      459d1cae
    • L
      bpu: timing optimizations · 1ccea249
      Lingrui98 提交于
      * decouple fall through address calculating logic from the pftAddr interface
      * let ghr update from s1 has the highest priority
      * fix the physical priority of PhyPriorityMuxGenerator
      1ccea249
  2. 25 11月, 2021 1 次提交
  3. 24 11月, 2021 2 次提交
  4. 23 11月, 2021 2 次提交
    • W
      mem,mdp: use robIdx instead of sqIdx (#1242) · 980c1bc3
      William Wang 提交于
      * mdp: implement SSIT with sram
      
      * mdp: use robIdx instead of sqIdx
      
      Dispatch refactor moves lsq enq to dispatch2, as a result, mdp can not
      get correct sqIdx in dispatch. Unlike robIdx, it is hard to maintain a
      "speculatively assigned" sqIdx, as it is hard to track store insts in
      dispatch queue. Yet we can still use "speculatively assigned" robIdx
      for memory dependency predictor.
      
      For now, memory dependency predictor uses "speculatively assigned"
      robIdx to track inflight store.
      
      However, sqIdx is still used to track those store which's addr is valid
      but data it not valid. When load insts try to get forward data from
      those store, load insts will get that store's sqIdx and wait in RS.
      They will not waken until store data with that sqIdx is issued.
      
      * mdp: add track robIdx recover logic
      980c1bc3
    • Y
      rs: fix counter for not-selected entries (#1251) · 0e1ce320
      Yinan Xu 提交于
      0e1ce320
  5. 21 11月, 2021 1 次提交
  6. 18 11月, 2021 4 次提交
  7. 17 11月, 2021 1 次提交
  8. 16 11月, 2021 4 次提交
  9. 15 11月, 2021 5 次提交
  10. 14 11月, 2021 2 次提交
  11. 13 11月, 2021 3 次提交
    • L
      bpu: fix folded history bugs · b9e1a5f8
      Lingrui98 提交于
      * fix a bug of wrongly discarding some new bits to be xored
      * ghr should be longer in default config to avoid falsely overriding
      * move TageBanks to top, and fix SC folded history config
      b9e1a5f8
    • F
      FDivSqrt: replace hardfloat by fudian (#1224) · 066ac8a4
      Fawang Zhang 提交于
      * FDivSqrt: replace hardfloat by fudian
      
      * use pipeline branch for fudian
      066ac8a4
    • L
      bpu: fix folded history bugs · e992912c
      Lingrui98 提交于
      * fix a bug of wrongly discarding some new bits to be xored
      * ghr should be longer in default config to avoid falsely overriding
      * move TageBanks to top, and fix SC folded history config
      e992912c
  12. 12 11月, 2021 10 次提交
  13. 11 11月, 2021 1 次提交