如今,芯片相关的话题广受关注,我们经常会听到芯片、CPU架构、ARM架构、芯片研发等相关内容。CPU、指令集、架构、微架构、芯片,这一组概念很容易混淆,经常把人绕进去。那么,到底应该如何理解?
CPU、指令集、精简指令集、复杂指令集
CPU,也叫中央处理器,是智能设备的大脑。常见的CPU有两种,X86、ARM。前者主要用在电脑里,后者主要用在手机、平板上。那么,这里的X86、Arm指的是什么呢?
CPU是负责运算的,但是它需要在什么时候运算,具体做哪些运算,得听系统指令。系统程序发出的各种指令,在被执行前,需要翻译成CPU能听懂的语言。这个翻译官,就是指令集(英文缩写ISA)。常见的指令集有两种,一种是复杂指令集(CISC),X86就属于复杂指令集;一种是精简指令集(RISC),家族成员有ARM、RISC-V、MIPS等。
这两类指令集到底有什么区别,各自有什么特点?这里我们以盖房子来举例。
我们把智能设备完成一次功能操作,比作盖房子。CPU相当于工匠,他负责盖房子,但是具体盖成什么样子,怎么盖,他不知道,得听项目经理的。项目经理相当于系统,他告诉工匠房子具体要怎么盖,传达的指令,相当于指令集。
项目经理要告诉工匠需要盖什么样的房子,他们怎么传达指令呢?为了提高沟通效率,他们相互之间通常会约定一些只有他们听得懂的“行话”,来组成“指令库”。
复杂指令集这边的项目经理,叫“小复”。他和工匠沟通的 “行话”,既包括具体每块砖砌在哪里,这样简单直接的指令;也包括 “砌一个围墙”、“搭一个柱子”这样复杂的指令,要求高。
而精简指令集这边的项目经理,叫“小简”。他就不一样了,他一步一步拆解开来,告诉工匠你这块砖要砌在这里,这块要砌在哪里,发布的都是一些很精简的指令。虽然步骤多,但工人只要按指令一步步来就行,比较简单。
这两个团队,都能把房子盖好。两种方式各有优缺点:
“小复”的建筑团队,处理速度快,能力更强,但是比较臃肿复杂。复杂指令集表现在CPU层面,优点是性能强大,缺点是能耗高,需要更多的电才能运行。电脑对芯片性能要求高,能耗其次,所以用复杂指令集设计的芯片(X86),适合电脑;
而 “小简”的团队,更精简,容易组织,缺点是处理能力差些,但这个可以通过调用更多的工匠来弥补。精简指令集,表现在CPU层面,虽然性能差点,但由于只需要一步一步去做就行,反而能耗低,特别省电。手机和平板电池容量有限,要求CPU必须省电,性能其次,所以精简指令集的芯片(ARM)更适合移动端。
为了避免争论,这里需要特别说明的是,经过长期发展,双方开始取长补短,属于精简指令集的Arm也可以拥有高性能,苹果M2就是例子;而复杂指令集,也在慢慢降功耗。
简单总结一下:指令集是硬件和软件之间的翻译官,把各种程序指令,翻译成硬件能够听懂的语言。常见的指令集包括:X86和ARM。电脑里的X86芯片,采用复杂指令集;手机里的ARM芯片,大部分采用精简指令集。