CN110688289A - 一种基于仿真的处理器性能事件动态监测方法 - Google Patents
一种基于仿真的处理器性能事件动态监测方法 Download PDFInfo
- Publication number
- CN110688289A CN110688289A CN201910859116.3A CN201910859116A CN110688289A CN 110688289 A CN110688289 A CN 110688289A CN 201910859116 A CN201910859116 A CN 201910859116A CN 110688289 A CN110688289 A CN 110688289A
- Authority
- CN
- China
- Prior art keywords
- data
- performance
- performance event
- control unit
- unit
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及一种基于仿真的处理器性能事件动态监测方法,包括以下步骤:在硬件仿真器上建立处理器芯片的系统级仿真验证环境;对各种性能事件的统计类型进行分类,并使用性能事件监测模块中不同的性能事件采集单元对不同类型的性能事件进行监测;在硬件仿真器的性能事件监测模块中设置轮转缓冲控制单元来控制性能事件采集单元的数据记录和存储;所述轮转缓冲控制单元中的计数器,所述计数器根据时钟上升沿自动累加,当累加值与采样间隔周期相等时,所述轮转缓冲控制单元将这段时间累加记录的性能事件数据写入数据缓冲单元中。本发明能够用较短的时间得到大量完整、全面、动态的性能事件数据结果。
Description
技术领域
本发明涉及处理器性能测试技术领域,特别是涉及一种基于仿真的处理器性能事件动态监测方法。
背景技术
设计一款高性能处理器芯片需要综合考虑性能、功耗、面积等多方面的因素,其中性能决定了芯片的运算能力及工作效率,是芯片设计的一个重要目标,也是衡量芯片设计水平的一个基本指标。在芯片设计过程中,开发快速、灵活、有效的性能监测技术,可以帮助设计者定位设计中的性能瓶颈,进而指导芯片的设计及优化,对提高芯片性能、缩短研发周期有着极其重要的意义。
传统常见的性能分析方式主要为基于模型分析、基于性能模拟器、基于性能测试三种方式。
模型分析方法要求建立数学模型,用若干参数来表示影响程序性能的因素,然后通过对程序结构进行静态分析,估计这些参数的值,进而预测程序性能。
性能模拟器方法一般实现了机器的微体系结构,能够模拟机器内部操作。模拟器以可执行程序、经过某种编译变换得到的程序或者程序执行所产生的Trace数据为输入,虚拟地执行它们,并记录与统计性能事件,从而获得一些与体系结构相关的性能数据。
性能测试方法在程序实际运行时收集性能数据,然后进行统计分析。这种方法主要分为两大类,一类只基于计时器,称其为计时方法,使用计时器来测试程序特定部分或整个程序的执行时间;另一类基于硬件性能监测机制,利用处理器中有特殊的硬件装置的支持,在程序执行过程中,对机器内部行为进行监视与统计,获得与体系结构紧密相关的性能数据。
上述传统的三种性能分析方式均有各自的缺点:基于性能分析方法是基于一些模型或者经验假设,但很多假设并不成立,此外分析方法难以针对复杂程序进行,不能提供准确的性能数据;基于性能模拟器方法的运行速度比实际执行程序的速度慢很多,机器开销难以承受;基于性能测试方法受到硬件计数器限制,不能测试多种性能事件,而且只能得到单纯的某段时间内的最终结果,无法反应处理器性能的动态变化。
发明内容
本发明所要解决的技术问题是提供一种基于仿真的处理器性能事件动态监测方法,能够用较短的时间得到大量完整、全面、动态的性能事件数据结果。
本发明解决其技术问题所采用的技术方案是:提供一种基于仿真的处理器性能事件动态监测方法,包括以下步骤:
(1)在硬件仿真器上建立处理器芯片的系统级仿真验证环境;
(2)对各种性能事件的统计类型进行分类,并使用性能事件监测模块中不同的性能事件采集单元对不同类型的性能事件进行监测;
(3)在硬件仿真器的性能事件监测模块中设置轮转缓冲控制单元来控制性能事件采集单元的数据记录和存储;
(4)所述轮转缓冲控制单元中的计数器,所述计数器根据时钟上升沿自动累加,当累加值与采样间隔周期相等时,所述轮转缓冲控制单元将这段时间累加记录的性能事件数据写入数据缓冲单元中。
所述步骤(2)中性能事件的统计类型分为:针对信号有效次数计数、针对信号出现比率计数、针对多位信号累加计数和针对信号高低电平持续时间计数。
所述步骤(3)中轮转缓冲控制单元中有记录开关信号,当记录开关信号为开时,每当性能事件采集单元触发到性能事件的行为变化时,就会将信号信息传递到所述轮转缓冲控制单元中,所述轮转缓冲控制单元会进行数据的记录和累加。
所述步骤(4)中的数据缓冲单元设置有两个,在一个数据缓冲单元被写满并正在进行数据下载导出时,则会使用另一个数据缓冲单元记录之后产生的新的性能事件数据。
所述数据缓冲单元的写地址与设置的数据缓冲深度相等时,所述轮转缓冲控制单元判定所述数据缓冲单元被写满,并对所述数据缓冲单元进行数据下载导出。
在对所述数据缓冲单元进行数据下载导出时,所述轮转缓冲控制单元会根据记录的性能事件类型在数据文件名称上添加类型号,同时在产生多个数据文件时,会根据文件产生的先后在数据文件的名称上添加顺序编号。
所述步骤(4)中的采样间隔周期设置为不同性能事件采集单元的时钟的最大公倍数。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明使用的是无修改的真实设计代码进行性能测试和分析,保证性能测试结果精准可靠;本发明可以在硬件仿真加速器验证平台上实现和运行,既比软件模拟测试运行的速度快,又比实际芯片测试获得的信息多。本发明使用的性能监测模块统计类型丰富、覆盖性能事件多、可重用好、可扩展性强,可以以最少的工作量实现最全面的性能事件监测,得到的数据量大、类型全面,并且通过使用缓冲轮转操作,保证了数据文件的准确性,同时根据数据对应的性能事件和数据产生的顺序,可以对数据文件添加类型号和顺序号,方便后期数据的处理和分析。本发明可以对性能事件的行为信息在可调的时间间隔内进行采样统计,从而得到反映性能事件在测试过程中的动态变化趋势。
附图说明
图1是本发明的性能事件动态监测环境总体结构图;
图2是本发明中的性能事件监测模块示意图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种基于仿真的处理器性能事件动态监测方法,该方法使用多个可重用的性能事件监测模块,可以对多种统计类型的性能事件进行监测,并在测试基准运行过程中每隔可选择的时间进行数据的记录,同时该方法可以在硬件仿真器上以很高的运行速度进行测试,最终可以用较短的时间,得到大量完整、全面、动态的性能事件数据结果,从而实现对处理器性能进行分析,找出性能瓶颈并指导性能优化和处理器设计,具体包括以下步骤:
1.如图1所示,在硬件仿真器上建立处理器芯片的系统级仿真验证环境;
2.将各种性能事件的统计类型分为多类,具体为:针对信号有效次数计数、针对信号出现比率计数、针对多位信号累加计数和针对信号高低电平持续时间计数等。根据不同的统计类型,使用性能事件监测模块中不同的性能事件采集单元对各种性能事件的行为变化进行监测。本实施方式针对多种性能事件统计类型,对性能事件进行行为监测和数据获取,可以覆盖常见的所有性能事件记录需求,可重用性好、可扩展性强。
3.在性能事件监测模块中设置轮转缓冲控制单元来控制性能事件采集单元的数据记录和存储。在轮转缓冲控制单元中设有记录开关信号,当此记录开关信号为开时,每当性能事件采集模块触发到性能事件的行为变化时,就会将信号信息传递到轮转缓冲控制单元中,轮转缓冲控制单元会进行数据的记录和累加。
4.轮转缓冲控制单元中设置一个计数器,该计数器根据时钟上升沿自动累加,当累加值与采样间隔周期相等时,轮转缓冲控制单元将这段时间累加记录的性能事件数据写入数据缓冲单元中。本实施方式中的采样间隔周期可以根据测试需求进行灵活设置,也可以设置为不同性能事件采集单元时钟的最大公倍数,来保证在不同时钟域的各性能事件的采集数据个数能够一一对应。
值得一提的是,本实施方式中数据缓冲单元设置有两个,在一个数据缓冲单元被写满并正在进行数据下载导出时,则会使用的另外一个数据缓冲单元,来记录之后产生的新数据。两个数据缓冲单元进行轮转操作,防止有数据遗失或异常。
本实施方式的轮转缓冲控制单元将这段时间累加记录的性能事件数据写入数据缓冲单元前,所述轮转缓冲控制单元通过写地址是否与设置的数据缓冲深度相等来判断该数据缓冲单元是否被写满,若被写满则对整个该数据缓冲进行数据下载导出。
采用本实施方式的监测方法对处理器性能进行分析时,包括以下步骤:
a.将编写好的由性能事件采集单元、轮转缓冲控制单元和轮转缓冲单元组成的性能事件监测模块(见图2)添加到硬件仿真器系统级仿真验证环境中,并对此仿真验证环境进行编译。
b.将测试基准添加到硬件仿真器的系统级仿真验证环境中,然后设置好性能采集单元的采样频率参数,开始运行环境进行测试。在进入运行测试基准阶段时,打开性能事件监测模块的记录开关,使得轮转缓冲控制单元的记录开关信号为开,开始对性能事件进行动态监测;在结束运行测试基准阶段时,关闭性能事件监测模块的记录开关,开始对存储数据进行下载。
c.在性能数据文件从数据缓冲单元中导出时,轮转缓冲控制单元会根据记录的性能事件类型在数据文件名称上添加类型号,同时在产生多个数据文件时,会根据文件产生的先后在数据文件的名称上添加顺序编号。按此规则命名数据文件,可以方便接下来的数据处理和分析。
d.将得到的数据文件进行处理和归纳,并使用脚本生成可以反映性能事件动态变化趋势的excel图表,从而对处理器性能进行分析和优化。
不难发现,本发明使用的是无修改的真实设计代码进行性能测试和分析,保证性能测试结果精准可靠;本发明可以在硬件仿真加速器验证平台上实现和运行,既比软件模拟测试运行的速度快,又比实际芯片测试获得的信息多;本发明使用的性能监测模块统计类型丰富、覆盖性能事件多、可重用好、可扩展性强,可以以最少的工作量实现最全面的性能事件监测,得到的数据量大、类型全面;本发明根据数据对应的性能事件和数据产生的顺序,可以对数据文件添加类型号和顺序号,方便后期数据的处理和分析。本发明可以对性能事件的行为信息在可调的时间间隔内进行采样统计,从而得到反映性能事件在测试过程中的动态变化趋势。
Claims (7)
1.一种基于仿真的处理器性能事件动态监测方法,其特征在于,包括以下步骤:
(1)在硬件仿真器上建立处理器芯片的系统级仿真验证环境;
(2)对各种性能事件的统计类型进行分类,并使用性能事件监测模块中不同的性能事件采集单元对不同类型的性能事件进行监测;
(3)在硬件仿真器的性能事件监测模块中设置轮转缓冲控制单元来控制性能事件采集单元的数据记录和存储;
(4)所述轮转缓冲控制单元中的计数器,所述计数器根据时钟上升沿自动累加,当累加值与采样间隔周期相等时,所述轮转缓冲控制单元将这段时间累加记录的性能事件数据写入数据缓冲单元中。
2.根据权利要求1所述的基于仿真的处理器性能事件动态监测方法,其特征在于,所述步骤(2)中性能事件的统计类型分为:针对信号有效次数计数、针对信号出现比率计数、针对多位信号累加计数和针对信号高低电平持续时间计数。
3.根据权利要求1所述的基于仿真的处理器性能事件动态监测方法,其特征在于,所述步骤(3)中轮转缓冲控制单元中有记录开关信号,当记录开关信号为开时,每当性能事件采集单元触发到性能事件的行为变化时,就会将信号信息传递到所述轮转缓冲控制单元中,所述轮转缓冲控制单元会进行数据的记录和累加。
4.根据权利要求1所述的基于仿真的处理器性能事件动态监测方法,其特征在于,所述步骤(4)中的数据缓冲单元设置有两个,在一个数据缓冲单元被写满并正在进行数据下载导出时,则会使用另一个数据缓冲单元记录之后产生的新的性能事件数据。
5.根据权利要求4所述的基于仿真的处理器性能事件动态监测方法,其特征在于,所述数据缓冲单元的写地址与设置的数据缓冲深度相等时,所述轮转缓冲控制单元判定所述数据缓冲单元被写满,并对所述数据缓冲单元进行数据下载导出。
6.根据权利要求4所述的基于仿真的处理器性能事件动态监测方法,其特征在于,在对所述数据缓冲单元进行数据下载导出时,所述轮转缓冲控制单元会根据记录的性能事件类型在数据文件名称上添加类型号,同时在产生多个数据文件时,会根据文件产生的先后在数据文件的名称上添加顺序编号。
7.根据权利要求1所述的基于仿真的处理器性能事件动态监测方法,其特征在于,所述步骤(4)中的采样间隔周期设置为不同性能事件采集单元的时钟的最大公倍数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910859116.3A CN110688289B (zh) | 2019-09-11 | 2019-09-11 | 一种基于仿真的处理器性能事件动态监测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910859116.3A CN110688289B (zh) | 2019-09-11 | 2019-09-11 | 一种基于仿真的处理器性能事件动态监测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110688289A true CN110688289A (zh) | 2020-01-14 |
CN110688289B CN110688289B (zh) | 2023-08-08 |
Family
ID=69109019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910859116.3A Active CN110688289B (zh) | 2019-09-11 | 2019-09-11 | 一种基于仿真的处理器性能事件动态监测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110688289B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112036106A (zh) * | 2020-08-17 | 2020-12-04 | 成都海光微电子技术有限公司 | 一种信号处理方法、装置、平台、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541725A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种数控系统功能模块的仿真测试方法 |
CN106326599A (zh) * | 2016-09-14 | 2017-01-11 | 郑州云海信息技术有限公司 | 一种多处理器系统仿真的系统状态监测方法和装置 |
CN107451038A (zh) * | 2016-05-30 | 2017-12-08 | 龙芯中科技术有限公司 | 硬件事件采集方法、处理器和计算系统 |
-
2019
- 2019-09-11 CN CN201910859116.3A patent/CN110688289B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541725A (zh) * | 2010-12-09 | 2012-07-04 | 中国科学院沈阳计算技术研究所有限公司 | 一种数控系统功能模块的仿真测试方法 |
CN107451038A (zh) * | 2016-05-30 | 2017-12-08 | 龙芯中科技术有限公司 | 硬件事件采集方法、处理器和计算系统 |
CN106326599A (zh) * | 2016-09-14 | 2017-01-11 | 郑州云海信息技术有限公司 | 一种多处理器系统仿真的系统状态监测方法和装置 |
Non-Patent Citations (1)
Title |
---|
高冬雪: "多核系统存储结构优化技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112036106A (zh) * | 2020-08-17 | 2020-12-04 | 成都海光微电子技术有限公司 | 一种信号处理方法、装置、平台、存储介质及电子设备 |
CN112036106B (zh) * | 2020-08-17 | 2021-08-24 | 成都海光微电子技术有限公司 | 一种信号处理方法、装置、平台、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110688289B (zh) | 2023-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ding et al. | Log2: A {Cost-Aware} logging mechanism for performance diagnosis | |
US20140012561A1 (en) | Modeling and evaluating application performance in a new environment | |
JPH0833845B2 (ja) | ソフトウエア動作解析装置 | |
US7146581B2 (en) | Automated repartitioning of hardware and software components in an embedded system | |
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
US6856951B2 (en) | Repartitioning performance estimation in a hardware-software system | |
CN112257358B (zh) | 一种动态功耗精确分析方法及装置 | |
CN116796672A (zh) | 用于仿真的基于波形的重构 | |
Chung et al. | PROToFLEX: FPGA-accelerated hybrid functional simulator | |
Black et al. | Can trace-driven simulators accurately predict superscalar performance? | |
CN101984640B (zh) | 基于凌动处理器的Android手机平台的能耗测量方法 | |
CN1979422A (zh) | 用以获得应用程序代码执行率的仿真装置及其方法 | |
CN110688289B (zh) | 一种基于仿真的处理器性能事件动态监测方法 | |
US20090150137A1 (en) | Method for generating performance evaluation model | |
Kreku et al. | Workload simulation method for evaluation of application feasibility in a mobile multiprocessor platform | |
Ruberg | Energy consumption and performance estimation of embedded software | |
US20110238400A1 (en) | Device for a method of modelling a physical structure | |
CN116431518B (zh) | 一种基于仿真平台的多层级、多模式软件故障注入方法 | |
CN113065302B (zh) | 用于仿真逻辑系统设计的方法、仿真器及可读存储介质 | |
Tong et al. | Profiling CAD tools: A proposed classification | |
Chen et al. | REMU: Enabling Cost-Effective Checkpointing and Deterministic Replay in FPGA-based Emulation | |
Zhang et al. | Storage device performance prediction with selective bagging classification and regression tree | |
Carroll et al. | A trace-driven simulator for palm os devices | |
Mintchev | Investigation of Methods and Tools to Profile a Virtual Platform | |
Sartor et al. | Multi-architecture profiler for Android |
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 |