Software-Defined Super Cores for Flexible Performance per Watt

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

High performance cores through frequency turbo are inefficient in terms of performance per watt, and increasing core size for higher IPC (instructions per cycle) leads to a high dependence on process technology node scaling and reduces core count, while existing performance and efficiency core architectures have a fixed and inflexible ratio of performance and efficiency.

Innovation Solution

The software defined super core (SDC) aggregates neighboring cores into a virtual construct, allowing them to run different portions of an application's instructions while maintaining the appearance of a single core, with a software framework that splits threads across these cores and hardware support for memory communication, ensuring in-order retirement and low execution overheads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If frequency turbo is used to achieve high performance cores, then performance is improved, but performance per watt efficiency deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoidperformance per watt
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent segments a single high-performance core into multiple virtual cores through time-sliced multi-threading. Instead of scaling up a single core's frequency and power consumption, the system divides the core's execution resources across multiple virtual cores, allowing parallel execution of multiple threads while maintaining lower power consumption per virtual core.

Inventive Principle:
Principle #1Segmentation

2Productivity

If core size is increased for higher IPC, then instructions per cycle is improved, but dependence on process technology node scaling increases and core count decreases

Engineering Contradiction:
ImproveIPCVSAvoidcore count
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic time-sliced multi-threading where a single physical core dynamically switches between multiple virtual cores based on workload requirements. This dynamic allocation allows the system to maintain high IPC on the physical core while virtually increasing the core count to handle multiple threads, eliminating the need for physical core multiplication and reducing dependence on process technology scaling.

Inventive Principle:
Principle #15Dynamics

3Productivity

If performance and efficiency core architecture is used, then single thread and multithread performance requirements are balanced, but the ratio of performance and efficiency cores is fixed and inflexible

Engineering Contradiction:
Improvesingle thread and multithread performanceVSAvoidcore ratio flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent makes a single physical core universal by enabling it to function as multiple virtual cores with different performance characteristics. Through software-defined configurations and time-sliced execution, the same physical hardware can adapt to serve as performance-optimized or efficiency-optimized virtual cores depending on the thread requirements, eliminating the need for fixed architectural ratios of different core types.

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

Data Source

PatentUS20250217157A1Software defined super cores
Publication Date: 2025.07.03 INTEL CORP
  • US20250217157A1 patent drawing
  • US20250217157A1 patent drawing
  • US20250217157A1 patent drawing

AI summary

Techniques for software defined super core usage are described. In some examples, a first and second processor core are to operate as a single virtual core enabled by the operating system to fetch the first set of instruction segments of the single threaded program and the second set of instruction segments of the single threaded program concurrently using flow control instructions that have been inserted into the single threaded program.