1.2 体系结构与组成

计算机体系结构(Computer Architecture)含有结构(structure)的意思。之所以定义计算机体系结构,因为不同用户会从不同角度看待计算机。CA通常被认为是程序员视角中的计算机,程序员所看到的是计算机的抽象视图。

计算机组成(Computer Organization)表示CA的具体实现。(抽象变为具体)

本书使用 CA 表示计算机抽象指令集 ISA,使用 CO 表示计算机实际硬件实现。

寄存器

寄存器(Register)是用来存放一个单位的数据或字数据的存储单位。寄存器通常用它所保存数据的位数来描述(8位、16位、32位、64位)。

寄存器与存储器中的字存储单元没有本质区别。二者实际区别在于:寄存器位于CPU内,访问速度更快。

机器码 & 汇编语言

计算机上执行的代码表示为二进制0和1组成的串,被称为机器码(Machine Code)。每种计算机只能执行一种特定机器码。

将机器码解释成人类可阅读的形式,则为汇编语言(Assembly Language),机器码与汇编语言一一对应。

能在不同计算机运行,与底层 CA 无关系的代码叫做高级语言(如:C,Java)。执行之前,高级语言必须被编译为计算机本地机器码。

时钟

绝大多数数字电子电路都带有一个时钟,用来生成连续的、间隔固定的电脉冲流。之所以被称为时钟(Clock)是因为可用这些电脉冲来计时或确定计算机内所有事件的顺序。

RISC & CISC

RISC(精简指令集)CA:

  • 设计策略:少量指令完成最少的简单操作
  • 缺点:程序设计更难,复杂指令需要用简单指令模拟
  • 应用:ARM、RISCV

CISC(复杂指令集)CA:

  • 设计策略:使用大量指令,包括复杂指令
  • 优点:程序设计更容易
  • 缺点:CPU和控制单元电路复杂
  • 应用:Intel 奔腾、x86_64