Processor Core Bandwidth Allocation Mode Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern multi-core processors face inefficiencies in thread switching due to performance penalties, imprecise allocation of execution cycles, and challenges in predicting response times, especially when multiple threads compete for resources.

Innovation Solution

An event-based allocation mode switching system that uses a scheduler to detect events and select bandwidth allocation modes, allocating execution cycles among threads based on pre-configured modes stored in a bandwidth allocation table, allowing for precise and timely resource allocation without individual thread instruction changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single pipeline processor uses operating system to manage thread switching, then multi-thread processing is enabled, but performance penalty is incurred during thread changes

Engineering Contradiction:
Improvemulti-thread processing capabilityVSAvoidprocessing performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The processor is divided into multiple pipelines (first pipeline, second pipeline, etc.), each capable of independently executing different threads simultaneously. This segmentation eliminates the need for thread switching by allowing parallel execution of multiple threads in separate pipelines, thereby resolving the performance penalty associated with OS-managed thread switching while maintaining multi-thread processing capability.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple pipelines are used to run multiple applications, then performance is improved, but power consumption and area increase substantially

Engineering Contradiction:
Improvesystem performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The system dynamically configures the number and state of active pipelines based on workload requirements. Pipelines can be activated or deactivated as needed, allowing the processor to scale its resource usage according to actual demand. This dynamic approach maintains high performance when multiple threads are running while reducing power consumption when fewer threads are active, resolving the contradiction between performance improvement and power consumption increase.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If cycle allocation is changed through processor instructions, then flexibility is achieved, but response time increases and predictability decreases

Engineering Contradiction:
Improvecycle allocation flexibilityVSAvoidresponse time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Cycle allocation parameters are pre-configured in dedicated registers before execution begins. The allocation mode register and thread-specific cycle count registers are set in advance, allowing the processor to immediately begin execution with the correct allocation parameters. This preliminary configuration eliminates the need for runtime instruction-based changes, thereby reducing response time and improving predictability while maintaining flexibility through the ability to pre-configure different allocation scenarios.

Inventive Principle:
Principle #10Preliminary action

4Adaptability or versatility

If master thread reprograms cycle count, then cycle allocation can be changed, but it takes many cycles to finish reprogramming

Engineering Contradiction:
Improvecycle count reconfigurationVSAvoidreprogramming time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

Dedicated control registers serve as intermediaries between the master thread and the pipeline execution units. The allocation mode register and cycle count registers act as pre-configured storage locations that hold the desired allocation parameters. When the master thread needs to change cycle allocation, it simply writes to these registers rather than directly reprogramming each pipeline, which streamlines the reconfiguration process and reduces the number of cycles required compared to direct pipeline reprogramming.

Inventive Principle:
Principle #24Intermediary (Mediator)

5Loss of information

If polling or feedback techniques are used to get allocation feedback, then software can detect allocation state, but response time challenges and predictability are compromised

Engineering Contradiction:
Improveallocation feedbackVSAvoidfeedback response time
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system implements a dedicated feedback mechanism where the current allocation mode is continuously reflected in readable registers (allocation mode register and cycle count registers). Software can immediately read these registers to obtain accurate feedback about the current cycle allocation state without needing to poll or wait. This direct feedback approach provides real-time visibility into allocation status, eliminating the delays and predictability issues associated with polling techniques while maintaining full information about the allocation state.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8799929B2Method and apparatus for bandwidth allocation mode switching based on relative priorities of the bandwidth allocation modes
Publication Date: 2014.08.05 MARVELL ASIA PTE LTD
  • US8799929B2 patent drawing
  • US8799929B2 patent drawing
  • US8799929B2 patent drawing

AI summary

A system, apparatus, and method for allocation mode switching on an event-driven basis are described herein. The allocation mode switching method includes detecting an event, selecting a bandwidth allocation mode associated with the detected event, and allocating a plurality of execution cycles of an instruction execution period of a processor core among a plurality of instruction execution threads based at least in part on the selected bandwidth allocation mode. Other embodiments may be described and claimed.