What & How & Why

Computer Architecture

Week 5 notes


Von Neumann

Element

CPU 通常由两部分组成:

  • ALU(Arithmatic Logic Unit):算术、逻辑运算
  • Registers:为上述的运算存储数据

Memory 通常由两部分组成:

  • Program:存储计算机指令
  • Data:存储执行指令所需要的数据

Information Flows

整个系统中存在着三种类型的管线:

  • Data 数据管线
  • Address 地址管线
  • Control 控制管线

这三种管线统称 BUSBinary Unit System,总线)

ALU 需要的 BUS
  • Data Bus(数据总线)用于传输 ALU 运算所需的操作数(输入数据)以及运算完成后的结果(输出数据)。
  • Control Bus(控制总线)用于传输控制信号,包括:
    • 指定 ALU 执行的运算类型(如加法、减法、与运算等)
    • 控制跳转逻辑(例如依据标志位决定是否跳转)
    • 其他协调 CPU 各部分协同工作的信号
寄存器需要的 BUS
  • Data Bus:寄存器同样需要与其他部分的数据交互
  • Address Bus: 传递,管理寄存器的地址信息,是访问寄存器的通道
Memory 需要的 BUS
  • Data Bus: 负责数据的交互
  • Adress Bus:指定哪一个内存单元会参与工作
  • Program part 同时需要 Control Bus 来协调指令相关的各个部分

The Fetch-Execute Cycle

计算机整个过程:

  1. Fetch
  2. execute
  3. redo the loop

Fetch

Fetch 指从 Memory 中获取计算机指令的整个过程。具体的过程:

  1. 将下一条指令的位置放入 Memory 中存储地址的部分
  2. 通过读取该位置对应的 Memory 内容来获取指令
The program counter

Fetch 中保存下一条指令位置的部分被称为 Program counter。大多数情况下,由于下一条指令都是紧接着当前指令,因此通常 Program counter 会通过当前值加一的方式获取下一条指令的地址。

Exectue

  • 指令的具体内容控制执行的内容
  • 计算机通过相关 bits (的子集)来控制不同的操作(使用 control BUS)

Fetch-Execute clash