-
公开(公告)号:CN102306108A
公开(公告)日:2012-01-04
申请号:CN201110217684.7
申请日:2011-08-01
Applicant: 西安交通大学
Abstract: 本发明提供了一种ARM虚拟机中基于MMU的外设访问控制的实现方法,首先对于虚拟机需要监控的外设,更改每一个上层操作系统中该外设物理寄存器地址所对应的段页表项映射,把对应页表项中的Domain位改为一个错误的值,同时在底层虚拟机的地址空间建立该外设正确的地址映射,且该底层虚拟机接管硬件的数据异常处理以截获上层操作系统可能出现的地址访问错误,当上层操作系统访问上述外设地址时,在MMU进行地址翻译时会产生Domain Fault,从而进入处理器的数据异常处理模式,该行为被虚拟机捕获后,通过读取硬件寄存器以判断是否是Domain Fault类型,如果不是,则跳回操作系统的地址空间,如果是,则底层虚拟机对操作系统的此次访问数据进行处理,并依据处理后的数据由虚拟机访问对应外设寄存器。本发明可以用来解决多个操作系统同时运行时可能存在的对同一外设的访问冲突。
-
公开(公告)号:CN102306108B
公开(公告)日:2014-04-23
申请号:CN201110217684.7
申请日:2011-08-01
Applicant: 西安交通大学
Abstract: 本发明提供了一种ARM虚拟机中基于MMU的外设访问控制的实现方法,首先对于虚拟机需要监控的外设,更改每一个上层操作系统中该外设物理寄存器地址所对应的段页表项映射,把对应页表项中的Domain位改为一个错误的值,同时在底层虚拟机的地址空间建立该外设正确的地址映射,且该底层虚拟机接管硬件的数据异常处理以截获上层操作系统可能出现的地址访问错误,当上层操作系统访问上述外设地址时,在MMU进行地址翻译时会产生Domain?Fault,从而进入处理器的数据异常处理模式,该行为被虚拟机捕获后,通过读取硬件寄存器以判断是否是Domain?Fault类型,如果不是,则跳回操作系统的地址空间,如果是,则底层虚拟机对操作系统的此次访问数据进行处理,并依据处理后的数据由虚拟机访问对应外设寄存器。本发明可以用来解决多个操作系统同时运行时可能存在的对同一外设的访问冲突。
-