《复用客户操作系统设备驱动的实现方法.pdf》由会员分享,可在线阅读,更多相关《复用客户操作系统设备驱动的实现方法.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102339230A43申请公布日20120201CN102339230ACN102339230A21申请号201110255829222申请日20110901G06F9/455200601G06F9/4820060171申请人西安交通大学地址710049陕西省西安市咸宁西路28号72发明人李国辉梅魁志张磊李博良张恩阳展华益74专利代理机构西安通大专利代理有限责任公司61200代理人徐文权54发明名称复用客户操作系统设备驱动的实现方法57摘要本发明提供了一种复用客户操作系统设备驱动的实现方法,HYPERVISOR接管物理中断,客户操作系统中设置虚拟中断响应标志VIPENDIN。
2、G,客户操作系统以中断描述表TABLE_VINTR_DESC描述所有中断;当外设中断产生后,HYPERVISOR首先屏蔽该外设中断,将客户操作系统中的虚拟中断响应标志VIPENDING设置为打开状态,接着将中断描述表TABLE_VINTR_DESC中与该中断对应项的成员PENDING设置为表示该中断发生的状态,最后由客户操作系统调用该外设原有的中断服务程序对该中断事件进行处理。本发明方法复用了客户操作系统中已有的设备驱动,客户操作系统中的原有设备驱动框架保持不变,即访问设备时调用的程序,以及程序调用的流程都保持不变,这样使得设备的性能的损失最小。51INTCL19中华人民共和国国家知识产权局1。
3、2发明专利申请权利要求书1页说明书3页附图4页CN102339243A1/1页21复用客户操作系统设备驱动的实现方法,其特征在于虚拟机HYPERVISOR接管物理中断,客户操作系统中设置有虚拟中断响应标志VIPENDING,同时,客户操作系统以中断描述表TABLE_VINTR_DESC描述所有中断;当外设中断产生后,虚拟机HYPERVISOR首先屏蔽该外设中断,然后将客户操作系统中的虚拟中断响应标志VIPENDING设置为打开状态,接着将中断描述表TABLE_VINTR_DESC中与该中断对应项的成员PENDING设置为表示该中断发生的状态,最后由客户操作系统调用该外设原有的中断服务程序对该中。
4、断事件进行处理。2如权利要求1所述的复用客户操作系统设备驱动的实现方法,其特征在于所述虚拟机HYPERVISOR通过控制和管理硬件中的中断控制器而接管物理中断,当外设中断发生后,虚拟机HYPERVISOR通过操作中断控制器屏蔽该外设中断。3如权利要求1所述的复用客户操作系统设备驱动的实现方法,其特征在于所述虚拟中断响应标志VIPENDING是客户操作系统中的一个全局变量,其被设置为1和0分别表示打开和关闭客户操作系统中的中断响应。4根据权利要求1所述的复用客户操作系统设备驱动的实现方法,其特征在于在客户操作系统的中断服务程序执行完后,将虚拟中断响应标志VIPENDING设置为0,以关闭客户操作。
5、系统对中断的响应,中断描述表TABLE_VINTR_DESC中该中断对应项的成员PENDING设置为0,以向客户操作系统表示该中断已得到处理。最后HYPERVISOR操作中断控制器中的相应中断标志位打开该外设中断,以接受下一次外设中断。5复用客户操作系统设备驱动的实现方法,其特征在于虚拟机HYPERVISOR控制和管理硬件中的中断控制器,接管物理中断,在客户操作系统中设置有虚拟中断响应标志VIPENDING,该虚拟中断响应标志VIPENDING被设置为1和0分别表示打开和关闭客户操作系统中的中断响应,同时,客户操作系统以中断描述表TABLE_VINTR_DESC描述所有中断,具体包括以下步骤1。
6、当外设中断产生后,虚拟机HYPERVISOR通过操作中断控制器屏蔽该外设中断;2将客户操作系统中的虚拟中断响应标志VIPENDING设置为1,并将中断描述表TABLE_VINTR_DESC中与该中断对应项的成员PENDING设置为1以向客户操作系统表示该中断发生;3客户操作系统调用该外设原有的中断服务程序对该中断事件进行处理;4将虚拟中断响应标志VIPENDING设置为0,以关闭客户操作系统对中断的响应;5将中断描述表TABLE_VINTR_DESC中该中断对应项的成员PENDING设置为0,以向客户操作系统表示该中断已得到处理;6虚拟机HYPERVISOR操作中断控制器打开该外设中断,以接受。
7、下一次外设中断。权利要求书CN102339230ACN102339243A1/3页3复用客户操作系统设备驱动的实现方法技术领域0001本发明属于嵌入式虚拟化技术领域,涉及一种复用客户操作系统设备驱动的实现方法,应用于HYPERVISOR中支持对外设的访问。背景技术0002现在日常生活中的嵌入式设备越来越普及,功能应用也越发丰富。将不同的系统虚拟化为客户操作系统后同时运行在HYPERVISOR上,可避免不同系统之间的应用移植而又能兼具各系统的应用。IO虚拟化技术是虚拟化技术中的重要组成部分。HYPERVISOR采用IO虚拟化技术使运行其上的客户操作系统能够使用外围设备。0003目前应用较广泛的I。
8、O虚拟化技术主要有三种,分别是SPLITI/O,DIRECTI/O和PASSTHROUGHI/O。00041SPLITI/O。将设备驱动框架根据是否访问硬件分为硬件相关部分和硬件无关部分。其中硬件相关部分放在具有I/O访问权限的虚拟机中,而硬件无关部分位于无I/O访问权限的虚拟机中,前者为后者提供硬件访问支持。00052DIRECTI/O。HYPERVISOR将相应的物理设备抽象为虚拟设备。虚拟机中对设备的访问是对虚拟设备的操作,HYPERVISOR将这些操作在具体的物理设备上实现。00063PASSTHROUGHI/O。对物理设备,HYPERVISOR不进行任何相应的管理,而是由虚拟机利用系。
9、统中已有设备驱动直接进行物理设备的访问操作这三种IO虚拟化技术相比较,SPLITI/O提供较安全的IO访问,DIRECTI/O拥有较好的移植性,PASSTHROUGHI/O的设备性能损失最小。0007对于复杂外设,如果采用SPLITI/O和DIRECTI/O实现客户操纵系统对外设的访问,都需要对系统中原有的设备驱动框架进行修改,这样不仅实现复杂,而且设备的性能损失大。本发明采用本发明采用了PASSTHROUGHI/O的思想,不用修改系统中的设备驱动框架,使HYPERVISOR上的客户操作系统能够复用其已有的设备驱动完成对外设的访问,可解决客户操作系统访问外设时设备性能损失大的问题。发明内容00。
10、08本发明所要解决的技术问题是提供一种复用客户操作系统设备驱动的实现方法,该方法能够使HYPERVISOR中的客户操作系统复用系统中原有设备驱动对设备进行访问,以使设备的性能损失最小。0009为解决以上技术问题,本发明采用以下技术方案0010复用客户操作系统设备驱动的实现方法,虚拟机HYPERVISOR接管物理中断,客户操作系统中设置有虚拟中断响应标志VIPENDING,同时,客户操作系统以中断描述表TABLE_VINTR_DESC描述所有中断;当外设中断产生后,虚拟机HYPERVISOR首先屏蔽该外设中断,然后将客户操作系统中的虚拟中断响应标志VIPENDING设置为打开状态,接着将中断描述。
11、表TABLE_VINTR_DESC中与该中断对应项的成员PENDING设置为表示该中断发生的说明书CN102339230ACN102339243A2/3页4状态,最后由客户操作系统调用该外设原有的中断服务程序对该中断事件进行处理。0011作为本发明的优选实施例,所述虚拟机HYPERVISOR通过控制和管理硬件中的中断控制器而接管物理中断,当外设中断发生后,虚拟机HYPERVISOR通过操作中断控制器屏蔽该外设中断;0012作为本发明的优选实施例,所述虚拟中断响应标志VIPENDING是客户操作系统中的一个全局变量,其被设置为1和0分别表示打开和关闭客户操作系统中的中断响应;0013作为本发明的。
12、优选实施例,在客户操作系统的中断服务程序执行完后,将虚拟中断响应标志VIPENDING设置为0,以关闭客户操作系统对中断的响应,中断描述表TABLE_VINTR_DESC中该中断对应项的成员PENDING设置为0,以向客户操作系统表示该中断已得到处理。最后HYPERVISOR操作中断控制器中的相应中断标志位打开该外设中断,以接受下一次外设中断;0014本发明复用客户操作系统设备驱动的实现方法至少具有以下优点本发明通过虚拟机HYPERVISOR管理外设中断的屏蔽与开启,将外设中断的具体处理工作交由客户操作系统调用原有的中断服务程序和外设驱动处理。这种方法不仅复用了客户操作系统中已有的设备驱动,而。
13、且客户操作系统中的原有设备驱动框架保持不变,即访问设备时调用的程序,以及程序调用的流程都保持不变,这样使得设备的性能的损失最小。附图说明0015图1为本发明复用客户操作系统设备驱动示意图;0016图2为本发明HYPERVISOR总体结构;0017图3为本发明GUESTOS虚拟化前外设中断处理过程;0018图4为本发明HYPERVISOR处理USB中断示意图;具体实施方式0019下面结合附图对本发明复用客户操作系统设备驱动的实现方法做详细描述0020首先HYPERVISOR控制和管理硬件中的中断控制器,接管物理中断。在客户操作系统中设置虚拟中断响应标志VIPENDING。该虚拟中断响应标志VIP。
14、ENDING是客户操作系统中的一个全局变量,其被设置为1和0分别表示打开和关闭客户操作系统中的中断响应。0021在客户操作系统中,以中断描述表TABLE_VINTR_DESC描述所有中断。中断描述表中每一项对应一个中断,其中成员PENDING表示该中断是否发生。0022保持客户操作系统中的原有设备驱动不变,和对设备的访问权限不变。在HYPERVISOR启动时,HYPERVISOR将其内的中断寄存器中外设中断的对应位使能。而外设的初始化则在客户操作系统中,且直接对物理硬件进行操作。0023当外设中断产生后,先由HYPERVISOR处理。HYPERVISOR先通过操作中断控制器中的相应中断标志位屏。
15、蔽该外设中断,然后将客户操作系统中的虚拟中断响应标志VIPENDING设置为1,并将中断描述表TABLE_VINTR_DESC中与该中断对应项的成员PENDING设置为1以向客户操作系统表示该中断发生。然后客户操作系统调用该外设原有的中断服务程序对该中断事件进行处理。这样客户操作系统中的外设中断处理函数和流程保持不变,外设原有的设备驱动会得到调用,达到复用设备驱动的目的。在客户操作系统的中断服说明书CN102339230ACN102339243A3/3页5务程序执行完后,将虚拟中断响应标志VIPENDING设置为0,以关闭客户操作系统对中断的响应,中断描述表TABLE_VINTR_DESC中该。
16、中断对应项的成员PENDING设置为0,以向客户操作系统表示该中断已得到处理。最后HYPERVISOR操作中断控制器中的相应中断标志位打开该外设中断,以接受下一次外设中断。0024总的来说,HYPERVISOR管理外设中断的屏蔽与开启,将外设中断的具体处理工作交由客户操作系统调用原有的中断服务程序和外设驱动处理。这种方法不仅复用了客户操作系统中已有的设备驱动,而且客户操作系统中的原有设备驱动框架保持不变,即访问设备时调用的程序,以及程序调用的流程都保持不变,这样使得设备的性能的损失最小。0025本发明实际是通过将外设中断交由客户操作系统按照原有的中断服务程序处理,以复用其已有设备驱动。其过程大。
17、致如图1所示。以下以HYPERVISOR中客户操作系统支持USB设备为实例说明本发明内容。0026HYPERVISOR是虚拟机管理软件,基于硬件的HYPERVISOR的总体结构如图2所示。其中HYPERVISOR操作硬件的中断控制器,所有的物理中断发生后先由HYPERVISOR处理。GUESTOS是基于LINUX内核的客户操作系统。经过修改,设置VIPENDING为客户操作系统中的全局变量,其值为1和0分别表示打开和屏蔽客户操作系统中的中断响应。以数据结构TABLE_VINTR_DESC描述客户操作系统中处理的中断,其中包含的成员PENDING为0表示中断没有发生或中断已处理完,为1表示中断发。
18、生需要处理或该中断正在处理。0027当GUESTOS独立运行在硬件平台上时,对USB设备的初始化和读写等操作都是直接作用于物理硬件,对USB的中断都是直接响应和处理。在USB中断发生后,GUESTOS先屏蔽该中断,再调用USB中断服务程序USB_HCD_IRQ处理该中断,USB设备驱动也将得到调用。该中断事件处理完后,GUESTOS再开启USB中断以响应下一次USB中断。具体过程如图3所示。0028当GUESTOS运行在HYPERVISOR上时,保留GUESTOS中USB设备驱动不变,保留GUESTOS对USB设备的直接操作和控制。当插入USB设备后,触发USB中断。HYPERVISOR在接受。
19、到USB中断后,先通过对中断寄存器操作,将USB中断对应位置0以屏蔽该中断,然后设置GUESTOS中的虚拟中断响应标志VIPENDING为1,中断描述表TABLE_VINTR_DESC中USB中断对应项的PENDING成员的值设为1。然后GUESTOS将响应USB中断,调用与独立运行在硬件上时一样的USB中断服务程序USB_HCD_IRQ完成该中断的具体处理工作。具体处理该中断的工作流程与独立运行在硬件上时一样,USB设备驱动将得调用。这样达到复用USB设备驱动的目的。在将该中断处理完成后,GUESTOS将中断描述表TABLE_VINTR_DESC中USB中断对应项的PENDING成员值设置为。
20、0,中断响应标志VIPENDING设置为0,然后HYPERVISOR将中断寄存器中USB中断对应位设置为1以开启USB中断。以上HYPERVISOR中GUESTOS复用USB设备驱动的具体过程如图4所示。0029以上所述仅为本发明的一种实施方式,不是全部或唯一的实施方式,本领域普通技术人员通过阅读本发明说明书而对本发明技术方案采取的任何等效的变换,均为本发明的权利要求所涵盖。说明书CN102339230ACN102339243A1/4页6图1说明书附图CN102339230ACN102339243A2/4页7图2说明书附图CN102339230ACN102339243A3/4页8图3说明书附图CN102339230ACN102339243A4/4页9图4说明书附图CN102339230A。