Hardware Thread Switching via Mailbox Registers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multithreading technologies face inefficiencies due to high power consumption and resource wastage, particularly in portable devices, as they require extensive software intervention for thread switching, which consumes time and power.

Innovation Solution

The implementation of auxiliary registers within a microprocessor for pre-programmed thread switching in hardware, allowing for efficient switching between threads without software intervention, using mailbox registers to identify the next thread for execution based on specific conditions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software intervention is used for thread switching, then thread switching can be performed, but power consumption increases and time is consumed

Engineering Contradiction:
Improvethread switching efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent replaces the software-based thread switching mechanism with a hardware-based mechanism using mailbox registers. The hardware automatically monitors thread readiness conditions and performs context switching without software intervention, thereby reducing power consumption and switching time while maintaining thread switching functionality.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The mailbox register system enables threads to self-manage their own switching by setting readiness conditions in the mailbox register. The hardware automatically detects when conditions are met and performs the switching, eliminating the need for software intervention and reducing overall system power consumption.

Inventive Principle:
Principle #25Self-service

2Productivity

If context switching saves and restores register file data, then thread switching can be performed, but time and power are consumed

Engineering Contradiction:
Improvethread switching speedVSAvoidthread switching time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts only the essential thread identification information (thread ID) and readiness conditions from the full register file context. The mailbox register stores only the necessary minimal information needed for switching, rather than saving and restoring entire register files, thereby reducing switching time and power consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The readiness condition is pre-configured in the mailbox register before thread switching occurs. This preliminary setup allows the hardware to automatically detect when switching conditions are met and perform the switch immediately, eliminating the need for time-consuming save and restore operations.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multicore processors are used to achieve high performance, then processing capability increases, but hardware resource utilization becomes wasteful

Engineering Contradiction:
Improveprocessing performanceVSAvoidhardware resource utilization
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple thread execution capabilities into a single processor core through hardware-based multithreading. By using mailbox registers to manage thread contexts and enable automatic switching, the system achieves multicore-level performance with a single core, improving hardware resource utilization while maintaining high processing capability.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10558463B2Communication between threads of multi-thread processor
Publication Date: 2020.02.11 MIPS HLDG INC
  • US10558463B2 patent drawing
  • US10558463B2 patent drawing
  • US10558463B2 patent drawing

AI summary

Embodiments of the present disclosure support hardware based thread switching in a multithreading environment. The thread switching is implemented on a multithread microprocessor by utilizing thread mailbox registers and other auxiliary registers that can be pre-programmed for hardware based thread switching. A set of mailbox registers can be allocated to each thread of a plurality of threads that can be executed in the microprocessor. A mailbox register in the set of mailbox registers comprises an identifier of a next thread of the plurality of threads to which an active thread switches based on a thread switch condition further indicated in the mailbox register. The auxiliary registers in the microprocessor can be used to configure a number of threads for simultaneous execution in the microprocessor, a priority for thread switching, and to store a program counter of each thread and states of registers of each thread.