“多年来,半导体集成化的不可阻挡的进步一直在模糊不同类型元器件之间的界限。通过在不同类型的 IP 上加载一种类型的元器件,传感器可以成为机器学习推理引擎,微控制器可以像应用处理器一样运行,或者非易失性存储器可以提供安全的硬件信任根。
”作者:Patrice Brossard,EMEA 垂直细分市场经理(FPGA 和 ASIC)
多年来,半导体集成化的不可阻挡的进步一直在模糊不同类型元器件之间的界限。通过在不同类型的 IP 上加载一种类型的元器件,传感器可以成为机器学习推理引擎,微控制器可以像应用处理器一样运行,或者非易失性存储器可以提供安全的硬件信任根。
2019 年末,随着两种具有几乎完全不同的属性集的系统类型(FPGA 和在 Linux® 操作环境中运行实时应用程序的处理器)的合并,这种模糊又向前迈进了一步。FPGA是一种可编程硬件结构,支持并行处理多个并发任务,而处理器是执行固定指令集架构(ISA)的硬件平台,并支持指令线程的串行处理。
2019 年推出的 Microchip PolarFire® SoC FPGA 将这两种元器件类型结合在一起,创建了一个单一的片上系统,它提供:
· 中等密度 FPGA 的预期资源,包括多达 461k 逻辑元件、多达 1,420 个 18 x 18 数学块、多达 33 Mb 的用户 SRAM、8 个完全可配置的 PLL、高达 1.6 Gbps 的高速 DDR4 接口能力,以及带有两个硬连线 PCIe Gen2 端点/根端口、以高达 12.7 Gbps 的数据速率运行的多协议收发器。它采用成熟的低功耗 SONOS 28 nm 工艺制造,可实现显著的低功耗。
· 一个多核应用处理器,包含一个四核 64 位 RISC-V 内核集群和一个单独的 64 位 RISC-V 监视器内核。所有五个内核都以高达 625 MHz 的速度运行。直接处理器 I/O 功能包括两个千兆以太网控制器、一个 USB 2.0 On-The-Go 控制器和两个 CAN 接口。
这意味着电子系统架构师现在可以选择既具有 FPGA 的低功耗、高热效率和国防级安全性,又具有快速处理器的确定性执行能力的单芯片。
这种混合架构显然需要一个系统设计工程团队来跨越 FPGA 和微处理器这两个世界。那么,将这两种类型的硬件系统集成到一个单一、可靠的最终产品设计中会遇到哪些挑战? 这种混合 SoC 平台在以下应用中提供了独特的功能和优势,例如:在极端温度环境中运行的系统,边缘的人工智能 (AI) 推理,具有安全意识的应用程序,航空航天和国防系统,通信基础设施。但是,为了获得这些优势,将这两种产品类型结合起来的困难值得接受吗?
了解混合处理器/FPGA 架构
PolarFire SoC FPGA 的核心是一个由 4+1 RISC-V 内核组成的确定性、连贯的 CPU 集群,如图 1 所示。RISC-V 是针对处理器 ISA 的免费开放功能规范,并得到了不断增长的开发专业人员、规范、软件和其他资源的生态系统的支持。
对于 PolarFire SoC 中的 CPU 集群,Microchip 与RISC-V 专家 SiFive 合作开发了自己的硬件架构。Microchip 方案的一个独特功能是可以自由关闭 CPU 分支预测,并使存储器子系统具有完全确定性。
这消除了执行时间的所有变化,同时保持了四个 RISC-V 内核提供的高处理器性能,并利用了 PolarFire FPGA 的确定性特性。
第五个内核,即监控内核,用于管理引导过程和系统配置。与应用程序处理内核不同,它不包括虚拟存储器支持。
图 1:PolarFire SoC 架构结合了独立的 FPGA 硬件和 CPU 集群(图片来源:Microchip)
所有 SoC 的存储器都具有 ECC 和单一错误检测功能,可提供非常高水平的数据完整性,这是安全关键型应用(例如航空航天系统)的强制性要求。
PolarFire SoC FPGA 的一个标志是其极低的功耗:图 2 显示了 PolarFire SoC功耗(CoreMark 处理器负载的函数)与传统 Arm® Cortex®-A 微处理器内核功耗的比较。
图 2:PolarFire SoC 和 Arm® Cortex®-A 微处理器内核的功耗比较(图片来源:Microchip)
这在电池供电系统中显然是有利的,但不仅如此:在任何系统中,低功耗都可以消除对散热器或风扇的需求,从而降低系统成本、尺寸和重量,并提高其可靠性。
存储器分区支持实时Linux操作
除了 PolarFire SoC 的中等密度 FPGA 部分,Microchip 还实施了一种架构,可提供实时确定性多处理能力。要在多核系统上运行操作系统软件,MPU 制造商可以选择以下两种类型的多处理架构之一:
· 在对称多处理(SMP)中,所有内核将共享主存储器。SMP 中的内核是同质的,操作系统平等对待每个内核。这种架构使制造商能够通过添加相同的内核来提高单核器件的性能。
· 在非对称多处理(AMP)中,操作系统对内核的处理方式不同,它们不共享存储器和外设。这使得系统设计人员能够将某些类型的任务分配给一个内核,同时让另一个内核自由运行操作系统。
典型 SMP 架构的某些特性(例如分支预测和缓存未命中)使 SoC 无法确定性地运行。执行时间不一致且无法保证,因为每个内核都会受到周期性中断的影响。
相比之下,AMP 使用户能够切出一部分高速缓存,并将其保留供实时应用程序专用。PolarFire SoC 支持 SMP 和 AMP 模式,用户可以自由选择其中一种,甚至可以在现场更新期间更改模式。
一旦在 PolarFire SoC 中配置了 AMP 模式,实时应用程序就可以在其中一个应用程序内核上运行,这是一个已关闭分支预测的实时内核,如图 3 所示。
这种硬件结构支持实时功能的完全确定性操作以及 Linux 操作系统。此外,中断服务路由 (ISR) 的执行时间是确定性的,对于在基于 Arm Cortex-A 技术的等效四核微处理器上实现的 SMP 架构来说,这是无法实现的。
图 3:在 PolarFire SoC 的 AMP 架构中,实时功能直接访问 L2 高速缓存的专用部分(图片来源:Microchip)
掌握混合FPGA/MPU系统设计
混合 FPGA/MPU SoC 提供了一种独特的能力,可以通过单个芯片满足某些类型的应用的要求。例如,基于机器学习模型同时执行本地推理、并实时控制安全关键电机运行的应用可以在 PolarFire SoC FPGA 中实现 AI 功能,并在多核处理器上实现安全关键型控制。
然而,FPGA 和 MPU 在同一芯片上的存在意味着系统设计团队必须在两个独立的设计环境中工作。两个 PolarFire SoC 工具链都输入到配置器中,该配置器生成:
· “软件”配置,用于初始化存储器映射的 C 数据结构,将在 SoftConsole® 集成开发环境 (IDE) 中使用
· “硬件”配置,即所谓的组件,将在 Libero FPGA IDE 中使用
两个 IDE 之间的交互如图 4 所示。
图 4:用于 FPGA 的 Libero IDE 和用于 MPU 的 SoftConsole IDE 之间的关系(图片来源:Microchip)
单独的工具也支持设计仿真:Renode 用于在多核处理器部分上运行的软件,ModelSim 用于 SoC 的 FPGA 部分。Microchip 还为调试将在 PolarFire SoC 上运行的复杂应用程序做好了准备。其片上调试机制通过 JTAG 接口与调试工具进行通信:
· 可以使用传统的 openOCD 调试器调试 C 代码
· FPGA 调试工具更加专业化,因为在组件中默认嵌入了调试机制,可以动态访问FPGA 矩阵的任何内部节点。专用工具 Smartdebug 使用此内部调试电路提供一种直观的方法来调试应用中基于 FPGA 的部分。
有趣的是,将应用程序移植到 RISC-V 环境的条件与在 Arm 环境中的条件相似。没有两个基于 Arm 内核的器件具有相同的存储器映射,同样地,没有两个基于 RISC-V 的系统将共享相同的存储器映射。因此,从一个 Arm 内核移植到另一个内核与从 Arm 内核移植到 RISC-V 内核的工作量原则上相同。
设计友好的操作和开发环境
因此,PolarFire SoC 提供了将可编程硬件功能和用于软件应用的高性能多核平台集成在单个芯片中的优势。这种混合架构确实需要并行使用两个开发环境,但 Microchip 非常关注为用户提供一整套高度集成的工具,并为设计团队提供高效工作的能力:
· 创建或迁移系统
· 设计仿真
· 对芯片FPGA部分的硬件资源和处理器集群上运行的应用软件进行编程
· 调试系统
分享到:
猜你喜欢