没有合适的资源?快使用搜索试试~ 我知道了~
-沙特国王大学学报MIPS 64架构下Type-2 Hypervisor的性能评估与优化Qurrat Ain,Muhammad AmirMehmoodAl-Khawarizmi计算机科学研究所(KICS),工程技术大学,G.T Road Lahore,Lahore 54000,巴基斯坦阿提奇莱因福奥文章历史记录:收到2019年2019年11月9日修订2019年11月10日接受2019年11月18日在线发布保留字:优化完全系统虚拟化类型2虚拟机管理程序虚拟机MIPS64A B S T R A C T在过去的十年中,虚拟化技术在系统级领域取得了前所未有的增长,并迅速转移到嵌入式系统领域。虽然有许多现成硬件的虚拟化应用,如安全、沙箱、测试工具等。然而,很少有开源虚拟化解决方案可用于嵌入式系统。对于实时虚拟化,良好的运行时性能是其在嵌入式领域中实际使用的决定性因素。本文深入分析了MIPS64架构下开源的Type-2 Hypervisor HTTM的内部结构。ISA虚拟化单元和执行周期控制是两个主要的单元,并进行了分析和优化。动态二进制翻译(DBT)单元被修改,以生成高效的代码。同时,减少了翻译代码和管理层之间的切换,改善了整体执行周期。这些战略的实施导致带宽基准提高了72-91%。类似地,延迟基准测试显示其vanilla版本有2-92%的改进。共同产生整体1-5倍的执行时间改善。优化的HTTM的性能也进行了比较快速仿真器(QEMU)。HTTM在带宽基准测试中的表现比QEMU好44©2019作者(S)。由爱思唯尔公司出版代表沙特国王大学这是一个开放的访问CC BY-NC-ND许可证下的文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。1. 介绍现代嵌入式设备由于具有高效的资源利用率、更容易的管理、降低硬件成本以及通过隔离实现安全性等特性,正朝着虚拟化的方向发展。多核嵌入式系统丰富的集成功能创造了更多潜在的场景,其中虚拟化提供了更有效的解决方案。最流行的虚拟化解决方案,如VMware( VMWare , 2019 ) 、 Vir- tualBox ( Watson , 2008 ) 和 Xen(Barham等人,2003年)主要集中在x86和嵌入式领域的ARM上。嵌入式虚拟化的有效性从像摩托罗拉这样的行业领先公司的努力中显而易见 , 摩 托 罗 拉 已 经 制 造 了 第 一 部 虚 拟 化 移 动 电 话 , 即 , Evoke(Heiser,2009).它可以支持两个并发操作系统的操作。VMWare还提出了一个移动虚拟化平台(MVP),使用第2类虚拟化方法(Barr例如, 2010年)。三星已经在嵌入式虚拟化方面取得了进展*通讯作者。电子邮件地址:amir. kics.edu.pk(M.A. Mehmood)。通过将Xen移植到ARM体系结构(Hwang等人,2008年)。有两大类系统虚拟化软件。“Type-1”在裸金属上运行,而“Type-2”在主机操作系统(OS)上运行。在更高的抽象层次上,两者都提供了创建虚拟客户系统的相同功能。类型1可以直接与底层硬件资源通信,而类型2具有分配资源的附加主机操作系统层。类型1确实需要硬件中的虚拟化支持,这可能会使虚拟化软件的广泛安装成本高昂。另一方面,Type-2通常在主机上运行,并且可能不使用硬件虚拟化支持(如果提供完全虚拟化),这使得它们适合安装在现有基础设施上,而无需对主机进行任何修改。当涉及到嵌入式领域的虚拟化时,MIPS架构的 最近,本文的作者为Cavium Octeon MIPS 64 Linux 系 统 开 发 了 一 个 开 源 的 Type-2hypervisor(HTTM)(Ain等人,2017年)。此嵌入式虚拟化解决方案支持完整的系统虚拟化,不需要硬件虚拟化支持。针对CaviumMIPS64 OCTEON II板完成了HTTM的开发(Cavium,2019)。Cavium提供高度集成的半导体产品https://doi.org/10.1016/j.jksuci.2019.11.0061319-1578/©2019作者。由爱思唯尔公司出版代表沙特国王大学这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表沙特国王大学学报杂志首页:www.sciencedirect.com296Q. Ain,文学硕士 Mehmood/ Journal of King Saud University(基于ARM和MIPS),主要用于网络路由器,交换机,基站到核心网络设备,数字媒体和安全网关(Cavium,2018)。这些基于MIPS的设备可以受益于虚拟化的应用,例如,物联网安全(Bardhi等人,2016; Moratelli等人,2016; Okafor等人, 2017),有效的资 源 分 配 ( Renner 等 人 , 2018 ) 、 应 用 程 序 测 试 ( Szydlo 和Sendorek,2017)以及在现有基础设施上轻松部署。 虽然HTTM是一个完整的虚拟化解决方案,但是,它的性能还没有达到实时应用程序的标准。这项工作是为提高以前开发的hypervisor(HTTM)的实时性能而进行的持续努力。最重要的是,优化工作集中在使ISA虚拟化单元更有效以及整个执行周期。本文仅重点介绍优化单元的内部架构。第二节介绍了嵌入式系统虚拟化的一些背景和相关工作。第3节详细描述了HTTM的内部第4节和第5节分析了潜在的瓶颈和优化策略。第6节介绍了实施细节和评估结果。评估部分包括与以前的未优化版本的HTTM的比较。最后,将优化后的HTTM与QEMU和原生系统进行了比较,第七节对全文进行了总结。2. 背景和相关工作如今,虚拟化在软件技术的许多领域占据主导地位,包括服务器、存储、网络和操作系统级别。‘‘Server virtualization” and ‘‘machinevirtualization” describe the ability to manage an entire virtualmachine, including its operating system, on another operatingsystem (运行的虚拟系统称为来宾操作系统。虚拟机管理程序(也称为虚拟机管理器)处理特权CPU操作、中断调度和来宾的硬件请求。它提供了一个软件解决方案,通过为上述运行的客户机创建虚拟环境来实现虚拟化。直接在硬件(或裸金属)上运行的虚拟机管理程序称为Type-1 hypervisor。这种管理程序的一个例子是Xen,它直接在裸金属上运行,并将paravirtu化作为其主要模型。其他示例是KVM(Kivity等人,2007)和Xtratum(Masmano等人,2009年)。在半虚拟化中,修改客户操作系统以启用与虚拟机管理程序的通信,并提供优于其他方法的性能增强,因为虚拟化开销更少。 可以在作为主机进程运行的 同 时 运 行 未 经 修 改 的 客 户 操 作 系 统 的 hypervisor 称 为 Type-2hypervisor。这样的管理程序提供了一个完整的虚拟化解决方案。VirtualBox、QEMU和VMware Workstation是Type-2虚拟机管理程序的示例。另一种支持虚拟化的软件称为Microvisor,它是一种经过修改以支持客户虚拟机的微内核。主要优势是潜在的较低的虚拟化开销。一些例子是OKL 4 microvisor(Heiser和Leslie,2010)、PikeOS(Kaiser和Wagner,2007)等。1997; Govil等人,2000年)。斯坦福大学的Mendel Rosenblum大多数MIPS虚拟化工作都集中在Type-1或本机虚拟机管理程序上。这种工作的一个例子是M-Hypervisor。M-Hypervisor是用于龙芯MIPS处理器的开源、实时、Type-1(或本机)Hypervisor(Zhou等人,2013年)的报告。它可以支持不同的操作系统实例或裸应用程序执行。在一系列的工作中( Aguiar 等 人 , 2012; Aguiar 等 人 , 2013; Moratelli 等 人 ,2014;Aguiar等人,2014年),作者采用了完全虚拟化的方法,不仅在MIPS中提出了硬件修改,4 K-c的MPSoC,但也提出了一个类型1的管理程序,利用这些修改,在他们的模拟实现。MIPS的半虚拟化解决方案是KVMLoongson(Tai等人,2013年)的报告。它基于KVM,通 常 用 于 在 额 外 硬 件 支 持 的 帮 助 下 进 行 完 全 虚 拟 化 。 Par-avirtualization用于实现MIPS的陷阱和仿真虚拟化。作者还表示需要在MIPS架构中支持硬件有一些专有和开源的嵌入式虚拟化解决方案可用。例如,OKL 4是针对低端嵌入式系统(例如,智能手机),这体现了 嵌 入 式 系 统 虚 拟 化 的 功 效 ( Su 等 人 , 2009; Ito 和 Oikawa ,2007;Brakensiek等人,2008年)。它被用在Motorola Evoke手机中,提供了手机的实时和非实时处理的隔离。PikeOS是一个专有的基于微内核的操作系统,从L4演变而来。它是为安全和安全关键的嵌入式系统开发的,支持MIPS系统。它是安全关键航空电子应用的半虚拟化解决方案。OKL 4和PikeOS都需要修补客户操作系统。Xtra- tum是一个Type 1 hypervisor,它支持时间和空间分离,高效的调度机制和高效的分区上下文切换。目前不支持MIPS。VServer(Potzl,2019)将用户空间环境划分为不同的单元,也称为虚拟专用服务器(VPS),每个VPS都像一个真正的服务器一样运行。它是为x86和MIPS系统设计的。然而,缺点是它需要修补主机Linux操作系统内核。QEMU-KVM是开源QEMU hypervisor的修改版本。它只能在那些支持KVM硬件的平台上使用主机核心,不幸的是,这些平台还没有广泛用于MIPS。我们的解决方案,HTTM Type-2 hypervisor for MIPS 64 systems是一个开源的MIPS-on-MIPS解决方案,适用于MIPS 64系统。它不需要修改客户机或主机内核来提供完全虚拟化。因此,使其成为现有MIPS基础设施的可行虚拟化解决方案。虚拟化技术在嵌入式领域的实时应用得到了广泛的应用。 例如,在Gu等人(2012)中,作者在集成的汽车网关平台上实现虚拟化以提高安全性。KVM是一种Type- 2虚拟机管理程序,用作虚拟化软件,并创建了两个并发的客户系统,一个是实时操作系统(RTOS),另一个是通用操作系统(GPOS)。RTOS托管安全关键的实时应用程序,如停车辅助,而GPOS托管非安全关键的通用应用程序,如GPS导航等。类似地,在Reinhardt和Morgan(2014)中,作者在汽车硬件AURIX上使用具有半虚拟化客户机的Type-1管理程序,其不支持虚拟化以实现包含不同安全关键软件的虚拟机之间的关于嵌入式系统虚拟化的全面调查可以在Gu和Zhao(2012)中找到。3. HTTM -2型Octeon MIPS 64系统管理程序概述本节简要介绍HTTM及其基本单元的基本概述。HTTM是一个基于MIPS6的2类虚拟机管理程序,运行在基于Linux的主机系统上,提供完全的系统虚拟化。它可以创建一个功能齐全的虚拟MIPS64客户系统,并启用网络。虽然CaviumQ. Ain,文学硕士Mehmood/ Journal of King Saud University297Octeon评估板(CN57XX,CN68XX)在开发过程中被用作主机和客户系统,它可以很容易地定制为任何MIPS64处理器从其他供应商的微小修改。 如图 1.为客户操作系统提供完整的MIPS64虚拟硬件。来宾系统在完全隔离的情况下通过主机操作系统运行其HTTM是一个多线程应用程序。每个虚拟核/设备实现创建单独的线程。核心、CPU、中央处理器单元(CIU)、Virtio和网络设备在主机系统上被维护为单独的线程。Hyper- visor的体系结构可以封装成两种类型的子系统:i)创建虚拟板的子系统,ii)向虚拟板的组件提供管理层的子系统。图2描绘了两种类型的子系统。虚拟板创建处理器内核,并在启动时指定仿真TLB、TLB、CIU、中断/异常路由机制和硬件配置寄存器。每个内核都包含自己的CP(协处理器)和GP(通用)寄存器以及定时器机制。CIU是Cavium Octeon专用设备,它使用映射内存将中断从设备路由到内核。此外,TLB提供客户机的虚拟到物理地址转换。除了虚拟板,虚拟机管理程序还包含额外的单元来提供完全虚拟化 。 ISA 虚 拟 化单 元 将 客 户 机的 汇 编 指 令转 换 为 Cavium OcteonMIPS64汇编指令,然后直接在硬件上执行。地址转换单元提供客户虚拟地址(GVA)到主机虚拟地址(HVA)的转换。在高速缓存的帮助下避免了重复的地址转换和块Virtio Block和网络设备被实现来模拟磁盘和网络操作.该单元实现前端驱动程序(Virtio_net/Virtio_Blk,在客户机Linux内核中启用以支持虚拟化)和后端驱动程序(Vhost_Blk/Vhost_net,安装在主机Linux系统上)之间的通信。信号处理器将外部信号路由到特定的核心,例如,的情况下将定时器中断从主机路由到特定核心。4. 执行周期该部分描述了执行周期的基本流程,分析了执行周期,并在最后提出了基于剖析结果的优化策略。执行周期可以简单地描述为三个步骤,每个核心执行。1. 块提取:从客户机代码中获取一组以当前客户机PC开始并以控制移位指令(称为块)结束的指令。2. 指令翻译:通过逐个翻译每条指令,将获取的块转换为翻译的块。这些翻译后的汇编指令代表客户机在实际硬件上执行。3. 块执行:当前的主机PC然后被转移到翻译的块,然后直接在主机上执行在执行过程中,对于不同的服务,控制可能会回到管理程序的管理模式在完成一个执行之后,下一个块被获取、转换和执行。图 3显示了管理程序的完整流程图。虚拟机管理程序的初始化通过在内存中加载“uboot”和内核二进制文件开始。然后,它根据初始化的核心数量和其他启用的并行单元(如CIU、CPU等)分叉子线程。自定义Cavium内核首先启用核心0,然后启用其余核心这种控制机制是通过CIU执行的基本的执行周期(fetch-transmitte-execute)对于所有内核都是相同的在转换块的执行期间,控制可以转移到管理程序的管理模式以处理不同的请求,例如,TLB检查、异常或中断处理。最后,在完成所需的请求后,控制再次转移到当前运行的翻译块。管理程序的执行可以分为两种执行模式。汇编指令执行:翻译后的汇编指令直接在底层硬件上执行。管理层:此模式包括管理程序作为单元管理器的所有功能,如内存管理、中断处理和设备通信等。在这种情况下,上下文切换被定义为在这两种模式之间切换。汇编指令模式将来宾寄存器的内容复制到主机的硬件寄存器(ra、gp和sp寄存器除外)。硬件寄存器中的内容的这种交换由于其在客户机的执行周期期间的高重现性而引起开销。在执行转换块期间,由于多种原因可能发生上下文切换。例如,在执行访问存储器和中断管理的指令期间。客户端这些指令-Fig. 1. HTTM运行时的系统概述●●298Q. Ain,文学硕士 Mehmood/ Journal of King Saud University图二、HTTM的软件架构图三. HTTM执行流程图转换也发生在块内,并且为了正确的TLB管理,管理程序需要在转换块的执行期间进行上下文切换。所有这些情况都需要上下文切换,以便hypervisor可以满足客户机4.1. 执行周期对于软件的分析,分析器可以在函数调用级别上提供对应用程序的时序信息的更好的虚拟机监控程序不是典型的用户空间应用程序,因为它动态生成二进制指令并执行它们。这种执行流模糊了大多数分析器使用的函数的入口和出口基于自定义单元的分析比基于功能的分析更受欢迎,这可能会导致该单元的进一步优化HTTM的未优化版本被用来在客户机内核引导时获取计时信息每个单元都单独仪表化,以产生最小的开销。主要目的是找出在客人引导时间内每个单元花费了多少时间。图4示出了在引导客户机期间消耗的时间。通过使用简单的时间戳来分析虚拟机管理在特定点的开始和结束处拍摄可以观察到,实际翻译的客户机代码只运行了23.04%的时间,而73%的时间是不同的管理功能。进一步细分这73%的时间,发现44.14%的时间花在指令转换上,14.98%花在地址转换上,13.16%花在异常和中断服务上,0.98%花在TLB相关功能上。3.70%的时间在任何单位都是不负责任的,因此显示了转换的成本。4.2. 建议的优化虽然所有的原因,上下文切换所描述的恶意似乎相当不灵活和功能上不可避免。然而,在引导期间,HTTM对所有缓存的缓存命中率为90%以上如果在汇编模式下从缓存中检索所需的数据从缓存中检索数据因此,使其成为快速优化的可行HTTM保持不同类型的缓存 。 主 要 有 三 种 。 1 ) 块 缓 存 : 包 含 与 块 的 起 始 PC 相 对 应 的translated块,2)Q. Ain,文学硕士Mehmood/ Journal of King Saud University299见图4。 客户机系统引导期间分析的执行时间的细分。地址转换缓存:包含转换后的地址,即主机通过执行一些手写的汇编指令来检查和检索缓存中的内容,从而避免了上下文切换。如果内容不存在于缓存中,则上下文切换发生,管理层发挥其作用。图5以虚线示出了高速缓存检查机制的修改的执行周期。当汇编指令执行时,对于发生的任何需要地址转换或需要取新块的LD/SD指令,控制转移到“用于缓存检查的汇编指令”。更多的汇编指令可以确定转换后的地址是否存在于缓存中。如果是的话,它将被收回。如果否,则切换回管理模式进行地址转换。实现了相同的机制来获取块,该块从缓存中检索缓存的翻译块,同时保持在汇编模式下。5. MIPS6 ISA虚拟化本节首先描述HTTM中实现的ISA虚拟化方法。然后根据观察到的客户机指令中的模式,提出了一种潜在的优化策略。MIPS64指令可以按几种方式分类。一种方法是根据他们的教学进行格式为“R”、“I”和“J”类型。这些类别根据字段的类型来区分指令,无论这些字段是寄存器还是常量值。另一种类型的指令分类是基于执行级特权。在这一类别中主要有两个级别的指令,即,特权和非特权。特权指令提供处理器控制并且仅在内核模式下执行,而非特权指令不涉及对CP寄存器的访问这些类别用于在指令翻译过程中区分指令此外,Cavium Network还为他们的OCTEON系列处理器提供了标准MIPS64 ISA的一些说明(Cavium,2009)。这些附加的特定指令属于算术、分支/跳转、加载/存储、存储、控制、移动等。CaviumHTTM总共提供了184条指令的仿真,其中包括159条标准MIPS 64指令以及25条Cav-ium Octeon特定指令。5.1. 动态二进制翻译HTTM使用基于动态二进制翻译(DBT)的技术来进行ISA虚拟化(Anwar等人,2015年)。一个指令块被取出并翻译成另一个指令块,然后可以直接在主机系统上执行。应用DBT的指令的基本单元称为“块”。客户指令块被定义为从当前客户的PC开始直到任何控制转移指令(例如,跳转或分支)。根据这个定义,块图五. 修改了地址缓存检查的执行周期。300Q. Ain,文学硕士 Mehmood/ Journal of King Saud University可以由最少两个指令组成,并且没有最大限制。最小块将由一个控制流指令和一个延迟槽组成。 DBT的核心方法是获取一个连续的指令块并对其进行翻译。由于客户机的CP和GP寄存器实际上只存在于管理程序中,因此客户机的指令应该提取它们的内容并对其进行作为一个用户空间进程,hypervisor不能覆盖主机的所有硬件寄存器。此要求限制将一对一的客户机寄存器映射到主机寄存器。只有一个子集的regis- ters是可用的,可以覆盖与来宾寄存器的内容,并执行指令。为了生成转换后的指令,客户机的源寄存器和目的寄存器被加载到主机的寄存器中。接着,用加载的硬件寄存器再现目标指令。最后,目的寄存器看待这种方法的一种方式是将每个指令本身视为子块,如图6所示。分析每个子块,并列出它们的源寄存器和目的寄存器,以及一些其他信息,例如,是否是异常生成指令等。然后,这些子块被单独处理以产生翻译指令。尽管DBT的基本方法与前面所述的方法相似,但仍有一些微小的变化,以迎合教学的特殊差异。下面是与每个类别相关的简要说明。只强调了与核心方法的差异。算术/逻辑/位移位指令:ADD/ADD,AND/ OR,SLL代表属于这一类别的指令的一些示例,它们完全遵循核心方法。数据传输指令:加载、存储及其变体称为数据传输指令。这些指令要求在执行前对客户机的目标地址进行地址转换。这是内存管理与DBT相关联的部分。来宾进程只作为用户进程运行,它只能访问主机系统分配的内存。被称为客户虚拟地址(GVA)的目标地址被转换为主机虚拟地址(HVA)。然后,这个转换后的地址用于加载或存储。加载/存储指令可以出现在块中的任何地方,并且在执行该特定块之前不能确定虚拟地址。由于由于这些原因,运行时翻译是不可避免的。 当此指令发生时,上下文切换恰好将控制权转移到管理程序的管理层。然后,目标地址被转换并放置在特定的存储器位置。再次上下文切换回汇编执行模式,并使用转换后的地址执行加载/存储指令。在加载的情况下,寄存器的加载内容被保存回客户机的寄存器陷阱、系统调用指令:陷阱、系统调用指令和中断指令会导致异常,并要求在它们发生后运行异常例程。因此,在转换块中,这些被替换为简单的上下文切换指令,同时设置特定的标志指示符。管理程序可以通过标志确定指令,然后运行客户机的异常例程。在这里,异常和中断处理机制开始发挥作用。编译指令:编译指令与核心方法论几乎相同,除了在开始时有额外的指令这些指令,检查客户机的当前运行模式是内核空间。如果当前模式是用户空间,则会向客户机注入异常。控制流指令:跳转,分支和它们的变体都属于这一类。控制流的后续指令称为延迟槽,在跳转/分支之后执行。控制流指令变得有点复杂,因为它们的“可能”变体只有在进行分支/跳转时才执行延迟槽。转移/跳转指令本身只决定下一个PC。在翻译过程中,延迟槽指令首先被翻译,然后是PC确定指令。执行此操作后,它切换回管理层,管理层提供新的转换块。但在“可能”指令的情况下,需要确定分支决策。如果采用,则执行延迟时隙指令。除了这些类别之外,PC更新指令被放置在每个指令之后。由于可能随时发生的异常生成指令(例如陷阱)或外部中断,因此需要更新PC。图7示出了使用该方法的DBT的示例。翻译块显示,4个指令生成在respondence的第一个客户机指令,而第二instruc和灰被翻译成5个指令。最后的控制指令和延迟时隙总是一起被翻译,因此产生25个翻译指令。整个街区4见图6。 ISA级翻译机制。Q. Ain,文学硕士Mehmood/ Journal of King Saud University301见图7。 动态二进制翻译(DBT)。指令被翻译成38个指令,包括每个指令后的2个PC更新指令。翻译块具有许多5.2. 动态二进制翻译现有的DBT方法都是围绕着一条指令进行翻译,如果考虑更多的指令,翻译后的块所包含的装入/存储指令就更少。通过查看原始访客块可以观察到,块中的连续指令主要使用相同的寄存器。图8显示了通过使用“objdump”获得的内核二进制文件第一列显示指令的地址;第二列显示十六进制的指令,第三列显示汇编指令格式的指令。这两个例子都是“块”的定义,即它可以从任何地址开始,并在控制流指令(如跳转或分支)结束。关于这些块,需要注意的主要事情是在连续指令中使用寄存器编号。在第一个块中,'s1'和'v1'用于两个连续指令。在第二个块中,'v0'和's1'在多个位置使用。现在,当前DBT将在每个指令之前和之后加载和存储寄存器。但是,如果范围从一个指令变为块,则可以减少这些加载/存储指令。为了更好地了解客户机二进制块中寄存器重复的一般趋势,计算了它是通过首先计算302Q. Ain,文学硕士 Mehmood/ Journal of King Saud University见图8。 从客户机的原始二进制文件中截取两个块寄存器以及块中唯一寄存器的数量。例如,在图8的顶部框中,使用了6个位置和4个唯一寄存器。2处重复给药(2/6)*100 =块中的33.33%重复。这个重复率也与块大小有关。直觉上,更大的块意味着有更多的潜在重复。为了进一步研究,从内核引导代码中提取1000个块并分析寄存器的代表性。图9示出了重复百分比与嵌段大小之间的须盒图。X轴是百分比重复序列。每个系列的箱形图显示了箱形大小的范围以及最小和最大离群值。平均块大小在每个框的右侧给出。例如,显示41%-50%重复的块具有2这证实了重复百分比随着块大小的增加而增加。这就提出了一个问题,即在执行过程中块大小的频率 图图10显示了相同的1000个区块的直方图从内核代码。可以看出,最高频率属于0-总结上述两个图的结果是:1)较小的块(约100 μ m)。由2个指令组成)更频繁,但提供更少的重复。2)2-6条指令之间的块大小考虑到寄存器的每个槽将最终转换为一对加载-存储指令,这使得第二类别成为优化的更好目标。5.3. 优化的动态二进制翻译正如块分析所指出的,直观地说,通过将DBT的范围从一条指令更改为整个块,将有助于优化虚拟机管理程序的整体性能。其主要思想是减少冗余的加载/存储指令,生成的翻译块。先前描述了当前DBT方法学的细节见图9。 块大小与连续指令中的重复百分比。Q. Ain,文学硕士Mehmood/ Journal of King Saud University303两个是分支和延迟槽。这整个块可以被认为是一个子块,而不是一次一个指令translated块以四个加载指令开始,这些指令加载块中使用的所有而在先前的DBT中,两个算术指令将各自具有3个加载指令,并且另外3个用于分支和延迟槽。现在,通过减少耗时的加载/存储指令,整个块被转换为29条指令。6. 优化的实施和评价见图10。 连续指令中重复的直方图。所提出的思想将考虑寄存器在块中重复,并且相同寄存器的内容可以在下一个转换指令中使用,而无需相同寄存器的冗余存储和加载优化的DBT引入了新的术语可以引起从汇编模式到管理模式的上下文切换的指令定义子块,例如,加载/存储变体和TLB指令。由于访客寄存器的未保存内容将被手动模式覆盖从而为定义子块提供了必然条件。一旦子块被定义,每个指令被解码以提取关于所涉及的寄存器的信息。转换后的子块首先包含加载指令。子块中的所有寄存器被加载到一组硬件寄存器中。然后,将涉及这些硬件寄存器的翻译指令放置,最后,将仅保存目的地寄存器的所有存储指令返回图图11示出了通用客户机和翻译的指令块,该指令块将多个指令视为一个子块,然后产生它们的翻译。考虑图7中的先前示例,图12中示出了利用新方法的相同示例的翻译,其展示了优化策略。Guest Block由4条指令,前两条是算术指令,最后一条是本节首先比较优化的HTTM与未优化的HTTM的基准测试结果并将优化后的HTTM与QEMU和原系统进行了性能为了实现、实验和调试目的,使用了Octeon II MIPS64评估板(Cavium,2019)。它包含12个内核、800 MHz时钟速率和2 MB二级缓存。有4个插槽,每个插槽1 GB RAM 但在实验期间,仅在板上使用了1 GBRAM这两种优化策略都在C++代码中实现。在实现上述方法之后,通过引导客户机系统并在客户机上运行一些基准测试程序来验证客户系统的启动时间从116 s提高到71s.6.1. LMbenchLMbench包含用于使用带宽、延迟和一些其他测量程序来测量基本操作系统和硬件系统度量的微基准(McVoy等人,1996年)。LMbench用于评估HTTM以前和当前的实现。6.1.1. 带宽测量计算机系统最基本的性能度量是量化数据移动的带宽度量对内存带宽进行的基本操作包括见图11。 优化DBT的一般方法。304Q. Ain,文学硕士 Mehmood/ Journal of King Saud University图12个。一个优化的DBT的例子(copy)、“frd”、“fwr”和“fcp”。这些测试之间的主要区别在于在指定测试期间如何访问内存。图13(a)示出了HTTM的优化和未优化版本的在这些带宽测试中,有1.76.1.2. 等待时间测量这些基准测试测量指定系统调用的时间。所执行的测试是i)系统调用的延迟和ii)基本操作的延迟。'' lat_syscall '测量将一个字节写入'/dev/null '所需的时间。这提供了对必须与操作系统交互的任何程序的下限成本的见解。此测试针对不同的系统调用(如打开、写入和读取)执行图13(b)示出了优化版本中1.45-2.11倍的改进‘‘lat_ops”这些操作包括针对不同数据类型的位翻转、添加、mul、div和mod操作图14示出了整数双精度和浮点数据类型的基本操作的框图。Double和float数据类型显示出更多的改进,范围从2.51整数和64位整数,有一个显着的改进,在乘法运算,而其他人仍然接近以前的版本。所有的双浮操作都有显著的改善。6.2. 与本机系统和QEMU的QEMU ( Quick Emulator ) 是 一 个 开 源 的 托 管 虚 拟 机 监 视 器(Bellard,2005)。它基本上以两种模式运行ii)系统模式仿真。在用户模式仿真中,它只为用户级进程提供CPU仿真,允许交叉编译的在系统模式仿真中,它利用动态二进制转换来提供CPU的仿真,并提供一组虚拟设备模型,使其能够运行各种未经修改的客户操作系统。它还可以与KVM 集成以管理虚拟机。QEMU被认为是比较的最佳选择,因为它是唯一广泛使用的开源类型2管理程序,可以模拟MIPS64客户系统。QEMU和HTTM的性能进行了比较,随着本机系统。QEMU v1.0.1使用Cavium Octeon工具链为MIPS64交叉编译。由于1.0.1版不支持Cavium Octeon客户机,因此创建了MIPS malta客户机。Q. Ain,文学硕士Mehmood/ Journal of King Saud University305图十三. (a)LMbench内存带宽测试比较。(b)系统调用延迟比较。见图14。 不同数据类型的基本操作的延迟比较。图十五岁HTTM与QEMU的比较(a)内存带宽(b)系统调用延迟。交叉编译的QEMU开始在Octeon主机上运行,并创建了一个Malta客户系统。LMbench的结果被带到了那个客人身上。图15(a)示出了带宽结果。在内存带宽结果中,hypervisor的性能比QEMU好1.80最大的差异为5.26倍,最小的差异 图图15(b)示出了不同系统调用的延迟。这里观察到QEMU比HTTM性能好1.12-3.54倍。这种差异表明QEMU可能有更好的中断分派机制-306Q. Ain,文学硕士 Mehmood/ Journal of King Saud Universitynism比HTTM。但仍然远不及本土的表现。这些延迟结果确定了未来调查和改进的领域。7. 结论任何软件的可扩展性是决定其在应用领域中有效使用的关键特征之一嵌入式系统会受到硬件资源的限制,因此提高了对软件效率的要求对于现有的嵌入式基础设施,如果它是有效的,那么类型2hyper-visor是一个很好的软件虚拟化解决方案它可以为安全目的提供隔离,也可以用作开发/测试环境。这项工作分析和优化HTTM-MIPS 64系统的2类管理程序动态二进制翻译和执行周期是两个主要的优化领域在DBT中,通过考虑连续指令更可能在相同寄存器上操作,减少了加载-存储指令的数量保存目的寄存器可以推迟到切换到管理模式。在执行周期的优化中,通过最小化组装和管理模式之间的上下文切换上下文切换的主要原因是地址转换和新块获取,这是通过放置一些检查和从缓存中检索内容的指令来避免的,而无需上下文切换。现在,上下文切换仅在所需内容不在缓存中时发生这两个变化对HTTM的整体性能产生了很好的影响。不同的基准测试结果通过显示1-5倍的改进来巩固初始命题与另一个开源通用类型2管理程序(即,QEMU(v 1.0.1),优化后的HTTM在带宽基准测试中提高了1.80而在系统调用延迟方面,QEMU优于QEMU 1.12-3.54倍。在未来,中断和内存管理单元可以利用优化。竞争利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作。引用VMWare,I.N.C.VMware工作站https://www.vmware.com/products/workstation-pro.html ( 2019 年 9 月 28 日 访问)。Watson,Jon,2008. 虚拟机:比特和字节伪装成机器。 Linux J.2008(166),1.Barham,Paul,Dragovic,Boris,Fraser,Keir,Hand,Steven,Harris,Tim,Ho,Alex,Neugebauer,Rolf,Pratt,Ian,Warfield,Andrew,2003. Xen和虚拟化的艺术。ACM SIGOPS操作系统评论,卷。37,pp. 164-177。Heiser,Gernot,2009.摩托罗拉唤起qa 4-移动虚拟化案例研究打开Kernel Labs。Barr , Ken , Bungale , Prashanth , Deasy , Stephen , Gyuris , Viktor , Hung ,Perry,Newell,Craig,Tuch,Harvey,Zoppis,Bruno,2010. vmware移动虚拟化平台:这是你口袋里的管理程序吗?ACM SIGOPS操作系统版本44(4),124-135。Hwang,Joo-Young,Suh,Sang-Bum,Heo,Sung-Kwan,Park,Chan-Ju,Ryu,Jae-Min,Park,Seong-Yeol,Kim,Chul-Ryun,2008. arm 上的Xen:基于arm的安全移动电话使用xen hypervisor的系统虚拟化。2008年第五届IEEE消费者通信和网络会议。IEEE,pp. 257-261。Ain , Qurrat ul , Anwar , Usama , Mehmood , Muhammad Amir , Waheed ,Abdul,2017. 基于mips64系统的第2类虚拟机管理程序的设计与实现。物理学杂志:会议系列,第787卷。^John,p. 012006.鱼 子 酱 Octeon II 板 。 https://www.cavium.com/octeon-II-CN68xx.html; 2019 年(2019年8月8日访问)。鱼子酱公司简介。http://investor.caviumnetworks.com/phoenix.zhtml? c=209126&p=irol-homeProfile& t=& id=&; 2018(访问时间:2018年2月15日)。Bardhi,B.,Claudi,A.,斯帕拉齐湖Taccari,G.,塔卡里湖2016.嵌入式板卡上的虚拟化是实现云计算的技术。上一篇:Internet ofThings爱思唯尔,pp. 103-124Moratelli,Carlos,Johann,Sergio,
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功