Soft Co-Processor Service Pools for Multi-Core Offloading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core processor architectures face challenges in optimizing performance for general business applications due to homogeneous core configurations, which hinder exploitation of temporal and spatial locality, and hard-wired co-processors lack adaptability as workloads shift between functions.

Innovation Solution

The proposed solution involves organizing cores into service pools with soft co-processors optimized for specific functions, allowing a primary processor to offload tasks to available cores within these pools, thereby exploiting spatial and temporal locality for improved performance and adaptability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If homogeneous core architectures are used to allow the same software to execute on each core, then software compatibility and ease of operation are improved, but performance optimization is hindered as temporal and spatial locality cannot be easily exploited

Engineering Contradiction:
Improvesoftware compatibilityVSAvoidperformance optimization
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system segments cores into different service pools based on their specialized functions. Each core is assigned to a specific service pool (e.g., cryptography, compression, networking) and executes specialized soft co-processors tailored to that pool's function. This segmentation allows performance optimization for specific tasks while maintaining overall system functionality through multiple specialized pools.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each core is configured with local quality through specialized soft co-processors optimized for specific functions within their service pools. The local memory of each core is optimized for the specific function it performs, exploiting spatial locality by keeping frequently accessed data locally. This local optimization enables each core to achieve high performance for its designated function while the system as a whole handles diverse workloads.

Inventive Principle:
Principle #3Local quality

2Productivity

If hard-wired co-processors are used to perform particular functions efficiently, then functional performance is improved, but adaptability is reduced as the system cannot adjust when workload shifts between functions

Engineering Contradiction:
Improvefunctional performanceVSAvoidworkload adaptability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system employs dynamic soft co-processors that can be loaded and unloaded from cores based on workload demands. Unlike static hard-wired co-processors, these soft co-processors can be dynamically allocated to match current functional requirements. When workload shifts between functions, the system can dynamically reconfigure cores by loading different soft co-processor images, maintaining both high functional performance and adaptability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Each core is designed with universal capability to execute different soft co-processors depending on the service pool requirements. A single core can be reconfigured to perform multiple different functions by loading appropriate soft co-processor images. This multi-functionality allows the system to adapt to varying workload demands while maintaining efficient functional performance through specialized execution environments.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If additional hard-wired co-processors are added to handle increased workload, then processing capacity is improved, but device complexity and physical resource requirements increase

Engineering Contradiction:
Improveprocessing capacityVSAvoidphysical resources
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of adding more physical hard-wired co-processors, the system creates virtual copies of co-processor functionality through soft co-processors that can be loaded into existing cores. Multiple instances of the same or different co-processor types can be created and executed on available cores without adding physical hardware. This approach increases processing capacity while avoiding the complexity and resource overhead of additional physical components.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system changes the operational parameters of existing cores by dynamically loading different soft co-processor configurations. Rather than adding physical resources, the system alters the functional parameters of existing cores to match workload demands. This allows processing capacity to be adjusted by changing software configurations rather than adding hardware, reducing device complexity while maintaining productivity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10901799B2Soft co-processors to provide a software service function off-load architecture in a multi-core architecture
Publication Date: 2021.01.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10901799B2 patent drawing
  • US10901799B2 patent drawing
  • US10901799B2 patent drawing

AI summary

A method of distributing functions among a plurality of cores in a multi-core processing environment can include organizing cores of the multi-core processing environment into a plurality of different service pools. Each of the plurality of service pools can be associated with at least one function and have at least one core executing at least one soft co-processor that performs the associated function. The method further can include, responsive to a request from a primary processor to offload a selected function, selecting an available soft co-processor from a service pool associated with the selected function and assigning the selected function to the selected soft co-processor. The method also can include marking the selected soft co-processor as busy and, responsive to receiving an indication from the soft co-processor that processing of the selected function has completed, marking the selected soft co-processor as available.