Register Allocation Using Cycle Information in Ping-Pong Processor Architectures

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for allocating registers in Parallel Architecture Core (PAC) processors with ping-pong architectures fail to effectively utilize cycle information, leading to suboptimal register allocation and increased power consumption.

Innovation Solution

A method that incorporates cycle information to allocate registers by building a graph representing instructions, data dependencies, and latency, allowing for efficient assignment of functional units and register files, while considering ping-pong architecture constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by stationary object

If distributed register-file architecture with ping-pong structure is used, then the number of read/write ports is reduced and power consumption is reduced, but register allocation complexity increases and allocation efficiency deteriorates

Engineering Contradiction:
Improvepower consumptionVSAvoidregister allocation complexity
Core Design Contradiction:
Use of energy by stationary objectVSDevice complexity

Solution Approach 1:

The patent performs register allocation in a preliminary phase before code generation, using cycle information from instruction scheduling to pre-determine optimal register assignments. This preliminary action considers the ping-pong architecture constraints upfront, avoiding the need for complex runtime allocation decisions and reducing overall allocation complexity while maintaining power efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent incorporates cycle information feedback from instruction scheduling into the register allocation process. By using feedback about when instructions execute and how long they take, the allocator can make informed decisions about register assignments that respect ping-pong constraints, reducing complexity while achieving power-efficient allocation

Inventive Principle:
Principle #23Feedback

2Device complexity

If distributed register-file architecture with ping-pong structure is used, then the number of read/write ports is reduced, but register allocation efficiency deteriorates

Engineering Contradiction:
Improvenumber of read/write portsVSAvoidregister allocation efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent changes the parameters used in register allocation by incorporating cycle information (execution timing and duration) alongside traditional data dependency information. This parameter change enables the allocator to efficiently determine register assignments that work with the limited connectivity of distributed register files, improving allocation efficiency without increasing the number of read/write ports

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

By performing register allocation as a preliminary step before code generation, using available cycle information to pre-determine optimal assignments, the system achieves efficient allocation despite the architectural constraints of reduced read/write ports in distributed register files

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If traditional register allocation methods are used without cycle information, then allocation process is simpler, but register allocation quality deteriorates and power consumption increases

Engineering Contradiction:
Improveallocation process complexityVSAvoidpower consumption
Core Design Contradiction:
Device complexityVSUse of energy by stationary object

Solution Approach 1:

The patent introduces cycle information feedback into the allocation process, using execution timing data to guide register assignments. This feedback mechanism improves allocation quality and reduces power consumption by avoiding unnecessary memory accesses, while the feedback is integrated in a way that doesn't excessively complicate the overall process

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

By changing the input parameters to include cycle information alongside dependency graphs, the patent achieves better allocation quality and lower power consumption. The parameter enhancement is implemented through systematic integration into the allocation algorithm, balancing improved quality with manageable process complexity

Inventive Principle:
Principle #35Parameter changes

4Productivity

If more read/write ports are added to register files, then register access efficiency improves, but power consumption increases

Engineering Contradiction:
Improveregister access efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by stationary object

Solution Approach 1:

The patent changes the optimization parameters from simply maximizing access speed to jointly optimizing for access efficiency and power consumption by incorporating cycle information. This allows the allocator to choose register assignments that minimize power-consuming operations while maintaining acceptable access efficiency, rather than always adding more ports

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

By using cycle information feedback about actual execution timing and memory access patterns, the patent can identify and optimize power-consuming operations. This feedback-driven approach achieves efficient register access without unnecessarily increasing power consumption through additional ports

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8539462B2Method for allocating registers for a processor based on cycle information
Publication Date: 2013.09.17 NATIONAL TSING HUA UNIVERSITY
  • US8539462B2 patent drawing
  • US8539462B2 patent drawing
  • US8539462B2 patent drawing

AI summary

A method of allocating registers for a processor based on cycle information is disclosed. The processor comprises a first cluster and a second cluster. Each cluster comprises a first functional unit, a second functional unit, a first local register file connected to the first functional unit, a second local register file connected to the second register file, and a global register file having a ping-pong structure formed by a first register bank and a second register bank. After building a Component/Register Type Associated Data Dependency Graph (CRTA-DDG), a functional unit assignment, register file assignment, ping-pong register bank assignment, and cluster assignment are performed to take full advantage of the properties of a processor as well as cycle information.