跳转至

冯·诺依曼计算机

概述

冯·诺依曼计算机是指基于冯·诺依曼体系结构的计算机。1945年,美籍匈牙利数学家冯·诺依曼(John von Neumann)提出了"存储程序"的概念,并设计了EDVAC计算机,奠定了现代计算机的基础。至今,绝大多数计算机仍采用冯·诺依曼体系结构。

冯·诺依曼体系结构的核心思想

1. 存储程序

最核心的概念

  • 将程序(指令)和数据以二进制形式统一存储在主存储器中
  • 计算机能够自动地逐条取出指令并执行
  • 程序可以像数据一样被修改和处理

工作方式:

  1. 将指令以代码形式事先输入到计算机主存储器中
  2. 按其在存储器中的首地址执行程序的第一条指令
  3. 以后就按照该程序的规定顺序执行其他指令
  4. 直至程序执行结束

2. 二进制表示

  • 指令和数据均以二进制形式表示
  • 简化硬件设计
  • 便于存储和处理

3. 五大部件

计算机由五大基本部件组成:

  1. 运算器: 执行算术运算和逻辑运算
  2. 控制器: 指挥各部件协调工作
  3. 存储器: 存储程序和数据
  4. 输入设备: 接收外部信息
  5. 输出设备: 输出处理结果

冯·诺依曼计算机的结构

1. 以运算器为中心(早期)

早期冯·诺依曼机以运算器为中心,所有数据的传送都通过运算器。

特点:

  • 运算器是数据传送的枢纽
  • 输入输出数据都要经过运算器
  • 效率较低

结构:

Text Only
1
2
3
4
5
输入设备 → 运算器 ←→ 存储器
           输出设备
           控制器

2. 以存储器为中心(现代)

现代计算机以存储器为中心,提高了数据传送效率。

特点:

  • 存储器是数据传送的枢纽
  • 输入输出设备直接与存储器交换数据
  • 效率较高

结构:

Text Only
1
2
3
4
5
输入设备 → 存储器 ←→ 运算器
           输出设备
           控制器

冯·诺依曼计算机的特点

1. 指令和数据存储在同一存储器

  • 统一编址,统一存储
  • 指令和数据在存储器中没有区别
  • 程序可以修改自身

2. 指令由操作码和地址码组成

  • 操作码: 指明操作类型
  • 地址码: 指明操作数地址
  • 指令格式统一

3. 指令在存储器中按顺序存放

  • 通常按顺序执行
  • 由程序计数器(PC)指示下条指令地址
  • 可以通过转移指令改变执行顺序

4. 早期的冯·诺依曼机以运算器为中心

  • 运算器完成所有数据传送
  • 现代计算机以存储器为中心
  • 提高了系统效率

冯·诺依曼计算机的工作过程

1. 取指令

  • 从存储器中取出指令
  • 送入指令寄存器(IR)
  • 程序计数器(PC)自动加1

2. 分析指令

  • 对指令进行译码
  • 识别操作类型
  • 获取操作数地址

3. 执行指令

  • 根据操作码执行相应操作
  • 获取操作数
  • 完成运算或数据传送
  • 存储结果

4. 循环执行

  • 重复上述过程
  • 直到程序结束

冯·诺依曼体系结构的优缺点

优点

  1. 结构简单: 五大部件分工明确
  2. 通用性强: 可用于各种计算任务
  3. 易于实现: 硬件设计相对简单
  4. 便于编程: 存储程序概念简化了编程

缺点

  1. 冯·诺依曼瓶颈: CPU和存储器速度不匹配
  2. 串行执行: 指令顺序执行限制了并行性
  3. 存储器访问频繁: 成为性能瓶颈
  4. 指令和数据共享总线: 限制了数据传送速度

对冯·诺依曼体系结构的改进

1. 哈佛结构

特点:

  • 指令和数据分别存储在不同的存储器中
  • 指令和数据有各自的总线
  • 可以同时访问指令和数据

优点:

  • 提高了数据传送速度
  • 便于实现流水线技术

应用:

  • DSP(数字信号处理器)
  • 嵌入式系统

2. 并行处理

技术:

  • 流水线技术: 指令重叠执行
  • 多核处理器: 多个CPU核心并行工作
  • 向量处理: 同时处理多个数据

效果:

  • 提高了处理速度
  • 突破了串行执行的限制

3. 存储器层次结构

层次:

Text Only
寄存器 → Cache → 主存 → 辅存

效果:

  • 缓解了冯·诺依曼瓶颈
  • 提高了存储器访问速度

4. 非冯·诺依曼结构

类型:

  • 数据流计算机: 由数据驱动执行
  • 归约计算机: 按需求驱动执行
  • 智能计算机: 具有学习和推理能力

冯·诺依曼体系结构的影响

1. 对计算机发展的影响

  • 奠定了现代计算机的基础
  • 统一了计算机的设计思想
  • 促进了计算机的普及和应用

2. 对程序设计的影响

  • 存储程序概念简化了编程
  • 促进了高级语言的发展
  • 推动了软件工程的发展

3. 对计算机科学的影响

  • 建立了计算机科学的理论基础
  • 推动了计算机体系结构的研究
  • 促进了计算机技术的发展

现代计算机对冯·诺依曼结构的继承与发展

1. 继承

  • 仍采用存储程序概念
  • 仍由五大部件组成
  • 仍采用二进制表示

2. 发展

  • 采用并行处理技术
  • 采用存储器层次结构
  • 采用流水线技术
  • 采用超标量技术

参考资料