1. 10 7月, 2022 1 次提交
    • Y
      core: optimize redirect timing (#1630) · 0dc4893d
      Yinan Xu 提交于
      This commit adds separated redirect registers in ExuBlock and MemBlock.
      They have one cycle latency compared to redirect in CtrlBlock. This will
      help reduce the fanout of redirect registers.
      0dc4893d
  2. 25 6月, 2022 1 次提交
    • Y
      freelist: optimize timing of read and writing (#1593) · 5ef86c38
      Yinan Xu 提交于
      This commit optimizes the timing of freelist by changing the updating
      function of headPtr and tailPtr.
      
      We maintains an one-hot representation of headPtr and further uses it to
      read the free registers from the list, which should be better than the
      previous implementation where headPtr is used to indexed into the queue.
      
      The update of tailPtr and the freelist is delayed by one cycle to
      optimize the timing. Because freelist allocates new registers in the
      next cycle iff there are more than RenameWidth free registers in this
      cycle. The freed registers in this cycle will never be used in the next
      cycle. Thus, we can delay the updating of queue data to the next cycle.
      We also move the update of tailPtr to the next cycle, since PopCount
      takes a long timing and we move the last adder to the next cycle. Now
      the adder works parallely with PopCount. That is, the updating of
      tailPtr is pipelined.
      5ef86c38
  3. 06 5月, 2022 1 次提交
    • H
      feat: parameterize load store (#1527) · 46f74b57
      Haojin Tang 提交于
      * feat: parameterize load/store pipeline, etc.
      
      * fix: use LoadPipelineWidth rather than LoadQueueSize
      
      * fix: parameterize `rdataPtrExtNext`
      
      * SBuffer: fix idx update logic
      
      * atomic: parameterize atomic logic in `MemBlock`
      
      * StoreQueue: update allow enque requirement
      
      * feat: support one load/store pipeline
      
      * feat: parameterize `EnsbufferWidth`
      
      * chore: resharp codes for better generated name
      46f74b57
  4. 21 12月, 2021 1 次提交
  5. 22 10月, 2021 1 次提交
    • W
      Add ld-ld violation check (#1140) · 67682d05
      William Wang 提交于
      * mem: support ld-ld violation check
      * mem: do not fast wakeup if ld vio check failed
      * mem: disable ld-ld vio check after core reset
      67682d05
  6. 19 9月, 2021 1 次提交
    • Y
      backend,rs: load balance for issue selection (#1048) · 7bb7bf3d
      Yinan Xu 提交于
      This commit adds load balance strategy in issue selection logic for
      reservation stations.
      
      Previously we have a load balance option in ExuBlock, but it cannot work
      if the function units have feedbacks to RS. In this commit it is
      removed.
      
      This commit adds a victim index option for oldestFirst. For LOAD, the
      first issue port has better performance and thus we set the victim index
      to 0. For other function units, we use the last issue port.
      7bb7bf3d
  7. 05 9月, 2021 1 次提交
    • Y
      utils,MaskData: assert wmask is wider than data (#1001) · 5dabf2df
      Yinan Xu 提交于
      This commit adds assertion in MaskData to check the width of mask
      and data. When the width of mask is smaller than the width of data,
      (~mask & data) and (mask & data) will always clear the upper bits
      of the data. This usually causes unexpected behavior.
      
      This commit adds explicit width declarations where MaskData is used.
      5dabf2df
  8. 24 7月, 2021 1 次提交
  9. 17 7月, 2021 1 次提交
    • Y
      backend: optimize dispatch and issue timing (#821) · 9780a9f0
      Yinan Xu 提交于
      * better select policy timing
      * unified RS enqueue ports for 4 ALUs
      * wrap imm extractor into a module
      * backend,rs: wrap dataArray in RawDataModuleTemplate
      * should only bypass data between the same addr when allocate.valid
      9780a9f0
  10. 08 7月, 2021 1 次提交
    • Y
      backend: optimize dispatch and issue timing (#821) · c84ff7ef
      Yinan Xu 提交于
      * better select policy timing
      * unified RS enqueue ports for 4 ALUs
      * wrap imm extractor into a module
      * backend,rs: wrap dataArray in RawDataModuleTemplate
      * should only bypass data between the same addr when allocate.valid
      c84ff7ef
  11. 04 6月, 2021 1 次提交
  12. 11 3月, 2021 1 次提交
  13. 28 2月, 2021 1 次提交
    • W
      Add a naive memory violation predictor (#591) · 2b8b2e7a
      William Wang 提交于
      * WaitTable: add waittable framework
      
      * WaitTable: get replay info from RedirectGenerator
      
      * StoreQueue: maintain issuePtr for load rs
      
      * RS: add loadWait to rs (only for load Unit's rs)
      
      * WaitTable: fix update logic
      
      * StoreQueue: fix issuePtr update logic
      
      * chore: set loadWaitBit in ibuffer
      
      * StoreQueue: fix issuePtrExt update logic
      
      Former logic does not work well with mmio logic
      
      We may also make sure that issuePtrExt is not before cmtPtrExt
      
      * WaitTable: write with priority
      
      * StoreQueue: fix issuePtrExt update logic for mmio
      
      * chore: fix typos
      
      * CSR: add slvpredctrl
      
      * slvpredctrl will control load violation predict micro architecture
      
      * WaitTable: use xor folded pc to index waittable
      Co-authored-by: NZhangZifei <1773908404@qq.com>
      2b8b2e7a
  14. 28 1月, 2021 1 次提交
  15. 24 1月, 2021 1 次提交
  16. 12 12月, 2020 1 次提交
  17. 11 12月, 2020 1 次提交
  18. 22 11月, 2020 2 次提交
  19. 16 9月, 2020 1 次提交
  20. 07 9月, 2020 1 次提交
  21. 30 7月, 2020 1 次提交
  22. 24 7月, 2020 1 次提交
  23. 16 7月, 2020 1 次提交
  24. 14 7月, 2020 2 次提交
  25. 04 10月, 2019 1 次提交
  26. 03 10月, 2019 2 次提交
  27. 26 9月, 2019 1 次提交
  28. 19 9月, 2019 2 次提交
  29. 25 8月, 2019 1 次提交