冯•诺依曼瓶颈本质的原因是什么?

  思考:冯•诺依曼瓶颈本质的原因是什么?

冯•诺依曼型计算机以存储程序原理为基础,指令与数据混合存储,程序执行时, CPU 在程序计数器的指引下,线性顺序地读取下一条指令和数据,以运算器为中心,这就注定了其本质特点是线性或是串行性,表现在两个方面:
1. 指令执行的串行性。 CPU 的运算依赖于寄存器。每一个指令的运算或多或少依赖于其前序指令的执行结果,尽管后来有些技术,比如将以运算器为中心通过运用 DMA 等技术变为以存储器为中心、超标量、智能预测执行、寄存器改名技术以达到多条管道并行进行,这已经或多或少地改变了冯•诺依曼的原型,但是本质还是串行执行指令。使得我们在设计程序时,基本上是按流水线的方式在思考问题,即使结构化编程,每个结构体本身也还是串行思考方式下实现的。而时下时兴的面向对象技术只是实现了封装,每个对象成员在设计时也是以串行的思考方式实现的,使得软件的实现效率比较低。
2. 存储器读取的串行性。存储器是现代冯•诺依曼体系的核心。一切数据都要在存储器里打转,但是研究计算机原理,注意到,所有对内存的读取都是独占性的,每一个瞬间,内存实体只能被一个操作对象通过片选信号占据。这就决定了内存的串行读取特性,尽管后来出现了许多新的技术,比如双端内存读取技术(可以从两个读取口同时互不影响地操作内存,初期为了解决显存的显示瓶劲)及双通道甚至多通道技术(可以将待写入的数据分块同时写入不同的存储区块,可以将内存存取速度成倍地提高,这种技术我认为源于 RAID 技术),这些技术或多或少增强了系统的性能,但都没有改变每一个单体串行工作的特点。
综上所述,我认为冯•诺依曼瓶劲的本质是串性。改善的出路是使用并行技术,在指令运算处理及数据存储上都巧妙地运用并行技术。比如:存储器的访问不再用片选控制,而是可以任意地访问单元,在读写数据时用原子操作或事务处理的思想保证数据的一致性。
下一篇准备写写"时下程序员:串行思考的世界:("
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值