IP Library Granted Patent US 11,762,665
Granted Patent B2
US 11,762,665 · App. 17/737,936 · Granted Sep 19, 2023

Defect avoidance in a multidimensional array of functional configurable units

Inventors: Gregory F. Grohoski (Bee Cave, TX); Manish K. Shah (Austin, TX); Kin Hing Leung (Cupertino, CA)
Assignee: SambaNova Systems, Inc.
G06F9/4403G06F13/20G06F13/4022G06F15/17343G06F15/7867G06F15/80
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 11,762,665
App. No.
17/737,936
Granted
Sep 19, 2023
Kind
B2
Abstract

A system includes a multidimensional array of homogenous Functional Configurable Units (FCUs), coupled using a multidimensional array of switches, and a parameter store on the device which stores parameters that tag a subarray of FCUs as unusable. Technologies are described which change the pattern of placement of configuration data, in dependence on the tagged subarray, by changing the routing through the array of switches. As a result, a multidimensional array of FCUs having unusable elements can still be used.

Claims (60)

1. A system comprising:

a multidimensional array of homogenous Functional Configurable Units (FCUs) including an array of subarrays of FCUs arranged according to an index;

a parameter store storing data indicating an tag index value for a tagged subarray of FCUs having at least one unusable FCU;

a configuration controller to load configuration data that implements at least a portion of an executable graph into at least some FCUs of the multidimensional array of FCUs, the configuration data including an array of subarrays of configuration data arranged according to the index including:

a first subset of subarrays of configuration data having an index value in a sequence bounded by, but not including, the tag index value, and

a second subset of subarrays of configuration data consisting of the subarrays of configuration data not included in the first subset of subarrays of configuration data; and

a multidimensional array of switches, switches of the multidimensional array of switches interleaved with FCUs of the multidimensional array of homogenous FCUs, to route packets of the configuration data to the FCUs of the multidimensional array of homogenous FCUs excluding the tagged subarray of FCUs, based on the data stored in the parameter store, by:

routing the first subset of subarrays of configuration data to respective subarrays of FCUs having an index value that matches an index value of a respective subarray of configuration data, and

routing the second subset of subarrays of configuration data to respective subarrays of FCUs having an index value that differs by 1 from an index value of a respective subarray of configuration data.

2. The system of claim 1 , wherein the multidimensional array of homogenous FCUs, the parameter store, the configuration controller, and the multidimensional array of switches are on a single integrated circuit die or a single multi-chip module.

3. The system of claim 1 , wherein the multidimensional array of homogenous FCUs and the multidimensional array of switches are both two-dimensional arrays, and the tagged subarray of FCUs is a column of FCUs in the two-dimensional array of FCUs.

4. The system of claim 1 , wherein the multidimensional array of homogenous FCUs and the multidimensional array of switches are both two-dimensional arrays, and the tagged subarray of FCUs is a row of FCUs in the two-dimensional array of FCUs.

5. The system of claim 1 , wherein the index has a range of 0 to N+1, the tag index value is X (where 0<X<N), the first subset of subarrays of configuration data have index values between 0 and X−1 inclusive, and the second subset of subarrays of configuration data have index values between X and N inclusive and are respectively routed to subarrays of FCUs that have index values between X+1 and N+1 inclusive.

6. The system of claim 1 , further comprising:

a first, second and third subarray of switches of the multidimensional array of switches, the first subarray of switches separated from the second subarray of switches by a first subarray of FCUs having an index value of i−1, and the second subarray of switches separated from the third subarray of switches by a second subarray of FCUs having an index value of i; and

a second switch of the second subarray of switches having a switch subindex value and including:

a first input port connected to a first switch in the first subarray of switches;

a first output port connected to a third switch in the third subarray of switches;

a second output port connected a fourth switch of the second subarray of switches;

a third output port connected to an FCU of the second subarray of FCUs; and

routing logic configured to forward a first data packet received on the first input port to the first output port, the second output port, or the third output port, dependent upon i, the data in the parameter store, and first destination information for the first data packet that includes a first destination index value and a first destination subindex value.

7. The system of claim 6 , the routing logic further configured to route the first data packet to the first output port in response to the first destination index value being larger than i, or the first destination index value and the tag index value both being equal to i.

8. The system of claim 6 , the routing logic further configured to route the first data packet to the second output port in response to the switch subindex value being different than the first destination subindex value AND (the first destination index value being equal to i but less than the tag index value OR the first destination index value being equal to i+1 but greater than the tag index value).

9. The system of claim 6 , the routing logic further configured to route the first data packet to the third output port in response to the switch subindex value being equal to the first destination subindex value AND (the first destination index value being equal to i but less than the tag index value OR the first destination index value being equal to i+1 but greater than the tag index value).

10. The system of claim 6 , the second switch further comprising a second input port connected to the third switch and a fourth output port connected to the first switch; and

the routing logic further configured to forward a second data packet received on the second input port to the fourth output port, the second output port, or the third output port, dependent upon i, the data in the parameter store, and second destination information for the second data packet that includes a second destination index value and a second destination subindex value.

11. The system of claim 10 , the routing logic further configured to route the second data packet to:

the fourth output port in response to the second destination index value being less than both i and the tag index value OR both the first destination index value and the tag index value being equal to i.

12. The system of claim 11 , the routing logic further configured to route the second data packet to:

the second output port in response to the switch subindex value being different than the second destination subindex value AND (the second destination index value being equal to i but less than the tag index value OR the second destination index value being equal to i+1 but greater than the tag index value); and

third output port in response to the switch subindex value being equal to the first destination subindex value AND (the second destination index value being equal to i but less than the tag index value OR the second destination index value being equal to i+1 but but greater than the tag index value).

13. The system of claim 6 , the routing logic further configured to route the first data packet to:

the first output port in response to the first destination index value being larger than i−1; and

the first output port in response to the first destination index value being equal to i−1 with the tag index value being equal to i.

14. The system of claim 13 , the routing logic further configured to route the first data packet to:

the second output port in response to the switch subindex value being different than the first destination subindex value AND the first destination index value being equal to i−1 but less than the tag index value;

the second output port in response to the switch subindex value being different than the first destination subindex value AND the first destination index value being equal to i but greater than the tag index value;

the third output port in response to the switch subindex value being equal to the first destination subindex value AND (the first destination index value being equal to i but less than the tag index value; and

the third output port in response to the switch subindex value being equal to the first destination subindex value AND the first destination index value being equal to i+1 but greater than the tag index value.

15. The system of claim 10 , the routing logic further configured to route the second data packet to:

the first output port in response to the second destination index value being larger than i−1 OR the second destination index value and the tag index value being equal to i−1.

16. The system of claim 10 , the routing logic further configured to route the second data packet to:

the second output port in response to the switch subindex value being different than the second destination subindex value AND the second destination index value being equal to i−1 but less than the tag index value;

the second output port in response to the switch subindex value being different than the second destination subindex value AND the second destination index value being equal to i but greater than the tag index value;

the third output port in response to the switch subindex value being equal to the second destination subindex value AND (the second destination index value being equal to i but less than the tag index value; and

the third output port in response to the switch subindex value being equal to the second destination subindex value AND the second destination index value being equal to i+1 but greater than the tag index value.

17. A method for routing a data packet in a system that includes:

a multidimensional array of homogenous Functional Configurable Units (FCUs) including an array of subarrays of FCUs arranged according to an index;

a multidimensional array of switches, switches of the multidimensional array of switches interleaved with FCUs of the multidimensional array of homogenous FCUs;

a parameter store storing data indicating a tag index value for a tagged subarray of FCUs having at least one unusable FCU; and

a configuration controller to load configuration data that implements at least a portion of an executable graph into at least some FCUs of the multidimensional array of FCUs;

the method comprising:

receiving a first subset of subarrays of configuration data having respective index values in a sequence bounded by, but not including, the tag index value;

receiving a second subset of subarrays of configuration data consisting of the subarrays of configuration data not included in the first subset of subarrays of configuration data;

respectively routing the first subset of subarrays of configuration data to FCUs in a first subset of subarrays of FCUs having an index value that matches an index value of a respective subarray of configuration data in the first subset of subarrays of configuration data; and

respectively routing the second subset of subarrays of configuration data to FCUs in a second subset of subarrays of FCUs having an index value that differs by 1 from an index value of a respective subarray of configuration data in the second subset of subarrays of configuration data;

wherein the first subset of subarrays of FCUs, the tagged subarray of FCUs, and the second subset of subarrays of FCUs are disjoint.

18. The method of claim 17 , wherein the multidimensional array of homogenous FCUs and the multidimensional array of switches are both two-dimensional arrays, and the tagged subarray of FCUs is a column of FCUs in the two-dimensional array of FCUs.

19. The method of claim 17 , wherein the multidimensional array of homogenous FCUs and the multidimensional array of switches are both two-dimensional arrays, and the tagged subarray of FCUs is a row of FCUs in the two-dimensional array of FCUs.

20. The method of claim 17 , wherein the index has a range of 0 to N−1, the tag index value is X (where 0<X<N), the first subset of subarrays of configuration data have index values between 0 and X−1 inclusive, and the second subset of subarrays of configuration data have index values between X and N inclusive and are respectively routed to subarrays of FCUs that have index values between X+1 and N+1 inclusive.

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 May 6, 2022
From: GROHOSKI, GREGORY F.; SHAH, MANISH K.; LEUNG, KIN HING
To: SAMBANOVA SYSTEMS, INC.
Reel/Frame 059843/0028 →
Continuity (2)
Continuation 17378391 · Jul 16, 2021
Related Publication 20230014929A1 · Jan 19, 2023