前言
如果问大家是否知道 CPU,我相信不会得到否定的答案,但是如果继续问大家是否了解 ARM 和 X86 架构 ,他们的区别又是什么,相信可能部分人就会哑口无言了
目前随着深度学习、高性能计算、NLP、AIGC、GLM、AGI 的技术迭代,助力大模型快速发展,对于多元算力结合(CPU+GPU)需求越来越高 ,再不了解 CPU 就说不过去了,因此本文将会带您深入了解 CPU 架构,并且解析 CPU 两大主流架构:ARM 和 X86
简介
中央处理器(Central Processing Unit,CPU) 是计算机的运算核心和控制核心。CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。其功能主要是解释计算机指令以及处理计算机软件中的数据
CPU 由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成 。差不多所有的CPU的运作原理 可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。 CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令
处理器系列
x86
Intel 系列: Celeron(赛扬)、Pentium(奔腾)和Core(酷睿)从低端到高端
AMD 系列:Semporn(闪龙)Athlon(速龙)和 羿龙系列 从低端到高端
因为 Intel 为 x86 架构处理器龙头老大,因此后文某些地方可能使用 Intel 处理器代指 x86 架构处理器
注:上面两家公司主要做 x86 架构,但是也会做 ARM 架构,比如 2016 年 AMD 公司推出基于ARM架构的处理器 Opteron A1100
ARM
基本就是英国 ARM 公司的处理器系列,以及所有 ARM 公司授权的公司,诸如高通、苹果(三星代做)、三星和华为
指令集区别
想要了解 X86 和 ARM,需要先了解复杂指令集(Complex Instruction Set Computer,简称 CISC)和精简指令集(Reduced Instruction Set Computer,简称 RISC)
复杂指令集
在 CISC 微处理器中,程序的各条指令是按顺序串行执行的 ,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。CISC架构的服务器主要以IA-32架构(Intel Architecture,英特尔架构)为主,而且多数为中低档服务器所采用
计算机的指令系统比较丰富,有专用指令来完成特定的功能,因此,处理特殊任务效率较高 。机器的存储器操作指令多,操作直接 。包含有丰富的电路单元,因而功能强、面积大、功耗大
适用领域:个人电脑和服务器
注:x86 架构 主要采用 复杂指令集
精简指令集
RISC 是执行较少类型计算机指令的微处理器,起源于 80 年代的 MIPS 主机 (即 RISC 机),RISC 机中采用的微处理器统称 RISC 处理器
RISC 处理器能够以更快的速度执行操作 (每秒执行更多百万条指令,即 MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢
因为设计者主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色,不常用功能会通过组合指令来完成,因此在RISC 机器上实现特殊功能时,效率可能较低,但可以利用流水技术和超标量技术加以改进和弥补
对存储器操作有限制,使控制简单化 。包含有较少的单元电路,因而面积小、功耗低
适用领域:移动设备和嵌入式系统
注:**ARM 架构 ** 主要采用 精简指令集
总结
就 CPU 功耗来讲,RISC 和 CISC 走了两条不同道路。CISC 走的是性能路线 ,先把性能做上去,功耗其次。不断地考虑如何散热,使用金属片,风扇,水冷等多种设备降温,因为用在 PC 上,耗电大不会有明显的问题。RISC走的是低功耗路线,面向的是需要用电池的场景,功耗低是首要原则,性能其次
64位计算
x86
ADM 公司首先开发出 64 位版本的 x86 指令集,64 位的指令集名为 x86-64(简称 x64)
Intel 公司认为将自己 32 位 x86 架构进化出 64 位架构,新架构效率会很低,因此创建新 64 位处理器项目,名为 IA64,由此制造出 Itanium 系列处理器
后面 AMD 知道自己造不出能与 IA64 兼容的处理器,于是将 x86 扩展,加入了 64 位寻址和 64 位寄存器。最终出来的架构就是 AMD64,最终 ADM 成为了 64 位版本的 x86 处理器的标准。最后 Intel 将 Itanium 系列处理器彻底废弃,并最终采用 AMD64
ARM
ARM 公司在看到移动设备对 64 位计算的需求后,于 2011 年发布了 ARMv8 64 位架构,基于原有的原则和指令集,开发简明的 64 位架构,ARMv8 使用了两种执行模式,AArch32 和 AArch64
ARM 设计的巧妙之处,是处理器运行中可以无缝地在两种模式间切换 。这意味着 64 位指令的解码器是全新设计的,无需兼顾 32 位指令,而处理器依然可以向后兼容
异构计算
ARM 的 big.LITTLE 架构 处理解决当今行业面临的难题:如何创建既有高性能又有极佳节能效果的片上系统 (SoC) 以延长电池使用寿命
在 big.LITTLE 架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的 2 个核或者 4 个核。一个双核 Atom 处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM 通过 big.LITTLE 向移动设备推出了异构计算 。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行复杂的游戏时,使用的是高性能的核
big.Little 系统中两个处理器之间高效无缝地切换工作负载是通过开发高级 ARM 系统 IP 实现的,这样可确保 Cortex-A15 和 Cortex-A7 处理器之间完全的高速缓存、I/O 的一致性
如果您想要详细了解 big.LITTLE 的底层原理和机制 ,可以查看下方 ARM 官网解释
官方解释:
功耗对比
以前人们的刻板印象,低功耗和高算力处理器就是泾渭分明,x86 架构就是做高算力,ARM 架构就是做低功耗
但是自从苹果发布 M1 芯片(目前的 M2 芯片远超同等 x86 处理器性能),并且随着其他 ARM 处理器的快速发展,人们才恍然惊觉,原来靠低功耗起家的 ARM 也能做高算力 ,可以真正做到更高性能和更低功耗
根据 2022 年 Ampere 公司给出的数据,其 CPU 的性能超越传统 x86 处理器 3 倍,性能功耗比领先近 4 倍,与 x86 服务器 CPU 相比,Ampere Altra 系列可用 50% 的能耗,提供 200% 的性能
参考链接
- 分不清ARM和X86架构,别跟我说你懂CPU! - 知乎 (zhihu.com)
- ARM 与 x86:有何区别? (redhat.com)
- CPU的基本概念 - 知乎 (zhihu.com)
- CPU的介绍与选择,看完你懂了吗? - 知乎 (zhihu.com)
- 什么是 CPU?-- 中央处理器详解 -- AWS (amazon.com)
- CISC和RISC的特点和区别 - 不是公子的小白 - 博客园 (cnblogs.com)
- CPU_X86架构和ARM架构入门篇-腾讯云开发者社区-腾讯云 (tencent.com)
本文由博客一文多发平台 OpenWrite 发布!