0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

协处理器架构:一种用于快速原型开发的嵌入式系统架构

海阔天空的专栏 来源:Noah Madinger, Colorado Elect 作者:Noah Madinger, Colo 2023-10-03 22:05 次阅读

作者:Noah Madinger, Colorado Electronic Product Design (CEPD)

编者按——尽管协处理器架构因其数字处理性能和吞吐量而闻名,但也为嵌入式系统设计者提供了实现项目管理策略的机会,从而降低了开发成本并加快了上市速度。本文重点介绍分立式微控制器MCU) 和分立式现场可编程门阵列 (FPGA)的组合,展示了这种架构如何适合高效和迭代的设计过程。利用研究资料、实证结果和案例研究,探讨这种架构的好处,并提供示范性的应用。读完本文,嵌入式系统设计者将对何时以及如何实现这种多功能硬件架构有个更好的理解。

引言

嵌入式系统设计者经常会发现自己被卡在设计限制、性能期望以及进度和预算问题上。事实上,甚至现代项目管理中有一些像”快速失败”、“敏捷”、“面向未来”和“颠覆性!”这样的流行语或短语,进一步突出了这一角色的不稳定性。即使试图满足这些期望,所涉及的手法也可能是令人痛苦的,同时这些期望一直在整个市场上传播着并持续被强化。我们需要的是一种设计方法,能够实现一个不断演进的迭代过程,就像大多数嵌入式系统一样,从硬件架构开始。

协处理器架构是一种以结合了微控制器单元 (MCU) 和现场可编程门阵列 (FPGA)技术优势而著称的硬件架构,它可以为嵌入式设计者提供一个能够满足最苛刻要求的过程,而且它还可以为解决已知和未知挑战提供必要的灵活性。通过提供能够迭代调整的硬件,设计者可以展示进展,达到关键里程碑,并充分利用快速原型设计过程。

在这个过程中,有一些关键的项目里程碑,每一个里程碑都有其独特的价值,可以为开发工作带来好处。在本文中,我们将提到以下术语:用微控制器进行数字信号处理里程碑、用微控制器进行系统管理里程碑以及产品部署里程碑。

本文结束时,我们将证明灵活的硬件架构可以比一个较僵硬的方法更适合现代嵌入式系统设计。此外,这种方法可以使项目成本和产品上市速度都得到改善。这一立场将通过论据、所提供实例和案例研究获得佐证。通过观察该架构所提供设计灵活性中每个里程碑的价值,我们可以清楚地看到,自适应硬件架构是推动嵌入式系统设计发展的强大动力。

探索协处理器架构的优势:设计灵活性和高性能处理

FPGA 设计的一个常见应用是直接与高速模数转换器ADC) 连接。信号数字化后,读入 FPGA,然后将一些数字信号处理器 (DSP算法应用于该信号。最后,FPGA 再根据这些结果做出决策。

本文通篇将以这样一个应用将作为实例。此外,图 1 展示了一个通用的协处理器架构,其中 MCU 和 FPGA 通过 MCU的外部存储器接口进行连接。FPGA 被当作是一块外部静态随机存取存储器 (SRAM)。信号从 FPGA 返回 MCU,充当硬件中断线路和状态指示。这允许FPGA 向 MCU 指示关键的状态,例如通知 ADC 转换准备好了,或发生了故障,或发生了其他值得注意的事件。

1.png

从上述每个里程碑的交付成果来看,可能最能看出协处理器方法的优势。价值不仅要评估一项任务或阶段的成就,而且还评估这些成就所带来的用处。通过回答以下问题有助于评估一个里程碑的交付成果的整体价值。

随着项目依赖性和瓶颈的消除,其他团队成员的进展现在能否更迅速地继续进行下去?

里程碑成就如何让进一步的并行操作成为可能?

用微控制器进行数字信号处理的里程碑

2.png

这种硬件架构所允许的第一个开发阶段将 MCU 放在前期和中期。在同等条件下,MCU 和可执行软件的开发比 FPGA 和硬件描述语言 (HDL)的开发更节省资源和时间。因此,通过启动以 MCU为主要处理器的产品开发,算法可以更迅速地实现、测试和验证。这使得算法和逻辑错误可以在设计过程的早期被发现,也使得信号链的实质部分可以被测试和验证。

在这个最初的里程碑中,FPGA 的作用是作为一个高速数据的收集接口。它的任务是可靠地管理来自高速 ADC 的数据,提醒 MCU 有数据可用,并在 MCU的外部存储器接口上提供这些数据。虽然这个角色不包括实现基于 HDL 的 DSP 过程或其他算法,但它仍然是非常关键的。

在这个阶段进行的 FPGA开发为产品的最终成功奠定了基础,无论是在产品开发过程中还是在向市场发布时。通过只关注低级别的接口,就可以有足够的时间来测试这些基本操作。只有当 FPGA可靠、有把握地履行这一接口作用时,才能有把握地完成这一里程碑。

这个最初的里程碑的主要交付成果包括以下好处:

整个信号路径——所有的放大、衰减和转换——都将被测试和验证。

通过最初在软件 (C/C++)中实现算法,项目开发的时间和精力将有所减少;这对管理层和其他利益相关者来说具有相当大的价值,他们必须在批准未来设计阶段之前看到这个项目的可行性。

在 C/C++ 中实现算法的经验将直接转移到 HDL 实现中——通过使用“软件到 HDL”工具,例如 Xilinx HLS。

系统管理与微控制器的里程碑

1.png

由这种协处理器方法提供的第二个开发展阶段是由 DSP 过程和算法实现从 MCU 转移到 FPGA 来界定的。FPGA 仍然负责高速 ADC接口,但通过承担这些其他角色,FPGA 提供的速度和并行性得到了充分的利用。此外,与 MCU 不同,可以实现多个 DSP进程和算法通道实例,并同步运行。

基于从 MCU 的实现中获得的经验,设计者会将这种信心带入下一个里程碑。诸如前面提到的 Xilinx Vivado HLS 这样的工具提供了从可执行C/C++ 代码到可综合的 HDL 的功能转换。现在,仍然必须定义和实现时序约束、工艺参数和其他用户偏好,但核心功能被坚持下来并转化为 FPGA 架构。

对于这个里程碑,MCU 的角色就是一个系统管理者。FPGA 内的状态和控制寄存器由 MCU 监控、更新和报告。此外,MCU 还管理着用户界面(UI)。这个用户界面可以采取通过以太网Wi-Fi 连接访问网络服务器的形式,也可以是一个工业触摸屏界面,让用户在使用点进行访问。从 MCU的新的、更精细的角色中得到的关键启示是:通过将其从计算密集型的处理任务中解脱出来,现在可将 MCU 和 FPGA 运用到其最适合的任务中来。

关键的可交付成果构成了这个里程碑,并包括以下好处:

FPGA 所提供 DSP 进程和算法实现的快速、并行执行。MCU 提供了一个反应灵敏的精简 UI,并管理着产品的执行过程。

由于首先在 MCU 内进行了开发和验证,算法风险得到了缓解,这些缓解措施被转换为可综合的 HDL。像 Vivado HLS这样的工具使得这种转换变得更加容易。此外,通过集成的仿真工具,如 Vivado 设计套件,可以减轻 FPGA 特有的风险。

利益相关者不会因为将过程转移到 FPGA 上而面临重大风险。相反,他们可以看到并享受到 FPGA
的速度和并行性带来的好处。观察到明显的性能改进后,现在可以把工作重点放在为该设计的制造做好准备。

产品部署里程碑

随着计算密集型处理在 FPGA 内得到解决,MCU 就能很地处理其系统管理和用户界面角色,产品部署亦因此而准备就绪。现在,本文不主张绕过 Alpha 和Beta 版本;但是,本里程碑的重点是协处理器架构为产品部署提供的能力。

MCU 和 FPGA 都是现场可更新器件。目前已经取得了多项进展,使得 FPGA 的更新与软件更新一样容易。此外,由于 FPGA 在 MCU的可寻址存储器空间内,MCU 可以作为整个系统的存取点:同时为自已和 FPGA接收更新。更新可以在每个最终用户的基础上有条件地安排、分发和定制。最后,可以进行用户和用例日志维护并使之与特定构建实现关联。有了这些数据集,即使在产品进入现场后,性能也能继续得到完善和提高。

也许这种整体系统更新能力的优势在天基应用中得到了最充分的体现。一旦产品推出,维护和更新必须在远程进行。这可以是一个简单的逻辑条件改变,或复杂到更新一个通信调制方案。FPGA技术提供的可编程性和协处理器架构可以满足这一系列能力的全部要求,同时提供防辐射的元件选择。

这个里程碑的最后一个关键收获是逐步减少成本。成本降低、材料清单 (BOM) 的变化和其他优化也可能出现在这个里程碑。在现场部署时,可能会发现使用价格较低的MCU 或性能较差的 FPGA也能很好地运行产品。由于协处理器的存在,架构设计者不会拘泥于使用那些能力超出其应用需求的组件。此外,如果一个组件无法使用,该架构允许新的组件被整合到设计中。单芯片、片上系统(SoC) 架构,或试图处理所有产品处理的高性能 DSP 或MC,都不是这种情况。协处理器架构是能力和灵活性的良好组合,给设计者在开发阶段和向市场发布时提供了更多选择和自由。

支持调查和相关案例研究

卫星通信实例

简而言之,协处理器的价值在于帮助主处理单元减负,让任务在硬件上执行,其中可以利用加速和精简优势。这种设计选择的好处是计算速度和能力的净增加,而且正如本文所认为的那样,开发成本和开发时间也会减少。也许这些好处最引人注目的一面就在空间通信系统领域。

在《作为协处理器的 FPGA 式硬件》一书中,G. Prasad 和 N. Vasantha 详细介绍了在 FPGA中数据处理如何混合卫星通信系统的计算需求,而没有特定应用集成电路ASIC) 的高非经常性工程 (NRE)成本或硬体系架构处理器的特定应用限制。正如在用微控制器进行数字信号处理里程碑中所描述的那样,其设计从应用处理器开始,执行大部分的计算密集型算法。从这一出发点着手,他们确定了消耗中央处理单元(CPU时钟大部分周期的软件关键部分,并将这些部分迁移到 HDL实现。以下图形表示与到目前为止所介绍的高度相似,然而,他们选择将应用程序作为自己的独立块来表示,因为它可以在主机(处理器)或基于 FPGA的硬件中实现。

1.png

通过利用外设组件互连 (PCI) 接口和主机处理器的直接存储器访问 (DMA),外设性能得到了极大的提高。这主要体现在对去随机化过程的改进上。当这一过程在主机处理器的软件中进行时,系统的实时响应显然出现了瓶颈。然而,当转移到 FPGA时,我们可以看到以下好处:

去随机化过程实时执行,不会造成瓶颈

主机处理器的计算开销大大减少,现在它可以更好地发挥所需的记录角色。

整个系统的总性能就提升了。

所有这些都是在没有 ASIC 相关开销的情况下实现的,同时还享有可编程逻辑的灵活性[5]。卫星通信带来了相当大的挑战,而这种方法可以可靠地满足这些要求,并继续提供设计灵活性。

汽车信息娱乐系统实例

车车娱乐系统是挑剔的消费者看重的功能。与大多数汽车电子产品不同的是,这些设备是高度可见的,人们预期很高,希望能拥有出色的响应时间和性能。然而,设计者往往在当前的设计需求和未来功能所需的灵活性之间受到挤压。在这个例子中,我们将使用信号处理和无线通信的实现需求来强调协处理器硬件架构的优势。

所使用的主要汽车娱乐系统架构之一是由 Delphi Delco 电子系统公司发布的。该架构采用了一个 SH-4 MCU 和一个配套的 ASIC,即日立的HD64404 Amanda 外设。这个架构满足了汽车市场 75% 以上的基本娱乐功能;但它缺乏解决视频处理应用和无线通信的能力。通过在这个现有的架构中加入FPGA,就可以为这个已经存在的设计增加进一步的灵活性和能力。

1.png

图 5 的架构同时适用于视频处理和无线通信管理。通过将 DSP 功能推给 FPGA,Amanda处理器可以起到系统管理的作用,并被释放出来以实现无线通信堆栈。由于 Amanda 和 FPGA都可以访问外部存储器,数据可以在系统的处理器和组件之间快速交换。

1.png

图 6 中的第二个信息娱乐系统突现了 FPGA 的能力,同时解决了高速模拟数据的传入和视频应用所需的压缩和编码处理。事实上,所有这些功能都可以推给FPGA,通过使用并行处理,这些都可以实时处理。

通过在现有的硬件架构中加入 FPGA,现有硬件的成熟性能就可以获得灵活性和未来适用性。即使在现有系统中,协处理器架构也为设计者提供了选择,否则将无法使用[6]。

快速原型开发优势

快速原型开发过程的核心是就要覆盖大量产品开发领域,因此要能并行执行任务、快速识别“错误”和设计问题以及验证数据和信号路径,特别是项目关键路径内的数据和信号路径。然而,要使这一过程真正产生精简、高效的结果,必须在所需的项目领域有足够的专业知识。

传统上,这意味着必须有一个硬件工程师,一个嵌入式软件或 DSP 工程师,以及一个 HDL工程师。现在,有很多跨学科的专业人员,他们可能能够满足多种角色;然而在协调这些工作时,仍然涉及大量的项目开销。

在《用于小波协处理器的基于 FPGA 的快速原型开发平台》一文中,作者提倡使用协处理器架构可以让一个 DSP工程师高效地完成所有这些角色。对于这项研究,该团队开始在 MATLABSimulink 工具中设计和仿真所需的 DSP 功能。这有两个主要功能,即:1)通过仿真验证所需的性能;2) 作为基准,用以比较和参考未来的设计选择。

仿真之后,关键功能被确定下来,并被划分为不同的核心——这些是可以在 FPGA内合成的软核组件和处理器。这项工作中最重要的一步是定义这些核心和组件之间的接口,并将数据交换性能与期望的、仿真的性能进行比较。这一设计过程与 Xilinx的嵌入式系统设计流程紧密结合,具体汇总见下图 7。

1.png

通过将系统划分为可整合的内核,DSP 工程师可以专注于信号处理链中最关键的方面。她/他不需要成为硬件或 HDL 方面的专家,就可以在 FPGA内修改、路由或实现不同的软核处理器或组件。因此,只要设计者了解接口和数据的格式,他们就能完全控制信号路径,并能完善系统的性能。

实证结果——离散余弦变换案例研究

实证结果不仅证实了协处理器架构为嵌入式系统设计者提供的灵活性,而且还展示了现代 FPGA工具的性能增强选项。像下面提到的增强功能,对于其他硬件架构来说,可能无法使用或影响较小。离散余弦变换 (DCT) 被选为计算密集型算法,其从基于 C的实现到基于 HDL 的实现的进展是这些结果的核心。选择 DCT 是因为这种算法可用于数字信号处理的模式识别和筛选[8]。该实证结果基于一项实验室工作,由作者及其同事完成,获得了 2020-2021 年的 Xilinx 联盟合作伙伴认证

在这项工作中,使用了以下工具和设备:

Vivado HLS 2019 版

用于评估和仿真的设备是 xczu7ev-ffvc1156-2-e

从基于 C 语言的实现开始,DCT 算法接受两个 16 位数的数组;数组 “a” 是 DCT 的输入数组,数组 “b” 是 DCT的输出数组。因此,数据宽度 (DW) 被定义为 16,而数组内的元素数 (N) 为1024/DW,即 64。最后,DCT 矩阵的大小 (DCT_SIZE)被置为 8,这意味着使用了一个 8×8 的矩阵。

在本文前提之下,基于 C语言的算法实现允许设计者快速开发和验证算法的功能。尽管这是一个重要的考虑因素,但这种验证将功能置于了比执行时间更高的权重。这种加权是允许的,因为该算法的最终实现将在FPGA 中进行,硬件加速、循环展开和其他技术都是现成的。

一旦 DCT 代码在 Vivado HLS 工具中作为一个项目被创建,下一步就是开始为 FPGA 的实现进行设计整合。在接下来的步骤中,将算法的执行从MCU 转移到 FPGA 的一些最具影响力的好处变得更加明显——作为参考,这一步相当于上面讨论的微控制器的系统管理里程碑。

现代 FPGA 工具允许进行一系列的优化和增强,从而极大地提高复杂算法的性能。在分析结果之前,有一些重要的术语需要牢记。

延迟 – 执行循环的所有迭代所需的时钟周期数 [10] 。

间隔 – 循环的下一次迭代开始处理数据之前的时钟周期数 [11]。

BRAM – 块状随机访问存储器

DSP48E – 用于 UltraScale 架构的数字信号处理片断

FF – 触发器

LUT – 查找表

URAM – 统一随机访问存储器(可由单个晶体管组成)。

1.png

默认

默认的优化设置来自于将基于 C 语言的算法转换为可综合 HDL 的未改变结果。没有启用任何优化,这可以作为性能参考,以更好地了解其他优化。

流水线内循环

PIPELINE 指令指示 Vivado HLS展开内循环,这样新的数据就可以开始被处理,而现有的数据仍在流水线中。因此,新数据不必等待现有数据完成后再开始处理。

流水线外循环

通过对外循环应用 PIPELINE指令,外循环的操作现在被流水线化了。但内循环的操作现在是同步进行的。通过将其直接应用于外循环,延迟和间隔时间都减少了一半。

阵列划分

这条指令将循环的内容映射到阵列中,从而将所有的存储器访问扁平化到这些阵列中的单个元素。这样做,会消耗更多的RAM,但同样的,这个算法的执行时间也会减少一半。

数据流

这条指令允许设计者指定每个输入读数之间的目标时钟周期数。这条指令只支持顶层函数。只有暴露在这个级别的循环和函数才能从这个指令中受益。

内联

INLINE 指令平坦了所有循环,包括内循环和外循环。行和列进程现在都可以并发执行。所需的时钟周期的数量被保持在最低水平,即使这样也会消耗更多的 FPGA
资源。

结语

协处理器的硬件架构为嵌入式设计者提供了一个高性能的平台,在整个开发过程中以及在产品发布后都能保持其设计灵活性。通过先在 C 或 C++中验证算法,进程、数据和信号路径以及关键功能都可以在相对较短的时间内得到验证。然后,通过将处理器密集型算法转换到协处理器 FPGA中,设计者可以享受到硬件加速和更加模块化设计的好处。

如果零件过时或需要优化,相同的架构可以允许这些变化。新的 MCU 和新的 FPGA 可以安装到设计中,而所有的接口都可以保持相对不变。此外,由于 MCU和 FPGA 都是可现场更新的,因此用户的特定改变和优化可以在现场和远程应用。

最后,这种架构将 MCU 的开发速度和可用性与 FPGA的性能和可扩展性融合到了一起。由于每个开发步骤都有优化和性能提升,协处理器架构可以满足最具挑战性的需求——无论是今天的设计还是以后的设计。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1626

    文章

    21666

    浏览量

    601836
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16991

    浏览量

    350310
  • 嵌入式
    +关注

    关注

    5068

    文章

    19017

    浏览量

    303260
  • 协处理器
    +关注

    关注

    0

    文章

    75

    浏览量

    18155
收藏 人收藏

    评论

    相关推荐

    一种用于快速原型开发嵌入式系统架构

    本文重点介绍分立式微控制 (MCU) 和分立式现场可编程门阵列 (FPGA) 的组合,展示了这种架构如何适合高效和迭代的设计过程。利用研究资料、实证结果和案例研究,探讨这种架构的好处,并提供示范性的应用。读完本文,
    发表于 08-02 08:03 589次阅读
    <b class='flag-5'>一种</b><b class='flag-5'>用于</b><b class='flag-5'>快速</b><b class='flag-5'>原型</b><b class='flag-5'>开发</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>系统</b><b class='flag-5'>架构</b>

    采用可配置处理器实现嵌入式系统ESL设计

    中测试他们的嵌入式软件。但现今提供的商业ESL工具没有一种可以在更早的阶段帮助工程师决定系统的基础架构,例如决定整个系统需要使用
    发表于 07-18 06:40

    多核处理器SoC设计怎么才能满足嵌入式系统应用?

    随着嵌入式处理需求的快速增长,系统架构正朝着多处理器设计的方向发展,以解决单
    发表于 08-01 07:53

    基于ARm架构嵌入式微处理器

    目录第讲 简单介绍第二讲 嵌入式系统结构第三讲 基于ARm架构嵌入式微处理器​第四讲 SOC第五讲
    发表于 10-27 07:50

    嵌入式架构有多重要

    原有的代码。接下来嵌入式ARM便和大家分享下,嵌入式架构那些事儿……01嵌入式系统的基本
    发表于 10-27 08:15

    怎样去开发一种嵌入式linux系统

    关于嵌入式系统  平时大家说的嵌入式其实范围比较广的,是一种软硬件可裁剪,以应用为中心开发的专用系统
    发表于 11-04 09:09

    怎样去设计一种基于嵌入式架构的指纹识别系统

    基于嵌入式架构的指纹识别系统是由哪些部分组成的?怎样去设计一种基于嵌入式架构的指纹识别
    发表于 11-11 06:03

    谈谈嵌入式处理器的体系架构

    当我们谈及嵌入式处理器的体系架构时,般都是想到Intel的X86架构和ARM公司的ARM架构
    发表于 12-15 06:59

    一种基于ARM处理器嵌入式系统开发方案

    嵌入式系统硬件平台般包括处理器及外围设备两部分。目前应用于嵌入式
    发表于 04-18 10:30

    文带你了解嵌入式领域三处理器通用的架构

    嵌入式领域,存在着三处理器通用的架构,PowerPC、X86、ARM,本文将对这三架构进行
    发表于 03-05 17:39 5424次阅读

    嵌入式处理器有哪些种类 目前主流的嵌入式处理器架构有哪些

     嵌入式处理器是专门设计用于嵌入式系统的微处理器,它们通常具有低功耗、小尺寸和多种集成功能的特点
    发表于 07-24 14:57 9582次阅读

    dsp是嵌入式微处理器一种设备吗 ARM嵌入式微处理器有何特点?

    DSP(Digital Signal Processor)不是一种嵌入式微处理器的设备。DSP是一种专门用于数字信号处理的微
    的头像 发表于 04-21 09:37 910次阅读

    嵌入式微处理器有哪两架构?区别是什么?

    嵌入式微处理器一种专门设计用于控制嵌入式系统的微处理器。它集成了
    的头像 发表于 04-21 09:41 572次阅读

    嵌入式微处理器有哪两架构?区别是什么?

    嵌入式微处理器一种专门用于嵌入式系统中的微处理器。它具有高度集成、低功耗、低成本和高性能等特点
    的头像 发表于 05-04 11:16 914次阅读

    嵌入式微处理器架构可分为

    的性能、功耗和可靠性都有重要影响。 目前,主流的嵌入式微处理器架构主要有ARM架构、x86架构和MIPS架构。下面将对这三
    的头像 发表于 04-21 14:39 1144次阅读