Register Allocation for Scalar Data in Information Processing Devices
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Device complexity
If register resources are limited, then device complexity is reduced, but register overflow occurs leading to performance deterioration
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.
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.
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
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.
Data Source
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.


