Microprocessor Banked Registers for x86 ARM Architecture Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing competition between x86 and ARM processor architectures in computing devices poses a dilemma for manufacturers and users, as they need to support both architectures to preserve investments and adapt to changing user demands, with existing solutions like software translators offering insufficient performance.

Innovation Solution

A microprocessor that supports multiple processor modes and uses direct and indirect storage for architectural registers, allowing it to dynamically switch between modes and translate x86 and ARM instructions into microinstructions for efficient execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software translators are used to enable both x86 and ARM architectures, then adaptability is improved, but execution speed deteriorates

Engineering Contradiction:
Improvearchitecture compatibilityVSAvoidexecution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent introduces banked registers as an intermediary mechanism that enables seamless switching between x86 and ARM architectures. The register bank select signal allows the processor to switch between different register sets (first bank for x86, second bank for ARM) without requiring software translation, thus maintaining execution speed while achieving architecture compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If a single configuration system is used to reduce costs, then manufacturing efficiency is improved, but adaptability deteriorates

Engineering Contradiction:
Improvemanufacturing efficiencyVSAvoidarchitecture support
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements a universal processor design that can function as both x86 and ARM architectures through the banked register mechanism. The processor includes first registers for x86 mode and second registers for ARM mode, with a register bank select signal to switch between them, allowing a single configuration system to serve multiple architecture needs without requiring separate hardware for each architecture.

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

3Productivity

If investment is made in one architecture, then performance is improved, but flexibility deteriorates

Engineering Contradiction:
ImproveperformanceVSAvoidarchitecture switching capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic architecture switching capability through the banked register mechanism. The processor can dynamically switch between x86 and ARM architectures based on the execution needs, allowing the system to adapt to different workloads and preserve investments in either architecture while maintaining the ability to switch when needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP2508984B1Load multiple and store multiple instructions in a microprocessor that emulates banked registers
Publication Date: 2018.08.01 VIA TECH INC
  • EP2508984B1 patent drawingFigure 1
  • EP2508984B1 patent drawingFigure 2
  • EP2508984B1 patent drawingFigure 3

AI summary

A microprocessor supports an instruction set architecture that specifies: processor modes, architectural registers associated with each mode, and a load multiple instruction that instructs the microprocessor to load data from memory into specified ones of the registers. Direct storage holds data associated with a first portion of the registers and is coupled to an execution unit to provide the data thereto. Indirect storage holds data associated with a second portion of the registers and cannot directly provide the data to the execution unit. Which architectural registers are in the first and second portions varies dynamically based upon the current processor mode. If a specified register is currently in the first portion, the microprocessor loads data from memory into the direct storage, whereas if in the second portion, the microprocessor loads data from memory into the direct storage and then stores the data from the direct storage to the indirect storage.