深入理解冯诺依曼体系结构

news2025/1/14 18:38:09

文章目录

  • 冯诺依曼体系结构概念
  • 冯诺依曼体系结构的优势
  • 冯诺依曼体系结构的现实体现

冯诺依曼体系结构概念

  冯·诺依曼体系结构也称普林斯顿结构,是现代计算机发展的基础。它的主要特点是“程序存储,共享数据,顺序执行”,即程序指令和数据都存储在同一个存储器中,CPU从存储器中取出指令和数据进行相应的计算。

  该体系结构由美籍匈牙利科学家冯·诺依曼在1945年提出,主要包含以下几个基本组成部分:运算器、控制器、存储器、输入设备和输出设备。运算器负责执行各种算术和逻辑运算;控制器则负责解释指令,控制整个计算机系统的操作;存储器用于存储程序和数据;输入设备用于接收外部数据;输出设备则用于显示或输出处理后的结果。

  冯·诺依曼体系结构的主要特点包括:

1. 单处理机结构,机器以运算器为中心。
2. 采用程序存储思想,即程序和数据都存储在同一个存储器中,并且程序指令和数据可以共享相同的内存地址空间。
3. 指令和数据一样可以参与运算,这意味着处理器可以像处理数据一样处理指令。
4. 数据以二进制表示,这是计算机内部处理信息的基础。
5. 将软件和硬件完全分离,使得软件设计更加灵活和高效。
6. 指令由操作码和操作数组成,操作码指示要执行的操作类型,而操作数则提供操作所需的数据。
7. 指令顺序执行,即处理器按照程序中的指令顺序逐条执行。

  啰啰嗦嗦一大堆,我相信没有人会去特意记这种枯燥乏味的概念知识,我是这样的,看的我头都大了,相比于概念理解更重要,接下来我就带着大家去理解冯诺依曼体系结构。


冯诺依曼体系结构的优势

  首先我们要知道冯诺依曼体系的几个基本组成部分
在这里插入图片描述

输入设备:键盘, 鼠标,扫描仪, 写板等
输出设备:显示器,打印机等
中央处理器(CPU):含有运算器和控制器等
存储器:内存

  各部分之间是相互独立存在,最后通过总线实现连接,这样就能够实现数据的流动,对于数据流动这个概念本质上就是把数据从某一部件拷贝到另一部件,拷贝的快慢就决定了计算机的效率。
  我们已经知道了只要数据流动越快,计算机的效率就越高,那么各个部件的速度又是多块呢?
  我们可以明确得知每个部件的效率是不同的,具体如下图所示:
在这里插入图片描述  当我们有了以上知识储备后,我们来假设现在存在一种结构如下图所示:
在这里插入图片描述  在该结构中没有内存,cpu直接与输入输出设备之间进行数据的传递。
  在该结构中输入输出设备与CPU的速度存在着巨大的差距,这就像是三个人分工合作完成某一任务一样,输入设备将数据传递给cpu进行处理,cpu处理结束后立即将结果交给输出设备,再进行下一次工作,但是问题出现了,由于他们之间速度的差距,cpu会一直处于一种闲置阻塞的状态中,CPU会说输入设备你好没好,你赶紧把数据给我呀,等它拿到输入设备交过来的数据后一瞬间就处理结束,它转头一瞧,CPU:兄弟(输入设备)你快点把数据给我呀,等到cpu再次处理完数据后刚要准备把数据给输出设备,cpu发现,CPU:不是吧老哥(输出设备)你怎么还没有把结果输出呀,它又阻塞起来等输出设备输出,CPU一整个血压飙升。

  这就是木桶短板原理,不管你CPU多牛多块,总体结果还是要看输入输出设备。
在这里插入图片描述

  于是冯诺依曼体系结构闪亮登场。
  冯诺依曼体系结构增加了内存这个单元,内存的速度是介于CPU和输入输出设备之间的,使得计算机的整体效率大幅度提升,但是该体系结构不仅仅是起到平衡速度的作用。
  对于我们的程序必须先从外部加载到内存才能运行起来,我们可以把多个程序加载到内存,然后通过各种调度算法运行我们的程序,这使得CPU的利用率得到进一步强化,CPU表示根本停不下来一直在不断工作,由此计算机的效率问题由硬件问题转移到了软件问题,对于同一台计算机更优秀的软件可以使计算机更加高效。
  对于我为什么程序必须先从外部加载到内存才能运行起来这个问题是由冯诺依曼体系结构决定的,他就是那么规定的,也是必须遵守的。
  关于冯诺依曼体系结构必须强调几点:

  1. 这里的存储器指的是内存
  2. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备)
  3. 外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
  4. 一句话,所有设备都只能直接和内存打交道。

冯诺依曼体系结构的现实体现

  现在假设一个场景,你与你的好朋友通过社交软件进行聊天。
  首先你从键盘输入信息,加载到内存等待调度,调度成功cpu进行处理后再加载到内存等待资源(输出设备),资源就绪后通过网卡输出,你朋友通过网卡接收数据,然后数据加载到内存等待调度,调度成功后cpu处理,处理成功后再加载到内存等待资源,资源就绪再输出到你朋友的显示器上。


本章到此结束,感谢您的阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1628778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode297_二叉树的序列化与反序列化

1.leetcode原题链接:. - 力扣(LeetCode) 2.题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境&#xf…

Python | Leetcode Python题解之第51题N皇后

题目: 题解: class Solution:def solveNQueens(self, n: int) -> List[List[str]]:def generateBoard():board list()for i in range(n):row[queens[i]] "Q"board.append("".join(row))row[queens[i]] "."return b…

浅谈叉车车载电脑的市场现状

叉车的起源 叉车源于美国,兴于日本,虽然中国起步较晚,但是近些年来发展迅速。叉车又称叉式装载车,是对于成件托盘类货物进行装卸、堆垛和短距离运输,实现重物搬运作业的轮式工业车辆。 叉车的分类 叉车分为以上六大类…

webpack3插件CommonChunkPlugin分离vantUI和echarts,问题的webpackJsonp is not defined解决!!!

webpack3插件CommonChunkPlugin分离vantUI和echarts和报错webpackJsonp is not defined的解决 前景:因为项目使用的webpack3开发的场景,打包后的vendor很大,如图显示 如果不做gzip处理的话,大小在2M多,gzip后的大小是…

深入理解操作系统与计算机体系结构

文章目录 操作系统(Operator System)为什么要有操作系统操作系统是如何进行管理的为什么说操作系统是安全,稳定,高效的理解系统调用和库函数 操作系统(Operator System) 概念: 操作系统(Operating System,简称OS&…

C++中的数据结构与算法

随处可见的红黑树 一般会用到[key,value]。 例如github中这个例子,第一个是访问网站,第二个是访问次数,但是这个不是静态的,这有个动态排序,并且当我们需要让相应的访问次数加1的时候,我们用红黑树查找的时…

刷题训练之前缀和

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:熟练掌握前缀和算法。 > 毒鸡汤:学习,学习,再学习 ! 学,然后知不足。 > 专栏选自:刷题…

Oracle系统参数调整【数据库实例优化系列一】

Oracle实例是:内存组件和相关的后台进程组成。这些内存组件提高了数据库的运行,而后台进程负责管理系统和内存组件。 一、SGA和实例优化 Oracle的SGA是指的系统全局区。sga是数据库运行期间使用的一段公有内存,即数据库用户都可以访问这段内存,包括: 共享池、重做日志缓冲…

分享一些实用的工具

1、amCharts5:模拟航线飞行/业务分布图/k线/数据分析/地图等 网址: JavaScript mapping library: amCharts 5https://www.amcharts.com/javascript-maps/ Demo地址:Chart Demos - amChartshttps://www.amcharts.com/demos/#maps 他分为amC…

Xcode隐私协议适配

1. Privacy manifest files 1.1 简介 自己App或三方SDK(通过XCFrameworks|Swift packages|Xcode projects集成的)需要包含一个隐私清单文件(privacy manifest)叫作 PrivacyInfo.xcprivacy。它是一个属性列表,记录了A…

【Hadoop】-HDFS的存储原理[4]

目录 前言 一、fsck命令 1、HDFS副本块数量的配置 2、fsck命令查看文件的副本数 3、block配置 二、NameNode元数据 1、edits文件 2、fsigame文件 3、NameNode元数据管理维护 4、元数据合并控制参数 5、SecondaryNameNode的作用 三、HDFS数据的读写流程 1、数据写入…

2024第十五届蓝桥杯网络安全赛项WriteUp

欢迎关注公众号【Real返璞归真】回复【蓝桥杯2024】获取完整题目附件。 排名 安全知识 错1个选择题,题目说的不清楚,没搞懂题意。肯定不能用eval。错了理论题有点遗憾。 没想到这题前端是要解析json数据,排除CD选了A,结果发现正…

AI大模型日报#0427:阿里智能体“组装工厂”开源、Meta推70M参数SceneScript模型解码真实场景

导读: 欢迎阅读《AI大模型日报》,内容基于Python爬虫和LLM自动生成。目前采用“文心一言”生成了每条资讯的摘要。 标题: BattleAgent:再现历史事件,对历史战役进行多模态动态模拟|大模型论文摘要: 科技论文摘要&…

百度SDK创建应用地址解析失败问题

在百度SDK的设置里先用IP白名单校验全部都通过,项目上线之后再改就行 0.0.0.0/0

数据结构(七)---二叉树

目录 一.树的基本概念 二.树的性质 三.二叉树 1.二叉树的基本概念 2.特殊的二叉树 (1)满二叉树 (2)完全二叉树 (3)二叉排序树 (4)平衡二叉树 3.二叉树的性质 4.完全二叉树…

安装好fedora_kde系统后的操作

文章目录 1 前言2 办公软件2.1 输入法2.1.1 安装 fcitx52.1.2 安装 fcitx5-rime2.1.3 安装 東風破2.1.4 使用 東風破 安装 郭斌勇 大神的 新世纪五笔 项目2.1.5 配置 fcitx5-rime2.1.6 重新部署 3 感谢阅读~ 1 前言 本文用的是 fedora 40 kde plasma 6。 因为有很多的软件都同时…

VTK----VTK数据结构详解1(几何篇)

在讲VTK的数据结构之前,我们先了解可视化数据的两个特征:离散性、有规则或无规则。 离散性。当我们使用计算机去表示我们的数据时,一般都是基于有限数量的点做信息的采样(或插值),因此可视化的数据是以一种…

Sylar C++高性能服务器学习记录07 【协程模块-知识储备篇】

早在19年5月就在某站上看到sylar的视频了,一直认为这是一个非常不错的视频,由于本人一直是自学编程,基础不扎实,也没有任何人的督促,没能坚持下去,每每想起倍感惋惜。恰逢互联网寒冬,在家无事&a…

MacOS 文件系统种类及介绍

MacOS 文件系统种类 详细介绍 详细介绍 从图片中我们可以看到一个文件系统选择器的界面,列出了多种不同的文件系统选项。这些文件系统各有其特点和用途,以下是它们之间的主要区别: APFS:Apple File System,是苹果公司为…

Python实现自动化的服务器部署和配置管理库之pyinfra使用详解

概要 在现代软件开发中,自动化部署和配置管理变得越来越重要。Python pyinfra库是一个强大的工具,可以帮助开发者实现自动化的服务器部署和配置管理。本文将介绍pyinfra库的安装、特性、基本功能、高级功能、实际应用场景以及总结。 安装 首先,来看一下如何安装pyinfra库。…