Register Segmentation and Alias Handling for Mixed Instruction Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy software applications using older instructions and smaller registers often become incompatible with newer instructions and larger registers, leading to unexpected data loss when transitioning between different register sizes, which can have catastrophic results, especially since replacing all legacy software with new software is prohibitively expensive.

Innovation Solution

Implementing a mixed instruction set in processors that includes logic to handle both smaller and larger register sizes, along with an auxiliary storage array to temporarily save and restore data from the upper part of registers when transitioning between large and small register instructions, ensuring data integrity across different register sizes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the register size is increased to support newer instructions and larger data sets, then processing capability and efficiency are improved, but compatibility with legacy software using smaller registers deteriorates, causing data loss

Engineering Contradiction:
Improveprocessing capabilityVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The register is divided into two segments: a lower portion that legacy instructions can access and an upper portion that is protected. This segmentation allows the register to serve both legacy software (accessing lower portion) and new software (utilizing upper portion) simultaneously, resolving the contradiction between increased processing capability and data integrity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A register alias mechanism acts as an intermediary between legacy instructions and the full-width register. The alias presents a view of the register matching the legacy instruction's expected size, preventing direct access to the upper portion and thus protecting data integrity while allowing the full register to be used by new instructions

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If legacy software is replaced with new software to avoid data loss, then data integrity is improved, but the cost and complexity of software migration increase

Engineering Contradiction:
Improvedata integrityVSAvoidsoftware migration complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The processor is designed with universal register handling capability that supports both legacy and new instructions on the same physical register. This multi-functionality allows the system to maintain data integrity for legacy software without requiring migration, as the register architecture itself accommodates both instruction types

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

3Productivity

If the full width of larger registers is utilized by new instructions, then processing efficiency is improved, but the risk of unexpected data loss increases when legacy instructions are executed

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata loss risk
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary protection of the upper register portion before legacy instructions are executed. By pre-establishing the alias or protecting the upper portion in advance, the system prevents potential data loss from occurring in the first place, rather than correcting it after the fact

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS8694758B2Mixing instructions with different register sizes
Publication Date: 2014.04.08 TAHOE RES LTD
  • US8694758B2 patent drawing
  • US8694758B2 patent drawing
  • US8694758B2 patent drawing

AI summary

When legacy instructions, that can only operate on smaller registers, are mixed with new instructions in a processor with larger registers, special handling and architecture are used to prevent the legacy instructions from causing problems with the data in the upper portion of the registers, i.e., the portion that they cannot directly access. In some embodiments, the upper portion of the registers are saved to temporary storage while the legacy instructions are operating, and restored to the upper portion of the registers when the new instructions are operating. A special instruction may also be used to disable this save/restore operation if the new instruction are not going to use the upper part of the registers.