发明名称 |
ARM 虚拟机中基于MMU 的外设访问控制的实现方法 |
摘要 |
本发明提供了一种ARM虚拟机中基于MMU的外设访问控制的实现方法,首先对于虚拟机需要监控的外设,更改每一个上层操作系统中该外设物理寄存器地址所对应的段页表项映射,把对应页表项中的Domain位改为一个错误的值,同时在底层虚拟机的地址空间建立该外设正确的地址映射,且该底层虚拟机接管硬件的数据异常处理以截获上层操作系统可能出现的地址访问错误,当上层操作系统访问上述外设地址时,在MMU进行地址翻译时会产生Domain Fault,从而进入处理器的数据异常处理模式,该行为被虚拟机捕获后,通过读取硬件寄存器以判断是否是Domain Fault类型,如果不是,则跳回操作系统的地址空间,如果是,则底层虚拟机对操作系统的此次访问数据进行处理,并依据处理后的数据由虚拟机访问对应外设寄存器。本发明可以用来解决多个操作系统同时运行时可能存在的对同一外设的访问冲突。 |
申请公布号 |
CN102306108B |
申请公布日期 |
2014.04.23 |
申请号 |
CN201110217684.7 |
申请日期 |
2011.08.01 |
申请人 |
西安交通大学 |
发明人 |
梅魁志;李博良;李国辉;张瑞智;苏至钒;张恩阳 |
分类号 |
G06F9/455(2006.01)I;G06F13/20(2006.01)I |
主分类号 |
G06F9/455(2006.01)I |
代理机构 |
西安通大专利代理有限责任公司 61200 |
代理人 |
徐文权 |
主权项 |
ARM虚拟机中基于MMU的外设访问控制的实现方法,其特征在于:首先对于需要监控的外设,更改每一个上层操作系统中该外设寄存器地址所在的段页表项映射,把对应页表项中的Domain位改为一个错误的值,同时在底层虚拟机的地址空间建立该外设正确的地址映射,且该底层虚拟机接管硬件的数据异常处理以截获上层操作系统可能出现的地址访问错误,当所述上层操作系统对上述外设进行访问时,出现Domain Fault,从而进入处理器的数据异常处理模式,该行为被虚拟机捕获后,转入虚拟机地址空间,然后虚拟机通过读取操作系统的处理器的DFSR寄存器判断数据异常的类型;如果不是Domain Fault类型,则跳回操作系统的地址空间,如果是Domain Fault类型,则虚拟机读取操作系统的DFAR寄存器获取操作系统试图访问的寄存器地址,然后读取数据异常模式下的LR寄存器得到数据异常发生时的指令地址和对应的数据。 |
地址 |
710049 陕西省西安市咸宁西路28号 |