IP Library Granted Patent US 9,703,738
Granted Patent B2
US 9,703,738 · App. 14/512,341 · Granted Jul 11, 2017

Computing system framework with unified storage, processing, and network switching fabrics incorporating network switches and method for making and using the same

Inventor: Daniel Davies (Palo Alto, CA)
Assignee: Palo Alto Research Center Incorporated
G06F13/4022G06F13/4265G06F15/17362
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 9,703,738
App. No.
14/512,341
Granted
Jul 11, 2017
Kind
B2
Abstract

A system and method for making and using a computing system framework with unified storage, processing, and network switching fabrics are provided. Processing nodes, either physical or virtual, are associated with intra-module ports, inter-module ports, and local storage spaces. A plurality of processing nodes are linked through intra-module ports to form processing modules. A plurality of the processing modules are connected through inter-module ports to form the computing system. Network switch can be incorporated into intra-module or inter-module connections. Several inter-module connection schemes, which can be adapted to use with existing network packet routing algorithms, are disclosed. Each processing node needs only to keep track of the states of its directly connected neighbors, obviating the need for a high-speed connection to the rest processing nodes within the system. Dedicated network switching equipment can be flexibly employed and network capacity grows naturally as processing nodes are added.

Claims (58)

1. A computing system framework with a unified storage, processing, and network switching fabrics, comprising:

four or more processing nodes;

four or more intra-module ports, each intra-module port being uniquely associated with one of the processing nodes;

a plurality of inter-module ports, each inter-module port being associated with one of the processing nodes;

a plurality of processing modules, each processing module comprising two or more of the processing nodes uniquely selected from the four or more processing nodes, wherein each of the processing nodes is comprised in only one of the processing modules;

a plurality of intra-module networks, wherein the processing nodes within each processing module are fully inter-connected;

an inter-module network comprising at least one connection between one inter-module port on one processing module and another inter-module port on another processing module, the inter-module network further comprising a series of linearly connected processing modules with a beginning and an end of the series further connected to each other to form a ring, using two inter-module ports from each of the connected processing modules; and

a connection between processing modules on the ring comprising at least one of:

a connection between a processing module N on the ring to a processing module N+S on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], and x is [1, 2, . . . , S−1];

a connection between a processing module N on the ring to a processing module N+S−1 on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−1, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], x is [1, 2, . . . , S−1]; and

a connection between a processing module N on the ring to a processing module N+S−r on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−r, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], x is [1, 2, . . . , S−1], and r is [2, 3, . . . , S−1].

2. A system according to claim 1 , wherein the intra-module network topology comprises at least one of:

a bus, a ring, a star, a mesh, and a crossbar switch.

3. A system according to claim 1 , wherein each processing node is selected from the group comprising:

a processing element, a memory controller, a memory, a storage controller, a storage device, interfaces to intra-module and inter-module ports, and a virtual node.

4. A system according to claim 1 , further comprises at least one of:

a connection between two non-adjacent processing modules on the ring, via one inter-module port located on one of the two non-adjacent processing modules and not used for the linear connection, to another inter-module port located on the other of the two non-adjacent processing modules and not used for the linear connection.

5. A system according to claim 1 , further comprising:

a transmission module to transfer data packet from one of the processing nodes to another of the processing nodes through the inter-module network;

a monitoring module to measure the data packet traffic pattern; and

a modification module to amend a connection within the inter-module network based upon the data packet traffic pattern.

6. A method of making or using a computing system framework with a unified storage, processing, and network switching fabrics, comprising the steps of:

accessing four or more processing nodes;

identifying four or more intra-module ports, each intra-module port being uniquely associated with one of the processing nodes;

identifying a plurality of inter-module ports, each inter-module port being associated with one of the processing nodes;

accessing a plurality of processing modules, each processing module comprising two or more of the processing nodes uniquely selected from the plurality of the processing nodes, wherein each of the processing nodes is comprised in only one of the processing modules;

forming a plurality of intra-module networks, wherein the processing nodes within each processing module are fully inter-connected;

forming an inter-module network comprising at least one connection between one inter-module port on one processing module and another inter-module port on another processing module;

linearly connecting a series of the processing modules in the inter-module network;

connecting the beginning and the end of the series to form a ring, wherein connections are provided using two inter-module ports from each of the connected processing modules;

establishing a connection between processing modules on the ring, comprising at least one of:

forming a connection between a processing module N on the ring to a processing module N+S on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], and x is [1, 2, . . . , S−1];

forming a connection between a processing module N on the ring to a processing module N+S−1 on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−1, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], and x is [1, 2, . . . , S−1]; and

forming a connection between a processing module N on the ring to a processing module N+S−r on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−r, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], x is [1, 2, . . . , S−1], and r is [2, 3, . . . , S−1].

7. A method according to claim 6 , further comprising the step of:

designating at least one network switch operable to be connected in at least one of the inter-module networks and the intra-module networks.

8. A method according to claim 6 , wherein the intra-module network topology comprises at least one of a bus, a ring, a star, a mesh, and a crossbar switch.

9. A method according to claim 6 , wherein each processing node is selected from the group comprising a processing element, a memory controller, a memory, a storage controller, a storage device, interfaces to intra-module and inter-module ports, and a virtual node.

10. A method according to claim 6 , further comprising at least one of the steps of:

forming a connection between an unused inter-module port on one processing module on the ring and another unused inter-module port on another processing module on the ring.

11. A computing system framework with a unified storage, processing, and network switching fabrics incorporating network switches, comprising:

four or more processing nodes;

four or more intra-module ports, each intra-module port being uniquely associated with one of the processing nodes;

a plurality of inter-module ports, each inter-module port being associated with one of the processing nodes;

a plurality of processing modules, each processing module comprising two or more of the processing nodes uniquely selected from the four or more processing nodes, wherein each of the processing nodes is comprised in only one of the processing modules;

a plurality of intra-module networks, wherein the processing nodes within each processing module are fully inter-connected;

an inter-module network comprising at least one connection between one inter-module port on one processing module and another inter-module port on another processing module, the inter-module network comprising a series of linearly connected processing modules with the beginning and the end of the series further linked to each other to form a ring, using two inter-module ports from each of the connected processing modules;

a connection between processing modules on the ring comprising at least one of:

a connection between a processing module N on the ring to a processing module N+S on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], and x is [1, 2, . . . , S−1];

a connection between a processing module N on the ring to a processing module N+S−1 on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−1, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], x is [1, 2, . . . , S−1]; and

a connection between a processing module N on the ring to a processing module N+S−r on the ring, by connecting one unused inter-module port on the processing module N to another unused inter-module port on the processing module N+S−r, wherein M is the number of the processing modules on the ring, S is an integer divisor of M, N is [x, x+S, . . . , x+(M−S), increment by S], x is [1, 2, . . . , S−1], and r is [2, 3, . . . , S−1]; and

at least one network switch operable to be connected to at least one of the intra-module ports and inter-module ports, wherein the connection may be formed by at least one of cable links or the network switches.

12. A system according to claim 11 , wherein the intra-module network topology comprises at least one of:

a bus, a ring, a star, a mesh, and a crossbar switch.

13. A system according to claim 11 , wherein each processing node is selected from the group comprising:

a processing element, a memory controller, a memory, a storage controller, a storage device, interfaces to intra-module and inter-module ports, and a virtual node.

14. A system according to claim 11 , further comprising at least one of:

a connection between two non-adjacent processing modules on the ring, via one inter-module port located on one of the two non-adjacent processing modules and not used for the linear connection, to another inter-module port located on the other of the two non-adjacent processing modules and not used for the linear connection.

Assignments (10)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2025
From: XEROX CORPORATION
To: GENESEE VALLEY INNOVATIONS, LLC
Reel/Frame 073562/0677 →
SECOND LIEN NOTES PATENT SECURITY AGREEMENT Recorded Jul 2, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 071785/0550 →
FIRST LIEN NOTES PATENT SECURITY AGREEMENT Recorded Apr 11, 2025
From: XEROX CORPORATION
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 070824/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT RF 064760/0389 Recorded Feb 13, 2024
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: XEROX CORPORATION
Reel/Frame 068261/0001 →
SECURITY INTEREST Recorded Feb 13, 2024
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 066741/0001 →
SECURITY INTEREST Recorded Nov 20, 2023
From: XEROX CORPORATION
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 065628/0019 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVAL OF US PATENTS 9356603, 10026651, 10626048 AND INCLUSION OF US PATENT 7167871 PREVIOUSLY RECORDED ON REEL 064038 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 28, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064161/0001 →
SECURITY INTEREST Recorded Jun 22, 2023
From: XEROX CORPORATION
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064760/0389 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2023
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: XEROX CORPORATION
Reel/Frame 064038/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 26, 2014
From: DAVIES, DANIEL
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 034586/0726 →
Continuity (2)
Continuation In Part 14313922 · Jun 24, 2014
Related Publication 20150370741A1 · Dec 24, 2015