CN107329917A - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN107329917A CN107329917A CN201710494913.7A CN201710494913A CN107329917A CN 107329917 A CN107329917 A CN 107329917A CN 201710494913 A CN201710494913 A CN 201710494913A CN 107329917 A CN107329917 A CN 107329917A
- Authority
- CN
- China
- Prior art keywords
- data
- transparent bridge
- mapping area
- address
- pointer
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明提出一种数据传输装置,包括:将待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;如果数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息,则从数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;将数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。采用上述数据传输方法,能够提高对非透明桥映射区域的利用率。
Description
技术领域
本发明涉及数据通信技术领域,尤其涉及一种数据传输方法及装置。
背景技术
随着传统存储系统的发展,对于多控制器互联通信的带宽性能要求也越来越高,而非透明桥(Non-Transparent Bridge,NTB)这种新型的硬件通信方式也随着高速串行计算机扩展总线标准的不断成熟而发展起来。NTB是一种点对点的通信方式,可以使数据传输节点访问另一数据传输节点的一段内存空间,从而实现数据通信,其主要优点是通信速度快,完全内存操作,可靠性高,延时低,基本无抖动。
目前常用的NTB数据传输方式是,将数据传输节点中用于NTB数据传输的NTB映射空间进行等量分割,得到大小相等的子存储区域,然后完全按照数组的方式占用子存储区域。为了保证每个子存储区域都能够完全容纳存储的数据,应当设置划分的子存储区域足够大。但是,事实上不同数据包的数据量大小并不是完全一样的,而每个数据包的数据量大小也未必达到子存储区域所能容纳的数据量大小。因此,利用固定不变的存储区域来存储数据量大小变化的数据包,势必带来存储区域的浪费。
发明内容
基于上述现有技术的缺陷和不足,本发明提出一种数据传输方法及装置,能够防止对非透明桥映射区域的存储区域浪费,提高对非透明桥映射区域的利用率。
本发明第一方面提出一种数据传输方法,包括:根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;如果所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息,则从所述数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;将所述数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。通过上述内容可见,本发明不对非透明桥映射区域划分存储区间,而是为非透明桥映射区域设置写入指针,通过写入指针指示数据写入地址,同时为数据添加属性标识信息,用以区分不同的数据信息,从而实现了对非透明桥映射区域的高效利用。
本发明第二方面提出一种数据传输装置,包括:数据处理单元,用于根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;判断单元,用于判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;数据写入单元,用于当所述判断单元判断所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息时,从所述数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;指针调整单元,用于将所述数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。
在一种实现方式中,所述根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息,包括:将待传输的数据封装为payload结构体数据;根据所述待传输的数据,为所述payload结构体数据添加属性标识信息、payload属性信息;根据所述属性标识信息,为所述payload结构体数据添加校验信息;为所述payload结构体数据添加起始符和结束符,得到具备特有属性的数据信息。
在一种实现方式中,所述判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息,包括:判断数据接收端的非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;如果所述数据接收端的非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,则确认数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息;如果所述数据接收端的非透明桥映射区域的读取指针不指向所述非透明桥映射区域的末端地址,则进一步判断从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,是否足够容纳所述数据信息;如果从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,足够容纳所述数据信息,则确认所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息。
本发明第三方面提出另一种数据传输方法,包括:判断非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;如果所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,则判断内存空间是否足够容纳所述非透明桥映射区域中存储的所有数据信息;其中,所述所有数据信息包括从所述非透明桥映射区域起始地址,到所述非透明桥映射区域的写入指针所指向的地址所包含的地址范围内存储的,由数据发送端写入的数据信息;如果内存空间足够容纳所述非透明桥映射区域中存储的所有数据信息,则读取所述非透明桥映射区域中存储的所有数据信息,并将所述写入指针指向所述非透明桥映射区域的起始地址;如果内存空间不足够容纳所述非透明桥映射区域中存储的所有数据信息,则从所述非透明桥映射区域的起始地址开始,读取数据信息,并将所述非透明桥映射区域的读取指针,指向所述非透明桥映射区域中剩余数据信息的起始地址;其中,读取的数据信息量,不超过内存空间所能容纳的最大数据量;如果所述非透明桥映射区域的读取指针不是指向所述非透明桥映射区域的末端地址,则读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息。可见,在上述技术方案中,数据接收端并不是以存储区间为单位读取数据信息,而是根据非透明桥映射区域的读取指针所指向的地址为依据读取数据信息。也就是说数据的存储不是以存储区间为单位存储的,而是以非透明桥映射区域中的写入指针所指向的地址为依据存储的,从而避免了为非透明桥映射区域划分存储区间而导致存储空间浪费,提高了对非透明映射区域的利用率。
本发明第四方面提出另一种数据传输装置,包括:第一判断单元,用于判断非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;第二判断单元,用于当所述第一判断单元判断所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址时,判断内存空间是否足够容纳所述非透明桥映射区域中存储的所有数据信息;其中,所述所有数据信息包括从所述非透明桥映射区域起始地址,到所述非透明桥映射区域的写入指针所指向的地址所包含的地址范围内存储的,由数据发送端写入的数据信息;第一处理单元,用于当所述第二判断单元判断内存空间足够容纳所述非透明桥映射区域中存储的所有数据信息时,读取所述非透明桥映射区域中存储的所有数据信息,并将所述写入指针指向所述非透明桥映射区域的起始地址;第二处理单元,用于当所述第二判断单元判断内存空间不足够容纳所述非透明桥映射区域中存储的所有数据信息时,从所述非透明桥映射区域的起始地址开始,读取数据信息,并将所述非透明桥映射区域的读取指针,指向所述非透明桥映射区域中剩余数据信息的起始地址;其中,读取的数据信息量,不超过内存空间所能容纳的最大数据量;第三处理单元,用于当所述第一判断单元判断所述非透明桥映射区域的读取指针不是指向所述非透明桥映射区域的末端地址时,读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息。
在一种实现方式中,所述读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,包括:判断内存空间是否足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;如果内存空间足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则直接读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;如果所述内存空间不足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则重复申请内存,并从所述非透明桥映射区域中读取数据信息,同时调整所述非透明桥映射区域的读取指针所指向的地址,直到所述非透明桥映射区域中的数据信息被读取完毕;将所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,并将所述写入指针指向所述非透明桥映射区域的起始地址。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例提供的一种数据传输方法的流程示意图;
图2是本发明实施例提供的一种数据传输装置的结构示意图;
图3是本发明实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
本发明实施例技术方案适用于非透明桥数据传输场景,能够更灵活地利用非透明桥映射区域实现数据传输,提高存储空间利用效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种数据传输方法,参见图1所示,该方法包括:
S101、数据发送端将待传输数据封装为payload结构体数据;
具体的,上述待传输数据是指数据发送端需要通过输入输出(Input/Output,IO)端口发送给数据接收端的数据。而payload结构体是NTB数据传输方式所采用的数据结构。
本发明实施例将原本可以通过IO数据端口传输的数据,封装为适用于NTB数据传输的payload结构体,在后续的处理过程中,可以实现采用基于NTB数据传输的高效数据传输。
S102、数据发送端根据数据待传输的数据,为封装得到的payload结构体数据添加属性标识信息、payload属性信息;
具体的,属性标识信息、payload属性信息,是用来标识待传输的数据属性的信息。
具体的设置方法包括:如果待传输数据是加密的数据,则将加密属性信息设置为1;如果待传输的数据是压缩数据,则将压缩属性信息设置为1;如果待传输的数据存在校验信息,则将校验属性信息设置为1;如果PCIE link状态不好,即error_counter寄存器的值大于1000,则将自我校验属性信息设置为1。
在具体应用本发明实施例技术方案的应用场景中,根据待传输数据的属性信息,还可以设置更多实行标识信息。
而payload属性信息,是表征payload结构体数据大小的信息,将payload结构体数据的大小直接写入payload属性信息中即可。Payload属性信息是8字节的,可以表示263字节,这个字节数可以满足工程要求,因此认为payload结构体数据的大小可以为任意正整数值。
S103、数据发送端根据payload结构体数据的属性标识信息,为payload结构体数据添加校验信息;
具体的,上述步骤S102中为payload结构体数据添加的属性标识信息、payload属性信息作为payload结构体数据的前缀,而步骤S103用于根据payload结构体数据的前缀,为其添加校验信息作为其后缀。
如果payload结构体数据的属性标识信息中自我校验属性值为1,则计算得到payload结构体数据的MD5校验的值,作为payload结构体数据的校验信息,同时作为payload结构体数据的后缀。
需要说明的是,如果payload结构体数据的属性标识信息中的自我校验属性值不为1,则可以不用为payload结构体数据添加校验信息。
S104、数据发送端为payload结构体数据添加起始符和结束符,得到具备特有属性的,需要发送的数据信息;
具体的,payload结构体数据的起始符和结束符是用于标识payload结构体数据的开头可结尾的标识符。本发明实施例采用一对设定数值,分别作为payload结构体数据的起始符和结束符。例如,将起始符设置为0x3d3d,而将终止符设置为0xd3d3。
经过步骤S101~S104,实现了待传输数据的数据结构转变,转变成适用于NTB数据传输的数据结构类型,并且得到的数据信息中,包含区别于其它数据信息的属性信息,以及标识数据起止的起始符和结束符。
由于转换得到的数据信息包含特有的属性标识信息,以及包含起始符和结束符,因此将上述数据信息直接存入NTB映射区域,不会导致无法区别不同数据信息。
S105、数据发送端判断数据接收端的非透明桥映射区域的读取指针是否指向非透明桥映射区域的末端地址;
具体的,本发明实施例为进行数据传输的数据收发节点分别配置写入指针offset-in和读取指针offset-out。当数据收发节点写入数据时,写入指针offset-in随着数据的写入而变动,保证写入指针offset-in始终指向节点中存储的数据的末端地址;当数据收发节点读取数据时,读取指针offset-out随着数据的读出而变动,保证读取指针offset-out始终指向节点中剩余数据的开始地址。
需要说明的是,本发明实施例中,向NTB映射区域写入数据,或从NTB映射区域读取数据,都是从NTB映射区域的起始地址开始,到NTB映射区域的末端地址结束。由于数据收发节点分别具备写入指针offset-in和读取指针offset-out,并且写入指针offset-in和读取指针offset-out之间相互独立移动,因此数据收发节点之间可以实现全双工的数据传输工作。
当数据发送端需要向数据接收端的NTB映射区域写入数据信息时,数据发送端首先判断数据接收端的NTB映射区域的读取指针offset-out是否指向NTB映射区域的末端地址,即读取指针offset-out是否为最大值。
如果数据接收端的NTB映射区域的读取指针offset-out指向数据接收端的NTB映射区域的末端地址,则确认数据接收端的NTB映射区域的空闲区域的大小足够容纳所需发送的数据信息;
具体的,按照本发明实施例对NTB映射区域写入指针offset-in和读取指针offset-out的执行规则的设定,本发明实施例设定,当数据收发节点的NTB映射区域中的数据信息被全部读取完毕时,数据收发节点的读取指针offset-out指向NTB映射区域的末端地址。并且,本发明实施例设定,NTB映射区域的存储空间大小,足够容纳单次数据传输所传输的数据信息的大小。因此,当数据发送端判断数据接收端的NTB映射区域的读取指针offset-out指向数据接收端的NTB映射区域的末端地址时,也就相当于确认数据接收端的NTB映射区域为全空区域,数据接收端的NTB映射区域的空闲区域的大小足够容纳所需发送的数据信息。
如果数据接收端的NTB映射区域的读取指针offset-out不指向NTB映射区域的末端地址,则数据发送端执行步骤S106、判断从数据接收端的NTB映射区域的写入指针offset-in所指向的地址,到NTB映射区域的末端地址所包含的地址范围,是否足够容纳需要发送的数据信息;
具体的,如果数据接收端的NTB映射区域的读取指针offset-out不指向NTB映射区域的末端地址,则说明NTB映射区域中还剩余数据信息没有读取完毕,则应该从上次写入数据信息的结束地址开始继续向NTB映射区域写入数据信息。按照NTB映射区域的写入指针offset-in的指向规则,NTB映射区域的写入指针offset-in就是指向的NTB映射区域已经存入的数据信息的结束地址。此时在数据接收端的NTB映射区域中的,从写入指针offset-in所指向的地址,到NTB映射区域的末端地址所包含的地址范围,为NTB映射区域的空闲区域。因此,此时本发明实施例判断从数据接收端的NTB映射区域的写入指针offset-in所指向的地址,到NTB映射区域的末端地址所包含的地址范围,是否足够容纳需要发送的数据信息。
如果从数据接收端的NTB映射区域的写入指针offset-in所指向的地址,到数据接收端的NTB映射区域的末端地址所包含的地址范围,足够容纳需要发送的数据信息,则确认数据接收端的NTB映射区域的空闲区域的大小足够容纳需要发送的数据信息。
当判断数据接收端的NTB映射区域的空闲区域的大小足够容纳需要发送的数据信息时,数据发送端执行步骤S107、从数据接收端的NTB映射区域的写入指针offset-in所指向的地址开始,写入需要发送的数据信息;
在向数据接收端的NTB映射区域写入数据信息后,数据发送端执行步骤S108、将数据接收端的NTB映射区域的写入指针offset-in指向写入的数据信息的末端地址;
具体的,在向数据接收端的NTB映射区域写入数据信息后,写入数据信息的数据发送端将数据接收端的NTB映射区域的写入指针offset-in指向写入的数据信息的结束地址,方便下次向数据接收端写入数据时,快速找到写入的起始地址。
数据接收端在读取NTB映射区域中的数据信息时,首先执行步骤S109、判断NTB映射区域的读取指针offset-out是否指向NTB映射区域的末端地址;
如果NTB映射区域的读取指针offset-out指向NTB映射区域的末端地址,则数据接收端执行步骤S110、判断内存空间是否足够容纳NTB映射区域中存储的所有数据信息;
具体的,当NBT映射区域的读取指针offset-out指向NTB映射区域的末端地址时,说明从NTB映射区域的起始地址开始,到NTB映射区域的写入指针offset-in所指向的地址所包含的地址范围内的所有数据信息,为待读取的数据信息。此时,数据接收端判断内存空间是否足够容纳NTB映射区域中待读取的数据信息。
如果数据接收端判断内存空间足够容纳NTB映射区域中待读取的数据信息,则数据接收端执行步骤S111、读取NTB映射区域中存储的所有数据信息,即上述待读取的数据信息,并将写入指针offset-in指向NTB映射区域的起始地址;
具体的,数据接收端在读取NTB映射区域中的所有数据信息后,NTB映射区域为空,此时将写入指针offset-in指向NTB映射区域的起始地址,下次向NTB映射区域写入数据时,从NTB映射区域的起始地址开始写入。
如果数据接收端判断内存空间不足够容纳NTB映射区域中存储的所有数据信息,则执行步骤S112、从NTB映射区域的起始地址开始,读取数据信息,并将NTB映射区域的读取指针offset-out,指向NTB映射区域中剩余数据信息的起始地址;
具体的,如果内存空间不足够容纳NTB映射区域中存储的所有数据信息,则数据接收端不能一次性读取所有的数据信息,只能分批次读取NTB映射区域中存储的数据信息。
数据接收端每次读取的数据信息,不超过内存空间所能容纳的数据信息的最大值,并且,数据接收端每次读取数据信息后,将读取指针offset-out指向NTB映射区域中剩余数据信息的起始地址,下次读取数据信息时,从读取指针offset-out所指向的地址开始读取。
如果数据接收端判断NTB映射区域的读取指针offset-out不是指向NTB映射区域的末端地址,则执行步骤S113、判断内存空间是否足够容纳NTB映射区域中的,从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的数据信息;
具体的,如果数据接收端的NTB映射区域的读取指针offset-out不是指向NTB映射区域的末端地址,则表示在NTB映射区域中,从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的数据信息,为待读取的数据信息。此时,数据接收端判断内存空间是否足够容纳NTB映射区域中的,从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的,待读取的数据信息。
如果内存空间足够容纳NTB映射区域中的,从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的,待读取的数据信息,则数据接收端执行步骤S114、读取从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的,待读取的数据信息;
如果内存空间不足够容纳NTB映射区域中的,从读取指针offset-out所指向的地址,到写入指针offset-in所指向的地址所包含的地址范围内存储的,待读取的数据信息,则数据接收端执行步骤S115、重复申请内存,并从NTB映射区域中读取数据信息,同时调整NTB映射区域的读取指针offset-out所指向的地址,直到NTB映射区域中的数据信息被读取完毕;
具体的,数据接收端在申请内存后,每次从NTB映射区域中读取数据信息时,都调整NTB映射区域的读取指针offset-out指向NTB映射区域中剩余数据信息的起始地址。
当数据接收端读取NTB映射区域中的所有数据信息后,执行步骤S116、将NTB映射区域的读取指针offset-out指向NTB映射区域的末端地址,并将写入指针offset-in指向NTB映射区域的起始地址。
通过上述对本发明实施例技术方案的执行过程的介绍可见,本发明实施例对数据收发节点的非透明桥映射区域,不再统一划分存储区间,而是为所传输的数据信息添加属性标识信息以及起止符,用以区分数据信息。同时,为非透明桥映射区域设置写入指针和读取指针,标记数据写入和读取地址。在数据读写过程中,实现了对非透明桥映射区域的更高效利用,防止了对非透明桥映射区域的浪费。
图2是本发明实施例公开的一种数据传输装置,包括:数据处理单元201,用于根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;判断单元202,用于判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;数据写入单元203,用于当所述判断单元202判断所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息时,从所述数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;指针调整单元204,用于将所述数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。
具体的,本实施例中各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。
图3是本发明实施例公开的另一种数据传输装置,包括:第一判断单元301,用于判断非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;第二判断单元302,用于当所述第一判断单元301判断所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址时,判断内存空间是否足够容纳所述非透明桥映射区域中存储的所有数据信息;其中,所述所有数据信息包括从所述非透明桥映射区域起始地址,到所述非透明桥映射区域的写入指针所指向的地址所包含的地址范围内存储的,由数据发送端写入的数据信息;第一处理单元303,用于当所述第二判断单元302判断内存空间足够容纳所述非透明桥映射区域中存储的所有数据信息时,读取所述非透明桥映射区域中存储的所有数据信息,并将所述写入指针指向所述非透明桥映射区域的起始地址;第二处理单元304,用于当所述第二判断单元302判断内存空间不足够容纳所述非透明桥映射区域中存储的所有数据信息时,从所述非透明桥映射区域的起始地址开始,读取数据信息,并将所述非透明桥映射区域的读取指针,指向所述非透明桥映射区域中剩余数据信息的起始地址;其中,读取的数据信息量,不超过内存空间所能容纳的最大数据量;第三处理单元305,用于当所述第一判断单元301判断所述非透明桥映射区域的读取指针不是指向所述非透明桥映射区域的末端地址时,读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息。
具体的,本实施例中各个单元的具体工作内容,请参见上述方法实施例的内容,此处不再赘述。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据传输方法,其特征在于,应用于数据发送端,该方法包括:
根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;
判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;
如果所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息,则从所述数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;
将所述数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。
2.根据权利要求1所述的方法,其特征在于,所述根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息,包括:
将待传输的数据封装为payload结构体数据;
根据所述待传输的数据,为所述payload结构体数据添加属性标识信息、payload属性信息;
根据所述属性标识信息,为所述payload结构体数据添加校验信息;
为所述payload结构体数据添加起始符和结束符,得到具备特有属性的数据信息。
3.根据权利要求1所述的方法,其特征在于,所述判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息,包括:
判断数据接收端的非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;
如果所述数据接收端的非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,则确认数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息;
如果所述数据接收端的非透明桥映射区域的读取指针不指向所述非透明桥映射区域的末端地址,则进一步判断从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,是否足够容纳所述数据信息;
如果从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,足够容纳所述数据信息,则确认所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息。
4.一种数据传输方法,其特征在于,应用于数据接收端,该方法包括:
判断非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;
如果所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,则判断内存空间是否足够容纳所述非透明桥映射区域中存储的所有数据信息;其中,所述所有数据信息包括从所述非透明桥映射区域起始地址,到所述非透明桥映射区域的写入指针所指向的地址所包含的地址范围内存储的,由数据发送端写入的数据信息;
如果内存空间足够容纳所述非透明桥映射区域中存储的所有数据信息,则读取所述非透明桥映射区域中存储的所有数据信息,并将所述写入指针指向所述非透明桥映射区域的起始地址;
如果内存空间不足够容纳所述非透明桥映射区域中存储的所有数据信息,则从所述非透明桥映射区域的起始地址开始,读取数据信息,并将所述非透明桥映射区域的读取指针,指向所述非透明桥映射区域中剩余数据信息的起始地址;其中,读取的数据信息量,不超过内存空间所能容纳的最大数据量;
如果所述非透明桥映射区域的读取指针不是指向所述非透明桥映射区域的末端地址,则读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息。
5.根据权利要求4所述的方法,其特征在于,所述读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,包括:
判断内存空间是否足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;
如果内存空间足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则直接读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;
如果所述内存空间不足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则重复申请内存,并从所述非透明桥映射区域中读取数据信息,同时调整所述非透明桥映射区域的读取指针所指向的地址,直到所述非透明桥映射区域中的数据信息被读取完毕;
将所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,并将所述写入指针指向所述非透明桥映射区域的起始地址。
6.一种数据传输装置,其特征在于,应用于数据发送端,该装置包括:
数据处理单元,用于根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息;其中,所述待传输的数据的特有属性用于标识所述待传输的数据;
判断单元,用于判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息;
数据写入单元,用于当所述判断单元判断所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息时,从所述数据接收端的非透明桥映射区域的写入指针所指向的地址开始,写入所述数据信息;
指针调整单元,用于将所述数据接收端的非透明桥映射区域的写入指针,指向所述数据信息的末端地址。
7.根据权利要求6所述的装置,其特征在于,所述数据处理单元根据待传输的数据,将所述待传输的数据封装为具备特有属性的数据信息时,具体用于:
将待传输的数据封装为payload结构体数据;根据所述待传输的数据,为所述payload结构体数据添加属性标识信息、payload属性信息;根据所述属性标识信息,为所述payload结构体数据添加校验信息;为所述payload结构体数据添加起始符和结束符,得到具备特有属性的数据信息。
8.根据权利要求6所述的装置,其特征在于,所述判断单元判断数据接收端的非透明桥映射区域的空闲区域的大小是否足够容纳所述数据信息时,具体用于:
判断数据接收端的非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;
如果所述数据接收端的非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,则确认数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息;
如果所述数据接收端的非透明桥映射区域的读取指针不指向所述非透明桥映射区域的末端地址,则进一步判断从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,是否足够容纳所述数据信息;
如果从所述数据接收端的非透明桥映射区域的写入指针所指向的地址,到所述数据接收端的非透明桥映射区域的末端地址所包含的地址范围,足够容纳所述数据信息,则确认所述数据接收端的非透明桥映射区域的空闲区域的大小足够容纳所述数据信息。
9.一种数据传输装置,其特征在于,应用于数据接收端,该装置包括:
第一判断单元,用于判断非透明桥映射区域的读取指针是否指向所述非透明桥映射区域的末端地址;
第二判断单元,用于当所述第一判断单元判断所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址时,判断内存空间是否足够容纳所述非透明桥映射区域中存储的所有数据信息;其中,所述所有数据信息包括从所述非透明桥映射区域起始地址,到所述非透明桥映射区域的写入指针所指向的地址所包含的地址范围内存储的,由数据发送端写入的数据信息;
第一处理单元,用于当所述第二判断单元判断内存空间足够容纳所述非透明桥映射区域中存储的所有数据信息时,读取所述非透明桥映射区域中存储的所有数据信息,并将所述写入指针指向所述非透明桥映射区域的起始地址;
第二处理单元,用于当所述第二判断单元判断内存空间不足够容纳所述非透明桥映射区域中存储的所有数据信息时,从所述非透明桥映射区域的起始地址开始,读取数据信息,并将所述非透明桥映射区域的读取指针,指向所述非透明桥映射区域中剩余数据信息的起始地址;其中,读取的数据信息量,不超过内存空间所能容纳的最大数据量;
第三处理单元,用于当所述第一判断单元判断所述非透明桥映射区域的读取指针不是指向所述非透明桥映射区域的末端地址时,读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息。
10.根据权利要求9所述的装置,其特征在于,所述第三处理单元读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息时,具体用于:
判断内存空间是否足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;
如果内存空间足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则直接读取所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息;
如果所述内存空间不足够容纳所述非透明桥映射区域中的,从所述读取指针所指向的地址,到所述写入指针所指向的地址所包含的地址范围内存储的数据信息,则重复申请内存,并从所述非透明桥映射区域中读取数据信息,同时调整所述非透明桥映射区域的读取指针所指向的地址,直到所述非透明桥映射区域中的数据信息被读取完毕;
将所述非透明桥映射区域的读取指针指向所述非透明桥映射区域的末端地址,并将所述写入指针指向所述非透明桥映射区域的起始地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710494913.7A CN107329917A (zh) | 2017-06-26 | 2017-06-26 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710494913.7A CN107329917A (zh) | 2017-06-26 | 2017-06-26 | 一种数据传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107329917A true CN107329917A (zh) | 2017-11-07 |
Family
ID=60195646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710494913.7A Pending CN107329917A (zh) | 2017-06-26 | 2017-06-26 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329917A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086008A (zh) * | 2018-07-26 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN109491840A (zh) * | 2018-11-19 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种数据传输方法和装置 |
CN115202938A (zh) * | 2022-09-13 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 一种非透明桥管理方法、装置、控制器及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN101639811A (zh) * | 2009-08-21 | 2010-02-03 | 成都市华为赛门铁克科技有限公司 | 数据写入的方法、控制器和多控制器系统 |
CN101937326A (zh) * | 2010-08-31 | 2011-01-05 | 广东威创视讯科技股份有限公司 | 一种多cpu并行视频处理系统、级联系统及其方法 |
CN102521179A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业股份有限公司 | 一种dma读操作的实现装置和方法 |
CN104038569A (zh) * | 2014-06-24 | 2014-09-10 | 浪潮电子信息产业股份有限公司 | 一种基于地址映射的集群通信模型 |
US20150026380A1 (en) * | 2013-07-22 | 2015-01-22 | Futurewei Technologies, Inc. | Scalable Direct Inter-Node Communication Over Peripheral Component Interconnect-Express (PCIe) |
CN106484652A (zh) * | 2016-10-26 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于ntb硬件的多队列通信方法及系统 |
-
2017
- 2017-06-26 CN CN201710494913.7A patent/CN107329917A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540523A (zh) * | 2003-10-30 | 2004-10-27 | 中兴通讯股份有限公司 | 单任务快速缓冲读写方法 |
CN101639811A (zh) * | 2009-08-21 | 2010-02-03 | 成都市华为赛门铁克科技有限公司 | 数据写入的方法、控制器和多控制器系统 |
CN101937326A (zh) * | 2010-08-31 | 2011-01-05 | 广东威创视讯科技股份有限公司 | 一种多cpu并行视频处理系统、级联系统及其方法 |
CN102521179A (zh) * | 2011-11-28 | 2012-06-27 | 曙光信息产业股份有限公司 | 一种dma读操作的实现装置和方法 |
US20150026380A1 (en) * | 2013-07-22 | 2015-01-22 | Futurewei Technologies, Inc. | Scalable Direct Inter-Node Communication Over Peripheral Component Interconnect-Express (PCIe) |
CN104038569A (zh) * | 2014-06-24 | 2014-09-10 | 浪潮电子信息产业股份有限公司 | 一种基于地址映射的集群通信模型 |
CN106484652A (zh) * | 2016-10-26 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于ntb硬件的多队列通信方法及系统 |
Non-Patent Citations (1)
Title |
---|
李京桓等: ""PC北桥端高速采集存储系统研究"", 《设计应用》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086008A (zh) * | 2018-07-26 | 2018-12-25 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN109086008B (zh) * | 2018-07-26 | 2021-06-29 | 浪潮电子信息产业股份有限公司 | 固态硬盘的数据处理方法以及固态硬盘 |
CN109491840A (zh) * | 2018-11-19 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种数据传输方法和装置 |
CN115202938A (zh) * | 2022-09-13 | 2022-10-18 | 苏州浪潮智能科技有限公司 | 一种非透明桥管理方法、装置、控制器及介质 |
CN115202938B (zh) * | 2022-09-13 | 2023-01-24 | 苏州浪潮智能科技有限公司 | 一种非透明桥管理方法、装置、控制器及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103117929B (zh) | 一种基于PCIe数据交换的通信方法及系统 | |
CN104123262B (zh) | 在PCIExpress上启用基于ID的流的方法和装置 | |
CN107329917A (zh) | 一种数据传输方法及装置 | |
US6754735B2 (en) | Single descriptor scatter gather data transfer to or from a host processor | |
CN103427846B (zh) | 动态可重构高速串行总线中错误控制方法 | |
CN102420719B (zh) | 一种测试PCIe总线带宽的装置和方法 | |
CN108595350A (zh) | 一种基于axi的数据传输方法和装置 | |
CN106484652B (zh) | 一种基于ntb硬件的多队列通信方法及系统 | |
US20040205319A1 (en) | Host computer virtual memory within a network interface adapter | |
CN110069433A (zh) | 一种兼容不同汽车can通信接口的媒介系统 | |
CN108600017A (zh) | 多协议串口扩展方法 | |
CN102292714B (zh) | 装置组件之间的内存资源共享的通讯协定 | |
CN107147538A (zh) | 基于rs485桥电路装置的故障定位方法 | |
CN114201268A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN100498753C (zh) | 通过i2c接口访问现场可编程门阵列内部存储器的方法 | |
CN113852533A (zh) | 一种多通道数据通信系统、方法及电子设备 | |
CN109857553A (zh) | 内存管理方法及装置 | |
CN109241641A (zh) | 一种双核ARM型SoC应用验证实现方法及应用验证板 | |
CN106549845A (zh) | 一种基于ntb硬件的通信方法及系统 | |
US20040215861A1 (en) | Method of allowing multiple, hardware embedded configurations to be recognized by an operating system | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
WO2021042972A1 (zh) | 一种智能卡管理装置及方法 | |
CN107783927A (zh) | 用于连接axi接口和dma接口的电路转换系统及方法 | |
CN104935530B (zh) | 一种计算机间数据交换的方法、交换机和系统 | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171107 |
|
RJ01 | Rejection of invention patent application after publication |