当前位置: 首页 > news >正文

【Linux】冯 • 诺依曼体系结构

在这里插入图片描述

✨ 坚持用 清晰易懂的图解 + 代码语言, 让每个知识点都 简单直观
🚀 个人主页 :不呆头 · CSDN
🌱 代码仓库 :不呆头 · Gitee
📌 专栏系列

  • 📖 《C语言》
  • 🧩 《数据结构》
  • 💡 《C++》
  • 🐧 《Linux》

💬 座右铭“不患无位,患所以立。”


【Linux】冯 • 诺依曼体系结构

  • 摘要
  • 目录
    • 一、冯•诺伊曼体系的介绍
    • 二、冯•诺依曼体系结构的推导
    • 三、内存如何提高冯•诺依曼体系的效率?
    • 四、从登录上qq开始聊天开始,数据的流动过程
      • 🖥️ 1. 打开 QQ 并登录
      • 💬 2. 开始聊天(发消息)
      • 📂 3. 发送文件
      • 🚩 结合冯·诺依曼体系
    • 总结


摘要

本文从冯·诺依曼体系结构的五大基本部件入手,结合直观图解和表格,系统讲解了该体系的形成与发展逻辑,重点分析了内存在提高整体效率中的核心作用。随后通过“登录 QQ 并与好友聊天、传输文件”的实例,将抽象的体系结构与实际软件运行过程联系起来,帮助读者从硬件概念延伸到对软件数据流的深层理解。


目录

一、冯•诺伊曼体系的介绍

  • 冯诺依曼体系是由冯·诺依曼提出的计算机设计的基本框架,包括五大部件:输入设备,存储器,运算器,控制器,输出设备。(其中运算器和控制器统称为中央处理器也就是CPU)
  • 我们的计算机,笔记本的设计都遵守冯诺依曼体系
  • 这五大部件都是独立的个体,各个硬件单元必须使用“线”连接起来,总线:系统总线,IO总线

在这里插入图片描述

部件英文名称功能说明
运算器Arithmetic Logic Unit (ALU)负责完成算术运算(加减乘除)和逻辑运算(与、或、非、比较等),是计算机进行数据处理的核心。
控制器Control Unit (CU)负责解释指令并控制各部件协调工作,指挥程序按顺序执行。
存储器Memory用于存放数据和程序指令,二者同等对待,均以二进制形式存储。
输入设备Input用来将数据或程序输入计算机,例如键盘、鼠标、扫描仪等。
输出设备Output将计算机处理的结果输出,例如显示器、打印机、扬声器等。

二、冯•诺依曼体系结构的推导

计算机的作用就是为了解决人的问题,解决问题首先需要将数据或是问题输入到计算机当中,所以计算机必须要有输入设备。计算机解决完问题后还需要将计算结果输出显示出来,所以计算机必须要有输出设备。计算机通过输入设备得到数据,数据在计算机当中进行一系列的算术运算和逻辑运算后,通过输出设备进行输出,于是就得到了以下流程图。

在这里插入图片描述

但是计算机当中只有算术运算功能和逻辑运算功能是不够的,还需要有控制功能,控制何时从输入设备获取数据,何时输出数据到输出设备等。对应到C语言当中,算术运算就完成一系列的加减乘除,而逻辑运算就对应于一系列的逻辑与逻辑或等,控制功能就对应于C语言当中的判断、循环以及各个函数之间的跳转等等。

在这里插入图片描述

  • 而我们后人就将这个具有算术运算功能、逻辑运算功能以及控制功能的这个模块称为中央处理器,简称CPU。
  • 但是输入设备和输出设备相对于中央处理器来说是非常慢的,于是在当前这个体系整体呈现出来的就是,输入设备和输出设备很慢,而CPU很快,根据木桶原理,那么最终整个体系所呈现出来的速度将会是很慢的。所以当前这个体系结构显然是不合适的,于是我们就不让输入设备和输出设备直接与CPU进行交互,而在这中间加入了内存

在这里插入图片描述

  • 内存有个特点就是,比输入设备和输出设备要快很多,但是比CPU又要慢。现在内存就处于慢设备和快设备之间,是一个不快也不慢的设备,能够在该体系结构当中就起到一个缓冲的作用
  • 现在该体系的运行流程就是:用户输入的数据先放到内存当中,CPU读取数据的时候就直接从内存当中读取,CPU处理完数据后又写回内存当中,然后内存再将数据输出到输出设备当中,最后由输出设备进行输出显示。于是就形成了最终的冯诺依曼体系结构。

注意: 这里存储器只是内存,不包括外存。
在这里插入图片描述


三、内存如何提高冯•诺依曼体系的效率?

首先CPU的运行速度非常的快,是纳秒级别;然后磁盘的速度很慢,是毫秒级别;如果CPU直接访问磁盘,整体效率会被限制在磁盘的速度上(就上木桶效应,存水的多少被限制在最短的那块木板上,而不是最长的那快木板)。

  1. 作为中间层缓冲
    内存的速度就是处于CPU和磁盘之间,属于微秒级。把程序和数据先加载到内存,CPU再从内存读取数据,避免直接受磁盘速度的拖累。
  2. 支持存储程序思想
    程序和数据都存放在内存中,CPU 可以统一处理,提高灵活性和效率。
  3. 减少 CPU 与外设的等待
    输入/输出数据必须先经过内存,再由 CPU 处理,能够保证数据交互更快更顺畅。
  4. 提高整体运行效率
    整机运行效率基本接近于内存的速度,而不是磁盘的速度,内存就像“中枢”,让 CPU 始终保持高效运行。

📌 总结

内存通过充当 CPU 与磁盘/外设之间的中枢层,把访问速度从毫秒级提升到微秒级,从而显著提高了冯·诺依曼体系结构的整体效率。


四、从登录上qq开始聊天开始,数据的流动过程

🖥️ 1. 打开 QQ 并登录

  1. 加载程序
    QQ的可执行文件是储存再磁盘上的,当我们点开QQ的图标的时候,操作系统会把QQ的程序代码和必要的资源加载到内存中,然后再经过中央处理器(CPU)的 取指—译码—执行 循环,开始运行QQ程序。
  2. 输入账号和密码
    我们通过键盘输入 输入设备 → 内存 → CPU,由程序接收并进行加密处理。
  3. 网络通信(登录验证)
    QQ 客户端通过 网络协议栈(TCP/IP) 打包账号信息,交给网卡(输出设备)。数据先进入 内存的发送缓冲区,再由 CPU 指挥网卡 发往 QQ 服务器。服务器验证成功后返回数据包 → 进入你电脑的网卡 → 写入内存 → CPU 解析 → QQ 程序显示“登录成功”。

💬 2. 开始聊天(发消息)

  1. 输入消息
    当我们通过键盘(输入设备)在聊天窗口输入文字,键盘的输入信号被 CPU 接收,存放在内存中,由 QQ 程序读取。
  2. 发送消息
    QQ 把我们的文字消息封装成数据包 → 放到内存的发送缓冲区 → CPU 调用网卡 → 通过网络发送给服务器。
  3. 好友接收消息
    服务器收到后转发给好友。 好友的设备网卡接收数据包 → 写入内存 → CPU 调用 QQ 程序 → 程序把文字渲染到聊天窗口。

📂 3. 发送文件

  1. 文件读取
    我们选择一个文件(文件是存储在磁盘上的),操作系统会把文件数据分批加载到 内存缓冲区
  2. 数据分段传输
    QQ 把文件切割成多个小块(数据包),每个数据包经过 TCP 协议加上序号、校验信息。数据进入内存的发送区,再由 CPU 控制网卡逐个发出。
  3. 好友接收文件
    好友的网卡接收到数据包,写入内存 → CPU 检查顺序和完整性 → 缺失的部分请求重传。当所有数据块都完整接收后,写入好友的磁盘,文件才算真正保存成功。

🚩 结合冯·诺依曼体系

  • CPU:执行 QQ 程序的指令,处理输入输出和网络数据。
  • 内存:程序运行和数据交换的中枢,所有消息/文件先在内存缓冲,再被发送或接收。
  • 存储器:保存程序和文件,运行时必须调入内存。
  • 输入/输出设备:键盘输入、显示器输出、网卡收发数据。

所以从聊天到发文件,本质上就是 “程序加载到内存—数据在内存和 CPU 之间流动—通过 I/O 设备与外部通信—再到好友设备复现” 的完整闭环。


总结

冯·诺依曼体系结构是现代计算机的基石,它强调 存储程序、CPU 与内存的紧密协作。在这一体系中,内存作为中枢缓冲,有效解决了 CPU 与外设速度差异过大的矛盾,使计算机整体性能接近于内存的运行速度。通过 QQ 聊天与文件传输的案例,我们可以清晰看到数据从磁盘加载到内存、由 CPU 执行处理、再经由输入输出设备与外界交互的全过程。这不仅揭示了冯·诺依曼体系的实际应用价值,也帮助我们理解软件背后隐藏的硬件运行逻辑。


不是呆头将一直坚持用清晰易懂的图解 + 代码语言,让每个知识点变得简单!
👁️ 【关注】 看一个非典型程序员如何用野路子解决正经问题
👍 【点赞】 给“不写八股文”的技术分享一点鼓励
🔖 【收藏】 把这些“奇怪但有用”的代码技巧打包带走
💬 【评论】 来聊聊——你遇到过最“呆头”的 Bug 是啥?
🗳️ 【投票】 您的投票是支持我前行的动力
技术没有标准答案,让我们一起用最有趣的方式,写出最靠谱的代码! 🎮💻

http://www.dtcms.com/a/434987.html

相关文章:

  • OpenAI Sora 2重磅发布:AI视频生成进入“GPT-3.5时刻”
  • LabVIEW中实现8通道实时数据录波并通过网络通信
  • 津南做网站的公司淘宝网站建设杭州
  • SpringBoot中的自动配置魔法:像乐高积木一样搭建应用
  • 企业做网站的优势微商营销宝最新版
  • 2020 年真题配套词汇单词笔记(考研真相)
  • 如何制作网站网页公司网站下二级站点如何做
  • React Query入门指南:简化React应用中的数据获取
  • 昆山建设银行网站首页seo指的是什么
  • 大连网站怎么网站建设服务合同缴纳印花税吗
  • C++多线程编程入门实战
  • 个体工商户经营范围网站开发网站建设2018需要什么
  • 泰山派rk3566 sdk编译
  • GAMES101:现代计算机图形学入门(Chapter3 变换)迅猛式学习笔记
  • 0.0 编码基础模板
  • 用哈希表封装unordered_set和unordered_map
  • 有做面食的网站吗企业网络营销策划案
  • 中山做网站长沙营销企业网站建设
  • 江苏模板网站建设h5微场景制作软件
  • VSCode C/C++ 构建任务配置文件 `tasks.json` 全字段深度解析
  • 动力学系统辨识与建模
  • 做微商网站设计成都网站建设冠辰
  • 【1.SpringAI】3.SpringAI 聊天模型的介绍
  • 多模态大语言模型LISA++
  • 数据合规法律体系的宏观框架与实践要点
  • AoT - Attack on Things:A security analysis of IoT firmware updates论文梳理分析
  • 电子商务网站建设基本组成专门做推广的网站吗
  • 抄底券网站怎么做的网络平台建设怎么做
  • 给我一个免费网站吗昆明小程序开发
  • 网站建设需要哪些人员iis发布asp网站