用于动态可重构芯片上的系统的论文_张敬尧,高尔建,杨金旺

用于动态可重构芯片上的系统的论文_张敬尧,高尔建,杨金旺

华北理工大学人工智能学院 河北 唐山 063200

摘要:由于嵌入式处理要求的提高,现代 SoC 正在通过将传统处理单元与 FPGA 结构上的自定义可重构硬件加速器(HA)相结合,成为异构计算平台。但是,在嵌入式 Linux 环境中高效管理此类 HA 涉及处理 Linux 内核源代码和创建特定于目标平台的自定义设备驱动程序,从而对开发成本、可移植性和上市时间。为了解决这个问题,我们向 LEOSoC 提出了一个快速用户空间管理器,用于动态可重新配置 SoC。使用LEOSoC不需要Linux内核的任何特定版本,也不需要为每个新的内核版本重新构建一个自定义驱动程序。LEOSoC 由一个基本硬件系统和一个软件层组成,这些软件层在来自各种供应商的 SoC 上运行。系统标识正在运行的 SoC,并相应地自动调整其通信通道。此外,LEOSoC 允许应用程序在运行时部分或完全更改 HA 的结构,而无需通过利用基础 SoC 支持动态全/部分 FPGA 重新配置来重新启动系统。该系统已在来自不同供应商的多个商用(COTS)板上进行了测试,每个电路板都运行着不同版本的Linux,因此证明了LEOSoC在定制工业设计中的真正可移植性和可用性。最后,我们使用多光谱图像处理的云检测算法来展示LEOSoC的功能和性能。

关键词:嵌入式;Linux 内核源代码;通信通道

当今嵌入式系统表现出的不断增加的计算需求促进了可重新配置异构片上系统的发展:集成传统硬 IP(嵌入式 CPU、内存控制器、通信)的设备接口),具有紧密耦合的 FPGA 结构,如图 1 所示。这种紧密集成的可重构逻辑使系统开发人员能够设计自定义硬件加速器(HA),以满足其应用程序需求。这种增加的设备复杂性是以应用程序编程工作为代价的,需要改进侧重于可用性的现有工具 [1]。管理这些复杂的 SoC 的最有效软件环境之一是嵌入式 Linux 操作系统。事实上,当今 90% 的嵌入式设备都基于 Linux 内核衍生工具。嵌入式 Linux 系统的成功主要归功于各种设备驱动程序的可用性,这些驱动程序负责管理 SoC 中的所有硬 IP。这些驱动程序由 SoC 供应商提供,并最终合并到主线 Linux 内核存储库中。事实上,Linux源代码中设备驱动程序的总空间贡献达到了内核版本4.6中代码总行的57%。相比之下,内核源代码本身只占代码贡献总量的1.2%。

用户应用程序不能直接与硬件通信,因为这需要执行特殊指令和处理中断等权限。设备驱动程序承担与硬件和导出接互的负担,应用程序和内核的其余部分可用于安全访问设备。应用程序通过 Linux /dev 目录中的节点在设备上运行,并了解有关使用 /sys 目录中节点的设备的信息。通常,出于保护原因,设备驱动程序在内核空间中运行,其缺点是依赖于内核的每个版本。

虽然 SoC 系统附带的 Linux 内核确实包括一组预编译的驱动程序,使软件开发人员能够使用 SoC 的硬外围设备快速开发可靠且随时上市的应用程序,但自定义软硬件不存在类似的内容在 FPGA 上部署的加速器。

期刊文章分类查询,尽在期刊图书馆实际上,在 FPGA 上创建自定义 HA 的应用程序开发人员还必须编写支持加速器的自定义驱动程序,并允许其应用程序轻松地与它进行接口。为每个 HA 编写自定义驱动程序非常繁琐,原因有二:(1)该驱动程序需要适应每个 SoC 平台,以考虑其特性(不同的系统拓扑、外围设备和地址)。(2)每当更新 Linux 内核时,都需要调整和重新编译驱动程序,因为操作系统仅接受动态插入可加载设备驱动程序(如果该驱动程序是专门为当前在平台上运行的同一内核版本编译的)。这是有道理的,因为设备驱动程序必须与内核的驱动程序接口匹配。但是,鉴于内核的新版本每 70 天发布一次,设备驱动程序的可移植性受到严格限制。

多年来,许多以前的工作都试图从软件的角度简化硬件加速器的管理。LinROS 使用 Linux 设备驱动程序,在运行时自动管理可重新配置 SoC 的软件和硬件。但是,它是 Linux 专用版本的扩展,它将其可移植性限制为具有与驱动程序开发相关的所有约束的其他自定义平台。ReconOS 利用成熟的多线程编程模型,扩展了支持硬件线程的主机操作系统。ReconOS 目前专用于 Xilinx SoC,不支持动态全比特流重新配置,并且不支持对不同自定义平台的可移植性。

云探测算法是卫星对地观测应用。其目的是处理多光谱图像以在图像中查找云。从太阳光谱的红色区域开始,应用一系列顺序滤波器进行分析。输出是每个像素的潜在云概率。算法滤波序列可分为两部分:基本云检测序列(CDS)和雪检测序列(SDS)。仅当图像包含雪像素时,才启用 SDS。SDS 序列可能不会实例化到硬件线程中,该线程将检测无雪区域中的云,以进一步节省 FPGA 资源和功耗。但是,由于我们的库功能,每当图像表示下雪区域时,都可以添加降雪序列。

总结:

本文介绍了LEOSoC,一个快速的,用户空间管理器,解决了管理动态可重新配置的SoC中的硬件加速器的问题,以最小的开发工作量。如动机和相关工作回顾所示,大多数 LEOSoC 功能都单独在其他解决方案中可用。然而,我们相信LEOSoC是一个独特的解决方案,它务实而有效地结合了嵌入式系统开发人员需要的一切,以最小的风险和微不足道的努力从新兴的可重构平台中获利。此外,与一些类似想法的学术体现相反,LEOSoC的设计考虑到了性能,并且不会损害硬件加速器所实现的加速。

参考文献:

[1]Versal:第一个自适应计算加速平台(ACAP),美国加利福尼亚州圣何塞,2018年。

[2]Linux内核和驱动程序开发培训,法国巴黎,2017年。

[3]S.Venkateswaran, 基本 Linux 设备驱动程序, 上马鞍河, 新泽西州, 美国:普伦蒂斯大厅, 2008.

[4]嵌入式Linux的状态,旧金山,加利福尼亚州,美国,2017年。

[5]设备树规范,剑桥,英国,2016 年。

论文作者:张敬尧,高尔建,杨金旺

论文发表刊物:《文化时代》2019年18期

论文发表时间:2020/3/18

标签:;  ;  ;  ;  ;  ;  ;  ;  

用于动态可重构芯片上的系统的论文_张敬尧,高尔建,杨金旺
下载Doc文档

猜你喜欢