WO2015061971A1 - 数据处理系统和数据处理的方法 - Google Patents
数据处理系统和数据处理的方法 Download PDFInfo
- Publication number
- WO2015061971A1 WO2015061971A1 PCT/CN2013/086170 CN2013086170W WO2015061971A1 WO 2015061971 A1 WO2015061971 A1 WO 2015061971A1 CN 2013086170 W CN2013086170 W CN 2013086170W WO 2015061971 A1 WO2015061971 A1 WO 2015061971A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- address
- data
- data processing
- processing system
- storage
- Prior art date
Links
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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Definitions
- the present invention relates to the field of information technology, and in particular, to an apparatus, method, and system for data transmission between different data processing systems.
- RDMA Remote Direct Memory Access
- RDMA Remote Direct Memory Access
- the RDMA information transmitted over the network contains the target virtual address, the memory key, and the data itself.
- the request completion can be handled entirely in user space (by polling the user level to complete the alignment), or in the case where the application sleeps until the request is completed.
- Processed through kernel memory. RDMA operations allow an application to read data from or write data to a remote application's memory.
- the target host's network adapter acknowledges the memory key and writes the data directly into the application cache.
- RDMA requires that the transmitted data must pass through the memory in order to transfer data between two communicating servers. If you do not pass the memory, data transfer is not possible. The delay and memory usage of data transmission are high. Summary of the invention
- Embodiments of the present invention provide a system and data processing method to improve efficiency and device utilization when transmitting data between two data processing systems.
- Embodiments of the present invention provide a data processing system including a central processing unit CPU, a memory, a fast peripheral component interconnection standard PCIe controller, a network adapter, and at least one PCIe storage device. And characterized in that it further comprises:
- a management unit configured to acquire, according to the first address information carried in the data request, a first storage address of the requested data in the PCIe storage device, when the data processing system receives the data request, the first The storage address is a memory mapped input and output MM 10 address;
- the network adapter directly reading data from the PCIe storage device to the second data processing system according to the first storage address, or directly writing data received from the second data processing system to the PCIe storage
- the second data processing system is a data processing system that communicates with the first data processing system via a network.
- the PCIe storage device includes an address translation unit, configured to acquire, according to the first storage address, the data requested by the data request at a second storage address of the PC I e storage device.
- the second storage address is a physical address or a logical address, where the physical address is a linear continuous address capable of directly reading data, and the logical address is an address that is linearly sorted by a non-linear continuous physical address. .
- the address translation unit is further configured to configure a first base address register BAR, where the first BAR address register stores a correspondence between the first storage address and the second storage address, where the The second storage address is a linearly contiguous storage address.
- the address translation unit is further configured to configure a second BAR address register, where the second BAR address register stores a correspondence between the first storage address and a virtual address of the second storage address, where The second storage address is a non-linear contiguous storage address, and the virtual address of the second storage address is an address after the second storage address is linearly sorted.
- the CPU allocates a unique identifier to each of the PCIe storage devices, where the unique identifier is used to identify each of the PCIe storage devices.
- the first address information includes a unique identifier of the PCIe storage device and a logical block address LBA.
- the management unit is further configured to establish the unique identifier and the PCIe storage device. Correspondence between base addresses in the BAR.
- the unique identifier includes at least one of a vendor identifier Vender ID, a device identifier Device ID, or a hard disk serial number; or the unique identifier is to hash at least one of a Vender ID, a Device ID, or a hard disk serial number. The logo obtained afterwards.
- the management unit includes a base address obtaining unit and a storage address obtaining unit: the base address obtaining unit is configured to receive, in the data processing system, first data of a second data processing system that communicates with the network And obtaining, according to the unique identifier of the PCIe storage device carried in the first data request, a base address in a BAR of the requested data, and a storage address obtaining unit, configured to use, according to the base address in the BAR, the first An LB A address carried by the data request, obtaining a first storage address of the requested data in the PC I e storage device, where the first storage address is an MM 10 address.
- the base address obtaining unit is configured to receive, in the data processing system, first data of a second data processing system that communicates with the network And obtaining, according to the unique identifier of the PCIe storage device carried in the first data request, a base address in a BAR of the requested data, and a storage address obtaining unit, configured to use, according to the base address in the BAR
- the CPU registers the acquired first storage address in the network adapter.
- the data processing system further includes a sending unit, where the sending unit is configured to send the first storage address acquired by the management unit to the second data processing system.
- the PCIe controller acquires a data request that is sent by the network adapter to carry the first storage address
- the address translation unit acquires data of the second storage address, and returns the obtained data to the a network adapter, or write data sent by the network adapter to the second storage address.
- the management unit further includes a global base address obtaining unit and a global storage address obtaining unit:
- the global base address obtaining unit is configured to acquire, according to the unique identifier of the PCIe storage device carried in the second data request, the second data request requesting, when the data processing system receives the second data request a base address in the BAR of the second data processing system, the second data request being a request to send data to or read data from the second data processing system;
- the global storage address obtaining unit is configured to acquire, according to the base address in the BAR of the second data processing system and the LBA address carried in the second data request, the data requested by the second data request The solid 10 address of the second data processing system.
- the data conversion unit in the PCIe controller of the second data processing system is configured to be in the second data processing system according to the second data request sent by the data processing system. Addressing, obtaining a physical address or a logical address of the data requested by the second data request in the second data processing system, where the physical address is a linear continuous address capable of directly reading data, and the logical address is right Linearly consecutive physical addresses are linearly ordered addresses.
- a data processing method the method being applied to a data processing system including a central processing unit CPU, a memory, a fast peripheral component interconnection standard PCIe controller, a network adapter, and at least one storage device, the method comprising:
- the network adapter directly reads data from the PCIe storage device to the second data processing system according to the first storage address, or directly writes data received from the second data processing system to the PCIe
- the second data processing system is a data processing system that communicates with the first data processing system via a network.
- the PCIe storage device acquires, according to the first storage address, the data requested by the data request at a second storage address of the PCIe storage device.
- the second storage address is a physical address or a logical address, where the physical address is a linear continuous address capable of directly reading data, and the logical address is an address that is linearly sorted by a non-linear continuous physical address.
- the method further includes:
- the PCIe controller configures a first BAR address register, the first BAR address register stores a correspondence between the first storage address and the second storage address, and the second storage address is a linear continuous storage address.
- the method further includes:
- the PCIe controller configures a second BAR address register, and the second BAR address register stores a correspondence between the first storage address and a virtual address of the second storage address, where the second storage address is nonlinear A consecutive storage address, where the virtual address of the second storage address is a linearly sorted address of the second storage address.
- the CPU allocates a unique identifier to each of the PCIe storage devices, where the unique identifier is used to identify each of the PCIe storage devices.
- the first address information includes a unique identifier of the PCIe storage device and a logical block address LBA.
- the method further includes:
- a correspondence between the unique identifier and a base address in a BAR of the PCIe storage device is established.
- the unique identifier includes at least one of a vendor identifier Vender ID, a device identifier Device ID, or a hard disk serial number; or the unique identifier is at least one of a Vender ID, a Device ID, or a hard disk serial number.
- the identifier obtained after hash processing.
- the first storage address of the data of the acquisition request in the storage device includes: obtaining a base address in a BAR of the requested data according to the unique identifier of the PCIe storage device carried in the first data request ;
- the CPU registers the acquired first storage address in the network adaptation. In the device.
- the method further includes:
- the data processing system transmits the acquired first storage address to the second data processing system.
- the PCIe controller acquires a data request sent by the network adapter that carries the first storage address, and obtains data of a second storage address, and returns the obtained data to the network adapter, or The data sent by the network adapter is written to the second storage address.
- the method further includes:
- the data processing system When the data processing system receives the second data request, acquiring, according to the unique identifier of the PCIe storage device carried in the second data request, the second data processing of the data requested by the second data request a base address in a BAR of the system, the second data requesting a request to transmit data to or read data from the second data processing system;
- the PCIe controller in the second data processing system obtains the data requested by the second data request sent by the data processing system at the address of the MN10 of the second data processing system.
- the data requested by the second data request is at a physical address or a logical address of the second data processing system, the physical address is a linear contiguous address capable of directly reading data, and the logical address is a non-linear continuous physics The address after the address is linearly sorted.
- the data processing system and the data processing method provided by the embodiment of the present invention can obtain the data stored in the PCIe storage device directly by acquiring the MMIO address of the data request, and the network adapter can directly process the data from the data according to the MMIO address.
- Data is read from the PCIe storage device of the system and transmitted to the second data processing system, or data received from the second data processing system is written directly into the PCIe storage device. Enabling the processing system to When data is transferred between two data processing systems of network communication, the data is transferred from the PC I e storage device directly to the network adapter without passing through the memory. It reduces the occupancy rate of resources such as memory and CPU when data is transmitted by two data processing system components, and improves the efficiency of data transmission.
- FIG. 1 is a schematic diagram of a process of moving data in a remote node storage device to a local node storage device in the prior art
- FIG. 2 is a schematic structural diagram of a data processing system according to an embodiment of the present invention.
- FIG. 3 is a schematic structural diagram of a specific implementation of a data processing system according to an embodiment of the present invention
- FIG. 4 is a schematic flowchart of a data processing method according to an embodiment of the present invention
- FIG. 5 is a schematic diagram of a basic hardware structure of an implementation manner of a data processing system according to an embodiment of the present invention
- FIG. 6 is a diagram showing an example of a correspondence between a unique identifier of a PCIe storage device stored in a management unit and a base address in a BAR of a PCIe storage device according to an embodiment of the present invention
- FIG. 7 is a schematic structural diagram of mapping a mapping between an internal address of a PCIe storage device and an MMIO address of a CPU in the first embodiment of the present invention
- FIG. 8 is a schematic diagram of data flow of data transfer between two data processing systems according to an embodiment of the present invention.
- FIG. 1 is a schematic diagram of a process of moving data in a remote node storage device to a local node storage device in the prior art.
- the node may be a device such as a server that implements computing or storage functions.
- the implementation process is as follows:
- Step 1 The CPU of Node 1 initiates a remote connection requesting to read data
- Step 2 The network adapter in Node 1 sends the request packet to the network adapter of the designated node (ie, Node 2);
- Step 3 The network adapter of the Node 2 forwards the request to the CPU of the Node 2; Step 4, after the CPU of the Node 2 parses the request > 3 ⁇ 4 text, initiates a data request to the PC Ie controller;
- Step 5 the PCIe controller reads the requested data into the memory by means of DMA;
- Step 6 the CPU of Node 2 sends the request data read into the memory to its network adapter;
- Step 7 the network adapter of Node 2 will request the data Network adaptation sent to Node 1 over the network;
- Step 8 The CPU of Node 1 buffers the requested data from its network adapter and buffers the data to the memory;
- Step 9 Nodel's CPU sends the data buffered in the memory to the PCIe controller to request to write the data to the storage device;
- Step 10 The PC Ie controller of the Node 1 writes the received data into the storage device.
- the present invention provides a data processing system, which combines network technologies with the problem of consuming a large number of CPUs and a large amount of memory resources in the case of cross-node data transmission in the prior art.
- the MMIO address mapping technology of PCIe storage device uses the direct remote access technology of data between nodes to directly copy data.
- the CPU does not need to participate in the data movement, only the CPU needs to control, and the data does not need to be moved to the memory in advance.
- Processing which reduces the CPU and memory usage; at the same time reduces the migration process of data between CPU and memory, reduces the delay of data processing, and improves the efficiency of data transmission.
- FIG. 2 is a schematic structural diagram of a data processing system 200 according to an embodiment of the present invention.
- the data processing system 200 includes a central processing unit CPU 202, a memory 206, a fast peripheral component interconnect standard PCIe controller 203, a network adapter 205, and at least one PCIe storage device 204, and is characterized by, further comprising:
- the management unit 201 is configured to: when the data processing system receives the data request, acquire the first storage address of the requested data in the storage device according to the first address information carried in the data request, where the first The storage address is the MMIO (Memory mapping I/O, memory mapped input and output) address;
- MMIO Memory mapping I/O, memory mapped input and output
- the network adapter 205 directly reading data from the PCIe storage device 204 to the second data processing system according to the first storage address, or directly writing data received from the second data processing system to the In the PC Ie storage device 204, the second data processing system is a data processing system that communicates with the first data processing system over a network.
- the MMIO address of the data request is obtained by the management unit 201 in the data processing system, and the MMIO address can directly acquire data stored in the PCIe storage device, and the network adapter 205 Depending on the MMIO address, data can be read directly from the PCIe storage device 204 of the data processing system 200 and transmitted to the second data processing system, or data received from the second data processing system can be directly written to the In the PCIe storage device 204; when the processing system is enabled to transfer data between two data processing systems of network communication, the data transmission is directly transferred from the PC I e storage device to the network adapter without passing through the memory. It reduces the occupancy rate of resources such as memory and CPU when data is transmitted by two data processing system components, and improves the efficiency of data transmission.
- FIG. 3 is a schematic diagram showing a specific implementation structure of a data processing system 200 according to an embodiment of the present invention.
- the PCIe storage device 203 further includes an address translation unit 2031, configured to acquire, according to the first storage address, the data requested by the data request at a second storage address of the PCIe storage device.
- the second storage address may be a physical address or a logical address, the physical address being a linear contiguous address capable of directly reading data, and the logical address is an address obtained by linearly sorting non-linear continuous physical addresses.
- a first storage address that is, an MMIO address
- a second storage address where the second storage address is a physical address of an accessible medium of the PCIe storage device 203, enabling the PCIe to be stored
- the device acquires the physical address of the accessible medium corresponding to the MMIO address according to the MMIO address carried in the data request, and reads data through the physical address.
- the network adapter can obtain the accessible media address of the requested data, enabling direct reading and writing of data.
- the address translation unit 2031 is further configured to configure a first base address register BAR (base addres s reg is ter, a base address register), where the first BAR address register stores the first Corresponding relationship between the storage address and the second storage address, the second storage address being a linear continuous storage address. If the second storage address is a non-linear contiguous storage address, the address translation unit is configured to configure a second BAR address register, and the second BAR address register stores the first storage address and the second storage address Corresponding relationship between the virtual addresses, the virtual address of the second storage address is the second storage address The address after linear sorting.
- BAR base addres s reg is ter, a base address register
- the BAR address register is configured by the address conversion unit 2031, and the linear continuous physical address in the PCIe storage device is associated with the MN10 address, and the non-linear contiguous physical address in the PCIe storage device is linearly sorted.
- MMI0 address corresponding to the mapping between the MN10 address and the accessible media address of the PCIe storage device, so that the network adapter maps to the PCIe accessible storage medium address corresponding to the MMI0 address through the PCIe controller according to the MMI0 address. Direct reading and writing of data.
- the CPU 202 allocates a unique identifier to each of the PCIe storage devices, where the unique identifier is used to identify each of the storage devices.
- the management unit 201 is further configured to establish a correspondence between the unique identifier and a base address in a BAR of the PCIe storage device.
- the management unit 201 can obtain the unique identifier of the PCIe storage device included in the data request message received by the data processing system 200 by using the correspondence between the unique identifier of the PCIe storage device and the base address in the BAR of the PCIe storage device.
- the unique identifier identifies the base address in the BAR of the corresponding PCIe storage device.
- the first address information in the data request received by the data processing system includes a unique identifier of the PCIe storage device and an LBA (Logical Block Address) address, and the management unit 201 obtains the BAR of the PCIe storage device.
- the base address and the LBA address are able to obtain the MN10 address of the requested data.
- the unique identifier includes at least one of a Vender ID, a Device ID, or a hard disk serial number; or the unique identifier is obtained by performing hash processing on at least one of a Vender ID, a Device ID, or a hard disk serial number.
- logo is a registered trademark of Microsoft Corporation.
- the management unit 201 includes an address obtaining unit 2011 and a storage address obtaining unit 2012:
- the base address obtaining unit 2011 is configured to: when the data processing system 200 receives the first data request of the second data processing system that communicates with the network, according to the PCIe storage device 204 carried in the first data request. Unique identifier, the base address in the BAR that obtains the requested data; a storage address obtaining unit 2012, configured to acquire, according to the base address in the BAR and the LBA address in the first data request, a first storage address of the requested data in the storage device, the first storage address Is the MM 10 address.
- the CPU 202 registers the acquired first storage address in the network adapter. Registering the first storage address in the network adapter, and the network adapter 205 can release the first storage address on the PCIe bus when receiving the data request of the second data processing system carrying the first storage address.
- the PCIe controller 203 when receiving the data request sent by the network adapter 205 carrying the first storage address, acquires the request, and sends the requested data to the network adapter 205, or sends the second data processing system received by the network adapter. The data is written to a location corresponding to the first storage address in the PCIe storage device.
- the data processing system 200 further includes a sending unit 207, where the sending unit 207 is configured to send the first storage address acquired by the management unit 200 to the second data processing. system.
- the PCIe controller 203 acquires a data request that is sent by the network adapter 205 and carries the first storage address, and the address translation unit 2031 acquires data of the second storage address, and returns the acquired data.
- the network adapter, or data sent by the network adapter, is written to the second storage address.
- the data processing system 200 and other data processing systems communicate through the network to realize data transmission between different data processing systems.
- the network includes, but is not limited to, Ethernet, a conversion cable technology supporting multiple concurrent links, an IB network or a FC (F iber channel, Fibre Channel) network, and the like.
- the foregoing second data processing system may be a system for implementing the solution described in the embodiments of the present invention, or may be a data processing system in the prior art.
- the second data processing system is a system implementing the solution of the embodiment of the present invention, the second data processing system can also implement direct data reading or writing of the network adapter to the PC I e storage device.
- the management unit 203 further includes global base address acquisition.
- the global base address obtaining unit 2033 is configured to acquire the second data request according to the unique identifier of the PC Ie storage device carried in the second data request, when the data processing system receives the second data request a base address of the requested data in a BAR of the second data processing system, the second data request is to send data to or read data from the second data processing system;
- the global storage address obtaining unit 2034 is configured to acquire, according to the base address in the BAR of the second data processing system and the LBA address carried in the second data request, the second data request requesting The data is at the MN 10 address of the second data processing system.
- the data conversion unit in the PCIe controller of the second data processing system according to the second data request sent by the data processing system, the requested data is in the address of the second data processing system Obtaining a physical address or a logical address of the data requested by the second data request in the second data processing system, where the physical address is a linear continuous address capable of directly reading data, and the logical address is nonlinear A linearly sorted address of consecutive physical addresses.
- the management unit 203 also stores the correspondence between the unique identifier of the PC I e storage device in the second data processing system and the base address in the BAR of the PCIe storage device, and the data processing system 200 receives the orientation.
- the BAR of the second data processing system capable of acquiring the data requested by the second data request is acquired.
- the base address in the medium and further obtain the MMI0 address of the data requested by the second data request, thereby realizing direct transmission of data of the two data processing systems, without the participation of the CPU and the memory, saving CPU and memory resources, and being quite high
- the efficiency of data transmission For example, the data transmission between the first data processing system and the second data processing system shown in Fig. 8 is realized, wherein the black dotted line portion is the trajectory and flow direction of data transmission between the two data processing systems.
- the data processing system 200 of the embodiment of the present invention can also communicate with multiple data processing systems.
- the network is connected and the data is transmitted.
- the data processing system 200 can obtain a correspondence between a unique identifier of a PCIe storage device sent by another plurality of data processing systems and a base address in a BAR of the PCIe storage device to implement direct transmission between the data processing systems.
- the correspondence between the unique identifier of the PCIe storage device and the base address in the BAR of the PCIe storage device may also be requested from other multiple data processing systems and saved to enable direct transfer between the data processing systems.
- the changed data processing system can transmit the changed correspondence to the data processing system 200.
- FIG. 4 is a schematic flowchart diagram of a data processing method according to an embodiment of the present invention.
- the data processing method of the embodiment of the present invention is applied to a data processing system including a central processing unit CPU, a memory, a fast peripheral component interconnection standard PCIe controller, a network adapter, and at least one storage device, wherein the method includes:
- Step 400 When the data processing system receives the data request, obtain the first address information carried by the data request.
- Step 402 Acquire, according to the first address information, a first storage address of the requested data in the PCIe storage device, where the first storage address is an MMI0 address;
- Step 404 The network adapter directly reads data from the PC I e storage device according to the first storage address and transmits the data to the second data processing system, or directly receives data received from the second data processing system.
- the second data processing system is a data processing system that communicates with the first data processing over a network.
- Step 400 and step 402 of the foregoing method embodiment may be implemented by a management unit in the data processing system, and the management unit may be a module or a logical unit in the CPU, or may be in the data processing system.
- a specific implementation of the management unit is not limited in the embodiment of the present invention.
- the data processing method further includes: the PCIe storage device acquiring, according to the first storage address, the second storage address of the data requested by the data request in the PCIe storage device.
- the second storage address is a physical address or a logical address
- the physical address is a linear continuous address capable of directly reading data
- the logical address is an address obtained by linearly sorting non-linear continuous physical addresses.
- the PCIe controller configures a first BAR address register, where the first BAR address register stores a correspondence between the first storage address and the second storage address, where the second storage address is Linear continuous storage address. Or the PCIe controller is configured second.
- the second BAR address register storing a correspondence between the first storage address and a virtual address of the second storage address, the second storage address being a non-linear continuous storage address, the The virtual address of the two storage addresses is the address after the second storage address is linearly sorted.
- the linear continuous physical address in the PCIe storage device is associated with the MMI0 address, and the linearly-ordered physical address in the PCIe storage device is linearly sorted to correspond to the MMI0 address.
- the mapping between the MMI0 address and the accessible media address of the PCIe storage device is implemented, so that the network adapter directly maps to the PCIe accessible storage medium address corresponding to the MMI0 address according to the MM 10 address, and realizes direct data. Read and write.
- the data processing method further includes: the CPU assigning a unique identifier to each of the PC I e storage devices, where the unique identifier is used to identify each of the PCIe storage devices. And establishing, according to the unique identifier, a correspondence between the unique identifier and a base address in a BAR of the PC Ie storage device.
- the first address information includes a unique identifier of the PCIe storage device and a logical block address LBA.
- the unique identifier includes at least one of a Vender ID, a Device ID, or a hard disk serial number; or the unique identifier is obtained by performing hash processing on at least one of a Vender ID, a Device ID, or a hard disk serial number.
- logo is a registered trademark of Microsoft Corporation.
- the unique identifier of the PCIe storage device included in the data request message received by the data processing system is obtained by the unique identifier of the PCIe storage device and the base address in the BAR of the PCIe storage device.
- the base address in the BAR of the corresponding PCIe storage device is identified.
- the first address information in the data request received by the data processing system includes the unique identifier and the LBA address of the PCIe storage device, and the acquired base data and the LBA address in the BAR of the PCIe storage device can obtain the requested data. 10 addresses.
- the first storage address of the data of the acquisition request in the storage device includes:
- the CPU registers the acquired first storage address in the network adapter.
- the data processing system transmits the acquired first storage address to the second data processing system.
- the network adapter of the data processing system receives the data request sent by the second data processing system and carries the first storage address
- the network adapter is A received data request is posted on the PCIe bus, the request being received by the PCIe controller in the data processing system.
- the PCIe controller After acquiring the data request that is sent by the network adapter and carrying the first storage address, the PCIe controller acquires a corresponding second storage address according to the first storage address, and acquires data from the second storage address. Returning the acquired data to the network adapter, or writing data sent by the network adapter to the second storage address.
- the method further includes:
- the data processing system When the data processing system receives the second data request, acquiring, according to the unique identifier of the PCIe storage device carried in the second data request, the second data processing of the data requested by the second data request a base address in a BAR of the system, the second data request for transmitting data to or reading data from the second data processing system; according to the BAR of the second data processing system
- the base address and the LBA address carried in the second data request acquire the MMI 0 address of the data requested by the second data request in the second data processing system.
- the PCIe controller in the second data processing system acquires the data according to the requested data of the second data request sent by the data processing system at the address of the second data processing system
- the data requested by the second data request is at a physical address or a logical address of the second data processing system
- the physical address is a linear contiguous address capable of directly reading data
- the logical address is a non-linear continuous physical address The address after linear sorting.
- the data requested by the second data request can be obtained. Describe the base address in the BAR of the second data processing system, and further obtain the MN10 address of the data requested by the second data request, thereby realizing direct transmission of data of the two data processing systems, without the participation of the CPU and the memory, saving CPU and memory resources, and the efficiency of data transmission is quite high.
- FIG. 5 is a schematic diagram showing the basic hardware structure of an implementation of a data processing system according to an embodiment of the present invention.
- the data processing system includes CPU, memory, PCIe controller, PCIe It consists of basic hardware such as bus, PCIe storage device and network adapter.
- the network adapter in the data processing system is a PCIe bus technology-based network adapter supporting network direct access technology, and the network direct access technology includes but is not limited to RDMA (Remote Direct Data Access) technology.
- RDMA Remote Direct Data Access
- the network adapter includes but is not limited to an Ethernet card, an IB HCA (Infiniband Host Channel Adapter), a multi-concurrent link conversion cable technology host channel adapter, and an iWarp HCA (Internet wide area RDMA protocol Host Channel Adapter) RDMA protocol host channel adapter), Rapid 10 HCA (Rapid 10 Host Channel Adapter, host channel adapter supporting fast read and write), etc.;
- the PCIe bus based technology means that the uplink bus interface of the network adapter is PCIe.
- the data processing system further includes at least one PCIe bus-based PCIe storage device, including but not limited to memory, hard disk, SSD (Solid State Disk), Flash, NVRAM (Non-Volatile Random Access Memory, non- Volatile random access memory) and so on.
- PCIe bus-based PCIe storage device including but not limited to memory, hard disk, SSD (Solid State Disk), Flash, NVRAM (Non-Volatile Random Access Memory, non- Volatile random access memory) and so on.
- the implementation of the data processing system includes, but is not limited to, servers (rack type, turret type, chassis type, etc.), storage devices, or minicomputers.
- the data processing system of the embodiment of the present invention adds a management unit to the base of the hardware basic architecture shown in FIG. 5, and the management unit is configured to: when the data processing system receives the data request, according to the data request Carrying the first address information, acquiring a first storage address of the requested data in the PCIe storage device, where the first storage address is an MMI0 address.
- the management unit may be implemented in a CPU or in a separate hardware. The embodiment of the present invention does not limit the implementation of the management unit in the data processing system.
- the management unit acquires data of the data request received by the data processing system by using a correspondence between a base address in a BAR of the PCIe storage device and a unique identifier of the PCIe storage device.
- the address in the PCIe storage device is not limited to a base address in a BAR of the PCIe storage device.
- the unique identifier of the PCIe storage device is an identifier uniquely determined by the data processing system for each PCIe storage device to determine the PCIe storage device.
- the unique identifier may be a unique identifier assigned by the CPU. It can also be a unique identifier assigned by the management unit.
- the unique identifier may be a Vender ID (vender identity) of the PCIe storage device, a device ID (device identity), and a unique tag ID (such as a hard disk sequence) of the storage device attached to the PCIe storage device. Number) is a unique set of strings, or an identifier obtained by hashing the string.
- the embodiment of the present invention does not limit the composition of the unique identifier, as long as the storage device information inside the node can be uniquely marked.
- the base address in the BAR of the PCIe storage device is allocated when the data processing system is started. After the data processing system is started, the management unit acquires the base address in the BAR of each PCIe storage device. The management unit may acquire a base address in a BAR of each PCIe storage device and a unique identifier of the PCIe storage device by scanning all PCIe storage devices in the data processing system.
- the management unit records the base address in the BAR of each PCIe storage device and the unique identifier of the PCIe storage device according to the obtained base address in the BAR of each PCIe storage device and the unique identifier of the PCIe storage device. Correspondence between the two.
- the data request When the data processing system receives the data request, the data request carries the unique identifier of the PCIe storage device and the LBA (Logical Block Address) address where the requested data is located.
- the management unit acquires the PCIe storage of the requested data according to the unique identifier carried in the data request, and the correspondence between the base address in the BAR of each PCIe storage device and the unique identifier of the PCIe storage device.
- the base address in the BAR of the device; and the MMIO address of the requested data is obtained in conjunction with the LBA address.
- the management unit may obtain the start address and the end address of the MMIO address of the requested data in the following manner:
- Start address base address in the mapped BAR + ( LBA x block size)
- End address base address in the mapped BAR + ( ( LBA + number of blocks) X block size)
- the management unit is further configured to maintain a correspondence between a base address in a BAR of the PCIe storage device and a unique identifier of the PCIe storage device, and a base in the BAR of the PCIe storage device.
- the correspondence between the base address in the BAR of the PCIe storage device and the unique identifier of the PCIe storage device is refreshed.
- the base address in the BAR of the PCIe storage device may change due to the restart of the data processing system, that is, the base address in the BAR of the PCIe storage device allocated by the data processing system for each PCIe storage device may be The last time was different.
- the management unit needs to refresh the correspondence between the unique identifier of the PCIe storage device and the base address in the BAR of the PCIe storage device according to the unique identifier of each PCIe storage device.
- the management unit may also obtain a correspondence between a base address in a BAR of a PCIe storage device in another data processing system and a unique identifier of the PCIe storage device.
- the correspondence between the base address in the BAR of the PCIe storage device and the unique identifier of the PCIe storage device in the other data processing system enables the other data processing system to be obtained when reading and writing data to other data processing systems.
- the storage address of the PCIe storage device Obtaining the correspondence between the base address in the BAR of the PCIe storage device and the unique identifier of the PCIe storage device in the other data processing system, the data processing system may initiate a request to other data processing systems to obtain, or may receive other data. The processing system acquires after sending it actively.
- the embodiment of the present invention does not limit the manner of specific acquisition.
- FIG. 6 is a diagram showing an example of a correspondence between a PCIe storage device unique identifier stored by a management unit and a base address in a BAR of a PCIe storage device according to an embodiment of the present invention.
- the IP address is used to identify the unique address of the data processing system in the network in which it resides
- the GUID is the unique identifier of the PCIe storage device
- the mapping space start address is the PCIe storage device address in the CPU addressing space.
- the starting address of the mapping area; the logical address of the device refers to the logical starting address inside the storage device;
- the spatial length refers to the entire length of the region mapped by the system.
- the correspondence between the unique identifier of the PCIe storage device and the base address in the BAR of the PCIe storage device may be established by a driver of the PCIe storage device or may be established by the management unit. Specifically, the data processing system may be automatically loaded after being started by adding a script, or may be manually loaded.
- the driver of the PCIe storage device is established, the PCIe BAR address register is first configured by the driver of the PCIe storage device, and the management unit reads the configuration. Mapping relationship. When established by the management unit, it is implemented by configuring the registers of the PCIe storage device.
- the PCIe storage device of the embodiment of the present invention further includes an address translation unit, configured to acquire, according to the first storage address, the second storage address of the data requested by the data request at the PCIe storage device.
- the address translation unit may be implemented in a PCIe device controller to establish a correspondence between a media accessible address and a MMIO address in the PCIe storage device, and when receiving a data read/write request for the MMIO address And obtaining, according to the MMIO address, a media accessible address in the PCIe storage device corresponding to the MMIO address, for example, a storage address of the PCIe storage device, for reading and writing data.
- the address space of the accessible medium inside the PCIe NVRAM is directly mapped to the MMIO address space of the CPU, so that all read and write requests to the PCIe NVRAM are equivalent.
- Request for the MMIO address The MMIO address space corresponds to all accessible space of the NVRAM, that is, the correspondence between the media accessible address and the MMIO address in the PCIe storage device is established, and the corresponding NVRAM space can be directly accessed through the access of the MMIO address space.
- the address space of the accessible medium inside the PCIe NVRAM can be directly mapped to the MMIO address space of the CPU, which can be implemented by configuring the BAR address register.
- FIG. 7 is a schematic structural diagram of mapping between an internal address of a PCIe storage device and an MMIO address of a CPU in the first embodiment of the present invention.
- the PCIe End Point in the PCIe controller acts as an address translation unit, and configures the PCIe BAR address register to map the address in the PCIe storage device to the MMIO address of the CPU, so that the access to the CPU address (address available for DMA) can be Map directly to the address of the media accessible to the PCIe storage device.
- the mapping relationship between the media address and the MMIO address in the PCIe storage device is established, that is, the mapping relationship between the address space of the PCIe storage device and the MMIO address space in the CPU is established.
- the mapping relationship is established according to the physical address of the PCIe storage device. Whether it is a linear continuous storage address, the implementation is different.
- the address conversion unit configures the BAR address register to map a CPU address space that is consistent with the actual storage device size. Since the PCIe storage device address is linearly continuous, the PCIe storage The device address corresponds to the address of the mapped CPU address space. The operation of the CPU on this address space can be obtained by the address translation unit, which converts the received request into the physical address of the actual PCIe storage device.
- the address translation unit maps the linearly sorted storage address to the address of the CPU. That is, the BAR address register is configured to map a CPU address space that is consistent with the size of the virtual address, and the virtual address is a linearly sorted address of the non-linear contiguous storage address. For example, sectors, blocks, or other smallest unit units can be continuously tagged to form a "virtual" linear space, which is then mapped to the CPU address space.
- the management unit is capable of acquiring, by the data processing system, the correspondence between the base address in the BAR of the PCIe storage device and the unique identifier of the PCIe storage device established by the management unit in the data processing system Data requesting the MMIO address of the requested data, and initiating a data request to the PCIe controller according to the MMIO address; the address translation unit in the PCIe controller is based on the media accessible address and the MMIO address in the established PCIe storage device
- the correspondence between the obtained data and the media accessible address of the PCIe storage device that is, the actual physical address, through which the address can be accessed, can directly read data or write data.
- the network adapter in the data processing system can directly read data from or write data to the PCIe storage device according to the MMIO address.
- the problem of the memory and CPU resources consumption and the transmission delay problem when the related data on the PCIe storage device is first read into the physical memory and then transferred to the remote data processing system through the physical memory is avoided.
- the first data processing system needs to write the data of the offset address 0x1000 ⁇ 0x2000 of the PCIe SSD F to the position of 0x3000 ⁇ 0x4000 of the PCIe SSD G of the second data processing system as an example, and the data processing of the embodiment of the present invention is performed.
- the implementation of the system and data processing methods is described in detail.
- PCIe SSD is a specific implementation of PCIe storage devices.
- the first data processing system not only creates a correspondence between the unique identifier of the PCIe SSD and the base address in the BAR of the PCIe SSD, but also obtains the unique identifier of the PCIe SSD in the second data processing system.
- the correspondence between the base addresses in the BAR of the PCIe SSD will be described as an example.
- Step 500 The first data processing system acquires a base address in a BAR of the PCIe SSD; the first data processing system passes the unique identifier of the PCIe SSD in the management unit with the PCIe SSD
- the base address in the PCIe BAR of the PCIe SSD F is OxffOO 0000
- the MMIO address corresponding to the offset address Ox 1000 is obtained, for example, OxffDO 1000
- the PCIe BAR of the PCIe SSD G is also obtained.
- the base address OxfeOO 0000 in the middle obtains the MMIO address corresponding to the offset address 0x3000 ⁇ 0x4000, for example, OxfeOO 3000.
- Step 502 The network adapter of the first data processing system initiates a data write request.
- the network adapter of the first data processing system initiates a data request to the PCIe SSD F device through the new MMIO address OxffOO 1000 of the PCIe SSD F, and the PCIe SSD F device internal PCIe interface converts the MMIO address into an internally accessible storage medium address XXX.
- the results of XXX will vary depending on the mapping unit implementation.
- the PCIe SSD F reads the data corresponding to the storage medium address XXX. After the reading is completed, the data is sent to the network adapter through the PCIe bus. During the whole process, the CPU does not need to participate in the data transmission process, and does not need memory occupation.
- Step 504 The network adapter of the second data processing system receives the data sent by the network adapter of the first data processing system, and sends the data to the PCIe SSD G;
- the network adapter of the second data processing system initiates a write data request to the PCIe SSD G device via the new MMIO address OxfeOO 3000 of the PCIe SSD G.
- the PCIe SSD G device PCIe interface converts the MMIO address to the internally accessible storage medium address YYY, which Result root of YYY
- the implementation of different mapping units will vary.
- PCIe SSD G writes the data transferred by the network adapter to the storage medium address YYY. During the whole process, the CPU does not need to participate in the data transmission process, and does not need memory occupation.
- the PCIe interface of the above PCIe SSD F device converts the MMIO address into an internally accessible storage medium address XXX
- the PCIe SSD G device PCIe interface converts the MMIO address into an internally accessible storage medium address YYY, which is for the second storage address.
- the internal PCIe interface of the PCIe SSD F device converts the MMIO address to the internally accessible storage medium address XXX, and also requires a conversion from a logical address to a non-linear contiguous address, where Let me repeat.
- the management unit of the second data processing system establishes the second data processing Corresponding relationship between the unique identifier of the PCIe SSD in the system and the base address in the BAR of the PCIe SSD, when the network adapter of the second data processing system receives the data read/write request sent by the first data processing system, according to the Corresponding relationship between the unique identifier of the PCIe SSD in the second data processing system and the base address in the BAR of the PCIe SSD, obtaining the base address in the BAR of the PCIe SSD to which the data is to be written, and directly writing the corresponding PCIe SSD .
- a PCIe storage device is taken as an example to describe an implementation manner of directly reading or writing data when transferring data between different data processing systems.
- storage devices such as SCM (Storage Class Memory), RRAM (Resistive Random Access Memory), NVDIMM (Non-Volatile DIMMs), etc.
- SCM Storage Class Memory
- RRAM Resistive Random Access Memory
- NVDIMM Non-Volatile DIMMs
- the storage device (NVDIMM ⁇ RRAM ⁇ SCM) registers its accessed space in the system during initialization. By accessing the registered address, the storage device can be accessed.
- the disclosed systems, devices, and methods may be implemented in other ways.
- the device embodiments described above are merely illustrative.
- the division of the unit is only a logical function division.
- there may be another division manner for example, multiple units or components may be combined or Can be integrated into another system, or some features can be ignored, or not executed.
- the coupling or direct coupling or communication connection between the various components shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, or an electrical, mechanical or other form of connection.
- the units described as separate components may or may not be physically separate, and the 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 objectives of the embodiments of the present invention.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or may be integrated by two or more units. In one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
- a number of instructions are included to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
- the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and the like, which can store program codes. .
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
- Computer And Data Communications (AREA)
Abstract
Description
Claims
Priority Applications (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13882622.7A EP2889780B1 (en) | 2013-10-29 | 2013-10-29 | Data processing system and data processing method |
JP2015544331A JP6014271B2 (ja) | 2013-10-29 | 2013-10-29 | データ処理システム及びデータ処理方法 |
CN201380002065.3A CN103946828B (zh) | 2013-10-29 | 2013-10-29 | 数据处理系统和数据处理的方法 |
EP16164174.1A EP3125126B1 (en) | 2013-10-29 | 2013-10-29 | Data processing system and data processing method |
PCT/CN2013/086170 WO2015061971A1 (zh) | 2013-10-29 | 2013-10-29 | 数据处理系统和数据处理的方法 |
CN201710044364.3A CN106933775B (zh) | 2013-10-29 | 2013-10-29 | 数据处理系统和数据处理的方法 |
ES16164174T ES2779551T3 (es) | 2013-10-29 | 2013-10-29 | Sistema de procesamiento de datos y método de procesamiento de datos |
KR1020147032585A KR101670342B1 (ko) | 2013-10-29 | 2013-10-29 | 데이터 처리 시스템 및 데이터 처리 방법 |
AU2013388031A AU2013388031C1 (en) | 2013-10-29 | 2013-10-29 | Data processing system and data processing method |
ES13882622.7T ES2628328T3 (es) | 2013-10-29 | 2013-10-29 | Sistema de procesamiento de datos y método de procesamiento de datos |
US14/567,656 US9459798B2 (en) | 2013-10-29 | 2014-12-11 | Data processing system and data processing method |
US14/704,735 US9329783B2 (en) | 2013-10-29 | 2015-05-05 | Data processing system and data processing method |
US15/280,700 US9678918B2 (en) | 2013-10-29 | 2016-09-29 | Data processing system and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2013/086170 WO2015061971A1 (zh) | 2013-10-29 | 2013-10-29 | 数据处理系统和数据处理的方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/567,656 Continuation US9459798B2 (en) | 2013-10-29 | 2014-12-11 | Data processing system and data processing method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015061971A1 true WO2015061971A1 (zh) | 2015-05-07 |
Family
ID=51193110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2013/086170 WO2015061971A1 (zh) | 2013-10-29 | 2013-10-29 | 数据处理系统和数据处理的方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US9459798B2 (zh) |
EP (2) | EP3125126B1 (zh) |
JP (1) | JP6014271B2 (zh) |
KR (1) | KR101670342B1 (zh) |
CN (2) | CN103946828B (zh) |
AU (1) | AU2013388031C1 (zh) |
ES (2) | ES2779551T3 (zh) |
WO (1) | WO2015061971A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017021789A (ja) * | 2015-07-13 | 2017-01-26 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103946828B (zh) * | 2013-10-29 | 2017-02-22 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
US10162786B2 (en) | 2014-12-01 | 2018-12-25 | SK Hynix Inc. | Storage node based on PCI express interface |
US9792245B2 (en) * | 2014-12-09 | 2017-10-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Peripheral component interconnect express (PCIe) devices with efficient memory mapping by remapping a plurality of base address registers (BARs) |
CN104657299B (zh) * | 2015-02-26 | 2018-01-12 | 新华三技术有限公司 | Ict融合设备及其存储板管理方法和装置 |
US20160283156A1 (en) * | 2015-03-23 | 2016-09-29 | Kabushiki Kaisha Toshiba | Key-value drive hardware |
CN105183684B (zh) * | 2015-09-09 | 2019-01-25 | 成都思鸿维科技有限责任公司 | 数据处理装置、方法及系统 |
CN105404597B (zh) * | 2015-10-21 | 2018-10-12 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
US10054636B2 (en) | 2015-10-23 | 2018-08-21 | Intel IP Corporation | Device, system and method to support communication of test, debug or trace information with an external input/output interface |
CN106713183B (zh) * | 2015-10-30 | 2020-03-17 | 新华三技术有限公司 | 网络设备的接口板以及该网络设备和报文转发方法 |
CN105353989B (zh) * | 2015-11-19 | 2018-12-28 | 华为技术有限公司 | 存储数据访问方法及相关的控制器、设备、主机和系统 |
CN107533537B (zh) * | 2016-01-29 | 2021-02-26 | 慧与发展有限责任合伙企业 | 存储系统、用于存储的方法和非暂时性计算机可读介质 |
US10140057B2 (en) * | 2016-02-18 | 2018-11-27 | Micron Technology, Inc. | Apparatuses and methods for multiple address registers for a solid state device |
US10042720B2 (en) | 2016-02-22 | 2018-08-07 | International Business Machines Corporation | Live partition mobility with I/O migration |
US10002018B2 (en) | 2016-02-23 | 2018-06-19 | International Business Machines Corporation | Migrating single root I/O virtualization adapter configurations in a computing system |
US10042723B2 (en) | 2016-02-23 | 2018-08-07 | International Business Machines Corporation | Failover of a virtual function exposed by an SR-IOV adapter |
US10025584B2 (en) | 2016-02-29 | 2018-07-17 | International Business Machines Corporation | Firmware management of SR-IOV adapters |
CN105824761B (zh) * | 2016-03-10 | 2019-01-08 | 珠海豹趣科技有限公司 | 一种物理内存信息获取方法及装置 |
CN105893289B (zh) * | 2016-03-30 | 2019-02-12 | 华为技术有限公司 | 内存映射输入输出地址分配方法、装置及计算机系统 |
US10409754B2 (en) * | 2016-04-28 | 2019-09-10 | Smart Modular Technologies, Inc. | Interconnected memory system and method of operation thereof |
CN106020731B (zh) * | 2016-05-23 | 2019-07-02 | 中国科学技术大学 | 存储设备、存储设备阵列和网络适配器 |
US20170351639A1 (en) * | 2016-06-06 | 2017-12-07 | Cisco Technology, Inc. | Remote memory access using memory mapped addressing among multiple compute nodes |
CN112099941B (zh) * | 2016-08-26 | 2021-08-03 | 华为技术有限公司 | 实现硬件加速处理的方法、设备和系统 |
US9785451B1 (en) | 2016-10-21 | 2017-10-10 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9720863B1 (en) * | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating MMIO from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9715469B1 (en) | 2016-10-21 | 2017-07-25 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
US9740647B1 (en) | 2016-10-21 | 2017-08-22 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9720862B1 (en) | 2016-10-21 | 2017-08-01 | International Business Machines Corporation | Migrating interrupts from a source I/O adapter of a computing system to a destination I/O adapter of the computing system |
US9760512B1 (en) | 2016-10-21 | 2017-09-12 | International Business Machines Corporation | Migrating DMA mappings from a source I/O adapter of a source computing system to a destination I/O adapter of a destination computing system |
EP3926454A1 (en) | 2016-11-26 | 2021-12-22 | Huawei Technologies Co., Ltd. | Data migration method, host, and solid-state storage device |
CN107273213B (zh) * | 2017-06-27 | 2024-04-19 | 联想(北京)有限公司 | 一种计算控制方法、网卡及电子设备 |
US10387347B2 (en) * | 2017-08-18 | 2019-08-20 | Quanta Computer Inc. | Method to locate SAS JBOD cable routing |
CN107579892A (zh) * | 2017-08-29 | 2018-01-12 | 郑州云海信息技术有限公司 | 一种基于RapidIO协议和RDMA技术的通信方法 |
KR101980190B1 (ko) | 2017-09-25 | 2019-05-21 | 서울대학교산학협력단 | 입출력 디바이스 제어 장치, 그것의 동작 방법 및 입출력 디바이스 제어 장치 드라이버의 동작 방법 |
CN107844435A (zh) * | 2017-11-08 | 2018-03-27 | 北京锐安科技有限公司 | 一种缓存系统、方法及装置 |
US11321249B2 (en) * | 2018-03-26 | 2022-05-03 | Samsung Electronics Co., Ltd. | Mechanism to autonomously manage SSDS in an array |
US10838763B2 (en) * | 2018-07-17 | 2020-11-17 | Xilinx, Inc. | Network interface device and host processing device |
CN110764688B (zh) * | 2018-07-27 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 对数据进行处理的方法和装置 |
TWI673610B (zh) * | 2018-11-09 | 2019-10-01 | 財團法人資訊工業策進會 | 遠端工作系統及其工作方法 |
CN111724295B (zh) * | 2019-03-18 | 2024-05-14 | 芯原微电子(成都)有限公司 | 一种外部存储器的协同访问方法及系统、协同访问架构 |
CN113468090B (zh) * | 2020-03-30 | 2024-04-05 | 浙江宇视科技有限公司 | 一种PCIe通信方法、装置、电子设备及可读存储介质 |
CN111586034B (zh) * | 2020-04-30 | 2022-06-03 | 龙芯中科技术股份有限公司 | 数据处理系统及方法 |
CN112445735A (zh) * | 2020-11-20 | 2021-03-05 | 深圳致星科技有限公司 | 一种联邦学习数据传输方法、计算机设备、系统及存储介质 |
CN116601616A (zh) * | 2020-12-21 | 2023-08-15 | 华为技术有限公司 | 一种数据处理装置、方法及相关设备 |
WO2023000784A1 (zh) * | 2021-07-23 | 2023-01-26 | 华为技术有限公司 | 数据访问方法以及相关设备 |
CN115048227B (zh) * | 2022-08-15 | 2022-12-09 | 阿里巴巴(中国)有限公司 | 数据处理方法、系统及存储介质 |
CN117453117A (zh) * | 2022-08-17 | 2024-01-26 | 北京超弦存储器研究院 | 一种网络存储处理设备、存储服务器、数据存储及读取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149736A (zh) * | 1995-06-05 | 1997-05-14 | 北京航空航天大学 | 一种分布式存储器共享管理方法 |
WO2005098644A2 (en) * | 2004-04-05 | 2005-10-20 | Ammasso, Inc. | Placement of sharing physical buffer lists in rdma communication |
CN101751371A (zh) * | 2008-12-10 | 2010-06-23 | 辉达公司 | 在不同种类处理单元中对非统一存储器访问的芯片组支持 |
CN102439983A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 一种数据快速分发方法和装置 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6457121B1 (en) * | 1999-03-17 | 2002-09-24 | Intel Corporation | Method and apparatus for reordering data in X86 ordering |
US20010047473A1 (en) * | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
US7711793B1 (en) * | 2001-07-17 | 2010-05-04 | Adaptec, Inc. | No single point of failure RAID box using SATA drives |
JP2003280825A (ja) * | 2002-03-22 | 2003-10-02 | Fujitsu Ltd | ストレージシステム |
JP2005149082A (ja) * | 2003-11-14 | 2005-06-09 | Hitachi Ltd | ストレージ制御装置、及びストレージ制御装置の制御方法 |
US7269708B2 (en) * | 2004-04-20 | 2007-09-11 | Rambus Inc. | Memory controller for non-homogenous memory system |
US20080098197A1 (en) * | 2006-10-20 | 2008-04-24 | International Business Machines Corporation | Method and System For Address Translation With Memory Windows |
US8112582B2 (en) * | 2008-03-10 | 2012-02-07 | Lsi Corporation | Redundant array of inexpensive disks configuration using simple network management protocol |
JP2010039644A (ja) * | 2008-08-01 | 2010-02-18 | Nec Electronics Corp | 周辺デバイスの動作検証方法、デバイスドライバ・プログラム及びアプリケーション・プログラム |
US8838850B2 (en) * | 2008-11-17 | 2014-09-16 | Violin Memory, Inc. | Cluster control protocol |
CN101819543A (zh) * | 2010-02-01 | 2010-09-01 | 成都市华为赛门铁克科技有限公司 | 快照数据处理方法和系统以及存储设备 |
US8799519B2 (en) * | 2011-06-27 | 2014-08-05 | Via Technologies, Inc. | Network-to-network bridge |
US8914556B2 (en) * | 2011-09-30 | 2014-12-16 | Intel Corporation | Direct I/O access for system co-processors |
US9467511B2 (en) * | 2012-01-17 | 2016-10-11 | Intel Corporation | Techniques for use of vendor defined messages to execute a command to access a storage device |
US8554963B1 (en) * | 2012-03-23 | 2013-10-08 | DSSD, Inc. | Storage system with multicast DMA and unified address space |
US8645594B2 (en) * | 2012-06-29 | 2014-02-04 | Intel Corporation | Driver-assisted base address register mapping |
US10496152B2 (en) * | 2013-09-27 | 2019-12-03 | Intel Corporation | Power control techniques for integrated PCIe controllers |
CN103946828B (zh) * | 2013-10-29 | 2017-02-22 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
-
2013
- 2013-10-29 CN CN201380002065.3A patent/CN103946828B/zh active Active
- 2013-10-29 JP JP2015544331A patent/JP6014271B2/ja active Active
- 2013-10-29 KR KR1020147032585A patent/KR101670342B1/ko active IP Right Grant
- 2013-10-29 AU AU2013388031A patent/AU2013388031C1/en active Active
- 2013-10-29 EP EP16164174.1A patent/EP3125126B1/en active Active
- 2013-10-29 CN CN201710044364.3A patent/CN106933775B/zh active Active
- 2013-10-29 WO PCT/CN2013/086170 patent/WO2015061971A1/zh active Application Filing
- 2013-10-29 ES ES16164174T patent/ES2779551T3/es active Active
- 2013-10-29 ES ES13882622.7T patent/ES2628328T3/es active Active
- 2013-10-29 EP EP13882622.7A patent/EP2889780B1/en active Active
-
2014
- 2014-12-11 US US14/567,656 patent/US9459798B2/en active Active
-
2015
- 2015-05-05 US US14/704,735 patent/US9329783B2/en active Active
-
2016
- 2016-09-29 US US15/280,700 patent/US9678918B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1149736A (zh) * | 1995-06-05 | 1997-05-14 | 北京航空航天大学 | 一种分布式存储器共享管理方法 |
WO2005098644A2 (en) * | 2004-04-05 | 2005-10-20 | Ammasso, Inc. | Placement of sharing physical buffer lists in rdma communication |
CN101751371A (zh) * | 2008-12-10 | 2010-06-23 | 辉达公司 | 在不同种类处理单元中对非统一存储器访问的芯片组支持 |
CN102439983A (zh) * | 2011-10-27 | 2012-05-02 | 华为技术有限公司 | 一种数据快速分发方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP2889780A4 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017021789A (ja) * | 2015-07-13 | 2017-01-26 | 三星電子株式会社Samsung Electronics Co.,Ltd. | 複数のアクセスモードを支援する不揮発性メモリを含むシステム及びそのアクセス方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2889780B1 (en) | 2017-04-12 |
US20150120969A1 (en) | 2015-04-30 |
CN106933775B (zh) | 2021-08-20 |
JP6014271B2 (ja) | 2016-10-25 |
AU2013388031B2 (en) | 2016-02-04 |
ES2628328T3 (es) | 2017-08-02 |
AU2013388031A1 (en) | 2015-05-14 |
US9329783B2 (en) | 2016-05-03 |
ES2779551T3 (es) | 2020-08-18 |
US9678918B2 (en) | 2017-06-13 |
EP3125126A1 (en) | 2017-02-01 |
KR101670342B1 (ko) | 2016-10-28 |
CN103946828B (zh) | 2017-02-22 |
EP2889780A4 (en) | 2015-07-01 |
EP3125126B1 (en) | 2020-01-01 |
KR20150070046A (ko) | 2015-06-24 |
US20150234597A1 (en) | 2015-08-20 |
EP2889780A1 (en) | 2015-07-01 |
CN106933775A (zh) | 2017-07-07 |
US9459798B2 (en) | 2016-10-04 |
CN103946828A (zh) | 2014-07-23 |
US20170017607A1 (en) | 2017-01-19 |
AU2013388031C1 (en) | 2016-04-28 |
JP2015537310A (ja) | 2015-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015061971A1 (zh) | 数据处理系统和数据处理的方法 | |
TWI765138B (zh) | 主機系統及其方法和加速模組 | |
US10241951B1 (en) | Device full memory access through standard PCI express bus | |
US11409465B2 (en) | Systems and methods for managing communication between NVMe-SSD storage device(s) and NVMe-of host unit | |
US9696942B2 (en) | Accessing remote storage devices using a local bus protocol | |
US9727503B2 (en) | Storage system and server | |
US10031857B2 (en) | Address translation services for direct accessing of local memory over a network fabric | |
EP3028162B1 (en) | Direct access to persistent memory of shared storage | |
US9304896B2 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
US9229892B2 (en) | Shared peripheral component interconnect express (PCIe) end point system with a PCIe switch and method for initializing the same | |
JP2019091494A (ja) | エミュレートされたエンドポイントコンフィグレーション | |
WO2023103704A1 (zh) | 数据处理方法、存储介质和处理器 | |
CN109478171A (zh) | 提高openfabrics环境中的吞吐量 | |
US20150177985A1 (en) | Information processing device | |
US8375156B2 (en) | Intelligent PCI-express transaction tagging | |
US9424227B2 (en) | Providing byte enables for peer-to-peer data transfer within a computing environment | |
US20160275038A1 (en) | Method for communication using pci express dedicated communication module and network device including the same | |
CN110737396A (zh) | 数据复制的方法、设备和计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
REEP | Request for entry into the european phase |
Ref document number: 2013882622 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013882622 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013388031 Country of ref document: AU |
|
ENP | Entry into the national phase |
Ref document number: 20147032585 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2015544331 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13882622 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |