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

技术编号:2824914 阅读:295 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种虚拟机系统及其高级可编程中断控制器的访问处理方法,其中该方法包括地址映射步骤,虚拟机监视器建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤,客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类型寄存器的操作不影响APIC的其它寄存器。本发明专利技术使APIC的访问周期大大缩小,同时操作简单。

【技术实现步骤摘要】

本专利技术涉及计算机系统中的APIC(Advanced Programmable InterruptController,高级可编程中断控制器),特别是一种虚拟机系统及其APIC访问处理方法。
技术介绍
APIC主要应用于多处理器操作系统,是为了解决中断请求太少和处理器间中断而产生的,因此,APIC对计算机来讲主要是起到以下的两个作用:管理中断请求的分配,把中断请求扩展到24个,以适应更多的设备;管理多CPU。APIC系统由本地APIC、IO APIC和APIC串行总线组成,每个处理器中集成了一个本地APIC,而IO APIC是系统芯片组中一部分,APIC总线负责连接IO APIC和各个本地APIC。本地APIC接收该处理器产生的本地中断(如时钟中断)以及由该处理器产生的处理器间中断,并从APIC串行总线接收来自IO APIC的消息;IO APIC负责接收所有外部的硬件中断,并翻译成消息选择发给接收中断的处理器,以及从本地APIC接收处理器间中断消息。关于APIC详细的描述请参考《IA-32 Inel Architecture Software Developer′sManual Volume 3 Chapter 8》。现有的虚拟机系统通过拦截对APIC芯片的MMIO(Memory Map Input andOutput,内存映射输入输出)访问,完成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的其它寄存器。上述的虚拟机系统,其中,所述虚拟机监视器中设置有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(InterProcessor 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的直接本文档来自技高网...

【技术保护点】
一种虚拟机系统的高级可编程中断控制器的访问处理方法,其特征在于,包括:地址映射步骤,虚拟机监视器建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤 ,客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类型寄存器的操 作不影响APIC的其它寄存器。

【技术特征摘要】
1. 一种虚拟机系统的高级可编程中断控制器的访问处理方法,其特征在于,包括:地址映射步骤,虚拟机监视器建立APIC虚拟寄存器空间和APIC初始化地址的页表映射,并将地址映射列表加入到虚拟机客户操作系统的页表中;APIC访问控制步骤,客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问,客户操作系统访问APIC中的第二类型寄存器时,根据地址映射列表直接访问;对第一类型寄存器的操作将导致APIC的其它寄存器产生变化,对第二类型寄存器的操作不影响APIC的其它寄存器。2. 根据权利要求1所述的方法,其特征在于,所述第一类型寄存器为中断应答寄存器、任务优先级寄存器和中断命令寄存器。3. 根据权利要求1所述的方法,其特征在于,所述地址映射步骤具体包括:步骤21,客户操作系统启动后初始化APIC;步骤22,虚拟机监视器获取APIC的初始化地址,并分配APIC虚拟寄存器空间;步骤23,虚拟机监视器建立APIC的初始化地址与APIC虚拟寄存器空间之间的页表映射;步骤24,虚拟机监视器将该建立的页表映射加入到客户操作系统的页表当中。4. 根据权利要求3所述的方法,其特征在于,所述客户操作系统访问APIC中的第一类型寄存器时,强制陷入到虚拟机监视器以实现访问具体为:步骤3...

【专利技术属性】
技术研发人员:石勇陈军
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

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

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