Processor Switching Between Single-Threaded and Multi-Threaded Modes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing 64-bit processors are inefficient when running 32-bit software due to the lack of utilization of additional hardware capabilities, leading to suboptimal performance.

Innovation Solution

A processor architecture that can switch between single-threaded and multi-threaded modes, allowing 64-bit hardware to operate as a two-threaded 32-bit core for 32-bit software, improving performance by logically dividing the register file and sharing or duplicating functional units between threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a 64-bit processor runs 32-bit software, then backwards compatibility is maintained, but hardware utilization efficiency deteriorates

Engineering Contradiction:
Improvebackwards compatibilityVSAvoidhardware utilization efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The processor is segmented into multiple operational modes (64-bit single-threaded mode and 32-bit multi-threaded mode). The execution units and register files are logically divided and configured differently depending on the mode, allowing the same hardware to efficiently handle both 64-bit and 32-bit workloads by presenting an optimized architecture for each.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor dynamically switches between different operational configurations based on the software being executed. Configuration bits and control logic enable the processor to adapt its internal structure (register file organization, execution unit allocation) in real-time, transitioning from a single-threaded 64-bit mode to a multi-threaded 32-bit mode to maximize hardware utilization.

Inventive Principle:
Principle #15Dynamics

2Productivity

If the register file is logically divided into multiple portions for multi-threaded operation, then performance of 32-bit software is improved, but device complexity increases

Engineering Contradiction:
Improveperformance of 32-bit softwareVSAvoidregister file organization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The register file is designed with multi-functionality, serving dual purposes: as a unified 64-bit register file for single-threaded 64-bit operations, and as logically divided 32-bit register files for multi-threaded 32-bit operations. The same physical hardware structure performs different logical functions based on configuration, avoiding the need for completely separate register files for each mode.

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

Solution Approach 2:

The operational parameters of the register file are changed through configuration bits that control how the hardware is interpreted and accessed. By modifying parameters such as register width perception and access patterns (without changing the physical structure), the register file adapts between 64-bit single-threaded and 32-bit multi-threaded modes, managing complexity through software-controlled configuration rather than hardware duplication.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10048967B2Processor arranged to operate as a single-threaded (nX)-bit processor and as an n-threaded X-bit processor in different modes of operation
Publication Date: 2018.08.14 MIPS TECH INC
  • US10048967B2 patent drawing
  • US10048967B2 patent drawing
  • US10048967B2 patent drawing

AI summary

Methods of running a 32-bit operating system on a 64-bit processor are described. In an embodiment, the processor comprises 64-bit hardware and when running a 64-bit operating system operates as a single-threaded processor. However, when running a 32-bit operating system (which may be a guest operating system running on a virtual machine), the processor operates as a two-threaded core. The register file is logically divided into two portions, one for each thread, and logic within a functional unit may be split between threads, shared between threads or duplicated to provide an instance of the logic for each thread. Configuration bits may be set to indicate whether the processor should operate as a single-threaded or multi-threaded device.