Zynq MPSoC得到 Xen 管理程序支持
略。管理程序可控制所有硬件资源(CPU、存储器和 I/O),因此有可能影响所有资源的性能。就 CPU 而言,一项重要指标是使内核从运行一台虚拟机切换为运行另一台虚拟机所需的时间。该指标有时被称为上下文切换时间,但也称为分区或域切换时间,这是为了将它与操作系统在进程间的切换这个类似概念加以区分。还有一个相关的指标是抖动,该指标用来衡量切换时间的变化有多大,以及这种变化对于确定性和可预测性的影响。
实时任务设计人员还会测量可调度的最小时间片,这能约束 CPU 调度的最大频率,或者换句话说,能约束给定时间内可执行的最大虚拟机数量。当测量对存储器的影响时,管理程序内核的存储足迹由不变的基本部分以及针对每个被添加客户机(虚拟机)的增量部分组成。累积的存储足迹约束虚拟机的最大数量。在 I/O 性能方面,应对每个目标器件测量带宽和时延这两个关键数值,不过您也可根据一些通用指标(例如总的中断时延或原始通信带宽)进行估算。
很多管理程序支持两种 I/O 方案:即专用和共享。专用 I/O 一般开销较低。这种方式下,管理程序会提供一个可直接或唯一性地访问特定 I/O 器件的虚拟机,该 I/O 器件通常被称为“直通”器件。共享 I/O 开销较高,因为管理程序必须采取一些机制来实现共享方案。
开源方面
“开源”一词用来描述软件是开放的,但不一定是免费的。开源软件的源代码允许在精心制定的许可协议下修改和共享,以使软件的自由性得到保护。最为广泛认可的开源许可证协议是 GNU 通用公共许可证(有效版本为 GPLv2 和 GPLv3)、GNU 宽通用公共许可证、Apache 许可证和 BSD 许可证(有多个不同版本)。
开源不一定免费。以开源产品为主的公司与传统软件公司有所不同,通常使用不同的收入模式,例如销售产品支持、附件(例如印刷版用户手册)、培训或定制设计服务。Red Hat 是最有名的开源公司之一,他们围绕开源 Linux 操作系统打造出一家数十亿美元的企业。
将 XEN 映射到新的 ZYNQ
赛灵思的最新 Zynq UltraScale+ MPSoC 可提供一个用来运行 Xen 管理程序的强大平台。该器件具有一个四核 ARM Cortex-A53 处理器,并具有硬件虚拟化扩展和 64 位的 ARMv8 指令集。强大的硬件需要配以丰富的软件支持,以充分利用其功能和性能。开发新款 Zynq MPSoC 时,赛灵思对各行业的主要客户进行了调研,包括航空航天与军用、医疗、电信和汽车行业。结论是:大部分客户都希望新型器件提供管理程序,其中一半希望是开源管理程序。赛灵思选择 Xen 作为开源管理程序,并选择 DornerWorks 为新的 Xen Zynq 提供支持服务。
Xen 管理程序在虚拟机中托管客户操作系统,为它们提供底层机器的虚拟化视图。然后,客户操作系统及其应用程序使用虚拟化的 CPU、存储器和 I/O,同时由 Xen 管理如何将虚拟化资源映射到物理资源。
在 Xen 中,每个虚拟机都被称为一个域。为了使管理程序内核尽可能小,Xen 会给一个域赋予特权。这个系统域称为 dom0。该域启动其他客户域(每个客户域称为 domU),配置由内核强制执行的调度和存储器映射,以及管理 I/O 访问权限。为了更详细说明,我们考虑一下管理程序环境的的几个视图:启动顺序、ARM 异常级别、运行调度和资源管理。
从加电开始,可通过多种方式配置新型 Zynq MPSoC 上的启动顺序,包括哪个处理器(Cortex-A53 或 Cortex-R5)先启动。在大多数用例中,两个处理器都相当独立,因此,标准 Xen Zynq 管理程序版本只运行在 Cortex-A53 上。图 1 给出了一个典型的启动顺序。如果第一阶段引导加载程序 (FSBL)
图 1 – 典型启动顺序显示直到客户操作系统运行为止的各个阶段。
Cortex-R5 用来托管独立的非虚拟化的安全操作系统,那么它通常从简单的第一阶段引导加载程序(FSBL) 中首先启动。R5 启动后,接下来接着启动 A53,并从其自身的 FSBL 开始。第二阶段引导加载程序(例如 U-Boot),通常用来提供更多的启动功能,可能包括管理程序内核镜像的完整性检查。
- 基于Zynq的OLED驱动设计(10-04)
- 用Zynq-7000 EPP实现端到端广播(06-05)
- 采用Zynq SoC实现Power-Fingerprinting网络安全性(06-04)
- Zynq-7000的柔性直流输电桥臂控制器设计(09-12)
- 采用Zynq SoC实现Power-Fingerprinting 网络安全性(09-12)
- 在 Zynq MPSoC 上运行 DOOM 游戏(08-03)