Modeless 32-bit and 64-bit Addressing via Load/Store Unit

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

MIPS 64-bit architectures face challenges in supporting 32-bit binaries without requiring a mode bit, as providing separate instructions for 64-bit and 32-bit memory access instructions consumes significant operation code space and is cumbersome for programmers and development environments.

Innovation Solution

A processor architecture that can execute instructions in both privileged and unprivileged modes, using a configurable load/store unit to determine whether register values are single-word or double-word sized without needing a mode bit, allowing seamless execution of 32-bit code on 64-bit machines by interpreting register values within pre-defined address ranges.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate instructions are provided for 64-bit and 32-bit memory access operations, then the processor can support both address ranges, but the operation code space is significantly consumed and the architecture becomes complex

Engineering Contradiction:
Improvesupport for both 64-bit and 32-bit address rangesVSAvoidoperation code space consumption
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The load/store instruction is designed to perform both 32-bit and 64-bit memory access operations using a single unified instruction format. The instruction uses general purpose registers that can hold values interpreted as either single-word (32-bit) or double-word (64-bit) immediate values, eliminating the need for separate instruction sets for different address ranges.

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

Solution Approach 2:

The processor dynamically determines whether to interpret register values as 32-bit or 64-bit based on the calculated effective address. The load/store unit checks if the address falls within the lower 32-bit range or upper 32-bit range of the 64-bit address space, and automatically adjusts the interpretation of register values accordingly, allowing modeless operation between 32-bit and 64-bit addressing.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If a mode bit is used to switch between 32-bit and 64-bit execution modes, then the processor can manage different address ranges, but the execution requires privileged code intervention at boundaries which reduces efficiency

Engineering Contradiction:
Improvemanagement of different address rangesVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The load/store unit autonomously determines the appropriate address interpretation without requiring external control from a mode bit or privileged code. The unit calculates the effective address and self-determines whether the register value should be treated as a 32-bit or 64-bit immediate value based on the address range, enabling seamless execution across boundary conditions without mode changes.

Inventive Principle:
Principle #25Self-service

3Device complexity

If general purpose registers are used as both single-word and double-word immediate values, then code space is optimized, but the processor must determine the correct interpretation without mode bits

Engineering Contradiction:
Improvecode space optimizationVSAvoiddetermination of register value interpretation
Core Design Contradiction:
Device complexityVSDifficulty of detecting and measuring

Solution Approach 1:

The effective address calculation acts as an intermediary that resolves the ambiguity of register value interpretation. By first calculating the effective address using the register value and immediate offset, the system can determine whether the address falls in the lower or upper 32-bit range, which then informs the correct interpretation of the register value as either single-word or double-word sized.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10671391B2Modeless instruction execution with 64/32-bit addressing
Publication Date: 2020.06.02 MIPS TECH INC
  • US10671391B2 patent drawing
  • US10671391B2 patent drawing
  • US10671391B2 patent drawing

AI summary

In an aspect, a processor supports modeless execution of 64 bit and 32 bit instructions. A Load/Store Unit (LSU) decodes an instruction that without explicit opcode data indicating whether the instruction is to operate in a 32 or 64 bit memory address space. LSU treats the instruction either as a 32 or 64 bit instruction in dependence on values in an upper 32 bits of one or more 64 bit operands supplied to create an effective address in memory. In an example, a 4 GB space addressed by 32-bit memory space is divided between upper and lower portions of a 64-bit address space, such that a 32-bit instruction is differentiated from a 64-bit instruction in dependence on whether an upper 32 bits of one or more operands is either all binary 1 or all binary 0. Such a processor may support decoding of different arithmetic instructions for 32-bit and 64-bit operations.