IP Library Granted Patent US 12,045,178
Granted Patent B2
US 12,045,178 · App. 17/673,105 · Granted Jul 23, 2024

Devices, methods, and systems for disaggregated memory resources in a computing environment

Inventors: Dimitrios Syrivelis (Volos, GR); Paraskevas Bakopoulos (Ilion, GR); Ioannis (Giannis) Patronas (Pireas, GR); Elad Mentovich (Tel Aviv, IL); James Stephen Fields, Jr. (Santa Fe, NM); Haggai Eran (Yokneam Ilit, IL); Liran Liss (Atzmon-Segev, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F13/1642
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,045,178
App. No.
17/673,105
Granted
Jul 23, 2024
Kind
B2
Abstract

A system comprises a first processing block configured to receive, from a first local resource, a formatted transaction in a format that is not recognizable by a remote endpoint; determine a first transaction category, from among a plurality of transaction categories, of the formatted transaction based on content of the formatted transaction; perform one or operations on the formatted transaction based on the first transaction category to form a reformatted transaction in a format that is recognizable by the remote endpoint; and place the reformatted transaction in a queue for transmission to the remote endpoint.

Claims (96)

1. A system, comprising:

a first processing block configured to:

receive, from a first local resource, a formatted transaction in a format that is not recognizable by a remote endpoint;

determine a first transaction category, from among a plurality of transaction categories, of the formatted transaction based on content of the formatted transaction;

perform one or more operations on the formatted transaction based on the first transaction category to form a reformatted transaction in a format that is recognizable by the remote endpoint;

replace an initial tag of the formatted transaction with a new tag that is transmitted with the reformatted transaction, the initial tag being unique from other tags within a first domain that corresponds to a transmit side of the system that includes the first processing block, the new tag being unique from other tags within a second domain that is between the first processing block and a receive side of the system that includes the remote endpoint,

wherein the initial tag is used within the first domain to track completion of the reformatted transaction by the remote endpoint, and wherein the new tag is used within the second domain to track the reformatted transaction during transmission to the remote endpoint; and

place the reformatted transaction with the new tag in a queue for transmission to the remote endpoint.

2. The system of claim 1 , further comprising:

a transmission interface that transmits the reformatted transaction to the remote endpoint.

3. The system of claim 2 , wherein the transmission interface corresponds to an InfiniBand interface.

4. The system of claim 1 , wherein the first processing block is configured to:

store the initial tag of the formatted transaction to a memory.

5. The system of claim 1 , wherein the content of the formatted transaction includes a header of the formatted transaction.

6. The system of claim 1 , wherein the one or more operations that form the reformatted transaction includes:

passing the formatted transaction through a state machine according to first configuration information that is selected based on the first transaction category; and

performing at least one translation operation for the formatted transaction based on output of the state machine and based on second configuration information to form the reformatted transaction.

7. The system of claim 6 , wherein the at least one translation operation includes translating an address and an opcode of the formatted transaction.

8. The system of claim 1 , wherein, for the reformatted transaction in the queue, the first processing block is configured to:

aggregate the reformatted transaction with one or more other reformatted transactions destined for the remote endpoint to form an aggregated transaction; and

perform header compression on the aggregated transaction.

9. The system of claim 1 , further comprising:

a second processing block configured to:

receive an indication that the reformatted transaction is performed at the remote endpoint.

10. The system of claim 9 , wherein the indication comprises a transaction response, wherein the first domain also includes the second processing block, and wherein the second processing block is configured to:

parse the transaction response into a data queue for data and a header queue for a header;

determine a response category, from among a plurality of response categories, of the transaction response based on first configuration information and the header, wherein the transaction response arrives at the second processing block with the new tag; and

replace the new tag of the transaction response with the initial tag.

11. The system of claim 10 , wherein the second processing block is configured to:

translate an opcode of the transaction response to an opcode of the first local resource based on the response category; and

return the data to the first local resource based on the opcode of the first local resource.

12. The system of claim 1 , wherein the first local resource corresponds to a CPU of a network device.

13. The system of claim 1 , further comprising:

a second processing block configured to:

receive, from the remote endpoint, a mastered transaction in a format that is recognizable by a second local resource; and

perform one or more operations that direct the mastered transaction to the second local resource.

14. The system of claim 13 , wherein the one or more operations that direct the mastered transaction to the second local resource include:

parsing the mastered transaction into a data queue for data and a header queue for a header;

determining a second transaction category, from among the plurality of transaction categories, of the mastered transaction based on the header;

passing the data and the header through a state machine based on the second transaction category; and

directing the mastered transaction to the second local resource based on output of the state machine.

15. The system of claim 13 , wherein the first domain also includes the second processing block, and wherein the second processing block is configured to:

replace a first tag of the mastered transaction that is unique to the second domain with a second tag that is unique to the first domain; and

store the first tag to a memory.

16. The system of claim 13 , further comprising:

a third processing block configured to:

generate an indication that the mastered transaction has been performed at the second local resource, the indication comprising a transaction response.

17. The system of claim 16 , wherein the third processing block is configured to:

generate the transaction response in a format that is recognizable by a source of the mastered transaction; and

place the transaction response in a queue for sending to the source.

18. A system, comprising:

a first processing block configured to:

receive, from a first local resource, a formatted transaction in a format that is not recognizable by a remote endpoint;

determine a first transaction category, from among a plurality of transaction categories, of the formatted transaction based on content of the formatted transaction;

perform one or more operations on the formatted transaction based on the first transaction category to form a reformatted transaction in a format that is recognizable by the remote endpoint; and

place the reformatted transaction in a queue for transmission to the remote endpoint; and

a second processing block configured to:

receive an indication that the reformatted transaction is performed at the remote endpoint, wherein the indication comprises a transaction response;

parse the transaction response into a data queue for data and a header queue for a header;

determine a response category, from among a plurality of response categories, of the transaction response based on first configuration information and the header; and

replace a first tag of the transaction response that is unique to a domain between the second processing block and the remote endpoint with a second tag that is unique to a domain that includes the first processing block and the second processing block.

19. The system of claim 18 , wherein the second processing block is configured to:

translate an opcode of the transaction response to an opcode of the first local resource based on the response category; and

return the data to the first local resource based on the opcode of the first local resource.

20. A system, comprising:

a first processing block configured to:

receive, from a first local resource, a formatted transaction in a format that is not recognizable by a remote endpoint;

determine a first transaction category, from among a plurality of transaction categories, of the formatted transaction based on content of the formatted transaction;

perform one or more operations on the formatted transaction based on the first transaction category to form a reformatted transaction in a format that is recognizable by the remote endpoint; and

place the reformatted transaction in a queue for transmission to the remote endpoint; and

a second processing block configured to:

receive, from the remote endpoint, a mastered transaction in a format that is recognizable by a second local resource; and

perform one or more operations that direct the mastered transaction to the second local resource, wherein the one or more operations that direct the mastered transaction to the second local resource include:

parsing the mastered transaction into a data queue for data and a header queue for a header;

determining a second transaction category, from among the plurality of transaction categories, of the mastered transaction based on the header;

passing the data and the header through a state machine based on the second transaction category; and

directing the mastered transaction to the second local resource based on output of the state machine.

21. The system of claim 20 , wherein the second processing block is configured to:

replace a first tag of the mastered transaction that is unique to a domain between the remote endpoint and the second processing block with a second tag that is unique to a domain that includes the first processing block and the second processing block; and

store the first tag to a memory.

22. The system of claim 20 , further comprising:

a third processing block configured to:

generate an indication that the mastered transaction has been performed at the second local resource, the indication comprising a transaction response.

23. The system of claim 22 , wherein the third processing block is configured to:

generate the transaction response in a format that is recognizable by a source of the mastered transaction; and

place the transaction response in a queue for sending to the source.

24. A system, comprising:

a first processing block configured to:

receive, from a first local resource, a formatted transaction in a format that is not recognizable by a remote endpoint, wherein the formatted transaction comprises a first tag that is unique from other tags within a first domain that corresponds to a transmit side of the system that includes the first processing block;

determine a first transaction category, from among a plurality of transaction categories, of the formatted transaction based on content of the formatted transaction;

perform one or more operations on the formatted transaction based on the first transaction category to form a reformatted transaction in a format that is recognizable by the remote endpoint, wherein the reformatted transaction has the first tag replaced with a second tag is unique from other tags within a second domain that is between the first processing block a receive side of the system that includes the remote endpoint; and

place the reformatted transaction comprising the second tag in a queue for transmission to the remote endpoint; and

a second processing block configured to:

receive a transaction response that the reformatted transaction has been performed at the remote endpoint, wherein the transaction response comprises the second tag; and

replace the second tag of the transaction response with the first tag,

wherein the first tag is used to track the transaction response within the first domain, and wherein the second tag is used to track the transaction response within the second domain.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2022
From: SYRIVELIS, DIMITRIOS; BAKOPOULOS, PARASKEVAS; PATRONAS, IOANNIS (GIANNIS); MENTOVICH, ELAD; FIELDS, JAMES STEPHEN, JR.; ERAN, HAGGAI; LISS, LIRAN
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 059026/0581 →
Priority Claims (1)
GR 20220100128 · Feb 10, 2022 · national
Continuity (1)
Related Publication 20230251980A1 · Aug 10, 2023
Cited By (1)
US 12,724,724