IP Library Granted Patent US 12,206,579
Granted Patent B2
US 12,206,579 · App. 18/383,742 · Granted Jan 21, 2025

Reconfigurable dataflow unit with remote read/write functionality

Inventors: Manish K. Shah (Austin, TX); Ram Sivaramakrishnan (San Jose, CA); Gregory Frederick Grohoski (Bee Cave, TX); Raghu Prabhakar (San Jose, CA)
Assignee: SambaNova Systems, Inc.
H04L45/745H04L45/52H04L45/7452H04L45/7459
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,206,579
App. No.
18/383,742
Granted
Jan 21, 2025
Kind
B2
Abstract

A reconfigurable processing unit is disclosed, comprising a first internal network and a second internal network with different protocols, an interface to an external network with a different protocol, a first configurable unit sending a request to access an external memory over the first internal network, a second configurable unit receiving the request on the first internal network, obtaining a memory address, determining an identifier for the target reconfigurable processing unit, and sending the request, identifier, and memory address over the second internal network, and a third configurable unit receiving the request, identifier, and memory address on the second internal network, determining a routable address on the external network based on the identifier, synthesizing a payload with the request, address, and identifier, and sending the payload to the routable address on the external network.

Claims (57)

1. A reconfigurable processing unit comprising:

a first internal network and a second internal network, the first internal network and the second internal network having different protocols;

an interface to an external network, the external network having a protocol different than either the first internal network or the second internal network;

a first configurable unit coupled to the first internal network and configured to send, over the first internal network, a request to access an external memory attached to a target reconfigurable processing unit;

a second configurable unit coupled to both the first internal network and the second internal network and configured to receive the request on the first internal network, obtain a memory address for the request, determine an identifier for the target reconfigurable processing unit based on the memory address, and send the request, the identifier for the target reconfigurable processing unit, and the memory address over the second internal network; and

a third configurable unit coupled to both the second internal network and the interface to the external network, and configured to receive the request, the identifier for the target reconfigurable processing unit, and the memory address on the second internal network, determine a routable address on the external network for the target reconfigurable processing unit based on the identifier of the target reconfigurable processing unit, synthesize a payload that includes the request, the memory address, and an identifier of the reconfigurable processing unit, and send the payload to the routable address on the external network.

2. The reconfigurable processing unit of claim 1 , the first configurable unit further configured to generate the memory address and send the memory address to the second configurable unit over the first internal network.

3. The reconfigurable processing unit of claim 2 , the first configurable unit further configured to generate the memory address by accessing a table of addresses stored in a memory of the first configurable unit.

4. The reconfigurable processing unit of claim 2 , the first configurable unit further configured to generate the memory address by calculating the memory address based on a previous memory address.

5. The reconfigurable processing unit of claim 1 , the second configurable unit further configured to generate the memory address.

6. The reconfigurable processing unit of claim 5 , the second configurable unit further configured to generate the memory address by calculating the memory address based on a previous memory address.

7. The reconfigurable processing unit of claim 1 , wherein the request comprises a write;

the first configurable unit further configured to send data for the request over the first internal network to the second configurable unit;

the second configurable unit further configured to send the data for the request over the second internal network to the third configurable unit; and

the third configurable unit further configured to include the data in the payload.

8. The reconfigurable processing unit of claim 1 , further comprising a fourth configurable unit coupled to the second internal network and to an external memory interface;

the third configurable unit further configured to receive a second payload including a second request and a second memory address from the interface to the external network, and send the second request and the second memory address to the fourth configurable unit over the second internal network; and

the fourth configurable unit configured to use the second memory address to access an external memory through the external memory interface to perform the second request.

9. The reconfigurable processing unit of claim 8 , the request comprising a write request and the second payload including second data;

the third configurable unit further configured to send the second data to the fourth configurable unit over the second internal network; and

the fourth configurable unit further configured to write the second data to the second memory address of the external memory through the external memory interface.

10. The reconfigurable processing unit of claim 8 , the request comprising a read request and the second payload including an identifier of a requesting reconfigurable processing unit and an identifier of a configurable unit of the requesting reconfigurable processing unit;

the third configurable unit further configured to temporarily save the identifier of the requesting reconfigurable processing unit and the identifier of the configurable unit of the requesting reconfigurable processing unit;

the fourth configurable unit further configured to receive second data through the external memory interface read from the second memory address of the external memory, and send the second data to the third configurable unit over the second internal network; and

the third configurable unit further configured to generate a return address on the external network based on the saved identifier of the requesting reconfigurable processing unit, synthesize a return payload that includes the second data and the saved identifier of configurable unit of the requesting reconfigurable processing unit, and send the return payload to the return address through the interface to the external network.

11. A method for peer-to-peer communication between configurable units of two reconfigurable processing units (RPUs), the method comprising:

sending, from a first configurable unit of a first RPU over first internal network to a second configurable unit of the first RPU a request to access an external memory attached to a second RPU coupled to the first RPU by an external network;

generating a memory address for the request;

looking up, by the second configurable unit, an identifier of the second RPU based on the memory address;

sending the request, the identifier for the second RPU, and the memory address from the second configurable unit over a second internal network to a third configurable unit of the first RPU;

looking up, by the third configurable unit, a routable address on the external network for the second RPU based on the identifier of the second RPU;

synthesizing, by the third configurable unit, a payload that includes the request, the memory address, and an identifier of the first RPU; and

sending the payload from the third configurable unit to the routable address on the external network;

wherein the first internal network, a second internal network, and the external network each have a different protocol.

12. The method of claim 11 , wherein the first configurable unit generates the memory address and sends the memory address to the second configurable unit over the first internal network.

13. The method of claim 12 , further comprising accessing a table of addresses stored in a memory of the first configurable unit to generate the memory address.

14. The method of claim 12 , further comprising calculating the memory address based on a previous memory address.

15. The method of claim 11 , wherein the second configurable unit generates the memory address.

16. The method of claim 15 , further comprising calculating the memory address based on a previous memory address.

17. The method of claim 11 , wherein the request comprises a write, the method further comprising:

sending data for the request from the first configurable unit to the second configurable unit over the first internal network;

sending the data for the request from the second configurable unit to the third configurable unit over the second internal network; and

including the data in the payload.

18. The method of claim 11 , further comprising:

receiving a second payload including a second request and a second memory address over the external network at the third configurable unit;

sending the second request and the second memory address from the third configurable unit to a fourth configurable unit over the second internal network; and

using, by the fourth configurable unit, the second memory address to access an external memory to perform the second request.

19. The method of claim 18 , wherein the second request comprises a write request and the second payload includes second data, the method further comprising:

sending the second data from the third configurable unit to the fourth configurable unit over the second internal network; and

writing the second data to the second memory address of the external memory.

20. The method of claim 18 , wherein the second request comprises a read request and the second payload includes an identifier of a requesting RPU and an identifier of a configurable unit of the requesting RPU, the method further comprising:

temporarily saving the identifier of the requesting RPU and the identifier of the configurable unit of the requesting RPU at the third configurable unit;

receive second data from the second memory address of the external memory at the fourth configurable unit;

sending the second data from the fourth configurable unit to the third configurable unit over the second internal network;

generating a return address for the external network at the third configurable unit based on the saved identifier of the requesting RPU;

synthesizing a return payload that includes the second data and the saved identifier of configurable unit of the requesting RPU; and

sending the return payload to the return address over the external network.

Assignments (2)
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Apr 18, 2025
From: SAMBANOVA SYSTEMS, INC.
To: SILICON VALLEY BANK, A DIVISION OF FIRST-CITIZENS BANK & TRUST COMPANY, AS AGENT
Reel/Frame 070892/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 25, 2024
From: SHAH, MANISH K.; SIVARAMAKRISHNAN, RAM; GROHOSKI, GREGORY FREDERICK; PRABHAKAR, RAGHU
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 066252/0278 →
Continuity (5)
Continuation In Part 18218562 · Jul 5, 2023
Provisional Application 63405240 · Sep 9, 2022
Provisional Application 63390484 · Jul 19, 2022
Provisional Application 63389767 · Jul 15, 2022
Related Publication 20240073136A1 · Feb 29, 2024
References Cited (53)
US 8321618B1 · Keil et al. · 2012 [cited by applicant]
US 10698853B1 · Grohoski et al. · 2020 [cited by applicant]
US 10908914B2 · Vorbach et al. · 2021 [cited by applicant]
US 11055141B2 · Prabhakar · 2021 [cited by examiner]
US 20050257012A1 · Hughes · 2005 [cited by applicant]
US 20090300262A1 · Vorbach · 2009 [cited by applicant]
US 20100191911A1 · Heddes et al. · 2010 [cited by applicant]
US 20100293304A1 · Alexandron et al. · 2010 [cited by applicant]
US 20150227490A1 · Seo et al. · 2015 [cited by applicant]
US 20160055120A1 · Vorbach et al. · 2016 [cited by applicant]
US 20160188469A1 · Nagarajan et al. · 2016 [cited by applicant]
US 20180089132A1 · Atta et al. · 2018 [cited by applicant]
US 20190158396A1 · Yu · 2019 [cited by examiner]
US 20220171716A1 · Benisty et al. · 2022 [cited by applicant]
US 20230070690A1 · Mugu et al. · 2023 [cited by applicant]
US 20230244748A1 · Natarja · 2023 [cited by examiner]
US 20230251839A1 · Shah et al. · 2023 [cited by applicant]
US 20230251993A1 · Shah et al. · 2023 [cited by applicant]
US 20240020261A1 · Jordan et al. · 2024 [cited by applicant]
EP 1877927B1 · 2011 [cited by applicant]
WO 2010142987A1 · 2010 [cited by applicant]
U.S. Appl. No. 63/349,733, filed Jun. 7, 2022, Manish K. Shah. [cited by applicant]
CA 3125707—First Office Action, dated Jan. 21, 2022, 3 pages. [cited by applicant]
CA 3125707—Voluntary Amendments, dated Jan. 4, 2022, 8 pages. [cited by applicant]
EP 20702339.8—Response to Rules 161(1) and 162 Communication, filed Feb. 25, 2022, 10 pages. [cited by applicant]
EP 20702939.8—Rules 161(1) and 162 Communication, dated Aug. 18, 2021, 3 pages. [cited by applicant]
Koeplinger et al., Spatial: A Language and Compiler for Application Accelerators, PLDI '18, Jun. 18-22, 2018, Association for Computng Machinery, 16 pages. [cited by applicant]
M. Emani et al., Accelerating Scientific Applications With Sambanova Reconfigurable Dataflow Architecture, in Computing in Science & Engineering, vol. 23, No. 2, pp. 114-119, Mar. 26, 2021, [doi: 10.1109/MCSE.2021.30572… [cited by applicant]
PCT/US2020/012079—International Preliminary Report on Patentability, dated May 7, 2021, 14 pages. [cited by applicant]
PCT/US2020/012079—International Search Report and Written Opinion mailed Apr. 29, 2020, 18 pages. [cited by applicant]
PCT/US2020/012079—Second Article 34 Amendment {Response to Informal Communication by Telephone) dated Feb. 2, 2021, as filed on Apr. 2, 2021, 5 pages. [cited by applicant]
PCT/US2023/012723—International Search Report and Written Opinion, dated May 31, 2023, 13 pages. [cited by applicant]
Podobas et al, A Survey on Coarse-Grained Reconfigurable Architectures From a Performance Perspective, IEEEAccess, vol. 2020.3012084, Jul. 27, 2020, 25 pages. [cited by applicant]
Prabhakar et al., Plasticine: A Reconfigurable Architecture for Parallel Patterns, ISCA, Jun. 24-28, 2017, 14 pages. [cited by applicant]
TW 108148376—Notice of Allowance dated Oct. 23, 2020, 5 pages. [cited by applicant]
TW 108148376—Request for Exam and Voluntary Amendment filed Jun. 30, 2020, 17 pages. [cited by applicant]
TW 110101760—First Office Action dated Mar. 29, 2022, 12 pages. [cited by applicant]
TW110101760—Notice of Allowance, dated Sep. 21, 2022, 2 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated Feb. 12, 2020, 10 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Notice of Allowance dated May 14, 2020, 15 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Office Action dated Aug. 7, 2019, 8 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Final Office Action dated Jan. 8, 2020 filed Jan. 24, 2020, 14 pages. [cited by applicant]
U.S. Appl. No. 16/239,252—Response to Office Action dated Aug. 7, 2019, filed Sep. 26, 2019, 6 pages. [cited by applicant]
U.S. Appl. No. 16/239,252 Final Office Action, dated Jan. 8, 2020, 13 pages. [cited by applicant]
U.S. Appl. No. 16/862,445—Notice of Allowance, dated Sep. 17, 2021, 15 pages. [cited by applicant]
U.S. Appl. No. 16/862,445—Response to Office Action dated Mar. 18, 2021, filed Jun. 9, 2021, 12 pages. [cited by applicant]
Ming et al., A Reconfigurable Soc for Block Ciphers with a Programmable Dataflow Structure, dated Apr. 18-20, 2011, Third International Conference on Communications and Mobile Computing, 4 pages. [cited by applicant]
Prabhakar et al., SambaNova SN10 RDU: A 7nm Dataflow Architecture to Accelerate Software 2.0, dated Feb. 20-26, 2022, IEEE International Solid-State Circuits Conference, 3 pages. [cited by applicant]
U.S. Appl. No. 18/383,718—Notice of Allowance, dated Jul. 15, 2024, 12 pages. [cited by applicant]
U.S. Appl. No. 18/107,613—Non-Final Rejection dated May 13, 2024, 8 pages. [cited by applicant]
U.S. Appl. No. 18/107,690—Notice of Allowance, dated Mar. 6, 2024, 9 pages. [cited by applicant]
U.S. Appl. No. 18/199,361—Non-Final Rejection dated Dec. 21, 2023, 12 pages. [cited by applicant]
U.S. Appl. No. 18/199,361—Non-Final Rejection dated Jul. 3, 2024, 17 pages. [cited by applicant]