A2O ISA Compliance - Workstream Summary
π¬ Join the Community! Weβre building the A2O upgrade together! Join us on Matrix: #powercommons:matrix.org to discuss implementation details, ask questions, share ideas, or collaborate on workstreams. New to Matrix? Itβs a federated, open-source chat platform - get started here.
| WS | Workstream | Duration | Team | New Instr | Removed Instr | Main Outcome | Dependencies |
|---|---|---|---|---|---|---|---|
| WS1 | Instruction Set Updates | 12-16 wks | 2-3 | 40+ | 15+ | User-mode ISA compliance, bit manipulation, atomics, set operations | None |
| WS2 | Hypervisor & Virtualization | 16-20 wks | 2-3 | 0 | 1 | LPAR support, MSR[HV], per-thread partitions, KVM enablement | WS3 |
| WS3 | Interrupt Architecture | 10-12 wks | 2 | 3 | 7 | Book III-S interrupts, HSRR0/1, LPCR[AIL/HAIL], scv/rfscv | None |
| WS4 | Storage Management (MMU) | 20-24 wks | 3-4 | 2 | 15+ | Radix translation, 2-level LPAR, page walker, page walk cache | None |
| WS5 | Debug Facilities | 8-10 wks | 1-2 | 0 | 0 | DAWR0/1, DAWRX0/1, CIABR, Trace interrupt | WS2 |
| WS6 | Performance Monitor | 6-8 wks | 1-2 | 0 | 0 | Architected PMU, MMCR0/1/2/A, PMC1-6, SIER | None |
| WS7 | VMX/VSX Implementation | 24-32 wks | 3-4 | 400+ | 0 | LCS compliance, vector registers, run Fedora/Ubuntu/RHEL | WS1 |
| WS8 | Prefixed Instructions | 10-12 wks | 2 | 18 | 0 | v3.1 support, 64-bit instructions, prefixed load/store | WS1 |
| WS9 | Integration & Verification | 16-20 wks | 4-5 | 0 | 0 | ISA compliance suite execution, Linux boot, KVM validation | All |
Instruction Count Summary
- Total New Instructions: 463+ (40 scalar + 400 VMX/VSX + 18 prefixed + 5 other)
- Total Removed Instructions: 38+ (15 user-mode + 7 interrupt + 15 MMU + 1 hypervisor)
- Net Instruction Growth: +425 instructions
Dependency Order & Execution Strategy
Phase 1 - Foundation (No Dependencies):
βββββββββββββββββββββββββββββββββββββββββββββββ
β WS1: Instructions (12-16 weeks) β
β WS3: Interrupts (10-12 weeks) β
β WS4: MMU/Radix (20-24 weeks) β CRITICALβ
β WS6: PMU (6-8 weeks) β
βββββββββββββββββββββββββββββββββββββββββββββββ
β β
Phase 2 - Dependent on Phase 1:
βββββββββββββββββββββββββββββββββββββββββββββββ
β WS2: Hypervisor (16-20 weeks) β WS3 β
β WS7: VMX/VSX (24-32 weeks) β WS1 β
β WS8: Prefixed (10-12 weeks) β WS1 β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
Phase 3 - Dependent on Phase 2:
βββββββββββββββββββββββββββββββββββββββββββββββ
β WS5: Debug (8-10 weeks) β WS2 β
βββββββββββββββββββββββββββββββββββββββββββββββ
β
Phase 4 - Integration:
βββββββββββββββββββββββββββββββββββββββββββββββ
β WS9: Integration (16-20 weeks) β ALL β
β β
COMPLIANCE SUITE EXECUTION β
βββββββββββββββββββββββββββββββββββββββββββββββ
Start in Parallel:
- WS1, WS3, WS4, WS6 (week 1)
- WS4 (MMU) is on critical path - must complete first
Start When Dependencies Met:
- WS2 starts when WS3 complete (week 12)
- WS7, WS8 start when WS1 complete (week 16)
- WS5 starts when WS2 complete (week 28)
- WS9 starts when WS4, WS2 substantially complete (week 36)
Where Compliance Suite Runs
Primary Execution: WS9 - Integration & Verification (Weeks 36-56)
Timeline:
ββ Week 36-40: Initial compliance suite execution
β ββ Book I tests (user mode)
β ββ Book II tests (virtual mode)
β ββ Book III tests (privileged mode)
β
ββ Week 41-48: Debug compliance failures
β ββ Fix identified issues
β ββ Re-run failed tests
β ββ Iterate until passing
β
ββ Week 49-52: Final compliance verification
β ββ Full suite re-run
β ββ Linux Test Project
β ββ glibc test suite
β
ββ Week 53-56: Certification
ββ Generate compliance report
ββ Document any deviations
ββ Submit for certification
Test Suites Used
-
OpenPOWER Foundation ISA Compliance Tests
- Source: https://github.com/OpenPOWER-Foundation
- Coverage: All three ISA books
- Format: Automated test vectors
-
Linux Test Project (LTP)
- Validates OS-level ISA compliance
- Tests system calls, threading, signals
- Execution: On booted Linux
-
glibc Test Suite
- Critical for LCS compliance
- Tests VMX/VSX usage in standard library
- Execution: During Linux userspace bring-up
-
KVM Selftests
- Validates hypervisor functionality
- Tests guest isolation, nested paging
- Execution: Under KVM on Linux
Testing Infrastructure
| Platform | Purpose | Availability |
|---|---|---|
| RTL Simulation | Early testing, debug | Week 1+ |
| FPGA Emulation | Faster testing, pre-silicon | Week 20+ |
| Silicon | Final validation | Post tape-out |
Test Execution Strategy
Phase 1 (Weeks 36-40): Discovery
ββ Run full compliance suite
ββ Identify all failures
ββ Categorize by workstream
ββ Assign to responsible teams
Phase 2 (Weeks 41-48): Resolution
ββ Fix bugs in parallel
ββ Re-test incrementally
ββ Track pass rate improvement
ββ Target 95%+ pass rate
Phase 3 (Weeks 49-52): Certification
ββ Achieve 100% pass rate
ββ Document exceptions (if any)
ββ Performance validation
ββ Generate compliance report
Phase 4 (Weeks 53-56): Validation
ββ Boot Linux distributions
ββ Run application workloads
ββ KVM multi-guest testing
ββ Final sign-off
Workstream Dependencies & Critical Path
Critical Path (56 weeks total):
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
WS4: Storage Management (Radix MMU)
[ββββββββββββββββββββββββ] (20-24 weeks)
β
WS2: Hypervisor & Virtualization
[ββββββββββββββββ] (16-20 weeks)
β
WS9: Integration & Verification
[ββββββββββββ] (16-20 weeks)
Parallel Workstreams (Off Critical Path)
Week: 0 10 20 30 40 50 56
| | | | | | |
WS1: [ββββββββββββ]
WS3: [ββββββββββ]
WS6: [ββββββ]
WS5: [ββββββββ]
WS8: [ββββββββββ]
WS7: [ββββββββββββββββββββββββββββ]
Key Outcomes by Workstream
WS1: Instruction Set Updates
β 40+ new arithmetic, logic, and bit manipulation instructions
β Quadword atomic operations (lq/stq/lqarx/stqcx)
β Set and compare instructions (setb, cmpeqb, cmprb)
β Modern CPU instructions (darn for random numbers)
β Clean removal of deprecated Book III-E instructions
WS2: Hypervisor & Virtualization
β LPAR support with LPCR, HRMOR, PCR
β Per-thread partitioning (critical for KVM)
β MSR[HV] replaces MSR[GS] with proper privilege model
β Hypervisor-specific SPRs (HSRR0/1, HSPRG0/1, HDAR, HDSISR)
β Enables unmodified KVM with multi-threaded guests
WS3: Interrupt Architecture
β Single HSRR0/1 save/restore (removes GSRR, CSRR, MCSRR)
β rfid and hrfid for proper privilege transitions
β LPCR[AIL]/[HAIL] for flexible interrupt addressing
β System Call Vectored (scv/rfscv) for modern syscalls
β Book III-S compliant interrupt vectors
WS4: Storage Management (CRITICAL PATH)
β Full radix tree page table walker
β Two-level (radix-on-radix) translation for LPAR
β Page walk cache for performance (<100 cycle TLB miss)
β PTCR, partition table, process table support
β Clean removal of Book III-E TLB management
β Enables modern Linux memory management
WS5: Debug Facilities
β DAWR0/1 and DAWRX0/1 for data watchpoints
β CIABR for instruction breakpoints
β Trace interrupt support
β ISA-compliant debug architecture
WS6: Performance Monitor Unit
β Architected PMU with MMCR0/1/2/A
β PMC1-6 performance counters
β SIER for sampled instruction events
β Standard event codes for portability
WS7: VMX/VSX Implementation (FOR LCS)
β 400+ vector and scalar instructions
β 32 x 128-bit vector registers (VR0-31)
β 64 x 128-bit VSX registers (VSR0-63)
β Enables glibc and standard Linux distributions
β Required for Fedora, Ubuntu, RHEL
WS8: Prefixed Instructions (v3.1)
β 64-bit instruction support
β 18 prefixed load/store instructions
β paddi for large immediates
β Enhanced addressing modes
WS9: Integration & Verification
β Full ISA compliance test suite execution
β OpenPOWER certification
β Unmodified Linux distribution boot
β KVM functionality validation
β Performance benchmarking
β Final release preparation
Decision Points
Decision #1: ISA Version
- v3.0C: Skip WS8, simpler (54 weeks total)
- v3.1C: Include WS8, current spec (56 weeks total)
- Recommendation: v3.1C (stay current)
Decision #2: Compliance Level
- SFFS: Skip WS7, custom Linux only (32 weeks saved)
- LCS: Include WS7, run standard distros (56 weeks total)
- Recommendation: LCS (enables wider adoption)
Decision #3: VMX/VSX Strategy
- Build: 24-32 weeks, full control
- License: 8-12 weeks, $$$ cost
- Open Source: 12-16 weeks, integration effort
- Recommendation: Evaluate open source cores first
Testing Locations Summary
| Test Type | Workstream | Timing | Purpose |
|---|---|---|---|
| Unit tests | WS1-WS8 | During development | Per-feature validation |
| Integration tests | WS9 | Weeks 36-40 | Cross-workstream validation |
| ISA Compliance Suite | WS9 | Weeks 36-52 | Official certification |
| Linux Test Project | WS9 | Weeks 49-52 | OS-level validation |
| glibc tests | WS9 | Weeks 49-52 | ABI compliance |
| KVM selftests | WS9 | Weeks 49-52 | Hypervisor validation |
| Performance benchmarks | WS9 | Weeks 53-56 | Performance validation |
Resource Requirements
Engineering Team
- Core RTL Engineers: 6-8
- Verification Engineers: 4-5
- Integration Engineers: 2-3
- Total: 12-16 engineers
Infrastructure
- High-performance simulation servers
- FPGA prototyping boards (optional but recommended)
- Compliance test licenses
- Linux distribution access
Timeline
- Aggressive: 18 months (high risk)
- Nominal: 20-22 months (recommended)
- Conservative: 24 months (low risk)
For detailed task breakdowns, see individual workstream documents.
Get Involved: π¬ Matrix Chat | π§ Contact | π» Code | π Full Docs