1. 11 10月, 2021 1 次提交
    • Y
      bump chisel and code clean up (#1104) · aef67050
      Yinan Xu 提交于
      * bump chisel to 3.5.0-RC1
      
      We don't want to use SNAPSHOT version any more because we don't know
      what will happen when we wake up in the morning.
      
      * misc: remove TMA_* to avoid conflicts
      aef67050
  2. 10 10月, 2021 5 次提交
    • L
      l2tlb: add page table cache ecc, check but not correct (#1098) · 7196f5a2
      Lemover 提交于
      get ecc result at the same cycle, may have timing problem, deal with
      it later...
      when ecc error happens, 'miss' the req and flush the entry next cycle
      7196f5a2
    • C
      add softprefetch (prefetch.r & prefetch.w). (#1099) · 3f4ec46f
      CODE-JTZ 提交于
      * add soft prefetch
      Add the softprefetch. Actually, prefetch.r&w are an ORI which's ldest is x0, we distinguish it in decodeUnit and send it to ld func unit. Then, we modified some interaction signals in ordinary Load steps.
      3f4ec46f
    • Y
      core: fix fastUop connections (#1100) · 69beceeb
      Yinan Xu 提交于
      FastUops from ExuBlock contain some outside function units, which should
      be removed.
      69beceeb
    • Y
      renameTable: optimize read and write timing (#1101) · 7fa2c198
      Yinan Xu 提交于
      This commit optimizes RenameTable's timing.
      
      Read addresses come from instruction buffer directly and has best
      timing. So we let data read at decode stage and bypass write data
      from this clock cycle to the read data at next cycle.
      
      For write, we latch the write request and process it at the next cycle.
      7fa2c198
    • Z
      riscv-crypto: support K extension (#1102) · 3feeca58
      zfw 提交于
      * This commit add risc-v cryptography extension subset(zknd zkne zknh zksed zksh)
      - Rename bmu to bku
      - Add crypto instruction in Mdu -> bku
      - Store immediate into mdu RS
      
      * ci: add riscv-crypto test
      3feeca58
  3. 09 10月, 2021 3 次提交
    • W
      Add runahead debug signals (#1082) · 20edb3f7
      William Wang 提交于
      * runahead: add runahead support (WIP)
      
      * runahead: fix redirect event
      
      * difftest: bump difftest
      
      * runahead: bump version
      
      Note: current runahead does not support instruction fusion, disable that
      in XiangShan if runahead is needed
      
      * runahead: bump version
      
      * difftest: bump version to support runahead
      
      * chore: bump huancun to make ci happy
      
      * chore: fix wrong submodule url
      
      * difftest: bump version
      
      BREAKING CHANGE: nemu update_config api has changed
      20edb3f7
    • Y
      scheduler: support reading fp state from others (#1096) · 023cdb1e
      Yinan Xu 提交于
      This commit adds fpStateReadOut and fpStateReadIn ports to Scheduler to
      support reading fp reg states from other schedulers.
      
      It should have better timing because now ExuBlock(0) has only int
      regfile and busytable. This block does not need fp writeback any more.
      023cdb1e
    • L
      Srt16div Bug Fix (#1089) · f7e0356a
      Li Qianruo 提交于
      * Fix a div 1 bug
      * Fix a typo
      f7e0356a
  4. 06 10月, 2021 1 次提交
  5. 04 10月, 2021 3 次提交
  6. 01 10月, 2021 1 次提交
    • Y
      core: update parameters and module organizations (#1080) · 2b4e8253
      Yinan Xu 提交于
      This commit moves load/store reservation stations into the first
      ExuBlock (or calling it IntegerBlock). The unnecessary dispatch module
      is also removed from CtrlBlock.
      
      Now the module organization becomes:
      * ExuBlock: Int RS, Load/Store RS, Int RF, Int FUs
      * ExuBlock_1: Fp RS, Fp RF, Fp FUs
      * MemBlock: Load/Store FUs
      
      Besides, load queue has 80 entries and store queue has 64 entries now.
      2b4e8253
  7. 30 9月, 2021 2 次提交
  8. 28 9月, 2021 5 次提交
  9. 27 9月, 2021 7 次提交
    • W
      dcache: support alwaysReleaseData parameter (#1070) · fddcfe1f
      wakafa 提交于
      fddcfe1f
    • L
      top: fix debugIntNode on multi-core (#1071) · 5ef7374f
      Li Qianruo 提交于
      * scripts,ci: fix broken multi-core build
      
      * Fix debugIntNode on multi core
      5ef7374f
    • Y
      Update readme (#1069) · 708ceed4
      Yinan Xu 提交于
      708ceed4
    • Y
      rs: add pcMem to store pc for jalr instructions (#1064) · 1d83ceee
      Yinan Xu 提交于
      This commit adds storage for PC in JUMP reservation station. Jalr needs
      four operands now, including rs1, pc, jalr_target and imm. Since Jump
      currently stores two operands and imm, we have to allocate extra space
      to store the one more extra operand for jalr.
      
      It should be optimized later (possibly by reading jalr_target when
      issuing the instruction).
      
      This commit also adds regression check for PC usages. PC should not
      enter decode stage.
      1d83ceee
    • J
      128KB L1D + non-inclusive L2/L3 (#1051) · 1f0e2dc7
      Jiawei Lin 提交于
      * L1D: provide independent meta array for load pipe
      
      * misc: reorg files in cache dir
      
      * chore: reorg l1d related files
      
      * bump difftest: use clang to compile verialted files
      
      * dcache: add BankedDataArray
      
      * dcache: fix data read way_en
      
      * dcache: fix banked data wmask
      
      * dcache: replay conflict correctly
      
       When conflict is detected:
      * Report replay
      * Disable fast wakeup
      
      * dcache: fix bank addr match logic
      
      * dcache: add bank conflict perf counter
      
      * dcache: fix miss perf counters
      
      * chore: make lsq data print perttier
      
      * dcache: enable banked ecc array
      
      * dcache: set dcache size to 128KB
      
      * dcache: read mainpipe data from banked data array
      
      * dcache: add independent mainpipe data read port
      
      * dcache: revert size change
      
      * Size will be changed after main pipe refactor
      
      * Merge remote-tracking branch 'origin/master' into l1-size
      
      * dcache: reduce banked data load conflict
      
      * MainPipe: ReleaseData for all replacement even if it's clean
      
      * dcache: set dcache size to 128KB
      
      BREAKING CHANGE: l2 needed to provide right vaddr index to probe l1,
      and it has to help l1 to avoid addr alias problem
      
      * chore: fix merge conflict
      
      * Change L2 to non-inclusive / Add alias bits in L1D
      
      * debug: hard coded dup data array for debuging
      
      * dcache: fix ptag width
      
      * dcache: fix amo main pipe req
      
      * dcache: when probe, use vaddr for main pipe req
      
      * dcache: include vaddr in atomic unit req
      
      * dcache: fix get_tag() function
      
      * dcache: fix writeback paddr
      
      * huancun: bump version
      
      * dcache: erase block offset bits in release addr
      
      * dcache: do not require probe vaddr != 0
      
      * dcache: opt banked data read timing
      
      * bump huancun
      
      * dcache: fix atom unit pipe req vaddr
      
      * dcache: simplify main pipe writeback_vaddr
      
      * bump huancun
      
      * dcache: remove debug data array
      
      * Turn on all usr bits in L1
      
      * Bump huancun
      
      * Bump huancun
      
      * enable L2 prefetcher
      
      * bump huancun
      
      * set non-inclusive L2/L3 + 128KB L1 as default config
      
      * Use data in TLBundleB to hint ProbeAck beeds data
      
      * mmu.l2tlb: mem_resp now fills multi mq pte buffer
      
      mq entries can just deq without accessing l2tlb cache
      
      * dcache: handle dirty userbit
      
      * bump huancun
      
      * chore: l1 cache code clean up
      
      * Remove l1plus cache
      * Remove HasBankedDataArrayParameters
      
      * Add bus pmu between L3 and Mem
      
      * bump huncun
      
      * dcache: fix l1 probe index generate logic
      
      * Now right probe index will be used according to the len of alias bits
      
      * dcache: clean up amo pipeline
      
      * DCacheParameter rowBits will be removed in the future, now we set it to 128
      to make dcache work
      
      * dcache: fix amo word index
      
      * bump huancun
      Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
      Co-authored-by: Nzhanglinjuan <zhanglinjuan20s@ict.ac.cn>
      Co-authored-by: NTangDan <tangdan@ict.ac.cn>
      Co-authored-by: NZhangZifei <zhangzifei20z@ict.ac.cn>
      Co-authored-by: Nwangkaifan <wangkaifan@ict.ac.cn>
      1f0e2dc7
    • Y
      ci: add external interrupt tests (#1062) · 64a887e0
      Yinan Xu 提交于
      64a887e0
    • Y
      misc: use Definition and Instance for modules (#1067) · 86f7b806
      Yinan Xu 提交于
      This commit applys Definition and Instance for some modules. Refer to
      https://github.com/chipsalliance/chisel3/pull/2045.
      86f7b806
  10. 26 9月, 2021 4 次提交
  11. 25 9月, 2021 2 次提交
    • Y
      backend: optimize aluOpType to 7 bits (#1061) · 675acc68
      Yinan Xu 提交于
      This commit optimizes ALUOpType to 7 bits. Alu timing will be checked
      later.
      
      We also apply some misc changes including:
      
      * Move REVB, PACK, PACKH, PACKW to ALU
      
      * Add fused logicZexth, addwZext, addwSexth
      
      * Add instruction fusion test cases to CI
      675acc68
    • Z
      Bmu: support zbk* instruction (#1059) · 07596dc6
      zfw 提交于
      * Bmu: support zbk* instructions
      
      * ci: add zbk* instruction test
      07596dc6
  12. 24 9月, 2021 2 次提交
    • Y
      rocket: fix chisel 3.5 SNAPSHOT compatibility (#1058) · 5e953178
      Yinan Xu 提交于
      This commit explitly imports freechips..rocketchip.util.property.cover
      for compatibility reasons, since chisel3 now has a cover statement.
      5e953178
    • Y
      rvc: decode compressed move into addi (#1054) · 55ce7e26
      Yinan Xu 提交于
      This commit changes how compressed move instructions are decoded.
      From RISC-V spec, mv pesudoinstruction should be addi. However,
      previously RVC decoder changes compressed mv to add.
      
      Move elimination finds move instructions by addi opcode. Compressed
      move instructions can now be eliminated.
      55ce7e26
  13. 23 9月, 2021 3 次提交
    • Z
      BPU: Modify ubtb to direct mapped from fully associative · 719a3f8a
      zoujr 提交于
      719a3f8a
    • L
      Integer SRT16 Divider (#1019) · a58e3351
      Li Qianruo 提交于
      * New SRT4 divider that may improve timing
      
      See "Digital reurrence dividers with reduced logical depth"
      
      * SRT16 Int Divider that is working properly
      
      * Fix bug related to div 1
      
      * Timing improved version of SRT16 int divider
      
      * Add copyright and made some minor changes
      
      * Fix bugs related to div 0
      
      * Fix another div 0 bug
      
      * Fix another special case bug
      a58e3351
    • Y
      Merge pull request #1052 from OpenXiangShan/me-timing · 46d289c7
      Yinan Xu 提交于
      backend, freelist: optimize critical path & verilog code size in MEFreeList
      
      - optimize free/allocate/walk/flush logic in MEFreeList
      - remove useless assertions
      - decrease length of generated verilog file
      46d289c7
  14. 22 9月, 2021 1 次提交