06:冯诺依曼计算机

news/2024/11/29 4:47:49/

布尔代数:是现代电子计算机的数学和逻辑基础

----------

布尔代数与开关电路:

----------

1945年:冯诺依曼101报告

 硬件,操作系统软件、防病毒软件、办公软件、日程生活娱乐软件......

冯诺依曼体系结构:

 算术逻辑单元、控制单元、存储单元、输入设备、输出设备

将CPU与存储器分开并非十全十美,反而会导致所谓的冯·诺伊曼瓶颈(von Neumann bottleneck):在CPU与存储器之间的流量(数据传输率)与存储器的容量相比起来相当小,在现代计算机中,流量与CPU的工作效率相比之下非常小,在某些情况下(当CPU需要在巨大的数据上运行一些简单指令时),数据流量就成了整体效率非常严重的限制。CPU将会在数据输入或输出存储器时闲置。由于CPU速度远大于存储器读写速率,因此瓶颈问题越来越严重。

而冯·诺伊曼瓶颈是约翰·巴科斯在1977年ACM图灵奖得奖致词时第一次出现,根据巴科斯所言:

“……确实有一个变更存储设备的方法,比借由冯·诺伊曼瓶颈流通大量数据更为先进。瓶颈这词不仅是对于问题本身数据流量的叙述,更重要地,也是个使我们的思考方法局限在‘一次一字符’模式的智能瓶颈。它使我们怯于思考更广泛的概念。因此编程成为一种计划与详述通过冯·诺伊曼瓶颈的字符数据流,且大部分的问题不在于数据的特征,而是如何找出数据。”

在CPU与存储器间的高速缓存存储器抒解了冯·诺伊曼瓶颈的性能问题......

----------

数据流量相较CPU的工作效率小,所以CPU计算的速度相对较快,但是如果数据量较大,将数据输入或输出存储器需要较长的时间,这个时间里面,CPU的算力就会闲置。这对于进一步提升计算机的算力是一个瓶颈一样的限制。可能的克服方法:(1)CPU的寄存器,可能提高一些数据的存取效率;(2)分布式计算,或者并行式计算,我曾经看过林子雨老师“大数据原理与应用”网课,其中有介绍到数据量大的时候可以采用分布式存储,而在做计算的时候,可以用程序去靠近数据,而不是让数据跟着程序走。我想,在不同分机上针对不同数据分别进行一部分计算,最后加以分析汇总,这样可能有助于克服冯·诺依曼瓶颈的一些问题。

由于指令与数据放在同一内存带来的CPU利用率(吞吐率)限制就是冯诺依曼瓶颈

冯诺依曼瓶颈的缓解办法有:

1.在CPU和主存之间提供高速缓存

2.为数据和指令提供单独的缓存或单独的访问路径(所谓的改良哈佛体系结构)

3.使用分支预测器算法和逻辑

4.提供有限的CPU堆栈或其他片上草稿行内存以减少内存访问


http://www.ppmy.cn/news/76493.html

相关文章

栈数据合并——华为2023.5.10

题目描述 向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设:栈顶至栈底整数依次编号为n1、n2…nx,n1为最新压入的整数) 1.如果n1n2,则n1、n2全部出栈,压入新数据m(m2n1); 2.如果n1n2…ny(y的范国为[3,x]) &am…

Java学习路线(7)——面向对象基础

1、概念 对象: 是实际存在的具体实例。类: 是对象共同特征的描述 。 2、类的组成 成员变量 成员变量是类中的全局变量,它的作用域是class car的“{}”之内。 public class car{String carTypeName; //汽车类型名称double minPrice; //最低…

Java使用xlsx-streamer和EasyExcel解决读取超大excel数据时OutOfMemoryError的问题

解决读取超大excel数据时OutOfMemoryError的问题 前言关于Excel相关技术场景复现与问题定位问题代码读取50MB40万行数据读取84MB100万行数据 解决方案一:xlsx-streamer引入依赖:示例代码:加载数据效果耗费资源对比 解决方案二:Eas…

面试时,公司的什么表现让你一看就知道不靠谱?

01 面试的时候让你根据他们需要做方案的公司一律不靠谱,百分之99是套方案的。 你想如果业务负责人自己都不知道自己要干什么,要么他自己没想清楚,要不他本身是水货!这样的leader怎么爬上来的不用说了吧,而且跟着他学不…

怎么成为优秀的软件工程师,而不是优秀的码农?

作为软件行业的从业者,每个人都希望最终成为优秀的软件工程师,而不仅仅是码农。一个码农只关注于编写代码和解决问题,而一个软件工程师则涉及到更广泛的职责和技能。 以下是一些要点,可以帮助你脱颖而出,成为一个优秀…

代码随想录算法训练营第三十九天| 62.不同路径 63. 不同路径 II

文章目录 62.不同路径思路代码总结 63. 不同路径 II思路代码总结 62.不同路径 思路 初始化分析很重要 代码 自己写的第一版 class Solution { public:int uniquePaths(int m, int n) {// dp[i,j]: 到达[i,j]有多少种方法// dp[m,n] dp[m-1,n] dp[m,n-1];// dp[0,0] 1;.…

<Linux开发>驱动开发 -之-pinctrl子系统

<Linux开发>驱动开发 -之-pinctrl子系统 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植 uboot移植过程详细记…

Nginx配置带证书代理https

在nginx.conf同级目录下创建文件夹ssl,用来放置证书,把访问对方需要的证书上传到ssl文件夹下,若证书是pem或cer在nginx.conf加上证书即可;若证书是.p12的,则先把证书转换成.pem格式的证书,分别执行下面命令…