MULX Instruction Multiplication Without Carry Flag Modification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiply instructions, such as the MUL instruction, modify the carry and overflow flags during multiplication operations, which can reduce the speed and efficiency of large number multiplication and data processing by requiring additional instructions and register management.

Innovation Solution

The MULX instruction is introduced, which executes multiplication without writing or altering the carry flag, allowing it to coexist with addition instructions and reducing the need for additional register operations, thereby improving the efficiency of large number multiplication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the MUL instruction is used to perform multiplication, then the multiplication operation can be completed, but the carry flag and overflow flag are modified which reduces processing speed and efficiency

Engineering Contradiction:
Improvemultiplication processing speedVSAvoidflag management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the flag modification function from the multiplication operation. The MULX instruction performs multiplication without modifying the carry flag or overflow flag, separating the multiplication function from the flag update function. This allows multiplication to be performed independently without the side effect of flag modification, thereby improving processing speed and efficiency while reducing flag management complexity

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If the MUL instruction modifies the carry flag during multiplication, then the multiplication result is obtained, but additional instructions and register management are required which reduces efficiency

Engineering Contradiction:
Improvelarge number multiplication efficiencyVSAvoidtime for additional instructions
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent removes the flag modification side effect from the multiplication operation. By introducing MULX that does not modify the carry flag, the instruction enables more efficient large number multiplication algorithms that would otherwise be slowed down by the need to manage and clear flags after each multiplication operation

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables preliminary setup of multiplication algorithms without worrying about flag state. Since MULX does not modify flags, programmers can structure large number multiplication algorithms more freely, performing multiple multiplications in sequence without needing to clear or manage flags between operations, thereby reducing the time for additional instructions

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the MUL instruction is used for multiplication, then the operation completes, but the carry flag must be managed which increases the number of instructions required

Engineering Contradiction:
Improveinstruction simplicityVSAvoidprocessing speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent separates the multiplication function from the flag modification function. The MULX instruction provides a clean multiplication operation that does not have the side effect of modifying the carry flag, making the instruction simpler to use in algorithms where flag management would otherwise be required, thereby improving processing speed while maintaining ease of operation

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10649774B2Multiplication instruction for which execution completes without writing a carry flag
Publication Date: 2020.05.12 INTEL CORP
  • US10649774B2 patent drawing
  • US10649774B2 patent drawing
  • US10649774B2 patent drawing

AI summary

A method in one aspect may include receiving a multiply instruction. The multiply instruction may indicate a first source operand and a second source operand. A product of the first and second source operands may be stored in one or more destination operands indicated by the multiply instruction. Execution of the multiply instruction may complete without writing a carry flag. Other methods are also disclosed, as are apparatus, systems, and instructions on machine-readable medium.