Dynamic ALU Reconfiguration for Parallel and Serial Vector Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current pipelined computing architectures, including SIMD architectures, face inefficiencies in processing instructions and data, as they are limited to either parallel processing across multiple ALUs or serial processing in a single ALU, without the ability to dynamically switch between modes efficiently, leading to suboptimal performance in various computational tasks such as geometry and pixel shader programs.

Innovation Solution

The proposed solution involves a graphics processing apparatus with a register file and multiple ALUs that can operate in either horizontal or vertical modes, using pre-processing and post-processing logic to dynamically reconfigure instructions and data for efficient processing. This includes pre-formatting data for parallel processing across multiple ALUs in horizontal mode and reformatting for serial processing in a single ALU in vertical mode, with logic for shift, delay, and rotation operations to manage data flow efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is organized for parallel processing across multiple ALUs in SIMD architecture, then computational throughput is improved, but flexibility to perform serial processing in a single ALU is lost

Engineering Contradiction:
Improvecomputational throughputVSAvoidprocessing mode flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The system dynamically reconfigures the data flow path between the register file and ALUs based on the processing mode requirement. Pre-processing logic detects whether serial or parallel mode is needed and reconfigures the data routing accordingly, allowing the same hardware to adapt between different processing modes without physical reconfiguration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The same set of ALUs and data pathways are designed to serve dual purposes: they can process data in parallel across multiple ALUs for SIMD operations, or sequentially through a single ALU for serial operations. The pre-processing and post-processing logic enables this multi-functionality by reformatting data appropriately for each mode.

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

2Speed

If hardware is designed with multiple ALUs for parallel processing, then processing speed is improved, but hardware complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The pre-processing logic combines multiple data streams from the register file into a unified format that can be distributed to multiple ALUs. Post-processing logic combines outputs from multiple ALUs back into a unified result stream. This merging approach allows parallel processing capability while managing complexity through standardized interface protocols.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The pre-processing and post-processing logic act as intermediary components between the register file and the ALUs. These intermediaries handle the complex data reformatting and routing tasks, isolating the complexity from the core ALU processing units and allowing them to operate efficiently in parallel.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If data is reformatted for serial processing in a single ALU, then compatibility with existing single-ALU instructions is maintained, but processing efficiency decreases

Engineering Contradiction:
Improveinstruction compatibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The pre-processing logic performs preliminary data reformatting before data reaches the ALUs. By preparing the data in advance in the appropriate format (serial or parallel), the system avoids inefficiencies during actual processing. The data is organized into the correct configuration before being presented to the ALUs, ensuring optimal processing efficiency for the selected mode.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8049760B2System and method for vector computations in arithmetic logic units (ALUs)
Publication Date: 2011.11.01 VIA TECH INC
  • US8049760B2 patent drawing
  • US8049760B2 patent drawing
  • US8049760B2 patent drawing

AI summary

The present disclosure describes implementations for processing instructions and data across multiple Arithmetic Logic Units (ALUs). In one implementation, a graphics processing apparatus comprises a plurality of ALUs configured to process independent instructions in parallel. Pre-processing logic is configured to receive instructions and associated data to be directed to one of the plurality of ALUs for processing from a register file, the pre-processing logic being configured to selectively format received instructions for delivery to a plurality of the ALUs. In addition, post-processing logic is configured to receive data output from the plurality of the ALUs and deliver the received data to the register file for write-back, the post-processing logic being configured to selectively format data output from a plurality of the ALUs for delivery to the register file as though the data had been output by a single ALU.