1、 本科毕业论文 (科研训练、毕业设计 ) 题 目: 基于 ARM体系的虚拟机的构架实现 姓 名: 学 院:软件学院 系: 专 业:软件工程 年 级: 学 号: 指导教师(校内): 职称: 年 月厦门大学本科毕业论文 2 摘 要 所谓虚拟机,实际上就是一种应用软件 ,他通过软件的模拟使得一些应用得以跨平台进行。 ARM 架构 则 是面向低预算市场设计的第一款 RISC 微处理器 。 ARM 提供一系列内核、体系扩展、微处理器和系统芯片方案 。 而 本文正是 通过基于目前应用十分广泛的 ARM CPU的虚拟机阐述如何实现一个基本的虚拟机。 本文通过阐述虚拟机的基本原理和基本构架,和详细讨论每一个部
2、件的具体实现来说明如何实现一个基于 ARM CPU 的虚拟机。 虚拟机的实现是硬件模拟的软件实现。本文 所讨论的问题是如何在 PC 平台上软件模拟 ARM 平台,而核心部分则是 CPU、内存系统的模拟以及总线结构的程序接口。 关键词 : 虚拟机 ARM CPU 厦门大学本科毕业论文 3 Abstract Virtual Machine(VM) in fact is the software that emulates another hardware platform different from current platform. The ARM is faces the low budge
3、t market designthe first section RISC microprocessor. ARM provides a series ofessences, the system expands, the microprocessor and the system chipplan This article precisely through applies extremely widespreadARM CPU based on at present the hypothesized machine elaboration torealize basically hypot
4、hesized machine. This article through the elaboration hypothesized machine basicprinciple and the basic skeleton, with in detail discusses each partspecifically to realize showed how realizes hypothesized based on ARMCPU machine. The VM realization is the software realization whichthe hardware simul
5、ates. This article discusses how does the questionsoftware simulate the ARM platform in the PC platform, but the coreare partial is CPU, the memory system simulation as well as the mainline structure procedure connection. Key words: Virtual machine, ARM CPU 厦门大学本科毕业论文 4 目 录 1 引言 . 6 2 总体设计 . 7 3 详细设
6、计 . 8 3.1. ARM 体系概述 . 8 3.1.1. 关于 ARM. 8 3.2. ARM 处理器 . 9 3.2.1. 什么是 ARM?什么是 ARM7? . 9 3.2.2. ARM 的 CPU 寄存器 . 11 3.3. 内存与 IO 映射 . 11 3.4. 具体的模拟实现 . 11 3.4.1. CPU、内存与 IO 的具体信息 . 11 3.4.2. 软件结构 . 12 3.4.3. 接 口 . 12 3.4.4. 简单的界面 . 15 3.4.5. 模拟线程 . 15 3.4.6. 图形显示 . 16 3.4.7. HEX 文件格式 . 17 4 实现结果 . 20 5
7、致谢语 .错误 !未定义书签。 6 参考文献 .错误 !未定义书签。 厦门大学本科毕业论文 5 Directory 1 Introduction.6 2 Overall design .7 3 Detailed design .8 3.1. ARM System .8 3.1.1. About ARM .8 3.2. ARM CPU.9 3.2.1. What is ARM? What is ARM7? .9 3.2.2. ARM CPU Register .11 3.3. Memory And IO .11 3.4. About EMU.11 3.4.1. CPU、 Memory And I
8、O .11 3.4.2. Structure. 12 3.4.3. Connection . 12 3.4.4. Contact surface. 15 3.4.5. Line regulation . 15 3.4.6. Graph. 16 3.4.7. About HEX . 17 4 System realization . 20 5 Acknowledgement. 24 6 References . 25 厦门大学本科毕业论文 6 基于 ARM体系的虚拟机的构架实现 -ARM 虚拟机的具体应用实例 1 引言 虚拟机是一种在一种硬件平台上模拟另一种硬件平台的软件。它能够提供与真实硬件相
9、似的的行为。虚拟机的用途十分广泛,在 硬件开发、操作系统开发、嵌入式开发、防病毒、娱乐等许多领域都发挥了重要的作用。 虚拟机是一个软件系统。它的结构相似与真实硬件结构,但又不完全相同。虚拟机旨在模拟真实硬件的行为。 设计和完成虚拟机需要同时拥有对软件和硬件的深入了解。虚拟机的开发和测试是十分复杂的工作。为了保证虚拟机行为的正确,通常要深入的确保每一个细节模拟的正确性。同时进行大量的测试确保软件质量。例如,在虚拟机中,CPU 通常有数百句指令,每个指令都有对应的处理过程,。这些大量的处理过程需要足够的测试来保证其行为的正确。 ARM 体系的 CPU 是基于 RISC 构架的,并广泛用于嵌入式领域
10、的。现有的ARM 模拟软件有 Skyeye,这是一款中国人开发的开源软件,目前已经十分成熟。 由于虚拟机开发工作的庞大,我们的目的是开发出一个只具备少量核心成分的虚拟机。也不追求模拟的尽可能精确,但力图将虚拟机开发的要点体现出来。 由于技术水平、设计时间和开发兴趣等原因我们选择了在 PC 机上模拟运行SimpleArmulator。本人主要负责的部分就是如何将“ ARM 体系的虚拟机”具体化为“在 PC 平台上通过软件模拟”。 厦门大学本科毕业论文 7 2 总体设计 整个虚拟机的结构看起来是这个 样子的: CPUMMUIOCP1 *11* 1*1图 2.1 虚拟机有一个 CPU,一个 MMU,
11、若干个协处理器 CP,及若干个外设 IO。总体上看,这个结构不复杂。实际上,每个模块都包含大量的硬件行为模拟内容。 CPU 模块即模拟 CPU 行为的软件模块,主要的工作在于指令、异常和中断的模拟。也是整个结构的中心。 CP 接口及协处理模块接口,主要有供 CPU 调用的协处理器访问接口。 CPU有 15 个协处理器接口,可以和 15 个协处理器合作。 MMU 是协处理器的一种,主要的工作是管理 CPU 对内存的访问。 一般有一个 MMU。 CPU 可以像对一般的协处理器那样对其进行访问来改变它的行为。CPU访问内存的操作由 MMU提供,达到对 CPU内存访问加以控制的目的。 MMU也能访问
12、CPU,比如对 CPU 触发一个内存故障异常。 IO 接口是 MMU 访问外设时,提供给 MMU 访问其寄存器的统一接口。主要提供依据地址访问其寄存器的接口。外设也需要访问 CPU,比如对 CPU 触发一个硬件中断。 厦门大学本科毕业论文 8 各种不同的外设有不同的功能。有些外设的模拟复杂度不亚于模拟 CPU,模拟的工作量十分大。完整的虚拟机,拥有各种外设。 这里主要倾向于模拟 ARM CPU,并 以此构造出虚拟机。 3 详细设计 3.1. ARM 体系概述 在接下来的一段里,我们将了解一下 ARM 体系。 3.1.1. 关于 ARM ARM 是英国 ARM 开发的 32 位 CPU 核 ,
13、全球厂商都可以获得授权生产 ARM 芯片。而且价格出乎意料得便宜,比如做 网络 应用的 4510 只需 45 元人民币,这样低端产品可以采用 8051 等 8 位单片机,而中高端产品采用 ARM 是非常明智的选择。 厦门大学本科毕业论文 9 3.2. ARM 处理器 ARM 是一个比较庞大的家族,在涉及到不同带的 ARM 处理器时,本文只着重讨论与我们具体化相关的 ARM7 CPU,而对当前流行的 ARM9 的一些特点,由于篇幅和知识所限,暂不做介绍。 3.2.1. 什么是 ARM?什么是 ARM7? ARM( Advanced RISC Machines)是微处理器行业的一家知名企业,设计了
14、大量高性能、廉价、耗能低的 RISC 处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费 /教育类多媒体、DSP 和移动式应用等。 ARM 将其技术授 权给世界上许多著名的半导体、软件和 OEM 厂商,每个厂商得到的都是一套独一无二的 ARM 相关技术及服务。利用这种合伙关系, ARM 很快成为许多全球性 RISC 标准的缔造者。 目前,总共有 30 家半导体公司与 ARM 签订了硬件技术使用许可协议,其中包括 Intel、 IBM、 LG 半导体、 NEC、 SONY、菲利浦和国民半导体这样的大公司。至于软件系统的合伙人,则包括微软、升阳和 MR
15、I 等一系列知名公司。 ARM 架构是面向低预算市场设计的第一款 RISC 微处理器。 ARM 提供一系列内核、体系扩展、微处理器和系统 芯片方案。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行(理论上如此)。典型的产品如下。 CPU 内核 -ARM7:小型、快速、低能耗、集成式 RISC 内核,用于移动通信。 - ARM7TDMI(Thumb):这是公司授权用户最多的一项产品,将 ARM7 指令集同Thumb 扩展组合在一起,以减少内存容量和系统成本。同时,它还利用嵌入式 ICE调试技术来简化系统设计,并用一个 DSP 增强扩展来改进性能。该产品的典型用途是数字蜂窝电
16、话和硬盘驱动器。 -ARM9TDMI:采用 5 阶段管道 化 ARM9 内核,同时配备 Thumb 扩展、调试和 Harvard厦门大学本科毕业论文 10 总线。在生产工艺相同的情况下,性能可达 ARM7TDMI 的两倍之多。常用于连网和顶置盒。 体系扩展 - Thumb:以 16 位系统的成本,提供 32 位 RISC 性能,特别注意的是它所需的内存容量非常小。 嵌入式 ICE 调试 由于集成了类似于 ICE 的 CPU 内核调试技术,所以原型设计和系统芯片的调试得到了极大的简化。 微处理器 -ARM710 系列,包括 ARM710、 ARM710T、 ARM720T 和 ARM740T:低
17、价、低能耗、封装式常规系统 微型处理器,配有高速缓存( Cache)、内存管理、写缓冲和 JTAG。广泛应用于手持式计算、数据通信和消费类多媒体。 -ARM940T、 920T 系列 :低价、低能耗、高性能系统微处理器,配有 Cache、内存管理和写缓冲。应用于高级引擎管理、保安系统、顶置盒、便携计算机和高档打印机。 -StrongARM:性能很高、同时满足常规应用需要的一种微处理器技术,与 DEC联合研制,后来授权给 Intel。 SA110 处理器、 SA1100 PDA 系统芯片和 SA1500多媒体处理器芯片均采用了这一技术。 -ARM7500 和 ARM7500FE:高度集成的单芯片
18、 RISC 计算机,基于一个缓存式 ARM7 32 位内核,拥有内存和 I/O 控制器、 3 个 DMA 通道、片上视频控制器和调色板以及立体声端口 ;ARM7500FE 则增加了一个浮点运算单元以及对 EDO DRAM 的支持。特别适合电视顶置盒和网络计算机( NC)。 Windows CE 的 Pocket PC 只支持 ARMWindows CE 可支持多种嵌入式处理器,但基于 Windows CE 的 Pocket PC 则只支持 ARM 一种。微软在对 SH3、 MIPS、 ARM等嵌入式处理器做了评估 后认为, ARM 是一种性价比较好的选择。由于目前 ARM在手持设备市场占有 90%以上的份额,只支持 ARM,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。由于 ARM 开放其处理器授权,因此,用户在市场上可以在多家整机厂商中进行选择,从而保证了这一市场的竞争性。