CN102194064A - 一种i/o监控方法 - Google Patents

一种i/o监控方法 Download PDF

Info

Publication number
CN102194064A
CN102194064A CN2010101233693A CN201010123369A CN102194064A CN 102194064 A CN102194064 A CN 102194064A CN 2010101233693 A CN2010101233693 A CN 2010101233693A CN 201010123369 A CN201010123369 A CN 201010123369A CN 102194064 A CN102194064 A CN 102194064A
Authority
CN
China
Prior art keywords
data
register
port
virtual hardware
hardware equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2010101233693A
Other languages
English (en)
Other versions
CN102194064B (zh
Inventor
宋靖
贾兵
林诗达
王淼
刘欣房
顾文锦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China the Great Wall science and technology group Limited by Share Ltd
Original Assignee
China Great Wall Computer Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Great Wall Computer Shenzhen Co Ltd filed Critical China Great Wall Computer Shenzhen Co Ltd
Priority to CN2010101233693A priority Critical patent/CN102194064B/zh
Publication of CN102194064A publication Critical patent/CN102194064A/zh
Application granted granted Critical
Publication of CN102194064B publication Critical patent/CN102194064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明适用于计算机技术领域,提供了一种I/O监控方法,所述方法包括:1.1检测对虚拟硬件设备的端口访问的类型;1.2当通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从数据寄存器读数据时,将数据返回给所述操作系统;1.3当通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输,实现在设备底层对端口的监控。

Description

一种I/O监控方法
技术领域
本发明属于计算机技术领域,尤其涉及一种I/O监控方法。
背景技术
计算机硬件I/O设备包括端口I/O和内存I/O,其中,端口I/O主要监控IN和OUT,对端口I/O操作的监控。
硬盘是计算机主要的存储媒介,硬盘设备通过并行ATA(PATA/IDE)接口或串行ATA接口(SATA)与主机中PCI总线上硬盘控制器连接,如图1所示,硬盘控制器连接作为桥设备实现ATA总线到PCI总线的转换。每个硬盘控制器一般提供两个ATA通道,每个通道可以连接两个ATA设备。处理器通过访问三组寄存器对硬盘设备进行控制,这三组寄存器分别为:命令块寄存器组、控制块寄存器组和ATA总线控制寄存器组。三组寄存器的I/O基地址由硬盘的PCI配置空间来确定,命令块寄存器组用于传输命令和参数,占用8个PIO端口,共10个可访问寄存器;控制块寄存器组占用一个PIO端口,读端口时访问的是命令块寄存器组中的状态寄存器,写端口时访问的是设备控制寄存器。
但是,现有的硬盘数据的访问存在一定的弊端,现有的监控系统设置在操作系统,由于操作系统本身的安全性不高,因此,导致对硬盘的数据读取访问也存在不安全性。
发明内容
本发明实施例的目的在于提供一种I/O监控方法,旨在解决现有的监控系统设置在操作系统之上,由于操作系统本身的安全性不高导致对硬盘数据的读取访问也存在不安全性的问题。
本发明实施例的另一目的在于提供一种I/O监控方法,所述方法包括下述步骤:
1.1检测对虚拟硬件设备的端口访问的类型,所述对虚拟硬件设备的端口访问的类型包括通过客户软件模块对虚拟硬件设备PIO端口的访问和通过指令模拟模块对虚拟硬件设备的MMIO端口的访问;
1.2当所述对虚拟硬件设备的端口访问的类型为通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从所述数据寄存器读数据时,将所述数据返回给所述操作系统;
1.3当所述对虚拟硬件设备的端口访问的类型为通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在所述虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输。
在本发明实施例中,检测对虚拟硬件设备的端口访问的类型;当通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从数据寄存器读数据时,将数据返回给所述操作系统;当通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输,在底层实现对硬盘端口的监控,保证硬盘数据的读取的安全性。
附图说明
图1是本发明实施例提供的I/O监控系统的结构框图;
图2是本发明实施例提供的I/O监控方法的实现流程图;
图3是本发明实施例提供的通过PIO方式读取硬盘数据的实现流程图;
图4是本发明实施例提供的通过DMA方式访问硬盘数据的实现流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本发明实施例中,检测对虚拟硬件设备的端口访问的类型;当通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从数据寄存器读数据时,将数据返回给所述操作系统;当通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输。
图1示出了本发明实施例提供的I/O监控系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
系统包括虚拟硬件设备、客户软件模块、内存虚拟管理模块、指令模拟模块和虚拟中断控制器,其中:
客户软件模块接收客户软件对虚拟硬件设备PIO端口的访问,控制实现虚拟处理器与运行的客户软件进行数据交互;内存虚拟管理模块控制管理与内存访问相关的操作,将客户内存物理地址空间转换为真实物理地址空间;指令模拟模块接收客户软件对虚拟硬件设备的MMIO端口的访问,解析客户软件当前运行的指令,把客户软件操作请求转发给所述虚拟硬件设备进行处理;虚拟中断控制器处理客户软件对中断控制器的访问,向客户软件注入中断请求。
在本发明实施例中,虚拟硬件设备通过客户软件模块接收客户软件对虚拟设备PIO端口的访问,通过所述指令模拟模块接收客户软件对虚拟设备MMIO端口的访问,通过内存虚拟管理模块访问客户端内存,通过虚拟中断控制器向客户注入中断请求,实现硬件设备的虚拟化。
在本发明实施例中,硬盘数据的访问方式包括两种方式,一种是PIO方式,另一种是DMA方式。对于允许客户软件直接访问的硬件设备,客户软件可以直接访问硬件设备的资源数据。
图2示出了本发明实施例提供的I/O监控方法的实现流程,其具体的步骤如下所述:
在步骤S201中,检测对虚拟硬件设备的端口访问的类型,所述对虚拟硬件设备的端口访问的类型包括通过客户软件模块对虚拟硬件设备PIO端口的访问和通过指令模拟模块对虚拟硬件设备的MMIO端口的访问。
在步骤S202中,当所述对虚拟硬件设备的端口访问的类型为通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从所述数据寄存器读数据时,将所述数据返回给所述操作系统。
在步骤S203中,当所述对虚拟硬件设备的端口访问的类型为通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在所述虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输。
图3示出了本发明实施例提供的通过PIO方式读取硬盘数据的实现流程,其具体的步骤如下所述:
在步骤S301中,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令。
在本发明实施例中,设备上电初始化,设置命令块寄存器组中状态寄存器的设备准备好位为1,表示设备可以工作,并向LBA-low\LBA-mid\LBA-high\Def-sel register设定要读写的硬盘、LBA和扇区数。
当用户操作系统有向硬盘读取数据要求时,用户操作系统向硬盘控制器的CMD寄存器发送读写操作指令,虚拟机监控器通过硬盘读写监控模块监控到硬盘控制器接收到命令块寄存器组中命令寄存器的写入指令,则读取数据。
在步骤S302中,虚拟机控制器读出真实数据,对读出的数据进行解密并设置状态寄存器。
在步骤S303中,通过硬件中断方式等待中断,并监控从数据寄存器读数据操作状态。
在本发明实施例中,通过硬件中断方式等待硬件中断,当然也可以不通过中断通知方式,设置命令块寄存器组中状态寄存器的BSY位为1,表示设备忙,进行读写数据;当数据有效时,设置状态寄存器的DRQ位,表示命令块寄存器组中的数据寄存器中存在有效数据。
在步骤S304中,当监控从数据寄存器读数据时,将所述数据返回给所述操作系统。
在本发明实施例中,当数据传输错误时,设置命令块寄存器组中状态寄存器的ERQ/CHK位,表示数据访问错误。
在本发明实施例中,虚拟机监控器监控到从数据寄存器读数据,则把数据返回给用户操作系统。当数据访问完成,设置命令块寄存器组中的状态寄存器BSY位为0,表示设备空闲,发送中断请求。当读取命令块寄存器组中状态寄存器,设备清除中断请求。当数据从命令块寄存器组中读写完成,设备清除命令块寄存器组中状态寄存器的DRQ位。
图4示出了本发明实施例提供的通过DMA方式访问硬盘数据的实现流程,其具体的步骤如下所述:
在步骤S401中,读取命令块寄存器组中状态寄存器位。
在本发明实施例中,读取状态寄存器中的BSY位,直到为0,以DMA访问方式为实施例进行说明:
写ATA总线控制寄存器组中的命令寄存器:
1.设置命令寄存器的Start/Stop位为0,停止DMA传输;
2.设置命令寄存器的Read/Write位,控制DMA数据传输的方向;
3.写清除状态寄存器的Error位和Interrup位;
4.设置PRD表地址为虚拟机监控器定义的地址,即指定的DMA数据传输的内存区域。
在步骤S402中,当所述状态寄存器中的BSY位为0且DRDY位为1时,设置命令块寄存器组中的扇区数、扇区位置寄存器、指定要访问设备的数据位置与大小。
在本发明实施例中,设置命令块寄存器组中的设备寄存器,指定访问的设备。
在步骤S403中,虚拟机监控器将将指定要访问设备的数据位置的物理地址空间转换为真实物理地址空间。
在步骤S404中,写命令块寄存器组中的命令寄存器,控制开始外部设备的数据访问。
在步骤S405中,对所述数据进行加密,并控制在所述虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输。
在步骤S406中,等待设备硬件中断的产生,读取命令块寄存器组中状态寄存器的BSY位,直到所述BSY位为0。
在步骤S407中,解密所述数据,检查命令块寄存器组中状态寄存器的ERR/CHK位,确定设置访问操作是否有错误。
在步骤S408中,写ATA总线控制寄存器组中的命令寄存器,停止ATA总线控制器DMA。
在步骤S409中,写ATA总线控制寄存器组中的状态寄存器,清除Interrup位。
上述仅为本发明的一个实施例,在此不用以限制本发明。
在本发明实施例中,检测对虚拟硬件设备的端口访问的类型;当通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从数据寄存器读数据时,将数据返回给所述操作系统;当通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输,在底层实现对硬盘端口的监控,保证硬盘数据的读取的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种I/O监控方法,其特征在于,所述方法包括下述步骤:
1.1 检测对虚拟硬件设备的端口访问的类型,所述对虚拟硬件设备的端口访问的类型包括通过客户软件模块对虚拟硬件设备PIO端口的访问和通过指令模拟模块对虚拟硬件设备的MMIO端口的访问;
1.2 当所述对虚拟硬件设备的端口访问的类型为通过客户软件模块对虚拟硬件设备PIO端口的访问时,控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令,并监控从数据寄存器读数据操作状态,当监控到从所述数据寄存器读数据时,将所述数据返回给所述操作系统;
1.3 当所述对虚拟硬件设备的端口访问的类型为通过指令模拟模块对虚拟硬件设备的MMIO端口的访问时,控制虚拟机监控器将物理地址空间转换为真实物理地址空间,在所述虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输。
2.如权利要求1所述的方法,其特征在于,所述步骤1.2具体包括下述步骤:
控制虚拟机监控器截获用户操作系统向CMD寄存器读写指令;
虚拟机控制器读出真实数据,对读出的数据进行解密并设置状态寄存器;
通过硬件中断方式等待中断,并监控从数据寄存器读数据操作状态;
当监控从数据寄存器读数据时,将所述数据返回给所述操作系统。
3.如权利要求1所述的方法,其特征在于,所述步骤1.3具体包括下述步骤:
读取命令块寄存器组中状态寄存器位;
当所述状态寄存器中的BSY位为0且DRDY位为1时,设置命令块寄存器组中的扇区数、扇区位置寄存器、指定要访问设备的数据位置与大小;
虚拟机监控器将将指定要访问设备的数据位置的物理地址空间转换为真实物理地址空间;
写命令块寄存器组中的命令寄存器,控制开始外部设备的数据访问;
对所述数据进行加密,并控制在所述虚拟硬件设备与PRD表中指定的内存之间进行DMA数据传输;
等待设备硬件中断的产生,读取命令块寄存器组中状态寄存器的BSY位,直到所述BSY位为0;
解密所述数据,检查命令块寄存器组中状态寄存器的ERR/CHK位,确定设置访问操作是否有错误。
CN2010101233693A 2010-03-12 2010-03-12 一种i/o监控方法 Active CN102194064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101233693A CN102194064B (zh) 2010-03-12 2010-03-12 一种i/o监控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101233693A CN102194064B (zh) 2010-03-12 2010-03-12 一种i/o监控方法

Publications (2)

Publication Number Publication Date
CN102194064A true CN102194064A (zh) 2011-09-21
CN102194064B CN102194064B (zh) 2013-07-10

Family

ID=44602124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101233693A Active CN102194064B (zh) 2010-03-12 2010-03-12 一种i/o监控方法

Country Status (1)

Country Link
CN (1) CN102194064B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182691B (zh) * 2014-08-22 2017-07-21 国家电网公司 数据保密方法及装置
CN107958164A (zh) * 2016-10-17 2018-04-24 大隈株式会社 控制装置
CN110795364A (zh) * 2019-10-31 2020-02-14 四川效率源信息安全技术股份有限公司 一种ide模式下访问硬盘的方法
CN114610557A (zh) * 2022-05-11 2022-06-10 宏晶微电子科技股份有限公司 设备驱动单元的测试方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076155A1 (en) * 2003-10-01 2005-04-07 Lowell David E. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
CN101042681A (zh) * 2006-03-23 2007-09-26 联想(北京)有限公司 一种数据透明保护的安全读写系统和方法
CN101425046A (zh) * 2008-10-28 2009-05-06 北京航空航天大学 分布式i/o资源虚拟化技术的实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050076155A1 (en) * 2003-10-01 2005-04-07 Lowell David E. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
CN101042681A (zh) * 2006-03-23 2007-09-26 联想(北京)有限公司 一种数据透明保护的安全读写系统和方法
CN101425046A (zh) * 2008-10-28 2009-05-06 北京航空航天大学 分布式i/o资源虚拟化技术的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐小玲: "IDE接口硬盘读写技术", 《电子科技大学学报》, vol. 31, no. 6, 31 December 2002 (2002-12-31), pages 636 - 641 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104182691B (zh) * 2014-08-22 2017-07-21 国家电网公司 数据保密方法及装置
CN107958164A (zh) * 2016-10-17 2018-04-24 大隈株式会社 控制装置
CN110795364A (zh) * 2019-10-31 2020-02-14 四川效率源信息安全技术股份有限公司 一种ide模式下访问硬盘的方法
CN114610557A (zh) * 2022-05-11 2022-06-10 宏晶微电子科技股份有限公司 设备驱动单元的测试方法及装置

Also Published As

Publication number Publication date
CN102194064B (zh) 2013-07-10

Similar Documents

Publication Publication Date Title
KR101934519B1 (ko) 저장 장치 및 그것의 데이터 전송 방법
CN108139928B (zh) 用于在cpu核之间迁移操作的方法、计算设备和可读介质
CN100590614C (zh) 一种虚拟技术下硬盘数据的保护方法和保护系统
KR20190074194A (ko) 저장 디바이스 메모리 공간에의 직접적인 호스트 액세스
US8578178B2 (en) Storage system and its management method
US10001929B2 (en) Method and systems for simulating a workload of a storage system
CN106030552A (zh) 计算机系统
JP5803502B2 (ja) 監視装置、制御方法及び制御プログラム
JP2013250950A (ja) 計算機システム、仮想化機構、及び計算機システムの制御方法
WO2013074106A1 (en) Method, apparatus and system for data deduplication
CN101452373A (zh) 输入输出处理器
CN102194064B (zh) 一种i/o监控方法
US20110282963A1 (en) Storage device and method of controlling storage device
US20120221809A1 (en) Storage apparatus and data processing method of the same
US20220075649A1 (en) Migration between cpu cores
US20140129751A1 (en) Hybrid interface to improve semiconductor memory based ssd performance
WO2012140670A2 (en) Multi-host sata controller
US8756381B2 (en) Storage subsystem and load distribution method for executing data processing using normal resources even if an abnormality occurs in part of the data processing resources that intermediate data processing between a host computer and a storage device
US8874965B2 (en) Controlling program code execution shared among a plurality of processors
CN106971110A (zh) 一种基于国产安全处理器的计算机主板架构及运行方法
US20130167206A1 (en) Storage system, method of controlling access to storage system and computer system
US11016698B2 (en) Storage system that copies write data to another storage system
US20220318040A1 (en) System and method for providing page migration
Bougioukou et al. Prototyping and performance evaluation of a dynamically adaptable block device driver for PCIe-based SSDs
KR20220125247A (ko) 일관성 및 비일관성 메모리 요청들에 대한 중재 방식

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong

Patentee after: China the Great Wall science and technology group Limited by Share Ltd

Address before: 518057 computer building of the Great Wall, Nanshan District science and Technology Park, Shenzhen, Guangdong

Patentee before: China Changcheng Computer Shenzhen Co., Ltd.