Keyboard shortcuts

Press ← or β†’ to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.


WSWorkstreamDurationTeamNew InstrRemoved InstrMain OutcomeDependencies
WS1Instruction Set Updates12-16 wks2-340+15+User-mode ISA compliance, bit manipulation, atomics, set operationsNone
WS2Hypervisor & Virtualization16-20 wks2-301LPAR support, MSR[HV], per-thread partitions, KVM enablementWS3
WS3Interrupt Architecture10-12 wks237Book III-S interrupts, HSRR0/1, LPCR[AIL/HAIL], scv/rfscvNone
WS4Storage Management (MMU)20-24 wks3-4215+Radix translation, 2-level LPAR, page walker, page walk cacheNone
WS5Debug Facilities8-10 wks1-200DAWR0/1, DAWRX0/1, CIABR, Trace interruptWS2
WS6Performance Monitor6-8 wks1-200Architected PMU, MMCR0/1/2/A, PMC1-6, SIERNone
WS7VMX/VSX Implementation24-32 wks3-4400+0LCS compliance, vector registers, run Fedora/Ubuntu/RHELWS1
WS8Prefixed Instructions10-12 wks2180v3.1 support, 64-bit instructions, prefixed load/storeWS1
WS9Integration & Verification16-20 wks4-500ISA compliance suite execution, Linux boot, KVM validationAll

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

  1. OpenPOWER Foundation ISA Compliance Tests

    • Source: https://github.com/OpenPOWER-Foundation
    • Coverage: All three ISA books
    • Format: Automated test vectors
  2. Linux Test Project (LTP)

    • Validates OS-level ISA compliance
    • Tests system calls, threading, signals
    • Execution: On booted Linux
  3. glibc Test Suite

    • Critical for LCS compliance
    • Tests VMX/VSX usage in standard library
    • Execution: During Linux userspace bring-up
  4. KVM Selftests

    • Validates hypervisor functionality
    • Tests guest isolation, nested paging
    • Execution: Under KVM on Linux

Testing Infrastructure

PlatformPurposeAvailability
RTL SimulationEarly testing, debugWeek 1+
FPGA EmulationFaster testing, pre-siliconWeek 20+
SiliconFinal validationPost 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 TypeWorkstreamTimingPurpose
Unit testsWS1-WS8During developmentPer-feature validation
Integration testsWS9Weeks 36-40Cross-workstream validation
ISA Compliance SuiteWS9Weeks 36-52Official certification
Linux Test ProjectWS9Weeks 49-52OS-level validation
glibc testsWS9Weeks 49-52ABI compliance
KVM selftestsWS9Weeks 49-52Hypervisor validation
Performance benchmarksWS9Weeks 53-56Performance 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