第一章 概论
第一节 计算机系统的层次结构
层次结构由低到高, 微程序机器级、传统机器语言机器级、操作系统机器级、汇编语言机器级、高级语言机器级、应用语言机器级。
解释技术:在低级机器上用它一串语句或指令来仿真高级机器上的一条语句或指令。
翻译技术:将高一级上的程序完整的变换成低一级上等效的程序,然后再低一级上实现。
M0用硬件实现、M1用微程序(固件实现)、M2-M5用软件实现
固件:是一种具有软件功能的硬件。
虚拟机:以软件为主实现的机器(不一定全由软件,也可用固件或硬件)
第二节 计算机系统结构、计算机组成、计算机实现
从计算机层次结构角度,系统结构是对计算机系统中各级界面的定义,及其上下的功能分配
IBM370由 中央处理机/主存–通道 - 设备控制器 - 外设 4级构成
计算机系统结构的设计的任务是进行软、硬件的功能分配。
第三节 计算机系统的软硬件取舍及定量设计原理
软、硬件的功能分配是计算机系统结构的主要任务。
计算机系统的定量设计原理
- 哈夫曼压缩原理,尽可能加速处理高概率事件。
- Amdahl定律
- 程序访问的局部性定律,包括时间和空间上的局部性
计算机系统设计的主要任务包括系统结构、组成、实现的设计
计算机系统的设计方法
- 由上往下,先考虑如何满足应用的需求。
- 由下往上,先根据能用的器件进行设计。(由于器件飞速发展,已很少采用)
- 从中间开始,向两边设计。通用机采用的办法。
第四节 软件、应用、器件的发展对系统结构的影响
实现软件移植技术有:
- 统一高级语言
- 采用系列机
向上(下)兼容:指的是按某档机器编制的软件,不加修改的运行于比它高(低)档的机器上。
向前(后)兼容:指的是在按某个时期投入市场的该型号机器上编制的软件,不加修改就能运行在它之前(后)投入市场的机器上。
必须保证向后兼容,力争向前兼容。
- 模拟和仿真:
- 模拟:用机器语言程序解释实现软件移植的方法称为模拟。(效率低)
- 仿真:用微程序直接解释另一种机器指令系统的方式称为仿 真(效率高,但机器结构差距大时,会很困难)
- 区别:仿真用微程序解释,其解释存储于控制存贮器中。模拟 是用机器语言程序解释,其解释程序存储于主存中。
第五节 并行性开发及计算机系统的分类
- 并行性
从计算机执行程序的角度
- 指令内部并行
- 指令之间
- 任务或进程之间
- 作业或程序之间
处理数据的角度
- 位串字串
- 位并字串
- 位片串字并
- 全并行
并行性贯穿计算机信息加工的各个步骤和阶段:
- 存储器操作并行
- 处理器操作步骤并行(取指、分析。。。)
- 处理器操作并行(多cpu)
- 指令、任务、作业并行(多处理机)
并行性开发的途径有 时间重叠、资源重复、资源共享。
多机系统包括 多处理机系统、多计算机系统。
计算机系统的分类
-
按照指令流和数据流多倍性进行分类。
- 单指令流单数据流(SISD)
- 单指令流多数据流(SIMD)
- 多指令流单数据流(MISD)
- 多指令流多数据流(MIMD)
-
数据处理并行度分类 字串位串、子串位并、字并位串、字并位并
第二章 数据表示、寻址方式、指令系统
第一节 数据表示
- 自定义数据表示包括,标识符数据表示 和 数据描述符 两类。
- 标识符数据表示,每个数据都带有类型标识符。标识符与数据合存在一个存储单元中
- 数据描述符与数据分开存放,用于描述索要访问的数据是整块的还是单个的。
- 向量、数组数据表示。
- 堆栈数据表示。
- 它们的优缺点
- 引入数据表示的原则
- 原则1 看系统的效率是否显著提高,包括实现时间和存储空间是否有显著减少
- 原则2 看引入这种数据表示后,其通用性和利用率是否提高
- 浮点数尾数基值大小 和 下溢处理方法的选择
下溢处理方法截断法、舍入法、恒置1法、查表舍入法
- 截断法:直接舍弃超出的尾数(有误差)
- 舍入法:多出个附加位,并对附加位+1 (误差趋近于0)
- 恒置1法:正负都恒置1(误差趋近于0)
- 查表舍入法:全1用截断法,其他用舍入(误差趋近于0)(速度快,需要硬件)
第二节 寻址方式
- 寻址方式的三个面向,面向内存、面向寄存器、面向堆栈 寻址。
- 寻址方式在指令中的指明:
- 一种是 占用操作码中的某些位来指明
- 另一种 不占用操作码,而在地址码部分专门设置寻址方式位字段指明。
- 程序在主存中的定位技术
- 静态再定位
- 动态再定位
- 指令系统的设计包括 指令的功能设计 、 指令的格式设计
- 指令类型包括 非特权指令、特权指令
- 指令由 操作码、地址码两部分组成
第四节 指令系统的发展和改进
- CISC 可从三个方向优化,面向目标程序、面向高级语言、面向操作系统。
- RISC技术的好处:
- 简化指令系统设计
- 提高计算机的执行速度和效率
- 降低设计成本,提高系统的可靠性
- 可直接支持高级语言的实现,简化编译程序的设计
第三章 存储、中断、总线、I/O系统
第一节 存储
- 存储系统的基本要求:大容量、高速度、低价格。
第二节 中断系统
- 中断分为:内部中断、外部中断、软件中断。
- 内部中断由cpu内的异常引起
- 外部中断由中断信号引起
- 软件中断由自陷指令引起
- 外部中断分为:可屏蔽中断、不可屏蔽中断。
- 中断分类,IBM370的中断分类。
- 机器校验(设备故障)
- 管理程序调用(访管指令)
- 程序性
- 外部 (定时器中断、外部信号、中断键)
- 输入输出 (cpu与io)
- 重新启动
- 中断现行程序进一步分为,中断和异常
- 中断的分级
- 第一级:机器校验
- 第二级:程序性和访管
- 第三级:外部
- 第四级:输入输出
- 最低级:重新启动
中断系统的功能包括,中断请求的保存和清除、优先级的确定、中断断点及现场的保存、对中断请求的分析和处理、中断返回。
中断现场包括,软件状态、硬件状态。
3.3 总线系统
- 总线的分类
- 按在系统中的位置分为,芯片级、板级、系统级
- 按用法可分为,专用总线、非专用总线
- 专用:只连接一对物理部件的总线
- 非专用: 多种功能或多个部件分时共享的
- 总线的控制方式,集中式、分布式。
集中式:优先级次序的确定可以有,串行连接、定时查询、独立请求三种 - 总线的通信技术分为,同步、异步
- 数据宽度有,单字、定长块、可变长块、单字加定长块、单字加可变长块。
- 数据总线的宽度有,位、字节、字、双字。
3.4 I/O系统
- io系统包括,输入/输出设备、设备控制器、输入输出操作相关的软硬件。
- 输入输出系统,三个发展经历(对应三个方式),程序控制IO、直接存储器访问(DMA)、IO处理机方式(通道)
- 输入输出分外存和传输设备两大类。外存(磁带,磁盘…) 传输设备(键盘鼠标…)
- 通道中信息传输方式的不同,分为,字节多路、数组多路、选择
- 字节多路,适用于低速设备
- 数组多路适用于连接多台磁盘等高速设备
- 选择通道适用于优先级高的磁盘等高速设备
第四章 存储体系
4.2 虚拟存储器
- 虚拟存储器的基本特征,不连续,部分交换,大空间
4.3 高速缓冲存储器
- 地址的映像方式:全相连、直接相连、组相连
- 替换策略:随机、FIFO、LRU
- 写入策略:
- 写回法:仅当需要替换时才将数据写回内存。优点:速度快、性能高、带宽少。缺点:增加cache复杂性,需要设立额外修改位,以确定何时要写回
- 写直达法:有改变就写入内存。优点:易于实现,一致性好。缺点:每次cache数据的改变都要进行写内存,写内存较为耗时,性能低。
- cache一致性问题:
- 播写法1(写作废):让此cache单元标记作废,从内存中取。实现复杂,消耗带宽低。
- 播写法1(写更新):更新其它cache中的内容,实现简单,消耗带宽高。
4.4 三级存储体系
- 三级存储体系的三种形式
- 物理地址cache:需要将物理地址转成虚拟地址,增加了转换时间。
- 虚地址cache:全部采用虚地址。增加速度
- 全cache:没有主存,全用cache,速度肯定飞起,但肯定很贵。 目前尚不成熟,尚未商业化。
第五章 标量处理机
5.1 重叠方式
解释一条机器指令的微操作课归并为取指、分析、译码。 解释见课本
实现指令的重叠解释必须在计算机组成上满足以下几点要求:
- 解决访问内存的冲突。分析和译码都要访问同一主存,解决方案
- 操作数和指令分别存放于两个独立编址且可同时访问的存储器中
- 维持指令和操作数混存,但采用多体交叉
- 增设先进先出的指令缓冲存储器(指缓)。 空闲期间取多条指令到指缓中
- 解决分析与执行操作的并行。 所以硬件上应该有独立的指令分析部件和指令执行部件
- 解决分析与执行操作上的同步。
- 解决指令间的各种相关的处理。
5.2 流水方式
流水线:重叠方式的进一步细分
流水线扩展思路:向下扩展、向上扩展
向下扩展:把子过程进一步细分。
向上扩展:多个处理机之间的流水,多个处理机串行。
流水的分类:
- 按处理的级别可分为部件级、处理机级(各部件之间)、系统级(多个处理机之间)
- 具有功能的多少分为单功能流水线、多功能流水线
- 按多功能流水线各段是否允许同时用于多种功能,可分为动态流水线、静态流水线
- 从数据表示角度看,可分为标量流水机(用循环处理)、向量流水机(有处理向量的部件)
- 按是否有反馈回路,可分为线性流水线、非线性流水线
5.2.2 标量流水线的主要性能
吞吐率Tp:流水线单位时间里能流出的任务数或结果数
加速比Sp:相对于非流水顺序方式速度提高的比值。
顺序方式执行n个任务的时间 / 流水方式执行n个任务的时间
效率:流水线中设备实际使用的时间占整个运行时间的比值,也称为流水线设备的时间利用率。
标量流水机相关处理
- 局部性相关:由指令、主存操作数、通用寄存器组引起的相关
- 全局性相关:由转移指令引起的相关
- 流水线的中断
- 非线性流水线的调度
解决局部相关的两种方法:推后后续指定对相关单元的读, 设置相关直接通路
任务在流水线中流动顺序的安排和控制可以有两种方式:顺序(同步)流动,异步流动
全局相关的处理:
- 使用猜测法:随机选一个分支
- 加快和提前形成条件码:例如for循环
- 采用延迟转移技术: 将转移指令提前到不相干的指令前
- 加快短循环程序的处理
流水机器的中断
主要是如何处理好断点现场的保存和恢复,而不是缩短流水线的断流时间。
不精确断点发、精确断点法(以第一条流入的指定为准,之后流入的指令按作废处理)
非线性流水线的调度
- 二维预约表
- 延迟禁止表F= {1,5,6,8}
- 中断向量表C = (10110001)
- 状态转移图
- 调度方案,找出平均延迟最小的方案
5.3指令级高度并行的超级处理机
- 超标量处理机
- 超长指令字处理机
- 超流水处理机
- 超标量超流水处理机
第六章 向量处理机
向量处理机是由向量数据表示的处理机,分为向量流水处理机,阵列处理机
向量处理机是以时间重叠途径开发的
阵列处理机是以资源重复途径开发的
6.1 向量的流水处理与向量流水处理机
向量处理方式
- 横向(水平)处理方式 (一条一条算)
- 纵向(垂直)处理方式 (先全算加)
- 分组纵横处理方式(CRAY-1)
CRAY-1 通过并行、链接提高性能
不能出现Vi冲突和功能部件冲突
6.2 阵列处理机的原理
阵列处理机的两种构型,分布式存储器阵列处理机构型、集中式共享存储器的阵列处理机构型
阵列处理机是单指令流多数据流的方式。
利用的是资源重复,而不是时间重叠。
利用的是并行性中的同时性,而不是并发性。
阵列处理机提高速度主要是靠增大处理单元数。
向量流水处理机主要靠缩短时钟周期
6.3 SIMD计算机的互联网络
SIMD互联网络的设计目标:
- 结构不要过分复杂,以降低成本
- 互联要灵活以满足算法要求和应用要求
- 处理单元之间交换信息要传送步数少,以提高速度
- 用规整单一的基本构建组成,模块性好,便于大规模集成电路扩展
互联网络应该抉择的几个问题:
- 操作方式,同步、异步、同步与异步(指的是时钟)
- 控制策略:集中、分布
- 交换方式:线路交换、包交换、线路与包交换
- 网络拓扑的选择:静态、动态
动态网络有==单级、多级(由多个单级组成)==两类
第七章 多处理机
多处理机是指:
- 两台以上的处理机,共享I/O子系统
- 机间经共享主存或高速共享网络
- 在统一操作系统控制之下
- 协同求解大而复杂的计算机系统
使用处理机的目的
- 通过多台处理机,对多个作业、任务进行并行执行来提高解题速度,从而提高整体性能
- 使用冗余的多处理机通过重新组织,来提高系统的可靠性,适用性,可用性
多处理机可以有同构性、异构型、分布型 3种。
结论:多处理机的结构、机间互联、并行算法、并行语言、编译、操作系统 等都将会直接影响到整个系统的性能
多处理机的硬件结构
紧耦合和松耦合
紧耦合:共享主存
- 通过共享主存实现机间通信
- 采用mod m多体交叉存取,减少访主存冲突
- 还可以增加cache,减少访主存冲突
多处理机和链接外设的方式
- 对称互联:链接灵活,贵
- 非对称互联:只有一个出口入口,便宜,但可靠性不高
- 冗余链接:非对称基础上增加冗余,提高可高兴
松耦合:每个处理机都有一个局部存贮器
机间互联形式:总线、环形互联、交叉开关、多端口存储器、蠕虫穿洞巡径网络
存储器的组织
多个处理机的主存一般采用由多个模块构成的并行存储器
交叉编制的方式有:
- 低位交叉 (数据分散在不同存储体中)
- 高位交叉
流水、向量或阵列处理机中采用低位交叉编址
多处理机一般采用高位交叉编址
7.2 紧耦合多处理机多cache的一致性问题
不一致的解决:
- 解决进程迁移引起的多cache不一致
- 禁止进程迁移
- 靠硬件改写
- 以硬件为基础实现多cache的一致性
- 监视协议法:写作废、写更新(播写法)
- 目录表法:建立一个目录表进行记录
- 以软件为基础实现多cache的一致性
- 编译时进行处理,优点 降低硬件复杂度,降低互联网络的要求,价格低。缺点:编译程序编写困难
7.3 多处理机的并行性和性能
7.3.1 并行算法
按运算基本对象,可分为数值型、非数值型
按并行进程间的操作顺序不同,可分为同步型、异步型、独立型
根据各处理器计算任务的大小,可分为细粒度、中粒度、粗粒度
MIMD一般异构型, SIMD一般同构型
7.3.2 程序并行性分析
- 数据相关 (先写后读)
- 数据反相关(先读后写)
- 数据输出相关(写写相关)
7.3.4 多处理机的性能
图像处理 事宜细粒度
计算 事宜粗粒度
7.4 多处理机的操作系统
- 主从型
- 各自独立型
- 浮动型
7.5 多处理机的发展
机群系统
优点:
- 高性价比
- 开发周期短
- 可扩展性好
- 资源利用率高
- 投资风险小
- 编程方便
第八章 数据流计算机和归约机
数据流计算机和归约机都基于数据流的计算机模型。
只是驱动方式不同
数据流计算机基于数据驱动,使用数据流语言
归约机基于需求驱动,使用函数式语言
归约方式的不同,分为串归约、图归约
数据以数据令牌的方式在指令间传递
数据令牌:表示某一操作数准备就绪的标志
数据流是基于异步性、函数性的一种计算模型
根据对数据令牌处理的方式不同,分为 静态(令牌不带标记)、动态(令牌带上标记) 两类