指令系统(Instruction Set Architecture, ISA)是计算机系统中硬件与软件之间的界面。它特定指的是 CPU 级的指令,如 Intel x86、ARM 或 RISC-V 架构的指令集。

  • 指令系统存在于 CPU 内部。
  • 它是驱动硬件计算机运行的基础,操作系统最终通过指令系统驱动处理器完成任务。
  • 具体的指令实现由其 指令格式 定义,包含 指令地址码 and 指令操作码

设计目标与权衡

在设计指令系统时,需要在多个目标之间进行权衡,没有绝对的“最好”,只有最适合特定应用场景的设计。

  • 指令长度尽可能短:减少存储空间占用。
  • 字节的整数倍:有效利用存储空间,避免浪费。 重点
  • 性能 vs. 可靠性
    • 高性能:追求更快的处理速度 and 更低的功耗(如 1.8nm 工艺),适合消费电子、服务器等。
    • 高可靠性:追求在极端环境下的稳定性(如耐高温、低温、抗干扰),适合航天、军工等领域。例如,某些老旧工艺(如 14nm 以上)可能因其高可靠性而被选用。

应用背景的变化

  • 通用计算机:传统上以 Intel x86 架构为主导。
  • 嵌入式系统:随着物联网 and 移动设备的发展,基于 ARM 或 RISC-V 的 嵌入式处理器 日益普及。在嵌入式开发中,根据实际需求定制指令系统已成为可能。 重点

指令系统与 寻址技术 密切相关,共同决定了 CPU 如何访问数据。

指令集架构

  • 指令类型:数据传输、运算、控制、I/O。
  • CISC与RISC:复杂指令系统与精简指令系统的对比。

寻址方式

基本寻址方式

数据寻址方式决定了如何根据指令中的形式地址 计算出有效地址

常见寻址方式

  1. 立即寻址 (Immediate Addressing):
    • 操作数直接包含在指令中。
    • 特点: 速度快,但通用性差。
  2. 直接寻址 (Direct Addressing):
    • 指令中直接给出操作数的物理地址。
    • 缺点: 与现代操作系统的动态装载需求不符。
  3. 寄存器寻址 (Register Addressing):
    • 操作数存放在 CPU 内部的通用寄存器中。
    • 优点: 速度极快。
  4. 间接寻址 (Indirect Addressing):
    • 指令中给出的是存放操作数地址的地址(类似于指针的指针)。 重点
    • 支持动态内存装载。
  5. 寄存器间接寻址:
    • 寄存器中存放的是操作数的地址。
  6. 变址寻址:
    • 常用于数组处理。
  7. 基址寻址:
    • 用于操作系统存储管理。
  8. 相对寻址:
    • 用于程序重定位和跳转。
  9. 页式寻址:
    • 通过页号 and 页内地址拼接得到有效地址。

寻址方式位

指令中通常设置专门的标记位来区分寻址方式(如 0 表示直接寻址,1 表示间接寻址)。这些技术共同构成了 寻址技术 的核心,并直接影响 指令地址码 的设计。

寻址方式对比

寻址方式对比

在硬件实现上,变址寻址基址寻址相对寻址 虽然在逻辑描述和应用场景上有所不同,但 底层均使用相同的地址映射硬件装置(加法器)来完成地址变换重点

  • 变址寻址 vs 基址寻址:

    • 变址寻址: 面向普通用户,常用于数组处理。
    • 基址寻址: 面向操作系统,用于逻辑地址到物理地址的映射、存储管理和动态装载。
  • 相对寻址: 使用 替代专用寄存器,常用于程序重定位。

指向原始笔记的链接

指向原始笔记的链接