面向实时物联网的ACRN-RT体系设计
2018-12-12 16:23:24爱云资讯559
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导致的运行时访问。
相关文章
- 三十而立,达实智能依托物联网平台打造AI应用新生态
- [换馆定档] IOTE 2025国际物联网展·上海站携手世界移动通信大会(MWC)定档6月上海新国际博览中心!
- Arm 发布全球首款 Armv9 边缘 AI 计算平台,为物联网应用带来超高能效与AI性能
- 浪潮KaiwuDB 入选 2024 物联网产业创新产品及标杆案例双榜单
- 无源物联网技术引领下的家庭宠物行业溯源与健康管理新趋势
- Tuya物联网平台阿里云版:助力客户打造融合开放的专属物联平台
- OFweek2024 第九届物联网产业大会圆满收官!
- 信通院工业互联网与物联网研究所刘阳:推进标识解析高水平、高标准、高质量发展
- 截至11月末,我国蜂窝物联网终端用户达26.42亿户
- 2024物联网年会聚焦智慧城市,飞猫科技双奖加冕!
- 2024年中国物联网产业大会暨第21届慧聪品牌盛会----即将盛大启幕!
- 物联网国际合作新篇章:五兴科技与联通携手并进
- 三家基础电信企业发展蜂窝物联网终端用户26.25亿户
- 凌华智能推出AmITX Mini-ITX 主板,助力边缘人工智能和物联网创新
- 全球智慧物联网联盟(GIIC)第一届理事会第三次会议暨第二次会员大会圆满召开
- 中兴通讯斩获2024世界物联网博览会“新技术新应用新模式成果”大奖