Processor Streaming Unit Stride Data Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern processors face inefficiencies in handling streaming data due to the need for sequential instructions to manage data streams, which can lead to increased workload on execution units and cache subsystems, particularly when dealing with non-contiguous or spaced data elements.

Innovation Solution

A processor with a dedicated streaming unit that can load and output data streams based on starting addresses, stride intervals, and ending addresses, allowing for concurrent processing and transformation of data streams independently of the cache subsystem, reducing cache pollution and workload on execution units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a load/store unit executes sequential instructions to fetch data from memory for streaming operations, then data can be loaded from memory, but the execution units and cache subsystem become overloaded

Engineering Contradiction:
Improvestreaming data processing throughputVSAvoidworkload on execution units and cache subsystem
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent separates streaming data processing from general-purpose load/store operations by introducing a dedicated streaming unit. This unit independently handles streaming instructions (loading data with stride calculations, advancing pointers) without requiring execution units to process each data element sequentially. The streaming unit acts as a specialized segment that offloads specific streaming tasks from the main execution path.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The streaming unit serves as an intermediary component between memory and execution units. It receives streaming instructions, autonomously fetches data streams with proper stride calculations, and delivers processed data to execution units or registers. This intermediary handles the complexity of streaming operations (address calculation, pointer advancement) separately, preventing cache pollution and execution unit overload.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If one instruction per data element is used to read data from memory, then each data element can be processed, but the processing speed is reduced

Engineering Contradiction:
Improvedata element processing accuracyVSAvoiddata stream processing speed
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The streaming unit operates autonomously to service streaming data needs without requiring individual execution unit intervention for each data element. It self-manages the complete streaming workflow: interpreting streaming instructions, calculating addresses with stride, fetching multiple data elements, and delivering them as a cohesive stream. This self-service capability eliminates the bottleneck of sequential instruction processing while maintaining precise control over each data element's retrieval.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If data is loaded through the cache subsystem for streaming operations, then data can be accessed from memory, but cache pollution increases

Engineering Contradiction:
Improvedata access simplicityVSAvoidcache pollution
Core Design Contradiction:
Ease of operationVSObject-generated harmful factors

Solution Approach 1:

The patent extracts streaming data operations from the cache subsystem's responsibility domain. The dedicated streaming unit bypasses the cache for streaming loads, fetching data directly from memory to its own private storage or directly to execution units. This extraction prevents streaming operations from contaminating the cache with non-cache-friendly access patterns (strided, non-contiguous addresses), allowing the cache to optimize for its intended workload while streaming operations proceed independently.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9043510B2Hardware streaming unit
Publication Date: 2015.05.26 ORACLE INT CORP
  • US9043510B2 patent drawing
  • US9043510B2 patent drawing
  • US9043510B2 patent drawing

AI summary

A processor having a streaming unit is disclosed. In one embodiment, a processor includes one or more execution units configured to execute instructions of a processor instruction set. The processor further includes a streaming unit configured to execute a first instruction of the processor instruction set, wherein executing the first instruction comprises the streaming unit loading a first data stream from a memory of a computer system responsive to execution of a first instruction. The first data stream comprises a plurality of data elements. The first instruction includes a first argument indicating a starting address of the first stream, a second argument indicating a stride between the data elements, and a third argument indicative of an ending address of the stream. The streaming unit is configured to output a second data stream corresponding to the first data stream.