虚拟机系统及其高级可编程中断控制器的访问处理方法

文档序号:6573376阅读:152来源:国知局
专利名称:虚拟机系统及其高级可编程中断控制器的访问处理方法
技术领域
本发明涉及计算机系统中的APIC (Advanced Programmable Interrupt Controller,高级可编程中断控制器),特别是一种虚拟机系统及其APIC访问 处理方法。
背景技术
APIC主要应用于多处理器操作系统,是为了解决中断请求太少和处理器 间中断而产生的,因此,APIC对计算机来讲主要是起到以下的两个作用管 理中断请求的分配,把中断请求扩展到24个,以适应更多的设备;管理多CPU。APIC系统由本地APIC、 10 APIC和APIC串行总线组成,每个处理器中 集成了一个本地APIC,而IOAPIC是系统芯片组中一部分,APIC总线负责连 接10 APIC和各个本地APIC。本地APIC接收该处理器产生的本地中断(如时钟中断)以及由该处理器 产生的处理器间中断,并从APIC串行总线接收来自IOAPIC的消息;IOAPIC 负责接收所有外部的硬件中断,并翻译成消息选择发给接收中断的处理器,以 及从本地APIC接收处理器间中断消息。关于APIC详细的描述请参考《IA-32 Inel Architecture Software Developer's Manual Volume 3 Chapter 8》。现有的虚拟机系统通过拦截对APIC芯片的MMIO( Memory Map Input and Output,内存映射输入输出)访问,完成APIC的虚拟化,然而上述的操作会 引起陷入虚拟机的操作,并且需要解析对内存的访问指令,造成APIC访问效 率很低,整个系统效率不高。 发明内容本发明的目的在于提供一种虚拟机系统的高级可编程中断控制器的访问 处理方法,实现简单,同时尽量少引入陷入虚拟机的操作和解码操作以提高 APIC的访问效率。为了实现上述目的,本发明提供了 一种虚拟机系统的高级可编程中断控制器的访问处理方法,包括地址映射步骤,虚拟机监视器建立APIC虛拟寄存器空间和APIC初始化地 址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤,客户操作系统访问APIC中的第一类型寄存器时, 强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型 寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类 型寄存器的操作不影响APIC的其它寄存器。上述的方法,其中,所述第一类型寄存器为EOI寄存器、TPR寄存器和 ICR寄存器。上述的方法,其中,所述地址映射步骤具体包括 步骤21,客户才喿作系统启动后初始化APIC;步骤22,虚拟机监视器获取APIC的初始化地址,并分配APIC虚拟寄存器空间;步骤23,虚拟机监视器建立APIC的初始化地址与APIC虚拟寄存器空间之 间的页表映射;步骤24,虚拟机监视器将该建立的页表映射加入到客户操作系统的页表 当中。上述的方法,其中,所述客户操作系统访问APIC中的第一类型寄存器时, 强制陷入到虚拟机监视器以实现访问具体为步骤31,客户操作系统的MMIO访问为APIC的第一类型寄存器; 步骤32,陷入到虚拟机监视器; 步骤33,解析出汇编指令;步骤34,解析出才喿作数后调用虛拟APIC函数完成APIC功能; 步骤35,设置寄存器的返回值后将其返回客户操作系统。 为了更好的实现上述目的,本发明还提供了一种虛拟机系统,包括虚拟 机监视器和客户操作系统,其中所述虚拟机监视器中设置有地址映射模块,用于建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到客户操作系统的页表中;所述客户操作系统中包括一APIC访问控制模块,用于监控内存访问,在 客户操作系统的MMIO访问为APIC的第 一类型寄存器时,强制陷入到虚拟机 监视器,在客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列 表直接访问;对第 一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类 型寄存器的操作不影响APIC的其它寄存器。上述的虚拟机系统,其中,所述虚拟机监^L器中设置有APIC处理模块, 用于解析出汇编指令,解析出操作数后调用虚拟APIC函数完成APIC功能,并 设置寄存器的返回值后将其返回客户操作系统。上述的虚拟机系统,其中,所述第一类型寄存器为EOI( End Of Interrupt , 中断应答)寄存器、TPR ( Task Priority Register,任务优先级寄存器)和ICR (Interrupt Command Register, 中断命令寄存器)。本发明具有以下有益效果建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,GOS访问 APIC时,大量减少了陷入虛拟机和解码的操作,使APIC的访问周期由原来 的近万个时钟周期减少到几十个时钟周期; 拦截的APIC寄存器只有三个,操作简单。


图1为本发明的方法的流程示意图; 图2为地址映射步骤的详细流程示意图;图3为本发明中GOS访问APIC中的第一类型寄存器的流程示意图。
具体实施方式
为便于理解,对本发明进行详细描述之前,在此先对本发明的实施例中所涉及到的几个概念进行说明。在APIC的寄存器之中存在两种类型的寄存器,如下所述 第一类型寄存器,对该类寄存器的操作将导致APIC的其它寄存器产生变化,如EOI (End Of Interrupt ,中断应答)寄存器,对其操作会引起IOAPIC寄存器的刷新,对TPR( Task Priority Register,任务优先级寄存器)的写操 作将导致PPR寄存器的值改变,对ICR寄存器的写操作将导致IPI (Inter Processor Interrupt,处理器间中断)改变。第二类型寄存器,对该类寄存器的操作不影响APIC的其它寄存器。本发明的虚拟机系统及其高级可编程中断控制器的访问处理方法中,通过 将APIC的MMIO地址映射到一个内存空间,并将该页表映射加入到GOS (Guest Operation System,客户操作系统)的页表中,这样GOS可直接通过 页表实现APIC的访问,提高了 APIC的访问效率。本发明的虚拟机系统的高级可编程中断控制器的访问处理方法如图1所 示,包括如下步骤地址映射步骤,VMM( Virtual Machine Monitor,虚拟机监视器)建立APIC 虚拟寄存器空间和APIC初始化地址(即APIC的MMIO地址)的页表映射, 并将地址映射列表加入到GOS的页表当中;APIC访问控制步骤,GOS访问APIC中的第一类型寄存器时,强制陷入 到虚拟机监视器以实现对APIC中的第二类型寄存器的访问;GOS访问APIC 中的第二类型寄存器时,根据页表直接访问。下面分别对各步骤进行进一步详细的描述。如图2所示,地址映射步骤具体包括步骤21, GOS启动,初始化APIC;步骤22, VMM获取APIC的初始化地址(即APIC的MMIO地址),并 分配APIC虚拟寄存器空间;步骤23, VMM建立APIC的初始化地址(即APIC的MMIO地址)与 APIC虚拟寄存 间之间的页表映射;步骤24, VMM将该建立的页表映射加入到GOS的页表当中。在建立了 APIC的初始化地址(即APIC的MMIO地址)与APIC虚拟寄 存器空间之间的页表映射之后,实际情况下,GOS已经可以通过该页表映射 实现对APIC的直接访问。由于对第一类型寄存器的操作将导致其它寄存器的变化,因此对于GOS 访问APIC中寄存器应该加以区别对待,即GOS访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现 对APIC中的第二类型寄存器的访问;GOS访问APIC中的第二类型寄存器时, 根据页表直接访问。下面分别对该两种方式分别进行描述。GOS访问APIC中的第一类型寄存器如图3所示,具体包括如下步骤 步骤31 , GOS的MMIO访问为APIC的第 一类型寄存器; 步骤32,陷入到虚拟机监视器; 步骤33,解析出汇编指令;步骤34,解析出操作数后调用虚拟APIC函数完成APIC功能; 步骤35,设置寄存器的返回值后将其返回GOS。 本发明的虚拟机系统包括虚拟机监视器和客户操作系统,其中 虚拟机监视器中设置有地址映射模块,用于建立APIC虚拟寄存器空间和APIC初始化地址(即APIC的MMIO地址)的页表映射,并将地址映射列表加入到GOS的页表当中;客户^喿作系统中包括一 APIC访问控制模块,用于监控内存访问,在GOS的MMIO访问为APIC的第一类型寄存器时,强制陷入到虚拟机监视器;虚拟机监视器中设置有APIC处理模块,用于解析出汇编指令,解析出操作数后调用虚拟APIC函数完成APIC功能,并设置寄存器的返回值后将其返回GOS。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通 ^f支术人员来说,在不脱离本发明原理的前提下,还可以作出若千改进和润饰, 这些改进和润饰也应视为本发明的保护范围。
权利要求
1. 一种虚拟机系统的高级可编程中断控制器的访问处理方法,其特征在于,包括地址映射步骤,虚拟机监视器建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤,客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类型寄存器的操作不影响APIC的其它寄存器。
2. 根据权利要求1所述的方法,其特征在于,所述第一类型寄存器为中 断应答寄存器、任务优先级寄存器和中断命令寄存器。
3. 根据权利要求1所述的方法,其特征在于,所述地址映射步骤具体包括步骤21,客户操作系统启动后初始化APIC;步骤22,虚拟机监视器获取APIC的初始化地址,并分配APIC虛拟寄存器空间;步骤23,虛拟机监视器建立APIC的初始化地址与APIC虛拟寄存器空间之 间的页表映射;步骤24,虚拟机监视器将该建立的页表映射加入到客户操作系统的页表 当中。
4. 根据权利要求3所述的方法,其特征在于,所述客户操作系统访问APIC 中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问具体为步骤31,客户操作系统的MMIO访问为APIC的第一类型寄存器; 步骤32,陷入到虚拟机监视器; 步骤33,解析出汇编指令;步骤34,解析出操作数后调用虚拟APIC函数完成APIC功能; 步骤35 ,设置寄存器的返回值后将其返回客户操作系统。
5. —种虛拟机系统,包括虚拟机监视器和客户操作系统,其特征在于 所述虚拟机监视器中设置有地址映射模块,用于建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到客户操作系统的 页表中;所述客户操作系统中包括一APIC访问控制模块,用于监控内存访问,在 客户操作系统的MMIO访问为APIC的第 一 类型寄存器时,强制陷入到虚拟机 监视器,在客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列 表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类 型寄存器的操作不影响APIC的其它寄存器。
6. 根据权利要求5所述的虚拟机系统,其特征在于,所述虚拟机监视器中 设置有APIC处理才莫块,用于解析出汇编指令,解析出操作数后调用虚拟APIC 函数完成APIC功能,并设置寄存器的返回值后将其返回客户操作系统。
7. 根据权利要求5所述的虚拟机系统,其特征在于,所述第一类型寄存 器为中断应答寄存器、任务优先级寄存器和中断命令寄存器。
全文摘要
本发明公开了一种虚拟机系统及其高级可编程中断控制器的访问处理方法,其中该方法包括地址映射步骤,虚拟机监视器建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤,客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类型寄存器的操作不影响APIC的其它寄存器。本发明使APIC的访问周期大大缩小,同时操作简单。
文档编号G06F13/20GK101271436SQ200710064538
公开日2008年9月24日 申请日期2007年3月19日 优先权日2007年3月19日
发明者勇 石, 军 陈 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1