本文主要是介绍冯诺依曼瓶颈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
冯诺依曼瓶颈
- 个人理解,欢迎指错。
文章目录
- 冯诺依曼瓶颈
-
冯诺依曼架构如下图:
-
首先,一个典型的冯诺依曼计算机结构有五大部件:运算、控制、存储、输入、输出,
- 其中运算+控制被封装成CPU(约等于)
- 存储分为主存(也就是常说的运行内存)+辅存(也就是常说的固态、机械硬盘等)
- **冯·诺依曼结构中,计算模块和存储单元是分离的,CPU在执行命令时必须先从存储单元中读取数据。**但是,CPU对于不同的硬件的读取速度是不同的,这主要是由于该硬件运行速度的现在(CPU速度足够),举个例子:
- 假设CPU读取寄存器需要1单位时间,那么读取缓存可能是1*10,读取主存可能是1*10*100,读取辅存可能是1*10*100*1000
-
对于冯诺依曼瓶颈,我认为是由于CPU的处理速度与内存差距过快造成的
- 我们都知道前段时间Apple公司发布了M1芯片,采用的是当前最先进的5nm工艺,直接吊打同期英特尔的14nm++工艺的芯片,根据发布会PPT上的数据是3倍(实际有大神测试,八九不离十),换句话说,当前的CPU发展速度远超存储器的发展速度(没见存储器有什么大突破),这就造成了CPU性能提升带来的效果十分有限。
- 另外有一点,目前的CPU普遍是多核心。多核 CPU 的每一个核心拥有自己独立的运算单元、寄存器、一级缓存、二级缓存,所有核心共用同一条内存总线,同一段内存。即共用内存!,于是多核CPU带来的速度提升也极其有限。
-
以上就是俺的个人理解。
这篇关于冯诺依曼瓶颈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!