HARDWARE MESSAGE QUEUES FOR INTRA-CLUSTER COMMUNICATION
First Claim
1. A device comprising:
- enqueue circuitry;
said enqueue circuitry being coupled to a memory;
said enqueue circuitry being configured;
to receive an enqueue command that identifies a queue in said memory;
to enqueue a queue entry to the queue identified by the received enqueue command in response to receiving said enqueue command.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for sending and receiving messages between nodes on a compute cluster is provided. Communication between nodes on a compute cluster, which do not share physical memory, is performed by passing messages over an I/O subsystem. Typically, each node includes a synchronization mechanism, a thread ready to receive connections, and other threads to process and reassemble messages. Frequently, a separate queue is maintained in memory for each node on the I/O subsystem sending messages to the receiving node. Such overhead increases latency and limits message throughput. Due to a specialized coprocessor running on each node, messages on an I/O subsystem are sent, received, authenticated, synchronized, and reassembled at a faster rate and with lower latency. Additionally, the memory structure used may reduce memory consumption by storing messages from multiple sources in the same memory structure, eliminating the need for per-source queues.
40 Citations
19 Claims
-
1. A device comprising:
-
enqueue circuitry; said enqueue circuitry being coupled to a memory; said enqueue circuitry being configured; to receive an enqueue command that identifies a queue in said memory; to enqueue a queue entry to the queue identified by the received enqueue command in response to receiving said enqueue command. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising a machine-executed operation involving software instructions, wherein said software instructions which, when executed by a computing device, cause performance of steps including;
-
transmitting a particular enqueue command to an enqueue circuitry to enqueue a queue entry into a particular queue stored in a memory coupled to said enqueue circuitry, said particular enqueue command identifying said particular queue; wherein said enqueue circuitry is configured; to receive an enqueue command that identifies a queue in said memory; responsive to receipt of the enqueue command, to enqueue a queue entry to the queue identified by the received enqueue command; dequeueing a queue entry from said queue. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
a first enqueue circuitry; said first enqueue circuitry being operably coupled to a first memory and a second memory; said first enqueue circuitry being configured; to receive a first enqueue command, which comprises a first RKEY, wherein said first RKEY identifies said first memory; to receive a second enqueue command, which comprises a second RKEY, wherein said second RKEY identifies said second memory. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification