第1章 量化设计与分析基础

1.计算机的分类类别

Flynn分类法(基于指令流数据流数量)

  • SISD (Single Instruction Single Data)
    • 单指令单数据流
    • 适用于单处理器系统(Uniprocessors)。
  • MISD (Multiple Instruction Single Data)
    • 多指令单数据流
    • 特殊情况,通常不常见,具体实例较少(???)。
  • SIMD (Single Instruction Multiple Data)
    • 单指令多数据流
    • 适合并行处理,常用于向量处理器和图形处理。
    • 示例:Illiac-IV、CM-2。
  • MIMD (Multiple Instruction Multiple Data)
    • 多指令多数据流
    • 常用于多核处理器和并行计算。
    • 示例:SPARCCenter、T3D。

2.计算机系统结构定义和计算机的设计任务:指令集结构概念及要素

计算机系统结构(现代定义):是在满足功能、性能和价格目标的条件下,设计、选择和互连硬件部件构成计算机。

系统结构覆盖:

指令系统设计

组成(Organization):计算机设计方面的高层次:CPU内部结构、存储器、I/O系统、多处理器、网络

硬件: 计算机的具体实现技术:详细逻辑设计、封装、冷却系统、板级设计,功耗等

根据课件内容,关于指令集结构概念及要素,整理如下重点内容:


指令集结构(Instruction Set Architecture, ISA)的概念

指令集结构(ISA)是计算机系统中软件与硬件的接口,它定义了计算机能够执行的指令、数据类型、寄存器组织、存储访问等内容。
ISA 的作用是:

  1. 为程序员提供一个编程视角:定义可见的机器语言属性。
  2. 硬件实现的基础:硬件执行程序操作时需严格遵循 ISA。
  3. 软件与硬件的桥梁:指令集使操作系统和应用程序能够在不同硬件实现上运行。

指令集结构的七个要素

指令集结构设计需要考虑以下七个关键要素:

  1. 寄存器组织(Register Organization)
    • 早期累加器结构:操作数依赖累加器(单寄存器)。
    • 现代通用寄存器结构:支持多个寄存器,提升数据访问速度,减少对内存的依赖。
      示例:32位ARM架构中有16个通用寄存器。
  2. 存储器访问(Memory Access)
    • 定义数据如何存储和读取:
      • 字节访问(Byte-level access)
      • 地址对齐规则(Address Alignment):数据的存储地址需对齐字边界。
  3. 寻址方式(Addressing Modes)
    • 定义指令如何指定操作数的位置:
      • 直接寻址:操作数的地址直接在指令中给出。
      • 间接寻址:操作数的地址存储在寄存器或内存中。
      • 偏移寻址:基地址加上一个偏移量确定操作数位置。
      • 立即数寻址:操作数直接作为指令的一部分给出。
  4. 操作数类型和大小(Operand Types and Sizes)
    • 定义支持的数据类型和数据宽度:
      • 数据类型:8位字符、16位短整型、32位整型、64位浮点数等。
      • 操作数数量:单操作数、双操作数、三操作数等。
  5. 操作类型(Operation Types)
    • 指令支持的基本操作,主要包括:
      • 数据传输:如 Load(加载)、Store(存储)。
      • 算术/逻辑运算:如加法、减法、AND、OR等。
      • 控制流指令:如跳转、条件分支、子程序调用与返回。
  6. 控制流指令(Control Flow Instructions)
    • 定义程序如何跳转和执行:
      • 条件跳转:根据条件执行跳转操作。
      • 无条件跳转:直接转移程序的执行位置。
      • 子程序调用/返回:用于函数的调用和返回。
  7. 指令编码(Instruction Encoding)
    • 定义指令如何编码和存储:
      • 固定长度指令:每条指令的长度相等,便于硬件并行处理。
      • 可变长度指令:根据操作的复杂性,指令长度可以变化,节省存储空间。

总结

指令集结构(ISA)是计算机系统的核心组成部分,它决定了程序与硬件的交互方式。ISA的设计主要围绕寄存器组织、存储访问、寻址方式、操作数类型、操作类型、控制流指令指令编码等七个要素展开。

在现代计算机设计中,精简指令集(RISC)和复杂指令集(CISC)是两种主要的ISA设计风格:

  • RISC:指令简单、执行快速,适合硬件优化。
  • CISC:指令复杂、功能强大,适合减少指令数量。

3.实现技术的趋势:技术发展的趋势

摩尔定律:集成在芯片上的晶体管数量每两年翻一番,性能提升的同时成本下降。

性能趋势:带宽改进优于时延

  • 带宽(Bandwidth):在给定时间内完成的工作总量。
  • 时延(Latency):一个事件从开始到结束所需的时间。
  • 经验法则:
    • 带宽提升的速度要优于时延的改善速度
  • 改进方向:
    • 处理器性能提高,更多关注并行化技术(如多核处理器)和带宽扩展

4.集成电路功耗的趋势:功耗的概念

image-20241218094807510

5.可靠性:提高可靠性的方法

image-20241218094938998

6.测量、报告和总结计算机性能:计算机主要性能指标


1. 响应时间(Response Time)

定义

  • 响应时间是指从任务开始到完成所经历的总时间,包括处理时间等待时间I/O时间

特点

  • 包括:
    • CPU执行时间(实际处理时间)。
    • 等待时间(I/O等待、调度等开销)。

2. 吞吐量(Throughput)

定义

  • 吞吐量是系统在单位时间内完成的任务数量

公式

特点

  • 适用于衡量系统处理能力,尤其是多任务并发环境。

3. 执行时间(Execution Time)

定义

  • 执行时间是程序实际运行所需的时间,主要指CPU完成任务的时间。

公式

或者:


4. MIPS(百万条指令每秒,Million Instructions Per Second)

定义

  • MIPS表示CPU每秒执行的百万条指令数量,是衡量程序运行速度的指标。

公式

特点

  • MIPS受指令集(ISA)的影响较大,适用于同一架构间的性能比较。

5. CPU时间(CPU Time)

定义

  • CPU时间是指CPU实际用于执行程序的时间,不包括等待时间。

公式

或者:

分类

  1. 用户CPU时间(User CPU Time):CPU用于执行用户程序的时间。
  2. 系统CPU时间(System CPU Time):CPU用于操作系统内核代码的时间。

6. CPI(每条指令的平均时钟周期数,Cycles Per Instruction)

定义

  • CPI表示每条指令平均需要的时钟周期数,是衡量程序执行效率的重要指标。

公式

特点

  • CPI越低,程序的执行效率越高。
  • 影响CPI的因素包括:
    • 指令集设计(RISC vs CISC)。
    • 硬件流水线的效率。
    • 缓存命中率。

总结对比

指标 定义 公式 特点
响应时间 从任务开始到完成的总时间,包括等待时间等。 - 用户感知性能的重要指标。
吞吐量 单位时间内完成的任务数。 反映系统的整体处理能力。
执行时间 程序完成所需的CPU实际执行时间。 衡量程序性能的直接指标。
MIPS 每秒执行的百万条指令数。 受指令集结构影响,适用同一架构。
CPU时间 CPU实际用于执行程序的时间。 包括用户时间和系统时间。
CPI 每条指令平均消耗的时钟周期数。 反映硬件流水线和程序执行效率。

image-20241218101043539

7.计算机设计的量化原则:Amdahl定律

image-20241218101218632image-20241218101242285

image-20241218101257037image-20241218101321836

image-20241218101344721image-20241218101422497

image-20241218101538993image-20241218101606466

image-20241218101620216