Register Allocation for Scalar Data in Information Processing Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Register overflow occurs when processor resources are limited, leading to performance deterioration due to the need for temporary data storage in memory and subsequent restoration, making it difficult to increase register resources effectively.

Innovation Solution

An information processing device that specifies a first register allocated to scalar data with a survival interval including data without allocated registers and allocates empty areas of the register to such data, optimizing register allocation and reducing overflow occurrences.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If register resources are increased to prevent register overflow, then register allocation flexibility improves, but device complexity and cost increase

Engineering Contradiction:
Improveregister allocation flexibilityVSAvoiddevice complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the register file into multiple banks (first register bank, second register bank, third register bank) with different access characteristics. This segmentation allows the system to manage register resources more efficiently by directing different types of data to appropriate banks, thereby preventing overflow without requiring a uniform increase in total register resources across the entire processor.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to register allocation by utilizing stack memory as an extended register resource. When register banks reach capacity, the system automatically spills data to the stack and restores it when needed, effectively adding a temporal dimension to register allocation that allows more data to be managed without increasing physical register count.

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

2Device complexity

If register resources are limited, then device complexity is reduced, but register overflow occurs leading to performance deterioration

Engineering Contradiction:
Improvedevice complexityVSAvoidexecution performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by proactively managing register allocation before overflow occurs. The register allocation unit continuously monitors register usage and preemptively spills data to the stack when capacity is approaching, preventing overflow conditions that would degrade performance. This preliminary action maintains execution performance without requiring excessive register resources.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces the stack memory as an intermediary between the register banks and the data flow. When register banks are full, data is temporarily stored in the stack, which acts as a buffer or mediator. This intermediary allows the system to maintain limited register resources while preventing overflow, thereby preserving execution performance without increasing device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If data is retreated to memory due to register overflow, then register resource constraints are satisfied, but memory access increases leading to performance loss

Engineering Contradiction:
Improveregister resource capacityVSAvoidmemory access time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent applies local quality by creating different types of register banks with specialized functions. The first register bank handles general-purpose data, the second register bank handles data that can be efficiently spilled to the stack, and the third register bank handles frequently accessed data. This local differentiation allows the system to minimize stack spills for frequently accessed data, reducing memory access time while still satisfying register capacity constraints.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10114648B2Compile method, non-transitory computer-readable recording medium storing compile program, and information processing device
Publication Date: 2018.10.30 FUJITSU LTD
  • US10114648B2 patent drawing
  • US10114648B2 patent drawing
  • US10114648B2 patent drawing

AI summary

An information processing device includes: a memory that stores a program; and a processor that executes the program to perform operations, wherein the operations includes: specifying a first register which is allocated to scalar data and satisfies a condition that a survival interval of the scalar data includes a survival interval of first data to which any register is not allocated; and allocating an empty area of the first register to the first data.