CN109558141B - 一种最坏执行时间wcet的确定方法、装置和可读介质 - Google Patents
一种最坏执行时间wcet的确定方法、装置和可读介质 Download PDFInfo
- Publication number
- CN109558141B CN109558141B CN201811438591.5A CN201811438591A CN109558141B CN 109558141 B CN109558141 B CN 109558141B CN 201811438591 A CN201811438591 A CN 201811438591A CN 109558141 B CN109558141 B CN 109558141B
- Authority
- CN
- China
- Prior art keywords
- time
- determining
- running
- symbol file
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种最坏执行时间WCET的确定方法、装置和可读介质,所述方法包括:获取编译后的程序的符号文件,将符号文件加载到模拟内存中;确定是否满足程序运行结束条件;在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行符号文件中的代码;在本次代码运行结束时,确定本次运行符号文件中的代码的运行时间,继续执行确定是否满足程序运行结束条件;在确定出满足程序运行结束条件时,基于历次确定出的运行符号文件中的代码的运行时间,确定编译后的程序的最坏执行时间WCET。本发明在模拟环境下模拟运行符号文件中的代码,无需基于程序研发出硬件后再基于该硬件确定该程序的WCET,降低了复杂度。
Description
技术领域
本发明涉及嵌入式系统技术领域,尤其涉及一种最坏执行时间WCET的确定方法、装置和可读介质。
背景技术
实时操作系统的任务需要在规定的时间范围内完成,当任务没有在规定的时间范围内完成时,可能会引起降低系统性能或者其他灾难性的后果。因此,事先获取系统中每个任务的最差情况下的执行时间(也称最坏执行时间)对实时系统的时序分析具有特别重要的意义,是确定周期性任务是否满足其性能目标的重要参考依据。而实时操作系统中的任务一般为应用的程序片段。
现有技术中一般通过动态度量或静态分析的方式来确定程序片段的最坏执行时间(Worst-case Execution Time,WCET),该动态度量方法需要在特定的硬件平台上通过穷举所有可能的输入值来运行所要分析的程序片段,然后测量该程序片段的WCET。然而在很多情况下,对WCET的分析要先于硬件的设计,也就是说,在分析WCET时目标硬件是不存在的,因此,现有技术提供的方法无法适用于硬件不存在时WCET的分析。静态分析方法是指在不执行程序的情况下进行WCET的分析,通过将最长分支的分析转换为机器指令条数来估算WCET,该静态分析方法会因程序的分支计算复杂而导致估算WCET复杂度和计算量非常高。
因此,如何在不依赖硬件的情况下,确定程序片段的WCET是首要考虑的问题之一。
发明内容
本发明实施例提供一种最坏执行时间WCET的确定方法、装置和可读介质,用以在不依赖硬件的情况下,确定程序片段的WCET,并降低确定WCET的流程的复杂度。
第一方面,本发明实施例提供一种最坏执行时间WCET的确定方法,包括:
获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;
确定是否满足程序运行结束条件;
在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;
在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足程序运行结束条件;
在确定出满足程序运行结束条件时,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
采用上述方法,不仅不需要依赖程序的硬件,而且由于无需确定程序的最长分支,直接模拟运行符号文件中的代码并确定运行符号文件中的代码的运行时间,然后基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET,有效降低了确定WCET的计算复杂度,且由于模拟运行了符号文件中的代码,故提高了确定出的WCET的准确度。
第二方面,本发明实施例提供一种最坏执行时间WCET的确定装置,包括:
加载单元,用于获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;
判断单元,用于确定是否满足程序运行结束条件;
模拟运行单元,用于在所述判断单元判断结果为否时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;
第一确定单元,用于在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间;
所述判断单元,用于继续执行确定是否满足程序运行结束条件;
第二确定单元,用于所述判断单元判断结果为是时,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
第三方面,本发明实施例提供一种计算机可读介质,存储有计算机可执行指令,所述计算机可执行指令用于执行本申请提供的最坏执行时间WCET的确定方法。
第四方面,本发明实施例提供一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请提供的最坏执行时间WCET的确定方法。
本发明有益效果:
本发明实施例提供的最坏执行时间WCET的确定方法、装置和可读介质,获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;确定是否满足程序运行结束条件;在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足程序运行结束条件;在确定出满足程序运行结束条件时,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。采用上述方法,由于本发明在模拟环境下模拟处理器的指令来运行符号文件中的代码,无需基于程序研发出硬件后再基于该硬件确定该程序的WCET;此外,本发明无需对程序的分支进行分析,直接模拟处理器的指令来运行符号文件中的代码,同时确定运行符号文件中的代码的运行时间,进而基于历次确定出的运行时间来确定程序的WCET,使得确定出的WCET结果准确且可靠,同时计算复杂度低。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的实施最坏执行时间WCET的确定方法的计算装置的结构示意图;
图2为本发明实施例提供的最坏执行时间WCET的确定方法的流程示意图之一;
图3为本发明实施例提供的将符号文件加载到模拟内存中的流程示意图;
图4为本发明实施例提供的确定所述编译后的程序的最坏执行时间WCET的流程示意图之一;
图5为本发明实施例提供的确定所述编译后的程序的最坏执行时间WCET的流程示意图之二;
图6为本发明实施例提供的确定所述编译后的程序的最坏执行时间WCET的流程示意图之三;
图7为本发明实施例提供的模拟处理器的指令运行所述符号文件中的代码的流程示意图;
图8为本发明实施例提供的确定运行所述符号文件的代码的运行时间的流程示意图;
图9为本发明实施例提供的最坏执行时间WCET的确定方法的流程示意图之二;
图10为本发明实施例提供的最坏执行时间WCET的确定装置的结构示意图;
图11为本发明实施例提供的实施最坏执行时间WCET的确定方法的通信装置的硬件结构示意图。
具体实施方式
本发明实施例提供的最坏执行时间WCET的确定方法、装置和可读介质,用以在不依赖硬件的情况下,确定程序片段的WCET,并降低确定WCET的流程的复杂度。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
为了便于理解本发明,本发明涉及的技术术语中:
最坏执行时间WCET,是指计算给定应用程序代码片段的执行时间的上限,上述代码片段的执行时间定义为执行代码片段所花费的处理器时间,即运行代码片段占用的处理器时间,该WCET不考虑上下文切换引起的时间,也不考虑整个应用程序甚至系统的最坏执行时间,考虑的只是不间断运行一个程序所占用的处理器时间,该WCET和代码片段及处理器特性有关。
现有的动态度量方法需要在硬件平台上确定程序的WCET,不适用硬件不存在时确定WCET的情况,而现有的静态分析方法一般是确定程序中最长的分支,然后基于最长分支的代码条数确定机器指令的条数,进而基于机器指令的条数确定WCET,而这种方法计算复杂度极高。
为了解决现有技术中动态度量方法需要依赖硬件才能确定WCET,或者静态分析方法计算复杂度高的问题,本发明实施例给出了解决方案,提出了一种计算装置10,由计算装置10来实施本发明提供的最坏执行时间WCET的确定方法,该计算装置10可以以通用计算设备的形式表现,该通用计算设备可以为终端等。下面参照图1来描述根据本发明的计算装置10。图1显示的计算装置10仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算装置10以通用计算设备的形式表现。计算装置10的组件可以包括但不限于:上述至少一个处理单元11、上述至少一个存储单元12、连接不同系统组件(包括存储单元12和处理单元11)的总线13。
总线13表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储单元12可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)121和/或高速缓存存储器122,还可以进一步包括只读存储器(ROM)123。
存储单元12还可以包括具有一组(至少一个)程序模块124的程序/实用工具125,这样的程序模块124包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算装置10也可以与一个或多个外部设备14(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与计算装置10交互的设备通信,和/或与使得该计算装置10能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口15进行。并且,计算装置10还可以通过网络适配器16与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器16通过总线13与用于计算装置10的其它模块通信。应当理解,尽管图中未示出,可以结合计算装置10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
本发明实施例提供的最坏执行时间WCET的确定方法的应用场景为,在上述计算装置10上开发模拟环境,基于该模拟环境,获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;然后确定是否满足程序运行结束条件;在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;且在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足程序运行结束条件,直至确定出满足程序运行结束条件;然后,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。采用上述方法,通过在模拟环境下模拟处理器的指令模拟运行所述符号文件中的代码来确定每次运行所述符号文件中的代码的运行时间,无需依赖该程序的硬件即可确定出运行时间;此外,为了保证确定出的最坏执行时间的准确性,本发明中通过设置程序运行结束条件,在不满足上述程序运行结束条件时,则继续再模拟环境下运行所述符号文件中的代码并确定运行所述符号文件中的代码的运行时间,这样一来,基于历次确定出的运行所述符号文件中的代码的运行时间,来确定所述编译后的程序的最坏执行时间WCET,使得确定出的最坏执行时间准确度比较高,而且无需依赖该程序的硬件;再者,本发明无需关注编译后的程序的符号文件中的分支,直接基于模拟环境来确定程序的最坏执行时间WCET,有效降低了确定最坏执行时间WCET的计算复杂度,且由于模拟运行了符号文件的代码,故基于此得到的程序的最坏执行时间WCET可靠性更高。
下面结合图1和上述描述的应用场景,参考图2-图11来描述根据本发明示例性实施方式提供的最坏执行时间WCET的确定方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图2所示,为本发明实施例提供的最坏执行时间WCET的确定方法的流程示意图,可以包括以下步骤:
S21、获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中。
本步骤中,在获取到编译后的程序的符号文件后,将上述符号文件加载的模拟环境中,该模拟环境为预先在计算装置10上开发的,为了实施本发明提供的方法,预先向计算装置10申请模拟内存,然后将符号文件加载的模拟内存中,为模拟运行该符号文件提供保障。
具体地,可以按照图3所示的方法将符号文件加载到模拟内存中,包括以下步骤:
S31、确定符号文件中代码和数据的物理地址。
实际应用中,在对程序执行编译处理后,一般会生成两个文件,分别为符号文件和二进制bin文件,而符号文件中包含全局变量、数据和物理地址,因此基于该符号文件可以确定出代码和数据的物理地址。
S32、根据物理地址与模拟地址的对应关系,确定所述符号文件中代码的物理地址对应的模拟地址,以及确定所述符号文件中数据的物理地址对应的模拟地址。
具体地,本发明中的模拟地址为预先申请的模拟内存的地址,然后可以配置物理地址与模拟地址的对应关系,然后基于该对应关系确定出符号中代码的物理地址对应的模拟地址,及确定出符号文件中数据的物理地址对应的模拟地址。
例如,可以先确定出符号文件包含的物理地址,然后确定申请的模拟内存的模拟地址,确定模拟地址与物理地址之间的偏移,以数组加偏移的形式对应到模拟地址上,由此将物理地址与模拟地址进行一一对应,这样,即可建立物理地址与模拟地址之间的对应关系。例如,符号文件的物理地址为0x01~0x0F,申请的模拟内存的模拟地址为0x31~0x3F,则可以将最小的物理地址对应最小的模拟地址,即:0x01对应0x31,以此类推,0x02对应0x32,……,0x0F对应0x3F,由此就建立的物理地址与模拟地址的对应关系。但实际应用中申请的模拟内存的模拟地址可能是间断的,也可以确定模拟地址与物理地址之间的偏移,然后以物理地址加偏移的方式确定出该物理地址对应的模拟地址。
S33、根据确定出的代码的模拟地址,将所述符号文件中的代码加载到代码的模拟地址对应的模拟内存中。
S34、根据确定出的数据的模拟地址,将所述符号文件中的数据加载到数据的模拟地址对应的模拟内存中。
步骤S33和S34中,在确定出符号文件中所有代码的物理地址对应的模拟地址后,为了在模拟环境中运行该代码,需要将该符号文件中的所有代码构成的代码段加载的代码的模拟地址对应的模拟内存中。同样,需要将该符号文件中的所有数据构成的数据段加载到数据的模拟地址对应的模拟内存中。
S22、确定是否满足程序运行结束条件,若是则执行步骤S26;若否,则执行步骤S23。
具体地,为了准确地确定程序的最坏执行时间,本发明设置了程序运行结束条件,该程序运行结束条件可以为循环次数,具体实施时,该循环次数可以根据实际情况而定。以程序为飞控系统中的程序为例进行说明,飞控系统一般以15毫秒为周期,以实际运行1小时为参考,则循环次数可以设置为1*60*60*1000/15=240000次。
S23、基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码。
具体地,当时间参考量只有一个时,基于该时间参考量模拟处理器的指令来运行加载到模拟内存中的符号文件中的代码。
S24、确定本次运行所述符号文件中的代码是否运行结束,若是,则执行步骤S25;否则继续执行步骤S23。
由于不同的程序的符号文件中的代码条数不同,故运行符号文件的代码的运行时间也有所不同,但每一符号文件有自己的结束标识,基于该符号文件的代码结束标识即可确定是符号文件中的是否运行结束,若运行结束则可以确定出本次模拟处理器的指令来运行符号文件中的代码的运行时间,否则继续模拟处理器的指令来运行符号文件中的代码。需要说明的是,本发明中的结束标识可以为代码的结束地址等等。
S25、确定本次运行所述符号文件中的代码的运行时间,并继续执行步骤S22。
本步骤中,在本次模拟处理器的指令来运行符号文件中的代码时,待运行结束时,即可根据处理器的指令执行数量来确定本次运行符号文件中的代码的运行时间,后续详细介绍之。
S26、基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
具体实施时,可以按照图4所示的流程执行步骤S26,包括以下步骤:
S41、确定历次确定出的运行所述符号文件中的代码的运行时间中最长的运行时间。
S42、将所述最长的运行时间确定为所述编译后的程序的最坏执行时间WCET。
图4所示的流程中,由于本发明中设置了程序运行结束条件,当程序运行结束条件为循环次数时,也就是说每循环一次模拟运行一次符号文件中的代码,同时得到该次运行符号文件中的代码的运行时间,从而可以得出当达到循环次数时,则可以得到与循环次数相同数量个运行符号文件中的代码的运行时间,即:本发明中的历次确定出的运行时间,然后基于历次确定出的运行时间确定最长的运行时间,然后将确定出的最长的运行时间确定为该程序的最坏执行时间。例如,循环次数设置为240000次,则可以确定出24000个运行时间,然后基于这24000个运行时间确定最长的运行时间,将确定出的最长的运行时间确定为程序的最坏执行时间。
值得注意的是,在实际应用中,程序中可能存在多种对时间影响的关键性变量,也即本发明中的时间参考量,而设置不同的时间参考量时符号文件中的代码的运行时间也是不同的,进而确定出的WCET也是不同的。因此,当编译后的程序包含多个时间参考量时,则可以按照图5所示的流程实施步骤S26,包括以下步骤:
S51、在确定出满足程序运行结束条件时,重新配置时间参考量,并重置所述程序运行结束条件。
本步骤中,预先基于符号文件中的全局变量确定出对时间影响比较大的时间参考量,然后针对每一时间参考量,对该参考量的临界值进行设置,然后在该时间参考量下实施图2所示的流程,当基于该时间参考量达到程序运行结束条件后,存储基于该时间参考量确定出的历次运行符号文件中的代码的运行时间,然后重新配置时间参考量,然后重置程序运行结束条件,并基于重新配置的时间参考量和重置的程序运行结束条件继续模拟处理器的指令来运行符号文件中的代码。
具体地,本发明中的时间参考量可以为符号文件的工作模式,还以飞控系统为例进行说明,飞控系统的程序的时间参考量可以为地面模式和空中模式,在地面模式下运行的符号文件中的代码与在空中模式下运行的符号文件中的代码是不相同的,但本发明中旨在确定出程序的最坏执行时间WCET,故要遍历各个模式,然后确定各个模式下模拟运行符号文件中的代码的运行时间,基于此最终确定出的最坏执行时间才能更准确可靠。
S52、确定是否满足重置的程序运行结束条件,若否,则执行步骤S53;若是,则执行步骤S55。
本步骤中,当程序运行结束条件为循环次数时,则重置程序运行结束条件可以理解为当前累积的循环次数清零,从0开始继续判断是否满足程序运行结束条件,当不满足时基于重新配置的时间参考量,继续模拟处理器的指令来运行符号文件中的代码。
S53、基于重新配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码。
S54、基于重新配置的时间参考量,确定历次运行所述符号文件中的代码的运行时间,并继续执行步骤S52。
步骤S53和步骤S54中,由于时间参考量发生了改变,导致模拟处理器的指令运行符号文件中的代码时也会发生改变,故需要确定在重新配置的时间参考量下模拟运行符号文件中的代码的运行时间。
具体地,还以程序结束条件为循环次数为例进行说明,基于重新配置的时间参考量在模拟运行符号文件中的代码后,确定出本次运行符号文件中的代码的运行时间后,可以继续确定是否达到循环次数,若未达到,则继续模拟处理器的指令来运行符号文件中的代码,同时在代码运行结束时确定该次运行符号文件中的代码的运行时间,从而可以确定出与循环次数相同数量个运行时间。
若还具有时间参考量,则再次实施图5所示的流程,在此不再详细赘述。
S55、基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
通过实施图2和图5所示的流程,可以确定出该程序在各个时间参考量下确定出的各次运行符号文件中的代码的运行时间,然后基于各次确定出的运行时间来确定上述程序的最坏执行时间。
较佳地,可以按照图6所示的流程执行步骤S55,包括以下步骤:
S61、确定基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间中的最长运行时间。
本步骤中,还以程序运行结束条件为循环次数,且循环次数为m次,及具有n个时间参考量为例进行说明,则基于每一个时间参考量可以得到m个运行符号文件中的代码的运行时间,则基于n个时间参考量可以得到m*n个运行时间,然后确定m*n个运行时间中的最长的运行时间。
S62、将确定出的最长运行时间确定为所述编译后的程序的最坏执行时间WCET。
本步骤中,在基于步骤S61确定出最长的运行时间后,将该最长的运行时间确定为该程序的最坏执行时间。
较佳地,可以按照图7所示的流程执行步骤S23或者执行步骤S53,包括以下步骤:
S71、确定符号文件中任务的入口地址和任务的结束地址。
本步骤中,程序一般包含两部分,初始化部分和任务部分,所谓初始化部分一般为定义全局变量的过程,任务部分为期望达到某个结果的算法,一般为函数本体。因此,可以根据符号文件中全局变量,确定符号文件中任务的入口地址和任务的结束地址,可以理解为函数本地的首地址和末地址等等。
S72、从所述任务的入口地址开始,模拟处理器的指令运行所述符号文件中的代码,直至运行到所述任务的结束地址为止。
本步骤中,在确定出符号文件中任务的入口地址和结束地址后,基于物理地址与模拟地址的对应关系,确定任务的入口地址对应的模拟入口地址,以及任务的结束地址对应的模拟结束地址,然后从模拟入口地址开始,模拟处理器的指令运行符号文件模拟入口地址与模拟结束地址之间的代码,直到运行到模拟结束地址对应的代码为止。
具体地,由于本发明设置了程序运行结束条件,在达到程序运行结束条件时,会模拟运行多次符号文件中的代码,而基于同一个时间参考量,每执行一次符号文件中的代码后,会到达一个全新的状态,例如相关变量或数据会被改变,但任务的入口地址和结束地址不会改变,因此,本发明提出,针对每一次模拟处理器的指令运行符号文件中的代码时,基于上一次的运行状态,从任务的入口地址开始模拟处理器的指令来运行符号文件中的该入口地址对应的代码,直至运行至任务的结束地址对应的代码为止。
具体地,可以按照图8所示的流程确定运行所述符号文件的代码的运行时间,包括以下步骤:
S81、确定运行所述符号文件的代码时使用的处理器的指令数量。
具体地,在模拟处理器的指令运行符号文件中的代码时,可以统计运行符号文件中的代码所消耗的处理器的指令数量,即:模拟运行任务的入口地址与任务的结束地址之间的代码所消耗的处理器的指令数量。一般情况下,汇编的一行代码对应一条指令。
S82、确定处理器的指令执行周期和所述处理器的指令数量的乘积为运行所述符号文件的代码的运行时间。
具体地,针对每一次运行符号文件中的代码,在基于步骤S81确定出该次运行所消耗的处理器的指令数量后,可以将处理器的指令执行周期与所消耗的处理器的指令数量的乘积确定为运行该次符号文件中的代码的运行时间。
优选地,在执行步骤S21之后,以及在执行步骤S23之前,还包括图9所示的流程,可以包括以下步骤:
S91、确定所述符号文件的初始化入口地址和初始化结束地址。
S92、从初始化入口地址开始,模拟处理器指令的运行对所述符号文件进行初始化处理,直至运行到所述初始化结束地址为止。
具体地,为了保证程序中任务的成功执行,一般会对程序中的全局变量进行初始化,故本发明中在将符号文件加载到模拟内存中,也要在模拟环境下模拟任务的初始化过程,即:根据符号文件中的全局变量确定符号文件的初始化入口地址和初始化结束地址,然后确定初始化入口地址对应的初始化模拟入口地址和初始化结束地址对应的初始化模拟结束地址,然后从初始化模拟入口地址开始,模拟处理器的指令对符号文件进行初始化,直至运行到初始化模拟结束地址为止,也就是说,模拟处理器的指令来运行初始化模拟入口地址与初始化模拟结束地址之间的代码,完成对符号文件的初始化。
本发明提供的最坏执行时间WCET的确定方法,获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;确定是否满足程序运行结束条件;在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足程序运行结束条件;在确定出满足程序运行结束条件时,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。采用上述方法,由于本发明在模拟环境下模拟处理器的指令来运行符号文件中的代码,无需基于程序研发出硬件后再基于该硬件确定该程序的WCET;此外,本发明无需对程序的分支进行分析,直接模拟处理器的指令来运行符号文件中的代码,同时确定运行符号文件中的代码的运行时间,进而基于历次确定出的运行时间来确定程序的WCET,使得确定出的WCET结果准确且可靠,同时计算复杂度低。
基于同一发明构思,本发明实施例中还提供了一种最坏执行时间WCET的确定装置,由于上述装置解决问题的原理与最坏执行时间WCET的确定方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图10所示,为本发明实施例提供的最坏执行时间WCET的确定装置的结构示意图,包括:
加载单元101,用于获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;
判断单元102,用于确定是否满足程序运行结束条件;
模拟运行单元103,用于在所述判断单元102判断结果为否时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;
第一确定单元104,用于在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间;
所述判断单元102,用于继续执行确定是否满足程序运行结束条件;
第二确定单元105,用于所述判断单元102判断结果为是时,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
较佳地,若所述编译后的程序包括多个时间参考量,则
所述第二确定单元105,具体用于在确定出满足程序运行结束条件时,重新配置时间参考量,并重置所述程序运行结束条件;在确定出未满足重置的程序运行结束条件时,基于重新配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码,并基于重新配置的时间参考量,确定历次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足重置的程序运行结束条件;基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
较佳地,所述第二确定单元105,具体用于确定历次确定出的运行所述符号文件中的代码的运行时间中最长的运行时间;将所述最长的运行时间确定为所述编译后的程序的最坏执行时间WCET。
优选地,所述第二确定单元105,具体用于确定基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间中的最长运行时间;将确定出的最长运行时间确定为所述编译后的程序的最坏执行时间WCET。
可选地,所述第一确定单元104,具体用于确定运行所述符号文件的代码时使用的处理器的指令数量;确定处理器的指令执行周期和所述处理器的指令数量的乘积为运行所述符号文件的代码的运行时间。
优选地,所述加载单元101,具体用于确定所述符号文件中代码和数据的物理地址;根据物理地址与模拟地址的对应关系,确定所述符号文件中代码的物理地址对应的模拟地址,以及确定所述符号文件中数据的物理地址对应的模拟地址;根据确定出的代码的模拟地址,将所述符号文件中的代码加载到代码的模拟地址对应的模拟内存中;根据确定出的数据的模拟地址,将所述符号文件中的数据加载到数据的模拟地址对应的模拟内存中。
优选地,所述模拟运行单元103,具体用于确定所述符号文件中任务的入口地址和任务的结束地址;从所述任务的入口地址开始,模拟处理器的指令运行所述符号文件中的代码,直至运行到所述任务的结束地址为止。
优选地,所述装置,还包括:
初始化处理单元106,用于在所述加载单元101将所述符号文件加载到模拟内存中之后,以及在所述判断单元102确定是否满足程序运行结束条件之前,确定所述符号文件的初始化入口地址和初始化结束地址;从初始化入口地址开始,模拟处理器指令的运行对所述符号文件进行初始化处理,直至运行到所述初始化结束地址为止。
为了描述的方便,以上各部分按照功能划分为各模块(或单元)分别描述。当然,在实施本发明时可以把各模块(或单元)的功能在同一个或多个软件或硬件中实现。
在介绍了本发明示例性实施方式的最坏执行时间WCET的确定方法、装置和可读介质之后,基于相同的技术构思,本申请实施例还提供了一种通信装置,该通信装置可实现前述实施例中的方法。
参见图11,为本发明实施例提供的通信装置的结构示意图,如图11所示,该通信装置可包括:处理器1101、存储器1102、收发机1103以及总线接口。
处理器1101负责管理总线架构和通常的处理,存储器1102可以存储处理器1101在执行操作时所使用的数据。收发机1103用于在处理器1101的控制下接收和发送数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器1101代表的一个或多个处理器和存储器1102代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器1101负责管理总线架构和通常的处理,存储器1102可以存储处理器1101在执行操作时所使用的数据。
本发明实施例揭示的流程,可以应用于处理器1101中,或者由处理器1101实现。在实现过程中,信号处理流程的各步骤可以通过处理器1101中的硬件的集成逻辑电路或者软件形式的指令完成。处理器1101可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的最坏执行时间WCET的确定的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1102,处理器1101读取存储器1102中的信息,结合其硬件完成信号处理流程的步骤。
具体地,所述处理器1101,用于读取存储器中的程序,执行上述任一方法所述的任一步骤。
基于相同的技术构思,本申请实施例还提供了一种计算机存储介质。所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行前述任一方法所述的任一步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种最坏执行时间WCET的确定方法,其特征在于,包括:
获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;
确定是否满足程序运行结束条件;
在确定出未满足程序运行结束条件时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;
在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足程序运行结束条件;
若所述编译后的程序包括多个时间参考量,则在确定出满足程序运行结束条件时,重新配置时间参考量,并重置所述程序运行结束条件;
在确定出未满足重置的程序运行结束条件时,基于重新配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码,并基于重新配置的时间参考量,确定历次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足重置的程序运行结束条件;
基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
2.如权利要求1所述的方法,其特征在于,基于历次确定出的运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET,具体包括:
确定历次确定出的运行所述符号文件中的代码的运行时间中最长的运行时间;
将所述最长的运行时间确定为所述编译后的程序的最坏执行时间WCET。
3.如权利要求1所述的方法,其特征在于,基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET,具体包括:
确定基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间中的最长运行时间;
将确定出的最长运行时间确定为所述编译后的程序的最坏执行时间WCET。
4.如权利要求1~3任一所述的方法,其特征在于,按照下述方法确定运行所述符号文件的代码的运行时间:
确定运行所述符号文件的代码时使用的处理器的指令数量;
确定处理器的指令执行周期和所述处理器的指令数量的乘积为运行所述符号文件的代码的运行时间。
5.一种最坏执行时间WCET的确定装置,其特征在于,包括:
加载单元,用于获取编译后的程序的符号文件,并将所述符号文件加载到模拟内存中;
判断单元,用于确定是否满足程序运行结束条件;
模拟运行单元,用于在所述判断单元判断结果为否时,基于当前配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码;
第一确定单元,用于在本次代码运行结束时,确定本次运行所述符号文件中的代码的运行时间;
所述判断单元,用于继续执行确定是否满足程序运行结束条件;
若所述编译后的程序包括多个时间参考量,则第二确定单元,具体用于在确定出满足程序运行结束条件时,重新配置时间参考量,并重置所述程序运行结束条件;在确定出未满足重置的程序运行结束条件时,基于重新配置的时间参考量,模拟处理器的指令运行所述符号文件中的代码,并基于重新配置的时间参考量,确定历次运行所述符号文件中的代码的运行时间,并继续执行确定是否满足重置的程序运行结束条件;基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间,确定所述编译后的程序的最坏执行时间WCET。
6.如权利要求5所述的装置,其特征在于,
所述第二确定单元,具体用于确定历次确定出的运行所述符号文件中的代码的运行时间中最长的运行时间;将所述最长的运行时间确定为所述编译后的程序的最坏执行时间WCET。
7.如权利要求5所述的装置,其特征在于,
所述第二确定单元,具体用于确定基于各个时间参考量确定出的各次运行所述符号文件中的代码的运行时间中的最长运行时间;将确定出的最长运行时间确定为所述编译后的程序的最坏执行时间WCET。
8.如权利要求5-7任一所述的装置,其特征在于,
所述第一确定单元,具体用于确定运行所述符号文件的代码时使用的处理器的指令数量;确定处理器的指令执行周期和所述处理器的指令数量的乘积为运行所述符号文件的代码的运行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438591.5A CN109558141B (zh) | 2018-11-28 | 2018-11-28 | 一种最坏执行时间wcet的确定方法、装置和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811438591.5A CN109558141B (zh) | 2018-11-28 | 2018-11-28 | 一种最坏执行时间wcet的确定方法、装置和可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109558141A CN109558141A (zh) | 2019-04-02 |
CN109558141B true CN109558141B (zh) | 2022-05-13 |
Family
ID=65867836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811438591.5A Active CN109558141B (zh) | 2018-11-28 | 2018-11-28 | 一种最坏执行时间wcet的确定方法、装置和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109558141B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450361B (zh) * | 2023-05-23 | 2023-09-29 | 南京芯驰半导体科技有限公司 | 一种内存预测方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520984A (zh) * | 2011-11-29 | 2012-06-27 | 北京广利核系统工程有限公司 | 目标软件在指定硬件环境中最差时间的计算方法 |
CN104391684A (zh) * | 2014-09-03 | 2015-03-04 | 洛阳理工学院 | 一种精确分析任务wcet的自动化方法 |
CN104407968A (zh) * | 2014-10-30 | 2015-03-11 | 北京控制工程研究所 | 一种通过静态分析测算代码指令最长运行时间的方法 |
CN104572103A (zh) * | 2015-01-08 | 2015-04-29 | 西安空间无线电技术研究所 | 一种基于分布函数的wcet快速估计方法 |
KR20170020251A (ko) * | 2015-08-12 | 2017-02-22 | 충남대학교산학협력단 | 테스트 기법을 이용한 최악 실행 시간 측정 시스템 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2610773A1 (de) * | 2011-12-28 | 2013-07-03 | Siemens Aktiengesellschaft | Verfahren zum Herstellen einer Hardwareeinrichtung und Hardwareeinrichtung |
CN103207772B (zh) * | 2013-04-07 | 2016-01-13 | 北京航空航天大学 | 一种优化实时任务wcet的指令预取内容选取方法 |
CN106708536A (zh) * | 2017-01-12 | 2017-05-24 | 南京大学 | 一种中断驱动系统程序生成和分析方法 |
-
2018
- 2018-11-28 CN CN201811438591.5A patent/CN109558141B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102520984A (zh) * | 2011-11-29 | 2012-06-27 | 北京广利核系统工程有限公司 | 目标软件在指定硬件环境中最差时间的计算方法 |
CN104391684A (zh) * | 2014-09-03 | 2015-03-04 | 洛阳理工学院 | 一种精确分析任务wcet的自动化方法 |
CN104407968A (zh) * | 2014-10-30 | 2015-03-11 | 北京控制工程研究所 | 一种通过静态分析测算代码指令最长运行时间的方法 |
CN104572103A (zh) * | 2015-01-08 | 2015-04-29 | 西安空间无线电技术研究所 | 一种基于分布函数的wcet快速估计方法 |
KR20170020251A (ko) * | 2015-08-12 | 2017-02-22 | 충남대학교산학협력단 | 테스트 기법을 이용한 최악 실행 시간 측정 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN109558141A (zh) | 2019-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10360322B2 (en) | Simulation of virtual processors | |
US20160378550A1 (en) | Optimization of application workflow in mobile embedded devices | |
CN113835945B (zh) | 芯片的测试方法、装置、设备及系统 | |
CN112068852B (zh) | 基于国产服务器的开源软件安装方法、系统及设备和介质 | |
CN104750620A (zh) | 一种内存迁移方法及装置 | |
US10740257B2 (en) | Managing accelerators in application-specific integrated circuits | |
US20130013283A1 (en) | Distributed multi-pass microarchitecture simulation | |
CN109558141B (zh) | 一种最坏执行时间wcet的确定方法、装置和可读介质 | |
CN113420520B (zh) | 集成电路装置设计仿真方法、装置、设备和可读存储介质 | |
US10719903B2 (en) | On-the fly scheduling of execution of dynamic hardware behaviors | |
US10540737B2 (en) | Processing unit performance projection using dynamic hardware behaviors | |
US9977417B2 (en) | Method for optimizing utilization of programmable logic elements in control units for vehicles | |
CN102520984A (zh) | 目标软件在指定硬件环境中最差时间的计算方法 | |
CN113743040B (zh) | 测试方法、装置、电子设备以及可读存储介质 | |
US9069900B2 (en) | Method for determining whether a machine code instruction of a machine code program is executed in the machine code program | |
WO2022235305A1 (en) | Systems and methods for processor monitoring and recovery | |
CN117242457A (zh) | 定位神经网络性能热点 | |
US20110282820A1 (en) | Dynamic backjumping in constraint satisfaction problem solving | |
US10671780B2 (en) | Information processing device that executes simulation and a simulation method | |
US8521502B2 (en) | Passing non-architected registers via a callback/advance mechanism in a simulator environment | |
CN112445607A (zh) | 一种应用程序执行方法函数的方法及装置 | |
KR102457183B1 (ko) | 공유 번역 블록 캐시 기반의 멀티-코어 시뮬레이션 시스템 및 방법 | |
US20190384687A1 (en) | Information processing device, information processing method, and computer readable medium | |
US9633147B1 (en) | Power state coverage metric and method for estimating the same | |
US11550580B2 (en) | Systems and methods for emulating a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190402 Assignee: Kedong (Guangzhou) Software Technology Co., Ltd Assignor: Beijing Dongtu Technology Co., Ltd.|Beijing keyin Jingcheng Technology Co., Ltd Contract record no.: X2020980000255 Denomination of invention: Worst execution time WCET determination method and device and readable medium License type: Exclusive License Record date: 20200218 |
|
EE01 | Entry into force of recordation of patent licensing contract | ||
GR01 | Patent grant | ||
GR01 | Patent grant |