WS4: Storage Management (MMU/Radix Translation)
Owner: TBD Duration: 20-24 weeks Priority: Critical
💬 Discuss WS4: This is a critical workstream! Join #powercommons:matrix.org to discuss radix tree translation, page walker design, and two-level LPAR support.
Objectives
Replace Book III-E TLB-based MMU with ISA v3.0C/v3.1C radix tree translation, including two-level (radix-on-radix) support for LPAR.
Deliverables
- Radix tree page table walker
- Page walk cache implementation
- Two-level translation for LPAR
- PTCR, partition table, process table
- New TLB management instructions
- Removal of Book III-E MMU
Roadmap
Phase 1: Architecture & Design (Weeks 1-4)
- Study ISA radix translation
- Design page walker architecture
- Design page walk cache
- Plan TLB integration
Phase 2: Single-Level Radix (Weeks 5-12)
- Implement partition/process tables
- Implement radix page walker
- Implement page walk cache
- Basic TLB integration
Phase 3: Two-Level Translation (Weeks 13-18)
- Implement nested radix translation
- Update page walker for 2-level
- Update page walk cache
Phase 4: Cleanup & Optimization (Weeks 19-22)
- Remove Book III-E MMU
- Performance optimization
- TLB management updates
Phase 5: Integration (Weeks 23-24)
- Full system testing
- Performance validation
Dependencies
- WS2: Hypervisor facilities (LPIDR, LPCR)
- Memory subsystem for page walker
- TLB hardware
Risks
- High Complexity: Radix walker with two-level translation is complex
- Performance: Page walk latency could be high without good caching
- Verification: Comprehensive testing required for correctness
- Schedule: Most time-consuming workstream, likely on critical path
Success Criteria
- Radix page walker functional for all page sizes
- Two-level translation working for LPAR
- Page walk cache achieves >90% hit rate
- TLB management instructions compliant
- All Book III-E MMU removed
- Pass ISA MMU compliance tests
- Linux boots with radix translation
- TLB miss latency <100 cycles (with cache hits)
Issues
Status: 40 open, 0 closed (0/40 complete)
| # | Title | Category | Tags | Status | Priority | Assignee |
|---|---|---|---|---|---|---|
| #500 | Design radix page table walker architecture | Mmu | architecture, design, mmu | ⬜ Open | 🔴 Critical | - |
| #501 | Design page walk cache architecture | Mmu | architecture, cache, design, mmu | ⬜ Open | 🔴 Critical | - |
| #502 | Implement PTCR register | Mmu | mmu, registers, spr | ⬜ Open | 🔴 Critical | - |
| #503 | Implement partition table logic | Mmu | mmu, partition-table | ⬜ Open | 🔴 Critical | - |
| #504 | Implement process table logic | Mmu | mmu, process-table | ⬜ Open | 🔴 Critical | - |
| #505 | Implement PID register | Mmu | mmu, registers, spr | ⬜ Open | 🟠 High | - |
| #506 | Implement radix page table walker state machine | Mmu | mmu, page-walker | ⬜ Open | 🔴 Critical | - |
| #507 | Implement memory interface for page walker | Mmu | memory, mmu, page-walker | ⬜ Open | 🔴 Critical | - |
| #508 | Implement page size support | Mmu | mmu, page-walker | ⬜ Open | 🟠 High | - |
| #509 | Implement reference and change bit handling | Mmu | mmu, page-walker | ⬜ Open | 🟠 High | - |
| #510 | Implement permission checking | Mmu | mmu, page-walker, security | ⬜ Open | 🟠 High | - |
| #511 | Implement page walk cache structure | Mmu | cache, mmu, performance | ⬜ Open | 🔴 Critical | - |
| #512 | Integrate page walk cache with walker | Mmu | cache, mmu, page-walker | ⬜ Open | 🔴 Critical | - |
| #513 | Implement page walk cache invalidation | Mmu | cache, mmu, tlb-management | ⬜ Open | 🟠 High | - |
| #514 | Design two-level translation architecture | Mmu | architecture, design, lpar, mmu | ⬜ Open | 🔴 Critical | - |
| #515 | Implement guest (L1) radix walker | Mmu | lpar, mmu, page-walker | ⬜ Open | 🔴 Critical | - |
| #516 | Implement host (L2) radix walker for nested translation | Mmu | lpar, mmu, page-walker | ⬜ Open | 🔴 Critical | - |
| #517 | Implement nested page walk cache | Mmu | cache, lpar, mmu, performance | ⬜ Open | 🟠 High | - |
| #518 | Implement TLB fill from page walker | Mmu | mmu, page-walker, tlb | ⬜ Open | 🔴 Critical | - |
| #519 | Implement TLB miss handling flow | Mmu | mmu, page-walker, tlb | ⬜ Open | 🔴 Critical | - |
| #520 | Implement tlbie instruction | Mmu | instruction, mmu, tlb-management | ⬜ Open | 🔴 Critical | - |
| #521 | Implement tlbiel instruction | Mmu | instruction, mmu, tlb-management | ⬜ Open | 🟠 High | - |
| #522 | Remove DEAR register, migrate to DAR | Mmu | cleanup, mmu, registers | ⬜ Open | 🟠 High | - |
| #523 | Remove ESR register, migrate to DSISR | Mmu | cleanup, mmu, registers | ⬜ Open | 🟠 High | - |
| #524 | Remove MAS registers (MAS0-8) | Mmu | cleanup, mmu, registers | ⬜ Open | 🟠 High | - |
| #525 | Remove TLB0CFG, TLB0PS, EPTCFG registers | Mmu | cleanup, mmu, registers | ⬜ Open | 🟡 Medium | - |
| #526 | Remove LRATCFG, LRATPS, LPER, LPERU registers | Mmu | cleanup, mmu, registers | ⬜ Open | 🟡 Medium | - |
| #527 | Remove EPLC, EPSC registers | Mmu | cleanup, mmu, registers | ⬜ Open | 🟡 Medium | - |
| #528 | Remove eratilx, erativax, eratre, eratsrx, eratsx, eratwe instructions | Mmu | cleanup, instruction, mmu | ⬜ Open | 🟠 High | - |
| #529 | Remove tlbilx, tlbivax, tlbre, tlbsrx, tlbsx, tlbwe instructions | Mmu | cleanup, instruction, mmu | ⬜ Open | 🟠 High | - |
| #530 | Remove external PID facility | Mmu | cleanup, external-pid, mmu | ⬜ Open | 🟡 Medium | - |
| #531 | Change endianness from per-page to global (MSR[LE]) | Mmu | endianness, mmu | ⬜ Open | 🟠 High | - |
| #532 | Create radix MMU test suite | Verification | mmu, testing, verification | ⬜ Open | 🔴 Critical | - |
| #533 | Update TLB structure for radix | Mmu | mmu, tlb | ⬜ Open | 🔴 Critical | - |
| #534 | Implement slbia instruction (if needed) | Mmu | instruction, mmu, tlb-management | ⬜ Open | 🟢 Low | - |
| #535 | Remove MMUCFG, MMUCR0-3, MMUCSR0 registers | Mmu | cleanup, mmu, registers | ⬜ Open | 🟠 High | - |
| #536 | Update alignment interrupt conditions per ISA | Mmu | alignment, interrupt, mmu | ⬜ Open | 🟡 Medium | - |
| #537 | Create LPAR MMU isolation tests | Verification | lpar, mmu, testing, verification | ⬜ Open | 🟠 High | - |
| #538 | MMU performance characterization | Performance | mmu, performance, verification | ⬜ Open | 🟠 High | - |
| #539 | Linux boot test with radix MMU | Verification | integration, mmu, testing, verification | ⬜ Open | 🔴 Critical | - |
Last updated: 2025-12-05 16:48:17