Messaging Queue Delegate System for Scalable Inter-Processor Communication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multiprocessor systems face inefficiencies in inter-processor communication due to reliance on expensive and non-scalable mechanisms like shared memory and interprocessor interrupts, which hinder effective communication across a large number of processing units.

Innovation Solution

The implementation of messaging queues with a delegate queue system that allows processors to efficiently communicate by storing notifications of received messages, enabling processors or threads to be awakened when messages are available, thereby reducing the need for costly and inefficient polling mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If shared memory and interprocessor interrupts are used for inter-processor communication, then communication between processors is enabled, but the system becomes expensive and inefficient with poor scalability

Engineering Contradiction:
Improvecommunication efficiencyVSAvoidsystem cost and complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces message queues as an intermediary mechanism between processors. Instead of direct shared memory access or interrupt-based communication, processors communicate by placing messages in queues. The queue management system acts as a mediator that handles message routing, notification, and processor wake-up events, eliminating the need for expensive shared memory hardware and complex interrupt handling while improving communication efficiency and scalability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If the number of processors is increased in shared-bus systems, then processing power increases, but the maximum number of processors is limited to a dozen or two

Engineering Contradiction:
Improvenumber of processorsVSAvoidsystem scalability
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the communication system into independent message queues, each associated with specific processors or processing units. This segmentation allows the system to scale to a large number of processors by organizing communication channels in a modular fashion. Each queue operates independently, managing messages for specific processor groups, which eliminates the bottleneck of shared-bus arbitration and enables the system to support many more processors than traditional shared-bus architectures.

Inventive Principle:
Principle #1Segmentation

3Loss of information

If polling mechanisms are used to check for messages, then messages can be detected, but energy is wasted due to continuous polling

Engineering Contradiction:
Improvemessage detectionVSAvoidenergy consumption
Core Design Contradiction:
Loss of informationVSUse of energy by moving object

Solution Approach 1:

The patent implements a feedback mechanism where message queues automatically generate notification events when messages are available. Instead of processors continuously polling to check for messages, the system provides feedback by setting notification bits or generating events that wake up processors when messages arrive. This event-driven feedback approach eliminates wasteful continuous polling while ensuring reliable message detection, significantly reducing energy consumption in multi-processor systems.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9507654B2Data processing system having messaging
Publication Date: 2016.11.29 NXP USA INC
  • US9507654B2 patent drawing
  • US9507654B2 patent drawing
  • US9507654B2 patent drawing

AI summary

A processing system includes a first processing system element, and a second processing system element configured to communicate with the first processing system. The second processing system element includes a set of messaging queues. Each of the messaging queues includes one or more entries for storing data, a set of delegate queue addresses associated with one of the set of messaging queues; and a delegate queue associated with the set of messaging queues. The delegate queue includes a set of entries corresponding to the delegate queue addresses, and each of the entries of the delegate queue indicates whether a corresponding one of the set of messaging queues is storing data.