#
8b33cd30 |
| 13-Dec-2024 |
klin02 <[email protected]> |
feat(XSLog): move all XSLog outside WhenContext for collection
As data in WhenContext is not acessible in another module. To support XSLog collection, we move all XSLog and related signal outside Wh
feat(XSLog): move all XSLog outside WhenContext for collection
As data in WhenContext is not acessible in another module. To support XSLog collection, we move all XSLog and related signal outside WhenContext. For example, when(cond1){XSDebug(cond2, pable)} to XSDebug(cond1 && cond2, pable)
show more ...
|
#
bb2f3f51 |
| 12-Jul-2024 |
Tang Haojin <[email protected]> |
perf: use perfUtils in `Utility` (#3190)
Currently, log and perf utilities such as `XSPerfAccumulate` are
implemented in many repositories like XiangShan, CoupledL2 and HuanCun.
This PR unifies th
perf: use perfUtils in `Utility` (#3190)
Currently, log and perf utilities such as `XSPerfAccumulate` are
implemented in many repositories like XiangShan, CoupledL2 and HuanCun.
This PR unifies them and put them in Utility repository.
show more ...
|
#
4b0d80d8 |
| 11-Oct-2023 |
Xuan Hu <[email protected]> |
Merge upstream/master into tmp-backend-merge-master
|
#
8891a219 |
| 08-Oct-2023 |
Yinan Xu <[email protected]> |
Bump rocket-chip (#2353)
|
#
730cfbc0 |
| 16-Apr-2023 |
Xuan Hu <[email protected]> |
backend: merge v2backend into backend
|
#
124bf66a |
| 12-Apr-2023 |
Xuan Hu <[email protected]> |
backend,Core: remove dead code and comments
|
#
3b739f49 |
| 06-Mar-2023 |
Xuan Hu <[email protected]> |
v2backend: huge tmp commit
|
#
4aa9ed34 |
| 12-Jan-2023 |
fdy <[email protected]> |
vset: add vset instr support
|
#
b6c99e8e |
| 29-Dec-2022 |
ZhangZifei <[email protected]> |
Merge remote-tracking branch 'origin/master' into rf-after-issue
|
#
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
|
#
fe2fd136 |
| 26-Oct-2022 |
ZhangZifei <[email protected]> |
issue: remove delayedSrc for fpReg at RSStd
SlowPort of fpWakeup cross ExuBlock is RegNext-ed, but fpBusyTable not. This will cause error when rm delayedSrc. So, the RegNext is also removed.
|
#
c15d13ad |
| 23-Oct-2022 |
ZhangZifei <[email protected]> |
issue: delete fma midState relative codes
|
#
d16f4ea4 |
| 15-Oct-2022 |
ZhangZifei <[email protected]> |
issue: add alu and jump[csr] rs
More modification: 1. parameter RSMod to generate different submodules add case class RSMod for a list of rs's submodule's generator methods 2. remove [submodule]RSIO
issue: add alu and jump[csr] rs
More modification: 1. parameter RSMod to generate different submodules add case class RSMod for a list of rs's submodule's generator methods 2. remove [submodule]RSIO remove ALU[Jump..]RSIO, add RSExtraIO to contain all the extra io of different child class. Ugly codes. Assign DontCare to the extra io. 3. Same with 2. The submodule's io should contain all the io.
For jump: move pcMem part code into JumpRS from BaseRS
For jump and alu: add immExtractorGen for jump/alu and other child class
show more ...
|
#
7d12b265 |
| 16-Aug-2022 |
Yinan Xu <[email protected]> |
rs: re-pipeline stage0 and stage1
Move selection to stage1. Should benefit the timing for function units.
|
#
9af29e01 |
| 08-Aug-2022 |
Yinan Xu <[email protected]> |
rs: add registers for fma mid-results (#1712)
|
#
b56f947e |
| 18-Jul-2022 |
Yinan Xu <[email protected]> |
ftq,ctrl: add copies for pc and jalr_target data modules (#1661)
* ftq, ctrl: remove pc/target backend read ports, and remove redirectGen in ftq
* ctrl: add data modules for pc and jalr_target
ftq,ctrl: add copies for pc and jalr_target data modules (#1661)
* ftq, ctrl: remove pc/target backend read ports, and remove redirectGen in ftq
* ctrl: add data modules for pc and jalr_target
This commit adds two data modules for pc and jalr_target respectively.
They are the same as data modules in frontend. Should benefit timing.
* jump: reduce pc and jalr_target read latency
* ftq: add predecode redirect update target interface, valid only on ifuRedirect
* ftq, ctrl: add second write port logic of jalrTargetMem, and delay write of pc/target mem for two cycles
Co-authored-by: Lingrui98 <[email protected]>
show more ...
|
#
74515c5a |
| 12-Jul-2022 |
Yinan Xu <[email protected]> |
jump: delay pc and jalr_target for one cycle (#1640)
|
#
bcce877b |
| 12-Jul-2022 |
Yinan Xu <[email protected]> |
rs: optimize timing for dispatch and wakeup (#1621)
This commit optimizes the timing of reservation stations.
* dispatched uops are latched and bypassed to s1_out
* wakeup from slowPorts are l
rs: optimize timing for dispatch and wakeup (#1621)
This commit optimizes the timing of reservation stations.
* dispatched uops are latched and bypassed to s1_out
* wakeup from slowPorts are latched and bypassed to s1_data
* rs: optimize allocation selection
Change select policy for allocation. Should avoid issuing the just
dispatched instructions in some cases.
* rs: disable load balance for load units
show more ...
|
#
9658ce50 |
| 25-Mar-2022 |
LinJiawei <[email protected]> |
Bump chisel to 3.5.0
|
#
783011be |
| 24-Feb-2022 |
Yinan Xu <[email protected]> |
std: delay fp regfile read for one cycle (#1473)
|
#
fd7603d9 |
| 15-Dec-2021 |
Yinan Xu <[email protected]> |
rename: add fused lui and load (#1356)
This commit adds fused load support by bypassing LUI results to load.
For better timing, detection is done at the rename stage. Imm is stored
in psrc(1), p
rename: add fused lui and load (#1356)
This commit adds fused load support by bypassing LUI results to load.
For better timing, detection is done at the rename stage. Imm is stored
in psrc(1), psrc(0) and imm.
show more ...
|
#
9d4e1137 |
| 30-Nov-2021 |
Yinan Xu <[email protected]> |
rs: delay fp regfile read and wakeup for store data (#1274)
|
#
45f497a4 |
| 21-Oct-2021 |
happy-lx <[email protected]> |
asid: add asid, mainly work when hit check, not in sfence.vma (#1090)
add mmu's asid support.
1. put asid inside sram (if the entry is sram), or it will take too many sources.
2. when sfence, just
asid: add asid, mainly work when hit check, not in sfence.vma (#1090)
add mmu's asid support.
1. put asid inside sram (if the entry is sram), or it will take too many sources.
2. when sfence, just flush it all, don't care asid.
3. when hit check, check asid.
4. when asid changed, flush all the inflight ptw req for safety
5. simple asid unit test:
asid 1 write, asid 2 read and check, asid 2 write, asid 1 read and check. same va, different pa
* ASID: make satp's asid bits configurable to RW
* use AsidLength to control it
* ASID: implement asid refilling and hit checking
* TODO: sfence flush with asid
* ASID: implement sfence with asid
* TODO: extract asid from SRAMTemplate
* ASID: extract asid from SRAMTemplate
* all is down
* TODO: test
* fix write to asid
* Sfence: support rs2 of sfence and fix Fence Unit
* rs2 of Sfence should be Reg and pass it to Fence Unit
* judge the value of reg instead of the index in Fence Unit
* mmu: re-write asid
now, asid is stored inside sram, so sfence just flush it
it's a complex job to handle the problem that asid is changed but
no sfence.vma is executed. when asid is changed, all the inflight
mmu reqs are flushed but entries in storage is not influenced.
so the inflight reqs do not need to record asid, just use satp.asid
* tlb: fix bug of refill mask
* ci: add asid unit test
Co-authored-by: ZhangZifei <[email protected]>
show more ...
|
#
3feeca58 |
| 10-Oct-2021 |
zfw <[email protected]> |
riscv-crypto: support K extension (#1102)
* This commit add risc-v cryptography extension subset(zknd zkne zknh zksed zksh)
- Rename bmu to bku
- Add crypto instruction in Mdu -> bku
- Store imme
riscv-crypto: support K extension (#1102)
* This commit add risc-v cryptography extension subset(zknd zkne zknh zksed zksh)
- Rename bmu to bku
- Add crypto instruction in Mdu -> bku
- Store immediate into mdu RS
* ci: add riscv-crypto test
show more ...
|
#
65e2f311 |
| 20-Sep-2021 |
Yinan Xu <[email protected]> |
rs, fma: separate fadd and fmul issue (#1042)
This commit splits FMA instructions into FMUL and FADD for execution.
When the first two operands are ready, an FMA instruction can be issued
and th
rs, fma: separate fadd and fmul issue (#1042)
This commit splits FMA instructions into FMUL and FADD for execution.
When the first two operands are ready, an FMA instruction can be issued
and the intermediate result will be written back to RS after two cycles.
Since RS currently has DataArray to store the operands, we reuse it to
store the intermediate FMUL result.
When an FMA enters deq stage and leaves RS with only two operands, we
mark it as midState ready at this clock cycle T0.
If the instruction's third operand becomes ready at T0, it can be
selected at T1 and issued at T2, when FMUL is also finished. The
intermediate result will be sent to FADD instead of writing back to RS.
If the instruction's third operand becomes ready later, we have the data
in DataArray or at DataArray's write port. Thus, it's ok to set midState
ready at clock cycle T0.
The separation of FMA instructions will increase issue pressure since RS
needs to issue more times. However, it larges reduce FMA latency if many
FMA instructions are waiting for the third operand.
show more ...
|