Block-Based Processor Core for Multi-Context Resource Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures face challenges in achieving sustained performance improvements due to limitations in Instruction Set Architectures (ISAs), particularly in out-of-order superscalar implementations, which are resource-intensive and inefficient in terms of energy consumption.

Innovation Solution

Implementing a block-based processor with an Explicit Data Graph Execution (EDGE) ISA that allocates resources spatially and temporally among contexts, allowing for atomic execution of instruction blocks and reducing the need for complex architectural features like register renaming and dataflow analysis, while supporting high instruction-level parallelism.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If out-of-order superscalar implementations are used, then processor performance is improved, but device complexity and energy consumption increase

Engineering Contradiction:
Improveprocessor performanceVSAvoidarchitectural complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the processor into multiple execution contexts that can be independently managed and allocated to different instruction blocks. This segmentation allows the complex out-of-order superscalar functionality to be distributed across multiple simpler context structures, reducing overall architectural complexity while maintaining high performance through parallel context execution.

Inventive Principle:
Principle #1Segmentation

2Productivity

If out-of-order superscalar implementations are used, then processor performance is improved, but energy consumption increases

Engineering Contradiction:
Improveprocessor performanceVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent implements dynamic context allocation where execution contexts are dynamically created, modified, and destroyed based on the instruction block requirements. This dynamic approach allows the processor to activate only the necessary execution resources for each task, reducing energy consumption compared to permanently active out-of-order superscalar structures, while maintaining high performance when needed.

Inventive Principle:
Principle #15Dynamics

3Productivity

If resources are allocated to multiple contexts simultaneously, then throughput is improved, but resource overhead increases

Engineering Contradiction:
ImprovethroughputVSAvoidresource overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent designs execution contexts with universal, multi-functional resources that can serve multiple purposes across different contexts. Resources such as the instruction window, register file, and execution units are designed to be shared or replicated in a way that allows them to function across multiple contexts, reducing overall resource overhead while enabling high throughput through simultaneous multi-context execution.

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

Data Source

PatentUS12554506B2Executing multiple programs simultaneously on a processor core
Publication Date: 2026.02.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US12554506B2 patent drawing
  • US12554506B2 patent drawing
  • US12554506B2 patent drawing

AI summary

Systems and methods are disclosed for allocating resources to contexts in block-based processor architectures. In one example of the disclosed technology, a processor is configured to spatially allocate resources between multiple contexts being executed by the processor, including caches, functional units, and register files. In a second example of the disclosed technology, a processor is configured to temporally allocate resources between multiple contexts, for example, on a clock cycle basis, including caches, register files, and branch predictors. Each context is guaranteed access to its allocated resources to avoid starvation from contexts competing for resources of the processor. A results buffer can be used for folding larger instruction blocks into portions that can be mapped to smaller-sized instruction windows. The results buffer stores operand results that can be passed to subsequent portions of an instruction block.