[发明专利]用于多线程处理的方法、装置及系统有效
申请号: | 201910739180.8 | 申请日: | 2019-08-12 |
公开(公告)号: | CN110569067B | 公开(公告)日: | 2021-07-13 |
发明(设计)人: | 马凌;周伟;何昌华 | 申请(专利权)人: | 创新先进技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京永新同创知识产权代理有限公司 11376 | 代理人: | 林锦辉 |
地址: | 英属开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 多线程 处理 方法 装置 系统 | ||
本说明书实施例提供一种用于多线程处理的方法及装置。在该方法中,针对待处理的第一数目个线程中的各个线程,使用不同的第一逻辑寄存器集合来进行编译以得到对应的机器指令代码;以及使用处理内核所支持的指令集中的第一指令来对各个线程的机器指令代码进行融合处理,以得到单个融合线程的机器指令代码,其中,所述第一指令包括取有效地址指令和转移指令,所述取有效地址指令和转移指令利用与第一逻辑寄存器集合不同的第二逻辑寄存器来编译得到,所述转移指令被设置在各个线程所对应的机器指令代码中,用于实现各个线程的机器指令代码之间的跳转操作。
技术领域
本说明书实施例通常涉及计算机应用技术,更具体地,涉及用于多线程处理的方法、装置及系统。
背景技术
在多线程处理机制中,处理内核(例如,CPU)根据线程数据在每个指令周期以轮询的方式进行指令存取和解码操作,完成之后将指令放到对应的硬件指令解码队列中,同时CPU执行单元在每个指令周期会轮询地从每个硬件指令解码队列得到解码后的指令,然后放入CPU执行单元开始运行。
在上述多线程处理机制中,CPU会为每个线程准备一个独立的硬件运行环境,以便运行该线程。例如,CPU会为每个线程准备对应的指令预测、指令执行、指令提交等硬件资源。通常,在所运行的线程从1个增加到2个时,会增加5%的硬件成本。多线程处理机制所运行的线程数目越多,需要增加的硬件成本也会越多。
发明内容
鉴于上述问题,本说明书实施例提供了一种用于多线程处理的方法、装置及系统。利用该方法、装置及系统,能够将多个线程融合为单个融合线程来运行,从而在无需增加硬件成本的情况下实现多线程处理。
根据本说明书实施例的一个方面,提供了一种用于多线程处理的方法,包括:针对待处理的第一数目个线程中的各个线程,使用不同的第一逻辑寄存器集合来进行编译以得到对应的机器指令代码;以及使用处理内核所支持的指令集中的第一指令来对各个线程的机器指令代码进行融合处理,以得到单个融合线程的机器指令代码,其中,所述第一指令包括取有效地址指令和转移指令,所述取有效地址指令和转移指令利用与所述第一逻辑寄存器集合不同的第二逻辑寄存器来编译得到,所述转移指令被设置在所述各个线程所对应的机器指令代码中,用于实现所述各个线程的机器指令代码之间的跳转操作。
可选地,在上述方面的一个示例中,所述第一数目不超过第一预定阈值,所述第一预定阈值是基于所述处理内核可使用的逻辑寄存器的数目来确定的。
可选地,在上述方面的一个示例中,所述转移指令包括通过对所述各个线程的机器指令代码中的全部或部分跳转指令进行修改而获得的第一转移指令。
可选地,在上述方面的一个示例中,所述转移指令还包括基于转移指令增加规则增加的第二转移指令。
可选地,在上述方面的一个示例中,所述转移指令增加规则包括:使得所述转移指令彼此间隔不超过第二预定数目条指令;和/或使用指令编译器调优策略来在合适的机器指令之后增加所述第二转移指令。
可选地,在上述方面的一个示例中,所述第二预定数目是基于所述处理内核在单个指令周期所能执行的指令数目确定的。
可选地,在上述方面的一个示例中,经过融合后的每个线程具有基于转移指令分割出的至少一个指令跳转块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于创新先进技术有限公司,未经创新先进技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910739180.8/2.html,转载请声明来源钻瓜专利网。