CN113254084A - 一种基于处理器流水线分析的时间和时序校准方法及装置 - Google Patents

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

Info

Publication number
CN113254084A
CN113254084A CN202110765305.1A CN202110765305A CN113254084A CN 113254084 A CN113254084 A CN 113254084A CN 202110765305 A CN202110765305 A CN 202110765305A CN 113254084 A CN113254084 A CN 113254084A
Authority
CN
China
Prior art keywords
time
execution
instruction
basic block
simulator
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.)
Granted
Application number
CN202110765305.1A
Other languages
English (en)
Other versions
CN113254084B (zh
Inventor
赵国亮
周启平
景涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Space Cqc Associate Software Testing And Evaluating Technology Beijing Co ltd
Original Assignee
Space Cqc Associate Software Testing And Evaluating Technology Beijing Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Space Cqc Associate Software Testing And Evaluating Technology Beijing Co ltd filed Critical Space Cqc Associate Software Testing And Evaluating Technology Beijing Co ltd
Priority to CN202110765305.1A priority Critical patent/CN113254084B/zh
Publication of CN113254084A publication Critical patent/CN113254084A/zh
Application granted granted Critical
Publication of CN113254084B publication Critical patent/CN113254084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种基于处理器流水线分析的时间和时序校准方法及装置
技术领域
本公开涉及计算机技术领域,尤其涉及一种基于处理器流水线分析的时间和时序校准方法及装置。
背景技术
基于仿真虚拟环境的嵌入式系统设计与开发,是一种全新的敏捷开发模式,能在脱离物理硬件的虚拟平台上,有效支持系统设计人员进行系统定义、设计评估、软件开发、测试验证、集成和部署。
在全数字计算机仿真系统中,保证仿真系统的时间和时序关系与实际系统一致是一个重大挑战。在现有的仿真虚拟环境中,缺乏可以依赖的时间基准,例如硬件晶振。同时,仿真过程中,运行时间被极大的延缓,不同指令由于仿真步骤不同,时间延缓步长也有较大差异。因此,无法直接将主机时间作为仿真时间的基准,如何保证仿真时间与时序的一致性已经成为全数字仿真验证的关键技术。
传统的全数字仿真系统利用指令集架构手册给出的指令执行周期作为计时基准,也就是说将执行轨迹上每条指令执行的周期累加起来,形成当前系统的时间基准。但是这种方式获得的时间与实际系统时间之间具有较大偏差;根据试验结果,这种方式获取的时间与实际时间之间相差至少2倍以上,计时误差极大。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种基于处理器流水线分析的时间和时序校准方法及装置。
本公开提供了一种基于处理器流水线分析的时间和时序校准方法,包括:
识别仿真运行程序的多个基本块;根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作包括:
记录所述仿真器执行完所述当前指令时的程序执行轨迹;从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;基于所述执行时间序列确定所述仿真器执行的逻辑时间。
可选的,所述基于所述执行时间序列确定所述仿真器执行的逻辑时间,包括:
获取所述基本块序列中排列在最后的末端基本块,所述末端基本块的最后一条指令为所述当前指令;根据所述末端基本块中第一条指令的取指时间和所述当前指令的写回时间,确定所述末端基本块的第二执行时间;基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间。
可选的,所述基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间,包括:
获取所述执行时间序列中,除所述末端基本块之外的其他各个基本块的第一执行时间;将其他各个基本块的第一执行时间与所述末端基本块的第二执行时间之间的时间之和,确定为所述仿真器执行的逻辑时间。
可选的,所述根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,包括:
根据处理器流水线,分析各所述基本块中各条指令的起点时间和完成时间;按照时间轴对各所述基本块中各条指令的起点时间和完成时间进行重叠排列;根据排列结果确定第一条指令的第一取值时间和最后一条指令的第一写回时间。
可选的,所述根据分析的时间确定各所述基本块的第一执行时间,包括:针对各所述基本块,将该基本块对应的所述第一取值时间和所述第一写回时间之间的时间差值,确定为该基本块的第一执行时间。
可选的,在确定任意一个所述基本块的第一执行时间之后,所述方法还包括:
判断当前确定第一执行时间的基本块是否为最后一个基本块;如果是,则将多个所述基本块的第一执行时间形成所述执行时间查询表。
可选的,所述识别仿真运行程序的多个基本块,包括:
对仿真运行程序的所有指令进行反汇编识别,形成指令序列;识别所述指令序列中的分支指令和跳转指令;根据所述分支指令和所述跳转指令,将所述指令序列划分为多个基本块。
本公开提供了一种基于处理器流水线分析的时间和时序校准装置,包括:
识别模块,用于识别仿真运行程序的多个基本块;时间确定模块,用于根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;程序运行模块,用于将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;时间更新模块,用于每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作通过如下单元实现:
轨迹记录单元,用于记录所述仿真器执行完所述当前指令时的程序执行轨迹;匹配单元,用于从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;时间对应单元,用于根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;逻辑时间确定单元,用于基于所述执行时间序列确定所述仿真器执行的逻辑时间。
本公开提供了一种电子设备,所述电子设备包括:
处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述任一所述的方法。
本公开提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的一种基于处理器流水线分析的时间和时序校准方法及装置,该方法包括:识别仿真运行程序的多个基本块;根据处理器流水线,分析各基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各基本块的第一执行时间;其中,多个基本块的第一执行时间形成执行时间查询表;将仿真运行程序装载至预设仿真器,并通过仿真器执行仿真运行程序中的指令;每当仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新仿真器执行的逻辑时间;其中,时间更新操作包括:记录仿真器执行完当前指令时的程序执行轨迹;从多个基本块中,确定至少一个与程序执行轨迹相匹配的基本块,按照程序执行轨迹将确定的匹配基本块排列为基本块序列;根据执行时间查询表确定基本块序列对应的执行时间序列;基于执行时间序列确定仿真器执行的逻辑时间。本公开能够降低仿真时间与实际时间之间的计时误差,提升确定仿真器执行时间的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例所述基于处理器流水线分析的时间和时序校准方法流程图;
图2为本公开实施例所述基于流水线的执行时间校准方式示意图;
图3为本公开实施例所述基于处理器流水线分析的时间和时序校准装置的结构示意图;
图4为本公开实施例所述电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
在基于仿真虚拟环境的嵌入式系统设计与开发过程中,如何保证仿真系统的时间和时序关系与实际系统的一致性,已经成为全数字仿真验证的关键技术。传统的全数字仿真系统利用指令集架构手册给出的指令执行周期作为计时基准,但是该方式获得的仿真时间与实际系统时间之间具有较大偏差。影响指令执行时间的最主要因素是处理器流水线机制,如果将相邻指令的各个阶段并行执行,可以极大地提高指令执行效率。流水线机制是CPU性能提升的关键技术之一,良好的流水线设计可将计算性能提升数倍。但是,流水线的性能提升并未被考虑进入仿真系统计时中;大部分仿真系统是将指令执行周期进行简单累加,这就使得仿真系统的计时时间和实际系统运行计时时间之间存在非常大的差异。进而,导致软件设计与开发过程中,与时间敏感和时序相关的任务测试有效性难以保障。
根据以上考虑,本公开基于处理器流水线分析,提供一种基于处理器流水线分析的时间和时序校准方法及装置。为便于理解,以下对本公开实施例进行详细介绍。
参照图1所示的一种基于处理器流水线分析的时间和时序校准方法流程图,该方法可以包括如下步骤:
步骤S101,识别仿真运行程序的多个基本块。基本块是指程序中顺序执行的指令序列。本实施例识别基本块的方式可以为:
先对仿真运行程序(下文简称为程序)的所有指令进行反汇编识别,形成指令序列;而后再识别指令序列中的分支指令和跳转指令;根据分支指令和跳转指令,将指令序列划分为多个基本块。具体的,上述分支指令和跳转指令可以作为入口指令,一个入口指令对应一个基本块;对于各个基本块,它是由入口指令到下一入口指令(不包含该下一入口指令)之间的指令序列组成。
仿真运行程序的多个基本块形成基本块表,每个基本块可以表示为b,基本块表可以表示为Blocks。
步骤S102,根据处理器流水线,分析各基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各基本块的第一执行时间;其中,多个基本块的第一执行时间形成执行时间查询表。流水线是指在处理器执行程序时,多条指令重叠进行操作的一种准并行处理实现技术。
本实施例根据处理器流水线对程序中的指令进行分析时,以基本块为单位,根据基本块中第一条指令的取指时间和最后一条指令的写回时间确定基本块的第一执行时间;该方式能够将流水线对指令执行时间的影响考虑到仿真计时过程中,对基本块中第一条指令与最后一条指令之间的重叠指令所对应的重叠执行时间进行压缩,消除流水线加速导致的仿真时间偏差,有效校准了基本块的第一执行时间,进而能够降低仿真器执行程序的时间与真实处理器执行程序的时间之间的误差。
步骤S103,将仿真运行程序装载至预设仿真器,并通过仿真器执行仿真运行程序中的指令。预设仿真器例如:能够满足嵌入式软件研发和测试需求的SPARC V7、SPARC V8、BM3803、DSP 6713等处理器仿真软件。在实际应用中,可以将仿真器集成到嵌入式软件测试环境中,以支持开展软件调试、测试、目标码覆盖分析、故障注入测试。
在本实施例中,仿真器装置仿真运行程序装载进入内存空间,并通过仿真器逐条执行仿真运行程序中的指令。
步骤S104,每当仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新仿真器执行的逻辑时间;其中,时间更新操作包括如下步骤S105-步骤S108:
步骤S105,记录仿真器执行完当前指令时的程序执行轨迹;
步骤S106,从多个基本块中,确定至少一个与程序执行轨迹相匹配的基本块,按照程序执行轨迹将确定的匹配基本块排列为基本块序列。也就是说,将程序执行轨迹与基本块表进行匹配,得到基本块序列;基本块序列可以表示为< b0,b1,…,bn>。可以理解,基本块序列中包括的基本块的数量少于或等于基本块表中基本块的数量。本实施例以基本块为单位进行执行轨迹的跟踪,能够降低仿真轨迹跟踪对仿真性能的影响。
步骤S107,根据执行时间查询表确定基本块序列对应的执行时间序列。该执行时间序列可以表示为< Δt0,Δt1,…,Δtn>。
步骤S108,基于执行时间序列确定仿真器执行的逻辑时间。
在本实施例中,基本块序列中的基本块为仿真器每执行完成且与程序执行轨迹相匹配的基本块,对于每个基本块而言,均经过执行时间的校准,对于基本块序列而言,降低了仿真轨迹跟踪对仿真性能的影响,从而,利用基本块序列对应的执行时间序列确定仿真器执行的逻辑时间,能够有效降低仿真时间与实际时间之间的误差,提升仿真器执行时间的准确性。
本公开实施例提供的基于处理器流水线分析的时间和时序校准方法,以仿真运行程序中的基本块为单位,首先通过流水线分析对基本块中重叠指令的重叠时间做压缩,校准了基本块的第一执行时间;而后每当仿真器执行完成一条指令时,更新仿真器执行的逻辑时间,在更新逻辑时间的过程中,利与上述校准后的基本块的第一执行时间,又进一步结合程序执行轨迹降低仿真轨迹跟踪对仿真性能的影响。因此,本公开能够有效降低仿真时间与实际时间之间的计时误差,提升确定仿真器执行时间的准确性。
参照图2,展示了一种包括多条指令的基本块的示例,基于此,本实施例提供一种基于处理器流水线,确定基本块的第一执行时间的方法,该方法如下所示:
根据处理器流水线,分析各基本块中各条指令的起点时间和完成时间;按照时间轴对各基本块中各条指令的起点时间和完成时间进行重叠排列。每条指令的执行时间为从起点时间至完成时间,由图2可以看出,多条指令的执行时间是重叠的。根据排列结果确定第一条指令的第一取值时间和最后一条指令的第一写回时间。
接下来,针对各基本块,将该基本块对应的第一取值时间和第一写回时间之间的时间差值Δtb,确定为该基本块的第一执行时间。
本实施例在确定任意一个基本块的第一执行时间之后,还可以判断当前确定第一执行时间的基本块是否为最后一个基本块;如果是,则将多个基本块的第一执行时间形成执行时间查询表;如果不是,则采用同样的方式继续确定下一个基本块的第一执行时间。
由于仿真器逐条执行指令,因此,基本块序列中排列在最后的末端基本块可能并未完全执行,也就是说,仿真器并未执行到末端基本块的最后一条指令,比如,刚刚完成末端基本块的第一条指令的执行。在此情况下,针对最后一个基本块,其预先确定的第一执行时间并不是真实的仿真时间。从而,针对上述步骤S108,在此提供一种更加准确地确定仿真器执行的逻辑时间的实施例,包括:
步骤1,获取基本块序列中排列在最后的末端基本块,末端基本块的最后一条指令为当前指令;也即仿真器最新执行完成的当前指令所对应的基本块为末端基本块。
步骤2,根据末端基本块中第一条指令的取指时间和当前指令的写回时间,确定末端基本块的第二执行时间。
对于末端基本块,其当前指令是真实执行过程中的最后一条指令,基于此,可以参照确定第一执行时间的方式确定末端基本块的第二执行时间,具体不在展开描述。
步骤3,基于执行时间序列和第二执行时间确定仿真器执行的逻辑时间。
具体的,获取执行时间序列中,除末端基本块之外的其他各个基本块的第一执行时间;参照如下公式(1),将其他各个基本块的第一执行时间与末端基本块的第二执行时间之间的时间之和,确定为仿真器执行的逻辑时间:
Figure 28744DEST_PATH_IMAGE001
(1)
其中,t为仿真器执行完当前指令时的逻辑时间,Δtlast表示末端基本块n实际执行的第二执行时间,Δti表示除末端基本块之外的其他前n-1个基本块各个的第一执行时间。
本实施例对末端基本块,进行基本块内部的流水线分析校准,进一步降低了仿真时间与实际时间之间的计时误差。
综上,与主流CPU仿真器的计时机制相比,上述公开实施例提供的基于处理器流水线分析的时间和时序校准方法,基于处理器流水线分析的校准方式,在指令流水过程中,充分考虑并行流水线状态下相邻指令之间的可并行性,极大地降低了仿真执行的时间与真实CPU上执行程序的时间之间的计时误差。同时,基于处理器流水线的技术,还能够压缩指令执行时间,提高流水线的时间和时序精度,缩短仿真时间,提升计算机系统仿真的性能。
根据以上实施例提供的基于处理器流水线分析的时间和时序校准方法,本公开实施例提供一种基于处理器流水线分析的时间和时序校准装置,如图3所示,该装置包括:
识别模块310,用于识别仿真运行程序的多个基本块;
时间确定模块320,用于根据处理器流水线,分析各基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各基本块的第一执行时间;其中,多个基本块的第一执行时间形成执行时间查询表;
程序运行模块330,用于将仿真运行程序装载至预设仿真器,并通过仿真器执行仿真运行程序中的指令;
时间更新模块340,用于每当仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新仿真器执行的逻辑时间;其中,时间更新操作通过如下单元实现:
轨迹记录单元341,用于记录仿真器执行完当前指令时的程序执行轨迹;
匹配单元342,用于从多个基本块中,确定至少一个与程序执行轨迹相匹配的基本块,按照程序执行轨迹将确定的匹配基本块排列为基本块序列;
时间对应单元343,用于根据执行时间查询表确定基本块序列对应的执行时间序列;
逻辑时间确定单元344,用于基于执行时间序列确定仿真器执行的逻辑时间。
本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
图4为本公开实施例提供的一种电子设备的结构示意图。如图4所示,电子设备400包括一个或多个处理器401和存储器402。
处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所述的本公开的实施例的基于处理器流水线分析的时间和时序校准方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置403还可以包括例如键盘、鼠标等等。
该输出装置404可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图4中仅示出了该电子设备400中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
进一步,本实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述基于处理器流水线分析的时间和时序校准方法。
本公开实施例所提供的一种基于处理器流水线分析的时间和时序校准方法、装置、电子设备及介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种基于处理器流水线分析的时间和时序校准方法,其特征在于,包括:
识别仿真运行程序的多个基本块;
根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;
将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;
每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作包括:
记录所述仿真器执行完所述当前指令时的程序执行轨迹;
从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;
根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;
基于所述执行时间序列确定所述仿真器执行的逻辑时间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述执行时间序列确定所述仿真器执行的逻辑时间,包括:
获取所述基本块序列中排列在最后的末端基本块,所述末端基本块的最后一条指令为所述当前指令;
根据所述末端基本块中第一条指令的取指时间和所述当前指令的写回时间,确定所述末端基本块的第二执行时间;
基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间。
3.根据权利要求2所述的方法,其特征在于,所述基于所述执行时间序列和所述第二执行时间确定所述仿真器执行的逻辑时间,包括:
获取所述执行时间序列中,除所述末端基本块之外的其他各个基本块的第一执行时间;
将其他各个基本块的第一执行时间与所述末端基本块的第二执行时间之间的时间之和,确定为所述仿真器执行的逻辑时间。
4.根据权利要求1所述的方法,其特征在于,所述根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,包括:
根据处理器流水线,分析各所述基本块中各条指令的起点时间和完成时间;
按照时间轴对各所述基本块中各条指令的起点时间和完成时间进行重叠排列;
根据排列结果确定第一条指令的第一取值时间和最后一条指令的第一写回时间。
5.根据权利要求4所述的方法,其特征在于,所述根据分析的时间确定各所述基本块的第一执行时间,包括:
针对各所述基本块,将该基本块对应的所述第一取值时间和所述第一写回时间之间的时间差值,确定为该基本块的第一执行时间。
6.根据权利要求1所述的方法,其特征在于,在确定任意一个所述基本块的第一执行时间之后,所述方法还包括:
判断当前确定第一执行时间的基本块是否为最后一个基本块;
如果是,则将多个所述基本块的第一执行时间形成所述执行时间查询表。
7.根据权利要求1所述的方法,其特征在于,所述识别仿真运行程序的多个基本块,包括:
对仿真运行程序的所有指令进行反汇编识别,形成指令序列;
识别所述指令序列中的分支指令和跳转指令;
根据所述分支指令和所述跳转指令,将所述指令序列划分为多个基本块。
8.一种基于处理器流水线分析的时间和时序校准装置,其特征在于,包括:
识别模块,用于识别仿真运行程序的多个基本块;
时间确定模块,用于根据处理器流水线,分析各所述基本块中第一条指令的取指时间和最后一条指令的写回时间,并根据分析的时间确定各所述基本块的第一执行时间;其中,多个所述基本块的第一执行时间形成执行时间查询表;
程序运行模块,用于将所述仿真运行程序装载至预设仿真器,并通过所述仿真器执行所述仿真运行程序中的指令;
时间更新模块,用于每当所述仿真器执行完成一条指令时,根据最新完成的当前指令和预设的时间更新操作,更新所述仿真器执行的逻辑时间;其中,所述时间更新操作通过如下单元实现:
轨迹记录单元,用于记录所述仿真器执行完所述当前指令时的程序执行轨迹;
匹配单元,用于从多个所述基本块中,确定至少一个与所述程序执行轨迹相匹配的基本块,按照所述程序执行轨迹将确定的匹配基本块排列为基本块序列;
时间对应单元,用于根据所述执行时间查询表确定所述基本块序列对应的执行时间序列;
逻辑时间确定单元,用于基于所述执行时间序列确定所述仿真器执行的逻辑时间。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7中任一所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的方法。
CN202110765305.1A 2021-07-07 2021-07-07 一种基于处理器流水线分析的时间和时序校准方法及装置 Active CN113254084B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110765305.1A CN113254084B (zh) 2021-07-07 2021-07-07 一种基于处理器流水线分析的时间和时序校准方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110765305.1A CN113254084B (zh) 2021-07-07 2021-07-07 一种基于处理器流水线分析的时间和时序校准方法及装置

Publications (2)

Publication Number Publication Date
CN113254084A true CN113254084A (zh) 2021-08-13
CN113254084B CN113254084B (zh) 2021-09-24

Family

ID=77190911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110765305.1A Active CN113254084B (zh) 2021-07-07 2021-07-07 一种基于处理器流水线分析的时间和时序校准方法及装置

Country Status (1)

Country Link
CN (1) CN113254084B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878440A (zh) * 2023-01-31 2023-03-31 北京超星未来科技有限公司 用于静态分析npu指令性能的方法、电子设备、介质和程序

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214762A1 (en) * 2013-01-25 2014-07-31 International Business Machines Corporation Synchronization of time between different simulation models
CN106363635A (zh) * 2016-12-01 2017-02-01 广汽本田汽车有限公司 一种机器人运行仿真校准方法及装置
US20190214073A1 (en) * 2018-01-11 2019-07-11 International Business Machines Corporation Simulating a single data rate (sdr) mode on a dual data rate (ddr) memory controller for calibrating ddr memory coarse alignment
CN110460505A (zh) * 2019-07-19 2019-11-15 苏州浪潮智能科技有限公司 一种并行总线的时序校准方法、装置及接收端设备
US20210019269A1 (en) * 2019-07-16 2021-01-21 International Business Machines Corporation Optimizing time-dependent simulations of quantum computing architectures
CN112525136A (zh) * 2020-11-30 2021-03-19 北京航天计量测试技术研究所 一种基于伺服机构的高精度同步位置信息校准系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140214762A1 (en) * 2013-01-25 2014-07-31 International Business Machines Corporation Synchronization of time between different simulation models
CN106363635A (zh) * 2016-12-01 2017-02-01 广汽本田汽车有限公司 一种机器人运行仿真校准方法及装置
US20190214073A1 (en) * 2018-01-11 2019-07-11 International Business Machines Corporation Simulating a single data rate (sdr) mode on a dual data rate (ddr) memory controller for calibrating ddr memory coarse alignment
US20210019269A1 (en) * 2019-07-16 2021-01-21 International Business Machines Corporation Optimizing time-dependent simulations of quantum computing architectures
CN110460505A (zh) * 2019-07-19 2019-11-15 苏州浪潮智能科技有限公司 一种并行总线的时序校准方法、装置及接收端设备
CN112525136A (zh) * 2020-11-30 2021-03-19 北京航天计量测试技术研究所 一种基于伺服机构的高精度同步位置信息校准系统及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115878440A (zh) * 2023-01-31 2023-03-31 北京超星未来科技有限公司 用于静态分析npu指令性能的方法、电子设备、介质和程序
CN115878440B (zh) * 2023-01-31 2023-05-16 北京超星未来科技有限公司 用于静态分析npu指令性能的方法、电子设备、介质和程序

Also Published As

Publication number Publication date
CN113254084B (zh) 2021-09-24

Similar Documents

Publication Publication Date Title
US6973417B1 (en) Method and system for simulating execution of a target program in a simulated target system
TWI468936B (zh) 用於產生驗證程式之系統及方法
US20130152048A1 (en) Test method, processing device, test program generation method and test program generator
US6038391A (en) Method and apparatus for evaluating performance of multi-processing system and memory medium storing program for the same
US6856951B2 (en) Repartitioning performance estimation in a hardware-software system
CN113254084B (zh) 一种基于处理器流水线分析的时间和时序校准方法及装置
US20130013283A1 (en) Distributed multi-pass microarchitecture simulation
CN110928786B (zh) 针对财务程序的测试方法和装置
JP5514211B2 (ja) 分岐オーバーライドを用いたプロセッサ実行のシミュレーション
CN102520984B (zh) 目标软件在指定硬件环境中最差时间的计算方法
US8412507B2 (en) Testing the compliance of a design with the synchronization requirements of a memory model
CN112560372B (zh) 一种芯片原型验证方法、装置、设备及介质
US9069900B2 (en) Method for determining whether a machine code instruction of a machine code program is executed in the machine code program
Espinosa et al. Analysis and RTL correlation of instruction set simulators for automotive microcontroller robustness verification
US20110320784A1 (en) Verification of processor architectures allowing for self modifying code
Nalla et al. The art of semi-formal bug hunting
JP4243463B2 (ja) 命令スケジューリングのシミュレーション方法とシミュレーションシステム
Wolf et al. Execution cost interval refinement in static software analysis
JP3147851B2 (ja) シミュレーション方法、シミュレーション装置及びシミュレーションプログラムを記憶した記憶媒体
EP4258121A1 (en) Program detection method and device
JP3604697B2 (ja) プログラマブル命令トラップシステム及び方法
US11023357B1 (en) Method and system for sequential equivalence checking
CN114721922A (zh) 一种服务器集群的性能评估方法、计算设备及存储介质
US20080300845A1 (en) Monitoring software simulations of hardware systems
Fursin et al. A fast and accurate method for determining a lower bound on execution time

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
GR01 Patent grant
GR01 Patent grant