法律状态公告日
法律状态信息
法律状态
2022-08-16
实质审查的生效 IPC(主分类):G06F30/3312 专利申请号:2022102350273 申请日:20220311
实质审查的生效
技术领域
本发明涉及计算机应用技术领域,特别涉及一种基于蒙特卡罗仿真的嵌入式系统时序分析方法。
背景技术
嵌入式系统时序分析对于系统设计、任务调度、中断处理和资源管理具有重要参考价值。高效的分析方法能够提高系统利用率、降低系统复杂程度和提高系统可靠性。仿真分析方法因分析精度高、描述能力强被广泛使用。而传统的仿真分析方法中,系统模型都是采用单一数值,例如典型值或者最坏情况数值,分析结果也只能给出是否满足时序约束的结论,一方面参考价值相对片面,另一方面分析结果过于保守,导致系统利用率低,甚至对于满足时序要求的运行场景,反而会得出不满足时序要求的结论。
发明内容
要解决的技术问题
为了解决上述问题,本发明采用概率模型替代原有的单一数值模型,更加精确描述系统中各个时间参数,并采用蒙特卡洛仿真方法,给出系统时序分析的量化分析结果,给出系统满足时序约束的阈值,提高系统利用率。
技术方案
一种基于蒙特卡罗仿真的嵌入式系统时序分析方法,其特征在于步骤如下:
步骤1:定义处理器模型
系统中所有处理器的集合P={ρ
步骤2:定义周期任务模型
系统中所有的周期任务的集合Γ={τ
步骤3:定义中断模型
系统中中断服务程序的集合I={ξ
步骤4:仿真步长计算
根据系统中不同处理器的频率来计算仿真步长,计算方法如下:
simStep=1/LCM(CR
其中,simStep表示系统仿真步长,LCM(CR
步骤5:仿真总时长计算
系统仿真步长可以根据系统中任务的超周期来定义,计算方法如下:
simTime=LCM(T
其中simTime表示仿真时长,LCM(T
步骤6:时序约束定义
在仿真分析过程中分析两个方面的时序约束:可调度性和任务依赖关系;
对于每一个单独的任务,可调度性的约束条件为:RT
步骤7:任务调度算法仿真
对于抢占式调度算法,调度器根据处理器当前所处的状态执行不同的操作,中断优先级高于所有任务的优先级,当系统处于中断执行状态时只需要考虑中断等待队列和中断嵌套队列;当处理器处于任务执行状态和空闲状态时需要考虑中断等待队列、中断嵌套队列、作业就绪队列;上下文切换状态、中断保存状态、中断恢复状态不能被打断,必须等待当前状态执行结束才能切换处理器状态,当处理器处于以上三种状态时调度器不执行;
步骤8:构造嵌入式系统时间参数的概率模型
对于系统中任务和中断相关的时间值,采用测量和统计分析的方法获得各个时间参数的范围和所服从的分布,其中需要使用概率分布描述的参数包括:任务的周期T
步骤9:对时间参数进行随机抽样
在每次仿真时,根据步骤8中获得的时间参数概率分布函数,随机生成一个时间值,作为本次仿真的输入,随机生成的时间参数包括:任务的周期T
步骤10:时序分析结果计算
设置仿真总次数K、仿真步长simStep和每次仿真时长simTime,开始仿真时,判断是否到达仿真次数K,如果到达则停止仿真;如未到达仿真次数则本次仿真时长加一,然后判断是否到达单次仿真总时长,如果到达则进行下次仿真;如未到达单次仿真时长则判断处理器状态,分别执行对应的仿真策略,对于空闲状态、中断执行状态和任务执行状态,对应步骤七中的调度仿真,对于另外三种状态,调度器不执行任何操作;按照该方式直到完成预定次数的仿真;
根据仿真得出的结果,分别计算任务可调度概率和任务依赖关系满足的概率;针对系统中每一个任务τ
有益效果
本发明提出的一种基于蒙特卡罗仿真的嵌入式系统时序分析方法,使用概率模型替代传统确定性模型,相比较原有的单一数值参数,该模型能够实现对任务参数所在时间区间的描述,不再是单一时间点的描述;传统的分析方法仅仅是仿真得出某一个应用场景的运行结果,使用蒙特卡罗仿真能够得到所有运行场景的分析结果,并提供满足约束条件的概率值,给出量化分析结果。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1嵌入式系统时序仿真分析流程图;
图2处理器处于空闲状态时调度器的调度仿真策略;
图3处理器处于中断执行状态时调度器的调度策略;
图4处理器处于任务执行状态时调度器的调度策略。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
蒙特卡罗仿真方法又称为统计模拟方法,使用随机数来进行场景的模拟或者过程的仿真,其核心思想是通过大量的样本值不断逼近研究对象的分析结果。本发明将其应用在嵌入式系统时序仿真分析中。
首先建立系统中任务和中断的模型,对于其中的时间参数,采用分布函数和时间区间的方式进行描述,然后根据系统中所有的处理器时钟频率计算得出仿真步长,根据系统中所有任务的周期计算得出单次仿真总时长,并定义系统时序约束,包括任务可调度性约束和任务依赖关系约束。在仿真过程中,将处理器划分为六种状态,并根据不同的状态执行不同的仿真操作,最后根据蒙特卡罗方法计算得出系统中所有任务满足可调度性的概率和满足任务依赖关系的概率。
参照图1-4,本发明关于分区实时操作系统的分区实现方法步骤如下:
步骤一、定义处理器模型。
系统中所有处理器的集合P={ρ
步骤二、定义周期任务模型。
系统中所有的周期任务的集合Γ={τ
步骤三、定义中断模型。
系统中中断服务程序的集合I={ξ
步骤四、仿真步长计算。
根据系统中不同处理器的频率来计算仿真步长,计算方法如下:
simStep=1/LCM(CR
其中,simStep表示系统仿真步长,LCM(CR
步骤五、仿真总时长计算。
系统仿真步长可以根据系统中任务的超周期来定义,计算方法如下:
simTime=LCM(T
其中simTime表示仿真时长,LCM(T
步骤六、时序约束定义。
在仿真分析过程中分析两个方面的时序约束:可调度性和任务依赖关系。
对于每一个单独的任务,可调度性的约束条件为:RT
步骤七、任务调度算法仿真。
对于抢占式调度算法,调度器根据处理器当前所处的状态执行不同的操作,中断优先级高于所有任务的优先级,当系统处于中断执行状态时只需要考虑中断等待队列和中断嵌套队列;当处理器处于任务执行状态和空闲状态时需要考虑中断等待队列、中断嵌套队列、作业就绪队列;上下文切换状态、中断保存状态、中断恢复状态不能被打断,必须等待当前状态执行结束才能切换处理器状态,当处理器处于以上三种状态时调度器不执行。具体过程参见图2-4。
步骤八、构造嵌入式系统时间参数的概率模型。
对于系统中任务和中断相关的时间值,采用测量和统计分析的方法获得各个时间参数的范围和所服从的分布,其中需要使用概率分布描述的参数包括:任务的周期T
步骤九、对时间参数进行随机抽样。
在每次仿真时,根据步骤八中获得的时间参数概率分布函数,随机生成一个时间值,作为本次仿真的输入,随机生成的时间参数包括:任务的周期T
步骤十、时序分析结果计算
设置仿真总次数K、仿真步长simStep和每次仿真时长simTime,开始仿真时,判断是否到达仿真次数K,如果到达则停止仿真;如未到达仿真次数则本次仿真时长加一,然后判断是否到达单次仿真总时长,如果到达则进行下次仿真;如未到达单次仿真时长则判断处理器状态,分别执行对应的仿真策略,对于空闲状态、中断执行状态和任务执行状态,对应步骤七中的调度仿真,对于另外三种状态,调度器不执行任何操作。按照该方式直到完成预定次数的仿真。
根据仿真得出的结果,分别计算任务可调度概率和任务依赖关系满足的概率。针对系统中每一个任务τ
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。
机译: 蒙特卡罗器件仿真方法和用于执行相同方法的蒙特卡罗器件仿真程序
机译: 基于AI规划的概率拟蒙特卡罗仿真方法
机译: 优化量子蒙特卡罗仿真方法在复杂磁系统研究中的应用