输入设备:键盘、鼠标、话筒、摄像头…网卡,磁盘(外存—外部存储)
输出设备:显示器,磁盘、网卡,打印机
CPU=运算器+控制器
存储器:内存
CPU获取、写入,只能从内存中来进行
软件运行其实就是CPU执行我们的代码,访问我们的数据!
所以为什么我们软件运行必须先加载,因为这个是体系结构规定的
数据是从一个设备拷贝到另一个设备
所以体系结构的效率:由设备的拷贝效率决定
CPU在数据层面,只和内存打交道,外设只和内存打交道
这张图展示了冯诺依曼体系结构的基本组成部分及其关系,下面结合这张图进行详细讲解:
图中模块的组成和作用
- 输入设备:
- 位于左侧,是计算机系统的外部接口之一,用于将外界数据(如用户输入)传输到计算机内部。
- 数据通过输入设备(如键盘、鼠标等)进入系统后,被送入存储器。
- 存储器:
- 位于图中央,存储器是冯诺依曼体系的核心部件之一,负责存储指令和数据。
- 存储器既可以存储程序(指令序列),也可以存储数据(供指令操作)。
- 存储器与输入设备和输出设备通过数据信号连接,与运算器和控制器通过控制信号和数据信号连接。
- 运算器:
- 位于图的右下角,负责对数据进行算术运算和逻辑运算。
- 运算器是中央处理器(CPU)的重要组成部分,负责核心的计算任务。
- 控制器:
- 位于运算器下方,与存储器、输入设备和输出设备通过控制信号连接。
- 控制器负责从存储器中取出指令,解释指令,并协调各部分完成任务。它是计算机的“大脑”。
- 输出设备:
- 位于右侧,用于将计算结果或处理信息输出到外部(如显示器、打印机)。
- 输出设备接收来自存储器或运算器的数据,经过一定的转换后呈现给用户。
图中的连接线条解读
- 红色箭头(数据信号):
- 表示输入设备、存储器、运算器和输出设备之间的数据传递路径。
- 数据信号的方向反映了数据在不同模块间的流动。例如:
- 输入设备将数据传入存储器。
- 存储器将数据传送到运算器,供其进行计算。
- 运算器的计算结果可通过输出设备传递给用户。
- 黑色箭头(控制信号):
- 表示控制器向其他模块发送的控制信号,用于协调和指挥各模块的工作。
- 控制器决定存储器、输入设备和输出设备的工作流程,包括指令取出、数据传输等。
图中体系的工作流程
- 输入阶段:
- 输入设备将外部数据或指令输入到存储器中,存储器负责存储这些数据或程序。
- 指令处理阶段:
- 控制器从存储器中读取指令,进行解码,判断指令的类型和操作数。
- 若指令涉及数据处理,控制器会从存储器中取出相应数据,并送到运算器。
- 计算阶段:
- 运算器对数据进行操作(如加法、减法、逻辑比较等),并将结果返回存储器或直接传递到输出设备。
- 输出阶段:
- 通过输出设备将计算结果或处理信息输出,供用户查看或进一步使用。
冯诺依曼体系的特性(结合图解)
- 存储程序概念:
- 存储器同时存储数据和程序指令,二者以相同的方式存取。
- 存储器通过控制器连接其他部件,保证程序与数据的统一管理。
- 顺序执行:
- 控制器从存储器按地址顺序取指令,指令按逻辑顺序执行,直至遇到跳转指令。
- 单总线设计:
- 从图中可以看出,各模块通过信号线(类似总线系统)互连,数据、指令和控制信号通过统一的信道传递。
结合图的冯诺依曼瓶颈
- 瓶颈描述:
- 存储器、控制器、运算器之间数据传递共享同一通道,导致处理器性能可能受制于数据传输速度(即冯诺依曼瓶颈)。
- 图中体现:
- 红色箭头和黑色箭头指向存储器,反映了数据和指令访问频率高,这会成为系统性能的瓶颈。
通过这张图,我们可以直观理解冯诺依曼体系的结构和工作原理,同时也能认识到其瓶颈所在。这种设计为计算机技术的发展奠定了基础,但随着需求的变化,后续体系结构进行了许多改进,比如缓存技术、并行计算等。
冯诺依曼体系(Von Neumann Architecture)是现代计算机设计的基础概念之一,由数学家和计算机科学家约翰·冯·诺依曼(John von Neumann)于1945年提出。这种体系结构定义了计算机的基本结构和工作原理,深刻影响了计算机的设计与发展。以下是对冯诺依曼体系的深度讲解:
冯诺依曼体系的核心思想
- 存储程序概念:
- 冯诺依曼体系提出计算机程序和数据可以存储在同一存储器中,并通过统一的方式进行管理和访问。
- 程序的指令和操作的数据都以二进制形式存储在内存中。
- 分离硬件功能:
- 将计算机系统分为五大核心部分:
- 运算器(ALU, Arithmetic Logic Unit):负责执行算术和逻辑操作。
- 控制器(Control Unit):负责从内存中读取指令,解释并执行指令,协调其他部件的工作。
- 存储器(Memory Unit):用于存储程序和数据。
- 输入设备(Input Device):负责接收用户输入(如键盘、鼠标)。
- 输出设备(Output Device):将计算结果展示给用户(如显示器、打印机)。
- 这种模块化设计使计算机结构清晰,易于实现和改进。
- 顺序执行的控制流:
- 指令按存储顺序逐条读取和执行,程序的执行是线性的,除非遇到跳转指令(如条件跳转和循环)。
- 统一的总线系统:
- 数据、指令和地址通过统一的总线系统在不同部件之间传递。
冯诺依曼体系的工作原理
冯诺依曼计算机遵循指令周期的概念,每个周期分为以下步骤:
- 取指令(Fetch):
- 控制器从内存中读取当前指令,指令地址由程序计数器(PC, Program Counter)指定。
- 译指令(Decode):
- 控制器对取到的指令进行解码,判断操作类型(如加法、跳转等)和操作数位置。
- 执行指令(Execute):
- 运算器根据解码结果执行指令,例如完成算术运算、存取数据、修改寄存器等。
- 存储结果(Write Back):
- 执行的结果可能需要存入内存或寄存器中,以备后续操作使用。
- 更新程序计数器(PC):
- 程序计数器指向下一条指令地址,准备进入下一个指令周期。
冯诺依曼体系的优点
- 通用性强:硬件与程序分离,通过更换程序可以完成不同任务。
- 简单性与经济性:统一的存储器设计和总线系统降低了设计和制造成本。
- 模块化设计:分离功能模块便于扩展和维护。
冯诺依曼体系的局限性
- 冯诺依曼瓶颈:
- 指令和数据共享同一存储器和总线,导致CPU与内存之间的通信速度受限。现代高速处理器的运行速度往往超过内存速度,形成瓶颈。
- 存储与处理分离:
- 数据和指令需要频繁在内存和CPU之间传输,这种存储与处理分离的模式增加了功耗和延迟。
- 功耗问题:
- 随着指令和数据流量的增加,频繁的存储器访问导致系统功耗显著提高。
- 顺序执行的限制:
- 冯诺依曼体系强调指令顺序执行,虽然可以通过跳转实现非线性执行,但并未天然支持现代复杂并行计算。
现代改进
为了克服冯诺依曼体系的一些局限性,现代计算机体系结构进行了多种改进:
- 缓存(Cache):
- 在CPU中加入多级缓存(L1、L2、L3),减少内存访问的延迟。
- 分布式计算和并行处理:
- 哈佛架构:
- 一些嵌入式系统采用哈佛架构,将指令和数据存储器分离,避免冯诺依曼瓶颈。
- 流水线技术:
- 通过指令流水线(Pipeline),让多个指令的不同阶段同时进行,提高指令执行效率。
- 分级存储:
- 使用寄存器、缓存、主存和外存等多级存储设备,根据访问速度和存储容量进行优化。
总结
冯诺依曼体系是现代计算机设计的理论基石,其存储程序的概念极大推动了计算机技术的发展。然而,其设计中的瓶颈问题随着技术进步愈发明显,促使人们不断探索新的体系结构以提高计算机性能。尽管如此,冯诺依曼体系在理论和实践上的贡献仍不可磨灭。