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