循环指令的处理方法、装置、设备和存储介质制造方法及图纸

技术编号:26504073 阅读:20 留言:0更新日期:2020-11-27 15:31
本申请公开了循环指令的处理方法、装置、设备和存储介质,涉及语音、芯片领域。具体实现方案为:获取计算机程序,计算机程序包括第一循环体,第一循环体根据待编译软件代码中的第二循环体生成,第一循环体包括多条第一循环指令,多条第一循环指令能够被计算机设备的硬件结构识别;在检测到第一循环体的情况下,根据多条第一循环指令,确定第一循环体的循环参数;根据第一循环体的循环参数,获取多条第一循环指令;执行多条第一循环指令。本申请实施例中第一循环体根据待编译软件代码中的第二循环体生成,且第一循环体包括的第一循环指令能够被计算机设备的硬件结构识别,因此硬件结构可以直接根据第一循环指令准确地确定循环参数。

【技术实现步骤摘要】
循环指令的处理方法、装置、设备和存储介质
本申请实施例涉及计算机技术中的语音技术、芯片技术,尤其涉及一种循环指令的处理方法、装置、设备和存储介质。
技术介绍
在计算机中,经常会用到使用高级语言编写的循环语句,例如语音信号处理场景中,经常需要对语音数据数组进行数字信号处理,那么对数组的遍历就会用到for循环(fori=0;i<N;i++)语句,for循环语句在通过编译器编译之后,通常会编译成若干条加法指令和条件分支跳转指令。具体实现过程中,是判断循环次数是否为0,若不为0,则需要使用条件分支跳转指令返回继续执行加法指令,从而达到循环的效果。目前,在上述计算循环次数和判断循环结束的过程中,是根据程序的状态来预测循环次数和判断循环结束,如此就会存在预测不准确的问题。
技术实现思路
本申请提供了一种用于提高循环次数、循环开始地址和结束地址等循环参数的获取准确度的循环指令的处理方法、装置、设备和存储介质。根据本申请的第一方面,提供了一种循环指令的处理方法,包括:获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;根据所述第一循环体的循环参数,获取所述多条第一循环指令;执行所述多条第一循环指令。可选的,所述计算机程序包括多条计算机指令;所述循环参数包括循环的结束地址和循环次数N,N为大于或等于0的正整数,所述循环次数是根据所述第一循环体确定的;所述硬件结构包括结束地址寄存器、缓冲寄存器和长循环标志寄存器;所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,包括:若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间不为0,则将所述计算机指令存储至所述缓冲寄存器,将所述计算机指令对应的地址存储至所述结束地址寄存器,并将所述长循环标志寄存器的标志位设置为短循环标识,所述短循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间小于或等于所述缓冲寄存器的总存储空间;根据所述结束地址寄存器中存储的结束地址,确定所述循环的结束地址。可选的,所述硬件结构包括起始地址寄存器,所述方法还包括:若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间为0,则将所述计算机指令对应的地址存储至所述起始地址寄存器,将所述长循环标志寄存器的标志位设置为长循环标识;所述长循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间大于所述缓冲寄存器的总存储空间;在之后获取的计算机指令为第一循环指令的情况下,将之后获取的计算机指令对应的地址存储至所述结束地址寄存器,直至将全部的计算机指令获取完。可选的,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为短循环标识,则执行N次从所述缓冲寄存器获取所有的第一循环指令的操作。可选的,所述若检测到所述计算机指令为第一循环指令之后,所述方法还包括:执行所述第一循环指令;所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为短循环标识,则执行N-1次从所述缓冲寄存器获取所有的第一循环指令的操作。可选的,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为长循环标识,则执行N次从所述缓冲寄存器获取所有的第一循环指令的操作;以及,执行N次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。可选的,所述若检测到所述计算机指令为第一循环指令之后,所述方法还包括:执行所述第一循环指令;所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为长循环标识,则执行N-1次从所述缓冲寄存器获取所有的第一循环指令的操作;以及,执行N-1次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。可选的,所述计算机程序包括多条计算机指令;所述循环参数包括循环的起始地址、结束地址和循环次数,所述循环次数为N,N为大于0的整数,所述循环次数是根据所述第一循环体确定的;所述硬件结构包括起始地址寄存器和结束地址寄存器;所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,包括:若首次检测到所述计算机指令为第一循环指令,则将所述计算机指令对应的地址存储至所述起始地址寄存器;若非首次检测到所述计算机指令为第一循环指令,则将所述计算机指令对应的地址存储至所述结束地址寄存器,直至将全部的计算机指令获取完,其中,最后一次检测到的第一循环指令对应的地址为所述结束地址。可选的,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:执行N次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。可选的,所述方法还包括:执行每次检测到的第一循环指令;所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:执行N-1次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。可选的,所述第一循环指令包括loop循环指令;所述第二循环指令包括for循环指令。可选的,所述第一循环体包括一对loop循环指令,所述一对loop循环指令分别用于指示loop循环的起始和结束。可选的,所述方法还包括:将所述循环次数存储至所述计算机设备的通用寄存器。可选的,所述硬件结构还包括:循环次数计数器;所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,还包括:从所述通用寄存器中获取所述循环次数;将所述循环次数存储至所述循环次数计数器。根据本申请的第二方面,提供了一种循环指令的处理装置,包括:取指单元,用于获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;硬件结构,用于在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;所述取指单元,还用于根据所述第一循环体的循环参数,获取所述多条第一循环指令;处理单元,用于执行所述多条第一循环指令。可选的,所述计算机程序包括多条计算机指令;所述循环参数包括循环的结束地址和循环次数N,N为大于或等于0的正整数,所本文档来自技高网...

【技术保护点】
1.一种循环指令的处理方法,包括:/n获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;/n在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;/n根据所述第一循环体的循环参数,获取所述多条第一循环指令;/n执行所述多条第一循环指令。/n

【技术特征摘要】
1.一种循环指令的处理方法,包括:
获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;
在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;
根据所述第一循环体的循环参数,获取所述多条第一循环指令;
执行所述多条第一循环指令。


2.根据权利要求1所述的方法,所述计算机程序包括多条计算机指令;所述循环参数包括循环的结束地址和循环次数N,N为大于或等于0的正整数,所述循环次数是根据所述第一循环体确定的;所述硬件结构包括结束地址寄存器、缓冲寄存器和长循环标志寄存器;
所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,包括:
若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间不为0,则将所述计算机指令存储至所述缓冲寄存器,将所述计算机指令对应的地址存储至所述结束地址寄存器,并将所述长循环标志寄存器的标志位设置为短循环标识,所述短循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间小于或等于所述缓冲寄存器的总存储空间;
根据所述结束地址寄存器中存储的结束地址,确定所述循环的结束地址。


3.根据权利要求2所述的方法,所述硬件结构包括起始地址寄存器,所述方法还包括:
若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间为0,则将所述计算机指令对应的地址存储至所述起始地址寄存器,将所述长循环标志寄存器的标志位设置为长循环标识;所述长循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间大于所述缓冲寄存器的总存储空间;
在之后获取的计算机指令为第一循环指令的情况下,将之后获取的计算机指令对应的地址存储至所述结束地址寄存器,直至将全部的计算机指令获取完。


4.根据权利要求2所述的方法,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
若所述长循环标志寄存器的标志位为短循环标识,则执行N次从所述缓冲寄存器获取所有的第一循环指令的操作。


5.根据权利要求2所述的方法,所述若检测到所述计算机指令为第一循环指令之后,所述方法还包括:
执行所述第一循环指令;
所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
若所述长循环标志寄存器的标志位为短循环标识,则执行N-1次从所述缓冲寄存器获取所有的第一循环指令的操作。


6.根据权利要求3所述的方法,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
若所述长循环标志寄存器的标志位为长循环标识,则执行N次从所述缓冲寄存器获取所有的第一循环指令的操作;
以及,执行N次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。


7.根据权利要求3所述的方法,所述若检测到所述计算机指令为第一循环指令之后,所述方法还包括:
执行所述第一循环指令;
所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
若所述长循环标志寄存器的标志位为长循环标识,则执行N-1次从所述缓冲寄存器获取所有的第一循环指令的操作;
以及,执行N-1次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。


8.根据权利要求1所述的方法,所述计算机程序包括多条计算机指令;所述循环参数包括循环的起始地址、结束地址和循环次数,所述循环次数为N,N为大于0的整数,所述循环次数是根据所述第一循环体确定的;所述硬件结构包括起始地址寄存器和结束地址寄存器;
所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,包括:
若首次检测到所述计算机指令为第一循环指令,则将所述计算机指令对应的地址存储至所述起始地址寄存器;
若非首次检测到所述计算机指令为第一循环指令,则将所述计算机指令对应的地址存储至所述结束地址寄存器,直至将全部的计算机指令获取完,其中,最后一次检测到的第一循环指令对应的地址为所述结束地址。


9.根据权利要求8所述的方法,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
执行N次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。


10.根据权利要求8所述的方法,还包括:
执行每次检测到的第一循环指令;
所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:
执行N-1次从所述起始寄存器记录的起始地址处开始,从所述计算机设备的程序存储器中获取对应的所述第一循环指令,直至获取到所述结束地址对应的第一循环指令的操作。


11.根据权利要求1-10任一项所述的方法,其中,所述第一循环指令包括loop循环指令;所述第二循环指令包括for循环指令。


12.根据权利要求11所述的方法,其中,所述第一循环体包括一对loop循环指令,所述一对loop循环指令分别用于指示loop循环的起始和结束。


13.根据权利要求2-10任一项所述的方法,还包括:
将所述循环次数存储至所述计算机设备的通用寄存器。


14.根据权利要求13所述的方法,所述硬件结构还包括:循环次数计数器;
所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,还包括:
从所述通用寄存器中获取所述循环次数;
将所述循环次数存储至所述循环次数计数器。


15.一种循环指令的处理装置,包括:
取指单元,用于获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;
硬件结构,用于在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;...

【专利技术属性】
技术研发人员:闻军会田超
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1