一种基于设备模拟的数据卡虚拟化实现方法.pdf

上传人:Y94****206 文档编号:5780909 上传时间:2019-03-19 格式:PDF 页数:11 大小:548.36KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310696743.2

申请日:

2013.12.18

公开号:

CN103645936A

公开日:

2014.03.19

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 9/455申请日:20131218|||公开

IPC分类号:

G06F9/455

主分类号:

G06F9/455

申请人:

四川卫士通信息安全平台技术有限公司

发明人:

王亚栋; 黄臻; 刘颖

地址:

610000 四川省成都市高新区云华路333号2幢

优先权:

专利代理机构:

成都金英专利代理事务所 51218

代理人:

袁英

PDF下载: PDF下载
内容摘要

本发明公开了一种基于设备模拟的数据卡虚拟化实现方法,它包括一个设备初始化步骤和一个I/O口读写处理步骤,所述的设备初始化步骤包括:分配模拟设备资源配置对象;将虚拟子数据卡信息注册到虚拟机子模块;根据初始化指定的数据卡类型生成相应的设备节点名;对I/O口读写操作处理函数进行注册;虚拟子数据卡的I/O口读写范围的申请;结束初始化设置。本发明不需要对硬件进行专门设计、可在虚拟子模块中提供虚拟的子数据卡、各子数据卡之间相互独立,互不干扰、且具备迁移功能。

权利要求书

权利要求书
1.  一种基于设备模拟的数据卡虚拟化实现方法,其特征在于:它包括一个设备初始化步骤和一个I/O口读写处理步骤,所述的设备初始化步骤包括以下步骤:
S101:分配模拟设备资源配置对象;
S102:将虚拟子数据卡信息注册到虚拟机子模块;
S103:根据初始化指定的数据卡类型生成相应的设备节点名;
S104:对I/O口读写操作处理函数进行注册;
S105:虚拟子数据卡的I/O口读写范围的申请;
S106:结束初始化设置;
所述的I/O口读写处理步骤包括I/O口读处理步骤和I/O口写处理步骤,所述的I/O口读处理步骤包括以下步骤:
S2011:获取I/O口读操作指令,对I/O口所读取的数据进行判断;
S2012:判断I/O口读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2013,否则执行步骤S2014;
S2013:读取DMA传输地址寄存器内的数据,并返回DMA传输地址寄存器内的数据处理值,完成I/O口数据读取处理;
S2014:判断I/O口读取的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2015,否则执行步骤S2016;
S2015:读取控制状态寄存器内的数据,返回控制状态寄存器内的数据处理值,完成I/O口数据读取处理;
S2016:返回0,完成I/O口数据读取处理;
所述的I/O口写处理步骤包括以下步骤:
S2021:获取I/O口写操作指令,对I/O口所读取的数据进行判断;
S2022:判断I/O口所读取的数据是否为DMA地址标志寄存器数据,若为DMA地址标志寄存器数据,则执行步骤S2023,否则跳转至步骤S2026;
S2023:将读取到的DMA地址标志寄存器内的数据传输至真实数据卡设备;
S2024:读取真实数据卡设备中的数据,作为返回值写入虚拟机子模块中的DMA地址寄存器内;
S2025:完成I/O口写处理步骤;
S2026:判断I/O口所读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2027,否则执行步骤S2028;
S2027:将读取到的数据写入指定的DMA传输地址寄存器,完成I/O口写处理;
S2028:判断I/O口所读取到的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2029,否则执行步骤S2030;
S2029:将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零,完成I/O口写处理;
S2030:不响应操作,完成I/O口写处理。

2.  根据权利要求1所述的一种基于设备模拟的数据卡虚拟化实现方法,其特征在于:它还包括一个设备迁入步骤和设备迁出步骤,所述的设备迁入步骤包括以下步骤:
S3011:读取数据,将DMA地址寄存器和控制状态寄存器中的数据进行恢复;
S3012:读取数据,恢复虚拟子系统相关的通信会话上下文环境;
S3013:完成设备迁入;
所述的设备迁出步骤包括以下步骤:
S3021:保存DMA地址寄存器和控制状态寄存器中的数据信息;
S3022:获取虚拟子系统相关的通信会话的上下文环境,并保存;
S3023:完成设备迁出。

说明书

说明书一种基于设备模拟的数据卡虚拟化实现方法
技术领域
本发明涉及一种基于设备模拟的数据卡虚拟化实现方法。
背景技术
虚拟化,是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案,通过虚拟话技术可以扩大硬件的容量,简化软件的重新配置过程,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。
在计算机虚拟化中,虚拟机管理器(VMM)模拟底层硬件,为虚拟机子系统(Guest OS)提供访问虚拟设备的接口。VMM基本可以分为两种工作模式:完全虚拟化(Fullvirtualization)和半虚拟化(Paravirtualization)。在完全虚拟化中,物理设备在虚拟机子系统之间共享使用,子系统的I/O访问被VMM捕获,由设备模型来进行模拟。完全虚拟化技术中,VMM提供了对子系统I/O操作的捕获支持。对于I/O内存映射,VMM一般通过页面失效的方式进行捕获;然后,这些I/O操作通过设备模拟模型模块进行解析处理;最后,设备模拟模型模块通过本地设备驱动操作真实的硬件设备。现有的设备虚拟化一般需要硬件专门支持,这将使数据卡的设计复杂;硬件虚拟化能提供的虚拟数据卡数目受硬件资源限制。
发明内容
本发明的目的在于克服现有技术的不足,提供一种不需要对硬件进行专门设计、可在虚拟子模块中提供虚拟的子数据卡、各子数据卡之间相互独立,互不干扰、且具备迁移功能的基于设备模拟的数据卡虚拟化实现方法。
本发明的目的是通过以下技术方案来实现的:一种基于设备模拟的数据卡虚拟化实现方法,它包括一个设备初始化步骤和一个I/O口读写处理步骤,所述的设备初始化步骤包括以下步骤:
S101:分配模拟设备资源配置对象;
S102:将虚拟子数据卡信息注册到虚拟机子模块;
S103:根据初始化指定的数据卡类型生成相应的设备节点名;
S104:对I/O口读写操作处理函数进行注册;
S105:虚拟子数据卡的I/O口读写范围的申请;
S106:结束初始化设置;
所述的I/O口读写处理步骤包括I/O口读处理步骤和I/O口写处理步骤,所述的I/O口读处理步骤包括以下步骤:
S2011:获取I/O口读操作指令,对I/O口所读取的数据进行判断;
S2012:判断I/O口读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2013,否则执行步骤S2014;
S2013:读取DMA传输地址寄存器内的数据,并返回DMA传输地址寄存器内的数据处理值,完成I/O口数据读取处理;
S2014:判断I/O口读取的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2015,否则执行步骤S2016;
S2015:读取控制状态寄存器内的数据,返回控制状态寄存器内的数据处理值,完成I/O口数据读取处理;
S2016:返回0,完成I/O口数据读取处理;
所述的I/O口写处理步骤包括以下步骤:
S2021:获取I/O口写操作指令,对I/O口所读取的数据进行判断;
S2022:判断I/O口所读取的数据是否为DMA地址标志寄存器数据,若为DMA地址标志寄存器数据,则执行步骤S2023,否则跳转至步骤S2026;
S2023:将读取到的DMA地址标志寄存器内的数据传输至真实数据卡设备;
S2024:读取真实数据卡设备中的数据,作为返回值写入虚拟机子模块中的DMA地址寄存器内;
S2025:完成I/O口写处理步骤;
S2026:判断I/O口所读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2027,否则执行步骤S2028;
S2027:将读取到的数据写入指定的DMA传输地址寄存器,完成I/O口写处理;
S2028:判断I/O口所读取到的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2029,否则执行步骤S2030;
S2029:将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零,完成I/O口写处理;
S2030:不响应操作,完成I/O口写处理。
所述的一种基于设备模拟的数据卡虚拟化实现方法,它还包括一个设备迁入步骤和设备迁出步骤,所述的设备迁入步骤包括以下步骤:
S3011:读取数据,将DMA地址寄存器和控制状态寄存器中的数据进行恢复;
S3012:读取数据,恢复虚拟子系统相关的通信会话上下文环境;
S3013:完成设备迁入;
所述的设备迁出步骤包括以下步骤:
S3021:保存DMA地址寄存器和控制状态寄存器中的数据信息;
S3022:获取虚拟子系统相关的通信会话的上下文环境,并保存;
S3023:完成设备迁出。 
本发明的有益效果是:不需要对进行专门设计,从而提高了数据卡虚拟化的使用范围;能够设置多个子数据卡,且各子数据卡之间相互独立,互补干扰;且具有设备迁移功能。 
附图说明
图1为本发明的系统概略框图;
图2为本发明的设备初始化流程图;
图3为本发明的I/O口读处理流程图;
图4为本发明的I/O口写处理流程图;
图5为本发明的设备迁入流程图;
图6为本发明的设备迁出流程图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
本发明的系统概略框图如图1所示,它包括虚拟机子模块、数据卡虚拟化模块、数据卡驱动模块和数据卡设备,数据卡虚拟化模块包括设备模拟模型单元、资源管理单元和迁移管理单元,设备模拟模型单元分别与资源管理单元、数据卡驱动模块和虚拟机子模块相连,资源管理单元和迁移管理单元相连;所述的数字卡设备包括迁移支持模块,迁移支持模块和迁移管理单元相连,迁移管理单元还和数据卡驱动模块相连。
在图1中,设备模拟模型单元用于产生虚拟子数据卡的对象实例,并初始化其配置空间参数,然后将对象实例注册到虚拟机子模块的PCI总线(类似于插入PCI加密卡的动作),最后将I/O读写的处理方法注册到VMM;资源管理单元用于保存虚拟子加密卡的设备信息、控制状态寄存器以及传输地址;数据卡驱动模块用于处理其它寄存器的访问,并将处理结果传送至数据卡设备;迁移管理单元用于响应VMM的迁移命令,它在迁出/迁入过程中将访问资源管理单元,以及通过数据卡驱动模块访问数据卡设备的迁移支持功能;迁移支持模块用于响应迁移管理单元的迁移命令,导入/导出数据卡设备中虚拟子数据卡所涉及的通信会话的上下文环境。
所述的控制状态寄存器用于模拟虚拟子数据卡的中断控制状态,它以二进制位表示中断来源,由设备模拟模型单元根据设备响应进行置位,并由虚拟子模块通过I/O请求清零;所述的传输地址用于保存虚拟子数据卡的虚拟子模块系统中分配得到DMA传输地址,其值由虚拟子模块通过I/O请求写入,设备模拟模型单元通过DMA传输地址与虚拟子系统进行数据交互;所述的通信会话的上下文环境包括通信会话的登录状态、通信会话使用的数据资源,如:工作模式、密钥等。
如图2、3、4、5和6所示,一种基于设备模拟的数据卡虚拟化实现方法,它包括一个设备初始化步骤和一个I/O口读写处理步骤,所述的设备初始化步骤包括以下步骤:
S101:分配模拟设备资源配置对象;
S102:将虚拟子数据卡信息注册到虚拟机子模块;
S103:根据初始化指定的数据卡类型生成相应的设备节点名;
S104:对I/O口读写操作处理函数进行注册;
S105:虚拟子数据卡的I/O口读写范围的申请;
S106:结束初始化设置;
所述的I/O口读写处理步骤包括I/O口读处理步骤和I/O口写处理步骤,所述的I/O口读处理步骤包括以下步骤:
S2011:获取I/O口读操作指令,对I/O口所读取的数据进行判断;
S2012:判断I/O口读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2013,否则执行步骤S2014;
S2013:读取DMA传输地址寄存器内的数据,并返回DMA传输地址寄存器内的数据处理值,完成I/O口数据读取处理;
S2014:判断I/O口读取的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2015,否则执行步骤S2016;
S2015:读取控制状态寄存器内的数据,返回控制状态寄存器内的数据处理值,完成I/O口数据读取处理;
S2016:返回0,完成I/O口数据读取处理;
所述的I/O口写处理步骤包括以下步骤:
S2021:获取I/O口写操作指令,对I/O口所读取的数据进行判断;
S2022:判断I/O口所读取的数据是否为DMA地址标志寄存器数据,若为DMA地址标志寄存器数据,则执行步骤S2023,否则跳转至步骤S2026;
S2023:将读取到的DMA地址标志寄存器内的数据传输至真实数据卡设备;
S2024:读取真实数据卡设备中的数据,作为返回值写入虚拟机子模块中的DMA地址寄存器内;
S2025:完成I/O口写处理步骤;
S2026:判断I/O口所读取的数据是否为DMA传输地址寄存器数据,若为DMA传输地址寄存器数据,则执行步骤S2027,否则执行步骤S2028;
S2027:将读取到的数据写入指定的DMA传输地址寄存器,完成I/O口写处理;
S2028:判断I/O口所读取到的数据是否为控制状态寄存器数据,若为控制状态寄存器数据,则执行步骤S2029,否则执行步骤S2030;
S2029:将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零,完成I/O口写处理;
S2030:不响应操作,完成I/O口写处理。
所述的一种基于设备模拟的数据卡虚拟化实现方法,它还包括一个设备迁入步骤和设备迁出步骤,所述的设备迁入步骤包括以下步骤:
S3011:读取数据,将DMA地址寄存器和控制状态寄存器中的数据进行恢复;
S3012:读取数据,恢复虚拟子系统相关的通信会话上下文环境;
S3013:完成设备迁入;
所述的设备迁出步骤包括以下步骤:
S3021:保存DMA地址寄存器和控制状态寄存器中的数据信息;
S3022:获取虚拟子系统相关的通信会话的上下文环境,并保存;
S3023:完成设备迁出。
该方法可以使数据卡设备在虚拟机子模块中呈现出至少一个虚拟子数据卡,供虚拟机子模块使用。 

一种基于设备模拟的数据卡虚拟化实现方法.pdf_第1页
第1页 / 共11页
一种基于设备模拟的数据卡虚拟化实现方法.pdf_第2页
第2页 / 共11页
一种基于设备模拟的数据卡虚拟化实现方法.pdf_第3页
第3页 / 共11页
点击查看更多>>
资源描述

《一种基于设备模拟的数据卡虚拟化实现方法.pdf》由会员分享,可在线阅读,更多相关《一种基于设备模拟的数据卡虚拟化实现方法.pdf(11页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103645936 A (43)申请公布日 2014.03.19 CN 103645936 A (21)申请号 201310696743.2 (22)申请日 2013.12.18 G06F 9/455(2006.01) (71)申请人 四川卫士通信息安全平台技术有限 公司 地址 610000 四川省成都市高新区云华路 333 号 2 幢 (72)发明人 王亚栋 黄臻 刘颖 (74)专利代理机构 成都金英专利代理事务所 51218 代理人 袁英 (54) 发明名称 一种基于设备模拟的数据卡虚拟化实现方法 (57) 摘要 本发明公开了一种基于设备模拟的数据卡虚 拟化实现方。

2、法, 它包括一个设备初始化步骤和一 个 I/O 口读写处理步骤, 所述的设备初始化步骤 包括 : 分配模拟设备资源配置对象 ; 将虚拟子数 据卡信息注册到虚拟机子模块 ; 根据初始化指定 的数据卡类型生成相应的设备节点名 ; 对 I/O 口 读写操作处理函数进行注册 ; 虚拟子数据卡的 I/ O口读写范围的申请 ; 结束初始化设置。 本发明不 需要对硬件进行专门设计、 可在虚拟子模块中提 供虚拟的子数据卡、 各子数据卡之间相互独立, 互 不干扰、 且具备迁移功能。 (51)Int.Cl. 权利要求书 2 页 说明书 4 页 附图 4 页 (19)中华人民共和国国家知识产权局 (12)发明专利申。

3、请 权利要求书2页 说明书4页 附图4页 (10)申请公布号 CN 103645936 A CN 103645936 A 1/2 页 2 1. 一种基于设备模拟的数据卡虚拟化实现方法, 其特征在于 : 它包括一个设备初始化 步骤和一个 I/O 口读写处理步骤, 所述的设备初始化步骤包括以下步骤 : S101 : 分配模拟设备资源配置对象 ; S102 : 将虚拟子数据卡信息注册到虚拟机子模块 ; S103 : 根据初始化指定的数据卡类型生成相应的设备节点名 ; S104 : 对 I/O 口读写操作处理函数进行注册 ; S105 : 虚拟子数据卡的 I/O 口读写范围的申请 ; S106 : 结。

4、束初始化设置 ; 所述的 I/O 口读写处理步骤包括 I/O 口读处理步骤和 I/O 口写处理步骤, 所述的 I/O 口读处理步骤包括以下步骤 : S2011 : 获取 I/O 口读操作指令, 对 I/O 口所读取的数据进行判断 ; S2012 : 判断 I/O 口读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址寄 存器数据, 则执行步骤 S2013, 否则执行步骤 S2014 ; S2013 : 读取 DMA 传输地址寄存器内的数据, 并返回 DMA 传输地址寄存器内的数据处理 值, 完成 I/O 口数据读取处理 ; S2014 : 判断 I/O 口读取的数据是否为控制。

5、状态寄存器数据, 若为控制状态寄存器数 据, 则执行步骤 S2015, 否则执行步骤 S2016 ; S2015 : 读取控制状态寄存器内的数据, 返回控制状态寄存器内的数据处理值, 完成 I/ O 口数据读取处理 ; S2016 : 返回 0, 完成 I/O 口数据读取处理 ; 所述的 I/O 口写处理步骤包括以下步骤 : S2021 : 获取 I/O 口写操作指令, 对 I/O 口所读取的数据进行判断 ; S2022 : 判断 I/O 口所读取的数据是否为 DMA 地址标志寄存器数据, 若为 DMA 地址标志 寄存器数据, 则执行步骤 S2023, 否则跳转至步骤 S2026 ; S202。

6、3 : 将读取到的 DMA 地址标志寄存器内的数据传输至真实数据卡设备 ; S2024 : 读取真实数据卡设备中的数据, 作为返回值写入虚拟机子模块中的 DMA 地址寄 存器内 ; S2025 : 完成 I/O 口写处理步骤 ; S2026 : 判断 I/O 口所读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址 寄存器数据, 则执行步骤 S2027, 否则执行步骤 S2028 ; S2027 : 将读取到的数据写入指定的 DMA 传输地址寄存器, 完成 I/O 口写处理 ; S2028 : 判断 I/O 口所读取到的数据是否为控制状态寄存器数据, 若为控制状态寄存器 数据。

7、, 则执行步骤 S2029, 否则执行步骤 S2030 ; S2029 : 将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零, 完成 I/O 口写 处理 ; S2030 : 不响应操作, 完成 I/O 口写处理。 2. 根据权利要求 1 所述的一种基于设备模拟的数据卡虚拟化实现方法, 其特征在于 : 它还包括一个设备迁入步骤和设备迁出步骤 , 所述的设备迁入步骤包括以下步骤 : S3011 : 读取数据, 将 DMA 地址寄存器和控制状态寄存器中的数据进行恢复 ; 权 利 要 求 书 CN 103645936 A 2 2/2 页 3 S3012 : 读取数据, 恢复虚拟子系统相关的通信会。

8、话上下文环境 ; S3013 : 完成设备迁入 ; 所述的设备迁出步骤包括以下步骤 : S3021 : 保存 DMA 地址寄存器和控制状态寄存器中的数据信息 ; S3022 : 获取虚拟子系统相关的通信会话的上下文环境, 并保存 ; S3023 : 完成设备迁出。 权 利 要 求 书 CN 103645936 A 3 1/4 页 4 一种基于设备模拟的数据卡虚拟化实现方法 技术领域 0001 本发明涉及一种基于设备模拟的数据卡虚拟化实现方法。 背景技术 0002 虚拟化, 是指计算元件在虚拟的基础上而不是真实的基础上运行, 是一个为了简 化管理, 优化资源的解决方案, 通过虚拟话技术可以扩大硬。

9、件的容量, 简化软件的重新配置 过程, 允许一个平台同时运行多个操作系统, 并且应用程序都可以在相互独立的空间内运 行而互不影响, 从而显著提高计算机的工作效率。 0003 在计算机虚拟化中, 虚拟机管理器 (VMM)模拟底层硬件, 为虚拟机子系统 (Guest OS)提供访问虚拟设备的接口。VMM 基本可以分为两种工作模式 : 完全虚拟化 (Fullvirtualization) 和半虚拟化 (Paravirtualization) 。在完全虚拟化中, 物理设备在 虚拟机子系统之间共享使用, 子系统的 I/O 访问被 VMM 捕获, 由设备模型来进行模拟。完全 虚拟化技术中, VMM 提供了。

10、对子系统 I/O 操作的捕获支持。对于 I/O 内存映射, VMM 一般通 过页面失效的方式进行捕获 ; 然后, 这些 I/O 操作通过设备模拟模型模块进行解析处理 ; 最 后, 设备模拟模型模块通过本地设备驱动操作真实的硬件设备。现有的设备虚拟化一般需 要硬件专门支持, 这将使数据卡的设计复杂 ; 硬件虚拟化能提供的虚拟数据卡数目受硬件 资源限制。 发明内容 0004 本发明的目的在于克服现有技术的不足, 提供一种不需要对硬件进行专门设计、 可在虚拟子模块中提供虚拟的子数据卡、 各子数据卡之间相互独立, 互不干扰、 且具备迁移 功能的基于设备模拟的数据卡虚拟化实现方法。 0005 本发明的目。

11、的是通过以下技术方案来实现的 : 一种基于设备模拟的数据卡虚拟化 实现方法, 它包括一个设备初始化步骤和一个 I/O 口读写处理步骤, 所述的设备初始化步 骤包括以下步骤 : S101 : 分配模拟设备资源配置对象 ; S102 : 将虚拟子数据卡信息注册到虚拟机子模块 ; S103 : 根据初始化指定的数据卡类型生成相应的设备节点名 ; S104 : 对 I/O 口读写操作处理函数进行注册 ; S105 : 虚拟子数据卡的 I/O 口读写范围的申请 ; S106 : 结束初始化设置 ; 所述的 I/O 口读写处理步骤包括 I/O 口读处理步骤和 I/O 口写处理步骤, 所述的 I/O 口读处。

12、理步骤包括以下步骤 : S2011 : 获取 I/O 口读操作指令, 对 I/O 口所读取的数据进行判断 ; S2012 : 判断 I/O 口读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址寄 存器数据, 则执行步骤 S2013, 否则执行步骤 S2014 ; 说 明 书 CN 103645936 A 4 2/4 页 5 S2013 : 读取 DMA 传输地址寄存器内的数据, 并返回 DMA 传输地址寄存器内的数据处理 值, 完成 I/O 口数据读取处理 ; S2014 : 判断 I/O 口读取的数据是否为控制状态寄存器数据, 若为控制状态寄存器数 据, 则执行步骤 S2。

13、015, 否则执行步骤 S2016 ; S2015 : 读取控制状态寄存器内的数据, 返回控制状态寄存器内的数据处理值, 完成 I/ O 口数据读取处理 ; S2016 : 返回 0, 完成 I/O 口数据读取处理 ; 所述的 I/O 口写处理步骤包括以下步骤 : S2021 : 获取 I/O 口写操作指令, 对 I/O 口所读取的数据进行判断 ; S2022 : 判断 I/O 口所读取的数据是否为 DMA 地址标志寄存器数据, 若为 DMA 地址标志 寄存器数据, 则执行步骤 S2023, 否则跳转至步骤 S2026 ; S2023 : 将读取到的 DMA 地址标志寄存器内的数据传输至真实数。

14、据卡设备 ; S2024 : 读取真实数据卡设备中的数据, 作为返回值写入虚拟机子模块中的 DMA 地址寄 存器内 ; S2025 : 完成 I/O 口写处理步骤 ; S2026 : 判断 I/O 口所读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址 寄存器数据, 则执行步骤 S2027, 否则执行步骤 S2028 ; S2027 : 将读取到的数据写入指定的 DMA 传输地址寄存器, 完成 I/O 口写处理 ; S2028 : 判断 I/O 口所读取到的数据是否为控制状态寄存器数据, 若为控制状态寄存器 数据, 则执行步骤 S2029, 否则执行步骤 S2030 ; S。

15、2029 : 将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零, 完成 I/O 口写 处理 ; S2030 : 不响应操作, 完成 I/O 口写处理。 0006 所述的一种基于设备模拟的数据卡虚拟化实现方法, 它还包括一个设备迁入步骤 和设备迁出步骤 , 所述的设备迁入步骤包括以下步骤 : S3011 : 读取数据, 将 DMA 地址寄存器和控制状态寄存器中的数据进行恢复 ; S3012 : 读取数据, 恢复虚拟子系统相关的通信会话上下文环境 ; S3013 : 完成设备迁入 ; 所述的设备迁出步骤包括以下步骤 : S3021 : 保存 DMA 地址寄存器和控制状态寄存器中的数据信息 ;。

16、 S3022 : 获取虚拟子系统相关的通信会话的上下文环境, 并保存 ; S3023 : 完成设备迁出。 0007 本发明的有益效果是 : 不需要对进行专门设计, 从而提高了数据卡虚拟化的使用 范围 ; 能够设置多个子数据卡, 且各子数据卡之间相互独立, 互补干扰 ; 且具有设备迁移功 能。 附图说明 0008 图 1 为本发明的系统概略框图 ; 图 2 为本发明的设备初始化流程图 ; 说 明 书 CN 103645936 A 5 3/4 页 6 图 3 为本发明的 I/O 口读处理流程图 ; 图 4 为本发明的 I/O 口写处理流程图 ; 图 5 为本发明的设备迁入流程图 ; 图 6 为本发。

17、明的设备迁出流程图。 具体实施方式 0009 下面结合附图进一步详细描述本发明的技术方案, 但本发明的保护范围不局限于 以下所述。 0010 本发明的系统概略框图如图 1 所示, 它包括虚拟机子模块、 数据卡虚拟化模块、 数 据卡驱动模块和数据卡设备, 数据卡虚拟化模块包括设备模拟模型单元、 资源管理单元和 迁移管理单元, 设备模拟模型单元分别与资源管理单元、 数据卡驱动模块和虚拟机子模块 相连, 资源管理单元和迁移管理单元相连 ; 所述的数字卡设备包括迁移支持模块, 迁移支持 模块和迁移管理单元相连, 迁移管理单元还和数据卡驱动模块相连。 0011 在图 1 中, 设备模拟模型单元用于产生虚。

18、拟子数据卡的对象实例, 并初始化其配 置空间参数, 然后将对象实例注册到虚拟机子模块的PCI总线 (类似于插入PCI加密卡的动 作) , 最后将 I/O 读写的处理方法注册到 VMM ; 资源管理单元用于保存虚拟子加密卡的设备 信息、 控制状态寄存器以及传输地址 ; 数据卡驱动模块用于处理其它寄存器的访问, 并将处 理结果传送至数据卡设备 ; 迁移管理单元用于响应VMM的迁移命令, 它在迁出/迁入过程中 将访问资源管理单元, 以及通过数据卡驱动模块访问数据卡设备的迁移支持功能 ; 迁移支 持模块用于响应迁移管理单元的迁移命令, 导入 / 导出数据卡设备中虚拟子数据卡所涉及 的通信会话的上下文环。

19、境。 0012 所述的控制状态寄存器用于模拟虚拟子数据卡的中断控制状态, 它以二进制位表 示中断来源, 由设备模拟模型单元根据设备响应进行置位, 并由虚拟子模块通过 I/O 请求 清零 ; 所述的传输地址用于保存虚拟子数据卡的虚拟子模块系统中分配得到 DMA 传输地 址, 其值由虚拟子模块通过I/O请求写入, 设备模拟模型单元通过DMA传输地址与虚拟子系 统进行数据交互 ; 所述的通信会话的上下文环境包括通信会话的登录状态、 通信会话使用 的数据资源, 如 : 工作模式、 密钥等。 0013 如图2、 3、 4、 5和6所示, 一种基于设备模拟的数据卡虚拟化实现方法, 它包括一个 设备初始化步。

20、骤和一个 I/O 口读写处理步骤, 所述的设备初始化步骤包括以下步骤 : S101 : 分配模拟设备资源配置对象 ; S102 : 将虚拟子数据卡信息注册到虚拟机子模块 ; S103 : 根据初始化指定的数据卡类型生成相应的设备节点名 ; S104 : 对 I/O 口读写操作处理函数进行注册 ; S105 : 虚拟子数据卡的 I/O 口读写范围的申请 ; S106 : 结束初始化设置 ; 所述的 I/O 口读写处理步骤包括 I/O 口读处理步骤和 I/O 口写处理步骤, 所述的 I/O 口读处理步骤包括以下步骤 : S2011 : 获取 I/O 口读操作指令, 对 I/O 口所读取的数据进行判。

21、断 ; S2012 : 判断 I/O 口读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址寄 说 明 书 CN 103645936 A 6 4/4 页 7 存器数据, 则执行步骤 S2013, 否则执行步骤 S2014 ; S2013 : 读取 DMA 传输地址寄存器内的数据, 并返回 DMA 传输地址寄存器内的数据处理 值, 完成 I/O 口数据读取处理 ; S2014 : 判断 I/O 口读取的数据是否为控制状态寄存器数据, 若为控制状态寄存器数 据, 则执行步骤 S2015, 否则执行步骤 S2016 ; S2015 : 读取控制状态寄存器内的数据, 返回控制状态寄存。

22、器内的数据处理值, 完成 I/ O 口数据读取处理 ; S2016 : 返回 0, 完成 I/O 口数据读取处理 ; 所述的 I/O 口写处理步骤包括以下步骤 : S2021 : 获取 I/O 口写操作指令, 对 I/O 口所读取的数据进行判断 ; S2022 : 判断 I/O 口所读取的数据是否为 DMA 地址标志寄存器数据, 若为 DMA 地址标志 寄存器数据, 则执行步骤 S2023, 否则跳转至步骤 S2026 ; S2023 : 将读取到的 DMA 地址标志寄存器内的数据传输至真实数据卡设备 ; S2024 : 读取真实数据卡设备中的数据, 作为返回值写入虚拟机子模块中的 DMA 地。

23、址寄 存器内 ; S2025 : 完成 I/O 口写处理步骤 ; S2026 : 判断 I/O 口所读取的数据是否为 DMA 传输地址寄存器数据, 若为 DMA 传输地址 寄存器数据, 则执行步骤 S2027, 否则执行步骤 S2028 ; S2027 : 将读取到的数据写入指定的 DMA 传输地址寄存器, 完成 I/O 口写处理 ; S2028 : 判断 I/O 口所读取到的数据是否为控制状态寄存器数据, 若为控制状态寄存器 数据, 则执行步骤 S2029, 否则执行步骤 S2030 ; S2029 : 将控制状态寄存器中的指定位和虚拟子数据卡的中断标志清零, 完成 I/O 口写 处理 ; 。

24、S2030 : 不响应操作, 完成 I/O 口写处理。 0014 所述的一种基于设备模拟的数据卡虚拟化实现方法, 它还包括一个设备迁入步骤 和设备迁出步骤 , 所述的设备迁入步骤包括以下步骤 : S3011 : 读取数据, 将 DMA 地址寄存器和控制状态寄存器中的数据进行恢复 ; S3012 : 读取数据, 恢复虚拟子系统相关的通信会话上下文环境 ; S3013 : 完成设备迁入 ; 所述的设备迁出步骤包括以下步骤 : S3021 : 保存 DMA 地址寄存器和控制状态寄存器中的数据信息 ; S3022 : 获取虚拟子系统相关的通信会话的上下文环境, 并保存 ; S3023 : 完成设备迁出。 0015 该方法可以使数据卡设备在虚拟机子模块中呈现出至少一个虚拟子数据卡, 供虚 拟机子模块使用。 说 明 书 CN 103645936 A 7 1/4 页 8 图 1 说 明 书 附 图 CN 103645936 A 8 2/4 页 9 图 2 说 明 书 附 图 CN 103645936 A 9 3/4 页 10 图 3 说 明 书 附 图 CN 103645936 A 10 4/4 页 11 图 4 图 5 图 6 说 明 书 附 图 CN 103645936 A 11 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1