本发明涉及集成电路设计技术领域,尤其涉及一种处理器硅前性能评估方法。
背景技术:
在处理器研发过程中需要进行硅前性能评估,以保证验证完成和流片后的处理器性能满足设计需求。硅前性能评估通常采用基准测试的方式,执行业内公认的基准测试程序,在运行结束后获取得分,跟对标芯片得分进行比较,得到性能优劣情况。
由于在研发过程中,处理器存在许多错误,直到验证后期才能成功启动操作系统,在真实场景下运行基准测试程序。如果想在项目早期和中期就进行评估,需要采用电脑裸机(baremetal)的形式,即没有配置操作系统和其他软件的电子计算机。
硅前性能评估通常伴随着进行性能分析和调优,需要大量灵活的观测具体信号,所以一般使用的手段为仿真方式,如软件仿真、硬件仿真加速器等。但是仿真方式受限于仿真速度,在有限的时间内很难完成基准测试程序运行。例如,软件仿真速度在kcycles/s量级左右,硬件仿真加速器速度在mcycles/s量级左右,而真实的移动基准测试程序往往需要运行数秒的仿真。以5s时间举例,假如处理器的主频是1ghz,那么完成5秒钟的仿真需要一个月以上时间,即使使用硬件仿真加速器也需要一小时以上的时间,并且硬件仿真加速器资源昂贵且极其有限,不能长时间大批量占用。这还只是一个程序的运行时间,如果要运行多套基准测试程序,代价更大。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
在采用仿真手段进行处理器硅前性能评估时,基准测试程序的仿真运行时间较长,使得处理器硅前性能评估的效率较低。
技术实现要素:
本发明提供的处理器硅前性能评估方法,能够缩短基准测试程序的仿真运行时间,提高处理器硅前性能评估的效率。
第一方面,本发明提供一种处理器硅前性能评估方法,包括:
软件生成带有标识核心代码标记的基准测试程序;
硬件仿真执行所述基准测试程序,使用硬件监控单元记录所述基准测试程序的运行性能信息;
利用所述硬件监控单元记录的所述基准测试程序的运行性能信息还原所述基准测试程序的得分。
可选地,所述基准测试程序中的计时系统调用采用标号的形式。
可选地,所述基准测试程序中包括标号信息。
可选地,所述标号信息的获取方式包括:显示的在程序中获取,利用编译工具获取并编译到可执行文件中,或者利用编译工具获取并生成到临时文件中等待仿真使用。
可选地,所述标号信息的储存方式包括特殊指令、特殊程序序列或特殊程序行为。
可选地,所述硬件监控单元包括采样信息收集器、指令执行监控器、采样配置装置、计时触发装置、硬件计时装置和结束装置,所述使用硬件监控单元记录所述基准测试程序的运行性能信息包括:
所述采样信息收集器根据信号组合识别所述标号信息并保存;
所述指令执行监控器监控处理器内部的流水线控制信号,根据所述内部的流水线控制信号的组合还原出指令的执行状态;
所述采样配置装置记录本次采样需要识别的配置;
所述计时触发装置根据所述指令执行监控器获得的指令执行状态的还原信息和所述采样信息收集器识别出的标号信息生成计时触发信号给所述硬件计时装置;
所述硬件计时装置根据系统时钟和所述计时触发装置生成的计时触发信号进行计时;
所述结束装置根据所述计时触发装置生成的计时触发信号提前结束仿真,并且打印或存储所述硬件计时装置采样的性能信息。
可选地,所述采样信息收集器的信号来源为处理器内部或者处理器对外部的总线接口。
可选地,所述采样配置装置记录的本次采样需要识别的配置包括监控循环次数、从第几次循环开始监控和系统等级。
可选地,所述使用硬件监控单元记录所述基准测试程序的运行性能信息包括:所述结束装置识别达到预设次数后保存执行结果并自动提前停止仿真。
本发明实施例提供的处理器硅前性能评估方法,通过软件制导和硬件监控结合的方式,在项目研发过程早期和中期在未成功引导操作系统时仿真运行基准测试程序,精确捕捉基准测试程序的执行情况,并获得性能数据,为改进设计预留充足时间;不使用时间函数,运行时不影响待测程序的代码;可以精确抓取核心代码执行时间,只需少量采样即可得到准确结果,从而可以缩短基准测试程序的仿真运行时间,提高处理器硅前性能评估的效率。
附图说明
图1为本发明实施例提供的处理器硅前性能评估方法的流程图;
图2为本发明实施例提供的硬件监控单元的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种处理器硅前性能评估方法,如图1所示,所述方法包括:
s11、软件生成带有标识核心代码标记的基准测试程序。
基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。
其中,作为可执行文件的基准测试程序中的计时系统调用采用标号的形式。标号(label)是为一组机器指令所起的名字。标号可有可无,只有当需要用符号地址来访问该语句时,才给此语句赋予标号。标号是程序目标标志,总是和某地址相联系,供转移或循环指令控制转移使用。
例如:
如果循环中没有非核心代码,也可以将end标识省略。例如:
然后在基准测试程序中加入标号信息(label_info)。例如:
标号信息
其中,标号信息的获取包括但不限于:1、显示的在程序中获取(如上述例子所示);2、利用编译工具获取,并编译到可执行文件中;3、利用编译工具获取,并生成到临时文件中,等待仿真使用。
标号信息储存的方式包括但不限于:1、特殊指令;2、特殊程序序列;3、特殊程序行为。
标号信息的数量可以有多组,可以监控多组核心代码,或分别监控核心代码的不同部分。
s12、硬件仿真执行所述基准测试程序,使用硬件监控单元记录所述基准测试程序的运行性能信息。
如图2所示,硬件监控单元包括采样信息收集器、指令执行监控器、采样配置装置、计时触发装置、硬件计时装置和结束装置。
其中,所述采样信息收集器根据信号组合识别步骤s11给出的标号信息。其中信号来源可以是处理器内部,也可以是处理器对外部的总线接口。识别后保存此信息。
所述指令执行监控器监控处理器内部的流水线控制信号,根据内部信号的组合还原出指令的执行状态。
所述采样配置装置记录本次采样需要识别配置,例如监控循环次数、从第几次循环开始监控、系统等级等。
所述计时触发装置根据所述指令执行监控器获得的处理器内部运行状态还原信息和所述采样信息收集器的采样信息生成计时触发信号给所述硬件计时装置。
所述硬件计时装置根据系统时钟和所述计时触发装置生成的触发条件进行计时。
所述结束装置根据所述计时触发装置的信号提前结束仿真,并且打印或存储所述硬件计时装置采样的性能信息供步骤s13使用。
具体地,步骤s12可以包括:
s121、启动仿真。
s122、使用采样信息收集器记录标记信息。对应步骤s11存储方式抓取软件中保存的标号信息。
s123、开始执行基准测试程序。
s124、利用指令执行监控器监控指令执行,一旦触发开始计时的信息后开始计时,触发结束计时的信息后停止计时。记录一次执行时间。
s125、结束装置识别达到预设次数后保存执行结果并自动提前停止仿真。
s13、利用所述硬件监控单元记录的所述基准测试程序的运行性能信息还原所述基准测试程序的得分。
每个基准测试程序有一套自己换算的分的方法,将这个算法转换成本套流程适配的公式,然后根据步骤s12抓取的性能信息,还原出得分。
本发明实施例提供的处理器硅前性能评估方法,通过软件制导和硬件监控结合的方式,在项目研发过程早期和中期在未成功引导操作系统时仿真运行基准测试程序,精确捕捉基准测试程序的执行情况,并获得性能数据,为改进设计预留充足时间;不使用时间函数,运行时不影响待测程序的代码;可以精确抓取核心代码执行时间,只需少量采样即可得到准确结果,从而可以缩短基准测试程序的仿真运行时间,提高处理器硅前性能评估的效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。