X86计算机虚拟化的物理中断处理方法技术

技术编号:3807872 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种X86计算机虚拟化的物理中断处理方法,目的是解决同时运行多个虚拟化操作系统的X86计算机中物理中断处理方法实现复杂、代码庞大和中断处理开销大等问题。技术方案是首先构建虚拟机系统,主要是修改物理中断处理模块,然后由由虚拟机系统对物理中断进行处理,包括构建接收和处理NMI所需要的软件环境,初始化IPI发送与接收所需的软件环境、对LAPIC进行基本初始化,分别对dom0操作系统、domU操作系统和虚拟机监控器进行配置,监测和处理dom0操作系统对LAPIC的初始化、设备中断、NMI、IPI这五个步骤。采用本发明专利技术能简化中断处理逻辑、缩减虚拟机监控器的代码量,减小中断处理的开销,增强整个计算机系统的稳定性,具有优秀的硬件适配性。

【技术实现步骤摘要】

本专利技术涉及X86计算机体系结构以及操作系统领域的中断处理方法,尤其是X86计算 机虚拟化(visualization)的物理中断处理方法。
技术介绍
当前,计算机的处理能力不断快速提升,而根据相关统计,运行于其上的服务软件在 系统空闲时段往往只用到了不到10%的处理能力,在忙时也往往用不到50%。与此同时, 计算机的能耗不断加大,电能的消耗已经逐渐成为IT业的主要开销之一。另外,出于安 全和可靠等方面的考虑,大量的服务提供商必须使用多台服务器以满足数据备份、冗余 容错和服务的安全隔离等方面的需求,这样不仅大大增加了设备购置的资金投入、成倍 提高了电能消耗,而且由于大量服务器的利用率较低,造成了性价比严重低下。为了解决这个问题,人们提出了虚拟化的概念,即通过虚拟机监控器VMM (Virtual Machine Monitor),对真实计算机的CPU (Central Processing Unit,中央处理单元)、 内存和硬件设备进行虚拟化,在一台真实的计算机上虚拟出多台"虚拟机VM (Virtual Machine)",每台虚拟机都可运行一个操作系统。这样就能进行服务器整合(server consolidation),即将多台物理服务器整合为一台物理服务器,从而大大提高服务器利 用率、降低能源消耗和提高安全性与可靠性。在桌面计算领域,虚拟化技术使得用户能 够同时运行多个不同的操作系统,满足了用户对不同计算平台的需求。中断是硬件设备与操作系统等系统软件之间通信的主要方式之一,虚拟机监控器需要 处理两种类型的中断 一是物理中断(physical interrupt),指由X86计算机的真实硬 件设备所产生的中断,包括设备产生的设备中断和特殊的不可屏蔽中断NMI(Nonmaskable Interrupt); 二是虚拟中断(virtual interrupt),指由虚拟的硬件设备所产生的中断。 在X86计算机中,所有的物理中断都由可编程中断控制器PIC (Programmable Interr叩t Controller)统一管理,系统软件在处理物理中断时,需要与PIC进行交互,以确保中 断的正确接收和处理,具体的交互方式和内容参见X86体系结构手册 (http:〃www. intel. com和http:〃www. amd. com)。中断处理方法也必须对PIC进行初 始化和控制管理。当前虚拟机监控器有两大类体系结构:第一类体系结构的虚拟机监控器是应用程序或 内核模块,实现于操作系统之中;第二类体系结构的虚拟机监控器是最底层的系统软件 或固件,实现在操作系统之下。第一类虚拟机监控器无需处理物理中断,X86计算机的所 有物理中断由其所在的操作系统进行处理,因此此类虚拟机监控器实现简单、硬件适配性好。但是,作为内核模块实现在操作系统内核中的虚拟机监控器依赖于特定的操作系 统,例如KVM只能运行于Linux内核,VirtualPC则只能运行于Windows内核,等等。某 些操作系统如Linux的内核接口在版本升级时变化较大,增加了此类虚拟机监控器的升 级维护开销。而作为操作系统的应用程序的虚拟机监控器虽然比较容易实现跨平台,例 如VMware workstation、 Qemu、 VirtualBox等产品均能够在Linux和Windows等多平台 上运行,但此类产品无法使用CPU等硬件提供的虚拟化支持功能,性能和功能都受到了 较大的限制。第二类虚拟机监控器运行在操作系统之下,自身实现了物理中断处理功能。此类虚拟 机监控器是最底层的系统软件,能够对计算机资源进行更为底层和更为细腻的控制,并 能够对运行于其上的操作系统进行管理和控制。此外,该类虚拟机监控器还能够对计算 机系统的物理资源进行粗粒度的划分和管理,这在服务器领域是非常有用的功能,特别 是对大规模服务器。作为代价,此类虚拟机监控器需要对与物理中断处理相关的X86计 算机硬件进行初始化和控制、以及物理中断处理等工作,实现复杂度要比第一类产品高 得多,同时必然导致整个系统硬件适配性的降低。此类虚拟机监控器产品主要有Xen和 VMware ESX Server等。上述第二类虚拟机监控器系统从下至上由三层组成最底层是X86计算机硬件与中断 层,包括本地高级可编程中断控制器LAPIC (Local Advanced Programmable Interrupt Controllers输入/输出高级可编程中断控制器IOAPIC ( 1叩ut/0utput Advanced Programmable Interrupt Controller)、 CPU、内存和除此之外的硬件设备,如网卡、磁 盘等,X86计算机的中断包括设备中断和刚I;中间层是虚拟机监控器;最上层是同时运 行的多个虚拟化操作系统,包括一个负责硬件设备驱动的domO (domain 0, 0号域)操 作系统,以及一个或多个domU (domain user,用户域)操作系统。虚拟机监控器由物理 中断处理模块和虚拟中断处理模块、CPU指令虚拟化模块、内存管理单元MMU (Memory Management Unit)虚拟化模块组成。物理中断处理模块由LAPIC初始化子模块、IOAPIC 初始化子模块、CPU运行模式配置子模块、物理中断接收子模块、物理中断转发子模块、 虚拟中断控制器VPIC (Virtual Programmable Interr叩t Controller)子模块、处理器 间中断IPI (Inter-Processor Interrupt)发送与接收子模块组成。物理中断接收子模块在收到X86计算机的设备中断和NMI后,将其传递给物理中断转 发子模块,物理中断转发子模块将中断转发到domO操作系统。LAPIC初始化子模块与 IOAPIC初始化子模块分别初始化X86计算机的LAPIC和IOAPIC, VPIC子模块向domO操 作系统提供虚拟的可编程中断控制器VPIC,并通过访问初始化后的LAPIC与IOAPIC实现 domO操作系统的对VPIC的请求和调用。IPI发送与接收子模块则通过访问LAPIC向虚拟 中断处理模块和MMU虚拟化模块提供处理器间中断服务。CPU运行模式配置子模块按下述 第三步给出的方法对CPU的运行模式进行配置。虚拟中断处理模块接收来自doraO操作系统的虚拟中断,将其转发到domU操作系统,CPU指令虚拟化模块和MMU虚拟化模块则为domO和domU操作系统提供CPU指令虚拟化和 MMU虚拟化服务。此类虚拟机监控器的物理中断处理模块通过如下步骤实现物理中断处理第一步,LAPIC初始化子模块与IOAPIC初始化子模块分别初始化LAPIC与IOAPIC。 在当前主流的对称多处理SMP (Symmetric-Multiprocessing)计算机中,可编程中断控 制器PIC主要由两组芯片组成,即IOAPIC和LAPIC。当X86计算机加电引导时,此类虚 拟机监控器就接管了PIC,对PIC进行全面初始化,并始终保持对PIC进行独占式访问和 管理。这些初始化工作包括探测各个PIC芯片是否存在、为每个PIC芯片映射相应的 寄存器器以访问该PIC芯片、启用上述每个PI本文档来自技高网...

【技术保护点】
一种X86计算机虚拟化的物理中断处理方法,首先构建虚拟机系统,虚拟机系统由三部分组成:最底层是X86计算机硬件与中断;中间层是虚拟机监控器;最上层是同时运行的多个虚拟化操作系统,包括一个domO操作系统,一个或多个domU操作系统,虚拟机监控器由物理中断处理模块和虚拟中断处理模块、CPU指令虚拟化模块、MMU虚拟化模块组成;其特征在于所述物理中断处理模块由LAPIC初始化子模块、CPU虚拟化模式配置子模块、domO LAPIC初始化监视子模块、domO设备中断接收辅助子模块、IPI发送与接收子模块、NMI接收和处理子模块这六个子模块组成;CPU运行模式配置子模块配置CPU的运行模式并接收从CPU发来的设备中断信息,再调用domO设备中断接收辅助子模块,在domO设备中断接收辅助子模块的控制下,设备中断直接传递给domO操作系统;所有的NMI都传递给NMI接收和处理子模块,该子模块接收NMI后进行判断,如果NMI是IPI消息导致的,则将该NMI传送给IPI发送与接收子模块,否则将NMI转发至domO操作系统;LAPIC初始化子模块在X86计算机系统加电引导时对LAPIC进行部分初始化,在domO LAPIC初始化监视子模块的监控下,domO操作系统直接访问经初始化的LAPIC,当CPU指令虚拟化模块检测到domO对LAPIC重新初始化时,CPU指令虚拟化模块通知domOLAPIC初始化监视子模块,由domO LAPIC初始化监视子模块调用LAPIC初始化子模块对LAPIC进行重配置;IPI发送与接收子模块直接访问LAPIC进行IPI消息的发送与接收;构建好虚拟机系统后,由虚拟机系统对物理中断进行处理,方法是: 第 一步,NMI接收和处理子模块构建接收和处理NMI所需要的软件环境:构建NMI中断的中断处理函数,将该中断处理函数的地址放入IDT表的第2项中; 第二步,IPI发送与接收子模块按如下方法初始化IPI发送与接收所需的软件环境: 2. 1选用不可屏蔽中断NMI的中断号2作为IPI的中断号; 2.2为每个CPU都设置一个先进先出的队列结构作为IPI消息队列,同时为每个IPI消息队列设置一个消息队列锁; 第三步,LAPIC初始化子模块对本地高级可编程中断控制器LA PIC进行基本初始化,方法如下: 3.1探测X86系统中是否配备了LAPIC,如果系统中不存在LAPIC,则转第四步,否则执行...

【技术特征摘要】

【专利技术属性】
技术研发人员:易晓东刘晓建张卫华谭郁松戴华东吴庆波孔金珠
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:43[中国|湖南]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利