首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM SOC漫谈

ARM SOC漫谈

芯片厂商向客户介绍产品,从硬件角度说的最多的就是功能,性能,功耗和价格。功能这个主要就是看芯片提供了什么接口,比如闪存,内存,PCIe,USB,SATA,以太网等,还看内部有什么运算模块,比如浮点器件,解码器,加解密,图形加速器,网络加速器等等。性能,对CPU来说就是的程序能跑多少分,比如Dhrystone,Coremark,SPEC2000/2006等等。针对不同的应用,比如手机,还会看图形处理器的跑分;又比如网络,还会看包转发率。当然,客户还会跑自己的一些典型应用程序,来得到更准确的性能评估。功耗就是在跑某个程序的时候,整个芯片的功率是多少瓦。通常,这时候处理器会跑在最高频率,但这并不意味着所有的晶体管都在工作,由于powergating和clock gating的存在,那些没有被用到的逻辑和片上内存块并没在完全耗电。我看到的芯片公司给出的处理器最大功耗,通常都是在跑Dhrystone。这个程序有个特点,它只在一级缓存之上运行,不会访问二级缓存,不会访问内存。这样得出的其实并不是真正的最大功耗。但是从实际经验看,没有应用程序能让CPU消耗更高的能量,所以这么测量最大功耗也没什么错。当然,作为整体的芯片功耗,还得包括各种加速器和接口,尤其是会被用到的模块。
在设计SoC的时候,性能,功耗和价格就转换成了PPA。啥是PPA?其实就是性能,功耗和面积。其中,性能有两层含义。在前端设计上,它指的是每赫兹能够跑多少标准测试程序分。设计处理器的时候,会有个多少级流水线的说法。通常来说,流水线级数越多,芯片能跑到的最高频率越高,这个大家应该都知道。可是并不是频率越高,性能就越高。这和处理器构架有很大关系。典型的反例就是Intel的奔腾4,30多级流水,最高频率高达3G赫兹,可是由于流水线太长,一旦指令预测错误,重新抓取的指令要重走这几十级流水线,代价是很大的。而它的指令预测又极大依赖于编译器来优化,结果当时编译器又没跟上,导致它总体性能低下。你看MIPS或者PowerPC的处理器频率都不高,但是每赫兹性能相对来说还不错,总体性能就会提高一些。所以看性能要看总体跑分,而不是每赫兹跑分。前一段时间龙芯在宣传的时候就钻了这个空子,号称每赫兹都赶上至强了,但是也就能跑个1Ghz多,而16核至强可以到将近3Ghz。
性能的另外一个含义就是指频率,这是从后端设计角度来说的。通常后端的人并不关心每赫兹能达到多少跑分,他们只看芯片能跑到多少频率。频率越高,在每赫兹跑分一定的情况下,总体性能就越高。请注意对于那些跑在一级缓存的程序,处理器每赫兹跑分不会随着频率的变化而变化。当然如果考虑到多级缓存,总线和外围接口,那肯定就不是随频率线性增加了。系统级的性能问题,我会在以后慢慢展开。
那哪些因素会影响频率?就算只从后端角度考虑,答案也很多。我并不是做后端和制程的,只能把道听途说的写下来,仅供参考。
返回列表