什么是冯·诺依曼结构的瓶颈

冯·诺依曼结构将CPU与内存分开并非十全十美,反而会导致所谓的冯·诺依曼瓶颈(von neumann bottleneck):在CPU与内存之间的流量(资料传输率)与内存的容量相比相当小,在现代计算机中,流量与CPU的工作效率相比非常小,在某些情况下(当CPU需要在巨大资料上执行一些简单指令时),资料流量就成了整体效率非常严重的限制。CPU将会在资料输入或输出内存时闲置。由于CPU速度及内存容量的成长速率远大于双方之间的流量,因此瓶颈问题越来越严重。而冯·诺依曼瓶颈是约翰·巴科斯在1977年ACM图灵奖得奖致词时第一次提到的,根据巴科斯所言:“……确实有一个变更储存装置的方法,比借由冯·诺依曼瓶颈流通大量资料更先进。瓶颈这词不仅是对于问题本身资料流量的叙述,更重要的是使我们的思考方法局限在‘一次一字符’模式的智能瓶颈。它使我们怯于思考更广泛的概念。因此,编程成为一种计划与详述通过冯·诺依曼瓶颈的字符资料流,且大部分的问题不在于资料的特征,而是如何找出资料。”

在CPU与内存间的快取内存疏解了冯·诺依曼瓶颈的效能问题。另外,分支预测(branch predictor)算法的建立也帮助缓和了此问题。巴科斯在1977年论述的“智能瓶颈”已改变甚多,且巴科斯对于此问题的解决方案并没有造成明显影响。现代的函数式编程及面向对象编程已较少执行,如早期的Fortran一般会“将大量数值从内存搬入/搬出的操作”,这些操作的确占用计算机大部分的执行时间。

版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。http://www.apmygs.com/1623.html
返回顶部