621007d9 | 12-Mar-2023 |
Xuan Hu <[email protected]> |
backend: remove soft prefetch hint insts temporary
Todo: revert this when mem block connected |
3d1a5c10 | 11-Mar-2023 |
maliao <[email protected]> |
Rob: Add Rab module to support separate commit of uops and instructions (#1956) |
4e5d06f1 | 08-Mar-2023 |
zhanglyGit <[email protected]> |
decode: modify vx instruction uops and fix bug (#1952) |
3b739f49 | 06-Mar-2023 |
Xuan Hu <[email protected]> |
v2backend: huge tmp commit |
22d6635a | 06-Mar-2023 |
zhanglyGit <[email protected]> |
support vmv.s.x and vx instruction(vadd.vx, vsub.vx) (#1951) |
925ac328 | 08-Feb-2023 |
xiwenx <[email protected]> |
vset: pass lsrc0NotZero by imm(15) & modify vl calculation logic in alu (#1903)
1. pass lsrc0NotZero by imm(15)
2. modify the logic for generating vl in Alu |
c515baa2 | 08-Feb-2023 |
xiwenx <[email protected]> |
vset: pass lsrc0NotZero by imm(15) & modify vl calculation logic in alu (#1903)
1. pass lsrc0NotZero by imm(15)
2. modify the logic for generating vl in Alu |
0f038924 | 16-Jan-2023 |
ZhangZifei <[email protected]> |
backend,vector: fix vector relative bug and first vadd instr success
Modification and Bugs includes: 1. readFpRf/writeFpRf is replaced with readFpVecRf/writeFpVecRf in some places; 2. fpWen is repla
backend,vector: fix vector relative bug and first vadd instr success
Modification and Bugs includes: 1. readFpRf/writeFpRf is replaced with readFpVecRf/writeFpVecRf in some places; 2. fpWen is replaced with fpVecWen in some places; 3. add ADD/SUB decode info 4. dispatch logic modification 5. dataWidth & wakeup logic in rs 6. ExuInput/ExuOutput at many places 7. fuSel inside FUBlock of FMAC 8. FuType encoding 9. many other bugs
show more ...
|
4aa9ed34 | 12-Jan-2023 |
fdy <[email protected]> |
vset: add vset instr support |
0ef1b3c2 | 03-Jan-2023 |
ZhangZifei <[email protected]> |
Merge remote-tracking branch 'origin/master' into rf-after-issue |
67ba96b4 | 02-Jan-2023 |
Yinan Xu <[email protected]> |
Switch to asynchronous reset for all modules (#1867)
This commit changes the reset of all modules to asynchronous style,
including changes on the initialization values of some registers.
For async
Switch to asynchronous reset for all modules (#1867)
This commit changes the reset of all modules to asynchronous style,
including changes on the initialization values of some registers.
For async registers, they must have constant reset values.
show more ...
|
b6c99e8e | 29-Dec-2022 |
ZhangZifei <[email protected]> |
Merge remote-tracking branch 'origin/master' into rf-after-issue |
40a70bd6 | 25-Dec-2022 |
ZhangZifei <[email protected]> |
backend: change vector relative IO to 128bits |
3c02ee8f | 25-Dec-2022 |
wakafa <[email protected]> |
Separate Utility submodule from XiangShan (#1861)
* misc: add utility submodule
* misc: adjust to new utility framework
* bump utility: revert resetgen
* bump huancun |
4bc8d977 | 25-Dec-2022 |
ZhangZifei <[email protected]> |
rename: fix bug of freelist number cause by mixed v/f reg |
a7a8a6cc | 15-Dec-2022 |
Haojin Tang <[email protected]> |
rename: use intRat for vconfig; add a vec read port |
deb6421e | 14-Dec-2022 |
Haojin Tang <[email protected]> |
vector rename: support vector register rename |
eb163ef0 | 17-Nov-2022 |
Haojin Tang <[email protected]> |
top-down: introduce top-down counters and scripts (#1803)
* top-down: add initial top-down features
* rob600: enlarge queue/buffer size
* :art: After git pull
* :sparkles: Add BranchResteer
top-down: introduce top-down counters and scripts (#1803)
* top-down: add initial top-down features
* rob600: enlarge queue/buffer size
* :art: After git pull
* :sparkles: Add BranchResteers->CtrlBlock
* :sparkles: Cg BranchResteers after pending
* :sparkles: Add robflush_bubble & ldReplay_bubble
* :ambulance: Fix loadReplay->loadReplay.valid
* :art: Dlt printf
* :sparkles: Add stage2_redirect_cycles->CtrlBlock
* :saprkles: CtrlBlock:Add s2Redirect_when_pending
* :sparkles: ID:Add ifu2id_allNO_cycle
* :sparkles: Add ifu2ibuffer_validCnt
* :sparkles: Add ibuffer_IDWidth_hvButNotFull
* :sparkles: Fix ifu2ibuffer_validCnt
* :ambulance: Fix ibuffer_IDWidth_hvButNotFull
* :sparkles: Fix ifu2ibuffer_validCnt->stop
* feat(buggy): parameterize load/store pipeline, etc.
* fix: use LoadPipelineWidth rather than LoadQueueSize
* fix: parameterize `rdataPtrExtNext`
* fix(SBuffer): fix idx update logic
* fix(Sbuffer): use `&&` to generate flushMask instead of `||`
* fix(atomic): parameterize atomic logic in `MemBlock`
* fix(StoreQueue): update allow enque requirement
* chore: update comments, requirements and assertions
* chore: refactor some Mux to meet original logic
* feat: reduce `LsMaxRsDeq` to 2 and delete it
* feat: support one load/store pipeline
* feat: parameterize `EnsbufferWidth`
* chore: resharp codes for better generated name
* top-down: add initial top-down features
* rob600: enlarge queue/buffer size
* top-down: add l1, l2, l3 and ddr loads bound perf counters
* top-down: dig into l1d loads bound
* top-down: move memory related counters to `Scheduler`
* top-down: add 2 Ldus and 2 Stus
* top-down: v1.0
* huancun: bump HuanCun to a version with top-down
* chore: restore parameters and update `build.sc`
* top-down: use ExcitingUtils instead of BoringUtils
* top-down: add switch of top-down counters
* top-down: add top-down scripts
* difftest: enlarge stuck limit cycles again
Co-authored-by: gaozeyu <[email protected]>
show more ...
|
ccfddc82 | 01-Nov-2022 |
Haojin Tang <[email protected]> |
rename: Re-rename instead of walking back after redirect (#1768)
* freelist & refcounter: implement arch states
* walk: restore and walk again when redirecting
* ROB: optimize invalidation of
rename: Re-rename instead of walking back after redirect (#1768)
* freelist & refcounter: implement arch states
* walk: restore and walk again when redirecting
* ROB: optimize invalidation of `valid`
show more ...
|
6474c47f | 14-Jul-2022 |
Yinan Xu <[email protected]> |
rob: optimize timing for commit and walk (#1644)
* rob: separate walk and commit valid bits
* rob: optimize instrCnt timing
* rob: fix blockCommit condition when flushPipe
When flushPipe is
rob: optimize timing for commit and walk (#1644)
* rob: separate walk and commit valid bits
* rob: optimize instrCnt timing
* rob: fix blockCommit condition when flushPipe
When flushPipe is enabled, it will block commits in ROB. However,
in the deqPtrModule, the commit is not blocked. This commit fixes
the issue.
show more ...
|
f025d715 | 13-Jul-2022 |
Yinan Xu <[email protected]> |
decode: move the soft-prefetch decoder to rename (#1646)
This commit moves the decoder of software prefetch instructions to
the rename stage.
Previously the decoding of software prefetch instruc
decode: move the soft-prefetch decoder to rename (#1646)
This commit moves the decoder of software prefetch instructions to
the rename stage.
Previously the decoding of software prefetch instructions affects
the imm gen and causes a long critical path.
show more ...
|
66b2c4a4 | 12-Jul-2022 |
Yinan Xu <[email protected]> |
ctrl: optimize freelist timing (#1633)
* rat: map all arch registers to zero when init
* freelist: fix stepBack width
* freelist: fix timing of free offset |
0febc381 | 09-Jul-2022 |
Yinan Xu <[email protected]> |
decode: move fusion decoder result Mux to rename (#1631)
This commit moves the fusion decoder to both decode and rename stage.
In the decode stage, fusion decoder determines whether the instructi
decode: move fusion decoder result Mux to rename (#1631)
This commit moves the fusion decoder to both decode and rename stage.
In the decode stage, fusion decoder determines whether the instruction
pairs can be fused. Valid bits of decode are not affected by fusion
decoder. This should fix the timing issues of rename.valid.
In the rename stage, some fields are updated according the result of
fusion decoder. This will bring a minor timing path to both valid and
other fields in uop in the rename stage. However, since freelist and
rat have worse timing. This should not cause timing issues.
show more ...
|
c51eab43 | 06-Jul-2022 |
Yinan Xu <[email protected]> |
rob: add separated optimized walk valid bits (#1614)
Some modules rely on the walk valid bits of ROB. This commit
optimizes the timing by providing separated walk valid bits, which
is far better t
rob: add separated optimized walk valid bits (#1614)
Some modules rely on the walk valid bits of ROB. This commit
optimizes the timing by providing separated walk valid bits, which
is far better than the commit valid bits.
show more ...
|
00210c34 | 06-Jul-2022 |
Yinan Xu <[email protected]> |
dpq: optimize read and write timing of data module (#1610)
This commit changes the data modules in Dispatch Queue. We use one-hot
indices to read and write the data array. |