IP Library Granted Patent US 12689593
Granted Patent B1
US 12689593 · App. 18/322,497 · Granted Jul 21, 2026

Method and apparatus for packet reordering and aggregation

Inventors: Liyan Ying (Los Altos Hills, CA); Marleson Graf (Brusque, BR); Kunal Chhabriya (San Jose, CA)
Assignee: Cadence Design Systems, Inc.
H04L47/41H04L47/624H04L63/0428
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12689593
App. No.
18/322,497
Granted
Jul 21, 2026
Kind
B1
Abstract

The present embodiments relate generally to data communications, and more particularly to methods and apparatuses for packet reordering and aggregation. One or more embodiments relate to a solution in which transaction layer reordering is made aware of IDE aggregation requirements. For example, PCIe packets are reordered to minimize the occurrence of blocked packets due to incomplete aggregation for certain types of PCIe packets which still need to be encrypted. This leads to improved traffic variation and higher throughput, while still ensuring that IDE security requirements are upheld and maintained.

Claims (48)

1 . A method for managing communications, comprising:

maintaining received packets in a queue;

aggregating packets from the queue in a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of the aggregated packets;

reordering the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;

determining when one of the aggregation units satisfies a parameter;

encrypting the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;

removing the packets in the one aggregation unit from a buffer when it is determined that the one aggregation unit satisfies the parameter; and

sending the encrypted packets in the one aggregation unit to a next communications layer.

2 . The method of claim 1 , wherein the packets are transaction layer packets (TLPs) and the queue is a transaction layer (TL) queue.

3 . The method of claim 1 , wherein aggregating includes:

determining a respective one of a plurality of packet types for each packet in the buffer, wherein each packet type corresponds to one of the aggregation units; and

grouping together packets based on the determined packet types in the corresponding aggregation units.

4 . The method of claim 3 , wherein the packet types include Non-Posted Request (NPR), Posted Request (PR) and Completion (CPL).

5 . The method of claim 1 , wherein the parameter is a threshold number of packets.

6 . The method of claim 1 , wherein the parameter is a timeout.

7 . An apparatus for managing communications, comprising:

a queue configured for storing packets;

a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of packets contained therein; and

a reordering and aggregation block configured to:

aggregate packets from the queue into the aggregation units;

reorder the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;

determine when one of the aggregation units satisfies a parameter;

encrypt the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;

remove the packets in the one aggregation unit from a buffer when it is determined that the one aggregation unit satisfies the parameter; and

send the encrypted packets in the one aggregation unit to a next communications layer.

8 . The apparatus of claim 7 , wherein the packets are transaction layer packets (TLPs) and the queue is a transaction layer (TL) queue.

9 . The apparatus of claim 7 , wherein aggregating includes:

determining a respective one of a plurality of packet types for each packet in the buffer, wherein each packet type corresponds to one of the aggregation units; and

grouping together packets based on the determined packet types in the corresponding aggregation units.

10 . The apparatus of claim 9 , wherein the packet types include Non-Posted Request (NPR), Posted Request (PR) and Completion (CPL).

11 . The apparatus of claim 7 , wherein the parameter is a threshold number of packets.

12 . The apparatus of claim 7 , wherein the parameter is a timeout.

13 . A computer readable program product comprising a nontransitory storage medium having instructions stored thereon, which when executed by a processor, cause the processor to perform method for managing communications, comprising:

maintaining received packets in a queue;

determining a respective one of a plurality of packet types for each packet in a buffer, wherein each packet type corresponds to one of a plurality of aggregation units, wherein the aggregation units are configured for performing subsequent encryption of the aggregated packets;

grouping together packets, from the queue, based on the determined packet types in the corresponding aggregation units;

reordering the packets in the queue in accordance with a filled status of the plurality of aggregation units such that at least one of the packets corresponding to an aggregation unit closest to being full is moved to the head of the queue;

determining when one of the aggregation units satisfies a parameter;

encrypting the packets in the one aggregation unit when it is determined that the one aggregation unit satisfies the parameter;

removing the packets in the one aggregation unit from the buffer when it is determined that the one aggregation unit satisfies the parameter; and

sending the encrypted packets in the one aggregation unit to a next communications layer.

14 . The computer readable program product of claim 13 , wherein the packets are transaction layer packets (TLPs) and the queue is a transaction layer (TL) queue.

15 . The computer readable program product of claim 13 , wherein the parameter is a threshold number of packets.

16 . The computer readable program product of claim 13 , wherein the parameter is a timeout.

17 . The method of claim 1 , wherein the plurality of aggregation units respectively correspond to a plurality of packet types, and wherein reordering includes:

identifying a blocked packet in the queue;

determining if one of the plurality of aggregation units corresponding to the packet type of the blocked packet contains one or more other packets; and

if it is determined that the one aggregation unit contains one or more other packets, reordering the blocked packet to the head of the queue.