第1章绪论
1.1计算机体系结构仿真技术背景
计算机体系结构仿真技术是使用软件方法虚拟出计算机系统硬件,在虚拟的机器上运行真实的应用程序,输出应用程序或是虚拟机器的统计数据以供用户分析的手段。仿真技术贯穿于计算机系统的整个设计开发周期:系统开发前期仿真能够为数量化分析新的架构设计的、在设计空间中有方向性的探索、对不同微体系结构候选者进行选择提供线索与依据;系统开发中期,仿真器能够提前作为软件验证测试的平台,加速系统成熟的过程;系统开发后期,仿真主要用于对系统进行性能、功耗、成本分析及调优。仿真器由于其重要作用,在学术界与产业界都得到了广泛的应用。据统计,2001年和2004年在体系结构国际会议ISCA ( International Symposium on Computer Architecture)上的论文分别有88%和87%采用了仿真器作为实验评测的手段,这一比例至今尚未有明显改变。学术界普遍使用的仿真器有SimpleScalar (Austin and Larson 2002),Asim(Emer et al, 2002)、MS ( Nathan et al, 2006)、Simics ( Magnusson andChristensson 2002 ), Qemu ( Bellard 2005)等;产业界的一些大型公司也都开发了自己专有的仿真器,例如IBM公司的MamboC Patrick et al, 2004 ) }HP与AMD联合开发的COTSon ( Argollo and Falcon et al, 2009. ) AMD公司的SimNow! ( Bedichek 2004 ),中科院计算所的Sim-Godson(张福新,章隆兵2007)等。
不同的仿真技术在精确度、速度、灵活性以及开发复杂度等指标方面各有侧重,本文将分别阐释相关概念以便于后续研究内容的展开论述。
首先明确文中用到的一些基本术语。Simulation与Emulation在计算机体系结构领域常常分别译为模拟与仿真,但本文遵从一般离散事件仿真领域的用法:仿真(Simulation)强调时间概念,而模拟(Emulation )与对象的功能相关,例如Winter Simulation Conference译为冬季仿真会议。回到体系结构仿真器领域,目标系统(Target system)是指仿真器所要构建的对象虚拟机器;宿主系统(Hostsystem)是指仿真器所运行的平台;目标程序( Target program)指运行在目标系统内的测试程序(B enchmark )。逻辑时间(Logical time)指目标系统经历的时间;物理时间(Physical time )或墙钟时间(Wall time)是仿真器平台亦现实世界经历的时间。事件是仿真中用于建模目标系统某种即时动作的抽象描述,每次事件附带了表明事件应该在逻辑时间哪一点发生的时间戳( Time stamp事件的发生将导致目标系统状态变量的改变。事件驱动的仿真指逻辑时间并不按逻辑时间单元步进,而是根据排序后的事件的时间戳前进。时钟精确仿真指目标系统所有组件运作过程的时序与延迟严格按处理器Cycle的粒度设置,仿真器以Cycle-by-Cycle的方式前进。时钟精确仿真是本文所述技术中精确度最高的,其测试输出常作为其他技术对比的基准值。
..............................
1.2关键问题与研究现状
1.2关键问题与研究现状
1.2.1性能与精准度问题
评价仿真器优劣有精准度、性能、灵活性、可移植性、二次开发复杂度等指标,其中,精准度与性能是影响仿真器应用的最重要指标(Jain 1991) o
精确度是目标系统与对应真实系统的匹配程度,精确度越高仿真的结果越可信。一般情况下,目标系统是一种未来的设计,尚未对应于某种真实的机器,难以直接验证与计算仿真结果的精确度。不过,未来的设计总是建立在现有成熟设计的基础上,仿真器一般都内置了以真实机器为蓝本开发的原始目标系统,因此,若对比原始目标系统与对应的真实系统运行同一目标程序的结果,仍可以获得该仿真器的基本设计是否具有高精确度的判断。虽然Desikan ( 2001)与Joshua J.Yi ( 2006 )等研究者指出,仿真器的绝对误差是无法避免的,但仿真器主要应用目的是在设计空间中对比各类方案,只要实验结果和真实系统的实验偏差相对稳定,不同设计方案下仿真器运行结果的对比状态仍能够客观的反映这些方案之间的真实区别。
速度是指目标程序运行完成后逻辑时间与物理时间的比值,亦即仿真器的性能。由于仿真开销的存在,仿真器必然无法达到目标系统对应的真实机器所具有的性能,因此评价性能一般以仿真器相对真实机器的降速比作为衡量标准。也有文献以每秒钟完成的目标程序的指令数(MIPS )为标准。在一定时期内,宿主平台的性能较为一致,因此以绝对性能进行横向比较也是合适的。仿真器的性能受多方面影响,模型多寡、目标程序长短、指令基本块模式都会极大的影响仿真器的运行时间,仿真器所选择的实现技术更是直接决定了仿真器的基本性能。仿真开销的存在使得仿真器速度远慢于真实机器,而体系结构研究发展的趋势又表现为向工业界靠拢,实验过程需要采用规模庞大的工业测试程序,并且需要覆盖较多的程序,进行反复的测试,这些状况都加剧了仿真器的性能问题。
高精准度与高速度是仿真技术同时追求的目标,然而这两项目标之间常常相互抵触。用户为了获得可靠的实验数据,希望尽可能的提升仿真器目标系统与真实系统的近似程度,这意味着细致的建模,与真实系统相匹配的模型参数,以及全系统建模、执行驱动等技术的应用,其结果是模型复杂度的上升,造成仿真速度的下降。反之,速度的提升则通常都是依靠牺牲精确度换来的。不过,随着模型细化程度的提高、目标系统与测试程序规模的逐渐膨胀,当前仿真器的主要问题仍集中在性能的低下上,仿真技术发展的近期目标仍是在兼顾精确度的基础上提升仿真器的性能,以微小的精确度损失换来性能的大幅上升。遵循着这一目的,从仿真器的不同方面出发,学术界及产业界己发展出了几种技术方向,下文将依次介绍。
............................
第2章体系结构并行仿真技术分析
第2章体系结构并行仿真技术分析
架构差异较大的不同目标系统,在并行化处理时所面临的问题往往也有所不同,也就是说,体系结构并行仿真技术必须根据所仿真的对象寻找解决方案,本文将首先介绍面向不同目标系统的并行仿真技术。不过体系结构并行仿真也服从并行计算、一般系统并行仿真的规律,本文将接着介绍体系结构并行仿真针对一些关键问题从这些领域内借鉴的方法。最后我们通过对一些典型的体系结构并行仿真器的分析归纳出并行仿真技术的发展趋势。
2.1面向不同目标系统的并行仿真技术
2.1.1单处理器并行仿真
早在单处理器仿真的时代,体系结构研究人员就己经利用了并行处理技术加速仿真器的执行。单处理仿真器从目标系统的角度较难并行化,因为单处理器内部的部件结合较为紧密,尽管可以将一些大的部件剖分开,形成处理核心、高速缓存、总线外设等分离的模块,但难以进一步拆分此类部件,从而使得并行度丧失提高的潜力。例如将处理器核心按流水线各阶段分割,并剥离出分支预测器、执行功能单元、重排序缓存等微体系结构后,由于这些部件之间存在复杂而频繁交互行为,并行处理时的通信开销将会抵消并行度上升带来的性能收益。即使只是前述粗粒度的分割,由于通常处理核心模块的执行开销较大,负载平衡性亦可能成为阻碍达到理想加速比的重要因素。而且部件剥离工作具有较高的开发难度,将一款串行模拟器并行化一般涉及到以下几点工作:将部件间共享访问的状态变量利用加锁、复制、数组化、私有化等手段使得变量被线程独占访问或转化为进程的私有数据;隐含有通信功能的状态变量,需要把对该变量的直接访问过程转化为依靠共享队列、消息等媒介的间接通信过程;访问了已经数组化或者私有化变量的函数调用接口也必须在参数中加上相应的索引,或是重新构建参数。此类工作随着部件交互的复杂程度而不断倍增。因而,在开发难度与性能开销的阻碍下,细粒度分割单处理器模型的并行化策略尚未出现较成功的研究成果。
................................
第3章一种多核处理器时钟............29
第6章一种数据中心并行仿真技术
第3章一种多核处理器时钟............29
3.1引言 ..................29
3. 2相关工作................... 31
3. 2. 1 SimpleCMP........... 31
3. 2. 1 SlackSim................. 31
3. 3 PCASim仿真器架............... 32
3. 3. 1 PCASim的................. 32
3. 3. 2仿真器结构............... 33
3. 4关键技术....................... 34
3.4.1共享存储......................... 35
3.4.2悬挂路障同............... 36
3.4.3网络仿................ 39
3.4.4针对多线程的........... 40
3. 5实验评测与.................. 41
3. 5.1实验设置 .......................41
3.5. 2实验结果与............... 42
3.6本章小结 ...........................45
第4章两级同步:面向众核处理...............47
4.1引言................. 47
4.1.1众核处理器发展........................... 47
4. 1.2众核处理器并行仿................... 49
4.2众核并行仿真器..................... 50
4.3两级同步的作用.................... 51
4.3.1前膽量路障、源路障......................51
4.3.2两级同步:点到点................... 52
4.4两级同步性能的理....................... 55
4.4.1两级同步与Slac................... 56
4.4. 2 Slack同步的性..................... 56
4. 4. 3 Quantum同步....................... 58
4.5实验.................. 59
4. 5.1实验设置 .........................59
4. 5. 2实验结果与.................... 59
本章介绍了一款基于全系统仿真技术与墙钟同步技术搭建出的高精度高效数据中心并行仿真器。该仿真器利用全系统仿真技术搭建计算节点,并使用支持动态竞争的网络仿真器连接各全系统仿真节点,使得数据中心系统模型中不存在短板,能够高精确再现数据中心系统的运行状态;同时网络仿真器也被划分为分区并行的执行,避免了通信与性能热点的产生;本项研究工作进一步分析了数据中心仿真环境中引入墙钟同步的有利条件,指出数据中心网络的相对高延迟有利于墙钟同步降低因果关系错误率,能够较大程度的延伸同步周期,一定程度上解决仿真器可扩展性问题。实验表明32节点的墙钟同步相对于路障同步提高了平均5.1倍的性能,相对于近期的自适应路障同步也提高了平均49.8%的性能,而同时保持了仿真结果平均高达99%的精确度。
本章第一节首先介绍了数据中心仿真存在的问题,以及国内外研究现状。第二节介绍了利用成熟的体系结构全系统仿真器与通用网络仿真器搭建数据中心仿真器的方案设计与集成方法。第三节分析了数据中心仿真器同步问题的特征,以及墙钟同步在数据中心仿真环境中的有利与不利条件,给出了墙钟同步更适于数据中心仿真器的结论。第四节介绍了实验环境设置,给出了数据中心仿真器在不同规模下使用墙钟同步与松弛同步、自适应路障同步的精确度与性能对比评测结果,并测试分析了数据中心仿真器中影响墙钟同步性能的几种重要因素。最后第五节总结了本章内容。
.......................
结论
结论
计算机体系结构仿真是数量化分析新的架构设计、在设计空间探索最优或较优方案、早期软件验证测试、系统性能功耗成本分析及调优的主要手段。仿真器由于其重要作用,在学术界与产业界都得到了广泛的应用。然而随着技术的进步,计算机系统芯片集成度的规模与主机数量的规模都在不断的攀升,对仿真器在资源开销与性能方面造成的挑战也越来越大,传统的串行仿真技术在解决上述问题时困难重重,并行仿真技术已成为大规模计算机系统仿真的必然选择。并行仿真面临的关键问题是节点间的同步极大的阻碍了仿真器达到理想性能,而且同步的消极影响会随着仿真规模的增加而恶化。
本文面向多/众核处理器与数据中心两类典型大规模计算机系统,针对时钟精确与非时钟精确两类仿真需求,在分析总结当前体系结构并行仿真技术存在的性能与精确度问题的基础上给出了整体性的解决方案,并围绕关键的同步问题深入开展工作,提出了精确度与性能达到较优平衡的多种同步机制。
参考文献(略)