SPU Policy Module Manager Scheduling Cell Processor Work Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current task management systems for cell processors, such as SPU Threads and SPURS, face performance limitations due to high overhead from context switches, making them unsuitable for high-performance applications that require efficient interoperation of SPU policy modules and management of code and data across multiple task classes.

Innovation Solution

The implementation of an SPU Policy Module Manager (SPMM) that manages policy modules and work queues, allowing for priority-based scheduling and minimizing context switches by loading work under the control of policy modules running on SPUs, thereby avoiding the need for PPU involvement in task management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If SPU Threads or SPURS task management systems are used to manage code and data from SPU, then task management capability is provided, but context switch overhead increases and processing speed decreases

Engineering Contradiction:
Improvetask management capabilityVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The SPU local store is designed to autonomously manage its own context data, policy modules, and work queues without requiring PPU intervention for context switches. The SPU can independently load policy modules and manage multiple work queues, eliminating the need for costly PPU-managed context switches while maintaining task management capabilities

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system divides task management into separate components: policy modules that define scheduling behavior, work queues that store task data, and context data that tracks SPU state. These segments can be independently managed and switched without requiring full context switch operations, reducing overhead while maintaining task management functionality

Inventive Principle:
Principle #1Segmentation

2Device complexity

If PPU involvement is used in SPU task management, then centralized control is achieved, but autonomy of processing is lost and performance decreases

Engineering Contradiction:
Improvecentralized controlVSAvoidautonomy of processing
Core Design Contradiction:
Device complexityVSExtent of automation

Solution Approach 1:

The SPU local store autonomously manages policy modules, work queues, and context data without PPU intervention. The SPU can independently execute tasks, switch between work queues, and manage its own state, achieving full automation and autonomy while eliminating the need for centralized PPU control in task management operations

Inventive Principle:
Principle #25Self-service

3Adaptability or versatility

If context switches are performed frequently to swap work in and out of SPU local store, then task switching capability is provided, but overhead increases and performance deteriorates

Engineering Contradiction:
Improvetask switching capabilityVSAvoidcontext switch overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system segments task management into policy modules (scheduling logic), work queues (task data), and context data (SPU state). This segmentation allows the SPU to switch between work queues and policy modules independently without requiring full context switches, providing task switching capability while minimizing overhead by only transferring necessary data segments

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP2312441B1Scheduling of instructions groups for cell processors
Publication Date: 2019.06.12 SONY INTERACTIVE ENTERTAINMENT LLC
  • EP2312441B1 patent drawingFigure 1
  • EP2312441B1 patent drawingFigure 2A
  • EP2312441B1 patent drawingFigure 2B

AI summary

Methods and apparatus for cell processors are disclosed. A policy module is loaded from a main memory of a cell processor into the local memory of a selected synergistic processing unit (SPU) under control of an SPU policy module manager (SPMM) running on the SPU. A selected one or more work queues are assigned from a main memory to a selected one or more of the SPUs according to a hierarchy of precedence. A policy module for the selected one or more work queues is loaded to the selected one or more SPUs. The policy module interprets the selected one or more of the selected one or more work queues. Under control of the policy module, work from one or more of the selected one or more work queues is loaded into the local memory of the selected SPU. The work is performed with the selected SPU. After completing the work or upon a pre-emption, control of the selected SPU is returned to the SPMM.