IP Library Granted Patent US 12,547,581
Granted Patent B2
US 12,547,581 · App. 18/922,873 · Granted Feb 10, 2026

Cluster-based placement and routing of memory units and compute units in a reconfigurable computing grid

Inventors: Kin Hing Leung (Cupertino, CA); Feng Sheng (Palo Alto, CA); Ajit Punj (Palo Alto, CA)
Assignee: SambaNova Systems, Inc.
G06F15/8053G06F15/7871
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,547,581
App. No.
18/922,873
Granted
Feb 10, 2026
Kind
B2
Abstract

A method for optimizing the placement and routing of compute units and memory units within a reconfigurable computing grid is disclosed. The method involves obtaining a hardware description of the computing grid, receiving a placement graph for a computing task, forming subgraphs for unplaced memory units with primary connections, assigning subgraphs as clusters on the grid, and generating a configuration file for a physical reconfigurable processor. By strategically placing clusters on the grid and configuring the processor based on the logical representation, efficient execution of reconfigurable computing tasks is achieved. This method enhances the performance and flexibility of reconfigurable computing systems by streamlining the allocation of compute and memory resources.

Claims (35)

1 . A method for placing, routing and using compute units and memory units in a reconfigurable computing grid, the method comprising:

obtaining a hardware description of a reconfigurable computing grid comprising a grid of compute units and memory units interconnected with a switching fabric, each of the compute units comprising a primary port and one or more secondary ports;

receiving a placement graph for a reconfigurable computing task that defines a set of unplaced memory units, a set of unplaced compute units and data connections between unplaced memory units and unplaced compute units, wherein the data connections comprise primary connections corresponding to the primary port of the unplaced compute units and secondary connections corresponding to the one or more secondary ports of the unplaced compute units;

forming a subgraph of the placement graph for each unplaced memory unit of the set of unplaced memory units having one or more primary connections, each subgraph comprising the unplaced memory unit and each unplaced compute unit of the set of unplaced compute units connected to the unplaced memory unit via a primary connection;

assigning each formed subgraph as a cluster on the reconfigurable computing grid to produce placed clusters for a logical representation of the reconfigurable computing grid; and

generating a configuration file from the logical representation of the reconfigurable computing grid that, when placed into a physical reconfigurable processor comprising a physical reconfigurable computing grid corresponding to the hardware description, configures the physical reconfigurable processor to perform at least a portion of the reconfigurable computing task.

2 . The method of claim 1 , wherein the unplaced compute units of a subgraph are assigned to adjacent compute units of the logical representation of the reconfigurable computing grid.

3 . The method of claim 2 , wherein the unplaced memory unit for the subgraph is assigned to a memory unit of the logical representation of the reconfigurable computing grid adjacent to one or more of the adjacent compute units of the logical representation of the reconfigurable computing grid.

4 . The method of claim 3 , wherein the adjacent compute units and the memory unit are on a same row or column of the logical representation of the reconfigurable computing grid of the reconfigurable computing grid.

5 . The method of claim 1 , wherein the formed subgraphs are assigned to the logical representation of the reconfigurable computing grid the reconfigurable computing grid according to one or more placement preferences.

6 . The method of claim 5 , wherein the one or more placement preferences comprise a row-first preference.

7 . The method of claim 5 , wherein the one or more placement preferences comprise a column-first preference.

8 . The method of claim 5 , wherein the one or more placement preferences comprise a balanced row and column preference.

9 . The method of claim 1 , wherein the reconfigurable computing task comprises one or more of matrix multiplication, convolution, a neural network operation, a data normalization operation and a soft-max operation.

10 . The method of claim 1 , wherein the primary port of each of the compute units is vector-based.

11 . The method of claim 1 , wherein a first primary port of a first compute unit in the grid of compute units and memory units connects to each lane of the first compute unit and provides or receives a vector element on each lane.

12 . The method of claim 1 , wherein a first secondary port of a first compute unit in the grid of compute units and memory units comprises a buffer for each stage of the first compute unit.

13 . The method of claim 1 , further comprising loading the configuration file into the physical reconfigurable processor to configure the physical reconfigurable processor to perform the portion of the reconfigurable computing task using the placed clusters.

14 . A system for placing and routing compute units and memory units in a reconfigurable computing grid, the system comprising:

a hardware description of a reconfigurable computing grid comprising a grid of compute units and memory units interconnected with a switching fabric, each of the compute units comprising a primary port and one or more secondary ports;

a place and route module configured to receive a placement graph for a reconfigurable computing task that defines a set of unplaced memory units, a set of unplaced compute units and data connections between unplaced memory units and unplaced compute units, wherein the data connections comprise primary connections corresponding to the primary port of the unplaced compute units and secondary connections corresponding to the one or more secondary ports of the unplaced compute units;

the place and route module configured to form a subgraph of the placement graph for each unplaced memory unit of the set of unplaced memory units having one or more primary connections, each subgraph comprising the unplaced memory unit and each unplaced compute unit of the set of unplaced compute units connected to the unplaced memory unit via a primary connection;

the place and route module configured to assign each formed subgraph as a cluster on the reconfigurable computing grid to produce placed clusters for a logical representation of the reconfigurable computing grid; and

a compiler configured to generate a configuration file from the logical representation of the reconfigurable computing grid that, when placed into a physical reconfigurable processor comprising a physical reconfigurable computing grid corresponding to the hardware description, configures the physical reconfigurable processor to perform at least a portion of the reconfigurable computing task.

15 . The system of claim 14 , wherein the unplaced compute units of a subgraph are assigned on adjacent compute units of the reconfigurable computing grid.

16 . The system of claim 15 , wherein the unplaced memory unit for the subgraph is assigned to a memory unit of the logical representation of the reconfigurable computing grid adjacent to one or more of the adjacent compute units of the logical representation of the reconfigurable computing grid.

17 . The system of claim 15 , wherein the adjacent compute units and the memory unit are on a same row or column of the logical representation of the reconfigurable computing grid of the reconfigurable computing grid.

18 . The system of claim 14 , further comprising a physical reconfigurable processor loaded with the configuration file configuring the physical reconfigurable processor to perform the portion of the reconfigurable computing task using the placed clusters.

19 . The system of claim 14 , wherein the primary port of each of the compute units is vector-based.

20 . A computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, wherein the program instructions are executable by a processor to cause the processor to conduct a method comprising:

obtaining a hardware description of a reconfigurable computing grid comprising a grid of compute units and memory units interconnected with a switching fabric, each of the compute units comprising a primary port and one or more secondary ports;

receiving a placement graph for a reconfigurable computing task that defines a set of unplaced memory units, a set of unplaced compute units and data connections between unplaced memory units and unplaced compute units, wherein the data connections comprise primary connections corresponding to the primary port of the unplaced compute units and secondary connections corresponding to the one or more secondary ports of the unplaced compute units;

forming a subgraph of the placement graph for each unplaced memory unit of the set of unplaced memory units having one or more primary connections, each subgraph comprising the unplaced memory unit and each unplaced compute unit of the set of unplaced compute units connected to the unplaced memory unit via a primary connection;

assigning each formed subgraph as a cluster on the reconfigurable computing grid to produce placed clusters for a logical representation of the reconfigurable computing grid; and

generating a configuration file from the logical representation of the reconfigurable computing grid that, when placed into a physical reconfigurable processor comprising a physical reconfigurable computing grid corresponding to the hardware description, configures the physical reconfigurable processor to perform at least a portion of the reconfigurable computing task.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2025
From: LEUNG, KIN HING; SHENG, FENG; PUNJ, AJIT
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 071853/0294 →
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 →
Continuity (3)
Continuation 18083362 · Dec 16, 2022
Provisional Application 63397522 · Aug 12, 2022
Related Publication 20250045241A1 · Feb 6, 2025
References Cited (19)
US 7653662B2 · Mizutani et al. · 2010 [cited by applicant]
US 11204889B1 · Prabhakar et al. · 2021 [cited by applicant]
US 11237880B1 · Raumann · 2022 [cited by examiner]
US 11237971B1 · Brown et al. · 2022 [cited by applicant]
US 11429349B1 · Oklobdzija et al. · 2022 [cited by applicant]
US 11443014B1 · Wang et al. · 2022 [cited by applicant]
US 20070198971A1 · Dasu et al. · 2007 [cited by applicant]
US 20160323143A1 · Kim et al. · 2016 [cited by applicant]
US 20200241844A1 · Koeplinger et al. · 2020 [cited by applicant]
US 20200272779A1 · Boesch · 2020 [cited by examiner]
US 20210357475A1 · Wang et al. · 2021 [cited by applicant]
US 20210373867A1 · Chen et al. · 2021 [cited by applicant]
US 20220092247A1 · Koeplinger et al. · 2022 [cited by applicant]
US 20230214307A1 · Khankin · 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]
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]
Zhang et al., “SARA: Scaling a Reconfigurable Dataflow Accelerator,” 2021 ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA), 2021, pp. 1041-1054. [cited by applicant]