一种基于处理器流水线分析的时间和时序校准方法及装置制造方法及图纸

技术编号:29672260 阅读:15 留言:0更新日期:2021-08-13 21:53
本公开涉及一种基于处理器流水线分析的时间和时序校准方法及装置,该方法包括:识别仿真运行程序的多个基本块;根据处理器流水线,分析各基本块的第一执行时间,多个基本块的第一执行时间形成执行时间查询表;将仿真运行程序装载至预设仿真器,每当仿真器执行完成一条指令时,根据最新完成的当前指令和时间更新操作更新仿真器执行的逻辑时间,该时间更新操作包括:记录程序执行轨迹;确定与程序执行轨迹相匹配的基本块,并按照程序执行轨迹将确定的匹配基本块排列为基本块序列;根据执行时间查询表确定基本块序列对应的执行时间序列;基于执行时间序列确定仿真器执行的逻辑时间。本公开能够降低仿真时间与实际时间之间的计时误差。

【技术实现步骤摘要】
一种基于处理器流水线分析的时间和时序校准方法及装置
本公开涉及计算机
,尤其涉及一种基于处理器流水线分析的时间和时序校准方法及装置。
技术介绍
基于仿真虚拟环境的嵌入式系统设计与开发,是一种全新的敏捷开发模式,能在脱离物理硬件的虚拟平台上,有效支持系统设计人员进行系统定义、设计评估、软件开发、测试验证、集成和部署。在全数字计算机仿真系统中,保证仿真系统的时间和时序关系与实际系统一致是一个重大挑战。在现有的仿真虚拟环境中,缺乏可以依赖的时间基准,例如硬件晶振。同时,仿真过程中,运行时间被极大的延缓,不同指令由于仿真步骤不同,时间延缓步长也有较大差异。因此,无法直接将主机时间作为仿真时间的基准,如何保证仿真时间与时序的一致性已经成为全数字仿真验证的关键技术。传统的全数字仿真系统利用指令集架构手册给出的指令执行周期作为计时基准,也就是说将执行轨迹上每条指令执行的周期累加起来,形成当前系统的时间基准。但是这种方式获得的时间与实际系统时间之间具有较大偏差;根据试验结果,这种方式获取的时间与实际时间之间相差至少2倍以上,计时误差极大。
技术实现思路
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于处理器流水线分析的时间和时序校准方法及装置。本公开提供了一种基于处理器流水线分析的时间和时序校准方法,包括:识别仿真运行程序的多个基本块;根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作包括:记录所述仿真器执行完所述当前指令时的程序执行轨迹;从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;基于所述执行时间序列确定所述仿真器执行的逻辑时间。可选的,所述基于所述执行时间序列确定所述仿真器执行的逻辑时间,包括:获取所述基本块序列中排列在最后的末端基本块,所述末端基本块的最后一条指令为所述当前指令;根据所述末端基本块中第一条指令的取指时间和所述当前指令的写回时间,确定所述末端基本块的第二执行时间;基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间。可选的,所述基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间,包括:获取所述执行时间序列中,除所述末端基本块之外的其他各个基本块的第一执行时间;将其他各个基本块的第一执行时间与所述末端基本块的第二执行时间之间的时间之和,确定为所述仿真器执行的逻辑时间。可选的,所述根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,包括:根据处理器流水线,分析各所述基本块中各条指令的起点时间和完成时间;按照时间轴对各所述基本块中各条指令的起点时间和完成时间进行重叠排列;根据排列结果确定第一条指令的第一取值时间和最后一条指令的第一写回时间。可选的,所述根据分析的时间确定各所述基本块的第一执行时间,包括:针对各所述基本块,将该基本块对应的所述第一取值时间和所述第一写回时间之间的时间差值,确定为该基本块的第一执行时间。可选的,在确定任意一个所述基本块的第一执行时间之后,所述方法还包括:判断当前确定第一执行时间的基本块是否为最后一个基本块;如果是,则将多个所述基本块的第一执行时间形成所述执行时间查询表。可选的,所述识别仿真运行程序的多个基本块,包括:对仿真运行程序的所有指令进行反汇编识别,形成指令序列;识别所述指令序列中的分支指令和跳转指令;根据所述分支指令和所述跳转指令,将所述指令序列划分为多个基本块。本公开提供了一种基于处理器流水线分析的时间和时序校准装置,包括:识别模块,用于识别仿真运行程序的多个基本块;时间确定模块,用于根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;程序运行模块,用于将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;时间更新模块,用于每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作通过如下单元实现:轨迹记录单元,用于记录所述仿真器执行完所述当前指令时的程序执行轨迹;匹配单元,用于从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;时间对应单元,用于根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;逻辑时间确定单元,用于基于所述执行时间序列确定所述仿真器执行的逻辑时间。本公开提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一所述的方法。本公开提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的方法。本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的一种基于处理器流水线分析的时间和时序校准方法及装置,该方法包括:识别仿真运行程序的多个基本块;根据处理器流水线,分析各基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各基本块的第一执行时间;其中,多个基本块的第一执行时间形成执行时间查询表;将仿真运行程序装载至预设仿真器,并通过仿真器执行仿真运行程序中的指令;每当仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新仿真器执行的逻辑时间;其中,时间更新操作包括:记录仿真器执行完当前指令时的程序执行轨迹;从多个基本块中,确定至少一个与程序执行轨迹相匹配的基本块,按照程序执行轨迹将确定的匹配基本块排列为基本块序列;根据执行时间查询表确定基本块序列对应的执行时间序列;基于执行时间序列确定仿真器执行的逻辑时间。本公开能够降低仿真时间与实际时间之间的计时误差,提升确定仿真器执行时间的准确性。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获本文档来自技高网...

【技术保护点】
1.一种基于处理器流水线分析的时间和时序校准方法,其特征在于,包括:/n识别仿真运行程序的多个基本块;/n根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;/n将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;/n每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作包括:/n记录所述仿真器执行完所述当前指令时的程序执行轨迹;/n从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;/n根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;/n基于所述执行时间序列确定所述仿真器执行的逻辑时间。/n

【技术特征摘要】
1.一种基于处理器流水线分析的时间和时序校准方法,其特征在于,包括:
识别仿真运行程序的多个基本块;
根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;
将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;
每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作包括:
记录所述仿真器执行完所述当前指令时的程序执行轨迹;
从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;
根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;
基于所述执行时间序列确定所述仿真器执行的逻辑时间。


2.根据权利要求1所述的方法,其特征在于,所述基于所述执行时间序列确定所述仿真器执行的逻辑时间,包括:
获取所述基本块序列中排列在最后的末端基本块,所述末端基本块的最后一条指令为所述当前指令;
根据所述末端基本块中第一条指令的取指时间和所述当前指令的写回时间,确定所述末端基本块的第二执行时间;
基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间。


3.根据权利要求2所述的方法,其特征在于,所述基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间,包括:
获取所述执行时间序列中,除所述末端基本块之外的其他各个基本块的第一执行时间;
将其他各个基本块的第一执行时间与所述末端基本块的第二执行时间之间的时间之和,确定为所述仿真器执行的逻辑时间。


4.根据权利要求1所述的方法,其特征在于,所述根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,包括:
根据处理器流水线,分析各所述基本块中各条指令的起点时间和完成时间;
按照时间轴对各所述基本块中各条指令的起点时间和完成时间进行重叠排列;
根据排列结果确定第一条指令的第一取值时间和最后一条指令的第一写回时间。


5.根据权利要求4所述的方法,其特征在于,所述根据分析的时间确定各所述基本块的第一执行时间,...

【专利技术属性】
技术研发人员:赵国亮周启平景涛
申请(专利权)人:航天中认软件测评科技北京有限责任公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1