Skip to content
冯诺伊曼架构
📆2022-03-12 | ✍2022-03-16 | 📂计算机架构

计算机程序

计算机程序是一系列指令。每种指令都精确定义一项计算机需要执行的工作。

冯·诺伊曼架构实现了此机制:

  • 内存:程序所在;程序的数据来源。
  • 计算单元:执行指令。
  • 输入设备:程序的数据来源。
  • 输出设备:输出程序执行结果。
  • 控制单元:决定指令的执行顺序。

内存

读取内存某一位置的内容,先加载其地址到内存地址寄存器(MAR),再去内存中寻址。目标内容最终加载到内存数据寄存器(MDR)。

写入值到内存某一位置,先加载目标位置的地址到MAR,加载待写值到MDR,再去内存种寻址。最终,内存会把MDR内容写入MAR所含地址指向的位置。

计算单元

现代计算机的计算单元已变得成熟而复杂,为各类型计算都配备了专门的子单元。为简单起见,目前只学习算术逻辑单元(ALU)。

ALU可执行的操作有:ADD, SUBTRACT, 逻辑运算。ALU按(Word)处理数据,例如ADD接收两字并产出一字。

当今处理器的字长多为64比特。LC-3的字长是16比特。

为方便连续运算,计算单元有一系列寄存器作为计算结果中转站。寄存器的大小一般等于ALU可处理数据的大小,即一字。

控制单元

指令是逐步执行的,control unit keeps track of both where we are within the process of executing the program and where we are in the process of executing each instruction.

指令寄存器(IR)保存当前正在执行的指令;指令指针保存下一条指令的地址,出于历史原因,此寄存器又称程序计数器(PC)。

指令处理

冯·诺伊曼架构的核心思想是:

  1. 程序和数据都是内存中的二进制码。
  2. 控制单元一次执行一条指令。

指令执行的构成:

  • 操作码:表示指令该做什么。
  • 操作对象:指令所操作的数据。

指令类型即操作码类型,主要分成三类:

  • 操作:操作数据,如LC-3的ADD, AND, NOT。
  • 数据移动:在计算单元、内存、IO设备之间移动信息。
  • 控制:变更指令的执行顺序。

某些ISA另有用于特殊途径的指令类型。

LC-3的指令为一字长,从右至左升序编码。Ins[15:12]是操作码,Ins[11:0]指出操作对象所在,其中有一个保留位。

指令周期

指令周期有六个阶段,每一阶段需要**≥0步完成。一步耗时≥1**个机器周期。

并非所有指令都必须经历以下六个阶段

  1. FETCH:从内存获取下一指令,将其加载到IR。

    (1) 使用PC的信息,依寻址模式加载到MAR。同时PC += 1

    (2) 访问内存,加载下一指令到MDR。

    (3) 加载MDR内容到IR。

  2. DECODE:查看指令,弄清楚微架构应该干嘛。解码器会处理指令的操作码。

  3. EVALUATE ADDRESS:根据指令信息计算出所需地址。

    像ADD和AND这种,数据IO先由寄存器处理,不直接求地址的,没有此阶段。

  4. FETCH OPERANDS:获取操作对象。

    比如,拿着地址去读取内存、读取寄存器信息。

    当下许多微处理器将此阶段与EXECUTE合并了。

  5. EXECUTE:执行指令。

  6. STORE RESULT:存储结果至预定位置。

中止程序

控制单元调度一次的时间称作机器周期,它由时钟决定,故又称时钟周期

例如,3.1 GHz Intel Core i7 每秒可执行 31.0 亿次调度。

看出来了吧?计算机的控制系统是有限状态机!通过不断执行指令,它不停地转变状态。若想停止转变,须停下指令周期,即停止时钟。

时钟信号由晶体振荡器(crystal oscillator)生成,具有周期性。此信号运行(RUN)锁存器的输出,得到真正的时钟信号。

利用TRAP中止程序,实则清零运行锁存器。中断任务完成后,指令周期由外部命令恢复。

数据路径

在数据路径中,控制信号由有限状态机发出。

粗黑色大箭头是全局总线,负责传输1字长的数据。元件经由三态设备(三角形)向总线输送信息,保证一次只有一个设备向总线提供信息。

储存值到内存时,控制信号断言WE信号,以写入MDR的值到MAR所指位置。

ALU、寄存器文件 —— 见书P175。

PC的输入来源是PCMUX。PCMUX是一种 3入1出 的元件,输入分别来自总线、PC相关寻址、PC自增。

MARMUX控制MAR的输入源。MARMUX是一种 2入1出 的元件,输入分别来自陷阱矢量和寻址模式,输出流向全局总线。

LC-3的数据路径

Last updated: