Floating-Point Register Layout for Arithmetic Processing Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current arithmetic processing devices face inefficiencies in floating-point operations due to mismatched pipeline processing stages and latency issues, particularly in SIMD operations, where the timing of register transfers and data loading differs across elements, leading to potential performance bottlenecks and increased hardware requirements.

Innovation Solution

The arrangement of floating-point registers (FPRs) closer to the instruction storage and floating-point units (FPUs) closer to the data cache reduces the number of cycles required for register value transfer and load data transfer, aligning with the PT cycle for FPRs near the instruction storage and optimizing the Rd cycle for FPUs near the data cache, thereby improving latency and reducing the likelihood of pipeline stalls.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If floating-point registers are arranged farther from instruction storage to accommodate more registers, then the number of available registers increases, but the transfer latency increases and pipeline efficiency decreases

Engineering Contradiction:
Improvenumber of floating-point registersVSAvoidregister transfer latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent transitions from a linear arrangement to a two-dimensional array layout for floating-point registers, allowing registers to be organized in rows and columns. This dimensional change enables multiple registers to be accessed in parallel through different ports, reducing effective latency while maintaining high register count. The 2D arrangement allows distance optimization in multiple directions simultaneously.

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

Solution Approach 2:

The floating-point register file is divided into multiple segments or banks, each accessible through separate read/write ports. This segmentation allows simultaneous access to different register segments, effectively reducing the critical path latency for register transfers while maintaining a large total number of registers. Each segment can be independently optimized for distance from instruction storage.

Inventive Principle:
Principle #1Segmentation

2Power

If floating-point units are placed farther from data cache to optimize calculation performance, then calculation capability improves, but data transfer latency increases

Engineering Contradiction:
Improvefloating-point calculation capabilityVSAvoiddata transfer latency
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The patent introduces intermediate buffer structures or crossbar switches between the data cache and floating-point units. These intermediaries enable parallel data paths and reduce the critical path delay by providing multiple routing options. The intermediary structures allow data to be pre-fetched or buffered, decoupling the calculation speed of FPUs from the data access speed of the cache.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements dynamic routing and configurable data paths that can adaptively select optimal routes for data transfer. The interconnection fabric between cache and FPUs is made dynamically reconfigurable, allowing the system to optimize data flow patterns based on current computational needs, thereby reducing effective latency while maintaining high calculation throughput.

Inventive Principle:
Principle #15Dynamics

3Productivity

If different elements have different transfer cycle timings, then each element can be optimized for its specific function, but pipeline synchronization becomes complex and stalls increase

Engineering Contradiction:
Improveelement-specific optimizationVSAvoidpipeline synchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a periodic clocking scheme where different register elements or FPU elements are clocked at different phases of the same periodic cycle. This allows each element to operate at its optimal speed while maintaining overall pipeline synchronization through the periodic structure. The periodic action creates predictable timing patterns that simplify control logic compared to completely asynchronous operation.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The patent uses preliminary action by pre-aligning the timing of data transfers to different elements based on their required processing times. Fast elements receive data earlier and can begin processing while slower elements are still receiving their data. This preliminary timing adjustment, combined with buffering, allows all elements to complete their operations in synchronized cycles, reducing pipeline stalls while maintaining element-specific optimization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12099842B2Arithmetic processing device and arithmetic processing method
Publication Date: 2024.09.24 FUJITSU LTD
  • US12099842B2 patent drawing
  • US12099842B2 patent drawing
  • US12099842B2 patent drawing

AI summary

An arithmetic processing device includes an instruction storage configured to store an arithmetic instruction and a data cache configured to cache a calculation result of the arithmetic instruction. A plurality of floating-point registers arranged on a side of the instruction storage is configured to store a register value used for executing the arithmetic instruction transferred from the instruction storage, and a plurality of floating point calculation circuits arranged on a side of the data cache is configured to perform a floating-point operation based on the arithmetic instruction, wherein a number of cycles is one when the register value is transferred from the instruction storage to one or more floating-point registers, among the plurality of floating point registers, arranged in positions closest in distance to the instruction storage.