level 13
说到通用性能,有很多说很注重游戏或者视频,但最重要的是平时运行常用软件的速度及流畅度,这就是通用性能,而这个通用处理能力,就是所谓cpu的性能,即计算能力,说的通俗点,即一个cpu的运算速率。
2017年08月16日 14点08分
1
level 13
说到通用性能,有很多说很注重游戏或者视频,但最重要的是平时运行常用软件的速度及流畅度,这就是通用性能,而这个通用处理能力,就是所谓cpu的性能,即计算能力,说的通俗点,即一个cpu的运算速率。
①架构
现在主流的CPU架构有大家熟知的性能强大的A72,还有功耗均衡的A53,也有高通自主的Kryo
而其实架构是一个和运算量没有太大直接关系的量,但却是最关键的量,因为架构能决定主频,核心数,主频,带宽等等和运算量直接相关的量,架构落后太多(注意是太多,落后的不多,可以通过其他东西弥补),说其他什么都是浮云。
2017年08月16日 14点08分
2
level 13
②制程
很多人会问,制程到底是什么?总的来说,cpu是由晶体管组成的,制程越低,相同面积下高通封装更多晶体管,这样运算量就越大;同理,相同性能下,制程越高,面积就越小,发热小,这就是制程的影响,然而就算制程相同,架构不同也会影响封装面积的大小,架构越低,要获得相同性能,封装面积就大,发热就大,功耗也会更大。而据说高通也会在明年推出10nm的830处理器,至于相比较目前的14nm到底有多大进步还需要时间的答案。
2017年08月16日 14点08分
3
level 13
③总线位宽
打一个比喻,如果运算量相当与马路上的汽车的话,那这个总线位宽就相当于马路的宽。大小、平时使用,总线位宽不会看出影响,而当运算量越大时,即读取大量数据时,总线位宽越大的就能有更高的效率。而这个总线位宽,单核都是32bit,双核四核八核大多都是64bit,所以他们读取大数据的能力稍弱,但是平时使用没有太大影响。
2017年08月16日 14点08分
4
level 13
④内存, 缓存
我们的cpu读取数据是需要使用内存的,而直接用内存来进行运算运算效率是最低的,这就涉及到缓存,现在来说,一个cpu的缓存分为L1,L2,即一缓和二缓,现在的高端cpu还有三缓。运算效率来说,一缓>二缓>三缓>内存。
其中读取平时小型数据,只用到L1,L2承载部分,再多的的大型数据就需要由内存承担,所以如果没有L2,多余的部分就会由内存来承担,速度就会变慢,L2太小,内存承担的就越多,速度也会变慢。
现在主流CPU,如Exyons8890是1.5MB的L2,Snapdragon 820则是1MB的L2,两者读取大型数据基本无压力,但是苹果A9已经达到3M,所以在架构制程相同的情况下,A9比高通强并不是没有原因的。不过一般来说,其实1MB的L2已经足够了,而且缓存只是辅助原因,只能减小同量的流量流动的速度,并不能增大流量,所以如果位宽过小,L2再大也没有意义。但是值得指出的是,虽然L1 L2比内存运算更有效率,但是光有速度,如果运算量总量太小,加速也是有限的,所以还要看内存频率和位宽的影响。位宽和内存频率影响着总流量的大小。
这里的运算量,我们用带宽来表示,则带宽=内存频率*带宽*倍增系数/8,其中倍增系数同时代产品都是差不多的,频率相差最大不过30%左右,而位宽都是翻倍的,所以位宽的影响是最大的,而这个位宽和上面说的第二点中的总线位宽是相辅相成的。所以在架构制程相同的情况下,总线位宽可以说是一个cpu运算流量大小最根本的原因。
2017年08月16日 14点08分
5
level 13
⑤主频
主频存在的意义就如同前面的L2,L2的意义,只能增大速度,并不能增大水管的粗细,主频越大运算效率越高,在这方面来说,一个cpu的超频能力也是一种优势。但是频率越高,半导体的负载就越大,就容易发热
2017年08月16日 14点08分
6
level 13
下面讲解一下视频解码原理。
某种视频解码算法,每次的运算是: OUT = ((A*B+C)*D+E)*F+G 假设一个没有乘法指令的CPU要执行这个算法, 一般会 1.程序会写一个循环,不停的移位,然后做加法 ,实现A*B 2.结果加C 3.重复上面的完成后面的乘法和加法 没有乘法的CPU执行第一步,需要执行几十 条指令,优化乘法算法之后会好一些,但还是很 慢。 你可以理解这种方式是所谓最慢的“软解” 假设某个CPU内部加了多媒体加速单元,里面的 乘法器可以执行乘法指令,则 1.直接算A*B 2.结果加C 3.重复上面的完成后面的乘法和加法 假设这条是单周期乘法,第一步只需要一条指令 一个时钟周期,那么这个示例算法就比第一种快 一个数量级了再假设,有一个DSP,支持乘累加指令,可以直 接算A*B+C这种操作 1.直接算A*B+C 2.重复上面的完成后面的乘累加 可以看到,用这种方式,只需要三条指令就能做 完示例算法,比上面只有乘法的方法快一倍再假设,有一个硬件电路,能够直接接受ABCDE FG输入,一步算出OUT = ((A*B+C)*D+E)*F+G 1.算出结果,然后,没有然后了 这种方式是最快的,这个是理论上的硬件解码之前说了,理论上的硬件解码速度快,面积和功 耗成本也最少,可是灵活性太差 如果某一天,一种新的编码诞生了,需要算OUT = (A*B+C)*(D*E+F)+G 对于DSP来说,只需要换一下指令的源操作数, 还是可以通过三条成累加实现,但上述最后一种 方法的硬件电路就废了
SOC层面上的任何一件事情,都需要做到软硬件配合
—硬件上选择性能合适成本合适的DSP<-这里的P指 的是processor,是一个处理器,有自己的指令集
—软件上,把常用的解码算法程序,编译成DSP支 持的指令,并优化得到最好的性能和code density(高端应用不太关注后者) 这样就可以发挥出“硬解”的真正性能了我们手机上说的硬解
2017年08月16日 14点08分
7
level 13
由于不是每家SOC生产厂商把ARM架构买回去就直接封装出厂了
都会针对ARM架构做一些更改,优化
所以很多A57或A72之间有着很多差距
2017年08月16日 14点08分
8