WS3: Interrupt Architecture
Owner: TBD Duration: 10-12 weeks Priority: Critical
💬 Discuss WS3: Join #powercommons:matrix.org to discuss interrupt vector migration, HSRR0/1 implementation, and scv/rfscv strategies.
Objectives
Migrate from Book III-E interrupt model to ISA v3.0C/v3.1C interrupt architecture.
Deliverables
- Replace multiple save/restore register sets with HSRR0/1
- Implement rfid and hrfid instructions
- Remove IVPR/GIVPR, implement LPCR[AIL]/[HAIL]
- Implement scv/rfscv instructions
- Update interrupt vectors per ISA
Roadmap
Phase 1: Analysis (Weeks 1-2)
- Map Book III-E to Book III-S interrupt differences
- Design new interrupt flow
- Plan SPR transitions
Phase 2: Save/Restore Logic (Weeks 3-6)
- Remove GSRR0/1, CSRR0/1, MCSRR0/1
- Remove rfgi, rfci, rfmci instructions
- Implement hrfid
Phase 3: Vector Control (Weeks 7-9)
- Remove IVPR/GIVPR
- Implement LPCR[AIL]/[HAIL]
- Update vector address calculation
Phase 4: New Instructions (Weeks 10-11)
- Implement scv/rfscv
Phase 5: Integration (Weeks 12)
- System testing
- Performance validation
Dependencies
- WS2: Hypervisor facilities (HSRR0/1, LPCR, MSR[HV])
Risks
- Interrupt priority changes may affect real-time behavior
- Vector address calculation complexity
- Interaction with hypervisor interrupt routing
Success Criteria
- All Book III-E interrupt mechanisms removed
- ISA-compliant interrupt vectors
- scv/rfscv functional
- LPCR[AIL]/[HAIL] operational
- Pass ISA interrupt compliance tests
- Interrupt latency within 5% of baseline
Issues
Status: 27 open, 0 closed (0/27 complete)
| # | Title | Category | Tags | Status | Priority | Assignee |
|---|---|---|---|---|---|---|
| #120 | Remove GSRR0/GSRR1 registers | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #121 | Remove CSRR0/CSRR1 registers | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #122 | Remove MCSRR0/MCSRR1 registers | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #123 | Update SRR0/SRR1 usage | Interrupt | interrupt, registers | ⬜ Open | 🟠 High | - |
| #124 | Replace rfi with rfid | Interrupt | instruction, interrupt | ⬜ Open | 🟠 High | - |
| #125 | Implement hrfid instruction | Interrupt | hypervisor, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #126 | Remove rfgi instruction | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #127 | Remove rfci instruction | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #128 | Remove rfmci instruction | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #129 | Remove rfdi instruction (if exists) | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟢 Low | - |
| #130 | Remove IVPR register | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #131 | Remove GIVPR register | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #132 | Remove IVOR registers | Interrupt | cleanup, interrupt, registers | ⬜ Open | 🟠 High | - |
| #133 | Implement LPCR[AIL] functionality | Interrupt | interrupt, lpar | ⬜ Open | 🟠 High | - |
| #134 | Implement LPCR[HAIL] functionality | Interrupt | hypervisor, interrupt, lpar | ⬜ Open | 🟡 Medium | - |
| #135 | Update interrupt vector offsets per ISA | Interrupt | interrupt, vectors | ⬜ Open | 🟠 High | - |
| #136 | Implement Hypervisor-specific interrupt vectors | Interrupt | hypervisor, interrupt, vectors | ⬜ Open | 🟠 High | - |
| #137 | Implement scv instruction | Interrupt | instruction, interrupt, syscall | ⬜ Open | 🟠 High | - |
| #138 | Implement rfscv instruction | Interrupt | instruction, interrupt, syscall | ⬜ Open | 🟠 High | - |
| #139 | Update sc instruction per ISA | Interrupt | instruction, interrupt, syscall | ⬜ Open | 🟠 High | - |
| #140 | Remove wrtee instruction | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #141 | Remove wrteei instruction | Interrupt | cleanup, instruction, interrupt | ⬜ Open | 🟠 High | - |
| #142 | Update machine check architecture | Interrupt | interrupt, machine-check | ⬜ Open | 🟠 High | - |
| #143 | Update DSISR register format | Interrupt | interrupt, registers | ⬜ Open | 🟡 Medium | - |
| #144 | Update SRR1 bit layout for interrupts | Interrupt | interrupt, registers | ⬜ Open | 🟡 Medium | - |
| #145 | Create interrupt architecture test suite | Verification | testing, verification | ⬜ Open | 🟠 High | - |
| #146 | Interrupt performance characterization | Performance | performance, verification | ⬜ Open | 🟡 Medium | - |
Last updated: 2025-12-05 16:48:17