新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 选择处理器过程中需要考虑多重因素

选择处理器过程中需要考虑多重因素

作者:时间:2016-09-12来源:网络收藏

如今随着的应用出现,选择早已不再是一项相对简单的事情。但通过考察几个关键考虑因素,可以简化决策过程。

本文引用地址:http://www.eepw.com.cn/article/201609/303921.htm

选择嵌入式曾经是一项非常简单的事情。当然,这一切都已经是“过去时”,那时候关注焦点是一些有限的功能,而用户界面和连接性则不是很重要,功耗也不是如此受到重视。而在融合处理盛行的今天,单个器件可以执行控制、信号处理和应用级任务,因此需要考虑更多方面(图1)。选择过程中有太多方面需要考虑,让我们来看看系统设计人员必须考虑的一些比较突出的方面。

处理器性能

系统设计人员本能地想到,器件的处理速度是其性能的主要指标。这点没有错,但并不全面。评估处理器每秒可以执行的指令数毫无疑问是非常重要的,但是估计每个内核时钟周期内可以完成的操作数和计算单元的效率也同样重要。采用多核处理器来大幅提升器件的计算能力(尤其是采用同构内核时),或清楚地区分信号处理和控制处理(通常采用异构内核)等等,这些情况不再少见。

图1 如今的融合处理模式使处理器选择变得前所未有的复杂

硬件加速

当然,并不是只要考虑处理器内核。执行明确指定的功能时,硬件加速器几乎总是最为高效的方法,它能够以最高能效执行其所用于加速的功能。加速器使用上可能存在差异的一个方面是在软件算法中使用时的兼容程度。对于H.264编码器等全算法型加速器,由于实质上是完全独立自主的,因此通常不会有问题。然而,对于FFT等内核型加速器,算法越大,在其中使用加速器也就更加困难。下面我们来看看该硬件功能的工作原理及其所需的配置方式。

带宽要求

带宽估算过程容易被看得过于简单,有时会因此出现令人遗憾的结果。为了确保内核能够在分配的窗口内完成数据处理且各个处理器总线均未出现过载(会导致数据损坏或系统故障),必须对系统中的所有独立数据流进行求和(同时需要考虑方向性和时间窗口)。例如,对于视频解码器,设计人员首先需要考虑读取所需解码的数据。然后,需要结合多个必要的处理数据,以构建解码帧序列。这可能涉及到内部存储器和外部存储器之间进行多次缓冲数据的转移。最后,设计人员必须考虑将显示缓冲数据流传送至输出器件。

考虑所有数据流后,需要制定整体系统预算。此预算受多个因素影响,其中包括DRAM访问模式(及对应的性能降低程度)、内部总线仲裁、存储器延迟等等。

电源管理

能够将功耗降至与工作时间要求相当的水平对延长电池使用时间至关重要,同时也有助于降低主电源供电系统的总体能源成本。处理器能够提供多种多样的选项,用于优化应用的功耗分布。其一就是动态电源管理——调整内核频率和工作电压来满足特定性能水平的能力。另一个则是提供多种电源模式,这些模式能够在一定时间间隔内关闭各种不需要的资源,包括存储器和外设。系统唤醒(借由通用I/O、实时时钟或其它激励)是这种电源模式控制不可或缺的一部分。电源管理方面的灵活性还体现在内核、I/O和存储器存在多个电压域,从而允许不同的系统组件在实际运行时以较低的电压工作。

安全需求

过去几年里,处理器安全性已经变得日益重要。无论是否是系统的基本要求,决定最终方向之前,都必须从多个出发点来审视安全问题。安全需求通常表现为平台保护、IP安全或数据安全,乃至这三者的某些组合。

需要平台保护是为了确保应用中仅运行经认证的代码。也就是说,必须主动阻止“流氓代码”运行吗? “流氓代码”是指尝试访问处理器上受保护信息或者“劫持”处理器并进而控制更大系统的程序。平台保护可以通过多种技术实现,选择时务必要仔细权衡利弊。像其它权衡考量一样,保护等级提升会导致成本增加。另一个重要考虑因素是整体安全方案在开发和生产方面的易用性。

验证代码的能力对确保IP和数据安全也非常关键。IP安全要求以某种方式对录入处理器用于执行的代码图像进行加密,或者通过无法利用外部机制访问的嵌入式闪存或内部ROM在内部存储此IP以供处理器访问。而需要一定形式的数据安全措施则为了确保数据可以不受影响地进入和退出系统。某些情况下,尤其是在低端微控制器中,安全性可能完全由嵌入式闪存来负责,而在高端处理器中,应用程序通过引导加载程序载入,因此相关方案可能更为复杂。

安全和容错

在很多应用中,安全无疑是重中之重,例如汽车驾驶员辅助系统或闭环电源控制系统。然而,在其它不太明显的应用中,设计人员目前开始更为关注提高工作稳定性水平。鉴于处理器构建在28nm或40nm等较小的硅片上,其中存储器上因阿尔法和伽玛粒子等自然因素而造成的软误差可能影响操作,这方面显得尤为重要。在处理器选择过程中,必须考察处理器如何处理这类误差以及其通常如何响应突发事件。出现误差时,它可以采取什么步骤?它如何通知其它系统组件有地方出错?

调试能力

随着应用变得越来越复杂,开发过程同样也是如此。当处理器和应用子组件的数量呈指数增长时,过去可行的捷径可能不再有效。以基于软件且采用操作系统或实时内核的大型系统级调试为例。处理器及其工具链是否有方法检查处理器状态而又不影响应用?是否可以绘出处理器性能曲线及轨迹或者捕捉所有目标事件? 应首先回答出上述问题以及其它更多问题,然后才能坦然选择可用的调试水平。

系统成本

有时,系统设计人员会专注于处理器价格,而不是总体系统设计成本。正确的做法是,不仅必须考虑器件本身成本,还应考虑所需支持电路(电平转换器、接口芯片和逻辑芯片等等)的成本。此外,封装选项也发挥着重要作用:一种处理器封装可能允许采用四层板设计,而另一种封装则可能因布局布线难题而要求采用昂贵的六层或八层板。最后,不可忽视额外处理裕量的价值,裕量可以确保日后能够进行扩展,而又不会因更换处理器或电路板开发延误而付出昂贵代价。

信号链

最后一点: 应当结合系统的信号链要求来选择处理器。处理器供应商是否还销售与处理器相连的外设? 从同一供应商购买多种系统组件往往可以享受诸多好处,例如互操作性、客户支持和整体价格优势。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭