1. 10 12月, 2021 1 次提交
  2. 09 12月, 2021 2 次提交
    • J
      ICache: send ProbeAck when Probe NToN (#1331) · 1d4a76ae
      Jay 提交于
      1d4a76ae
    • Y
      core: refactor writeback parameters (#1327) · 6ab6918f
      Yinan Xu 提交于
      This commit adds WritebackSink and WritebackSource parameters for
      multiple modules. These traits hide implementation details from
      other modules by defining IO-related functions in modules.
      
      By using WritebackSink, ROB is able to choose the writeback sources.
      Now fflags and exceptions are connected from exe units to reduce write
      ports and optimize timing.
      
      Further optimizations on write-back to RS and better coding style to
      be added later.
      6ab6918f
  3. 08 12月, 2021 4 次提交
  4. 07 12月, 2021 3 次提交
  5. 06 12月, 2021 9 次提交
  6. 05 12月, 2021 4 次提交
    • Y
      rob: add an interrupt safe flag (#1309) · e8009193
      Yinan Xu 提交于
      This commit adds an interrupt_safe flag that tracks whether an
      instruction is safe for interrupts.
      
      For example, any MMIO instruction is not safe because it changes
      the external devices before write-back.
      e8009193
    • Y
      wb,load: delay load fp for one cycle (#1296) · d6477c69
      Yinan Xu 提交于
      d6477c69
    • Y
      csr: fix write mask for mstatus, mepc and sepc (#1294) · e30fd06a
      Yinan Xu 提交于
      * csr: fix write mask for mstatus, mepc and sepc
      
      This commit fixes the write mask for mstatus, mepc and sepc.
      
      According to the RISC-V instruction manual, for RV64 systems,
      the SXL and UXL fields are WARL fields that control the value of
      XLEN for S-mode and U-mode, respectively. For RV64 systems, if
      S-mode is not supported, then SXL is hardwired to zero. For RV64
      systems, if U-mode is not supported, then UXL is hardwired to zero.
      
      Besides, mepc[0] and sepc[0] should be hardwired to zero.
      
      * bump difftest
      e30fd06a
    • J
      fix ResultHoldBypass valid condition (#1308) · ccfc2e22
      Jay 提交于
      * use toMeta.fire() will cause data miss match when toMeta.valid :=
      req.valid
      ccfc2e22
  7. 04 12月, 2021 2 次提交
  8. 03 12月, 2021 1 次提交
  9. 02 12月, 2021 4 次提交
  10. 01 12月, 2021 9 次提交
    • J
      Change L2 to 4 banks (#1256) · 59239bc9
      Jiawei Lin 提交于
      * misc: soc timing optimize
      
      * XSTile: insert buffer between L1Dcache and L2
      
      * Bump huancun
      
      * Change L2 to 4 banks
      
      * Adjust buffers
      
      * Add more buffers for peripheral port
      
      * Fix submodule version
      59239bc9
    • J
      ICacheMainPipe: fix a bug in set conflict (#1284) · 3665ef30
      Jay 提交于
      3665ef30
    • W
      dcache: optimize wbq enqueue logic for timing (#1277) · 77af2bae
      William Wang 提交于
      * sbuffer: do flush correctly while draining sbuffer
      
      * ci: enable ci for timing-memblock branch
      
      * mem: disable EnableFastForward for timing reasons
      
      * sbuffer: optimize forward mask gen timing
      
      * dcache: block main pipe req if refill req is valid
      
      Refill req comes from refill arbiter. There is not time left for index
      conflict check. Now we simplily block all main pipe req when refill
      req comes from miss queue.
      
      * dcache: delay some resp signals for better timing
      
      * dcache: optimize wbq enq entry select timing
      
      * WritebackQueue: optimize enqueue logic fir timing
      
      * WritebackQueue: always reject a req when wbq is full
      
      * Revert "ci: enable ci for timing-memblock branch"
      
      This reverts commit 32453dc4.
      
      * WritebackQueue: fix bug in secondary_valid
      Co-authored-by: Nzhanglinjuan <zhanglinjuan20s@ict.ac.cn>
      77af2bae
    • L
      mmu: timing optimization for TLB's mux, PTWFilter and LoadUnit's fastUop (#1270) · cccfc98d
      Lemover 提交于
      * Filter: hit dont care asid for when asid change, flush all
      
      * TLB: timing opt in hitppn and hitperm Mux
      
      * l2tlb.filter: timing opt in enqueue filter logic
      
      add one more cycle when enq to break up tlb's hit check and filter's
      dup check.
      
      so there are 3 stage: regnext -> enqueue -> issue
      when at regnext stage:
        1. regnext after filter with ptw_resp
        2. do 'same vpn' check with
          1) old entries &
          2) new reqs &
          3) old reqs.
          but don't care new reqs'valid
      when at enqueue stage:
        use last stage(regnext)'s result with valid signal at this stage
        to check if duplicate or not. update ports or enq ptr, et al.
        alse **optimize enqPtrVec generating logic**
        also **optimize do_iss generating logic**
      
      * TLB: add fast_miss that dontcare sram's hit result
      
      * L2TLB.filter: move lastReqMatch to first stage
      cccfc98d
    • L
      Fix div -1 bug (#1285) · 7eabd47c
      Li Qianruo 提交于
      7eabd47c
    • Y
      rob,lsq: delay one more cycle for commits (#1286) · 8a33de1f
      Yinan Xu 提交于
      8a33de1f
    • Y
      fdiv: enable fast uop to reduce latency (#1275) · dcbc69cb
      Yinan Xu 提交于
      dcbc69cb
    • Y
      bku: add one more cycle of latency (#1272) · c0e98e86
      Yinan Xu 提交于
      * bku: add one more cycle of latency
      
      * bku: support pipeline stalls
      c0e98e86
    • L
      Bug fix on detection logic for addw fusion (#1276) · 8a009b1d
      Li Qianruo 提交于
      8a009b1d
  11. 30 11月, 2021 1 次提交