一种解决指令读取异常问题的方法

文档序号:9810386阅读:398来源:国知局
一种解决指令读取异常问题的方法
【技术领域】
[0001]本发明属于集成电路设计领域,特别涉及处理器应用过程中指令读取异常问题的处理方法。
【背景技术】
[0002]在现实的处理器应用过程中经常会发生由于自电源的波动导致程序从程序存储空间取指令的时候指令读取数据错误。尤其是在电快速瞬变/脉冲群(EFT)事件或者工作状态下的静电(ESD)事件,由于程序存储器本身的鲁棒性要明显低于数字逻辑单元的鲁棒性,从而导致指令读取错误。
[0003]如专利申请201210577051.1公开了一种调试中央处理器死机的方法,使用所述的调试中央处理器死机的系统,包括:开启第一中央处理器;第一中央处理器的计数器进行倒计数;当所述计数器计数到零时,重置模块通知所述计数器进行重置;所述重置模块判断所述计数器是否完成重置,若完成重置,说明所述第一中央处理器正常运行,若未完成重置,说明所述第一中央处理器异常死机,则所述重置模块向一第二中央处理器发送一启动指令;当接收到所述启动指令后,第二中央处理器对所述第一中央处理器进行调试。该方法是通过重置的方法处理,这会大大延迟处理器的处理效率和速度,影响设备的正常运行。

【发明内容】

[0004]为解决上述问题,本发明的目的在于提供一种解决指令读取异常问题的方法,该方法避免了处理器在取指令过程中因为外部干扰等因素导致的指令中的某个比特或某几个比特出现0/1错误,保证读取指令的正确性。
[0005]本发明的目的在于提供一种解决指令读取异常问题的方法,该方法能够快速地对读取指令进行验证,且实现简便,成本低廉。
[0006]—种解决指令读取异常问题的方法在于处理器连续从相同地址读取N次指令,正常情况下N次指令的比特位是完全一致的。但是在异常状况下,N次指令中的某一次或者某几次的指令中的某些比特位会出现0/1错误。
[0007]考虑到这种情况,为实现上述目的,本发明的技术方案如下。
[0008]—种解决指令读取异常问题的方法,其特征在于在读取指令的过程中,处理器连续读取N次指令(N2 2),对N次指令进行比较,如果比较一致的情况下,对该指令进行译码和指令的执行。
[0009]所述对N次指令进行比较,是通过指令滤波器通过对取的N次相同指令进行滤波,判定哪条才是正确的指令进行执行。
[0010]进一步,指令滤波器通过对取的N次相同指令进行滤波,如果比较不一致,且连续不一致的次数不超过L次(L 2 2),处理器清掉原来读取的指令,返回再次从程序存储器进行指令读取;
[0011]如果比较不一致,且连续不一致的次数超过L次(L 2 2),处理器可以报错,并根据实际的应用情况进行后续处理,例如程序停止执行并通过引脚指示错误或者程序待机一定时间后再重新读取该指令等等。
[0012]指令滤波器可以通过多种方法实现。指令滤波器最终判定正确指令所需的N次不是固定的,取决于指令滤波器判定正确指令的时间。但指令滤波器有一个最小建立数M,M取决于指令滤波器的结构,且大于等于2。
[0013]—种最简单的指令滤波器可以这样实现。该滤波器M=2,指令为L比特,先后取的两条指令分别为Ml、M2。
[0014]Ml与M2按位比较,如果比较结果相同,对指令M2进行译码和执行。如果不相同,取第3条指令M3,M2与M3按位比较,如果比较结果相同,对指令M3进行译码和执行。如果不相同,取第4条指令M4,M3与M4按位比较,如果比较结果相同,对M4进行译码和执行。以此类推。当该条指令正确执行后,从下一个地址读取指令,通过指令滤波器对下一条指令进行滤波。以此类推,指令滤波器的结构决定了处理器抗干扰的鲁棒性。
[0015]本方法避免了处理器在取指令过程中因为外部干扰等因素导致的指令中的某个比特或某几个比特出现0/1错误,通过2次及以上的相同地址指令的读取和比特位前后一致性对比,从而丢掉异常条件下读取的不正确的指令。
【附图说明】
[0016]图I是本发明所实施的系统控制流程图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0018]如图I所示,为本发明所实现解决指令读取异常问题的方法的主要控制流程图,图中所示,本发明所实施的方法在读取指令的过程中,处理器连续读取N次指令(N2 2),对N次指令进行比较,如果比较一致的情况下,对该指令进行译码和指令的执行。
[0019]具体地说,对N次指令进行比较,是通过指令滤波器通过对取的N次相同指令进行滤波,判定哪条才是正确的指令进行执行。
[0020]指令滤波器通过对取的N次相同指令进行滤波,如果比较不一致,且连续不一致的次数不超过L次(L 2 2),处理器清掉原来读取的指令,返回再次从程序存储器进行指令读取;
[0021]如果比较不一致,且连续不一致的次数超过L次,处理器可以报错,并根据实际的应用情况进行后续处理,例如程序停止执行并通过引脚指示错误或者程序待机一定时间后再重新读取该指令等等。
[0022]例如:指令滤波器M= 2,指令为L比特,先后取的两条指令分别为Ml、M2。
[0023]Ml与M2按位比较,如果比较结果相同,对指令M2进行译码和执行。如果不相同,取第3条指令M3,M2与M3按位比较,如果比较结果相同,对指令M3进行译码和执行。如果不相同,取第4条指令M4,M3与M4按位比较,如果比较结果相同,对M4进行译码和执行。以此类推。当该条指令正确执行后,从下一个地址读取指令,通过指令滤波器对下一条指令进行滤波。以此类推,指令滤波器的结构决定了处理器抗干扰的鲁棒性。
[0024]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种解决指令读取异常问题的方法,其特征在于在读取指令的过程中,处理器连续读取N次指令,对N次指令进行比较,如果比较一致的情况下,对该指令进行译码和指令的执行。2.如权利要求I所述的解决指令读取异常问题的方法,其特征在于所述对N次指令进行比较,是通过指令滤波器通过对取的N次相同指令进行滤波,判定是正确的指令才进行执行。3.如权利要求2所述的解决指令读取异常问题的方法,其特征在于所述N次指令N2 2。4.如权利要求2所述的解决指令读取异常问题的方法,其特征在于指令滤波器通过对取的N次相同指令进行滤波,如果比较不一致,且连续不一致的次数不超过L次,处理器清掉原来读取的指令,返回再次从程序存储器进行指令读取; 如果比较不一致,且连续不一致的次数超过L次,处理器可以报错,并根据实际的应用情况进行后续处理,例如程序停止执行并通过引脚指示错误或者程序待机一定时间后再重新读取该指令等等。5.如权利要求4所述的解决指令读取异常问题的方法,其特征在于所述L22。6.如权利要求2所述的解决指令读取异常问题的方法,其特征在于指令滤波器有一个最小建立数M,M取决于指令滤波器的结构,且大于等于2。7.如权利要求2所述的解决指令读取异常问题的方法,其特征在于指令滤波器M= 2,指令为L比特,先后取的两条指令分别为Ml、M2; Ml与M2按位比较,如果比较结果相同,对指令M2进行译码和执行; 如果不相同,取第3条指令M3,M2与M3按位比较,如果比较结果相同,对指令M3进行译码和执行; 如果不相同,取第4条指令M4,M3与M4按位比较,如果比较结果相同,对M4进行译码和执行,以此类推,当该条指令正确执行后,从下一个地址读取指令,通过指令滤波器对下一条指令进行滤波。
【专利摘要】本发明公开了一种解决指令读取异常问题的方法,其特征在于在读取指令的过程中,处理器连续读取N次指令对N次指令进行比较,如果比较一致的情况下,对该指令进行译码和指令的执行。本方法避免了处理器在取指令过程中因为外部干扰等因素导致的指令中的某个比特或某几个比特出现0/1错误,通过2次及以上的相同地址指令的读取和比特位前后一致性对比,从而丢掉异常条件下读取的不正确的指令。
【IPC分类】G06F11/07
【公开号】CN105573856
【申请号】CN201610046651
【发明人】乔爱国
【申请人】芯海科技(深圳)股份有限公司
【公开日】2016年5月11日
【申请日】2016年1月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1