IP Library Granted Patent US 11,093,308
Granted Patent B2
US 11,093,308 · App. 15/844,487 · Granted Aug 17, 2021

System and method for sending messages to configure remote virtual endpoints in nodes of a systolic array

Inventors: Daniel B. Reents (Dripping Springs, TX); Ashwin Kamath (Cedar Park, TX); Michael Enz (Fargo, ND)
Assignee: OVH US LLC
G06F9/546G06F15/8046G06F2209/544G06F2209/548G06F2209/549
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,093,308
App. No.
15/844,487
Granted
Aug 17, 2021
Kind
B2
Abstract

Embodiments as disclosed herein provide for methods and systems that give firmware in a given node the ability to control the hardware configuration and activity of every endpoint in every remote node within the array. The standard, inter-node, message passing interconnect and protocol are utilized for this purpose.

Claims (38)

1. A system, comprising:

a systolic array, comprising a set of nodes coupled to each other via a communication network, each node comprising:

at least one processor;

a receive queue;

a send queue;

a receive queue configuration register; and

a send queue configuration register;

a first node of the systolic array comprising instructions, which, when executed by at least one processor of the first node, cause the first node to:

generate a remote control message, wherein the remote control message comprises:

an identifier of a second node of the systolic array, and

a configuration for a receive queue of the second node or a send queue of the second node; and

send the remote control message to the second node; and

the second node of the systolic array, wherein the second node comprises instructions, which, when executed by a first processor of the second node, cause the second node to:

receive the remote control message; and

configure, based on the configuration in the remote control message, and without using a second processor of the second node, the receive queue of the second node or the send queue of the second node.

2. The system of claim 1 , wherein the second node receives the remote control message at a hardware queue with dedicated buffering that is separate from the receive queue of the second node.

3. The system of claim 1 , wherein the configuration in the remote control message causes the second node to issue messages to a third node.

4. The system of claim 3 , wherein the remote control message includes an address of a receive queue of the third node.

5. The system of claim 4 , wherein the first node instructions cause the second node to write the address to the send queue configuration register of the second node or the receive queue configuration register of the second node.

6. The system of claim 1 , wherein the configuration in the remote control message causes the second node to issue messages to the first node.

7. The system of claim 1 , wherein the remote control message includes a queue size, an entry size and a message header for the send queue of the second node.

8. The system of claim 1 , wherein the first processor of the second node comprises a remote control message processor, distinct from the second processor of the second node, for parsing remote control messages and writing the send queue configuration register of the second node or the receive queue configuration register of the second node based on content of the remote control messages.

9. The system of claim 1 , wherein the remote control message comprises a routing header identifying the second node.

10. The system of claim 1 , wherein the communication network is a message bus.

11. A method, comprising:

generating, by a first node of a systolic array, a remote control message, wherein the systolic array comprises a set of nodes, including the first node, coupled to each other via a communication network, wherein each node includes at least one processor, a receive queue, a send queue, a receive queue configuration register and a send queue configuration register, and wherein the remote control message comprises a descriptor that includes an identity of a second node of the systolic array and instructions to configure the receive queue of the second node or the send queue of the second node;

sending, by the first node, the remote control message to the second node;

receiving, by the second node, the remote control message; and

configuring, by a first processor of the second node, based on the instructions in the remote control message, and without using a second processor of the second node, the receive queue of the second node or the send queue of the second node.

12. The method of claim 11 , wherein receiving the remote control message comprises receiving the remote control message by a hardware queue with dedicated buffering that is separate from the receive queue of the second node.

13. The method of claim 11 , wherein the instructions in the remote control message comprise instructions to configure the send queue of the second node to issue messages to a third node.

14. The method of claim 13 , wherein the remote control message includes an address of a receive queue of the third node.

15. The method of claim 14 , wherein configuring the send queue of the second node comprises writing the address of the receive queue of the third node to the send queue configuration register of the second node.

16. The method of claim 11 , wherein the instructions in the remote control message comprise instructions to configure the send queue of the second node to issue messages to the first node.

17. The method of claim 11 , wherein the remote control message includes a queue size, an entry size and a message header for the send queue of the second node.

18. The method of claim 11 , wherein the first processor of the second node comprises a remote control message processor, distinct from the second processor of the second node, for parsing remote control messages received by the second node and writing the receive queue configuration register of the second node or the send queue configuration register of the second node with content of the remote control messages.

19. The method of claim 11 , wherein the remote control message comprises a routing header identifying the second node.

20. The method of claim 11 , wherein the communication network is a message bus.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2020
From: EXTEN TECHNOLOGIES, INC.
To: OVH US LLC
Reel/Frame 054013/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2017
From: REENTS, DANIEL B.; KAMATH, ASHWIN; ENZ, MICHAEL
To: MANGSTOR, INC.
Reel/Frame 044412/0632 →
CHANGE OF NAME Recorded Dec 15, 2017
From: MANGSTOR, INC.
To: EXTEN TECHNOLOGIES, INC.
Reel/Frame 044885/0028 →
Continuity (1)
Related Publication 20190188182A1 · Jun 20, 2019