- 22 8月, 2021 2 次提交
-
-
由 Yinan Xu 提交于
This commit limits dequeue width of every RS to 2 for better timing.
-
由 Lemover 提交于
* Miniconfig: change dtlb size to 32 at minimal config * mmu.dtlb: change tlb's replacement access code style dtlb now can support plru (functionaly). plru with multi-access is chained, so there will be long latency for dtlb to use plru. * mmu.tlb: add tlb at new level named btlb bridge tlb: one l0-tlb in each mem pipeline all the l0-tlb connect to bridge tlb btlb connects to l2tlb, so btlb is also l1-tlb itlb remains the same * mmu.tlb: set tlb size: l0-8, l1-64 * mmu.btlb: add sfence logic * mmu.tlb: fix bug of sfence logic of g bit * mmu.btlb: add some perf counter * mmu.btlb: fix bug of random replace * mmu.filter: add port vector to record which ports the reqs come from * mmu.btlb: add some perf counter && add refill mask * mmu.filter: add check for flushed req
-
- 21 8月, 2021 4 次提交
-
-
由 lqre 提交于
* Use difftest version that auto diables jtag rbb server Use newer difftest version so that jtag remote bitbang server is automatically disabled. Use --enable-jtag to enable.
-
由 Yinan Xu 提交于
This commit separates store address and store data in backend, including both reservation stations and function units. This commit also changes how stIssuePtr is updated. stIssuePtr should only be updated when both store data and address issue.
-
由 Lemover 提交于
* Miniconfig: change dtlb size to 32 at minimal config * mmu.dtlb: change tlb's replacement access code style dtlb now can support plru (functionaly). plru with multi-access is chained, so there will be long latency for dtlb to use plru. * mmu.l2tlb: cut down l2tlb.l2 to 256 and set l3.way to 8 * mmu.l2tlb: cut down l2tlb.l3 to 2048 from 4096 * Revert "mmu.l2tlb: cut down l2tlb.l3 to 2048 from 4096" This reverts commit efbb077ef4be1d4e585a49537ba9be3144423b52.
-
由 YikeZhou 提交于
* Bundle, Rename: Add some comments FreeList, RenameTable: Comment out unused variables * refcnt: Implement AdderTree for reference counter * build.sc: add testOne method for unit test * AdderTest: add testbench for Adder (passed) * AdderTree: Add testbench for AdderTree (passed) * ReferenceCounter: implement a 2-bit counter * Rename: remove redundant code * Rename: prepared for move elimination [WIP] * Roq: add eliminated move bit in roq entry; label elim move inst as writebacked AlternativeFreeList: new impl for int free list Rename: change io of free list Dispatch1: (todo) not send move to intDq Bundle: add eliminatedMove bit in roqCommitInfo, uop and debugio ReferenceCounter: add debug print msg * Dispatch1: [BUG FIX] not send move inst to IntDq * DecodeUnit: [BUG FIX] differentiate li from mv * Bug fix: 1. Dispatch1: should not label pdest of move as busy in busy table 2. Rename: use psrc0 to index bit vec isMax 3. AlternativeFreeList: fix maxVec calculation logic and ref counter increment logic Besides, more debug info and assertions were added. * AlternativeFreeList Bug Fix: 1. add redirect input - shouldn't allocate reg when redirect is valid 2. handle duplicate preg in roqCommits in int free list * AlternativeFreeList: Fix value assignment race condition * Rename: Fix value assignment race condition too * RenameTable: refactor spec/arch table write process * Roq: Fix debug_exuData of move(addi) instruction (it was trash data before because move needn't enter exu) * Rename: change intFreeList's redirect process (by setting headPtr back) and flush process * ME: microbench & coremark & linux-hello passed 1. DecodeUnit: treat `mv x,x` inst as non-move 2. AlternativeFreeList: handle duplicate walk req correctly 3. Roq: fix debug_exuData bug (make sure writeback that updates debug_exuData happens before ME instruction in program order) * AlternativeFreeList: License added build.sc: remove unused config Others: comments added * package rename: remove unused modules * Roq: Replace debug_prf with a cleaner fix method * Disp1/AltFL/Rename: del unnecessary white spaces * build.sc: change stack size AlternativeFreeList: turn off assertions * build.sc: change stack size for test
-
- 20 8月, 2021 1 次提交
-
-
由 Yinan Xu 提交于
Multi-core Linux can boot now, again.
-
- 19 8月, 2021 3 次提交
- 17 8月, 2021 2 次提交
- 08 8月, 2021 1 次提交
-
-
由 William Wang 提交于
* Fix allocated flag update logic
-
- 06 8月, 2021 2 次提交
-
-
由 Jiawei Lin 提交于
-
由 Yinan Xu 提交于
Co-authored-by: NWilliam Wang <zeweiwang@outlook.com>
-
- 05 8月, 2021 3 次提交
-
-
由 William Wang 提交于
mem,sq: don't set commited flag when mmio commits
-
由 William Wang 提交于
-
由 Yinan Xu 提交于
For simplicity, we increase cmtPtr and set commited flags when store instructions commit from ROB. However, this causes problems when there's an MMIO at the head and new instructions enqueue after the MMIO finishes but before the MMIO commits. For example, at cycle T0 mmio store instruction with sqPtr p0 finishes and deqPtr is increased. At cycle T1, a new store instruction enqueues and the p0 is allocated for this new instruction. At cycle T2, the mmio instruction commits from ROB. With cmtPtr, p0 is set to commited. However, since p0 is allocated to the new store instruction, the commited flag should be false. The example causes at least two issues. (1) when redirect happens, p0 will not be flushed. (2) p0 will be commit to sbuffer before p0 writes back to store queue. In this commit, we change how commited flag works. We add a `hasInflightMMIO` flag. When store instructions commit, we only set commited flag when `hasInflightMMIO` is not set.
-
- 04 8月, 2021 1 次提交
-
-
由 Yinan Xu 提交于
Backend --> ExuBlock --> FuBlock --> Exu --> Function Units --> --> Scheduler --> RS
-
- 29 7月, 2021 1 次提交
-
-
由 William Wang 提交于
* misc: remove unused files, bump difftest * misc: update ready-to-run nemu
-
- 28 7月, 2021 3 次提交
-
-
由 William Wang 提交于
misc: update MinimalConfig and add it to ci
-
由 Yinan Xu 提交于
-
由 William Wang 提交于
misc: implement difftest as a submodule
-
- 25 7月, 2021 1 次提交
-
-
由 Yinan Xu 提交于
This commit adds support for multiple enqueue for load and store RS. Also update the parameters in XSCore to avoid explicitly setting wakeup ports.
-
- 24 7月, 2021 3 次提交
-
-
由 Yinan Xu 提交于
Compare SqPtr when an instruction with wait bit enqueuing. This should have minor performance improvements. Also add some performance counters.
-
由 Yinan Xu 提交于
XiangShan is jointly released by ICT and PCL.
-
由 Yinan Xu 提交于
When --no-diff option is enable, nemuproxy should not be initialized, to avoid the dependence on NEMU.
-
- 19 7月, 2021 1 次提交
-
-
由 Lemover 提交于
-
- 18 7月, 2021 2 次提交
- 17 7月, 2021 1 次提交
-
-
由 Lemover 提交于
* CSR: add csr access check for mstatus.tvm tvm: trap virtual Memory. when tvm is set, r/w the satp in S-mode will raise illegal-instr * Fence: add tvm check that may disallow sfence when tvm is set and at s-mode, sfence.vma will raise illegal-instr
-
- 16 7月, 2021 2 次提交
- 14 7月, 2021 2 次提交
- 12 7月, 2021 1 次提交
-
-
由 Jiawei Lin 提交于
-
- 11 7月, 2021 1 次提交
-
-
由 Lemover 提交于
* PTW: Repeater support multi req by RRArbiter * ptw: add parameter to choose repeater and filter(default) simple ci test show that: the filter is critical for perf like mcf(5m): old ptw:2.38 new ptw with repeater: 2.41 new ptw with filter: 2.58
-
- 08 7月, 2021 2 次提交
- 07 7月, 2021 1 次提交
-
-
由 wakafa 提交于
-