EDN China > 其它文章 > 嵌入式系统 > 参考设计 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

充分发挥异构多内核设计的优势

Bruce Lee?? 德州仪器软件与开发工具工程师?? 2006年08月01日 ?? 收藏0

  从消费类通信产品到多媒体产品,各种数字信号处理应用都要求具备高性能与高集成度的片上系统 (SoC) ,这无疑向开发人员提出了新的挑战。其中众多挑战源自异构架构(包含多种处理器、协处理器、加速器和外设)的集成、开发、测试以及验证的内在复杂性。不过,SoC 架构的整体系统方案才能够使其提供当今主要应用所需的高性能。

  典型异构 SoC 由许多子系统和处理器组成。例如,一个多媒体处理器可能包括一个通用处理器 (GPP)、多个 DSP、音频/视

频接口、编解码器、加速器、WI-FI 等无线接口、闪存、高速通信链路、传感器以及显示控制器等。开发人员凭借整套多内核感知工具 (multi-core aware tool) 不仅能够解决共享资源争用问题,基于实际应用环境进行性能优化,而且还能跨多内核实现电源管理,从而使他们能够轻松释放 SoC 器件的强大功能并对市场快速做出响应。另外,通过对这些子系统的适当调整可以针对具体应用情况实现功能、功耗和性能的优化,开发人员无需像使用集成度较低的架构那样彻头彻尾地重新设计产品。

  各自为政

  过去,异构架构(如 GPP+DSP)设计小组一般至少分为三个组。一个小组为 GPP 编写代码,主要负责控制处理;第二个小组为 DSP 和片上协处理器编写代码,负责大部分数据处理;第三个小组负责系统集成,将其他两个小组的设计整合在一起,并且根据新的约束和限制条件动态地重新划分系统(图1)。

据新的约束和限制条件动态地重新划分系统


?  大部分编程人员在特定代码块方面都会有诸多担心,如代码密度、内存占用、功耗以及高速缓存的效率。但是,离开完整的系统,我们无法精确地对这些参数进行单独测量。代码的运行效率取决于多个代码块之间对处理周期、存储器以及外设的争用。

  系统级设计小组能够看清独立编程小组无法察觉的利弊。例如,将某项功能分配给GPP还是DSP的决定一般情况下取决于在该处理器上编程该功能的复杂性。GPP更适合控制及UI功能,因此一般会将这些功能划分给GPP,而数据处理功能划分给DSP。不过,有时候上述显而易见的划分并不具有最高的效率。

  我们可以看一下数码相机的自动聚焦功能,这是一种非常适合 DSP 处理的功能。与 GPP 相比,编程人员更易于为 DSP 编写自动聚焦功能,而且代码更简短,运行速度也更快。考虑到 DSP 的功耗也低于 GPP,这一决策显然不言而喻。但是,如果考虑到典型的摄像应用模式,相关选择并非那么简单。用户往往在相机打开并且开始聚焦时并不取景或准备拍摄,这意味着并不使用DSP。如果在DSP上实施自动聚焦功能,那么在上述过程中必须同时为GPP和DSP供电。如果在 GPP上实施自动聚焦功能(假设有足够的开销),则可以使DSP保持断电状态。在用户实际拍照时,DSP可以迅速进入工作状态,并且以最低时延捕获图像。

  这方面的利弊是:如果在GPP 上实施自动聚焦功能可能效率较低,需要更多CPU周期而且反应速度较慢;但是,由于能够使DSP断电而提高整体电池使用寿命所带来的节电优势会超过上述不足。

  动态分组

  在权衡系统级的分组优势时,编程人员必须将使用环境纳入考虑范围。例如,用户有时候会连续拍摄许多张照片。如果完全利用 GPP,则系统的瓶颈可能在于写入闪存或硬盘驱动器,其既限制相机排队的最大照片数量,又会限制连续拍照的速度。通过减轻 GPP 的任务处理负担可以加快图像保存速度,从而提高相机的性能。在上述情况下,在 DSP 上实施自动聚焦功能可以实现最高的系统性能。那么,编程人员应该将自动聚焦功能分配在何处呢?

  答案是动态分组,这种方法使编程人员能够同时在两种处理器上实现某种功能,从而可以在两种情况下都能够达到最佳性能。如果照片队列为空,GPP 会负责自动聚焦,而 DSP 断电。在拍下第一张照片后,GPP 唤醒 DSP 以采集图像。同时,它将自动聚焦功能的执行转移至 DSP。在 DSP 出于工作状态时负责自动聚焦。在不需要 DSP 时,即用户在等待拍摄另一张照片时,则 DSP 向 GPP 发送消息,通知准备好再次断电。GPP 继续执行自动聚焦功能并通知 DSP 断电。

  可以利用现成的商业实时内核管理自动聚焦功能,如:DSP/BIOS 或其他嵌入式 RTOS。如果功能可以同时在两种处理器上执行,则可以为 GPP 或 DSP 无缝地创建自动聚焦任务 (Auto Focus Task)。

  两套代码总比一套好

  在实施动态分组时,首要担心的是编程人员必须为不同的处理器分两次编写相同的代码。在大多情况下,此类代码均采用 C 语言编写;因此,在处理器之间移植代码仅需稍微调整一下相应编译程序生成的优化代码即可。需要注意的是,在同时具备两套代码的情况下,我们还可以获得其他优势。例如,自动聚焦功能在DSP 上会比在 GPP 上运行速


上一页1234下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

异构? 多内核?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈