🏆本篇主题为:从1945到2024:冯·诺依曼体系如何定义了我们手中的每一台计算机?
🏆个人主页:CILMY23-CSDN博客
🏆系列专栏:C++ | C语言 | Linux | Python | 数据结构和算法 | 算法专题
🏆感谢观看,支持的可以给个一键三连,点赞收藏+评论。如果你觉得有帮助,还可以点点关注
文章目录
- 为什么今天还要谈一个1945年的模型?
- 一、日常生活中的计算机
- 二、冯诺依曼的体系结构
- 2.1 输入设备
- 2.2 输出设备
- 2.3 CPU
- 2.4 存储器
- 2.5 设备与设备的交互
- 三、数据流向
- 四、存储金字塔
为什么今天还要谈一个1945年的模型?
当你轻触手机屏幕刷着短视频,或是敲击键盘写下 print(“Hello, World!”) 时,你是否想过,这些复杂的软硬件是如何协同工作,精准执行你每一个意图的?
支撑这一切的底层逻辑,源于一份诞生于 1945年 的蓝图——冯·诺依曼体系结构。它并非某个具体的产品,而是现代计算机硬件系统的“宪法”和“城市规划图”,定义了计算机基本的工作方式。
近80年过去了,芯片制程从毫米进化到纳米,计算机从房间大小变成掌上之物,但它们的“灵魂”却未曾改变。今天,就让我们一同拆解这份经典蓝图,看清从按下电源到程序运行,硬件之间上演了怎样一场精密的史诗级协作。
一、日常生活中的计算机
无论是我们日常生活中经常使用的笔记本、台式机、或者手机,上面都会有很多硬件。比如:负责数据运算的CPU、存储信息的内存与硬盘、用于输入操作的键盘和鼠标,以及展示处理结果的显示器等。这些硬件看似功能各异、彼此独立,实则遵循着一套统一的核心架构逻辑协同工作,而这套逻辑的基础,正是我们接下来要重点梳理的冯诺依曼体系结构。
正常情况下,我们以为的计算机的核心工作流程遵循“输入-CPU处理-输出”的逻辑:先通过输入设备将外部指令和数据传入,经CPU(中央处理器)运算处理后,最终再通过输出设备将处理结果显示出来。
就比如下图,
但是实际上并非如此,我们不采取这种方案,我们的计算机构成实际上遵循一种冯诺依曼的体系结构。
二、冯诺依曼的体系结构
冯诺依曼体系结构是我们构成计算机的最基本结构, 它在我们之前设想的中央处理器上加了一个存储器。而冯诺依曼体系结构的产生并非偶然,而是源于早期计算机发展中对效率提升的迫切需求。
这一包含存储器的核心设计,让计算机形成了“输入-存储-处理-输出”的完整工作闭环,也构成了冯诺依曼体系结构的核心框架。接下来,我们就对这一体系结构中的各个核心部件逐一展开说明,先从最基础的输入设备讲起。
2.1 输入设备
日常生活中常见的输入设备有刚刚提到的键盘、鼠标,还有手机的触摸屏、扫描仪、麦克风、摄像头、话筒、网卡等。
输入设备是计算机与用户交互的“桥梁”,核心作用是将外部的指令、数据等信息(比如我们的操作意图、文字、图像等)转化为计算机能够识别和处理的电信号或数字信号,再传递给存储器或CPU。它们都是实现“输入”环节的关键载体,为计算机后续的存储和处理提供原始数据支撑。
2.2 输出设备
日常生活中常见的输出设备有显示器、打印机、音箱、耳机、投影仪,还有手机的显示屏、扬声器、打印机等。
与输入设备相对应,输出设备是计算机向外界反馈处理结果的“窗口”。如果说输入设备负责将用户指令和数据“送进去”,那输出设备的核心作用就是把计算机处理完成的数字信号,再转化为文字、图像、声音等。
2.3 CPU
CPU(中央处理器)就是我们常说的芯片,是整个计算机的“核心大脑”,承担着最关键的“处理”环节工作。它不仅是连接输入、存储、输出等部件的核心枢纽,更是执行运算和控制协调的核心部件,直接决定了计算机的处理效率。
它的当中包括了两个组件,运算器和控制器。
首先是运算器,它的核心是执行各类数据运算。
主要分为两大类:
一是算术运算,也就是我们常见的加减乘除等基本数学运算,比如计算两个数字的和、对数据进行乘法运算等;
二是逻辑运算,包括与、或、非、比较、移位等逻辑判断和数据处理操作,比如判断两个数据的大小关系、对数据进行位运算移位等。
运算器会从存储器中获取需要处理的数据,按照控制器下发的指令完成运算后,再将运算结果送回存储器暂存,等待后续处理或输出。简单来说,运算器就是CPU中专门负责“做计算、做判断”的部件。
接着是控制器,它核心职责是负责应对所有的信息情况,调度运算器把计算做好。
具体来说,控制器会从存储器中按顺序读取指令,明确指令要完成的任务,比如,它可以去通过我们的CPU当中的控制器,让我们的CPU去读取指令,在哪去读取?什么时候读取?让CPU为某一个设备把数据拷贝到内存,什么时候拷从哪拷拷多少,那么这些都可以由控制器来进行控制。随后根据指令要求,向对应的部件发送控制信号,指挥它们干活。
2.4 存储器
存储器,听名字很难知道具体指的是哪个硬件,因为计算机中具备存储功能的硬件有不少,比如我们常说的内存(RAM)、硬盘(机械硬盘HDD、固态硬盘SSD),还有U盘、光盘,甚至手机里的闪存等,这些都属于存储设备的范畴。
但在这篇博客中,“存储器”,我们就可以认为是内存。硬盘、U盘等其他存储设备,在冯诺依曼体系中更偏向于输入/输出设备的延伸,它们主要用于长期存储数据,无法被CPU直接访问,因为数据必须先加载到内存中才能被处理。
2.5 设备与设备的交互
那设备和设备又是怎么互动的呢。
计算机的核心还是作为数据处理工具,凭借其远超强运算能力,接收用户输入的数据,通过CPU完成处理后,再将结果反馈给用户。
但其实各类硬件并非独立存在,而是需要通过特定的连接方式实现数据传输与协同工作。
这种连接依赖于计算机内部的总线(Bus)系统,总线作为硬件设备间的数据传输通道,负责衔接内存、CPU、输入/输出设备等核心部件。唯有通过总线实现硬件间的连接,输入设备的原始数据才能传输至内存暂存,内存中的数据才能被CPU读取处理,处理后的结果也才能通过总线传输至输出设备反馈给用户,或转储至其他存储设备长期保存。
也就是所有的硬件它最终是要用线连接起来的。设备是互相链接的。
就比如主板,我们提及的总线系统就集成于主板之上。分别把CPU、内存、硬盘、输入/输出设备等核心部件,插到主板上面,就可以实现各部件间的数据传输与协同工作,这也是硬件连接关系最直观的体现。
三、数据流向
根据我们刚才的图片我们可以看红色的数据信号
我们在输入的时候,数据一般都是交给我们的输入设备,数据要处理,所以把数据交给我们的内存,内存上面有数据,然后把内存里的数据再交给CPU,数据交给CPU,CPU运算完把结果再交给内存,再由内存刷新到我们对应的输出设备上。
所以数据在计算机里进行设备和设备之间的流动,那么本质上是把数据从一个设备弄到另一个设备问题。所以就要求几乎每一种设备都要有一定的数据保存的能力。
所以其实我们没怎么见过外设,但键盘、显示器,网卡、显卡这样的设备,它本身就具有一点点的数据存储能力。那么而我们的存储器,本身包括磁盘具有这种能力,内存有存储能力,CPU也有一定的数据的存储能力(寄存器)。
所以数据是要在计算机的体系结构中进行流动的,流动过程中进行数据的加工处理。
从一个设备到另一个设备,本质是一种拷贝!
所以有大量数据要让计算机处理,它无外乎就做两种事情
第一种事情是在整体结构里面各种设备之间进行数据的拷贝。
第二种事情就是进行运算
而运算因为CPU比较快,中央处理器的速度是非常快的,所以运算不是影响你计算机快慢的主要矛盾。
而数据从一个设备搬到另一个设备,本质是一种拷贝,所以数据在设备间的拷贝的效率,就决定了计算机整机的基本效率!
如何理解计算机的效率问题?就应该考虑计算机整体硬件数据交换的效率。
四、存储金字塔
(注:图片来源于网络,版权归原作者所有,若有侵权请联系删除)
这里我们就得提及存储金字塔了,存储金字塔说的是,在计算机存储体系中,存储设备或存储单元的读写效率与其到CPU的距离呈正相关——距离CPU越近,数据读写速度越快(效率越高),但对应的制造成本也越高;反之,距离CPU越远,效率越低,造价则越低廉。
最顶层是CPU内部的寄存器,它是离CPU最近的存储单元,读写速度最快(纳秒级),但容量极小(通常以字节为单位)、造价极高,仅用于暂存CPU当前正在处理的指令和数据;
下一层是高速缓存(L1、L2、L3缓存),速度仅次于寄存器(纳秒级),容量稍大(KB或MB级),造价依然较高,用于缓存CPU近期可能频繁访问的数据,减少CPU直接访问内存的次数;
再往下是我们提及的内存(RAM),速度中等(微秒级),容量更大(GB级),造价适中,是计算机运行时程序和数据的核心暂存区;
底层则是机械硬盘(HDD)、固态硬盘(SSD)等外部存储设备,甚至包括U盘、光盘,它们离CPU最远,读写速度最慢(毫秒级),但容量极大(TB级)、造价极低,主要用于长期存储大量数据,无需依赖电源维持数据存在。
所以为什么要有存储器呢?
因为输入设备它效率非常低,CPU非常快,所以它们两个的速度差非常大。这就跟木桶效应似的,计算机整体的运行效率,往往由速度最慢的部件决定。
如果没有存储器作为缓冲,高速运转的CPU就只能频繁等待低速的输入设备传输数据,相当于让“短跑冠军”一直等“步行者”,整机效率会被输入设备的速度牢牢限制住。而存储器的存在,正是为了填补这一速度鸿沟,解决硬件间的速度不匹配问题。
那是如何解决的呢?
我们的输入设备会将数据“批量预加载”到存储器(内存)中。尽管输入设备本身速度较慢,但批量传输可减少频繁交互的开销,其次,由于存储器的读写速度远高于输入设备,且能被CPU直接访问,高速运转的CPU无需再等待低速的输入设备,可直接从存储器中快速读取所需数据进行运算,最后,CPU运算产生的中间结果和最终结果会先回存到存储器,再由存储器根据需求批量传输到输出设备,进一步避免了CPU因等待输出设备而闲置。
整个过程中,存储器作为“高速中转站”,将输入、处理、输出环节的速度差异进行缓冲调和,让CPU的高速运算能力得到充分发挥,从而提升计算机整机效率。
核心结论:
冯诺依曼体系结构是构成计算机的最基本结构,其在中央处理器基础上增加存储器,形成了“输入-存储-处理-输出”的完整工作闭环;
计算机各类硬件通过主板上的总线系统实现连接与数据传输,协同完成数据处理工作;
数据在计算机设备间的流动本质是拷贝,数据拷贝效率决定计算机整机基本效率,运算并非影响计算机快慢的主要矛盾;
存储金字塔的核心逻辑是存储设备或存储单元的读写效率与其到CPU的距离呈正相关,距离越近效率越高、造价越贵,反之则效率越低、造价越低;5. 存储器(即内存)作为“高速中转站”,可填补输入设备与CPU的速度鸿沟,调和各环节速度差异,充分发挥CPU的高速运算能力,提升计算机整机效率;
计算机整体的运行效率往往由速度最慢的部件决定。