Work Unit Stack for Multi-Core Stream Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multiple core processor systems face challenges in efficiently transitioning program execution between cores for tasks like load balancing and packet processing, due to complexities in managing state and memory across cores in event-driven, run-to-completion programming models.

Innovation Solution

The implementation of a work unit (WU) stack data structure that allows for seamless program execution between cores by carrying state, memory, and information in auxiliary variables, enabling the use of familiar programming constructs like call/return within an event-driven model, and providing an exception model for handling abnormal events.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple core processor systems are used to increase performance, then processing capacity is improved, but transitioning program execution between cores becomes difficult and complex

Engineering Contradiction:
Improveprocessing capacityVSAvoidcomplexity of transitioning execution between cores
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a work unit stack data structure as an intermediary mechanism that carries program state between processing cores. Instead of directly managing complex state transitions between cores, the work unit stack serves as a mediator that encapsulates all necessary state information (registers, memory pointers, exception status) and transfers it between cores, thereby simplifying the core transition process while maintaining multi-core processing capabilities

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If event-driven run-to-completion programming model is used, then processing efficiency is improved, but managing state and memory across cores becomes complex

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcomplexity of managing state and memory across cores
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the program stack and state management into a unified work unit stack data structure. By combining control flow information, local variables, exception state, and memory management data into a single stack-based structure, the system maintains the efficiency of event-driven run-to-completion processing while simplifying state management across cores through a unified representation

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If familiar programming constructs like call/return are used in event-driven model, then ease of programming is improved, but processing speed may be reduced due to yield points

Engineering Contradiction:
Improveease of programmingVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSSpeed

Solution Approach 1:

The patent creates a virtual call/return mechanism by copying the work unit stack data structure when function calls are made. Instead of using traditional yield points that pause execution, the system copies the current work unit stack state, switches to the copied stack for the called function, and restores the original stack upon return. This approach maintains familiar programming constructs while avoiding the performance penalty of yield points through efficient stack copying

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10841245B2Work unit stack data structures in multiple core processor system for stream data processing
Publication Date: 2020.11.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10841245B2 patent drawing
  • US10841245B2 patent drawing
  • US10841245B2 patent drawing

AI summary

Techniques are described in which a device, such as a network device, compute node or storage device, is configured to utilize a work unit (WU) stack data structure in a multiple core processor system to help manage an event driven, run-to-completion programming model of an operating system executed by the multiple core processor system. The techniques may be particularly useful when processing streams of data at high rates. The WU stack may be viewed as a stack of continuation work units used to supplement a typical program stack as an efficient means of moving the program stack between cores. The work unit data structure itself is a building block in the WU stack to compose a processing pipeline and services execution. The WU stack structure carries state, memory, and other information in auxiliary variables.