[发明专利]多线程处理的线程选择有效
申请号: | 201210097657.5 | 申请日: | 2012-03-30 |
公开(公告)号: | CN102736897A | 公开(公告)日: | 2012-10-17 |
发明(设计)人: | 弗拉基米尔·瓦斯金;艾伦·约翰·斯基尔曼;安德鲁·克里斯多佛·罗斯;安东尼·约翰·彭顿 | 申请(专利权)人: | ARM有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F11/267 |
代理公司: | 北京东方亿思知识产权代理有限责任公司 11258 | 代理人: | 宋鹤 |
地址: | 英国*** | 国省代码: | 英国;GB |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 多线程 处理 线程 选择 | ||
技术领域
本发明涉及数据处理系统领域。更具体地,本发明涉及对在多线程处理系统中执行的程序线程的选择。
背景技术
提供利用粗粒度多线程和/或细粒度多线程的处理系统是已知的。在粗粒度多线程中,在不同的时间不同的程序线程可被选择为活动的。在细粒度多线程中,来自不同程序线程的程序指令被相互交错并且作为将要执行的程序指令的流被馈送给执行机构。在细粒度多线程的情况下,供执行的程序线程将比可被同时交错的程序线程更多是常见情况。因此,就哪些程序线程在给定时间是活动的做出选择。
简单的选择机构可以以粗粒度水平依次选择不同的程序线程用于执行。该方法的问题在于,当来自当前活动程序线程的程序指令被交错时,每个程序线程可能无法在每个周期发射程序指令以供执行。例如,程序线程内的程序指令之间的数据依赖性可能需要程序指令在可被发射之前停止以等待更早程序指令的完成。当前活动的不同程序线程有可能能够使用在其期间另一程序线程被停止的周期。然而,还有可能的是,同时活动的若干程序线程可能这样:它们都经受大量停止,数据处理系统的资源因而被低效使用,这是因为活动线程无法在每个周期发射程序指令。
发明内容
从一个方面看,本发明提供了一种用于处理数据的装置,包括:
执行电路,该执行电路被配置为执行程序指令;
发射控制电路,该发射控制电路被耦合到所述执行电路并且被配置为从多个程序线程中选择程序指令以组成要发射到所述执行电路的程序指令的序列,所述发射控制电路被配置为选择所述程序指令以使得来自所述多个程序线程中的不同程序线程的程序指令被交错在所述序列内;以及
线程性能监视电路,该线程性能监视电路被耦合到发射控制电路并且被配置为测量多个性能值,所述多个性能值中的每一个性能值指示所述多个程序线程中的一个程序线程的性能参数;其中
所述发射控制电路被配置为根据所述多个性能值来选择程序指令将被从所述多个程序线程中的哪些程序线程发射到所述执行电路。
本技术认识到以上问题并且提供了用于测量多个性能值的线程性能监视电路,这些性能值中的每一个性能值指示所述多个程序线程中的一个程序线程的性能参数。用于选择哪些程序线程活动的发射控制电路然后可以使用这些性能值来以可以提高执行电路利用效率的方式选择哪些程序线程将会活动。
将会认识到,性能监视电路值可以监视各种性能参数。然而,在一些实施例中,性能值为程序线程中的每一个指示该线程的程序指令已经可用于发射的周期的比例。很少遭受停止的程序线程将具有指示如下周期的高比例的性能值,这些周期是在其中来自该程序线程的程序指令曾可用于发射的周期。相反地,遭受大量数据依赖冒险和/或分支未命中预测的程序线程将具有指示该程序线程能够发射程序指令的周期的比例相对低的性能值。
在这种性能值的上下文中,发射控制电路可以选择将从中发射程序指令的下一程序线程以使得该程序线程将补充将与之同时活动的一个或多个程序线程。具体而言,如果活动程序线程一起组合使得其性能值指示在它们当中它们将能够在其中发射程序指令的周期的比例接近一,则是高效的。因此,具有指示高比例周期上的程序指令可用性的性能值的程序线程可被与具有指示程序指令在低比例周期上可用的性能值的程序线程相匹配,使得程序指令可用于发射的周期的比例总共大体是一(即,它们一起能够大体在每个周期发射程序指令)。
使程序线程的测量性能特性相匹配使得可以避免其中程序线程被组合因而低效利用执行资源的情形以及其中程序线程被组合因而相互低效竞争执行资源的情形。可被应用的另一选择标准是预计得到使用的发射周期的组合比例将不小于一。
程序线程之所以无法在任何给定周期发射程序指令可能有各种原因。具体的这种情形包括指令之间的操作数依赖以及例如由于分支未命中预测而尚未从存储器中提取将在线程中发射的下一指令。特定程序线程之所以无法在给定周期发射其下一指令可能有其他原因。
线程性能监视电路可包括与每个活动程序线程相关联的计数器,其中该计数器被配置为根据相应线程在每个周期是否具有可用于发射的程序指令来累积计数值。所累积的计数值可以对指令可在其中用于发射的周期进行计数,或者相反地对指令在其中不可用于发射的周期进行计数。这两种计数都可被用于指示该程序线程曾能够利用的可用周期的比例。该所测得性能被用于预测该程序线程当接下来被选择时的行为,并且因此可被发射控制电路用于选择与具有互补处理要求的程序线程组合执行的程序线程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于ARM有限公司,未经ARM有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210097657.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于在网络应用程序中保持网络会话有效的方法
- 下一篇:一种加强型导轨连接板