Sub-register File Segmentation for Out-of-Order Processor Port Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern superscalar processors face challenges in implementing a shared register file with a large number of read and write ports without reducing clock speed, particularly due to the difficulty in managing data migration between caches and resolving conflicts between read and write operations.

Innovation Solution

The solution involves dividing the register file into a plurality of sub-register files, each with its own buffer, where write operations are stored and later issued to the sub-register files, and using arbitration logic to resolve conflicts by prioritizing read operations unless a conflicting write operation has reached commit time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a shared register file with a large number of read and write ports is implemented, then the processor can handle more concurrent operations, but the clock speed is reduced

Engineering Contradiction:
Improvenumber of concurrent operationsVSAvoidclock speed
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The register file is divided into multiple independent sub-register files (e.g., first sub-register file, second sub-register file, etc.), each with its own read and write ports. This segmentation allows concurrent access to different sub-register files without interfering with each other, thereby maintaining high productivity while avoiding the clock speed reduction that would result from implementing a single large shared register file with many ports.

Inventive Principle:
Principle #1Segmentation

2Productivity

If register file caching is implemented to reduce bandwidth on the shared register file, then the number of writes to the register can be reduced, but data migration management between caches becomes complex

Engineering Contradiction:
Improvenumber of writes to registerVSAvoiddata migration management
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts the write buffering function from the main register file structure and implements it as separate buffers associated with each sub-register file. These buffers capture write operations locally, reducing the need for complex data migration management between centralized caches while still achieving the goal of reducing writes to the main register file.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If multiple buffers are introduced to store and manage write operations, then write operations can be efficiently scheduled, but the device complexity increases

Engineering Contradiction:
Improvewrite operation scheduling efficiencyVSAvoidnumber of buffers
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

Instead of implementing a single complex buffer structure, the patent segments the buffering function across multiple simple buffers, each associated with a specific sub-register file. This segmentation distributes the scheduling complexity across independent units, improving write operation scheduling efficiency while keeping each individual buffer simple and manageable.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9672039B2Register file having a plurality of sub-register files
Publication Date: 2017.06.06 MIPS TECH INC
  • US9672039B2 patent drawing
  • US9672039B2 patent drawing
  • US9672039B2 patent drawing

AI summary

Register files for use in an out-of-order processor that have been divided into a plurality of sub-register files. The register files also have a plurality of buffers which are each associated with one of the sub-register files. Each buffer receives and stores write operations destined for the associated sub-register file which can be later issued to the sub-register file. Specifically, each clock cycle it is determined whether there is at least one write operation in the buffer that has not been issued to the associated sub-register file. If there is at least one write operation in the buffer that has not been issued to the associated sub-register file, one of the non-issued write operations is issued to the associated sub-register file. Each sub-register file may also have an arbitration logic unit which resolves conflicts between read and write operations that want to access the associated sub-register file in the same cycle by prioritizing read operations unless a conflicting write instruction has reached commit time.