Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev btb rebase #308

Open
wants to merge 14 commits into
base: xs-dev
Choose a base branch
from
Open

Dev btb rebase #308

wants to merge 14 commits into from

Conversation

jensen-yan
Copy link
Collaborator

rebase dev-btb to the master
use --bp-type=DecoupledBPUWithBTB
to use btb BPU

- Add comprehensive README.cn.md for branch predictor module
- Provide detailed documentation for DecoupledBPUWithBTB architecture
- Include key data structures, prediction flow, and special features
- Add inline documentation for critical header files
- Create script for Kunming Lake 6-wide BTB configuration
- Remove hardcoded getDelay() methods in BTBTAGE, BTBITTAGE, DefaultBTB, and BTBRAS
- Add numDelay parameter to TimedBaseBTBPredictor base class
- Update BranchPredictor.py to use parent block size and set default numDelay values
- Simplify predictor configuration by using a common delay mechanism
not use fixed 32 byte or 0x20 byte,
now we can change it in xiangshan.py, use 64byte,
blockSize is equal to predictWidth using in FTB.
- Introduce `alignToBlockSize` parameter to control BTB prediction alignment
- Modify `stream_struct.hh` to handle fall-through address calculation based on alignment
- Update `btb.cc` to set index shift amount dynamically based on alignment
- Add configuration options in `xiangshan.py` for DecoupledBPUWithBTB
- Create script `kmh_v3_btb.sh` for BTB-based branch prediction configuration
@eastonman
Copy link
Member

Very difficult to review. May delay a few days if you want me to review the code.

- Usage: scons build/RISCV/compile_commands.json
- Ouput: in build/RISCV/compile_commands.json
- Enable SCons compilation database generation for all build variants
- Generate `compile_commands.json` in each variant directory
- Use absolute paths for better IDE integration

Change-Id: I1efb12ffd09c889235c5bea2860ca3d373701a50
- Implement comprehensive test suite for μRAS predictor using Google Test framework
- Add MockuRAS class to simulate core RAS functionality
- Create test cases covering:
  * Basic push and pop operations
  * Counter behavior
  * Stack full scenarios
  * Speculative update history
  * Prediction recovery mechanisms
- Add SConscript for test compilation
- Include detailed README.md explaining test suite structure and usage

This commit enhances the branch predictor testing infrastructure by providing
a robust test framework for the μRAS predictor.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants