METHOD FOR DISPLAYING THE RECEIPT OF A MULTIPLE DATA FROM A CENTRAL COMPUTER USING A GROUP NOTIFICATION MECHANISM

The group notification mechanism in RDMA systems addresses the inefficiency of notifying central processors about work request completions, reducing latency by issuing interrupts only when necessary, thereby improving data processing efficiency.

DE102025131868B3Undetermined Publication Date: 2026-07-09GM GLOBAL TECHNOLOGY OPERATIONS LLC

Patent Information

Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
GM GLOBAL TECHNOLOGY OPERATIONS LLC
Filing Date
2025-08-11
Publication Date
2026-07-09

AI Technical Summary

Technical Problem

Current RDMA implementations lack an efficient mechanism to notify the processor of a central computer about the completion of work requests from multiple devices, leading to increased latency and inefficiencies.

Method used

A group notification mechanism is employed to inform the central processor of data receipt from nodes using a highest node frame rate that is less than or equal to a control rate, reducing latency by issuing interrupt service routines only when necessary.

Benefits of technology

Reduces latency by minimizing unnecessary interrupt service routines, enhancing the efficiency of data processing in RDMA systems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A system and method for displaying, to a central computer, the receipt of a plurality of data using a group notification mechanism comprise the central computer with a control application having a control application memory, the group notification mechanism, an RDMA machine of the central computer, and a control rate. The system and method also comprise a plurality of nodes, each with a node application having a node application memory, a node RDMA library, a node RDMA machine, and a highest node frame rate. The plurality of nodes copies the plurality of data from each node memory to the control application memory using RDMA.When the multitude of data received from each of the multitude of nodes, with a respective highest node frame rate that is less than or equal to the control rate, is written to the control application memory, the group notification mechanism issues an interrupt service routine to the control application.
Need to check novelty before this filing date? Find Prior Art

Description

Introduction The present invention relates to a method for a group notification mechanism to output an interrupt service routine to a central computer. Remote Direct Memory Access (RDMA) enables high-throughput, low-latency communication by allowing data to be transferred directly between memory locations on a multitude of devices to a central computer without processor intervention. Interrupt-based RDMA implementations can use interrupt service routines to notify a processor on the central computer when a work request is received and executed. Query-based RDMA implementations continuously check for the completion of work requests in a tight loop. For further background information, reference is made to the publications US 9 983 801 B1 , US 10 657 084 B1 , US 2012 / 0 254 492 A1 , US 2014 / 0 281 087 A1 and US 2022 / 0 232 072 A1. While current RDMA implementations achieve their intended purpose, there is a need for a new and improved system and method to notify the processor of a central computer of the completion of work requests received from the multitude of devices. Summary According to the invention, a method for displaying to a central computer the receipt of a respective plurality of data of a work request from each of a plurality of nodes using a group notification mechanism is presented, wherein the method is characterized by the features of claim 1. A system consisting of one or more computers can be configured to perform certain operations or actions due to the fact that it has software, firmware, hardware, or a combination thereof installed on the system that, during operation, causes or causes the system to perform the actions. One or more computer programs can be configured to perform certain operations or actions due to the fact that they contain instructions which, when executed by a data processing device, cause the device to perform the actions. A general aspect includes a method for displaying, to a central computer,The procedure involves receiving a variety of data from a work request from each of a variety of nodes using a group notification mechanism. It also includes generating the work request with the respective data set from each of the variety nodes with the highest node frame rate using a node application and a node RDMA library of each respective node, communicating or transmitting the work request from each of the variety nodes to a node RDMA machine of each respective node, and processing the work request from each of the variety nodes using the node RDMA machine of each respective node.A validation of the respective set of data of the work request from each of the multitude nodes using a central RDMA machine of the central computer with a control application having a control rate and a control application memory; a writing of the respective set of data of the work request from each of the multitude nodes to the control application memory of the central computer; and a display, by the control application, of the received set of data of the work request from each of the multitude nodes at a respective highest node frame rate that is less than or equal to the control rate, in the control application memory using the group notification mechanism. Other embodiments of this aspect include appropriate computer systems, facilities, and computer programs recorded on one or more computer storage devices.which are each configured to perform the actions of the procedures. Implementations may include one or more of the following features. The procedure for generating the work request with the respective set of data from each of the multiple nodes may further include generating the work request with the respective set of data from each of the multiple nodes using an RDMA-WRITE-RDMA operation.The display, control application, of the receipt of the respective set of data of the work request from each of the set of nodes using the group notification mechanism may further include a display, control application, of the receipt of the respective set of data of the work request from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory using the group notification mechanism after the respective set of data received from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate has been written to the control application memory.Generating the work request with the respective set of data from each of the multitude of nodes can further include generating the work request with the respective set of data from each of the multitude of nodes using an RDMA-SEND-RDMA operation. Generating the work request with the respective set of data from each of the multitude of nodes can further include generating a corresponding work request using the control application and a central RDMA library of the central computer, wherein the work request from each of the multitude of nodes includes an RDMA-RECV-RDMA operation.The display, control application, of the receipt of the respective set of data of the work request from each of the set of nodes using the group notification mechanism may further include a display, control application, of the receipt of the respective set of data of the work request from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory using the group notification mechanism after the respective set of data received from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate has been written to the control application memory.The display, the control application, the receipt of the respective multitude of data of the work request from each of the multitude of nodes using the group notification mechanism may further include the group notification mechanism issuing an interrupt service routine to the control application.The display, control application, and receipt of the respective variety of work request data from each of the variety of nodes using the group notification mechanism may further include the display, control application, and receipt of the respective variety of work request data from each of the variety of nodes with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory using the group notification mechanism if a node frame rate of the respective node does not match the highest node frame rate of the respective node.Generating the work request with the respective set of data from each of the multitude of nodes with the highest node frame rate, using a node application and a node RDMA library for each node, can further include generating the work request with the respective set of data from each of the multitude of nodes, where each of the multitude of nodes is a vehicle sensor communicating with or connected to the central computer. Implementations of the described techniques can include hardware, a method or process, or computer software on a medium accessible to a computer. A general aspect includes a system for displaying, to a central computer, the receipt of a respective set of data relating to a work request from each of a multitude of nodes using a group notification mechanism. The system also includes the multitude of nodes, each with a node application with a node application memory, a node RDMA library, a node RDMA machine, and a highest node frame rate. The node application and the node RDMA library generate the respective work request with the respective set of data. The node RDMA machine processes the respective work request for the respective set of data of the respective work request to be written to the central computer's central memory. The central computer contains a control application with a control application memory and a control rate.The system comprises a group notification mechanism and a central computer RDMA machine, wherein the central computer RDMA machine validates the respective set of data received by each of the set of nodes, and wherein the group notification mechanism indicates to the control application the receipt of the respective set of data received by each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate. Other embodiments of this aspect include appropriate computer systems, facilities, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method. Implementations can include one or more of the following features. In the system, the work request from each of the multitude nodes includes an RDMA-WRITE-RDMA operation. The group notification mechanism indicates to the control application the receipt of the respective multitude of data received from each of the multitude nodes at a respective highest node frame rate that is less than or equal to the control rate, after the respective multitude of data received from each of the multitude nodes at a respective highest node frame rate that is less than or equal to the control rate has been written to the control application memory. The work request from each of the multitude nodes includes an RDMA-SEND-RDMA operation. A corresponding work request from the central computer to the work request from each of the multitude nodes includes an RDMA-RECV-RDMA operation.The group notification mechanism informs the control application of the receipt of each set of data received by each of the multiple nodes with a respective highest node frame rate that is less than or equal to the control rate, after the respective set of data received by each node with a respective highest node frame rate that is less than or equal to the control rate has been written to the control application's memory. The group notification mechanism informs the control application of the receipt of each set of data received by each of the multiple nodes with a respective highest node frame rate that is less than or equal to the control rate by issuing an interrupt service routine to the control application. The central computer is a controller within a vehicle.The numerous nodes consist of vehicle sensors connected to the central computer. Implementations of the described techniques can include hardware, a method or process, or computer software on a medium accessible to a computer. A general aspect includes a method for displaying, to a central computer, the receipt of a respective set of data from a work request from each of a multitude of nodes using a group notification mechanism. The method also includes generating the work request with the respective set of data from each of the multitude of nodes with the highest node frame rate using a node application and a node RDMA library for each respective node, and communicating with each other.Transmitting the work request from each of the multiple nodes to a node RDMA machine of each respective node, processing the work request from each of the multiple nodes using the node RDMA machine of each respective node, validating the respective multiple data of the work request from each of the multiple nodes using a central RDMA machine of the central computer with a control application with a control rate and a control application memory, and writing the respective multiple data of the work request from each of the multiple nodes to the control application memory of the central computer.The method also includes displaying to the control application the receipt of each set of data from the work request from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate, into the control application memory using the group notification mechanism. After each set of data received from each of the set of nodes with a respective highest node frame rate that is less than or equal to the control rate is written to the control application memory by issuing an interrupt service routine to the control application. Other embodiments of this aspect include appropriate computer systems, devices, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method. Further areas of application will become apparent from the description provided herein. It should be understood that the description and specific examples are intended for illustrative purposes only. Brief description of the drawings The drawings described herein are for illustrative purposes only. Fig. 1 is a representation of a system with a central computer that uses a group notification mechanism to receive data from a plurality of nodes using Remote Direct Memory Access (RDMA) technology according to an exemplary embodiment; and Fig. 2 is a sequence representation showing the group notification mechanism which, upon receiving a work request from any of the plurality of nodes, initiates an interrupt to indicate to the control application the receipt of a work request from any of the plurality of nodes according to an exemplary embodiment. Detailed description The following description is merely exemplary. Referring to Fig. 1, a representation of a network 10 with a central computer 12 is shown, which uses a group notification mechanism 14 to receive a variety of data 16 from a variety of nodes 18 using Remote Direct Memory Access (RDMA) technology. The network 10 includes the central computer 12 and the variety of nodes 18. The central computer 12 is a device configured to coordinate, manage, and process the multitude of data 16 received by the multitude of nodes 18. The central computer 12 uses RDMA technology to receive the multitude of data 16 from the multitude of nodes 18. The central computer 12 is a non-generalised electronic control device with a central processor 20 and a central memory 22. The central processor 20 can be a custom or off-the-shelf processor, a central processing unit (CPU), or a graphics processing unit (GPU).The central memory 22 may be a graphics processing unit (GPU), an auxiliary processor among several processors associated with the central computer 12, a semiconductor-based microprocessor (in the form of a microchip or chipset), a microprocessor, a combination thereof, or generally, a device for executing instructions. The central memory 22 is used to store data such as control logic, software applications, instructions, computer code, data, lookup tables, etc. The central memory 22 includes any type of medium accessible by a computer, such as read-only memory (ROM), random-access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of storage medium.A “non-transient” computer-readable medium excludes wired, wireless, optical, or other communication links that carry transient electrical or other signals. A non-transient computer-readable medium includes media in which data can be stored permanently and media in which data can be stored and subsequently overwritten, such as a rewritable optical disc or an erasable storage device. Computer code includes any type of program code, including source code, object code, and executable code. The central processor 20 is configured to execute the code or instructions, including a control application 24 and a central RDMA library 26. In a list of examples, the central computer 12 could be an industrial programmable logic controller (PLC), a central electronic control unit (ECU), an edge server, an embedded AI processor, an avionics processor, or a memory controller. The central computer 12 includes a central RDMA machine 28 and the group notification mechanism 14. The control application 24 is software that manages the reception and interpretation of the multitude of data 16 received by the multitude of nodes 18 via the central RDMA library 26 and the central RDMA machine 28. The control application 24 requests the creation of a multitude of queue pairs using the central RDMA library 26 as data transmission lines between the central computer 12 and the multitude of nodes 18 to be managed by the central RDMA machine 28. The control application 24 uses the central RDMA library 26 to register application memory buffers of the central memory 22, which receive the multitude of data 16 from each of the multitude of nodes 18. The control application 24 also initiates inbound RDMA operations (i.e.,RECV) and places the incoming RDMA operations as a work request into one of a multitude of receiving queues of a multitude of central queue pairs 30 (which are described in more detail below) to be handled by the central RDMA machine 28. The control application 24 regulates a control rate that the group notification mechanism 14 uses to indicate to the control application 24 that a work request has been received from the multitude of nodes 18. It should be understood that the control rate is configurable via the control application 24 based on the design requirements of the network 10. It should also be understood that the control rate is regulated by the control application 24 and is not related to a direct memory access (DMA) control rate used by RDMA technology. In a list example, the control rate may be represented in hertz (Hz), kilohertz (kHz), megahertz (MHz), gigahertz (GHz), or millihertz (mHz). The control application 24 has a control application memory 31, which is a subgroup or sub-area.: subset) of the central memory 22, which is used to store and manage data and instructions relating to the control application 24. The central RDMA library 26 is a software abstraction layer stored in central memory 22 and executed by the central processor 20, which provides an interface between the control application 24 and the central RDMA machine 28. The central RDMA library 26 manages communication resources for zero-copy data transfers of the multitude of data 16 received by the multitude of nodes 18, including, for example, the creation and configuration of the multitude of queue pairs. A work request received by the control application 24 is loaded into one of the multitude of receive queues of the multitude of central queue pairs 30 to be handled by the central RDMA machine 28.The central RDMA library 26 enables the registration of application memory buffers in the control application memory 31 with the central RDMA machine 28. This maps logical memory addresses in the control application memory 31 to areas within the control application memory 31 that can be accessed by the central RDMA machine 28, and generates access keys (i.e., remote keys) required by the central RDMA machine 28 to initiate remote memory operations. The central RDMA library 26 makes the incoming RDMA operations from the control application 24 available for execution by the central RDMA machine 28.The addresses of registered application memory buffers of the control application memory 31, along with a generated remote key and the length of the data to be transferred, are also placed in the work request to be processed by the central RDMA machine 28. In a list of examples, the central RDMA library 26 could be libiverbe, libRDMAcm, RDMAcore, libfabric, or Unified Communication X (UCX). The central RDMA machine 28 is a hardware data transfer mechanism that performs RDMA operations between the central computer 12 and the multitude of nodes 18. The central RDMA machine 28 processes at least one work request in one of the multitude of send queues of the multitude of queue pairs that indicate RDMA operations. When a work request is received by the central RDMA machine 28 from one of the multitude of nodes 18, the central RDMA machine 28 transmits the multitude of data 16 to the registered application memory buffers, which are identified by the generated access keys, without the assistance of the central processor 20. The central RDMA machine 28 enables zero-copy data transfers of the multitude of data 16 received by the multitude of nodes 18 by bypassing kernel-space data buffers (e.g.,Socket buffers, network receive buffers, network transmit buffers, virtual file system page cache buffers, block input / output buffers, pipe buffers, and kernel ring buffers), which enables the direct movement of the multitude of data 16 from the multitude of nodes 18 to the control application memory 31. In a list of examples, the central RDMA machine 28 can be implemented in an RDMA-capable network interface card (RNIC), a SmartNIC, or directly on the central computer 12. The central RDMA machine 28 has the multitude of central queue pairs 30 and a multitude of central termination queues 32. The plurality of central queue pairs 30 are communication and transmission endpoints within the central RDMA machine 28, each of the plurality of central queue pairs 30 having a send queue and a receive queue. The central RDMA library 26 creates the plurality of central queue pairs 30 using parameters provided by the control application 24. The receive queue of each of the plurality of central queue pairs 30 directly corresponds to the send queue of one of a plurality of node queue pairs 34 (which are described in more detail below). The receive queue of each of the plurality of node queue pairs 34 holds work requests received from the plurality of nodes 18, indicating that the address of the application memory buffer data received from the plurality of nodes 18 is being placed. The multitude of central completion queues 32 stores successfully executed RDMA operations received from the control application 24. The group notification mechanism 14 informs the central processor 20 via an interrupt service routine 36 that the plurality of data 16 is being received from the plurality of nodes 18 at a frame rate that is less than or equal to the control rate. In an exemplary embodiment, the plurality of nodes 18 comprises three nodes: a first node with a maximum frame rate of 10 Hertz (Hz), a second node with a maximum frame rate of 20 Hz, and a third node with a maximum frame rate of 10 Hz. The control rate regulated by the control application is 10 Hz. When work requests are received from the first and third nodes, the group notification mechanism 14 issues the interrupt service routine 36 to the central processor 20.It should be understood that, since the second node has a higher frame rate than the control rate, the second node transmits data to the central computer 12 at a faster rate relative to the control rate. This means that the group notification mechanism 14 does not wait for a work request received from the second node to issue the interrupt service routine 36. It should also be understood that if a node from the plurality of nodes 18 with a frame rate less than or equal to the control rate does not transmit any data to the central computer 12 within the maximum frame rate of that node, the group notification mechanism 14 issues an interrupt service routine 36 to the central processor 20 to process the plurality of data 16 received from the plurality of nodes 18. The multitude of nodes 18 are devices that transmit the multitude of data 16 to the central computer 12 using RDMA technology. In a list of examples, each of the multitude of nodes 18 could be an ECU, an infotainment controller, a climate control module, a sensor, an actuator, a PLC, a motor controller, or a human-machine interface (HMI) panel. Each of the multitude of nodes 18 has a node controller 38 and a node RDMA machine 40. The node controller 38 is a non-generalised electronic control device comprising a node processor 42 and a node memory 44. The node processor 42 can be a custom or off-the-shelf processor, a central processing unit (CPU), a graphics processing unit (GPU), an auxiliary processor among several processors associated with the node controller 38, a semiconductor-based microprocessor (in the form of a microchip or chipset), a microprocessor, a combination thereof, or generally, a device for executing instructions. The node memory 44 is used to store data such as control logic, software applications, instructions, computer code, the variety of data 16, lookup tables, etc. The node memory 44 includes any type of medium accessible by a computer, such as read-only or...Read-only memory (ROM), random-access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of storage. A "non-transient" computer-readable medium excludes wired, wireless, optical, or other communication links that carry transient electrical or other signals. A non-transient computer-readable medium includes media in which data can be permanently stored and media in which data can be stored and subsequently overwritten, such as a rewritable optical disc or an erasable storage device. Computer code includes any type of program code, including source code, object code, and executable code.The Node processor 42 is configured to execute the code or instructions stored in the Node memory 44, including a Node application 46 and a Node RDMA library 48. Node Application 46 is software that manages the communication of the multitude of data 16 to the central computer 12 using the Node RDMA Library 48 and the Node RDMA Machine 40. Node Application 46 requests the creation of the multitude of queue pairs, using the Node RDMA Library 48 as data transmission lines between the respective node and the central computer 12, to be managed by the Node RDMA Machine 40. Node Application 46 also initiates outbound DMA operations (e.g., RDMA-WRITE, RDMA-READ, and SEND) and places the RDMA operations as work requests in one of the multitude of send queues of the multitude of node queue pairs 34 (described in more detail below) to be processed by the Node RDMA Machine 40.The node application 46 regulates the maximum frame rate of each node, which represents the maximum number of work requests that the respective node can transmit to the central computer 12 within a given time period. In a list of examples, the maximum frame rate may be represented in Hz, kilohertz (kHz), megahertz (MHz), gigahertz (GHz), or millihertz (mHz). It should be understood that a node's frame rate at any given time may be lower than its maximum frame rate, based on the frequency of data that the respective node needs to transmit to the central computer 12 at that time. The node application 46 has a node application memory 49, which represents a subset of the node memory 44 used to store and manage data and instructions related to the node application 46. The Node RDMA Library 48 is a software abstraction layer stored in Node Memory 44 and executed by the Node Processor 42, which provides an interface between the Node Application 46 and the Node RDMA Machine 40. The Node RDMA Library 48 manages communication resources for zero-copy data transmissions of the multitude of data 16 from the respective node, including, for example, the creation and configuration of the multitude of queue pairs. A work request received by the Node Application 46 is loaded into one of the multitude of send queues of the multitude of node queue pairs 34 to be processed by the Node RDMA Machine 40.The Node RDMA Library 48 enables the registration of application memory buffers in the Node Application Memory 49 with the Node RDMA Machine 40. This maps logical memory addresses in the Node Application Memory 49 to areas within the Node Application Memory 49 that are accessible to the Node RDMA Machine 40, and generates access keys (i.e., local keys) required by the Node RDMA Machine 40 to initiate remote memory operations. The Node RDMA Library 48 provides the RDMA operations of the Node Application 46 for execution by the Node RDMA Machine 40. The addresses of the registered application memory buffers in the Node Application Memory 49, along with a generated local key and the length of the data to be transferred, are also included in the work request for processing by the Node RDMA Machine 40. The Node RDMA Machine 40 is a hardware data transmission mechanism that performs RDMA operations between the respective node and the central computer 12. The Node RDMA Machine 40 processes at least one work request in one of the plurality of send queues of the plurality of queue pairs that indicate RDMA operations. When a work request is received by the Node RDMA Machine 40, the Node RDMA Machine 40 transmits the plurality of data 16 from the registered application memory buffers in the node application memory 49 of the respective node, identified by the lkey (Ikey), to the registered application memory buffers in the control application memory 31, identified by the rkey (rkey), without the assistance of the central processor 20 or the node processor 42 of the respective node.The Node RDMA machine 40 enables zero-copy data transfers of the multitude of data 16 from the respective node by bypassing kernel-space data buffers (e.g., socket buffers, network receive buffers, network transmit buffers, page cache buffers of a virtual file system, block input / output buffers, pipe buffers, and kernel ring buffers), thus allowing the direct movement of the multitude of data 16 from the multitude of nodes 18 to the control application memory 31. In a list of examples, the Node RDMA machine 40 can be implemented in an RDMA-enabled network interface card (RNIC), a SmartNIC, or directly on the node controller 38 of the respective node. The Node RDMA machine 40 features a multitude of node queue pairs 34 and a multitude of node completion queues 50. The plurality of node queue pairs 34 are communication or transmission endpoints within the node RDMA machine 40, each of the plurality of node queue pairs 34 having a send queue and a receive queue. The node RDMA library 48 creates the plurality of node queue pairs 34 using parameters provided by the node application 46. The send queue of each of the plurality of node queue pairs 34 corresponds directly to the receive queue of one of the plurality of central queue pairs 30. The receive queue of each of the plurality of node queue pairs 34 corresponds directly to the send queue of one of the plurality of central queue pairs 30. The send queue holds work requests generated by the node application 46 of the respective node, which are processed by the node RDMA machine 40.In a list of examples, the node RDMA machine 40 processes a work request by validating the work request structure, checking the memory registration of a memory area indicated in the work request, and mapping or assigning buffer addresses for the zero-copy transfer of data from the respective node to the central computer 12 based on the work request. The node RDMA machine 40 then initiates the zero-copy transfer of the multitude of data 16 from the respective node to the central computer 12 based on the work requests in the send queue of the respective node queue pair. The multitude of node completion queues 50 stores successfully executed RDMA operations by the node application 46 of each respective node. Referring to Fig. 2, a sequence diagram shows the group notification mechanism 14, which, upon receiving a work request from each of the plurality of nodes 18, initiates an interrupt to indicate to the control application 24 the receipt of a work request from each of the plurality of nodes 18, generally designated by reference numeral 52. The node application 46 of each of the plurality of nodes 18 initiates a work request with an outbound RDMA operation provided by the node RDMA library 48. The node RDMA machine 40 of each of the plurality of nodes 18 then executes the outbound RDMA operation, enabling the zero-copy transfer of the plurality of data 16 from the node application memory 49 of each of the plurality of nodes 18 to the control application memory 31 of the central computer 12. The work request initiated by the node application 46 from each of the plurality of nodes 18 involves an RDMA WRITE RDMA operation. The control application 24 allocates a remote buffer in the control application memory 31 and registers the remote buffer with the central RDMA library 26. The central RDMA library 26 then shares the remote buffer with the central RDMA machine 28, which generates a remote virtual address, length, and key associated with the remote buffer (hereinafter referred to as the remote buffer information). The remote buffer information is then transmitted to each of the plurality of nodes 18, with the node application 46 from each of the plurality of nodes 18 allocating a node buffer in the node application memory 49 of each respective node and loading the node buffer with the data that the respective node wishes to transmit.The node application 46 of each respective node registers the node buffer using the node RDMA library 48 of each respective node to obtain a local key associated with the node buffer. The central RDMA library 26 then initializes the plurality of central queue pairs 30 and the plurality of central completion queues 32. The node RDMA library 48 of each of the plurality of nodes 18 then initializes the plurality of node queue pairs 34 for each respective node. The node application 46 of each respective node then initializes a work request with an RDMA WRITE RDMA operation, as well as the buffer address of the central computer with the associated remote key and the node buffer address of the node application memory 49 of each respective node with the associated local key. Each work request is placed by the node application 46 of each respective node, using the node RDMA library 48 of each respective node as an interface, into one of the send queues of the plurality of node queue pairs 34 of each of the plurality of nodes 18.The node RDMA machine 40 of each respective node then reads the node buffer of the respective node, packs the data to be transferred with the buffer address of the central computer and the remote key, and transmits the packed information to the central RDMA machine 28. The central RDMA machine 28 validates the remote key of the work request received from each of the multitude of nodes 18 and then performs the RDMA-WRITE-RDMA operation, writing the multitude of data 16 transmitted by each of the multitude of nodes 18 into the buffer of the central machine. The work request with the RDMA-WRITE-RDMA operation is then added to the multitude of node completion queues 50 of the respective node that executed the work request. The group notification mechanism 14 then indicates to the central processor 20 that a work request is being received from each of the multitude of nodes 18 with a highest frame rate less than or equal to the control rate by issuing the interrupt service routine 36 to the control application 24. In the exemplary embodiment, the plurality of nodes 18 comprises a first node 54 with a first node application 56 and a first node RDMA machine 58, and a second node 60 with a second node application 62 and a second node RDMA machine 64. It should be noted that the control rate of the central computer 12 is 10 Hz, the highest frame rate of the first node 54 is 10 Hz, and the highest frame rate of the second node 60 is 10 Hz. The first node application 56 initiates a first work request 66, and the second node application 62 initiates a second work request 68. The first node RDMA machine 58 packs a first data set 70 associated with the first work request 66 and writes the first data set 70 to the control application memory 31. The second node RDMA machine 64 packs a second data set 72 associated with the second work request 68 and writes the second data set 72 to the control application memory 31.Since the control application memory 31 has received the first data set 70 and the second data set 72, and the highest frame rate of the first node 54 and the second node 60 is less than or equal to the control rate of the central computer 12, the group notification mechanism 14 of the central RDMA machine 28 issues the interrupt service routine 36 to the control application 24. The first node application 56 then initiates a third work request 74 with an associated third data set 76, and the second node application 62 initiates a fourth work request 78 with an associated fourth data set 80, continuing the process of writing data from the node application memory 49 of the first node 54 and the second node 60 to the control application memory 31. In an alternative exemplary embodiment, a fifth work request initiated by the node application 46 from each of the plurality of nodes 18 includes an RDMA-SEND-RDMA operation. If the fifth work request initiated by the node application 46 from each of the plurality of nodes 18 includes an RDMA-SEND-RDMA operation, the control application 24 initiates a sixth work request with an RDMA-RECV-RDMA operation and loads the sixth work request into a receive queue from one of the plurality of central queue pairs 30.A multitude of data in the fifth work request is transmitted from the send queue of the multitude of node queue pairs 34 of each respective node to the central computer 12, with the sixth work request validating the buffer address of the central computer receiving the multitude of data in the fifth work request using a respective local key. When the multitude of data from the fifth work request is written to the control application memory 31, the sixth work request is added to the multitude of central completion queues 32, and the fifth work request is added to the multitude of node completion queues 50 of the respective node.The group notification mechanism 14 then indicates to the central processor 20 that a work request is being received from any of the plurality of nodes 18 with a highest frame rate less than or equal to the control rate by issuing the interrupt service routine 36 to the control application 24. It should be noted that the group notification mechanism 14 can issue the interrupt service routine 36 based on whether the plurality of central completion queues 32 have executed work requests with RDMA-RECV-RDMA operations from any of the plurality of nodes 18 with a highest frame rate less than or equal to the control rate. An advantage offered by the group notification mechanism 14 of the present invention is the reduction of latency that occurs when using a periodic task and query RDMA implementation if data is received late from one of the plurality of nodes 18, by issuing the interrupt service routine 36 when a work request is received from the plurality of nodes 18 with a highest frame rate that is less than or equal to the control rate. This advantage also reduces latency that occurs when using an interrupt-based RDMA implementation, by reducing the number of interrupt service routines issued to the central processor 20 when work requests from the plurality of nodes 18 are successfully received and executed.

Claims

Method for displaying to a central computer (12) the receipt of a respective set of data of a work request from each of a set of nodes (18) using a group notification mechanism (14), the method comprising: generating the work request with the respective set of data from each of the set of nodes (18) at a highest node frame rate using a node application (46) and a node RDMA library (48) of each respective node (18), wherein the highest frame rate of each node (18) represents the maximum number of work requests that the respective node (18) can transmit to the central computer (12) within a period of time; transmitting the work request from each of the set of nodes (18) to a node RDMA machine (64) of each respective node (18);Processing the work request from each of the plurality of nodes (18) using the node RDMA machine (48) of each respective node (18); Validating the respective plurality of data of the work request from each of the plurality of nodes (18) using a central RDMA machine (28) of the central computer (12) with a control application (24) having a control rate and a control application memory (31), wherein the control rate is regulated by the control application (24); Writing the respective plurality of data of the work request from each of the plurality of nodes (18) to the control application memory (31) of the central computer (12);and display, the control application (24), of receiving the respective multitude of data of the work request from each of the multitude of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory (31) using the group notification mechanism (14).; The method of claim 1, wherein generating the work request with the respective plurality of data from each of the plurality of nodes (18) further comprises generating the work request with the respective plurality of data from each of the plurality of nodes (18) using an RDMA-WRITE-RDMA operation. The method of claim 2, wherein the display to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) using the group notification mechanism (14) further comprises displaying to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory (31) using the group notification mechanism (14), after the respective plurality of data received from each of the plurality of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate has been written to the control application memory (31). Method according to claim 1, wherein generating the work request with the respective plurality of data from each of the plurality of nodes (18) further comprises generating the work request with the respective plurality of data from each of the plurality of nodes (18) using an RDMA-SEND-RDMA operation. The method of claim 4, wherein generating the work request with the respective plurality of data from each of the plurality of nodes (18) further comprises generating a corresponding work request using the control application (24) and a central RDMA library of the central computer (12), wherein the work request from each of the plurality of nodes (18) includes an RDMA-RECV-RDMA operation. The method of claim 5, wherein the display to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) using the group notification mechanism (14) further comprises displaying to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory (31) using the group notification mechanism (14), after the respective plurality of data received from each of the plurality of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate has been written to the control application memory (31). Method according to claim 1, wherein the display, the control application (24), the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) using the group notification mechanism (14) further comprises the group notification mechanism (14) issuing an interrupt service routine (36) to the control application (24). The method of claim 1, wherein the display to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) using the group notification mechanism (14) further comprises displaying to the control application (24) of the receipt of the respective plurality of data of the work request from each of the plurality of nodes (18) with a respective highest node frame rate that is less than or equal to the control rate, in the control application memory (31) using the group notification mechanism (14), when a node frame rate of the respective node (18) does not match the highest node frame rate of the respective node (18). The method of claim 1, wherein generating the work request with the respective plurality of data from each of the plurality of nodes (18) with a highest node frame rate using a node application (46) and a node RDMA library (48) of each respective node (18) further comprises generating the work request with the respective plurality of data from each of the plurality of nodes (18), wherein each of the plurality of nodes (18) is a vehicle sensor in conjunction with the central computer (12). The method according to claim 1, wherein validating the respective plurality of data of the work request from each of the plurality of nodes (18) using a central RDMA machine (28) of the central computer (12) with a control rate and a control application (24) further comprises validating the respective plurality of data of the work request from each of the plurality of nodes (18) using the central RDMA machine (28) of the central computer (12), wherein the central computer (12) is a controller within a vehicle.