Block Organized Source View Data Structure for Processor Dependency Tracking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face inefficiencies in handling multiple tasks due to the overhead of context switching and the complexity of managing large numbers of threads, particularly in fine-grain parallelism, where hardware thread-aware architectures with duplicate context-state storage do not effectively support non-threaded software code and result in significant software overhead.

Innovation Solution

The method involves grouping instructions into blocks and using a block organized source view data structure to track instruction dependencies through register templates, allowing for efficient dependency broadcasting and reduced overhead in context switching by managing instructions at a higher level of abstraction, thereby simplifying out-of-order execution and reducing management complexity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If hardware duplicates all architecture state elements for each supported thread, then context switch overhead is eliminated for hardware-supported threads, but area, power, and complexity increase significantly

Engineering Contradiction:
Improvecontext switch overheadVSAvoidhardware complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The architecture state is segmented into multiple levels: fully duplicated state for hardware-supported threads, partially duplicated state for software threads, and shared state for common operations. This segmentation allows the system to eliminate context switch overhead for hardware threads while avoiding full duplication for software threads, thus reducing area, power, and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of thread management by implementing a hierarchical thread state structure with multiple levels of duplication. Instead of a binary choice between full duplication and no duplication, the system creates intermediate levels of state sharing, adding a dimensional layer to thread state management that resolves the contradiction between eliminating context switches and reducing hardware complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If hardware supports multiple context states for limited threads, then context switching is eliminated, but the number of supported threads is limited and area increases

Engineering Contradiction:
Improvecontext switch timeVSAvoidnumber of supported threads
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system dynamically allocates hardware thread state resources based on runtime needs. Software threads can be promoted to hardware-supported status when needed, gaining full state duplication and zero context switch overhead, while less critical threads remain in the software thread pool with partial state sharing. This dynamic allocation allows the system to support a large number of threads while eliminating context switches for the most critical ones.

Inventive Principle:
Principle #15Dynamics

3Productivity

If software threads exceed hardware-supported threads, then context switch must still be performed, but fine grain parallelism requires large number of threads

Engineering Contradiction:
Improvefine grain parallelismVSAvoidcontext switch frequency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements partial context switching by maintaining hardware thread state for only the most critical threads while using software thread state for less critical ones. This partial action approach allows the system to support fine-grain parallelism with many software threads while eliminating context switches for hardware-supported threads, achieving high productivity without excessive context switching overhead.

Inventive Principle:
Principle #16Partial or excessive action

4Loss of time

If hardware duplicates architecture state for each thread, then context switch is eliminated, but power consumption increases

Engineering Contradiction:
Improvecontext switch eliminationVSAvoidpower consumption
Core Design Contradiction:
Loss of timeVSUse of energy by moving object

Solution Approach 1:

The system applies local quality by providing full state duplication only where it is most needed - for hardware-supported threads that require zero context switch overhead. Software threads receive partial state sharing, duplicating only the critical state elements needed for their operation. This localized approach to state duplication eliminates context switches for critical threads while minimizing power consumption for less critical threads.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9934042B2Method for dependency broadcasting through a block organized source view data structure
Publication Date: 2018.04.03 INTEL CORP
  • US9934042B2 patent drawing
  • US9934042B2 patent drawing
  • US9934042B2 patent drawing

AI summary

A method for dependency broadcasting through a block organized source view data structure. The method includes receiving an incoming instruction sequence using a global front end; grouping the instructions to form instruction blocks; using a plurality of register templates to track instruction destinations and instruction sources by populating the register template with block numbers corresponding to the instruction blocks, wherein the block numbers corresponding to the instruction blocks indicate interdependencies among the blocks of instructions; populating a block organized source view data structure, wherein the source view data structure stores sources corresponding to the instruction blocks as recorded by the plurality of register templates; upon dispatch of one block of the instruction blocks, broadcasting a number belonging to the one block to a column of the source view data structure that relates that block and marking the column accordingly; and updating the dependency information of remaining instruction blocks in accordance with the broadcast.