|||
再谈冯·诺伊曼结构
姜咏江
为了说明问题简单,我引用一段百度百科当中的文字和图:
冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。
根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。
将指令和数据同时存放在存储器中,是冯·诺依曼计算机方案的特点之一 计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成 冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念。
百度百科上的这段叙述,已经从逻辑上道出了什么是冯·诺伊曼体系结构。图1的逻辑结构已经在计算机业界得到了普遍的承认,然而如何具体深入地将冯氏结构运用到实践当中去,却是多有不同。
我们现在讨论“颠覆冯·诺伊曼结构”的焦点是什么?是将这五大部分各认定是一个设备?显然不能够这样认为。为了详细一点,这里我给出一张计算机微体系结构教学中的一张结构图(见图2)。这张图中不仅将程序存储器(iram)和数据存储器(dram)分开,而且将堆栈存储器(stack)也分开了设计,所有的器件都连接在一条内部总线bus上。这也许应该叫“超哈佛结构”了吧(开玩笑)。根据这张图就可以让学生设计一个计算机的指令系统,去构造一台真实的计算机。这个图的指令设计可以是复杂指令系统,也可以设计成精简指令系统。不论是何种计算机体系结构设计,超出了冯·诺伊曼的体系结构了吗?大家可以看得出完全没有。
图2 计算机cpu结构
计算机科学的研究不是去探讨历史,更重要的是理论和实践的内涵研究。计算机冯·诺伊曼结构奠定了机器计算替代人脑力劳动基石,这是计算机及数学业界普遍承认了的,因而有人才会用“颠覆了冯·诺伊曼结构”来夸大自己的成就。
认真地分析科学概念的本质,应该是科学家终身要遵循的原则,只有这样才能够有所发明创造。表面上去理解将程序和数据分开存储,而不去理解它的本质,多数情况会迷失自己。“哈佛结构”也可能先于程序数据一起存储的结构出现,但这一点就说哈佛结构先进,未免过于牵强。哈佛结构的真正被重视,并不在当初,不然就不是今天人们尊崇的冯·诺伊曼结构了。哈佛结构的被重视,是在指令级并行的流水线程序执行方式设计当中,哈佛结构设计可以回避由于存储器的独占性引起的设备相关。有一利,必然有一弊。采用哈佛结构之后的访存指令必然要分成两部分,控制矩阵的设计必然会增添逻辑复杂度。不过这些东西都属于在冯·诺伊曼结构下的改造,不应该认定为取代了冯·诺伊曼结构。
当今的计算机逻辑结构就是图1所解释的那样,在这种框架下,每一个部分都可以发生数量和结构的变化,这是计算机深入发展的必然。外设变化不必说,就CPU内部的变化已经极其复杂了,多运算器、多层次控制器、多存储器结构已经屡见不鲜。将处理器与高速缓存捆绑在一起制成的多核处理器已经成为了现代计算机的主流产品。不过许多设计都仍然是围绕着处理器为中心的多核设计,将网络的方法引进了多核设计。就是本人提出的动态计算机核心设计,将固态的运算器、存储器和控制器的连接,变成了一种以存储单位为中心的动态连接处理单位的结构,也没有脱离冯·诺伊曼的基本结构。顺便我将这种结构的文附上,供有心人批评指正。
最后说一句,“然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。”这句话着实欠妥,不管这句话是谁说的。
2015-1-17
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 09:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社