Microprocessor Register Save Restore Interrupt Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microprocessors face high interrupt latency times when saving and restoring multiple registers due to the breakdown of instructions into micro-instructions, which can be incompatible with real-time requirements of certain systems.

Innovation Solution

A method and device that break down saving/restoring instructions for multiple registers into micro-instructions, with a progress status stored in a status register to manage the saving/restoration process, allowing for reduced interrupt latency by initializing and updating the status upon each micro-instruction generation and saving/restoring it during interruptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If saving/restoring instructions for multiple registers are broken down into micro-instructions, then the instructions can be executed systematically, but the interrupt latency time increases making it incompatible with real-time requirements

Engineering Contradiction:
Improvesystematic execution of saving/restoring operationsVSAvoidinterrupt latency time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The saving/restoring instruction is segmented into multiple micro-instructions, each handling individual register operations. This segmentation allows the system to process registers in discrete steps, enabling interruptibility at each micro-instruction boundary while maintaining systematic execution of the overall saving/restoring operation

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the execution flow by introducing a progress status register that tracks completion state. When an interrupt occurs, the system can pause at any micro-instruction boundary, save the current progress state, and resume later, making the previously static micro-instruction sequence dynamically interruptible while preserving real-time responsiveness

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If saving instructions are provided for each register individually, then each register can be managed separately, but the program memory size increases significantly

Engineering Contradiction:
Improveindividual register managementVSAvoidprogram memory size
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

Multiple individual saving/restoring instructions are merged into a single composite instruction that operates on multiple registers. The instruction includes a list of register identifiers, allowing the system to consolidate what would require multiple separate instructions into one unified operation, significantly reducing program memory usage while maintaining the ability to manage individual registers through the segmented micro-instruction approach

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If multiple registers are saved and restored using a memory stack, then a large number of task priority levels can be managed, but the saving and restoring operations become expensive in program memory size

Engineering Contradiction:
Improvetask priority levels managementVSAvoidprogram memory size
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The saving/restoring instruction is designed with universal applicability across multiple registers and task priority levels. The instruction format includes a configurable list of register identifiers, allowing the same instruction structure to serve multiple functions: saving individual registers, saving multiple registers, and supporting different task priority levels, thereby reducing the need for separate instructions for each scenario

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7971040B2Method and device for saving and restoring a set of registers of a microprocessor in an interruptible manner
Publication Date: 2011.06.28 STMICROELECTRONICS FRANCE
  • US7971040B2 patent drawing
  • US7971040B2 patent drawing
  • US7971040B2 patent drawing

AI summary

The disclosure relates to a method for executing by a processor an instruction for saving/restoring several internal registers of the processor. The method comprises breaking down the saving/restoring instruction to generate micro-instructions for saving/restoring the content of a register, executing each of the micro-instructions, initializing a progress status of the saving/restoration of the registers, updating the progress status of the saving/restoration upon each generation of a micro-instruction for saving/restoring a register, saving the progress status in the event of an interruption in the saving/restoration of the registers to execute a higher-priority task, and restoring the progress status when the saving/restoration of the registers is resumed.