Multicast Message Persistent Header for Memory Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing message passing systems in multimedia systems require writing the same message into multiple queues to allow multiple consumers to read it, leading to increased memory footprint and synchronization challenges, as well as inefficiencies in handling message consumption.
Innovation Solution
A method and system for message multicasting that employs a programmable persistent header in messages, allowing a single write operation to multiple consumers, with a message parser managing the consumption order and ensuring the message is deleted only after all consumers have received it, thereby reducing memory accesses and system overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the same message is written into multiple queues to allow multiple consumers to read it, then multiple consumers can access the message, but the memory footprint increases
Solution Approach 1:
The patent merges multiple consumer queues into a single multicast queue where a single message instance can be shared by multiple consumers. The message structure includes a reference count that tracks how many consumers have received the message, allowing one message to serve multiple consumers without duplicating memory storage.
Solution Approach 2:
The message queue is designed to serve multiple functions: it acts as both a traditional FIFO queue for single consumers and a multicast queue for multiple consumers. The persistent header in the message contains consumer identification bits that enable the same queue structure to handle different consumption patterns universally.
2Adaptability or versatility
If multiple FIFOs are used to allow multiple consumers to read messages, then message distribution to multiple consumers is enabled, but control logic complexity increases
Solution Approach 1:
The patent combines multiple FIFO structures into a single multicast FIFO where the persistent header contains consumer ID bits. This merging eliminates the need for separate control logic for each FIFO while maintaining the ability to distribute messages to multiple consumers through bitwise operations on the consumer identification field.
Solution Approach 2:
The message structure itself carries the consumer identification information in its persistent header, enabling the message to self-identify which consumers should receive it. This eliminates the need for external control logic to manage message routing, as the message contains its own distribution instructions.
3Productivity
If messages are removed from the queue after being read by one consumer, then memory is freed, but messages cannot be consumed by multiple consumers
Solution Approach 1:
The patent implements a reference count mechanism that provides feedback on how many consumers have received the message. This counter is incremented when a message is written to the multicast queue and decremented as consumers read it. The message is only removed from memory when the counter reaches zero, ensuring proper memory management while supporting multiple consumers.
Solution Approach 2:
The message lifetime in the queue is made dynamic based on the number of consumers that need to receive it. Instead of a fixed remove-after-one-read policy, the message persists in the queue dynamically until all indicated consumers have consumed it, adapting its lifespan to the actual usage pattern.
Data Source
AI summary
A method and system for message multicasting which provides a programmable persistent header in a message to allow one message to be read by multiple target consumers and to ensure that the message passing mechanism does not delete the message until all target consumers have received it. The persistent header may have information about all target consumers and their priority to consume the message. A message parser may obtain from the persistent header identities of target consumers and the order in which they consume the message and allow target consumers to consume the message following the order. The message parser may have a counter which counts the number of consumers that have consumed the message, and keep the message in the queue until all target consumers have consumed the message.


