This verification practice session will help participants learn the TLB module design in Xiangshan Kunminghu architecture and explore other components of the MMU module, while understanding general RISC-V instruction architecture design principles. Click here to register and join the QQ group (Group ID: 976081653) after submission for further communication.

The TLB (Translation Lookaside Buffer) module, part of the MMU (Memory Management Unit), handles virtual-to-physical address translation through multi-level page tables stored in memory. As a hardware accelerator, TLB caches frequently used page table entries to optimize memory access. For details, refer to ITLB Documentation.

Participation Guidelines

Complete verification tasks using the verification framework from the UnityChipForXiangShan repository. Submit your work via PR after completion.

This ITLB verification requires full-module validation. Tasks will be graded by coverage metrics. Participants should self-select functional points for testing using the following difficulty matrix:

CategoryFunction PointDescriptionDifficulty
Request HandlingTLB Request ReceivingProcess virtual address translation requests (read/write/execute)2
Hit/Miss HandlingTLB Miss HandlingTrigger page table walk on missing entries, reload TLB, and retry3
TLB Hit HandlingReturn physical address and permissions directly2
Cache ManagementReplacement PolicyImplement PLRU algorithm for entry eviction5
TLB CapacitySupport maximum entry count (impacts hit rate/hardware cost)3
TLB CompressionMerge adjacent entries/encoding optimization3
MaintenanceFlush OperationsFull/partial TLB flush via ASID switching/INVTLB instructions3
ResetClear entries and reset state on power-up1
Security & ExceptionsPermission CheckValidate access permissions (R/W/Execute) against page table attributes4
Exception HandlingHandle Page Faults (permission violations/page misses) and TLB exceptions3
IsolationASID-based isolation for process/VM TLB entries3
PerformanceParallel AccessFully associative structure supports concurrent lookups2
Multi-page SupportMixed page sizes (4KB/2MB/1GB) to reduce coverage bottlenecks4
Physical DesignTiming ConstraintsMeet pipeline timing requirements (1-3 cycle latency)2

Note: Supplementary functional points are allowed.

Bug Reporting

Report bugs via GitHub issues using the BUG REPORT template. Label issues with bug need to confirm and appropriate severity (minor/normal/serious/critical). Use ut_fronted.mmu.itlb tag. Alternatively, report in QQ group (976081653). First valid bug reports may receive additional rewards.

Submission Requirements

Submit the following packaged as:

Name_ut_fronted_mmu_itlb/
│
├── code/
│     ├── link.md
│     └── code.zip
│
├── cases/
│     ├── Function_Point/
│     │      └── Test_Case_Description.md
│     └── Function_Point/
│
└── report/
      └── file.pdf

Include:

  1. Code repository link/zip with executable tests and README
  2. Test case documentation
  3. Verification report

Rewards

Compensation will be awarded based on task difficulty and completion quality. Additional bonuses granted for first-confirmed bug reports. Intellectual property rights strictly protected.