#
4a02bbda |
| 15-Apr-2025 |
Anzo <[email protected]> |
fix(LSU): misalign writeback aligned raw rollback (#4476)
By convention, we need to make `rollback` and `writeback` happen at the same time, and not make `writeback` earlier than `rollback`.
Curren
fix(LSU): misalign writeback aligned raw rollback (#4476)
By convention, we need to make `rollback` and `writeback` happen at the same time, and not make `writeback` earlier than `rollback`.
Currently, the `rollback` generated by raw occurs at `s4`. A normal store would take an extra N beats after the end of s3 (based on the number of RAWQueue entries, which is now 1 beat), which is equivalent to `writeback` at `s4` And misaligned would `writeback` at `s2`, then `writeback` after switching to `s_wb` state, which is equivalent to `writeback` at `s3`
---
This pr adjusts the misaligned `writeback` logic to align with the `StoreUnit`. At the same time, it unified the way to calculate the number of beats.
show more ...
|
#
35bb7796 |
| 14-Apr-2025 |
Anzo <[email protected]> |
fix(LSU): fix exception for misalign access to `nc` space (#4526)
For misaligned accesses, say if the access after the split goes to `nc` space, then a misaligned exception should also be generated.
fix(LSU): fix exception for misalign access to `nc` space (#4526)
For misaligned accesses, say if the access after the split goes to `nc` space, then a misaligned exception should also be generated.
Co-authored-by: Yanqin Li <[email protected]>
show more ...
|
#
4ec1f462 |
| 09-Apr-2025 |
cz4e <[email protected]> |
timing(StoreMisalignBuffer): fix misalign buffer enq timing (#4493)
* a misalign store will enqueue misalign buffer at s1, and revoke if it needs at s2
|
#
a94ed9a2 |
| 20-Feb-2025 |
cz4e <[email protected]> |
timing(STU, StoreMisalignBuffer): adjust misalign buffer enq logic (#4254)
There is no exception misaligned store instruction enters the misalignbuffer. Due to the exception timing difference genera
timing(STU, StoreMisalignBuffer): adjust misalign buffer enq logic (#4254)
There is no exception misaligned store instruction enters the misalignbuffer. Due to the exception timing difference generated by the `PMA`, the timing of the misalignbuffer rejection condition is bad timing, which in turn leads to the bad timing of `feedback_slow.hit`.
show more ...
|
#
9e12e8ed |
| 08-Feb-2025 |
cz4e <[email protected]> |
style(Bundles): move bundles to Bundles.scala (#4247)
|
#
75efee3d |
| 27-Jan-2025 |
Anzo <[email protected]> |
fix(StoreMisalignBuffer): fix state transition when writeback (#4227)
Assignment overwritten by forgetting to add `Otherwis`.
|
#
da51a7ac |
| 07-Jan-2025 |
Anzo <[email protected]> |
fix(VLSU): fix vector exception writeback to 'MergeBuffer' logic (#4137)
Fixed the bug of abnormal signal loss when writing back.
Previously, we expected to compare only the ports of the writebacks
fix(VLSU): fix vector exception writeback to 'MergeBuffer' logic (#4137)
Fixed the bug of abnormal signal loss when writing back.
Previously, we expected to compare only the ports of the writebacks that triggered the exception and pick the oldest.
But amazingly, I just realised that the implementation doesn't match the annotation. The current implementation can be problematic in that if the write-back port that did not have an exception is older, the port that triggered the exception is not elected.
Use s3_exception to try to optimise timing.
show more ...
|
#
acc50f3b |
| 23-Dec-2024 |
Anzo <[email protected]> |
fix(StoreMisalignBuffer): crosspage can only be replaced when `s_idle` (#4077)
Entries in `storeMisalignBuffer` can only be replaced when `s_idle`, and should not be replaced by a new `req` if the s
fix(StoreMisalignBuffer): crosspage can only be replaced when `s_idle` (#4077)
Entries in `storeMisalignBuffer` can only be replaced when `s_idle`, and should not be replaced by a new `req` if the state has been switched and a store is in progress.
show more ...
|
#
562eaa0c |
| 15-Dec-2024 |
Anzooooo <[email protected]> |
fix(MemBlock): fix misaligned exception and remove redundant reg from `SQ`
|
#
b240e1c0 |
| 07-Nov-2024 |
Anzooooo <[email protected]> |
feat(Zicclsm): refactoring misalign and support vector misalign
|
#
bb76fc1b |
| 10-Oct-2024 |
Yanqin Li <[email protected]> |
fix(NC): fix a list of bugs of NC WMO access
* fix(PBMT): skip nc difftest and handle the conflict of nc and normal store
* fix(PBMT): nc st req is changed to a state machine execution
* fix(pbmt)
fix(NC): fix a list of bugs of NC WMO access
* fix(PBMT): skip nc difftest and handle the conflict of nc and normal store
* fix(PBMT): nc st req is changed to a state machine execution
* fix(pbmt): fix typo and control error of nc ld
* fix(pbmt): nc data assignment error
* fix(pbmt): nc should be used to wakeup
* fix(pbmt): remove wrong assert
* fix(pbmt): lots of bugs of nc st ld forward
* fix(pbmt): fix address align error
show more ...
|
#
e7ab4635 |
| 12-Nov-2024 |
Huijin Li <[email protected]> |
area(MemBlock): remove redundant signals to optimise area (#3560)
optimise redundant signals to reduce MemBlock area.
1. optimise 'exceptionVec', selected by LduCfg or StaCfg;
2. optimise 'fuType'
area(MemBlock): remove redundant signals to optimise area (#3560)
optimise redundant signals to reduce MemBlock area.
1. optimise 'exceptionVec', selected by LduCfg or StaCfg;
2. optimise 'fuType', reassign the value when writeback Rob in pipeline,
so no longer saved in LSQ.
3. optimise 'uop.imm', vaddr is computed in StoreMisalignBuffer and
there is no need to store the uop.imm.
show more ...
|
#
282dd18c |
| 16-Oct-2024 |
sfencevma <[email protected]> |
timing(MemBlock): adjust load unit writeback ports
|
#
6444fe09 |
| 29-Oct-2024 |
good-circle <[email protected]> |
fix(MisalignBuffer): Use RegEnable in datapath to avoid xprop
We should not use GatedRegNext here as `overwrite*` may be X-state when `shouldOverwrite` is false.
|
#
ad74c6cb |
| 25-Oct-2024 |
Anzo <[email protected]> |
area(MemBlock): remove redundant signals to optimize area (#3777)
|
#
4c5e04f2 |
| 19-Oct-2024 |
happy-lx <[email protected]> |
fix(misalign): fix misaligned HLV and HLVX (#3759)
In the previous design, the H extension information was lost in the
`fuOpType` of the misalignBuffer split instruction, causing the split
instruc
fix(misalign): fix misaligned HLV and HLVX (#3759)
In the previous design, the H extension information was lost in the
`fuOpType` of the misalignBuffer split instruction, causing the split
instruction to not perform two-stage address translation and cause
errors.
This PR fixes the information about H extension in `fuOpType` in
misalignBuffer.
show more ...
|
#
bd3e32c1 |
| 15-Oct-2024 |
sinsanction <[email protected]> |
fix(Backend, Mem): add `isFromLoadUnit` to avoid other units polluting RegCache (#3731)
|
#
46e9ee74 |
| 27-Sep-2024 |
Haoyuan Feng <[email protected]> |
fix(exception): fix exception vaddr generate logic (#3639)
In LSU, for exceptions that can be detected before address
translation(`preaf`, `prepf` or `pregpf`), the original vaddr should be
retain
fix(exception): fix exception vaddr generate logic (#3639)
In LSU, for exceptions that can be detected before address
translation(`preaf`, `prepf` or `pregpf`), the original vaddr should be
retained. And for exceptions detected after address translation, the
48-bit vaddr needs to be zero-extended or sign-extended according to
different modes(`GenExceptionVa`), and then write to *tval.
Also fix some connection bugs.
show more ...
|
#
ad415ae0 |
| 21-Sep-2024 |
Xiaokun-Pei <[email protected]> |
feat(trap): support m/htinst for specific G-stage translation (#3604)
According to RISC-V priv spec, mtinst/htinst could be always written
zero on trap into M/HS-mode, except for Guest-Page-Fault t
feat(trap): support m/htinst for specific G-stage translation (#3604)
According to RISC-V priv spec, mtinst/htinst could be always written
zero on trap into M/HS-mode, except for Guest-Page-Fault traps that meet
both of the following conditions:
- the trap is caused by a G-stage translation which supports VS-stage
translation
- a nonzero value is written to mtval2/htval
"isForVSnonLeafPTE" is used only in exceptional circumstances that gpf
happens in the G-stage translation which supports VS-stage translation,
such as searching the non-leaf pte of VS-stage.
This patch adds support for writing proper value to mtinst/htinst when
specific trap occurs. And bump the nemu.
show more ...
|
#
a53daa0f |
| 11-Sep-2024 |
Haoyuan Feng <[email protected]> |
fix(exception): Add guest page fault logic of misalign and vlsu (#3537)
In our previous design, we did not consider the handling of gpf of
unaligned & vector load and stores. This commit adds a fix
fix(exception): Add guest page fault logic of misalign and vlsu (#3537)
In our previous design, we did not consider the handling of gpf of
unaligned & vector load and stores. This commit adds a fix to correctly
return the guest paddr when gpf happens in the above instructions.
show more ...
|
#
94998b06 |
| 04-Sep-2024 |
happy-lx <[email protected]> |
fix(Zicclsm, trigger): fix the problem of missing breakpoint exception (#3470)
+ @wissygh Refactored Trigger check code of Memblock.
+ Move Trigger address cmp from load S3 to S1. In addition, the
fix(Zicclsm, trigger): fix the problem of missing breakpoint exception (#3470)
+ @wissygh Refactored Trigger check code of Memblock.
+ Move Trigger address cmp from load S3 to S1. In addition, the
detection of trigger is moved from Memblock to LoadUnit.
- Once the breakpoint exception is detected, enter the exception Buffer
directly to handle the exception (previously, the
load instruction was executed first and then the exception was handled,
which would cause the mmio load to change the
status of the peripheral).
+ If Trigger address matches and the action is to enter debug mode, both
loadUnit and storeUnit will directly write this instruction back without
any execution (by setting this instruction as an exception).
+ Match trigger addresses for vector instructions in LoadUnit.
+ If both a misalign exception and a breakpoint occur, the breakpoint
exception will be processed first.
---------
Co-authored-by: chengguanghui <[email protected]>
show more ...
|
#
41d8d239 |
| 21-Aug-2024 |
happy-lx <[email protected]> |
RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)
This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches
--
RVA23: Support Zicclsm & Zama16b (Handling Unaligned Load Store by Hardware) (#3320)
This PR supports handling load store unaligned exceptions by hardware
and provides CSR-controlled switches
---------
Co-authored-by: xiaofeibao <[email protected]>
show more ...
|