Multi-Channel Packet Fragment Scheduler for Memory Area Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata processing capabilityVSAvoidmemory resources and die area
Core Design Contradiction:
ProductivityVSArea of stationary object

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvestorage speedVSAvoidbandwidth loss
Core Design Contradiction:
SpeedVSLoss of energy

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.

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS7379467B1Scheduling store-forwarding of back-to-back multi-channel packet fragments
Publication Date: 2008.05.27 TAIWAN SEMICONDUCTOR MANUFACTURING CO LTD
  • US7379467B1 patent drawing
  • US7379467B1 patent drawing
  • US7379467B1 patent drawing

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.