本章将讲解CPU的相关知识,涉及电路、逻辑和计算机组成原理,作为我自学CSAPP的第一门笔记,也衷心感谢出视频、博客介绍这部分知识的up主、博主,相关链接都在最后。
众所周知,半导体的原材料Si,其最外层有4个电子,Si原子之间会形成共价键,是一种稳定结构,几乎不导电。
如图我们在一块硅晶体的两边分别进行P型掺杂和N型掺杂。
相反地,如果正极接N,负极接P,那么,电池所提供的电场与内建电场方向相同,会加剧内建电场的效果时,耗尽层扩大,从而无法导通。
与二极管的原理一致,我们先介绍NMOS。
我们在P型掺杂的肩膀处加入两处的N掺杂,在两处交界处都会形成耗尽层,而二极管只能从P导向N,因此此时对于这样一个结构,无论正接还是反接都无法导通。
此时我们借助电容,因为电容器可以通过电压来控制电场,我们在上层两块N型掺杂区域中间,加入电容器正极 和 绝缘层,P型区域充当电容器负极,那么将会产生正极->负极的电场,当电压足够,电场足够强时,电子会被吸引到N型区域中间,不仅填充了空穴,并且还会有大量的自由电子,其性质类似于N型掺杂,从而连通了两个N型区域,拥有了导电性,中间这个区域被称为N沟道。
这样一个MOSFET被称为NMOS,它具有以下的性质:
如果我们将N型、P型区域调换,并且电容正负极也调换,就会得到PMOS,其性质正与NMOS相反。
利用NMOS与PMOS,并且借助串联、并联的组合,我们就可以通过输入电信号的高低压来得到不同的输出,即各种逻辑电路。
直接上图,非门由一个连接高压VDD的PMOS和连接电压VSS的NMOS组成。
我们认为高压为1,低压为0,那么这就是一个基础的非门电路实现。
直接上图,非门电路由或非门和非门组成,其对应的电路图、符号、真值表如下。
与门结构上与或门很类似,将PMOS和NMOS的串联、并联方式进行了更改,同样由与非门和非门组成。
这里着重介绍异或门,异或的逻辑为相同为0,不同为1,运算法则为a⊕b = (¬a ∧ b) ∨ (a ∧¬b)。
在实现上,异或门与或门只有输入为(1,1)时不同,异或门的输出为0,因此借助或门、与非门、与门就可以组成对应的异或门,如图所示。
对于1位(1 bit)的加法而言,有两个输入和两个输出。
两个输出分别为本位和Sum,进位Carry,简写为S和C。
事实上,除了最低位,加法器应该总共有三个输入,除了本身的输入的加数与被加数,还有低位进位C,具体表如下
电路中S由2个异或门得到,而C由异或门、与门、或门组成,其逻辑表达式和逻辑电路图如下
使用串行电路,通过1个半加法器和n-1个全加法器组成n位的整数加法器。
行波进位的缺点在于依赖性,进位是串行进行的,必须得到低位的进位才能计算高位的进位,速度慢。
RCA慢的原因在于进位C的计算具有高度先后顺序,因此CLA的思路就是空间换时间,利用表达式的展开,将进位所需的计算结果提前全部算出,下图为4位加法中,每一位所产生的进位,其中Gi=Ai·Bi,Pi=Ai⊕Bi,都是在输入A、B的一开始,就可以并行计算得到的结果。
这种加法器的问题在于随着位数的增加,所需要的门电路会迅速增长,对制造工艺和面积要求而言都是巨大挑战,事实上实际的ALU中,往往采用RCA和CLA混合的架构。
众所周知,计算机的减法是利用补码来表示负数从而实现的,因此我们只需要关注求补电路即可。
补数=反数+1,那么可以使用一个非门和加1的加法器组装得到。具体的求补电路和减法器如图所示
最后补张乘法器的图,以后有空在慢慢琢磨。
从底层的元件起步,确实开始一点点地感受到计算机的奥妙所在,没有那么云里雾里了。
就是一个下午看了太多内容,不仅这一小部分,还有后面的寄存器、内存、指令程序、CPU设计、多进程等等,感觉脑子要爆炸了,一个下午像是上了半个学期的内容,只好先写一点最简单的部分,巩固一下。
只能说走出舒适区是痛苦的,但也是不得不为的,一会儿打算再看一会儿书,不想盯着视频看了。
——2023.3.12
参考链接:
【硬件科普】带你认识CPU第00期——什么是MOSFET