网站抓取QQ获取系统,wordpress安装到虚机,制作公司网页代码,怎么做网站维护bit字段描述63:60TWEDELTWE延迟。当HCR_EL2.TWEDEn为1#xff0c;由HCR_EL2引起的WFE*陷阱的最小延迟为2的(TWEDEL 8)次方#xff0c;单位周期。59TWEDEnTWE推迟启用。让由HCR EL2.TWE引起的WFE*指令延迟陷入可配置。0#xff1a;陷入的延迟是已经定义的#xff1b;1…
bit字段描述63:60TWEDELTWE延迟。当HCR_EL2.TWEDEn为1由HCR_EL2引起的WFE*陷阱的最小延迟为2的(TWEDEL 8)次方单位周期。59TWEDEnTWE推迟启用。让由HCR EL2.TWE引起的WFE*指令延迟陷入可配置。0陷入的延迟是已经定义的1陷入的延迟至少是SCR_EL3.TWEDEL中定义的周期数。58TID5陷入ID组5。0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器5会被捕获到EL2。57DCT默认的可缓存性标记。当HCR_EL2.DC实际上控制的是阶段1翻译被视为标记还是或未标记的。0未标记的1标记的。56ATA分配标签访问控制在EL1和EL0对分配标签的访问。0避免对分配标签的访问访问GCR_EL1, RGSR_EL1, TFSR_EL1, TFSR_EL2 或者TFSRE0_EL1会出现未定义指令异常并且陷入EL21允许对分配标签的访问。55TTLBOS操作于外层共享域的TLB维护陷入指令。当EL2在当前的Security状态中启用时在EL1执行TLB*指令会导致0任何指令不会被捕获。1指定指令的执行被陷入在EL2中。54TTLBIS操作于内部共享域的TLB维护陷入指令。当EL2在当前的Security状态中启用时在EL1执行TLB*指令会导致0任何指令不会被捕获。1指定指令的执行被陷入在EL2中。53EnSCXT启用对SCXTNUM_EL1和SCXTNUM_EL0寄存器的访问。0当HCR_EL2.E2H为0或者HCR_EL2.TGE为0则访问寄存器会导致未定义指令异常并且陷入EL21访问寄存器不会导致陷入EL2。52TOCU操作到统一点的缓存维护陷入指令。当EL2在当前安全状态下启用时将这些缓存维护指令的执行捕捉到EL2。0任何指令不会被捕获1指定指令的执行会被困在EL2。51AMVOFFEN活动监视器虚拟偏移使能。0活动监视器的虚拟化被禁用。间接读取虚拟偏移寄存器是零1启用了活动监视器的虚拟化。50TICABICIALLUIS/IC IALLUIS缓存维护陷入指令。当EL2在当前安全状态下启用时在EL1到EL2处捕捉那些缓存维护指令的执行。0任何指令不会被捕获。1指定指令的执行被陷入在EL2中。49TID4陷入ID组4。 0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器4会被捕获到EL2。48GPF控制颗粒保护故障在EL0、EL1的上报。0异常从EL0、EL1不会路由到EL21异常从EL0、EL1路由到EL2并报告为颗粒保护检查异常。47FIEN故障注入启用。在EL1访问寄存器ERXPFGCDN_EL1, ERXPFGCTL_EL1和ERXPFGF_EL1的结果。0从EL1访问指定的寄存器会产生一个到EL2的Trap异常1任何指令不会被被捕获。46FWB强迫写回。定义在2阶段转换机制的组合缓存属性。45NV2嵌套的虚拟化。改变HCR_EL2的行为。(NV1, NV)为硬件提供一种能够将系统寄存器的读写转换为内存的读写的机制。0该位对HCR EL2的行为没有影响1如果HCR_EL2{NV1, NV} 开启了则将寄存器的读/写转换为对内存的读/写和将EL2寄存器重定向到EL1寄存器。44AT在ARMv8.3支持。地址转换。当EL2在当前安全状态下启用时在EL1执行AT S1E0R, AT S1E0W, AT S1E1R, AT S1E1W, AT S1E1RP, AT S1E1WP地址转换指令是否会被捕获到EL2。0不会1会。43NV1嵌套的虚拟化。0没有作用1如果HCR_EL2.NV2为1 从EL1到实现的EL2寄存器的访问被转换为load和store如果HCR_EL2.NV2为0EL1访问VBAR_EL1, ELR_EL1, SPSR_EL1会陷入EL2。42NV嵌套的虚拟化。0没有作用1如果HCR_EL2.NV2为0 EL1对指定寄存器的访问或指定指令的执行被捕获到EL2如果HCR_EL2.NV2为1重新定义EL1的寄存器使用SPSR_EL2, ELR_EL2, ESR_EL2,和FAR_EL2代替SPSR_EL1, ELR_EL1, ESR_EL1和FAR_EL1。41API控制与指针身份验证相关的下列指令的使用。0任何与指针验证相关的指令的使用都会被捕获到EL21指令不会被捕获。40APK当APK被设置为0当EL2在当前安全状态下启用时对保存指针身份验证“键”值的寄存器的访问被捕获到EL2。39TME允许在EL0、EL1上访问TSTART、TCOMMIT、TTEST和TCANCEL指令。 0不允许定义为未定义指令1允许。38MIOCNCE使能用于EL1和EL0的翻译机制的不匹配的内部/外部缓存的非一致性。对于EL10翻译机制对于使用共享性和缓存性的通用定义的内存位置的允许访问如果这些访问的内部缓存属性与外部缓存属性不同0那么一定不会失去一致性1可能会失去一致性。37TEA路由同步外部中止异常到EL2。0异常不会从EL0和EL1路由到EL21当前Security状态下启用时如果EL0和EL1的同步外部中止异常没有路由到EL3则路由到EL2。36TERR陷入错误记录访问。从EL1陷入到EL2读取的RAS错误寄存器。 0任何指令不会被捕获。1当EL2在当前安全状态下被启用时访问EL1指定的寄存器会生成一个到EL2的陷入异常。35TLOR陷入LOR寄存器。非安全的EL1访问LORSA_EL1, LOREA_EL1, LORN_EL1, LORC_EL1, 和 LORID_EL1。 0不产生异常1被捕获到EL2。34E2HEL2主机。启用主机操作系统在EL2中运行。0在EL2上支持主机操作系统的设施被禁用。1在EL2上支33ID禁用阶段2指令访问缓存。0这种控制对EL1和EL0翻译体系的第二阶段没有影响1强制所有对普通内存的指令访问的第二阶段转换为不可缓存。32CD禁用阶段2数据访问缓存。0这种控制对EL1和EL0翻译体系的第二阶段没有影响1强制所有对普通内存的指令访问的第二阶段转换为不可缓存。31RW对较低异常级别的执行状态控制。0低层的特权等级全部都是AArch321低一层的特权等级是 AArch64。30TRVM陷入读取虚拟内存控制。从EL陷入到EL2读取虚拟内存控制寄存器。0任何指令不会被捕获1当EL2在当前安全状态下启用时对指定虚拟内存控件的EL1读访问被捕获到EL2。29HCDHVC指令禁用。0在EL2和EL1上启用HVC指令执行1HVC指令在EL2和EL1是未定义的任何产生的异常都被带到执行HVC指令的异常级别。28TDZDC ZVA指令陷入。当EL2在当前安全状态下启用时在EL0和EL1执行DC ZVA指令将陷入EL2。0不会陷入1当EL2在当前安全状态下启用时任何试图执行该指令会被捕获到EL2。27TGE陷入一般异常。0对EL0的执行没有影响1当EL2在当前安全状态下未启用时对EL0没有影响。当EL2在当前安全状态下启用时所有异常路由到EL2。26TVM虚拟内存控制陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时对指定的EL1虚拟内存控制寄存器的EL1写访问被捕获到EL2。25TTLBTLB维护指令陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1执行指定的TLB维护指令会被捕获到EL2。24TPU缓存维护指令陷入操作到统一点。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1执行指定的缓存维护指令会被捕获到EL2。23TPCP数据或统一的缓存维护指令陷入操作到一致性或持久性点。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1执行指定的缓存维护指令会被捕获到EL2。22TSW数据或通过“设置/方式”操作的统一缓存维护指令陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1执行指定的缓存维护指令会被捕获到EL2。21TACR辅助控制寄存器陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1访问辅助控制寄存器会被捕获到EL2。20TIDCP实现定义的功能陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时EL1访问或执行保留的指定编码实现定义功能被捕获到EL2。19TSCSMC指令陷入。0任何指令不会被捕获1当EL2在当前安全状态下启用时在EL1执行SMC指令会被捕获到EL2。18TID3陷入ID组3。0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器3会被捕获到EL2。17TID2陷入ID组2。0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器2会被捕获到EL2。16TID1陷入ID组1。0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器1会被捕获到EL2。15TID0陷入ID组0。0:任何指令不会被捕获1在EL1和EL0访问ID组寄存器0会被捕获到EL2。14TWE当被设置为1在任何低于EL2的异常级别上执行WFE指令的任何尝试都会被捕获到EL2。13TWI当被设置为1在任何低于EL2的异常级别上执行WFI指令的任何尝试都会被捕获到EL2。12DC默认的缓存能力。0对EL1和EL0翻译策略没有影响1EL1和El0翻译阶段1产生的记忆类型为非正常可共享的内部写回式读分配写分配外部写回式读分配写分配。11:10BSU屏障共享升级。该字段确定从EL1或EL0执行的指令屏障的最小可共享域。00不共享01内核共享10外部共享11全部共享。9FB强制广播。0:任何指令不会被捕获1在EL1执行指定的指令之一时该指令会在内部共享域中广播。8VSE虚拟SError中断。0不会使一个虚拟的SError中断挂起1使一个虚拟的SError中断挂起。7VI虚拟IRQ中断。0不会使一个虚拟的IRQ中断挂起1使一个虚拟的IRQ中断挂起。6VF虚拟FIQ中断。0不会使一个虚拟的FIQ中断挂起1使一个虚拟的FIQ中断挂起。5AMO物理SError中断路由。当在EL2以下的Exception级别执行时并且EL2在当前的Security状态下被启用。0如果HCR_EL2.TGE为0路由到EL2如果HCR_EL2.TGE为1不执行。1路由到EL2如果HCR_EL2.TGE为1启用虚拟SError中断。4IMO物理IRQ中断路由。当在EL2以下的Exception级别执行时并且EL2在当前的Security状态下被启用。0如果HCR_EL2.TGE为0路由到EL2如果HCR_EL2.TGE为1不执行。1路由到EL2如果HCR_EL2.TGE为1启用虚拟IRQ中断。3FMO物理FIQ中断路由。当在EL2以下的Exception级别执行时并且EL2在当前的Security状态下被启用。0如果HCR_EL2.TGE为0路由到EL2如果HCR_EL2.TGE为1不执行。1路由到EL2如果HCR_EL2.TGE为1启用虚拟FIQ中断。2PTW受保护的表遍历。在EL1EL0转换体系中作为第一阶段转换表遍历的一部分的转换表访问要服从第二阶段转换。来自两个转换阶段的内存类型属性的组合意味着可以访问某种类型的Device内存。0转换表的遍历发生在普通非缓存内存中。这意味着它可以被推测1内存访问产生二级权限故障。1SWIO设置/失效指令覆盖。0通过设置/失效指令对数据缓存无效的操作没有影响1通过设置/失效指令使数据失效达到清理数据缓存的目的。0VM虚拟化支持。当EL2在当前安全状态下启用时为EL1和EL0转换机制启用阶段2地址转换。0禁用1启用。 一、VHEVirtualization Host Extensions模式 引入VHE模式背景 在没有引入VHE模式下type2的hypervisorhost的kernel运行在el1而虚拟化拓展部分运行在el2上分层设计在系统运行时会造成很多不必要的上下文切换带来不少设计上的复杂性和性能开销。为了解决这个问题虚拟化主机扩展 Virtualization Host Extensions, VHE应运而生。该特性由Armv8.1-A引入可以让寄主操作系统的内核部分直接运行在EL2上。 当HCR_EL2.H2E 1的时候此时就开启了VHE模式在此模式下host os在访问EL1层的寄存器是被重定向到EL2层面访问到el2的寄存器这样就可以使得host kernel可以不做任何修改。此时只需要HCR_EL2.H2E 1这一比特被置位即vhe使能那Host OS对所有EL1寄存器的访问操作都被硬件转换为对相应EL2寄存器的访问。 1、vhe本质就是重定向寄存器访问 运行在EL2的内核仍然会尝试访问*_EL1的寄存器。为了运行无需修改的内核我们需要将EL1的寄存器重定向到EL2。当你设置E2H后这一切就会由硬件实现。 但是重定向又会带来一个新的问题那就是Hypervisor完全可能在某些情况下例如当执行任务切换时 访问真正EL1的寄存器。 为了解决这个问题Arm架构引入了一种新的别名机制以_EL12或_EL02结尾。如下例就可以在E2H1的EL2访问TTBR0_EL12 其实就是访问的是真实的TTBR0_EL1。 2、TGE位设置是为了判断归属
当VHE使能时TGE其实就是标志当前占用物理cpu的是线程host还是vcpuguest。 在host线程占用物理cpu时此位置需要被置为1表明目前是由host运行因此中断 异常这些应该被路由到EL2而且页表这些也应该用host的。这也就是为什么在host app里调用svc为什么能够直接到EL2而不是到EL1上。 在vcpu占用物理cpu时此位置需要被置为0表明目前是由gust运行因此中断 异常这些应该被路由到EL1交由gust直接处理这里还不确定需不需要在EL2中转而且页表这些也应该用guest的。