Arithmetic Processing Device Decoder Immediate Value Bypass

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In arithmetic processing devices, the bottleneck of limited arithmetic units restricts instruction per clock (IPC) due to the need for register reading and writing, even for instructions that do not require data from registers, leading to inefficiencies and increased latency.

Innovation Solution

The implementation of a decoder that writes immediate values directly to registers for instructions not involving register data reading, and a processor that reads and writes data to registers for instructions that do, optimizing the pipeline usage and reducing latency by bypassing unnecessary register operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the processor executes instructions through the standard pipeline (reading from register and writing to register) even for instructions that do not require register data, then the processing path is unified and simple to control, but the arithmetic unit busy rate increases and processing speed decreases

Engineering Contradiction:
Improveprocessing speedVSAvoidarithmetic unit busy rate
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The instruction execution path is segmented into two distinct paths: a standard pipeline path for instructions requiring register data, and a direct write path for instructions that do not require register data. This segmentation allows the system to bypass unnecessary register read/write operations for immediate value instructions, reducing arithmetic unit busy rate while maintaining unified control through the decoder's path selection logic.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If the processor uses the same pipeline for all instructions, then the control logic is simplified, but instructions that do not require register access still incur register read/write latency

Engineering Contradiction:
Improveregister access latencyVSAvoidpipeline structure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The decoder acts as an intermediary that determines the execution path based on instruction type. For instructions with immediate values that do not require register operands, the decoder directly writes the immediate value to the destination register, bypassing the register read stage and arithmetic unit. This intermediary control mechanism reduces register access latency without significantly complicating the overall pipeline structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If immediate values are written directly to registers by the decoder, then processing speed increases and arithmetic unit busy rate decreases, but the pipeline structure becomes more complex

Engineering Contradiction:
Improveinstruction per clockVSAvoiddecoder and pipeline structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The pipeline structure is made dynamic through the decoder's ability to select between two execution paths based on instruction characteristics. The system adapts its behavior: for instructions requiring register operands, it follows the standard pipeline; for immediate value instructions, it takes the direct write path. This dynamic adaptation increases IPC by optimizing the execution path for each instruction type while keeping the complexity manageable through conditional path selection rather than completely separate pipelines.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11314505B2Arithmetic processing device
Publication Date: 2022.04.26 FUJITSU LTD
  • US11314505B2 patent drawing
  • US11314505B2 patent drawing
  • US11314505B2 patent drawing

AI summary

An arithmetic processing device includes: a decoder configured to write an immediate value to a register in a case where an instruction to be executed is an instruction not involving data reading from the register; and a processor configured to read data from the register and write a computing result based on the read data to the register in a case where an instruction to be executed by the decoder is an instruction involving data reading from the register.