Loop Buffer Unit for Arithmetic Processing Device

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing arithmetic processing devices face inefficiencies in handling loop processing, particularly in predicting branch destinations and managing instruction execution, which leads to increased power consumption and reduced processing speed.

Innovation Solution

The implementation of an arithmetic processing device with an address generation unit, a branch prediction unit, an instruction buffer, a loop buffer unit, and a selection unit that predicts branch destinations and loop processing, allowing for the storage and repeated output of decoded instructions, thereby reducing the operational load during loop processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the processor executes instructions through normal fetch-decode-execute cycles, then processing accuracy is maintained, but power consumption increases and processing speed decreases during loop operations

Engineering Contradiction:
Improveprocessing speedVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The loop buffer pre-stores decoding results of loop instructions before they are needed. When a loop is detected, the processor fills the loop buffer with decoded instructions in advance, allowing subsequent iterations to retrieve instructions from the buffer rather than undergoing full fetch-decode cycles, thereby reducing power consumption and increasing processing speed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of decoded instruction results and stores them in the loop buffer. Instead of repeatedly decoding the same loop instructions, the system copies the decoding results into the buffer and reuses these copies for multiple loop iterations, significantly reducing the computational overhead and energy consumption associated with instruction decoding.

Inventive Principle:
Principle #26Copying

2Productivity

If the processor uses loop buffer to store and reuse decoding results, then power consumption decreases and processing speed increases, but device complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidstructure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The loop buffer is designed to serve multiple functions: it stores decoded instruction results, holds intermediate calculation results, and provides rapid retrieval for loop iterations. This multi-functionality reduces the need for separate specialized structures, thereby limiting the increase in device complexity while achieving improved processing efficiency.

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

Solution Approach 2:

The loop buffer is integrated within the existing processor architecture, nested among other components such as the instruction cache, decode unit, and execution units. This nested integration allows the loop buffer to leverage existing control signals and data pathways, minimizing the additional complexity required to implement the loop optimization feature.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS10430196B2Arithmetic processing device for predicting loop processing
Publication Date: 2019.10.01 FUJITSU LTD
  • US10430196B2 patent drawing
  • US10430196B2 patent drawing
  • US10430196B2 patent drawing

AI summary

An arithmetic processing device includes: a branch prediction unit configured to predict a branch destination address and loop processing based on an address generated by an address generation unit; an instruction buffer unit configured to store an instruction of the address generated by the address generation unit; an instruction decoding unit configured to decode the instruction stored in the instruction buffer unit; and a loop buffer unit configured to store decoding results or decoding intermediate results of instructions of the predicted loop processing that are decoded by the instruction decoding unit and output the stored decoding results or decoding intermediate results a predetermined number of times in response to the loop processing, in which during a period when selecting the output of the loop buffer unit, operations of the address generation unit, the branch prediction unit, the instruction buffer unit, and the instruction decoding unit are stopped.