IP Library Granted Patent US 12,340,195
Granted Patent B2
US 12,340,195 · App. 18/118,428 · Granted Jun 24, 2025

Handling interrupts from a virtual function in a system with a reconfigurable processor

Inventors: Manish K. Shah (Austin, TX); Paul Jordan (Austin, TX); Maran Wilson (Palo Alto, CA); Ravinder Kumar (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F8/457G06F8/441G06F9/45558G06F9/4812G06F13/24G06F2009/45579G06F2009/45583G06F2009/45595G06F2213/0026
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,340,195
App. No.
18/118,428
Granted
Jun 24, 2025
Kind
B2
Abstract

A system is presented that includes a communication link, a runtime processor coupled to the communication link, and a reconfigurable processor. The reconfigurable processor is adapted for generating an interrupt to the runtime processor in response to a predetermined event and includes multiple arrays of coarse-grained reconfigurable (CGR) units and an interface to the communication link that couples the reconfigurable processor to the runtime processor via the communication link. The runtime processor is adapted for configuring the interface to the communication link to provide access to the multiple arrays of coarse-grained reconfigurable units from a physical function driver and from at least one virtual function driver, and the reconfigurable processor is adapted for sending the interrupt to the physical function driver and to a virtual function driver of the at least one virtual function driver within the runtime processor.

Claims (42)

1. A system, comprising:

a communication link;

a runtime processor that is operatively coupled to the communication link; and

a reconfigurable processor adapted for generating an interrupt to the runtime processor in response to a predetermined event, the reconfigurable processor comprising:

multiple arrays of coarse-grained reconfigurable units, and

an interface to the communication link that couples the reconfigurable processor to the runtime processor via the communication link,

wherein the runtime processor is adapted for configuring the interface to the communication link to provide access to the multiple arrays of coarse-grained reconfigurable units from a physical function driver and from at least one virtual function driver, wherein each one of at least one virtual function is associated with a corresponding one of the at least one virtual function driver, wherein a first virtual function of the at least one virtual function that is associated with a first virtual function driver of the at least one virtual function driver has exclusive access among the at least one virtual function to a predetermined array of the multiple arrays of coarse-grained reconfigurable units, and wherein the reconfigurable processor is adapted for only notifying the physical function driver and the first virtual function driver within the runtime processor about the interrupt when the predetermined event occurred in the predetermined array of the multiple arrays of coarse-grained reconfigurable units.

2. The system of claim 1 , wherein a physical function that is associated with the physical function driver has exclusive access to a first portion of the multiple arrays of coarse-grained reconfigurable units, and wherein the physical function shares access to a second portion of the multiple arrays of coarse-grained reconfigurable units that is different than the first portion with the first virtual function.

3. The system of claim 2 , wherein each virtual function of the at least one virtual function has exclusive access among the at least one virtual function to at least one array of the multiple arrays of coarse-grained reconfigurable units.

4. The system of claim 1 , wherein the predetermined event comprises at least one of a load-complete event, an execution-complete event, a checkpoint event, a direct memory access (DMA) completion event, a DMA error event, a memory access error, or a runtime exception.

5. The system of claim 1 , wherein the reconfigurable processor further comprises:

storage circuitry that is adapted for storing a first identifier that identifies an array of the multiple arrays of coarse-grained reconfigurable units that generated the interrupt and for storing a second identifier that identifies the predetermined event that caused the interrupt.

6. The system of claim 5 , wherein the communication link comprises a Peripheral Component Interface Express (PCIe) bus and the reconfigurable processor is adapted for implementing a PCIe message signaled interrupt (MSI-X) in response to the predetermined event.

7. The system of claim 6 , wherein the storage circuitry further comprises:

status registers that are adapted for storing the first identifier; and

an interrupt status array (ISA) that is adapted for storing the second identifier.

8. The system of claim 7 , wherein the reconfigurable processor is adapted for implementing a pair of ISA and status registers for the physical function and another pair of ISA and status registers for each one of the at least one virtual function.

9. The system of claim 1 , further comprising:

external memory that is operatively coupled to the communication link, wherein the first virtual function has exclusive access among the at least one virtual function to a predetermined portion of the external memory, and wherein the reconfigurable processor is adapted for only notifying the physical function driver and the first virtual function driver about the interrupt when the predetermined event occurred in the predetermined portion of the external memory or during access to the predetermined portion of the external memory.

10. The system of claim 1 , wherein the reconfigurable processor further comprises:

a virtualization mailbox for sending messages from the physical function to the first virtual function, wherein the physical function generates an additional interrupt when the physical function sends a message to the first virtual function, and wherein the reconfigurable processor is adapted for only notifying the first virtual function about the additional interrupt.

11. A method of operating a system that comprises a communication link, a runtime processor that is operatively coupled to the communication link, and a reconfigurable processor comprising multiple arrays of coarse-grained reconfigurable units, and an interface to the communication link that couples the reconfigurable processor to the runtime processor via the communication link, comprising:

configuring, with the runtime processor, the interface to the communication link to provide access to the multiple arrays of coarse-grained reconfigurable units from a physical function driver and from at least one virtual function driver, wherein a first virtual function of at least one virtual function is associated with a first virtual function driver of the at least one virtual function driver;

providing, with the runtime processor, the first virtual function with exclusive access among the at least one virtual function to a predetermined array of the multiple arrays of coarse-grained reconfigurable units;

generating, with the reconfigurable processor, an interrupt in response to a predetermined event; and

reporting, with the reconfigurable processor, the interrupt to the physical function driver in the runtime processor and to the first virtual function driver in the runtime processor when the predetermined event occurred in the predetermined array of the multiple arrays of coarse-grained reconfigurable units.

12. The method of claim 11 , wherein the reconfigurable processor further comprises storage circuitry, further comprising:

storing a first identifier in the storage circuitry that identifies an array of the multiple arrays of coarse-grained reconfigurable units that generated the interrupt; and

storing a second identifier in the storage circuitry that identifies the predetermined event that caused the interrupt.

13. The method of claim 11 , wherein the communication link comprises a Peripheral Component Interface Express (PCIe) bus, further comprising:

with the reconfigurable processor, implementing a PCIe message signaled interrupt (MSI-X) in response to the predetermined event.

14. The method of claim 11 , wherein the system further comprises external memory that is operatively coupled to the communication link, and wherein the first virtual function has exclusive access among the at least one virtual function to a predetermined portion of the external memory, further comprising:

with the reconfigurable processor, only notifying the physical function driver and the first virtual function driver about the interrupt when the predetermined event occurred in the predetermined portion of the external memory or during access to the predetermined portion of the external memory.

15. The method of claim 11 , wherein the reconfigurable processor further comprises a virtualization mailbox for sending messages from a physical function that is associated with the physical function driver to the first virtual function, and wherein the physical function generates an additional interrupt when the physical function sends a message to the first virtual function, further comprising:

with the reconfigurable processor, only notifying the first virtual function about the additional interrupt.

16. A non-transitory computer-readable storage medium including instructions that, when executed by a processing unit, cause the processing unit to operate a system that comprises a communication link, a runtime processor that is operatively coupled to the communication link, and a reconfigurable processor comprising multiple arrays of coarse-grained reconfigurable units, and an interface to the communication link that couples the reconfigurable processor to the runtime processor via the communication link, the instructions comprising:

configuring the interface to the communication link to provide access to the multiple arrays of coarse-grained reconfigurable units from a physical function driver and from at least one virtual function driver, wherein a first virtual function of at least one virtual function is associated with a first virtual function driver of the at least one virtual function driver;

providing the first virtual function with exclusive access among the at least one virtual function to a predetermined array of the multiple arrays of coarse-grained reconfigurable units;

generating an interrupt in response to a predetermined event; and

reporting the interrupt to the physical function driver in the runtime processor and to the first virtual function driver in the runtime processor when the predetermined event occurred in the predetermined array of the multiple arrays of coarse-grained reconfigurable units.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the system further comprises external memory that is operatively coupled to the communication link, and wherein the first virtual function has exclusive access among the at least one virtual function to a predetermined portion of the external memory, the instructions further comprising:

only notifying the physical function driver and the first virtual function driver about the interrupt when the predetermined event occurred in the predetermined portion of the external memory or during access to the predetermined portion of the external memory.

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 Jul 26, 2023
From: SHAH, MANISH K.; JORDAN, PAUL J.; WILSON, MARAN; KUMAR, RAVINDER
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 064382/0881 →
Continuity (3)
Continuation 18104758 · Feb 1, 2023
Provisional Application 63305956 · Feb 2, 2022
Related Publication 20230244462A1 · Aug 3, 2023
References Cited (27)
US 11250105B2 · Wang et al. · 2022 [cited by applicant]
US 11327923B2 · Wang et al. · 2022 [cited by applicant]
US 11410027B2 · Chen et al. · 2022 [cited by applicant]
US 11487694B1 · Misra et al. · 2022 [cited by applicant]
US 20060004997A1 · Mykland · 2006 [cited by examiner]
US 20060149608A1 · Asgari et al. · 2006 [cited by applicant]
US 20060259650A1 · Chou et al. · 2006 [cited by applicant]
US 20080114937A1 · Reid · 2008 [cited by examiner]
US 20080183955A1 · Yang et al. · 2008 [cited by applicant]
US 20090064199A1 · Bidelis · 2009 [cited by examiner]
US 20100332775A1 · Kapil et al. · 2010 [cited by applicant]
US 20120126850A1 · Wasson · 2012 [cited by examiner]
US 20120131257A1 · Rudosky · 2012 [cited by examiner]
US 20130080732A1 · Nellans et al. · 2013 [cited by applicant]
US 20140108701A1 · Liljeberg · 2014 [cited by applicant]
US 20210216873A1 · Liu · 2021 [cited by applicant]
US 20210271630A1 · Koeplinger et al. · 2021 [cited by applicant]
US 20210373867A1 · Chen et al. · 2021 [cited by applicant]
US 20220012077A1 · Kumar · 2022 [cited by examiner]
US 20220058129A1 · Kim · 2022 [cited by examiner]
US 20230029331A1 · Chisnall et al. · 2023 [cited by applicant]
WO 2010142987A1 · 2010 [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]
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]
U.S. Appl. No. 18/104,758 Non-Final Rejection, dated Sep. 30, 2024, 18 pages. [cited by applicant]