概述
在虚拟器中,HVM支持两种级别的虚拟器:
HVM用户模式
HVM访客模式
本文将分别介绍两种模式下的管理与资源
HVM的用户模式
概述
除了如下的限制,HVM用户模式与Hexagon 程序员开发手册中的权限架构没有任何差异。
限制
HVM用户模式中,存在着内存地址的限制
VMM保留了用户模式下的高16MB地址用于VMM的使用(地址0xff00_0000 to 0xffff_ffff)
HVM用户对这一范围的操作,如store、load或执行这一区域的指令都会导致保护系统限制事件。
标注:这一限制同样适用于访客模式下的内存空间
HVM的访客模式
概述
HVM访客模式是HVM用户模式的一个超集
除了用户模式下所支持的标准Hexagon处理器架构,访客模式定义了虚拟指令以及虚拟事件从而在HVM上支持受保护的、多用户多任务操作系统。
虚拟指令是Hexagon指令集的延伸,它能调用HVM中无法被Hexagon处理器实现的HVM指令。
虚拟事件在用户模式与访客模式下是异步的-他们为HVM模式提供了一种可控的方式。虚拟事件可以通过异常或中断来触发。
标注:HVM虚拟指令执行时与常规处理器指令没有差别, 只不过他们通常被认为是HVM模式之间单一的指令,无法被打包至指令包中。
附录中提供了虚拟指令的编码以及语义
访客模式的功能
HVM下的访客模式有如下的功能:
事件处理
中断
异常
缓存控制
内存管理
处理器资源管理
访客模式下的事件处理
HVM可将控件异步传输从而处理事件:
句柄向量必须通过授权虚拟指令vmsetvec来进行注册
事件处理需要通过虚拟指令vmrte来进行终结
HVM模式下的中断
HVM支持将Hexagon中断作为特殊的异步事件进行调用
中断可被独立的屏蔽
中断可被整体性的使能或失能
中断通过虚拟指令vmintop,vmsetie以及vmgetie进行管理
HVM模式下的异常
HVM支持Hexagon异常作为其他类型的时间
与中断不同,异常是不可屏蔽的
HVM模式下的缓存控制
HVM支持Hexagon的缓存控制操作:
授权操作(只用于访客模式下)
使用虚拟指令vmcache进行管理
HVM模式下的内存管理
HVM可实现一个虚拟内存管理单元:
授权指令(只用于访客模式下)
自主页表
标准HVM格式下的页表
使用虚拟指令vmnewmap以及vmclrmap进行管理
HVM模式下的资源管理
HVM支持虚拟处理器以及细粒度的定时器
授权操作(只用于访客模式下)
创建并销毁并行运行的虚拟处理器实例
虚拟处理器可通过虚拟指令vmstart以及vmstop进行管理
高精度的64位定时器
定时器可通过虚拟指令vmgettime以及vmsettime进行管理
附录