#
f77b3790 |
| 29-Jul-2021 |
Lingrui98 <[email protected]> |
ftq: now we only update cfi info when redirect sent back
|
#
f320e0f0 |
| 24-Jul-2021 |
Yinan Xu <[email protected]> |
misc: update PCL information (#899)
XiangShan is jointly released by ICT and PCL.
|
#
83aefafe |
| 17-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] ifu: fix more merge errors
|
#
de066b14 |
| 16-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] ftq, ctrl: fix some unconnected wires
|
#
5cbe3dbd |
| 13-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] finish ftq logic and fix syntax errors
* Now can pass compiling.
[WIP] comment out-of-date code in frontend
[WIP] move NewFtq to xiangshan.frontend and rename class to Ftq
Ibuffer: update s
[WIP] finish ftq logic and fix syntax errors
* Now can pass compiling.
[WIP] comment out-of-date code in frontend
[WIP] move NewFtq to xiangshan.frontend and rename class to Ftq
Ibuffer: update sigal names for new IFU
[WIP] remove redundant NewFrontend
[WIP] set entry_fetch_status to f_sent once send req to buf
Fix syntax error in IFU
Fix syntax error in IFU/ICache/Ibuffer
[WIP] indent fix in ftq
BPU: Move GlobalHistory define from IFU.scala to BPU.scala
[WIP] fix some compilation errors
BPU: Remove HasIFUConst and move some bundles from BPU.scala to frontendBundle.scala
[WIP] fix some compilation errors
[WIP] rename ftq-bpu ios
[WIP] recover some const definitions
[WIP] fix some compilation errors
[WIP]connect some IOs in frontend
BPU: fix syntax error
[WIP] fix compilation errors in predecode
BPU: fix RAS syntax error
[WIP] add some simulation perf counters back
BPU: Remove numBr redefine in ubtb and bim
show more ...
|
#
ed3ba220 |
| 05-Jul-2021 |
Lingrui98 <[email protected]> |
core: move ftq to frontend
|
#
3a6496e9 |
| 16-Jul-2021 |
Yinan Xu <[email protected]> |
configs: change function unit configs for MinimalConfig (#884)
* change the number of function units in MinimalConfig * remove some hard-wired values
|
#
acd4a4e3 |
| 16-Jul-2021 |
Yinan Xu <[email protected]> |
scheduler: add support for parameterization via rs and dp ports (#882)
This commit adds support for a parameterized scheduler. A scheduler can be parameterized via issue and dispatch ports.
Note: o
scheduler: add support for parameterization via rs and dp ports (#882)
This commit adds support for a parameterized scheduler. A scheduler can be parameterized via issue and dispatch ports.
Note: other parameters have not been tested.
show more ...
|
#
68f95118 |
| 14-Jul-2021 |
Yinan Xu <[email protected]> |
backend: wrap all RS into a larger scheduler module (#880)
This commit adds an non-parameterized scheduler containing all reservation stations. Now IntegerBlock, FloatBlock, MemBlock contain only fu
backend: wrap all RS into a larger scheduler module (#880)
This commit adds an non-parameterized scheduler containing all reservation stations. Now IntegerBlock, FloatBlock, MemBlock contain only function units. The Schduler connects dispatch with all function units. Parameterization to be added later.
show more ...
|
#
072158bf |
| 16-Jul-2021 |
Yinan Xu <[email protected]> |
configs: change function unit configs for MinimalConfig (#884)
* change the number of function units in MinimalConfig
* remove some hard-wired values
|
#
de182b2a |
| 16-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] ftq: reomve useless type decl
|
#
50f55d9f |
| 16-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] ftq, ctrl: fix some unconnected wires
|
#
e7b046c5 |
| 16-Jul-2021 |
zoujr <[email protected]> |
[WIP]Frontend: Done Elaborating
|
#
ce5555fa |
| 16-Jul-2021 |
Yinan Xu <[email protected]> |
scheduler: add support for parameterization via rs and dp ports (#882)
This commit adds support for a parameterized scheduler. A scheduler
can be parameterized via issue and dispatch ports.
Note
scheduler: add support for parameterization via rs and dp ports (#882)
This commit adds support for a parameterized scheduler. A scheduler
can be parameterized via issue and dispatch ports.
Note: other parameters have not been tested.
show more ...
|
#
f06ca0bf |
| 13-Jul-2021 |
Lingrui98 <[email protected]> |
[WIP] finish ftq logic and fix syntax errors
* Now can pass compiling.
[WIP] comment out-of-date code in frontend
[WIP] move NewFtq to xiangshan.frontend and rename class to Ftq
Ibuffer: update s
[WIP] finish ftq logic and fix syntax errors
* Now can pass compiling.
[WIP] comment out-of-date code in frontend
[WIP] move NewFtq to xiangshan.frontend and rename class to Ftq
Ibuffer: update sigal names for new IFU
[WIP] remove redundant NewFrontend
[WIP] set entry_fetch_status to f_sent once send req to buf
Fix syntax error in IFU
Fix syntax error in IFU/ICache/Ibuffer
[WIP] indent fix in ftq
BPU: Move GlobalHistory define from IFU.scala to BPU.scala
[WIP] fix some compilation errors
BPU: Remove HasIFUConst and move some bundles from BPU.scala to frontendBundle.scala
[WIP] fix some compilation errors
[WIP] rename ftq-bpu ios
[WIP] recover some const definitions
[WIP] fix some compilation errors
[WIP]connect some IOs in frontend
BPU: fix syntax error
[WIP] fix compilation errors in predecode
BPU: fix RAS syntax error
[WIP] add some simulation perf counters back
BPU: Remove numBr redefine in ubtb and bim
show more ...
|
#
66220144 |
| 14-Jul-2021 |
Yinan Xu <[email protected]> |
backend: wrap all RS into a larger scheduler module (#880)
This commit adds an non-parameterized scheduler containing all reservation stations.
Now IntegerBlock, FloatBlock, MemBlock contain only f
backend: wrap all RS into a larger scheduler module (#880)
This commit adds an non-parameterized scheduler containing all reservation stations.
Now IntegerBlock, FloatBlock, MemBlock contain only function units.
The Schduler connects dispatch with all function units.
Parameterization to be added later.
show more ...
|
#
e0d9a9f0 |
| 05-Jul-2021 |
Lingrui98 <[email protected]> |
core: move ftq to frontend
|
#
c6d43980 |
| 04-Jun-2021 |
Lemover <[email protected]> |
Add MulanPSL-2.0 License (#824)
In this commit, we add License for XiangShan project.
|
#
de169c67 |
| 11-May-2021 |
William Wang <[email protected]> |
backend,mem: add Store Sets memory dependence predictor (#796)
* LoadQueue: send stFtqIdx via rollback request
* It will make it possible for setore set to update its SSIT
* StoreSet: setup st
backend,mem: add Store Sets memory dependence predictor (#796)
* LoadQueue: send stFtqIdx via rollback request
* It will make it possible for setore set to update its SSIT
* StoreSet: setup store set update req
* StoreSet: add store set identifier table (SSIT)
* StoreSet: add last fetched store table (LFST)
* StoreSet: put SSIT into decode stage
* StoreSet: put LFST into dispatch1
* Future work: optimize timing
* RS: store rs now supports delayed issue
* StoreSet: add perf counter
* StoreSet: fix SSIT update logic
* StoreSet: delay LFST update input for 1 cycle
* StoreSet: fix LFST update logic
* StoreSet: fix LFST raddr width
* StoreSet: do not force store in ss issue in order
Classic store set requires store in the same store set issue in seq.
However, in current micro-architecture, such restrict will lead to
severe perf lost. We choose to disable it until we find another way
to fix it.
* StoreSet: support ooo store in the same store set
* StoreSet: fix store set merge logic
* StoreSet: check earlier store when read LFST
* If store-load pair is in the same dispatch bundle, loadWaitBit should
also be set for load
* StoreSet: increase default SSIT flush period
* StoreSet: fix LFST read logic
* Fix commit c0e541d14
* StoreSet: add StoreSetEnable parameter
* RSFeedback: add source type
* StoreQueue: split store addr and store data
* StoreQueue: update ls forward logic
* Now it supports splited addr and data
* Chore: force assign name for load/store unit
* RS: add rs'support for store a-d split
* StoreQueue: fix stlf logic
* StoreQueue: fix addr wb sq update logic
* AtomicsUnit: support splited a/d
* Parameters: disable store set by default
* WaitTable: wait table will not cause store delay
* WaitTable: recover default reset period to 2^17
* Fix dev-stad merge conflict
* StoreSet: enable storeset
* RS: disable store rs delay logic
CI perf shows that current delay logic will cause perf loss. Disable
unnecessary delay logic will help.
To be more specific, `io.readyVec` caused the problem. It will be
updated in future commits.
* RS: opt select logic with load delay (ldWait)
* StoreSet: disable 2-bit lwt
Co-authored-by: ZhangZifei <[email protected]>
show more ...
|
#
2225d46e |
| 19-Apr-2021 |
Jiawei Lin <[email protected]> |
Refactor parameters, SimTop and difftest (#753)
* difftest: use DPI-C to refactor difftest
In this commit, difftest is refactored with DPI-C calls.
There're a few reasons:
(1) From Verilator's
Refactor parameters, SimTop and difftest (#753)
* difftest: use DPI-C to refactor difftest
In this commit, difftest is refactored with DPI-C calls.
There're a few reasons:
(1) From Verilator's manual, DPI-C calls should be more efficient than accessing from dut_ptr.
(2) DPI-C is cross-platform (Verilator, VCS, ...)
(3) difftest APIs are splited from emu.cpp to possibly support more backend platforms
(NEMU, Spike, ...)
The performance at this commit is quite slower than the original emu.
Performance issues will be fixed later.
* [WIP] SimTop: try to use 'XSTop' as soc
* CircularQueuePtr: ues F-bounded polymorphis instead implict helper
* Refactor parameters & Clean up code
* difftest: support basic difftest
* Support diffetst in new sim top
* Difftest; convert recode fmt to ieee754 when comparing fp regs
* Difftest: pass sign-ext pc to dpic functions && fix exception pc
* Debug: add int/exc inst wb to debug queue
* Difftest: pass sign-ext pc to dpic functions && fix exception pc
* Difftest: fix naive commit num limit
Co-authored-by: Yinan Xu <[email protected]>
Co-authored-by: William Wang <[email protected]>
show more ...
|
#
edd6ddbc |
| 31-Mar-2021 |
wakafa <[email protected]> |
Add some in-core hardware performance counters (#731)
* csr: remove unused input perfcnt io
* perfcnt: add some in-core hardware performance counters
* perfcnt: optimize timing for hardware pe
Add some in-core hardware performance counters (#731)
* csr: remove unused input perfcnt io
* perfcnt: add some in-core hardware performance counters
* perfcnt: optimize timing for hardware performance counters
show more ...
|
#
aac4464e |
| 11-Mar-2021 |
Yinan Xu <[email protected]> |
Add support for a simple version of move elimination (#682)
In this commit, we add support for a simpler version of move elimination.
The original instruction sequences are:
move r1, r0
add r2,
Add support for a simple version of move elimination (#682)
In this commit, we add support for a simpler version of move elimination.
The original instruction sequences are:
move r1, r0
add r2, r1, r3
The optimized sequnces are:
move pr1, pr0
add pr2, pr0, pr3 # instead of add pr2, pr1, pr3
In this way, add can be issued once r0 is ready and move seems to be eliminated.
show more ...
|
#
435a337c |
| 05-Mar-2021 |
Yinan Xu <[email protected]> |
redirectGen: parallelize oldest selection logic in s0 (#641)
|
#
09348ee5 |
| 03-Mar-2021 |
ljw <[email protected]> |
Ftq: save 'hist' and br_mask in regs (#629)
* Ftq: save 'hist' in regs
* Ftq: save 'br_mask' in regs
|
#
c1b37c81 |
| 02-Mar-2021 |
ljw <[email protected]> |
Optimize ctrlblock timing (#620)
* CtrlBlock: delay exception flush for 1 cycle
* CtrlBlock: delay load replay for 1 cycle
* roq: delay wb from exu for one clock cycle to meet timing
* Ctrl
Optimize ctrlblock timing (#620)
* CtrlBlock: delay exception flush for 1 cycle
* CtrlBlock: delay load replay for 1 cycle
* roq: delay wb from exu for one clock cycle to meet timing
* CtrlBlock: fix pipeline bug between decode and rename
Co-authored-by: Yinan Xu <[email protected]>
show more ...
|