news 2026/9/1 19:31:48

进程开始——冯诺依曼体系结构

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进程开始——冯诺依曼体系结构

冯诺依曼体系结构

  • 1、初始冯诺依曼体系结构
  • 2、存储器(内存)
    • 2.1、数据在体系结构中的流动
    • 2.2、存储分级
    • 2.3、内存作用的简单总结
  • 3、冯诺依曼体系结构在实际情境中的理解

1、初始冯诺依曼体系结构

冯诺依曼体系结构,描述的是组织计算机硬件的方法

以下是网络上一张冯诺依曼体系结构的简单示意图:

这是一个题外话


计算机的芯片架构,分为Intel, ARM等。
整个计算机的体系架构,就包含冯诺依曼体系结构。

图中,输入设备是输入数据、指令、文本内容以及其他内容的设备,包括键盘、麦克风、扫描仪、手写板…

输出设备是输出字符、音频以及其它内容的设备,包括显示屏、音响…

输入设备和输出设备,都属于外部设备,简称外设

中央处理器,就是我们常说的CPU。CPU包含两个非常重要的部分:

  • 运算器:进行算术运算、逻辑运算
  • 控制器:控制硬件、进程…

2、存储器(内存)

示意图中还有一个存储器,存储器又是什么?

我们可以把存储器理解为之前提及的内存

注意有的同学可能会把磁盘与存储器的概念搞混,认为磁盘也是存储器的一种。


实际上磁盘不是冯诺依曼体系结构中的存储器,磁盘也属于外部设备。实际操作中,磁盘可以被写入内容,比如创建文本并保存,此时磁盘就是输入设备;我们也可以读取磁盘上的内容,比如打印到显示屏,此时磁盘就是输出设备。这就意味着,磁盘不仅拥有存储数据的功能,某些情境下磁盘既可以是输入设备,也可以是输出设备

那么有人就有疑问:**为什么需要内存?**我们用输入设备输入内容,直接经过CPU处理,然后输出到输出设备上不行吗?

2.1、数据在体系结构中的流动

我们可以在上面的冯诺依曼体系结构示意图中,抠出一个数据在体系结构中流动的简单示意图:

分析图片,我们可以发现两点:

  • 数据在计算机内部流动的时候,CPU不与外部设备直接进行交互
  • CPU需要读取数据,只会在内存中读取;CPU需要写数据,也只会写入到内存中

简单来说,CPU只与内存进行互动。这又是为什么?

2.2、存储分级

这是网络上关于存储器分级的金字塔示意图:

我们可以分析得出:

  • 越往塔顶,存储器越靠近CPU,存储效率就越快,但是成本会越高。
  • 越往塔底,存储器越远离CPU,存储效率就越慢,但是成本会越低。

实际上,现在的输入、输出设备的响应时间是毫秒级别的,存储器的响应时间是介于微秒和纳秒级别的,而CPU的响应时间是纳秒级别的。

设备类型典型响应时间级别
输入/输出设备毫秒 (ms) 级别键盘、鼠标约 1-50ms,机械硬盘约 5-20ms
存储器 (内存)纳秒 (ns) 级别主内存 (RAM) 约 60-100ns
CPU纳秒 (ns) 级别执行一条指令约 0.3-1ns,访问L1缓存约 1ns

如果我们将计算机直接设计成:输入设备 —> CPU —> 输出设备。因为输入、输出设备的响应时间肯定大于CPU,根据“木桶效应”,整体的效率就应该更接近输入、输出设备的响应时间,这样运行速度就有代差,太慢了!

我们可以理解为,

  • 如果是“输入设备 —> CPU —> 输出设备”模式,内容就需要逐单位走过整个过程,效率比较慢。
  • 如果是冯诺依曼体系结构,内容就可以先全部加载到内存中,统一经过CPU处理,再全部输出到输出设备中,效率更快。

需要注意的一点是,

  • 我们对于“输入设备 —> 内存”这一过程,称为input
  • 我们对于“内存 —> 输入设备”这一过程,称为output

所以与输入、输出设备有关的操作,我们可以称作IO操作。IO是效率比较慢的事。

温馨小提示


数据的流动,本质是拷贝。所以,

  • 整台计算机的效率由拷贝的效率决定;
  • 我们之前谈到的效率的快慢,本质上是拷贝效率的快慢。

2.3、内存作用的简单总结

保证了性价比

综上所述,内存的引入,使得我们在尽可能降低计算机成本的情况下,还能保证计算机的运行效率是不错的,因为诸如寄存器、内存条等存储器虽然快但价格贵,而诸如机械硬盘、光盘等存储器虽然慢但价格亲民。

也就是说,内存的引入保证了计算机的“性价比”,普通老百姓才能买得起笔记本电脑;越来越多的人购买了计算机设备,那么上网的人就越来越多,于是形成了我们今天的互联网。

内存的存在,是体系结构决定的

我们写好的C/C++代码,经过编译后形成可执行文件,而可执行文件又是存储在磁盘上的。

我们之前应该都有听过,程序在运行之前,都必须加载到内存中。这是因为程序包括数据与指令,

  • 指令需要CPU读取并进行处理
  • 数据需要CPU读取并进行计算

所以程序需要CPU读取并处理,而CPU只能在内存中读取数据与指令,所以内存的存在是冯诺依曼体系结构决定的。

3、冯诺依曼体系结构在实际情境中的理解

对于冯诺依曼体系结构,我们不能仅仅停留在概念上的理解,还必须结合具体场景,搞清楚各个硬件发挥的作用。

场景一:张三在北京,李四在云南。有一天,张三在某聊天软件上与李四聊天,张三发送了一个“在吗”短语。那么这个“在吗”短语也是一个数据,数据在这个场景下是如何流动的?

我们可以认为,张三是有一台计算机的,那么张三就有一个冯诺依曼体系的硬件结构,其中键盘就是输入设备;张三在键盘上输入“你好”,“你好”字符串就输入到内存中,然后CPU读取到“你好”字符串,进行解析、加密、压缩等操作,将得到的数据写入回到内存中;由于此时进行的是网络通信,那么这份处理后数据就会输出到输出设备,此时的输出设备是网卡。

张三的网卡就可以通过网络,将处理后数据传输到李四计算机的网卡中,此时李四计算机的网卡就是输入设备;网卡将处理后数据输入到内存中,CPU读取数据,进行解压缩、解密等操作,将得到的“你好”字符串写入回内存中,最后显示屏读取到内存中的“你好”字符串并显示。最终,李四就看到了张三发送的“你好”。

场景二:此时,张三发送的不再是简单的一句话,而是一份文档。那么此时张三计算机的输入设备就是磁盘,李四计算机的输出设备也是磁盘,其它的过程都是一样的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 19:31:41

MPX跨端小程序框架解析:编译增强与原生适配实践

MPX 这套跨端小程序框架,最近不少人问“MPX 一直都是这样的吗?”。这个问题的背后,通常是遇到了编译行为、跨端兼容差异,或者某个 API 表现和预期不一致。先给结论:MPX 主打的是小程序多端复用,它的核心思路…

作者头像 李华
网站建设 2026/9/1 19:27:04

单片机竞赛省一的关键:从需求框图到稳定演示的工程细节

很多单片机竞赛的省一作品,看起来并没有特别炫的算法,也没有昂贵的开发板。真正让它们和普通作品拉开差距的,是几个很容易被忽略的细节:拿到题目之后有没有先画需求框图,外设资源有没有提前列清楚,现场演示…

作者头像 李华
网站建设 2026/9/1 19:25:52

西南交大824信号与系统2020真题高效复盘法

每年这个时候,通信工程考研人手里最不缺的就是真题。但“有真题”和“会用真题”是两码事。尤其是西南交通大学824信号与系统这门课,市面上流传的版本、回忆版、手写版、机构解析版五花八门,很多同学拿着一套2020年真题,对完答案就…

作者头像 李华
网站建设 2026/9/1 19:22:04

C语言入门:printf和scanf的核心机制与常见调试方法

先说一个很多零基础学习者都会经历的瞬间:你装了编译器,照着教程敲了第一行printf("Hello, World!\n");,按下运行,黑色窗口里真的蹦出了一行字。那一刻你会觉得自己已经摸到了编程的门。紧接着下一步,你学着…

作者头像 李华
网站建设 2026/9/1 19:20:25

北漂48小时逃离北京:雾灵山阿那亚Vlog拍摄与素材管理实战

这次不聊模型,聊一场真实的逃离。标题里的《Vlog 北漂打工人逃离北京的48H 雾灵山阿那亚》,是最近生活区 Vlog 里很典型的选题:从北京出发,去一趟雾灵山阿那亚,用一个周末换一次环境,再在周一之前回到工位…

作者头像 李华