#
6112d994 |
| 09-Sep-2024 |
xiaofeibao <[email protected]> |
timing(Backend): remove useless ldest=/=0.U logic because rfWen will be false
|
#
780712aa |
| 19-Mar-2024 |
xiaofeibao-xjtu <[email protected]> |
backend: new rob 8 banks read and 8 commit width
|
#
4b0d80d8 |
| 11-Oct-2023 |
Xuan Hu <[email protected]> |
Merge upstream/master into tmp-backend-merge-master
|
#
b7d9e8d5 |
| 28-Sep-2023 |
xiaofeibao-xjtu <[email protected]> |
backend: parameterized generation debug IO and difftest IO
|
#
8891a219 |
| 08-Oct-2023 |
Yinan Xu <[email protected]> |
Bump rocket-chip (#2353)
|
#
e986c5de |
| 18-Sep-2023 |
Xuan Hu <[email protected]> |
backend,perf: add more PMC
|
#
c61abc0c |
| 06-Aug-2023 |
Xuan Hu <[email protected]> |
merge master into new-backend
Todo: fix error
|
#
39c59369 |
| 03-Aug-2023 |
Xuan Hu <[email protected]> |
params,backend: refactor RegFile parameters
|
#
fa7f2c26 |
| 20-Jul-2023 |
Tang Haojin <[email protected]> |
CtrlBlock: implement rename snapshot (#2191)
* CtrlBlock: new ME method for better timing and area
* ctrlblock: implement snapshot recovery
* rename: enlarge distance between snapshots
* sn
CtrlBlock: implement rename snapshot (#2191)
* CtrlBlock: new ME method for better timing and area
* ctrlblock: implement snapshot recovery
* rename: enlarge distance between snapshots
* snapshot: add rename snapshot switch
* CtrlBlock: add snapshotGen API
* snapshot: optimize timing
* snapshot: put snapshot logic in a module
show more ...
|
#
dcf3a679 |
| 12-Jul-2023 |
Tang Haojin <[email protected]> |
CtrlBlock: new ME method for better timing and area (#2161)
new move elimination method:
1. get old_pdest from arch-rat when commit;
2. get ready-for-free from comparing old-pdest with arch-rat
CtrlBlock: new ME method for better timing and area (#2161)
new move elimination method:
1. get old_pdest from arch-rat when commit;
2. get ready-for-free from comparing old-pdest with arch-rat after commit;
show more ...
|
#
a8db15d8 |
| 10-May-2023 |
fdy <[email protected]> |
backend: refactor vset and add rab support
|
#
4aa9ed34 |
| 12-Jan-2023 |
fdy <[email protected]> |
vset: add vset instr support
|
#
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 ...
|
#
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
|
#
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 ...
|
#
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
|
#
5ef86c38 |
| 25-Jun-2022 |
Yinan Xu <[email protected]> |
freelist: optimize timing of read and writing (#1593)
This commit optimizes the timing of freelist by changing the updating
function of headPtr and tailPtr.
We maintains an one-hot representatio
freelist: optimize timing of read and writing (#1593)
This commit optimizes the timing of freelist by changing the updating
function of headPtr and tailPtr.
We maintains an one-hot representation of headPtr and further uses it to
read the free registers from the list, which should be better than the
previous implementation where headPtr is used to indexed into the queue.
The update of tailPtr and the freelist is delayed by one cycle to
optimize the timing. Because freelist allocates new registers in the
next cycle iff there are more than RenameWidth free registers in this
cycle. The freed registers in this cycle will never be used in the next
cycle. Thus, we can delay the updating of queue data to the next cycle.
We also move the update of tailPtr to the next cycle, since PopCount
takes a long timing and we move the last adder to the next cycle. Now
the adder works parallely with PopCount. That is, the updating of
tailPtr is pipelined.
show more ...
|
#
1ca0e4f3 |
| 10-Dec-2021 |
Yinan Xu <[email protected]> |
core: refactor hardware performance counters (#1335)
This commit optimizes the coding style and timing for hardware
performance counters.
By default, performance counters are RegNext(RegNext(_)).
|
#
cd365d4c |
| 23-Oct-2021 |
rvcoresjw <[email protected]> |
add performance counters at core and hauncun (#1156)
* Add perf counters
* add reg from hpm counter source
* add print perfcounter enable
|
#
103fe42b |
| 21-Oct-2021 |
Yinan Xu <[email protected]> |
refCounter: delay de-allocation for one more cycle (#1144)
This commit changes how de-allocation is done in RefCounter. One cycle
after we update the reference counters, the free registers are rele
refCounter: delay de-allocation for one more cycle (#1144)
This commit changes how de-allocation is done in RefCounter. One cycle
after we update the reference counters, the free registers are released
to the freelist.
Previous version creates a critical path, starting from deallocate ports
and ending at freelist registers. This commit adds one more cycle in the
allocation --> updating reference counters --> freeing physical
registers --> allocation loop.
show more ...
|
#
70224bf6 |
| 16-Oct-2021 |
Yinan Xu <[email protected]> |
rename: support full-featured move elimination (#1123)
This commit optimizes the move elimination implementation.
Reference counting for every physical register is recorded. Originally
0-31 regi
rename: support full-featured move elimination (#1123)
This commit optimizes the move elimination implementation.
Reference counting for every physical register is recorded. Originally
0-31 registers have counters of ones. Every time the physical register
is allocated or deallocated, the counter is increased or decreased by
one. When the counter becomes zero from a non-zero value, the register
is freed and released to freelist.
show more ...
|
#
f4b2089a |
| 16-Oct-2021 |
Yinan Xu <[email protected]> |
core: use redirect ports for flush (#1121)
This commit removes flush IO for every module. Flush now re-uses
redirect ports to flush the instructions.
|
#
9aca92b9 |
| 28-Sep-2021 |
Yinan Xu <[email protected]> |
misc: code clean up (#1073)
* rename Roq to Rob
* remove trailing whitespaces
* remove unused parameters
|
#
c63125be |
| 22-Sep-2021 |
YikeZhou <[email protected]> |
backend, freelist: shrink verilog size by using scala variable instead of chisel var in MEFreeList.scala
|
#
802dc347 |
| 21-Sep-2021 |
YikeZhou <[email protected]> |
backend, freelist: simplify walk logic
|