主机间数据的传输方法

文档序号:6336344阅读:391来源:国知局
专利名称:主机间数据的传输方法
技术领域
本发明涉及一种数据传输方法,特别是涉及一种在二个主机间进行数据的传输方法。
背景技术
计算机间数据的传输相当频繁,故其传输速率将直接影响计算机的效能。在网络技术普及之后,计算机间数据的传输则更为频繁,因此,对于数据传输速率的要求也相对提升。近年来,在服务系统的大量应用下,对于高速数据传输的需求也日益提高。为了提高速据传输速率,支持高可靠性(HA,High Availability),又要使系统尽可能简单、有效,业界提出了基于周边装置组件互连扩充(Peripheral Component Interconnect,PCI Express)的高级交换架构(Advanced Switching Architecture)、基于 PCI Express 的月艮务质量(Quality-Of-Service, Q0S)特性的非透明桥(non-transparent Bridge,NTB)技术,此技术可用来在周边装置组件与外围装置组件间进行数据传输,也可适用于高性能的芯片到芯片、板子到板子、背板和机箱之间的互连。此外,传统在二台主机间的数据传输,则依赖互连网的网络协议来达到,例如传输
网P示十(Transmission Control Protocol/Internet Protocol,TCP/IP)。虽然业界提出了上述两者数据传输的技术,但对于二台主机间的数据传输,未同时具有高可靠性、架构简单且传输速率高的技术。

发明内容
本发明所要解决的技术问题在于提供一种主机间高传输速率数据传输的方法。本发明适于将一第一主机的数据传输至一第二主机,第一主机与第二主机间具有一周边装置组件互连扩充(Peripheral Component hterconnect,PCIExpress),所提出的技术手段包括下述步骤于该第一主机的一内存建立一来源缓冲区,并切割该来源缓冲区为多个来源区块;于该第二主机的一内存建立与该来源缓冲区映射的一目的映射区及多个目的区块;该第一主机将该数据转成数据段及其元数据并写入该些来源区块;该第一主机向该第二主机发送一中断通知,通知该第二主机接收数据;以及该第二主机将该来源区块的该元数据及该数据段依序写入该目的区块。其中,第一主机与该第二主机间具有一周边装置组件互连扩充。本发明与现有技术相互比较时,具备下列特性及优点1.不需借助外部其它硬件,通过软硬件结合方式,达到二主机间的数据传输。2.提高二主机间数据传输速度。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为依据本发明的硬件架构示意图2为依据本发明第一实施例的流程示意图。
具体实施例方式下面配合图表将本发明较佳实施例说明如下请参照图1,为依据本发明的硬件架构示意图。本发明的主机间数据的传输方法适于将第一主机20的数据传输至第二主机30。第一主机20与第二主机30间以周边装置组件互连扩充 40 (Peripheral Component Interconnect, PCIExpress)互连。第一主机20与第二主机30可以是但不限于服务器,第一主机20与第二主机30 可以分别为本地与远程的服务主机。以下实施例的说明是以从第一主机20发送数据至第二主机30为例进行说明,但本发明并不以此为限制,也可将本发明应用于将第二主机30的数据发送至第一主机20的应用上。从图中可以看见,第一主机20包含内存22(也可称本地物理内存,localphysical memory)及上层缓冲洸(upper layer receive buffer)。第二主机30也包含内存32及上层缓冲36。上层缓冲沈,36可以分别是第一主机20及第二主机30的应用层。第一主机20可在内存22建立(或称划分)缓冲区M (也可称传输缓冲区),而缓冲区M可以被切割成多个区块Ma,Mb,Mc,以本实施例而言,缓冲区M可以称为来源缓冲区对,而区块则可称为是来源区块Ma,24b, 24c0同样的第二主机30可在内存32建立目的缓冲区34 (以下称目的映射区)及多个目的区块34a,34b,34c。来源组冲区M及目的映射区34对第一主机20与第二主机30均为可见的。在本实施例中,第一主机20先将待传送的数据置于上层缓冲沈(也可称为上层的待传数据,upper layer data to be sent),其后第一主机20通过与第二主机30间的周边装置组件互连扩充将数据发送给第二主机30。第二主机30在接收到数据后,则将之上传至上层缓冲36,供第二主机30使用。接着,请参考图2,为依据本发明第一实施例的流程示意图。图中可以得知,主机间数据的传输方法包含下述步骤步骤S50 于第一主机20的内存22建立来源缓冲区24,并切割来源缓冲区M为多个来源区块24a,24b, 24c ;步骤S52 于第二主机30的内存32建立与来源缓冲区M映射的目的映射区34及多个目的区块Ma,:34b,:34c ;步骤S54 第一主机20将待传数据转成数据段及其元数据(Meta Data)并写入来源区块 24a,24b,24c ;步骤S56 第一主机20向第二主机30发送一中断通知,通知第二主机30接收数据;以及步骤S58 第二主机30将来源区块Ma,24b, 24c的元数据及数据段依序写入目的区块 34a,34b,34c。如上所述,第一主机20在进行数据传输时,先将待传数据置于上层缓冲沈,而在将数据置于上层缓冲26之前或之后,可以执行上述步骤S50及S52,此两步骤是用来建立来源缓冲区24、来源区块Ma,24b, 24c,目的映射区34、及目的区块:34a,34b, 34c,以做为数据传输使用。此来源缓冲区M与目的映射区34较佳的为连续的物理内存。每个来源区块及目的区块是相互映射的,故两者的大小相同,其大小可以是但不限于2048兆字节Q048 Mega Bytes)。接着,进行步骤S54,即第一主机20将位于上层缓冲沈的待传数据拷贝(或称写入)到来源缓冲区M中的来源区块Ma,Mb J4c,其中,第一主机20在进行拷贝数据的同时,先解析待传数据,并制作对应的元数据及数据段后再将元数据及数据段拷贝至来源区块Ma,24b, 24c,也就是说,每个被拷贝的来源区块Ma,24b, 24c中均具有元数据及数据段,而元数据包含了在该来源区块Ma,24b, 24c中的数据段的数据长度及标记,标记可以是但不限于整型数据标示、或字符串信息。数据标示可以是一个旗标(Flag)或一个比特 (Bit),用来表示是新数据(New Data)或脏数据(Dirty Data)。当第一主机20将待传数据拷贝至来源区块Ma,24b, 24c时,待传数据可能仅占用一个来源区块Ma,24b, 24c,也可能占用多个来源区块24a,24b, Mc,但第一主机20均会对写入的来源区块Ma,24b, 24c的元数据的数据标示设定(或称更新)为新数据,第一主机20对于第二主机已经收过的数据, 则会将其元数据中的数据标示(或称更新)为脏数据。其后,进行步骤S56,第一主机20向第二主机30发送一中断通知,通知第二主机 30接收数据。第一主机20发出中断通知的时机点可以是写入来源区块的数据段个数达到一预定值时,第一主机20向第二主机30发出中断通知,也可以是在第一主机20前次发出中断通知后累计的时间已到达一预定时间时,第一主机20向第二主机30发出中断通知。此两种发出中断的时机判断方式可以单独使用,也可结合使用,也即可以在预定时间到达,或预定值(数据段个数)到达时,第一主机20均向第二主机30发出中断通知。接着,进行步骤S58,第二主机30依次解析来源区块Ma,24b, 24c的元数据并接收数据,然后更新数据标记。第二主机30也可解析来源区块Ma,Mb,2 中元数据的数据标示,来判断要将那些来源区块Ma,24b, 24c的元数据及数据段写入目的区块34a,34b,34c, 例如,第二主机30是将数据标示为新数据的来源区块Ma,24b, 24c写入目的区块34a,34b, 34c。而为了能提高数据传输的速度,第一主机20在写入来源区块Ma,24b, 24c时,可采用依据写入的方式完成,而第二主机30也是采用依据方式写入目的区块34a,34b,34c。此外, 第二主机30可依据中断通知的地址信息,将来源区块Ma,24b, 24c的元数据及数据段依序写入目的区块34a,34b,34c。上述步骤S58,第二主机30依据中断通知至来源区块Ma,Mb,2k进行数据拷贝的程序时,第二主机30除了拷贝第一主机20在发出中断通知前已写入的来源区块Ma, 24b, 24c外,若第一主机20在发出该中断通知后,已从上层缓冲沈拷贝了其它待传数据至来源区块Ma,24b, 24c时,第二主机30也会在第一主机20再次发出中断通知之前,将已经完成拷贝(标示为新数据)的来源区块Ma,Mb,2 —并依序拷贝(写入)至第二主机30 的目的区块34a,34b,34c中,如此一来,即可提升数据传输的速度。再者,在步骤S58之后,当第二主机30将全部该来源区块Ma,24b, 24c中的元数据及数据段写入目的区块34a,34b,34c之后(即全部数据段读取完毕),第二主机30启动中断以应答(或称响应)该第一主机20。第一主机20在接到第二主机30的应答后,即将已被收过的来源区块Ma,Mb,Mc中的元数据的数据标示更新为脏数据。而第二主机30 也将目的区块34a,34b,34c的元数据标示为脏数据。当来源区块Ma,Mb,Mc及目的区块;34a,:34b,:34c到达末端(例如图1的右端24c, 34c)时,第一主机20及第二主机30即返回始端(例如图1的左端Ma,34a)重新检索数据标示,在数据标示为脏数据时,即循环利用,可以新的待传数据再依序写入始端的来源区块Ma,24b, 24c及目的区块:34a,34b, 34c,如此一来,即可循环利用空间。第二主机30还可解析目的区块:34a,34b, 34c中的元数据,进一步将数据段上传至上层缓冲36,以供应用层使用。通过上述的步骤,即可有效的完成两主机间的数据传输,依据实作,采用传统非透明桥(NTB)的映像传送数据,传输效能只能达到每秒400兆字节GOOMB/s),而采用本发明, 则可以达到每秒500兆字节,传输速率明显提升了 25%,而若是采用互连网的网络协议,则所能传输的速率将更低。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种主机间数据的传输方法,适于将一第一主机的一数据传输至一第二主机,该第一主机与该第二主机间以一周边装置组件互连扩充互连,其特征在于,包含于该第一主机的一内存建立一来源缓冲区,并切割该来源缓冲区为多个来源区块;于该第二主机的一内存建立与该来源缓冲区映射的一目的映射区及多个目的区块;该第一主机将该数据转成一数据段及一元数据并写入该些来源区块;该第一主机向该第二主机发送一中断通知,通知该第二主机接收该数据;以及该第二主机将该来源区块的该元数据及该数据段依序写入该目的区块。
2.根据权利要求1所述的主机间数据的传输方法,其特征在于,所述该第一主机向该第二主机发送该中断通知的步骤为在被写入该来源区块的该数据段个数到达一预定值时, 该第一主机向该第二主机发送该中断通知。
3.根据权利要求1所述的主机间数据的传输方法,其特征在于,所述该第一主机向该第二主机发送该中断通知的步骤为在写入该来源区块的累计时间到达一预定时间时,该第一主机向该第二主机发送该中断通知。
4.根据权利要求1所述的主机间数据的传输方法,其特征在于,包含当该第二主机将全部该来源区块中的该元数据及该数据段写入该目的区块之后,该第二主机应答该第一主机。
5.根据权利要求1所述的主机间数据的传输方法,其特征在于,该元数据包含数据长度及标记。
6.根据权利要求1所述的主机间数据的传输方法,其特征在于,在所述该第二主机将该来源区块的该元数据及该数据段写入该目的区块之后包含将该目的区块的该元数据标示为脏数据。
全文摘要
本发明公开一种主机间数据的传输方法,适于具有外围装置组件互连扩充的二主机间的数据传输,传输方法包含于第一主机的一内存建立来源缓冲区并切割成来源区块、于第二主机的一内存建立目的映像区并切割成目的区块、第一主机将待传数据转成数据段及其元数据并写入来源区块、第一主机向第二主机发送中断通知以通知第二主机接收数据、以及第二主机将接收到的元数据及数据段依序写入目的区块,通过此方法,可以提高主机间数据传输的效率。
文档编号G06F13/38GK102467479SQ20101055080
公开日2012年5月23日 申请日期2010年11月17日 优先权日2010年11月17日
发明者吴清秀, 陈志丰 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1