-
Notifications
You must be signed in to change notification settings - Fork 412
SimX updates for VM support #304
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
Open
Tachyon01
wants to merge
446
commits into
vortexgpgpu:vortex_vm
Choose a base branch
from
Tachyon01:Fall2025
base: vortex_vm
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Bring in latest docs, to update in this branch
Toggle the RISC-V Vector Extension on and off
CI versioning
workaroud fix for opencl kernel include in POCL
regression fix
- Add TLB configuration parameters to VX_config.vh (TLB_SIZE, TLB_LINE_SIZE, etc.) - Create TlbSim wrapper around CacheSim for TLB modeling - Integrate TLB into CacheCluster with manual request/response flow - Implement pending request tracking using HashTable - Add internal ports (tlb_req_ports_, cache_rsp_ports_) for pipeline staging - Performance impact: ~75% more cycles, 43% IPC reduction with VM enabled Tested: Both VM_ENABLE and non-VM modes pass blackbox tests
…odeling - Create ptw.h: Simplified sequential page table walker - Sequential PT walks: One walk at a time (no complex MSHR) - Multi-level support: PT_LEVEL memory accesses (2 for SV32, 3 for SV39) - Correct VPN extraction and PTE address calculation per level - Each PTE read goes through memory/cache hierarchy (realistic timing) - Simple 2-state FSM: IDLE -> READING_PTE (per level) -> IDLE - Integrate PTW into TlbSim between TLB and memory Performance impact vs no-VM: - Baseline (no VM): 12,086 cycles, IPC 0.356 - With VM + PTW: 33,764 cycles (+179%), IPC 0.128 - Realistic VM overhead modeling with sequential PT walks Code: 185 lines (vs 310 in complex version), much simpler and clearer
- Add physical address return parameter to MemoryUnit read/write functions - Enhance PTW with proper SATP base PPN tracking and traversal logic - Improve TLB integration with set_satp() method for SATP propagation - Refactor cache_cluster.h for cleaner VM request handling - Update system integration for physical address tracking throughout pipeline Total: 15 files changed, +281 insertions, -108 deletions
- Fix PTW memory request tag handling: initialize next_mem_tag_ to 1 to prevent duplicate requests for tag 0 - Remove duplicate memory access counter increment in PTW issue_pte_read - Simplify PTW perf_stats() method to directly return perf_stats_ member - Update cache cluster to properly aggregate PTW performance statistics - Update VX_config.vh and VX_types.vh with TLB and PTW related definitions - Update runtime utils to properly read and report PTW performance counters - Improve emulator and socket handling for TLB/PTW operations All changes verified with performance counter validation: - PTW walks correctly tracked - PTW memory accesses show perfect 2.0 ratio per walk (2-level page table) - TLB hit/miss statistics properly reported
SimX changes for VM support
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.