一种扩展处理器指令集的方法及装置制造方法及图纸

技术编号:14510202 阅读:311 留言:0更新日期:2017-02-01 02:49
本发明专利技术公开了一种扩展处理器指令集的方法及装置,涉及通信技术领域,能够在不修改处理器内核的前提条件下,提高处理器的处理速度。本发明专利技术的方法包括:监控模块通过片上总线识别指令,并将指令中的扩展指令保存至本地存储器;在处理器内核通过片上总线从内存中加载到扩展指令之后,处理器内核译码扩展指令,产生未定义指令异常;在处理器内核执行完当前指令之后,处理器内核执行异常处理程序,并暂停执行扩展指令之后的指令,且通过监控模块触发扩展指令对应的执行模块执行扩展指令;监控模块控制处理器内核退出异常处理程序,以便于处理器内核继续执行扩展指令之后的指令。本发明专利技术适用于扩展指令的执行过程。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种扩展处理器指令集的方法及装置
技术介绍
随着通信技术的发展,为了提升通信系统的处理能力,往往需要使用硬件加速模块来对复杂业务进行处理,例如:浮点运算、加解密、压缩解压缩等操作。目前,可以采用如下方法来实现对复杂业务的处理:采用协处理器执行诸如浮点指令的专用指令,也就是说,处理器需要将专用指令发送给协处理器来执行。这种处理方式的优点为编程简单,可以直接使用协处理器指令;缺点为处理器必须支持这种专用指令,但是,并非所有的处理器内核都支持这个功能,比如:厂家使用第三方的处理器内核来设计自己的处理器,就无法支持该协处理器的运行。或者,将硬件加速模块作为处理器的外设,处理器通过PCIe(英文:PeripheralComponentInterconnectexpress,中文:PCI快速通道)等接口将数据发送给加速模块进行处理,加速模块会将处理结果通过处理器存储至内存,当处理器需要访问处理结果时,则从内存读取处理结果。这种处理方式在实现过程中比较灵活,因为加速模块与处理器是解耦的,但是处理器与加速模块之间存在频繁的数据交互,这样就降低了业务的处理性能。因此,目前仍需要一种能够结合上述两种技术的优点的实现方法,以提高业务的处理能力并简化程序设计。
技术实现思路
本专利技术提供一种扩展处理器指令集的方法及装置,能够在不修改处理器内核的前提条件下,提高处理器的处理速度。为达到上述目的,本专利技术采用如下技术方案:一方面,本专利技术提供的扩展处理器指令集的方法。该方法用于一种芯片,该芯片包括处理器内核、监控模块和至少一个用于执行扩展指令的执行模块,监控模块和至少一个用于执行扩展指令的执行模块通过可编程逻辑来实现。扩展处理器指令集的方法包括:监控模块通过片上总线识别指令,该指令为处理器内核通过片上总线从内存加载的指令;监控模块将指令中的扩展指令保存至本地存储器;在处理器内核通过片上总线从内存中加载到扩展指令之后,处理器内核译码扩展指令,产生未定义指令异常,该扩展指令为已存储至本地存储器中的扩展指令;在处理器内核执行完当前指令之后,处理器内核执行异常处理程序,该异常处理程序为未定义指令异常触发的程序;在处理器内核执行异常处理程序时,处理器内核暂停执行扩展指令之后的指令,且通过监控模块触发扩展指令对应的执行模块执行扩展指令;监控模块控制处理器内核退出异常处理程序,以便于处理器内核继续执行扩展指令之后的指令。由此可见,虽然处理器内核无法执行该扩展指令,但由于每条扩展指令都存在与其对应的执行模块来执行该扩展指令,因此,即便处理器内核不具备能够执行该扩展指令的能力,但仍可以借助执行模块来顺利完成扩展指令的执行过程,且在执行完该扩展指令之后,再触发处理器内核继续执行该扩展指令之后的指令。这样一来,就相当于扩展了处理器内核的指令集,因此,提升了处理器的业务处理能力,从而提高了处理器的处理速度。在一种可能的设计中,考虑到每个执行模块能够执行至少一条扩展指令,每条扩展指令对应一个指令地址,因此,为了确保准确确定扩展指令,处理器内核通过监控模块触发扩展指令对应的执行模块执行扩展指令的过程,可以具体实现为:处理器内核向监控模块发送当处理器内核产生未定义指令异常时程序计数器中的内容,该程序计数器中的内容为扩展指令的下一条指令的指令地址;监控模块根据下一条指令的指令地址,确定扩展指令的指令地址;监控模块通知扩展指令对应的执行模块执行与指令地址对应的扩展指令。由此可见,本专利技术可以根据所获取的程序计数器中所记载的下一条指令的指令地址,准确推算出扩展指令的指令地址,从而确保监控模块可以及时通知能够用于执行该扩展指令的执行模块执行该扩展指令。在一种可能的设计中,在监控模块通知扩展指令对应的执行模块执行与指令地址对应的扩展指令之前,包括:监控模块根据已存储至本地存储器的扩展指令,确定扩展指令对应的执行模块。由此可见,本专利技术可以通过先根据扩展指令来确定执行模块的方式,可以找到唯一的用于执行该扩展指令的执行模块,这样能够确保在监控模块通知该执行模块执行扩展指令之后,该执行模块可以成功执行该扩展指令。在一种可能的设计中,监控模块将指令中的扩展指令保存至本地存储器,具体可以实现为:监控模块将指令中的扩展指令按照预设格式保存至本地存储器,该预设格式包括扩展指令的指令地址、扩展指令的内容和扩展指令对应的执行模块。由此可见,本专利技术中监控模块可以通过按照预设格式对从片上总线识别到的扩展指令进行存储,可以便于对已存储的扩展指令进行管理。此外,当需要为扩展指令确定对应的执行模块时,也可以直接从本地存储器调用已存储的内容,来快速锁定扩展指令所对应的执行模块,并由监控模块触发该执行模块执行该扩展指令。在一种可能的设计中,在处理器内核通过监控模块触发扩展指令对应的执行模块执行扩展指令之后,处理器内核暂时停留在异常处理程序中。由此可见,当处理器内核暂时停留在异常处理程序中时,可以确保处理器内核在当前能够不继续执行扩展指令之后的指令。在一种可能的设计中,处理器内核暂时停留在异常处理程序中,具体可以实现为:处理器内核访问预设的保留内存地址,该保留内存地址不对应任何一个物理内存单元;当监控模块向处理器内核发送重试响应之后,处理器内核再次访问保留内存地址。由此可见,在处理器内核访问预设的保留内存地址时,由于监控模块向处理器内核返回了重试响应,因此,处理器内核会反复访问这个预设的保留内存地址,从而确保处理器内核能够暂时停留在异常处理程序中。也就意味着,处理器内核能够暂时不执行扩展指令之后的下一条指令。在一种可能的设计中,监控模块控制处理器内核退出异常处理程序,可以具体实现为:当监控模块向处理器内核发送正常完成响应之后,处理器内核退出异常处理程序。即本专利技术能够确保处理器内核能在必要时退出异常处理程序。在一种可能的设计中,在处理器内核译码扩展指令,产生未定义指令异常之后,监控模块生成硬件信号,该硬件信号用于控制处理器内核是否停留在异常处理程序中;监控模块向处理器内核发送硬件信号。处理器内核暂时停留在异常处理程序中,具体可以实现为:当硬件信号为低电平时,处理器内核暂时停留在异常处理程序中。由此可见,在监控模块根据程序计数器中的内容,生成低电平的硬件信号,且向处理器内核发送之后,可以确保处理器内核能够暂时停留在异常处理程序中。也就意味着,处理器内核能够暂时不执行扩展指令之后的下一条指令。在一种可能的设计中,监控模块控制处理器内核退出异常处理程序,具体可以实现为:当硬件信号为高电平时,处理器内核退出异常处理程序。也就意味着,监控模块可以通过生成不同电平的硬件信号,来有效控制处理器内核的工作状态。在一种可能的设计中,处理器内核继续执行扩展指令之后的指令,具体可以实现为:处理器内核将执行异常处理程序之前备份的通用寄存器、程序计数器和状态寄存器的数据恢复,之后根据程序计数器中存储的下一条指令地址,从下一条指令地址取指令;处理器内核执行下一条指令地址对应的指令。由此可见,在执行模块完成扩展指令的执行过程之后,处理其内核可以采用上述方法恢复断点,直接执行扩展指令之后的指令。在一种可能的设计中,芯片还包括内存控制器,内存控制器用于从内存中读取指令和数据,监控模块能够设置在内存控制本文档来自技高网...

【技术保护点】
一种扩展处理器指令集的方法,其特征在于,所述方法用于一种芯片,所述芯片包括处理器内核、监控模块和至少一个用于执行扩展指令的执行模块,所述监控模块和所述至少一个用于执行扩展指令的执行模块通过可编程逻辑来实现,所述方法包括:所述监控模块通过片上总线识别指令,所述指令为所述处理器内核通过所述片上总线从内存加载的指令;所述监控模块将所述指令中的扩展指令保存至本地存储器;在所述处理器内核通过所述片上总线从所述内存中加载到扩展指令之后,所述处理器内核译码扩展指令,产生未定义指令异常,所述扩展指令为已存储至所述本地存储器中的所述扩展指令;在所述处理器内核执行完当前指令之后,所述处理器内核执行异常处理程序,所述异常处理程序为所述未定义指令异常触发的程序;在所述处理器内核执行所述异常处理程序时,所述处理器内核暂停执行所述扩展指令之后的指令,且通过所述监控模块触发所述扩展指令对应的执行模块执行所述扩展指令;所述监控模块控制所述处理器内核退出所述异常处理程序,以便于所述处理器内核继续执行所述扩展指令之后的指令。

【技术特征摘要】
1.一种扩展处理器指令集的方法,其特征在于,所述方法用于一种芯片,所述芯片包括处理器内核、监控模块和至少一个用于执行扩展指令的执行模块,所述监控模块和所述至少一个用于执行扩展指令的执行模块通过可编程逻辑来实现,所述方法包括:所述监控模块通过片上总线识别指令,所述指令为所述处理器内核通过所述片上总线从内存加载的指令;所述监控模块将所述指令中的扩展指令保存至本地存储器;在所述处理器内核通过所述片上总线从所述内存中加载到扩展指令之后,所述处理器内核译码扩展指令,产生未定义指令异常,所述扩展指令为已存储至所述本地存储器中的所述扩展指令;在所述处理器内核执行完当前指令之后,所述处理器内核执行异常处理程序,所述异常处理程序为所述未定义指令异常触发的程序;在所述处理器内核执行所述异常处理程序时,所述处理器内核暂停执行所述扩展指令之后的指令,且通过所述监控模块触发所述扩展指令对应的执行模块执行所述扩展指令;所述监控模块控制所述处理器内核退出所述异常处理程序,以便于所述处理器内核继续执行所述扩展指令之后的指令。2.根据权利要求1所述的方法,其特征在于,每个执行模块能够执行至少一条扩展指令,每条扩展指令对应一个指令地址,所述处理器内核通过所述监控模块触发所述扩展指令对应的执行模块执行所述扩展指令,包括:所述处理器内核向所述监控模块发送当所述处理器内核产生所述未定义指令异常时程序计数器中的内容,所述程序计数器中的内容为所述扩展指令的下一条指令的指令地址;所述监控模块根据所述下一条指令的指令地址,确定所述扩展指令的指令地址;所述监控模块通知所述扩展指令对应的执行模块执行与所述指令地址对应的扩展指令。3.根据权利要求2所述的方法,其特征在于,在所述监控模块通知所述扩展指令对应的执行模块执行与所述指令地址对应的扩展指令之前,包括:所述监控模块根据已存储至所述本地存储器的所述扩展指令,确定所述扩展指令对应的执行模块。4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述监控模块将所述指令中的扩展指令保存至本地存储器,包括:所述监控模块将所述指令中的扩展指令按照预设格式保存至所述本地存储器,所述预设格式包括所述扩展指令的指令地址、所述扩展指令的内容和所述扩展指令对应的执行模块。5.根据权利要求2所述的方法,其特征在于,在所述处理器内核通过所述监控模块触发所述扩展指令对应的执行模块执行所述扩展指令之后,包括:所述处理器内核暂时停留在所述异常处理程序中。6.根据权利要求5所述的方法,其特征在于,所述处理器内核暂时停留在所述异常处理程序中,包括:所述处理器内核访问预设的保留内存地址,所述保留内存地址不对应任何一个物理内存单元;当所述监控模块向所述处理器内核发送重试响应之后,所述处理器内核再次访问所述保留内存地址。7.根据权利要求6所述的方法,其特征在于,所述监控模块控制所述处理器内核退出所述异常处理程序,包括:当所述监控模块向所述处理器内核发送正常完成响应之后,所述处理器内核退出所述异常处理程序。8.根据权利要求5所述的方法,其特征在于,在所述处理器内核译码扩展指令,产生未定义指令异常之后,包括:所述监控模块生成硬件信号,所述硬件信号用于控制所述处理器内核是否停留在所述异常处理程序中;所述监控模块向所述处理器内核发送所述硬件信号;所述处理器内核暂时停留在所述异常处理程序中,包括:当所述硬件信号为低电平时,所述处理器内核暂时停留在所述异常处理程序中。9.根据权利要求8所述的方法,其特征在于,所述监控模块控制所述处理器内核退出所述异常处理程序,包括:当所述硬件信号为高电平时,所述处理器内核退出所述异常处理程序。10.根据权利要求7或9所述的方法,其特征在于,所述处理器内核继续执行所述扩展指令之后的指令,包括:所述处理器内核将执行所述异常处理程序之前备份的通用寄存器、程序计数器和状态寄存器的数据恢复;所述处理器内核根据所述程序计数器中存储的下一条指令地址,从所...

【专利技术属性】
技术研发人员:李延松吴求应
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1