【Linux系统编程】——理解冯诺依曼体系结构

文章目录

  • 冯诺依曼体系结构硬件
  • 当代计算机是性价比的产物
  • 冯诺依曼的存储
  • 冯·诺依曼的数据流动步骤
  • 冯·诺依曼结构总结

冯诺依曼体系结构硬件

下面是整个冯诺依曼体系结构在这里插入图片描述
冯·诺依曼结构(Von Neumann Architecture)是现代计算机的基本结构之一,由数学家约翰·冯·诺依曼在20世纪40年代提出。这种结构被广泛应用于现代计算机设计中,其核心思想是将程序和数据存储在同一存储器中,通过共享一套硬件实现灵活的操作。以下是冯·诺依曼结构的基本组成部分及特点

基本组成部分

  1. 中央处理器(CPU)是计算机的核心部件,主要负责执行指令和处理数据。它由两个主要部分组成:控制器和运算器。
    控制器(Control Unit, CU)
    控制器是CPU的核心部分之一,它的主要任务是负责指挥和协调整个计算机的工作。
    运算器(Arithmetic Logic Unit, ALU)
    运算器是CPU的另一个核心部分,它的主要任务是执行各种算术和逻辑运算。
    控制器和运算器的协作
    控制器负责指挥:它从存储器中取指令并解释,然后决定交给运算器执行哪些操作。
    运算器负责执行:控制器指示运算器完成具体的计算任务,运算器返回结果。
    两者通过寄存器和总线通信:例如,控制器通过寄存器或总线将操作数提供给运算器,运算器计算完后将结果存储在指定位置。

  2. 存储器(Memory)
    用于存储数据和指令,二者共享存储空间。
    数据和指令以二进制形式存储在存储器中。

  3. 输入设备(Input Devices)
    用于将外部数据和指令输入到计算机中,常见的输入设备有:键盘、鼠标、磁盘、u盘、网卡、摄像头、话筒等等。

  4. 输出设备(Output Devices)
    用于将处理结果输出到外部,常见的输出设备有: 显示器、播放器硬件、磁盘、网卡等等。

关于冯诺依曼,必须强调⼏点:
• 这⾥的存储器指的是内存
• 不考虑缓存情况,这⾥的CPU能且只能对内存进⾏读写,不能访问外设(输⼊或输出设备)
• 外设(输⼊或输出设备)要输⼊或者输出数据,也只能写⼊内存或者从内存中读取。
• ⼀句话,所有设备都只能直接和内存打交道。

当代计算机是性价比的产物

在这里插入图片描述
芯片技术通过晶体管微缩、多核化和专用化,实现性能提升与成本下降的同步。
摩尔定律为芯片技术发展提供了方向和节奏,推动性能的指数增长和单位成本的显著下降。
这两个因素的结合使现代计算机能够以相对低廉的价格提供强大的计算能力,从而成为性价比的典范。

冯诺依曼的存储

注意, 是存储, 不是存储器。
在这里插入图片描述
存储等级
首先这里要对上面这张图进行解释。 对于计算机整个结构来说, 一共有这么多层存储结构。 第一层是寄存器, 然后是一级存储,二级存储, 三级存储, 内存以及磁盘。 这些存储结构, 从上到下容量越来越大, 速度越来越慢, 价格越来越低。

对于寄存器和内存以及磁盘的存储速度来说: 寄存器的速度可以达到纳秒级别, 然后内存的速度可以达到微妙级别, 外存的速度可以达到毫秒级别。 也就是说, 三个存储结构的相差级次达到了10的三次方。

冯·诺依曼的数据流动步骤

  1. 数据流动的基本路径
    冯·诺依曼结构中数据的流动主要在以下几个组件之间进行:
    存储器(Memory)
    中央处理单元(CPU,包括控制器和运算器)
    输入设备和输出设备

    数据和指令通过系统总线(包括数据总线、地址总线和控制总线)在这些组件之间传递。
    基本过程
    指令和数据的获取CPU通过地址总线从存储器中获取指令(程序指令)和相关数据。
    数据和指令通过数据总线传递到CPU。
    指令的解码
    获取的指令存储在指令寄存器(IR)中,由控制器解码。解码结果决定需要的操作(如加法、存储等)和操作数的位置。
    操作数的处理
    如果操作数不在寄存器中,CPU通过地址总线从存储器中读取操作数。
    操作数传递到运算器进行处理,处理后的结果存储在寄存器或存储器中。
    结果的存储或输出
    处理结果可以存储回存储器,也可以通过输出设备传递到外部。
  2. 数据流动的详细步骤
    取指(Fetch)
    控制器根据程序计数器(PC)的值,通过地址总线向存储器请求下一条指令。
    指令通过数据总线传递到CPU,存储在**指令寄存器(IR)中。
    解码(Decode)
    控制器解码指令,确定操作类型(如算术、逻辑、数据传输)和操作数的位置(寄存器或存储器)。
    执行(Execute)
    控制器向
    运算器(ALU)**发送信号,运算器对操作数进行计算或处理。
    操作数可以来自寄存器或通过总线从存储器中获取。
    存储(Store)
    运算器处理后的结果通过总线存储到存储器,或暂存在寄存器中以供后续指令使用。
  3. 数据流动的特点
    存储程序
    程序(指令)和数据共享同一个存储空间,数据和指令以相同方式传递和存储。
    线性流程
    数据流动通常按照“取指-解码-执行-存储”的线性流程进行,除非指令中包含跳转(如条件分支)。
    总线瓶颈
    数据和指令共享同一总线进行传输,导致“冯·诺依曼瓶颈”。这种瓶颈可能导致CPU等待数据或指令的传输而空转,从而降低性能。
    循环操作
    数据和指令在存储器、控制器和运算器之间不断循环,直到程序执行完成。
  4. 冯·诺依曼结构中数据流动的局限性
    冯·诺依曼瓶颈
    指令和数据共享同一总线,导致数据流动速度受限,尤其在高性能计算中表现明显。
    依赖存储器
    每次运算都需要从存储器中取指令或数据,这种存储器访问的延迟会限制整体性能。
    改进措施
    缓存(Cache):在CPU中增加高速缓存,减少存储器访问的频率。
    流水线技术:允许多个指令在不同阶段同时执行,提高数据流动效率。
    分离存储器架构:如哈佛结构,将指令和数据存储器分离,独立处理数据流动。

以上, 就是本节全部内容, 下面是本节的笔记

冯·诺依曼结构总结

核心思想
存储程序:程序和数据以相同的方式存储在同一存储器中,可以动态读取和修改。
顺序执行:计算机指令按照存储顺序逐条执行,除非遇到跳转指令。
统一硬件:数据和指令共享相同的存储器和传输通道(总线系统)。
基本组成
中央处理单元(CPU)
包括控制器:负责指挥计算机各部件的协调工作。
包括运算器(ALU):执行算术和逻辑运算。
存储器
用于存储数据和程序指令。
输入设备
用于将外部数据和指令输入到计算机。
输出设备
将计算结果输出给用户或其他设备。
总线系统
数据总线、地址总线和控制总线连接并协调各部件之间的数据流动。
数据流动
数据和指令通过存储器、CPU(控制器和运算器)及输入输出设备之间流动。
基本操作流程为:取指(Fetch)- 解码(Decode)- 执行(Execute)- 存储(Store),形成一个循环。

特点
简单性:设计结构统一,便于实现和扩展。
灵活性:可以动态加载和执行不同的程序。
共享性:指令和数据共享存储器和传输通道。
局限性
冯·诺依曼瓶颈:指令和数据共享同一存储器和总线,限制了数据传输速率,影响性能。
存储器依赖:频繁的存储器访问导致延迟,尤其在大规模数据处理时。
能耗问题:随着性能需求增长,存储器访问的能耗增加。
改进与发展
尽管存在瓶颈,冯·诺依曼结构通过以下技术得到了优化:

缓存(Cache):减少对主存的访问次数,缓解数据传输瓶颈。
流水线技术:多个指令在不同阶段同时执行,提高效率。
分离存储器架构:如哈佛架构,将指令和数据存储器分离,加快数据处理。
并行计算:多核和异构计算技术提升了现代计算机的性能。
冯·诺依曼结构是一种简单、灵活且高效的计算机设计模型,奠定了现代计算机体系结构的基础。尽管面临一定的性能瓶颈,现代计算机通过技术改进在冯·诺依曼模型的基础上实现了高效计算,使其成为现代计算设备性价比和普及化的重要推动力。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

H3C OSPF实验

实验拓扑 实验需求 按照图示配置 IP 地址按照图示分区域配置 OSPF ,实现全网互通为了路由结构稳定,要求路由器使用环回口作为 Router-id,ABR 的环回口宣告进骨干区域 实验解法 一、配置IP地址 [R1]int l0 [R1-LoopBack0]ip add 1.1.1.1 32 […

【工具变量】上市公司企业所在地城市等级直辖市、副省级城市、省会城市 计划单列市(2005-2022年)

一、包含指标: 股票代码 股票代码 股票简称 年份 所属城市 直辖市:企业所在地是否属于直辖市。1是,0否。 副省级城市:企业所在地是否属于副省级城市。1是,0否。 省会城市&a…

Android Studio历史版本下载

Android Studio 下载文件归档 | Android Developers 一定要选择英文环境, 拉到最后,同意

纯粹直播 1.7.7 |手机版和TV版,聚合六大直播平台,原画播放

纯粹直播是一款开源的应用程序,支持兴趣化主题的游戏直播、户外直播和才艺直播节目。目前可以观看斗鱼、B站、虎牙和抖音等六大直播平台的内容。该应用适配了安卓手机和电视盒子平台使用,并且软件无广告,提供原画质播放体验。 大小&#xff…

【Docker】针对开发环境、测试环境、生产环境如何编排?

目录 一、引言 二、Docker Compose 文件基础 三、针对不同环境的 Docker 编排 开发环境 测试环境 生产环境 四、配置文件全局变量的编写 五、总结 一、引言 在软件开发和部署的过程中,不同的环境有着不同的需求和配置。Docker 作为一种强大的容器化技术&…

rabbitmq 安装延时队列插件rabbitmq_delayer_message_exchange(linux centOS 7)

1.插件版本 插件地址:Community Plugins | RabbitMQ rabbitmq插件需要对应的版本,根据插件地址找到插件 rabbitmq_delayer_message_exchange 点击Releases 因为我rabbitmq客户端显示的版本是: 所以我选择插件版本是: 下载 .ez文…

同道猎聘Q3营收降利润增,AI或成估值重塑关键词

2024年,经济向好的趋势没有改变,挑战却仍然存在。企业纷纷进行结构性变革优化或业务方向调整。这一点反映到人才市场,绝大多数企业对招聘扩张持保守态度,降本增效的主题仍在延续。 作为人才市场水温变化的“温度计”,…

UPLOAD LABS | PASS 10 - 黑名单绕过(Windows . 绕过 - 变体)

关注这个靶场的其它相关笔记:UPLOAD LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 本关的目标是上传一个 WebShell 到目标服务器上,并成功访问: 通过查看源码,可以发现,本关在之前所有关卡的基础上做了…

【iOS】多线程基础

【iOS】多线程基础 文章目录 【iOS】多线程基础前言进程与线程进程进程的状态进程的一个控制结构进程的上下文切换 线程为什么要用线程什么是线程线程和进程的关系线程的上下文切换 线程和进程的优缺点 小结 前言 笔者由于对于GCD不是很了解,导致了项目中网络请求哪…

【0x3D】HCI_Remote_Host_Supported_Features_Notification事件详解

目录 一、事件概述 二、事件格式及参数说明 2.1. HCI_Remote_Host_Supported_Features_Notification事件格式 2.2. BD_ADDR 2.3. Remote_Host_Supported_Features 三、事件作用 3.1. 设备特性沟通与理解 3.2. 功能协商与性能优化 3.3. 设备管理与配置更新 四、应用场…

等差数列末项计算

等差数列末项计算 C语言代码C 代码Java代码Python代码 💐The Begin💐点点关注,收藏不迷路💐 给出一个等差数列的前两项a1,a2,求第n项是多少。 输入 一行,包含三个整数a1,a2&#x…

优先算法 —— 滑动窗口系列 - 无重复字符的最长子串

目录 前言 1. 无重复字符的最长子串 2. 题目解析 3. 算法原理 解法1:暴力枚举 哈希表(判断字符是否有重复出现) 解法2:滑动窗口 4. 代码 前言 当我们发现暴力解法两个指针都不回退,都是向同一个方向移动的时候我…

数据挖掘之数据预处理

​​​​​​​ 引言 数据挖掘是从大量数据中提取有用信息和知识的过程。在这个过程中,数据预处理是不可或缺的关键步骤。数据预处理旨在清理和转换数据,以提高数据质量,从而为后续的数据挖掘任务奠定坚实的基础。由于现实世界中的数据通常…

HTML 添加 文本水印

body,html {margin: 0;height: 100vh;width: 100vw;} // 自定义文案const setting {text: "水印文案", // 水印内容innerDate: true, // 在水印下方增加日期width: 110, // 水印宽度};// 自定义文字水印const watermark (function () {return {build: function (a…

浅谈——Linux命令入门之前奏

目录 一、备份操作系统 1、快照 2、克隆 二、操作系统的使用注意 1、Linux严格区分大小写 2、Linux 文件“扩展名” 3、Linux 中所有的内容以文件的形式进行保存 4、Linux 中所有的存储设备都必须挂载之后才能使用 5、Linux 系统文件目录的结构 6、Linux 系统文件的目…

牛客linux

1、 统计文件的行数 # 方法 1 wc -l ./nowcoder.txt | awk {print $1} # 方法 2 ,awk 可以打印所有行的行号, 或者只打印最后一行 awk {print NR} ./nowcoder.txt |tail -n 1 awk END{print NR} ./nowcoder.txt # 方法 3 grep -c 、-n等等 grep -c "" ./…

“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)

文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法, Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)ノ~~~ βyё βyё~ 现在在维护另一…

Marvell第四季度营收预计超预期,定制芯片需求激增

芯片制造商Marvell Technology(美满电子科技)(MRVL)在周二发布了强劲的业绩预告,预计第四季度的营收将超过市场预期,得益于企业对其定制人工智能芯片的需求激增。随着人工智能技术的快速发展,特…

python使用python-docx处理word

文章目录 一、python-docx简介二、基本使用1、新建与保存word2、写入Word(1)打开文档(2)添加标题(3)添加段落(4)添加文字块(5)添加图片(6&#xf…

视频监控汇聚平台:Liveweb安防监控平台实现接入监控视频集中管理方案

随着各行业数字化转型的不断推进,视频监控技术在行业内的安防应用及管理支撑日益增多。然而,由于前期规划不清晰、管理不到位等问题,视频监管系统普遍存在以下问题: 1. 各部门单位在视频平台建设中以所属领域为单位,导…