WO2015061971A1 - 数据处理系统和数据处理的方法 - Google Patents

数据处理系统和数据处理的方法 Download PDF

Info

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
Application number
PCT/CN2013/086170
Other languages
English (en)
French (fr)
Inventor
何剑
施广宇
倪小珂
埃吉⋅诺伯特
李显才
刘毓
刘华伟
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to CN201710044364.3A priority Critical patent/CN106933775B/zh
Priority to KR1020147032585A priority patent/KR101670342B1/ko
Priority to JP2015544331A priority patent/JP6014271B2/ja
Priority to CN201380002065.3A priority patent/CN103946828B/zh
Priority to EP16164174.1A priority patent/EP3125126B1/en
Priority to PCT/CN2013/086170 priority patent/WO2015061971A1/zh
Priority to EP13882622.7A priority patent/EP2889780B1/en
Priority to ES16164174T priority patent/ES2779551T3/es
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to AU2013388031A priority patent/AU2013388031C1/en
Priority to ES13882622.7T priority patent/ES2628328T3/es
Priority to US14/567,656 priority patent/US9459798B2/en
Priority to US14/704,735 priority patent/US9329783B2/en
Publication of WO2015061971A1 publication Critical patent/WO2015061971A1/zh
Priority to US15/280,700 priority patent/US9678918B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance 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

本发明实施例提供了一种数据处理系统和数据处理方法。通过获取数据请求的MMIO地址,该MMIO地址能够直接获取PCIe存储设备中存储的数据,网络适配器根据该MMIO地址,能够直接从所述数据处理系统的PCIe存储设备中读取数据并传送给第二数据处理系统,或将从所述第二数据处理系统接收的数据直接写入所述PCIe存储设备中。使得所述处理系统能够实现在网络通信的两个数据处理系统间传递数据时,数据的传输从PCIe存储设备直接到网络适配器之间传递,不需要经过内存。降低了在两个数据处理系统件传递数据时对内存、CPU等资源的占用率,并提高了数据传输的效率。

Description

数据处理系统和数据处理的方法 技术领域 本发明涉及信息技术领域, 尤其涉及一种不同数据处理系统之间数据 传输的设备、 方法和系统。
背景技术 在大数据的潮流下, 通常会采用多副本的方式来保障数据的可靠性。 而采用多副本方式, 往往会导致节点间的数据迁移操作非常多。
RDMA ( Remote Direct Memory Access, 远程直接数据存取 )技术是 一种实现网络上两个节点间数据读取的技术。 RDMA通过网络把数据直接 传入计算机的内存, 将数据从本地节点快速移动到远程节点内存中, 而不 对操作系统造成任何影响。
在网络上传输的 RDMA信息包含目标虚拟地址、内存钥匙和数据本身. 请求完成既可以完全在用户空间中处理 (通过轮询用户级完成排列) , 或者 在应用一直睡眠到请求完成时的情况下通过内核内存处理。 RDMA操作使 应用可以从一个远程应用的内存中读数据或向这个内存写数据。 目标主机 的网络适配器确认内存钥匙, 直接将数据写人应用緩存中。
RDMA要求传输的数据必须要通过内存才能进行两个相互通信的服务 器之间的数据传输。 如果不通过内存的话, 则无法进行数据传输。 导致数 据传输的时延和内存占用率较高。 发明内容
本发明实施例提供一种系统和数据处理方法, 以提高在两个数据处理 系统之间传输数据时的效率和设备利用率。
本发明实施例提供了一种数据处理系统, 包括中央处理器 CPU、 内存、 快捷外围部件互连标准 PCIe控制器、 网络适配器和至少一个 PCIe存储设 备, 其特征在于, 还包括:
管理单元, 用于在所述数据处理系统接收数据请求时, 根据所述数据 请求中携带的第一地址信息, 获取请求的数据在所述 PCIe存储设备中的第 一存储地址, 所述第一存储地址是内存映射输入输出 MM 10地址;
所述网络适配器, 根据所述第一存储地址从所述 PCIe存储设备直接读 取数据传送给第二数据处理系统, 或将从所述第二数据处理系统接收的数 据直接写入所述 PCIe存储设备中, 所述第二数据处理系统是与所述第一数 据处理系统通过网络通信的数据处理系统。
可选的, 所述 PCIe存储设备包括地址转换单元, 用于根据所述第一存 储地址获取所述数据请求所请求的数据在所述 PC I e存储设备的第二存储地 址。
可选的, 所述第二存储地址是物理地址或逻辑地址,所述物理地址是能 够直接读取数据的线性连续地址, 所述逻辑地址是对非线性连续的物理地 址进行线性排序后的地址。
可选的, 所述地址转换单元还用于配置第一基地址寄存器 BAR, 所述第 一 BAR地址寄存器存储所述第一存储地址与所述第二存储地址之间的对应 关系, 所述第二存储地址是线性连续的存储地址。
可选的, 所述地址转换单元还用于配置第二 BAR地址寄存器, 所述第 二 BAR地址寄存器存储所述第一存储地址与所述第二存储地址的虚拟地址 之间的对应关系, 所述第二存储地址是非线性连续的存储地址, 所述第二 存储地址的虚拟地址是所述第二存储地址经过线性排序后的地址。
可选的, 所述 CPU为每个所述 PCIe存储设备分配一个唯一标识, 所述 唯一标识用于标识每个所述 PCIe存储设备。
可选的, 所述第一地址信息包括所述 PCIe存储设备的唯一标识和逻辑 区块地址 LBA。
可选的, 所述管理单元还用于建立所述唯一标识与所述 PCIe存储设备 的 BAR中的基地址之间的对应关系。
所述唯一标识包括供应商识别码 Vender ID、 设备识别码 Device ID或 硬盘序列号中的至少一个; 或者所述唯一标识是对 Vender ID、 Device ID或 硬盘序列号中的至少一个进行哈希处理后得到的标识。
可选的, 所述管理单元包括基地址获取单元和存储地址获取单元: 所述基地址获取单元, 用于在所述数据处理系统接收到与其通过网络 通信的第二数据处理系统的第一数据请求时, 根据所述第一数据请求中携 带的 PCIe存储设备的唯一标识, 获取请求的数据的 BAR中的基地址; 存储地址获取单元, 用于根据所述 BAR 中的基地址以及所述第一数据 请求携带的 LB A地址, 获取请求的数据在所述 PC I e存储设备中的第一存储 地址, 所述第一存储地址是 MM 10地址。
可选的, 所述 CPU将获取到的所述第一存储地址注册在所述网络适配 器中。
可选的, 所述数据处理系统还包括发送单元, 所述发送单元用于将所 述管理单元获取的所述第一存储地址发送给所述第二数据处理系统。
可选的 , 所述 PCIe控制器获取所述网络适配器发出的携带所述第一存 储地址的数据请求, 所述地址转换单元获取第二存储地址的数据, 并将获 取到的数据返回给所述网络适配器, 或将网络适配器发送的数据写入所述 第二存储地址。
可选的, 所述管理单元还包括全局基地址获取单元和全局存储地址获 取单元:
所述全局基地址获取单元, 用于在所述数据处理系统接收到第二数据 请求时, 根据所述第二数据请求中携带的 PCIe存储设备的唯一标识, 获取 所述第二数据请求所请求的数据的在所述第二数据处理系统的 BAR 中的基 地址, 所述第二数据请求是向所述第二数据处理系统发送数据或从所述第 二数据处理系统读取数据的请求; 所述全局存储地址获取单元, 用于根据所述第二数据处理系统的 BAR 中的基地址以及所述第二数据请求中携带的所述 LBA地址, 获取所述第二 数据请求所请求的数据在所述第二数据处理系统的固 10地址。
可选的, 所述第二数据处理系统的 PCIe控制器中的数据转换单元, 根 据所述数据处理系统发送的所述第二数据请求所请求的数据在所述第二数 据处理系统的固 10地址, 获取所述第二数据请求所请求的数据在所述第二 数据处理系统的物理地址或逻辑地址, 所述物理地址是能够直接读取数据 的线性连续地址, 所述逻辑地址是对非线性连续的物理地址进行线性排序 后的地址。
本发明实施例还提供了一种
数据处理方法, 所述方法应用于包括中央处理器 CPU、 内存、 快捷外围 部件互连标准 PCIe控制器、 网络适配器和至少一个存储设备的数据处理系 统中, 所述方法包括:
在所述数据处理系统接收到数据请求时, 获取所述数据请求携带的第 一地址信息;
根据所述第一地址信息, 获取请求的数据在所述 PC I e存储设备中的第 一存储地址, 所述第一存储地址是 MM 10地址;
所述网络适配器根据所述第一存储地址直接从所述 PCIe存储设备读取 数据传送给所述第二数据处理系统, 或将从所述第二数据处理系统接收的 数据直接写入所述 PCIe存储设备中, 所述第二数据处理系统是与所述第一 数据处理系统通过网络通信的数据处理系统。
可选的, 所述 PCIe存储设备根据所述第一存储地址获取所述数据请求 所请求的数据在所述 PCIe存储设备的第二存储地址。
可选的, 所述第二存储地址是物理地址或逻辑地址,所述物理地址是能 够直接读取数据的线性连续地址, 所述逻辑地址是对非线性连续的物理地 址进行线性排序后的地址。 可选的, 所述方法还包括:
所述 PCIe控制器配置第一 BAR地址寄存器, 所述第一 BAR地址寄存器 存储所述第一存储地址与所述第二存储地址之间的对应关系, 所述第二存 储地址是线性连续的存储地址。
可选的, 所述方法还包括:
所述 PCIe控制器配置第二 BAR地址寄存器, 所述第二 BAR地址寄存器 存储所述第一存储地址与所述第二存储地址的虚拟地址之间的对应关系, 所述第二存储地址是非线性连续的存储地址, 所述第二存储地址的虚拟地 址是所述第二存储地址经过线性排序后的地址。
可选的, 所述 CPU为每个所述 PCIe存储设备分配一个唯一标识, 所述 唯一标识用于标识每个所述 PCIe存储设备。
可选的, 所述第一地址信息包括所述 PCIe存储设备的唯一标识和逻辑 区块地址 LBA。
可选的, 所述方法还包括:
建立所述唯一标识与所述 PCIe存储设备的 BAR中的基地址之间的对应 关系。
可选的,所述唯一标识包括供应商识别码 Vender ID、设备识别码 Device ID或硬盘序列号中的至少一个; 或者所述唯一标识是对 Vender ID、 Device ID或硬盘序列号中的至少一个进行哈希处理后得到的标识。
可选的, 所述获取请求的数据在所述存储设备中的第一存储地址包括: 根据所述第一数据请求中携带的 PCIe存储设备的唯一标识, 获取请求 的数据的 BAR中的基地址;
根据所述 BAR中的基地址以及所述第一数据请求中的 LBA地址, 获取 请求的数据在所述 PCIe存储设备中的第一存储地址, 所述第一存储地址是 MM 10地址。
可选的, 所述 CPU将获取到的所述第一存储地址注册在所述网络适配 器中。
可选的, 所述方法还包括:
所述数据处理系统将获取到的所述第一存储地址发送给所述第二数据 处理系统。
可选的 , 所述 PCIe控制器获取所述网络适配器发出的携带所述第一存 储地址的数据请求, 并获取第二存储地址的数据, 将获取到的数据返回给 所述网络适配器, 或将网络适配器发送的数据写入所述第二存储地址。
可选的, 所述方法还包括:
在所述数据处理系统接收到第二数据请求时, 根据所述第二数据请求 中携带的 PCIe存储设备的唯一标识, 获取所述第二数据请求所请求的数据 的在所述第二数据处理系统的 BAR 中的基地址, 所述第二数据请求用于向 所述第二数据处理系统发送数据或从所述第二数据处理系统读取数据的请 求;
根据所述第二数据处理系统的 BAR 中的基地址以及所述第二数据请求 中携带的所述 LBA地址, 获取所述第二数据请求所请求的数据在所述第二 数据处理系统的 MMI 0地址。
可选的, 所述第二数据处理系统中的 PCIe控制器, 根据所述数据处理 系统发送的所述第二数据请求所请求的数据在所述第二数据处理系统的 丽 10地址, 获取所述第二数据请求所请求的数据在所述第二数据处理系统 的物理地址或逻辑地址, 所述物理地址是能够直接读取数据的线性连续地 址, 所述逻辑地址是对非线性连续的物理地址进行线性排序后的地址。
本发明实施例提供的数据处理系统和数据处理方法, 通过获取数据请 求的 MMIO地址, 该 MMIO地址能够直接获取 PCIe存储设备中存储的数据, 网络适配器根据该 MMIO地址,能够直接从所述数据处理系统的 PCIe存储设 备中读取数据并传送给第二数据处理系统, 或将从所述第二数据处理系统 接收的数据直接写入所述 PCIe存储设备中。 使得所述处理系统能够实现在 网络通信的两个数据处理系统间传递数据时, 数据的传输从 PC I e存储设备 直接到网络适配器之间传递, 不需要经过内存。 降低了在两个数据处理系 统件传递数据时对内存、 CPU等资源的占用率, 并提高了数据传输的效率。 附图说明
实施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员 来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的 附图。
图 1 为现有技术中一种将远程节点存储设备中的数据搬到本地节点存 储设备中的流程示意图;
图 2为本发明实施例一种数据处理系统的结构示意图;
图 3为本发明实施例数据处理系统的一种具体实现结构示意图; 图 4为本发明实施例一种数据处理方法的流程示意图;
图 5 为本发明实施例数据处理系统一种实现方式的基本硬件结构示意 图;
图 6为本发明实施例管理单元存储的 PCIe存储设备唯一标识与 PCIe 存储设备的 BAR中的基地址之间的对应关系的示例图;
图 7为本发明实施例一中配置 PCIe存储设备内部地址到 CPU的 MMIO 地址之间映射的结构关系示意图;
图 8 为本发明实施例两个数据处理系统之间传递数据的数据流向示意 图。
具体实施方式 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进 行清楚、 完整地描述, 显然, 所描述的实施例是本发明的一部分实施例, 而不是全部实施例。 基于本发明中的实施例, 本领域普通技术人员在没有 做出创造性劳动的前提下所获得的所有其他实施例, 都应属于本发明保护 的范围。
图 1 为现有技术中一种将远程节点存储设备中的数据搬到本地节点存 储设备中的流程示意图。 其中节点可以是服务器等实现计算或存储功能的 设备。 当节点 Node 1需要通过网络从节点 Node2读取存储在 Node 2的存 储设备中的数据时, 其实现过程如下:
步骤 1 , Node 1的 CPU发起请求读取数据的远程连接;
步骤 2 , Node 1中的网络适配器将该请求报文发送至指定节点(即 Node 2 ) 的网络适配器;
步骤 3 , Node 2的网络适配器将该请求 ^艮文转发给 Node 2的 CPU; 步骤 4 , Node 2的 CPU解析请求>¾文后, 向其 PC Ie控制器发起数据请 求;
步骤 5 , PCIe控制器将请求的数据通过 DMA的方式读至内存; 步骤 6 , Node 2的 CPU将读到内存的请求数据发送到其网络适配器; 步骤 7 , Node 2的网络适配器将请求的数据通过网络发送至 Node 1的 网络适配;
步骤 8 , Node 1 的 CPU从其网络适配器读取请求的数据后将该数据緩 冲至内存;
步骤 9 , Nodel的 CPU将緩存在内存中的数据发送给 PCIe控制器以请 求将数据写入存储设备;
步骤 10 , Node 1的 PC Ie控制器将接收到的数据写入存储设备中。 从上述现有技术中数据远程读取的过程可以看出, 参与读取的节点的 CPU 参与到了数据读取与写入, 每个节点都需要申请一段内存空间来存储 CPU读取或是待写入的数据。 这样在整个数据搬移过程中, 由于数据搬移的 次数较多必然导致时延迟的增大, 同时 CPU与内存的占用率也居高不下。 为解决现有技术中远程数据迁移时时延大, CPU 和内存占用率高的问 题, 本发明实施例提供了一种数据处理系统, 以解决现有技术中数据处理 系统间远程读写数据时, 因占用内存和 CPU 资源带来的资源消耗和时延的 问题。
为解决现有技术中在跨节点数据传输时占用 CPU、 内存资源多, 传输 延迟大的问题, 本发明实施例提供了一种数据处理系统, 结合网络技术与
PCIe存储设备的 MMIO地址映射技术,使用节点间数据远程直接访问技术来 进行数据的直接拷贝, 拷贝过程中无须 CPU参与数据的搬移, 只需要 CPU 进行控制, 同时也不需要将数据预先搬移到内存处理, 这样就降低了 CPU 与内存的使用率; 同时减少了数据在 CPU和内存之间的迁移过程, 降低了 数据处理的时延, 提高了数据传输的效率。
参考图 2, 图 2为本发明实施例一种数据处理系统 200的结构示意图。 该 数据处理系统 200包括中央处理器 CPU 202、 内存 206、 快捷外围部件互连标 准 PCIe控制器 203、 网络适配器 205和至少一个 PCIe存储设备 204 , 其特征在 于, 还包括:
管理单元 201 , 用于在所述数据处理系统接收数据请求时, 根据所述数 据请求中携带的第一地址信息, 获取请求的数据在所述存储设备中的第一 存储地址, 所述第一存储地址是 MMIO ( Memory mapping I/O , 内存映射输 入输出 )地址;
所述网络适配器 205 , 根据所述第一存储地址从所述 PCIe存储设备 204 直接读取数据传送给第二数据处理系统, 或将从所述第二数据处理系统接 收的数据直接写入所述 PC Ie存储设备 204中, 所述第二数据处理系统是与所 述第一数据处理系统通过网络通信的数据处理系统。
通过上述数据处理系统中的管理单元 201获取数据请求的 MMIO地址, 该 MMIO地址能够直接获取 PCIe存储设备中存储的数据, 网络适配器 205根 据该 MMIO地址,能够直接从所述数据处理系统 200的 PCIe存储设备 204中读 取数据并传送给第二数据处理系统, 或将从所述第二数据处理系统接收的 数据直接写入所述 PCIe存储设备 204中; 使得所述处理系统能够实现在网络 通信的两个数据处理系统间传递数据时, 数据的传输从 PC I e存储设备直接 到网络适配器之间传递, 不需要经过内存。 降低了在两个数据处理系统件 传递数据时对内存、 CPU等资源的占用率, 并提高了数据传输的效率。
参考图 3 , 图 3为本发明实施例数据处理系统 200的一种具体实现结构示 意图。 如图 3所示, 所述 PCIe存储设备 203还包括地址转换单元 2031 , 用于 根据所述第一存储地址获取所述数据请求所请求的数据在所述 PCIe存储设 备的第二存储地址。 所述第二存储地址可以是物理地址或逻辑地址,所述物 理地址是能够直接读取数据的线性连续地址, 所述逻辑地址是对非线性连 续的物理地址进行线性排序后的地址。
通过所述地址转换单元 2031将第一存储地址 ,即 MMIO地址转换为第二 存储地址, 所述第二存储地址是所述 PCIe存储设备 203的可访问介质的物理 地址, 能够使得所述 PCIe存储设备在收到网络适配器 205的数据请求时, 根 据数据请求中携带的 MMIO地址 ,获取与该 MMIO地址对应的可访问介质的 物理地址, 并通过该物理地址读取数据。 在 PCIe存储设备中可访问介质地 址不是用 MMIO地址表示时,能够使得网络适配器获取所请求数据的可访问 介质地址, 实现了数据的直接读取和写入。
作为一种可选的实现方式, 所述地址转换单元 2031还用于配置第一基 地址寄存器 BAR ( base addres s reg i s ter , 基地址寄存器) , 所述第一 BAR 地址寄存器存储所述第一存储地址与所述第二存储地址之间的对应关系, 所述第二存储地址是线性连续的存储地址。 如果所述第二存储地址是非线 性连续的存储地址, 所述地址转换单元用于配置第二 BAR地址寄存器, 所 述第二 BAR地址寄存器存储所述第一存储地址与所述第二存储地址的虚拟 地址之间的对应关系, 所述第二存储地址的虚拟地址是所述第二存储地址 经过线性排序后的地址。
通过上述地址转换单元 2031配置 BAR地址寄存器, 将 PCIe存储设备 中的线性连续的物理地址与丽 10地址——对应, 将 PCIe存储设备中的非 线性连续的物理地址经过线性排序后的逻辑地址与 MMI0地址——对应, 实 现丽 10地址与 PCIe存储设备可访问介质地址的映射, 使得网络适配器根 据 MMI0地址, 通过 PCIe控制器映射到与 MMI0地址——对应的 PCIe可访 问存储介质地址, 实现了数据的直接读取和写入。
作为一种可选的实现方式, 所述 CPU 202为每个所述 PCIe存储设备分配 一个唯一标识, 所述唯一标识用于标识每个所述存储设备。 相应的, 所述 管理单元 201还用于建立所述唯一标识与所述 PCIe存储设备的 BAR中的基地 址之间的对应关系。 通过 PCIe存储设备的唯一标识与 PCIe存储设备的 BAR中 的基地址之间的对应关系, 管理单元 201能够根据数据处理系统 200接收到 的数据请求消息中包含的 PCIe存储设备的唯一标识, 获取与该唯一标识对 应的 PCIe存储设备的 BAR中的基地址。 由于所述数据处理系统接收的数据请 求中的第一地址信息包括 PCIe存储设备的唯一标识和 LBA ( Logical Block Address, 逻辑区块地址)地址, 管理单元 201通过获取到的 PCIe存储设备的 BAR中的基地址与 LBA地址, 能够获取请求数据的丽 10地址。
可选的 , 所述唯一标识包括 Vender ID、 Device ID或硬盘序列号中的至 少一个; 或者所述唯一标识是对 Vender ID、 Device ID或硬盘序列号中的至 少一个进行哈希处理后得到的标识。
作为一种可选的实现方式, 如图 3所示, 所述管理单元 201 包括基地 址获取单元 2011和存储地址获取单元 2012:
所述基地址获取单元 2011 , 用于在所述数据处理系统 200接收到与其 通过网络通信的第二数据处理系统的第一数据请求时, 根据所述第一数据 请求中携带的 PCIe存储设备 204的唯一标识, 获取请求的数据的 BAR中的 基地址; 存储地址获取单元 2012 , 用于根据所述 BAR中的基地址以及所述第一 数据请求中的 LBA地址, 获取请求的数据在所述存储设备中的第一存储地 址, 所述第一存储地址是 MM 10地址。
作为一种可选的实现方式,所述 CPU 202将获取到的所述第一存储地址 注册在所述网络适配器中。 将所述第一存储地址注册在所述网络适配器中, 网络适配器 205在接收到第二数据处理系统携带有第一存储地址的数据请 求时, 能够将所述第一存储地址在 PCIe总线上发布, PCIe控制器 203接收到 网络适配器 205发送的携带第一存储地址的数据请求时, 获取该请求, 并将 请求的数据发送给网络适配器 205, 或将网络适配器接收到的第二数据处理 系统发送的数据写入 PCIe存储设备中所述第一存储地址对应的位置。
作为一种可选的实现方式,所述数据处理系统 200还包括发送单元 207 , 所述发送单元 207用于将所述管理单元 200获取的所述第一存储地址发送 给所述第二数据处理系统。
可选的, 所述 PCIe控制器 203获取所述网络适配器 205发出的携带所述 第一存储地址的数据请求, 所述地址转换单元 2031获取第二存储地址的数 据, 并将获取到的数据返回给所述网络适配器, 或将网络适配器发送的数 据写入所述第二存储地址。
本发明实施例中, 所述数据处理系统 200 与其它的数据处理系统, 例 如第二数据处理系统, 通过网络通信, 实现数据在不同数据处理系统之间 的传输。 所述网络包括但不限于以太网、 支持多并发链接的转换线缆技术 IB 网络或 FC ( f iber channel , 光纤信道) 网络等。 上述第二数据处理系 统可以是实现本发明实施例所述方案的系统, 也可以现有技术中的数据处 理系统。 当所述第二数据处理系统为实现本发明实施例所述方案的系统时, 第二数据处理系统也能够实现网络适配器到 PC I e存储设备的直接数据读取 或写入。
作为一种可选的实现方案, 所述管理单元 203还包括全局基地址获取 单元 2033和全局存储地址获取单元 2034:
所述全局基地址获取单元 2033 , 用于在所述数据处理系统接收到第二 数据请求时, 根据所述第二数据请求中携带的 PC Ie存储设备的唯一标识, 获取所述第二数据请求所请求的数据的在所述第二数据处理系统的 BAR 中 的基地址, 所述第二数据请求是向所述第二数据处理系统发送数据或从所 述第二数据处理系统读取数据;
所述全局存储地址获取单元 2034 , 用于根据所述第二数据处理系统的 BAR中的基地址以及所述第二数据请求中携带的所述 LBA地址,获取所述第 二数据请求所请求的数据在所述第二数据处理系统的丽 10地址。
相应的, 所述第二数据处理系统的 PCIe控制器中的数据转换单元, 根 据所述数据处理系统发送的所述第二数据请求所请求的数据在所述第二数 据处理系统的丽 10地址, 获取所述第二数据请求所请求的数据在所述第二 数据处理系统的物理地址或逻辑地址, 所述物理地址是能够直接读取数据 的线性连续地址, 所述逻辑地址是对非线性连续的物理地址进行线性排序 后的地址。
上述实施例中, 管理单元 203还保存有第二数据处理系统中 PC I e存储设 备的唯一标识与 PCIe存储设备的 BAR中的基地址之间的对应关系, 在数据处 理系统 200接收到向所述第二数据处理系统发送数据或从所述第二数据处 理系统读取数据的第二数据请求时, 能够获取所述第二数据请求所请求的 数据的在所述第二数据处理系统的 BAR中的基地址, 并进一步获取第二数据 请求所请求数据的 MMI0地址, 从而实现两个数据处理系统数据的直接传输, 不需要 CPU和内存的参与, 节省了 CPU和内存的资源, 并挺高了数据传输的 效率。 例如图 8所示的第一数据处理系统与第二数据处理系统之间实现数据 的传输, 其中黑色虚线部分即为两个数据处理系统之间数据传输的轨迹和 流向。
本发明实施例的数据处理系统 200还可以与多个数据处理系统通过通 信网络连接, 并进行数据的传输。 所述数据处理系统 200可以获取其它多个 数据处理系统发送的 PCIe存储设备的唯一标识与 PCIe存储设备的 BAR中的 基地址之间的对应关系, 以实现数据处理系统之间的直接传输。 也可以向 其它多个数据处理系统请求 PCIe存储设备的唯一标识与 PCIe存储设备的 BAR中的基地址之间的对应关系并保存, 以实现数据处理系统之间的直接 传输。 当然, 在所述数据处理系统 200获取其它数据处理系统 PCIe存储设备 的唯一标识与 PCIe存储设备的 BAR中的基地址之间的对应关系后, 当其它 数据处理系统 PCIe存储设备的唯一标识与 PCIe存储设备的 BAR中的基地址 之间的对应关系发生变化时, 发生变化的数据处理系统可以将变化后的对 应关系发送给数据处理系统 200。
参考图 4, 图 4为本发明实施例一种数据处理方法的流程示意图。 本发 明实施例的数据处理方法应用于包括中央处理器 CPU、 内存、快捷外围部件 互连标准 PCIe控制器、网络适配器和至少一个存储设备的数据处理系统中, 其特征在于, 所述方法包括:
步骤 400: 在所述数据处理系统接收到数据请求时, 获取所述数据请求 携带的第一地址信息;
步骤 402: 根据所述第一地址信息, 获取请求的数据在所述 PCIe存储 设备中的第一存储地址, 所述第一存储地址是 MMI0地址;
步骤 404: 所述网络适配器根据所述第一存储地址直接从所述 PC I e存储 设备读取数据传送给所述第二数据处理系统, 或将从所述第二数据处理系 统接收的数据直接写入所述 PCIe存储设备中, 所述第二数据处理系统是与 所述第一数据处理通过网络通信的数据处理系统。
上述方法实施例的步骤 400和步骤 402 , 可以由所述数据处理系统中的 管理单元来实现, 该管理单元可以是所述 CPU中的一个模块或逻辑单元, 也 可以是所述数据处理系统中单独的硬件实体, 本发明实施例不限定管理单 元的具体实现方式。 通过上述实施例中步骤 402获取数据请求的 MMIO地址 , 该 MMIO地址 能够直接获取 PCIe存储设备中存储的数据, 网络适配器根据该 MMIO地址, 能够直接从所述数据处理系统的 PCIe存储设备中读取数据并传送给第二数 据处理系统, 或将从所述第二数据处理系统接收的数据直接写入所述 PCIe 存储设备中; 使得所述处理系统能够实现在网络通信的两个数据处理系统 间传递数据时, 数据的传输从 PCIe存储设备直接到网络适配器之间传递, 不需要经过内存。 降低了在两个数据处理系统件传递数据时对内存、 CPU等 资源的占用率, 并提高了数据传输的效率。
作为一种可选的实现方式, 所述数据处理方法还包括, 所述 PCIe存储 设备根据所述第一存储地址获取所述数据请求所请求的数据在所述 PCIe存 储设备的第二存储地址。 所述第二存储地址是物理地址或逻辑地址,所述物 理地址是能够直接读取数据的线性连续地址, 所述逻辑地址是对非线性连 续的物理地址进行线性排序后的地址。
可选的, 所述 PCIe控制器配置第一 BAR地址寄存器, 所述第一 BAR地 址寄存器存储所述第一存储地址与所述第二存储地址之间的对应关系, 所 述第二存储地址是线性连续的存储地址。 或者, 所述 PCIe控制器配置第二
BAR地址寄存器,所述第二 BAR地址寄存器存储所述第一存储地址与所述第 二存储地址的虚拟地址之间的对应关系, 所述第二存储地址是非线性连续 的存储地址, 所述第二存储地址的虚拟地址是所述第二存储地址经过线性 排序后的地址。
通过上述配置 BAR地址寄存器, 将 PCIe存储设备中的线性连续的物理 地址与 MMI0地址——对应, 将 PCIe存储设备中的非线性连续的物理地址 经过线性排序后的逻辑地址与 MMI0地址——对应, 实现 MMI0地址与 PCIe 存储设备可访问介质地址的映射,使得网络适配器根据 MM 10地址,通过 PC I e 控制器映射到与 MMI0地址——对应的 PCIe可访问存储介质地址, 实现了 数据的直接读取和写入。 作为一种可选的实现方式, 所述数据处理方法还包括: 所述 CPU为每 个所述 PC I e存储设备分配一个唯一标识, 所述唯一标识用于标识每个所述 PCIe存储设备。根据所述唯一标识, 建立所述唯一标识与所述 PC Ie存储设 备的 BAR中的基地址之间的对应关系。
可选的, 所述第一地址信息包括所述 PCIe存储设备的唯一标识和逻辑 区块地址 LBA。
可选的 , 所述唯一标识包括 Vender ID、 Device ID或硬盘序列号中的至 少一个; 或者所述唯一标识是对 Vender ID、 Device ID或硬盘序列号中的至 少一个进行哈希处理后得到的标识。
通过 PCIe存储设备的唯一标识与 PCIe存储设备的 BAR中的基地址之 间的对应关系, 能够根据所述数据处理系统接收到的数据请求消息中包含 的 PCIe存储设备的唯一标识, 获取与该唯一标识对应的 PCIe存储设备的 BAR中的基地址。由于所述数据处理系统接收的数据请求中的第一地址信息 包括 PCIe存储设备的唯一标识和 LBA地址, 通过获取到的 PCIe存储设备 的 BAR中的基地址与 LBA地址, 能够获取请求数据的丽 10地址。
作为一种可选的实现方式, 所述获取请求的数据在所述存储设备中的 第一存储地址包括:
根据所述第一数据请求中携带的 PCIe存储设备的唯一标识, 获取请求 的数据的 BAR中的基地址;
根据所述 BAR中的基地址以及所述第一数据请求中的 LBA地址, 获取 请求的数据在所述 PCIe存储设备中的第一存储地址, 所述第一存储地址是 MM 10地址。
可选的, 所述 CPU将获取到的所述第一存储地址注册在所述网络适配 器中。 所述数据处理系统将获取到的所述第一存储地址发送给所述第二数 据处理系统。 在所述数据处理系统的网络适配器接收到所述第二数据处理 系统发送的携带有所述第一存储地址的数据请求时, 所述网络适配器在 PCIe总线上发布接收到的数据请求, 该请求能够被所述数据处理系统中的 PCIe控制器接收到。所述 PCIe控制器获取所述网络适配器发出的携带所述 第一存储地址的数据请求后, 根据所述第一存储地址获取对应的第二存储 地址, 并从所述第二存储地址获取数据, 将获取到的数据返回给所述网络 适配器, 或将网络适配器发送的数据写入所述第二存储地址。
作为一种可选的实现方式, 所述方法还包括:
在所述数据处理系统接收到第二数据请求时, 根据所述第二数据请求 中携带的 PCIe存储设备的唯一标识, 获取所述第二数据请求所请求的数据 的在所述第二数据处理系统的 BAR 中的基地址, 所述第二数据请求用于向 所述第二数据处理系统发送数据或从所述第二数据处理系统读取数据; 根据所述第二数据处理系统的 BAR 中的基地址以及所述第二数据请求 中携带的所述 LBA地址, 获取所述第二数据请求所请求的数据在所述第二 数据处理系统的 MMI 0地址。
相应的, 所述第二数据处理系统中的 PCIe控制器, 根据所述数据处理 系统发送的所述第二数据请求所请求的数据在所述第二数据处理系统的 丽 10地址, 获取所述第二数据请求所请求的数据在所述第二数据处理系统 的物理地址或逻辑地址, 所述物理地址是能够直接读取数据的线性连续地 址, 所述逻辑地址是对非线性连续的物理地址进行线性排序后的地址。
通过上述获取第二数据处理系统中 PC I e存储设备的唯一标识与 PC I e存 储设备的 BAR中的基地址之间的对应关系, 能够获取所述第二数据请求所请 求的数据的在所述第二数据处理系统的 BAR中的基地址, 并进一步获取第二 数据请求所请求数据的丽 10地址, 从而实现两个数据处理系统数据的直接 传输, 不需要 CPU和内存的参与, 节省了 CPU和内存的资源, 并挺高了数据 传输的效率。
图 5示意性的示出了根据本发明实施例数据处理系统一种实现方式的 基本硬件结构示意图。 该数据处理系统包括 CPU、 内存、 PCIe控制器、 PCIe 总线、 PCIe存储设备和网络适配器等基本硬件组成。 其中, 该数据处理系 统中的网络适配器是支持网络直接访问技术的基于 PCIe总线技术的网络适 配器, 所述网络直接访问技术包括但不限于 RDMA (远程直接数据存取, Remote Direct Memory Access )技术等; 所述网络适配器包括但不限于以太 网卡、 IB HCA ( Infiniband Host Channel Adapter, 支持多并发链接的转换线 缆技术主机通道适配器 ) 、 iWarp HCA ( internet wide area RDMA protocol Host Channel Adapter, 支持互联网广域 RDMA协议主机通道适配器) 、 Rapid 10 HCA ( Rapid 10 Host Channel Adapter, 支持快速读写的主机通道 适配器) 等; 所述基于 PCIe总线技术是指此网络适配器的上行总线接口为 PCIe。 该数据处理系统还包括至少一个基于 PCIe总线的 PCIe存储设备, 该 PCIe存储设备包括但不限于内存、硬盘、 SSD ( Solid State Disk, 固态硬盘)、 Flash, NVRAM ( Non- Volatile Random Access Memory, 非易失性随机访问 存储器)等。 该数据处理系统的实现方式, 包括但不限于服务器(机架式、 刀塔式、 机框式等) 、 存储设备或小型机等设备。
本发明实施例的数据处理系统, 在图 5所示的硬件基本架构的基石出上, 增加一个管理单元, 该管理单元用于在所述数据处理系统接收数据请求时, 根据所述数据请求中携带的第一地址信息, 获取请求的数据在所述 PCIe存 储设备中的第一存储地址, 所述第一存储地址是 MMI0地址。该管理单元可 以是在 CPU中实现, 也可以通过单独的硬件实现, 本发明实施例不限定管 理单元在所述数据处理系统中的实现方式。
具体的, 所述管理单元通过建立的所述 PCIe存储设备的 BAR中的基地 址与所述 PCIe存储设备的唯一标识之间的对应关系, 获取所述数据处理系 统接收到的数据请求的数据在所述 PCIe存储设备中的地址。
所述 PCIe存储设备的唯一标识, 例如 GUID ( Globally Unique Identifier, 全球唯一标识) , 是所述数据处理系统为每个 PCIe存储设备分配的唯一确 定该 PCIe存储设备的标识。 该唯一标识可以是所述 CPU分配的唯一标识, 也可以是所述管理单元分配的唯一标识。 该唯一标识可以由 PCIe存储设备 的 Vender ID ( vender identity, 供应商识另 ll码)、 Device ID ( device identity, 设备识别码) 以及 PCIe存储设备下挂的存储设备的唯一标记 ID (如硬盘序 列号)等组成一个唯一的一组字符串, 或者对所述字符串进行哈希后得到 的标识。 本发明实施例不限定该唯一标识的组成, 只要能够唯一的标记此 节点内部的存储设备信息即可。
所述 PCIe存储设备的 BAR中的基地址是在所述数据处理系统启动时分 配的, 所述数据处理系统启动完成后, 所述管理单元获取每个 PCIe存储设 备的 BAR中的基地址。 所述管理单元可以通过扫描所述数据处理系统中所 有的 PCIe存储设备, 获取每个 PCIe存储设备的 BAR中的基地址以及该 PCIe 存储设备的唯一标识。
所述管理单元根据获取到的每个 PCIe存储设备的 BAR中的基地址以及 该 PCIe存储设备的唯一标识, 并记录每个 PCIe存储设备的 BAR中的基地址 以及该 PCIe存储设备的唯一标识之间的对应关系。
所述数据处理系统在接收到数据请求时, 该数据请求会携带请求的数 据所在的 PCIe存储设备的唯一标识和 LBA ( Logical Block Address, 逻辑区 块地址)地址。 所述管理单元根据所述数据请求中携带的唯一标识, 以及 建立的每个 PCIe存储设备的 BAR中的基地址与该 PCIe存储设备的唯一标识 之间的对应关系, 获取所请求数据所在 PCIe存储设备的 BAR中的基地址; 并结合 LBA地址获取所请求的数据的 MMIO地址。所述管理单元可以通过下 述方式获取所请求的数据的 MMIO地址的起始地址和结束地址:
起始地址 = 映射的 BAR中的基地址 + ( LBA x块大小)
结束地址 = 映射的 BAR中的基地址 + ( ( LBA +块数量) X块大小)
- K
所述管理单元还用于维护在 PCIe存储设备的 BAR中的基地址以及该 PCIe存储设备的唯一标识之间的对应关系, 在 PCIe存储设备的 BAR中的基 地址发生变化时, 刷新 PCIe存储设备的 BAR中的基地址以及该 PCIe存储设 备的唯一标识之间的对应关系。 例如, PCIe存储设备的 BAR中的基地址可 能会因为所述数据处理系统的重新启动而改变, 即所述数据处理系统为每 个 PCIe存储设备分配的 PCIe 存储设备的 BAR中的基地址可能与上一次不 同。 所述管理单元需要根据每个 PCIe存储设备的唯一标识, 刷新 PCIe存储 设备唯一标识与 PCIe存储设备的 BAR中的基地址之间的对应关系。
所述管理单元还可以获取其它数据处理系统中 PCIe存储设备的 BAR中 的基地址以及该 PCIe存储设备的唯一标识之间的对应关系。 通过该其它数 据处理系统中 PCIe存储设备的 BAR中的基地址以及该 PCIe存储设备的唯一 标识之间的对应关系, 能够实现在对其它数据处理系统进行数据读写时, 获取该其它数据处理系统中 PCIe存储设备的存储地址。 获取其它数据处理 系统中 PCIe存储设备的 BAR中的基地址以及该 PCIe存储设备的唯一标识之 间的对应关系, 可以由本数据处理系统主动向其它数据处理系统发起请求 以获取, 也可以接收其它数据处理系统主动发送后获取。 本发明实施例不 限定具体获取的方式。
参考图 6, 图 6为本发明实施例管理单元存储的 PCIe存储设备唯一标识 与 PCIe存储设备的 BAR中的基地址之间的对应关系的示例图。 该示例图中, IP地址用于标识所述数据处理系统在其所在的网络内的唯一地址, GUID为 PCIe存储设备的唯一标识, 映射空间起始地址是 PCIe存储设备地址在 CPU 寻址空间所映射区域的起始地址; 设备逻辑地址是指由存储设备内部的逻 辑起始地址; 空间长度指系统所映射的这段区域的整个长度。
本发明实施例中, PCIe存储设备唯一标识与 PCIe存储设备的 BAR中的基 地址之间的对应关系, 可以由 PCIe存储设备的驱动建立, 也可以由所述管 理单元建立。 具体可以通过添加脚本的方式在所述数据处理系统启动后自 动加载, 也可以通过手动方式加载。 当由 PCIe存储设备的驱动建立时, 首 先由 PCIe存储设备的驱动配置 PCIe BAR地址寄存器, 管理单元读取配置后 的映射关系。 当由管理单元建立时, 通过配置 PCIe存储设备的寄存器来实 现。
本发明实施例的 PCIe存储设备, 还包括地址转换单元, 用于根据所述第 一存储地址获取所述数据请求所请求的数据在所述 PCIe存储设备的第二存 储地址。
所述地址转换单元可以在 PCIe设备控制器中实现, 建立 PCIe存储设备内 的介质可访问地址与所述 MMIO地址之间的对应关系, 在接收到对所述 MMIO地址进行的数据读写请求时, 能够根据所述 MMIO地址获取与该 MMIO地址对应 PCIe存储设备内的介质可访问地址,例如 PCIe存储设备的存 储地址, 以进行数据的读写。
以 PCIe存储设备为 PCIe NVRAM为例, 根据其遵循的 PCIe协议规范, 将 该 PCIe NVRAM内部的可访问介质的地址空间直接映射到 CPU的 MMIO地 址空间 , 使得所有对该 PCIe NVRAM的读写请求等同于对 MMIO地址的请 求。 MMIO地址空间对应 NVRAM所有可访问的空间 , 即建立了 PCIe存储 设备内的介质可访问地址与所述 MMIO地址之间的对应关系,通过该 MMIO 地址空间的访问, 可以直接访问其对应 NVRAM空间。 将该 PCIe NVRAM内 部的可访问介质的地址空间直接映射到 CPU的 MMIO地址空间 ,可以通过配 置 BAR地址寄存器的方式实现。
如图 7所示, 图 7为本发明实施例一中配置 PCIe存储设备内部地址到 CPU 的 MMIO地址之间映射的结构关系示意图。 图中 PCIe控制器中的 PCIe End Point作为地址转换单元, 配置 PCIe BAR地址寄存器, 映射 PCIe存储设备内 的地址到 CPU的 MMIO地址, 使得对 CPU地址(可供 DMA的地址) 空间的 访问, 可以直接映射到 PCIe存储设备可访问介质的地址。
本发明实施例中建立 PCIe存储设备内的介质可访问地址与所述 MMIO地 址之间的对应关系 ,即建立 PCIe存储设备的地址空间与 CPU中的 MMIO地址 空间之间的映射关系。 该映射关系的建立, 依据 PCIe存储设备的物理地址 是否是线性连续的存储地址, 实现方式有所不同。
当 PCIe存储设备的物理地址是线性连续的存储地址时, 地址转换单元配 置的 BAR地址寄存器, 映射一段与实际存储设备大小一致的 CPU地址空间, 由于 PCIe存储设备地址是线性连续的, 该 PCIe存储设备地址与映射的 CPU 地址空间的地址——对应。 CPU对这段地址空间的操作能够被地址转换单 元获取, 地址转换单元将接收到的请求转换为实际的 PCIe存储设备的物理 地址。
当 PCIe存储设备的物理地址不是线性连续的存储地址时, 地址转换单元 将经过线性排序后的存储地址与 CPU的地址建立映射。 即配置 BAR地址寄 存器, 映射一段与虚拟地址大小一致的 CPU地址空间, 该虚拟地址是该非 线性连续的存储地址经过线性排序后的地址。 例如, 可以将扇区、 块或其 它最小单元单位连续的打上标签, 形成一个 "虚拟" 的线性空间, 再与 CPU 地址空间建立映射关系。
通过上述数据处理系统中的管理单元建立的所述 PCIe存储设备的 BAR 中的基地址与所述 PCIe存储设备的唯一标识之间的对应关系, 所述管理单 元能够获取所述数据处理系统接收到的数据请求的请求的数据的 MMIO地 址, 并依据该 MMIO地址, 向 PCIe控制器发起数据请求; PCIe控制器中的地 址转换单元依据建立的 PCIe存储设备内的介质可访问地址与所述 MMIO地 址之间的对应关系, 获取请求的数据在 PCIe存储设备的介质可访问地址, 即实际的物理地址, 通过该介质可访问地址, 能够直接读取数据或写入数 据。
相应的, 所述数据处理系统中的网络适配器能够根据上述 MMIO地址, 直接从所述 PCIe存储设备读取数据或向所述 PCIe存储设备写入数据。 避免 了现有技术中需要将 PCIe存储设备上相关的数据先读取到物理内存, 然后 再通过该物理内存传递到远程数据处理系统时对内存和 CPU资源的消耗和 带来的传输时延问题。 下面以第一数据处理系统需要将 PCIe SSD F的偏移地址 0xl000〜0x2000共 4Kbytes的数据写入第二数据处理系统的 PCIe SSD G的 0x3000〜0x4000的位置为例, 对本发明实施例的数据处理系统和数据处理方 法的实现方式做详细说明。 其中, PCIe SSD即 PCIe存储设备的一种具体实 现方式。 本实施例以第一数据处理系统不仅创建了自身的 PCIe SSD的唯一 标识与 PCIe SSD的 BAR中的基地址之间的对应关系, 而且还获取了第二数 据处理系统中 PCIe SSD的唯一标识与 PCIe SSD的 BAR中的基地址之间的对 应关系为例进行说明。
步骤 500: 第一数据处理系统获取 PCIe SSD的 BAR中的基地址; 第一数据处理系统通过管理单元中 PCIe SSD的唯一标识与 PCIe SSD的
BAR中的基地址之间的对应关系, 获取 PCIe SSD F的 PCIe BAR中的基地址 为 OxffOO 0000 , 得到偏移地址 Ox 1000对应的 MMIO地址, 例如 OxffDO 1000; 同时还获取 PCIe SSD G的 PCIe BAR中的基地址 OxfeOO 0000, 得到偏移地址 的 0x3000〜0x4000对应的 MMIO地址, 例如 OxfeOO 3000。
步骤 502: 第一数据处理系统的网络适配器发起数据写请求;
第一数据处理系统的网络适配器通过 PCIe SSD F的新的 MMIO地址 OxffOO 1000向 PCIe SSD F设备发起数据请求, PCIe SSD F设备内部 PCIe接口 将 MMIO地址转换为内部可访问的存储介质地址 XXX, 这个 XXX的结果根 据不同的映射单元实现会有所不同。 PCIe SSD F读取存储介质地址 XXX对 应的数据, 读取完成后将数据通过 PCIe总线发送给网络适配器, 这整个过 程中 CPU无需参与数据的传输过程, 同时也不需要内存的占用。
步骤 504: 第二数据处理系统的网络适配器接收所述第一数据处理系统 的网络适配器发送的数据, 并发送给 PCIe SSD G;
第二数据处理系统的网络适配器通过 PCIe SSD G的新的 MMIO地址 OxfeOO 3000向 PCIe SSD G设备发起写数据请求, PCIe SSD G设备 PCIe接口 将 MMIO地址转换为内部可访问的存储介质地址 YYY, 这个 YYY的结果根 据不同的映射单元实现会有所不同。 PCIe SSD G将网络适配器传送来的数 据写入存储介质地址 YYY , 这整个过程中 CPU无需参与数据的传输过程, 同时也不需要内存的占用。
上述 PCIe SSD F设备内部 PCIe接口将 MMIO地址转换为内部可访问的 存储介质地址 XXX , 以及 PCIe SSD G设备 PCIe接口将 MMIO地址转换为内 部可访问的存储介质地址 YYY, 是针对第二存储地址是线连续的物理地址 的情况。 当第二存储地址是逻辑地址时, PCIe SSD F设备内部 PCIe接口将 MMIO地址转换为内部可访问的存储介质地址 XXX, 还需要一个从逻辑地 址到非线性连续地址之间的转换, 此处不再贅述。
对于第一数据处理系统未获取第二数据处理系统中 PCIe SSD的唯一标 识与 PCIe SSD的 BAR中的基地址之间的对应关系的情况, 第二数据处理系 统的管理单元建立该第二数据处理系统中的 PCIe SSD的唯一标识与 PCIe SSD的 BAR中的基地址之间的对应关系,在第二数据处理系统的网络适配器 接收到第一数据处理系统发送的数据读写请求时, 依据所述第二数据处理 系统中的 PCIe SSD的唯一标识与 PCIe SSD的 BAR中的基地址之间的对应关 系, 获取要写入数据的 PCIe SSD的 BAR中的基地址, 直接写入对应的 PCIe SSD中。
本发明的上述实施例中, 是以 PCIe存储设备为例说明在不同数据处理系 统之间传递数据时直接读取或写入数据的实现方式。 对于通过内存接口的 存储设备, 例如 SCM ( Storage Class Memory ) 、 RRAM(Resistive Random Access Memory), NVDIMM ( Non- Volatile DIMMs )等, 也可以参照上述 PCIe存储设备的实现方式, 通过管理单元对 SCM、 RRAM和 NVDIMM进行 数据的直接读写处理。 当系统启动时, 存储设备 ( NVDIMM\RRAM\SCM ) 在初始化的时候会将其访问的空间在系统内注册, 通过访问注册后的地址, 即可以对存储设备进行访问。 与上述实施例不同的是, 无需进行 PCIe存储 设备内地址可访问介质地址与 MMIO地址的映射,也不需要地址转换,但为 了让网络上其它的数据处理系统获取所要访问的数据的地址, 需要获取存 储设备 ( NVDIMM\RRAM\SCM )在系统内的地址并同步其它的数据处理系 统。
本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及算法步骤, 能够以电子硬件、 计算机软件或者二者的结合来 实现, 为了清楚地说明硬件和软件的可互换性, 在上述说明中已经按照功 能一般性地描述了各示例的组成及步骤。 这些功能究竟以硬件还是软件方 式来执行, 取决于技术方案的特定应用和设计约束条件。 专业技术人员可 以对每个特定的应用来使用不同方法来实现所描述的功能, 但是这种实现 不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到, 为了描述的方便和简洁, 上述 描述的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的 对应过程, 在此不再贅述。
在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统、 装置和 方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例仅仅是 示意性的, 例如, 所述单元的划分, 仅仅为一种逻辑功能划分, 实际实现 时可以有另外的划分方式, 例如多个单元或组件可以结合或者可以集成到 另一个系统, 或一些特征可以忽略, 或不执行。 另外, 所显示或讨论的相 互之间的耦合或直接耦合或通信连接可以是通过一些接口、 装置或单元的 间接耦合或通信连接, 也可以是电的, 机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的, 作 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选择其中的部分 或者全部单元来实现本发明实施例方案的目的。
另外, 在本发明各个实施例中的各功能单元可以集成在一个处理单元 中, 也可以是各个单元单独物理存在, 也可以是两个或两个以上单元集成 在一个单元中。 上述集成的单元既可以采用硬件的形式实现, 也可以采用 软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销 售或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技术方案本质上或者说对现有技术做出贡献的部分, 或者该技术 方案的全部或部分可以以软件产品的形式体现出来, 该计算机软件产品存 储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个 人计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述方法的 全部或部分步骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器 ( ROM, Read-Only Memory ) 、 随机存取存储器(RAM, Random Access Memory ) 、 磁碟或者光盘等各种可以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可 轻易想到各种等效的修改或替换, 这些修改或替换都应涵盖在本发明的保 护范围之内。 因此, 本发明的保护范围应以权利要求的保护范围为准。

Claims

权利要求
1 , 一种数据处理系统, 包括中央处理器 CPU、 内存、 快捷外围部件互 连标准 PCIe控制器、 网络适配器和至少一个 PCIe存储设备, 其特征在于, 还包括:
管理单元, 用于在所述数据处理系统接收到数据请求时, 根据所述数 据请求中携带的第一地址信息, 获取请求的数据在所述 PC I e存储设备中的 第一存储地址, 所述第一存储地址是内存映射输入输出 MMI0地址;
所述网络适配器, 根据所述第一存储地址, 从所述 PCIe存储设备直接 读取数据传送给第二数据处理系统, 或将从所述第二数据处理系统接收的 数据直接写入所述 PCIe存储设备中, 所述第二数据处理系统是与所述第一 数据处理系统通过网络通信的数据处理系统。
2 , 根据权利要求 1所述的数据处理系统, 其特征在于, 所述 PCIe存 储设备包括地址转换单元, 用于根据所述第一存储地址获取所述数据请求 所请求的数据在所述 PCIe存储设备的第二存储地址。
3 , 根据权利要求 2所述的数据处理系统, 其特征在于, 所述第二存储 地址是物理地址或逻辑地址,所述物理地址是能够直接读取数据的线性连 续地址, 所述逻辑地址是对非线性连续的物理地址进行线性排序后的地址。 4 , 根据权利要求 2或 3所述的数据处理系统, 其特征在于, 所述地址转换单元还用于配置第一 BAR地址寄存器, 所述第一 BAR地 址寄存器存储所述第一存储地址与所述第二存储地址之间的对应关系, 所 述第二存储地址是线性连续的存储地址。
5 , 根据权利要求 2-4所述的任一数据处理系统, 其特征在于, 所述地址转换单元还用于配置第二 BAR地址寄存器, 所述第二 BAR地 址寄存器存储所述第一存储地址与所述第二存储地址的虚拟地址之间的对 应关系, 所述第二存储地址是非线性连续的存储地址, 所述第二存储地址 的虚拟地址是所述第二存储地址经过线性排序后的地址。
6 , 根据权利要求 1-5所述的任一数据处理系统, 其特征在于, 所述 CPU为每个所述 PC I e存储设备分配一个唯一标识, 所述唯一标识 用于标识每个所述 PC Ie存储设备。
7 , 根据权利要求 6所述的数据处理系统, 其特征在于,
所述第一地址信息包括所述 PC Ie存储设备的唯一标识和逻辑区块地址
LBA。
8 , 根据权利要求 6所述的任一数据处理系统, 其特征在于, 所述管理单元还用于建立所述唯一标识与所述 PCI e存储设备的 BAR中 的基地址之间的对应关系。
9 , 根据权利要求 6-8所述的任一数据处理系统, 其特征在于: 所述唯一标识包括供应商识别码 Vender ID、 设备识别码 Device ID或 硬盘序列号中的至少一个; 或者所述唯一标识是对 Vender ID、 Device ID或 硬盘序列号中的至少一个进行哈希处理后得到的标识。
10, 根据权利要求 7或 8所述的数据处理系统, 其特征在于, 所述管 理单元包括基地址获取单元和存储地址获取单元:
所述基地址获取单元, 用于在所述数据处理系统接收到与其通过网络 通信的第二数据处理系统的第一数据请求时, 根据所述第一数据请求中携 带的 PCIe存储设备的唯一标识, 获取请求的数据的 BAR中的基地址;
存储地址获取单元, 用于根据所述 BAR 中的基地址以及所述第一数据 请求携带的 LB A地址, 获取请求的数据在所述 PC I e存储设备中的第一存储 地址, 所述第一存储地址是 MM 10地址。
11 ,根据权利要求 1或 10所述的数据处理系统,其特征在于,所述 CPU 将获取到的所述第一存储地址注册在所述网络适配器中。
12 , 根据权利要求 1或 10所述的数据处理系统, 其特征在于, 所述数据处理系统还包括发送单元, 所述发送单元用于将所述管理单 元获取的所述第一存储地址发送给所述第二数据处理系统。
13 ,根据权利要求 2或 11所述的数据处理系统,其特征在于,所述 PCIe 控制器获取所述网络适配器发出的携带所述第一存储地址的数据请求, 所 述地址转换单元获取第二存储地址的数据并将获取到的数据返回给所述网 络适配器, 或将网络适配器发送的数据写入所述第二存储地址。
14 , 根据权利要求 8或 10所述的任一数据处理系统, 其特征在于, 所 述管理单元还包括全局基地址获取单元和全局存储地址获取单元: 所述全局基地址获取单元, 用于在所述数据处理系统接收到第二数据 请求时, 根据所述第二数据请求中携带的 PCIe存储设备的唯一标识, 获取 所述第二数据请求所请求的数据的在所述第二数据处理系统的 BAR 中的基 地址, 所述第二数据请求是向所述第二数据处理系统发送数据或从所述第 二数据处理系统读取数据的请求;
所述全局存储地址获取单元, 用于根据所述第二数据处理系统的 BAR 中的基地址以及所述第二数据请求中携带的 LBA地址, 获取所述第二数据 请求所请求的数据在所述第二数据处理系统的丽 10地址。
15 , 根据权利要求 14所述的数据处理系统, 其特征在于, 所述第二数 据处理系统的 PCIe控制器中的数据转换单元, 根据所述数据处理系统发送 的所述第二数据请求所请求的数据在所述第二数据处理系统的丽 10地址, 获取所述第二数据请求所请求的数据在所述第二数据处理系统的物理地址 或逻辑地址, 所述物理地址是能够直接读取数据的线性连续地址, 所述逻 辑地址是对非线性连续的物理地址进行线性排序后的地址。
16 , 一种数据处理方法, 所述方法应用于包括中央处理器 CPU、 内存、 快捷外围部件互连标准 PCIe控制器、 网络适配器和至少一个存储设备的数 据处理系统中, 其特征在于, 所述方法包括:
在所述数据处理系统接收到数据请求时, 获取所述数据请求携带的第 一地址信息;
根据所述第一地址信息, 获取请求的数据在所述 PC I e存储设备中的第 一存储地址, 所述第一存储地址是内存映射输入输出 MM 10地址;
所述网络适配器根据所述第一存储地址, 直接从所述 PCIe存储设备读 取数据传送给所述第二数据处理系统, 或将从所述第二数据处理系统接收 的数据直接写入所述 PCIe存储设备中, 所述第二数据处理系统是与所述第 一数据处理系统通过网络通信的数据处理系统。
17 , 根据权利要求 16 所述的数据处理方法, 其特征在于, 所述 PCIe 存储设备根据所述第一存储地址获取所述数据请求所请求的数据在所述 PCIe存储设备的第二存储地址。
18 , 根据权利要求 17所述的数据处理方法, 其特征在于, 所述第二存 储地址是物理地址或逻辑地址,所述物理地址是能够直接读取数据的线性 连续地址, 所述逻辑地址是对非线性连续的物理地址进行线性排序后的地 址。
19 , 根据权利要求 17或 18所述的数据处理方法, 其特征在于, 所述 方法还包括:
所述 PCIe控制器配置第一 BAR地址寄存器, 所述第一 BAR地址寄存器 存储所述第一存储地址与所述第二存储地址之间的对应关系, 所述第二存 储地址是线性连续的存储地址。
20, 根据权利要求 17-19 所述的任一数据处理方法, 其特征在于, 所 述方法还包括:
所述 PCIe控制器配置第二 BAR地址寄存器, 所述第二 BAR地址寄存器 存储所述第一存储地址与所述第二存储地址的虚拟地址之间的对应关系, 所述第二存储地址是非线性连续的存储地址, 所述第二存储地址的虚拟地 址是所述第二存储地址经过线性排序后的地址。
21 , 根据权利要求 16-20 所述的任一数据处理方法, 其特征在于, 所 述 CPU为每个所述 PCIe存储设备分配一个唯一标识, 所述唯一标识用于标 识每个所述 PCIe存储设备。
22 , 根据权利要求 21所述的数据处理系统, 其特征在于,
所述第一地址信息包括所述 PCIe存储设备的唯一标识和逻辑区块地址
LBA。
23 , 根据权利要求 21所述的数据处理方法, 其特征在于, 所述方法还 包括:
建立所述唯一标识与所述 PCIe存储设备的 BAR中的基地址之间的对应 关系。
24 , 根据权利要求 21-23 所述的任一数据处理方法, 其特征在于, 所 述唯一标识包括供应商识别码 Vender ID、 设备识别码 Device ID或硬盘序 列号中的至少一个; 或者所述唯一标识是对 Vender ID、 Device ID或硬盘序 列号中的至少一个进行哈希处理后得到的标识。
25 , 根据权利要求 22或 23所述的数据处理方法, 其特征在于, 所述 获取请求的数据在所述存储设备中的第一存储地址包括:
根据所述第一数据请求中携带的 PCIe存储设备的唯一标识, 获取请求 的数据的 BAR中的基地址;
根据所述 BAR中的基地址以及所述第一数据请求携带的 LBA地址, 获 取请求的数据在所述 PCIe存储设备中的第一存储地址, 所述第一存储地址 是 MMI0地址。
26 , 根据权利要求 16或 25所述的数据处理系统, 其特征在于, 所述 CPU将获取到的所述第一存储地址注册在所述网络适配器中。 27 , 根据权利要求 17或 25所述的数据处理系统, 其特征在于, 所述 方法还包括:
所述数据处理系统将获取到的所述第一存储地址发送给所述第二数据 处理系统。
28 , 根据权利要求 16或 26所述的数据处理系统, 其特征在于, 所述 PCI e控制器获取所述网络适配器发出的携带所述第一存储地址的 数据请求, 获取第二存储地址的数据并将获取到的数据返回给所述网络适 配器, 或将网络适配器发送的数据写入所述第二存储地址。
29 , 根据权利要求 22或 25所述的数据处理方法, 其特征在于, 所述 方法还包括:
在所述数据处理系统接收到第二数据请求时, 根据所述第二数据请求 中携带的 PCIe存储设备的唯一标识, 获取所述第二数据请求所请求的数据 的在所述第二数据处理系统的 BAR 中的基地址, 所述第二数据请求用于向 所述第二数据处理系统发送数据或从所述第二数据处理系统读取数据的请 求;
根据所述第二数据处理系统的 BAR 中的基地址以及所述第二数据请求 中携带的 LBA地址, 获取所述第二数据请求所请求的数据在所述第二数据 处理系统的 MM 10地址。
30 , 根据权利要求 29所述的数据处理方法, 其特征在于, 所述第二数 据处理系统中的 PCIe控制器, 根据所述数据处理系统发送的所述第二数据 请求所请求的数据在所述第二数据处理系统的丽 10地址, 获取所述第二数 据请求所请求的数据在所述第二数据处理系统的物理地址或逻辑地址, 所 述物理地址是能够直接读取数据的线性连续地址, 所述逻辑地址是对非线 性连续的物理地址进行线性排序后的地址。
PCT/CN2013/086170 2013-10-29 2013-10-29 数据处理系统和数据处理的方法 WO2015061971A1 (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 华为技术有限公司 数据处理系统和数据处理的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
See also references of EP2889780A4 *

Cited By (1)

* Cited by examiner, † Cited by third party
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