手机soc的作用

首先,

 SoC的全称叫做:System-on-a-Chip,中文的的意思就是“把系统都做在一个芯片上”,如果在PC时代我们说一个电脑的核心是CPU,那么在智能终端时代,手机的核心就是这个SoC。

  这么说是因为SoC上集成了很多手机上最关键的部件,比如CPU、GPU、内存、也就说虽然它在主板上的存在是一个芯片,但是它里边可是由很多部件封装组成的。比如通常我们所说的高通801,Tegra 4,A6等等都只是系统部件打包封装(SoC)后的总称。然而各家的打包封装的内容则不尽相同,原因也不尽相同。

手机soc的作用图1

比如高通的SoC集成度往往是较高的,有AP/CPU(Krait),GPU(Adreno),RAM(运行内存),Modem(通信模块),ISP(图像处理),DSP(数字信号处理),Codec(编码器)等等等等。这么多部分当中,以Modem通信模块高通的优势最大,高通之所以受到欢迎的一个原因就是集成度高,将所有的系统所需功能都在一个芯片当中提供了,手机厂商不需要额外采购(省成本),主板空间也会更加富裕,也有助于降低功耗。

  当然手机厂家在设计终端产品的时候也会根据自己的需求“部分采用”SoC当中集成的功能。比如SmartisanT1当中并没有采用高通SoC当中自带的ISP(图像处理器),而是在SoC之外单独放置了一颗富士通的ISP。再比如有些厂家选择不采用高通SoC当中的音频处理模块,而额外的采购Audience作为降噪方案。再比如Vivo选择在SoC之外外挂一串高端音频芯片,增加Hi-Fi表现,都是这种“部分采用”的案例。

  有SoC供应商,或出于技术障碍,或出于战略需要,则选择在SoC当中集成更多,或者更少的组件。比如,苹果一直选择将Modem模块放在A系列处理器之外,不封装在SoC里,就或多或少有不希望长期受制于高通的考虑,并且有传言说苹果自己也在研发自己的Modem模块,这个思路按照苹果长期垂直大整合的战略来看,非常符合苹果的利益。

手机soc的作用图2说到通用性能,有很多说很注重游戏或者视频,但最重要的是平时运行常用软件的速度及流畅度,这就是通用性能,而这个通用处理能力,就是所谓cpu的性能,即计算能力,说的通俗点,即一个cpu的运算速率。

说到通用性能,有很多说很注重游戏或者视频,但最重要的是平时运行常用软件的速度及流畅度,这就是通用性能,而这个通用处理能力,就是所谓cpu的性能,即计算能力,说的通俗点,即一个cpu的运算速率。

  • ①架构现在主流的CPU架构有大家熟知的性能强大的A72,还有功耗均衡的A53,也有高通自主的Kryo而其实架构是一个和运算量没有太大直接关系的量,但却是最关键的量,因为架构能决定主频,核心数,主频,带宽等等和运算量直接相关的量,架构落后太多(注意是太多,落后的不多,可以通过其他东西弥补),说其他什么都是浮云。
  • ②制程很多人会问,制程到底是什么?总的来说,cpu是由晶体管组成的,制程越低,相同面积下高通封装更多晶体管,这样运算量就越大;同理,相同性能下,制程越高,面积就越小,发热小,这就是制程的影响,然而就算制程相同,架构不同也会影响封装面积的大小,架构越低,要获得相同性能,封装面积就大,发热就大,功耗也会更大。而据说高通也会在明年推出10nm的830处理器,至于相比较目前的14nm到底有多大进步还需要时间的答案。
  • ③总线位宽打一个比喻,如果运算量相当与马路上的汽车的话,那这个总线位宽就相当于马路的宽。大小、平时使用,总线位宽不会看出影响,而当运算量越大时,即读取大量数据时,总线位宽越大的就能有更高的效率。而这个总线位宽,单核都是32bit,双核四核八核大多都是64bit,所以他们读取大数据的能力稍弱,但是平时使用没有太大影响。
  • ④内存, 缓存我们的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运算流量大小最根本的原因。
  • ⑤主频主频存在的意义就如同前面的L2,L2的意义,只能增大速度,并不能增大水管的粗细,主频越大运算效率越高,在这方面来说,一个cpu的超频能力也是一种优势。但是频率越高,半导体的负载就越大,就容易发热

下面讲解一下视频解码原理。某种视频解码算法,每次的运算是: 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(高端应用不太关注后者) 这样就可以发挥出“硬解”的真正性能了我们手机上说的硬解,应该是以下两种 1.ARM/MIPS在CPU里面附带多媒体加速单元, 或协处理器 这个比较典型的就是arm v7架构里面的neon, 能够支持高级SIMD和浮点运算指令(选配的,te gra2就没有),这个可以理解伪部分硬件加速或者2.TI/NV/高通等等厂商在做soc的时候,集成的GPU或者DSP或者其它什么多媒体加速单元 支持通用的或者各家自己的指令集或者接口,这个可以理解为真正的硬解。视频解码任务的特点是,它没有明显的先后关系,也没有条件判断,比如处 理一帧的画面,这么多像素点,可以一起解码,不同 的像素点之间没有先后关系。具有这种特点的任务一 般是科学计算、信号处理或者多媒体。执行多媒体任 务,处理器需要有强大的并行能力。硬件上可以专门 针对某种解码算法写单独的硬件ASIC逻辑,不需要将 解码算法分解成加减乘除等运算,速度最快代价最小 ,但是没有通用性。常用方法是采用数字信号处理器(DSP)。DSP和CP U一样,执行接收到的指令,但相比于偏向于控制的 CPU的指令,DSP指令更偏重于算术运算,支持的数 据宽度更大,运算更复杂。软件将常见的编解码算法 分解成DSP支持的运算,然后通过DSP执行。DSP的 常用技术有SIMD(单指令多数据,比如“一次加16个 数据的加法”,这样就可以一次处理16个像素点), VLIW(超长指令字,一条指令包含可以并行执行的 多次运算)等等。GPU就是一种典型的DSP,比如N V的GPU内置了几十上百个处理单元,能够并行处理 大量的图形图像数据,在这种任务上的性能要高于C PU。为了增强CPU对于大数据量的并行任务的处理能力, 现在流行在处理器里面增加协处理器接口,可以理解 为内部的一个协助CPU的小单元。协处理器执行浮点 计算和SIMD计算指令,能够部分增强多媒体的性能 。这个接口是CPU内部的接口,不在外部总线上,因 此协处理器算CPU内部单元。ARM的NEON就是协处 理器。 至于软件方面,官方为了用户更好的体验,一 般都做了很多限制。 而用户可以下载很多第三方播放器,这些播放器 听朋友说大都是调用系统的解码方案,所以播放 方面没有啥突破,基本和官方播放器差不多。 而少数播放器,开发者貌似重新写了驱动,调用自 己的解码方案,可以做到突破官方播放器的限制 ,达到硬件能支持什么就能播放什么的程度。


硬解的部分误区:1,不是系统播放器支持播放rmvb就叫硬解。2,有些名义上的硬解利用到了部分硬件加速特性。比如联想,可能是工程师特别针对dsp写了驱动并内置于system分区,位于/system/lib部分。而软解,我们可以列举rmvb,目前还没有哪款手机特配单独解码芯片支持rmvb硬解(寨板不一样),所以解码rmvb可以采用两种方式,一种是利用到部分硬件加速,条件有二:一是处理器支持neon加速,二是软件编写驱动(最优算法),调用硬件加速。常见的diceplayer对rmvb支持极差,mobo最好!另一种方式是纯粹靠cpu去运算,可能有算法优化,但是没利用到neon,效率上的差异,导致消耗电量的差异。 我们平时说的CPU,如7420,8890,810,820 ,其实不仅仅包括CPU,而是指一个手机的SoC,一个手机的SoC,包括GPU,CPU和DSP。其中GPU是指图形处理核心,和视频没有关系。这个我下面详细说。 DSP是指视频硬解模块,和硬解主要相关。 而手机CPU包含CPU部分和neon,neon是一个cpu内部的多媒体加速模块,伪硬件加速。CPU即一个通用处理的东西,和手机各种运行速度和效率都有关系。 DSP解码即为硬解,效率最高。手机CPU(不包括neon)纯解码为软解,效率最低。Neon加速模块为软硬解,但是由于还是靠cpu的,所以我们平时把它归于软解,所以才有软解主要看neon这种说法。


本文来自投稿,不代表天一生活立场,如若转载,请注明出处:http://tiyigo.com/baike/18256.html

(0)
上一篇 2023-03-07 15:09
下一篇 2023-03-07 15:18

相关推荐