# US 2019/0171592 A1 · Trans-fabric instruction set for a communication fabric

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0171592 A1
- Document ID: US20190171592A1
- Status: Published application
- Kind: A1
- Application number: 16/258,781
- Filed: 2019-01-28
- Published: 2019-06-06
- Earliest claimed: 2017-04-10
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Melvin K. Benedict; Michael R. Krause; Mitchel E. Wright
- Web page: https://patentgrep.com/patent/US20190171592A1

## CPC

- G06F 13/1668: {Details of memory controller}
- G06F 15/7821: {Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory}
- G06F 13/1694: {Configuration of memory controller to different memory types}
- H04L 47/70: Admission control; Resource allocation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A memory controller of a sender node issues an instruction of a trans-fabric instruction set of instructions to a receiver node across a communication fabric that supports memory semantic operations, to cause a given transaction to be performed at the receiver node in response to the issued instruction.

## Claims

### Claim 1

A method comprising:
issuing, by a memory controller of a sender node, an instruction of a trans-fabric instruction set of instructions to a receiver node across a communication fabric that supports memory semantic operations, to cause a given transaction to be performed at the receiver node in response to the issued instruction,
wherein the trans-fabric instruction set comprises at least one instruction selected from among a first instruction having a variable that is updated at the receiver node, a conditional instruction that causes different operations at the receiver node based on whether or not a condition is true at the receiver node, or an allocate instruction to allocate a resource or resource segment.

### Claim 2 (depends on 1)

The method of claim 1, wherein issuing the instruction to the receiver node is performed without having to use location information at the sender node regarding a specific location of data at the receiver node accessed in the given transaction.

### Claim 3 (depends on 2)

The method of claim 2, wherein the location information of the specific location of the data at the receiver node is unknown to the sender node.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
in response to the issued instruction comprising the first instruction, updating a value of the variable at the receiver node, wherein the value of the variable is unknown to the sender node at a time that the first instruction was issued by the sender node, and wherein the updating of the value of the variable modifies the first instruction at the receiver node.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
in response to the issued instruction comprising the conditional instruction:
performing, by the receiver node, a first operation in response to the condition being true at the receiver node, and
performing, by the receiver node, a second operation different from the first operation in response to the condition not being true at the receiver node.

### Claim 6 (depends on 1)

The method of claim 1, wherein the memory controller is part of a split control architecture for a given resource at the receiver node, and wherein the split control architecture further comprises a resource controller at the receiver node to perform resource-related operations with respect to the given resource in response to the issued instruction.

### Claim 7 (depends on 6)

The method of claim 6, wherein the given resource at the receiver node is a memory, and the resource controller is a media controller that generates commands in response to instructions from the memory controller, the commands generated by the media controller conforming to a specification for the memory.

### Claim 8 (depends on 1)

The method of claim 1, wherein the trans-fabric instruction set further comprises an instruction sequence that includes reserving the resource or resource segment and releasing the resource or resource segment, a find instruction to find a pattern of data, and a purge instruction to delete data.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
communicating, between the sender node and the receiver node, information relating to a management task over a management channel associated with the communication fabric, the management task selected from among initializing a device, resetting a device, discovering a device, and communicating performance data of a device.

### Claim 10

A system comprising:
a sender node including a memory controller;
a communication fabric; and
a receiver node including a resource and a resource controller to access the resource, wherein the resource controller is to generate commands according to a specification pertaining to signals of the resource, wherein the sender node and the receiver node are to communicate over the communication fabric that supports memory semantic operations, and wherein the sender node and the receiver node include information relating to a trans-fabric instruction set of instructions that are issuable by the memory controller over the communication fabric by the sender node to the receiver node to cause performance of respective transactions at the receiver node in response to the instructions, wherein the trans-fabric instruction set comprises at least one instruction selected from among a first instruction having a variable that is updated at the receiver node, a conditional instruction that causes different operations at the receiver node based on whether or not a condition is true at the receiver node, or an allocate instruction to allocate a resource or resource segment.

### Claim 11 (depends on 10)

The system of claim 10, wherein the resource in the receiver node includes a memory, and wherein the resource controller includes a media controller.

### Claim 12

(canceled)

### Claim 13 (depends on 10)

The system of claim 10, wherein the specification governs timings and types of commands of the resource.

### Claim 14

A receiver node comprising:
a resource controller to manage access of a resource, the resource controller to:
receive an instruction from a memory controller of a sender node over a communication fabric that supports memory-semantic operations, the instruction being an instruction of a trans-fabric instruction set of instructions, the trans-fabric instruction set of instructions comprising at least one instruction selected from among a first instruction having a variable that is updated at the receiver node, a conditional instruction that causes different operations at the receiver node based on whether or not a condition is true at the receiver node, or an allocate instruction to allocate a resource or resource segment;
generate, in response to the received instruction, at least one command that conforms to a specification of the resource; and
send the at least one command to the resource to cause the resource to perform a respective action.

### Claim 15 (depends on 14)

The receiver node of claim 14, wherein each instruction of the trans-fabric instruction set is independent of the specification pertaining to low-level commands for accessing the resource.

### Claim 16 (depends on 4)

The method of claim 4, wherein the updating of the value of the variable is performed at the receiver node after the receiver node receives and processes the first instruction.

### Claim 17 (depends on 4)

The method of claim 4, wherein the variable comprises a pointer whose value is unknown to the sender node at the time that the first instruction was issued by the sender node, and wherein the updating of the value of the variable comprises updating a value of the pointer to access data at the receiver node.

### Claim 18 (depends on 1)

The method of claim 1, further comprising:
in response to the issued instruction comprising the first instruction or the conditional instruction, building, at the receiver node, a collection of instructions that are executed at the receiver node.

### Claim 19 (depends on 10)

The system of claim 10, wherein the resource controller at the receiver node is to:
in response to receiving the first instruction issued by the sender node, update a value of the variable at the receiver node, wherein the value of the variable is unknown to the sender node at a time that the first instruction was issued by the sender node, and wherein the updating of the value of the variable modifies the first instruction at the receiver node.

### Claim 20 (depends on 10)

The system of claim 10, wherein the resource controller at the receiver node is to:
in response to receiving the conditional instruction issued by the sender node:
perform a first operation in response to the condition being true at the receiver node, and
perform a second operation different from the first operation in response to the condition not being true at the receiver node.

### Claim 21 (depends on 14)

The receiver node of claim 14, wherein the resource controller is to:
in response to receiving the first instruction issued by the sender node, update a value of the variable at the receiver node, wherein the value of the variable is unknown to the sender node at a time that the first instruction was issued by the sender node, and wherein the updating of the value of the variable modifies the first instruction at the receiver node.
