已阅读5页,还剩82页未读, 继续免费阅读
(信息与通信工程专业论文)媒体数字信号处理器模拟器研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学硕士学位论文 摘要 现代处理器设计过程中,软件模拟器已经成为不可或缺的重要验证工具。与不使用模拟 技术的计算机系统或处理器设计方法相比,软件模拟技术可以极大地降低设计成本和缩短设 计周期。本实验室从事处理器设计已经多年,越发体验到软件模拟技术在工程设计中的重要 性。鉴于早先开发的指令集模拟器在早期指令集设计中发挥了重要的作用,对于处理器体系 结构的仿真主要依靠v e r i l o g 模型来实现,而利用该模型进行的仿真是非常耗时的。因此随 着处理器设计的深入,为了快速反映处理器微结构的性能,本文以实际需求为出发点,参考 现有的模拟器设计开发了针对嵌入式媒体数字信号处理器m e d i a d s p 6 4 ( 简称m d 6 4 ) 处理器 的周期级模拟器s i m m d 6 4 。 通常开发一个微体系结构周期级软件模拟器是一项较为困难的工作,因此,本文在充分 调研了国内外软件模拟技术的基础上,通过对比选择,确定以s i m p l e s c a l a r 模拟器为基础, 开发出适合m d 6 4 处理器体系结构的周期级精确软件模拟器。一个完整的微体系结构周期级 软件模拟器工具,不仅包括了模拟器本身,而且同时需要开发出相应的编译工具作为支持。 因而在s i m m d 6 4 的开发过程涉及了交叉编译工具链的开发与m d 6 4 处理器体系结构的建模, 以及通用处理器模拟技术的应用等几个方面。 s i m m d 6 4 模拟器的开发做为本文的重点章节,依据第二章中提出的模拟器设计框架,从 目标文件的加载、舢功能模块的实现、t l b 功能的模拟、c a c h e 模块的模拟、通用分支预 测技术的采用直至m d 6 4 微体系结构的建模等几个方面,层层深入依次展开论述和介绍。 通过图像、音视频编解码等媒体应用程序和数字信号处理应用程序在s i m m d 6 4 模拟器上 的评测结果与在m d 6 4 处理器的v e r i l o g 描述模型在m o d e l s i m 上评测结果进行的相似度对 比实验,验证了s i n b l d 6 4 设计的可靠性一对富含分支指令和d m a 操作的媒体应用程序模拟相 似度达到7 6 9 6 以上,对于d s pk e r n e l ( 无d m a 操作,分支指令较少) 应用程序的模拟相似度 达到了9 6 以上。就模拟速度而言,进行指令集功能模拟,模拟速度可达到7 2 0m s ( 每秒 7 2 0 兆条指令) ,进行周期级模拟速度可达0 5 2m s 。最后,通过具体实验提出了对佃6 4 处理器设计的改进方案,为今后进一步开发多核模拟器打下了良好的基础。 关键字:模拟器:交叉编译;体系结构;数字信号处理器 浙江大学硕上学位论文 a b s t r a c t h lt h ed e s i g no fm o d e m p r o c e s s o r ,s i m u l a t o ri sav e r yi m p o r t a n tv e r i f i c a t i o nt 0 0 1 c o m p a r e d 、i t l lt h ec o m p u t e rs y s t e mo rp r o c e s s o rd e s i g nm e t h o dw i t h o u ts i m u l a t o r , i tc a r lg r e a t l yr e d u c et h e d e s i g nc o s ta n dd e s i g nt i m e t h i sl a bh a sw o r k e do ns i m u l a t o rf o rm a n yy e a r s ,w ek n o wt h a tt h e s i m u l a t o ri sv e r yi m p o r t a n t e m u l a t i o nw i t hv e f i l o gm o d e li sat r a d i t i o n a lw a yo fd e b u g g i n g ,b u ti t c o s t sal o t s of o rt h ep u r p o s eo fs i m u l a t i n gp r o c e s s o ra r c h i t e c t u r eq u i c k l y , w ed e s i g n e dac y c l e a c c u r a t es i m u l a t o rs i m m d 6 4f o re m b e d d e dm e d i ap r o c e s s i n gd s pm e d i a d s p 6 4 ( m d 6 4 ) u s u a l l y , d e s i g n i n gac y c l el e v e ls o f t w a r es i m u l a t o ri sv e r yd i f f i c u l t ,s ot h i sp a p e rb a s e so n e x i s t i n gs i m u l a t i o nt e c h n o l o g i e s ,a n db yc o m p a r i s o nc h o o s e ss i m p l e s c a l a rw h i c hi sp o p u l a ri n b o t ha c a d e m ya n di n d u s t r y w ed e s i g nac y c l ea c c u r a t es i m u l a t o rf o rm d 6 4b a s e do n s i m p l e s c a l a r ac o m p l e t es i m u l a t o rh a ss i m u l a t o ri t s e l fa n dc o m p i l a t i o nt o o l sa sw e l l s oi nt h e d e s i g no fs i m m d 6 4 ,w eh a v ea l s od e s i g n e dc r o s sc o m p i l e r , m o d e l i n go fm d 6 4a n da p p l i c a t i o no f g e n e r a lp r o c e s s o rs i m u l a t i o n d i s c r i p t i o no fs i m m d 6 4i st h em o s ti m p o r t a n tp a r t ,s ot h i sp a p e rm a k e st h a ti nd e t a i l , i n c l u d i n gl o a d i n go ft a r g e tf i l e ,i m p l e m e n t a t i o no fm m uf u n c t i o nm o d u l e ,s i m u l a t i o no ft l b f u n c t i o n ,s i m u l a t i o no fc a c h em o d u l e ,i m p l e m e n t a t i o no fg e n e r a ls p e c u l a t i n gt e c h n o l o g ya n d m o d e l i n go fm d 6 4a r c h i t e c t u r e f r a m e w o r ki ss h o w e di nc h a p t e r2 i nc o m p a r i s o nw i mm e d i aa p p l i c a t i o na n dd i g i t a lp r o c e s s i n ga p p l i c a t i o np r o g r a m sr u no n s i m m d 6 4s i m u l a t o ra n dv e r i l o gm o d e lo nm o d e l s i ms o f t w a r e ,w ef i n dt h a tt h es i m i l a r i t yi sa b o v e 7 6 埘t 1 1a p p l i c a t i o nf u l lo fb r a n c hi n s t r u c t i o n 。a n di sa b o v e9 6 w i t ha p p l i c a t i o nw i t h o u td m a o p e r a t i o na n dl e s sb r a n c hi n s t r u c t i o n s p e e do ff u n c t i o n a ls i m u l a t i o nc a na c c e s st o7 2 0 m s ( 7 2 0 mi n s t r u c t i o n sp e rs e c o n d ) s p e e do fc y c l es i m u l a t i o nc a na c c e s st oo 5 2 m s o nt h i sb a s i s , t h r o u g hs p e c i f i ce x p e r i m e n t ,w ep r o p o s e di m p r o v e m e n t st ot h ed e s i g np r o g r a mo fm d 6 4 ,i tc a l l b et h eb a s ef o rf u t u r em u l t i c o r es i m u l a t o r k e y w o r d :s i m u l a t o r ,c r o s sc o m p i l e r ,a r c h i t e c t u r e ,d s p i i 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得逝鎏盘堂或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位敝储魏沟移签字吼砰厂月多日 学位论文版权使用授权书 本学位论文作者完全了解逝婆盘堂有权保留并向国家有关部门或机 构送交本论文的复印件和磁盘;允许论文被查阅和借阅。本人授权逝姿盘鲎 可以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名: 沟如 v 柳期:砰月多日 l 7 导师签名:矧嗣雪 签字慨叫年月沁 致谢 最后,衷心感谢我的家人、师长、同事、同学、朋友在这两年多的时间里对我的关心和 帮助,我成绩的取得与他们的支持是紧密相连的。 感谢我的导师刘鹏副教授。从进入求是园之初,只是怀着对系统软件制作的爱好求学于 刘老师,到在他的指导和帮助下完成了对嵌入式系统设计的学习、系统软件工具的制作的学 习,最终完成了嵌入式处理器周期级模拟器的设计。这些与刘老师的悉心指导是分不开的。 刘老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我如何 为人处世,虽历时不过三年,却给以终生受益无穷之道。对刘老师的感激之情是无法用言语 表达的。 特别感谢姚庆栋教授。姚老师严谨的治学作风和求实的科学态度使我获益良多。从姚老 师身上我看到了一个科研工作者应有的一切优良作风,更激励了自己在以后的工作要向姚老 师那样严谨务实,踏实求是。此外,感谢课题组的史册老师和王维东老师,自己的成长同样 离不开他们的关怀和帮助。 感谢实验室的同学们,与他们之间的交流探讨和他们对我学习上的帮助都是我获取知识 的源泉和遇到困难时的动力所在。他们分别是:徐志远、王小航、王星、姚懿鹏、江国范、 李橙、张奇、蔡卫光、项纯昶、钟耿、陶文质等。 最后感谢我的家人和单位里的领导和同事。在外求学几年,你们在生活和思想上给与我 最大的关怀和无私的帮助。 海冰 2 0 0 9 年4 月于求是园 浙江大学硕士学位论文 第一章绪论 1 1 课题背景及研究意义 随着人们对计算能力需求的不断增长,计算机系统已经变得越来越复杂,到目前为止, 单片处理器的晶体管数目已经达到了1 0 亿。制造这样一个复杂的计算系统所需的时间和资金 成本是非常高昂的。以处理器的设计制造为例,通常生产一款新的处理器需要经过体系结构 设计、设计评估与验证、逻辑设计与验证、电路设计、电路验证、布局设计和生产制造等阶 段,而且这些阶段都要重复多次以保证质量;从时间上看,该过程通常会持续4 年一7 年甚至 更长的时间。从资金成本上看,该过程需要的投入非常巨大。在一款处理器批量生产之前, 最好的质量保证方式是实际制造出数个该款处理器,对其测试评估;发现缺陷后,进行修改, 再制造出新的处理器,然后再测试评估;重复该过程直到达到设计要求为止。然而,这种方 式并不现实,因为哪怕只生产一个新处理器,其所需的周期非常长,成本也非常高。为了克 服这个缺陷,研究人员开发了精确到时钟周期级别的体系结构软件模拟技术。 体系结构软件模拟技术使用软件的方式来模拟计算机系统硬件在系统结构级别的功能 和性能特性。在现代计算机系统的设计和制造中,使用体系结构软件模拟技术来对体系结构 设计进行评估和验证已成为一个不可缺少的环节。在典型的处理器设计过程中,有超过6 0 的人力、物力资源都用在了评估和验证上旧1 。体系结构软件模拟技术可以极大地降低计算机 系统开发的成本并缩短开发周期:一方面,开发一套软件与开发一套相同复杂程度的硬件相 比,其开发周期要短得多,成本也要低得多;另一方面,软件的修改比相同复杂程度硬件的 修改也容易得多,即软件具有更大的灵活性。因此,使用体系结构软件模拟技术可以在相对短 的时间内评估验证多种可能的体系结构设计方案,从中寻找最好的方案。 本实验室在单发射r i s c 处理器技术上已经开展了多年的研究工作,其中r i s c 3 2 e 处理 器i p 完全兼容m i p s 4 k c 处理器。在过去的研发过程中,我们基于s p i m 哺纠开发了3 2 如6 4 ( 3 2 b 6 4 br i s c d s pm e d i ap r o c e s s o r ,m e d i a d s p 3 2 0 0 m e d i a d s p 6 4 0 0 ) 指令集模拟器旧1 , 该模拟器对于指令集的设计和研究发挥了重要的作用。但是该模拟工具只是作为功能性模 拟,在周期精度上的性能模拟没有进一步开展工作,因而在处理器结构探索阶段该模拟器显 得实用性不足。为此,如何开发新的高效的处理器体系结构模拟工具就显得追在眉睫。 计算机系统本身是一个非常复杂的系统,要使用软件来模拟每个晶体管或每个门电路各 个方面的行为特征几乎是不可能的。人们简化系统复杂程度的常用办法是对系统按层次进行 抽象,体系结构就是对计算机系统在结构层次上的简化。然而,体系结构层次上的计算机系 统依然很复杂,开发其软件模拟器也因此而十分困难。另外,目前开发软件模拟器使用的主 要编程语言是c 或c + + 语言,这些语言是串行结构化语言。使用这种语言的固有机制,如函数 或类来模拟计算机系统部件的功能和行为,是一个非常耗时且容易出错的过程。因此,从零 开始开发一个系统结构软件模拟器并不容易。通常的做法是,在已存在的模拟器基础上进行 二次开发或改进,使其适应自己的要求。本文选用t s i m p l e s c a l a r 心0 3 1 一们模拟器作为蓝本, 】 浙江大学硕士学位论文 在其基础上开发出针对m d 6 4 处理器核的周期级精确指令集模拟器。 1 2 计算机体系结构软件模拟技术 1 2 1 历史回顾 在早期的处理器设计中并没有使用体系结构软件模拟技术,它随着处理器变得越来越复 杂而逐渐发展起来。2 0 个世纪8 0 年代前后,处理器体系结构设计中主要使用“数据驱动”设 计技术旧1 和性能分析模型技术h 。“数据驱动”的设计技术又被称为“基于指令执行轮廓 的静态建模”技术。该技术的关键是大量收集程序在已有机器上运行的相关数据,如执行的 指令数目、某条指令的执行次数或某一类指令执行的次数等。在此基础上分析某种体系结构 处理器的性能特征和缺陷,以便在以后的设计中避免这些缺陷。但这种“数据驱动”设计技 术毕竟是一种事后分析;在处理器设计时能够起到的作用十分有限。 为了提高体系结构设计的质量、减少计算机系统研发成本和失败的风险,在“数据驱动” 技术的基础上,发明了性能分析模型技术。性能分析模型主要是对计算机系统的资源及资源 之间的连接使用数学工具进行建模,从而通过估计资源利用率以及时间方面的特性来预测计 算机系统的性能| 3 。从静态方面来看,计算机系统是由一系列的硬件和软件资源组成的;从 动态方面来看,多个任务或作业访问或竞争这些软、硬资源的使用权。因此,使用以排队论 为基础的队列网络来对计算机系统进行建模是十分自然的。为了准确刻画计算机系统特征, 数理统计方法、马尔可夫模型和p e t r i 网也是必不可少的数学工具h 引。在2 0 世纪7 0 年代和8 0 年代初,计算机系统分析模型曾被广泛地应用于计算机系统的性能评估。因为它基于数学方 程的高效解题方法,所以分析模型是一种低成本的性能评估和预测工具。然而,为了使分析 模型中的数学方程易于求解和理解,人们不得不对队列模型进行简化,所以分析模型不能精 确地反映计算机系统的所有细节。但对许多系统来说,分析模型所提供的关于关键资源和负 载需求的评估精度足以用来对系统的性能瓶颈和影响性能的关键参数进行分析。一般说来, 性能分析模型对作业吞吐率和资源利用率的评估精度可达5 一1 0 ,对平均响应时间的评估精 度可达1 0 - 3 0 娜。这样的精度水平在以下3 个方面是足够使用的:( 1 ) 计算能力规划;( 2 ) i o 子系统性能评估;( 3 ) 新型计算机系统的初期辅助设计。 然而,如上所述,分析模型对计算机系统性能评估的精度很低,能适用的范围也很窄。 而在计算机系统的设计后期,需要做出更多的设计决策。体系结构师需要更精确且适用范围 更广的技术来辅助设计。体系结构软件模拟正是这样的种技术,它使用c 或j a v a 这样的高级 编程语言将新的设计实现为一个虚拟的计算机系统,在已有的计算机系统上运行,从而对新 设计系统的性能进行分析和预测。体系结构模拟技术具有极大的灵活性,它可以在任意详细 程度的级别上对计算机系统进行模拟,包括极度复杂的级别,如时钟周期级别,这是分析模 型难以胜任的。另外分析模型只能提供性能预测的平均值,对计算机系统中的动态交互行为 无法进行分析。而体系结构模拟技术不仅可以用来研究计算过程中的动态行为及特性,而且 可以进行程序执行的全过程研究,包括初始化阶段、稳定阶段和终止阶段。因此从2 0 世纪8 0 2 浙江大学硕士学位论文 年代中期以来,体系结构模拟技术开始变得越来越流行。该技术可分为功能模拟和性能模拟 两部分。功能模拟器模拟目标体系结构的功能,用于预测和验证新的体系结构是否满足功能 要求。它主要关注数据的正确性。例如模拟器中某个寄存器的值与被模拟计算机的相应寄存 器的值要求一样。性能模拟器以评估计算机系统与时间有关的特性为目标。这类模拟器并不 主要模拟计算机系统中的数据,但每个操作所要花费的时钟周期数和与数据地址信息却是要 准确模拟的。当然一个体系结构模拟器中可以同时以性能和功能模拟为目标,但这种模拟器 的性能比单目标模拟器的性能要低。早期的体系结构模拟器使用的是跟踪驱动( t r a c e d r i v e n ) 模拟技术。但随着计算机系统复杂程度的提高以及跟踪驱动技术本身的缺陷,更有 优势但成本也更高的执行驱动( e x e c u t i o nd r i v e n ) 模拟技术逐渐流行起来。到目前为止,执 行驱动模拟依然是处理器体系结构模拟领域最为主流的技术。 1 2 2 模拟与仿真的区别 体系结构软件模拟技术经过几十年的发展,不仅产生了许多不同的模拟技术,而且也创 造了许多概念。其中有些概念被人们广泛使用,但也经常混淆,不利于进行学术交流。本文力 图区分两个最难区分的概念:模拟( s i m u l a t i o n ) 和仿真( e m u l a t i o n ) 。 从最简单的方面讲,模拟与仿真的主要区别在于模拟完全是在软件中完成的,而仿真则 是在硬件中进行。但是如果要更深入探究的话,每种工具的唯一特性与强大的优势是非常明 显的。两者之间取跃补短,共同提供了它们无法单独拥有的优势。从传统意义上讲,模拟是 在设计的最初阶段开始进行,这期间设计人员会借助它来对初始代码进行评估。此外,当设 计人员运行核心代码并对之进行不同的更改时,软件模拟可以采集剑大餐的调试数据。通过 模拟会影响代码效果的体系结构,软件模拟有可能确定最有效的应用设计。 模拟器在设计与调试过程中是一种非常重要的工具,因为它能够反复地运行相同的模拟 过程,而基丁硬件的评估会因中断等外部事件所导致的变化而无法实现这一过程。此外,模 拟器还具有高度的灵活性,可独立对c p u 进行深入分析,或可用于对整个系统进行建模。 模拟器可轻松地进行配置,能够与各种存储器及外设相集成。由丁设计人员正在对硬件进行 建模,因而他们实际上可以将更多的东西构建到模型中去,使之可提取更多的数据来支持高 级分析功能。 那么何处需要仿真呢? 仿真使开发人员可了解不同软硬什模型间的实时交互作用。它还 可以将实现真实世界的激励连接到外设上,来启动系统行为的调试。开发人员在开发后期阶 段可获得真实数据时使用仿真器。通过确定应瑚程序在硬件上实际运行性能,仿真器可验证 模拟器测试过的没计。验证仿真器获得的这些信息可以帮助设计人员再次采用模拟器来进一 步优化硬件性能。时钟速度、数据速率以及器件复杂性不断加速的发展也推动着仿真器的向 前发展。先进的仿真技术如实时数据交换使得可在不影响运行的情况下获得系统运行的直观 视图。仿真器可在不改变器件性能的情况下,在主机开发平台与目标处理器间进行数据传输、 3 浙江大学硕士学位论文 下载代码和观察复杂序列事件,所有这些都使得评估系统未来开发完成后实地运行的性能成 为可能。 1 3 主流模拟器简介 处理器体系结构设计和性能评估离不开各种各样的模拟器,各个处理器设计公司都有针 对特定体系结构的模拟器,从最简单的指令集模拟器( 如s p i m ) ,到能模拟硬件行为的性能 模拟器( 如s i m p l e s c a l a r ) ,再到全系统模拟器( 如s m i c s ) 以及针对特定目标的如功耗模拟 器( 如w a t t c h ) 。下面针对当前主流模拟器作以简要介绍。 s p i m 陋纠是由美国威斯康辛大学麦迪逊分校设计开发的一款支持m i p s 3 2 指令体系的功 能模拟器。该模拟器以符合m i p s 3 2 指令集体系的汇编语言程序作为输入,通过其白带的简 单调试器,实现了对汇编程序的模拟执行。该模拟器作为教学类工具得到广泛的使用。 s i m p l e s c a l a r 是目前最为流行的单处理器性能模拟器。s i m p l e s c a l a r 作为一组模拟工具 最初发布于1 9 9 5 年【2 0 1 ,3 0 版本于1 9 9 8 年发布。它包括了多个模拟器和相应的工具( g c c 编译器、运行库、汇编器、链接器等) 。不同的模拟器在速度方面采用了不同的折中平衡策 略。其中s i m o u t o r d e r 模拟了具有五级流水的超标量体系结构处理器,用户可以根据不同 的要求对其进行灵活配置。m a s e 【4 9 】( m i c r oa r c h i t e c t u r a ls i m u l a t i o ne n v i r o n m e n t ) s i m - o u t o r d e r 的4 0 版本仍在开发中。与以往的版本最大的区别包括:1 ) 将寄存器更新单元 r u u ( r e g i s t e ru p d a t eu n i t ) 的功能分开由重新排序缓冲器r o b ( r e o r d e rb u f f e r ) 和保留站 r s ( r e s e r v a t i o ns t a t i o n ) 实现;2 ) 增加了检查站单元( c h e c k e ru n i t ) 来支持预测执行的正 确性;3 ) 更加符合实际的存储器接口。 尽管像s i m p l e s c a l a r 之类的处理器模拟器模拟了微结构,但是它们无法模拟整个系统 也无法运行一个操作系统,从而就需要全系统模拟器在系统层面上模拟包括操作系统等在内 的整个系统的运行情况,如s i m i e s 。s i m i c s 【5 2 j 最初由瑞典计算机科学院开发设计,是第一 个商用的全系统模拟器器。它支持大部分的指令集,包括:a l p h a ,p o w e r p c ,u l t r a s p a r c 和 x 8 6 6 4 ,也支持一些设备模块,比如:图形卡、以太网卡、总线控制器,这些都被详细的定 义从而可以运行真实的设备驱动。同时可以启动和运行l i n u x 、s o l a r i s 、w i n x p 等操作系统。 s i m i c s 最吸引人的性能之一就是它的断点和重现的能力,从而支持程序断点检测和利用 s i m i c sc e n t r a l 在不同的实体机器上模拟多处理器。比较著名的此类仿真器主要包括斯坦 福的s i m 0 s 朋1 、i b m 的m a m b o n 6 7 、d e c 的s i m 0 s - a l p h a “2 1 以及国内的基于龙芯的多核全系 统模拟器si m o s g o o d s o n h 8 。 w a t t c h 馏引是由普林斯顿大学在s i m o u t o r d e r 3 0 版本的基础上开发的单处理器功耗模 拟器。实验对比表明,w a t t c h 所建立的功耗模型与奔腾p r o 和a l p h a 2 1 2 6 4 两种处理器的情 况非常接近。尽管w a t t h 是功耗模拟器中应用最广泛的,但同时也还有一些其它的处理器功 耗模拟器,主要包括:i b m 的p o w e r t i m e r 晗3 | ,南加州大学( u n i v e r s i t yo fs o u t h e r n c a l i f o r n i a ,u s c ) 开发的s i m w a t t c h 埋引,密歇根大学( u n i v e r s i t yo fm i c h i g a n ) 开发的 4 浙江大学硕士学位论文 p o w e r a n a l y z e r n3 1 ,加州大学洛杉矶分校( u n i v e r s i t yc a l i f o r n i a ,l o sa n g e l e s ,u c l a ) 的 p o w e r i m p a c t 。和宾夕法尼亚大学( u n i v e r s i t yo fp e n n s y l v a n i a ) 开发的s i m p l e p o w e r m l 。 在这些仿真器中,s i m w a t t c h 因为将全系统模拟和w a t t c h 结合起来使得它最受关注。 r s i m 【1 1 ,矧( t h er i c es i m u l a t o rf o ri l pm u l t i p r o c e s s o r s ) 是由美国莱斯大学所开 发的多处理器性能模拟器。r i s m 的主要特性包括:乱序发射、寄存器重命名、分支预测、 无阻塞缓存、c a c h e 一致性协议等。其它主要的多处理器模拟器包括: m i n t 渤1 ( m i p s i n t e r p r e t e r ) 、t a l i s m a n 6 4 3 、w i s c o n s i nw i n dt u n n e li i 7 0 1 、a u g m i n t n 9 3 、t a n g o 3 7 1 、g e m s 1 6 1 以及基于s i m p l e s c a l a r 的多处理器模拟器【1 8 删。 l s e ( l i b e r t ys i m u l a t i o ne n v i r o n m e n t ) 嫡3 5 4 删标准组件模拟环境,是由普林斯顿大 学开发的一套用于计算机系统建模的开发环境。该开发环境旨在将计算机系统的并行结构化 部件进行建模,从而分级建立包含大量精确模块的模块库,利用这些模块可以快速容易的构 建各种模型,提高了模拟器的灵活性和复用性。在模拟器的开发过程中最大限度地重用已有 的组件,从而降低开发成本和难度。l s e 是目前最优秀的处理器体系结构模拟器开发工具之 一。它的特点主要体现在以下几个方面:( 1 ) 提供了并行结构化建模机制;( 2 ) 提供了基 于模块的重用机制;( 3 ) 提供了静态模型分析机制;( 4 ) l s e 可以作为一个处理器通用模 拟器构建框架。l s e 在较大程度上简化了模拟器的开发过程,但其速度和精度还有待提高。 其它此类的模拟器有:a s i m 旧引、e x p r e s s i o n 嵋7 | 、l i s a 2 1 及m i c r o l i b m 等。 1 4 体系结构软件模拟领域面临的问题及解决方案比较 在体系结构软件模拟技术领域存在3 大问题:即体系结构模拟器的开发难度大,开发周 期长;详细和完整模拟情况下的模拟执行时间非常长;模拟结果的精度还较低,还无法通过 单一的模拟方式来辅助计算机系统体系结构的设计h 引。多年来,研究人员为解决这3 个问题 进行了大量的研究,但大部分的研究集中在如何解决后两个问题上。 在现有的技术条件下,提高模拟速度和模拟结果的精度实际上是一对矛盾。因为目前在 体系结构软件模拟器上详细模拟运行计算机系统或处理器标准性能测试程序的全部动态指 令所耗费的时间是无法让人接受的。人们只能选取部分指令详细模拟执行来代替模拟执行完 整动态指令的模拟结果。选取的指令越多,越逼近完整指令的模拟结果,其模拟精度越高: 反之,其模拟精度越低。在处理器性能模拟研究领域,研究一般采用事实上的标准性能测试 程序是s p e c 组织的s p e cc p u 2 0 0 0 或s p e cc p u 2 0 0 6 。因此为减少模拟运行的时间,主要的研究 方法可以分为两类:( 1 ) 减少标准性能测试程序的输入参数集;( 2 ) 使用各种技术减少 在模拟器上运行的动态指令数。在s p e cc p u 2 0 0 0 中一共有2 6 个性能测试程序,从不同的方面 测试处理器的性能。其中,有1 2 个整数性能测试程序和1 4 个浮点数性能测试程序,每个性能 测试程序都有3 套输入参数,被称为测试输入参数集、训练输入参数集和参考输入参数集。 参考输入参数集是每个性能测试程序最大的输入参数集合。通常情况在测试处理器性能时, 每个测试程序只有在使用各自的参考输入参数集时,才能更准确地测试处理器的真实行为, 5 浙江大学硕士学位论文 但在进行处理器性能模拟研究时却很少使用参考输入参数集,因为使用参考输入参数集时需 要耗费太长的模拟运行时间m 引。 对于性能模拟,无论采用哪种方法或技术,都需要对模拟的结果进行衡量以确定这些方 法或技术的有效性。目前,主要有3 种指标来衡量模拟技术的效果:1 ) 计算系统或处理器 的性能瓶颈;2 ) 程序执行轮廓;3 ) 体系结构级的特征。对于第1 项指标,主要是看模拟器 分析出的性能瓶颈与实际计算系统的性能瓶颈是否一致。性能瓶颈分析可以使用y i 等人开发 的p & bd e s i g n l 4 引工具进行,它可以分析出哪些因素对系统的影响最大;第2 项指标是分析模 拟器执行性能测试程序所产生的指令跟踪信息的分布轮廓与真实系统执行性能测试程序所 产生的指令跟踪信息分布轮廓的相似度。为了刻画一个程序的执行轮廓,通常会将一个程序 的指令划分成程序基本块【4 副或程序阶段旧2 3 副,程序基本块指的是两个分支指令之间所含的 指令。刻画执行轮廓时,考察每个基本块的执行频率( b a s i cb l o c ke x e c u t i o nf r e q u e n c y , 简称b b e f ) 和每个基本块内部的指令数( b a s i cb l o c kv e c t o r ,简称b b v ) 。通过比较参考输入 参数集和其它输入参数集的b b e f 以及不同技术的b b e f ,就可以从代码覆盖率方面来获得某种 模拟技术的精度;第3 项指标在于衡量模拟器是否能够准确刻画计算系统体系结构级的特征。 体系结构级特征的刻画方法是首先向量化一组测量指标,如i p c 、分支预测精度、一级高速 缓存命中率、二级高速缓存命中率等,然后对每个测量指标的测量值进行归一化处理,最后 计算向量之间( 模拟器得出的指标向量和真实机器得出的指标向量) 的欧拉距离。该欧拉距离 越小,则模拟器刻画的体系结构级特征的精度越高。对于这3 项指标,在性能模拟领域应该 从3 个方面来加以分析:( 1 )性能瓶颈保真度,即模拟器所发现的性能瓶颈与真实系统性 能瓶颈之间的吻合程度。现实中,模拟器分析出的性能瓶颈与真实情况之间往往会存在偏差; ( 2 ) 配置依赖特性,为使用模拟器评估不同结构计算系统的性能,通常模拟器会设计许多 配置参数,如果在众多的配置参数组合下,模拟器所模拟的结果的精度能够保持一个常数, 则该模拟器是一个好的模拟器,这也是模拟器研究应达到的关键目标;( 4 ) 速度与精度的 折衷程度,即希望模拟执行速度快,同时所能达到的模拟精度也高。 1 4 1 减少测试程序的输入参考集 减少测试程序输入参数集的基本思想是,修改性能测试程序的参考输入参数集,从而减 少性能测试程序在软件模拟器上的运行时间。这种方法的一个特点是依然运行标准性能测试 程序的所有指令,但使用减少了的输入参数集来模拟运行,并使用该模拟运行结果来代表性 能测试程序使用参考输入参数集的模拟运行结果h ”。这种方法f 日m i n n e s o t a 大学提出,并进 行了大量的研究,开发了针对性能模拟器的性能测试程序输入参数集程序包m i n n e s p e c 。与 s p e cc p u 2 0 0 0 中每个测试程序的3 套输入参数集对应,m i n n e s p e c 为每个性能测试程序也提供 了3 套减少了的输入参数集合,分别称为s m a l l ,m e d i u m 和l a r g e 输入参数集合。使用m i n n e s p e c 中提供的输入参数集和使用s p e cc p u 2 0 0 0 中原有的输入参数集运行测试程序,其运行结果之 间的差异非常大h5 | ,只有少部分的结果吻合得较好h 利。因此,该方法不能较好地解决速度 与精度的矛盾。 6 浙江大学硕士学位论文 1 4 2 减少模拟运行的指令数 减少模拟运行的指令数是在使用标准性能测试程序参考输入参数集的情况下,选取部 分指令模拟运行,并使用这部分指令模拟运行的结果来代替整个测试程序指令模拟运行的结 果。如何选取部分指令进行模拟运行是影响模拟执行速度和模拟结果精度的关键因素之一。 根据选取部分指令的方式,减少模拟运行指令数方法可以分为两大类:( 1 ) 直接截取一段 连续的指令;( 2 ) 使用统计采样方法选取模拟运行的指令。 ( 1 ) 直接截取一段连续的指令 直接截取一段连续的指令主要是在标准性能测试程序指令中任意选取一段连续的指令 在模拟器上执行,并由此结果来代表性能测试程序所有指令模拟执行的结果。值得注意的是, 这种方法只选一段指令而不是多段指令模拟执行的结果作为最终的模拟结果,但每个测试程 序模拟执行时使用参考输入参数集作为输入参数。这种方法的主要代表是r u n2 和它的两个 改进版f f x + r u nzf f x + w uy + r u nz or u n2 详细模拟执行一个性能测试程序最初的2 百万条 指令,模拟执行的时间由厕值决定。使用最初的2 百万条指令来代替所有指令模拟执行的结 果显然不合理,因为最初的指令中包含了性能测试程序在模拟器上运行的初始化工作,而初 始化时模拟器还没有达到稳定状态。为了克服这个缺陷,出现了f f x + r u n 缴术。这种技术 先快速向前执行艏万条指令,再详细模拟执行貊万条指令,并以此结果作为最后模拟的结 果。所谓快速向前执行是相对详细模拟执行而言的,模拟器在模拟执行时忽略了许多细节状 态的产生和记录,如指令发射、内存状态等,从而快速向前执行。f f x + r u n 旋对r u n 确改 进,但它立即引来另外一个问题:快速向前执行厢万条指令以后,模拟器中还不存在与实 际硬件对应的许多信息,如控制寄存器和状态寄存器的信息,它们将直接影响后续指令的执 行,这时突然开始详细模拟执行实际上不符合实际情况,因此模拟执行的结果并不可信。为 了解决这个问题,f f x + w u y + r u n 缴提了出来。这项技术在快速向前执行厢万条指令后,开 始详细执行佰万条指令作为“预热”执行,最后详细执行貊万条指令。实际上,s m a r t s 中的“预热”执行方式来源于这里。 直接截取一段连续的指令模拟执行( r u nzf f x + r u n 琊f f x + w uy + r u n 力的最大优点是 可以极大地减少模拟执行的时间,并且模拟执行的时间可由z 卿肭值来加以调整。然而 这种技术往往不能代表完整指令模拟执行的结果。因此这种技术只能应用在非常有限的情况 下,不能作为一种成功的技术使用在多数模拟环境中。 ( 2 ) 使用统计采样方法选取模拟运行的指令 统计采样方法是利用统计学的方法从详细观察的子集的特点来推知全集的特征。该技术 的关键是如何确定详细模拟执行的指令来保证模拟结果正确地代表所有指令模拟执行的结 果。目前在计算机体系结构研究领域,主要的统计采样方法有3 种:1 ) 代表性采样;2 ) 周 期性采样;3 ) 随机采样。代表性采样的基本思想是在s p e cc p u 2 0 0 0 测试程序的动态指令中 选择模拟执行点( 一段指令) ,用模拟执行点的模拟结果来代表整个测试程序的行为。这项技 7 浙江大学硕士学位论文 术的典型代表是加州大学圣地亚哥分校的s i m p o i n t 陴瑚7 3 1 。s i m p o i n t 模拟分3 步进行:首先 分析测试程序,找出候选的模拟点;然后使用基于统计的聚类( c l u s t e r i n g ) 办法选择一组模 拟点进行模拟执行,代表整个测试程序的模拟;最后将所选的每个模拟点的模拟结果进行加 权得出最后的模拟结果。所选模拟点的个数和每个所选模拟点的长度( 即指令数) 决定模拟时 间。与代表性采样模拟不同,周期性采样模拟是在测试程序的动态指令中以固定间隔周期性 地选取部分指令进行详细模拟。可以通过控制采样频率和每个样本的长度来控制模拟执行的 时间。这类技术的典型代表是c a r n e g i em e l i o n 大学的s 姒r t s 引。随机采样先从测试程序的 动态指令中随机抽取 段指令进行模拟执行,然后将这些模拟结果以某种方式加以合并,形 成最后的模拟结果。需要指出的是,统计采样技术也采用了直接截取一段连续指令技术中的 部分技术。 1 4 3 技术比较 根据文献【4 副的研究和我们对各种模拟技术的研究与理解,下面将从性能瓶颈分析、程序 执行轮廓、体系结构级特征刻画与分析以及速度与精度的折衷和模拟结果配置依赖这4 个方 面来对上述6 种提高模拟速度的技术进行比较。 ( 1 ) 性能瓶颈分析 r u nzf f x + r u nz 以及f f x + 聊jy + r u n2 在性能瓶颈分析方面的精度非常差。因此不能使 用这三种方法来指导计算系统或处理器设计中的性能瓶颈分析。其原因是非常显然的:第一, 这3 种技术中丘卿匆苴的选择是任意的,很可能所选择的详细模拟执行的指令段是对性能瓶 颈分析没有帮助的,并且所选择的这部分详细模拟执行的指令的执行结果不能代表测试程序 所有指令模拟执行的结果;第二,对于具有复杂行为特性的性能测试程序,如g c c ,即使快 速向前执行了几十亿条指令,再详细模拟执行貊万条指令,还是不能分析出性能瓶颈。为 了能够分析出性能瓶颈,只有加大详细模拟执行的指令数,然而这种技术无法预知还应详细 模拟执行多少条指令才能分析出性能瓶颈。同时加大了详细模拟执行的指令数会延长模拟执 行的时间,从而让这3 种技术失去吸引力。而s m a r t s 和s i m p o i n t 能够较为逼真地分析系统的 性能瓶颈。从不同的性能测试程序在s m a r t s 和s i m p o i n t 上模拟执行的结果来看,某些测试程 序在s i m p o i n t 上执行的结果略好于在s m a r t s 上的执行结果,另外一些测试程序在s m a r t s 上的 执行结果则略好于在s i m p o i n t 上的执行结果。但从总体来看,s m a r t s 在性能瓶颈分析方面的 精度略高于s i m p o i n t 。 ( 2 ) 程序执行轮廓、体系结构级特征刻画与分析 使用减少输入参数集的方法和r u n 彼其改进版所分析出来的程序执行轮廓和体系结构 级特征,与使用参考输入参数集的测试程序在同样配置下的实际机器上运行分析出的程序执 行轮廓和体系结构特征差别很大。其原因是r u n 汲其改进版只执行了测试程序的一小部分 指令,而在减少输入参数集方法中,同一程序基本块执行的频率与使用参考输入参数集时的 执行频率是不同的。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人音版☆茉莉花教案
- N3层级护士三基+临床实践指南理论知识模拟练习题及参考答案
- 测绘地理信息服务协议
- 2025年CAAC无人机执照考试题及答案详解
- 生产安全事故应急处置预案管理办法
- 2024年安全知识竞赛考试题及答案
- Unit 1 When did they come教学设计-2025-2026学年小学英语四年级上册外研版(一起)
- 智能量化策略中的异常点鲁棒处理
- 2025年人工智能技术与应用考试试题及答案
- 2025年安全培训试题及答案
- 食品安全风险隐患内部报告奖励制度(供参考)
- 旋转电磁铁课件
- (正式版)DB65∕T 4353-2021 《风力发电机组塔筒倾斜度测量方法》
- (正式版)DB65∕T 3952-2016 《反恐怖防范设置规范 学校》
- 中石油冬季安全培训课件
- 2025年工业设备安装行业研究报告及未来发展趋势预测
- 2025年杭州萧山国际机场控制区通行证考试题库及答案
- 基于绿电直连的工业园区低碳化路径
- 外泌体课件教学课件
- 危险化学品镁存储安全操作规程
- 2025年安全知识竞答题库及答案
评论
0/150
提交评论