学位论文 > 优秀研究生学位论文题录展示
面向高可伸缩与可移植的众核全系统模拟器的设计与实现
作 者: 王肇国
导 师: 朱传琪
学 校: 复旦大学
专 业: 计算机软件与理论
关键词: 全系统模拟器 并行模拟器 多核
分类号: TP302.1
类 型: 硕士论文
年 份: 2011年
下 载: 33次
引 用: 0次
阅 读: 论文下载
内容摘要
全系统模拟器可以用于指定模拟某个硬件平台,因此其被广泛用于软件开发、错误判定、内存访问情况的查看和分析等用途。多核技术的发展为全系统模拟器技术带来了众多机遇同时也带来了很多挑战。一方面,多核平台拥有丰富的物理计算资源可供全系统模拟使用并提高自身模拟的性能。另一方面,随着多核平台上处理器数目快速增长,要求全系统模拟器可以高效的模拟大量核的多核平台并可以模拟运行处理大数据量的并行程序。与此同时,全系统模拟器必须有能力真实的模拟并行程序在多核平台上的并行运行的行为从而才有可能暴露并行程序自身存在的问题,如并行错误中的数据竞争问题。然而,由于当今主流的全系统模拟器都在利用一个物理处理器,以轮训的方式模拟多核计算平台,因此,他不但不能够利用多核平台上丰富的物理计算资源与此同时还将在性能上非常差的可伸缩性。与此同时,在可靠性方面,由于虚拟核之间经常以较粗粒度进行调度,因此非常容易隐藏并行程序本身由于运行由于数据竞争而产生的随机错误,进而严重约束了对模拟软件运行时行为的分析。然而我们知道开发一个全系统模拟器,由于要考虑到系统相关的所有层面,因此需要大量地人力并花费大量地时间。而全系统模拟器较普通的用户态程序模拟器更为复杂,其原因在于要考虑全系统的所有层面,如系统指令集、地址翻译、运行的特权级、中断以及外设的模拟。而不同体系结构指令集的不同也给构建一个可移植的全系统模拟器带来了更大的困难。本文提出了一个全新构建并行全系统模拟器的方法。我们发现对于现有的多核平台,核于核之间关系以及核与外设之间相互独立,他们之间通过有着标准规范的总线接口进行通讯。例如,每个处理器都拥有自己的控制单元、寄存器以及缓存,处理器之间通过核间中断进行通讯。这样的组织结构允许我们基于现有的并行模拟器构建一个有效地并行模拟框架,而不是简单的将其并行化,从而降低构建并行模拟器的复杂性。我们通过集成多个主流的串行模拟器来构建一个并行模拟器,每一个串行模拟器都用来模拟一个虚拟处理器并以一个线程的形式运行。我们还提供了一个简单有效的协议层负责线程的调度、通讯和同步模拟。我们认为这种简单的构建方法可以使得并行模拟器具有很好的可伸缩性、可靠性、可移植性以及动态负载均衡的能力。通过引进轻量级事务技术、非阻塞队列技术以及针对多核模拟的调度算法,基于已有的主流串行模拟器,我们构建了高可伸缩性和可移植性的并行模拟器。我们基于QEMU实现了一个并行模拟器原型COREMU,该原型系统中QEMU的代码修改行数仅仅在2500行左右。该原型系统支持对x64和ARM两不同的体系结构的并行模拟。对于x64,最多可以并行模拟255个虚拟核。对于ARM,最多可以对4个虚拟核进行模拟。与此同时,为了帮助程序员更加有效的对程序进行开发和分析,COREMU还集成了观察点和内存访问序列收集的机制。对于性能评测,我们使用SPECINT-2000基准评测程序进行评测,其结果显示对于单核模拟COREMU仅仅有1%不到的性能开销。而对于多和模拟,COREMU较QEMU具有更好的可伸缩性。我们使用了多个基准评测程序对其模拟多核时性能的多个方面进行评测,结果显示,当COREMU模拟的虚拟核数目不大于物理核数目时,其具有非常好的可伸缩性。当其模拟的虚拟核数目大于物理核数目时,其性能的下降仍然在可接受的范围内。与此同时,对于所有测试程序,COREMU都可以模拟到255个虚拟处理器而当QEMU模拟超过16个处理器时,测试程序模拟运行时间便会超时。当COREMU在4*4的多核计算平台上模拟16个虚拟处理器时,和QEMU相比,它达到了20-67倍的提速。
|
全文目录
摘要 6-8 Abstract 8-10 第一章 引言 10-16 1.1 研究背景 10-13 1.2 本文工作 13-14 1.3 全文结构 14-16 第二章 模拟器技术概览 16-28 2.1 精确模拟器(Simulator) 16-17 2.2 功能性模拟器(Emulator) 17-20 2.2.1 用户态程序模拟器 17-18 2.2.2 全系统模拟器 18-20 2.3 全系统模拟器的主要技术 20-28 2.3.1 二进制翻译技术 20-21 2.3.2 代码缓存管理技术 21-22 2.3.3 内存管理的模拟 22-23 2.3.4 异常和中断的模拟 23-26 2.3.5 I/O设备的模拟 26 2.3.6 多核平台的模拟 26-27 2.3.7 其他优化技术 27-28 第三章 多核平台架构概述 28-34 3.1 原子指令 29-30 3.2 访存顺序 30-31 3.3 自修改代码 31 3.4 多核平台的中断控制器 31-32 3.5 核间通信 32-34 第四章 COREMU的并行模拟框架 34-40 4.1 并行模拟器的概念和作用 34-36 4.1.1 对模拟过程的切分和并行 34-35 4.1.2 并行模拟不同的硬件单元 35-36 4.2 多核体系结构的特点 36-37 4.2.1 独立性 36-37 4.2.2 规范的交互接口 37 4.3 COREMU的主要架构 37-40 第五章 COREMU的具体设计 40-56 5.1 原子指令的模拟 40-45 5.1.1 用锁来实现原子指令及问题 40-43 5.1.2 内存事务的概念 43 5.1.3 原子指令的高效模拟 43-45 5.2 多核平台通信机制的模拟 45-49 5.2.1 实时信号 45-46 5.2.2 非阻塞数据结构 46-47 5.2.3 多核平台异步通信的模拟 47-49 5.3 代码缓存管理机制 49-53 5.3.1 并行模拟器中代码缓存的实现 49-51 5.3.2 代码缓存延迟无效机制 51-53 5.4 高效的调度机制 53-56 5.4.1 Pause指令和HLT指令的模拟 53-54 5.4.2 持有锁线程被抢占的问题 54-56 第六章 COREMU的具体实现 56-62 6.1 COREMU库及其接口 56-59 6.2 QEMU的修改和集成 59-62 第七章 性能评测 62-68 7.1 测试环境 62 7.2 x64平台模拟的性能评测 62-67 7.2.1 单核模拟的性能评测 62-63 7.2.2 多核模拟性能和可伸缩性的评测 63-65 7.2.3 模拟大数据处理任务的性能评测 65-66 7.2.4 模拟复杂任务的性能评测 66 7.2.5 I/O模拟性能的评测 66-67 7.3 ARM平台模拟性能的评测 67-68 第八章 COREMU的实用性 68-73 8.1 基于COREMU的观察点机制 68-71 8.1.1 接口及实现 68-70 8.1.2 个案研究 70-71 8.2 对缓存访问的模拟和分析 71-73 第九章 总结与展望 73-75 9.1 创新与贡献 73-74 9.2 研究展望 74-75 参考文献 75-77 致谢 77-78
|
相似论文
- 基于多核学习的高性能核分类方法研究,TP391.41
- TD-SCDMA无线链路控制协议实现研究,TN929.533
- 多核系统中实时任务调度算法的研究,TP332
- 保护在线自适应整定的研究,TM77
- 多核系统中基于温度限制的节能调度算法研究,TP332
- 分布式内存多核处理器流程序虚拟机研究,TP333.1
- 基于TILE Pro64多核处理器的3G服务器视频转码软件设计,TP393.05
- 基于TilePro64多核处理器的H.264高清视频解码软件设计,TN919.81
- 基于多核SMP集群环境的光线追踪模拟卫星成像并行研究与实现,TP391.41
- 基于多核处理机的RSA并行算法的研究与实现,TP309.7
- 基于GALS的多核互连及任务调度策略研究,TN47
- 基于广义组合多核高斯函数的图像分类方法研究,TP391.41
- 多核集群环境下并行地理计算执行时间预测技术研究,TP338.6
- 基于共享前端的流多核体系结构关键技术研究,TP332
- 面向众核温度感知的Linux调度器的研究与实现,TP316.81
- 基于群智能和冲突规避策略的基因—基因交互作用检测及其并行计算,TP391.41
- 基于多核混合支持向量机的城市短时交通预测,U491.14
- 基于EFI的软件异构多核系统及其安全应用模型,TP316
- 多分辨率图像锥结合FCM的多核并行图像分割算法研究,TP391.41
- 2D MESH片上网络容错路由算法研究,TP302.8
- 高性能低功耗多核处理器研究,TP332
中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 一般性问题 > 设计与性能分析 > 总体设计、系统设计
© 2012 www.xueweilunwen.com
|