Multi-port Serial Buffer with Programmable Queue Assignment
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing serial buffers lack flexibility and efficiency in memory access and data handling, particularly in multi-port configurations, which limits their ability to optimize system performance and bus bandwidth utilization.
Innovation Solution
A multi-port serial buffer is designed with programmable queues that can be assigned dynamically for write and read operations across multiple ports, utilizing destination and source ID registers to enable parallel operations and protocol translation or data offloading functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a serial buffer provides multiple ports for data storage and retrieval, then flexibility and adaptability are improved, but device complexity increases
Solution Approach 1:
The serial buffer is designed with multiple ports (first port and second port) that can each independently perform write and read operations on queues. Each port can be configured to access the same or different queues, enabling the buffer to function as a data offload device, pass-through FIFO, or protocol translator depending on the configuration. This multi-functional design allows a single device to serve multiple purposes without requiring separate buffers for each function.
Solution Approach 2:
The serial buffer employs programmable configuration bits that allow dynamic assignment of queues to different ports. The destination ID registers and source ID registers can be programmed to associate different queues with different ports, enabling flexible reconfiguration of data flow paths. This dynamic configurability allows the system to adapt to different operational modes (data offload, pass-through, protocol translation) without hardware changes.
2Productivity
If multiple queues are assigned to the same destination ID, then productivity and bus bandwidth utilization are improved, but device complexity increases
Solution Approach 1:
The patent allows multiple queues to share the same destination ID register, enabling simultaneous write operations to multiple queues from a single port. This merging of destination ID assignments allows the system to efficiently distribute data across multiple queues without requiring separate destination ID registers for each queue, thereby improving productivity while controlling complexity through shared registration resources.
3Adaptability or versatility
If write and read operations are associated with different ports, then adaptability is improved for protocol translation, but ease of operation becomes more complex
Solution Approach 1:
The serial buffer acts as an intermediary device between two ports that may operate different protocols. Data written to queues through one port can be read out through a different port, enabling protocol translation functionality. The buffer's queue structure serves as the mediation layer that decouples the protocol requirements of different ports, allowing each port to operate independently with its own protocol while the buffer handles the translation and data transfer between them.
Data Source
AI summary
A multi-port serial buffer having a plurality of queues is configured to include a first set of queues assigned to store write data associated with a first port, and a second set of queues assigned to store write data associated with a second port. The available queues are user-assignable to either the first set or the second set. Write operations to the first set of queues can be performed in parallel with write operations to the second programmable set of queues. In addition, a first predetermined set of queues is assigned to the first port for read operations, and a second predetermined set of queues is assigned to the second port for read operations. Data can be read from the first predetermined set of queues to the first port at the same time that data is read from the second predetermined set of queues to the second port.


