一种基于jit仿真器的中断检测方法及系统的制作方法

文档序号:6523824阅读:213来源:国知局
一种基于jit仿真器的中断检测方法及系统的制作方法
【专利摘要】本发明实施例公开了一种基于JIT仿真器的中断检测方法及系统,用于提高中断响应的精确度,从而提高JIT仿真器仿真结果的准确性。本发明实施例方法包括:在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
【专利说明】—种基于JIT仿真器的中断检测方法及系统
【技术领域】
[0001]本发明涉及仿真【技术领域】,具体涉及一种基于JIT仿真器的中断检测方法及系统。
【背景技术】
[0002]即时(Just In Time,简称JIT)仿真器是仿真技术中常见的一种高速仿真器,其运行分为两个阶段:翻译阶段和执行阶段,其中,翻译阶段将指令翻译成host机的可执行指令,由多条可执行指令组成一个指令块;在执行阶段由仿真平台调度以指令块为单元执行。
[0003]目前,JIT仿真器在翻译指令块时,中央处理单元(Central Processing Unit,CPU)无法检测是否有中断,因此,在翻译指令块之前加入中断检测,当检测到中断发生时,则中断当如指令块的翻译执彳丁中断,在中断执彳丁完之后再回来继续翻译之如未被翻译的指令块。
[0004]上述方案中,中断的执行是在两个指令块之间进行,可能导致本来应该在指令块的某个指令执行结束后就应该触发的中断被延迟到整个指令块结束后再去执行,导致中断不精确,从而影响仿真结果的准确性。

【发明内容】

[0005]针对上述缺陷,本发明实施例提供了 一种基于JIT仿真器的中断检测方法及系统,可以精确响应中断,提高JIT仿真器仿真结果的准确性。
[0006]本发明实施例第一方面提供了一种基于JIT仿真器的中断检测方法,包括:
[0007]在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
[0008]结合第一方面,在第一种可能的实现方式中,所述中断触发条件包含中断触发时间,进而所述判断当前系统是否满足所述指令所携带的中断触发条件,包括:判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
[0009]结合第一方面,在第二种可能的实现方式中,所述中断触发条件包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目;进而所述判断当前系统是否满足所述指令所携带的中断触发条件,包括:判断当前系统是否执行完所述指令所携带的中断触发条件中的中断触发指令判断条件所指示的第N条指令。
[0010]结合第一方面,或第一方面的第一种可能的实现方式,或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述在执行指令块的指令之前还包括:翻译指令块中的指令,其中,翻译后的每一条指令前均携带所述中断触发条件。
[0011]结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,在所述翻译指令块中的指令时,所述中断检测方法还包括:当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
[0012]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中断触发条件还包含中断处理函数;进而在所述从中断注册队列中获取所述中断触发条件之后,还包括:将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
[0013]结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述中断触发条件还包含中断处理类型;进而所述跳出并执行所述中断触发条件对应的中断包括:根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。
[0014]结合第一方面或上述第一方面的六种可能的实现方式中的任意一种,在第七种可能的实现方式中,在所述跳出并执行所述中断触发条件对应的中断之后,包括:回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
[0015]本发明实施第二方面提供了一种基于JIT仿真器的中断检测系统,包括:
[0016]中断判断单元,用于在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;
[0017]中断执行单元,用于若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
[0018]结合第二方面,在第一种可能的实现方式中,所述中断触发条件包含中断触发时间;进而所述中断判断单元包括:中断时间判断单元,用于在执行指令块每一条指令前,判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
[0019]结合第二方面,在第二种可能的实现方式中,所述中断触发条件包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为大于或等于O的正整数,且小于或等于所述指令块的指令总数目;进而所述中断判断单元包括:中断指令判断单元,用于在执行指令块的每一条指令前,判断当前系统是否执行完所述指令所携带的中断触发条件中的中断触发指令判断条件所指示的第N条指令。
[0020]结合第二方面,或第二方面的第一种可能的实现方式,或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述中断检测系统还包括:指令翻译单元,用于在执行指令块的指令前,翻译指令块中的指令,其中,翻译后的每一条指令前均携带中断触发条件。
[0021]结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述中断触发条件还包含中断处理函数;所述中断检测系统还包括:条件获取单元,用于在翻译指令块中的指令时,当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
[0022]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述中断检测系统还包括:中断处理函数翻译单元,用于将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
[0023]结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述中断触发条件还包括中断处理类型;所述中断执行单元包括:第一执行单元,用于若系统满足所述指令所携带的中断触发条件,根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。[0024]结合第二方面或上述第二方面的六种可能的实现方式中的任意一种,在第七种可能的实现方式中,所述中断检测系统还包括:指令执行单元,用于在所述中断执行单元执行完指令块的指令所携带的中断触发条件对应的中断后,回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
[0025]从以上技术方案可以看出,本发明实施例具有以下优点:
[0026]本发明实施例所提供的基于JIT仿真器的中断检测方法及系统,通过在执行指令块的每一条指令前,判断当前系统是否满足指令所携带的中断触发条件,在系统满足指令所携带的中断触发条件时,就跳出并执行中断触发条件对应的中断。与现有技术相比,本发明中通过在每一条指令执行前都进行中断判断,在确定有中断发生时,能够中断当前指令块中指令的执行,转而执行中断,而不需要等到整个指令块执行完再进行中断判断执行中断,有效提高了中断响应精确度,保证JIT仿真器仿真结果的准确性。
【专利附图】

【附图说明】
[0027]为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028]图1为本发明一实施例提供的基于JIT仿真器的中断检测方法流程示意图;
[0029]图2_a为本发明另一实施例提供的基于JIT仿真器的中断检测方法流程示意图;
[0030]图2_b为本发明另一实施例提供的基于JIT仿真器的中断检测方法流程示意图;
[0031]图3为本发明一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0032]图4_a为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0033]图4_b为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0034]图5_a为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0035]图5_b为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0036]图5-c为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0037]图6为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0038]图7为本发明另一实施例提供的基于JIT仿真器的中断检测系统基本结构示意图;
[0039]图8为本发明一实施例提供的基于JIT仿真器的中断检测设备基本结构示意图。【具体实施方式】
[0040]下面将结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]本发明实施例提供了一种基于JIT仿真器的中断检测方法及系统,可以提高中断响应精确度,进而提高JIT仿真器仿真结果的准确性。
[0042]本发明实施例所提供的技术方案针对于JIT仿真器中的中断处理,其中,JIT仿真器仿真目标机PC系统的运行,允许目标机PC的CPU构造的进程在JIT仿真器的CPU中执行。JIT仿真器运行分为翻译阶段和执行阶段,翻译阶段主要先将指令翻译成JIT仿真器本机中host机可以识别的中间代码,并将翻译后的多条指令组成一个指令块存储在内存模块中,然后由CPU启动主程序执行翻译后的指令块。如果外部定时器要注册中断时,通过中断注册模块向CPU注册中断,然后由CPU整理成有关中断的中断触发条件保存在中断注册队列中。
[0043]如图1所示,一种基于JIT仿真器的中断检测方法包括:
[0044]S110、在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;
[0045]外部定时器要向CPU注册中断时,通过注册模块向CPU注册,注册后的注册在中断队列排队,具体表示将注册的中断整理成相应的中断触发条件保存在中断注册队列中。仿真器启动主程序,在检测到当前有中断发生时,则读取中断处理函数执行中断,如果没有,检测中断注册队列是否有新的中断触发条件,如果有,从中断注册队列中获取中断触发条件,在翻译指令块的指令时,在指令中增加上该中断触发条件,以使得翻译后的每条指令前都携带上中断触发条件。
[0046]可选地,该中断触发条件可以包含中断触发时间。
[0047]可选地,该中断触发条件还可以包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目。
[0048]可选地,该中断触发条件还可以包含中断处理函数。
[0049]可选地,该中断触发条件还可以包含中断处理类型。
[0050]S120、若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
[0051]在JIT仿真器的执行阶段,在执行指令块的指令时,通过指令所携带的中断触发条件,在指令执行前判断当前系统是否满足该中断触发条件,如果当前系统满足了指令所携带的中断触发条件,则跳出,转而执行中断触发条件对应的中断。本发明实施例能够在指令块执行指令时判断是否发生中断,在指令块的执行过程中中断指令块的执行,转而触发中断,提高中断检测的精确性,从而有效提高JIT仿真器仿真结果的准确性。
[0052]作为一个可选的实施例,上述中断触发条件中包含中断触发时间,如图2-a所示,一种基于JIT仿真器的中断检测方法,可包括:
[0053]S2101、在执行指令块每一条指令前,判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同;
[0054]S2102、若当前系统时间与所述指令所携带的中断触发条件中中断触发时间相同,则跳出并执行所述中断触发条件对应的中断。
[0055]本发明实施例中中断触发条件具体包含有中断触发时间,若当前系统时间与该中断触发时间相同,则可以执行中断。
[0056]举例来说,假设中断触发时间为14:05,当前被执行的指令块中共有20条指令,在翻译阶段翻译指令后,每条指令前携带上包含有中断触发时间的中断触发条件。如果当前系统执行完指令块中的第8条指令,然后根据第9条指令所携带的中断触发条件中的中断触发时间14:05,若当前系统时间已经到达14:05,那么将中断执行第第9条指令,转而去执行中断触发条件对应的中断。
[0057]本发明实施例中由于在翻译指令块的指令后,每一条指令前都携带上中断触发条件,而该中断触发条件包含有中断触发时间,进而可以在执行指令块的指令时,判断当前系统是否与所述中断触发时间相同,如果相同,就可以跳出当前指令块,执行中断触发条件对应的中断,能够精确响应中断,提高JIT仿真器仿真结果的准确性。
[0058]作为一个可选的实施例,上述中断触发条件中包含中断触发指令判断条件,如图2-b所示,一种基于JIT仿真器的中断检测方法,可包括:
[0059]S2201、在执行指令块每一条指令前,判断当前系统是否执行完所述中断触发指令判断条件所指示的第N条指令,其中,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目;
[0060]S2202、若系统已执行完所述中断触发指令判断条件所指示的第N条指令,则跳出并执行所述中断触发条件对应的中断。
[0061]本发明实施例中的中断触发条件具体包含有中断触发指令判断条件,而该中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目,因此,若当前系统执行完中断触发指令判断条件中的指令块的第N条指令后,则停止执行该指令块,转而执行中断触发条件对应的中断,精确响应中断,提高JIT仿真器仿真结果的准确性。
[0062]举例来说,假设中断触发指令判断条件指示的是指令块中第J条指令,如果指令块中有I条指令,则说明在指令块的第J条指令执行完时执行中断。因此当执行完第J条指令时,根据第J+1条指令所携带的中断触发条件中的中断触发指令判断条件,具体是根据中断触发指令判断条件所指示的指令块中第J条指令,判断当前系统是否执行完第J条指令,若是,则停止执行第J+1条指令,跳出指令块,转而执行中断触发条件对应的中断。其中,I为大于或等于I的正整数J为大于或等于0,且小于或等于I的正整数。
[0063]本发明实施例中中断触发条件包含中断触发指令判断条件,而该中断触发指令判断条件具体用于指示指令块中第N条指令,因此,在执行指令块的指令时,通过在执行每一条指令前,判断当前系统是否已执行完指令块中第N条指令,进而在执行指令块中的第N条指令时,跳出指令块的执行,转而中断触发条件对应的中断,提高中断检测精确度,从而有效提高JIT仿真器仿真结果的准确性。
[0064]可以理解的是,在指令翻译阶段中,若检测到有中断注册,就从中断注册队列中获取中断触发条件,而中断触发条件除了包括上述中断触发时间或中断触发指令判断条件夕卜,还可以包括中断处理函数、中断处理类型。
[0065]在上述中断检测成功后,回到主程序检测到当前要发生中断,进入中断处理函数执行中断。当然,还可以将中断触发条件中的中断处理函数翻译保存在缓冲区中,当中断检测成功后,根据中断触发条件中的中断处理类型到缓冲区中提取对应的中断处理函数,进而可以避免在中断检测成功后回到主程序进行重复检测。
[0066]可选地,上述中断触发条件中所包含的中断处理类型,具体可以是强迫性中断和自愿性中断。其中,强迫性中断可以包括输入输出中断、硬件故障中断、时钟中断、控制台中断、程序性中断等。
[0067]可以理解的是,在上述将翻译后的中断处理函数保存到缓冲区时,可以通过物理地址表示缓冲区中的每一个中断处理函数的保存位置,在翻译中断处理函数后,在缓冲区中为中断处理函数分配一个物理地址,该物理地址可以与中断的中断处理类型进行匹配,在获取中断处理函数时可以根据中断处理类型来查找物理地址,从而获取到中断处理函数。通过事先将中断处理函数翻译保存后,中断检测成功后不用回到主程序进行重复检测,简化流程。
[0068]在中断触发条件对应的中断执行完后,将回到被中断的指令块中,从上一次被中断的未执行的指令开始重新执行指令。举例来说,指令块中有A、B、C—H共7条指令,在执行完该指令块的第C条指令后,指令块被中断执行,转而执行第D条指令所携带的中断触发条件对应的中断,那么在该中断触发条件对应的中断执行完后,将回到该指令块,从第D条指令开始重新执行。
[0069]在实际应用场景中,假设以通过JIT仿真器仿真手机上的闹钟为例,假设该闹钟使用CPU外定时器实现,当设置闹钟超时时间为I小时之后,CPU外定时器会记录这个时间,在时间到达后,定时器会将中断发给CPU。同时为了能准确接收这个中断,CPU也会记录下超时时间,在翻译过程在每条指令前翻译加入时间判断,之后在执行时,发现时间判断与这个超时时间吻合时,便跳出执行,正确接收CPU外定时器发来的中断信号,从而触发闹钟。
[0070]如图3所示,本发明实施例还提供中断检测系统300,可包括:
[0071]中断判断单元310,用于在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;
[0072]中断执行单元320,用于若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
[0073]其中,中断判断单元310在执行指令块的每一条指令前,通过判断当前系统是否满足该指令所携带的中断触发条件,若满足,则由中断执行单元320跳出并执行所述中断触发条件对应的中断,可以精确响应中断,从而提高仿真结果的准确性。
[0074]可选地,该中断触发条件可以包含中断触发时间。
[0075]可选地,该中断触发条件还可以包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目。
[0076]可选地,该中断触发条件还可以包含中断处理函数。
[0077]可选地,该中断触发条件还可以包含中断处理类型,具体地,该中断处理类型可以是强迫性中断和自愿性中断。其中,强迫性中断可以包括输入输出中断、硬件故障中断、时钟中断、控制台中断、程序性中断等。
[0078]进一步地,如图4_a所示,当上述中断触发条件包含中断触发时间时,上述中断判断单元310可包括:
[0079]中断时间判断单元410,用于在执行指令块每一条指令前,判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
[0080]举例来说,假设中断触发时间为14:05,当前被执行的指令块中共有20条指令,在翻译阶段翻译指令后,每条指令前携带上包含有中断触发时间的中断触发条件。如果当前系统执行完指令块中的第8条指令,然后根据第9条指令所携带的中断触发条件中的中断触发时间14:05,若当前系统时间已经到达14:05,那么将中断执行第第9条指令,转而去执行中断触发条件对应的中断。
[0081]进一步地,如图4_b所示,当上述中断触发条件包含中断触发指令判断条件时,上述中断判断单元310可包括:
[0082]中断指令判断单元,用于在执行指令块的每一条指令前,判断当前系统是否执行完所述中断触发指令判断条件所指示的第N条指令,其中,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为大于或等于O的正整数,且小于或等于所述指令块的指令总数目。
[0083]举例来说,假设中断触发指令判断条件指示的是指令块中第J条指令,如果指令块中有I条指令,则说明在指令块的第J条指令执行完时执行中断。因此当执行完第J条指令时,根据第J+1条指令所携带的中断触发条件中的中断触发指令判断条件,具体是根据中断触发指令判断条件所指示的指令块中第J条指令,判断当前系统是否执行完第J条指令,若是,则停止执行第J+1条指令,跳出指令块,转而执行中断触发条件对应的中断。其中,I为大于或等于I的正整数J为大于或等于0,且小于或等于I的正整数。
[0084]JIT仿真器运行CPU主程序,在翻译阶段检测中断注册队列是否有新的中断触发条件。当检测到有新的中断触发条件时,从中断注册队列中读取中断触发条件,然后在翻译每一条指令时,同时将该中断触发条件翻译成host可识别的中断触发条件并增加到指令中,使得每一条翻译后的指令前都携带有翻译后的中断触发条件。
[0085]因此,如图5-a所示,上述中断检测系统300还可以包括:
[0086]指令翻译单元510,用于在执行指令块的指令前,翻译指令块中的指令,其中,翻译后的每一条指令前均携带中断触发条件。
[0087]如图5-b所示,上述中断检测系统300还包括:
[0088]条件获取单元520,用于在翻译指令块中的指令时,当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
[0089]如图5-c所示,上述中断检测系统300还包括:
[0090]中断处理函数翻译单元530,用于将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
[0091]可以理解的是,在指令翻译阶段中,若检测到有中断注册,就从中断注册队列中获取中断触发条件,而中断触发条件除了包括上述中断触发时间或中断触发指令判断条件夕卜,还可以包括中断处理函数、中断处理类型。
[0092]在上述中断检测成功后,回到主程序检测到当前要发生中断,进入中断处理函数执行中断。当然,还可以将中断触发条件中的中断处理函数翻译保存在缓冲区中,当中断检测成功后,根据中断触发条件中的中断处理类型到缓冲区中提取对应的中断处理函数,进而可以避免在中断检测成功后回到主程序进行重复检测。
[0093]如图6所示,上述中断执行单元320具体可以包括:
[0094]第一执行单元610,用于若系统满足所述指令所携带的中断触发条件,根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。
[0095]可以理解的是,在上述将翻译后的中断处理函数保存到缓冲区时,可以通过物理地址表示缓冲区中的每一个中断处理函数的保存位置,在翻译中断处理函数后,在缓冲区中为中断处理函数分配一个物理地址,该物理地址可以与中断的中断处理类型进行匹配,在获取中断处理函数时可以根据中断处理类型来查找物理地址,从而获取到中断处理函数。通过事先将中断处理函数翻译保存后,中断检测成功后不用回到主程序进行重复检测,简化流程。
[0096]如图7所示,上述中断检测系统300还可以包括:
[0097]指令执行单元700,用于在所述中断执行单元执行完指令块的指令所携带的中断触发条件对应的中断后,回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
[0098]在上述中断执行单元320或第一执行单元610执行完中断触发条件对应的中断后,指令执行单元700将回到被中断的指令块中,从上一次被中断的未执行的指令开始重新执行指令。举例来说,指令块中有A、B、C—H共7条指令,在执行完该指令块的第C条指令后,指令块被中断执行,转而执行第D条指令所携带的中断触发条件对应的中断,那么在该中断触发条件对应的中断执行完后,将回到该指令块,从第D条指令开始重新执行。
[0099]本发明实施例还提供一种基于JIT仿真器的中断检测设备,如图8所示,可包括:存储器810和至少一个处理器820 (图8中以一个处理器为例)。本发明实施例的一些实施例中,存储器810和处理器820可通过总线或其它方式连接,其中,图8以通过总线连接为例。
[0100]其中,处理器820可以执行以下步骤:在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件;若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
[0101]在本发明的一些实施例中,所述中断触发条件包含中断触发时间,处理器820还可以执行以下步骤:判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
[0102]在本发明的一些实施例中,所述中断触发条件包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目;处理器820还可以执行以下步骤:判断当前系统是否执行完所述中断触发指令判断条件所指示的第N条指令。
[0103]在本发明的一些实施例中,处理器820还可以执行以下步骤:翻译指令块中的指令,其中,翻译后的每一条指令前均携带所述中断触发条件。
[0104]在本发明的一些实施例中,处理器820还可以执行以下步骤:当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
[0105]在本发明的一些实施例中,处理器820还可以执行以下步骤:将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
[0106]在本发明的一些实施例中,处理器820还可以执行以下步骤:根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。
[0107]在本发明的一些实施例中,处理器820还可以执行以下步骤:回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
[0108]在本发明的一些实施例中,存储器810可以用于保存中断触发条件,该中断触发条件可包含中断处理函数、中断处理类型、中断触发时间或中断触发指令判断条件;
[0109]在本发明的一些实施例中,存储器810还可以用于保存翻译后的指令块。
[0110]在本发明的一些实施例中,存储器810还可以用于保存翻译后的中断处理函数、中断触发条件。
[0111]本发明实施例所提供的中断处理设备可以是JIT仿真器,还可以是其它适用本发明技术方案的仿真器。
[0112]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0113]以上对本发明所提供的一种基于JIT仿真器的中断检测方法及系统进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种基于JIT仿真器的中断检测方法,其特征在于,包括: 在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件; 若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
2.根据权利要求1所述的中断检测方法,其特征在于,所述中断触发条件包含中断触发时间,进而所述判断当前系统是否满足所述指令所携带的中断触发条件,包括: 判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
3.根据权利要求1所述的中断检测方法,其特征在于,所述中断触发条件包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为正整数,且小于或等于所述指令块的指令总数目; 进而所述判断当前系统是否满足所述指令所携带的中断触发条件,包括: 判断当前系统是否执行完所述中断触发指令判断条件所指示的第N条指令。
4.根据权利要求1~3任一项所述的中断检测方法,其特征在于,所述在执行指令块的指令之前还包括: 翻译指令块中的指令,其中,翻译后的每一条指令前均携带所述中断触发条件。
5.根据权利要求4所述的中断检测方法,其特征在于,在所述翻译指令块中的指令时,所述中断检测方法还包括: 当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
6.根据权利要求5所述的中断检测方法,其特征在于,所述中断触发条件还包含中断处理函数; 进而在所述从中断注册队列中获取所述中断触发条件之后,还包括: 将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
7.根据权利要求6所述的中断检测方法,其特征在于,所述中断触发条件还包含中断处理类型; 进而所述跳出并执行所述中断触发条件对应的中断包括: 根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。
8.根据权利要求1~7任一项所述的中断检测方法,其特征在于,在所述跳出并执行所述中断触发条件对应的中断之后,还包括: 回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
9.一种基于JIT仿真器的中断检测系统,其特征在于,包括: 中断判断单元,用于在执行指令块每一条指令前,判断当前系统是否满足所述指令所携带的中断触发条件; 中断执行单元,用于若系统满足所述指令所携带的中断触发条件,则跳出并执行所述中断触发条件对应的中断。
10.根据权利要求9所述的中断检测系统,其特征在于,所述中断触发条件包含中断触发时间;进而所述中断判断单元包括:中断时间判断单元,用于在执行指令块每一条指令前,判断当前系统时间是否与所述指令所携带的中断触发条件中的中断触发时间相同。
11.根据权利要求9所述的中断检测系统,其特征在于,所述中断触发条件包含中断触发指令判断条件,所述中断触发指令判断条件具体用于指示指令块中的第N条指令,所述N为大于或等于O的正整数,且小于或等于所述指令块的指令总数目;进而所述中断判断单元包括: 中断指令判断单元,用于在执行指令块的每一条指令前,判断当前系统是否执行完所述中断触发指令判断条件所指示的第N条指令。
12.根据权利要求9~11任一项所述的中断检测系统,其特征在于,所述中断检测系统还包括: 指令翻译单元,用于在执行指令块的指令前,翻译指令块中的指令,其中,翻译后的每一条指令前均携带中断触发条件。
13.根据权利要求12所述的中断检测系统,其特征在于,所述中断触发条件还包含中断处理函数;所述中断检测系统还包括: 条件获取单元,用于在翻译指令块中的指令时,当检测到有中断注册,从中断注册队列中获取所述中断触发条件。
14.根据权利要求13所述的中断检测系统,其特征在于,所述中断检测系统还包括: 中断处理函数翻译单元,用于将所述中断触发条件中的中断处理函数翻译成可执行的中断处理函数,并将翻译后的中断处理函数保存在缓冲区。
15.根据权利要求14所述的中`断检测系统,其特征在于,所述中断触发条件还包括中断处理类型;所述中断执行单元包括: 第一执行单元,用于若系统满足所述指令所携带的中断触发条件,根据所述中断触发条件中的中断处理类型从缓冲区读取翻译后的中断处理函数,执行中断。
16.根据权利要求9~15任一项所述的中断检测系统,其特征在于,所述中断检测系统还包括: 指令执行单元,用于在所述中断执行单元执行完指令块的指令所携带的中断触发条件对应的中断后,回到被中断的所述指令块,从所述指令块中被中断的指令开始执行指令。
【文档编号】G06F9/455GK103699427SQ201310687864
【公开日】2014年4月2日 申请日期:2013年12月13日 优先权日:2013年12月13日
【发明者】罗晴, 肖春鹏, 李书旭 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1