冯・诺依曼体系

Xin-dudu 发布于 2025-09-18 80 次阅读


这张图的核心是 “一条取数指令是怎么从内存跑到 CPU 里执行完的”,先把每个硬件模块的作用记清楚,再顺着流程走一遍就明白了。

缩写全称通俗理解(自己记的话)
CPU中央处理器电脑的 “大脑”,所有运算和控制都靠它
ACC累加器早期用来临时存运算数据 / 结果的地方(现在被通用寄存器替代了)
MQ乘商寄存器早期做乘除运算时临时存乘数或商的地方
ALU算术逻辑单元真正做 “加减乘除” 和 “与或非” 逻辑运算的硬件模块
X通用寄存器临时存数据或中间结果的 “小仓库”
CU控制单元CPU 里的 “指挥官”,负责解析指令、发号施令
IR指令寄存器临时存当前正在执行的指令
PC程序计数器存 “下一条要执行的指令的地址”,执行完自动 + 1
主存内存存程序和数据的地方,CPU 要读 / 写数据都找它
MAR地址寄存器临时存 “要访问的内存地址”(CPU 告诉内存 “我要读这个地址”)
MDR数据寄存器临时存 “CPU 和内存之间要传的数据”(读内存时存数据,写内存时存要写的内容)
I/O输入输出设备键盘、显示器、磁盘这些和外界交互的设备

一步步看 “取数指令” 是怎么执行的(跟着图里的数字走)

假设我们要执行一条 “从内存里取一个数到 CPU” 的指令,整个过程是这样的:

  1. 第一步:PC 把指令地址给 MAR
    PC(程序计数器)里存着 “下一条要执行的指令在内存的哪个地址”,它先把这个地址传给 MAR(地址寄存器)。
  2. 第二步:内存根据地址读指令到 MDR
    MAR 拿着地址告诉内存 “我要读这个地址的指令”,内存找到对应位置,把指令读到 MDR(数据寄存器)里。
  3. 第三步:MDR 把指令送到 IR
    MDR 把刚读到的指令传给 CPU 里的 IR(指令寄存器),现在 IR 里就存着当前要执行的指令了。
  4. 第四步:PC 自动指向下一条指令
    PC 自己加 1(或者根据指令类型跳转),准备好下一次取指令的地址。
  5. 第五步:CU 解析 IR 里的指令
    CU(控制单元)从 IR 里 “看懂” 这条指令是 “取数”,还要知道 “要取的数在内存的哪个地址”。
  6. 第六步:CU 把数据地址给 MAR
    CU 根据指令里的 “数据地址”,把这个地址传给 MAR。
  7. 第七步:内存根据地址读数据到 MDR
    MAR 拿着数据地址告诉内存 “我要读这个地址的数据”,内存找到对应位置,把数据读到 MDR 里。
  8. 第八步:MDR 把数据送到 CPU 寄存器
    MDR 把刚读到的数据传给 CPU 里的 ACC 或 X 这些寄存器,现在数据就到 CPU 里了,可以用来运算了。
  9. 第九步:数据参与运算或存储
    数据进到 ACC 后,ALU 就可以对它做加减乘除或者逻辑运算了。

冯・诺依曼计算机是个啥?这张图就是它的缩影

冯・诺依曼是计算机领域的大佬,他提出的 “存储程序 + 程序控制” 思想是现代计算机的基石,这张图就是这个思想的直观体现:

  • 存储程序:程序(一堆指令)和数据都存在内存里,不是分开存的。
  • 程序控制:CPU 会按照 “取指令→解析指令→执行指令” 的顺序,自动、逐条地执行内存里的指令(除非遇到跳转指令)。

冯・诺依曼计算机的五大核心部件,这张图里基本都有:

  • 运算器:ACC、MQ、ALU、X 这些,负责算数据。
  • 控制器:CU、IR、PC 这些,负责发号施令、解析指令。
  • 存储器:主存(MAR、MDR、Memory Bank),负责存程序和数据。
  • 输入设备:属于 I/O,比如键盘,把外界数据输进电脑。
  • 输出设备:属于 I/O,比如显示器,把电脑结果输出给人看。

总结一下,这张图就是把 “冯・诺依曼体系” 里 “CPU 怎么从内存里取指令、取数据并执行” 的过程拆解成了一步步的硬件交互,把每个部件的作用和数据流动记清楚,就理解了计算机最核心的工作逻辑。

此作者没有提供个人介绍。
最后更新于 2025-09-18