一种虚拟硬件加速方法及系统技术方案

技术编号:2844301 阅读:198 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及计算机系统领域,具体的说是一种虚拟硬件加速方法及系统。为了解决在现有计算机系统中不增加新的硬件加速卡的前提下,加快计算机应用软件模块的处理速度,提供了一种方法及系统,其方法为:在系统中至少有一个运行应用程序模块的进程,其特征在于,在操作系统中建立虚拟设备,将应用程序模块处理方法、处理结果需要被多个进程共享的数据处理过程作为该虚拟设备的数据处理模块,利用虚拟设备的数据处理模块对进程中应用程序模块的数据进行处理,并由虚拟设备的接口进行输入输出。本发明专利技术的有益效果在于,数据处理速度有了很大提高,明显的减小了系统的负担,不使用硬件,不占用硬件槽,不会带来添加硬件而造成的成本增加。

【技术实现步骤摘要】

本专利技术涉及计算机系统领域,特别涉及加快计算机处理速度技术,具体的讲是一种虚拟硬件加速方法及系统
技术介绍
随着社会科技的发展,计算机的处理速度突飞猛进,当今的计算机领域一些数据处理量很庞大的工作需要相应的硬件加速卡来协助中央处理器进行工作。在电子市场上经常会遇到一些叫做图形加速卡、声霸卡等PC硬件。这些卡可以承担大部分视频或者音频解码工作,减轻CPU的工作负担。这些硬件内置专用视频解码或者音频解码芯片,在硬件级别上实现解码,解码的速度和质量都比使用软件解码有了很大的提高,这就是硬件加速技术。超线程技术属于Intel版本的多线程技术。这种技术可以让单CPU拥有处理多线程的能力,而物理上只使用一个处理器。超线程技术为每个物理处理器设置了两个入口-AS(Architecture State,架构状态)接口,从而使操作系统等软件将其识别为两个逻辑处理器。如中国专利98811883.1,多线程数据处理器揭示了一种处理数字音频视频数据的设备,如何调用多个进程以更加合理的协同工作。这样的多线程处理器对于操作系统中的多进程处理又很大帮助,能够更加快速的完成多个进程。虽然多线程技术使计算机的处理速度更上一层楼,但是在计算机硬件速度上的突破而提高应用程序的处理速度已经很困难。而对于一些应用来说不可能在计算机主板上无限制的插接太多的硬件加速卡,这就出现了虚拟硬件技术。现在经常会用到类似虚拟光驱和虚拟软盘等虚拟设备。虚拟光驱使用虚拟的设备接口和一定的硬盘空间实现;虚拟软盘使用内存空间实现。这种技术改善了设备读写接口的性能和设备本身的性能,使读写速度有了极大的提高。如中国专利00107490.3,超大容量虚拟光盘文件系统构造方法及其系统,在该案中揭示了如何管理通过原物理光盘的路径表重新构造一个反映超大容量虚拟光盘存储系统的原理。由于Windows允许同时运行多个任务,所以出现多个进程试图同时访问同一物理设备的情况时,如果多个虚拟机(VMVirtual Machine)试图访问同一物理设备,由于DOS应用程序能够直接操纵硬件,所以必须对该设备进行虚拟化,一个虚拟化设备的虚拟设备驱动程序(VxDVirtual Device Driver)负责可靠地检测多个VM试图访问同一设备的情况,并采取仲裁的策略来解决这种冲突。VxD的工作是向应用程序代码提供一个与硬件接口的环境,为每一个客户虚拟机管理虚设备的状态,透明地仲裁多个应用程序,同时对底层硬件进行访问并管理硬件设备。VxD是一个管理例如硬件设备或者已安装软件等系统资源的32位可执行程序,使得几个应用程序可以同时使用这些资源。Windows通过使用VxD允许基于Windows的应用程序实现多任务。VxD在与Windows的连接工作中处理中断,并为需要进行I/O操作的应用程序执行I/O操作,而且不影响其他应用程序的执行。这就是所谓“虚拟化”的概念。VxD在虚拟机管理器VMM(Virtual Machine Manager)的监控下运行,而VMM实际上是一个特殊的VxD。VMM执行与系统资源有关的工作,提供虚拟机环境(能产生、调度、卸载虚拟机)、负责调度多线程占先时间片及管理虚拟内存等工作。VxD与VMM运行在其他任何虚拟机之外,VxD事实上就是实现虚拟机技术的一部分。VxD可以随VMM一起静态加载,也可以根据需要动态加载或卸载。正是由于VxD与VMM之间的紧密协作,才使得VxD具有了应用程序所不具备的能力,诸如可以不受限制地访问硬件设备、任意查看操作系统数据结构(如描述符表、页表等)、访问任何内存区域、捕获软件中断、捕获I/O端口操作和内存访问等,甚至还可以截取硬件中断。虚拟光驱的实现采用VxD技术。原理如下VxD独立访问物理设备的同时,允许一个VM访问虚拟设备,这是最复杂的虚拟化形式。如VCD(Virtual Com Device),VCD缓冲区接收串行数据并通过映射中断透明地传给相应的一个VM,VM在中断处理过程中读取串口数据寄存器,这些数据的实质是VCD缓冲区已经接收的数据。与物理设备一样,硬件中断很多时候也必须虚拟化,这种情况更为复杂。虚拟化中断实质上就是将硬件产生的中断映射到需要它的每一个VM(不管该VM是否正在运行),替代VxD进行服务。VxD的控制过程必须能够处理一个特殊的消息W32_DEVICEIOCONTROL。VMM代替调用DeviceIoControl函数的应用程序向VxD发送此消息。消息参数可确定VxD消息响应函数、输入输出缓冲区指针及缓冲区大小,并绑定在DIOCPARAMETERS结构中。通过这一接口,不仅仅可以读写设备,而且还能在应用程序和VxD之间互传指针,从而达到特殊应用的目的。虚拟光驱的处理过程如下1、动态或者静态加载虚拟光驱驱动程序2、加载ISO文件3、打开ISO文件系统读取文件头信息4、读取文件5、卸载ISO文件卸载虚拟光驱驱动程序(Windows静态加载不需要卸载)。动态链接库为现有技术中常用的一种技术,在一个应用系统中同时运行着多个进程,程序在调用动态连接库时,首先将动态连接库的函数影射到应用程序进程中,应用程序为函数维护运行现场环境。由于每一个用户进程都有自己的进程空间,即使使用动态连接库,每个进程仍然自己维护自己的运行环境,各个进程之间不可能共享数据。如果需要共享对象数据只有每一个进程分别加载。对象的操作方法被每一个进程独立加载并占有,对象的数据在依靠文件系统和操作系统保证一致性,维护文件系统和操作系统一致性也是有独立的核心进程完成的,这对于可靠性和效率都有很大的损失。比如在邮件过滤系统中,中文邮件需要对中文进行预处理。中文词典作为一个公共的部分需要被所有的邮件处理进程共享。传统上进程之间通讯的方法有共享内存、Socket、信号量等,但是这些方法一个共同的特点问题,只共享数据,不能共享数据的操作方法。不能共享数据的操作方法将造成每一个进程必须有一套完整的词典和词典的操作函数。要达到既共享字典的数据,又要共享对词典的操作方法必须采用一种新的技术手段。
技术实现思路
本专利技术为了解决以上问题,提出了一种虚拟硬件加速方法,在内存空间中模拟一个硬件设备,利用硬件的加速特性将系统中多个进程中应用程序模块的一些处理过程相同的数据交由虚拟出来的硬件进行处理,以达到加速的目的。本专利技术还提供了一种虚拟硬件加速系统,通过虚拟设备接口将系统中多个进程的应用程序模块需要统一处理的数据和控制参数传送给虚拟设备,并利用虚拟设备数据处理能力对数据进行处理。一种虚拟硬件加速方法,在系统中至少有一个运行应用程序模块的进程,在操作系统中建立虚拟设备,将需要被多个进程共享的应用程序模块处理方法、处理结果的数据处理过程作为该虚拟设备的数据处理模块,利用虚拟设备的数据处理模块对进程中应用程序模块的数据进行处理,并由虚拟设备的接口进行输入输出。具体包括如下步骤建立一个具有数据处理能力的虚拟设备的步骤;初始化虚拟设备驱动程序的步骤;将至少一个进程中应用程序需要处理的数据通过虚拟设备接口传送到虚拟设备的步骤;虚拟设备对传入的数据进行处理的步骤;输出处理结果的步骤。初始化虚拟设备驱动程序的步骤还包括初始化虚拟设备的步骤。将应用程序需要处理的数据通过虚拟设备的接口传送到虚拟设备的本文档来自技高网
...

【技术保护点】
一种虚拟硬件加速方法,在操作系统中至少有一个运行应用程序模块的进程,其特征在于,在操作系统中建立虚拟设备,将需要被多个进程共享的应用程序模块处理方法、处理结果的数据处理过程作为该虚拟设备的数据处理模块,利用虚拟设备的数据处理模块对进程中应用程序模块的数据进行处理,并由虚拟设备的接口进行输入输出。

【技术特征摘要】
1.一种虚拟硬件加速方法,在操作系统中至少有一个运行应用程序模块的进程,其特征在于,在操作系统中建立虚拟设备,将需要被多个进程共享的应用程序模块处理方法、处理结果的数据处理过程作为该虚拟设备的数据处理模块,利用虚拟设备的数据处理模块对进程中应用程序模块的数据进行处理,并由虚拟设备的接口进行输入输出。2.根据权利要求1所述的一种虚拟硬件加速方法,其特征在于包括如下步骤建立一个具有数据处理能力的虚拟设备的步骤;初始化虚拟设备驱动程序的步骤;将至少一个进程中应用程序需要处理的数据通过虚拟设备接口传送到虚拟设备的步骤;虚拟设备对传入的数据进行处理的步骤;输出处理结果的步骤。3.根据权利要求2所述的一种虚拟硬件加速方法,其特征在于,初始化虚拟设备驱动程序的步骤还包括初始化虚拟设备的步骤。4.根据权利要求3所述的一种虚拟硬件加速方法,其特征在于将应用程序需要处理的数据通过虚拟设备的接口传送到虚拟设备的步骤还包括打开设备的步骤,用于打开虚拟设备;输入控制参数的步骤,用于接收某个进程应用程序模块对虚拟设备的控制参数,并向虚拟设备输入该控制参数;数据输入输出的步骤,用于向虚拟设备输入某个进程应用程序模块待处理的数据,并向该进程应用程序模块返回处理结果;信息输出的步骤,用于虚拟设备向进程应用程序模块报告数据处理情况;关闭设备的步骤,用于关闭虚拟设备。5.根据权利要求2所述的一种虚拟硬件加速方法,其特征在于所述虚拟设备对传入的数据进行处理的步骤中还包括数据预处理步骤,对待处理的数据进行结构化预处理。6.根据权...

【专利技术属性】
技术研发人员:董孝峰
申请(专利权)人:首都信息发展股份有限公司
类型:发明
国别省市:11[中国|北京]

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

1