CN110309087A - 数据传输方法与使用此方法的主机系统 - Google Patents
数据传输方法与使用此方法的主机系统 Download PDFInfo
- Publication number
- CN110309087A CN110309087A CN201810418342.3A CN201810418342A CN110309087A CN 110309087 A CN110309087 A CN 110309087A CN 201810418342 A CN201810418342 A CN 201810418342A CN 110309087 A CN110309087 A CN 110309087A
- Authority
- CN
- China
- Prior art keywords
- data
- network interface
- interface controller
- target device
- those
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000003860 storage Methods 0.000 claims abstract description 40
- 239000004744 fabric Substances 0.000 claims description 6
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 239000007787 solid Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 2
- 208000032369 Primary transmission Diseases 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0664—Virtualisation aspects at device level, e.g. emulation of a storage device or system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提出一种用于以主机系统将第一数据传输至多个物理远程目标设备的数据传输方法,包括:产生传输指令以传输第一数据至主机系统的网络接口控制器;转换第一数据为多段第二数据,并且所述多段第二数据分别是记录于网络接口控制器的存储器的多个存储器地址;以及指示所述多个物理远程目标设备分别从存储器的所述多个存储器地址中取得所述多段第二数据。此外,使用此方法的主机系统也被提出。
Description
技术领域
本发明是有关于一种数据传输方法与使用此方法的主机系统。
背景技术
随着科技的进步与发明,计算、存储与网络已成为现代资讯科技领域的基础架构核心。快闪存储器及新一代相变化存储器(Phase Change Memory,PCM)固态存储的固态硬盘(Solid State Disk,SSD)于数据处理系统广泛的使用,且通过非易失性存储器主机控制器接口规范(Non-Volatile Memory Express,NVMe)的协议能够让基于NVMe协议的固态硬盘共享或分配给多台运算服务器使用,提供了高性能、低延迟以及低协议负担的优势。
此外,NVMe over Fabrics(NVMeoF)更进一步地把NVMe协议在单系统时代所提供的高性能、低延迟以及低协议负担的优势发挥到了NVMe存储系统互连结构当中。通过NVMeoF能够使运算服务器通过网络来连接远程的简单硬盘捆绑(Just a Bunch of Flash,JBOF),且同样具有高性能、低延迟以及低协议负担的优势。然而,当前的技术一次仅能将数据传输至一个目的地端的简单硬盘捆绑中,因此在有诸如异地备援等需求时,就需要将数据多次地重复传输而缺乏效率。
发明内容
有鉴于此,本公开实施例提出一种数据传输方法与使用此方法的主机系统,能够有效率地将数据传输至多个远程目的地。
本公开的实施例提出一种用于以主机系统将第一数据传输至多个物理远程目标设备的数据传输方法,包括:产生传输指令以传输第一数据至主机系统的网络接口控制器;转换第一数据为多段第二数据,并且所述多段第二数据分别记录于网络接口控制器的存储器的多个存储器地址;以及指示多个物理远程目标设备分别从存储器的多个存储器地址取得所述多段第二数据。
在一些实施例中,上述的传输指令是用以将一段数据传输至单一个远程目标设备,其中远程目标设备包括物理远程目标设备或虚拟远程目标设备。
在一些实施例中,在产生传输指令以传输第一数据至主机系统的网络接口控制器的步骤之前,上述的数据传输方法还包括:虚拟化网络接口控制器为虚拟远程目标设备。
在一些实施例中,上述的虚拟化网络接口控制器为虚拟远程目标设备的步骤包括:利用网络接口控制器上的可程序化单元,虚拟化网络接口控制器为虚拟远程目标设备;以及利用可程序化单元回报网络接口控制器是连接于单一个远程目标设备。
在一些实施例中,上述的可程序化单元用以设定多段第二数据的数量。
在一些实施例中,上述的转换第一数据为多段第二数据的步骤包括:将第一数据复制为多段第二数据,以使各段第二数据相同于第一数据。
在一些实施例中,上述的转换第一数据为多段第二数据的步骤包括:将第一数据拆解为多段第二数据,其中各段第二数据不同于第一数据。
在一些实施例中,上述的网络接口控制器支持远程直接存储器存取技术。
在一些实施例中,上述的网络接口控制器通过网络并且藉由NVMe over Fabrics连接至所述多个物理远程目标设备。
在一些实施例中,上述的物理远程目标设备为NVMe存储设备。
从另一观点来看,本公开的实施例提出一种用于将第一数据传输至多个物理远程目标设备的主机系统,包括网络接口控制器与耦接于网络接口控制器的处理器。网络接口控制器通过网络连接于所述多个物理远程目标设备,并且包括存储器。处理器用以产生传输指令以传输第一数据至网络接口控制器。网络接口控制器用以:转换第一数据为多段第二数据,并且所述多段第二数据分别记录于网络接口控制器的存储器的多个存储器地址;以及指示多个物理远程目标设备分别从网络接口控制器的存储器的多个存储器地址取得所述多段第二数据。
在一些实施例中,上述的传输指令是用以将一段数据传输至单一个远程目标设备,其中远程目标设备包括物理远程目标设备或虚拟远程目标设备。
在一些实施例中,上述的网络接口控制器还用以虚拟为虚拟远程目标设备。
在一些实施例中,上述的网络接口控制器包括可程序化单元。可程序化单元用以:将网络接口控制器虚拟为虚拟远程目标设备;以及回报网络接口控制器是连接于单一个远程目标设备至处理器。
在一些实施例中,上述的可程序化单元还用以设定多段第二数据的数量。
在一些实施例中,上述的网络接口控制器在转换第一数据为多段第二数据时,包括:将第一数据复制为多段第二数据,以使各段第二数据相同于第一数据。
在一些实施例中,上述的网络接口控制器在转换第一数据为多段第二数据时,包括:将第一数据拆解为多段第二数据,其中各段第二数据不同于第一数据。
在一些实施例中,上述的网络接口控制器支持远程直接存储器存取技术。
在一些实施例中,上述的网络接口控制器通过网络并且藉由NVMe over Fabrics连接至所述多个物理远程目标设备。
在一些实施例中,上述的物理远程目标设备为NVMe存储设备。
基于上述,本公开实施例所提出的数据传输方法与使用此方法的主机系统,在欲将第一数据传输至多个物理远程目标设备时,先将主机系统的网络接口控制器虚拟化为虚拟远程目标设备来接收所欲传输的第一数据,然后将此第一数据复制或拆解成多段第二数据并记录于网络接口控制器的存储器中,再指示多个物理远程目标设备分别至网络接口控制器的存储器取回多段第二数据。据此,能够有效率地将数据传输至多个远程目的地。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1示出了现有的通过NVMe over Fabrics传输数据的示意图。
图2A至图2C示出了现有的主机系统通过NVMeoF将第一数据传递至多个远程目的地的一例的示意图。
图3示出了本公开一实施例的数据传输方法的示意图。
图4示出了本公开一实施例的数据传输方法的流程图。
图5示出了本公开一实施例中主机系统通过NVMeoF将第一数据传递至多个物理远程目标设备的一例的示意图。
具体实施方式
图1示出了现有的通过NVMeoF传输数据的示意图。
请参照图1,主机系统10包括网络接口控制器101、动态随机存取存储器(DynamicRandom Access Memory,DRAM)102、根联合体(Root Complex,RC)103以及处理器104,其中网络接口控制器101、动态随机存取存储器102以及处理器104分别耦接于根联合体103。网络接口控制器101耦接于网络30,且为支持远程直接存储器存取(Remote Direct MemoryAccess,RDMA)技术的网络接口控制器。
物理远程目标设备20为NVMe存储设备,例如为一个简单硬盘捆绑系统,包括网络接口控制器201以及耦接于网络接口控制器201的多个存储装置202-1、202-2、202-3,其中网络接口控制器201耦接于网络30。网络接口控制器201为支持RDMA技术的网络接口控制器,并且存储装置202-1、202-2、202-3分别为基于NVMe协议的固态硬盘。
藉由图1所示的配置,主机系统10可通过NVMeoF将第一数据DATA1经由网络30传递至物理远程目标设备20。然而,根据NVMeoF的特性,主机系统10在一次的传输当中只有一个远程目的地。举例来说,当处理器104下达传输指令以传输记录于DRAM 102中的第一数据DATA1时,可指定将第一数据DATA1传输至单一个远程目标设备(例如,物理远程目标设备20),但无法同时再指定其他远程目标设备。
因此,当主机系统10有诸如异地备援等将第一数据DATA1传输至多个远程目的地时,便需要重复进行多次传输,以分别通过NVMeoF将第一数据DATA1经由网络30传递至上述多个远程目的地。
图2A至图2C示出了现有的主机系统通过NVMeoF将第一数据传递至多个远程目的地的一例的示意图。
请同时参照图2A至图2C,当本地端TPE的主机系统10欲通过NVMeoF进行备援以将第一数据DATA1传递至多个远程目的地NY、TKY、BJ各自的物理远程目标设备时,须重复进行三次传输动作,即,将第一数据DATA1通过NVMeoF传递至远程目的地NY的物理远程目标设备、将第一数据DATA1通过NVMeoF传递至远程目的地TKY的物理远程目标设备以及将第一数据DATA1通过NVMeoF传递至远程目的地BJ的物理远程目标设备。
由上例可知,虽然通过NVMeoF来传输数据具有高性能、低延迟和低协议负担等优势,但一旦有数据复制(Data Replication)等需求时却无法有相关硬体来执行而导致效率下降。
图3示出了本公开一实施例的数据传输方法的示意图。
请参照图3,在本实施例中,主机系统11包括网络接口控制器111、动态随机存取存储器112、根联合体113以及处理器114,其中网络接口控制器111、动态随机存取存储器112以及处理器114分别耦接于根联合体103。
网络接口控制器111耦接于网络30(例如但不限于,网状通道(Fibre Channel,FC)),包括可程序化单元115以及存储器116。在一些实施例中,网络接口控制器111例如为支持远程直接存储器存取技术的网络接口控制器,但本公开并不限于此。在一些实施例中,可程序化单元115例如是现场可程序逻辑门阵列(Field Programmable Gate Array,FPGA),设置于网络接口控制器111上,但本公开并不限于此。在一些实施例中,存储器116例如是设置在网络接口控制器111上的随机存取存储器(Random Access Memory,RAM),但本公开并不限于此。
物理远程目标设备21例如为一个简单硬盘捆绑系统,包括网络接口控制器211以及耦接于网络接口控制器211的多个存储装置212-1、212-2、212-3,其中网络接口控制器211耦接于网络30。在一些实施例中,网络接口控制器211为支持RDMA技术的网络接口控制器,并且存储装置212-1、212-2、212-3分别为基于NVMe协议的固态硬盘,因而物理远程目标设备21为NVMe存储设备,但本公开并不限于此。
物理远程目标设备22例如为一个简单硬盘捆绑系统,包括网络接口控制器221以及耦接于网络接口控制器221的多个存储装置222-1、222-2、222-3,其中网络接口控制器221耦接于网络30。在一些实施例中,网络接口控制器221为支持RDMA技术的网络接口控制器,并且存储装置222-1、222-2、222-3分别为基于NVMe协议的固态硬盘,因而物理远程目标设备22为NVMe存储设备,但本公开并不限于此。
物理远程目标设备23例如为一个简单硬盘捆绑系统,包括网络接口控制器231以及耦接于网络接口控制器231的多个存储装置232-1、232-2、232-3,其中网络接口控制器231耦接于网络30。在一些实施例中,网络接口控制器231为支持RDMA技术的网络接口控制器,并且存储装置232-1、232-2、232-3分别为基于NVMe协议的固态硬盘,因而物理远程目标设备23为NVMe存储设备,但本公开并不限于此。
以下将基于图3实施例的架构,针对本公开所提出的数据传输方法进行说明。值得一提的是,在图3实施例的架构当中包括三个物理远程目标设备21、22、23并各别包括三个存储装置,但本公开并不限制物理远程目标设备的数量以及各个物理远程目标设备中所包含的存储装置数量。
图4示出了本公开一实施例的数据传输方法的流程图。
在本实施例中,主机系统11通过NVMeoF经由网络30来将第一数据DATA1传递至多个物理远程目标设备21、22、23。
请参照图4,在步骤S410中,虚拟化网络接口控制器111为虚拟远程目标设备。如前段所述,由于NVMeoF的特性使得主机系统11在一次通过NVMeoF的传输当中只能有一个远程目的地。因此,设置于网络接口控制器111上的可程序化单元115会将网络接口控制器111虚拟化为一个虚拟远程目标设备,然后回报处理器114,以通知处理器114当前网络接口控制器111是通过网络连接于单一个远程目标设备(即,虚拟远程目标设备)。
在步骤S420中,产生传输指令以传输第一数据DATA1至主机系统11的网络接口控制器111。详细来说,在步骤S410后处理器114可以得知当前网络接口控制器111是通过网络连接于单一个远程目标设备,因此处理器114可产生并下达传输指令以传输记录于DRAM112中的第一数据DATA1至网络接口控制器111所连接的远程目标设备(即,虚拟成虚拟远程目标设备的网络接口控制器111)作为传输目的地。
在步骤S430中,转换第一数据DATA1为多段第二数据DATA2,并且多段第二数据DATA2分别记录于网络接口控制器111的存储器116的多个存储器地址。
在一些实施例中,可程序化单元115会将第一数据DATA1复制为多段与第一数据DATA1相同的第二数据DATA2,并且对各段第二数据DATA2配置一个存储器116的存储器地址以存储之。举例来说,可程序化单元115可例如将第一数据DATA1复制三份以成为第二数据DATA2-1、第二数据DATA2-2与第二数据DATA2-3,并且将第二数据DATA2-1存储于存储器116的第一存储器地址中,将第二数据DATA2-2存储于存储器116的第二存储器地址中,以及将第二数据DATA2-3存储于存储器116的第三存储器地址中。
在一些实施例中,可程序化单元115会将第一数据DATA1拆解为多段与第一数据DATA1不同的第二数据DATA2,并且对各段第二数据DATA2配置一个存储器116的存储器地址以存储之。举例来说,可程序化单元115可例如将第一数据DATA1拆解成三份不同的第二数据DATA2-1、第二数据DATA2-2与第二数据DATA2-3,并且将第二数据DATA2-1存储于存储器116的第一存储器地址中,将第二数据DATA2-2存储于存储器116的第二存储器地址中,以及将第二数据DATA2-3存储于存储器116的第三存储器地址中。
值得一提的是,在上述的例子中第一数据DATA1皆是被转换为三段第二数据DATA2,但本公开并不限于此,所属技术领域具备通常知识者当可依其需求来程序化可程序化单元115,以设定第一数据DATA1转换为多段第二数据DATA2时的转换方式、多段第二数据DATA2的数量以及各段第二数据DATA2的存储器地址等。举例而言,使用者可利用可程序化单元115来建立设置环境,以提供上述转换方式、数量以及存储器地址等设定接口。
在步骤S440中,指示多个物理远程目标设备21、22、23分别从存储器116的多个存储器地址取得多段第二数据DATA2。具体来说,在可程序化单元115将多段数据DATA2记录于网络接口控制器111的存储器116的多个存储器地址后,可例如将存储多段第二数据DATA2的多个存储器地址发送至网络接口控制器211、221、231,以让网络接口控制器211、221、231到存储器116的该些存储器地址取回第二数据DATA2。
举例而言,第二数据DATA2包括第二数据DATA2-1、第二数据DATA2-2与第二数据DATA2-3,并且分别存储于存储器116的第一存储器地址、第二存储器地址以及第三存储器地址中。可程序化单元115可例如将第一存储器地址告知物理远程目标设备21,将第二存储器地址告知物理远程目标设备22,并且将第三存储器地址告知物理远程目标设备23。据此,网络接口控制器211可根据第一存储器地址到存储器116取回第二数据DATA2-1,并例如将其记录于网络接口控制器211的存储器(未示出)中,再存储至存储装置212-1、212-2、212-3的至少其中之一中。值得一提的,本公开并不在此限制第二数据DATA2-1传递至网络接口控制器211后再分配至存储装置212-1、212-2、212-3的至少其中之一的具体方式,所属技术领域具备通常知识者当可视需求来实作。
类似地,网络接口控制器221与网络接口控制器231也能够藉由上述的方式来根据第二存储器地址与第三存储器地址到存储器116取回第二数据DATA2-2与第二数据DATA2-3。
根据本公开实施例所介绍的数据传输方法,主机系统能够通过将网络接口控制器虚拟化为虚拟远程目标设备,在一次通过NVMeOF的传输中,将第一数据传递至多个物理远程目标设备中。
图5示出了本公开一实施例中主机系统通过NVMeoF将第一数据传递至多个物理远程目标设备的一例的示意图。
请参照图5,当本地端TPE的主机系统11欲通过NVMeoF进行备援以将第一数据DATA1传递至多个远程目的地NY、TKY、BJ各自的物理远程目标设备时,利用本公开实施例所介绍的数据传输方法,利用网络接口控制器111上的可程序化单元115先将网络接口控制器111虚拟为虚拟远程目标设备,接收所欲传输的第一数据DATA1并将其转换(例如,复制或拆解)为多段第二数据DATA2-1、DATA2-2、DATA2-3并记录于网络接口控制器111的存储器116中,再指示远程目的地NY、TKY、BJ各自的物理远程目标设备到存储器116中分别取回各自的第二数据DATA2-1、DATA2-2、DATA2-3。如此一来,即使在通过NVMeoF来传输数据的环境下有数据复制或异地备援等需求,仍能通过本公开实施例的数据传输方法来维持效率。
综上所述,本公开实施例所提出的数据传输方法与使用此方法的主机系统,在欲将第一数据传输至多个物理远程目标设备时,先利用可程序化单元将主机系统的网络接口控制器虚拟化为虚拟远程目标设备来接收所欲传输的第一数据,然后将此第一数据复制或拆解成多段第二数据并记录于网络接口控制器的存储器中,再指示多个物理远程目标设备分别至网络接口控制器的存储器取回多段第二数据。据此,能够有效率地将数据传输至多个远程目的地。
虽然本公开已以实施例公开如上,然其并非用以限定本公开,任何所属技术领域中具有通常知识者,在不脱离本公开的精神和范围内,当可作些许的更动与润饰,故本公开的保护范围当视后附的申请专利范围所界定者为准。
[符号说明]
10、11:主机系统
101、111、201、211、221、231:网络接口控制器
102、112:动态随机存取存储器
103、113:根联合体
104、114:处理器
115:可程序化单元
116:存储器
20、21、22、23:物理远程目标设备
202-1、202-2、202-3、212-1、212-2、212-3、222-1、222-2、222-3、232-1、232-2、232-3:存储装置
30:网络
DATA1:第一数据
DATA2、DATA2-1、DATA2-2、DATA2-3:第二数据
NY、TKY、BJ:远程目的地
S410、S420、S430、S440:数据传输方法的步骤
TPE:本地端
Claims (20)
1.一种数据传输方法,用于以一主机系统将一第一数据传输至多个物理远程目标设备,所述数据传输方法包括:
产生一传输指令以传输该第一数据至该主机系统的一网络接口控制器;
转换该第一数据为多段第二数据,并且该些第二数据分别记录于该网络接口控制器的一存储器的多个存储器地址;以及
指示该些物理远程目标设备分别从该存储器的该些存储器地址取得该些第二数据。
2.如权利要求1所述的数据传输方法,其中该传输指令是用以将一段数据传输至单一个远程目标设备,其中该远程目标设备包括该物理远程目标设备或一虚拟远程目标设备。
3.如权利要求2所述的数据传输方法,其中在产生该传输指令以传输该第一数据至该主机系统的该网络接口控制器的步骤之前,所述数据传输方法还包括:
虚拟化该网络接口控制器为该虚拟远程目标设备。
4.如权利要求3所述的数据传输方法,其中虚拟化该网络接口控制器为该虚拟远程目标设备的步骤包括:
利用该网络接口控制器上的一可程序化单元,虚拟化该网络接口控制器为该虚拟远程目标设备;以及
利用该可程序化单元回报该网络接口控制器是连接于单一个远程目标设备。
5.如权利要求4所述的数据传输方法,其中该可程序化单元用以设定该些第二数据的一数量。
6.如权利要求1所述的数据传输方法,其中转换该第一数据为该些第二数据的步骤包括:
将该第一数据复制为该些第二数据,以使各该第二数据相同于该第一数据。
7.如权利要求1所述的数据传输方法,其中转换该第一数据为该些第二数据的步骤包括:
将该第一数据拆解为该些第二数据,其中各该第二数据不同于该第一数据。
8.如权利要求1所述的数据传输方法,其中该网络接口控制器支持一远程直接存储器存取技术。
9.如权利要求1所述的数据传输方法,其中该网络接口控制器通过网络并且藉由NVMeover Fabrics连接至该些物理远程目标设备。
10.如权利要求1所述的数据传输方法,其中各该物理远程目标设备为一NVMe存储设备。
11.一种主机系统,用于将一第一数据传输至多个物理远程目标设备,所述主机系统包括:
一网络接口控制器,通过网络连接于该些物理远程目标设备并且包括一存储器;以及
一处理器,耦接于该网络接口控制器,用以产生一传输指令以传输该第一数据至该网络接口控制器,
其中该网络接口控制器用以:
转换该第一数据为多段第二数据,并且该些第二数据分别记录于该存储器的多个存储器地址;以及
指示该些物理远程目标设备分别从该存储器的该些存储器地址取得该些第二数据。
12.如权利要求11所述的主机系统,其中该传输指令是用以将一段数据传输至单一个远程目标设备,其中该远程目标设备包括该物理远程目标设备或一虚拟远程目标设备。
13.如权利要求12所述的主机系统,其中该网络接口控制器还用以虚拟为该虚拟远程目标设备。
14.如权利要求13所述的主机系统,其中该网络接口控制器包括:
一可程序化单元,用以:
将该网络接口控制器虚拟为该虚拟远程目标设备;以及
回报该网络接口控制器是连接于单一个远程目标设备至该处理器。
15.如权利要求14所述的主机系统,其中该可程序化单元还用以设定该些第二数据的一数量。
16.如权利要求11所述的主机系统,其中该网络接口控制器在转换该第一数据为该些第二数据时,包括:
将该第一数据复制为该些第二数据,以使各该第二数据相同于该第一数据。
17.如权利要求11所述的主机系统,其中该网络接口控制器在转换该第一数据为该些第二数据时,包括:
将该第一数据拆解为该些第二数据,其中各该第二数据不同于该第一数据。
18.如权利要求11项所述的主机系统,其中该网络接口控制器支持一远程直接存储器存取技术。
19.如权利要求11项所述的主机系统,其中该网络接口控制器通过该网络并且藉由NVMe over Fabrics连接至该些物理远程目标设备。
20.如权利要求11项所述的主机系统,其中各该物理远程目标设备为一NVMe存储设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107110443 | 2018-03-27 | ||
TW107110443A TWI666901B (zh) | 2018-03-27 | 2018-03-27 | 資料傳輸方法與使用此方法的主機系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309087A true CN110309087A (zh) | 2019-10-08 |
CN110309087B CN110309087B (zh) | 2021-01-26 |
Family
ID=68049714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810418342.3A Active CN110309087B (zh) | 2018-03-27 | 2018-05-04 | 数据传输方法与使用此方法的主机系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10698638B2 (zh) |
CN (1) | CN110309087B (zh) |
TW (1) | TWI666901B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11714763B2 (en) * | 2019-10-16 | 2023-08-01 | Intel Corporation | Configuration interface to offload capabilities to a network interface |
US11740804B1 (en) * | 2022-03-15 | 2023-08-29 | Lightbits Labs Ltd. | System and method for performing data striping |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818890A (zh) * | 2005-01-21 | 2006-08-16 | 国际商业机器公司 | 用于实现卸载发起方功能的方法和系统 |
CN101212490A (zh) * | 2006-12-30 | 2008-07-02 | 财团法人工业技术研究院 | 储存装置控制器 |
CN102037448A (zh) * | 2008-05-23 | 2011-04-27 | Arm有限公司 | 主机数据处理设备内的装置仿真支持 |
CN104283938A (zh) * | 2013-07-08 | 2015-01-14 | 英特尔公司 | 用于在存储服务器之间复制数据的技术 |
CN106233263A (zh) * | 2014-02-19 | 2016-12-14 | 斯诺弗雷克计算公司 | 缓存系统及方法 |
CN107533537A (zh) * | 2016-01-29 | 2018-01-02 | 慧与发展有限责任合伙企业 | 远程直接存储器访问 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624156B1 (en) * | 2000-05-23 | 2009-11-24 | Intel Corporation | Method and system for communication between memory regions |
US20060075057A1 (en) * | 2004-08-30 | 2006-04-06 | International Business Machines Corporation | Remote direct memory access system and method |
US7702826B2 (en) * | 2005-12-28 | 2010-04-20 | Intel Corporation | Method and apparatus by utilizing platform support for direct memory access remapping by remote DMA (“RDMA”)-capable devices |
JP5280135B2 (ja) * | 2008-09-01 | 2013-09-04 | 株式会社日立製作所 | データ転送装置 |
US9529542B2 (en) * | 2015-04-14 | 2016-12-27 | E8 Storage Systems Ltd. | Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect |
US10257273B2 (en) * | 2015-07-31 | 2019-04-09 | Netapp, Inc. | Systems, methods and devices for RDMA read/write operations |
US10877922B2 (en) * | 2016-01-29 | 2020-12-29 | Hewlett Packard Enterprise Development Lp | Flushes based on intent log entry states |
US10769098B2 (en) * | 2016-04-04 | 2020-09-08 | Marvell Asia Pte, Ltd. | Methods and systems for accessing host memory through non-volatile memory over fabric bridging with direct target access |
US10891253B2 (en) * | 2016-09-08 | 2021-01-12 | Microsoft Technology Licensing, Llc | Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks |
US10732893B2 (en) * | 2017-05-25 | 2020-08-04 | Western Digital Technologies, Inc. | Non-volatile memory over fabric controller with memory bypass |
US10635529B2 (en) * | 2017-05-25 | 2020-04-28 | Western Digital Technologies, Inc. | Parity offload for multiple data storage devices |
US20190102287A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Remote persistent memory access device |
US10379948B2 (en) * | 2017-10-02 | 2019-08-13 | Western Digital Technologies, Inc. | Redundancy coding stripe based on internal addresses of storage devices |
-
2018
- 2018-03-27 TW TW107110443A patent/TWI666901B/zh active
- 2018-05-04 CN CN201810418342.3A patent/CN110309087B/zh active Active
- 2018-05-29 US US15/992,150 patent/US10698638B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1818890A (zh) * | 2005-01-21 | 2006-08-16 | 国际商业机器公司 | 用于实现卸载发起方功能的方法和系统 |
CN101212490A (zh) * | 2006-12-30 | 2008-07-02 | 财团法人工业技术研究院 | 储存装置控制器 |
CN102037448A (zh) * | 2008-05-23 | 2011-04-27 | Arm有限公司 | 主机数据处理设备内的装置仿真支持 |
CN104283938A (zh) * | 2013-07-08 | 2015-01-14 | 英特尔公司 | 用于在存储服务器之间复制数据的技术 |
CN106233263A (zh) * | 2014-02-19 | 2016-12-14 | 斯诺弗雷克计算公司 | 缓存系统及方法 |
CN107533537A (zh) * | 2016-01-29 | 2018-01-02 | 慧与发展有限责任合伙企业 | 远程直接存储器访问 |
Also Published As
Publication number | Publication date |
---|---|
TWI666901B (zh) | 2019-07-21 |
CN110309087B (zh) | 2021-01-26 |
US20190303046A1 (en) | 2019-10-03 |
US10698638B2 (en) | 2020-06-30 |
TW201943245A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540584B2 (en) | Queue management for direct memory access | |
US10198401B2 (en) | Max pooling in a matrix processing architecture | |
US10713202B2 (en) | Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports | |
KR20200113264A (ko) | 메모리 컨트롤러 | |
US20180284993A1 (en) | Performing data operations in a storage area network | |
EP3343563A1 (en) | Matrix storage using data shifting memory | |
JP2021530813A (ja) | 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間 | |
WO2015031547A1 (en) | Computation hardware with high-bandwidth memory interface | |
CN104657308A (zh) | 一种用fpga实现的服务器硬件加速的方法 | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
JP2021166034A (ja) | ネットワークオンチップによるデータ処理方法及び装置 | |
CN110309087A (zh) | 数据传输方法与使用此方法的主机系统 | |
JP2021507386A (ja) | ニューラルネットワーク処理のための共用メモリの集中型−分散型混合構成 | |
WO2020046643A1 (en) | Method and system for performing parallel computation | |
CN114385236A (zh) | 传递可编程原子操作符到存储器控制器 | |
KR102539571B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR102539572B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN110114762A (zh) | 用于访问作为字节可寻址存储器的非易失性存储器的方法和设备 | |
US8630979B2 (en) | Non-blocking input output based storage | |
JP5500272B2 (ja) | 中継装置、中継履歴記録方法、及びデータ処理装置 | |
US11367498B2 (en) | Multi-level memory hierarchy | |
CN109889456B (zh) | 一种数据传输方法、装置、设备、系统和存储介质 | |
US10592250B1 (en) | Self-refill for instruction buffer | |
CN107025064B (zh) | 一种低延迟高iops的数据访问方法 | |
KR102539574B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |