首页> 中国专利> 协处理器、协处理器控制方法、终端及存储介质

协处理器、协处理器控制方法、终端及存储介质

摘要

本发明公开了一种协处理器、协处理器控制方法、终端及存储介质,所述方法包括:根据第一运算请求信号,确定对应的第一运算模式,从而确定第一运算数据,执行第一运算数据,若接收到第二运算请求信号,则停止执行第一运算数据,执行第二运算数据,并检测是否接收到新运算请求信号,若接收到新运算请求信号,则基于新运算请求信号进行执行第二运算数据的步骤,若否,则等第二运算数据执行完成后,继续进行执行第一运算数据的步骤。本发明中的协处理器在遇到突发事件时,对当前现场数据进行处理,并在突发事件结束后,恢复当前现场运算数据,可以避免由于缺少当前现场的运算数据,从而会导致数据处理出现异常,无法继续进行数据处理的现象发生。

著录项

  • 公开/公告号CN113253664A

    专利类型发明专利

  • 公开/公告日2021-08-13

    原文格式PDF

  • 申请/专利权人 峰岹科技(深圳)股份有限公司;

    申请/专利号CN202110748820.9

  • 发明设计人 李宝荣;林敏;毕磊;毕超;

    申请日2021-07-02

  • 分类号G05B19/042(20060101);

  • 代理机构44542 深圳市恒程创新知识产权代理有限公司;

  • 代理人苗广冬

  • 地址 518000 广东省深圳市南山区高新中区科技中2路1号深圳软件园(2期)11栋203室

  • 入库时间 2023-06-19 12:13:22

说明书

技术领域

本发明涉及计算机技术领域,尤其涉及一种协处理器、协处理器控制方法、终端及存储介质。

背景技术

随着科学技术的不断发展,微处理器已经无处不在,无论是录像机、智能洗衣机、移动电话等家电产品,还是汽车引擎控制,以及数控机床、导弹精确制导等都要嵌入各类不同的微处理器。以便根据微处理器进行不同的数据处理。

而且随着大数据、云计算、物联网的技术的不断发展,对于数据处理的要求也越来越高。但是对于8位的微处理器在进行一些计算量庞大且复杂的运算时,仅8位宽的运算指令是无法满足的,因此8位微处理器在进行数据处理时需要协处理器进行帮助。而在数据处理的过程中,如果有突发事件发生,且需协处理器立马执行新算法时,协处理器一般是直接执行新算法,未对当前现场的运算数据进行保存与恢复。那么在新算法执行结束之后,由于缺少当前现场的运算数据,从而会导致数据处理出现异常,无法继续进行数据处理的现象发生。

发明内容

本发明的主要目的在于提供一种协处理器及协处理器控制方法。旨在解决如何避免协处理器遇到突发事件时,无法继续进行数据处理的技术问题。

为实现上述目的,本发明提供一种协处理器,所述协处理器用于协助微处理器进行数据处理,其特征在于,所述协处理器包括配置控制器、数据缓存器、运算器组和计算器;所述运算器组为多个运算器的集合,各所述运算器包含有不同的算法,所述配置控制器与所述微处理器、数据缓存器、运算器组连接;

所述配置控制器接收所述微处理器发送的第一运算请求信号,根据所述第一运算请求信号确定所述运算器组中对应的运算器作为第一运算器,并根据所述第一运算请求信号运行所述第一运算器;

所述运算器组与所述计算器连接,所述第一运算器运行时调用所述计算器进行计算,并获取所述计算的计算结果;

若所述配置控制器接收到所述微处理器发送的第二运算请求信号,则根据所述第二运算请求信号确定第二运算器,并根据所述第二运算请求信号停止运行所述第一运算器,保存所述第一运算器相关内容运行所述第二运算器,在所述第二运算器运行结束后,继续运行所述第一运算器。

可选的,所述配置控制器与所述微处理器连接;

若所述配置控制器接收到所述微处理器发送的第二运算请求信号,则运行所述第二运算请求信号对应的第二运算器,并停止运行所述第一运算器,检测是否接收到所述微处理器发送的新运算请求信号;

若接收到所述微处理器发送的新运算请求信号,则基于所述新运算请求信号执行所述运行所述第二运算请求信号对应的第二运算器的步骤;

若未接收到所述微处理器发送的新运算请求信号,则继续运行所述第二运算器,直至所述第二运算器运行结束,再继续运行所述第一运算器。

可选的,所述数据缓存器与所述配置控制器连接;

所述配置控制器获取所述微处理器发送的第二运算请求信号时触发所述数据缓存器使用堆栈的方式存储所述第一运算请求信号对应的第一运算模式和第一运算数据;

所述配置控制器还用于所述第二运算器运行结束后,控制所述运算器组从所述数据缓存器中获取所述第一运算模式和所述第一运算数据;

或,所述数据缓存器包含一个或多个寄存器组,所述数据缓存器与所述微处理器和所述配置控制器同时连接;

所述配置控制器获取所述微处理器根据第二运算请求信号确定的第一寄存器组选择信号并根据所述第一寄存器组选择信号选择数据缓存器中的对应的第一寄存器组存储所述第一运算请求信号对应的第一运算模式和第一运算数据;

所述配置控制器还用于所述第二运算器运行结束后,控制所述运算器组从所述第一寄存器组中获取所述第一运算模式和所述第一运算数据。

进一步地,本发明还提供一种协处理器控制方法,所述协处理器控制方法包括:

获取微处理器发送的第一运算请求信号,确定所述第一运算请求信号对应的第一运算模式;

根据所述第一运算模式确定第一运算数据,并执行所述第一运算数据;

若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据,并确定所述第二运算请求信号对应的第二运算数据,执行所述第二运算数据;

若所述第二运算数据执行完成,则继续进行所述执行所述第一运算数据的步骤。

可选的,所述若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据的步骤,包括:

若接收到所述微处理器发送的第二运算请求信号,则确定是否接收到所述微处理器发送的第一寄存器组选择信号;

若未接收到所述微处理器发送的第一寄存器组选择信号,则将所述第一运算数据存储至预设堆栈,并停止执行所述第一运算数据;

若接收到所述微处理器发送的第一寄存器组选择信号,则确定所述第一寄存器组选择信号对应的第一寄存器组,将所述第一运算数据存储至所述第一寄存器组,并停止执行所述第一运算数据。

可选的,所述停止执行所述第一运算数据的步骤之前,还包括:

根据预设的中断优先级规则判断所述第二运算请求信号对应的第二运算的优先级是否高于所述第一运算的优先级;

若所述第二运算的优先级高于所述第一运算的优先级,则执行所述停止执行所述第一运算数据的步骤。

可选的,所述确定所述第二运算请求信号对应的第二运算数据的步骤包括:

确定所述第二运算请求信号对应的第二运算模式,并获取预设堆栈中的所有堆栈数据,将所述第二运算模式和各所述堆栈数据进行匹配;

若在各所述堆栈数据中存在和所述第二运算模式匹配的匹配堆栈数据,则将所述匹配堆栈数据作为第二运算数据。

可选的,所述确定所述第二运算请求信号对应的第二运算数据的步骤,还包括:

确定所述第二运算请求信号对应的第二运算模式,并获取第二寄存器组中的寄存器组数据,将所述第二运算模式和所述寄存器组数据进行匹配;其中,所述第二寄存器组根据所述微处理器发送的第二寄存器组选择信号确定;

若在所述寄存器组数据与所述第二运算模式匹配成功,则将所述寄存器组数据作为第二运算数据。

此外,为实现上述目的,本发明还提供一种终端,所述终端包括存储器、微处理器、协处理器及存储在所述存储器上并可在所述协处理器上运行的协处理器控制程序,其中:所述协处理器控制程序被所述处理器执行时实现如上所述的协处理器控制方法的步骤。

此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有协处理器控制程序,所述协处理器控制程序被处理器执行时实现如上所述的协处理器控制方法的步骤。

本发明提出的一种协处理器、协处理器控制方法、终端及存储介质,通过协处理器在接收到第一运算请求后,根据第一运算请求确定第一运算模式,从而获取第一运算数据,在执行第一运算数据时如果遇到第二运算数据对应的第二运算请求信号,则停止第一运算数据的执行,执行第二运算数据,继续进行第一运算数据的执行步骤。从而实现了协处理器在遇到突发事件时,能够及时对当前现场数据进行相应处理,并在突发事件结束后,可以恢复当前现场运算数据,保障了协处理器的工作效率,避免了现有技术中由于缺少当前现场的运算数据,导致数据处理出现异常,无法继续进行数据处理的现象发生。

附图说明

图1为本发明协处理器控制方法数据缓存器采用堆栈方式的协处理器结构示意图;

图2为本发明协处理器控制方法数据缓存器采用寄存器组方式的协处理器结构示意图;

图3是本发明实施例方案涉及的硬件运行环境的装置结构示意图;

图4为本发明协处理器控制方法第三实施例的流程示意图;

图5为本发明协处理器控制方法数据缓存器采用堆栈方式的协处理器运行示意图;

图6为本发明协处理器控制方法数据缓存器采用寄存器组方式的协处理器运行示意图;

图7为本发明协处理器控制方法的协处理器运行示意图。

附图标号说明:

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

需要说明,在本发明中,除非另有明确的规定和限定,术语“连接”、“固定”等应做广义理解,例如,“固定”可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明提出一种协处理器,在本发明协处理器第一实施例中,协处理器包括配置控制器、数据缓存器、运算器组和计算器。配置控制器中可以包括协处理器配置寄存器、运算模式配置寄存器、第一数据寄存器、第二数据寄存器、第三数据寄存器以及第四数据寄存器,其中,第一数据寄存器、第二数据寄存器、第三数据寄存器是16位寄存器,第四数据寄存器是8位寄存器。在配置数据寄存器时,第三寄存器需要在其他数据寄存器和运算模式寄存器配置位配置完成后再进行配置,当向第三数据寄存器的低8位写入数据后,协处理器执行运算。协处理器配置寄存器中包含数据存取配置位,运算繁忙指示位,运算模式配置寄存器中包含协处理器的运算模式配置选项。微处理器可通过运算繁忙指示位获取当前协处理器的工作状态。

参考图1,图1中包含微处理器6,以及协处理器1中的配置控制器2、运算器组3、计算器5和数据缓存器4,微处理器6是一个8051的8位处理器核心,01是与微处理器6连接的寄存器数据总线,该数据总线01具有8位宽度,在另一实施例中,该数据总线01可以是不同的位宽度,例如16/32/64/128。微处理器6将通过该数据总线01操作配置控制器2,完成协处理器1的模式配置、数据传输和数据缓存等动作。02是配置控制器2和运算器组3之间的交互总线,作为第一交互总线,配置控制器2通过该第一交互总线02向运算器组3发送运算数据和相关控制信号,并接受运算器组3的运算结果和运算状态。03是运算器选择信号,用于选择执行运算的运算器,该信号由配置控制器2中的运算模式经过编码转换得到的。04是配置控制器2和数据缓存器4的交互总线,作为第二交互总线,配置控制器2根据存入或取出信号通过该第二交互总线04传输需要缓存或调用的运算数据。05是计算器与运算器组之间的交互总线,作为第三交互总线,运算器组将要计算的内容通过第三交互总线05交由计算器完成,并通过该第三交互总线05取回计算结果。协处理器包含一个计算器,计算器包含一些基本运算模块,例如,四则运算器和Cordic(Coordinate Rotation Digital Computer,坐标旋转数字计算方法)计算器,供运算器调用。运算器组中的所有运算器共享同一个计算器。

第一运算是指协处理器收到第一运算请求信号时进行的运算,例如,低通滤波的运算。第二运算是指协处理器收到第二运算请求信号时优先进行的运算,例如,正切函数算法。第二运算请求信号是由微处理器发送,其中,触发微处理器发送该第二运算请求信号可以是由事先设计的软件的代码中调用微处理器进行运算,从而触发微处理器发送第二运算请求信号;也可以是由微处理器在自身遇到符合中断处理条件的情况时,主动触发中断信号,发送第二运算请求信号。第一运算和第二运算是协处理器所支持的运算中的一种,例如,乘法、除法、低通滤波、正余弦函数、正切函数、反正切函数等多种运算。第一运算请求信号是指第一运算对应的请求信号。第一运算模式是指第一运算所对应的运算模式,例如,第一运算为低通滤波时,运算模式为低通滤波运算模式;第一运算数据是指第一运算对应的运算数据,例如,第一运算为低通滤波时,运算数据为低通滤波的运算数据。第二运算模式是指第二运算所对应的运算模式,例如,第二运算为正切函数时,运算模式为正切函数运算模式;第二运算数据是指第二运算对应的运算数据,例如,第二运算为正切函数时,运算数据为正切函数的运算数据。

配置控制器2通过数据总线01接收微处理器6发送的第一运算请求信号,并根据第一运算请求信号确定第一运算模式以及第一运算数据;运算器组3包含多个分别含有不同算法的运算器,配置控制器2根据第一运算模式按照预设算法流程调用第一运算模式对应的运算器组3中对应的运算器执行第一运算,该对应的运算器作成第一运算器;第一运算器按照预设算法流程依次调用计算器5进行所述第一运算器中对应的算法的计算。配置控制器2还用于在接收到所述微处理器6发送的第二运算请求信号后,根据所述第二运算请求信号确定第二运算,控制运算器组3停止执行所述第一运算,并执行第二运算,在第二运算结束后,控制运算器组3继续执行所述第一运算。可以理解的是,上述运算器组中包含有一个或多个运算器,该一个或多个运算器分别包含有不同的算法,例如,乘法、除法、低通滤波、正余弦函数、正切函数、反正切函数等算法。例如在进行低通滤波运算时,低通滤波运算器根据设计好的运算流程,该运算流程是针对进行低通滤波运算所需要调用的算法设计的,按顺序分别调取加、减、乘法进行运算,得到运算结果。

具体地,数据缓存器4可以是与配置控制器2单独连接的数据缓存器,配置控制器2获取微处理器6发送的第二运算请求信号时触发置数据缓存器使用堆栈的方式存储所述第一运算模式和所述第一运算数据;配置控制器2还用于所述第二运算结束后,控制运算器组3从数据缓存器4中获取第一运算模式和第一运算数据。

在本发明的第二实施例中,数据缓存器4可以是与微处理器6和配置控制器2同时连接的包含一个或多个寄存器组7的数据缓存器。

本实施例中,微处理器是一个8051的8位处理器核心。核心拥有4级嵌套中断机制。本实施例中的数据缓存器包含5个寄存器组,分别用于主程序和4级中断中。配置控制器中包含协处理器配置寄存器、运算模式配置寄存器。协处理器配置寄存器中包含运算繁忙指示位,运算模式配置寄存器中包含协处理器的运算模式配置选项。微处理器可通过运算繁忙指示位获取当前协处理器的工作状态。数据寄存器由数据缓存器提供,数据缓存器使用多组寄存器组的方式来存取运算数据和运算模式,且配置控制器不再控制协处理器执行数据存储操作,协处理器所使用的寄存器组将由微处理器的发送的寄存器组选择信号决定,该寄存器组选择信号由中断信号和程序中所设置的中断优先级决定,是中断信号和当前中断优先级的组合信号。数据缓存器是一个独立的存储空间,运算数据和运算模式直接保存在寄存器组选择信号指定的寄存器组中,每个寄存器组中都包含有运算模式寄存器、第一数据寄存器、第二数据寄存器、第三数据寄存器以及第四数据寄存器,其中,第一数据寄存器、第二数据寄存器、第三数据寄存器是16位寄存器,第四数据寄存器是8位寄存器。在配置数据寄存器时,第三数据寄存器需要在其他数据寄存器和运算模式配置位配置完成后再进行配置,当向第三数据寄存器的低8位写入数据后,协处理器执行运算。如果在执行运算的过程中,微处理器的中断事件被触发,需要执行事件对应的中断处理函数,在中断函数中执行新的运算请求时,协处理器停止当前运算并切换一组新的数据寄存器组,微处理器可以根据需要填入需要执行的运算参数。寄存器组的切换可以根据微处理器的中断嵌套层数自动切换,也可以通过微处理器自身触发切换。

参考图2,图2中包括微处理器6,以及协处理器1中的配置控制器2、运算器组3、计算器5和数据缓存器4,其中,数据缓存器4包含5个寄存器组7。01是与微处理器连接的寄存器数据总线,02是配置控制器和运算器组之间的交互总线,作为第一交互总线,配置控制器通过该第一交互总线02向运算器组3发送运算数据和相关控制信号,并接受运算器组3的运算结果和运算状态。03是运算器选择信号,用于选择执行运算的运算器,该运算器选择信号03由配置控制器1中的运算模式经过编码转换得到的。05是计算器与运算器组3之间的交互总线,作为第三交互总线,运算器组3将要计算的内容交由计算器5完成,并通过该及第三交互总线05取回计算结果。06是寄存器组选择信号,由微处理器6发出,该寄存器组选择信号06是中断信号和当前中断优先级的组合信号。07是寄存器组的数据总线,该寄存器组的数据总线07操作的是寄存器组选择信号06所选择的寄存器组。其中,第一寄存器组选择信号为进行第一运算所对应的寄存器组选择信号,第一寄存器组为数据缓存器中多个寄存组中的一个可以存储第一运算数据的寄存器组。配置控制器2获取微处理器6根据中断信号确定的第一寄存器组选择信号;根据第一寄存器组选择信号选择数据缓存器中的对应的第一寄存器组存储第一运算模式和第一运算数据;或,配置控制器2还用于第二运算结束后,控制运算器组3从所述第一寄存器组中获取第一运算模式和第一运算数据。

如图3所示,图3是本发明实施例方案涉及的硬件运行环境的装置结构示意图。

本发明实施例终端可以为单片机。如图3所示,该终端可以包括:处理器1001,例如CPU,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图3中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图3所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及协处理器控制程序。

在图3所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的协处理器控制程序,并执行以下操作:

获取微处理器发送的第一运算请求信号,确定所述第一运算请求信号对应的第一运算模式;

根据所述第一运算模式确定第一运算数据,并执行所述第一运算数据;

若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据,并确定所述第二运算请求信号对应的第二运算数据,执行所述第二运算数据;

若所述第二运算数据执行完成,则继续进行所述执行所述第一运算数据的步骤。

本发明应用于终端的具体实施例与下述应用协处理器控制方法的各实施例基本相同,在此不作赘述。

请参照图4,图4为本发明协处理器控制方法第三实施例的流程示意图,其中,所述协处理器控制方法包括如下步骤:

步骤S100,获取微处理器发送的第一运算请求信号,确定所述第一运算请求信号对应的第一运算模式;

微处理器是指由一片或少数几片大规模集成电路组成的中央处理器,这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分,它可与存储器和外围电路芯片组成微型计算机。协处理器是一种协助中央处理器完成其无法执行或执行效率、效果低下的处理工作而开发和应用的处理器。本实施例中,微处理器是一个8051的8位处理器核心,协处理器具体构成包括一个配置控制器,一组数据缓存器,一组运算器和一个计算器。配置控制器是微处理器与协处理器之间的交互接口,用于管理协处理器的运行,负责运算器的选择、数据输入输出、数据缓存控制以及协处理器状态输出;数据缓存器用于在发生突发事件时缓存当前指定的运算器和当前计算数据,其缓存空间的大小由缓存内容和缓存深度共同决定,数据缓存器的存储形式可以是堆栈,还可以是多个寄存器组,数据缓存器的载体可以是任何可读写的存储介质,数据缓存器可以和微处理器共用存储介质也可以是其专用;运算器用于算法流程控制,根据其自身定义的算法流程完成数据搬运和计算器控制,最终获得算法的运算结果,运算器包含乘法、除法、低通滤波、正余弦函数、正切函数、反正切函数等多种运算;计算器包含一些基本运算模块,例如,四则运算器和Cordic(CoordinateRotation Digital Computer,坐标旋转数字计算方法)计算器,供运算器调用。所有运算器共享同一个计算器。运算器支持多种运算可以去除相同运算的软件实现过程,有助于大幅提高微处理器的执行效率并缩小软件体积。

上述微处理器需要协处理器进行协助时,将向协处理器发送第一运算请求信号,协处理器在接收到该第一运算请求信号后,根据该第一请求信号确定对应的第一运算模式。例如,协处理器的配置控制器接收到低通滤波请求信号后,确定对应的低通滤波运算模式,根据接收到的低通滤波请求信号和运算模式配置选项配置低通滤波运算模式。

步骤S200,根据所述第一运算模式确定第一运算数据,并执行所述第一运算数据;

协处理器中的配置控制器将根据第一运算模式指定运算器组中对应的运算器,在配置控制器接收到运算启动信号后,该运算器将从配置控制器中获取第一运算数据,执行该第一运算数据。在一实施例中,配置控制器收到运算请求信号后,根据配置控制器获得运算模式,对运算模式进行编码转换,从而得到运算器选择信号,编码转换的转换过程是通过将运算模式的格式转换为一种中间格式,进而转换为目标部件可以识别的运算器选择信号的格式,根据该运算器选择信号指定运算器组中对应的运算器,配置控制器收到启动运算信号,该对应的运算器从配置控制器中获取对应的运算数据,并根据其自身定义的算法流程依次调用计算器进行计算。

步骤S300,若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据,并确定所述第二运算请求信号对应的第二运算数据,执行所述第二运算数据;

在协处理器正在执行第一运算数据时,如果有突发事件发生,则可能需要执行一个新的算法,例如第二运算,微处理器将根据需要向协处理器发送第二运算请求信号,协处理器若接收到该第二运算请求信号,则停止执行当前的第一运算数据,并根据接收到的第二运算请求信号确定需要执行的第二运算数据,从而执行该第二运算数据。执行第二运算数据的流程与执行第一运算数据的步骤类似,例如,在低通滤波的运算中,微处理器配置运算模式,选择低通滤波运算器,并按顺序写入运算数据:第一数据寄存器写入低通滤波的输入值,第四数据寄存器写入滤波系数,第二数据寄存器写入上一次的滤波结果的高16位,第三数据寄存器写入上一次的滤波结果的低16位,当向第三数据寄存器的低8位写入数据后,协处理器开始执行运算,运算器组根据设计好的运算流程,按顺序调取加、减、乘法进行运算,得到运算结果。微处理器通过运算状态指示位得知运算完成后,将运算结果取走。

步骤S400,若所述第二运算数据执行完成,则继续进行所述执行所述第一运算数据的步骤。

当第二运算数据执行完成后,协处理器将继续进行执行第一运算数据的步骤。该执行第一运算数据的步骤为:根据配置控制器获得运算模式,指定运算器,在配置控制器收到启动运算信号后,运算器组从配置控制器获取运算数据,运算器组根据其自身定义的算法流程调用计算器进行计算,运算器组执行结束后,将运算结果送至配置寄存器。微处理器可通过配置控制器设置的运算繁忙指示位得知当前协处理器的工作状态。参考图7,图7包括开始执行,配置控制器收到运算请求信号,保存当前的运算数据和运算模式,配置运算模式,指定运算器,配置控制器收到启动运算信号,运算器从配置控制器获取运算数据,运算器根据其自身定义的算法流程调用计算器进行计算,运算器执行结束后,将运算结果送至配置寄存器,配置控制器收到请求结束信号,操作数据缓存器恢复之前保存的运算数据和运算模式,并恢复之前的运算,结束运算。

本发明实施例中,协处理器获取微处理器发送的第一运算请求信号后,确定所述第一运算请求信号对应的第一运算模式,根据第一运算模式确定第一运算数据,并执行第一运算数据,若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据,并确定所述第二运算请求信号对应的第二运算数据,执行所述第二运算数据,若所述第二运算数据执行完成,则继续进行所述执行所述第一运算数据的步骤。协处理器在遇到突发事件时,对当前现场数据进行处理,并在突发事件结束后,恢复当前现场运算数据,可以避免由于缺少当前现场的运算数据,从而会导致数据处理出现异常,无法继续进行数据处理的现象发生。

进一步地,基于本发明的第三实施例,提出本发明协处理器控制方法的第四实施例,在本实施例中,上述步骤S300,若接收到所述微处理器发送的第二运算请求信号,则停止执行所述第一运算数据的步骤的细化,包括:

步骤a,若接收到所述微处理器发送的第二运算请求信号,则确定是否接收到所述微处理器发送的第一寄存器组选择信号;

步骤b,若未接收到所述微处理器发送的第一寄存器组选择信号,则将所述第一运算数据存储至预设堆栈,并停止执行所述第一运算数据。

本实施例中,数据缓存器是一个独立的存储空间,使用堆栈的方式进行运算数据和运算模式的存取。堆栈是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除,堆栈是一个特定的存储区或寄存器,它的一端是固定的,另一端是浮动的。对这个存储区存入的数据,是一种特殊的数据结构。所有的数据存入或取出,只能在浮动的一端(称栈顶)进行,严格按照“先进后出”的原则存取。在遇到中断时,新的运算开始前,微处理器置位运算请求位,触发数据缓存器工作,将数据寄存器中的当前运算数据和当前运算模式保存到数据缓存器中,新的运算结束后,微处理器置位数据取出位,从数据缓存器中恢复协处理器上一次的运算数据或运算结果并继续运行。

协处理器在执行过程中将判断是否接收到微处理器发送的第二运算请求信号,如果接收到该微处理器发送的第二运算请求信号,则判断是否接收到该微处理器发送的第一寄存器组选择信号,该第一寄存器组选择信号由微处理器的中断信号和程序中所设置的中断优先级决定,是中断信号和当前中断优先级的组合信号。如果协处理器没有接收到微处理器发送的第一寄存器组选择信号,则将第一运算数据存储至预设堆栈中,并停止执行第一运算数据。该第一运算数据包括进行第一运算模式和其对应的用于运算的运算数据。

在停止执行第一运算数据后,将第一运算数据存储至堆栈中,可以在第二运算请求信号对应的运算执行结束后,根据配置控制器接收到的请求结束信号,通过调用堆栈中的第一运算数据快速恢复并执行第一运算数据,可以提高协处理器的现场数据保护能力,以及数据恢复能力。

参考图5,图5为数据缓存器使用堆栈方式进行数据存取的算法运行流程示意图,图5中包括没有中断事件发生时,协处理器协助微处理器进行运算1时的算法运行流程示意以及在协处理器协助为处理器进行运算2时遇到中断优先级更高的运算3时的算法运行流程示意。

进一步地,确定是否接收到所述微处理器发送的第一寄存器组选择信号的步骤之后,还包括:

步骤c,若接收到所述微处理器发送的第一寄存器组选择信号,则确定所述第一寄存器组选择信号对应的第一寄存器组,将所述第一运算数据存储至所述第一寄存器组,并停止执行所述第一运算数据。

如果协处理器接收到微处理器发送的第一寄存器组选择信号,将确定该第一寄存器组选择信号所对应的第一寄存器组,并将第一运算数据存储在该第一寄存器组中,停止执行第一运算数据。

参考图6,图6为数据缓存器使用寄存器组方式进行数据存取的算法运行流程示意图,图6中包括没有中断事件发生时,协处理器协助微处理器进行运算1时的算法运行流程示意以及在协处理器协助为处理器进行运算2时遇到中断优先级更高的运算3时的算法运行流程示意。

在停止执行第一运算数据后,将第一运算数据存储至另一寄存器组中,可以在第二运算请求信号对应的运算执行结束后,根据配置控制器接收到的请求结束信号,通过切换寄存器组快速恢复并执行第一运算数据,可以提高协处理器的现场数据保护能力,以及数据恢复能力,且本实施例支持嵌套运行,省去了软件上对协处理器的数据保护的处理,在缩小体积的同时也避免开发过程中出现的失误。

进一步地,停止执行所述第一运算数据的步骤之前,还包括:

步骤d,根据预设的中断优先级规则判断所述第二运算请求信号对应的第二运算的优先级是否高于所述第一运算的优先级;

步骤e,若所述第二运算的优先级高于所述第一运算的优先级,则停止执行所述第一运算数据,执行所述第二运算数据。

为使系统能及时响应并处理发生的所有中断,系统将根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。在实际系统中,常常遇到多个中断源同时请求中断的情况,这时CPU必须确定首先为哪一个中断源服务,以及服务的次序。解决的方法是中断优先排队,即根据中断源请求的轻重缓急,排好中断处理的优先次序即优先级( Priority ),又称优先权,先响应优先级最高的中断请求。另外,当CPU正在处理某一中断时,要能响应另一个优先级更高的中断请求,而屏蔽掉同级或较低级的中断请求,形成中断嵌套。

本实施例中,预设有中断优先级规则,该规则决定是否响应中断事件,在接收到微处理器发送的第二运算请求信号后,根据接收到的第二运算请求信号确定该第二运算请求信号所对应的需要执行的第二运算的优先级。判断第二运算的优先级是否高于当前正在执行的第一运算数据所对应的第一运算的优先级。如果该第二运算的优先级高于第一运算的优先级,则停止执行当前的第一运算数据,开始执行第二运算数据。如果第二运算的优先级低于或等于第一运算的优先级,则继续执行当前的第一运算数据,等待执行完毕,再执行第二运算数据。

通过优先级的设定可以准确的确定在遇到中断时处理器是否需要停止当前运算,进行新的运算。从而确保系统能及时响应并处理发生的所有中断,提升处理器工作的效率。

进一步地,确定所述第二运算请求信号对应的第二运算数据的步骤,包括:

步骤f,确定所述第二运算请求信号对应的第二运算模式,并获取预设堆栈中的所有堆栈数据,将所述第二运算模式和各所述堆栈数据进行匹配;

步骤g,若在各所述堆栈数据中存在和所述第二运算模式匹配的匹配堆栈数据,则将所述匹配堆栈数据作为第二运算数据。

本实施例中,运算数据将存储在预设堆栈中,在执行运算前,需要先从预设堆栈中获取到对应的运算数据,在协处理器中将根据获取到的第二运算请求信号确定对应的第二运算模式,获取预设堆栈中的所有堆栈数据,并将所确定的第二运算模式与获取到的所有堆栈数据继续匹配,判断上述预设堆栈中是否存在与该第二运算模式所匹配的运算数据,如果在各个堆栈数据中存在与该第二运算模式匹配的堆栈数据,则将该堆栈数据作为第二运算数据。

在数据获取前进行匹配,以确保数据对应准确,不出现交叉、错误,提升数据获取的准确性。

进一步地,确定所述第二运算请求信号对应的第二运算数据的步骤,还包括:

步骤h,确定所述第二运算请求信号对应的第二运算模式,并获取第二寄存器组中的寄存器组数据,将所述第二运算模式和所述寄存器组数据进行匹配;其中,所述第二寄存器组根据所述微处理器发送的第二寄存器组选择信号确定;

步骤i,若在所述寄存器组数据与所述第二运算模式匹配成功,则将所述寄存器组数据作为第二运算数据。

本实施例中,第二寄存器组选择信号为进行第二运算所对应的寄存器组选择信号,第二寄存器组为数据缓存器中多个寄存组中的一个可以存储第二运算数据的寄存器组。不同的运算数据将存储在不同的寄存器组中,在执行运算前,需要从对应的寄存器组中获取到对应的运算数据,微处理器将发送寄存器组选择信号给协处理器,协处理器在接收到寄存器组选择信号后,将根据该寄存器组选择信号选择对应的寄存器组。在协处理器中将根据获取到的第二运算请求信号确定对应的第二运算模式,并获取到第二寄存器组中的寄存器组数据,将所述第二运算模式与获取到的寄存器组数据进行匹配,如果匹配成功,则将该寄存器组数据作为第二运算数据。

以切换寄存器组的方式进行运算模式和运算数据的保存,可以在执行运算数据前后切换寄存器组,以减少数据传输所需的时间,从而提升处理器的运行速度。

具体地,执行所述第二运算数据的步骤包括:

步骤j,获取执行所述第二运算数据的第二运算结果,并存储至所述第二寄存器组;

步骤k,确定具有所述第二运算结果的第二寄存器组对应的完成指示信息,并将所述完成指示信息输出到所述微处理器,根据所述输出的输出结果确定所述第二运算数据执行完成。

本实施例中,协处理器在执行第二运算数据之后,获取执行该第二运算数据的第二运算结果,将该第二运算结果存储在第二寄存器组中,此时第二运算数据执行结束,根据确定具有第二运算结果的第二寄存器对应的完成指示信息配置运算状态指示位,通过运算状态指示位输出运算完成信息。微处理器可以根据协处理器的运算状态指示位获取到运算完成指示信息并根据需要获取运算结果。如果在执行第二运算数据时,协处理器再次接收到微处理器发送的新运算请求信号,此时将根据该新运算请求信号对应的算法的优先级与第二运算的优先级高低来决定是否停止执行第二运算数据,执行该新运算请求信号对应的算法。如果该新运算请求信号对应的算法的优先级高于第二运算的优先级,则停止执行第二运算数据,并保存第二运算数据,执行该新运算请求信号对应的算法;如果该新运算请求信号对应的算法的优先级等于或低于第二运算的优先级,则继续执行第二运算数据,在第二运算数据结束后,比较该新运算请求信号对应的算法的优先级与第一运算的优先级高低来决定是优先恢复执行第一运算数据,还是优先执行该新运算请求信号对应的算法,协处理器在执行运算时,若遇到新的运算请求,则根据中断优先级确定是停止当前运算进行新的运算,还是优先执行新的运算。

在获取到运算结果后通过运算状态指示位输出完成指示信息到微处理器,可以提高微处理器获取运算结果的及时性,从而提高整个处理器的工作效率。

进一步地,根据所述第一运算模式确定第一运算数据的步骤包括:

步骤l,基于预设的编码格式对所述第一运算模式进行编码转换,以得到运算器选择信号;步骤m,确定所述运算器选择信号对应的第一运算器组,并根据所述第一运算器组获取第一运算数据。

编码转换是将当前数据的格式转化为目标格式,通常的转换过程是通过将源格式转换为一种中间格式,进而转换为目标部件可以识别的格式。本实施例中,在获取到第一运算请求信号后,将根据第一运算请求确定第一运算模式。在协处理器中将基于预设的编码格式对第一运算模式进行编码转换,从而得到运算器选择信号。例如,第一运算模式通过程序进行分析,创建出不同的带有标注的文本,这些标注指示重整格式操作的相关信息,第一运算模式进行格式重整,而后得出第一运算选择信号。然后根据该运算器选择信号在运算器组中选择对应的第一运算器,第一运算器为运算器组中的一个可以进行第一运算的第一运算器,第一运算器将从配置控制器获取到运算数据并根据其自身定义的算法流程调用计算器进行计算。且所有的运算器组共享同一个计算器。

通过配置的第一运算模式得出对应的运算器选择信号,从而指定对应的第一运算器,再获取对应的第一运算数据,可以避免出现运算数据调取错误,对应的运算模式获取到对应的运算数据提高数据的准确性。共享一个计算器,减少资源消耗,使得协处理器的设计面积得以缩小。且可以支持多种运算,可以去除相同运算的软件实现过程,有助于大幅提高微处理器的执行效率并缩小软件体积。

此外,本发明还提出一种存储介质,其上存储有协处理器控制程序。所述存储介质可以是图1的终端中的存储器20,也可以是如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘中的至少一种,所述存储介质包括若干指令用以使得一台具有处理器的终端执行本发明各个实施例所述的协处理器控制方法。

可以理解的是,在本说明书的描述中,参考术语“一实施例”、“另一实施例”、“其他实施例”、或“第一实施例~第N实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号