History log of /XiangShan/src/main/scala/xiangshan/backend/rename/freelist/MEFreeList.scala (Results 1 – 25 of 35)
Revision Date Author Comments
# 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


12