IP Library › Granted Patent US 12,732,468
Granted Patent B2
US 12,732,468 · App. 18/755,152 · Granted Sep 8, 2026

Aggregated data link flow control

Inventors: Michael Raymond Trombley (Cary, NC); Simon S. Li (Cupertino, CA)
Assignee: Microsoft Technology Licensing, LLC
H04L47/39H10W90/00H10W90/722
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,732,468
App. No.
18/755,152
Granted
Sep 8, 2026
Kind
B2
Abstract

Systems and methods are disclosed for credit-based flow control of multiple data links using a common reverse channel. The links transfer data from a source to respective buffers at a sink. Credits represent available buffer space. For each data link, a credit counter at the source is decremented as data is transmitted and incremented as the sink returns credits. Reporting logic at the data sink generates a credit report as sink logic retrieves data from the buffer, freeing buffer space. Encoding logic aggregates the credit reports from multiple links for transmission over the common reverse channel to the source, where individual credit reports are extracted and distributed among the links, for update to the respective credit counters. For each link, data transmission pauses when the credit counter decreases to a threshold. Return multiple links' credits over a single reverse channel saves power. Variations are disclosed.

Claims (69)

1 . A system comprising:

for each of two or more data links from a data source to a data sink:

sink credit reporting logic at the data sink; and

partner credit tracking logic at the data source; and

a common reverse channel from the data sink to the data source, comprising:

encoding logic at the data sink configured to aggregate respective credit reports from the sink credit reporting logic of each of the data links; and

decoding logic at the data source configured to distribute the respective credit reports among the partner credit tracking logic of each of the data links;

wherein, at each data link:

the partner credit tracking logic is configured to update a partner credit counter based on the respective credit report; and

the data source is configured to control data flow over the data link based on the partner credit counter.

2 . The system of claim 1 , wherein the data links are forward data links and the aggregated credit reports are transmitted over one logical channel among a plurality of logical channels within a reverse data link from the data sink to the data source.

3 . The system of claim 2 , wherein the one logical channel comprises respective fields for the respective credit reports of each of the data links.

4 . The system of claim 2 , further comprising, for each of the logical channels:

channel transmit logic at the data sink; and

channel receive logic at the data source;

wherein for at least one of the plurality of logical channels, the reverse data link is configured to place the channel transmit logic or the channel receive logic in a low-power state when the respective logical channel is idle.

5 . The system of claim 4 , wherein the reverse data link further comprises:

common for the logical channels, a reverse transmitter at the data sink coupled to drive data over the reverse data link from the data sink to the data source;

wherein the reverse transmitter is maintained active while at least one of the logical channels is active.

6 . The system of claim 2 , wherein the reverse data link is a serialized data link.

7 . The system of claim 1 , wherein the common reverse channel is a physical channel dedicated to communication of the credit reports from the data sink to the data source.

8 . An integrated circuit package comprising:

a first die;

a second die;

an interposer coupling the first and second dice; and

the system of claim 1 distributed over the first and second dice;

wherein the data source is on the first die and the data sink is on the second die;

wherein each of the data links further comprises a first transmission bus extending from the data source to the data sink through the interposer; and

wherein the common reverse channel further comprises a second transmission bus extending from the data sink to the data source through the interposer.

9 . The integrated circuit package of claim 8 , wherein at least one of the data links is a serialized data link.

10 . A computer comprising:

at least one integrated circuit package according to claim 8 ; and

memory storing instructions which, when executed, cause content data to be transmitted over the data links.

11 . The computer of claim 10 , wherein the instructions implement a neural network and the content data comprises internal signals between units of the neural network.

12 . An integrated circuit package comprising:

a first die;

a second die;

an interposer coupling the first and second dice; and

first and second instances of the system of claim 1 , each distributed over the first and second dice;

wherein the data source of the first instance is on the first die and the data sink of the first instance is on the second die;

wherein the data source of the second instance is on the second die and the data sink of the second instance is on the first die;

wherein each of the data links of the first and second instances further comprises a respective first transmission bus extending between the first and second dice through the interposer; and

wherein the common reverse channel of the first instance and the common reverse channel of the second instance each further comprises a respective second transmission bus extending between the first and second dice through the interposer.

13 . A method, comprising:

at a data sink:

aggregating respective credit reports from a plurality of data links; and

transmitting the credit reports over a common reverse channel from the data sink to a data source; and

at the data source:

distributing the credit reports among the plurality of data links; and

controlling data flow over the data links based on the respective credit reports.

14 . The method of claim 13 , further comprising, for at least a given one of the data links:

at the data sink:

receiving data over the given data link into a buffer;

delivering data from the buffer to destination logic at the data sink;

updating a credit counter responsive to the delivering data; and

generating the respective credit report for the given data link based on the updating.

15 . The method of claim 14 , wherein the respective credit report is generated in response to the credit counter reaching or exceeding a threshold.

16 . The method of claim 14 , wherein the credit report for the given data link has a single field, the single field storing a value of the credit counter.

17 . The method of claim 14 , wherein the credit report for the given data link comprises: a first field storing a value of the credit counter; and a second field identifying the given data link.

18 . The method of claim 14 , further comprising, in conjunction with the generating: resetting the credit counter.

19 . The method of claim 13 , further comprising, for at least a given one of the data links, the controlling comprises:

updating a partner credit counter responsive to the respective credit report;

stopping transmission over the given data link responsive to the partner credit counter reaching or going below a third threshold; and

resuming the transmission over the given data link responsive to transmit data being available and the partner credit counter being above a fourth threshold.

20 . A method, comprising:

at a data source coupled to transfer data to a data sink over multiple forward data links:

receiving, over a common reverse channel from the data sink, an aggregated credit report comprising individual credit reports of respective ones of the forward data links;

distributing, from the aggregated credit report, the individual credit reports to the respective forward data links; and

controlling data flow over the forward data links based on the individual credit reports.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 15, 2024
From: TROMBLEY, MICHAEL RAYMOND; LI, SIMON S.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 067992/0711 →
Continuity (1)
Related Publication 20260005975A1 · Jan 1, 2026
References Cited (76)
US 5036230A · Bazes · 1991 [cited by applicant]
US 5790611A · Huang · 1998 [cited by applicant]
US 7065582B1 · Dwork · 2006 [cited by examiner]
US 7190667B2 · Susnow · 2007 [cited by examiner]
US 7236556B2 · Ward · 2007 [cited by applicant]
US 7263066B1 · Yun · 2007 [cited by examiner]
US 7304987B1 · James · 2007 [cited by examiner]
US 7379422B2 · Nation · 2008 [cited by examiner]
US 7577224B2 · Eldredge · 2009 [cited by applicant]
US 7826371B2 · Hirayama · 2010 [cited by examiner]
US 7852757B1 · Puranik · 2010 [cited by examiner]
US 8711867B2 · Guo · 2014 [cited by examiner]
US 8737228B2 · DeCusatis · 2014 [cited by examiner]
US 9030936B2 · Friedman · 2015 [cited by examiner]
US 9310830B2 · Fiedler · 2016 [cited by applicant]
US 9485689B2 · Farmanbar · 2016 [cited by examiner]
US 9729459B2 · Hendel · 2017 [cited by examiner]
US 10270834B2 · Dao · 2019 [cited by examiner]
US 10623326B2 · Thubert · 2020 [cited by examiner]
US 10904794B2 · Farmanbar · 2021 [cited by examiner]
US 11239992B1 · Wang · 2022 [cited by applicant]
US 11818058B2 · Das Sharma · 2023 [cited by examiner]
US 12355670B2 · Pan · 2025 [cited by examiner]
US 20020196889A1 · Tamura · 2002 [cited by applicant]
US 20040252804A1 · Aoyama · 2004 [cited by applicant]
US 20050047538A1 · Jaussi · 2005 [cited by applicant]
US 20060050639A1 · Stuart · 2006 [cited by examiner]
US 20070136620A1 · Campbell · 2007 [cited by applicant]
US 20070288786A1 · Miller · 2007 [cited by applicant]
US 20080232179A1 · Kwak · 2008 [cited by applicant]
US 20090052600A1 · Chen · 2009 [cited by applicant]
US 20090296867A1 · Do · 2009 [cited by applicant]
US 20100020818A1 · Cardona · 2010 [cited by examiner]
US 20110068836A1 · Wang · 2011 [cited by applicant]
US 20130051397A1 · Guo · 2013 [cited by examiner]
US 20130083611A1 · Ware · 2013 [cited by applicant]
US 20130268705A1 · Maji et al. · 2013 [cited by applicant]
US 20140140206A1 · Hendel · 2014 [cited by examiner]
US 20140369194A1 · Friedman · 2014 [cited by examiner]
US 20150103668A1 · Tian · 2015 [cited by examiner]
US 20150195745A1 · Farmanbar · 2015 [cited by examiner]
US 20160112326A1 · Farmanbar · 2016 [cited by examiner]
US 20170054776A1 · Dao · 2017 [cited by examiner]
US 20170164240A1 · Liang · 2017 [cited by applicant]
US 20180013689A1 · Miro Panades · 2018 [cited by applicant]
US 20190280983A1 · Thubert · 2019 [cited by examiner]
US 20190354134A1 · Cali · 2019 [cited by applicant]
US 20190356611A1 · Das Sharma · 2019 [cited by examiner]
US 20200099506A1 · Goudarzi · 2020 [cited by applicant]
US 20210112002A1 · Pan · 2021 [cited by examiner]
US 20230244293A1 · Ware · 2023 [cited by applicant]
US 20240056067A1 · Wadhwa · 2024 [cited by applicant]
US 20240129260A1 · Farrokhbakht · 2024 [cited by examiner]
US 20240205143A1 · Farrokhbakht · 2024 [cited by examiner]
US 20240257848A1 · Ku · 2024 [cited by applicant]
US 20250119384A1 · Farrokhbakht · 2025 [cited by examiner]
US 20250202834A1 · Jennings · 2025 [cited by examiner]
US 20250267044A1 · Kong · 2025 [cited by applicant]
US 20250310076A1 · Haiming · 2025 [cited by applicant]
US 20260003386A1 · Boecker · 2026 [cited by applicant]
US 20260003388A1 · Shivnaraine · 2026 [cited by applicant]
US 20260003390A1 · Shivnaraine · 2026 [cited by applicant]
CN 114978192A · 2022 [cited by applicant]
EP 1585247A2 · 2005 [cited by applicant]
EP 3053315B1 · 2017 [cited by applicant]
JP 2009200917A · 2009 [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2025/019084, mailed on Jun. 2, 2025, 12 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2025/020790, mailed on Jun. 13, 2025, 14 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2025/019262, Jun. 25, 2025, 12 pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2025/019263 mailed on Jun. 12, 2025, 13 pages. [cited by applicant]
Non-Final Office Action mailed on Aug. 21, 2025, in U.S. Appl. No. 18/755,098, 9 pages. [cited by applicant]
Non-Final Office Action mailed on Aug. 21, 2025, in U.S. Appl. No. 18/755,115, 10 pages. [cited by applicant]
Notice of Allowance mailed on Dec. 23, 2025, in U.S. Appl. No. 18/755,115, 08 Pages. [cited by applicant]
Notice of Allowance mailed on Mar. 2, 2026, in U.S. Appl. No. 18/755,098, 08 Pages. [cited by applicant]
Non-Final Office Action mailed on Apr. 1, 2026, in U.S. Appl. No. 18/755,129, 14 Pages. [cited by applicant]
Notice of Allowance mailed on Apr. 10, 2026, in U.S. Appl. No. 18/755,115, 09 Pages. [cited by applicant]