
图灵模型与冯诺依曼模型
图灵模型与冯诺依曼模型
图灵模型
1928 年,德国数学家大卫·希尔伯特提出一个问题——是否存在一种算法,能对任意给定的一个逻辑陈述,经过有限的步骤处理后,确定该陈述是否正确?也就是说能否通过一种机械手段解决所有的数学问题。而在 1936 年,阿兰图灵通过他的论文《论可计算数及其在判定问题上的应用》对大卫·希尔伯特的决策问题进行了深入研究。证明了不存在一种通用算法可以判定所有逻辑陈述的可证性。
具体是怎么证明的呢?(实际理论太复杂,这里进行一个抽象)
比如说,现在有一款机器可以实现大卫·希尔伯特的问题,你现在要通过这台机器进行一个决断,我今天要背 100 个单词,能否成功?
如果机器判定能成功,那么你故意不完成,此时机器会陷入无休止的循环;反之判定你不能成功,那么你立即完成。不管哪种情况,你都可以使得机器和你的结果相矛盾。通过这个自相矛盾的设计,图灵证明了不可能存在一个万能的算法,可以解决所有程序的停机问题。
在讨论图灵模型前,我们可以把计算机定义为一个数据处理器。根据这种定义,计算机可以被看作一个接受输入数据,然后进行计算后给出输出数据的黑盒。

那么什么是图灵模型呢?
图灵模型是一个适用于通用计算机的模型。该模型添加了一个额外的元素——程序。程序是用来告诉计算机对数据进行处理的手段也就是指令集。

在图灵模型中,输出数据依赖于输入数据和程序的共同作用。
- 对于相同的输入数据,如果改变程序,则可以产生不同的输出结果
- 对于相同的程序,如果改变输入数据,则可以产生不同的输出结果
- 对于相同的输入数据以及程序,则一定产生相同的输出结果

至此,图灵模型为我们树立了以上三种定理。
冯·诺依曼模型
后面基于图灵机建造计算机都将数据存储在计算机的存储器中。在 1944~1945 年期间,冯·诺依曼针对图灵模型提出了一个观点,鉴于程序和数据在逻辑上是相同的,因此 程序也能存储在计算机的存储器中。以下便是冯·诺依曼模型建造的计算机:

冯·诺依曼模型将计算机分为 4 个子系统:存储器、算数逻辑单元、控制单元以及输入 / 输出单元。
存储器【Memory】
- 用来存储数据和程序指令的区域
- 存储器中每一个位置都有唯一的地址,用于存取数据
算数逻辑单元【ALU】
- 执行所有的算术和逻辑运算,是实际进行数据处理和计算的区域
控制单元【CU】
- 计算机的大脑,负责指挥和协调整个计算机系统的操作,确保各个部份按正确的顺序执行
输入 / 输出【I/O】
- I/O 设备是计算机与外部世界进行交互的接口,负责数据的输入和输出
冯·诺依曼模型中要求程序必须存储在计算机中。这和早期只有数据存储在存储器中的计算机结构完全不同,早期计算机(如 ENIAC)是通过硬连线配置来执行特定任务的。这些机器使用打孔卡或电线连接来输入程序,修改程序非常复杂且耗时。
现代计算机的存储单元用来存储程序以及其响应数据。这意味着数据和程序应具有相同的格式,因为他们都存储在存储器中,可以快速访问内存中的程序指令和数据,而不需要等待外部设备(如打孔卡或磁带)传输数据。
冯·诺依曼模型中的一段程序是由一组数量有限的指令组成的。按照这个模型,控制单元从内存中提取一条指令,解释指令,执行指令。简言之就是顺序的执行指令。
- 感谢您的赞赏。