Hardware Concurrency Engine for Multi-Processor Thread Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional multi-processor systems face performance issues due to slow synchronization mechanisms, which hinder the efficient execution of threads in parallel processing environments.

Innovation Solution

A processing system equipped with a hardware concurrency engine that manages concurrency primitives, allowing processors to execute threads efficiently by decoding requests, executing operations, and encoding results, while supporting synchronization through objects like semaphores, counters, and monitors, thereby accelerating thread execution and synchronization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional synchronization mechanisms are used in multi-processor systems, then thread coordination is achieved, but system performance is reduced due to slow synchronization speed

Engineering Contradiction:
Improvesynchronization speedVSAvoidsystem performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent replaces conventional software-based synchronization mechanisms with a hardware concurrency engine that processes synchronization operations in hardware. This substitution of mechanical/software systems with hardware directly addresses the speed bottleneck, enabling faster thread coordination without sacrificing system performance

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

Solution Approach 2:

The hardware concurrency engine acts as an intermediary between multiple processors and the synchronization operations. It manages concurrency primitives (semaphores, monitors, barriers) in hardware, mediating access and coordination between processors to achieve fast synchronization while maintaining system performance

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If multiple processors execute threads in parallel, then processing power is improved, but coordination overhead increases due to slow synchronization

Engineering Contradiction:
Improveprocessing powerVSAvoidcoordination time
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

By replacing software synchronization with hardware-based concurrency management, the patent eliminates the time-consuming software overhead associated with coordinating multiple processors. The hardware concurrency engine handles synchronization operations natively, reducing coordination time while preserving parallel processing power

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

Solution Approach 2:

The hardware concurrency engine pre-configures and manages concurrency primitives in hardware before threads need coordination. This preliminary setup in hardware eliminates runtime overhead, allowing processors to execute threads in parallel with minimal coordination delays

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8566828B2Accelerator for multi-processing system and method
Publication Date: 2013.10.22 STMICROELECTRONICS INT NV
  • US8566828B2 patent drawing
  • US8566828B2 patent drawing
  • US8566828B2 patent drawing

AI summary

A processing system includes a plurality of processors capable of executing a plurality of threads and supporting at least one of hardware context switching and software context switching. The processing system also includes a hardware concurrency engine coupled to the plurality of processors. The concurrency engine is capable of managing a plurality of concurrency primitives that coordinate execution of the threads by the processors. The concurrency primitives could represent objects, and the processors may be capable of using the objects by reading from and/or writing to addresses in an address space associated with the concurrency engine. Each address may encode an object index identifying one of the objects, an object type identifying a type associated with the identified object, and an operation type identifying a requested operation involving the identified object.