#
38c29594 |
| 26-Nov-2024 |
zhanglinjuan <[email protected]> |
feat(MemBlock): add support for Zacas extension
fix(AtomicsUnit, MemBlock): fix loss of multiple stds
In the previous design, AtomicsUnit receives stds from StdExeUnit and arbitrate at most one std
feat(MemBlock): add support for Zacas extension
fix(AtomicsUnit, MemBlock): fix loss of multiple stds
In the previous design, AtomicsUnit receives stds from StdExeUnit and arbitrate at most one std uop for one cycle. This works fine on most of the AMOs and LR/SC because they require only one std uop. However AMOCAS requires at least two std uops, which may be issued from two separate issue queues at the same time, leading to the loss of std uops.
This commit fixes this by taking all the outputs of the StdExeUnits into account with arbitration logics.
fix(AtomicsUnit): DCache req can only be sent at `s_cache_req`
fix(AtomicsUnit, difftest): fix difftest io for atomic events
fix(MainPipe): fix precedence of `&` and `=/=` operator
fix(MainPipe): AMOCAS should not wait for AMOALU
fix(MemBlock): remove unnecessary assertion
fix(MainPipe): only CAS instruction can assert `s3_cas_fail`
fix(AtomicsUnit): fix bug in data select logic
submodule(difftest): bump difftest
show more ...
|
#
1f0e2dc7 |
| 27-Sep-2021 |
Jiawei Lin <[email protected]> |
128KB L1D + non-inclusive L2/L3 (#1051)
* L1D: provide independent meta array for load pipe
* misc: reorg files in cache dir
* chore: reorg l1d related files
* bump difftest: use clang to c
128KB L1D + non-inclusive L2/L3 (#1051)
* L1D: provide independent meta array for load pipe
* misc: reorg files in cache dir
* chore: reorg l1d related files
* bump difftest: use clang to compile verialted files
* dcache: add BankedDataArray
* dcache: fix data read way_en
* dcache: fix banked data wmask
* dcache: replay conflict correctly
When conflict is detected:
* Report replay
* Disable fast wakeup
* dcache: fix bank addr match logic
* dcache: add bank conflict perf counter
* dcache: fix miss perf counters
* chore: make lsq data print perttier
* dcache: enable banked ecc array
* dcache: set dcache size to 128KB
* dcache: read mainpipe data from banked data array
* dcache: add independent mainpipe data read port
* dcache: revert size change
* Size will be changed after main pipe refactor
* Merge remote-tracking branch 'origin/master' into l1-size
* dcache: reduce banked data load conflict
* MainPipe: ReleaseData for all replacement even if it's clean
* dcache: set dcache size to 128KB
BREAKING CHANGE: l2 needed to provide right vaddr index to probe l1,
and it has to help l1 to avoid addr alias problem
* chore: fix merge conflict
* Change L2 to non-inclusive / Add alias bits in L1D
* debug: hard coded dup data array for debuging
* dcache: fix ptag width
* dcache: fix amo main pipe req
* dcache: when probe, use vaddr for main pipe req
* dcache: include vaddr in atomic unit req
* dcache: fix get_tag() function
* dcache: fix writeback paddr
* huancun: bump version
* dcache: erase block offset bits in release addr
* dcache: do not require probe vaddr != 0
* dcache: opt banked data read timing
* bump huancun
* dcache: fix atom unit pipe req vaddr
* dcache: simplify main pipe writeback_vaddr
* bump huancun
* dcache: remove debug data array
* Turn on all usr bits in L1
* Bump huancun
* Bump huancun
* enable L2 prefetcher
* bump huancun
* set non-inclusive L2/L3 + 128KB L1 as default config
* Use data in TLBundleB to hint ProbeAck beeds data
* mmu.l2tlb: mem_resp now fills multi mq pte buffer
mq entries can just deq without accessing l2tlb cache
* dcache: handle dirty userbit
* bump huancun
* chore: l1 cache code clean up
* Remove l1plus cache
* Remove HasBankedDataArrayParameters
* Add bus pmu between L3 and Mem
* bump huncun
* dcache: fix l1 probe index generate logic
* Now right probe index will be used according to the len of alias bits
* dcache: clean up amo pipeline
* DCacheParameter rowBits will be removed in the future, now we set it to 128
to make dcache work
* dcache: fix amo word index
* bump huancun
Co-authored-by: William Wang <[email protected]>
Co-authored-by: zhanglinjuan <[email protected]>
Co-authored-by: TangDan <[email protected]>
Co-authored-by: ZhangZifei <[email protected]>
Co-authored-by: wangkaifan <[email protected]>
show more ...
|