报文发送控制方法、装置、服务器、设备和存储介质与流程

文档序号:34380379发布日期:2023-06-08 01:36阅读:32来源:国知局
报文发送控制方法、装置、服务器、设备和存储介质与流程

本技术涉及服务器,特别是涉及一种报文发送控制方法、装置、服务器、设备和存储介质。


背景技术:

1、 在服务器技术领域,在外设高速互连接口(pcie)系统与主机的数据交互过程中会使用流量控制(flow control)机制进行沟通,即pcie采用串行连接方式并使用数据报文(tlp报文)的形式进行数据传输。数据报文也称传输层报文。发送端在发送前可通过流量控制机制知道接收端能否接收即将发送的tlp报文,也就是通过流控的信用值(credit)来决定发送端能否发送。但是目前采用一个外设高速互连接口(pcie)发送应用端发送p和np两种类型的tlp报文时会导致阻塞问题,其中p类型的tlp报文为转发tlp报文,也称为邮递报文;np类型的tlp报文为非转发tlp报文,也称为非邮递报文。当非邮递报文的信用值(credit)缺少时会阻塞非邮递报文的发送,邮递报文被延后发送,导致阻塞。


技术实现思路

1、本技术提供一种报文发送控制方法、装置、服务器、设备和存储介质,能够解决目前在总线接口系统与主机的数据交互过程中采用一个总线接口发送应用端发送邮递报文和非邮递报文时会导致阻塞的技术问题。

2、一方面,提供一种报文发送控制方法,所述方法包括:

3、根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记;

4、响应于在非邮递报文前一个接收的报文为邮递报文时,设置所述非邮递报文的时间戳标记与其前一个邮递报文的时间戳标记相同;响应于在非邮递报文前一个接收的报文为非邮递报文时,根据接收非邮递报文的顺序对所述非邮递报文设置时间戳标记;

5、将邮递报文和非邮递报文分离为邮递报文队列和非邮递报文队列;

6、响应于所述非邮递报文队列中的非邮递报文不存在信用值时且所述邮递报文队列中的邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送;

7、响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送。

8、在其中一个实施例中,所述根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记步骤,包括:

9、获取接收邮递报文的顺序;

10、根据接收邮递报文的顺序,将所述邮递报文依次分配一个连续递增的序列号作为其时间戳标记。

11、在其中一个实施例中,所述响应于所述非邮递报文队列中的非邮递报文不存在信用值时且所述邮递报文队列中的邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送步骤,包括:

12、获取所述邮递报文队列中的存在信用值的邮递报文;

13、获取所述邮递报文队列中的邮递报文的时间戳标记;

14、根据时间戳标记对应的连续递增的序列号顺序对存在信用值的邮递报文逐一发送。

15、在其中一个实施例中,所述根据时间戳标记对应的连续递增的序列号顺序对存在信用值的邮递报文逐一发送步骤,包括:

16、响应于当前待发送的邮递报文的时间戳标记的序列号与最新发送的邮递报文的时间戳标记的序列号不是连续递增的序列号时,等待;

17、响应于当前待发送的邮递报文的时间戳标记的序列号与最新发送的邮递报文的时间戳标记的序列号为连续递增的序列号时,将当前待发送的邮递报文进行发送。

18、在其中一个实施例中,所述方法还包括:

19、响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送。

20、在其中一个实施例中,所述响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送步骤,包括:

21、响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,获取待发送的邮递报文及非邮递报文的时间戳标记;

22、将所述邮递报文队列中的邮递报文按照时间戳标记的顺序进行排序,将述非邮递报文队列中的非邮递报文按照时间戳标记的顺序进行排序;

23、按照时间戳标记的顺序对所述邮递报文队列中的邮递报文及所述非邮递报文队列中。

24、在其中一个实施例中,所述按照时间戳标记的顺序对所述邮递报文队列中的邮递报文及所述非邮递报文队列中的非邮递报文进行发送步骤中,包括:

25、响应于待发送的邮递报文及非邮递报文具有相同的时间戳标记时,控制非邮递报文先于邮递报文进行发送。

26、在其中一个实施例中,所述根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记步骤之前,还包括:

27、按时间顺序依次获取邮递报文和非邮递报文。

28、在其中一个实施例中,所述按时间顺序依次获取邮递报文和非邮递报文步骤之前,还包括:

29、分别生成邮递报文和非邮递报文。

30、在其中一个实施例中,所述分别生成邮递报文和非邮递报文步骤,包括:

31、控制直接存储器存取出口在读写数据时生成邮递报文;

32、控制直接存储器存取入口在读写数据时生成非邮递报文,同时根据直接存储器存取入口发起的非邮递报文信用值查询命令实时查询非邮递报文的信用值。

33、在其中一个实施例中,所述分别生成邮递报文和非邮递报文步骤,包括:

34、响应于查询到非邮递报文的信用值时,将查询到的非邮递报文的信用值添加至非邮递报文中。

35、在其中一个实施例中,所述按时间顺序依次获取邮递报文和非邮递报文步骤之后,还包括:

36、分别对获取的邮递报文和非邮递报文进行计数,实时记录当前待发送的邮递报文和非邮递报文的数量;

37、控制当前待发送的邮递报文的数量小于第一阈值,控制当前待发送的非邮递报文的数量小于第二阈值。

38、在其中一个实施例中,所述控制当前待发送的邮递报文的数量小于第一阈值,控制当前待发送的非邮递报文的数量小于第二阈值步骤,包括:

39、实时检测当前待发送的非邮递报文的数量;

40、响应于当前待发送的非邮递报文的数量大于等于第三阈值且小于第二阈值时,控制暂停生成邮递报文,以使当前待发送的邮递报文的数量小于第一阈值。

41、在其中一个实施例中,所述控制当前待发送的邮递报文的数量小于第一阈值步骤,包括:

42、实时检测当前待发送的邮递报文的数量;

43、响应于当前待发送的邮递报文的数量大于等于第一阈值时,控制暂停生成邮递报文。

44、在其中一个实施例中,所述控制当前待发送的非邮递报文的数量小于第二阈值步骤,包括:

45、实时检测当前待发送的非邮递报文的数量;

46、响应于当前待发送的非邮递报文的数量大于等于第二阈值时,控制暂停生成非邮递报文。

47、在其中一个实施例中,所述分别对获取的邮递报文和非邮递报文进行计数,实时记录当前待发送的邮递报文和非邮递报文的数量步骤,包括:

48、控制计数器的最高位数值分别用于表示邮递报文和非邮递报文的类型;

49、设置计数器的邮递报文和非邮递报文的计数个数相等;

50、设置第一阈值小于计数器对邮递报文的计数个数,设置第二阈值小于计数器对非邮递报文的计数个数;

51、实时检测并记录当前待发送的非邮递报文的数量;

52、实时检测并记录当前待发送的邮递报文的数量。

53、在其中一个实施例中,所述分别对获取的邮递报文和非邮递报文进行计数,实时记录当前待发送的邮递报文和非邮递报文的数量步骤中,包括:

54、设置第一阈值等于第二阈值,设置第三阈值的取值范围小于第二阈值的取值范围;

55、实时检测并记录当前缺少信用值待发送的非邮递报文的数量,响应于当前待发送的非邮递报文的数量大于等于第三阈值且小于第二阈值时,控制暂停生成邮递报文。

56、在其中一个实施例中,在所述分别生成邮递报文和非邮递报文步骤之后,包括:

57、计算获取邮递报文和非邮递报文的信用值;

58、当发送一个邮递报文时将邮递报文的信用值减少,当发送一个非邮递报文时将非邮递报文的信用值减少。

59、另一方面,提供了一种报文发送控制装置,所述装置包括:

60、报文时间戳标记模块,用于根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记;响应于在非邮递报文前一个接收的报文为邮递报文时,设置所述非邮递报文的时间戳标记与其前一个邮递报文的时间戳标记相同;响应于在非邮递报文前一个接收的报文为非邮递报文时,根据接收非邮递报文的顺序对所述非邮递报文设置时间戳标记;

61、报文分流模块,用于将邮递报文和非邮递报文分离为邮递报文队列和非邮递报文队列;

62、发送报文仲裁模块,用于响应于所述非邮递报文队列中的非邮递报文不存在信用值时且所述邮递报文队列中的邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送;并用于响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送。

63、再一方面,提供了一种服务器,其包括前文所述的报文发送控制装置以及连接至报文时间戳标记模块输入端的报文生成模块;

64、其中,所述报文生成模块用于分别生成邮递报文和非邮递报文并按时间顺序依次获传输至所述报文时间戳标记模块中。

65、在其中一个实施例中,所述报文生成模块包括:

66、直接存储器存取出口,用于生成并传输邮递报文;

67、直接存储器存取入口,用于生成并传输非邮递报文,并用于发出非邮递报文信用值查询命令;

68、中央处理器,分别连接至所述直接存储器存取出口及所述直接存储器存取入口,用于控制所述直接存储器存取出口生成邮递报文,用于控制所述直接存储器存取入口生成非邮递报文,并用于接收非邮递报文信用值查询命令;

69、消息接口,连接至所述中央处理器与所述直接存储器存取出口及所述直接存储器存取入口之间。

70、再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

71、根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记;

72、响应于在非邮递报文前一个接收的报文为邮递报文时,设置所述非邮递报文的时间戳标记与其前一个邮递报文的时间戳标记相同;响应于在非邮递报文前一个接收的报文为非邮递报文时,根据接收非邮递报文的顺序对所述非邮递报文设置时间戳标记;

73、将邮递报文和非邮递报文分离为邮递报文队列和非邮递报文队列;

74、响应于所述非邮递报文队列中的非邮递报文不存在信用值时且所述邮递报文队列中的邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送;

75、响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送。

76、又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

77、根据接收邮递报文的顺序对所述邮递报文按序设置时间戳标记;

78、响应于在非邮递报文前一个接收的报文为邮递报文时,设置所述非邮递报文的时间戳标记与其前一个邮递报文的时间戳标记相同;响应于在非邮递报文前一个接收的报文为非邮递报文时,根据接收非邮递报文的顺序对所述非邮递报文设置时间戳标记;

79、将邮递报文和非邮递报文分离为邮递报文队列和非邮递报文队列;

80、响应于所述非邮递报文队列中的非邮递报文不存在信用值时且所述邮递报文队列中的邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送;

81、响应于所述邮递报文队列中的邮递报文存在信用值且所述非邮递报文队列中的非邮递报文存在信用值时,按照时间戳标记的顺序对所述邮递报文及所述非邮递报文进行发送。

82、上述报文发送控制方法、装置、服务器、设备和存储介质,通过对邮递报文和非邮递报文进行设置时间戳标记,同时增加对非邮递报文的信用值的监控来防止时间戳标记计数的溢出导致出现异常,来解决使用同一个pcie接口发送应用端发送时的阻塞问题。而且本实施例利用按照时间戳标记的顺序对所述邮递报文队列中的邮递报文进行发送,以使所述邮递报文在所述非邮递报文不存在信用值时能够绕过所述非邮递报文进行发送的控制方式可实现当非邮递报文的信用值缺少时,邮递报文的发送不受非邮递报文的信用值缺少的影响,邮递报文可绕过非邮递报文进行发送,避免了邮递报文的发送阻塞。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1