Reach-Based Explicit Dataflow Processor for Flexible Consumer Naming

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional CPU processors face limitations in explicit dataflow communication, particularly in naming consumer instructions across instruction block boundaries, which restricts the size of computation graphs and increases memory usage due to fixed block references.

Innovation Solution

The introduction of reach-based explicit dataflow processors that allow producer instructions to explicitly name consumer instructions relative to their location, enabling communication beyond block boundaries and reducing the need for fixed block references, thereby supporting larger computation graphs with less memory overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional implicit communication using GPR namespace is used, then communication between dependent instructions is supported, but the GPR namespace has finite size causing aliasing and multiple produced values must share the same name

Engineering Contradiction:
Improvecommunication flexibilityVSAvoidnamespace size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent segments the computation into instruction blocks with block-local namespaces. Each block has its own set of producer and consumer instructions that can communicate explicitly without conflicting with other blocks. This segmentation allows the system to support more total values by distributing the namespace across multiple blocks rather than having a single global namespace.

Inventive Principle:
Principle #1Segmentation

2Reliability

If explicit communication with consumer naming is used, then notification of produced values to consumer instructions is enabled, but the bit encoding size of consumer instruction name consumes larger memory space

Engineering Contradiction:
Improvevalue notificationVSAvoidinstruction memory size
Core Design Contradiction:
ReliabilityVSWeight of stationary object

Solution Approach 1:

The patent divides the instruction stream into blocks where each block has a limited set of explicitly named consumers. The consumer names only need to reference instructions within the same block, reducing the number of bits required for encoding compared to a global reference system. This block-local scoping reduces the memory footprint of instruction encodings.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses partial explicit naming where not all consumers need to be fully named with complete identifiers. Instead, block-local offsets or relative references are used within each block, providing just enough explicitness to enable notification while minimizing the encoding overhead. This partial explicit naming achieves the notification goal without requiring full global uniqueness.

Inventive Principle:
Principle #16Partial or excessive action

3Device complexity

If instruction blocks with fixed maximum size are used, then explicit consumer naming within blocks is supported, but communication of produced values across block boundaries is limited and requires implicit communication

Engineering Contradiction:
Improveexplicit communication simplicityVSAvoidcommunication reach
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent nests instruction blocks within a larger computation graph structure. Each block is self-contained with explicit communication, but blocks can be composed hierarchically where the output of one block becomes the input of another. This nesting allows explicit communication to work at the block level while implicit or inter-block communication handles the higher-level composition, combining the benefits of both approaches.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent introduces block interfaces or intermediary mechanisms that facilitate communication between blocks. These intermediaries translate between the block-local explicit naming scheme and the global computation graph, allowing values to flow between blocks without requiring each block to have full awareness of all other blocks. This mediator approach extends communication reach while maintaining block-level simplicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Adaptability or versatility

If larger bit encoding size for consumer names is used, then more consumer instructions can be explicitly named, but more memory space is consumed for instruction storage

Engineering Contradiction:
Improveconsumer naming capacityVSAvoidinstruction memory footprint
Core Design Contradiction:
Adaptability or versatilityVSWeight of stationary object

Solution Approach 1:

The patent applies local quality by making the naming capacity vary by block context rather than using a uniform global naming scheme. Each block has its own local namespace with appropriate naming capacity for its specific needs. This allows blocks with fewer consumers to use smaller encodings while blocks needing more consumers can use larger encodings, optimizing the overall memory usage based on local requirements rather than global maximums.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11392537B2Reach-based explicit dataflow processors, and related computer-readable media and methods
Publication Date: 2022.07.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11392537B2 patent drawing
  • US11392537B2 patent drawing
  • US11392537B2 patent drawing

AI summary

Exemplary reach-based explicit dataflow processors and related computer-readable media and methods. The reach-based explicit dataflow processors are configured to support execution of producer instructions encoded with explicit naming of consumer instructions intended to consume the values produced by the producer instructions. The reach-based explicit dataflow processors are configured to make available produced values as inputs to explicitly named consumer instructions as a result of processing producer instructions. The reach-based explicit dataflow processors support execution of a producer instruction that explicitly names a consumer instruction based on using the producer instruction as a relative reference point from the producer instruction. This reach-based explicit naming architecture does not require instructions to be grouped in instruction blocks to support a fixed block reference point for explicit naming of consumer instructions, and thus is not limited to explicit naming of consumer instructions only within the same instruction block of the producer instruction.