面向实时物联网的ACRN-RT体系设计
2018-12-12 16:23:24AI云资讯761
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,privilegedmode不支持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 2026 第二十五届国际物联网展・深圳站展会邀请函
- 沃达丰物联网(Vodafone IoT)与现代汽车集团达成合作,助力其在中东五国部署联网汽车
- 沃达丰物联网(Vodafone IoT)与Skylo合作,提供NTN窄带物联网(NB-IoT)卫星连接服务
- 工业物联网(IIoT)场景:金仓时序数据库如何破解海量设备数据“存-查-算”一体化难题?
- 以开放生态重塑连接,力合微电子解锁物联网“智慧协同”新路径
- 卫星物联网/互联网核心应用!当虹科技发布多模态超级压缩与AI终端产品
- 萤石网络通过数据安全能力成熟度模型三级认证 筑牢物联网数据安全防线
- 商业航天引爆卫星物联网 当虹科技工业与卫星业务引关注
- 汉朔科技携手剑桥大学,共探零售物联网创新前沿
- 声网×珞博智能斩获 OFweek 2025物联网行业优秀成功应用案例奖
- 技术创新引领产业升级,惠科股份推动显示与物联网深度融合
- Counterpoint Research:Q3全球蜂窝物联网模组出货量同比增长10%
- 中兴通讯助力中国移动完成烟草行业蜂窝无源物联网试点验证
- 亿达科创创新成果入选世界物联网大会案例集
- 飞猫蝉联 WIOTC 世界物联网 500 强,今年携 AI WiFi 创新再登榜
- 我国启动卫星物联网业务商用试验丨2025中国5G+工业互联网大会









