分享

到底什么是冯·诺伊曼结构?(转)

 闲之寻味 2015-01-18

到底什么是冯·诺伊曼结构?

姜咏江

有关计算机研究的许多文章都爱将“颠覆了冯·诺伊曼结构”做为标签,进而来说明自己的科研成果是如何的伟大。包括院士们也经常使用这个标签,例如,今年的自然科学一等奖“透明计算”,还有据称为程控交换之父搞的“鲶鱼行动”计算机。

什么是冯·诺伊曼结构?这个问题得稍稍往远点说。在计算机界,人们将开山鼻祖的头衔送给了图灵,实际上真正让机器成为计算机的人应该是冯·诺伊曼(当然也包括那些当年的协同者)。图灵机严格地说,还不能称为计算机,原因是图灵提出的状态集并未进入到机器当中。应该说状态集的元素都是“计算”的结果,而没有反映出机器计算的过程。图灵的伟大在于创造了机器自动输入输出及“状态”存储的思想,为后来者制造实用计算机指明了方向,这是人们将图灵捧上计算机神坛的重要原因。我之所以认为图灵不是计算机的开山鼻祖,是因为图灵的设计并没有实现“机器计算”。

什么是机器计算?用图灵机状态的概念来说,就是得到状态的过程。通俗地说,就是获得结果的机器动作过程。机器的计算能力无论如何应该归功于冯·诺伊曼。有资料说冯·诺伊曼的成就不是他一个人的,这对我们来说已经无关紧要,因为冯·诺伊曼之名代表着计算机诞生的里程碑。如果说图灵解决了机器数据存储和输入输出,那么冯·诺伊曼解决了计算机替代人类脑力劳动的最关键一步,那就是“机器计算”。冯·诺伊曼将机器计算的过程划分为指令、程序和数据,通过现在叫做CPU的器件运作,最终得到需要的结果,从而完成了替代人所从事的重复性的脑力劳动。这一伟大的发明当中,最重要的是冯·诺伊曼提出了“程序、数据存储”的思想方法,即将运算的指令程序和数据都存储于计算机的内部,而不是象图灵机那样,存储在外部的带子上,这才是冯·诺伊曼计算机结构的要害之处。现代计算机的各种形式,包括网络结构突破了“程序、数据存储”的思想方法了吗?没有,一个都没有!

不要过多地赞扬将程序存储器和数据存储器分开的“哈弗结构”吧,那只是在冯·诺伊曼伟大思想之下的一个设计改动而已,不要将这种小打小闹的设计改动就叫做“颠覆了冯·诺伊曼结构”。如果这种设计上的小小改进都叫做颠覆,那么我们将无法确认修改和颠覆的区别了吧?

从图灵到冯·诺伊曼是计算机的两个里程碑。用计算机处理多任务引进OS,创建多用户计算机,这应该说是第三个里程碑。将单处理器计算机结合通信技术组织成网络,这是第四个里程碑。在网路上创建客户服务器模式应该算五个里程碑。片上多核处理器的引入可以说是第六个里程碑。为了提高计算机的时效,易用、应用的诸多设计理念和方法,多数都是在这些里程碑之下的增光添彩而已。尽管有些设计声势很大,但多数都是为了商业的目的,进行了过分的宣传和夸大。由于冯·诺伊曼声名显赫,硬说颠覆了冯·诺伊曼该有多大的震撼效应!例如,虚拟计算机、云计算、物联网,这些只不过是网络的商业应用的概念炒作而已,哪一个放弃了程序数据存储的做法?这些炒作都没有对上述6个里程碑做根本性的改变,因而也成不了计算机发展的里程碑。

冯·诺伊曼等人初期创造的计算机是把程序和数据放到一个存储器当中了,哈弗将程序存储器和数据存储器分开了,这是设计的进步。如果将堆栈存储器也单独设立出来,那也是颠覆吗?其实单独设立存储器的事情是计算机设计的必然过程,指令级并行的流水线程序这些方式为了减少相关,设置了编址的寄存器堆,那是什么?那也是存储器。如今解决数据传输速度的各种缓存,到处都是,能说这些都是在结构上颠覆了冯·诺伊曼吗?

不论何种计算存在,就一定有存储器与之伴随,这就是冯·诺伊曼的程序数据存储的特色。将计算和存储彻底分开?怎样分开?请拿出分开的例子。从根本上讲,存储是记忆运算的基础。离开了存储器,对不起,什么事情也做不了。狭义地理解存储器是大容量的?寄存器算不算?高速缓存算不算?

计算机的里程碑和解决设计应用中的难题是两个概念。能够解决应用难题也是很了不起的事情。例如高性能超级计算机的研发,操作系统的优化,通用性的虚拟技术,方便易用的器件等,任何在空间上的扩充,在时间上的高效,都是计算机科学发展的重要问题。但请不要用“颠覆冯·诺伊曼”说事。

机器计算和存储是相依相随的不可分离的计算机组成部分,机器计算不灭,电子计算机不灭,冯·诺伊曼结构永存。

 

2015-1-16



 再谈冯·诺伊曼结构

姜咏江

为了说明问题简单,我引用一段百度百科当中的文字和图:

冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。

根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。

将指令和数据同时存放在存储器中,是冯·诺依曼计算机方案的特点之一 计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成 冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念。

1  · 诺依曼计算机逻辑结构

百度百科上的这段叙述,已经从逻辑上道出了什么是冯·诺伊曼体系结构。图1的逻辑结构已经在计算机业界得到了普遍的承认,然而如何具体深入地将冯氏结构运用到实践当中去,却是多有不同。

我们现在讨论“颠覆冯·诺伊曼结构”的焦点是什么?是将这五大部分各认定是一个设备?显然不能够这样认为。为了详细一点,这里我给出一张计算机微体系结构教学中的一张结构图(见图2)。这张图中不仅将程序存储器(iram)和数据存储器(dram)分开,而且将堆栈存储器(stack)也分开了设计,所有的器件都连接在一条内部总线bus上。这也许应该叫“超哈佛结构”了吧(开玩笑)。根据这张图就可以让学生设计一个计算机的指令系统,去构造一台真实的计算机。这个图的指令设计可以是复杂指令系统,也可以设计成精简指令系统。不论是何种计算机体系结构设计,超出了冯·诺伊曼的体系结构了吗?大家可以看得出完全没有。

 

2  计算机cpu结构

计算机科学的研究不是去探讨历史,更重要的是理论和实践的内涵研究。计算机冯·诺伊曼结构奠定了机器计算替代人脑力劳动基石,这是计算机及数学业界普遍承认了的,因而有人才会用“颠覆了冯·诺伊曼结构”来夸大自己的成就。

认真地分析科学概念的本质,应该是科学家终身要遵循的原则,只有这样才能够有所发明创造。表面上去理解将程序和数据分开存储,而不去理解它的本质,多数情况会迷失自己。“哈佛结构”也可能先于程序数据一起存储的结构出现,但这一点就说哈佛结构先进,未免过于牵强。哈佛结构的真正被重视,并不在当初,不然就不是今天人们尊崇的冯·诺伊曼结构了。哈佛结构的被重视,是在指令级并行的流水线程序执行方式设计当中,哈佛结构设计可以回避由于存储器的独占性引起的设备相关。有一利,必然有一弊。采用哈佛结构之后的访存指令必然要分成两部分,控制矩阵的设计必然会增添逻辑复杂度。不过这些东西都属于在冯·诺伊曼结构下的改造,不应该认定为取代了冯·诺伊曼结构。

当今的计算机逻辑结构就是图1所解释的那样,在这种框架下,每一个部分都可以发生数量和结构的变化,这是计算机深入发展的必然。外设变化不必说,就CPU内部的变化已经极其复杂了,多运算器、多层次控制器、多存储器结构已经屡见不鲜。将处理器与高速缓存捆绑在一起制成的多核处理器已经成为了现代计算机的主流产品。不过许多设计都仍然是围绕着处理器为中心的多核设计,将网络的方法引进了多核设计。就是本人提出的动态计算机核心设计,将固态的运算器、存储器和控制器的连接,变成了一种以存储单位为中心的动态连接处理单位的结构,也没有脱离冯·诺伊曼的基本结构。顺便我将这种结构的文附上,供有心人批评指正。

最后说一句,“然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。”这句话着实欠妥,不管这句话是谁说的。

 

 

2015-1-17

动态计算机的思想方法.pdf

 图灵与冯·诺伊曼的区别

姜咏江

   计算机界最高奖项叫图灵奖,而将计算机之父的称号送给了冯诺依曼,这是为什么?这两位计算机发展史上的两位鼻祖的功绩,主要区别在何处?个人研学之后,结合自己设计计算机的收获,给出简单界限,正确与否会有定论。

   搞程序设计的人或者软件程序员很难理解图灵,因为他们只要懂得冯诺依曼的程序数据存储的思想,会应用指令系统编程就可以了。这是因为指令别人已经为你设计好了,你不必去想如何设计指令。最早人们将机器的工作主要放到数学计算上,因而数学计算是焦点。图灵机解决的正是这个问题。在冯诺依曼计算机中,一种数学计算已经变成了一条指令。由此看来,图灵一不小心,创造了机器指令设计的基本方法。

   图灵设计的状态自动转移,就是机器指令的例行程序。由于一般不需要搞指令系统的原理设计,因而不易理解。指令例行程序设计,就是一条指令执行的一连串机器动作,也称为有限状态变化。如何自动地实现状态变化的方法,图灵解决了。但是,图灵的指令系统单一不够完善,总结起来主要有两条。第一,没能将指令存储起来重复使用。第二,没能形成实现程序结构设计。由于这两点缺欠,使图灵机还不能成为能够处理各种任务的计算机。图灵机欠缺的这两点恰被冯诺依曼提出的程序数据存储的思想解决了。

   到此,我想就不必再多说了吧。

 

2015-1-18

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多