[发明专利]循环指令的处理方法、装置、设备和存储介质有效
申请号: | 202010878243.0 | 申请日: | 2020-08-27 |
公开(公告)号: | CN112000370B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 闻军会;田超 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 张娜;臧建明 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 循环 指令 处理 方法 装置 设备 存储 介质 | ||
本申请公开了循环指令的处理方法、装置、设备和存储介质,涉及语音、芯片领域。具体实现方案为:获取计算机程序,计算机程序包括第一循环体,第一循环体根据待编译软件代码中的第二循环体生成,第一循环体包括多条第一循环指令,多条第一循环指令能够被计算机设备的硬件结构识别;在检测到第一循环体的情况下,根据多条第一循环指令,确定第一循环体的循环参数;根据第一循环体的循环参数,获取多条第一循环指令;执行多条第一循环指令。本申请实施例中第一循环体根据待编译软件代码中的第二循环体生成,且第一循环体包括的第一循环指令能够被计算机设备的硬件结构识别,因此硬件结构可以直接根据第一循环指令准确地确定循环参数。
技术领域
本申请实施例涉及计算机技术中的语音技术、芯片技术,尤其涉及一种循环指令的处理方法、装置、设备和存储介质。
背景技术
在计算机中,经常会用到使用高级语言编写的循环语句,例如语音信号处理场景中,经常需要对语音数据数组进行数字信号处理,那么对数组的遍历就会用到for循环(fori=0;iN;i++)语句,for循环语句在通过编译器编译之后,通常会编译成若干条加法指令和条件分支跳转指令。具体实现过程中,是判断循环次数是否为0,若不为0,则需要使用条件分支跳转指令返回继续执行加法指令,从而达到循环的效果。
目前,在上述计算循环次数和判断循环结束的过程中,是根据程序的状态来预测循环次数和判断循环结束,如此就会存在预测不准确的问题。
发明内容
本申请提供了一种用于提高循环次数、循环开始地址和结束地址等循环参数的获取准确度的循环指令的处理方法、装置、设备和存储介质。
根据本申请的第一方面,提供了一种循环指令的处理方法,包括:获取计算机程序,所述计算机程序包括第一循环体,所述第一循环体是根据待编译的软件代码中的第二循环体生成的,所述第一循环体包括多条第一循环指令,所述多条第一循环指令是能够被计算机设备的硬件结构识别的指令;在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数;根据所述第一循环体的循环参数,获取所述多条第一循环指令;执行所述多条第一循环指令。
可选的,所述计算机程序包括多条计算机指令;所述循环参数包括循环的结束地址和循环次数N,N为大于或等于0的正整数,所述循环次数是根据所述第一循环体确定的;所述硬件结构包括结束地址寄存器、缓冲寄存器和长循环标志寄存器;所述在检测到所述第一循环体的情况下,根据所述多条第一循环指令,确定所述第一循环体的循环参数,包括:若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间不为0,则将所述计算机指令存储至所述缓冲寄存器,将所述计算机指令对应的地址存储至所述结束地址寄存器,并将所述长循环标志寄存器的标志位设置为短循环标识,所述短循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间小于或等于所述缓冲寄存器的总存储空间;根据所述结束地址寄存器中存储的结束地址,确定所述循环的结束地址。
可选的,所述硬件结构包括起始地址寄存器,所述方法还包括:若检测到所述计算机指令为第一循环指令,且所述缓冲寄存器的剩余存储空间为0,则将所述计算机指令对应的地址存储至所述起始地址寄存器,将所述长循环标志寄存器的标志位设置为长循环标识;所述长循环标识用于标识所述缓冲寄存器中当前存储的第一循环指令所占用的存储空间大于所述缓冲寄存器的总存储空间;在之后获取的计算机指令为第一循环指令的情况下,将之后获取的计算机指令对应的地址存储至所述结束地址寄存器,直至将全部的计算机指令获取完。
可选的,所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为短循环标识,则执行N次从所述缓冲寄存器获取所有的第一循环指令的操作。
可选的,所述若检测到所述计算机指令为第一循环指令之后,所述方法还包括:执行所述第一循环指令;所述根据所述第一循环体的循环参数,获取所述多条第一循环指令,包括:若所述长循环标志寄存器的标志位为短循环标识,则执行N-1次从所述缓冲寄存器获取所有的第一循环指令的操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010878243.0/2.html,转载请声明来源钻瓜专利网。