从图灵机到计算机
图灵机给出了一个可实现的通用计算机模型,它能模拟现代计算机的所有计算行为,为了纪念这一伟大构想,美国计算机协会(ACM)设立计算机奖项图灵奖,旨在奖励对计算机事业作出重要贡献的个人 。
图灵奖对获奖条件要求极高,评奖程序极严,一般每年仅授予一名计算机科学家。
图灵奖是计算机领域的国际最高奖项,被誉为“计算机界的诺贝尔奖”。
图灵机是计算机的理论模型,基于这个理论模型去实现一台真正的计算机,还需要考虑以下几个问题。
1. 存储带上的字符表
上一个例子中计算了 3 和 2 相加,如果是10000 + 9999呢?
显然全用1表示是不合理的,如果用十进制表示呢?此时:
- 字母表中的包含的符号为:{0,1,2,3,4,5,6,7,8,9,b},共11个符号
- 用于图灵机控制的程序将大量增加
- 确定当前指令也需要更多的时间
由此可知:
- 字母表中的符号越多,读入和移动的次数减少,但程序的数量就越多
- 字母表中的符号越少,程序量会减少,但读入和移动的次数就越多
研究表明,字母表中的最优数量为欧拉常数e(2.7182818284590……),取整后为3。
与具有两个状态的电子元器件相比,具有三个状态的电子元器件制造上更困难,可靠性更低。
所以字母表的数量一般为2,即计算机中的数为二进制表示(0,1)。
2. 关于控制器
计算机中的数的表示已经确定了,采用二进制表示(0,1),这里数是如何计算的呢?
2.1 布尔代数
英国数学家布尔(G.Boole),创立了一门全新的学科——布尔代数,为计算机的开关电路设计提供了重要的数学方法和理论基础。
2.2.1 基本逻辑运算
逻辑 | 真值表 | MIL逻辑符号 | 动态示意图 |
---|---|---|---|
与 AND |
|||
或 OR |
|||
非 NOT |
2.2.1 复合逻辑运算
逻辑 | 真值表 | MIL逻辑符号 | 动态示意图 |
---|---|---|---|
与非 NAND |
|||
或非 NOR |
|||
异或 XOR |
|||
异或非 XNOR |
2.2 算术运算
通过上述的逻辑运算,如何转换成二进制的算术运算呢?
以二进制加法为例,组合如下:
- 0 + 0,结果为 0,进位为 0
- 0 + 1,结果为 1,进位为 0
- 1 + 0,结果为 1,进位为 0
- 1 + 1,结果为 0,进位为 1
仔细分析,结果列可以由异或逻辑运算实现,进位列可以由与逻辑运算实现。
即可以通过异或门和与门实现一位二进制加法器(半加器)。
两个半加器组合可以实现一位全加器,多个全加器的组合可以实现任意比特位加法器。
真值表 | 逻辑实现 |
---|---|
2.3 存储能力
图灵机在运行的时候,需要记录和修改当前的状态,这就需要存储的功能。
同样,逻辑运算可以实现存储数据的功能。通过4个NAND门电路可以构成一个D锁存器(Data Latch,D-Latch)。
D锁存器中有 D(Data) 和 E (Enable)两个输入信号,Q 和 $\overline{\text{Q}}$两个输出信号。D锁存器在E为0时保持前一个数据,E为1时将输入D的数据输出到Q。
$\overline{\text{Q}}$是输出信号Q的反相信号。
D锁存器真值表如下:
:::tip
D锁存器就是最简单的存器单元,可以存储 1bit 的数据。多个D锁存器的组合可以存储多个比特位,我们常说的寄存器就是这玩意。
多个D锁存器的组合搭建复杂的电路,外加寻址功能,就构成一个内存。
这样也可以理解,内存、寄存器在断电后信息就会丢失。
:::
D锁存器和NOT门组合,可以实现依据时钟信号同步并保存数据的D触发器。
D触发器的电路构成和符号如下表所示:
电路构成 | 符号 |
---|---|
D触发器的动作原理如下图所示:
D触发器只有在CLK上升沿时,Q的输出才反映D端的输入信号。
D触发器是时序电路的最基本组成单元。
3. 晶体管实现逻辑门电路
使用逻辑组合可以完成二进制的运算和存储,这样我们离计算机的实现就更近一步了。那么在计算机中,各中逻辑门是如何实现的呢?
早期的电子管到现在的晶体管、集成电路的发明,使得各个逻辑门在电路中得以实现。
型号 | 内部构造 | 电路符号 |
---|---|---|
N_MOS | ||
P_MOS |
以NMOS为例,栅极不施加电压时,源极和漏极见填充了异种半导体材料,因此电流无法流过;当给栅极施加正电压时,源极和漏极中的N型半导体材料的自由电子被栅极吸引,使通道中充满电子,源极和漏极间的电流从而能够流动。
如下表所示,通过N-MOS和P-MOS的组合,可以实现各种逻辑门。
逻辑 | 真值表 | MOS管电路 |
---|---|---|
非 NOT |
||
与非 NAND |
||
异或 XOR |
4. 计算机的实现
图灵机给出的通用计算机模型,基于这个模型:
- 我们把数字运算转换成二进制的运算
- 并将所有的二进制运算转换成布尔运算
- 又将所有的布尔运算通过MOS搭建的电路实现
这样,一台“计算机”就算实现了。
冯诺依曼fu于1945年6月发表了《存储程序控制原理》的电子计算机方案,并于1952年制造完成EDVAC。
EDVAC是世界上第一台存储式计算机,是所有现代计算机的原型。
冯诺依曼计算机架构如下图所示:
标签:存器,计算机,实现,逻辑,二进制,图灵机 From: https://www.cnblogs.com/wahahahehehe/p/16665794.html