相关系列文章推荐:
从零开始系列(一):在github上搭建自己的博客
从零开始系列(二):数据库基础篇
从零开始系列(三):Windows10安装Linux子系统(WSL教程)
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:从零开始系列(四):一文看懂arm架构和x86架构有什么区别;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
CPU 的全称是"中央处理单元",它是计算机的核心,计算都由它来完成。但是,CPU 本身只是一个概念,每家芯片公司都有自己的具体实现。
不同的 CPU 设计实现,就称为" CPU 架构"(CPU architecture)。 不同的 CPU 架构有不同的指令集,彼此不通用,这导致运行在上面的软件也不兼容,必须重新编译。如果没有做适配,一个架构下的软件就无法移植到另一个架构。
目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种:
序号 | 架构 | 特点 | 代表性的厂商 | 运营机构 | 发明时间 |
---|---|---|---|---|---|
1 | X86 | 性能高,速度快,兼容性好 | 英特尔,AMD | 英特尔 | 1978年 |
2 | ARM | 成本低,低功耗 | 苹果,谷歌,IBM,华为 | 英国ARM公司 | 1983年 |
3 | RISC-V | 模块化,极简,可拓展 | 三星,英伟达,西部数据 | RISC-V基金会 | 2014年 |
4 | MIPS | 简洁,优化方便,高拓展性 | 龙芯 | MIPS科技公司 | 1981年 |
从CPU发明到现在,有非常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。 Intel和ARM处理器的第一个区别是,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC)。
ARM和X86架构最显著的差别是使用的指令集不同。具体区别可以参照这篇文章:一文看懂arm架构和x86架构有什么区别
序号 | 架构 | 特点 |
---|---|---|
1 | ARM | 主要是面向移动、低功耗领域,因此在设计上更偏重节能、能效方面 |
2 | X86 | 主要面向家用、商用领域,在性能和兼容性方面做得更好 |
每一种架构都有自己的优势和不足,天下并没有所谓的“万能芯片架构”。
序号 | 架构 | 特点 |
---|---|---|
1 | X86 | 英特尔和AMD的“专属”,在PC市场上独霸多年,地位不可撼动 |
2 | ARM | 在移动端和便捷设备上有着不可替代的优势 |
3 | MIPS | 在网关、机顶盒等市场上非常受欢迎 |
4 | RISC-V | 虽然出来不久,但在智能穿戴产品上的应用广泛,前景广阔 |
ARM架构和X86架构是市场份额最大的两大架构,它们有着各自的特点和市场。
目前在移动领域上ARM架构占主流,X86架构也占有一定的市场份额。X86架构由于其封闭性,相对于ARM架构成本更高,但有着更高的性能、更快的速度和兼容性。英特尔近几年也在逐步的布局移动市场,如其推出的X86架构凌动系列处理器,在速度、视频体验、兼容性等方面表现优异。
x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA-32”
x84_64是x86 CPU开始迈向64位的时候,有2选择:1、向下兼容x86。2、完全重新设计指令集,不兼容x86。AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同。而Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64(这玩意似乎就是安腾),但是比amd晚了一步,而且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。。。后来不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫x86_64,表示是x86指令集的64扩展,大概是不愿意承认这玩意是AMD设计出来的。
也就是说实际上,x86_64,x64,AMD64基本上是同一个东西,我们现在用的intel/amd的桌面级CPU基本上都是x86_64,与之相对的arm,ppc等都不是x86_64。
x86、x86_64主要的区别就是32位和64位的问题,x86中只有8个32位通用寄存器,eax,ebx,ecx,edx, ebp, esp, esi, edi。x86_64把这8个通用寄存器扩展成了64位的,并且比x86增加了若干个寄存器(好像增加了8个,变成了总共16个通用寄存器)。同样的MMX的寄存器的位数和数量也进行了扩展。此外cpu扩展到64位后也能支持更多的内存了,等等许多好处。
(一)点击工具栏左上角点击 (苹果Logo)标志,关于本机 --> 更多信息 --> 系统报告 -->(左侧栏中)软件
(二)打开终端,输入命令 uname -a 回车
x86_64 表示系统为64位
i686 表示系统32位的
(三)在终端输入命令 ioreg -l -p IODeviceTree | grep “firmware-abi” | sed -e ‘s/[^0-9A-Z]//g’
输出:EFI64 --就说明系统是64位
输出:EFI32 --就说明系统是32位
使用命令$ arch即可查看linux的内核版本。标题中几种版本的区别课参考:linux版本信息以及x86与x86_64的区别
苹果电脑为什么要换 CPU:Intel 与 ARM 的战争