History log of /XiangShan/src/main/scala/xiangshan/mem/vector/VSplit.scala (Results 1 – 25 of 53)
Revision Date Author Comments
# 16c2d8bb 21-Jan-2025 Anzo <[email protected]>

timing(VLSU): fix timing issues in `VLSU` (#4158)

## Two main issues were fixed:
**Timing issue caused by too long address calculations for vector
modules:**
- Solved by moving some of the logic

timing(VLSU): fix timing issues in `VLSU` (#4158)

## Two main issues were fixed:
**Timing issue caused by too long address calculations for vector
modules:**
- Solved by moving some of the logic to the previous cycle.

---

**Timing issue caused by long exception logic of load writeback to
`VLMergeBuffer`:**
- Add one cycle to the load writeback exception, now the same number of
cycles as the load write back data.

show more ...


# 2d8a0b4a 30-Dec-2024 Anzo <[email protected]>

fix(VLSU): `mergebuffer` threshold was added (#4103)

To solve the stuckness caused by insufficient RAW, we use `threshold` to
control the execution of vector instructions.
When the mergebuffer has f

fix(VLSU): `mergebuffer` threshold was added (#4103)

To solve the stuckness caused by insufficient RAW, we use `threshold` to
control the execution of vector instructions.
When the mergebuffer has few free entries than it can hold in the flow,
we backpressure to make `IssueQueue` send the oldest `Uop` for us.

show more ...


# 9f329f86 30-Dec-2024 Anzo <[email protected]>

fix(VSplit): inactive elements of `UnitStride` are no longer executed (#4100)

Now, we no longer have `inActive` is `unit-stride` sent to the pipeline.
This will fix some bugs caused by `inActive` no

fix(VSplit): inactive elements of `UnitStride` are no longer executed (#4100)

Now, we no longer have `inActive` is `unit-stride` sent to the pipeline.
This will fix some bugs caused by `inActive` not being handled properly in `LSU`.
And will theoretically result in some performance gains.

show more ...


# b240e1c0 07-Nov-2024 Anzooooo <[email protected]>

feat(Zicclsm): refactoring misalign and support vector misalign


# 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 ...


# bd3e32c1 15-Oct-2024 sinsanction <[email protected]>

fix(Backend, Mem): add `isFromLoadUnit` to avoid other units polluting RegCache (#3731)


# df3b4b92 20-Sep-2024 Anzooooo <[email protected]>

feat(rv64v): support first only fault instruction


# c0355297 11-Sep-2024 Anzooooo <[email protected]>

feat(VLSU): set vstart when the support vector accesses anomalies


# 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 ...


# aa55b9fa 26-Sep-2024 lwd <[email protected]>

fix(VLSU): fix bug in flush of pipeline connect & skid buffer (#3646)

In the previous design, the judgment of `flush` of pipeline connect and
skid buffer is `io.in.bits.uop.robidx.needFlush(redirec

fix(VLSU): fix bug in flush of pipeline connect & skid buffer (#3646)

In the previous design, the judgment of `flush` of pipeline connect and
skid buffer is `io.in.bits.uop.robidx.needFlush(redirect)`, which will
causes the request stored in the buffer that should not be flushed to be
flushed.

The function of `flush`:
1. When `in.fire`, `flush` means to cancel request that will be buffer
stored.
2. When `!in.fire`, `flush` means to cancel the request which stored in
the buffer can't be send to the next stage, new request can't enter the
buffer.

This patch fixs the meaning of `flush` above.

show more ...


# b5287751 15-Sep-2024 Anzo <[email protected]>

fix(VLSU): fix vector unit-stride address truncation (#3589)


# 08b0bc30 03-Sep-2024 happy-lx <[email protected]>

timing(MemBlock): optimize MemBlock timing (#3467)

This PR optimizes the timing of MemBlock. Specific optimizations include
but are not limited to:
+ TLB use the redirect for the next cycle
+ Opt

timing(MemBlock): optimize MemBlock timing (#3467)

This PR optimizes the timing of MemBlock. Specific optimizations include
but are not limited to:
+ TLB use the redirect for the next cycle
+ Optimize VLSU feedback and redirect
+ Optimise ldCancel and writeback signal generation
+ Optimise TLB Query Vaddr/hlv/hlvx/valid etc
+ Delay MMIO Store writeback for 1 Cycle
+ Fix tlbNoQuery and pmp logic
+ Remove clock gating for s3_fast_rep
+ Remove wbq conflict check to LoadPipe/MainPipe
+ Remove Mux in dcache resp data
+ Optimise data generation logic of LoadUnit
+ Duplicate Register in LoadUnit for data writeback
+ Duplicate Register in loadPipe for missQueue enq
+ Add skid buffer in VLSU
+ Select data from metaArray at S1
+ Simplify the enqueuing logic of missQueue
+ Separately generate the ready logic of miss Queue
+ Relax the conditions valid for bankdataArray reads
+ Add Reg between Dcache Mainpipe with sms prefetcher
+ Optimise store exceptionBuffer pipeline

---------

Co-authored-by: weiding liu <[email protected]>
Co-authored-by: Charlie Liu <[email protected]>
Co-authored-by: good-circle <[email protected]>

show more ...


# 4a84d160 02-Sep-2024 Anzo <[email protected]>

fix(VLSU): Vector Unit-Stride instr should trigger misaligned exception (#3462)


# 9e76f400 26-Jul-2024 weiding liu <[email protected]>

Vsplit: fix bug of unit-stride split judgement

This commit also lead to batter timing, because judgement of unit-stride split will be faster.


# c8d442a6 24-Jul-2024 weiding liu <[email protected]>

Vsplit: optimize generate of ready for vector issue


# d73f3705 22-Jul-2024 Anzo <[email protected]>

VLSU: Modify the width of Veew when decode and remove some useless api (#3258)


# 3771bdd2 02-Jul-2024 weiding liu <[email protected]>

VSplit: refactor addr aligned logic for Unit-Stride


# 102b377b 27-Jun-2024 weiding liu <[email protected]>

VMergeBuffer: add ExceptionVec select By fuCfg for better timing and area


# c608693f 11-Jul-2024 weiding liu <[email protected]>

VSplit: refactor enter MergeBuffer handshark logic


# 81b02df5 19-Jun-2024 weiding liu <[email protected]>

VSplit: Optimised address generation


# a31db3ff 17-Jun-2024 weiding liu <[email protected]>

Vsplit: Parameterised splitting address 128-bits alignment checking


# c66d9614 23-May-2024 weiding liu <[email protected]>

VLSU: remove splitBuffer for timing

This commit remove SplitBuffer for better timing. The function of SplitBuffer is only used to store unsplit UOPs, and deletion has little impact.


# 2bdcaa26 30-May-2024 weiding liu <[email protected]>

VSplit: refactor ready signal send to higher-level flow

This commit refactor ready signal's logic, which will get better timing


# c41a9f78 05-Jun-2024 lwd <[email protected]>

VLSU: fix bug of vector load/store split & support segment instruction exception (#3033)

* Support segment load/store exception.
* Fix handle of inactive element when split uop.


# c79353cd 10-May-2024 weiding liu <[email protected]>

VSplit: replace the sequential queue with a freelist

Becasue of uop enqueue is out of order. when redirect, the uop which need to flush may not the head of queue, so that we replace the sequential q

VSplit: replace the sequential queue with a freelist

Becasue of uop enqueue is out of order. when redirect, the uop which need to flush may not the head of queue, so that we replace the sequential queue with freelist.

show more ...


123