一种基于指令计算模型与反馈补偿的模拟方法与系统的利记博彩app
【技术领域】
[0001]本发明属于处理器软件模拟技术领域,具体涉及一种模拟处理器运行的方法与系统。
【背景技术】
[0002]人类已进入信息爆炸时代,信息与人类生活的关系变得越来越密切。随着信息技术的不断发展,新型电子产品的种类不断丰富,人均拥有的电子产品数也不断增加。人们日常使用的电子产品已由功能简单的手机和MP3过渡到功能强大的MP4、电子书、智能手机和智能可穿戴设备等。IDC最新数据显示,2014年中国的智能手机出货量将同比增加13%,达到4.2亿部。随着网络技术的飞速发展,各种新型应用和应用模式如雨后春笋般层出不穷,如云计算、智能计算、图计算、移动计算和可穿戴计算等。
[0003]随着应用的极大丰富,对底层处理平台也提出了越来越高的要求,造成各种处理器产品的不断丰富,这也意味着处理器产品来自方方面面的竞争压力越来越大,留给处理器产品的软硬件开发周期也越来越短。由于竞争的不断加剧,硬件芯片产品的设计开发周期通常为8个月到I年。开发周期越短,产品越有竞争力,盈利空间也越大。然而,IntelSoC设计部门的统计数据显示,一般处理器产品从开始设计到完成生产的周期一般为9个月,而对应软件部分的开发周期也为9个月。在这种背景下,一方面要求硬件工程师尽快完成芯片的设计和评估,另一方面,也要求在芯片设计的早期(如3个月),可以尽早为软件设计和开发人员提供可用的模拟测试平台。
[0004]为了提高体系结构设计开发的效率、节省开发成本,当前大多使用模拟器通过软件模拟整体体系结构的运行。模拟器作为体系结构研究与系统评估工具被广泛使用在工业生产与研究领域,能够提升硬件及体系结构的生产开发效率,缩短开发周期,同时能提升相关研究效率,缩短不必要的等待时间。
[0005]在模拟过程中为了保证模拟结果的精确性,现有模拟模型通常采用时钟驱动的方式模拟各个功能单元。虽然这种紧耦合方式保证了模拟结果的精确性,却导致模拟模型面临严重的性能挑战。为了提升模拟速度,已有很多模拟机加速的相关研究。按其加速方式不同,可以将模拟加速技术粗略分为基于FPGA的加速技术、采样技术和并行加速。
[0006]基于FPGA的加速技术:该技术主要是通过利用FPGA等硬件平台的高效性和并行性等特点提升模拟器的运行速度,其模拟速度一般可以达到10 MIPS的数量级别。由于比软件模拟器可以快10-100个数量级,这种技术已经被国外一些著名高校和研究机构广泛应用。但是基于FPGA开发的模拟器系统参数调整复杂,每次参数调整都需要重新生成FPGA网表文件。而在网表文件生成和到FPGA的映射过程中,系统的调试十分复杂,从而限制了这种方法的易用性。同时,虽然FPGA是一种硬件模拟,但由于目前的FPGA系统的主频要比主流通用处理器的主频慢I个数量级以上,因此,FPGA的低主频也造成了这种技术在模拟速度提升方面存在一定的限制。
[0007]采样加速技术:采样技术是另一种目前应用比较普遍的模拟器加速技术。采样技术的原理是通过获得被模拟测试程序指令子集的特征来推断整体的特征,此类技术能获得比较精确的模拟结果的关键是确保所选择的子集的特征能够充分代表测试程序整体的特征。虽然采样技术可以提高模拟速度,但是采样技术在提高性能的同时需要牺牲模拟的精确性。同时,由于并行程序的复杂性,采样技术对多核模拟器的性能提升也有限,目前典型的多核采样模拟器也只能达到几个MIPS的模拟速度。
[0008]并行模拟技术:随着多核硬件平台的普及,底层硬件环境提供了更多的计算资源,如何尽可能多的利用底层硬件的计算资源来加速模拟器的执行速度也逐渐引起人们的关注。在现有针对模拟器并行性的研究中,一种方法是对已有多核模拟器进行手工并行化。这种方法虽然可以获得相对较好的加速效果,却十分繁琐。另一种方法是设计一种新的针对模拟器的编程模型,然后基于该模型编写模拟器程序,并在此基础上对模拟器进行自动并行划分。这种方法虽然提供了自动并行的手段,但是由于基于特定的编程模型,无法应用到目前还在广泛使用的各种基于串行模型开发的模拟器上。虽然并行模拟可以提升模拟性能,但是目前的并行模拟也面临较大的挑战。在多核处理器中通常存在核间共享硬件资源,如共享Cache或者片上网络等。为了保证模拟精确性,并行后的模拟线程需要频繁同步以保证模拟结果的精确性。然而这种方式导致较差的并行可扩展性。有些并行方法采用降低同步的方式提升并行性能,但却导致模拟精确性的损失。
[0009]鉴于这些技术方案不能在保证精确性的同时进行快速模拟,本发明提出一种基于指令计算模拟模型与投机执行的技术构建模拟系统平台的方法,提高了处理器模拟系统的性能与可用性。同时,本发明可以在现有相应系统的任意计算机上运行,能够精确并快速地模拟可以支持的不同硬件结构、系统和应用。本系统的应用,有利于提高处理器设计和对应软件的开发效率,降低开发成本;本系统使得软件开发大为提前,有效缩短了计算机软硬件产品的开发周期,对计算机软硬件开发行业的发展有着重要意义,同时本系统能广泛应用到研究领域中,提升处理器设计与相关软硬件研究效率。
【发明内容】
[0010]本发明的目的在于提供一种能够提高处理器及其对应软件开发效率,降低开发成本,缩短开发周期的处理器软件模拟方法及系统。
[0011]本发明提供的处理器软件模拟方法,是基于指令计算模型的,包括:
首先,其模拟过程围绕指令序列进行,以逐条计算指令时序信息的模拟方法方式代替传统模拟器基于时钟周期更新功能模块状态的模拟方式,模拟器通过计算的方式获得流经功能部件的指令的发射周期和完成周期,而非通过模拟处理器部件的在每个周期的运行过程获取。
[0012]其次,使用多线程并行加速计算过程,处理器对于共享资源的访问以投机执行的方式进行,即私有资源维护一份共享资源的备份,当系统需要对共享资源进行访问时,先基于自己维护的共享资源信息推测实际的访问周期以用于自己的后继计算,从而减少同步操作以提升性能。在投机执行的过程中,为保证访问共享资源时序信息的准确性,各个私有资源模块会将访问信息发送给共享资源模块,由一个全局时序矫正算法进行正确的执行时序计算。如果投机执行时序与实际共享资源计算时序不一致,时序矫正算法计算这个累计误差,并在程序模拟结束后将累积误差反馈补偿给产生该误差的处理器核,这种反馈机制可以消除模拟过程中由于私有核交互访问共享资源而产生的误差。
[0013]本发明方法具体流程如下:系统通过二进制翻译的方式模拟运行目标系统镜像和应用程序,提取指令流及内存访问信息;根据提取的指令流及内存访问信息,计算指令在执行过程中的时序信息,涉及到共享资源的访问,通过虚拟共享资源计算模拟的投机执行方式减少同步操作,收集共享资源访问信息,统一进行正确的共享资源时序计算并累计矫正结果,于系统执行结束后进行反馈补偿,系统执行结束时最终返回时序结果和微体系结构?目息O
[0014]对于传统模拟器而言,模拟过程主要基于每个时钟周期处理器部件的执行过程,对于目标体系结构的每个处理器核而言,需要维护每个核的处理器部件状态信息以及对应的输入输出信息。在模拟过程中的每个时钟周期,每个核上的所有部件需要检查输入信息存储块来确定该部件将执行的指令,之后对这条指令在该部件的行为进行模拟,更新部件状态后再将其存储到输出信息存储块。这种方式在模拟过程中存在一些缺陷。首先,每个核需要维护大量的信息存储块,而每个部件在每个时钟周期都需要访问相应的信息存储块来决定其输入指令、状态更新以