System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 多线程调度方法及装置制造方法及图纸_技高网

多线程调度方法及装置制造方法及图纸

技术编号:39976806 阅读:9 留言:0更新日期:2024-01-09 01:13
本发明专利技术实施例提供了一种多线程调度方法及装置。该方法包括:每个报文进入处理器内核后,将每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中,并建立线程号与线程管理链表的节点之间的映射关系;根据所述映射关系以及每个线程所对应的线程状态机的状态,按照报文进入所述处理器内核的先后顺序从线程组中调度出处于可执行状态的目标线程,并将目标线程输入与目标线程对应的流水线。在本发明专利技术中,通过引入线程管理链表来优化线程调度方式,保证先进入处理器内核的报文优先得到调度执行。因此,可以解决相关技术中无法保证按照报文进入处理器内核的顺序使先进入内核的报文优先得到转发的问题,达到了降低报文的执行延迟的效果。

【技术实现步骤摘要】

本专利技术实施例涉及核网络处理器,具体而言,涉及一种多线程调度方法及装置


技术介绍

1、随着通信技术的飞速发展,网络处理器作为数字通信领域中数据转发的核心部件,特定应用于包处理、协议分析、路由查找、声音/数据汇聚、防火墙等通信领域的各项任务。

2、为了适应不断发展的网络技术,对网络处理器的处理能力提出越来越高的要求。传统的网络处理器采用细粒度多线程结构方式,在使用并行处理技术提高微引擎内核数据处理并行度的同时,利用多线程的切换来隐藏流水线和存储器的延迟,从而提高处理器的吞吐量;细粒度多线程每个时钟周期在线程间进行一次切换,使多个线程的指令执行过程交织在一起,这种交织通常采用round-robin轮询调度算法对准备就绪的线程按序号进行调度,无法保证按照报文进入微引擎的顺序使先进入微引擎的报文优先得到转发,且会存在一个准备就绪、没有停顿的线程可能被其他线程的执行延迟的情况,从而减缓个体线程的执行速度。


技术实现思路

1、本专利技术实施例提供了一种多线程调度方法及装置,以至少解决相关技术中无法保证按照报文进入微引擎的顺序使先进入微引擎的报文优先得到转发的问题。

2、根据本专利技术的一个实施例,提供了一种多线程调度方法,包括:每个报文进入处理器内核后,将每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中,并建立线程号与线程管理链表的节点之间的映射关系;

3、根据所述映射关系以及每个线程所对应的线程状态机的状态,按照报文进入所述处理器内核的先后顺序从线程组中调度出处于可执行状态的目标线程,并将所述目标线程输入与所述目标线程对应的流水线。

4、在一个示例性实施例中,其中,在将所述每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中之前,还包括:为进入所述处理器内核的每个报文分配线程号,并将所有线程分为与流水线数量对应的线程组。

5、在一个示例性实施例中,每个线程组对应一个线程管理链表,每个线程管理链表的节点数与每个线程组包含的线程数量相同。

6、在一个示例性实施例中,所述线程管理链表的节点到线程号之间的映射关系采用比特图方式表示。

7、在一个示例性实施例中,根据所述映射关系以及每个线程所处的状态,按照报文进入所述处理器内核的先后顺序从所述线程组中调度出处于可执行状态的目标线程,并将所述目标线程输入与所述目标线程对应的流水线,包括:根据所述比特图的值及所述线程组中各线程的准备状态计算得出每个节点对应的发射请求,将具有发射请求的线程进行优先级调度,使先进入所述处理器内核且处于准备就绪状态的线程获得授权,转换为可执行状态,并将所述可执行状态的线程作为所述目标线程进行调度;获取与所述目标线程对应的指令,并将所述目标线程输入与所述目标线程对应的流水线以执行所述指令。

8、在一个示例性实施例中,将所述目标线程输入与所述目标线程对应的流水线以执行所述指令之后,还包括:将执行完所述指令的报文调度出所述处理器内核,并释放与该报文对应的线程;在所述线程管理链表的节点中清除该报文的线程号,并将存储在所述线程管理链表的节点中的其他线程号依次向前移动一个节点。

9、在一个示例性实施例中,每条流水线对应一个主控状态机,每个线程对应一个线程状态机,每条流水线在空闲和授权2个状态以及每个线程在空闲、准备就绪、可执行和等待4个状态间转换。

10、在一个示例性实施例中,每条流水线在空闲和授权2个状态以及每个线程在空闲、准备就绪、可执行和等待4个状态间转换,包括:当所述主控状态机处于空闲状态,表示允许新的报文进入处理器内核,新的报文进入处理器内核后,对应线程处于空闲状态;在报文的线程号存入线程管理链表的节点,并从指令存储模块取回与该线程对应的指令后,该线程从空闲状态转入准备就绪状态;在主控状态机的授权状态下对处于准备就绪状态的线程进行授权,获得授权的线程由准备就绪状态转入执行状态;处于可执行状态的线程执行完对应的指令后由可执行状态转入空闲状态;处于可执行状态的线程在指令执行过程中存在数据等待、查表等待或重新取指令的情况时,该线程由可执行状态转入等待状态;处于等待状态的线程数据等待结束、或者查表结果返回、或者重新取指返回后,由等待状态重新转入准备就绪状态;在有执行完指令的线程的线程号被释放后,主控状态机进入空闲状态。

11、根据本专利技术的另一个实施例,提供了一种多线程调度装置,包括:建立模块,用于在每个报文进入处理器内核后,将每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中,并建立线程号与线程管理链表的节点之间的映射关系;调度模块,用于根据所述映射关系以及每个线程所对应的线程状态机的状态,按照报文进入所述处理器内核的先后顺序从线程组中调度出处于可执行状态的目标线程,并将所述目标线程输入与所述目标线程对应的流水线。

12、在一个示例性实施例中,分配模块,用于为进入所述处理器内核的每个报文分配线程号,并将所有线程分为与流水线数量对应的线程组。

13、在一个示例性实施例中,其中,每个线程组对应一个线程管理链表,每个线程管理链表的节点数与每个线程组包含的线程数量相同。

14、在一个示例性实施例中,还包括:释放模块,用于将执行完与所述目标线程对应的指令的报文调度出所述处理器内核,并释放与该报文对应的线程,在所述线程管理链表的节点中清除该报文的线程号,并将存储在所述线程管理链表的节点中的其他线程号依次向前移动一个节点。

15、在一个示例性实施例中,其中,每条流水线对应一个主控状态机,每个线程对应一个线程状态机,每条流水线在空闲和授权2个状态以及每个线程在空闲、就绪准备、可执行和等待4个状态间转换。

16、根据本专利技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

17、根据本专利技术的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。

18、通过本专利技术,通过引入线程管理链表优化线程调度方式,保证先进入处理器内核的报文优先得到调度执行。因此,可以解决相关技术中无法保证按照报文进入内核的顺序使先进入内核的报文优先得到转发的问题,达到了降低报文的执行延迟的效果。

本文档来自技高网...

【技术保护点】

1.一种多线程调度方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,其中,在将所述每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中之前,还包括:

3.根据权利要求1所述的方法,其特征在于,每个线程组对应一个线程管理链表,每个线程管理链表的节点数与每个线程组包含的线程数量相同。

4.根据权利要求1所述的方法,其特征在于,所述线程管理链表的节点到线程号之间的映射关系采用比特图方式表示。

5.根据权利要求4所述的方法,其特征在于,所述根据所述映射关系以及每个线程所处的状态,按照报文进入所述处理器内核的先后顺序从所述线程组中调度出处于可执行状态的目标线程,并将所述目标线程输入与所述目标线程对应的流水线,包括:

6.根据权利要求5所述的方法,其特征在于,将所述目标线程输入与所述目标线程对应的流水线以执行所述指令之后,还包括:

7.根据权利要求1所述的方法,其特征在于,

8.根据权利要求7所述的方法,其特征在于,每条流水线在空闲和授权2个状态以及每个线程在空闲、准备就绪、可执行和等待4个状态间转换,包括:

9.一种多线程调度装置,其特征在于,包括:

10.根据权利要求9所述的装置,其特征在于,还包括:

11.根据权利要求10所述的装置,其特征在于,其中,每个线程组对应一个线程管理链表,每个线程管理链表的节点数与每个线程组包含的线程数量相同。

12.根据权利要求10所述的装置,其特征在于,还包括:

13.根据权利要求10所述的装置,其特征在于,其中,每条流水线对应一个主控状态机,每个线程对应一个线程状态机,每条流水线在空闲和授权2个状态以及每个线程在空闲、准备就绪、可执行和等待4个状态间转换。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至8任一项中所述的方法的步骤。

15.一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至8任一项中所述的方法的步骤。

...

【技术特征摘要】

1.一种多线程调度方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,其中,在将所述每个报文携带的线程号依次存入与该报文所属的线程组对应的线程管理链表中之前,还包括:

3.根据权利要求1所述的方法,其特征在于,每个线程组对应一个线程管理链表,每个线程管理链表的节点数与每个线程组包含的线程数量相同。

4.根据权利要求1所述的方法,其特征在于,所述线程管理链表的节点到线程号之间的映射关系采用比特图方式表示。

5.根据权利要求4所述的方法,其特征在于,所述根据所述映射关系以及每个线程所处的状态,按照报文进入所述处理器内核的先后顺序从所述线程组中调度出处于可执行状态的目标线程,并将所述目标线程输入与所述目标线程对应的流水线,包括:

6.根据权利要求5所述的方法,其特征在于,将所述目标线程输入与所述目标线程对应的流水线以执行所述指令之后,还包括:

7.根据权利要求1所述的方法,其特征在于,

8.根据权利要求7所述的方法,其特征在于,每条流水线在空闲和授权2个状态以及每个线程在空闲...

【专利技术属性】
技术研发人员:沈洋徐金林牛新伟韩建辉李铮
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1