本发明专利技术涉及一种平台虚拟化系统,包括:CPU模拟器:首先读取X86架构代码指令,判断所述指令基本块是否已翻译;翻译过程采用二进制翻译器实现,二进制翻译器包括翻译引擎和执行引擎;其中翻译引擎把X86架构代码翻译成龙芯平台代码;执行引擎准备龙芯平台代码运行的上下文环境,然后从龙芯平台代码缓存中找到X86架构代码所对应的龙芯平台代码并执行;内存虚拟化模块:采用影子页表方法;外设虚拟化模块:针对每一个外设设备分别建立相应的设备模型,X86架构虚拟机通过设备模型与外设设备进行行交互,实现设备发现和访问使用。本发明专利技术能够使一些尚不能适配国产龙芯硬件平台的信息系统以虚拟化的方式运行在国产软硬件环境中,有助于在信息系统的自主化升级过程中实现新旧技术体制的平滑过渡。
【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种平台虚拟化系统,包括:CPU模拟器:首先读取X86架构代码指令,判断所述指令基本块是否已翻译;翻译过程采用二进制翻译器实现,二进制翻译器包括翻译引擎和执行引擎;其中翻译引擎把X86架构代码翻译成龙芯平台代码;执行引擎准备龙芯平台代码运行的上下文环境,然后从龙芯平台代码缓存中找到X86架构代码所对应的龙芯平台代码并执行;内存虚拟化模块:采用影子页表方法;外设虚拟化模块:针对每一个外设设备分别建立相应的设备模型,X86架构虚拟机通过设备模型与外设设备进行行交互,实现设备发现和访问使用。本专利技术能够使一些尚不能适配国产龙芯硬件平台的信息系统以虚拟化的方式运行在国产软硬件环境中,有助于在信息系统的自主化升级过程中实现新旧技术体制的平滑过渡。【专利说明】一种平台虚拟化系统
本专利技术属于虚拟计算领域,具体涉及一种基于国产软硬件环境的资源虚拟化环境平台虚拟化系统构建方法。
技术介绍
龙芯(Loongson)是由中国科学院计算机所自主开发的采用简单指令集的通用系统处理器,可以用于服务器和个人电脑领域。目前已经发展到龙芯2F和龙芯3A多核高性能处理器。龙芯处理器主要包括三个系列。龙芯I号处理器及其IP系列主要面向嵌入式应用,龙芯2号超标量处理器及其IP系列主要面向桌面应用,龙芯3号多核处理器系列主要面向服务器和高性能机应用。目前最新的龙芯3A处理器采用的是RISC架构,兼容MIPS指令,原生四核设计,内含两条HT PHY超传输总线,采用65nm (纳米)工艺,主频IGHz。中标麒麟操作系统(龙芯版)是中标软件公司开发的龙芯平台操作系统。针对龙芯系列处理器硬件设计和指令集特点,从操作系统内核进行适配和优化。在应用环境之外,中标麒麟操作系统(龙芯版)还构建了基于龙芯CPU的完善应用开发环境,方便得支持基于龙芯CPU进一步应用开发和移植的工作。由于龙芯处理器采用与通用X86系统不同的体系架构,指令集上与X86也不相兼容,同时,为了提高处理器的性能,龙芯处理器的指令集也增加了许多新的优化指令。针对龙芯硬件平台的特点,中标软件在通用桌面基础上进行移植开发、性能调优和针对性改进,系统软件包均采用龙芯2F处理器指令集进行了重新编译,并针对功能性与易用性进行了优化。虚拟化(Virtualization)技术最早出现在20世纪60年代的IBM大型机系统,在70年代的System370系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(VirtualMachine Monitor, VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine)实例。随着近年多核系统、集群、网格以及云计算的广泛部署,虚拟化技术在商业应用上的优势日益体现,不仅降低了 IT成本,而且还增强了系统安全性和可靠性,虚拟化的概念也逐渐深入到人们日常的工作与生活中。通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(ControlProgram,也被称为Virtual Machine Monitor或Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。虚拟机中运行的操作系统被称为客户机操作系统(Guest OS),运行虚拟机监控器的操作系统被称为主机操作系统(Host OS)。运行虚拟机的真实系统我们称之为主机系统。平台虚拟化技术又可以细分为如下几个子类:(I)全虚拟化(Full Virtualization)全虚拟化是指虚拟机模拟了完整的底层硬件,包括处理器、物理内存、时钟、外设等,使得为原始硬件设计的操作系统或其它系统软件完全不做任何修改就可以在虚拟机中运行。操作系统与真实硬件之间的交互可以看成是通过一个预先规定的硬件接口进行的。全虚拟化VMM以完整模拟硬件的方式提供全部接口(同时还必须模拟特权指令的执行过程)。全虚拟化VMM必须完整地模拟该接口执行的全过程。如果硬件不提供虚拟化的特殊支持,那么这个模拟过程将会十分复杂。(2)半虚拟化(Paravirtualization)这是一种修改Guest OS部分访问特权状态的代码以便直接与VMM交互的技术。在半虚拟化虚拟机中,部分硬件接口以软件的形式提供给客户机操作系统,这可以通过Hypercall (VMM提供给Guest OS的直接调用,与系统调用类似)的方式来提供。这要求GuestOS必须进行修改,才能使用VMM提供的HypercalI功能,所以限制了可用的操作系统。由于不需要产生额外的异常和模拟部分硬件执行流程,半虚拟化相对全虚拟化可以大幅度提高性能,比较著名的VMM有Xen。(3)硬件辅助虚拟化(Hardware-Assisted Virtualization)硬件辅助虚拟化是指借助硬件(主要是主机处理器)的支持来实现高效的全虚拟化。例如有了 Intel-VT技术的支持,Guest OS和VMM的执行环境自动地完全隔离开来,Guest OS有自己的“全套寄存器”,可以直接运行在最高级别。Intel-VT和AMD-V是目前x86体系结构上可用的两种硬件辅助虚拟化技术。目前,在国产龙芯平台上使用虚拟化技术的主要技术障碍是:(I)目前龙芯平台还不支持硬件辅助虚拟化技术。(2)目前主要的应用软件都运行在Intel x86平台上,属于CISC架构,x86指令集。而龙芯平台属于RISC架构,使用MIPS指令集,软硬件与X86平台不兼容。因此,本专利技术采用全虚拟化方法,在龙芯平台上模拟出X86架构的虚拟硬件,实现在龙芯平台上运行X86架构的虚拟机。
技术实现思路
本专利技术的目的是提供一种平台虚拟化系统,在龙芯处理器平台上运行X86架构虚拟机,并且在X86架构虚拟机中使用传统的X86操作系统,运行已有的软件。本专利技术所采用的技术方案是:一种平台虚拟化系统,在龙芯处理器平台上运行X86架构虚拟机,包括如下部分:CPU模拟器:首先读取X86架构代码指令,判断所述指令基本块是否已翻译,若未翻译,则进行翻译并写入龙芯平台中的指令寄存块;若已翻译,则在龙芯平台上执行已翻译过的代码块并指向下一个X86架构代码指令,循环判断并执行;上述翻译过程采用二进制翻译器实现,二进制翻译器包括翻译引擎和执行引擎;其中翻译引擎把X86架构代码翻译成龙芯平台代码;执行引擎准备龙芯平台代码运行的上下文环境,然后从龙芯平台代码缓存中找到X86架构代码所对应的龙芯平台代码并执行;内存虚拟化模块:采用影子页表方法,使X86架构虚拟机在进行内存读写时可以直接得到龙芯平台宿主机物理地址;外设虚拟化模块:针对每一个外设设备分别建立相应的设备模型,X86架构虚拟机通过设备模型与外设设备进行行交互,实现设备发现和访问使用。如上所述的一种平台虚拟化系统,其中:所述二进制翻译器,实现步骤如下:首先读取X86架构指令,将该指令放入解码/分派循环;其次在解码/分派循环中,X86架构指令被解释为龙芯平台指令;最后根据龙芯平台指令执行对应的解释执行函数。如上所述的一种平台虚拟化系统,其中:对于多条X86架构指令,逐条进行解码和执行。如上所述的一种平台虚拟化系统,其中:所述龙芯平台上设有目标机器代码缓存,所述缓存由二进制翻译器的翻译引擎管理;由于本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:刘东红,郭长国,李永红,朱燕,刘伟华,孙巍,
申请(专利权)人:中国电子设备系统工程公司研究所,普华基础软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。