Register File Circuitry for Parallel Predetermined Value Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing register files in processors face challenges in efficiently executing dual-issue operations without increasing the gate count and area complexity, as adding read and write ports is costly and undesirable, especially when instructions require register file access.

Innovation Solution

Incorporating further circuitry responsive to control signals to update register entries in parallel, allowing certain instructions to set predetermined values without requiring additional full write ports, thereby enabling parallel execution of register file updating instructions with other operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If additional read and write ports are added to support dual-issue operations, then processor performance is improved, but gate count and area complexity increase significantly

Engineering Contradiction:
Improveprocessor performanceVSAvoidgate count and area complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The register file is segmented into multiple register entries (e.g., 32 entries), allowing selective updating of specific entries through dedicated control signals. This segmentation enables parallel update operations on different register entries simultaneously without requiring additional full write ports, thus improving performance while maintaining manageable complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The further circuitry is designed to perform multiple functions: it can set register entries to predetermined values (zeroing, sign-extension, range reduction) and work in conjunction with the existing write ports. This multi-functionality allows the same circuitry to support various update operations without requiring separate dedicated hardware for each function.

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

2Speed

If additional write ports are added to enable parallel register updates, then instruction execution speed is improved, but routing complexity and cost increase

Engineering Contradiction:
Improveinstruction execution speedVSAvoidrouting complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The write capability is segmented by providing dedicated control signals for specific register entries rather than requiring separate full write ports. Each control signal targets specific register entries, enabling parallel updates to multiple entries through shared routing infrastructure, thus reducing routing complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Further circuitry acts as an intermediary between the control signals and the register entries. This intermediary circuitry receives control signals and generates the appropriate update operations, simplifying the routing by centralizing the control logic rather than requiring direct complex routing from each control signal to each register entry.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If folding is used to execute instructions without register file access in parallel, then performance is improved, but it is limited to instructions that do not require register file access

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidinstruction type flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The further circuitry provides multi-functional support that extends folding capability beyond instructions without register file access. It can handle instructions that require setting register entries to predetermined values (zeroing, sign-extension, range reduction), thereby increasing the versatility of foldable instructions while maintaining parallel execution performance.

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

Solution Approach 2:

The circuitry prepares register entries by setting them to predetermined values in advance through control signals, enabling subsequent instructions to use these pre-prepared values. This preliminary action allows instructions that require specific register values to be executed in parallel with other instructions, extending the folding concept.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8583897B2Register file with circuitry for setting register entries to a predetermined value
Publication Date: 2013.11.12 ARM LTD
  • US8583897B2 patent drawing
  • US8583897B2 patent drawing
  • US8583897B2 patent drawing

AI summary

A register file comprising a plurality of register entries for storing data values for use in the execution of data processing instructions is provided, and comprises at least one write port and at least one read port, and circuitry responsive to a write request received at said at least one write port to update one of said plurality of register entries identified by an address specified by said write request with a data value specified by said write request. The register file also comprises further circuitry responsive to a received control signal to set at least a portion of a predetermined register entry to a predetermined value. In this way, certain register file updating instructions can be executed in parallel with other instructions without the need for additional full write-ports as would be required for typical dual-issue, thereby reducing area and routing complexity and cost compared with the use of an additional write-port due to the lower gate count required by the proposed further circuitry.