CN103870248A - 一种指令集仿真缓冲区动态自适应技术 - Google Patents
一种指令集仿真缓冲区动态自适应技术 Download PDFInfo
- Publication number
- CN103870248A CN103870248A CN201410080738.3A CN201410080738A CN103870248A CN 103870248 A CN103870248 A CN 103870248A CN 201410080738 A CN201410080738 A CN 201410080738A CN 103870248 A CN103870248 A CN 103870248A
- Authority
- CN
- China
- Prior art keywords
- buffer zone
- stage
- executing
- setting
- initial setting
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公布了一种指令集仿真缓冲区动态自适应技术,其特征在于:包括三个流程:执行前初始设置阶段、执行过程阶段和执行后新初始设置阶段;执行前初始设置阶段:嵌入式全数字仿真软件在运行目标应用程序之前,缓冲区具有默认设置功能,设置默认设置;执行过程阶段:执行过程是一个缓冲区不断调整的动态过程,即步骤为:执行、性能反馈、更新设置、执行;循环经过N次迭代,最终完成执行过程,同时实现缓冲区的合理设置;本发明在各种处理器仿真软件中广泛使用,包括解释执行、二进制翻译等,针对取指、译码和运行结果,都可以进行缓存,利用程序的局部性进行复用,能够显著提高数字化仿真的性能。
Description
技术领域
本发明属于计算机仿真技术领域,具体地说,涉及一种指令集仿真缓冲区动态自适应技术。
背景技术
嵌入式计算机系统数字化仿真技术在软件开发和测试工作中广泛引用,在硬件设备不具备或资源受限情况下,能够快速构件纯软件模拟的虚拟设备,使得开发人员提前进行软件开发测试;此外,由于计算机系统数字化仿真能够将运行过程的所有信息显示和记录,相对于硬件具有更好的可观察性。数字化仿真广泛使用的主要阻碍是仿真速度,由于硬件是高速并行执行,目前微处理器的执行频率可以达到数GHz以上,而数字化仿真则采用软件方法串行的执行过程,通常硬件一个时钟节拍执行完成的指令,软件仿真开销则要高一个或两个数量级。
数字仿真的核心是指令集,即仿真目标处理器每一条指令都必须通过软件的方式重新实现,尤其是为达到时钟精确的微结构仿真,取指、译码、读操作系统、执行、访存和写回寄存器等流水操作都是主要的性能损耗,因为每一条指令都需要经历这些过程。
根据统计经验,软件运行具有时间局部性和空间局部性。空间局部性是指后续执行所使用代码和数据很大可能位于当前代码和数据附近,时间局部性是指当前执行所使用的代码和数据很大可能将被立即重复使用。嵌入式系统全数字仿真工具需要模拟所有的处理器指令集,为充分利用时间局部性,将已经执行结束的指令译码信息进行保存,能够避免重复操作,实践证明,译码缓冲能 够显著提高仿真性能。但是译码缓冲区大小设置却没有好的设置方式,不同应用领域差异显著。作为通用的数字化仿真工具,在面临不合适大小的缓冲区时,可能造成无法利用局部性执行信息等后果,造成仿真性能下降。
发明内容
为解决背景技术中的问题,本发明提供了一种指令集仿真缓冲区动态自适应技术,满足不同类型的应用需求,使得数字化仿真工具能够作为通用产品,提出指令集仿真缓冲区动态自适应技术,实现资源利用和性能优化的最佳权衡。
本发明的技术方案是:
一种指令集仿真缓冲区动态自适应技术,其特征在于:包括三个流程:执行前初始设置阶段、执行过程阶段和执行后新初始设置阶段;
执行前初始设置阶段:嵌入式全数字仿真软件在运行目标应用程序之前,缓冲区具有默认设置功能,设置默认设置;
执行过程阶段:执行过程是一个缓冲区不断调整的动态过程,即步骤为:执行、性能反馈、更新设置、执行;循环经过N(N为大于1的整数)次迭代,最终完成执行过程,同时实现缓冲区的合理设置;
执行后新初始设置阶段:在整个应用运行结束后,根据执行过程对缓冲区设置信息,形成针对该应用的新初始设置,在下一次运行该应用时能够基于新设置运行,实现资源和性能的平衡。
在执行过程阶段中,缓冲区动态调整的粒度可以在指令级,根据当前性能统计结果信息,增减缓冲区资源,性能统计的结果可以是单周期内执行的指令数。
由于采用了上述技术方案,与现有技术相比较,本发明在各种处理器仿真软件中广泛使用,包括解释执行、二进制翻译等,针对取指、译码和运行结果, 都可以进行缓存,利用程序的局部性进行复用,能够显著提高数字化仿真的性能。
指令集缓冲区合理设置维问题,满足不同类型的应用需求,使得数字化仿真工具能够作为通用产品,提出本发明实现资源利用和性能优化的最佳权衡。
附图说明
图1为本发明一种实施例的指令集仿真缓冲区动态自适应技术示意图;
图2为本发明一种实施例的指令级动态自适应方法示意图;
图3为本发明一种实施例的任务级动态自适应方法示意图;
图4为本发明一种实施例的应用信息制导动态自适应示意图。
具体实施方式
实施例
如图1所示,一种指令集仿真缓冲区动态自适应技术,其特征在于:包括三个流程:执行前初始设置阶段、执行过程阶段和执行后新初始设置阶段。
执行前初始设置阶段:嵌入式全数字仿真软件在运行目标应用程序之前,缓冲区具有默认设置功能,设置默认设置。
执行过程阶段:执行过程是一个缓冲区不断调整的动态过程,即步骤为:执行、性能反馈、更新设置、执行;循环经过N(N为大于1的整数)次迭代,最终完成执行过程,同时实现缓冲区的合理设置。
执行后新初始设置阶段:在整个应用运行结束后,根据执行过程对缓冲区设置信息,形成针对该应用的新初始设置,在下一次运行该应用时能够基于新设置运行,实现资源和性能的平衡。
在执行过程阶段中,缓冲区动态调整的粒度可以在指令级,根据当前性能统计结果信息,增减缓冲区资源,性能统计的结果可以是单周期内执行的指令 数。
针对缓冲区动态自适应过程,执行过程的反馈回路和更新设置具有不同的实现层次,包括指令级和任务级,同时也可以是应用信息制导的动态自适应方式,本节针对不同的实现方式分别阐述。
方法一:指令级动态自适应
根据基本原理,缓冲区动态调整的粒度可以在指令级,如图2所示,每执行1000000条指令,根据当前性能统计结果信息,增减缓冲区资源;性能统计的结果可以是单周期内执行的指令数。
方法二:任务级动态自适应
如图3所示,对于较大的应用可以采用指令级动态自适应的方法,但是针对较小的应用,运行过程比较单一,可以执行完整任务后,根据性能结果增减缓冲区资源分配,经过多个回合迭代可以实现最优的初始资源设置。
方法三:信息制导动态自适应
方法一和方法二都是自动识别缓冲区对仿真运行性能的过程,如果全数字仿真软使用者对目标软件的特征十分熟悉,可以在程序运行之前对程序进行分阶段进行资源分配制导,如图4所示。
制导信息范例如下:
10000时钟周期,256指令缓冲区
300000时钟周期,1024指令缓冲区
500000时钟周期,512指令缓冲区
……
上述示例应用程序制导信息通知全数字仿真软件,在运行10000时钟周期时,将缓冲区更新为256,而300000时钟周期时,将指令缓冲区增加至1024, 而在500000时钟周期时,将缓冲区减少至512。
由于采用了上述技术方案,与现有技术相比较,本发明在各种处理器仿真软件中广泛使用,包括解释执行、二进制翻译等,针对取指、译码和运行结果,都可以进行缓存,利用程序的局部性进行复用,能够显著提高数字化仿真的性能。
本发明不局限于上述的优选实施方式,任何人应该得知在本发明的启示下做出的变化,凡是与本发明具有相同或者相近似的技术方案,均属于本发明的保护范围。
Claims (2)
1.一种指令集仿真缓冲区动态自适应技术,其特征在于:包括三个流程:执行前初始设置阶段、执行过程阶段和执行后新初始设置阶段;
执行前初始设置阶段:嵌入式全数字仿真软件在运行目标应用程序之前,缓冲区具有默认设置功能,设置默认设置;
执行过程阶段:执行过程是一个缓冲区不断调整的动态过程,即步骤为:执行、性能反馈、更新设置、执行;循环经过N(N为大于1的整数)次迭代,最终完成执行过程,同时实现缓冲区的合理设置;
执行后新初始设置阶段:在整个应用运行结束后,根据执行过程对缓冲区设置信息,形成针对该应用的新初始设置,在下一次运行该应用时能够基于新设置运行,实现资源和性能的平衡。
2.根据权利要求1中所述的指令集仿真缓冲区动态自适应技术,其特征在于:在执行过程阶段中,缓冲区动态调整的粒度可以在指令级,根据当前性能统计结果信息,增减缓冲区资源,性能统计的结果可以是单周期内执行的指令数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410080738.3A CN103870248A (zh) | 2014-03-06 | 2014-03-06 | 一种指令集仿真缓冲区动态自适应技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410080738.3A CN103870248A (zh) | 2014-03-06 | 2014-03-06 | 一种指令集仿真缓冲区动态自适应技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103870248A true CN103870248A (zh) | 2014-06-18 |
Family
ID=50908822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410080738.3A Pending CN103870248A (zh) | 2014-03-06 | 2014-03-06 | 一种指令集仿真缓冲区动态自适应技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103870248A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615413A (zh) * | 2015-02-13 | 2015-05-13 | 赛诺威盛科技(北京)有限公司 | 一种流水线任务自适应并行方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711086B2 (en) * | 2001-10-23 | 2004-03-23 | Matsushita Electric Industrial Co., Ltd. | Multiport semiconductor memory with different current-carrying capability between read ports and write ports |
CN101110661A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 电路仿真系统的抖动缓存调整方法 |
CN101477472A (zh) * | 2009-01-08 | 2009-07-08 | 上海交通大学 | 动态二进制翻译器中热路径的多核多线程构建方法 |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
US20120271615A1 (en) * | 2011-04-21 | 2012-10-25 | International Business Machines Corporation | Fast emulation of virtually addressed control flow |
CN103150197A (zh) * | 2013-02-07 | 2013-06-12 | 浙江大学 | 基于静态划分的代码Cache管理方法 |
-
2014
- 2014-03-06 CN CN201410080738.3A patent/CN103870248A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711086B2 (en) * | 2001-10-23 | 2004-03-23 | Matsushita Electric Industrial Co., Ltd. | Multiport semiconductor memory with different current-carrying capability between read ports and write ports |
CN101110661A (zh) * | 2007-07-23 | 2008-01-23 | 中兴通讯股份有限公司 | 电路仿真系统的抖动缓存调整方法 |
CN101477472A (zh) * | 2009-01-08 | 2009-07-08 | 上海交通大学 | 动态二进制翻译器中热路径的多核多线程构建方法 |
US20120271615A1 (en) * | 2011-04-21 | 2012-10-25 | International Business Machines Corporation | Fast emulation of virtually addressed control flow |
CN102227121A (zh) * | 2011-06-21 | 2011-10-26 | 中国科学院软件研究所 | 基于机器学习的分布式缓存策略自适应切换方法及系统 |
CN103150197A (zh) * | 2013-02-07 | 2013-06-12 | 浙江大学 | 基于静态划分的代码Cache管理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104615413A (zh) * | 2015-02-13 | 2015-05-13 | 赛诺威盛科技(北京)有限公司 | 一种流水线任务自适应并行方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104392174B (zh) | 应用程序动态行为的特征向量的生成方法及装置 | |
WO2021057252A1 (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN104317749A (zh) | 信息写入方法和装置 | |
US7895417B2 (en) | Select-and-insert instruction within data processing systems | |
WO2018063668A1 (en) | Techniques to determine and mitigate latency in virtual environments | |
TW201346732A (zh) | 指示可變長度指令集的指令長度之技術 | |
WO2017014892A1 (en) | Mixed-width simd operations having even-element and odd-element operations using register pair for wide data elements | |
JP2022136234A (ja) | 連合学習方法及び装置、電子機器、記憶媒体ならびにコンピュータプログラム | |
CN107077424B (zh) | 用于检测在第一阶指令高速缓冲存储器中的恶意代码的集成电路和方法 | |
CN104020982A (zh) | 具有高效返回预测能力的分支目标缓冲器 | |
CN108228242B (zh) | 一种可配置且具弹性的指令调度器 | |
CN103870248A (zh) | 一种指令集仿真缓冲区动态自适应技术 | |
CN105144084A (zh) | 提高处理器中返回分支指令的执行速度的方法 | |
CN105260084A (zh) | 输入序列的处理方法及装置 | |
US20120265515A1 (en) | Method and system and computer program product for accelerating simulations | |
CN106709861B (zh) | 一种染色器驱动静态重构方法 | |
CN103309690A (zh) | 处理数据的方法和电子设备 | |
KR101674324B1 (ko) | 실시간 제어 응용에 적용되는 태스크 스케쥴링 장치 및 방법 | |
KR20210100076A (ko) | 벡터 술어 요약 생성 | |
CN111753990A (zh) | 一种量子计算机模拟环境方法、设备及介质 | |
CN105635806A (zh) | 群体运动场景的渲染方法 | |
US9857424B2 (en) | Automated test equipment, instruction provider for providing a sequence of instructions, method of providing signal to a device under test, method for providing a sequence of instructions and test system | |
JP6223637B2 (ja) | シミュレーション装置及びシミュレーション方法及びシミュレーションプログラム | |
CN102460399A (zh) | 输入补偿计算和/或输入过补偿计算 | |
CN106204158A (zh) | 一种调整广告投放频次的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140618 |