Unified Message Fabric for Multiprocessor Controllers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current processor communication systems face challenges with low bandwidth and high management overhead due to single-threaded access and limited inter-processor communication efficiency, particularly in embedded controllers like SSD/NVM controllers.
Innovation Solution
Implementing a unified message-based communication system with a message fabric that includes multiple processors and hardware units, utilizing FIFOs for efficient communication, and enabling processors to send and receive messages through a standardized instruction set, simplifying firmware and enhancing performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If shared memory is used for message passing between processors, then communication functionality is provided, but bandwidth is limited and management overhead is high due to single-threaded access
Solution Approach 1:
The shared memory is segmented into multiple communication FIFOs (First-In-First-Out buffers) that can be accessed concurrently by multiple threads. Each FIFO handles a specific communication channel, allowing parallel message passing operations to occur simultaneously without contention, thereby increasing bandwidth while reducing management overhead through automated FIFO ordering.
Solution Approach 2:
The system transitions from single-threaded sequential access to multi-threaded parallel access by adding the thread dimension. Multiple processor threads can now access different FIFOs simultaneously, effectively increasing communication bandwidth without proportionally increasing management overhead since each FIFO operates independently.
2Ease of operation
If conventional hardware communication is built into attached memories via AHB/AMBA/AXI/PIF bus, then inter-processor communication is enabled, but access is single-threaded and processor management overhead is high
Solution Approach 1:
The communication FIFOs are designed as universal interfaces that can be accessed by both processor threads and hardware units through standardized instruction sets. This multi-functionality allows the same communication infrastructure to serve multiple purposes (processor-to-processor, processor-to-hardware, hardware-to-hardware communication) without requiring separate management mechanisms, reducing overhead while maintaining ease of operation.
Solution Approach 2:
The FIFO-based communication system is self-service in that it automatically manages message ordering and transfer without requiring complex processor intervention. The hardware automatically handles the queuing and forwarding of messages between FIFOs, reducing the management overhead on processor cores while maintaining efficient inter-processor and processor-to-hardware communication.
3Speed
If CSR bus is used for processor access to hardware, then control/status register access is provided, but bandwidth is relatively low particularly for single-threaded reads
Solution Approach 1:
The communication interface to hardware units is segmented into multiple dedicated FIFOs rather than using a single CSR bus interface. This segmentation allows multiple processor threads to access different hardware units simultaneously through different FIFOs, increasing both access speed and overall bandwidth compared to single-threaded CSR bus access.
Solution Approach 2:
The traditional CSR bus mechanism is replaced with a FIFO-based message passing system that uses load/store instructions instead of dedicated CSR read/write operations. This substitution enables broader use of the high-bandwidth memory interface rather than being constrained by the lower-bandwidth CSR bus, significantly improving both speed and productivity for hardware access.
Data Source
AI summary
A system includes a plurality of processors, a message fabric, and a plurality of hardware units. Each of the plurality of processors comprises a plurality of communication FIFOs and has an instruction set including at least one instruction to send a message via at least one of the plurality of communication FIFOs. The message fabric couples the processors via at least some of the plurality of communication FIFOs . Each of the processors is associated with a respective one or more of the hardware units and coupled to each of the associated hardware units via respective hardware unit input and output communication FIFOs. Each of the processors is enabled to send messages to others of the processors via respective processor output communication FIFOs. The respective hardware units associated with each of the processors are enabled to send messages to the associated processor via the respective hardware unit input communication FIFOs.


