History log of /XiangShan/src/main/scala/xiangshan/mem/lsqueue/ (Results 351 – 375 of 627)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
a391e08108-Aug-2021 William Wang <[email protected]>

mem: enable non pow of 2 load queue size (#912)

* Fix allocated flag update logic

248b272605-Aug-2021 William Wang <[email protected]>

mem,sq: replace !hasInflightMMIO flag with s_idle

568e7b2505-Aug-2021 Yinan Xu <[email protected]>

mem,sq: don't set commited flag when mmio commits

For simplicity, we increase cmtPtr and set commited flags when
store instructions commit from ROB. However, this causes problems
when there's an MMI

mem,sq: don't set commited flag when mmio commits

For simplicity, we increase cmtPtr and set commited flags when
store instructions commit from ROB. However, this causes problems
when there's an MMIO at the head and new instructions enqueue after
the MMIO finishes but before the MMIO commits.

For example, at cycle T0 mmio store instruction with sqPtr p0
finishes and deqPtr is increased. At cycle T1, a new store
instruction enqueues and the p0 is allocated for this new instruction.
At cycle T2, the mmio instruction commits from ROB. With cmtPtr,
p0 is set to commited. However, since p0 is allocated to the new
store instruction, the commited flag should be false.

The example causes at least two issues. (1) when redirect happens, p0
will not be flushed. (2) p0 will be commit to sbuffer before p0
writes back to store queue.

In this commit, we change how commited flag works. We add a
`hasInflightMMIO` flag. When store instructions commit, we only
set commited flag when `hasInflightMMIO` is not set.

show more ...


/XiangShan/.github/workflows/emu.yml
/XiangShan/.gitmodules
/XiangShan/Makefile
/XiangShan/build.sc
/XiangShan/debug/Makefile
/XiangShan/difftest
/XiangShan/ready-to-run
/XiangShan/scripts/xiangshan.py
/XiangShan/src/main/scala/device/AXI4UART.scala
/XiangShan/src/main/scala/top/Configs.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/ExuBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FUBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/Scheduler.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/ExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmacExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmiscExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/MulDivExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Wb.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Alu.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/StatusArray.scala
/XiangShan/src/main/scala/xiangshan/backend/regfile/Regfile.scala
StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/package.scala
/XiangShan/src/test/scala/top/SimMMIO.scala
/XiangShan/src/test/scala/top/SimTop.scala
4f2594f203-Aug-2021 William Wang <[email protected]>

sbuffer: ignore invalid forward request

1121389603-Aug-2021 William Wang <[email protected]>

mem: drain sbuffer when v/ptag mismatch

41962d7203-Aug-2021 William Wang <[email protected]>

mem: use vaddr match, paddr fix forward in sbuffer

Now we use vaddr tag to select data to be forwarded in sbuffer.
Vtag / ptag match result will be compared latter to check if vaddr
based forward is

mem: use vaddr match, paddr fix forward in sbuffer

Now we use vaddr tag to select data to be forwarded in sbuffer.
Vtag / ptag match result will be compared latter to check if vaddr
based forward is correct. If not, an microarichitectural exception
should be raised to flush SQ and committed sbuffer.

TODO: forward fail microarichitectural exception

show more ...

672f1d3502-Aug-2021 William Wang <[email protected]>

mem: use vaddr match, paddr fix forward in SQ

Vaddr Match, Paddr Fix (VMPF) store to load forward uses vaddr cam
result to select data to be forwarded. Vaddr cam result and paddr cam
result will be

mem: use vaddr match, paddr fix forward in SQ

Vaddr Match, Paddr Fix (VMPF) store to load forward uses vaddr cam
result to select data to be forwarded. Vaddr cam result and paddr cam
result will be compared to check if vaddr based forward is correct.
If not, an microarichitectural exception should be raised to flush SQ
and committed sbuffer.

TODO: forward fail microarichitectural exception

show more ...

88fbccdd29-Jul-2021 William Wang <[email protected]>

mem: add vaddr forward profiling framework

f320e0f024-Jul-2021 Yinan Xu <[email protected]>

misc: update PCL information (#899)

XiangShan is jointly released by ICT and PCL.


/XiangShan/Makefile
/XiangShan/README.md
/XiangShan/build.sc
/XiangShan/debug/Makefile
/XiangShan/debug/cputest.sh
/XiangShan/debug/env.sh
/XiangShan/debug/perf_sbuffer.sh
/XiangShan/debug/sc_stat.sh
/XiangShan/scripts/autorun/common/local_config.py
/XiangShan/scripts/autorun/common/simulator_task_goback.py
/XiangShan/scripts/autorun/common/task_tree_go_back.py
/XiangShan/scripts/autorun/config.py
/XiangShan/scripts/autorun/run.py
/XiangShan/scripts/coverage/coverage.py
/XiangShan/scripts/coverage/statistics.py
/XiangShan/scripts/statistics.py
/XiangShan/scripts/utils/lock-emu.c
/XiangShan/scripts/xiangshan.py
/XiangShan/src/main/resources/vsrc/regfile_160x64_10w16r_sim.v
/XiangShan/src/main/scala/bus/tilelink/Arbiter.scala
/XiangShan/src/main/scala/bus/tilelink/Metadata.scala
/XiangShan/src/main/scala/bus/tilelink/TLUtilities.scala
/XiangShan/src/main/scala/bus/tilelink/TileLink.scala
/XiangShan/src/main/scala/device/AXI4DummySD.scala
/XiangShan/src/main/scala/device/AXI4Flash.scala
/XiangShan/src/main/scala/device/AXI4IntrGenerator.scala
/XiangShan/src/main/scala/device/AXI4Keyboard.scala
/XiangShan/src/main/scala/device/AXI4Plic.scala
/XiangShan/src/main/scala/device/AXI4RAM.scala
/XiangShan/src/main/scala/device/AXI4SlaveModule.scala
/XiangShan/src/main/scala/device/AXI4Timer.scala
/XiangShan/src/main/scala/device/AXI4UART.scala
/XiangShan/src/main/scala/device/AXI4VGA.scala
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/difftest/Difftest.scala
/XiangShan/src/main/scala/gpu/GPU.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/ArgParser.scala
/XiangShan/src/main/scala/top/Configs.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/top/XiangShanStage.scala
/XiangShan/src/main/scala/utils/BitUtils.scala
/XiangShan/src/main/scala/utils/CircularQueuePtr.scala
/XiangShan/src/main/scala/utils/DataDontCareNode.scala
/XiangShan/src/main/scala/utils/DataModuleTemplate.scala
/XiangShan/src/main/scala/utils/DebugIdentityNode.scala
/XiangShan/src/main/scala/utils/ECC.scala
/XiangShan/src/main/scala/utils/ExcitingUtils.scala
/XiangShan/src/main/scala/utils/ExtractVerilogModules.scala
/XiangShan/src/main/scala/utils/FlushableQueue.scala
/XiangShan/src/main/scala/utils/GTimer.scala
/XiangShan/src/main/scala/utils/Hold.scala
/XiangShan/src/main/scala/utils/LFSR64.scala
/XiangShan/src/main/scala/utils/LatencyPipe.scala
/XiangShan/src/main/scala/utils/LogUtils.scala
/XiangShan/src/main/scala/utils/LookupTree.scala
/XiangShan/src/main/scala/utils/MIMOQueue.scala
/XiangShan/src/main/scala/utils/Misc.scala
/XiangShan/src/main/scala/utils/ParallelMux.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/utils/PipelineConnect.scala
/XiangShan/src/main/scala/utils/PriorityMuxDefault.scala
/XiangShan/src/main/scala/utils/PriorityMuxGen.scala
/XiangShan/src/main/scala/utils/RegMap.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/utils/ResetGen.scala
/XiangShan/src/main/scala/utils/SRAMTemplate.scala
/XiangShan/src/main/scala/utils/StopWatch.scala
/XiangShan/src/main/scala/utils/TLDump.scala
/XiangShan/src/main/scala/utils/TLIgnoreNode.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/XSDts.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/Scheduler.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/FPDecoder.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/Instructions.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/StoreSet.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/isa/predecode/predecode.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/IndexMapping.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/AluExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmacExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmiscExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/JumpExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/MulDivExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Wb.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Alu.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Fence.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Multiplier.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Radix2Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FDivSqrt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FMA.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToInt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPUSubModule.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/IntToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSA.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/BypassNetwork.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/DataArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/PayloadArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/SelectPolicy.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/StatusArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/WakeupQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/regfile/Regfile.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/BusyTable.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/RenameTable.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/AMOALU.scala
/XiangShan/src/main/scala/xiangshan/cache/AtomicsReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/InstrUncache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1Cache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/Mem.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/Probe.scala
/XiangShan/src/main/scala/xiangshan/cache/StoreReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/Uncache.scala
/XiangShan/src/main/scala/xiangshan/cache/WritebackQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/L2TLBMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUBundle.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUConst.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PageTableCache.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PageTableWalker.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/Repeater.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/BestOffsetPrefetch.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L1plusPrefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/StreamPrefetch.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Bim.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/FakeICache.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopBuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopPredictor.scala
/XiangShan/src/main/scala/xiangshan/frontend/PreDecode.scala
/XiangShan/src/main/scala/xiangshan/frontend/RAS.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/jbtac.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
/XiangShan/src/main/scala/xiangshan/mem/MaskedDataModule.scala
/XiangShan/src/main/scala/xiangshan/mem/MemUtils.scala
LSQWrapper.scala
LoadQueue.scala
LoadQueueData.scala
StoreQueue.scala
StoreQueueData.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/FakeSbuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/main/scala/xiangshan/package.scala
/XiangShan/src/main/scala/xstransforms/PrintControl.scala
/XiangShan/src/main/scala/xstransforms/PrintModuleName.scala
/XiangShan/src/test/csrc/common/axi4.cpp
/XiangShan/src/test/csrc/common/axi4.h
/XiangShan/src/test/csrc/common/common.cpp
/XiangShan/src/test/csrc/common/common.h
/XiangShan/src/test/csrc/common/compress.cpp
/XiangShan/src/test/csrc/common/compress.h
/XiangShan/src/test/csrc/common/device.cpp
/XiangShan/src/test/csrc/common/device.h
/XiangShan/src/test/csrc/common/flash.cpp
/XiangShan/src/test/csrc/common/flash.h
/XiangShan/src/test/csrc/common/keyboard.cpp
/XiangShan/src/test/csrc/common/macro.h
/XiangShan/src/test/csrc/common/ram.cpp
/XiangShan/src/test/csrc/common/ram.h
/XiangShan/src/test/csrc/common/sdcard.cpp
/XiangShan/src/test/csrc/common/sdcard.h
/XiangShan/src/test/csrc/common/uart.cpp
/XiangShan/src/test/csrc/common/vga.cpp
/XiangShan/src/test/csrc/difftest/difftest.cpp
/XiangShan/src/test/csrc/difftest/difftest.h
/XiangShan/src/test/csrc/difftest/goldenmem.cpp
/XiangShan/src/test/csrc/difftest/goldenmem.h
/XiangShan/src/test/csrc/difftest/interface.cpp
/XiangShan/src/test/csrc/difftest/interface.h
/XiangShan/src/test/csrc/difftest/nemuproxy.cpp
/XiangShan/src/test/csrc/difftest/nemuproxy.h
/XiangShan/src/test/csrc/difftest/ref.cpp
/XiangShan/src/test/csrc/difftest/ref.h
/XiangShan/src/test/csrc/vcs/main.cpp
/XiangShan/src/test/csrc/verilator/emu.cpp
/XiangShan/src/test/csrc/verilator/emu.h
/XiangShan/src/test/csrc/verilator/main.cpp
/XiangShan/src/test/csrc/verilator/snapshot.cpp
/XiangShan/src/test/csrc/verilator/snapshot.h
/XiangShan/src/test/scala/cache/CacheTest.scala
/XiangShan/src/test/scala/cache/L1DTest/CoreAgent.scala
/XiangShan/src/test/scala/cache/L1DTest/CoreTransatcion.scala
/XiangShan/src/test/scala/cache/L1DTest/L1DTest.scala
/XiangShan/src/test/scala/cache/L1plusCacheTest.scala
/XiangShan/src/test/scala/cache/L2CacheNonInclusiveGetTest.scala
/XiangShan/src/test/scala/cache/L2CacheTest.scala
/XiangShan/src/test/scala/cache/ReplaceTest.scala
/XiangShan/src/test/scala/cache/TLCTest/BigIntUtil.scala
/XiangShan/src/test/scala/cache/TLCTest/FixedBlockFuzzer.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCAgent.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTransaction.scala
/XiangShan/src/test/scala/cache/TLCTest/TLMasterMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLSlaveMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULAgent.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULMMIO.scala
/XiangShan/src/test/scala/cache/UnalignedGetTest.scala
/XiangShan/src/test/scala/top/SimMMIO.scala
/XiangShan/src/test/scala/top/SimTop.scala
/XiangShan/src/test/scala/xiangshan/testutils/AddSinks.scala
/XiangShan/src/test/scala/xiangshan/testutils/PartialDecoupledDriver.scala
/XiangShan/src/test/scala/xiangshan/testutils/TestCaseGenerator.scala
/XiangShan/src/test/testcase/Makefile
/XiangShan/src/test/testcase/tests/double-loop.c
/XiangShan/src/test/testcase/tests/nested-loop.c
/XiangShan/src/test/vsrc/common/assert.v
/XiangShan/src/test/vsrc/common/difftest.v
/XiangShan/src/test/vsrc/common/ram.v
/XiangShan/src/test/vsrc/common/ref.v
/XiangShan/src/test/vsrc/vcs/top.v
/XiangShan/tools/readmemh/Makefile
/XiangShan/tools/readmemh/gen-treadle-readmemh.c
/XiangShan/tools/readmemh/groupby-4byte.c
/XiangShan/tools/readmemh/split-readmemh.c
/XiangShan/vcs.mk
/XiangShan/verilator.mk
6d5ddbce19-Jul-2021 Lemover <[email protected]>

cache,mmu: split PTW and TLB into several files (#890)


/XiangShan/.gitignore
/XiangShan/.gitmodules
/XiangShan/.mill-version
/XiangShan/Makefile
/XiangShan/README.md
/XiangShan/build.sbt
/XiangShan/build.sc
/XiangShan/readme.zh-cn.md
/XiangShan/ready-to-run
/XiangShan/src/main/scala/top/Configs.scala
/XiangShan/src/main/scala/top/XiangShanStage.scala
/XiangShan/src/main/scala/utils/BitUtils.scala
/XiangShan/src/main/scala/utils/DataModuleTemplate.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/Scheduler.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/JumpExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Fence.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/DataArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/PayloadArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/SelectPolicy.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/StatusArray.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/L2TLBMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUBundle.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/MMUConst.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PageTableCache.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/PageTableWalker.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/Repeater.scala
/XiangShan/src/main/scala/xiangshan/cache/mmu/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/BestOffsetPrefetch.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/StreamPrefetch.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/RAS.scala
LSQWrapper.scala
LoadQueue.scala
LoadQueueData.scala
StoreQueue.scala
StoreQueueData.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xstransforms/PrintControl.scala
/XiangShan/src/test/csrc/common/common.h
/XiangShan/src/test/csrc/difftest/difftest.cpp
/XiangShan/src/test/csrc/difftest/difftest.h
/XiangShan/src/test/csrc/difftest/goldenmem.cpp
/XiangShan/src/test/csrc/difftest/nemuproxy.cpp
/XiangShan/src/test/csrc/vcs/main.cpp
/XiangShan/src/test/csrc/verilator/emu.cpp
/XiangShan/src/test/csrc/verilator/emu.h
/XiangShan/src/test/csrc/verilator/main.cpp
/XiangShan/verilator.mk
/XiangShan/xs-arch-simple.svg
e0d9a9f005-Jul-2021 Lingrui98 <[email protected]>

core: move ftq to frontend

c6d4398004-Jun-2021 Lemover <[email protected]>

Add MulanPSL-2.0 License (#824)

In this commit, we add License for XiangShan project.


/XiangShan/.mill-version
/XiangShan/LICENSE
/XiangShan/Makefile
/XiangShan/README.md
/XiangShan/block-inclusivecache-sifive
/XiangShan/build.sc
/XiangShan/debug/Makefile
/XiangShan/debug/cputest.sh
/XiangShan/debug/env.sh
/XiangShan/debug/perf_sbuffer.sh
/XiangShan/debug/sc_stat.sh
/XiangShan/rocket-chip
/XiangShan/scripts/autorun/common/local_config.py
/XiangShan/scripts/autorun/common/simulator_task_goback.py
/XiangShan/scripts/autorun/common/task_tree_go_back.py
/XiangShan/scripts/autorun/config.py
/XiangShan/scripts/autorun/run.py
/XiangShan/scripts/coverage/coverage.py
/XiangShan/scripts/coverage/statistics.py
/XiangShan/scripts/statistics.py
/XiangShan/scripts/utils/lock-emu.c
/XiangShan/scripts/xiangshan.py
/XiangShan/src/main/resources/vsrc/regfile_160x64_10w16r_sim.v
/XiangShan/src/main/scala/bus/tilelink/Arbiter.scala
/XiangShan/src/main/scala/bus/tilelink/Metadata.scala
/XiangShan/src/main/scala/bus/tilelink/TLUtilities.scala
/XiangShan/src/main/scala/bus/tilelink/TileLink.scala
/XiangShan/src/main/scala/device/AXI4DummySD.scala
/XiangShan/src/main/scala/device/AXI4Flash.scala
/XiangShan/src/main/scala/device/AXI4IntrGenerator.scala
/XiangShan/src/main/scala/device/AXI4Keyboard.scala
/XiangShan/src/main/scala/device/AXI4Plic.scala
/XiangShan/src/main/scala/device/AXI4RAM.scala
/XiangShan/src/main/scala/device/AXI4SlaveModule.scala
/XiangShan/src/main/scala/device/AXI4Timer.scala
/XiangShan/src/main/scala/device/AXI4UART.scala
/XiangShan/src/main/scala/device/AXI4VGA.scala
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/difftest/Difftest.scala
/XiangShan/src/main/scala/gpu/GPU.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/ArgParser.scala
/XiangShan/src/main/scala/top/Configs.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/top/XiangShanStage.scala
/XiangShan/src/main/scala/utils/BitUtils.scala
/XiangShan/src/main/scala/utils/CircularQueuePtr.scala
/XiangShan/src/main/scala/utils/DataDontCareNode.scala
/XiangShan/src/main/scala/utils/DataModuleTemplate.scala
/XiangShan/src/main/scala/utils/DebugIdentityNode.scala
/XiangShan/src/main/scala/utils/ECC.scala
/XiangShan/src/main/scala/utils/ExcitingUtils.scala
/XiangShan/src/main/scala/utils/ExtractVerilogModules.scala
/XiangShan/src/main/scala/utils/FlushableQueue.scala
/XiangShan/src/main/scala/utils/GTimer.scala
/XiangShan/src/main/scala/utils/Hold.scala
/XiangShan/src/main/scala/utils/LFSR64.scala
/XiangShan/src/main/scala/utils/LatencyPipe.scala
/XiangShan/src/main/scala/utils/LogUtils.scala
/XiangShan/src/main/scala/utils/LookupTree.scala
/XiangShan/src/main/scala/utils/MIMOQueue.scala
/XiangShan/src/main/scala/utils/Misc.scala
/XiangShan/src/main/scala/utils/ParallelMux.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/utils/PipelineConnect.scala
/XiangShan/src/main/scala/utils/PriorityMuxDefault.scala
/XiangShan/src/main/scala/utils/PriorityMuxGen.scala
/XiangShan/src/main/scala/utils/RegMap.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/utils/ResetGen.scala
/XiangShan/src/main/scala/utils/SRAMTemplate.scala
/XiangShan/src/main/scala/utils/StopWatch.scala
/XiangShan/src/main/scala/utils/TLDump.scala
/XiangShan/src/main/scala/utils/TLIgnoreNode.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/XSDts.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/FPDecoder.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/Instructions.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/StoreSet.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/isa/predecode/predecode.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/IndexMapping.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/AluExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmacExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmiscExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/JumpExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/MulDivExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Wb.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Alu.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Fence.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Multiplier.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Radix2Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FDivSqrt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FMA.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToInt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPUSubModule.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/IntToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSA.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/BypassNetwork.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/DataArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/PayloadArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/SelectPolicy.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/StatusArray.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/WakeupQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/regfile/Regfile.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/BusyTable.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/RenameTable.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/AMOALU.scala
/XiangShan/src/main/scala/xiangshan/cache/AtomicsReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/InstrUncache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1Cache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/Mem.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/Probe.scala
/XiangShan/src/main/scala/xiangshan/cache/StoreReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/Uncache.scala
/XiangShan/src/main/scala/xiangshan/cache/WritebackQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/BestOffsetPrefetch.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L1plusPrefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/StreamPrefetch.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Bim.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/FakeICache.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopBuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopPredictor.scala
/XiangShan/src/main/scala/xiangshan/frontend/PreDecode.scala
/XiangShan/src/main/scala/xiangshan/frontend/RAS.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/jbtac.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
/XiangShan/src/main/scala/xiangshan/mem/MaskedDataModule.scala
/XiangShan/src/main/scala/xiangshan/mem/MemUtils.scala
LSQWrapper.scala
LoadQueue.scala
LoadQueueData.scala
StoreQueue.scala
StoreQueueData.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/FakeSbuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/main/scala/xiangshan/package.scala
/XiangShan/src/main/scala/xstransforms/PrintModuleName.scala
/XiangShan/src/main/scala/xstransforms/ShowPrintTransform.scala
/XiangShan/src/test/csrc/common/axi4.cpp
/XiangShan/src/test/csrc/common/axi4.h
/XiangShan/src/test/csrc/common/common.cpp
/XiangShan/src/test/csrc/common/common.h
/XiangShan/src/test/csrc/common/compress.cpp
/XiangShan/src/test/csrc/common/compress.h
/XiangShan/src/test/csrc/common/device.cpp
/XiangShan/src/test/csrc/common/device.h
/XiangShan/src/test/csrc/common/flash.cpp
/XiangShan/src/test/csrc/common/flash.h
/XiangShan/src/test/csrc/common/keyboard.cpp
/XiangShan/src/test/csrc/common/macro.h
/XiangShan/src/test/csrc/common/ram.cpp
/XiangShan/src/test/csrc/common/ram.h
/XiangShan/src/test/csrc/common/sdcard.cpp
/XiangShan/src/test/csrc/common/sdcard.h
/XiangShan/src/test/csrc/common/uart.cpp
/XiangShan/src/test/csrc/common/vga.cpp
/XiangShan/src/test/csrc/difftest/difftest.cpp
/XiangShan/src/test/csrc/difftest/difftest.h
/XiangShan/src/test/csrc/difftest/goldenmem.cpp
/XiangShan/src/test/csrc/difftest/goldenmem.h
/XiangShan/src/test/csrc/difftest/interface.cpp
/XiangShan/src/test/csrc/difftest/interface.h
/XiangShan/src/test/csrc/difftest/nemuproxy.cpp
/XiangShan/src/test/csrc/difftest/nemuproxy.h
/XiangShan/src/test/csrc/difftest/ref.cpp
/XiangShan/src/test/csrc/difftest/ref.h
/XiangShan/src/test/csrc/vcs/main.cpp
/XiangShan/src/test/csrc/verilator/emu.cpp
/XiangShan/src/test/csrc/verilator/emu.h
/XiangShan/src/test/csrc/verilator/main.cpp
/XiangShan/src/test/csrc/verilator/snapshot.cpp
/XiangShan/src/test/csrc/verilator/snapshot.h
/XiangShan/src/test/scala/cache/CacheTest.scala
/XiangShan/src/test/scala/cache/L1DTest/CoreAgent.scala
/XiangShan/src/test/scala/cache/L1DTest/CoreTransatcion.scala
/XiangShan/src/test/scala/cache/L1DTest/L1DTest.scala
/XiangShan/src/test/scala/cache/L1plusCacheTest.scala
/XiangShan/src/test/scala/cache/L2CacheNonInclusiveGetTest.scala
/XiangShan/src/test/scala/cache/L2CacheTest.scala
/XiangShan/src/test/scala/cache/ReplaceTest.scala
/XiangShan/src/test/scala/cache/TLCTest/BigIntUtil.scala
/XiangShan/src/test/scala/cache/TLCTest/FixedBlockFuzzer.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCAgent.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTransaction.scala
/XiangShan/src/test/scala/cache/TLCTest/TLMasterMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLSlaveMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULAgent.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULMMIO.scala
/XiangShan/src/test/scala/cache/UnalignedGetTest.scala
/XiangShan/src/test/scala/top/SimMMIO.scala
/XiangShan/src/test/scala/top/SimTop.scala
/XiangShan/src/test/scala/xiangshan/testutils/AddSinks.scala
/XiangShan/src/test/scala/xiangshan/testutils/PartialDecoupledDriver.scala
/XiangShan/src/test/scala/xiangshan/testutils/TestCaseGenerator.scala
/XiangShan/src/test/testcase/Makefile
/XiangShan/src/test/testcase/tests/double-loop.c
/XiangShan/src/test/testcase/tests/nested-loop.c
/XiangShan/src/test/vsrc/common/assert.v
/XiangShan/src/test/vsrc/common/difftest.v
/XiangShan/src/test/vsrc/common/ram.v
/XiangShan/src/test/vsrc/common/ref.v
/XiangShan/src/test/vsrc/vcs/top.v
/XiangShan/tools/readmemh/Makefile
/XiangShan/tools/readmemh/gen-treadle-readmemh.c
/XiangShan/tools/readmemh/groupby-4byte.c
/XiangShan/tools/readmemh/split-readmemh.c
/XiangShan/vcs.mk
/XiangShan/verilator.mk
05f23f5712-May-2021 William Wang <[email protected]>

Configs: update MinimalConfig for FPGA (#809)

* Configs: add MinimalFPGAConfig

* TODO: change cache parameters

* Chore: add parameter print

* README: add simulation usage

Currently, Xian

Configs: update MinimalConfig for FPGA (#809)

* Configs: add MinimalFPGAConfig

* TODO: change cache parameters

* Chore: add parameter print

* README: add simulation usage

Currently, XiangShan does not support NOOP FPGA. FPGA related
instructions are removed

* Configs: limit frontend width in MinimalConfig

* MinimalConfig: limit L1/L2 cache size

* MinimalConfig: limit ptw size, disable L2

* MinimalConfig: limit L3 size

* Sbuffer: force trigger write if sbuffer fulls

show more ...

de169c6711-May-2021 William Wang <[email protected]>

backend,mem: add Store Sets memory dependence predictor (#796)

* LoadQueue: send stFtqIdx via rollback request

* It will make it possible for setore set to update its SSIT

* StoreSet: setup st

backend,mem: add Store Sets memory dependence predictor (#796)

* LoadQueue: send stFtqIdx via rollback request

* It will make it possible for setore set to update its SSIT

* StoreSet: setup store set update req

* StoreSet: add store set identifier table (SSIT)

* StoreSet: add last fetched store table (LFST)

* StoreSet: put SSIT into decode stage

* StoreSet: put LFST into dispatch1

* Future work: optimize timing

* RS: store rs now supports delayed issue

* StoreSet: add perf counter

* StoreSet: fix SSIT update logic

* StoreSet: delay LFST update input for 1 cycle

* StoreSet: fix LFST update logic

* StoreSet: fix LFST raddr width

* StoreSet: do not force store in ss issue in order

Classic store set requires store in the same store set issue in seq.
However, in current micro-architecture, such restrict will lead to
severe perf lost. We choose to disable it until we find another way
to fix it.

* StoreSet: support ooo store in the same store set

* StoreSet: fix store set merge logic

* StoreSet: check earlier store when read LFST

* If store-load pair is in the same dispatch bundle, loadWaitBit should
also be set for load

* StoreSet: increase default SSIT flush period

* StoreSet: fix LFST read logic

* Fix commit c0e541d14

* StoreSet: add StoreSetEnable parameter

* RSFeedback: add source type

* StoreQueue: split store addr and store data

* StoreQueue: update ls forward logic

* Now it supports splited addr and data

* Chore: force assign name for load/store unit

* RS: add rs'support for store a-d split

* StoreQueue: fix stlf logic

* StoreQueue: fix addr wb sq update logic

* AtomicsUnit: support splited a/d

* Parameters: disable store set by default

* WaitTable: wait table will not cause store delay

* WaitTable: recover default reset period to 2^17

* Fix dev-stad merge conflict

* StoreSet: enable storeset

* RS: disable store rs delay logic

CI perf shows that current delay logic will cause perf loss. Disable
unnecessary delay logic will help.

To be more specific, `io.readyVec` caused the problem. It will be
updated in future commits.

* RS: opt select logic with load delay (ldWait)

* StoreSet: disable 2-bit lwt

Co-authored-by: ZhangZifei <[email protected]>

show more ...


/XiangShan/.github/workflows/emu.yml
/XiangShan/.gitignore
/XiangShan/Makefile
/XiangShan/scripts/xiangshan.py
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/ArgParser.scala
/XiangShan/src/main/scala/top/Configs.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/StoreSet.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/AluExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmacExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmiscExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/MulDivExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Wb.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Alu.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Fence.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
LoadQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/package.scala
/XiangShan/src/test/csrc/vcs/main.cpp
/XiangShan/src/test/csrc/verilator/emu.cpp
/XiangShan/src/test/csrc/verilator/emu.h
/XiangShan/src/test/scala/top/SimTop.scala
/XiangShan/src/test/scala/xiangshan/testutils/TestCaseGenerator.scala
/XiangShan/src/test/vsrc/common/assert.v
/XiangShan/src/test/vsrc/common/difftest.v
/XiangShan/src/test/vsrc/common/ram.v
/XiangShan/src/test/vsrc/common/ref.v
/XiangShan/src/test/vsrc/vcs/top.v
/XiangShan/vcs.mk
/XiangShan/verilator.mk
9d5a202730-Apr-2021 Yinan Xu <[email protected]>

cache: support fake dcache, ptw, l1pluscache, l2cache and l3cache (#795)

In this commit, we add support for using DPI-C calls to replace
DCache, PTW and L1plusCache. L2Cache and L3 Cache are also a

cache: support fake dcache, ptw, l1pluscache, l2cache and l3cache (#795)

In this commit, we add support for using DPI-C calls to replace
DCache, PTW and L1plusCache. L2Cache and L3 Cache are also allowed to
be ignored or bypassed. Configurations are controlled by useFakeDCache,
useFakePTW, useFakeL1plusCache, useFakeL2Cache and useFakeL3Cache.
However, some configurations may not work correctly.

show more ...

1b7adedc30-Apr-2021 William Wang <[email protected]>

MemBlock: split store addr and store data (#781)

* RSFeedback: add source type

* StoreQueue: split store addr and store data

* StoreQueue: update ls forward logic

* Now it supports splited

MemBlock: split store addr and store data (#781)

* RSFeedback: add source type

* StoreQueue: split store addr and store data

* StoreQueue: update ls forward logic

* Now it supports splited addr and data

* Chore: force assign name for load/store unit

* RS: add rs'support for store a-d split

* StoreQueue: fix stlf logic

* StoreQueue: fix addr wb sq update logic

* AtomicsUnit: support splited a/d

* StoreQueue: add sbuffer enq condition assertion

Store data op (std) may still be invalid after store addr op's (sta)
commitment, so datavalid needs to be checked before commiting
store data to sbuffer

Note that at current commit a non-completed std op for a
commited store may exist. We should make sure that uop
will not be cancelled by a latter branch mispredict. More work
to be done!

* Roq: add std/sta split writeback logic

Now store will commit only if both sta & std have been writebacked

Co-authored-by: ZhangZifei <[email protected]>

show more ...

68f25d3829-Apr-2021 wakafa <[email protected]>

difftest: support SMP difftest (#786)

* difftest: revise coreid assignment

* nemuproxy: compatible for smp difftest

* difftest: fix goldenMem initialization problem

* difftest: goldenMem up

difftest: support SMP difftest (#786)

* difftest: revise coreid assignment

* nemuproxy: compatible for smp difftest

* difftest: fix goldenMem initialization problem

* difftest: goldenMem update works

* difftest: api compatible for modified nemu

* difftest: support load check for smp difftest
* verification is required later

* misc: remove unused xstrap wiring

* Remove unused code

* difftest: add latch for difftest-loadevent

* misc: update inclusivecache

* difftest: reset resp for sbuffer & atomic-unit to avoid duplicate update
of goldenMem

* difftest: dump coreid when difftest failed

* difftest: dump corresponding memory of another core when smp difftest failed
* Only works for dual-core

* difftest: fix interrupt handler

* difftest: cleanup code

* roq: remove legacy signal for difftest

show more ...

2225d46e19-Apr-2021 Jiawei Lin <[email protected]>

Refactor parameters, SimTop and difftest (#753)

* difftest: use DPI-C to refactor difftest

In this commit, difftest is refactored with DPI-C calls.
There're a few reasons:
(1) From Verilator's

Refactor parameters, SimTop and difftest (#753)

* difftest: use DPI-C to refactor difftest

In this commit, difftest is refactored with DPI-C calls.
There're a few reasons:
(1) From Verilator's manual, DPI-C calls should be more efficient than accessing from dut_ptr.
(2) DPI-C is cross-platform (Verilator, VCS, ...)
(3) difftest APIs are splited from emu.cpp to possibly support more backend platforms
(NEMU, Spike, ...)

The performance at this commit is quite slower than the original emu.
Performance issues will be fixed later.

* [WIP] SimTop: try to use 'XSTop' as soc

* CircularQueuePtr: ues F-bounded polymorphis instead implict helper

* Refactor parameters & Clean up code

* difftest: support basic difftest

* Support diffetst in new sim top

* Difftest; convert recode fmt to ieee754 when comparing fp regs

* Difftest: pass sign-ext pc to dpic functions && fix exception pc

* Debug: add int/exc inst wb to debug queue

* Difftest: pass sign-ext pc to dpic functions && fix exception pc

* Difftest: fix naive commit num limit

Co-authored-by: Yinan Xu <[email protected]>
Co-authored-by: William Wang <[email protected]>

show more ...


/XiangShan/Makefile
/XiangShan/Makefile.emu
/XiangShan/block-inclusivecache-sifive
/XiangShan/src/main/scala/device/AXI4Plic.scala
/XiangShan/src/main/scala/device/AXI4RAM.scala
/XiangShan/src/main/scala/device/AXI4UART.scala
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/difftest/Difftest.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/CircularQueuePtr.scala
/XiangShan/src/main/scala/utils/LogUtils.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/utils/ResetGen.scala
/XiangShan/src/main/scala/utils/TLDump.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/Parameters.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/FPDecoder.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/IndexMapping.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/AluExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Exu.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmacExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/FmiscExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/JumpExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/MulDivExeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/exu/Wb.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Alu.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Fence.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/FunctionUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Multiplier.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Radix2Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FDivSqrt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FMA.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPToInt.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FPUSubModule.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/IntToFP.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/regfile/Regfile.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/BusyTable.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/RenameTable.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/AtomicsReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/InstrUncache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1Cache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/Probe.scala
/XiangShan/src/main/scala/xiangshan/cache/StoreReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/Uncache.scala
/XiangShan/src/main/scala/xiangshan/cache/WritebackQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/BestOffsetPrefetch.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L1plusPrefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/StreamPrefetch.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Bim.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/FakeICache.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopPredictor.scala
/XiangShan/src/main/scala/xiangshan/frontend/PreDecode.scala
/XiangShan/src/main/scala/xiangshan/frontend/RAS.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/jbtac.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
/XiangShan/src/main/scala/xiangshan/mem/MaskedDataModule.scala
/XiangShan/src/main/scala/xiangshan/mem/MemUtils.scala
LSQWrapper.scala
LoadQueue.scala
LoadQueueData.scala
StoreQueue.scala
StoreQueueData.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/FakeSbuffer.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/main/scala/xiangshan/package.scala
/XiangShan/src/test/csrc/common/axi4.cpp
/XiangShan/src/test/csrc/common/axi4.h
/XiangShan/src/test/csrc/common/common.cpp
/XiangShan/src/test/csrc/common/common.h
/XiangShan/src/test/csrc/common/compress.cpp
/XiangShan/src/test/csrc/common/compress.h
/XiangShan/src/test/csrc/common/device.cpp
/XiangShan/src/test/csrc/common/device.h
/XiangShan/src/test/csrc/common/flash.cpp
/XiangShan/src/test/csrc/common/flash.h
/XiangShan/src/test/csrc/common/keyboard.cpp
/XiangShan/src/test/csrc/common/macro.h
/XiangShan/src/test/csrc/common/ram.cpp
/XiangShan/src/test/csrc/common/ram.h
/XiangShan/src/test/csrc/common/sdcard.cpp
/XiangShan/src/test/csrc/common/sdcard.h
/XiangShan/src/test/csrc/common/uart.cpp
/XiangShan/src/test/csrc/common/vga.cpp
/XiangShan/src/test/csrc/difftest/difftest.cpp
/XiangShan/src/test/csrc/difftest/difftest.h
/XiangShan/src/test/csrc/difftest/goldenmem.cpp
/XiangShan/src/test/csrc/difftest/goldenmem.h
/XiangShan/src/test/csrc/difftest/interface.cpp
/XiangShan/src/test/csrc/difftest/interface.h
/XiangShan/src/test/csrc/difftest/nemuproxy.cpp
/XiangShan/src/test/csrc/difftest/nemuproxy.h
/XiangShan/src/test/csrc/verilator/emu.cpp
/XiangShan/src/test/csrc/verilator/emu.h
/XiangShan/src/test/csrc/verilator/main.cpp
/XiangShan/src/test/csrc/verilator/snapshot.cpp
/XiangShan/src/test/csrc/verilator/snapshot.h
/XiangShan/src/test/scala/cache/L1DTest/L1DTest.scala
/XiangShan/src/test/scala/cache/L1plusCacheTest.scala
/XiangShan/src/test/scala/cache/L2CacheNonInclusiveGetTest.scala
/XiangShan/src/test/scala/cache/L2CacheTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLMasterMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLSlaveMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULMMIO.scala
/XiangShan/src/test/scala/cache/UnalignedGetTest.scala
/XiangShan/src/test/scala/top/SimMMIO.scala
/XiangShan/src/test/scala/top/SimTop.scala
/XiangShan/src/test/vsrc/difftest.v
b7b0d6c105-Apr-2021 ljw <[email protected]>

CircularQueuePtr: use F-bounded polymorphism instead of implicit helper (#750)


/XiangShan/.github/workflows/emu.yml
/XiangShan/Makefile
/XiangShan/berkeley-hardfloat
/XiangShan/block-inclusivecache-sifive
/XiangShan/build.sc
/XiangShan/src/main/scala/device/AXI4Plic.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/CircularQueuePtr.scala
/XiangShan/src/main/scala/utils/ResetGen.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/fpu/FDivSqrt.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/RAS.scala
LoadQueue.scala
StoreQueue.scala
/XiangShan/src/test/csrc/common.cpp
/XiangShan/src/test/csrc/emu.cpp
edd6ddbc31-Mar-2021 wakafa <[email protected]>

Add some in-core hardware performance counters (#731)

* csr: remove unused input perfcnt io

* perfcnt: add some in-core hardware performance counters

* perfcnt: optimize timing for hardware pe

Add some in-core hardware performance counters (#731)

* csr: remove unused input perfcnt io

* perfcnt: add some in-core hardware performance counters

* perfcnt: optimize timing for hardware performance counters

show more ...


/XiangShan/.github/workflows/emu.yml
/XiangShan/Makefile
/XiangShan/block-inclusivecache-sifive
/XiangShan/scripts/vlsi_mem_gen
/XiangShan/src/main/scala/device/AXI4Flash.scala
/XiangShan/src/main/scala/device/AXI4SlaveModule.scala
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Parameters.scala
/XiangShan/src/main/scala/utils/DataDontCareNode.scala
/XiangShan/src/main/scala/utils/DebugIdentityNode.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/utils/TLDump.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/InstrUncache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/Uncache.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L1plusPrefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
LSQWrapper.scala
LoadQueue.scala
StoreQueue.scala
/XiangShan/src/test/csrc/device.cpp
/XiangShan/src/test/csrc/difftest.cpp
/XiangShan/src/test/csrc/emu.cpp
/XiangShan/src/test/csrc/flash.cpp
/XiangShan/src/test/csrc/flash.h
/XiangShan/src/test/scala/cache/L1DTest/L1DTest.scala
/XiangShan/src/test/scala/cache/L1plusCacheTest.scala
/XiangShan/src/test/scala/cache/L2CacheNonInclusiveGetTest.scala
/XiangShan/src/test/scala/cache/L2CacheTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLCTest.scala
/XiangShan/src/test/scala/cache/TLCTest/TLMasterMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLSlaveMMIO.scala
/XiangShan/src/test/scala/cache/TLCTest/TLULMMIO.scala
/XiangShan/src/test/scala/cache/UnalignedGetTest.scala
c17003d226-Mar-2021 Allen <[email protected]>

Merge branch 'master' of github.com:RISCVERS/XiangShan

408a32b725-Mar-2021 Allen <[email protected]>

Refactor XSPerf, now we have three XSPerf Functions.
XSPerfAccumulate: sum up performance values.
XSPerfHistogram: count the occurrence of performance values, split them
into bins, so that we can est

Refactor XSPerf, now we have three XSPerf Functions.
XSPerfAccumulate: sum up performance values.
XSPerfHistogram: count the occurrence of performance values, split them
into bins, so that we can estimate their distribution.
XSPerfMax: get max of performance values.

show more ...


/XiangShan/.github/workflows/emu.yml
/XiangShan/Makefile
/XiangShan/scripts/vlsi_mem_gen
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/BitUtils.scala
/XiangShan/src/main/scala/utils/LogUtils.scala
/XiangShan/src/main/scala/utils/ParallelMux.scala
/XiangShan/src/main/scala/utils/PerfCounterUtils.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/BusyTable.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/Probe.scala
/XiangShan/src/main/scala/xiangshan/cache/StoreReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/WritebackQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L1plusPrefetcher.scala
/XiangShan/src/main/scala/xiangshan/cache/prefetch/L2Prefetcher.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Bim.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopPredictor.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
LoadQueue.scala
StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/test/csrc/emu.cpp
/XiangShan/src/test/csrc/emu.h
/XiangShan/src/test/scala/top/XSSim.scala
e90e268725-Mar-2021 wakafa <[email protected]>

Perf: add queue perf analysis utility (#714)

* perf: set acc arg of XSPerf as false by default

* perf: add write-port competition counter for intBlock & floatBlock

* perf: remove prefix of per

Perf: add queue perf analysis utility (#714)

* perf: set acc arg of XSPerf as false by default

* perf: add write-port competition counter for intBlock & floatBlock

* perf: remove prefix of perf signal

* perf: add perf-cnt for interface between frontend & backend

* perf: modify perf-cnt for prefetchers

* Ftq: bypass 'commit state' to fix dequeue bug

* perf: uptimize perf-cnt in ctrlblock & ftq

* perf: fix compilation problem in ftq

* perf: remove duplicate perf-cnt

* perf: calcu extra walk cycle exceeding frontend flush bubble

* Revert "perf: calcu extra walk cycle exceeding frontend flush bubble"

This reverts commit 2c30e9896b6af93a34e2d8d78055d810ebd0ac70.

* perf: add perf-cnt for ifu

* perf: add perf-cnt for rs

* RS: optimize numExist signal

* RS: fix some typo

* perf: add QueuePerf util to monitor usage info of queues

* perf: remove some duprecate perfcnt

show more ...


/XiangShan/.github/workflows/emu.yml
/XiangShan/Makefile
/XiangShan/scripts/vlsi_mem_gen
/XiangShan/src/main/scala/device/TLTimer.scala
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/BitUtils.scala
/XiangShan/src/main/scala/utils/LogUtils.scala
/XiangShan/src/main/scala/utils/ParallelMux.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/PMA.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeUnit.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/WaitTable.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/ftq/Ftq.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/Jump.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/SRT4Divider.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/ICacheMissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MissQueue.scala
/XiangShan/src/main/scala/xiangshan/cache/PTW.scala
/XiangShan/src/main/scala/xiangshan/cache/Probe.scala
/XiangShan/src/main/scala/xiangshan/cache/StoreReplayUnit.scala
/XiangShan/src/main/scala/xiangshan/cache/TLB.scala
/XiangShan/src/main/scala/xiangshan/cache/WritebackQueue.scala
/XiangShan/src/main/scala/xiangshan/frontend/BPU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/Frontend.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
LoadQueue.scala
StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/test/csrc/emu.cpp
/XiangShan/src/test/csrc/emu.h
/XiangShan/src/test/scala/top/XSSim.scala
d479a3a808-Mar-2021 Yinan Xu <[email protected]>

Add more performance counters (#662)


/XiangShan/Makefile
/XiangShan/src/main/scala/system/SoC.scala
/XiangShan/src/main/scala/top/Top.scala
/XiangShan/src/main/scala/utils/Replacement.scala
/XiangShan/src/main/scala/xiangshan/Bundle.scala
/XiangShan/src/main/scala/xiangshan/XSCore.scala
/XiangShan/src/main/scala/xiangshan/backend/CtrlBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/FloatBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/IntegerBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/MemBlock.scala
/XiangShan/src/main/scala/xiangshan/backend/decode/DecodeStage.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch1.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Fp.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Int.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/Dispatch2Ls.scala
/XiangShan/src/main/scala/xiangshan/backend/dispatch/DispatchQueue.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/CSR.scala
/XiangShan/src/main/scala/xiangshan/backend/fu/util/CSRConst.scala
/XiangShan/src/main/scala/xiangshan/backend/issue/ReservationStation.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/BusyTable.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/FreeList.scala
/XiangShan/src/main/scala/xiangshan/backend/rename/Rename.scala
/XiangShan/src/main/scala/xiangshan/backend/roq/Roq.scala
/XiangShan/src/main/scala/xiangshan/cache/DCache.scala
/XiangShan/src/main/scala/xiangshan/cache/DCacheWrapper.scala
/XiangShan/src/main/scala/xiangshan/cache/ICache.scala
/XiangShan/src/main/scala/xiangshan/cache/InstrUncache.scala
/XiangShan/src/main/scala/xiangshan/cache/L1plusCache.scala
/XiangShan/src/main/scala/xiangshan/cache/LoadPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/MainPipe.scala
/XiangShan/src/main/scala/xiangshan/cache/TLB.scala
/XiangShan/src/main/scala/xiangshan/frontend/Bim.scala
/XiangShan/src/main/scala/xiangshan/frontend/Btb.scala
/XiangShan/src/main/scala/xiangshan/frontend/IFU.scala
/XiangShan/src/main/scala/xiangshan/frontend/Ibuffer.scala
/XiangShan/src/main/scala/xiangshan/frontend/LoopPredictor.scala
/XiangShan/src/main/scala/xiangshan/frontend/SC.scala
/XiangShan/src/main/scala/xiangshan/frontend/Tage.scala
/XiangShan/src/main/scala/xiangshan/frontend/uBTB.scala
/XiangShan/src/main/scala/xiangshan/mem/MemUtils.scala
LoadQueue.scala
StoreQueue.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/AtomicsUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/pipeline/StoreUnit.scala
/XiangShan/src/main/scala/xiangshan/mem/sbuffer/NewSbuffer.scala
/XiangShan/src/test/csrc/emu.h
/XiangShan/src/test/csrc/main.cpp
/XiangShan/src/test/scala/top/SimMMIO.scala
/XiangShan/src/test/scala/xiangshan/memend/SbufferTest.scala
d3815aec04-Mar-2021 Yinan Xu <[email protected]>

StoreQueue: issuePtr should not exceed enqPtr (#636)

1...<<11121314151617181920>>...26