冯诺依曼体系结构到了量子计算级别还会适用吗?


到了量子计算机时代,构架领域必然是要变革的,那个时候冯诺伊曼体系还会适用吗?

计算机原理 量子计算机

Chaomok 10 years, 3 months ago

先说说我的结论: 不适用。

1930年前后,在第一台电脑问世之前,就有四位大牛对 形式化运算系统 展开了研究。
他们不是为了发明计算机(电脑),而是如何让机器思考。

这些天才的数学家们想通过所谓的“形式系统”,来证明一个命题: 可以用简单的数学法则表达现实系统

这四位天才就是阿兰·图灵、冯·诺依曼、库尔特·哥德尔、阿隆左·丘奇。

在《 剑桥五重奏:机器能思考吗 》中,作者用一个数学家的丰富想象力虚构了一次特别的晚宴,晚宴发生在1949年的春夏之交,地点是剑桥大学基督学院的一间房子。

五位世界级的科学名人,品尝着美味佳肴,围绕着“机器能思考吗”这一论题展开了广泛深入的探讨。

1936年,图灵提出了“图灵机”的形式系统。图灵提出并证明了可以通过0、1运算来解决复杂问题。

1939年,阿坦纳索夫研制成功了第一台电子计算机ABC。

1945年,诺依曼等人基于当时计算机系统ENIAC的研究成果,提出了EDVAC体系设计,以及其上的编码程序、纸带存储和输入。该设计方案被认为是图灵机的一个很完美的实现。诺依曼也顺利当上了“计算机之父”。

我们现在的编程环境,就是构架在诺依曼体系中,该设计包括五大部件: 运算器、逻辑控制器、存储器、输入设备、输出设备。其中,运算器基于的理论就是0、1运算(最早由数学家布尔提出),其他部件呢?存储器和输入输出设备都是依赖于0、1(你电脑上几个G的苍老师教学视频也都是0和1)。因此,诺依曼体系就是一个这样的体系: 数据存储在内存或者硬盘,并依赖内存进行运算

简单来说就是, 通过修改内存来反映运算的结果 ,在冯氏体系中,逻辑控制器的作用就一个“修改内存或者寄存器”。

由此产生了汇编语言、C语言、Java、C#… 这些语言被称为“命令式语言”。

但是,我们应用机器的目的是, 运算,并产生结果 。所以运算才是本质,而“修改内存”只是运算带来的“副作用”。

在冯诺依曼电脑十年之后,约翰·麦卡锡(John McCarthy)教授对阿隆左·丘奇的工作产生了兴趣,并在1959年公布了他的表处理语言Lisp。该语言其实就是对阿隆左·丘奇的Lambda(希腊字母λ的发音)演算的实现。

保罗·格雷厄姆(对,就是写《黑客与画家》的那位)在总结编程语言时说道:

二十年来,开发新编程语言的一个流行的秘诀是:取C语言的计算模式,逐渐地往上加入 lisp 语言的特性,例如运行时类型和无用单元收集。

那些基于Lambda演算的语言通常被称为函数式语言。

可见,历史眷顾了冯·诺依曼,历史选择了冯·诺依曼体系结构。

现在的芯片(比如单片机,比如手机ARM芯片)众多,整体上都是诺依曼体系结构,不过,在内存的构造上,很多的芯片使用了哈佛体系结构,如摩托罗拉公司的MC68系列、Zilog公司的Z8系列、ARM10系列等。

至于量子计算机,冯式结构不一定行,应该也不会完全推翻。

CIECLE answered 10 years, 3 months ago

Your Answer