面向实时物联网的ACRN-RT体系设计
2018-12-12 16:23:24AI云资讯629
ACRN作为一个专为物联网而设计的hypervisor,需要面向广泛和多样化的应用场景,很多的应用场景都需要很高的实时性要求,甚至是“硬实时”的要求。比如目前物联网项目应用最多的工业领域,一个典型的工业应用场景包含人机交互界面系统(Windows或Linux)和实时控制系统(RT-Linux、vxWorks、zephyr等), 通过ACRN虚拟化可以实现HMI和实时控制系统的整合。实时性和功能安全是ACRN体系结构设计的两大出发点,本文以典型工业物联网应用场景介绍ACRN-RT的体系结构设计。
ACRN-RT体系结构设计的主要前提和设计原则包括:
- ACRN的不同场景应用将使用整体体系结构设计,并共用同一个code base;
- 硬件支持Cache Allocation Technology (CAT);
- 实时客户机只支持MSI-capable PCI设备的直通;
- 设计优先满足硬实时需求;
- 可扩展支持多种RTOS,包括vxWorks, rt-linux, zephyr等;
- 实时客户机的实时任务只访问实时IO设备的访问。
在面向工业场景的ACRN体系结构中,我们引入一种新型的Privileged VM,支持需要实时性要求的客户机,运行RT OS,根据实际的实时性需求,可以是软实时的RT-Linux或者是硬实时的vxWorks,之上运行具体场景的实时应用。而对于原先支持的普通客户机,我们称之为Normal VM,一般运行Windows或者图形化的Linux,作为运行人接交互系统的客户机。
ACRN-RT 工业场景体系结构
和Normal VM类似,Privileged VM仍然由SOS上的acrn-dm创建和启动,不同的是,在privileged VM启动之后,正常执行过程中不会发生vmexit,从而保证其上运行的RT OS可以达到在裸机上运行时相同的实时性能。为了达到vmexit-less的目标,privileged VM主要采用了下面几种设计, 后面会对4种设计做简单的展开介绍:
- LAPIC pass-through
- Cache isolation (CAT)
- Device Sharing & Passthrough
LAPIC pass-through
在privileged VM中,我们基于x2apic mode实现LAPIC的pass-through,禁用外部中断vmexit,并允许privileged VM直接访问除了ICR之外的所有MSR,避免中断导致的vmexit。但对于ICR,从安全的角度考虑,仍然需要trap到hypervisor来防止恶意的inter-VM IPI。
Cache isolation (CAT)
Cache Allocation Technology (CAT) 可以通过设置给不同的CPU core分配不同的cache way,做到cache资源隔离。CAT使得Last Level Cache (LLC)变成了一种支持QoS(Quality of Service)的资源,使用CAT给privileged VM分配专用的cache way,可以隔离其他CPU core对cache的使用对privileged VM访存延时的影响,从而使privileged VM的访存延时更加可预测,有助于提高privileged VM的实时性能。
除hypervisor使用CAT对LLC进行分配管理以外,ACRN还将支持CAT virtualization, 在privileged VM中支持pseudo locking, RTOS针对实时任务进行更细粒度的分配管理。
CAT and virtual CAT
Device Sharing & Passthrough
Privileged VM 对设备的支持进行了以下限制:
- 对于模拟设备,privileged VM支持只在启动阶段访问的模拟设备,比如virtual RTC。不支持在运行时需要访问的模拟设备,比如virtual UART, virtual HPET等。
- 对于半虚拟化设备, privileged VM只支持polling mode的virtio设备。除了VIRTIO_PCI_ISR和VIRTIO_PCI_QUEUE_NOTIFY以外,其他寄存器都只会在设备初始化阶段访问。对于VIRTIO_PCI_ISR,privileged mode不支持INTx中断类型的设备,而对于VIRTIO_PCI_QUEUE_NOTIFY,可以通过后端声明VRING_USED_F_NO_NOTIFY,前端使用polling mode方式工作来避免运行时的访问。
- 对于直通设备,只支持MSI/MSIx capable的PCI设备的直通。对于PCI设备CFG space的访问,因为只在设备驱动初始化阶段访问,可以使用trap&emulation的方式支持;对于BAR/PBA space, 直接pass-through 给privileged VM;对于MSI-X table,将通过trap & fixup的方式支持,同时要求设备驱动握手来避免运行时mask/unmask某个vector导致的运行时访问。
相关文章
- 途鸽科技亮相IOTE 2025国际物联网展,赋能IoT企业高质量出海
- 物联网与人工智能的中国力量,年度AGIC+IOTE盛会深圳重磅开幕!
- 云知声智能语音芯片荣膺2025物联网大会特色成果,以端侧智能引领AIoT产业迈入“芯”纪元
- 地芯科技即将亮相深圳物联网展,引领“芯”未来
- 万物智联 创见未来丨贸泽电子盛装亮相2025 IOTE深圳物联网展
- 物联网新场景酝酿:从RFID到4G定位,资产数字化管理加速崛起
- 中国移动建成全球最大的5G轻量化物联网络,开启智能穿戴终端独立通信新时代
- 截至6月末,三大运营商发展移动物联网终端用户28.31亿户
- 破解嵌入式教育困局:RT-Thread雄鹰计划携宠物机器人/物联网/AI三赛道出击
- IOTE 2025 第24届国际物联网展-深圳站
- 移为通信亮相2025 Eurobike,全面展示两轮车与物联网创新解决方案
- 万物可循,精彩不散场——2025年IOTE上海物联网展闭幕
- 智启未来|中国移动物联网AIoT平台重磅发布
- 中国移动重磅发布“AI+物联网”“卫星物联”系列产品
- 智启未来 | 中国移动物联网AIoT平台重磅发布
- 中国移动重磅发布“AI+物联网”“卫星物联网”系列产品