Floating-Point Comparator Circuit for Parallel Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing floating-point systems face challenges in parallel processing due to implicit serialization caused by shared floating-point status registers, which hinders performance in superscalar and parallel microprocessor architectures and complicates instruction scheduling and optimization.

Innovation Solution

A floating-point comparator circuit that encodes floating-point status information within the operands, allowing for simultaneous execution of floating-point instructions without overwriting status information, and generates comparative signals based on operand formats such as NaN, infinity, normalized, and denormalized values.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If floating-point status information is stored in shared status registers, then the system maintains a centralized control mechanism, but implicit serialization occurs that hinders parallel processing performance

Engineering Contradiction:
Improveparallel processing performanceVSAvoidimplicit serialization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the centralized status register into individual status bits that are distributed and embedded within each floating-point operand. Instead of one shared register, each operand carries its own status information (such as NaN, infinity, normalized, denormalized flags), allowing parallel operations to proceed without serialization conflicts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent moves status information from a temporal dimension (shared register accessed sequentially) to a spatial dimension (embedded within each operand). By encoding status bits directly in the operand structure, the system enables simultaneous access and comparison without requiring sequential register updates, thus eliminating implicit serialization.

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

2Productivity

If floating-point instructions are executed concurrently, then processing throughput increases, but status information may be overwritten or become inconsistent

Engineering Contradiction:
Improveinstruction execution throughputVSAvoidstatus information consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent performs preliminary encoding of status information directly into the floating-point operands before execution. Each operand is pre-tagged with its status characteristics (NaN, infinity, normalized, denormalized), so that when instructions execute in parallel, the status information is already embedded and cannot be overwritten or become inconsistent.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Each floating-point operand carries its own status information self-contained within its structure. This self-service approach allows operands to independently convey their status without relying on external shared registers, ensuring that concurrent operations do not interfere with each other's status information.

Inventive Principle:
Principle #25Self-service

3Productivity

If status information is encoded within floating-point operands, then parallel execution is enabled, but the operand format becomes more complex

Engineering Contradiction:
Improveconcurrent execution capabilityVSAvoidoperand format structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges status information with the floating-point operand structure by embedding status bits directly into the operand format. Instead of separate status registers, the status data is combined with the numerical value, allowing the operand to carry both computational and status information in a unified structure that enables parallel execution.

Inventive Principle:
Principle #5Merging (Combining)

4Ease of operation

If shared status registers are used for floating-point operations, then instruction scheduling is simplified, but performance is hindered by serialization

Engineering Contradiction:
Improveinstruction schedulingVSAvoidprocessing performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the monolithic status register into distributed status bits embedded in each operand. This segmentation allows the instruction scheduler to operate on independent operands with self-contained status information, eliminating the serialization bottleneck while maintaining scheduling flexibility through operand-level independence.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8799344B2Comparator unit for comparing values of floating point operands
Publication Date: 2014.08.05 ORACLE AMERICAN INC
  • US8799344B2 patent drawing
  • US8799344B2 patent drawing
  • US8799344B2 patent drawing

AI summary

A floating point comparator circuit for comparing a plurality of floating point operands includes a plurality of analysis circuits, one for each of the floating point operands, configured to determine a format of each of the floating point operands based upon floating point status information encoded within each of the floating point operands, and a result generator circuit coupled to the analysis circuits, the result generator circuit configured to generate a result signal based on the format determined by each analysis circuit and based on a comparative relationship among the floating point operands. The format of each of the floating point operands may be from a group comprising: not-a-number (NaN), infinity, normalized, denormalized, zero, invalid operation, overflow, underflow, division by zero, exact, and inexact. The result generator circuit may ignore the encoded floating point statuses of the plurality of floating point operands when comparing just the magnitudes of the plurality of floating point operands.