技术新讯 > 计算推算,计数设备的制造及其应用技术 > 多线程仲裁方法及装置  >  正文

多线程仲裁方法及装置

  • 国知局
  • 2024-07-31 22:46:02

本发明涉及处理器,尤其涉及一种多线程仲裁方法及装置。

背景技术:

1、现代高性能cpu(central processing unit)通常会采用同时多线程(simultaneous multithreading,smt)技术来提高执行单元的利用率,从而提升cpu的运行效率。具体地,采用同时多线程技术的cpu支持多于一个线程的指令同时在任意指定的流水线阶段中同时执行,当一个线程需要停顿时,其余线程此时仍然可以发射到执行部件,因此采用同时多线程技术可以极大地提升cpu的运行效率。

2、在现代高性能cpu中,根据需求和应用场景的不同,线程数、执行单元的种类和数量也不同,cpu需要根据线程、执行单元的种类和数量、以及给定的同时多线程仲裁算法进行设计。然而,现有的同时多线程仲裁算法均较为复杂,导致基于现有的同时多线程仲裁算法所设计的cpu需要消耗更多的硬件资源,并且现有的同时多线程仲裁算法不支持用户优先级配置,具有一定的应用局限。

技术实现思路

1、为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种多线程仲裁方法及装置。

2、本发明的技术方案如下:

3、第一方面,提供了一种多线程仲裁方法,包括:

4、获取发出仲裁请求的线程;

5、判断发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量;

6、若是,选取发出仲裁请求的线程分别发到可用执行部件;

7、若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;

8、根据仲裁情况对线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,赢得仲裁的线程的优先级均小于其余线程。

9、在一些可能的实现方式中,所述方法还包括:

10、判断线程是否被用户划分为高优先级级别和低优先级级别;

11、若是,判断发出仲裁请求的线程是否存在属于高优先级级别的线程;

12、若存在,判断高优先级级别的线程中发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量,若是,选取发出仲裁请求的线程分别发到可用执行部件,若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;

13、根据仲裁情况对高优先级级别中所有线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,赢得仲裁的线程的优先级均小于其余线程;

14、若不存在,判断低优先级级别的线程中发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量,若是,选取发出仲裁请求的线程分别发到可用执行部件,若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;

15、根据仲裁情况对低优先级级别中所有线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,使赢得仲裁的线程的优先级均小于其余线程。

16、在一些可能的实现方式中,对用户划分的低优先级级别中的每个线程设置一个配对的计数器,当线程发出仲裁请求且没有赢得仲裁时,使线程配对的计数器的数值累加一个给定数值,当线程发出仲裁请求且赢得仲裁时,将线程配对的计数器复位,当计数器的数值达到设定值时,将对应的线程划分为高优先级级别,当线程发出仲裁请求且赢得仲裁时,将线程重新划分为低优先级级别。

17、在一些可能的实现方式中,所述计数器复位时,所述计数器的数值清零。

18、在一些可能的实现方式中,采用1bit的数据表示并保存两个线程之间的优先级关系。

19、第二方面,还提供了一种多线程仲裁装置,包括:

20、仲裁请求获取单元,被配置为获取发出仲裁请求的线程;

21、线程仲裁单元,被配置为判断发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量,若是,选取发出仲裁请求的线程分别发到可用执行部件,若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;

22、优先级调整单元,被配置为根据仲裁情况对线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,赢得仲裁的线程的优先级均小于其余线程。

23、在一些可能的实现方式中,所述装置还包括:

24、用户配置情况处理单元,被配置为判断线程是否被用户划分为高优先级级别和低优先级级别,以及判断发出仲裁请求的线程是否存在属于高优先级级别的线程,并将判断结果发至所述线程仲裁单元;

25、所述线程仲裁单元还被配置为当线程被用户划分为高优先级级别和低优先级级别且发出仲裁请求的线程存在属于高优先级级别的线程时,判断高优先级级别的线程中发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量,若是,选取发出仲裁请求的线程分别发到可用执行部件,若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;当线程被用户划分为高优先级级别和低优先级级别且发出仲裁请求的线程不存在属于高优先级级别的线程时,判断低优先级级别的线程中发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量,若是,选取发出仲裁请求的线程分别发到可用执行部件,若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;

26、所述优先级调整单元还被配置为根据仲裁情况对高优先级级别中所有线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,赢得仲裁的线程的优先级均小于其余线程;根据仲裁情况对低优先级级别中所有线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,使赢得仲裁的线程的优先级均小于其余线程。

27、在一些可能的实现方式中,所述装置还包括计数器;

28、用户划分的低优先级级别中的每个线程设置一个配对的计数器,当线程发出仲裁请求且没有赢得仲裁时,线程配对的计数器的数值累加一个给定数值,当线程发出仲裁请求且赢得仲裁时,线程配对的计数器复位。

29、本发明技术方案的主要优点如下:

30、本发明的多线程仲裁方法及装置能够实现具有多执行部件情况下的多线程仲裁,能够保证多个线程按照预先设定的优先级发射执行,并且能够支持用户配置优先级,仲裁处理过程简单,能够显著降低对应硬件结构的设计复杂性,降低硬件设计成本,降低处理器硬件资源的消耗。

技术特征:

1.一种多线程仲裁方法,其特征在于,所述方法包括:

2.根据权利要求1所述的多线程仲裁方法,其特征在于,所述方法还包括:

3.根据权利要求2所述的多线程仲裁方法,其特征在于,对用户划分的低优先级级别中的每个线程设置一个配对的计数器,当线程发出仲裁请求且没有赢得仲裁时,使线程配对的计数器的数值累加一个给定数值,当线程发出仲裁请求且赢得仲裁时,将线程配对的计数器复位,当计数器的数值达到设定值时,将对应的线程划分为高优先级级别,当线程发出仲裁请求且赢得仲裁时,将线程重新划分为低优先级级别。

4.根据权利要求3所述的多线程仲裁方法,其特征在于,所述计数器复位时,所述计数器的数值清零。

5.根据权利要求1-3中任一项所述的多线程仲裁方法,其特征在于,采用1bit的数据表示并保存两个线程之间的优先级关系。

6.一种多线程仲裁装置,其特征在于,所述装置包括:

7.根据权利要求6所述的多线程仲裁装置,其特征在于,所述装置还包括:

8.根据权利要求7所述的多线程仲裁装置,其特征在于,所述装置还包括计数器;

技术总结本发明公开了一种多线程仲裁方法及装置,该方法包括:获取发出仲裁请求的线程;判断发出仲裁请求的线程的数量是否小于或等于可用执行部件的数量;若是,选取发出仲裁请求的线程分别发到可用执行部件;若否,根据可用执行部件的数量,从发出仲裁请求的线程中选取相同数量的优先级较高的线程并分别发到可用执行部件;根据仲裁情况对线程的优先级进行调整,使赢得仲裁的各线程间的优先级保持不变,赢得仲裁的线程的优先级均小于其余线程。本发明能够实现具有多执行部件情况下的多线程仲裁,保证多个线程按照预先设定的优先级发射执行,仲裁处理过程简单,能够显著降低对应硬件结构的设计复杂性,降低硬件设计成本,降低处理器硬件资源的消耗。技术研发人员:孙明达,张光达,赵夏,高明玉,鲍道川,黄成龙受保护的技术使用者:中国人民解放军军事科学院国防科技创新研究院技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/194489.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。