Multi-threaded Processor Thread Map Register Granularity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-threaded processors face challenges in dynamically allocating CPU bandwidth among threads and timely handling of interrupts, particularly when dealing with unequal or changing CPU allocations and interrupt masking across multiple threads.

Innovation Solution

A multi-thread superscalar processor with a thread map register that dynamically allocates CPU cycles to each thread and provides per-thread interrupt handling, allowing for granular control of thread execution and interrupt processing, enabling concurrent processing of multiple protocols like Bluetooth and WLAN.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a multi-threaded processor alternates execution cycles between threads with protected CPU bandwidth allocation, then each thread receives a fixed percentage of CPU cycles and threads can execute independently during stalls, but the allocation cannot be dynamically changed or made unequal across threads

Engineering Contradiction:
Improvedynamic thread allocationVSAvoidprocessor architecture
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The processor implements dynamic thread allocation by allowing the thread context switch mechanism to be reconfigured at runtime. The thread context switch register can be programmatically updated to change which thread executes in each cycle, enabling unequal and dynamic CPU bandwidth allocation among threads without requiring a fixed hardware configuration.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The processor divides the CPU into multiple independent thread execution contexts, each with its own program counter and register state. This segmentation allows independent control and dynamic allocation of CPU cycles to different threads through the thread context switch mechanism, resolving the contradiction between fixed allocation and dynamic adaptability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If interrupts are masked during handling to ensure complete processing, then previous interrupts are handled without interference, but new interrupts arriving during handling are not recognized until completion

Engineering Contradiction:
Improveinterrupt handling completenessVSAvoidinterrupt recognition delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The interrupt handling system is segmented into per-thread interrupt contexts. Each thread has its own interrupt mask and handling state, allowing the processor to selectively enable or disable interrupts for specific threads while maintaining reliability for the active thread. This segmentation enables more granular control over interrupt recognition timing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The processor implements feedback mechanisms where the completion status of interrupt handling is monitored. When an interrupt is being handled, the system tracks its completion and can adjust interrupt masking behavior based on this feedback, potentially allowing new interrupts to be recognized sooner while still ensuring reliable handling of the current interrupt.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11775306B2Multi-threaded processor with thread granularity
Publication Date: 2023.10.03 CEREMORPHIC INC
  • US11775306B2 patent drawing
  • US11775306B2 patent drawing
  • US11775306B2 patent drawing

AI summary

A multi-thread processor has a canonical thread map register which outputs a sequence of thread_id values indicating a current thread for execution. The thread map register is programmable to provide granularity of number of cycles of the canonical sequence assigned to each thread. In one example of the invention, the thread map register has repeating thread identifiers in a sequential or non-sequential manner to overcome memory latency and avoid thread stalls. In another example of the invention, separate interrupt tasks are placed on each thread to reduce interrupt processing latency.