CPU两⼤架构X86和ARM
(1)中央处理单元(CPU):
主要由运算器、控制器、寄存器三部分组成。运算器就是起着运算的作⽤,控制器就是负责发出CPU每条指令所需要的信息,寄存器就是保存运算或者指令的⼀些临时⽂件,这样可以保证更⾼的速度。
CPU有着处理指令、执⾏操作、控制时间、处理数据四⼤作⽤。移动设备很复杂, CPU需要执⾏数以百万计的指⽰,才能使它向期待的⽅向运⾏,⽽CPU的速度和功率效率是⾄关重要的。速度影响⽤户体验,⽽效率影响电池寿命。最完美的移动设备是⾼性能和低功耗相结合。
(2)CPU架构
从CPU发明到现在,有⾮常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都⾮常⼤。但是如果从最基本的逻辑⾓度来分类的话,它们可以被分为两⼤类,即所谓的“复杂指令集(CISC)”与“精简指令集(RISC)”系统。
Intel和ARM处理器的第⼀个区别是,前者使⽤复杂指令集(CISC),后者使⽤精简指令集(RISC)。属于这两种类中的各种架构之间最⼤的区别,在于它们的设计者考虑问题⽅式的不同。
(3)ARM
ARM处理器⾮常适⽤于移动通信领域,具有低成本、⾼性能和低耗电的特性,ARM的⾼性价⽐和低耗能在移动市场⽐英特尔更具优势。
ARM的架构相较于基于CISC的x86架构处理器,由于为了满⾜电脑产业发展⽽不断加⼊指令集,使得处理器⽇益庞⼤,但每个指令集⽤到的频率也越差越⼤,许多指令到后来已经相当少⽤,甚⾄是可以被新的指令所取代。⽽ARM架构则⼤幅简化架构,仅保留所需要的指令,可以让整个处理器更为简化,拥有⼩体积、⾼效能的特性。
GOOGLE的Android系统和苹果的IPAD、IPHONE推出后,ARM架构的电脑系统(特别是在终端⽅⾯应⽤)受到⽤户的⼴泛⽀持和追捧,ARM+Android成为IT、通信领域最热门的话题,众多芯⽚⼚商纷纷推出具有各种独特应⽤功能基于ARM结构开发的产品,近期最新形成的“异构概念”更成为电脑今后发展主要⽅向。在IT⾏业推崇了20多年的“性价⽐“概念受到根本的动摇和冲击,“适⽤的才是最好的”已经被越来越多的⽤户接受。
(4)X86与ARM的⽐较
性能:
X86结构的电脑⽆论如何都⽐ARM结构的系统在性能⽅⾯要快得多、强得多。
X86的CPU随便就是1G以上、双核、四核⼤⾏其道,通常使⽤45nm(甚⾄更⾼级)制程的⼯艺进⾏⽣产;⽽ARM⽅⾯:CPU通常是⼏百兆,最近才出现1G左右的CPU,制程通常使⽤不到65nm制程的⼯艺,可以说在性能和⽣产⼯艺⽅⾯ARM根本不是X86结构系统的对⼿。
但ARM的优势不在于性能强⼤⽽在于效率,ARM采⽤RISC流⽔线指令集,在完成综合性⼯作⽅⾯根本就处于劣势,⽽在⼀些任务相对固定的应⽤场合其优势就能发挥得淋漓尽致。
扩展能⼒
X86结构的电脑采⽤“桥”的⽅式与扩展设备(如:硬盘、内存等)进⾏连接,⽽且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也⽐较便宜,所以x86结构的电脑能很容易进⾏性能扩展,如增加内存、硬盘等。
mysql下载选x86还是armARM结构的电脑是通过专⽤的数据接⼝使CPU与数据存储设备进⾏连接,所以ARM的存储、内存等性能扩展难以进⾏(⼀般在产品设计时已经定好其内存及数据存储的容量),所以采⽤ARM结构的系统,⼀般不考虑扩展。基本奉⾏“够⽤就好”的原则。
操作系统的兼容性
X86系统由微软及Intel构建的Wintel联盟⼀统天下,垄断了个⼈电脑操作系统近30年,形成巨⼤的⽤户,也深深固化了众多⽤户的使⽤习惯,同时x86系统在硬件和软件开发⽅⾯已经形成统⼀的标准,⼏乎所有x86硬件平台都可以直接使⽤微软的视窗系统及现在流⾏的⼏乎所有⼯具软件,所以x86系统在兼容性⽅⾯具有⽆可⽐拟的优势。
ARM系统⼏乎都采⽤Linux的操作系统,⽽且⼏乎所有的硬件系统都要单独构建⾃⼰的系统,与其他系统不能兼容,这也导致其应⽤软件不能⽅便移植,这⼀点⼀直严重制约了ARM系统的发展和应⽤。GOOGLE开发了开放式的Android系统后,统⼀了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系统有了统⼀的、开放式的、免费的操作系统,为ARM的发展提供了强⼤的⽀持和动⼒。
功耗
X86电脑因考虑要适应各种应⽤的需求,其发展思路是:性能+速度。20多年来x86电脑的速度从原来8088的⼏M发展到现在随便就是⼏G,⽽且还是⼏核,其速度和性能已经提升了千、万倍,技术进步使x86电脑成为⼤众⽣活中不可缺少的⼀部分。但是x86电脑发展的⽅向和模式,使其功耗⼀直居⾼不下,⼀台电脑随便就是⼏百⽡,即使是号称低功耗节能的⼿提电脑或上⽹本,也有⼗⼏、⼆⼗多⽡的功耗,这与ARM结构的电脑就⽆法相⽐。
ARM的设计及发展思路是:满⾜某个特殊⽅⾯的应⽤即可,在某⼀专项领域是最强的,(哪怕在其他⽅⾯⼀⽆是处),这样Arm以其不是最强的技术,同样也不是很⾼级制程的制造⼯艺,⽣产出性能不是很强的电脑系统,但在某个专业应⽤⽅⾯则是最好的,特别是在众多终端应⽤,尤其在移动终端应⽤上占有绝对优势的统治地位,这个原因就是:功耗。
⾼功耗导致了⼀系列X86系统⽆法解决的问题出现:系统的续航能⼒弱、体积⽆法缩⼩、稳定性差、对使⽤环境要求⾼等问题。
从这⾥我们可以看到x86系统与ARM系统是在两个完全不同领域⽅⾯的应⽤,他们之间根本不存在替换性,在服务器、⼯作站以及其他⾼性能运算等应⽤⽅⾯,是可以不考虑功耗和使⽤环境等条件时,X86系统占了优绝对优势;但受功耗、环境等条件制约且⼯作任务固定的情况下ARM就占有很⼤的优势,在⼿持式移动终端领域,X86的功耗更使他英雄毫⽆⽤武之地。
(5)Linux和ARM
Linux和Ubuntu
Linux是⼀套开源的免费使⽤和⾃由传播的类Unix操作系统,它⽀持32位和64位硬件。Linux继承了Unix以⽹络为核⼼的设计思想,是⼀个性能稳定的多⽤户⽹络操作系统。
Linux操作系统存在着许多不同的版本,⽐如⼤家⽐较熟悉的Ubuntu、RedHat、Fedora等,但它们都使⽤了Linux内核。Linux可安装在各种计算机硬件设备中,⽐如⼿机、平板电脑、路由器、视频游戏控制台、台式计算机、⼤型机和超级计算机。
严格来讲,Linux这个词本⾝只表⽰Linux内核,但实际上⼈们已经习惯了⽤Linux来形容整个基于Linux内核,并且使⽤GNU 各种⼯具和数据库的操作系统。
交叉编译
引⼊两个名词:宿主机(Host),和⽬标机(Target)。开发板由于硬件所限不能直接在本地建⽴起开发环境,需要在配置⾼的个⼈电脑上开发完软件后再移植到开发板上运⾏。此处的开发板就是Target,个⼈电脑就是Host。
简单来说,交叉编译就是在⼀个平台上⽣成另⼀个平台上的可执⾏代码。由于Target和Host的平台不⼀样(平台包括体系结构,最直观的就是CPU不⼀样,⼀个是x86,另⼀个是ARM,使⽤的汇编语⾔都不⼀样),不能使⽤Host的编译⼯具,⽽需要在Host中安装Target的编译⼯具链(cross compilation tool chain),来编译得到的运⾏于Target上的可执⾏代码。
arm-linux-gcc的版本
常⽤的交叉编译⼯具就是arm-linux-gcc,和arm-linux-g++,分别⽤于编译C⽂件和C++⽂件。早些年安装arm-linux-gcc交叉编译⼯具对于⼀个嵌⼊式新⼿来说特别棘⼿,因为它需要安装多个软件包,每个软件包都有它的依赖关系,安装过程中不能有半点差错(真庆幸我没赶上那些年)。现在我们购买开发板时,⼚家都提供对应的交叉编译⼯具,安装⾮常⽅便。
理论上讲,某⼀个特定型号的CPU会有特定的arm-linux-gcc与之对应,采⽤不同CPU的开发板之间的程序是不能⽤同⼀个交叉编译⼯具的(⽐如全志A20开发板的⼯具编译得到的程序就不能在S3C6410开发板上执⾏)。但是也有特殊情况,前两天就发现了⼀个。友善之臂S3C6410(ARM11)开发板提供的编译⼯具编译的⼀个⼩程序可以在S5PV210 (Coretex-A8)开发板上运⾏。不过反过来S5PV210开发板提供的编译⼯具编译的⼩程序就不能在S3C6410开发板上运⾏。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。