微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Zynq MPSoC得到 Xen 管理程序支持

Zynq MPSoC得到 Xen 管理程序支持

时间:01-27 来源:电子产品世界 点击:

在这个阶段,Xen 管理程序内核被调用。内核启动包括检查有效的 dom0。接下来,dom0 检查客户域的有效镜像,然后在一个或多个内核上启动和调度它们。大多数情况下,dom0 会继续运行,以便监控系统,提供对共享资源的管理,并处理特性系统故障。管理程序内核在每个域上下文切换期间运行,也通过超级调用来调用。超级调用与系统调用类似,后者允许应用程序调用操作系统服务,而这里则是调用管理程序服务。默认方式下,dom0 可进行任何管理程序调用,而 domU 只能做特定的管理程序调用。不过,开发人员可以使用 Xen 模块 XSM-FLASK 对超级调用访问实现更为精细的控制。处理器硬件强制执行由 ARM 异常级别模型定义的分类特权。Cortex-A53 使用 ARMv8 架构,该架构定义四个异常级别,如图 2 所示,图中最底部的级别具有最高特权,随着级别上升特权降低。完整访问特权在异常级别 EL3 赋予,用于实现 ARM Trust Zone 监控。管理程序在 EL2 级上运行,以实现客户域的虚拟化。在每个被托管的虚拟机中,托管的操作系统运行在 EL1 级上。最后,用户应用程序在EL0 级以最低权限运行。当变为权限较低的异常级别时,虚拟机寄存器必须具有相同宽度或者更窄。这意味着你可以使用 64 位管理程序和 32 位的客户机,但不能颠倒。Xen Zynq 使用 ARMv8 架构的 AArch64 执行模型,从而支持 64 位或 32 位客户机。

特权域 dom0 建立调度,以决定各域何时运行以及在哪个或哪些内核上运行。然后,管理程序内核执行配置后的调度计划。为达到某种类型的确定性,应配置一个调度计划,使客户域在它的时隙内对机器具有唯一访问权。图 3 给出的实例中,客户机 1(与 dom0 一起)在单个时隙内运行在多个内核上,而客户机 2 和 3 则没有这个限制,因此可以在其他时隙内以混合匹配的负载平衡计划对它们进行调度。

管理程序管理所有机器资源。CPU 内核主要进行分时管理,如上所述。

存储器不是通过分时进行共享,而是分空间共享,把存储器的一部分分配给每个客户域。管理程序使用硬件存储器管理单元 (MMU) 来实施存储器布局。I/O 的管理差异很大,取决于器件的类型。有些 I/O 器件可被直接映射到 Cortex-A53,而其他 I/O 器件必须配置后才能连通 FPGA可编程架构。

  

  图 2 – ARM 异常级别图显示了映射到 EL2 的管理程序。

客户机对 I/O 器件的访问由 dom0 进行配置和管理,利用对 Xen 内核进行合适的超级调用来建立指向器件的存储器映射。Dom0 可授权客户域访问所需的特定 I/O 器件,也可能自己管理共享 I/O,起到网关的作用以实现共享机制。Xen 中的域间通信(包括 I/O)通常使用 Xen 事件通道进行通知,使用共享存储器来传送数据。Xen 共享 I/O 器件驱动程序采用分离驱动模式,客户域中的上一半驱动程序将 API 提供至客户操作系统,将用来往返传送数据的功能提供至dom0。然后,dom0 中的下一半驱动程序执行器件的实际 I/O 操作。

建立对 XEN ZYNQ 的支持

赛灵思针对备受期待的下一代 Zynq SoC 器件搜集的客户反馈显示,很多客户期望有强大的管理程序支持,其中一半想要开源选择。这种支持不能停留在简单的服务台模式上,而是要具备更多支持选项,以帮助设计可平衡各种需求(例如高带宽、低延迟、低功耗、高可靠性)的嵌入式系统,而且能连接到嵌入式环境中的多种系统设备。赛灵思之所以选择 DornerWorks,是因为我们具备 Xen 管理程序方面的专业技术以及嵌入式工程设计经验,而且我们是赛灵思联盟计划的高级成员,能为客户提供更多支持选择,为他们系统中的 FPGA 设计部分提供支持。

DornerWorks 与赛灵思协作完成了 Xen 与新的 Zynq MPSoC 的端口,然后通过认证和验证测试来确认正确性。我们的测试不仅涵盖 Xen 管理程序内核在硬件上正确运行,还包括特权域 dom0(运行 Linux)以及具有多种客户操作系统支持的客户域。我们将这个软件包命名为

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top