一种芯片指令高速缓存失效的检测方法及系统
技术领域
本发明涉及芯片生产技术领域,尤其涉及一种芯片指令高速缓存失效的检测方法及系统。
背景技术
现有的移动设备的CPU处理器带有较大容量的指令高速缓存,它靠近CPU端,用于来存取将要被CPU执行的指令。由于其物理上靠近CPU,读取速度快,所以能够加快系统运行效率。由于工艺的波动以及生产流程的不可控性,会发生指令高速缓存失效、损坏的问题。因此在芯片生产出来之后,需要找到一种快速有效的方法,将存在指令高速缓存失效的芯片挑选出来。
发明内容
本发明要解决的技术问题之一,在于提供一种芯片指令高速缓存失效的检测方法,提高检测效率,加快芯片检测的流通环节,省时省力。
本发明问题之一是这样实现的:一种芯片指令高速缓存失效的检测方法,包括如下步骤:
步骤1、在芯片指令高速缓存中预设复数个最小指令单元,所述最小指令单元是一段具有自我判断执行结果正确与否的校验程序;
步骤2、根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,且每一级宏函数单元不断的包裹前一级宏函数单元构成了一大函数,所述大函数占满了整个芯片指令高速缓存;
步骤3、CPU内的逻辑运算单元ALU从芯片指令高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问芯片指令高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;
步骤4、若大函数执行过程中有错误发生,则其中某个最小指令单元自我校验会错误,自我校验会错误的最小指令单元会退出执行,大函数执行中断;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常。
进一步地,所述芯片指令高速缓存失效包括两种情况:情况一、大函数中最小指令单元的指令进行执行的结果与实际意图不符,因最小指令单元有自我校验功能,自我校验一旦失败,则校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况;
情况二、芯片指令高速缓存中的指令编码出错,造成指令识别异常,CPU异常,大函数执行停止,此时校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况。
进一步地,所述大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历具体为:最小指令单元具备自校验的能力,大函数中每一个最小指令单元执行成功则会跳到下一个最小指令单元;在芯片指令高速缓存中,所有的最小指令单元所处的地址连续且紧挨着;各级宏函数单元为各个最小指令单元顺序摆放,一个接着一个执行,宏函数单元能够正确执行的前提是其中的每一个最小指令单元正确执行,由于每一个最小指令单元紧挨着地址摆放在芯片指令高速缓存中,则宏函数单元被遍历了,则它自身程序所处的芯片指令高速缓存这段区间是正常的;在大函数内的所有宏函数单元递归执行后,整个芯片指令高速缓存进行了遍历访问。
本发明要解决的技术问题之二,在于提供一种芯片指令高速缓存失效的检测系统,提高检测效率,加快芯片检测的流通环节,省时省力。
本发明问题之二是这样实现的:一种芯片指令高速缓存失效的检测系统,所述系统包括设置单元、构建函数单元、执行单元以及失效判断单元;
所述设置单元,用于在芯片指令高速缓存中预设复数个最小指令单元,所述最小指令单元是一段具有自我判断执行结果正确与否的校验程序;
所述构建函数单元,根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,且每一级宏函数单元不断的包裹前一级宏函数单元构成了一大函数,所述大函数占满了整个芯片指令高速缓存;
所述执行单元,用于CPU内的逻辑运算单元ALU从芯片指令高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问芯片指令高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;
所述失效判断单元,用于若大函数执行过程中有错误发生,则其中某个最小指令单元自我校验会错误,自我校验会错误的最小指令单元会退出执行,大函数执行中断;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常。
进一步地,所述芯片指令高速缓存失效包括两种情况:情况一、大函数中最小指令单元的指令进行执行的结果与实际意图不符,因最小指令单元有自我校验功能,自我校验一旦失败,则校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况;
情况二、芯片指令高速缓存中的指令编码出错,造成指令识别异常,CPU异常,大函数执行停止,此时校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况。
进一步地,所述大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历具体为:最小指令单元具备自校验的能力,大函数中每一个最小指令单元执行成功则会跳到下一个最小指令单元;在芯片指令高速缓存中,所有的最小指令单元所处的地址连续且紧挨着;各级宏函数单元为各个最小指令单元顺序摆放,一个接着一个执行,宏函数单元能够正确执行的前提是其中的每一个最小指令单元正确执行,由于每一个最小指令单元紧挨着地址摆放在芯片指令高速缓存中,则宏函数单元被遍历了,则它自身程序所处的芯片指令高速缓存这段区间是正常的;在大函数内的所有宏函数单元递归执行后,整个芯片指令高速缓存进行了遍历访问。
本发明具有如下优点:本发明在芯片指令高速缓存中预设复数个最小指令单元,并根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,CPU内的逻辑运算单元ALU从高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常;其提高检测效率,加快芯片检测的流通环节,省时省力。
附图说明
图1为本发明方法流程示意图。
图2为本发明宏函数单元递归的原理框图。
图3为本发明CPU内的逻辑运算单元ALU执行原理框图。
图4为本发明的系统框图。
具体实施方式
请参阅图1至图3所示,本发明的一种芯片指令高速缓存失效的检测方法,其特征在于:包括如下步骤:
步骤1、在芯片指令高速缓存中预设复数个最小指令单元,所述最小指令单元是一段具有自我判断执行结果正确与否的校验程序;该校验程序编译成汇编语言后的汇编指令,构成最小指令单元;
步骤2、根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,且每一级宏函数单元不断的包裹前一级宏函数单元构成了一大函数,所述大函数占满了整个芯片指令高速缓存;
步骤3、CPU内的逻辑运算单元ALU从芯片指令高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问芯片指令高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;大函数则是N多个宏函数单元,也就是非常非常,许许多多的最小指令单元;
步骤4、若大函数执行过程中有错误发生,则其中某个最小指令单元自我校验会错误,自我校验会错误的最小指令单元会退出执行,大函数执行中断;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常。
其中,所述芯片指令高速缓存失效包括两种情况:情况一、大函数中最小指令单元的指令进行执行的结果与实际意图不符,因最小指令单元有自我校验功能,自我校验一旦失败,则校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况;
情况二、芯片指令高速缓存中的指令编码出错,造成指令识别异常,CPU异常,大函数执行停止,此时校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况。
所述大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历具体为:最小指令单元具备自校验的能力,大函数中每一个最小指令单元执行成功则会跳到下一个最小指令单元;在芯片指令高速缓存中,所有的最小指令单元所处的地址连续且紧挨着;各级宏函数单元为各个最小指令单元顺序摆放,一个接着一个执行,宏函数单元能够正确执行的前提是其中的每一个最小指令单元正确执行,由于每一个最小指令单元紧挨着地址摆放在芯片指令高速缓存中,则宏函数单元被遍历了,则它自身程序所处的芯片指令高速缓存这段区间是正常的;在大函数内的所有宏函数单元递归执行后,整个芯片指令高速缓存进行了遍历访问。那么在N多个宏函数单元这么递归上去,就最终能够访问到整个指令高速缓存空间。
请参阅图4所示,本发明的一种芯片指令高速缓存失效的检测系统,其特征在于:所述系统包括设置单元、构建函数单元、执行单元以及失效判断单元;
所述设置单元,用于在芯片指令高速缓存中预设复数个最小指令单元,所述最小指令单元是一段具有自我判断执行结果正确与否的校验程序;该校验程序编译成汇编语言后的汇编指令,构成最小指令单元;
所述构建函数单元,根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,且每一级宏函数单元不断的包裹前一级宏函数单元构成了一大函数,所述大函数占满了整个芯片指令高速缓存;大函数则是N多个宏函数单元,也就是非常非常,许许多多的最小指令单元;
所述执行单元,用于CPU内的逻辑运算单元ALU从芯片指令高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问芯片指令高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;
所述失效判断单元,用于若大函数执行过程中有错误发生,则其中某个最小指令单元自我校验会错误,自我校验会错误的最小指令单元会退出执行,大函数执行中断;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常。
其中,所述芯片指令高速缓存失效包括两种情况:情况一、大函数中最小指令单元的指令进行执行的结果与实际意图不符,因最小指令单元有自我校验功能,自我校验一旦失败,则校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况;
情况二、芯片指令高速缓存中的指令编码出错,造成指令识别异常,CPU异常,大函数执行停止,此时校验程序退出,即能判定芯片指令高速缓存是否存在失效的情况。
所述大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历具体为:最小指令单元具备自校验的能力,大函数中每一个最小指令单元执行成功则会跳到下一个最小指令单元;在芯片指令高速缓存中,所有的最小指令单元所处的地址连续且紧挨着;各级宏函数单元为各个最小指令单元顺序摆放,一个接着一个执行,宏函数单元能够正确执行的前提是其中的每一个最小指令单元正确执行,由于每一个最小指令单元紧挨着地址摆放在芯片指令高速缓存中,则宏函数单元被遍历了,则它自身程序所处的芯片指令高速缓存这段区间是正常的;在大函数内的所有宏函数单元递归执行后,整个芯片指令高速缓存进行了遍历访问。那么在N多个宏函数单元这么递归上去,就最终能够访问到整个指令高速缓存空间。
总之,本发明在芯片指令高速缓存中预设复数个最小指令单元,并根据宏函数的递归性,逐级创建宏函数单元,各级宏函数单元包裹有最小指令单元,CPU内的逻辑运算单元ALU从高速缓存中获取大函数中所有的最小指令单元的指令进行执行,逻辑运算单元ALU访问高速缓存的每个比特,大函数中的指令会依次执行,大函数执行完成,则整个芯片指令高速缓存进行了遍历;根据大函数是否完成即能判断芯片指令高速缓存是否失效或者异常;其提高检测效率,加快芯片检测的流通环节,省时省力。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。