有幸拜读了《隐匿在计算机软硬件背后的语言》这本书。
以前特别希望了解计算机的最底层原理,但大多数书籍都是讲到二进制部分,并没有讲解计算机是如何读懂二进制的,是如何通过二进制进行计算。这本书教你使用很基础的元器件,从零开始搭建一部计算机。本文主要是记录下本人在学习过程中的一些笔记。
具体原理可以看下面文章,讲得很详细。
传送门
总结
所有的信息都可以通过二进制编码表示
命令操作可以通过逻辑门组合实现
加法是计算机的最基本运算,实现了加法就能由此实现数学中的其他运算,从而实现计算机复杂功能。
1-9部分
主要讲述编码,通过列举 莫尔斯码和布莱叶盲文 介绍编码如何表示信息。
10-11部分
确定某种事物是否遵循特定的标准
可以使用交并集来进行抽象,交并集进行运算其实就是布尔运算。
所以布尔运算可以用来对逻辑进行抽象。
思考将布尔运算和电路联系起来
开关的不同组合可以表示或与非。
用继电器代替开关,我们将继电器开关弄到一起,就可以弄成输入 输出端。
同样继电器的不同组合就可以表示不同的逻辑门。
现在的计算机原理也是差不多,就是对表示逻辑门的元器件进行了升级。
好了,现在我们知道所有的逻辑门电路都可以通过电路元器件的不同组合来实现,那么设计计算机其实就是在逻辑门的基础上进行搭建设计。
设计加法器
计算机最基础的部分就是加法器。
首先是研究二进制加减特性,从输入输出的关系中,设计对应的逻辑元器件(半加器),加上前面的进位信息,就是全加器,这样就完成对1个位的二进制加减的操作。
多个组合起来就可以对多个位数进行加法运算。
减法器
传统的减法需要进行借位运算,这个计算机不好理解,于是有人发明了新方法可以避免借位。
这个新方法分为三步进行计算。每一步都可以使用逻辑门表达。
故减法器就被设计出来了。
减法器和加法器差不多,可以进行合并操作,加个开关决定是做加法还是做减法。
反馈与触发器
将反向器的输入输出接到一起,由于继电器的延时,可以形成一个振荡器
类似,将电路中某段的输出引入到它的输入中,会形成一个反馈器
接通上面的开关,灯泡被点亮,断开此开关灯泡仍然亮着
接通下面的开关,灯泡被熄灭,断开此开关灯泡仍然不亮
故该电路具有记忆功能
继续研究改进
可以弄出有数据位记忆功能的D型触发器,就是锁存器
继续升级改造
边沿触发器 只有在时钟输入从0变化到1的瞬间输出端才会发生变化
在此基础上继续改造,可以做出分频器
几个分频器相连,研究输入关系,可以做出计数器
旋转90度
一个计时器大功告成
存储器
就是在上节锁存器的基础上,加个选择器,选择不同的位输出
8-1选择器
8位存储器
改造下就能实现64K乘8的存储器
注意前面这些存储结构,断电后数据就直接消失
自动操作
自动操作主要是每条指令为操作动作+地址
指令需要进行编码,然后肯定有特定的逻辑门组合可以实现该操作。
指令和存储地址是分开的