汽车MCU虚拟化--对中断虚拟化的思索(2)

打印 上一主题 下一主题

主题 507|帖子 507|积分 1521

目录
1.引入
2.TC4xx如何实现中断虚拟化
3.小结


1.引入

其实不管内核怎么变,针对中断虚拟化无非就是上面两种,要么透传给VM,要么由Hypervisor统一分发。汽车MCU虚拟化--对中断虚拟化的思索(1)-CSDN博客
那么,作为车规MCU龙头的英飞凌在TC4xx是如何思量中断虚拟化的呢?
2.TC4xx如何实现中断虚拟化

TC4xx的内核为TC1.8,支持虚拟化功能,
每个核有三套独立硬件资源HRHV、HRA、HRB,可支持最大8个VM,其中VM0运行hypervisor,VM1运行实时虚拟机,VM2-7运行其他VM,如下图所示:

图 15


  • HRVH – Hypervisor hardware resource(VM0)
  • HRA – Real time virtual machine hardware resource (VM1)
  • HRB – Other virtual machine hardware resource (VM2-7)
上面提到,既然每个核支持最大8个VM,那么针对中断的处置惩罚也有对应8套资源,这里我们回到开头那几个问题:


  • 假设被分配到的VM此时还没有运行怎么办?
  • 假设被分配到的VM此时正在处置惩罚中断怎么办?
首先来看图语言,如下:
正常时间片为2000us,VM1占用500us,VM2占用1000us,VM3占用500us;
当VM2正在运行时,此时来了一个VM1的中断,该中断可以抢占VM2的时间,以是此时Hyperviosr需要将VM2的上下文保存,并切换到VM1,让其完成ISR处置惩罚,然后恢复现场VM2继续运行;
当VM3正在运行时,此时来了一个VM2的中断,但它不可抢占VM3的时间,以是需要VM3运行完毕后切换到VM2的ISR举行处置惩罚,固然这里也挤压了VM1的时间。
TC4xx是如何实现上述功能的呢?
在他们的计划中,每个中断SRN都可以被拓展分配给1个VM;每个VM都有本身独立的中断状态控制寄存器,包括当前VM中断系统是否使能(简称VMIE)、当前VM的优先级(简称VMCP)、Pending中断优先级(简称VMPIP);
为了实现运行VM在收到其他VM中断时可被抢占,新增了抢占阈值寄存器,简称THR,好玩的就来了。
假设当前正在运行VM1,此时来了一个VM0的中断,如果此时进来的Pending中断优先级高于VM0设置的抢占阈值,同时高于VM0的当前优先级,那么Hypervisor就需要举行上下文切换,返回到VM0处置惩罚中断,伪代码如下:
  1. if (INT.VM_coming == current VM)
  2. {
  3.         if ((VMPIP > VM_coming.VMCP) && (VM_coming.IE )
  4.         {
  5.                isr_routine();
  6.         }
  7.         else
  8.         {
  9.                 Keep INT Pending
  10.         }
  11. }
  12. else (INT.vm_coming == VM0 )
  13. {
  14.         if ((VMPIP > VM0.VMCP) && (VMPIP > VM0.THR)
  15.         {
  16.             Switch to HRHV   
  17.             isr_routine();
  18.         }
  19.         else
  20.         {
  21.             Keep INT Pending
  22.         }
  23. }
复制代码
同理,如果当前VM0、VM1、VM2同时运行,也需要实行上述步调,只是在VM2如果要抢占VM1时,需要在Hypervisor模式下首先保存VM1的上下文到HRA,然后切换到HRB,让VM2举行中断处置惩罚。
本质上,如许的机制和透传很像,只是我们可以通过Hypervisor设置每个VM的中断状态控制器寄存器、抢占阈值寄存器来实现中断实时性的控制, 比方:
当我们把阈值设置为最大时,此时谁也无法举行抢占(Trap除外),只能得到时间片走完;如果阈值设置为最小,那就是直接透传,这时候性能最优。
3.小结

上面几节内容,记录了我对于中断虚拟化的思索过程。
其着实车载范畴,特殊是座舱域,仪表和中控是肯定要跑虚拟化的,现在用的最多是QNX Hypervisor,它关于CPU虚拟化、内存虚拟化、中断虚拟化、虚拟机通信等的视线对于现在MCU上Hypervisor应该是有鉴戒意义。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

灌篮少年

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表