来自:https://blog.csdn.net/guojunxiu/article/details/79942905

先看一下冯诺依曼结构:

再看一下冯诺依曼结构的“对头”——哈佛结构:

可以看到两者的主要差别是冯诺依曼架构不区分数据与指令,将两者放在同一内存中;而哈佛结构将两者分别存放在Instruction Memory和Data Memory。 
指令和数据放在一起的后果是取指令和取数据不能同时进行,否则会引起访存的混乱。发展到今天,CPU的运算速度已经远远超过了访存速度,因此CPU必须浪费时间等数据;而哈佛构架由于指令和数据是分开存放的,所以在等数据的同时可以预取指令,CPU的利用率更高。 
由于指令与数据放在同一内存带来的CPU利用率(吞吐率)降低就是冯诺依曼瓶颈 
维基百科的解释如下:

The shared bus between the program memory and data memory leads to the von Neumann bottleneck, the limited throughput (data transfer rate) between the central processing unit (CPU) and memory compared to the amount of memory. Because the single bus can only access one of the two classes of memory at a time, throughput is lower than the rate at which the CPU can work. This seriously limits the effective processing speed when the CPU is required to perform minimal processing on large amounts of data. The CPU is continually forced to wait for needed data to be transferred to or from memory. Since CPU speed and memory size have increased much faster than the throughput between them, the bottleneck has become more of a problem, a problem whose severity increases with every newer generation of CPU.

冯诺依曼瓶颈的缓解办法有: 
1. Providing a cache between the CPU and the main memory 
2. providing separate caches or separate access paths for data and instructions (the so-called Modified Harvard architecture) 
3. using branch predictor algorithms and logic 
4. providing a limited CPU stack or other on-chip scratchpad memory to reduce memory access

实际上,绝大多数现代计算机使用的是所谓的“Modified Harvard Architecture”,指令和数据共享同一个 address space,但缓存是分开的。在内存里,指令和数据是在一起的。而在CPU内的缓存中,还是会区分指令缓存和数据缓存,最终执行的时候,指令和数据是从两个不同的地方出来的。你可以理解为在CPU外部,采用的是冯诺依曼模型,而在CPU内部用的是哈佛结构。

参考: 
冯诺依曼架构 
哈佛架构 
知乎:为什么电脑还沿用冯·诺伊曼结构而不使用哈佛结构?

计算机体系结构基础2(究竟什么是冯诺依曼瓶颈(von Neumann Bottleneck)?)相关推荐

  1. 计算机体系结构基础引言

    关与作者更多博客请访问云里云外开源社区 计算机体系结构基础引言 文章目录 计算机体系结构基础引言 1.1一以贯之 1.1.1为什么我按一下空格键,PPT会翻一页 1.2什么是计算机 1.3计算机的基本 ...

  2. 计算机体系结构基础中的问题(可能的问题)回答(胡伟武)

    计算机体系结构基础中的问题回答(胡伟武) 文章目录 计算机体系结构基础中的问题回答(胡伟武) 从按下键盘到PPT翻页的过程? 卡顿的原因? CPU微结构中影响性能的因素? 独显的数据传输问题? 什么是 ...

  3. 【学习笔记】高性能计算之胡伟武《计算机体系结构基础》(第三版)

    自2022年3月1日起每天更新,3.3已更新至第三章 写在前面 1. 引言 1.1 计算机体系结构的研究内容 1.2 衡量计算机的指标 1.3 计算机体系结构的发展 1.4 体系结构设计的基本原则 2 ...

  4. 计算机体系结构基础知识

    1.计算机体系结构是什么? ▪ 计算机体系结构--传统是研究如何在给定工艺限制和软件要求下设计更好的计算机.最早指的是指令集的设计: ▪ 后来发展为:涉及计算机硬件(逻辑设计和封装技术).指令集体系结 ...

  5. 1【计算机专业必备基础知识】《计算机体系结构基础》(胡伟武)速读笔记(上篇)“这位同学,请描述一下PPT完成翻页时电脑软硬件是如何协作的?”

    前言 在学习计算机的这几年,一直有些很基础的问题困扰着我,C++.Java照写,但总感觉没有底气.本科学过操作系统.数据结构.微机原理.数字电路,(不知是不是因为我给忘干净了还是咋的,)平时遇到学术道 ...

  6. 计算机体系结构基础最近的知识点

    我是小康小白,一个平平无奇的Java小白.热爱有趣的文字,生活和远方. 个人博客:https://blog.csdn.net/weixin_45791445 有问题欢迎QQ联系:1059320343 ...

  7. chapter16 计算机体系结构基础

    1big endian little endian 低地址保存的是整数的地位称为little endian,反之称之为big endian.(x86平台为小端) 2 cpu操作的基本步骤为 eip取指 ...

  8. 两种基本计算机体系结构_照片_哈佛与冯诺依曼体系结构

  9. 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之减少命中时间和流水线访问和多组缓存增加带宽(三)

    优化二:减少命中时间的方式预测 路预测是一种高速缓存优化技术,它在高速缓存中保存额外的位来预测下一次高速缓存访问的路(或者组内的块).这种预测可以提前设置多路选择器来选择期望的块,并且在那个时钟周期内 ...

  10. 计算机体系结构复习笔记

    本篇复习笔记对应的课本是<计算机体系结构 量化研究方法> 参考了老师的PPT,以及总结了课后习题和考试题 文章目录 1. 计算机体系结构基础 1.1 计算机系统的分层 1.2 计算机体系结 ...

最新文章

  1. [引]ASP.NET IIS 注册工具 (Aspnet_regiis.exe)
  2. Eclipse里PHP built-in server在操作系统中的实际位置
  3. 使用ABAP批量下载Markdown源文件里的图片到本地
  4. 【转载】关于测试人员的职业发展
  5. 更改日志级别_如何在运行时更改日志记录级别
  6. 内核编译(make)
  7. c# 判断点是否在区域内 点在区域内 在多边形内 判断
  8. 【转】无服务计算(Serverless Computing)核心知识
  9. sklearn.metrics.mean_absolute_error
  10. 第一个ncurses程序: hello world !!!
  11. OpenShift 4 - Pod是如何使用Serivce Account访问API的
  12. linux7编译mysql5.7安装,CentOS 7.4 使用源码包编译安装MySQL 5.7.20
  13. java 8的内存分代改进_java8的内存结构,这一篇文章就够了
  14. python工资这么高为什么不学-Python为什么这么火 Python岗位薪资水平如何
  15. XML非法字符的处理
  16. 拆解iPhone6S---ESM
  17. SolidWorks一级减速器教程
  18. FC光钎通道交换机,同行性价比超高
  19. 认识Apache Bookkeeper
  20. 云堡垒机和软件堡垒机哪个好?区别是什么?

热门文章

  1. 利用PicGo快速获得图片外链(七牛云图床)
  2. Deep Learning Algorithm for Cyberbullying Detection
  3. jQuery和纯js实现addClass、removeClass方法
  4. 人工智能轨道交通行业周刊-第9期(2022.8.8-8.14)
  5. 2021-05-04 16:37:16.550 ERROR 3268 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] :
  6. 深扒ASML 的玩法,对工控企业生态圈的思考
  7. Arcgis地图切片专题(关于tpk的制作以及迁移切片包至服务器的相关流程)
  8. 虚拟机上的hadoop localhost:8088,localhost:50070均不能访问
  9. 网页中嵌入flash文件的几种方法
  10. java dismiss_为什么我的dismiss()方法无法关闭自定义警报对话框