有了门电路,人类制造出了第一款电子管计算机。在设计之初,科学家们还是沿用了人类的思维采用了十进制,用十个真空管代表一位上的0~9,看起来是很方便,但一个真空管对应一位数实在是太浪费了,计算机的体积也非常大。此时另一位不世出的天才科学家又站了出来,他就是被誉为“现代计算机之父”的冯诺依曼。
冯诺依曼提出将CPU改为了二进制,二进制的好处在于它刚好与高低电平相对应,他规定1代表高电平,0代表低电平;除此之外,二进制还有一个优势就是精度够高,举个例子,0~5V分成10份,电压每变化0.5V就代表十进制0~9中的一个值,当时电子元件的远不如现在这般精密,一旦出现误判后果是非常严重的。得益于这两点,二进制的设计一直被沿用至今。
自己设计一款CPU严格来讲,CPU只是芯片的一部分,不过目前我们习惯性的将这两个概念混在一起了。CPU全称为中央处理器,由控制单元,运算单元和存储单元三部分组成。这里我们单以运算器为例,来讲一下如何用逻辑门来实现数的运算
运算单元的类型有很多,加法器是最基础的一种,其余三种运算都能用加法来实现。
在不考虑进位情况下,根据布尔代数的定义,我们可以得到加法的真值表:
其中A,B为输入,C为进位,S为输出值,这种加法器叫做半加器,其布尔式为A⊕B=A¬B ¬AB
当需要考虑进位时,输入变成了三位数,根据布尔代数的定义,全加器需要多一个进位输入,所以需要使用两个半加器,将一个半加器的加和输出连接到另一个半加器,这样一来,就可以用来进位了。我们可以列出真值表,其布尔式如下:
(A⊕B)⊕C=A⊕B⊕C,由于排版原因,此处不再展开。