CN107357746B - 一种通信方法及*** - Google Patents
一种通信方法及*** Download PDFInfo
- Publication number
- CN107357746B CN107357746B CN201710618266.6A CN201710618266A CN107357746B CN 107357746 B CN107357746 B CN 107357746B CN 201710618266 A CN201710618266 A CN 201710618266A CN 107357746 B CN107357746 B CN 107357746B
- Authority
- CN
- China
- Prior art keywords
- remote
- local
- data
- local system
- remote system
- 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.)
- Active
Links
- 230000006854 communication Effects 0.000 title claims abstract description 96
- 238000004891 communication Methods 0.000 title claims abstract description 95
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012360 testing method Methods 0.000 claims description 49
- 230000005540 biological transmission Effects 0.000 claims description 41
- 230000000875 corresponding effect Effects 0.000 description 44
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种通信方法及***,其中该方法包括:本地***向远端***发送数据,并更新远端***中与数据对应的消息计数索引;远端***实时或者定时查询消息计数索引,并判断消息计数索引是否被更新,若是,则接收本地***发送的数据。本发明提供的一种通信方法,本地***向远端***发送数据并更新远端***中与数据对应的消息计数索引,远端***实时或者定时查询自身的消息计数索引并在判断消息计数索引被更新的情况下接收本地***发送的数据,从而避免了DoorBell中断寄存器导致***hang住的情况。本发明提供的一种通信方法解决了如何避免触发DoorBell中断寄存器导致***hang住的技术问题。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种通信方法及***。
背景技术
PCI-E非透明桥(Non-Transparent-Bridge,简称NTB)是连接两个***的一种点到点的PCI-E总线。NTB向本地***提供了一个或者多个读写窗口,本地***对这些窗口的读写操作会被映射到远端***的内存上。
现有的一种基于NTB的通信方法包括以下步骤:
本地***将需要传输至远端***的数据发送至本地内存映射窗口;
本地内存映射窗口将接收到的数据进行地址翻译,将翻译后的数据发送至远端***对应的内存空间;
本地***向远端***的DoorBell中断寄存器发送消息,以触发远端***中断;
远端***收到中断消息后,从自身内存空间的指定区域接收数据,从而完成数据的传输。
然而,在利用DoorBell中断寄存器时,偶尔会出现DoorBell中断寄存器导致***hang住(死机)的情况,引发双控存储***宕机,客户业务中断。
综上所述,如何避免触发DoorBell中断寄存器导致***hang住的情况是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种通信方法,其能解决如何避免触发DoorBell中断寄存器导致***hang住的技术问题。本发明还提供了一种通信***。
为了实现上述目的,本发明提供如下技术方案:
一种通信方法,包括:
本地***向远端***发送数据,并更新所述远端***中与所述数据对应的消息计数索引;
所述远端***实时或者定时查询所述消息计数索引,并判断所述消息计数索引是否被更新,若是,则接收所述数据。
优选的,所述本地***更新所述远端***中与所述数据对应的消息计数索引之前还包括:
所述本地***将与所述数据对应的消息计数索引写入至所述远端***的ScrachPad寄存器。
优选的,所述本地***更新所述远端***中与所述数据对应的消息计数索引之前还包括:
所述本地***将与所述数据对应的消息计数索引写入至所述远端***的内存空间。
优选的,所述本地***更新所述远端***中与所述数据对应的消息计数索引包括:
所述本地***将所述远端***中与所述数据对应的消息计数索引的索引值加1;
所述远端***判断所述消息计数索引是否被更新包括:
所述远端***判断当前所述消息计数索引的索引值是否大于该消息计数索引的上一个索引值。
优选的,所述本地***向远端***发送数据之前还包括:
本地***建立与远端***进行数据传输的通信链路。
优选的,所述本地***建立与远端***进行数据传输的通信链路包括:
本地***及远端***均初始化各自具有的寄存器,以实现通信链路的建立,本地***标记自身状态为寄存器初始化状态;
本地***及远端***各自保存自身对应的数据信息,本地***将自身状态由寄存器初始化状态修改为起始状态,所述本地***的数据信息包括:包括本地工作空间地址的本地特征信息及包括远端***寄存器地址的第一关键数据,所述远端***的数据信息包括:包括远端工作空间地址的远端特征信息及包括本地***寄存器地址的第二关键数据;
本地***建立与远端***进行数据传输的初始链路,本地***将自身状态由起始状态修改为初始链路建立状态;
本地***基于所述初始链路和所述第一关键数据将所述本地特征信息写入至远端***的ScrachPad寄存器,本地***将自身状态由初始链路建立状态修改为等待远端特征信息状态;
远端***在查看自身的ScrachPad寄存器被本地***写入信息后,基于所述初始链路和所述第二关键数据将所述远端特征信息写入至本地***的ScrachPad寄存器;本地***在查看自身的ScrachPad寄存器被远端***写入信息后,基于所述初始链路和所述远端特征信息发送测试数据至远端***,本地***将自身状态由等待远端特征信息状态修改为等待测试数据状态;
远端***接收本地***发送的测试数据后基于所述初始链路和所述本地特征信息发送接收到的测试数据至本地***,本地***将自身状态由等待测试数据状态修改为测试数据传输完成状态;
本地***接收远端***发送的测试数据并判断自身发送的测试数据是否与远端***发送的测试数据一致,若是,则本地***将自身状态由测试数据传输完成状态修改为通信链路建立状态,实现与远端***的通信链路的建立。
优选的,所述本地***建立与远端***进行数据传输的通信链路包括:
本地***建立与远端***进行数据传输的NTB通信链路。
本发明还提供了一种通信***,包括本地***和远端***;
所述本地***,用于向所述远端***发送数据,并更新所述远端***中与所述数据对应的消息计数索引;
所述远端***,用于实时或者定时查询所述消息计数索引,并判断所述消息计数索引是否被更新,若是,则接收所述数据。
优选的,所述本地***还用于在更新所述远端***中与所述数据对应的消息计数索引之前,将与所述数据对应的消息计数索引写入至所述远端***的ScrachPad寄存器。
优选的,所述本地***还用于在更新所述远端***中与所述数据对应的消息计数索引之前,将与所述数据对应的消息计数索引写入至所述远端***的内存空间。
本发明提供的一种通信方法,包括:本地***向远端***发送数据,并更新远端***中与数据对应的消息计数索引;远端***实时或者定时查询消息计数索引,并判断消息计数索引是否被更新,若是,则接收数据。本发明提供的一种通信方法,本地***向远端***发送数据并更新远端***中与数据对应的消息计数索引,远端***实时或者定时查询自身的消息计数索引并判断消息计数索引是否被更新,若是,则接收本地***发送的数据;远端***在轮询并判断消息计数索引被更新的情况下才接收本地***发送的数据,使得不需要本地***触发远端***的DoorBell中断寄存器便可以让远端***接收数据,从而避免了触发DoorBell中断寄存器导致***hang住的情况。综上所述,本发明提供的一种通信方法解决了如何避免触发DoorBell中断寄存器导致***hang住的技术问题。本发明提供的一种通信***也解决了相应的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种通信方法的流程图;
图2为本发明实施例提供的本地***建立与远端***进行数据传输的通信链路的流程图;
图3为本发明实施例提供的一种通信***的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种通信方法的流程图。
本发明实施例提供的一种通信方法可以包括以下步骤:
步骤S11:本地***向远端***发送数据,并更新远端***中与数据对应的消息计数索引。
由于远端***要接收本地***发送的数据,所以需要本地***先向远端***发送数据。这里的消息计数索引是一个用于标记本地***向远端***进行了数据发送的标志,本地***通过更新消息计数索引来表示本地***向远端***进行了数据发送。
本地***可以在刚开始发送数据的时候便更新远端***中与数据对应的消息计数索引,也可以在数据发送完成后再更新远端***中与数据对应的消息计数索引,当然也可以有其他本地***发送数据与本地***更新消息计数索引的顺序,比如本地***在发送数据的过程中更新消息计数索引等,本发明在这里不做具体限定。
步骤S12:远端***实时或者定时查询消息计数索引,并判断消息计数索引是否被更新,若是,则接收数据。
由于本地***通过更新消息计数索引来表示本地***向远端***进行了数据发送,所以远端***可以通过查询并判断消息计数索引是否被更新来判断本地***是否向远端***发送了数据,如果消息计数索引被更新,则本地***向远端***发送了数据,如果消息计数索引未被更新,则本地***未向远端***发送数据。
远端***通过查询查询消息计数索引,并判断消息计数索引是否被本地***更新,若是,则接收本地***发送的数据,否则远端***继续查询消息计数索引。
实际应用中,远端***可以实时查询消息计数索引,这样远端***可以用最短的时间得知本地***更新了消息计数索引,可以提早接收数据,从而缩短本地***发送数据和远端***接收数据之间的时间间隔;也可以按照预先设置的时间间隔定时查询消息计数索引,由于不需要远端***实时查询消息计数索引,这样可以减轻远端***的服务压力,本发明在这里不做具体限定。
本发明提供的一种通信方法,包括:本地***向远端***发送数据,并更新远端***中与数据对应的消息计数索引;远端***实时或者定时查询消息计数索引,并判断消息计数索引是否被更新,若是,则接收数据。本发明提供的一种通信方法,本地***向远端***发送数据并更新远端***中与数据对应的消息计数索引,远端***实时或者定时查询自身的消息计数索引并判断消息计数索引是否被更新,若是,则接收本地***发送的数据;远端***在轮询并判断消息计数索引被更新的情况下才接收本地***发送的数据,使得不需要本地***触发远端***的DoorBell中断寄存器便可以让远端***接收本地***发送的数据,从而避免了触发DoorBell中断寄存器导致***hang住的情况。综上所述,本发明提供的一种通信方法解决了如何避免触发DoorBell中断寄存器导致***hang住的技术问题。
本发明实施例提供的一种通信方法中,本地***更新远端***中与数据对应的消息计数索引之前还可以包括:
本地***将与数据对应的消息计数索引写入至远端***的ScrachPad寄存器。
实际应用中,在与数据对应的消息计数索引较少的情况下,本地***可以将消息计数索引写入至远端***的ScrachPad寄存器,这样远端***只需要在ScrachPad寄存器中查询消息计数索引,由于ScrachPad寄存器的空间较小,这样可以缩短远端***检索查询消息计数索引的时间,提高效率。
本发明实施例提供的一种通信方法中,本地***更新远端***中与数据对应的消息计数索引之前还可以包括:
本地***将与数据对应的消息计数索引写入至远端***的内存空间。
实际应用中,在与数据对应的消息计数索引占用内存较大的情况下,本地***可以选择将消息计数索引写入至远端***的内存空间,这样可以让远端***容纳更多的消息计数索引。
实际应用中,本地***可以将消息计数索引以结构体的形式写入远端***的内存空间,这里的结构体指的是消息计数索引的集合,这样可以方便远端***查询消息计数索引,当然还可以有其他本地***将消息计数索引写入远端***的方法,本发明在这里不做具体限定。
本发明实施例提供的一种通信方法中,本地***更新远端***中与数据对应的消息计数索引可以包括:
本地***将远端***中与数据对应的消息计数索引的索引值加1;
远端***判断消息计数索引是否被更新可以包括:
远端***判断当前消息计数索引的索引值是否大于该消息计数索引的上一个索引值。
实际应用中,本地***在更新远端***中与数据对应的消息计数索引时,可以选择将消息计数索引的索引值加1,对应的,远端***可以通过判断当前消息计数索引的索引值是否大于该消息计数索引的上一个索引值来判断消息计数索引是否被更新,若当前消息计数索引的索引值大于该消息计数索引的上一个索引值,则消息计数索引被更新,若当前消息计数索引的索引值不大于该消息计数索引的上一个索引值,则消息计数索引未被更新。这样使得本地***更新消息索引、远端***判断消息计数索引是否被更新的过程简单易实现,当然也可以有其他更新消息计数索引、判断消息计数索引是否被更新的方法,本发明在这里不做具体限定。远端***还可以通过判断当前消息计数索引的索引值比该消息计数索引的上一个索引值大的数值来判断当前消息计数索引的上一个消息计数索引被更新的次数,比如当前消息计数索引的索引值比该消息计数索引的上一个索引值大3,则表示当前消息计数索引的上一个消息计数索引被更新了3次。
本发明实施例提供的一种通信方法中,本地***向远端***发送数据之前还可以包括:
本地***建立与远端***进行数据传输的通信链路。
实际应用中,对于那些未建立进行数据传输的通信链路的本地***和远端***而言,还需要本地***建立与远端***进行数据传输的通信链路,以实现本地***与远端***之间的数据传输。
请参阅图2,图2为本发明实施例提供的本地***建立与远端***进行数据传输的通信链路的流程图。
本发明实施例提供的一种通信方法中,本地***建立与远端***进行数据传输的通信链路可以包括:
步骤S21:本地***及远端***均初始化各自具有的寄存器,以实现通信链路的建立,本地***标记自身状态为寄存器初始化状态。
实际应用中,在建立通信链路之前,需要本地***和远端***按照要求对各自具有的寄存器初始化,之后本地***便可以标记自身状态为寄存器初始化状态。***启动之初,寄存器未按要求进行初始化,这时本地***可以将自身状态标记为未初始化状态,待本地***及远端***均初始化自身的寄存器后,本地***便可将自身状态由未初始化状态修改为寄存器初始化状态。
步骤S22:本地***及远端***各自保存自身对应的数据信息,本地***将自身状态由寄存器初始化状态修改为起始状态,本地***的数据信息包括:包括本地工作空间地址的本地特征信息及包括远端***寄存器地址的第一关键数据,远端***的数据信息包括:包括远端工作空间地址的远端特征信息及包括本地***寄存器地址的第二关键数据。
这里本地***保存远端***寄存器地址的好处是便于本地***根据保存的远端***寄存器地址将数据写入远端***寄存器中,同理,远端***保存本地***寄存器地址的好处是便于远端***根据保存的本地寄存器地址将数据写入本地***寄存器中。
实际应用中,本地特征信息还可以包括本地协议版本信息、本地工作空间地址等,远端特征信息还可以包括远端协议版本信息、远端工作空间地址等。
步骤S23:本地***建立与远端***进行数据传输的初始链路,本地***将自身状态由起始状态修改为初始链路建立状态。
本地***和远端***均初始化各自具有的寄存器后,本地***便可以自动建立与远端***进行数据传输的初始链路,为之后本地***和远端***之间进行数据传输建立基础链路。
步骤S24:本地***基于初始链路和第一关键数据将本地特征信息写入至远端***的ScrachPad寄存器,本地***将自身状态由初始链路建立状态修改为等待远端特征信息状态。
步骤S25:远端***在查看自身的ScrachPad寄存器被本地***写入信息后,基于初始链路和第二关键数据将远端特征信息写入至本地***的ScrachPad寄存器;本地***在查看自身的ScrachPad寄存器被远端***写入信息后,基于初始链路和远端特征信息发送测试数据至远端***,本地***将自身状态由等待远端特征信息状态修改为等待测试数据状态。
本地***将本地特征信息写入至远端***的ScrachPad寄存器是为了便于远端***根据本地特征信息写入至本地***的内存空间,比如远端***可以根据本地特征信息中本地工作空间地址,将数据写入本地***中与本地工作空间地址对应的工作空间中。远端***将远端特征信息写入至本地***的ScrachPad寄存器与上述本地***将本地特征信息写入至远端***的ScrachPad寄存器的原理相同,在此不再赘述。当然,本地***可以将本地特征信息写入至远端***的其他寄存器中,远端***也可以将远端特征信息写入至本地***的其他寄存器中,本发明在这里不做具体限定。
本地***将本地特征信息写入至远端***的ScrachPad寄存器还可以验证本地***能否写远端***的ScrachPad寄存器,如果远端***查看自身的ScrachPad寄存器被本地***写入信息,则本地***能写远端***的ScrachPad寄存器,否则本地***不能写远端***的ScrachPad寄存器。同理,远端***将远端特征信息写入至本地***的ScrachPad寄存器还可以验证远端***能否写本地***的ScrachPad寄存器,如果本地***查看自身的ScrachPad寄存器被远端***写入信息,则远端***能写本地***的ScrachPad寄存器,否则远端***不能写本地***的ScrachPad寄存器。
步骤S26:远端***接收本地***发送的测试数据后基于初始链路和本地特征信息发送接收到的测试数据至本地***,本地***将自身状态由等待测试数据状态修改为测试数据传输完成状态。
本地***向远端***发送测试数据、远端***向本地***发送测试数据是为了验证本地***和远端***是否能够互相发送数据,如果远端***能接收到本地***发送的测试数据,而且本地***能接收到远端***发送的数据,则本地***和远端***能够互相发送数据。
步骤S27:本地***接收远端***发送的测试数据并判断自身发送的测试数据是否与远端***发送的测试数据一致,若是,则本地***将自身状态由测试数据传输完成状态修改为通信链路建立状态,实现与远端***的通信链路的建立。
本地***通过判断自身发送的测试数据是否与远端***发送的测试数据一致来判断本地***和远端***之间传输数据的准确度,如果本地***自身发送的测试数据与远端***发送的测试数据不一致,则本地***和远端***之间传输数据的准确度不是100%,由于在通信过程中要确保本地***和远端***之间传输数据的准确度为100%,这时可以选择重新建立通信链路,如果本地***自身发送的测试数据与远端***发送的测试数据一致,则表明本地***和远端***之间传输数据的准确度是100%,本地***和远端***能够应用建立的通信数据来进行数据的传输。这样可以保证通信链路传输数据的准确性。
这里标记及修改本地***状态也即标记及修改本地***与远端***之间建立通信链路各个过程的状态,这样可以方便外界查看本地***与远端***处于建立通信链路的哪个过程,而且方便外界根据本地***状态进行相应的操作。
实际应用中,在通信链路建立后,还可以选择周期性的检测通信链路是否正常,如果正常,则本地***与远端***进行数据的发送、接收和处理,待数据处理完成后,再返回到通信链路建立状态,如果不正常,可以选择重新建立通信链路。此外,在通信链路的建立过程中,还可以查询本地***在各个状态是否发生错误,比如本地***在等待数据远端特征信息状态和等待测试数据状态是否等待超时等,如果查询到本地***在某个状态发生错误,则对对应的状态进行错误处理,错误处理完成后再回到起始状态进行后续的步骤,直到本地***在各个状态均没有错误,如果未查询到本地***在某个状态发生错误,则可以提示通信链路建立过程成功。
本发明实施例提供的一种通信方法中,本地***建立与远端***进行数据传输的通信链路包括:
本地***建立与远端***进行数据传输的NTB通信链路。
本发明提供的一种通信方法可以应用在以太网通信、光纤通信等通信领域,优选的,本发明提供的一种通信方法应用于NTB通信领域,其能解决NTB通信中因本地***触发远端***DoorBell中断寄存器导致***hang住的问题。
本发明还提供了一种通信***,其具有本发明提供的一种通信方法具有的对应效果。请参阅图3,图3为本发明实施例提供的一种通信***的结构示意图。
本发明实施例提供的一种通信***可以包括本地***A1和远端***A2;
本地***A1,用于向远端***发送数据,并更新远端***中与数据对应的消息计数索引;
远端***A2,用于实时或者定时查询消息计数索引,并判断消息计数索引是否被更新,若是,则接收数据。
本发明实施例提供的一种通信***中,本地***还可以用于在更新远端***中与数据对应的消息计数索引之前,将与数据对应的消息计数索引写入至远端***的ScrachPad寄存器。
本发明实施例提供的一种通信***中,本地***还可以用于在更新远端***中与数据对应的消息计数索引之前,将与数据对应的消息计数索引写入至远端***的内存空间。
本发明实施例提供的一种通信***中,本地***可以包括:
更新模块,用于将远端***中与数据对应的消息计数索引的索引值加1;
远端***可以包括:
判断模块,用于判断当前消息计数索引的索引值是否大于该消息计数索引的上一个索引值。
本发明实施例提供的一种通信***中,本地***还可以用于在向远端***发送数据之前,建立与远端***进行数据传输的通信链路。
本发明实施例提供的一种通信***中,本地***可以包括:
建立模块,用于建立与远端***进行数据传输的NTB通信链路。
本发明实施例提供的一种通信***中相关部分的说明请参见本发明实施例提供的一种通信方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种通信方法,其特征在于,包括:
本地***向远端***发送数据,并更新所述远端***中与所述数据对应的消息计数索引;
所述远端***实时或者定时查询所述消息计数索引,并判断所述消息计数索引是否被更新,若是,则接收所述数据;
所述本地***向远端***发送数据之前还包括:
本地***建立与远端***进行数据传输的通信链路;
所述本地***建立与远端***进行数据传输的通信链路包括:
本地***及远端***均初始化各自具有的寄存器,以实现通信链路的建立,本地***标记自身状态为寄存器初始化状态;
本地***及远端***各自保存自身对应的数据信息,本地***将自身状态由寄存器初始化状态修改为起始状态,所述本地***的数据信息包括:包括本地工作空间地址的本地特征信息及包括远端***寄存器地址的第一关键数据,所述远端***的数据信息包括:包括远端工作空间地址的远端特征信息及包括本地***寄存器地址的第二关键数据;
本地***建立与远端***进行数据传输的初始链路,本地***将自身状态由起始状态修改为初始链路建立状态;
本地***基于所述初始链路和所述第一关键数据将所述本地特征信息写入至远端***的ScrachPad寄存器,本地***将自身状态由初始链路建立状态修改为等待远端特征信息状态;
远端***在查看自身的ScrachPad寄存器被本地***写入信息后,基于所述初始链路和所述第二关键数据将所述远端特征信息写入至本地***的ScrachPad寄存器;本地***在查看自身的ScrachPad寄存器被远端***写入信息后,基于所述初始链路和所述远端特征信息发送测试数据至远端***,本地***将自身状态由等待远端特征信息状态修改为等待测试数据状态;
远端***接收本地***发送的测试数据后基于所述初始链路和所述本地特征信息发送接收到的测试数据至本地***,本地***将自身状态由等待测试数据状态修改为测试数据传输完成状态;
本地***接收远端***发送的测试数据并判断自身发送的测试数据是否与远端***发送的测试数据一致,若是,则本地***将自身状态由测试数据传输完成状态修改为通信链路建立状态,实现与远端***的通信链路的建立。
2.根据权利要求1所述的方法,其特征在于,所述本地***更新所述远端***中与所述数据对应的消息计数索引之前还包括:
所述本地***将与所述数据对应的消息计数索引写入至所述远端***的ScrachPad寄存器。
3.根据权利要求1所述的方法,其特征在于,所述本地***更新所述远端***中与所述数据对应的消息计数索引之前还包括:
所述本地***将与所述数据对应的消息计数索引写入至所述远端***的内存空间。
4.根据权利要求1所述的方法,其特征在于,所述本地***更新所述远端***中与所述数据对应的消息计数索引包括:
所述本地***将所述远端***中与所述数据对应的消息计数索引的索引值加1;
所述远端***判断所述消息计数索引是否被更新包括:
所述远端***判断当前所述消息计数索引的索引值是否大于该消息计数索引的上一个索引值。
5.根据权利要求4所述的方法,其特征在于,所述本地***建立与远端***进行数据传输的通信链路包括:
本地***建立与远端***进行数据传输的NTB通信链路。
6.一种通信***,其特征在于,包括本地***和远端***;
所述本地***,用于向所述远端***发送数据,并更新所述远端***中与所述数据对应的消息计数索引;
所述远端***,用于实时或者定时查询所述消息计数索引,并判断所述消息计数索引是否被更新,若是,则接收所述数据;
所述本地***还用于在向远端***发送数据之前,建立与远端***进行数据传输的通信链路;
所述本地***建立与远端***进行数据传输的通信链路包括:
本地***及远端***均初始化各自具有的寄存器,以实现通信链路的建立,本地***标记自身状态为寄存器初始化状态;
本地***及远端***各自保存自身对应的数据信息,本地***将自身状态由寄存器初始化状态修改为起始状态,所述本地***的数据信息包括:包括本地工作空间地址的本地特征信息及包括远端***寄存器地址的第一关键数据,所述远端***的数据信息包括:包括远端工作空间地址的远端特征信息及包括本地***寄存器地址的第二关键数据;
本地***建立与远端***进行数据传输的初始链路,本地***将自身状态由起始状态修改为初始链路建立状态;
本地***基于所述初始链路和所述第一关键数据将所述本地特征信息写入至远端***的ScrachPad寄存器,本地***将自身状态由初始链路建立状态修改为等待远端特征信息状态;
远端***在查看自身的ScrachPad寄存器被本地***写入信息后,基于所述初始链路和所述第二关键数据将所述远端特征信息写入至本地***的ScrachPad寄存器;本地***在查看自身的ScrachPad寄存器被远端***写入信息后,基于所述初始链路和所述远端特征信息发送测试数据至远端***,本地***将自身状态由等待远端特征信息状态修改为等待测试数据状态;
远端***接收本地***发送的测试数据后基于所述初始链路和所述本地特征信息发送接收到的测试数据至本地***,本地***将自身状态由等待测试数据状态修改为测试数据传输完成状态;
本地***接收远端***发送的测试数据并判断自身发送的测试数据是否与远端***发送的测试数据一致,若是,则本地***将自身状态由测试数据传输完成状态修改为通信链路建立状态,实现与远端***的通信链路的建立。
7.根据权利要求6所述的***,其特征在于,
所述本地***还用于在更新所述远端***中与所述数据对应的消息计数索引之前,将与所述数据对应的消息计数索引写入至所述远端***的ScrachPad寄存器。
8.根据权利要求6所述的***,其特征在于,
所述本地***还用于在更新所述远端***中与所述数据对应的消息计数索引之前,将与所述数据对应的消息计数索引写入至所述远端***的内存空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710618266.6A CN107357746B (zh) | 2017-07-26 | 2017-07-26 | 一种通信方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710618266.6A CN107357746B (zh) | 2017-07-26 | 2017-07-26 | 一种通信方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357746A CN107357746A (zh) | 2017-11-17 |
CN107357746B true CN107357746B (zh) | 2020-05-29 |
Family
ID=60285133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710618266.6A Active CN107357746B (zh) | 2017-07-26 | 2017-07-26 | 一种通信方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107357746B (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4776307B2 (ja) * | 2005-08-31 | 2011-09-21 | 株式会社日立製作所 | ストレージシステム、データ転送方法及びプログラム |
CN104486365B (zh) * | 2014-09-28 | 2018-02-02 | 浪潮(北京)电子信息产业有限公司 | 双控之间通信方法和*** |
CN106569736B (zh) * | 2015-10-10 | 2018-10-19 | 北京忆芯科技有限公司 | NVMe协议处理器及其处理方法 |
CN106209974B (zh) * | 2016-06-21 | 2019-03-12 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、设备及*** |
-
2017
- 2017-07-26 CN CN201710618266.6A patent/CN107357746B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107357746A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100366029C (zh) | 通信控制器、主机端控制器、通信设备、通信***和方法 | |
CN103514173B (zh) | 数据处理的方法和节点设备 | |
CN107357595B (zh) | 一种基于总线的多驱动器固件在线更新*** | |
CN103546467A (zh) | 在TCP/IP网络上传输Modbus RTU协议的方法 | |
CN107528747B (zh) | 主从站通信状态的诊断方法和装置及计算机可读存储介质 | |
US8364872B2 (en) | Slave and communicating method between a master and the same | |
CN106603359B (zh) | Plc***的通讯控制方法及装置 | |
US11212658B2 (en) | Method for providing near filed communication device information for user and system therefor | |
US20230412742A1 (en) | Apparatus, method, and system for monitoring image-forming apparatus, and storage medium | |
EP2398190B1 (en) | Field communication system | |
CN107357746B (zh) | 一种通信方法及*** | |
CN103217956A (zh) | 工业控制***及其控制方法和控制装置 | |
CN112636987A (zh) | 一种区块链的跨链网关确定方法、***及终端设备 | |
CN105281944B (zh) | 网络协议地址的设定方法及服务管理*** | |
CN106789304B (zh) | 网络设备配置同步方法和装置 | |
JP3730545B2 (ja) | サービス制御アプリケーション実行方法及びシステム | |
KR20160147373A (ko) | 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법 | |
CN110661869B (zh) | 一种节点上线方法、***、装置、设备及计算机存储介质 | |
EP3955524A1 (en) | Method for managing remote storage device by means of management device | |
CN110990313B (zh) | 一种i3c总线处理时钟拉伸的方法、设备以及存储介质 | |
CN113434089A (zh) | 数据搬移方法、装置及pcie*** | |
CN109753461B (zh) | 一种dma设备及数据传输的方法 | |
CN107547329B (zh) | 一种基于ntb的双控数据传输方法及*** | |
KR20210054939A (ko) | 차량 제어 장치, 그를 포함한 시스템 및 그 방법 | |
CN116756078B (zh) | pcie数据包的通知方法、装置及存储介质 |
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 |