本发明涉及数据处理技术领域,尤其涉及一种以cpu为基础的mcu应用下的指令处理方法、cpu交互系统及采用该系统的耗材芯片。
背景技术:
目前的所有mcu应用领域,全部都是以中央处理器(cpu)为核心,cpu作为主交互模块,通过cpu机器指令进行运算、操作、控制等一系列操作,来访问从交互模块。在由主交互模块和从交互模块构成的cpu交互系统中,主交互模块进行的上述操作,即cpu指令执行,都是顺序执行。即使加入了流水线操作,也只是增加单个时钟周期内的运算次数,而cpu指令仍是串行执行。
在cpu系统运行期间,各个指令之间或多或少有不同长短的空闲期,如2-5个时钟周期等。如图1,指令1和指令2之间存在一定长度的空闲期,将此空闲期定义为指令空隙,指令2和指令3之间不存在空闲期,指令3和指令4之间存在一定长度的空闲期。在哈弗架构下的cpu系统中,指令和数据分开存储,指令存储于程序指令存储器,数据存储于数据存储器,因此,指令之间的指令空隙很多。一般,这些指令空隙在系统运行期间都是丢弃的,不被利用的,这样大大浪费了cpu资源,降低了cpu系统的性能。
现有耗材芯片与成像设备交互进行打印作业时,耗材芯片需要执行很多指令等操作。现有耗材芯片采用现有按顺序执行的cpu系统,为此,耗材芯片在对信息实时处理方面有待提高。
技术实现要素:
本发明针对现有技术存在的问题,提出了一种充分利用cpu资源,提高系统数据实时处理性能的指令处理方法、cpu交互系统及采用该系统的耗材芯片。
本发明是通过以下技术方案得以实现的:
本发明提供一种指令处理方法,用于cpu交互系统,所述cpu交互系统包括连接于总线上的主交互模块、从交互模块、任务处理模块;所述cpu交互系统还包括探测模块;方法包括:
当所述主交互模块访问所述从交互模块时,所述探测模块探测指令空隙;其中,所述指令空隙为相邻指令之间的空闲期;
所述探测模块针对指令空隙匹配所述主交互模块于指令空隙内可执行的任务指令,并将匹配到任务指令反馈给所述主交互模块;
所述主交互模块根据探测模块反馈的任务指令分时访问所述任务处理模块。
本发明指令处理方法通过设置探测模块实时探测主交互模块与从交互模块访问期间的指令空隙,当探测模块探测到当前为指令空隙所在期间,则分析匹配获得可执行的任务指令反馈给主交互模块,主交互模块根据反馈信息在指令间隙期执行其他指令任务。该方法在不影响常用指令执行过程下执行额外的工作指令,提高总线效率和cpu利用率。
作为优选,所述探测模块为集成于所述主交互模块内的探测模块;或者所述探测模块为一独立模块,连接于所述主交互模块与总线之间。
作为优选,所述任务处理模块为存储模块,所述主交互模块根据探测模块反馈的任务指令,在指令空隙内插入数据复制、存取、移动指令,以分时访问所述存储模块。
作为优选,所述主交互模块包括访问单元和清零单元;所述访问单元用于访问从交互模块;所述清零单元为包含清零指令的单元,能根据探测模块反馈的任务指令将清零指令每隔一定时间在指令空隙期间发送给从交互模块。
作为优选,所述每隔一定时间为所述探测模块监控程序跑飞并反馈任务指令给主交互模块的一个计数周期。
作为优选,所述主交互模块有两个,所述探测模块有两个,所述从交互模块有两个时,第一主交互模块与第一从交互模块通信连接,第二主交互模块与第二从交互模块通信连接;所述第一从交互模块具有待运算的从交互数据一和从交互数据二,所述第二从交互模块具有待运算的从交互数据三和从交互数据四;方法还包括:
当所述第一主交互模块访问所述第一从交互模块时,所述第一探测模块探测第一指令空隙;
所述第一探测模块还针对第一指令空隙匹配所述第一主交互模块于指令空隙内可执行的第一任务指令,并将匹配到第一任务指令反馈给所述第一主交互模块;
所述第一主交互模块根据反馈的第一任务指令分时访问所述第二从交互模块;
当所述第二主交互模块访问所述第二从交互模块时,所述第二探测模块探测第二指令空隙;
所述第二探测模块还针对第二指令空隙匹配所述第二主交互模块于指令空隙内可执行的第二任务指令,并将匹配到第二任务指令反馈给所述第二主交互模块;
所述第二主交互模块根据反馈的第二任务指令分时访问所述第一从交互模块;
其中,所述从交互数据一和所述从交互数据三的运算在所述第一主交互模块访问时进行;所述从交互数据二和所述从交互数据四的运算在所述第二主交互模块访问时进行。
本发明还提供一种cpu交互系统,包括连接于总线上的主交互模块、从交互模块、任务处理模块;还包括用于当所述主交互模块访问所述从交互模块时,探测指令空隙的探测模块;所述探测模块还用于针对指令空隙匹配所述主交互模块于指令空隙内可执行的任务指令,并将匹配到任务指令反馈给所述主交互模块;所述主交互模块根据反馈的任务指令分时访问所述任务处理模块;其中,所述指令空隙为相邻指令之间的空闲期。
本发明在不改变硬件,不提高时钟的情况下,在原有的cpu系统上把指令空隙利用起来,提高cpu系统利用率和整体性能。
作为优选,所述探测模块为集成于所述主交互模块内的探测模块;或者所述探测模块为一独立模块,连接于所述主交互模块与总线之间。
作为优选,所述探测模块为硬件模块。
作为优选,所述任务处理模块为由主交互模块在指令空隙内插入数据复制、存取、移动指令以被分时访问的存储模块。
作为优选,所述主交互模块包括访问单元和清零单元;所述访问单元用于访问从交互模块;所述清零单元为包含清零指令的单元,能根据探测模块反馈的任务指令将清零指令每隔一定时间在指令空隙期间发送给从交互模块。
作为优选,所述主交互模块有两个,所述探测模块有两个,所述从交互模块有两个时,第一主交互模块与第一从交互模块通信连接,所述第二主交互模块与第二从交互模块通信连接;
所述第一从交互模块具有待运算的从交互数据一和从交互数据二,所述第二从交互模块具有待运算的从交互数据三和从交互数据四;所述第一探测模块用于当所述第一主交互模块访问所述第一从交互模块时,探测第一指令空隙;
所述第一探测模块还针对第一指令空隙匹配所述第一主交互模块于指令空隙内可执行的第一任务指令,并将匹配到第一任务指令反馈给所述第一主交互模块;所述第一主交互模块根据反馈的第一任务指令分时访问所述第二从交互模块;
所述第二探测模块用于当所述第二主交互模块访问所述第二交互模块时,探测第二指令空隙;
所述第二探测模块还针对第二指令空隙匹配所述第二主交互模块于指令空隙内可执行的第二任务指令,并将匹配到第二任务指令反馈给所述第二主交互模块;所述第二主交互模块根据反馈的第二任务指令分时访问所述第一从交互模块;
其中,所述从交互数据一和所述从交互数据三的运算在所述第一主交互模块访问时进行;所述从交互数据二和所述从交互数据四的运算在所述第二主交互模块访问时进行。
作为优选,所述探测模块包括反馈检测单元、指令存储单元、反馈分析单元、任务指令反馈单元;
所述反馈检测单元用于探测主交互模块访问从交互模块时,从交互模块反馈给主交互模块的反馈信号;当所述反馈信号为忙碌状态时,所述反馈检测单元将忙碌状态所耗时间记录为所述主交互模块的指令空隙;
指令存储单元用于存储反馈信号和与反馈信号对应存储的指令空隙,并存储指令和指令执行所需时长;
所述反馈分析单元用于分析指令存储单元内的指令是否适合在指令空隙内执行,获得合适指令作为可执行的任务指令;
所述任务指令反馈单元用于将从反馈分析单元分析获得的任务指令反馈给所述主交互模块。
本发明还提供一种耗材芯片,所述耗材芯片采用上述cpu交互系统。
本发明具有以下有益效果:
本发明一种指令处理方法、cpu交互系统及采用该系统的耗材芯片,一方面保持常用指令执行过程,另一方面在指令空隙内插入其他任务指令,在不影响常用指令执行过程下执行额外的工作指令,提高总线效率和cpu利用率。上述指令处理方法、cpu交互系统应用于耗材芯片,能满足耗材芯片对实时性能较高的要求。
附图说明
图1为现有cpu系统运行期间存在指令空隙的示意图;
图2为本发明一种指令处理方法的总流程图;
图3为本发明一种cpu交互系统的系统框图;
图4为本发明一种cpu交互系统的原理时序图;
图5为本发明一种cpu交互系统中的探测模块的结构框图;
图6为本发明一种cpu交互系统实施方式一的系统框图;
图7为本发明一种cpu交互系统实施方式二的系统框图;
图8为本发明一种cpu交互系统实施方式三的系统框图。
具体实施方式
以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
cpu交互系统包括主交互模块、从交互模块、任务处理模块。主交互模块、从交互模块、任务处理模块连接于总线上,主交互模块通过总线分别访问从交互模块和任务处理模块。在访问期间,cpu的指令执行都是按顺序执行的,指令执行期间相邻指令之间存在空闲期,本文定义为指令空隙。在指令执行过程中,这些指令空隙往往不被利用,如果主交互模块对任务处理模块进行额外任务访问时,则需要等待主交互模块访问从交互模块的常规指令执行完毕后,再插入其他任务指令,或增加其他模块辅助完成。这样使得cpu交互系统利用率低,总线效率降低。
为此,本发明提出一种cpu交互系统和指令处理方法,该cpu交互系统在现有cpu交互系统的基础下增加一个探测模块。而指令处理方法依赖于该系统实现。
图3示出了本发明一种cpu交互系统,包括主交互模块、从交互模块、任务处理模块、探测模块。所述探测模块用于当所述主交互模块访问所述从交互模块时,探测主交互模块访问时的指令空隙;所述探测模块还用于针对指令空隙匹配所述主交互模块于指令空隙内可执行的任务指令,并将匹配到任务指令反馈给所述主交互模块。所述主交互模块根据反馈的任务指令分时访问所述任务处理模块。
图2示出了本发明一种指令处理方法。方法包括:
步骤s01,当所述主交互模块访问所述从交互模块时,所述探测模块探测指令空隙。其中,所述指令空隙为相邻指令之间的空闲期。
步骤s02,所述探测模块针对指令空隙匹配所述主交互模块于指令空隙内可执行的任务指令,并将匹配到任务指令反馈给所述主交互模块。
步骤s03,所述主交互模块根据探测模块反馈的任务指令分时访问所述任务处理模块。
如图5,所述探测模块包括反馈检测单元、指令存储单元、反馈分析单元、任务指令反馈单元。所述反馈检测单元用于探测主交互模块访问从交互模块时,从交互模块反馈给主交互模块的反馈信号。当所述反馈信号为忙碌状态时,所述从交互模块的忙碌状态所耗时间为所述主交互模块的指令空隙。所述指令存储单元用于存储反馈信号和与反馈信号对应存储的指令空隙,并存储指令和指令执行所需时长。所述反馈分析单元用于分析指令存储单元内的指令是否适合在指令空隙内执行,获得合适指令作为可执行的任务指令。所述任务指令反馈单元用于将从反馈分析单元分析获得的任务指令反馈给所述主交互模块。
所述探测模块为集成于所述主交互模块内的探测模块。或者所述探测模块为一独立模块,连接于所述主交互模块与总线之间。所述探测模块为硬件模块。
例如,主交互模块发送command指令给从交互模块,从交互模块反馈command_ack指令反馈信号给主交互模块,探测模块的反馈检测单元用于探测从交互模块反馈给主交互模块的反馈信号。因指令反馈信号command_ack中的command指令不同,其反馈信号则为不同类型指令的反馈信号。存储单元内存储有反馈信号和与反馈信号对应存储的指令空隙,如command指令为加密计算命令,command_ack为加密计算命令反馈信号,该加密计算命令反馈信号对应存储400个左右时钟周期的指令空隙;如command指令为存储器擦写命令,command_ack为存储器擦写命令反馈信号,该存储器擦写命令反馈信号对应存储大概1000个时钟周期;如command指令为写命令,command_ack为写命令反馈信号,该写命令反馈信号对应存储200个左右时钟周期;如command指令为外设操作命令,command_ack为外设操作命令反馈信号,该外设操作命令反馈信号对应存储100个左右时钟周期。所述存储单元还存储指令和与指令对应的指令执行所需时长,如写命令反馈信号对应存储200个时钟周期。所述反馈分析单元根据反馈检测单元检测到的反馈信号,对照指令存储单元信息获知指令空隙的长短,并匹配到适合在该指令空隙内执行的指令,如写命令指令。所述任务指令反馈单元将获得的任务指令反馈给所述主交互模块。这样,主交互模块一方面可以正常执行访问从交互模块的指令,另一方面可在指令空隙内对任务处理模块进行额外任务执行。其中,所述探测模块在一探测到反馈信号后,继而所述反馈分析单元、任务指令反馈单元工作,反馈任务指令给主交互模块。这样,该cpu交互系统能实施探测指令空隙,并实时反馈可执行的任务指令给主交互模块,能有效利用指令空隙执行额外工作,提高了cpu交互系统的性能。
图4示出了本发明cpu交互系统的原理时序图。在采用上述探测模块对指令处理时,上述指令处理方法由探测模块工作时的具体过程如下:
首先在主交互模块访问从交互模块时,探测从交互模块反馈给主交互模块的反馈信号。
若所述反馈信号为忙碌时,则此时为主交互模块的指令空隙,若所述反馈信号为空闲时,则此时为主交互模块处于忙碌,即重新发送新的指令给从交互模块,而从交互模块尚未响应。
其次分析反馈信号,并匹配任务指令。
具体地,分析反馈信号,并获知指令空隙的长短;根据指令空隙长短,匹配可在该指令空隙内执行的任务指令,任务指令执行所需时间的长短需不超过指令空隙的长短。可以匹配到多个任务指令,也可以匹配一个合适的任务指令。如,设置任务指令的优先级列表,当有多个任务指令可在指令空隙内执行时,根据优先级列表中排列顺序,选择最优的一个任务指令。
最后,将任务指令反馈给主交互模块。
主交互模块在收到反馈的任务指令后,即刻执行该任务指令。
图6示出了本发明一种cpu交互系统实施方式一的系统框图。所述任务处理模块为存储模块。所述主交互模块根据探测模块反馈的任务指令,在指令空隙内插入数据复制、存取、移动指令,以分时访问所述存储模块。
在通常的设计中,一般都会有大量的存储器(memory)数据存储和搬移操作,而在这些设计中,为了不增加cpu的负载量,几乎都会使用到dma作为一个独立的主交互模块,通过总线专门用来对存储器数据进行复制,存取,移动的操作。在这些设计中,由于dma模块的存在,无形增加了芯片的面积,也就增加了芯片的成本;并且由于dma和cpu都是共用系统总线,dma的操作会抢占此总线,从而导致cpu性能降低。当采用本发明cpu交互系统时,无需再增加dma模块,只用探测模块检测指令空隙,在指令空隙内插入数据复制、存取、移动指令就能实现存储器数据存储和搬移操作。这样不会大幅增加芯片面积,降低成本。并且此模块无需挂载系统总线,增加了存储器的操作功能,不会降低cpu工作效率,不会影响cpu性能。
所述任务处理模块不限于存储模块,也可以是其他功能模块。
图7示出了本发明一种cpu交互系统实施方式二的系统框图。所述主交互模块包括访问单元和清零单元。所述访问单元用于访问从交互模块。所述清零单元为包含清零指令的单元,能根据探测模块反馈的任务指令将清零指令每隔一定时间在指令空隙期间发送给从交互模块。其中,所述每隔一定时间为所述探测模块监控程序跑飞并反馈任务指令给主交互模块的一个计数周期。
在许多设计中,都会用到wdt(看门狗计数器),用来监控程序是否跑飞,对跑飞的程序进行相应的操作,如复位(reset)等。通用设计中,看门狗都是作为一个独立的模块,自增计数,每隔一段时间,由程序进行清0操作,如果一直没有清0,计数到一定的数值之后,则认为程序跑飞。在这种设计中,需要增加wdt模块,从而增加芯片面积,并且wdt工作时一直计数,会产生一定的功耗。
而采用了本发明cpu交互系统时,无需增加wdt模块,所有的计数操作均由指令间隙来完成,程序里每隔一定时间插入清零指令操作。也就是说,探测模块一探测到指令空隙,反馈任务指令,如类似看门狗功能的触发指令给主交互模块,主交互模块的清零单元工作,在指令空隙内插入清零指令,从而实现wdt模块的功能。并且,wdt模块工作时不停计数会产生许多功耗,采用本发明cpu交互系统后,由于指令空隙的长度是不定的,出现的间隔也是不定,计数操作并没有单独wdt频繁,降低了功耗。
所述访问单元还用于访问任务处理模块,图7所示cpu系统还可基于图6所示cpu系统实现。也就是说,探测模块在探测指令空隙时,对探测到的反馈信号进行分析,获取合适的任务指令,当发现指令空隙适合执行存储操作时,发送与存储模块相关联的任务指令给主交互模块;当发现指令空隙适合执行看门狗功能时,发送看门狗相关联的任务指令给主交互模块,主交互模块插入清零指令操作在指令空隙。
图8示出了本发明一种cpu交互系统实施方式三的系统框图。所述主交互模块有两个,所述探测模块有两个,所述从交互模块有两个时,第一主交互模块与第一从交互模块通信连接,第二主交互模块与第二从交互模块通信连接。所述第一从交互模块具有待运算的从交互数据一和从交互数据二,所述第二从交互模块具有待运算的从交互数据三和从交互数据四。
当所述第一主交互模块访问所述第一从交互模块时,所述第一探测模块探测第一指令空隙。所述第一探测模块还针对第一指令空隙匹配所述第一主交互模块于指令空隙内可执行的第一任务指令,并将匹配到第一任务指令反馈给所述第一主交互模块。所述第一主交互模块根据反馈的第一任务指令分时访问所述第二从交互模块。这样,所述第一主交互模块在访问第一从交互模块时,进行从交互数据一的运算,所述第一主交互模块在第一指令空隙内访问第二从交互模块,此时进行从交互数据三的运算。
当所述第二主交互模块访问所述第二从交互模块时,所述第二探测模块探测第二指令空隙。所述第二探测模块还针对第二指令空隙匹配所述第二主交互模块于指令空隙内可执行的第二任务指令,并将匹配到第二任务指令反馈给所述第二主交互模块。所述第二主交互模块根据反馈的第二任务指令分时访问所述第一从交互模块。这样,所述第二主交互模块在访问第二从交互模块时,进行从交互数据四的运算,所述第二主交互模块在第二指令空隙内访问第一从交互模块,此时进行从交互数据二的运算。
在一些复杂的多核处理的芯片中,都会有2个以上的cpu,如2个主交互模块,并行参与计算,他们相对独立,并各自产生自己的计算结果,最后同时将结果送于从交互模块。在此种情况下采用图8所示示例,第一主交互模块在执行程序时有第一指令空隙,第二主交互模块在执行程序时有第二指令空隙,第一主交互模块利用第一指令空隙对第二主交互模块进行额外访问,如从交互数据三的运算,第二交互模块利用第二指令空隙对第一主交互模块进行额外访问,如从交互数据二的运算。这样,可同时提高多核的工作效率。
图8所示示例还可基于图7所示示例或图6所示示例实现。也就是说,cpu交互系统应用于多核,如两个主交互模块、两个从交互模块、两个探测模块下,探测模块在探测指令空隙时,对探测到的反馈信号进行分析,获取合适的任务指令,当发现指令空隙适合执行存储操作时,发送与存储模块相关联的任务指令给主交互模块;当发现指令空隙适合执行看门狗功能时,发送看门狗相关联的任务指令给主交互模块,主交互模块插入清零指令操作在指令空隙;当指令空隙适合访问另一从交互模块,执行其他访问指令,主交互模块访问第一从交互模块外还访问第二从交互模块。
本发明一种cpu交互系统可应用于耗材芯片。不管是单核还是多核cpu系统,通过探测模块实时探测反馈信号,并对反馈信号进行分析并实时反馈任务指令给主交互模块,主交互模块能在指令空隙内执行合适的指令,大大提高耗材芯片工作效率,提升耗材芯片的整体工作性能。
本领域的技术人员应理解,上述描述及附图中所示的本发明的实施例只作为举例而并不限制本发明。本发明的目的已经完整有效地实现。本发明的功能及结构原理已在实施例中展示和说明,在没有背离所述原理下,本发明的实施方式可以有任何变形或修改。