Multi-Channel Packet Fragment Scheduler for Memory Area Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional packet processing systems require significant memory resources and die area to handle high-speed, multi-channel communication links, leading to inefficient memory usage and bandwidth loss due to the need for multiple write ports and large memory sizes.
Innovation Solution
A method and apparatus that utilize a single dual-port memory with a scheduler to regulate the storage and forwarding of back-to-back multi-channel packet fragments, allowing for single-port write operations and efficient memory allocation by scheduling data writes across multiple communication channels.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple write ports and large memory sizes are used to handle high-speed multi-channel communication links, then data processing capability is improved, but memory resources and die area increase significantly
Solution Approach 1:
The patent segments the high-speed data stream into multiple lower-speed channels, allowing a single memory port to handle multiple channels sequentially. The data assembler divides incoming data into channel-specific segments that can be processed and stored in separate FIFO buffers, reducing the need for high-bandwidth memory interfaces and large memory sizes.
Solution Approach 2:
The patent implements dynamic channel assignment and memory allocation where the system adapts to varying channel activity patterns. The data assembler dynamically assigns incoming data to appropriate channel buffers based on current channel states, and the memory system dynamically adjusts its operation mode between single-port and multi-port based on the number of active channels, optimizing resource utilization.
2Speed
If multiple write ports are used to store back-to-back packet fragments from multiple channels, then storage speed is improved, but bandwidth loss increases due to inefficient memory usage
Solution Approach 1:
The patent employs periodic channel activation and memory access patterns where channels are serviced in a systematic sequence rather than simultaneously. The data assembler periodically switches between channel buffers in a round-robin or priority-based manner, allowing the single memory port to maintain high utilization efficiency while preserving storage speed through optimized access timing.
Solution Approach 2:
The patent ensures continuous useful action by implementing overlap techniques where data preparation for one channel occurs during the memory access of another channel. The data assembler continuously processes incoming data and prepares it for storage, while the memory system continuously services active channels, minimizing idle time and maintaining high storage throughput without requiring multiple simultaneous write ports.
Data Source
AI summary
Disclosed is an apparatus and method for an interface for scheduling the store-forwarding of back-to-back multi-channel packet fragments. The apparatus may include a data extraction block, a plurality of data assemblers, a scheduler, and an output memory. The scheduler may be configured to operate according to a scheduling policy. The scheduling policy may include a set of priorities to determine an order of scheduling writes to the output memory from a plurality of data assemblers. The scheduling policy may also include selecting one or more of the plurality of data assemblers having a fill level greater than twice an input data path width of an input data bus and having no end-of-packet (EOP) or start-of-packet (SOP) as a first priority, selecting one or more of the plurality of data assemblers having a fill level greater than twice the input data path width of the input data bus, and not covered in the first priority selection, as a second priority, selecting one or more of the plurality of data assemblers having a fill level greater than the input data path width of the input data bus, and not covered in the first and second priority selections, as a third priority, and selecting one or more of the plurality of data assemblers having an end-of-packet (EOP) as a fourth priority.


