WO2022226998A1 - 执行原子操作的装置和方法 - Google Patents
执行原子操作的装置和方法 Download PDFInfo
- Publication number
- WO2022226998A1 WO2022226998A1 PCT/CN2021/091481 CN2021091481W WO2022226998A1 WO 2022226998 A1 WO2022226998 A1 WO 2022226998A1 CN 2021091481 W CN2021091481 W CN 2021091481W WO 2022226998 A1 WO2022226998 A1 WO 2022226998A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target storage
- iommu
- storage space
- memory
- rnic
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims description 13
- 238000013500 data storage Methods 0.000 abstract description 11
- 238000007726 management method Methods 0.000 abstract description 7
- 230000008569 process Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
Definitions
- the present application relates to the field of computer technology, and in particular, to an apparatus and method for performing atomic operations.
- RDMA remote direct memory access
- the present application provides an apparatus and method for performing atomic operations, which provides a basic guarantee for data storage consistency in memory and avoids the problem of data inconsistency.
- the present application provides an apparatus for performing atomic operations, including: a remote direct memory access network card RNIC and an input-output memory management unit IOMMU; wherein, the RNIC is used to send an instruction to read memory to the IOMMU, so The instruction of reading the memory includes a target storage address; the IOMMU is used to read the operation data from the target storage space corresponding to the target storage address in an exclusive manner, and send the operation data to the RNIC, the The target storage space is provided by the memory; the RNIC is further configured to perform an operation on the operation data to obtain an operation result, and write the operation result into the target storage space through the IOMMU.
- a remote direct memory access network card RNIC and an input-output memory management unit IOMMU wherein, the RNIC is used to send an instruction to read memory to the IOMMU, so The instruction of reading the memory includes a target storage address; the IOMMU is used to read the operation data from the target storage space corresponding to the target storage address in an exclusive manner, and send the operation data to the RNIC,
- the IOMMU in the service node can exclusively access the target storage space stored in the memory of one of the data to be performed the atomic operation, that is, the IOMMU locks the target storage space, which can only be accessed by You can read/write data from it yourself, and other IOMMUs in the service node or remote service node cannot access the target storage space at the same time, which provides a basic guarantee for the consistency of data storage in the memory, and prevents other IOMMUs from reading data.
- the IOMMU modifies the data in the storage space, resulting in data inconsistency.
- the IOMMU is specifically configured to: after marking the target storage space as an exclusive state, read the operation data from the target storage space.
- the IOMMU in the service node marks the target storage space as an exclusive state, and then reads the operation data from it, so that the IOMMU can lock the target storage space, and can only read/write data from it by itself, while others in the service node or the remote service node None of the IOMMUs can access the target storage space at the same time, preventing other IOMMUs from modifying the data in the storage space, and ensuring data storage consistency in the memory.
- the IOMMU is specifically configured to mark the target storage space as the exclusive state row by row according to cache lines.
- the target storage space is greater than 8 bytes.
- the IOMMU reads or writes the memory, and can set the read/write data length to a cacheline.
- the cacheline can usually be 1 byte (byte, B) to 256B, for example, 64B, 128B or 256B, etc. , so the IOMMU can exclusively lock the cacheline as a unit, that is, when the IOMMU reads the memory, it can monopolize the storage space of the cacheline length (greater than 8 bytes), which can solve the problem that only 8 bytes of storage can be locked at a time in the prior art. Therefore, the data consistency requirements of accessing larger storage space at the same time cannot be met.
- the IOMMU is further configured to: after writing the operation result into the target storage space, mark the target storage space as a shared state.
- the IOMMU can release the exclusive use of the target storage space, that is, mark the target storage space as a shared state, so that other IOMMUs can read/write to the target storage space.
- the IOMMU is specifically configured to mark the target storage space as the shared state line by line according to cache lines.
- the IOMMU is further configured to: after writing the operation result into the target storage space, send response information to the RNIC, where the response information is used to indicate the IOMMU End the access to the target storage space.
- the IOMMU can send a response message to the RNIC to inform the RNIC that it has finished accessing the target storage space, so that the RNIC can process other atomic operation requests corresponding to the target storage space.
- the RNIC is further configured to send a remote direct memory access RDMA packet including the operation data to a remote service node, so that the remote server node can respond to the received operation data to perform the arithmetic operation.
- the RNIC sends an RDMA message to the remote service node, and sends the operation data before the operation operation to the remote service node for use by the remote service node.
- the remote service node can perform the same operation on the operation data to obtain the operation result, which can realize the access of the remote service node to the memory corresponding to the local service node, and ensure the data storage in the memory at the same time. consistency.
- the present application provides a method for performing an atomic operation, including: an RNIC sends an instruction to read memory to an IOMMU, where the instruction to read memory includes a target storage address; The corresponding target storage space reads the operation data, and sends the operation data to the RNIC; the RNIC performs an operation operation on the operation data to obtain the operation result, and writes the operation result through the IOMMU the target storage space.
- the IOMMU reads the operation data from the target storage space corresponding to the target storage address in an exclusive manner, including: after the IOMMU marks the target storage space as an exclusive state, The operation data is read from the target storage space.
- the IOMMU marking the target storage space as the exclusive state includes: the IOMMU marking the target storage space as the exclusive state row by row according to cache lines.
- the target storage space is greater than 8 bytes.
- the method further includes: marking the target storage space as a shared state by the IOMMU.
- the IOMMU marking the target storage space as the shared state includes: the IOMMU marking the target storage space as the shared state row by row according to cache lines.
- the method further includes: the IOMMU sends response information to the RNIC, where the response information is used to indicate The IOMMU ends the access to the target storage space.
- the method further includes: the RNIC sends an RDMA packet including the operation data to a remote service node, so that The remote server node performs the computing operation on the received computing data.
- FIG. 1 is an exemplary structural diagram of a multi-node cluster
- FIG. 2 is an exemplary structural diagram of a multi-node cluster
- FIG. 3 is an exemplary structural diagram of an apparatus for performing atomic operations in the present application.
- FIG. 4 is an exemplary flowchart of a method for performing an atomic operation in the present application.
- At least one (item) refers to one or more, and "a plurality” refers to two or more.
- “And/or” is used to describe the relationship between related objects, indicating that there can be three kinds of relationships, for example, “A and/or B” can mean: only A, only B, and both A and B exist , where A and B can be singular or plural.
- the character “/” generally indicates that the associated objects are an “or” relationship.
- At least one item(s) below” or similar expressions thereof refer to any combination of these items, including any combination of single item(s) or plural items(s).
- At least one (a) of a, b or c can mean: a, b, c, "a and b", “a and c", “b and c", or "a and b and c" ", where a, b, c can be single or multiple.
- Figure 1 is an exemplary structural diagram of a multi-node cluster.
- a multi-node cluster can be formed for computing.
- This example includes three service nodes (host1, host2, and host3), and each service node contains a network interface card (NIC).
- NIC network interface card
- RDMA technology came into being. RDMA is to quickly move data from one service node to the memory of another service node through the network, which will not cause any impact on the operating system and greatly reduce the central processing unit (CPU) resource consumption. RDMA can be simply understood as a hardware unit that specializes in data movement in memory. The source and destination of the movement are both CPU memory, so the latency is low.
- a network interface card in a service node that supports the RDMA technology may be referred to as an RDMA network interface card (RDMA network interface card, RNIC).
- FIG. 2 is an exemplary structural diagram of a multi-node cluster.
- FIG. 2 takes two service nodes (host1 and host2) included in the cluster of FIG. 1 as an example. Both host1 and host2 support RDMA. Both host1 and host2 can adopt the structure shown in Figure 3 below, and host1 and host2 are connected through their respective RNICs, that is, RNIC1 in host1 and RNIC2 in host2 are connected to each other through cables or wireless.
- RNIC1 in host1 and RNIC2 in host2 are connected to each other through cables or wireless.
- FIG. 2 only exemplarily shows a structure of a multi-node cluster, but does not limit the structure of the multi-node cluster, that is, the multi-node cluster may also include more service nodes, and the The structures may be the same or different, which are not specifically limited in this application.
- Fig. 3 is an exemplary structural diagram of an apparatus for performing atomic operations in the present application. As shown in Fig. 3, the apparatus can be applied to the above-mentioned service node (or called host) including a memory, a bus, and a memory management unit. MMU), input output memory management unit (IOMMU), and RNIC.
- MMU memory management unit
- IOMMU input output memory management unit
- RNIC resource management unit
- MMU is a kind of computer hardware responsible for processing memory access requests of processors, and its functions include translation of virtual addresses to physical addresses (ie, virtual memory management), memory protection, and control of processor caches.
- the IOMMU is a memory management unit that connects an I/O bus with direct memory access (DMA) capability to memory.
- DMA direct memory access
- an IOMMU can map device-visible virtual addresses (also referred to herein as device addresses or I/O addresses) to physical addresses.
- the IOMMU can also be called a system memory management unit (SMMU), and ARM defines its IOMMU version as SMMU.
- SMMU system memory management unit
- Memory also known as internal memory and main memory, is used to temporarily store operational data in the processor and data exchanged with external memory such as hard disks.
- the memory is the bridge between the external memory and the processor, and all programs in the service node run in the memory. As long as the service node starts running, the operating system will transfer the data that needs to be calculated from the memory to the processor for operation. When the operation is completed, the processor will transmit the result.
- RDMA allows other service nodes to directly access data in memory through RNIC without going through the processor.
- RNICs are computer hardware designed to allow service nodes to communicate in a network, so that multiple service nodes can be connected to each other by cables or wirelessly. RNICs of multiple service nodes can communicate by transmitting RDMA packets.
- the MMU and the IOMMU are interconnected through the bus and the memory.
- the bus is an internal structure, and various components of the service node are connected through the bus.
- the processor is the final execution unit for information processing and program operation.
- the device for performing atomic operations of the present application may perform the atomic operations by using the following steps, as shown in FIG. 4 :
- the remote server node sends an RDMA packet to the RNIC, where the RDMA packet includes information indicating an atomic operation.
- Atomic operation refers to one or a series of operations that cannot be interrupted. It is a minimal unit of execution, so the atomic operation will not be interrupted by the operations of other threads during the running process.
- Atomic operations generally include three steps of reading memory, operating operations and writing memory. These three steps can also be called three steps of reading, modifying and overwriting in turn.
- reading memory refers to the target storage address in the memory corresponding to The data stored in the target storage space is read out;
- the operation operation refers to adding (subtracting) the data obtained in the preceding step of reading the memory and the data contained in the information indicating the atomic operation to obtain the operation result, or, the aforementioned
- the data obtained in the step of reading the memory is compared with the data contained in the information indicating the atomic operation to obtain the operation result;
- the writing to the memory refers to writing the operation result obtained in the preceding operation step into the target storage space corresponding to the target storage address .
- the above three steps of reading memory, computing operation and writing memory need to be performed at one time.
- the RNIC of the service node can receive a remote direct memory access (remote direct memory access, RDMA) message sent by the remote service node (which may be the RNIC of the remote service node), where the RDMA message includes information indicating an atomic operation.
- the remote service node needs to perform operations on the data stored in the memory corresponding to the service node, so the remote service node can send an RDMA message to the service node, and carry the atomic operation-related data in the RDMA message.
- the atomic operation may include read memory, operation operation and write memory.
- the information related to the atomic operation may include the target storage address of the data stored in the memory corresponding to the service node, and another data to be subjected to the operation operation. and the type of arithmetic operation (eg addition).
- the RNIC sends a memory read instruction to the IOMMU, where the memory read instruction includes a target storage address.
- the RNIC of the service node After the RNIC of the service node receives the RDMA message, it parses the RDMA message to obtain the information related to the atomic operation carried in the RDMA message, and then sends the instruction to read the memory to the IOMMU, instructing the IOMMU from the memory corresponding to the target storage address
- the data is read in the target storage space, and the target storage address can be a virtual address.
- the IOMMU reads the operation data from the target storage space corresponding to the target storage address in an exclusive manner, and the target storage space is provided by the memory.
- the IOMMU is a computer hardware responsible for processing memory access requests. After receiving a memory read instruction from the RNIC, it initiates a read operation to the memory according to the target storage address in the memory read instruction.
- the IOMMU accesses the target storage space corresponding to the target storage address in an exclusive manner to read data from it, that is, the IOMMU locks the target storage space and can only read/write data from it, while the service node or remote service node in the No other IOMMU can access the target storage space at the same time, which provides a basic guarantee for the consistency of data storage in memory, and prevents other IOMMUs from modifying the data in the target storage space after the IOMMU reads the data, resulting in inconsistent data. question.
- the IOMMU sends a read-only instruction (ReadUnique) for the target storage space to the memory, and marks the exclusive (E) state in the read-only instruction, and the bus between the IOMMU and the memory recognizes that the read-only instruction marks the E state , so that other bus operations, including the processor accessing the target storage space through the MMU, and other RNICs accessing the target storage space through the IOMMU, are inaccessible to the target storage space.
- ReadUnique a read-only instruction
- E exclusive
- the IOMMU may mark the target storage space as an exclusive state (E state) line by line according to the cache line.
- E state exclusive state
- the IOMMU performs a read operation or a write operation on the memory, and the read/write data length can be set to a cacheline, and the cacheline can usually be 1 byte (byte, B) ⁇ 256B, for example, 64B, 128B or 256B, etc., so the IOMMU can perform E-state locking in the unit of cacheline in the above read-only instructions, that is, when the IOMMU reads the memory, it can exclusively occupy the storage space of the cacheline length.
- the IOMMU sends the operation data to the RNIC.
- the IOMMU reads the operation data from the target storage space, and then sends the operation data to the RNIC.
- the RNIC performs an operation on the operation data to obtain an operation result.
- the RNIC receives the operation data from the IOMMU, and performs the operation in the atomic operation on the operation data to obtain the operation result. For example, the data contained in the information related to the atomic operation and the operation data are added (subtracted) to obtain the sum (difference). As a result, alternatively, a comparison result is obtained by comparing the data contained in the information related to the atomic operation with the operation data.
- the RNIC sends a memory write instruction to the IOMMU, where the memory write instruction includes an operation result.
- the RNIC transmits the operation result to the IOMMU through a write memory instruction, marked as WriteBack, and saves the operation data before the operation operation at the RNIC.
- the IOMMU writes the operation result into the target storage space.
- the IOMMU after the IOMMU receives the memory write instruction, the operation result matched to the memory write instruction corresponds to the atomic operation in the above steps, and then the target storage address corresponding to the atomic operation is determined, and the The operation result is stored in the target storage space corresponding to the target storage address.
- the IOMMU can first match the operation results from the RNIC with the atomic operations to be processed, and then compare the operation results. Stored in the target storage space corresponding to the atomic operation on the matching, the matching of the IOMMU can be based on the operation result and the identification information in the atomic operation, which is not specifically limited.
- the operation result obtained by performing the operation on the operation data is written in the storage space of the operation data, which is consistent with the operation result obtained by the remote service node performing the same operation operation on the operation data below, so as to realize the in-memory storage space. Data storage consistency.
- S7 and IOMMU mark the target storage space as a shared state.
- the IOMMU can release the exclusive use of the target storage space, that is, mark the target storage space as a shared state, so that other IOMMUs can read/write to the target storage space.
- the IOMMU sends response information to the RNIC, where the response information is used to instruct the IOMMU to end the access to the target storage space.
- the IOMMU can send a response message to the RNIC to inform the RNIC that it has finished accessing the target storage space, so that the RNIC can process other atomic operation requests corresponding to the target storage space.
- the RNIC sends an RDMA message to the remote service node, where the RDMA message includes operation data.
- the RNIC sends a response (RDMA message) to the remote service node, and sends the operation data before the operation operation to the remote service node for use by the remote service node.
- RDMA message a response
- the remote service node can perform the same operation on the operation data to obtain the operation result, which can realize the access of the remote service node to the memory corresponding to the local service node, and ensure the data storage in the memory at the same time.
- the above atomic operation may be a masked atomic operation.
- the IOMMU in the service node can exclusively access the target storage space stored in the memory of one of the data to be performed the atomic operation, that is, the IOMMU locks the target storage space, which can only be accessed by You can read/write data from it yourself, and other IOMMUs in the service node or remote service node cannot access the target storage space at the same time, which provides a basic guarantee for the consistency of data storage in the memory, and prevents other IOMMUs from reading data.
- the IOMMU modifies the data in the target storage space, resulting in data inconsistency.
- each step of the above method embodiments may be completed by a hardware integrated logic circuit in a processor or an instruction in the form of software.
- the processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other Programming logic devices, discrete gate or transistor logic devices, discrete hardware components.
- DSP digital signal processor
- ASIC application-specific integrated circuit
- FPGA field programmable gate array
- a general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
- the steps of the methods disclosed in the embodiments of the present application may be directly embodied as executed by a hardware coding processor, or executed by a combination of hardware and software modules in the coding processor.
- the software modules may be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other storage media mature in the art.
- the storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps of the above method in combination with its hardware.
- the memory mentioned in the above embodiments may be volatile memory or non-volatile memory, or may include both volatile and non-volatile memory.
- the non-volatile memory may be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically programmable Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
- Volatile memory may be random access memory (RAM), which acts as an external cache.
- RAM random access memory
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- SDRAM double data rate synchronous dynamic random access memory
- ESDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous link dynamic random access memory
- direct rambus RAM direct rambus RAM
- the disclosed system, apparatus and method may be implemented in other manners.
- the apparatus embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not implemented.
- the shown or discussed mutual coupling or direct coupling or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit.
- the functions, if implemented in the form of software functional units and sold or used as stand-alone products, may be stored in a computer-readable storage medium.
- the technical solution of the present application can be embodied in the form of a software product in essence, or the part that contributes to the prior art or the part of the technical solution.
- the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of the present application.
- the aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), magnetic disk or optical disk and other media that can store program codes .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (14)
- 一种执行原子操作的装置,其特征在于,包括:远程直接内存访问网卡RNIC和输入输出内存管理单元IOMMU;其中,所述RNIC,用于向所述IOMMU发送读内存的指令,所述读内存的指令包括目标存储地址;所述IOMMU,用于以独占的方式从所述目标存储地址对应的目标存储空间读取运算数据,并将所述运算数据发送给所述RNIC,所述目标存储空间由内存提供;所述RNIC,还用于对所述运算数据进行运算操作以获取运算结果,并且通过所述IOMMU将所述运算结果写入所述目标存储空间。
- 根据权利要求1所述的装置,其特征在于,所述IOMMU,具体用于:在将所述目标存储空间标记为独占态后,从所述目标存储空间内读取所述运算数据。
- 根据权利要求2所述的装置,其特征在于,所述IOMMU,具体用于将所述目标存储空间按照缓存行逐行标记为所述独占态。
- 根据权利要求1-3中任一项所述的装置,其特征在于,所述IOMMU,还用于:在将所述运算结果写入所述目标存储空间之后,将所述目标存储空间标记为共享态。
- 根据权利要求4所述的装置,其特征在于,所述IOMMU,具体用于将所述目标存储空间按照缓存行逐行标记为所述共享态。
- 根据权利要求1-5中任一项所述的装置,其特征在于,所述IOMMU,还用于:在将所述运算结果写入所述目标存储空间之后,向所述RNIC发送响应信息,所述响应信息用于指示所述IOMMU结束对所述目标存储空间的访问。
- 根据权利要求1-6中任一项所述的装置,其特征在于,所述RNIC,还用于向远端服务节点发送包含所述运算数据的远程直接内存访问RDMA报文,以使得所述远端服务器节点对接收的所述运算数据进行所述运算操作。
- 一种执行原子操作的方法,其特征在于,包括:远程直接内存访问网卡RNIC向输入输出内存管理单元IOMMU发送读内存的指令,所述读内存的指令包括目标存储地址;所述IOMMU以独占的方式从所述目标存储地址对应的目标存储空间读取运算数据,并将所述运算数据发送给所述RNIC;所述RNIC对所述运算数据进行运算操作以获取运算结果,并且通过所述IOMMU将所述运算结果写入所述目标存储空间。
- 根据权利要求8所述的方法,其特征在于,所述IOMMU以独占的方式从所述目标存储地址对应的目标存储空间读取运算数据,包括:所述IOMMU在将所述目标存储空间标记为独占态后,从所述目标存储空间内读取所述运算数据。
- 根据权利要求9所述的方法,其特征在于,所述IOMMU将所述目标存储空间标记为独占态,包括:所述IOMMU将所述目标存储空间按照缓存行逐行标记为所述独占态。
- 根据权利要求8-10中任一项所述的方法,其特征在于,所述通过所述IOMMU将 所述运算结果写入所述目标存储空间之后,还包括:所述IOMMU将所述目标存储空间标记为共享态。
- 根据权利要求11所述的方法,其特征在于,所述IOMMU将所述目标存储空间标记为共享态,包括:所述IOMMU将所述目标存储空间按照缓存行逐行标记为所述共享态。
- 根据权利要求8-12中任一项所述的方法,其特征在于,所述通过所述IOMMU将所述运算结果写入所述目标存储空间之后,还包括:所述IOMMU向所述RNIC发送响应信息,所述响应信息用于指示所述IOMMU结束对所述目标存储空间的访问。
- 根据权利要求8-13中任一项所述的方法,其特征在于,所述RNIC对所述运算数据进行运算操作以获取运算结果之后,还包括:所述RNIC向远端服务节点发送包含所述运算数据的远程直接内存访问RDMA报文,以使得所述远端服务器节点对接收的所述运算数据进行所述运算操作。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/091481 WO2022226998A1 (zh) | 2021-04-30 | 2021-04-30 | 执行原子操作的装置和方法 |
CN202180097466.6A CN117280326A (zh) | 2021-04-30 | 2021-04-30 | 执行原子操作的装置和方法 |
EP21938472.4A EP4318237A4 (en) | 2021-04-30 | 2021-04-30 | DEVICE AND METHOD FOR PERFORMING ATOMIC OPERATIONS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/091481 WO2022226998A1 (zh) | 2021-04-30 | 2021-04-30 | 执行原子操作的装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022226998A1 true WO2022226998A1 (zh) | 2022-11-03 |
Family
ID=83847480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/091481 WO2022226998A1 (zh) | 2021-04-30 | 2021-04-30 | 执行原子操作的装置和方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4318237A4 (zh) |
CN (1) | CN117280326A (zh) |
WO (1) | WO2022226998A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955801A (zh) * | 2015-12-21 | 2016-09-21 | 上海交通大学 | 一种基于rdma和htm的分布式乐观并发控制方法 |
US20190102309A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | Nv cache |
CN110471779A (zh) * | 2019-07-22 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 用于实现锁资源处理的方法和装置 |
CN111104459A (zh) * | 2019-08-22 | 2020-05-05 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721806B2 (en) * | 2002-09-05 | 2004-04-13 | International Business Machines Corporation | Remote direct memory access enabled network interface controller switchover and switchback support |
-
2021
- 2021-04-30 EP EP21938472.4A patent/EP4318237A4/en active Pending
- 2021-04-30 CN CN202180097466.6A patent/CN117280326A/zh active Pending
- 2021-04-30 WO PCT/CN2021/091481 patent/WO2022226998A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105955801A (zh) * | 2015-12-21 | 2016-09-21 | 上海交通大学 | 一种基于rdma和htm的分布式乐观并发控制方法 |
US20190102309A1 (en) * | 2017-09-29 | 2019-04-04 | Oracle International Corporation | Nv cache |
CN110471779A (zh) * | 2019-07-22 | 2019-11-19 | 阿里巴巴集团控股有限公司 | 用于实现锁资源处理的方法和装置 |
CN111104459A (zh) * | 2019-08-22 | 2020-05-05 | 华为技术有限公司 | 存储设备、分布式存储系统以及数据处理方法 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4318237A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP4318237A4 (en) | 2024-05-15 |
EP4318237A1 (en) | 2024-02-07 |
CN117280326A (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9672143B2 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
US7320041B2 (en) | Controlling flow of data between data processing systems via a memory | |
US7502826B2 (en) | Atomic operations | |
TWI239187B (en) | System and method for managing and validating remote keys which correspond to outstanding data transactions | |
US20070041383A1 (en) | Third party node initiated remote direct memory access | |
US7194517B2 (en) | System and method for low overhead message passing between domains in a partitioned server | |
US7606933B2 (en) | Shared memory and high performance communication using interconnect tunneling | |
US7409468B2 (en) | Controlling flow of data between data processing systems via a memory | |
US20110004732A1 (en) | DMA in Distributed Shared Memory System | |
US20110004733A1 (en) | Node Identification for Distributed Shared Memory System | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
EP3077914B1 (en) | System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface | |
EP4155925A1 (en) | Data transmission method, processor system, and memory access system | |
EP3404537B1 (en) | Processing node, computer system and transaction conflict detection method | |
JP2010165022A (ja) | プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体 | |
WO2017101080A1 (zh) | 处理写请求的方法、处理器和计算机 | |
US10089043B2 (en) | Apparatus and methods for a distributed memory system including memory nodes | |
US5915124A (en) | Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions | |
US9116836B2 (en) | Tunneling transaction packets | |
US6182164B1 (en) | Minimizing cache overhead by storing data for communications between a peripheral device and a host system into separate locations in memory | |
WO2022226998A1 (zh) | 执行原子操作的装置和方法 | |
US10802828B1 (en) | Instruction memory | |
US8898353B1 (en) | System and method for supporting virtual host bus adaptor (VHBA) over infiniband (IB) using a single external memory interface | |
WO2022194021A1 (zh) | 并发控制方法、网卡、计算机设备、存储介质 | |
CN111190840A (zh) | 基于现场可编程门阵列控制的多方中央处理器通信架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21938472 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 202180097466.6 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2021938472 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2021938472 Country of ref document: EP Effective date: 20231027 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |