参考
- 课堂学习
- 《计算机系统结构教程》(第4版)(清华大学出版社,2023年)
第一章:计算机系统结构的基本概念
引言
- 第一台通用电子计算机诞生于1946年
- 计算机技术的飞速发展得益于:
- 计算机制造技术的发展
- 计算机系统结构的创新
- 经历了四个发展过程:
- 系统结构的重大转折
- 从单纯依靠指令级并行转向开发线程级并行和数据级并行
- 计算机系统结构在计算机的发展中有着极其重要的作用
计算机系统结构的概念
- 计算机系统的层次结构
- 计算机系统=硬件/固件+软件
- 计算机语言从低级向高级发展:高一级语言的语句相对于低一级语言来说功能更强,更便于应用,但又都以低级语言为基础。
- 从计算机语言的角度,把计算机系统按功能划分成多级层次结构,每一层以一种语言为特征:
-
- 虚拟机:由软件实现的机器
- 语言实现的两种基本技术:
- 翻译
- 解释
- 解释执行比编译后再执行花的时间多,占用的存储空间少。
- 直接执行微指令的是硬件
-
- 计算机系统结构的定义(感觉这段很乱,先记着)
- 经典定义:程序员所看到的计算机属性,即概念性结构与功能特性。
- 按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
- 透明性(transparency):在计算机技术中,把本来存在的事物或属性从某种角度看又好像不存在的概念称为透明性。(如存在)
- Amdahl提出的系统结构:传统机器语言级程序员所看到的计算机属性。
- 广义的系统结构定义:指令集结构、组成、硬件(计算机设计的三个方面)
- 计算机系统结构概念的实质:确定计算机系统中软、硬件的界面,界面之上是软件实现的功能,界面之下是硬件和固件实现的功能。
- 计算机组成和计算机实现
- 计算机组成:计算机系统结构的逻辑实现
- 包含物理机器中的数据流和控制流的组成以及逻辑设计等
- 着眼于物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的联系
- 计算机实现:计算机组成的物理实现
- 包括处理及、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
- 着眼于:器件技术(起主导作用)、微组装技术。
- 一种体系结构可以有多种组成,一种组成可以有多种物理实现。
- 系列机
- 由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。
- 计算机组成:计算机系统结构的逻辑实现
- 计算机系统结构的分类
- Flynn分类法:按照指令流和数据流的多倍性分类
- 指令流:计算机执行的指令序列
- 数据流:由指令流调用的数据序列
- 多倍性:在系统受限的部件上,同时处于统一执行阶段的指令或数据的最大数目
- 该分类法把计算机系统的结构分为四类:
- SISD:单指令流单数据流
- SIMD:单指令流多数据流
- MISD:多指令流单数据流
- MIMD:多指令流多数据流
- 冯氏分类法:按照系统的最大并行度分类
- 系统的最大并行度:计算机系统在单位时间内能够处理的最大的二进制位数
- Flynn分类法:按照指令流和数据流的多倍性分类
⭐定量分析技术⭐
- 计算机系统设计的定量原理
- 1.以经常性事件为重点(找抓手、着眼主要矛盾)
- 对经常发生的情况采用优化方法的原则进行选择,以得到更多的总体上的改进。
- 优化指的是分配更多的资源、达到更高的性能或者分配更多的电能等等。
- 2.Amdahl定律:加快某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。(一种性能改进的递减规则。仅仅对计算任务中的一部分做性能改进,则改进的越多所得到总体性能的提升就越有限。)
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过1/(1-可改进比例)
- 例题
- 例题
- 重要推论:如果只针对整个任务的一部分进行改进和优化,那么所获得的加速比不超过1/(1-可改进比例)
- 3.CPU性能公式
- 执行一个程序所需的CPU时T=执行程序所需的时钟周期数n*时钟周期时间
- 时钟周期时间=1/系统时钟频率(主频)f
- 每条指令执行的平均时钟周期数CPI=执行程序所需的时钟周期数n/所执行的指令条数IC
-
- CPU的性能取决于3个参数
- IC:取决于指令集结构和编译技术
- CPI:取决于计算机组成和指令集结构
- ΔT:取决于硬件实现技术和计算机组成
- CPU的性能取决于3个参数
-
- 例题
- 例题
- 4.程序的局部性原理:程序执行时所访问的存储器地址分布不是随机的,而是相对的簇聚。
- 1.以经常性事件为重点(找抓手、着眼主要矛盾)
- 计算机系统的性能评测(与测试者看问题的角度有关)
- 执行时间(用户关注)
- 与性能成反比
- 有多种定义
- 计算机完成某一任务所花费的全部时间
- CPU执行所给定的程序所花费的时间
- 用户CPU时间:用户程序所耗费的CPU时间
- 系统CPU时间:用户程序运行期间操作系统耗费的CPU时间
- 吞吐率(数据处理中心管理员关注)
- 基准测试程序:用于测试和比较性能的基准测试程序的最佳选择是真实应用程序(例如编译器)
- 以前常用简化了的程序
- 核心测试程序(真实测试程序中选出的关键代码段构成的小程序)
- 小测试程序(简单的只有几十行的小程序)
- 合成的测试程序(人工合成出来的程序)(Whetstone和Dhrystone是最流行的)
- 但是太小了,具有片面性、不可信性。
- 性能测试的结果除了和采用的测试程序有关,还和测试条件有关。
- 基准测试程序设计者对制造商的要求
- 采用同一种编译器
- 对同一种语言的程序都采用相同的一组编译标志
- 以前常用简化了的程序
- 性能比较
- 不同的加权策略算出的速度比不同
- 执行时间(用户关注)
计算机系统结构的发展
- 冯·诺依曼结构
- 存储程序原理的基本点:指令驱动。
- 程序预先存放在计算机存储器中,计算机一旦启动,就能按照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述的处理工作。
- 冯·诺依曼结构的主要特点
- 以运算器为中心
- 在存储器中,指令和数据同等对待。
- 指令和数据一样可以进行运算,即由指令组成的程序是可以修改的。
- 存储器是按地址访问、按顺序线性编址的一堆结构,每个单元的位数是固定的。
- 指令的执行是顺序的。
- 一般是按照指令在存储器中存放的顺序执行。
- 程序的分支由转移指令实现。
- 由指令计数器PC指明当前正在执行的指令在存储器中的地址。
- 指令由操作码和地址码组成。
- 指令和数据均以二进制编码表示,采用二进制运算。
- 对系统结构进行的改进
- 存储程序原理的基本点:指令驱动。
- 软件对系统结构的影响
- 器件发展对系统结构的影响
- 摩尔定律:集成电路芯片上所继承的晶体管数目每隔18个月就翻一番。
- 计算机的分代主要以器件作为划分标准
- 应用对系统结构的影响
- 系统结构的生命周期
- 系统结构的生命周期:诞生→发展→成熟→消亡
- Intel的x86系列微处理器中32位系统结构的发展
- 系统结构的生命周期:诞生→发展→成熟→消亡
计算机系统结构中并行性的发展
- 并行性的概念
- 并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
- 只要时间上互相重叠,就存在并行性。
- 同时性:两个或两个以上的事件在同一时刻发生。
- 并发性:两个或两个以上的事件在同一时间间隔内发生。
- 并行性等级
- (处理数据的角度)
- (执行程序的角度)
- (处理数据的角度)
- 并行性:计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
- 提高并行性的技术途径
- 时间重叠:引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
- 资源重复:引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地提高计算机系统的性能。
- 资源共享:一种软件方法。使多个任务按一定时间顺序轮流使用同一套硬件设备。
- 单机系统中并行性的发展
- 多机系统中并行性的发展
- 神威太湖之光超级计算机&天河超级计算机
第二章:计算机指令集结构
指令集结构的分类
- 区别不同指令集结构的主要因素:CPU中用来存储操作数的存储单元的类型
- CPU中用来存储操作数的存储单元的主要类型
- 堆栈
- 累加器
- 通用寄存器组
- 将指令集结构分为三种类型
- 堆栈结构
- 累加器结构
- 通用寄存器结构
- 根据操作数来源的不同,又可进一步分为
- 寄存器-存储器结构(RM结构):操作数可以来自存储器
- 寄存器-寄存器结构(RR结构)/load-store结构:所有操作数都来自通用寄存器组,只有load和store指令可以访问存储器
- 对于不同类型的指令集结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。
- 显示给出:用指令字中的操作数字段给出
- 隐式给出:使用事先约定好的存储单元
- 4种指令集结构的操作数的位置以及结果的去向
- 通用寄存器结构
- 现代指令集结构的主流
- 在灵活性和提高性能方面有明显的优势
- 根据ALU指令的操作数的两个特征对通用寄存器型指令集结构进一步细分
- ALU指令的操作数个数
- 3个操作数的指令:两个源操作数+一个目的操作数
- 2个操作数的指令:其中一个操作数既作为源操作数,又作为目的操作数
- ALU指令中存储器操作数的个数:可以是0~3中的某一个,为0表示没有存储器操作数
- ALU指令中操作数个数和存储器操作数个数的典型组合
- ALU指令的操作数个数
- 通用寄存器型指令集结构进一步细分为3种类型
- 3中通用寄存器型指令集结构的优缺点
寻址方式:指令集结构确定所要访问的数据的地址的方式
- 当前指令集结构中所采用的一些操作数寻址方式
- 采用多种寻址方式可以显著地减少程序的指令条数,但可能增加计算机的实现复杂度以及指令的CPI.
指令集结构的功能设计:确定软硬件功能分配
- 主要考虑因素:速度\成本\灵活性
- 硬件实现的特点:速度快\成本高\灵活性差(高频基本功能一般用硬件实现)
- 软件实现的特点:速度慢\价格便宜\灵活性好
- 对指令集的基本要求
- 完整性
-
- 规整性
-
- 高效率
- 指指令的执行速度快\使用频率高
- 兼容性
- 完整性
- 两种截然不同的设计策略
-
- CISC指令集结构的功能设计
- 追求的目标:强化指令功能,减少程序的指令条数,以达到提高性能的目的.
- 强化指令功能的着手方面
- 面向目标程序增强指令功能
- 面向高级语言的优化实现来改进指令集
- 面向操作系统的优化改进指令集
- 面向目标程序增强指令功能
- 强化指令功能的着手方面
- 追求的目标:强化指令功能,减少程序的指令条数,以达到提高性能的目的.
- RISC指令集结构的功能设计
- CISC指令集结构存在的问题
- 设计RISC机器遵循的原则
- 早期的RISC微处理器
- CISC指令集结构存在的问题
- 控制指令
- 控制指令是用来改变控制流的
- 跳转:无条件改变控制流
- 分支:有条件改变控制流
- 能够改变控制流的指令
- 分支
- 跳转
- 过程调用
- 过程返回
- 控制指令的使用频度
- 常用的三种表示分支条件的方法及其优缺点
- 转移目标地址的表示
- 最常用的方法:在指令中提供一个偏移量,由该偏移量和程序计数器PC的值相加而得出目标地址(PC相对寻址)
- 过程调用和返回
- 控制指令是用来改变控制流的
操作数的类型和大小
- 数据表示:计算机硬件能够直接识别\指令集可以直接调用的数据类型
- 所有数据类型中最常用\相对比较简单\用硬件实现比较容易的几种.
- 数据结构:由软件进行处理和实现的各种数据类型
- 研究:这种数据类型的逻辑结构与物理结构之间的关系,并给出相应的算法.
-
- 表示操作数类型的方法有两种
- 第一种比较常用
- 操作数的大小:操作数的位数或字节数
- 访问不同操作数大小的频度
指令格式的设计
- 指令组成:操作码+地址码
- 指令格式的设计:确定指令字的编码方式,包括操作码字段和地址码字段的编码和表示方式.
- 操作码的编码比较简单和直观
- Huffman编码法:减少操作码的平均位数,但所获得的编码是变长的\不规整,不利于硬件处理.
- 固定长度的操作码:保证操作码的译码速度
- 两种表示寻址方式的方法
- 将寻址方式编码于操作码中,由操作码描述相应操作的寻址方式
- 设合资专门的地址描述符,由地址描述符表示相应操作数的寻址方式
- 将寻址方式编码于操作码中,由操作码描述相应操作的寻址方式
- 考虑因素
-
- 指令集的3种编码方式
- 变长编码格式
- 定长编码格式
- 混合型编码格式
- 变长编码格式
MIPS指令集结构
介绍MIPS64的一个子集,简称为MIPS.
- MIPS的寄存器
-
- MIPS的数据表示
- MIPS的数据表示
-
- MIPS的数据表示
- MIPS的数据寻址方式
-
- MIPS的指令格式
-
- MIPS的操作
-
- MIPS的控制指令
-
- MIPS的浮点操作
-
第三章:流水线技术
第四章:指令级并行
第五章:存储系统
第六章:输入输出系统
I/O系统性能与CPU性能
- 输入输出系统(I/O系统)组成
- I/O设备
- I/O设备与处理器的连接
- I/O系统是计算机系统中的一个重要组成部分
- 完成计算机与外界的信息交换
- 给计算机提供大容量的外部存储器
- 按照主要完成的工作进行分类
- 存储I/O系统(本章内容)
- 通信I/O系统
- I/O系统重要性
-
- 系统的响应时间(相对CPU时间更好衡量计算机系统):从用户输入命令开始,到得到结果所花费的时间。
- 构成
- I/O系统的响应时间
- CPU的处理时间
- 构成
- 评价I/O系统性能的参数
- 连接特性:哪些I/O设备可以和计算机系统相连接
- 容量:I/O系统可以容纳的I/O设备数
- 响应时间和吞吐率(单位时间内系统提供的服务量)
- I/O操作对CPU的打扰情况(考察某个进程在执行时,由于其他进程的I/O操作,使该进程的执行时间增加了多少)
I/O系统的可靠性、可用性和可信性
- 在处理器性能已经很高的时候,人们更加关注系统的可靠性。
- 反应外设可靠性的参数
- 可靠性reliability:系统从某个初始参考点开始一直连续提供服务的能力。
- 衡量标准:平均无故障时间MTTF
- 系统失效率:1/MTTF
- 如果系统中每个模块的生存期服从指数分布(经过一段时间的工作之后,模块的寿命分布与原来还未工作时的寿命分布相同),则系统整体的失效率是各部件的失效率之和。
- 可用性availability:系统正常工作的时间在连续两次正常服务间隔中所占的比例。。
- 可用性=MTTF/(MTTF+MTTR)
- 平均修复时间MTTR:衡量系统中断服务的时间
- 平均失效间隔时间MTBF=MTTF+MTTR
- 可信性dependability :服务的质量,不可度量。即多大程度上可以合理地认为服务是可靠的。
- 可靠性reliability:系统从某个初始参考点开始一直连续提供服务的能力。
- 例题
- 提高系统组成部件可靠性的方法
- 有效构建方法valid construction:在构建系统的过程中消除故障隐患,这样建立起来的系统就不会出现故障。
- 纠错方法error correction:在系统构建中采用容错的方法,这样即使出现故障,也可以通过容错信息保证系统正常工作。
- 反应外设可靠性的参数
廉价磁盘冗余阵列RAID
- 磁盘阵列Disk Array:使用多个磁盘(包括驱动器)的组合来代替一个大容量的磁盘。
- (廉价)磁盘冗余阵列redundant arrays of inexpensive disks简称盘阵列技术
- 1988,Patterson
- 大多数磁盘阵列的组成可以由两个特征区分
- 数据交叉存放的粒度
- 细粒度磁盘阵列
- 粗粒度磁盘阵列
- 细粒度磁盘阵列
- 冗余数据的计算方法以及在磁盘阵列中的存放方式
- 数据交叉存放的粒度
- RAID的分级及其特性
- RAID0
- 非冗余阵列,无冗余信息.
- 严格意义上不属于RAID系列
- 把数据切分为条带,以条带为单位交叉地分布存放到多个磁盘中.
-
- RAID1(镜像盘)
- 使用双备份磁盘
- 每当把数据写入磁盘时,将该数据也写入其镜像盘,形成信息的两个副本.
- 特点
- RAID2(存储器式的磁盘阵列)
- 按汉明纠错码的思路构建
-
- 特点
- RAID3(位交叉奇偶校验盘阵列)
-
- 特点
- RAID4(块交叉奇偶校验磁盘阵列)
- 采用比较大的条带,以块为单位进行交叉存放盒计算奇偶校验.
- 实现目标:能同时处理多个小规模访问请求
- 读写特点
- 采用比较大的条带,以块为单位进行交叉存放盒计算奇偶校验.
- RAID5(块交叉分布奇偶校验磁盘阵列)
- 数据以块交叉的方式存于各盘,无专用冗余盘奇偶校验信息均匀分布在所有磁盘上.
- RAID6(P+Q双校验磁盘阵列)
- 能容忍两个磁盘出错
- 特点
-
- RAID10和RAID01
-
- RAID的实现与发展
- 实现盘阵列的主要方式
- 软件方式:阵列管理软件由主机来实现
- 成本低
- 过多占用主机时间,且带宽指标上不去
- 阵列卡方式:把RAID管理软件固化在I/O控制卡上,从而可不占用主机时间。一般用于工作站和PC机.
- 子系统方式:一种基于通用接口总线的开放式平台,可用于各种主机平台和网络系统.
- 软件方式:阵列管理软件由主机来实现
- 磁盘阵列技术研究的主要热点问题
- 实现盘阵列的主要方式
- RAID0
总线
- 总线:在计算机系统中,各子系统之间可以通过总线相互连接.
- 优点:成本低,多样性
- 缺点:它是由不同的外设分时共享的,形成了信息交换的瓶颈,从而限制了系统中总的I/0吞吐量.
- 总线的设计
- 技术难点
- 设计时需考虑的问题
- 分离事务总线/流水总线\悬挂总线\包交换总线:在有多个主设备时,可以通过打包技术来提高总线带宽.
- 基本思想:将总线事务分为请求和应答两部分
- 在请求和应答之间的空闲时间内,总线可以供其他的I/O使用,这样就不必在整个I/O过程中都独占总线
- 同步总线
- 异步总线
- 技术难点
- 总线标准和实例
-
- I/O总线与CPU的连接
- I/O总线的物理连接方式
- 连接到存储器(常见)
- 连接到cache
- I/O总线连接到存储器总线上的方式
- 一种典型的组织结构
- 一种典型的组织结构
- CPU对I/O设备的编址有两种方式
- CPU与外部设备进行输入/输出的方式可分为4种
- 程序查询:CPU进行I/O操作后,需反复不断地监测状态位来确定该操作是否完成
- 中断:只在I/O设备完成一次I/O后,才通过中断向CPU报告.允许CPU在等待I/O设备操作时执行其他进程.
- DMA:直接存储器存取,允许没有CPU干预的情况下传输多个数据字,过程中CPU可执行其他进程
- 通道:把对外设的管理工作从CPU中分离出来,能够承担外围设备的大部分I/O工作.
-
- I/O总线的物理连接方式
通道(处理机)
- 专门负责整个计算机系统的输入输出工作.只能执行有限的一组输入/输出指令.
- 作用和功能
- 一个典型的由CPU\通道\设备控制器\外设构成的四级层次结构的输入输出系统
- 通道的功能:
- 通道的主要硬件
- 通道对外设的控制通过输入输出接口和设备控制器进行
- 工作过程
- 通道的种类
- 根据信息传送方式的不同,将通道分为三种类型
-
- 字节多路通道
- 选择通道
- 数组多路通道
- 字节多路通道
- 通道中的数据传送过程与流量分析
- 通道流量/通道吞吐率/通道数据传输率:一个通道在数据传输期间,单位时间内能够传送的数据量.
- 单位:Bps
- 通道最大流量:一个通道在满负荷工作状态下的流量
- 参数定义
- 字节多路通道
- 选择通道
- 数组多路通道
- 通道流量/通道吞吐率/通道数据传输率:一个通道在数据传输期间,单位时间内能够传送的数据量.