浅谈计算机体系结构软件模拟技术
2013-04-29陈虹
陈虹
摘要:随着现代经济的发展和生活水平的提高,人们对于计算机的性能要求越来越高,计算机体系结构软件模拟技术也日益兴起,在软件开发中担任着非常重要的角色。该文首先介绍了计算题体系结构软件模拟技术的产生背景,接着简要介绍了该技术的流程,分析了当前该技术发展所面临的问题,然后给出问题解决的策略,最后提出还需不断深入研究该技术以提高计算机的性能。
关键词:计算机体系结构软件模拟技术;问题;解决策略
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)08-1952-02
1 概述
当前,人们对于计算机性能提出越来越高的要求,这使得计算机系统变得更加复杂,摩尔定律才能描述处理器的复杂程度增长.截止到现在,单片的处理器已经含有10亿多个晶体管,而制造如此复杂的计算机系统需要付出高昂的资金成本和时间成本.一般情况下,生产一款处理器经过设计体系结构、设计验证与评估、逻辑的设计与验证等多道阶段,其中每个阶段都需要多次重复制造以保证处理器的质量。生产一款处理器在时间上一般需要花费4至7年,有时候甚至需要更长时间,同时整个过程的资金投入也是非常巨大的。在批量生产某款处理器之前,首先需要制造出若干该款处理器,并对其评估测试,不断地发现缺陷并修改,直至设计出符合要求的处理器。虽然这种方法科学,但其并不现实,因为新处理器哪怕生产一个,也需要较高的成本和较长的周期。所以研究人员为了克服这个局限开发出了能够精确到时钟的体系结构软件模拟技术。
2 计算机体系结构软件模拟技术的概述
计算机体系结构软件模拟技术的主要作用就是采用软件技术模拟在系统结构级别中计算机某些系统硬件的性能和功能特征。采用计算机体系结构软件模拟技术验证和评估体系结构设计成为计算机系统制造和设计中必不可少的环节。在设计处理器的过程中,物力与人力资源中大约超过百分之六十都用在了对新处理器的验证与评估中。我们都知道开发软件与开发复杂程度相同的硬件相比,其开发成本较低和开发周期更短,并且与硬件相比软件更容易修改,其灵活性更强,因此如果运用计算机体系结构软件模拟技术进行验证与评估不仅可以大大缩短计算机系统的开发周期还能够大幅度降低开发成本。所以,计算机体系结构软件模拟技术能够在短时间内验证评估许多体系结构的设计方案,在众多方案中选择出最优的方案。
3 软件模拟技术开发面临的问题
3.1 计算机体系结构软件模拟器的开发难度较大
计算机系统是非常复杂的,要想把所有门电路或者晶体管等各个方面的特征都通过软件进行模拟是不现实的。对计算机系统按照层次来抽象是对系统复杂程度进行简化的常用方法,计算机体系结构是将计算机系统根据结构层次进行简化而来的。但是,根据结构层次简化出来的计算机系统仍然非常复杂,这使得开发其模拟器也十分困难。还有目前主要还是运用C或者C++编程语言来开发体系结构的软件模拟器,采用这些串行结构化的语言固有机制,比如函数或者类对计算机系统的部件行为和功能进行模拟,是非常容易出错并且耗时的过程。所以,开发计算机体系结构软件模拟器一般都还是在现存模拟器的基础上进行改进或者二次开发以适应开发者的要求,如果从0开始进行开发是非常不容易的。实际上,改进或者二次开发现存模拟器的方法仍然具有较大的难度,因为人们还是经常怀疑模拟器的结果。所以还需要反复验证模拟器本身,以增强模拟器评估体系结构设计的可信度。这无疑在侧面加大了模拟器的开发难度。
3.2 模拟器在评估新设计时运行时间较长
作为在宿主机上的一个运行程序,模拟器在对计算机系统详细模拟的时候,这个运行程度需要在时钟周期的级别上记录动态指令运行出来的所有结果和处理器状态,比如分支预测器状态、Cache和内存行为和寄存器状态灯,这些都有巨大的数据量,严重降低了详细模拟的运行速度。像比较成功的SMARTS软件模拟器运行速度达到了9 MIPS,跟宿主机的硬件相比而言它的运行速度大约慢了4个数量级。随着处理器的性能日益提高,国际组织SPEC为对通用处理器性能进行评估而不断发布新标准程序包以测试性能。在这些标准化性能的测试程序包含有多个极大负载的性能测试程序,从多个角度对处理器性能进行测评。为了保证模拟结果更加可信,在模拟器中运行标准化性能的测试程序包是很自然的方法。对硬件来讲运行这么慢的模拟速度也是一个负载极大的测试程序,必定有非常长的运行时间。依据不同的模拟目的,参考使用输入参数的情况下其运行时间有可能也要几年甚至几十年,另外在体系结构层次中有较多参数可以配置,像Cache大小等,况且这些参数并不是独立地影响整个系统,,所以每次修改某个参数时,还需要重新从头开始运行模拟测试程序,查找其对系统的影响。要想得到一个很好的计算机体系结构,模拟运行需要很长的时间。
3.3 模拟器运行结果的精度很低
开发模拟器的过程主要分为理解目标体系结构、针对该结构设计模拟器和实现模拟器的三个步骤,在以上三个步骤中可能存在着很多错误。在第一步中,要正确分析模拟器的需求,这也是在软件开发的过程中需要重点关注的现象,常犯的错误就是未能正确分析其需求。在第二步中,虽然对计算机体系结构目标能够正确理解,但还是经常因为忽略了计算题体系结构设计中的一些细节而导致了错误。在实现模拟器时,对模拟器进行编码是非常容易出现错误的。另外,由于模拟器运行模拟的时间较长,开发人员往往只是执行测试程序中的部分指令来代替整体的效果,这样也严重降低了模拟器运行结果的精度。导致模拟结果的精度较差的重要原因就是选取运行的指令不恰当。所以当前在国际上研究的热点指向了如何在标准化性能测试的程序中选取部分指令来运行。
4 软件模拟技术开发面临问题的解决策略
针对以上三种问题,目前学者已经对其解决策略进行了大量的研究,我认为主要还是从以下两个策略进行改进:
4.1 减少性能测试程序中的输入参数
对性能测试程序中的参数集进行科学地修改以减少模拟器运行性能测试程序时的运行时间。这种方法仍然运行测试程序中的一切指令,只是采用较少的输入参数来运行模拟,并将其模拟运行的结果来代替原本输入参数集运行的结果。这种方法在一定程度上可以提高提高模拟器运行的精度。
4.2 减少运行模拟指令的数量
在采用标准化性能的测试程序中,科学地选取一部分模拟指令对其运行,用这一部分模拟指令的运行结果替代原本运行的结果。提高模拟精度和运行速度的关键就在于如何科学选取用于运行的部分指令,通常有两种方法:直接截取连续指令和采用统计方法抽样选取指令。这两种方法相比而言,第一种方法操作起来比较简单,但是其模拟精度降低,第二种方法运行统计方法进行抽样,操作起来可能比较复杂,但是其精度有所提高。
5 小结
作为现代计算机的系统设计和处理器中的必须工具,计算机体系结构软件模拟技术成为了系统设计的质量水平和处理器制造水平的直接影响因素,这也是该技术成为目前研究热点的重要原因。我认为还需要有更多的专业人员从事研究该技术的工作中来,只有这样才能有效加快我国计算机技术的发展,提升其在国际上的竞争力。
参考文献:
[1] 李经松,陈朝晖.软件总线体系结构的研究与应用[J].空间控制技术与应用,2012(4).
[2] 闫建红,彭新光.可信计算软件构架的检测研究[J].计算机测量与控制,2011(11).
[3] 黄志钢,陶旭东,潘振杰.一种异构多核处理器体系结构的软件仿真[J].沈阳理工大学学报,2010(6).
[4] 李明,雒江涛,刘思荣.一种信令数据仿真测试仪的软件体系结构研究与设计[J].现代电信科技,2011(3).
[5] 刘云翔,陈艳,袁鑫鑫.基于粗集的信息融合系统评价指标体系优化研究与实现[J].计算机应用与软件,2011(9).