计算机指令处理方法、协处理器和系统技术方案

技术编号:14444646 阅读:72 留言:0更新日期:2017-01-15 09:30
本发明专利技术实施例公开了一种计算机指令处理方法、协处理器和系统;所述计算机指令处理方法包括:协处理器接收中央处理器CPU迁移的第一指令集,根据适于CPU执行的第一指令集获取在协处理器执行的第二指令集,执行所述第二指令集中的二进制代码。这样,由协处理器执行第二指令集代替由CPU执行第一指令集,减小CPU的负荷,提高协处理器的使用率。

【技术实现步骤摘要】

本专利技术实施例涉及计算机领域,尤其涉及计算机指令处理方法、协处理器和系统
技术介绍
目前,协处理器(coprocessor),为一种芯片,主要用于代中央处理器(CentralProcessingUnit,简称CPU)处理特定任务。由于协处理器和中央处理器在指令集上的部分差异,在协处理器上运行的程序往往需要使用编译器单独编译,且需要对代码进行一定调整。现有技术中,对于某个应用的代码,一般会在该应用的代码中做好标签,通过该标签区分出哪些代码由CPU执行,哪些代码由协处理器执行。首先,对该应用的所有代码编译,包括根据标签对由CPU执行的代码和对由协处理器执行的代码进行不同的编译;代码编译后,CPU运行该应用的进程的过程中,如执行到需由协处理器执行的已编译代码,则CPU暂停执行该应用的进程并发送需由协处理器执行的已编译代码至协处理器,将标签处的代码卸载(offload)到协处理器上执行。从上可知,现有技术完成对应用的代码编译时,已明确哪部分已编译代码由CPU执行,哪些已编译代码由协处理器执行,不能根据需求将任意代码发送给协处理器执行,导致协处理器实际使用率较低,不能很好减轻CPU的负荷。
技术实现思路
有鉴于此,本专利技术实施例提供了一种计算机指令处理方法、协处理器和系统,CPU可将计算机指令迁移至运行有操作系统的协处理器,由协处理器执行该计算机指令来减小CPU的负荷。第一方面,本专利技术实施例提供了一种计算机指令处理方法,应用于处理器系统,所述处理器系统包括协处理器和中央处理器CPU,所述CPU上运行第一操作系统,所述协处理器上运行第二操作系统;所述方法包括:所述协处理器接收所述CPU迁移的第一指令集,所述第一指令集用于指示所述CPU在所述第一操作系统中执行计算机操作,所述第一指令集为适用于所述第一操作系统的二进制代码的集合;所述协处理器根据所述第一指令集获得第二指令集,其中,所述第二指令集中的二进制代码用于指示所述协处理器在所述第二操作系统中执行所述计算机操作;所述协处理器执行所述第二指令集中的二进制代码。结合第一方面,在第一种可能的实现方式中,所述协处理器根据所述第一指令集获得第二指令集包括:所述协处理器在预先设置的翻译表中匹配所述第一指令集中的二进制代码的操作码,若所述第一指令集中的第一二进制代码的操作码在所述翻译表中被匹配到,则根据所述翻译表中所述第一二进制代码的操作码对应的匹配项,将所述第一二进制代码的操作码翻译为第二二进制代码的操作码,获得所述第二二进制代码,所述协处理器根据获得的至少一条所述第二二进制代码获得所述第二指令集,其中,所述翻译表包含相同的计算机指令分别编译生成的在所述第一操作系统和所述第二操作系统中不同的操作码之间的对应关系,所述第二二进制代码为适用于所述第二操作系统的二进制代码。结合第一方面或者第一方面的的第一种可能的实现方式,在第二种可能的实现方式中,在所述协处理器执行所述第二指令集中的二进制代码之前,所述方法还包括:所述协处理器将所述第二指令集包含的二进制代码中所述CPU的寄存器地址转换为所述协处理器的寄存器地址。结合第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述协处理器根据所述第一指令集获得第二指令集还包括:若所述第一指令集中的第三二进制代码的操作码在所述翻译表中未被匹配到,则所述协处理器将所述第三二进制代码做为所述第二指令集中的二进制代码。结合第一方面或者第一方面的的第一种可能的实现方式或者在第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第一指令集是所述CPU在所述CPU的CPU使用率大于第一阈值时向所述协处理器迁移的。结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述协处理器接收所述CPU迁移的第一指令集,包括:所述协处理器接收所述CPU发送的要迁移的所述第一指令集的地址,所述第一指令集的地址是指所述第一指令集在所述CPU的内存中存储的地址,其中,所述第一指令集的地址由所述CPU在所述CPU的内存使用率小于或等于第二阈值时向所述协处理器发送;所述协处理器基于所述第一指令集的地址访问所述CPU的内存来获取所述第一指令集。结合第一方面或者第一方面的的第一种可能的实现方式或者在第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第六种可能的实现方式中,所述第一指令集由所述CPU在所述CPU的内存使用率大于第二阈值时向所述协处理器发送。结合第一方面或者第一方面的的第一种可能的实现方式或者在第二种可能的实现方式或者第一方面的第三种可能的实现方式或者第一方面的的第四种可能的实现方式或者在第五种可能的实现方式或者第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述协处理器执行所述第二指令集中的二进制代码,包括:所述协处理器依次执行所述第二指令集中的二进制代码;如果检测到执行所述第二指令集时出现二进制代码识别异常,则确定触发异常的第四二进制代码;将所述第四二进制代码转换为中间代码,再将所述中间代码转换为适用于所述第二操作系统的第五二进制代码;执行所述第五二进制代码,并继续执行所述第二指令集中所述第四二进制代码之后的二进制代码。结合第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述将所述第四二进制代码转换为中间代码之前,还包括:向所述CPU发送指令集回迁请求;接收所述CPU发送的拒绝回迁指令。结合第一方面或者第一方面的的第一种可能的实现方式或者在第二种可能的实现方式或者第一方面的第三种可能的实现方式或者第一方面的的第四种可能的实现方式或者在第五种可能的实现方式或者第一方面的第六种可能的实现方式,在第九种可能的实现方式中,所述协处理器执行所述第二指令集中的二进制代码,包括:所述协处理器依次执行所述第二指令集中的二进制代码;如果检测到执行所述第二指令集时出现二进制代码识别异常,则确定触发异常的第六二进制代码;根据所述第二指令集中所述第六二进制代码开始的二进制代码获取适用于所述第一操作系统的第三指令集,并向所述CPU迁移所述第三指令集。结合第一方面的第九种可能的实现方式,在第十种可能的实现方式中,所述根据所述第二指令集中所述第六二进制代码开始的二进制代码获取适用于所述第一操作系统的第三指令集之前,还包括:向所述CPU发送指令集回迁请求;接收所述CPU发送的指令集回迁响应。第二方面,本专利技术实施例提供了一种协处理器,应用于处理器系统,所述处理器系统包括所述协处理器和运行第一操作系统的中央处理器CPU,所述协处理器上运行第二操作系统;所述协处理器包括:第一指令集接收单元,用于接收所述CPU迁移的第一指令集,所述第一指令集用于指示所述CPU在所述第一操作系统中执行计算机操作,所述第一指令集为适用于所述第一操作系统的二进制代码的集合;第二指令集获得单元,用于根据所述第一指令集获得第二指令集,其中,所述第二指令集中的二进制代码用于指示所述协处理器在所述第二操作系统中执行所述计算机操作;第二指令集执行单元,用于执行所述第二指令集中的二进制代码。结合第二方面,在第一种可能的实现方式中,所述第二指令集获得单元,用本文档来自技高网...
计算机指令处理方法、协处理器和系统

【技术保护点】
一种计算机指令处理方法,应用于处理器系统,所述处理器系统包括协处理器和中央处理器CPU,其特征在于,所述CPU上运行第一操作系统,所述协处理器上运行第二操作系统;所述方法包括:所述协处理器接收所述CPU迁移的第一指令集,所述第一指令集用于指示所述CPU在所述第一操作系统中执行计算机操作,所述第一指令集为适用于所述第一操作系统的二进制代码的集合;所述协处理器根据所述第一指令集获得第二指令集,其中,所述第二指令集中的二进制代码用于指示所述协处理器在所述第二操作系统中执行所述计算机操作;所述协处理器执行所述第二指令集中的二进制代码。

【技术特征摘要】
1.一种计算机指令处理方法,应用于处理器系统,所述处理器系统包括协处理器和中央处理器CPU,其特征在于,所述CPU上运行第一操作系统,所述协处理器上运行第二操作系统;所述方法包括:所述协处理器接收所述CPU迁移的第一指令集,所述第一指令集用于指示所述CPU在所述第一操作系统中执行计算机操作,所述第一指令集为适用于所述第一操作系统的二进制代码的集合;所述协处理器根据所述第一指令集获得第二指令集,其中,所述第二指令集中的二进制代码用于指示所述协处理器在所述第二操作系统中执行所述计算机操作;所述协处理器执行所述第二指令集中的二进制代码。2.根据权利要求1所述的方法,其特征在于,所述协处理器根据所述第一指令集获得第二指令集包括:所述协处理器在预先设置的翻译表中匹配所述第一指令集中的二进制代码的操作码,若所述第一指令集中的第一二进制代码的操作码在所述翻译表中被匹配到,则根据所述翻译表中所述第一二进制代码的操作码对应的匹配项,将所述第一二进制代码的操作码翻译为第二二进制代码的操作码,获得所述第二二进制代码,所述协处理器根据获得的至少一条所述第二二进制代码获得所述第二指令集,其中,所述翻译表包含相同的计算机指令分别编译生成的在所述第一操作系统和所述第二操作系统中不同的操作码之间的对应关系,所述第二二进制代码为适用于所述第二操作系统的二进制代码。3.根据权利要求1或2所述的方法,其特征在于,在所述协处理器执行所述第二指令集中的二进制代码之前,所述方法还包括:所述协处理器将所述第二指令集包含的二进制代码中所述CPU的寄存器地址转换为所述协处理器的寄存器地址。4.根据权利要求2或3所述的方法,其特征在于,所述协处理器根据所述第一指令集获得第二指令集还包括:若所述第一指令集中的第三二进制代码的操作码在所述翻译表中未被匹配到,则所述协处理器将所述第三二进制代码做为所述第二指令集中的二进制代码。5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一指令集是所述CPU在所述CPU的CPU使用率大于第一阈值时向所述协处理器迁移的。6.根据权利要求5所述的方法,其特征在于,所述协处理器接收所述CPU迁移的第一指令集,包括:所述协处理器接收所述CPU发送的要迁移的所述第一指令集的地址,所述第一指令集的地址是指所述第一指令集在所述CPU的内存中存储的地址,其中,所述第一指令集的地址由所述CPU在所述CPU的内存使用率小于或等于第二阈值时向所述协处理器发送;所述协处理器基于所述第一指令集的地址访问所述CPU的内存来获取所述第一指令集。7.根据权利要求1至4任一项所述的方法,其特征在于,所述第一指令集由所述CPU在所述CPU的内存使用率大于第二阈值时向所述协处理器发送。8.根据权利要求1至7任一项所述的方法,其特征在于,所述协处理器执行所述第二指令集中的二进制代码,包括:所述协处理器依次执行所述第二指令集中的二进制代码;如果检测到执行所述第二指令集时出现二进制代码识别异常,则确定触发异常的第四二进制代码;将所述第四二进制代码转换为中间代码,再将所述中间代码转换为适用于所述第二操作系统的第五二进制代码;执行所述第五二进制代码,并继续执行所述第二指令集中所述第四二进制代码之后的二进制代码。9.根据权利要求8所述的方法,其特征在于,所述将所述第四二进制代码转换为中间代码之前,还包括:向所述CPU发送指令集回迁请求;接收所述CPU发送的拒绝回迁指令。10.根据权利要求1至7任一项所述的方法,其特征在于,所述协处理器执行所述第二指令集中的二进制代码,包括:所述协处理器依次执行所述第二指令集中的二进制代码;如果检测到执行所述第二指令集时出现二进制代码识别异常,则确定触发异常的第六二进制代码;根据所述第二指令集中所述第六二进制代码开始的二进制代码获
\t取适用于所述第一操作系统的第三指令集,并向所述CPU迁移所述第三指令集。11.根据权利要求10所述的方法,其特征在于,所述根据所述第二指令集中所述第六二进制代码开始的二进制代码获取适用于所述第一操作系统的第三指令集之前,还包括:向所述CPU发送指令集回迁请求;接收所述CPU发送的指令集回迁响应。12.一种协处理器,应用于处理器系统,所述处理器系统包括所述协处理器和运行第一操作系统的中央处理器CPU,其特征在于,所述协处理器上运行第二操作系统;所述协处理器包括:第一指令集接收单元,用于接收所述CPU迁移的第一指令集,所述第一指令集用于指示所述CPU在所述第一操作系统中执行计算机操作,所述第一指令集为适用于所述第一操作系统的...

【专利技术属性】
技术研发人员:高云伟林鑫龙詹剑锋
申请(专利权)人:华为技术有限公司中国科学院计算技术研究所
类型:发明
国别省市:广东;44

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

1