当初对着一堆拆解图文翻来翻去,纠结cpu是由什么组成的,很长一段时间都以为就是一块单纯的硅片,里面密密麻麻全是晶体管,别的东西都不算数。那会儿手上刚好有一块旧的四代i3,拆散热器的时候盯着金属顶盖发呆,只看得见印着型号的表面,压根分不清哪些才是真正负责干活的单元。
拆开顶盖之后,裸出来的那个晶粒才是核心,晶粒里面分两大块,运算单元和控制单元,再配上一堆寄存器。运算单元就是专门做加减乘还有逻辑判断的,不管是跑游戏帧数还是解压文件,大部分计算动作都靠它来完成。控制单元更像一个调度员,从内存里把指令取出来,再解码,安排运算单元什么时候动手,数据该往哪送,不能乱序。
寄存器的容量特别小,速度却快得离谱,离运算单元最近,临时存一点马上要用的数据和指令,不用反复跑去内存里调取。很多人会把高速缓存也算进去,L1、L2、L3一层层往外排,缓存也是放在芯片内部,用来缓解内存速度跟不上核心的问题。我之前一直把缓存当成cpu的标配组件,后来看到有人争论,说缓存只是配套,不算cpu最根本的组成,两边说法不一样。这只是我的个人感受,不是标准答案。
封装外壳、基板、电容这些,是包裹晶粒的外部结构。
基板负责走线,把晶粒上的引脚引出来,最后和主板的插槽接触。顶盖主要作用是导热还有保护脆弱的硅晶粒,防止安装散热器的时候压碎晶片。这些外部部件能让芯片正常装到主板上通电,但它们本身不参与计算,这也是很多讨论里分歧最大的地方,有人算进去,有人直接剔除不谈。
之前和朋友聊这块,他直接拿手机处理器举例,说现在的SoC里面还塞了显卡、基带,那些只是集成在同一个封装里面,不能算作cpu本身的组成。他的看法是,cpu的定义就卡死在运算、控制、寄存器这一套,别的模块只是贴在一起的附加东西,混在一起很容易搞混概念。我听了之后来回比对资料,发现教材和网上博主的说法本来就没有完全统一,有的定义范围宽,有的收得很紧。
还有晶体管这个东西,它是最小的基础器件,海量的晶体管搭在一起,才拼出运算单元和控制单元,它属于构成单元的基础材料,不是和控制器、运算器并列的组成模块。最开始我就卡在这一步,把晶体管当成独立的组成部分,越看越乱,花了好几天才理顺这个层级关系。
不用硬逼着自己死记一套固定划分,看你是在哪个场景问这个问题。课堂基础题,大概率只需要答运算器、控制器,加上寄存器;要是聊硬件实物拆解,那封装基板、缓存这些都可以顺带提一句。不同场景下,划定的边界本来就不一样。
翻完那些资料之后,再拿起那块旧处理器,不再只看见一块冷冰冰的金属方块。只是现在这块芯片早就没法上机点亮,放在抽屉角落,偶尔拿出来看一眼,也不会再去纠结到底哪一种划分方式才算说得过去。