Array Processor with Programmable Stride for N-Dimensional Memory Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing array processors lack flexibility in processing N-dimensional arrays with programmable per-dimension stride values, leading to inefficient memory access patterns and limited capability in performing complex operations like matrix manipulation.

Innovation Solution

The development of array processors with a custom instruction set architecture (ISA) that uses macro-instructions for iterating over memory segments, enabling programmable per-dimension stride values and allowing for zero-overhead looping and array iteration, along with a novel architecture that supports flexible N-dimensional array configurations and in-place operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If array processors use fixed memory access patterns, then hardware complexity is reduced, but adaptability for different array configurations is limited

Engineering Contradiction:
Improveadaptability for N-dimensional arraysVSAvoidhardware complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic memory access patterns through programmable stride values that can be configured for each dimension of N-dimensional arrays. The array processor allows runtime configuration of access patterns, enabling adaptation to different array configurations without requiring fixed hardware structures. This dynamic approach resolves the contradiction by making the system flexible while managing complexity through software-configurable parameters rather than hardwired complexity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameters of memory access by introducing programmable stride values and block size configurations. Instead of fixed access patterns, the system allows parameters such as stride, block size, and dimension sizes to be modified based on the specific array processing requirements. This enables the array processor to adapt to various N-dimensional array configurations while maintaining a relatively simple underlying hardware architecture.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If array processors implement zero-overhead looping, then productivity is improved, but device complexity increases due to custom ISA and macro-instructions

Engineering Contradiction:
Improvethroughput for array operationsVSAvoidcomplexity of custom ISA
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the loop control functionality directly into the array processing operations through macro-instructions. Instead of separate loop constructs that would require additional control overhead, the looping capability is integrated into the core array processing instructions. This merging eliminates the overhead of separate loop management while the custom ISA provides a streamlined interface that manages the complexity through unified instruction structures.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The zero-overhead looping mechanism ensures continuous array processing without interruption or overhead between iterations. The macro-instructions enable the array processor to maintain continuous operation on N-dimensional arrays, processing elements in a seamless flow. This continuity improves productivity by eliminating idle cycles and overhead, while the structured macro-instruction set manages the complexity of implementing such continuous operation.

Inventive Principle:
Principle #20Continuity of useful action

3Adaptability or versatility

If array processors use programmable per-dimension stride values, then adaptability for complex operations is improved, but memory access overhead increases

Engineering Contradiction:
Improvecapability for matrix manipulationVSAvoidmemory access time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent segments memory access into configurable blocks with programmable strides for each dimension. By dividing the memory access pattern into manageable blocks with specific stride values, the system can efficiently handle complex N-dimensional array operations like matrix manipulation. This segmentation allows the processor to optimize memory access by processing data in structured blocks, reducing the overall memory access time while maintaining high adaptability for different operation types.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary configuration of stride values and block sizes for memory access patterns. By pre-configuring these parameters before executing array operations, the system prepares optimized access patterns in advance. This preliminary action allows the array processor to efficiently handle complex operations like matrix manipulation without incurring runtime overhead, as the memory access parameters are already optimized and ready for execution.

Inventive Principle:
Principle #10Preliminary action

4Loss of substance

If array processors reduce intermediate memory overhead, then loss of substance is reduced, but device complexity increases due to in-place operations

Engineering Contradiction:
Improvedata movement overheadVSAvoidcomplexity of in-place operation support
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent implements in-place operations that allow array elements to be processed and updated within their original memory locations. The array processor performs computations directly on the stored data without requiring separate intermediate storage, enabling the data to serve itself through self-contained processing operations. This self-service approach eliminates the need for additional intermediate memory structures, reducing data movement overhead while the in-place operation capability is integrated into the processor's core functionality.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent extracts the intermediate memory overhead by eliminating the need for separate intermediate storage structures. Instead of using additional memory buffers or temporary storage for processing results, the system directly updates the original array data in place. This extraction of intermediate memory requirements reduces the overall memory overhead and data movement, while the in-place operation support is built into the processor architecture to manage the complexity of direct memory modification.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS12086597B2Array processor using programmable per-dimension size values and programmable per-dimension stride values for memory configuration
Publication Date: 2024.09.10 SILICON LABORATORIES INC
  • US12086597B2 patent drawing
  • US12086597B2 patent drawing
  • US12086597B2 patent drawing

AI summary

An apparatus includes an array processor to process at least one array. The apparatus further includes a memory coupled to the array processor. The at least one array is stored in memory with programmable per-dimension size and stride values.