PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

熟悉的陌生人——ARM处理器

[复制链接]
跳转到指定楼层
1#
点击数:5416|回复数:17
这是一个熟悉的陌生人:大家都在用,却一直不甚了解的CPU——ARM处理器。

据统计,超过90%的手机/平板处理器使用了ARM架构。包括苹果iPhone/iPad使用的A4、A5、A5X、A6、A6X处理器,都是基于ARM架构的。

相较于对PC处理器的了解,ARM一直蒙着神秘的面纱。不同于PC处理器Intel、AMD两分天下的明朗格局,ARM处理器的制造厂商众多,并且有些厂商并未完全照用ARM的架构,而是又在其上进行了更深的开发。这就使得ARM体系看起来更为复杂。

ARM处理器内核架构:

首先从型号说起。因为ARM公司自己并不生产处理器,而是指定标准,授权给客户来制造。所以ARM架构的处理器型号都是按照各个生产商各自指定的。不过架构总归还是ARM来指定的,这就有一个体系:

看到这里就有点乱了,ARM Vx可以理解为第x代,而同时早期的ARM处理器还有直接用ARM+数字来命名的。显然ARM11属于ARMv6,是不如ARMv7架构下的产品的,这里不是数字越大越好了哦。如果某某得意的对你说,我的手机处理器是ARM11架构的,那就果断鄙视他好了,落后太多了!

从ARMv7,也就是第七代产品开始,ARM可能也意识到了跑版本号的无趣,同时也需要对不同定位的产品进行明确的分类,从而将第七代产品又细分为Cortex-A、Cortex-M、Cortex-R三种。我们平时能看到的多是Cortex-A应用处理器。而Cortex-M和Cortex-R则分别对应微控制器与实时处理领域。

当前比较主流的手机/平板处理器都是ARMv7这一代的Cortex-A处理器,而这其中又可分为Cortex-A8、Cortex-A9、Cortex-A15与Cortex-A7架构。数字很多,也有重复的数字,但是要注意出现的位置,代表了不同的含义。

ARM11处理器:
典型时钟频率:412Mhz
无NENO多媒体指令集
整数运算能力1.25 DMIPS/Mhz
不具备乱序指令执行能力
代表产品:高通MSM7200、MSM7201A、MSM7227,德州仪器OMAP2420
苹果1代和其3G版本以及iPod Touch 1代、2代的处理器都属于ARM11架构。

Cortex-A8处理器:
典型时钟频率:600Mhz-1Ghz
超标量微架构
NEON多媒体指令集
整数运算能力2.0 DMIPS/Mhz
不具备乱序指令执行能力
代表产品:德州仪器OMAP3xxx系列、瑞芯微RK2918、全志A10/A13(这命名够有迷惑力!)
iPhone 3GS、iPod Touch3代和4代、iPhone4、魅族M9的处理器都属于Coretex-A8架构。

Cortex-A9处理器:
典型时钟频率:1.2Ghz
超标量微架构
NEON多媒体指令集
整数运算能力2.5 DMIPS/Mhz
具备乱序执行能力
代表产品:德州一起OMAP4430/4440、Nvidia Tegra2/Tegra3、三星Exynos4210/4212/4412、苹果A5处理器、联发科MT6575/6577
iPad2、三星i9300、魅族MX、魅族MX2的处理器都属于Cortex-A9架构。

从上面的发展对比中可以看到,不同时代的ARM处理器,其执行效率也在提升,所以不能仅仅从主频对比中得到其性能差异。高主频不代表高性能,最重要的还是要看架构的先进性。

A7与A15是当前最新的架构,指令集通用。A7主打低功耗,而A15主打高性能。在三星最新的Exynos 5 Octa处理器中,就集成了4个Cortex-A7核心和4个Cortex-A15核心。低负载时使用A7架构的核心,需要高性能时则使用A15架构的核心。而在更多的产品中A7架构多用于手机处理器,而A15由于功耗原因多用在超轻薄笔记本与平板设备之中。

不得不提的高通:

在移动处理器领域,ARM是架构制定者,而高通则是制造商里的最大市场份额占领者。伴随着移动设备的飞速发展,高通的影响力甚至已经震动了PC市场上横霸天下的Intel。作为最重要的ARM处理器生产商,我觉得有必要单独来说一下高通的移动CPU。

高通由于自己具有不俗的技术开发能力,在获得ARM授权后,高通没有直接照用,而是在其上进行了二次开发。现在我们见到的高通处理器分为Scorpion和Krait架构(高通自己的命名)。其中Scorpion是ARM Cortex-A8架构的高通改进版,Krait架构则是ARM Cortex-A15的高通改进版。

高通Scorpion处理器从低端到高端分为Scorpion S1/S2/S3/S4。其中S4为最新的Krait架构,其余皆为Scorpion架构。

早期Scorpion架构基于ARM11(第六代)架构,如MSM7627/7227,在当今已属非常落后,如中兴N880,使用的就是MSM7627。之后高通采用ARM Cortex A8(第七代)架构制造了MSM8655/8255的单核处理器,主频达到1.4Ghz。

在其他厂商开始着力Cortex-A9架构双核处理器的时候,高通则选择了在A8架构上继续改进,开发出了MSM8660/8260以及APQ8060。在高通的改进下,原本不支持乱序执行的A8架构,也拥有了部分乱序执行能力。但毕竟在架构上先天不足,异步双核逻辑架构受到了高频低能的批评。1.5Ghz的高主频双核大致上只相当于Cortex-A9架构处理器1.2Ghz左右的水平,再次印证了频率不代表一切的论据。值得一提的是,小米1代手机就使用了上边提到的MSM8260处理器。

不过异步设计虽然被冠以胶水之名,其功耗上还是有所优势,加上对NENO协处理器的改进,实际性能相比标准的Cortex-A8处理器还是有一定提升的。

总结:

ARM的确是一片比较陌生的领域,个人理解有限,无法做到详尽介绍,欢迎大家批评斧正。移动设备领域发展瞬息万变,影响设备性能的不仅有CPU的架构,更有GPU的影响,此文权当抛砖引玉,希望能够引发大家对于影响移动设备性能因素的更多讨论与关注。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1活跃度 +20 收起 理由
overthink + 20 很给力!

查看全部评分

2#
windows80 发表于 2013-1-27 19:23 | 只看该作者
好文章!
不过貌似ARM功耗越来越高了
3#
roy.xiang 发表于 2013-1-27 22:44 | 只看该作者
好文章,不过看后还是一头雾水
4#
overthink 发表于 2013-1-28 09:23 | 只看该作者
不错的文章,一级精华
5#
路灯杆同学 发表于 2013-1-28 12:36 | 只看该作者
不错,学习了
6#
maoyipeng 发表于 2013-1-28 19:48 | 只看该作者
楼主能解释下risc和cisc的区别吗
7#
大D来了 发表于 2013-1-28 20:08 | 只看该作者
本帖最后由 大D来了 于 2013-1-30 16:54 编辑
maoyipeng 发表于 2013-1-28 19:48
楼主能解释下risc和cisc的区别吗


百度了一点给你看。

复杂指令集CPU内部为将较复杂的指令译码,也就是指令较长,分成几个微指令去执行,正是如此开发程序比较容易(指令多的缘故),但是由于指令复杂,执行工作效率较差,处理数据速度较慢,PC 中 Pentium的结构都为CISC CPU。
RISC是精简指令集CPU,指令位数较短,内部还有快速处理指令的电路,使得指令的译码与数据的处理较快,所以执行效率比CISC高,不过,必须经过编译程序的处理,才能发挥它的效率,我所知道的IBM的 Power PC为RISC CPU的结构,CISCO 的CPU也是RISC的结构。
咱们经常见到的PC中的CPU,Pentium-Pro(P6)、Pentium-II,Cyrix的M1、M2、AMD的K5、K6实际上是改进了的CISC,也可以说是结合了CISC和RISC的部分优点。

RISC与CISC的主要特征对比

比较内容 CISC RISC
指令系统 复杂,庞大 简单,精简
指令数目 一般大于200 一般小于100
指令格式 一般大于4 一般小于4
寻址方式 一般大于4 一般小于4
指令字长 不固定 等长
可访存指令 不加限制 只有LOAD/STORE指令
各种指令使用频率 相差很大 相差不大
各种指令执行时间 相差很大 绝大多数在一个周期内完成
优化编译实现 很难 较容易
程序源代码长度 较短 较长
控制器实现方式 绝大多数为微程序控制 绝大多数为硬布线控制
软件系统开发时间 较短 较长


Rsic是可以理解为一个动作,Cisc可以理解为一个行为模式。
动作指令简单,行为模式指令复杂。
好比较会一个人吃饭,rsic指令为,拿碗,拿筷子,夹饭,吃。Cisc指令为:吃饭。
看起来Cisc指令简单,是因为设计之初,这一套逻辑全部写进了硬件。所以硬件开发很难,就好比现在的桌面X86。移动领域Arm是Risc。不过现在两个领域都有相互吸收特点的发展~

评分

参与人数 1活跃度 +20 收起 理由
overthink + 20 很给力!

查看全部评分

8#
fosullx 发表于 2013-1-28 20:40 | 只看该作者
学习一下
9#
大D来了 发表于 2013-1-28 20:51 | 只看该作者
10#
bfkx 发表于 2013-1-28 21:10 | 只看该作者
因为ARM公司自己并不生产处理器,而是指定标准,授权给客户来制造。

——对于这句一直比较困惑。
11#
大D来了 发表于 2013-1-28 21:13 | 只看该作者
bfkx 发表于 2013-1-28 21:10
因为ARM公司自己并不生产处理器,而是指定标准,授权给客户来制造。

——对于这句一直比较困惑。 ...

可以有效控制成本。。。生产处理器成本非常高昂
12#
bfkx 发表于 2013-1-28 21:40 | 只看该作者
大D来了 发表于 2013-1-28 21:13
可以有效控制成本。。。生产处理器成本非常高昂

ARM公司是制定标准还是电路设计?

如果仅仅是设计标准,那又如何控制每家授权公司制造的最终产品的统一性?
13#
大D来了 发表于 2013-1-28 21:41 | 只看该作者
bfkx 发表于 2013-1-28 21:40
ARM公司是制定标准还是电路设计?

如果仅仅是设计标准,那又如何控制每家授权公司制造的最终产品的统一 ...

是出售他制订的标准的授权
可以说是大框架和小专利组合体。允许你进行二次开发,当然是要授权的,这个就是要买~
14#
bfkx 发表于 2013-1-28 21:44 | 只看该作者
大D来了 发表于 2013-1-28 21:41
是出售他制订的标准的授权
可以说是大框架和小专利组合体。允许你进行二次开发,当然是要授权的,这个就 ...

那ARM体系的,同一代的标准下,各个处理器所支持的系统是同一的还是不同的?或者说某一个操作系统能运行在所有的ARM处理器上,不管是哪家生产的,只要是属于同一代的设计标准就行?
15#
大D来了 发表于 2013-1-28 22:12 | 只看该作者
本帖最后由 大D来了 于 2013-1-28 22:17 编辑
bfkx 发表于 2013-1-28 21:44
那ARM体系的,同一代的标准下,各个处理器所支持的系统是同一的还是不同的?或者说某一个操作系统能运行 ...


我是非专业人士,就我的知识水平理解,个人看法是你说的基本没错,同一代ARM CPU的架构整体类似,各个厂家有自己的优化、突出重点,有的走节能路线有的走高性能路线。


软件方面的通用性肯定很好的,就好比amd intel的处理器都能运行windows和linux unix系统的几乎全部软件。甚至就是说不需要同一代都可以相互支持,只是某些特性不支持,好比P4也能装win7 还能玩游戏,就是卡一些,处理的效率不高。最好的例子就是国产的一些硬件比较差,arm11(armv6代)的机器也能玩安卓愤怒的小鸟,和在最新的nexus4上的安装包内容除了分辨率其实大部分是一样的。


但是,如果你的深层意思是想要给手机混刷不同的系统的话,可能比较麻烦,因为手机不仅仅是处理器,整体的硬件都要考虑,arm SoC和周边硬件的驱动都不一样,各厂商对自己的手机开发的系统应该是高度定制的(向相对PC来说),而且手机的硬件组成不像PC这么可以自己DIY,厂商的驱动程序也没有PC的那样广泛开发,一般都是特定做给某家手机厂,或者是手机厂自己开发驱动。所以不同智能机要混刷,会很难,不是不可以,也许你需要自己开发驱动程序。。。好比HD2 被誉为神技,可以刷各种系统,虽然很老,但是肯定有人在为他开发驱动,或者是这款机器的配置非常的“标准”大部分操作系统都能“相对很好”的兼容吧。

为什么要定制:因为手机存储空间小~8G闪存2G装个高度兼容的系统,用户留6G可用只有5G不到了。。。这太坑了。。。看看windows的 surface就是操作性系统占了好多存储空间呢。这个平板相当于一个小电脑。
16#
bfkx 发表于 2013-1-28 22:34 | 只看该作者
大D来了 发表于 2013-1-28 22:12
我是非专业人士,就我的知识水平理解,个人看法是你说的基本没错,同一代ARM CPU的架构整体类似,各个厂 ...

多谢解答!

主要是一直受Intel和AMD的影响,很多想法根深蒂固。

ARM一直停留在单片机的层次上…
17#
大D来了 发表于 2013-1-28 22:39 | 只看该作者
bfkx 发表于 2013-1-28 22:34
多谢解答!

主要是一直受Intel和AMD的影响,很多想法根深蒂固。

单片机不懂,硬件多多交流大家都是学起来的
18#
用户名已存在  楼主| 发表于 2013-1-29 22:18 | 只看该作者
感谢大D来了,提供了很多我不了解的内容
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部