前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【Linux系统编程】——理解冯诺依曼体系结构(进程)

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

作者头像
用户11286421
发布2025-01-17 09:06:24
发布2025-01-17 09:06:24
1270
举报
文章被收录于专栏:学习学习

冯诺依曼体系结构硬件

下面是整个冯诺依曼体系结构

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 冯诺依曼体系结构硬件
  • 当代计算机是性价比的产物
  • 冯诺依曼的存储
  • 冯·诺依曼的数据流动步骤
  • 冯·诺依曼结构总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档