#
c1af2986 |
| 27-Jul-2022 |
William Wang <[email protected]> |
lq: opt lq data wen (load_s2_valid) fanout (#1687)
|
#
e323d51e |
| 13-Oct-2022 |
happy-lx <[email protected]> |
lq: update data field iff load_s2 valid (#1795)
Now we update data field (fwd data, uop) in load queue when load_s2
is valid. It will help to on lq wen fanout problem.
State flags will be treate
lq: update data field iff load_s2 valid (#1795)
Now we update data field (fwd data, uop) in load queue when load_s2
is valid. It will help to on lq wen fanout problem.
State flags will be treated differently. They are still updated
accurately according to loadIn.valid
Co-authored-by: William Wang <[email protected]>
show more ...
|
#
46f74b57 |
| 06-May-2022 |
Haojin Tang <[email protected]> |
feat: parameterize load store (#1527)
* feat: parameterize load/store pipeline, etc.
* fix: use LoadPipelineWidth rather than LoadQueueSize
* fix: parameterize `rdataPtrExtNext`
* SBuffer:
feat: parameterize load store (#1527)
* feat: parameterize load/store pipeline, etc.
* fix: use LoadPipelineWidth rather than LoadQueueSize
* fix: parameterize `rdataPtrExtNext`
* SBuffer: fix idx update logic
* atomic: parameterize atomic logic in `MemBlock`
* StoreQueue: update allow enque requirement
* feat: support one load/store pipeline
* feat: parameterize `EnsbufferWidth`
* chore: resharp codes for better generated name
show more ...
|
#
6ab6918f |
| 09-Dec-2021 |
Yinan Xu <[email protected]> |
core: refactor writeback parameters (#1327)
This commit adds WritebackSink and WritebackSource parameters for
multiple modules. These traits hide implementation details from
other modules by defin
core: refactor writeback parameters (#1327)
This commit adds WritebackSink and WritebackSource parameters for
multiple modules. These traits hide implementation details from
other modules by defining IO-related functions in modules.
By using WritebackSink, ROB is able to choose the writeback sources.
Now fflags and exceptions are connected from exe units to reduce write
ports and optimize timing.
Further optimizations on write-back to RS and better coding style to
be added later.
show more ...
|
#
b36dd5fd |
| 08-Dec-2021 |
William Wang <[email protected]> |
dcache: optimize refill block timing (#1320)
Now we RegNext(refill_req) for 1 cycle. It will provide more
time for refillShouldBeBlocked calcuation
|
#
96b1e495 |
| 15-Nov-2021 |
William Wang <[email protected]> |
Optmize memblock timing (#1218)
DCache timing problem has not been solved yet. DCache structure will be further changed.
* sbuffer: add extra perf counters
* sbuffer: optmize timeout replay ch
Optmize memblock timing (#1218)
DCache timing problem has not been solved yet. DCache structure will be further changed.
* sbuffer: add extra perf counters
* sbuffer: optmize timeout replay check timing
* sbuffer: optmize do_uarch_drain check timing
Now we only compare merge entry's vtag, check will not start until
mergeIdx is generated by PriorityEncoder
* mem, lq: optmize writeback select logic timing
* dcache: replace missqueue reill req arbiter
* dcache: refactor missqueue entry select logic
* mem: add comments for lsq data
* dcache: give amo alu an extra cycle
* sbuffer: optmize sbuffer forward data read timing
show more ...
|
#
d200f594 |
| 27-Oct-2021 |
William Wang <[email protected]> |
mem: simplify software prefetch logic (#1176)
* mem: update lsu op encoding
* decode: remove prefetch bits from CtrlSignals
* mem: simplify software prefetch logic in loadpipe
* mem: fix wrong dc
mem: simplify software prefetch logic (#1176)
* mem: update lsu op encoding
* decode: remove prefetch bits from CtrlSignals
* mem: simplify software prefetch logic in loadpipe
* mem: fix wrong dcacheShouldResp assertion
show more ...
|
#
67682d05 |
| 22-Oct-2021 |
William Wang <[email protected]> |
Add ld-ld violation check (#1140)
* mem: support ld-ld violation check
* mem: do not fast wakeup if ld vio check failed
* mem: disable ld-ld vio check after core reset
|
#
ca18a0b4 |
| 20-Oct-2021 |
William Wang <[email protected]> |
mem: add Zicbom and Zicboz support (#1145)
Now we merge them for timing opt, unit test to be added later
|
#
c7160cd3 |
| 12-Oct-2021 |
William Wang <[email protected]> |
mem: update block load logic (#1035)
* mem: update block load logic
Now load will be selected as soon as the store it depends on is ready,
which is predicted by Store Sets
* mem: opt block lo
mem: update block load logic (#1035)
* mem: update block load logic
Now load will be selected as soon as the store it depends on is ready,
which is predicted by Store Sets
* mem: opt block load logic
Load blocked by std invalid will wait for that std to issue
Load blocked by load violation wait for that sta to issue
* csr: add 2 extra storeset config bits
Following bits were added to slvpredctl:
- storeset_wait_store
- storeset_no_fast_wakeup
* storeset: fix waitForSqIdx generate logic
Now right waitForSqIdx will be generated for earlier store in the same
dispatch bundle
show more ...
|
#
3f4ec46f |
| 10-Oct-2021 |
CODE-JTZ <[email protected]> |
add softprefetch (prefetch.r & prefetch.w). (#1099)
* add soft prefetch
Add the softprefetch. Actually, prefetch.r&w are an ORI which's ldest is x0, we distinguish it in decodeUnit and send it to l
add softprefetch (prefetch.r & prefetch.w). (#1099)
* add soft prefetch
Add the softprefetch. Actually, prefetch.r&w are an ORI which's ldest is x0, we distinguish it in decodeUnit and send it to ld func unit. Then, we modified some interaction signals in ordinary Load steps.
show more ...
|
#
9aca92b9 |
| 28-Sep-2021 |
Yinan Xu <[email protected]> |
misc: code clean up (#1073)
* rename Roq to Rob
* remove trailing whitespaces
* remove unused parameters
|
#
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 ...
|