Masked Shift-Add Arithmetic for Parallel Carry-Free Multiplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computer processors face inefficiencies in performing arithmetic operations, particularly in reduced radix representations, due to sequential carry ripple operations that introduce data dependencies, slowing down operations like multiplication and addition.

Innovation Solution

The implementation of a masked shift add operation that encodes shift amounts into masks, allowing parallel processing and reduced data dependencies, enabling faster execution of arithmetic instructions like add_ms and add_msc by using the index of the first non-zero bit in operands for shifting and zero-padding intermediate results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If sequential carry ripple operations are used for arithmetic operations, then the implementation is simple and follows traditional algorithms, but the operation speed is slow due to data dependencies between iterations

Engineering Contradiction:
Improvearithmetic operation speedVSAvoidoperation implementation complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the arithmetic operation into independent parallel components by using masked shift add operations that eliminate carry ripple dependencies. Each bit position can be processed independently through masking, allowing simultaneous computation across multiple bit positions without sequential carry propagation, thus resolving the contradiction between speed and complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimensional approach by using mask registers to control parallel operations across multiple bit positions simultaneously. This transforms the traditional sequential one-dimensional carry ripple process into a parallel multi-dimensional operation where multiple bit positions are processed in parallel through bitwise masking and shifting operations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If parallel processing is implemented to speed up arithmetic operations, then operation speed improves, but data dependencies between iterations must be eliminated which increases algorithmic complexity

Engineering Contradiction:
Improvearithmetic operation throughputVSAvoidalgorithm complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces mask registers as intermediary components that mediate between parallel operations and final results. These mask registers control which bits are active in each parallel operation, enabling independent processing of multiple bit positions while maintaining correctness through the masking mechanism, thus achieving parallel processing without complex dependency management.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent changes the operational parameters by introducing mask values that control the parallel operations. By varying the mask parameters across different iterations and bit positions, the system achieves parallel processing with simplified control logic, transforming the complexity from dependency management to parameter configuration.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230075534A1Masked shifted add operation
Publication Date: 2023.03.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20230075534A1 patent drawing
  • US20230075534A1 patent drawing
  • US20230075534A1 patent drawing

AI summary

A computer-implemented method includes receiving, by a processing unit, an instruction to perform a masked shift add operation with a set of operands. A logical AND operation is performed on a first pair of operands from the set of operands to obtain a first intermediate result. The first intermediate result is shifted by a first shift amount that is based on a first operand from the first pair of operands. A logical AND operation is performed on a second pair of operands from the set of operands to obtain a second intermediate result. The second intermediate result is shifted by a second shift amount that is based on a first operand from the second pair of operands. The shifted first intermediate result is added with the shifted second intermediate result. The method further includes outputting, as a result of the masked shift add operation, an output of the adding.