IP Library Granted Patent US 12,470,355
Granted Patent B2
US 12,470,355 · App. 17/930,405 · Granted Nov 11, 2025

ACK coalescing performance through dynamic stream selection

Inventors: Rohan Prabhu (Hyderabad, IN); Prachi Agrawal (Hyderabad, IN); Rajashekar Chilla (San Diego, CA); Prasad Gadde (Hyderabad, IN); Vijay Kumar Bolleni (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L5/0055
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 12,470,355
App. No.
17/930,405
Granted
Nov 11, 2025
Kind
B2
Abstract

A receiver may receive a plurality of data streams from a transmitter, each data stream of the plurality of data streams including at least one data stream, rank at least a subset of the plurality of data streams based on a metric that is based on a number of ACKs associated with each data stream, and transmit at least one subset of ACKs for the subset of data streams, wherein each subset of ACKs of the at least one subset of ACKs indicates a plurality of ACKs for a subset of packets of the subset of data streams. The rank of at least the subset of the plurality of data streams is generated based at least in part on an estimated number of ACKs for each data stream of the plurality of data streams.

Claims (64)

1 . An apparatus for wireless communication at a receiver, comprising:

memory; and

at least one processor coupled to the memory and, based at least in part on information stored in the memory, the at least one processor is configured to:

receive a plurality of data streams from a transmitter, each data stream of the plurality of data streams including at least one data stream;

sample, based on a number of data streams of the plurality of data streams being greater than a threshold number of data streams, a number of acknowledgements (ACKs) generated for each data stream of the plurality of data streams during a period of time;

rank the plurality of data streams based on the number of ACKs sampled for each data stream during the period of time to identify a subset of the plurality of data streams; and

transmit at least one subset of ACKs for the subset of the plurality of data streams, wherein each subset of ACKs of the at least one subset of ACKs indicates a plurality of ACKs for a subset of packets of the subset of the plurality of data streams.

2 . The apparatus of claim 1 , wherein the subset of the plurality of data streams is based on the threshold number of data streams, and wherein the at least one processor is further configured to:

coalesce multiple ACKs for the threshold number of data streams based on an order of ACK generation prior to a first expiration of a first timer.

3 . The apparatus of claim 2 , wherein the at least one processor is further configured to:

initiate a second timer based on the number of data streams of the plurality of data streams received before the first expiration of the first timer being greater than the threshold number of data streams, wherein the period of time to sample the number of ACKs is based on the second timer.

4 . The apparatus of claim 3 , wherein the rank of at least the subset of the plurality of data streams is generated based at least in part on an estimated number of ACKs for each data stream of the plurality of data streams.

5 . The apparatus of claim 4 , wherein the estimated number of ACKs for each data stream is generated based on an average number of ACKs based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

6 . The apparatus of claim 4 , wherein the estimated number of ACKs for each data stream is determined based on a weighted sum of a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream using at least one weight.

7 . The apparatus of claim 6 , wherein, to rank at least the subset of the plurality of data streams, the at least one processor is further configured to:

generate the at least one weight for determining the estimated number of ACKs for each data stream using an artificial neural network (ANN) model, an input of the ANN model including at least the current number of ACKs generated for each data stream and the at least one previous number of ACKs generated for each data stream.

8 . The apparatus of claim 3 , wherein the rank for at least the subset of the plurality of data streams is generated based at least in part on a deviation of the number of ACKs for each data stream of the plurality of data streams, wherein the deviation of the number of ACKs for each data stream is based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

9 . The apparatus of claim 1 , wherein, to rank of at least the subset of the plurality of data streams, the at least one processor is further configured to:

update the subset of the plurality of data streams by replacing at least one lowest rank data stream of the subset of the plurality of data streams with at least one replacement data stream other than the subset of the plurality of data streams,

wherein the at least one replacement data stream has a first metric greater than a second metric of the at least one lowest rank data stream.

10 . The apparatus of claim 9 , further comprising a transceiver coupled to the at least one processor,

wherein the first metric is greater than the second metric by a threshold value.

11 . A method of wireless communication at a receiver, comprising:

receiving a plurality of data streams from a transmitter, each data stream of the plurality of data streams including at least one data stream;

sampling, based on a number of data streams of the plurality of data streams being greater than a threshold number of data streams, a number of acknowledgements (ACKs) generated for each data stream of the plurality of data streams during a period of time;

ranking the plurality of data streams based on the number of ACKs sampled for each data stream during the period of time to identify a subset of the plurality of data streams; and

transmitting at least one subset of ACKs for the subset of the plurality of data streams, wherein each subset of ACKs of the at least one subset of ACKs indicates a plurality of ACKs for a subset of packets of the subset of the plurality of data streams.

12 . The method of claim 11 , wherein the subset of the plurality of data streams is based on the threshold number of data streams, and wherein the method further comprises:

coalescing multiple ACKs for the threshold number of data streams based on an order of ACK generation prior to a first expiration of a first timer.

13 . The method of claim 12 , further comprising:

initiating a second timer based on the number of data streams of the plurality of data streams received before the first expiration of the first timer being greater than the threshold number of data streams, wherein the period of time to sample the number of ACKs is based on the second timer.

14 . The method of claim 13 , wherein the rank of at least the subset of the plurality of data streams is generated based at least in part on an estimated number of ACKs for each data stream of the plurality of data streams.

15 . The method of claim 14 , wherein the estimated number of ACKs for each data stream is generated based on an average number of ACKs based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

16 . The method of claim 14 , wherein the estimated number of ACKs for each data stream is determined based on a weighted sum of a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream using at least one weight.

17 . The method of claim 16 , wherein ranking at least the subset of the plurality of data streams further comprises:

generating the at least one weight for determining the estimated number of ACKs for each data stream using an artificial neural network (ANN) model, an input of the ANN model including at least the current number of ACKs generated for each data stream and the at least one previous number of ACKs generated for each data stream.

18 . The method of claim 13 , wherein the rank for at least the subset of the plurality of data streams is generated based at least in part on a deviation of the number of ACKs for each data stream of the plurality of data streams, wherein the deviation of the number of ACKs for each data stream is based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

19 . The method of claim 11 , wherein ranking at least the subset of the plurality of data streams further comprises:

updating the subset of the plurality of data streams by replacing at least one lowest rank data stream of the subset of the plurality of data streams with at least one replacement data stream other than the subset of the plurality of data streams,

wherein the at least one replacement data stream has a first metric greater than a second metric of the at least one lowest rank data stream.

20 . The method of claim 19 , wherein the first metric is greater than the second metric by a threshold value.

21 . An apparatus for wireless communication at a receiver, comprising:

means for receiving a plurality of data streams from a transmitter, each data stream of the plurality of data streams including at least one data stream;

means for sampling, based on a number of data streams of the plurality of data streams being greater than a threshold number of data streams, a number of acknowledgements (ACKs) generated for each data stream of the plurality of data streams during a period of time;

means for ranking the plurality of data streams based on the number of ACKs sampled for each data stream during the period of time to identify a subset of the plurality of data streams; and

means for transmitting at least one subset of ACKs for the subset of the plurality of data streams, wherein each subset of ACKs of the at least one subset of ACKs indicates a plurality of ACKs for a subset of packets of the subset of the plurality of data streams.

22 . The apparatus of claim 21 , wherein the subset of the plurality of data streams is based on the threshold number of data streams, and wherein the apparatus further includes:

means for coalescing multiple ACKs for the threshold number of data streams based on an order of ACK generation prior to a first expiration of a first timer.

23 . The apparatus of claim 22 , wherein, the means for ranking at least the subset of the plurality of data streams is further configured to:

initiate a second timer based on the number of data streams of the plurality of data streams received before the first expiration of the first timer being greater than the threshold number of data streams, wherein the period of time to sample the number of ACKs is based on the second timer.

24 . The apparatus of claim 23 , wherein the rank of at least the subset of the plurality of data streams is generated based at least in part on an estimated number of ACKs for each data stream of the plurality of data streams.

25 . The apparatus of claim 24 , wherein the estimated number of ACKs for each data stream is generated based on an average number of ACKs based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

26 . The apparatus of claim 24 , wherein the estimated number of ACKs for each data stream is determined based on a weighted sum of a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream using at least one weight.

27 . The apparatus of claim 26 , wherein, the means for ranking at least the subset of the plurality of data streams is further configured to:

generate the at least one weight for determining the estimated number of ACKs for each data stream using an artificial neural network (ANN) model, an input of the ANN model including at least the current number of ACKs generated for each data stream and the at least one previous number of ACKs generated for each data stream.

28 . The apparatus of claim 23 , wherein the rank for at least the subset of the plurality of data streams is generated based at least in part on a deviation of the number of ACKs for each data stream of the plurality of data streams, wherein the deviation of the number of ACKs for each data stream is based on a current number of ACKs generated for each data stream and at least one previous number of ACKs generated for each data stream.

29 . The apparatus of claim 21 , wherein, the means for ranking at least the subset of the plurality of data streams is further configured to:

update the subset of the plurality of data streams by replacing at least one lowest rank data stream of the subset of the plurality of data streams with at least one replacement data stream other than the subset of the plurality of data streams,

wherein the at least one replacement data stream has a first metric greater than a second metric of the at least one lowest rank data stream.

30 . An apparatus for wireless communication at a transmitter, comprising:

memory; and

at least one processor coupled to the memory and, based at least in part on information stored in the memory, the at least one processor is configured to:

transmit a plurality of data streams to a receiver; and

receive, based on a number of data streams in the plurality of data streams being greater than a threshold number of data streams, coalesced acknowledgements (ACKs) for a subset of the plurality of data streams, wherein the coalesced ACKs indicate a plurality of ACKs for a subset of packets of the subset of the plurality of data streams, and each data stream of the subset of the plurality of data streams being associated with a rank within the plurality of data streams based on a number of sampled acknowledgements (ACKs) associated with each data stream during a period of time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2023
From: PRABHU, ROHAN; AGRAWAL, PRACHI; CHILLA, RAJASHEKAR; GADDE, PRASAD; BOLLENI, VIJAY KUMAR
To: QUALCOMM INCORPORATED
Reel/Frame 062263/0369 →
Continuity (1)
Related Publication 20240080165A1 · Mar 7, 2024
References Cited (14)
US 7324525B2 · Fuhs · 2008 [cited by examiner]
US 7826487B1 · Mukerji · 2010 [cited by examiner]
US 10212623B2 · Ben-Haim · 2019 [cited by examiner]
US 10645200B2 · Gil · 2020 [cited by examiner]
US 12040988B2 · Vaduvatha · 2024 [cited by examiner]
US 20040196785A1 · Janakiraman · 2004 [cited by examiner]
US 20050147039A1 · Biran · 2005 [cited by examiner]
US 20060067222A1 · Endoh · 2006 [cited by examiner]
US 20170063498A1 · Venkatsuresh · 2017 [cited by examiner]
US 20170168986A1 · Sajeepa et al. · 2017 [cited by applicant]
US 20190297020A1 · Mudireddy · 2019 [cited by examiner]
US 20240014981A1 · Yang · 2024 [cited by examiner]
WO 2019183519A1 · 2019 [cited by applicant]
International Search Report and Written Opinion—PCT/US2023/031301—ISA/EPO—Dec. 11, 2023. [cited by applicant]