CN113515348A - 一种基于时机动作流的模拟器建模方法及装置 - Google Patents
一种基于时机动作流的模拟器建模方法及装置 Download PDFInfo
- Publication number
- CN113515348A CN113515348A CN202110807511.4A CN202110807511A CN113515348A CN 113515348 A CN113515348 A CN 113515348A CN 202110807511 A CN202110807511 A CN 202110807511A CN 113515348 A CN113515348 A CN 113515348A
- Authority
- CN
- China
- Prior art keywords
- opportunity
- instruction
- action
- relocation
- component
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000004806 packaging method and process Methods 0.000 claims abstract description 3
- 238000004458 analytical method Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 11
- 238000005206 flow analysis Methods 0.000 claims description 7
- 238000005111 flow chemistry technique Methods 0.000 claims description 6
- 230000000630 rising effect Effects 0.000 claims description 5
- 230000000737 periodic effect Effects 0.000 claims description 3
- 230000010354 integration Effects 0.000 claims description 2
- 238000002372 labelling Methods 0.000 claims 2
- 230000000712 assembly Effects 0.000 claims 1
- 238000000429 assembly Methods 0.000 claims 1
- 238000012512 characterization method Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 abstract description 5
- 230000003044 adaptive effect Effects 0.000 abstract 1
- 230000004048 modification Effects 0.000 abstract 1
- 238000012986 modification Methods 0.000 abstract 1
- 230000000875 corresponding effect Effects 0.000 description 35
- 238000013461 design Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 101710196811 Non-specific lipid-transfer protein 3 Proteins 0.000 description 2
- 239000013078 crystal Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 102100034003 FAU ubiquitin-like and ribosomal protein S30 Human genes 0.000 description 1
- 101000732045 Homo sapiens FAU ubiquitin-like and ribosomal protein S30 Proteins 0.000 description 1
- 101710196810 Non-specific lipid-transfer protein 2 Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
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
一种基于时机动作流的模拟器建模方法及装置,包括:使用目标机描述模型,对目标机芯片和指令集基本特征进行描述定义;读取所述目标机描述模型并解析转化成内部模型;利用部件组件集封装目标机芯片内部部件动作的具体实现,根据宿主机实际情况集成适配的组件到模拟器模型中;采用流水线调度框架,调度各指令的时机动作流和子例程重定位时机动作流模拟目标机芯片流水线式运行指令序列。本发明支持指令精确级和时钟精确级模拟器,兼顾RTL级更高精度的建模要求;能够缩短修改模型描述导致的模拟器模型搭建以及装置制作所需工时;以更合理的逻辑架构建模支持更多目标机处理器模型;能够提高模拟器运行效率。
Description
技术领域
本发明涉及模拟器建模领域,特别涉及一种基于时机动作流的模拟器建模方法及装置。
背景技术
模拟器是用来在一台计算机上模拟另外一种具有不同体系结构的处理器上程序运行过程的软件工具。前者称作宿主机,后者称为目标机,基本原理是首先读入一段二进制指令码流,经译码后,按照指令的定义要求模拟指令动作,最终实现在目标芯片上的功能。模拟器建立的仿真模型,对于微处理器的设计、验证和应用等各个环节都起着重要作用。
按照处理器设计层次的不同,模拟器模型可分为:
指令精确级模拟器,主要对包括寄存器、寻址方式、指令集定义在内的处理器指令集体系结构设计进行验证,建立精确到指令周期边界的指令集体系结构ISA(InstructionSet Architecture)模型;
时钟精确级模拟器,需要验证和评价处理器的流水线、缓存设计等,建立精确到时钟周期边界的处理器模型,又称作微体系结构(Micro-Architecture model,MA)模型;
RTL级模拟器,用VerilogHDL和VHDL等硬件描述语言建立处理器寄存器传输级硬件模型,即RTL(Register Transport Logic)模型,并利用电子设计自动化(ElectronicDesign Automation,EDA)工具提供的硬件模拟器对处理器的RTL级设计进行验证。
目前的指令集模拟器(Instruction Set Simulator,ISS)基本上都是指令精确级和时钟精确级的模拟器,属于行为级模型,通常只支持前者或者二者都兼顾,但不支持更高精度的设计,包括:更高精度的时钟脉冲以及各级脉冲的边沿触发、划分更细的硬件部件以及部件级的信号传输等等,缺少能够三者兼顾的ISS。
从模拟器模型的搭建方法可分为:
纯手工编码方式,芯片开发人员提供目标芯片和指令集功能描述后,研发过程完全依赖于模拟器开发人员,总体上,模拟器包含的模块有:汇编器或者解释器、指令集在宿主机上的操作实现模块、流水线调度器等;构建环节包括:从编码、编译、调试、模块测试以及集成和总体测试;如果换一种目标芯片或者更换宿主机系统,又要重新开始以上过程;工作量巨大,需要庞大人力和时间,在日新月异的芯片工业界是不可想象的。
生成代码方式,通常首先由芯片开发人员利用类似于硬件描述语言的模拟器描述语言描述目标芯片的各项特征,包括:资源(存储器、寄存器)、操作(编码、语法、行为和时序)等,然后模拟器开发人员利用工具软件把表征目标芯片的模拟器描述语言生成适用于宿主机运行的高级语言代码,再使用编译工具软件把生成的高级语言代码结合核心库文件一起编译成模拟器可执行程序,最后经过调试和测试后提交给芯片开发人员或者其他人员使用。相比较纯手工编码方式,生成代码方式无疑在效率和准确度上有巨大的提升,大大节省了人力和时间,在芯片工业界已经获得认可得到了采用。但是,在芯片开发阶段,芯片开发人员为了优化目标芯片模型,会不断修改和调整模拟器描述语言,哪怕一点点修改,也要重复以上生成代码的整个过程,要沟通模拟开发人员,由后者开启后续的代码生成、编译、调试以及测试和发行可执行程序的过程,耗费人力和时间,即使芯片开发人员可以充当模拟开发人员角色承担后续的工作,情况依然如此,“牵一发而动全身”。
发明内容
本发明的目的是提供一种基于时机动作流的模拟器建模方法及装置,以解决现有技术存在的问题,完全支持指令精确级和时钟精确级模拟器,兼顾RTL级更高精度的建模要求;缩短芯片开发人员修改模型描述导致的模型搭建以及装置制作所需的工作量和时间;以更合理的逻辑架构建模支持更多的目标处理器模型;提高模拟器运行效率。
为实现上述目的,本发明技术方案具体如下:
一种基于时机动作流的模拟器建模方法,包括:
首先使用所述目标机描述模型描述目标机芯片和指令集的各项特征,包括:所述机器周期及节拍定义文件,按层次定义目标机芯片的机器周期和各级节拍的名称、序号、层次号等;所述部件及动作定义文件,针对目标机芯片内部部件定义其固有属性、动作、完成动作需要机器周期或节拍数;所述子例程重定位时机动作流定义文件,定义子例程中封装的部件动作流及其可重定位的调用时机;所述指令时机动作流定义文件,针对目标机芯片指令集内每一指令多维度划分对应的部件动作流、在特殊场合向所述流水线调度框架发送关于调度安排的通知事件以及调用所述部件动作和发出所述通知事件的时机。
其次,把使用所述目标机描述模型描述目标机芯片和指令集各项特征的外部模型经过解析处理直接转化成适配宿主机的内部模型。
再次,把目标机芯片中的部件动作需要在宿主机中模拟运行的具体实现封装在组件中,这些组件可以独立编写、编译、调试、测试和发布,可以在适当时机集成到模拟器模型中供所述流水线调度框架调用执行。
最后,由流水线调度框架根据目标机描述的内部模型、集成到宿主机中的部件动作组件集以及输入的二进制指令码流,流水线式调度各指令的时机动作流,包括:利用模拟目标机芯片的机器周期、各级节拍以及边沿状态的里程式所述公共时机事件作为触发条件;以所述十字虚链方式驱动流水线式调度,其中纵向为所述公共时机事件触发的部件动作序列,横向为进入所述流水线调度框架的指令序列,每一项代表一条指令以及包含的子例程;由于功能内聚的需要,把一部分相关动作封装在子例程中成为重定位时机动作流,在指令的部件动作中调用子例程,以调用时机点为对齐基准把子例程中的重定位时机动作流叠加到指令的时机动作流中,以流水线的方式一并调度。
一种基于时机动作流的模拟器装置,包括:
读取单元,用于读取目标机描述模型;
外部模型解析器,根据所述目标机描述模型描述的外部模型解析处理并转化成内部模型,包括:周期节拍定义解析模块,根据所述机器周期及节拍定义解析转化成目标机机器周期以及各层次节拍的定义结构;部件动作定义解析模块,根据所述部件及动作定义文件解析转化成目标机芯片内部部件具有的属性以及动作的定义结构;指令时机动作流解析模块,根据所述指令时机动作流定义文件解析转化成带有时机标签的以实现指令功能的时机动作流树状模型;子例程重定位时机动作流解析模块,根据所述子例程重定位时机动作流定义文件解析转化成带有重定位时机标签的以实现子例程功能的时机动作流树状模型;
部件动作组件集,用于在宿主机上运行的模拟目标机芯片内部部件动作具体实现的组件集合;
组件集成器,用于在宿主机上导入集成所述部件动作组件集;
流水线调度器,用于实现流水线调度框架模型,采用十字虚链方式管理调度指令的所述时机动作流和子例程的所述重定位时机动作流,包括:时机事件产生模块、流水线调度安排模块、指令时机动作流处理模块、子例程重定位时机动作流处理模块以及部件动作执行模块。
本发明实施例提供了一种基于时机动作流的模拟器建模方法及装置,首先读取目标机描述模型,其次,把目标机描述模型描述的外部模型经过解析处理转化成适配宿主机的内部模型,再次,把封装部件动作具体实现的组件集,集成到模拟器模型中,最后由流水线调度框架流水线式调度各指令的时机动作流和子例程重定位时机动作流模拟目标芯片对指令的运行。这种基于时机动作流的模拟器建模方法及装置完全支持指令精确级和时钟精确级模拟器,兼顾RTL级更高精度的建模要求;能够缩短芯片开发人员修改模型描述导致的模拟器模型搭建以及装置制作所需的工作量和时间;以更合理的逻辑架构建模支持更多的目标机处理器模型;能够提高模拟器运行效率。
附图说明
图1:本发明实施提供的一种基于时机动作流的模拟器的建模方法的总体流程图;
图2:图1中的解析指令时机动作流定义模型流程图;
图3:本发明实施提供的一种基于时机动作流的模拟器的建模方法的指令时机动作流模型结构解析图;
图4:图1中的解析子例程重定位时机动作流模型流程图;
图5:本发明实施提供的一种基于时机动作流的模拟器的建模方法的子例程重定位时机动作流模型结构解析图;
图6:图1中的流水线调度框架模型调度处理流程图;
图7:图1中的指令时机动作流模型调度处理流程图;
图8:本发明实施提供的一种基于时机动作流的模拟器的建模方法的流水线调度框架中的指令时机动作流模型调度处理解析图;
图9:图1中的子例程重定位时机动作流模型调度处理流程图;
图10:本发明实施提供的一种基于时机动作流的模拟器的建模方法的流水线调度框架中的指令时机动作流模型调用子例程重定位时机动作流模型调度处理解析图;
图11:本发明实施提供的一种基于时机动作流的模拟器的建模方法的流水线调度框架模型调度处理解析图;
图12:本发明实施提供的一种基于时机动作流的模拟器的建模装置的一种示意图;
图13:本发明实施提供的一种基于时机动作流的模拟器的建模装置的又一种示意图;
图14:本发明实施提供的一种基于时机动作流的模拟器的建模装置的又一种示意图。
具体实施方式
以下结合本发明实施例中的附图,对本发明中的技术方案进行详细的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域中的普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都是本发明保护的范围。
本发明实施例提供了一种基于时机动作流的模拟器建模方法,该建模方法及相应步骤的执行主体为一种基于时机动作流的模拟器装置,例如,该装置可以为计算机等。所述建模方法,如图1所示,包括以下步骤:
11、读取描述目标机芯片和指令集特征的目标机描述模型,包括:机器周期及节拍定义文件、部件及动作定义文件、子例程重定位时机动作流定义文件、指令时机动作流定义文件;解析处理并转化成内部模型。
芯片开发人员提供目标机芯片和指令集的相关特征描述,包括:机器周期及节拍定义描述目标机指令周期涵盖的机器周期(CPU周期)信息、机器周期下辖的各级节拍信息以及边沿状态等;部件及动作定义描述目标机芯片内部计算部件、处理部件、资源以及抽象部件的属性信息和相应的动作及参数信息;指令时机动作流定义描述特定指令按照时机节点调用或触发相应目标机芯片内部部件中的动作以及流程控制;封装寻址操作的子例程重定位时机动作流定义描述特定寻址方式按照重定位时机节点触发相应目标机芯片内部部件中的寻址动作以及流程控制。模拟器开发人员根据芯片开发人员提供的目标机芯片和指令集特征描述完成目标机描述模型的编写,此过程不需要模拟器开发人员分析加工,还可以由芯片开发人员根据描述模型的语法规范要求直接编写目标机描述模型。
本发明实施例中提供一具体的实例,说明目标机描述模型中指令时机动作流定义文件和寻址方式子例程重定位时机动作流定义文件的格式,为不失一般性描述定义不具体指定特定芯片和指令集。
上述实施例是所述目标机描述模型中所述指令时机动作流定义文件的一部分。
其中,每一指令由一系列所述时机动作和相应的流程控制符组成;所述时机标签是以指令字进入所述流水线调度框架时作为基准的相对时机点,对应范式为:“[I.]LC[.R]*[.E]”,其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,“I”为指令字序数,如不出现默认是单指令字,“LC”为机器周期在指令周期内的序数或名称,“R”为机器周期内各层级节拍的序数或名称,“E”为脉冲边沿状态,为保持一般性使用TPn表示时机标签;所述时机动作意味着在所述时机标签对应的相对时机点发生时要调用和其绑定的所述部件动作;调用部件动作包括:目标机芯片内部部件、部件内部的动作以及调用动作的参数列表;选择判断条件由某个内部部件中相应的某个判断动作来完成,比如:TP2:IF A2中的判断动作A2。
下面,对解析指令时机动作流定义文件并转化成内部模型的过程作具体描述,如图2所示,包括:
1111、根据指令时机动作流定义文件中的指令专属信息创建指令分支的根节点,包括:操作码、语法格式、指令字数等。
1112、读取指令时机动作流定义文件中的时机动作定义创建中间节点或叶节点,包括:时机标签、流程控制符号、部件动作、参数列表等。
1113、如果前后时机动作是顺序控制类型,把新节点作为当前节点的后继节点。
1114、如果后继时机动作为选择控制类型,把新节点标注为判断条件节点;把新节点作为当前节点的后继;同时收集新节点后续对应判断动作为TRUE分支起始节点和判断条件为FALSE分支起始节点。
1115、如果后继时机动作为循环控制类型,把新节点标注为循环判断结束条件节点;把新节点作为当前节点的后继;同时收集新节点后续对应不满足结束条件的起始循环体节点和满足结束条件的分支起始节点也即循环体结束的后继节点。
对指令时机动作流定义文件解析后转化成的内部模型如图3所示,每个指令的内部模型为树状模型,整个指令树状模型集合构成指令集森林模型;每个时机动作节点包括:时机标签和要调用的部件动作等,比如:TP1-A1节点;指令I1中时机动作节点之间的关系既有顺序控制类型,比如:TP1-A1节点和TP2-A2节点,也有选择控制类型,比如:TP2-A2判断条件节点、条件结果为TRUE的分支起始节点TP3-A31以及条件结果为FALSE的分支起始节点TP3-A32。
上述实施例是所述目标机描述模型中关于寻址方式的所述子例程重定位时机动作流定义文件的一部分。
其中,每一寻址方式由一系列所述重定位时机动作和相应的流程控制符组成;寻址子例程中的所述重定位时机标签是以寻址方式子例程被调用时作为基准的相对时机点,对应范式为:“[I.]LC[.R]*[.E]”,其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,“I”为指令字序数,如不出现默认是单指令字,“LC”为机器周期在指令周期内的序数或名称,“R”为机器周期内各层级节拍的序数或名称,“E”为脉冲边沿状态,为保持一般性使用LTPn表示重定位时机标签;所述重定位时机动作意味着在所述重定位时机标签对应的相对时机点发生时要调用和其绑定的所述部件动作;调用动作包括:目标机芯片内部部件、部件内部的动作以及调用动作的参数列表;选择判断条件由某个内部部件中相应的某个判断动作来完成,比如:LTP2:IF A2中的判断动作A2。
下面,对解析寻址方式子例程重定位时机动作流定义文件并转化成内部模型的过程作具体描述,如图4所示,包括:
1121、根据寻址方式子例程重定位时机动作流定义文件中的寻址方式专属信息创建根节点,包括:寻址方式编码、语法格式、寻址允许参数列表等。
1122、读取寻址方式子例程重定位时机动作流定义文件中的重定位时机动作定义创建中间节点和叶节点,包括:重定位时机标签、流程控制符号、部件动作、参数列表。
1123、如果前后重定位时机动作是顺序控制类型,把新节点作为当前节点的后继节点。
1124、如果后继重定位时机动作为选择控制类型,把新节点标注为判断条件节点;把新节点作为当前节点的后继;同时收集新节点后续对应判断动作为TRUE分支起始节点和判断条件为FALSE分支起始节点。
1125、如果后继重定位时机动作为循环控制类型,把新节点标注为循环判断结束条件节点;把新节点作为当前节点的后继;同时收集新节点后续对应不满足结束条件的起始循环体节点和满足结束条件的分支起始节点也即循环体结束的后继节点。
对寻址方式子例程重定位时机动作流定义文件解析后并转化成内部模型如图5所示,每个寻址方式子例程的内部模型为树状模型,整个子例程树状模型集合构成子例程森林模型;每个重定位时机动作节点包括:重定位时机标签和部件动作等,比如:LTP1-A1节点;寻址子例程ASR1中重定位时机动作节点之间的关系既有顺序控制类型,比如:LTP1-A1节点和LTP2-A2节点,也有选择控制类型,比如:LTP2-A2判断条件节点、条件结果为TRUE的分支起始节点TP3-A31以及条件结果为FALSE的分支起始节点LTP3-A32。
12、集成适配宿主机的目标机芯片内部部件动作实现组件。
芯片开发人员提供目标机芯片内部部件属性及动作的功能性描述,其中内部部件包括:加法器、乘法器、移位器、比较器、寄存器、存储器以及地址计算单元等等,模拟器开发人员根据该功能性描述基于宿主机处理器和操作系统情况编写对应的内部部件动作的代码实现,汇集成实体集合,各实体可以经编译成独立的组件。集成组件到模拟器模型中,用来在宿主机上模拟运行目标机芯片内部部件动作序列。
13、读入指令二进制指令码流。
14、按照目标机芯片机器周期及节拍流水线式调度处理进入流水线的各指令对应的时机动作流和寻址子例程对应的重定位时机动作流;应急处理访存冲突以及跳转等改变流水线的指令带来的重新调度安排。
下面对流水线调度器的处理流程做详细的阐述,如图6所示。
141、模拟目标机芯片时钟脉冲以及经过各级分频后产生公共时机事件,包括:机器周期全局计数、各级节拍相对计数以及边沿状态。
其中,针对目标机芯片晶振产生的时钟脉冲以及经过各级分频器分频后,模拟产生各级节拍以及机器周期,机器周期是全局计数而各级节拍是相对于上层周期内的相对计数,再结合边沿状态(上升沿、水平、下降沿)产生所述公共时机事件。
例如,以下为总计5层分频的各级节拍/周期的一个定义实施例(表1),其中第0层为时钟周期:
表1 5层分频的各级节拍/周期的定义实施例
所述公共时机事件的一个实施例:“3333.3.2.1上升”,其中“3333”为机器周期的全局计数;“3”为第3个3级节拍周期;“2”为第2个2级节拍周期;“1”为第1个时钟周期(或称为1级节拍)。除了机器周期是全局计数外其它计数都是内部相对计数,即不能超过上层规定的“包含下层周期/节拍数”;“上升”为最后的周期或节拍的边沿状态,本实施例为“第1个时钟周期”的上升沿状态。
142、新机器周期开始,如果需要引入新指令字进入流水线调度框架,用指令机器周期戳为该指令记录当前公共时机事件中的机器周期计数。
具体的,当一个新的机器周期开始时,一般要引入新的指令字到流水线调度框架中,除非遇到特殊情况,比如:访问程序存储区冲突等原因导致的取指令字延迟;所述指令机器周期戳为指令字进入时的机器周期全局计数作为指令时机动作流的对齐基准,例如,指令进入时所述公共时机事件的一个实施例:“3334.1.1.1上升”,所述指令机器周期戳要记录机器周期全局计数“3334”。
对于每一在流水线调度框架中的指令,执行143之后的流程:
143、计算指令时机状态等于当前公共时机事件减去指令机器周期戳。
具体的,把公共时机事件转化为指令内部的相对时机状态,方法为:指令时机状态=当前公共时机事件-指令机器周期戳,例如,当前的公共时机事件“3335.3.2.1上升”,那么指令时机状态=“3335.3.2.1上升”-“3334”=“1.3.2.1上升”。
144、根据指令时机状态搜索调度对应的指令动作流内部模型。
利用步骤143计算得到的指令时机状态到特定指令对应的时机动作流内部模型中搜索与之匹配的时机动作序列并执行之,下面进一步详细展开此步骤,处理流程如图7所示,模型工作解析如图8所示:
1441、由指令动作计数指向的节点开始搜索匹配指令时机状态的部件动作。
具体的,所述指令动作计数为该指令的时机动作流中的当前执行的节点指针;指令起始时,所述指令动作计数指向第一个时机动作,也即“TP1-A1”节点;每次搜索都是从所述指令动作计数指向的节点开始判断所述时机动作中的所述时机标签是否匹配所述指令时机状态,最终匹配时机标签“TP3”的时机动作节点“TP3-A31”和“TP3-A4”。
1442、通过搜索到的部件动作索引部件组件中对应的动作实现;执行该实现并更新目标机虚拟资源相关状态。
具体的,步骤1441搜索匹配时机标签“TP3”得到时机动作节点“TP3-A31”和“TP3-A4”后,通过所述部件及动作定义文件索引到对应组件中的动作实现,在宿主机上执行该动作实现,模拟目标机内部部件中的处理动作或者计算动作,同时更新相关目标机虚拟资源的状态;如果遇到访存冲突等特殊情况,以事件的形式通知流水线调度框架,例如:FIRE(CTL.EVENT,MEM_CONFLICT)。
1443、如果搜索到动作为调用子例程,则用指令子例程节拍戳记录当前指令时机状态中的周期和各级节拍计数;把子例程中的重定位时机动作流按照以调用时机点为基准的对齐方式叠加到指令时机动作流中。
具体的,如图10所示,在指令I1中的时机动作流中的时机动作“TP1-ASR1”,该动作在公共时机事件为“GCS_P1+TP1”和指令时机状态为“TP1”时触发,这时要调用寻址子例程“ASR1”,使用所述指令子例程节拍戳记录当前指令时机状态“TP1”中的周期和节拍计数,所述流水线调度框架通过在子例程重定位时机动作流内部模型中查找到子例程“ASR1”对应的重定位时机动作流,使用子例程动作计数记录重定位时机动作流中的第一个将要流水执行的节点“LTP1-A1”。
1444、确定下一个指令动作计数。
具体的,当前公共时机事件发生时对应的时机动作完成后,需确定更新下一个要执行的时机动作节点,如果为顺序控制类型,则指令动作计数直接记录其后继节点,假定,当前节点“TP1-A1”,更新后指令动作计数=“TP2-A2”;如果为选择控制类型,根据当前部件判断动作的结果,指令动作计数记录对应后继分支起始节点,假定,当前节点“TP2-A2”且“A2”的判定结果为“TRUE”,更新后指令动作计数=“TP3-A31”;如果为循环控制类型,则根据当前部件判断结束条件动作的结果,指令动作计数记录对应后继分支起始节点,同选择控制类似。
145、计算指令子例程的重定位时机状态等于当前指令时机状态减去指令子例程节拍戳。
具体的,根据指令时机状态和指令子例程节拍戳来确定指令子例程重定位时机状态,方法为:指令子例程重定位时机状态=当前指令时机状态-指令子例程节拍戳,例如,当前的指令时机状态“3335.3.2.1上升”,那么指令子例程重定位时机状态=“3335.3.2.1上升”-“3334.1.1.1”(调用子例程的时机点)=“1.2.1.0上升”。
146、根据指令子例程重定位时机状态搜索调度对应的子例程重定位时机动作。
用步骤145计算得到的指令子例程重定位时机状态到子例程动作流中搜索与之匹配的重定位时机动作并执行之,下面详细展开此步骤,处理流程如图9所示,模型工作解析如图10所示:
1461、由子例程动作计数开始搜索匹配子例程重定位时机状态的重定位时机动作。
具体的,子例程动作计数为该子例程的重定位时机动作流中当前执行的重定位时机动作指针;寻址子例程被调用时,所述子例程动作计数指向子例程的重定位时机动作流中第一个重定位时机动作,也即“LTP1-A1”节点;搜索从所述子例程动作计数指向的当前节点“LTP3-A3”开始判断所述重定位时机动作中的所述重定位时机标签“LTP3”是否匹配所述子例程重定位时机状态:“GCS_P1+TP3”-“GCS_P1+TP1”,得到匹配重定位时机动作节点“LTP3-A3”。
1462、通过搜索到的部件动作索引部件组件集中对应的动作实现;执行该实现并更新目标机虚拟资源相关状态。
具体的,步骤1461搜索匹配重定位时机标签“LTP3”得到重定位时机动作节点“LTP3-A31”后,通过部件动作定义索引到对应的部件组件集中的动作实现,在宿主机上执行该动作实现,模拟目标机内部部件中的处理动作或者计算动作,同时更新相关目标机虚拟资源的状态,如果遇到访存冲突等特殊情况,以事件的形式通知流水线调度框架,例如:FIRE(CTL.EVENT,MEM_CONFLICT)。
1463、确定下一个子例程动作计数。
具体的,当前子例程重定位时机状态发生时对应的重定位时机动作完成后,需确定更新下一个要执行的重定位时机动作节点,如果为顺序控制类型,则所述子例程动作计数直接记录其后继重定位时机动作节点,假定,当前节点“LTP1-A1”,更新后子例程动作计数=“LTP2-A2”;如果为选择控制类型,根据当前部件判断动作的结果,所述子例程动作计数记录对应后继分支起始节点,假定,当前节点“LTP2-A2”且“A2”的判定结果为“TRUE”,更新后子例程动作计数=“LTP3-A31”;如果为循环控制类型,则根据当前部件判断结束条件动作的结果,所述子例程动作计数记录对应后继分支起始节点,同选择控制类似。
综上所述,下面给出基于公共时机事件流水线式调度各指令的时机动作流的综合实施例,如图11所示。限于篇幅在本实施例中的公共时机事件没有深入下层节拍,只给出公共机器周期和边沿状态的组合,不妨碍能够从总体上描述本发明的流水线式调度各指令中的时机动作流的工作模式。
1)公共时机事件P1上发生时:
引入新指令I1,其指令机器周期戳=“P1”,指令时机状态=“P1上”-“P1”=“T1”(T1的配置值为“0上”),其指令动作计数=节点“T1-A1”的指针;
在I1的时机动作流中搜索匹配指令时机状态“T1”;调用动作A1;变更其指令动作计数为节点“T1-A1”的后继节点“T2-A2”;
2)公共时机事件P1平发生时:
指令I1的指令时机状态=“P1平”-“P1”=“T2”(T2的配置值为“0平”)
在I1的时机动作流中搜索匹配指令时机状态“T2”;调用动作A2;变更其指令动作计数为节点“T2-A2”的后继节点“T3-A3”;
3)公共时机事件P1下发生时:
指令I1指令时机状态=“P1下”-“P1”=“T3”(T3的配置值为“0下”)
在I1的时机动作流中搜索匹配指令时机状态“T3”;调用动作A3;变更其指令动作计数为节点“T3-A3”的后继节点“T4-A4”;
4)公共时机事件P2上发生时:
指令I1指令时机状态=“P2上”-“P1”=“T4”(T4的配置值为“1上”)
在I1的时机动作流中搜索匹配指令时机状态“T4”;调用动作A4;变更其指令动作计数为节点“T4-A4”的后继节点“T5-A5”;
引入新指令I2,其指令机器周期戳=“P2”,指令时机状态=“P2上”-“P2”=“T1”,指令动作计数=节点“T1-A1”的指针;
在I2的时机动作流中搜索匹配指令时机状态“T1”;调用动作A1;变更其指令动作计数为节点“T1-A1”的后继节点“T2-A2”;
5)公共时机事件P2平发生时:
指令I1指令时机状态=“P2平”-“P1”=“T5”(T5的配置值为“1平”)
在I1的时机动作流中搜索匹配指令时机状态“T5”;调用动作A5;变更其指令动作计数为节点“T5-A5”的后继节点“T6-A6”;
指令I2指令时机状态=“P2平”-“P2”=“T2”
在I1的时机动作流中搜索匹配指令时机状态“T2”;调用动作A2;变更其指令动作计数为节点“T2-A2”的后继节点“T3-A3”;
6)公共时机事件P2下发生时:
指令I1指令时机状态=“P2下”-“P1”=“T6”(T6的配置值为“1下”)
在I1的时机动作流中搜索匹配指令时机状态“T6”;调用动作A6;变更其指令动作计数为节点“T6-A6”的后继节点“T7-A7”;
指令I2指令时机状态=“P2下”-“P2”=“T3”
在I1的时机动作流中搜索匹配指令时机状态“T3”;调用动作A3;变更其指令动作计数为节点“T3-A3”的后继节点“T4-A4”;
限于篇幅,下面不再描述详细步骤,只给出调用时机动作序列
7)公共时机事件P3上发生时:
调用时机动作I1.T7-A7、I2.T4-A4、I3.T1-A1(指令I3开始)。
8)公共时机事件P3平发生时:
调用时机动作I1.T8-A8、I2.T5-A5、I3.T2-A2。
9)公共时机事件P3下发生时:
调用时机动作I1.T9-A9(指令I1结束)、I2.T6-A6、I3.T3-A3。
10)公共时机事件P4上发生时:
调用时机动作I2.T7-A7、I3.T4-A4、I4.T1-A1(指令I4开始)。
11)公共时机事件P4平发生时:
调用时机动作I2.T8-A8、I3.T5-A5、I4.T2-A2。
12)公共时机事件P4下发生时:
调用时机动作I2.T9-A9(指令I2结束)、I3.T6-A6、I4.T3-A3。
公共时机事件“P5上、P5平、P5下”一直到“P7上、P7平、P7下”发生时流水线调度框架的工作如以上类似描述。
本发明实施例提供了一种基于时机动作流的模拟器装置,如图12所示,包括:
读取单元71,用于读取目标机描述模型,包括:机器周期及节拍定义文件、部件及动作定义文件、子例程重定位时机动作流定义文件以及指令时机动作流定义文件;
外部模型解析器72,根据所述目标机描述模型解析处理并转化成相应的内部模型,如图13所示,包括:
周期节拍定义解析模块721,根据机器周期及节拍定义文件解析并转化成目标机芯片机器周期以及各层次节拍的定义模型;
部件动作定义解析模块722,根据部件及动作定义文件解析并转化成目标机芯片内部部件具有的属性以及动作的定义模型;
指令时机动作流解析模块723,根据指令时机动作流定义文件解析并转化成带有时机标签的以实现指令功能的时机动作流树状模型;
子例程重定位时机动作流解析模块724,根据子例程重定位时机动作流定义文件解析并转化成带有重定位时机标签以实现子例程功能的时机动作流树状模型。
部件动作组件集73,用于在宿主机上运行的模拟目标机芯片内部部件动作实现的组件集合;
组件集成器74,用于把所述部件动作组件集集成到模拟器模型中;
流水线调度器75,用于实现流水线调度框架模型,包括:由公共时机事件的发生触发采用所述十字虚链的方式流水线式调度各指令的时机动作流,也可同样以流水线的方式在指令内部调用子例程,在宿主机上模拟执行目标机芯片内部部件动作并更新目标机虚拟资源以实现对目标机芯片指令序列的流水线式模拟运行。
进一步,流水线调度器中用于根据流水线调度框架模型以及针对目标机芯片和指令集描述的内部模型流水线式调度时机动作流,如图14所示,包括:
时机事件产生模块751,用于产生里程式公共时机事件,包括:机器周期、各层级节拍及边沿状态,描述目标机芯片晶振产生的时钟脉冲、分频器产生的各级节拍和机器周期以及边沿状态,公共时机事件的范式为:C[.R]*[.E],其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,C为机器周期全局计数,R为机器周期内各层级节拍相对计数,E为脉冲边沿状态;
流水线调度安排模块752,采用所述十字虚链的方式流水线式调度各指令的时机动作流和子例程的所述重定位时机动作流,其中纵向为所述公共时机事件描述的公共时钟脉冲,包括:由分频出的机器周期和各级节拍以及边沿状态,横向为进入的指令序列,每一项代表一条指令及其子例程,同时应对异常情况发生时的重新调度处理,比如:访存冲突、中断以及跳转等改变流水线的特殊指令;
指令时机动作流处理模块753,根据所述指令时机状态到指令时机动作流中搜索匹配对应的时机动作,通过模块755执行组件中的动作实现,或者如果调用子例程则把其重定位时机动作流叠加到指令的时机动作流中并通过模块754处理子例程中的重定位时机动作;
子例程重定位时机动作流处理模块754,根据所述子例程重定位时机状态到子例程的重定位时机动作流中搜索匹配对应的重定位时机动作,通过模块755执行组件中的动作实现。
部件动作执行模块755,根据部件及动作名到部件动作定义内部模型中索引对应的组件和部件动作实现,在宿主机上模拟执行目标机芯片内部部件动作并更新目标机虚拟资源状态。
本发明实施例提供了一种模拟器装置。首先读取单元读取目标机描述模型,然后外部模型解析器根据读取单元的目标机描述模型解析处理并转化成相应的内部模型,由组件集成器把部件动作组件集集成到模拟器模型中,读入二进制指令码流,最后,由流水线调度器对指令序列流水线式调度指令中的时机动作流和子例程中的重定位时机动作流并执行部件动作完成对目标机芯片指令集在更高精度上的流水线式模拟运行。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易做到的变化或替换,都应涵盖在本发明的保护范围内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种基于时机动作流的模拟器建模方法,其按照目标机芯片的特征描述以及指令集行为和时序的特征描述在宿主机上模拟流水式调度执行目标机程序,其特征在于,包括:
使用目标机描述模型,对目标机芯片的基本特征以及目标机指令集内的指令和子例程对应的行为操作和时序特征进行描述定义;
读取所述目标机描述模型到模拟器模型中并解析转化成内部模型;
利用部件组件集,封装目标机芯片中抽象出的内部部件动作在宿主机中模拟运行的具体实现;根据宿主机实际处理器和操作系统情况集成适配的组件集到模拟器模型中;所述内部部件包括:目标机芯片内部硬件部件或者内部抽象部件;
采用流水线调度框架,根据所述目标机描述模型描述的目标机芯片特征模型和目标机指令集模型以及输入的二进制指令码流,以流水线的方式调度指令时机动作流和子例程重定位时机动作流中的部件动作及索引到的所述部件组件集中的内部部件动作实现,在宿主机上模拟目标机流水线式执行指令代码。
2.根据权利要求1所述的模拟器建模方法,其特征在于,
所述目标机描述模型包括:
机器周期及节拍定义文件,包括:按层次定义目标机芯片的机器周期、各级节拍以及边沿状态的基本特征,包括:层次数、层次序号、层次名称、周期/节拍序号、周期/节拍名称、以及层次内周期或各级节拍数;所述边沿状态包括:脉冲的上升沿、水平和下降沿;
部件及动作定义文件,包括:定义由目标机芯片抽取出的所述内部部件集合以及每一部件具有的基本特征,包括:属性、动作、完成动作需要的机器周期或节拍数以及到达特定所述部件组件集的索引;
指令时机动作流定义文件,包括:针对目标机芯片指令集内每一指令多维度描述定义为完成指令功能而调用的内部部件动作流、特殊场合下向所述流水线调度框架发送关于调度安排的通知事件以及在调用所述内部部件动作时和发送通知事件时标注时机标签;
子例程重定位时机动作流定义文件,包括:定义为功能内聚目的而封装的一部分内部部件动作流、特殊场合下向所述流水线调度框架发送关于调度安排的通知事件以及在调用所述内部部件动作时和发送通知事件时标注重定位时机标签。
3.根据权利要求2所述的模拟器建模方法,其特征在于,包括:
所述动作流具体为:把指令或子例程分解成一组目标机芯片内部部件动作集合,为完成功能,所述指令时机动作流定义文件或所述子例程重定位时机动作流定义文件需描述对部件动作的调用序列,即在调用部件动作之间加入流程控制包括:顺序、选择、循环以及调用子例程;
所述时机标签用来标注指令中调用所述部件动作或发送通知事件的相对时机点,由指令字、起始周期/节拍、以及所述边沿状态组成;所述时机标签的范式为:“[I.]LC[.R]*[.E]”,其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,“I”为指令字序数,如不出现默认是单指令字,“LC”为机器周期在指令周期内的序数或名称,“R”为各层级节拍的序数或名称,“E”为脉冲边沿状态;所述起始周期/节拍包括:机器周期和各级节拍的序数或名称;所述时机标签和所述部件动作组成时机动作;由所述时机动作和所述流程控制组成所述时机动作流;
所述重定位时机标签用来标注子例程中调用的所述部件动作或发送通知事件的需要重新调整定位的相对时机点,由所述指令字、所述起始周期/节拍、以及所述边沿状态组成;所述重定位时机标签的范式为:“[I.]LC[.R]*[.E]”,其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,“I”为指令字序数,如不出现默认是单指令字,“LC”为机器周期在指令周期内的序数或名称,“R”为各层级节拍的序数或名称,“E”为脉冲边沿状态;所述重定位时机标签和所述部件动作组成重定位时机动作;由所述重定位时机动作和所述流程控制组成所述重定位时机动作流。
4.根据权利要求1所述的模拟器建模方法,其特征在于,
所述流水线调度框架包括:
多维度划分指令和子例程在目标机芯片中各个内部部件之间的执行过程,包括:所述时机标签表示的调用时机、调用或触发所述内部部件动作、执行所述内部部件动作具体实现、以及所述流程控制描述的当前和后续动作之间的关系,供所述流水线调度框架进行流水线调度管理;
利用在指令寻址和执行阶段的具体运行过程中发送针对所述流水线调度框架的调度安排通知事件和在所述流水线调度框架中接收所述通知事件并作相应处理的机制,以供所述流水线调度框架进行动态重新调度管理,引起所述重新调度的所述事件包括:追加指令字、访存冲突、跳转等改变流水线调度的指令;
采用根据所述机器周期及节拍定义文件定义的公共时机事件来描述目标机芯片时钟脉冲,包括:里程式公共机器周期、各级节拍及边沿状态;所述公共时机事件的范式为:“C[.R]*[.E]”,其中,“.”为分隔符,“[]”为括号包含部分出现0次或1次,“[]*”为括号包含部分出现0次或n次,n>=1,“C”为机器周期全局计数,“R”为各层级节拍相对计数,“E”为脉冲边沿状态;
新进入所述流水线调度框架的指令以机器周期为对齐基准,使用指令机器周期戳来记录当时所述公共时机事件中的所述机器周期全局计数作为该指令的基准机器周期计数;该指令的时机状态表示为:所述公共时机事件–所述指令机器周期戳;该指令所处的执行阶段可以表示为:所述公共时机事件.所述机器周期全局计数–所述指令机器周期戳。
5.根据权利要求4所述的模拟器建模方法,其特征在于,包括:
所述流水线调度框架采用十字虚链管理要调度的所述时机动作流和所述重定位时机动作流,其中纵向为所述公共时机事件描述的公共时钟脉冲,包括:分频出的机器周期和各级节拍以及所述边沿状态,横向为进入所述流水线调度框架的滑动窗口中的指令序列,每一项代表一条指令及其子例程;
所述流水线调度框架使用时机动作流树状模型来描述所述时机动作流和所述重定位时机动作流,使用动作计数记录由根节点到叶子节点的执行过程中当前节点索引;每一节点代表所述部件动作和触发时机,节点与节点之间采用所述流程控制来决定其关系,包括:
顺序,后节点是前节点的直接后继;
选择,后续节点处在以某节点为根的某分支中;
循环,具有有限重复次数的特殊所述选择分支;
调用子例程,对齐子例程的所述重定位时机动作流叠加入所述时机动作流以流水线方式调度执行,包括:使用子例程节拍戳记录子例程被调用时的时机点,包括:机器周期和各级节拍;以所述子例程节拍戳为对齐基准把子例程中的所述重定位时机动作流叠加到指令的所述时机动作流中,一并以流水线方式调度执行;子例程重定位时机状态表示为:所述指令时机状态-所述子例程节拍戳。
6.一种基于时机动作流模拟器装置,其特征在于,包括:
读取单元,用于读取目标机描述模型;
外部模型解析器,根据所述目标机描述模型描述的外部模型解析处理并转化成内部模型,包括:周期节拍定义解析模块,根据所述机器周期及节拍定义文件解析转化成目标机机器周期以及各层次节拍的定义结构;部件动作定义解析模块,根据所述部件及动作定义文件解析转化成目标机芯片内部部件具有的属性以及动作的定义结构;指令时机动作流解析模块,根据所述指令时机动作流定义文件解析转化成带有时机标签的以实现指令功能的时机动作流树状模型;子例程重定位时机动作流解析模块,根据所述子例程重定位时机动作流定义文件解析转化成带有重定位时机标签的实现子例程功能的时机动作流树状模型;
部件动作组件集,用于在宿主机上运行的模拟目标机芯片内部部件动作具体实现的组件集合;
组件集成器,用于根据宿主机处理器和操作系统情况集成适配的所述部件动作组件集到模拟器模型中;所述集成包括:组件以脚本文件形式解析、组件以源码文件形式编译链接、组件以库文件形式链接、组件以插件形式加载、组件以固件形式接入;
流水线调度器,用于实现流水线调度框架模型,采用十字虚链方式管理调度指令的所述时机动作流和子例程的所述重定位时机动作流,包括:时机事件产生模块、流水线调度安排模块、指令时机动作流处理模块、子例程重定位时机动作流处理模块以及部件动作执行模块。
7.根据权利要求6所述的基于时机动作流模拟器装置,其特征在于,包括:
所述指令时机动作流解析模块具体为:根据所述指令时机动作流定义文件,针对目标机芯片的指令集内每一指令解析并转化成所述时机动作流树状模型,并且多维度描述定义为完成指令功能而调用的部件动作流、特殊场合下向所述流水线调度器发送关于调度安排的通知事件以及在调用所述部件动作时和发送所述通知事件时标注时机标签;
所述子例程重定位时机动作流解析模块具体为:根据所述子例程重定位时机动作流定义文件,针对每一子例程解析并转化成所述时机动作流树状模型,并且多维度描述定义为完成子例程功能而调用的部件动作流、特殊场合下向所述流水线调度器发送关于调度安排的通知事件以及在调用所述部件动作时和发送所述通知事件时标注重定位时机标签。
8.根据权利要求6或7所述的模拟器装置,其特征在于,包括:
所述时机标签表示调用所述部件动作或发送所述通知事件的时机点,由所述指令字、所述起始周期/节拍和所述边沿状态组成的触发时机;所述时机标签和所述部件动作组成时机动作;由所述时机动作和流程控制组成时机动作流;
所述重定位时机标签表示调用所述部件动作或发送所述通知事件的重定位时机点,由所述指令字、所述起始周期/节拍和所述边沿状态组成的触发时机;所述重定位时机标签和所述部件动作组成重定位时机动作;由所述重定位时机动作和流程控制组成重定位时机动作流。
9.根据权利要求6所述的模拟器装置,其特征在于,包括:
所述采用十字虚链方式管理调度指令的所述时机动作流和子例程的所述重定位时机动作流,其中纵向为所述公共时机事件描述的公共时钟脉冲,包括:由分频出的机器周期和各级节拍以及边沿状态,横向为进入流水线调度器的滑动窗口中的指令序列,每一项代表一条指令及其子例程,其包含所述指令机器周期戳用来记录该指令的基准机器周期计数;
所述外部模型解析器和所述流水线调度器使用所述时机动作流树状模型来描述所述时机动作流或所述重定位时机动作流,使用动作计数记录根节点到叶子节点的执行过程中当前节点的索引;每一节点代表部件动作和触发时机,节点之间采用所述流程控制表征关系,包括:
顺序,后节点是前节点的直接后继;
选择,后续节点处在以某节点为根的某分支中;
循环,具有有限重复次数的特殊所述选择分支;
调用子例程,对齐子例程的所述重定位时机动作流叠加入所述时机动作流以流水线方式调度执行,包括:使用所述子例程节拍戳记录子例程被调用时的时机点,包括:机器周期和各级节拍;以所述子例程节拍戳为对齐基准把子例程中的所述重定位时机动作流叠加到指令的所述时机动作流中,一并以流水线方式调度执行;所述子例程重定位时机状态表示为:所述指令时机状态-所述子例程节拍戳。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110807511.4A CN113515348B (zh) | 2021-07-16 | 2021-07-16 | 一种基于时机动作流的模拟器建模方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110807511.4A CN113515348B (zh) | 2021-07-16 | 2021-07-16 | 一种基于时机动作流的模拟器建模方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113515348A true CN113515348A (zh) | 2021-10-19 |
CN113515348B CN113515348B (zh) | 2023-11-14 |
Family
ID=78067379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110807511.4A Active CN113515348B (zh) | 2021-07-16 | 2021-07-16 | 一种基于时机动作流的模拟器建模方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113515348B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117149359A (zh) * | 2023-10-27 | 2023-12-01 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
CN117369867A (zh) * | 2023-09-28 | 2024-01-09 | 中国人民解放军国防科技大学 | 面向指令集及工具链自动生成的指令集架构模型描述方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312311A (ja) * | 1997-05-13 | 1998-11-24 | Mitsubishi Electric Corp | 論理シミュレーション方法及び論理シミュレーション方法を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US5949993A (en) * | 1997-10-31 | 1999-09-07 | Production Languages Corporation | Method for the generation of ISA simulators and assemblers from a machine description |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
CN1506809A (zh) * | 2002-12-12 | 2004-06-23 | 松下电器产业株式会社 | 模拟装置、模拟方法及程序 |
CN1581098A (zh) * | 2004-05-20 | 2005-02-16 | 北京大学 | 模拟器构造方法 |
CN1975693A (zh) * | 2006-12-13 | 2007-06-06 | 南开大学 | 具有自驱动功能的指令仿真解析系统及其实现方法 |
US7313773B1 (en) * | 2004-05-26 | 2007-12-25 | Coware, Inc. | Method and device for simulator generation based on semantic to behavioral translation |
CN101561833A (zh) * | 2009-05-08 | 2009-10-21 | 东南大学 | 专用指令集处理器的设计方法 |
US7702499B1 (en) * | 2000-05-02 | 2010-04-20 | Cadence Design Systems, Inc. | Systems and methods for performing software performance estimations |
US20120185820A1 (en) * | 2011-01-19 | 2012-07-19 | Suresh Kadiyala | Tool generator |
CN104361182A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于Petri网的微处理器微体系结构参数优化方法 |
CN109690536A (zh) * | 2017-02-16 | 2019-04-26 | 华为技术有限公司 | 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和系统 |
CN109683962A (zh) * | 2017-10-18 | 2019-04-26 | 深圳市中兴微电子技术有限公司 | 一种指令集模拟器流水线建模的方法及装置 |
-
2021
- 2021-07-16 CN CN202110807511.4A patent/CN113515348B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10312311A (ja) * | 1997-05-13 | 1998-11-24 | Mitsubishi Electric Corp | 論理シミュレーション方法及び論理シミュレーション方法を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体 |
US5949993A (en) * | 1997-10-31 | 1999-09-07 | Production Languages Corporation | Method for the generation of ISA simulators and assemblers from a machine description |
US6263302B1 (en) * | 1999-10-29 | 2001-07-17 | Vast Systems Technology Corporation | Hardware and software co-simulation including simulating the cache of a target processor |
US7702499B1 (en) * | 2000-05-02 | 2010-04-20 | Cadence Design Systems, Inc. | Systems and methods for performing software performance estimations |
CN1506809A (zh) * | 2002-12-12 | 2004-06-23 | 松下电器产业株式会社 | 模拟装置、模拟方法及程序 |
CN1581098A (zh) * | 2004-05-20 | 2005-02-16 | 北京大学 | 模拟器构造方法 |
US7313773B1 (en) * | 2004-05-26 | 2007-12-25 | Coware, Inc. | Method and device for simulator generation based on semantic to behavioral translation |
CN1975693A (zh) * | 2006-12-13 | 2007-06-06 | 南开大学 | 具有自驱动功能的指令仿真解析系统及其实现方法 |
CN101561833A (zh) * | 2009-05-08 | 2009-10-21 | 东南大学 | 专用指令集处理器的设计方法 |
US20120185820A1 (en) * | 2011-01-19 | 2012-07-19 | Suresh Kadiyala | Tool generator |
CN104361182A (zh) * | 2014-11-21 | 2015-02-18 | 中国人民解放军国防科学技术大学 | 基于Petri网的微处理器微体系结构参数优化方法 |
CN109690536A (zh) * | 2017-02-16 | 2019-04-26 | 华为技术有限公司 | 将多核指令踪迹从虚拟平台仿真器取到性能模拟模型的方法和系统 |
CN109683962A (zh) * | 2017-10-18 | 2019-04-26 | 深圳市中兴微电子技术有限公司 | 一种指令集模拟器流水线建模的方法及装置 |
Non-Patent Citations (3)
Title |
---|
DI XIANG LIM ET AL: ""Pipelined MIPS Simulation: A plug-in to MARS simulator for supporting pipeline simulation and branch prediction"", 《2019 IEEE INTERNATIONAL CONFERENCE ON ENGINEERING, TECHNOLOGY AND EDUCATION (TALE)》 * |
路放;安虹;梁博;任建;: "OpenSMT:一个同时多线程处理器模拟器的设计和实现", 计算机科学, no. 01 * |
高翔;张福新;汤彦;章隆兵;胡伟武;唐志敏;: "基于龙芯CPU的多核全系统模拟器SimOS-Goodson", 软件学报, no. 04 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117369867A (zh) * | 2023-09-28 | 2024-01-09 | 中国人民解放军国防科技大学 | 面向指令集及工具链自动生成的指令集架构模型描述方法 |
CN117149359A (zh) * | 2023-10-27 | 2023-12-01 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
CN117149359B (zh) * | 2023-10-27 | 2024-01-26 | 大尧信息科技(湖南)有限公司 | 一种面向数据链设备的软件定义仿真模拟开发平台及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113515348B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Engblom | Processor pipelines and static worst-case execution time analysis | |
Ermedahl | A modular tool architecture for worst-case execution time analysis | |
US9411559B2 (en) | Resolution of textual code in a graphical hierarchical model of a technical computing environment | |
Cimatti et al. | Software model checking SystemC | |
US7779393B1 (en) | System and method for efficient verification of memory consistency model compliance | |
US20020152061A1 (en) | Data processing system and design system | |
CN113515348B (zh) | 一种基于时机动作流的模拟器建模方法及装置 | |
Iman et al. | The e hardware verification language | |
Sarkar et al. | LightningSim: Fast and accurate trace-based simulation for High-Level Synthesis | |
Su et al. | MDD: A unified model-driven design framework for embedded control software | |
Posadas et al. | POSIX modeling in SystemC | |
Diaz et al. | VIPPE, parallel simulation and performance analysis of multi-core embedded systems on multi-core platforms | |
Fitzgerald et al. | Validation support for distributed real-time embedded systems in vdm++ | |
Iwanicki et al. | Bringing modern unit testing techniques to sensornets | |
Broenink et al. | Schedulability analysis of timed CSP models using the pat model checker | |
Cornaglia et al. | JIT-based context-sensitive timing simulation for efficient platform exploration | |
Hassine et al. | An evaluation of timed scenario notations | |
Eumann | Model-based debugging | |
Ferdinand et al. | Towards Model-Driven Development of Hard Real-Time Systems: Integrating ASCET and aiT/StackAnalyzer | |
CN114153750B (zh) | 代码检查方法及装置、代码编写方法、电子设备 | |
Cho et al. | Case study: verification framework of Samsung reconfigurable processor | |
Gargantini et al. | A model-driven validation & verification environment for embedded systems | |
Cornaglia | Early Timing Exploration of Embedded Software for Heterogeneous Platforms | |
Jerabek et al. | Static worst-case execution time analysis tool development for embedded systems software | |
Rüegg et al. | Interactive transformations for visual models. |
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 |