Multithreading Functional Unit Operator Selector

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multithreading processors face resource conflicts when multiple threads attempt to perform identical operations simultaneously, leading to reduced system performance due to stalled threads and inefficient scheduling.

Innovation Solution

A processor with a functional unit that includes multiple operators for different threads, a resource conflict detector, and a scheduler to manage conflicts by determining processing orders and stalling low-priority threads, along with a queue for storing detection results and flushing invalid data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple threads simultaneously attempt to perform identical operations in the same functional unit, then thread-level parallelism is increased, but resource conflicts occur leading to reduced system performance

Engineering Contradiction:
Improvethread-level parallelismVSAvoidsystem performance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The functional unit is segmented into multiple operators (first operator, second operator, etc.), each capable of performing identical operations independently. This segmentation allows multiple threads to execute the same operation type simultaneously by directing them to different operator instances, thereby eliminating resource conflicts while maintaining high thread-level parallelism

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Each operator within the functional unit is designed with multi-functionality to perform identical operations (e.g., both operators can perform addition, multiplication, or other arithmetic operations). This universality enables the functional unit to handle diverse thread operations efficiently without requiring specialized operators for each operation type, thus resolving resource conflicts while preserving system performance

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

2Productivity

If multiple operators are added to handle identical operations, then resource conflicts are reduced, but device complexity increases

Engineering Contradiction:
Improveresource conflict resolutionVSAvoidfunctional unit structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The operator selector implements local quality by maintaining separate selection logic for each operator instance. The selector determines which specific operator (first, second, etc.) should handle each thread's operation based on thread priority and operator availability, allowing complex multi-operator coordination through localized, modular selection rules rather than global complexity

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The operator selector acts as an intermediary between threads and operators. It receives operation requests from multiple threads, evaluates operator availability and thread priority, and directs each request to the appropriate operator. This intermediary mechanism manages the complexity of coordinating multiple operators with multiple threads by centralizing the decision-making logic in a single control component

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2887209B1Functional unit for supporting multithreading, processor comprising the same, and operating method thereof
Publication Date: 2023.03.22 SAMSUNG ELECTRONICS CO LTD
  • EP2887209B1 patent drawingFigure 1
  • EP2887209B1 patent drawingFigure 2
  • EP2887209B1 patent drawingFigure 3

AI summary

A functional unit for supporting multithreading, a processor including the same, and an operating method of the processor are provided. The functional unit for supporting multithreading includes a plurality of input ports configured to receive opcodes and operands for a plurality of threads, wherein each of the plurality of input ports is configured to receive an opcode and an operand for a different thread, a plurality of operators configured to perform operations using the received operands, an operator selector configured to select, based on each opcode, an operator from among the plurality of operators to perform a specific operation using an operand from among the received operands, and a plurality of output ports configured to output operation results of operations for each thread.