[发明专利]虚拟机系统及其高级可编程中断控制器的访问处理方法有效
| 申请号: | 200710064538.9 | 申请日: | 2007-03-19 |
| 公开(公告)号: | CN101271436A | 公开(公告)日: | 2008-09-24 |
| 发明(设计)人: | 石勇;陈军 | 申请(专利权)人: | 联想(北京)有限公司 |
| 主分类号: | G06F13/24 | 分类号: | G06F13/24;G06F9/455 |
| 代理公司: | 北京银龙知识产权代理有限公司 | 代理人: | 许静 |
| 地址: | 100085北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 虚拟机 系统 及其 高级 可编程 中断 控制器 访问 处理 方法 | ||
技术领域
本发明涉及计算机系统中的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功能,并设置寄存器的返回值后将其返回客户操作系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710064538.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:医疗辅助计算机
- 下一篇:防止业务重复触发的方法、系统和设备





