体系结构复习1
第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 的作用是:
- 为程序员提供一个编程视角:定义可见的机器语言属性。
- 硬件实现的基础:硬件执行程序操作时需严格遵循 ISA。
- 软件与硬件的桥梁:指令集使操作系统和应用程序能够在不同硬件实现上运行。
指令集结构的七个要素
指令集结构设计需要考虑以下七个关键要素:
- 寄存器组织(Register Organization)
- 早期累加器结构:操作数依赖累加器(单寄存器)。
- 现代通用寄存器结构:支持多个寄存器,提升数据访问速度,减少对内存的依赖。
示例:32位ARM架构中有16个通用寄存器。
- 存储器访问(Memory Access)
- 定义数据如何存储和读取:
- 字节访问(Byte-level access)
- 地址对齐规则(Address Alignment):数据的存储地址需对齐字边界。
- 定义数据如何存储和读取:
- 寻址方式(Addressing Modes)
- 定义指令如何指定操作数的位置:
- 直接寻址:操作数的地址直接在指令中给出。
- 间接寻址:操作数的地址存储在寄存器或内存中。
- 偏移寻址:基地址加上一个偏移量确定操作数位置。
- 立即数寻址:操作数直接作为指令的一部分给出。
- 定义指令如何指定操作数的位置:
- 操作数类型和大小(Operand Types and Sizes)
- 定义支持的数据类型和数据宽度:
- 数据类型:8位字符、16位短整型、32位整型、64位浮点数等。
- 操作数数量:单操作数、双操作数、三操作数等。
- 定义支持的数据类型和数据宽度:
- 操作类型(Operation Types)
- 指令支持的基本操作,主要包括:
- 数据传输:如 Load(加载)、Store(存储)。
- 算术/逻辑运算:如加法、减法、AND、OR等。
- 控制流指令:如跳转、条件分支、子程序调用与返回。
- 指令支持的基本操作,主要包括:
- 控制流指令(Control Flow Instructions)
- 定义程序如何跳转和执行:
- 条件跳转:根据条件执行跳转操作。
- 无条件跳转:直接转移程序的执行位置。
- 子程序调用/返回:用于函数的调用和返回。
- 定义程序如何跳转和执行:
- 指令编码(Instruction Encoding)
- 定义指令如何编码和存储:
- 固定长度指令:每条指令的长度相等,便于硬件并行处理。
- 可变长度指令:根据操作的复杂性,指令长度可以变化,节省存储空间。
- 定义指令如何编码和存储:
总结
指令集结构(ISA)是计算机系统的核心组成部分,它决定了程序与硬件的交互方式。ISA的设计主要围绕寄存器组织、存储访问、寻址方式、操作数类型、操作类型、控制流指令及指令编码等七个要素展开。
在现代计算机设计中,精简指令集(RISC)和复杂指令集(CISC)是两种主要的ISA设计风格:
- RISC:指令简单、执行快速,适合硬件优化。
- CISC:指令复杂、功能强大,适合减少指令数量。
3.实现技术的趋势:技术发展的趋势
摩尔定律:集成在芯片上的晶体管数量每两年翻一番,性能提升的同时成本下降。
性能趋势:带宽改进优于时延
- 带宽(Bandwidth):在给定时间内完成的工作总量。
- 时延(Latency):一个事件从开始到结束所需的时间。
- 经验法则:
- 带宽提升的速度要优于时延的改善速度。
- 改进方向:
- 处理器性能提高,更多关注并行化技术(如多核处理器)和带宽扩展。
4.集成电路功耗的趋势:功耗的概念
5.可靠性:提高可靠性的方法
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实际用于执行程序的时间,不包括等待时间。
公式:
或者:
分类:
- 用户CPU时间(User CPU Time):CPU用于执行用户程序的时间。
- 系统CPU时间(System CPU Time):CPU用于操作系统内核代码的时间。
6. CPI(每条指令的平均时钟周期数,Cycles Per Instruction)
定义:
- CPI表示每条指令平均需要的时钟周期数,是衡量程序执行效率的重要指标。
公式:
特点:
- CPI越低,程序的执行效率越高。
- 影响CPI的因素包括:
- 指令集设计(RISC vs CISC)。
- 硬件流水线的效率。
- 缓存命中率。
总结对比
指标 | 定义 | 公式 | 特点 |
---|---|---|---|
响应时间 | 从任务开始到完成的总时间,包括等待时间等。 | - | 用户感知性能的重要指标。 |
吞吐量 | 单位时间内完成的任务数。 | 反映系统的整体处理能力。 | |
执行时间 | 程序完成所需的CPU实际执行时间。 | 衡量程序性能的直接指标。 | |
MIPS | 每秒执行的百万条指令数。 | 受指令集结构影响,适用同一架构。 | |
CPU时间 | CPU实际用于执行程序的时间。 | 包括用户时间和系统时间。 | |
CPI | 每条指令平均消耗的时钟周期数。 | 反映硬件流水线和程序执行效率。 |