鸡米芽菜 4个月前提问 Memory ARMv8-A
0
4.3 节Memory管理及虚拟化相关问题

Virtual address space:TTBR0_EL0 TTBR1_EL1 针对app和OS有不同的TTBR;
Multiple translation regines :TTBRn_EL1 VA to IPA,then IPA to PA through VTTBR_EL2

  1. 这里的TTBRn_EL1和TTBR0_EL0/TTBR1_EL1有什么关系?
  2. 使能虚拟化的系统中 TTBRn_EL1这个n指的是什么,一共有几组寄存器?
  3. ARM V8A虚拟化的时候是否虚拟机的个数限制?
    3a. 如果没有的话,TTBRn_EL1用满了怎么办?是由EL2 level的hypervisor去动态的在DDR memory中存放?
    3b. 如果有的话,ARM V8A运行虚拟机的上限由什么决定?
  4. ARM是否支持嵌套虚拟化,即虚拟机上又跑虚拟机这种?
    4a.如果支持的话,能嵌套几层?这个嵌套过程应该是由软件直接模拟而不是硬件直接支持了对吗?
  5. 没有虚拟化的时候,IPA=PA,也就是bypass了Virtualization Table的stage2 translation过程;有没有哪种场景下是bypass了Guest OS Tables的stage1 translation过程呢?
  6. ARM的SMMU是不是就是做系统中其他设备的虚拟化的?SMMU应该也支持两级translation (VA -> IPA -> PA)过程,并且可以bypass IPA -> PA对吗?
  7. 假设page size是4KB,需要通过3级page table walk才能完成一次有效的translation;那么对于一个运行在EL2的虚拟机的一次访存,如果TLB与cache全MISS,不考虑缺页异常;那么就会导致出现(3*3+3)=12 次memory 访问才能拿到最终的数据对吗?
被浏览 :  375
收起
( 0 ) 评论
Arm Cortex-A系列处理器及其相关系统设计
高性能SoC芯片设计系列课程之Arm篇 1031
团长 4个月前回复
0

TTBRn,这里的n就只有0和1,所以TTBRn_EL1指的就是TTBR0_EL1和TTBR1_EL1

虚拟化的时候是通过VMID去管理虚拟机的,VMID是16位的,所以理论上是2^16个虚拟机,实际上如果超过了的话,软件会去扩展和调度,所以是没有限制的。

添加评论
我的答案
提交答案