History log of /XiangShan/src/main/scala/xiangshan/backend/rename/freelist/BaseFreeList.scala (Results 1 – 17 of 17)
Revision Date Author Comments
# 3019c601 28-Nov-2024 xiaofeibao <[email protected]>

timing(backend): pipe robCommits for better timing and area


# d1e473c9 30-May-2024 xiaofeibao <[email protected]>

Rename: fix debug_v0_rat debug_vl_rat connection


# 780712aa 19-Mar-2024 xiaofeibao-xjtu <[email protected]>

backend: new rob 8 banks read and 8 commit width


# 5f8b6c9e 07-Mar-2024 sinceforYy <[email protected]>

Backend: add clock gating to valid singal


# 6b102a39 22-Nov-2023 Haojin Tang <[email protected]>

Rab: shrink rab entry width


# c4b56310 20-Oct-2023 Haojin Tang <[email protected]>

snapshot: flush conditionally when redirect comes


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


# 870f462d 11-Aug-2023 Xuan Hu <[email protected]>

fix errors in merge master into new-backend


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


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


# 00210c34 06-Jul-2022 Yinan Xu <[email protected]>

dpq: optimize read and write timing of data module (#1610)

This commit changes the data modules in Dispatch Queue. We use one-hot
indices to read and write the data array.


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


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