第Ⅰ部分CPU制作的基础知识
第1章什么是CPU
本书的主题是“CPU制作”。也许大家听说过CPU,但并不清楚它的具体结构和处理流程。既然本书是为初学者准备的,我们就从“什么是CPU”说起。CPU是“central processing unit”的缩写,指的是中央处理器。它被视为计算机的大脑,根据程序进行运算处理。
例如,1+1=2对于学过数学的人非常简单,但要让CPU进行运算,原理就不那么简单了。
为了方便读者理解CPU的运算处理原理,本章将依次介绍电路是怎样描述逻辑的,以及怎样通过组合逻辑实现灵活的运算装置——CPU。读完本章后,你会理解以下3点*基本的CPU制作知识。
CPU是通过电路描述的逻辑组合产物
CPU是在组合逻辑的基础上,利用时钟同步时序逻辑电路的有限状态机 CPU内的记忆装置寄存器由多个D触发器(DFFa)并联组成,在时钟的上升沿或下降沿更新数值
在制作CPU时,无须深入了解电路图的细节,大致理解即可。
1.1电路能够描述逻辑的理由
物理电路可以通过图1.1所示的抽象化步骤来描述逻辑。
图1.1电路的抽象化步骤
CPU听上去像是复杂的机器,而它实际上不过是一系列电路。那么,单纯的电路是怎样进行加减乘除和分支处理的呢?
1.1.1转换为数字信号
在图1.1中,将①“一系列电路”抽象化为②“0和1的二值信息集合”,利用的是“高电位状态为1,低电位状态为0”的概念。
电位是带电粒子(电荷)的势能,正电荷具有从高电位向低电位移动的特性。日常使用的电池有提高电位的能力,用导体连接电池的正负极后,正电荷从正极向负极移动(形成电流)。
开头提到的概念,是指以特定值为阈值,将数值连续变化的电位(模拟信号)转换为0和1两个离散值(数字信号),如图1.2所示。
图1.2模拟信号转换为数字信号
处理模拟信号这种精细值(连续值)时,即使是微小变化,也会产生直接影响。而处理数字信号这种概略值(离散值)时,微小信号偏差会在数字化过程中被吸收。对精度要求很高的CPU,处理电信号应尽可能容许偏差。
总之,CPU是利用0和1这两个数字信号实现各种运算的。
此外,等电位连续线路中信息量的单位用位(bit)表示。1位取0或1,2位可以表示4个值(00、01、10、11)。如图1.3所示,电池的负极电位为0V,正极电位为1.5V,分别解释为0和1。
图1.3电路和位
1.1.2描述逻辑运算的电路
图1.1所示“电路的抽象化步骤”中的②“0和1的二值信息集合”抽象化为③“AND、OR、NOT运算的集合”,利用的是布尔代数。
布尔代数是仅处理0和1两个值的逻辑体系,定义了AND、OR、NOT,3种基本逻辑运算。每种逻辑运算针对输入模式输出一个固定值。
AND逻辑在输入值均为1时输出1,其他情况下输出0,见表1.1。
表1.1AND逻辑
OR逻辑在一个输入值为1时输出1,其他情况下输出0,见表1.2。
NOT逻辑在输入值为1时输出0,输入值为0时输出1,见表1.3。
表1.2OR逻辑
表1.3NOT逻辑
输入输出
这种输入和输出相对应的表被称为真值表a,输入决定输出的逻辑被称为组合逻辑。
重点是,这3种逻辑运算可以用表示0和1的电路来描述。在观察各种电路之前,我们先来了解一个关键元件——晶体管。
晶体管是半导体元件,结合了导体和绝缘体两种特性。具体来说,如果输
入(基极)的电位为1(高于特定电位),集电极和发射极就会导通;如果电位是0,则集电极和发射极绝缘,如图1.4所示。一般来说,集电极接正极,发射极接负极,电流从集电极流向发射极。可以说,晶体管是通过基极电位操作的开关电路。
图1.4晶体管的电路符号及动作
利用晶体管,AND、OR、NOT电路可被分别描述为图1.5~图1.7:左侧为电路图,右侧为各种输入对应的动作。
在图1.1所示的4个抽象化级别中,从②过渡到③利用的就是这些电路。
图1.5用晶体管描述的AND电路
图1.6用晶体管描述的OR电路
展开