选择合适CPU会对整个SoC系统的性能产生什么影响?

电子说

1.2w人已加入

描述

如果您认为CPU对片上系统(SoC)而言就像汽车的引擎一样,你知道你不会将大众汽车的发动机放在悍马车上,并期望它能发挥作用。同样,法拉利发动机也不适合。尽管法拉利可以为悍马发动机提供类似的马力,但由于缺少扭矩,它可能会失效。

对马力的简单评估与在汽车世界中一样,在选择CPU时会产生误导。有针对所需功能的最佳解决方案。SoC中的CPU选择也是如此。很多时候,设计人员仅根据系统架构师对特定CPU的知识和过去的经验来选择CPU。

在决定使用哪个CPU时,设计人员应考虑总体系统指标,例如:总体设计的复杂性,设计重点,保护,性能,功耗,尺寸,成本,工具和中间件可用性。

设计的复杂性有助于确定要使用哪个CPU。例如,如果设计要求部署一台状态机,并带有来自少量外围设备的中断,则小型CPU和/或微控制器(例如8051或Z80)可能是最佳选择。许多系统(例如寻呼机)最初可能适合此类别。内存占用空间小,信号缓慢,电池消耗必须非常低。

算法及其相互作用将决定设计的复杂性,也可能确定其是否需要实时操作系统(RTOS)。通常,随着应用程序复杂性的增加,对更大位宽处理器的需求也随之增加。

设计正在被重视,并且复杂性不断增加;那个2000年的传呼机可能需要在2003年播放MP3,因此8位CPU可能不足以应付当前的任务。设计包含的接口数量是一个很好的指标。例如,在我们的传呼机中,最初有两个主要界面,用户界面和无线电链接。在添加MP3播放器的设计中,我们将需要添加用于存储和传输数据的内存接口,以及用于播放数据的音频接口。在这个例子中,系统的复杂性从最初的概念开始就大大增加了,如果我们考虑将来可以将设计部署到哪里,我们可以重用许多相同的设计。

确保您留有增长空间。今天,您的8位设计可能适合MP3播放器。但是,当在具有更高带宽外围设备的机顶盒应用程序中重用设计时,您可能需要重新设计完整的解决方案,以迁移到基于ARM,MIPS或PowerPC的应用程序。体系结构以应对新的约束。

系统可能需要保护自己免受外部攻击,甚至免受自身攻击,这意味着CPU可能需要包含内存管理单元(MMU)来解决此问题。虚拟内存允许受约束的程序访问整个系统,而不受信任的程序只能访问分配给它们的内存。3G手机(具有Internet连接的手机)是需要保护的典型示例。由于恶意程序会使您的手机崩溃,因此设计人员不再能够使用缺少MMU的CPU。尽管MMU并没有消除潜在的系统故障,但它减少了难以发现的系统故障的数量和频率。

三种主要的CPU体系结构围绕具有16位,24位和32位地址总线的8位,16位和32位数据寄存器构建。这些体系结构之间的主要区别在于,一个特定的寄存器可以容纳的信息量以及可以直接寻址的信息量,如下所示:使用8位数据寄存器和16位地址总线,CPU可以拥有64k的地址空间;一个带有16位数据寄存器和24位地址的地址空间可以具有16兆字节的地址空间;而具有32位数据的32位地址将具有4 GB的地址空间。

为什么嵌入式系统曾经需要访问4 GB的地址空间?答案很简单:由于要求系统执行更复杂的任务,因此运行的代码的大小和复杂性都会增加。Z80上CPM的早期使用了存储内存和页面交换的过程来运行8位计算机上更复杂的程序。由于64k的空间不足,设计人员通过覆盖内存和页面以使更多CPU占用空间,使系统变得更加复杂。

对于许多设计而言,24位地址总线似乎已足够。但是,有几个因素将设计人员驱使到32位地址空间,包括保护和指针。为了进行保护,具有虚拟内存的CPU可以使用整个地址范围将物理内存划分为单独的虚拟空间,从而可以保护指针免受错误的侵害。无需索引即可使任何寄存器成为指向内存的指针的功能简化了软件。

选择CPU会对整个系统的性能产生极大的影响。具体来说,缓存,MMU,流水线,分支预测和超标量体系结构等功能都会影响系统的速度。根据SoC的需求,可能需要使用这些功能来实现系统的最佳性能。

SoC的最终用途将决定您的设计消耗多少功率。如果您的设计是电池供电的,则CPU将需要尽可能节省功耗。例如,某些CPU具有睡眠。这些模式允许CPU在空闲时通过关闭CPU的数量来暂停操作并消耗更少的功率。不同的CPU执行同一任务的结果不同。

CPU的成本可以通过几种方法来衡量。首先,存在IP成本,其中包括为SoC和任何衍生产品获得IP的成本。然后是系统集成成本,其中包括可用于SoC设计和实现的工具。最后,您必须确定CPU变体是否经过硅验证,以及在SoC使用的总线体系结构中是否可用。

RTOS和中间件的可用性也可能决定您的选择。例如,在设计PDA时,您可能需要适用于Linux的中间件,但是选择虚拟操作系统将决定您要从小型非MMU CPU迁移。

此外,如果设计需要图形系统或文件系统,则RTOS的选择将决定CPU的类型。许多RTOS供应商针对特定的家庭,而其他人则保持不变。大多数8位CPU都具有简单的调度程序,尽管这些调度程序适合于消耗很少的外包代码的小型设计,但不适用于消耗任何数量的外包代码的设计。解决方案的外包将确定要使用的RTOS,进而决定将支持哪些CPU。

其他考虑因素包括:您需要哪些工具来进行设计,并且它们可用于您可能使用的标准ANSI C / C ++编译器吗?您将如何在硬件/软件协同仿真环境或SoC中调试设计?是否存在JTAG端口,CPU是使用该通道进行调试还是调试需要专用的串行端口?选择更高级的语言(例如C ++)或从UML中的设计生成的代码也可能表明您需要更高的总线宽度和时钟频率来处理代码的大小和复杂性。

如果将SoC划分为几个通过松散连接的FIFO或串行通道进行通信的处理器子系统,则可能会更好。许多设计都集成了数字信号处理器和RISC CPU,以分担工作量并简化每个处理器域的设计。

现代SoC设计为系统架构师提出了新的挑战。选择CPU不再是琐碎的事情。通过使用诸如总体设计的复杂性,设计重用,保护,性能,功耗,尺寸,成本,工具和中间件可用性之类的指南,设计人员可以简化决策。
       责任编辑:tzh

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分