Register Snapshot Sharing for Function Call Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The high cost and inefficiency of saving and restoring registers during function calls in computing environments, particularly for short functions, due to the need for frequent stack operations and potential penalties like load-hit-store and forwarding penalties.

Innovation Solution

A method that involves taking snapshots of architected registers and using these snapshots to optimize register saving and restoring, reducing the need for memory access by reusing previous snapshots when registers have not been modified, and creating new snapshots only when modifications occur, utilizing a bitmap to track register modifications and sharing snapshots across requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If registers are saved and restored using traditional stack operations for each function call, then register state is preserved correctly, but processing efficiency deteriorates due to frequent memory access and operational overhead

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidtime for saving and restoring registers
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by capturing register states at function entry points and storing them in a cache structure before actual function execution. This preliminary caching of register states allows subsequent restore operations to use the cached values directly, avoiding repeated stack operations and memory access during function calls.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention creates copies of register states and stores them in a cache structure rather than maintaining only the original stack-based storage. By copying register states to a faster-access cache, the system enables quicker restore operations while preserving the original stack structure for correctness. The bitmap mechanism also creates a copy of the register modification state to track changes efficiently.

Inventive Principle:
Principle #26Copying

2Reliability

If snapshots are taken for every function call to ensure register state accuracy, then register restoration correctness is maintained, but device complexity increases due to additional snapshot management mechanisms

Engineering Contradiction:
Improveregister restoration correctnessVSAvoidsnapshot management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Instead of taking full snapshots for every function call, the system performs partial actions by only capturing and caching register states when actually needed (at function entry points). The bitmap mechanism similarly performs partial tracking by only monitoring and recording register modifications that actually occur, rather than continuously monitoring all registers. This selective approach maintains correctness while reducing overhead.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system implements self-service through the bitmap mechanism that automatically tracks which registers have been modified since the last snapshot. This self-tracking capability eliminates the need for external bookkeeping or manual tracking of register changes, allowing the system to automatically determine which registers need to be restored without adding complex management overhead.

Inventive Principle:
Principle #25Self-service

3Loss of information

If all architected registers are included in every snapshot, then complete register state is captured, but loss of substance increases due to redundant storage of unchanged registers

Engineering Contradiction:
Improvecompleteness of register stateVSAvoidredundant storage of unchanged registers
Core Design Contradiction:
Loss of informationVSLoss of substance

Solution Approach 1:

The system applies local quality by differentiating between modified and unmodified registers through the bitmap mechanism. Instead of treating all registers uniformly, the system identifies and tracks only those registers that have actually changed since the last snapshot. This localized tracking approach ensures that only necessary register state information is stored and restored, eliminating redundancy while maintaining completeness for changed registers.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system discards redundant information by not storing or tracking register states that have not changed since the previous snapshot. The bitmap mechanism identifies which registers remain unchanged, and these are effectively discarded from the snapshot process. When restoring, only the registers that were actually modified are recovered, while unchanged registers retain their existing values, avoiding unnecessary storage and restore operations.

Inventive Principle:
Principle #34Discarding and recovering

4Measurement precision

If frequent snapshots are created to track register modifications, then register change tracking accuracy is improved, but use of energy increases due to additional memory access and processing

Engineering Contradiction:
Improveregister change tracking accuracyVSAvoidenergy for snapshot operations
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The system implements periodic action by creating snapshots at regular intervals corresponding to function entry points rather than continuously or at every instruction. The bitmap mechanism periodically checks for register modifications at these same intervals. This periodic approach maintains accurate tracking of register changes while minimizing the frequency of snapshot operations, thereby reducing the energy consumption associated with memory access and processing compared to continuous monitoring.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS10963261B2Sharing snapshots across save requests
Publication Date: 2021.03.30 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10963261B2 patent drawing
  • US10963261B2 patent drawing
  • US10963261B2 patent drawing

AI summary

Snapshots are shared across save requests. A request to take a snapshot of one or more architected registers is obtained, and a determination is made as to whether the one or more architected registers have been modified since a previous snapshot that includes the one or more architected registers was taken. Based on determining the one or more architected registers have not been modified, the previous snapshot is used to satisfy the request to take the snapshot.