计算机系统结构
2024-03-23 09:22:12 2 举报
AI智能生成
知识结构梳理, 考点整理
作者其他创作
大纲/内容
1章 计算机系统结构概念
计算机系统的组成
硬件
运算器
控制器
存储器
输入设备
输出设备
软件
系统软件
应用软件
决定系统的功能
计算机系统的层次结构
计算机系统定义
从使用语言的角度,一台,软,硬组成的通用计算机系统可以被看出是 "按功能划分"的 "多层机器"组成的层次结构
语言角度
高级语言
汇编语言
机器语言
机器
被定义为 能 "存储" 和 "执行" 相应语言程序的 "算法" 和 "数据结构" 的 集合体
实际上,只有 "二进制机器指令", 即传统所讲的 "机器语言" 和 "机器硬件直接对应, 方可直接被硬件识别和执行
多级层级结构 (由高到低)
第5级 虚拟机
应用语言机器
经应用程序包翻译成高级语言程序
第4级 虚拟机
高级语言机器
高级语言程序经编译程序翻译成汇编语言程序
第3级 虚拟机
汇编语言机器(机器语言)
经汇编程序翻译成机器语言程序
第2级 虚拟机
操作系统机器
用机器语言程序解释作业控制语句
第1级 实际机器
传统机器语言机器
用微指令程序解释机器指令
第0级 实际机器
微程序机器
微指令 由硬件直接执行
透明性
透明性定义
如果客观存在的事物或属性 从某个角度看不到, 则对他是透明的
分类
对机器(汇编)语言程序员
透明
先行进位链
主存地址寄存器
浮点方式表示
乘法器
不透明
中断字寄存器
通用寄存器
指令地址寄存器
条件码寄存器
程序性中断
访问方式保护
I/O方式中的 DMA 访问方式
对系统程序员
透明
Cache存储器
数据通路宽度
指令缓冲寄存器
不透明
虚拟存储器
程序状态字
计算机系统结构
透明
机器内部的数据流和控制流的组成
VLSI技术
存储器的模M交叉方式
数据总线宽度
阵列运算部件
通道采用的是 结合型 还是独立型, 串行,重叠还是流水控制方式, Cache 存储器
计算机系统结构
系统结构定义
对计算机系统中 "各级界面" 的定义 和其上下 "功能分配",每 级都有自己的系统结构
是软件和硬件,固件的交界面, 是机器语言,汇编语言程序设计这 或 编译语言设计者 看到的机器物理系统的抽象
包含的属性
数据表示
硬件能直接识别 和处理的数据类型及格式
寻址方式
最小可寻址单位, 寻址种类,地址计算等
寄存器组织
通用/专用寄存器的设置,数量,字长,使用约定等
指令系统
二进制 或 汇编指令的操作类型, 格式,排序方式,控制机构
存储系统组织
主存的最小编址单位, 编址方式,容量, 最大可编址空间
中断机构
中断的分类与分级, 中断处理程序功能及入口地址
系统机器级的"管态" 和 "用户态" 的定义和切换
机器级I/O 结构
输入/输出设备的连接, 使用方式,流量, 操作结束, 出错指示
系统各部分的"信息保护" 方式和 "保护机构" 等属性
计算机组成
指的是计算机系统结构的逻辑实现, 包括计算机内部的 "数据流" 和 "控制流程"的组成 等 逻辑的设计
着眼与计算内部 "事件的 "排序方式" 和 "控制机构" 以及 "各部件的功能" 和 "各部件间的联系"
计算机组成 向上 决定于 "结构" 向下 受限于 "实现技术"
计算机组成设计要确定的方面
数据通路宽度
专用部件的设置
各种操作对部件的共享程度
功能部件的并行度
控制机构的组成方式
缓冲和排队技术
预估,预判技术
可靠性技术
计算机实现
指的是计算机组成的 "物理实现" ,
包括 处理机, 主存等部件的物理结构
器件的集成度和速度
器件,模块,插件, 底板的划分与连接, 专用器件的设计, 微组装技术
信号传输, 电源, 冷却 及整机装配 技术 等
着眼 "器件设计" 和 "微组装" 技术
软件的功能实现
软件的功能 可以用 "硬件" 和 "固件" 完成 , 硬件的功能 可以用 "软件模拟" 完成 只是在他们都 性能, 价格,实现的难易程度上是不同的
软 ,硬件 取舍的基本原则
提高 "硬件功能比例" , 可提高解题速度, 减少程序 所需要的存储空间,
增加硬件成本, 降低硬件利用率, 和计算机的灵活性和适应性
增加硬件成本, 降低硬件利用率, 和计算机的灵活性和适应性
提高 "软件功能比例" 可降低 硬件成本, 提高 系统的灵活性,适应性,
单解题速度会降低, 软件设计费用和所需要的存储器用来会增加
单解题速度会降低, 软件设计费用和所需要的存储器用来会增加
计算机系统 定量设计原理
1 哈夫曼(Huffman) 压缩原理
尽可能的 加速处理高概率事件 远比 加速处理 低概率事件的 对性能提高要显著
2. Amdahl 阿姆达尔定律
改进效果好的高性能系统,应该是一个 各部分 "性能均能平衡" 得到提高的系统, 而不是某个功能部件性能的提高
3. 程序访问的局部性定律
程序访问的局部性包括了 "时间" 上和 "空间" 上的两个局部性
计算机设计的主要任务
包括
计算机系统结构 设计
计算机组成 的设计
计算机实现 的设计
涉及
软,硬件功能分配
计算机指令系统设计
功能组织
逻辑设计
集成电路设计
封装
电源
冷却
原则
根据市场和应用情况, 确定用户对计算机系统的功能,性能,和价格的要求
其中, "应用软件" 对功能的确定起 主要作用.
标准
要弄清楚其应用的领域是专用 还是通用的
要弄清楚 软件兼容是放在哪级层次
要弄清楚对操作系统有何种要求
要如何保证有高的保准化程度
方法
由上往下 设计 称为 由顶向底 设计
由下往上 设计 称为 由底向顶 设计
从"中间开始 向两边设计", 这是通用机一般采用的方法
在传统机器语言机器 和 操作系统机器 之间
并行性
包含 "同时性" 和 "并发性" 二重含义
开发的途径
时间重叠
引入时间因素,让多个处理过程在时间上错开,轮流重叠的使用同一套硬件设备的各个部分,加快硬件的周转赢得速度
资源重复
引入空间的因素, 通过重复设置硬件资源来提高可靠性或性能
资源共享
用 "软件" 方法, 让多个用户按一定 "时间顺序" 轮流使用同一套资源来提高资源利用率, 相应的提高系统的性能
角度分类
从计算系统 "执行程序" 的角度来看, 并行性 等级 由低到高可分为四级
指令内部
一条指令内部各个微操作之间的并行执行
指令之间
多条指令的并行执行
任务或进程之间
多个任务和程序段并行执行
作业或程序之间
多个作业或多到程序并行执行
从计算机系统 "处理数据"的角度来看, 并行性也可以分为 4级
位串字串
同时对一个字的一位进行处理, 通常指 串行单处理机
没有并行性
位并字串
同时对一个字的全部位进行处理, 通常只 并行单处理机
开始出现并行性
位片串字并
同时对多个字的同一位进行处理, 开始进入并行处理领域
相联处理机,阵列处理机 (SIMD)
全并行
同时对多个字段 全部或部分位进行处理
相联处理机,阵列处理机,多处理机 MIMD
从"信息加工"的各个步骤和阶段的角度来看
存储器操作并行
处理器操作步骤并行
处理器操作并行
指令,任务,作业并行
计算机的发展
软件发展对系统结构的影响
实现软件移植性
统一高级语言
采用系列机
只能应用在 "结构相同" 和 "相似" 的机器之间的汇编程序 的软件移植技术
系列机软件 必须保证向后兼容, 力争向前兼容
采用 "模拟" 和 "仿真"
模拟
用 机器语言程序解释, 其解释程序存储于 主存中
仿真
用微程序解释, 其解释程序存储于 控制存储器中.
仿真目标机器
指令系统
存储系统
I/O 系统
控制台的操作
应用的发展对系统结构的影响
归纳为向上升级的4类
数据处理
信息处理
知识处理
智能处理
智能机
"知识库机" 和 "推理机" 和 "智能接口处理机" 是必不可少的3个重要组成部分
器件的发展对系统结构的影响
器件集成度的提高
使器件的速度迅速提高, 机器主频和速度也有数量级的提高
器件可靠性提高
保证流水技术的实现
高速,廉价的半导体存储器的出现
使解题速度得以提高的 高速缓冲存储器件 和 虚拟存储器的 概念 真正实现
现场型 PROM器件
使微程序技术得以实现
高速相联存储器的实现
促进相联处理机这种结构的发展, 推动向量机, 数组机,数据库机的发展
结论
软件, 应用,器件对计算机系统结构的发展有很大影响,反过来, 计算机系统结构的发展又会对软件 ,应用,器件 提出新的发展要求
结构设计,不仅要了解结构, 组成,实现, 还有充分了解 软件,应用,器件的发展, 这样才能对计算机系统结构进行有效设计, 研究和探索
计算机系统的分类
1960年以前
并行性 主要表现在 " 算术运算" 的"位并行" 及 "运算 和 输入/输出" 操作的 并行
1966年,弗林 (Michael J·Flynn)
按 "指令流" 和 "数据流" 的多倍性 把计算机系统分成
单指令单数据流 SISD
指令部件每次只对一条指令译码,只对一个操作分配数据
单指令多数据流 SIMD
单一指令部件同时空中多个重复设置的处理部件,执行同一指令对不同数据的操作.
并行处理机: 阵列机 和 相联处理机
多指令单数据流 MISD
系统有n个处理单元,按n条不同指令的要求对同一数据流及其中间结果进行不同的处理, 一个处理单元的输出作为另一个处理单元的输入.
多指令多数据流 MIMD
指系统能实现作业,任务,指令,数组各级全面并行的多机系统
多处理机系统
1972年,冯泽云(Tse-yun-Fen)
提出用 "数据处理的并行度" 来定量的描述个计算机系统特性的
字串位串 WSBS
称 位串处理方式.
字串位并 WSBP
称 字处理方式
字并位串 WPBS
称 位处理方式
字并位并 WPBP
称 全并行处理方式
1978年,库克( David J.Kuck)
提出 按 "指令流" 和 "执行流" 以及 "多倍性" 来描述计算系统"总控制器"的结构特点
单指令流单执行流 SISE
典型的 单处理机系统
单指令流多执行流式 SIME
带多操作部件的处理机
多指令流单执行流 MISE
带指令级多道程序的单处理机
多指令流多执行流 MIME
典型的多处理机系统
按 "执行程序" 或 "指令的控制方式
由控制驱动的 控制流方式
由数据驱动的 数据流方式
由需求驱动的 规约方式 Reduction
由模式驱动的 匹配方式 Matching
2章 数据表示,寻址方式与指令系统
数据表示
指能由 计算机硬件 "识别" 和 "引用" 的数据类型, 表示在它对各种类型的数据进行操作的 "指令" 和 "运算部件"
和数据结构的关系
通过软件映像,变换成计算机中所具有的数据表示来实现的.
不同的数据表示可为数据结构的实现提供不同的支持,表现为实现效率和方便性不同.
数据结构和数据表示是软,硬件的交界面
高级数据表示
分类
自定义数据表示( Self-defining)
包括 "标志符数据表示"
类型标志
数据值
优点
简化指令系统和程序设计
简化编译程序
便于 实现一致性校验
能由硬件自动变换数据类型
支持 "数据库系统" 的 "实现" 和 "数据类型" 无关的要求, 使程序不用修改即可处理多种不同类型的数据
为软件" 调试" 和应用软件 "开发" 提供了支持
可以缩短 高级语言 和机器语言的 语义差距
缺点
增加程序多占用的主存空间
降低指令的执行速度
"数据描述符" 两类
描述符 101
各种标志位
长度
地址
数据 000
数据
两者差别
标志符是和每个数据相连的 ,合存在一个存储单元中, 描述单个数据的类型特征
数据描述符则是, 和数据分开存放, 用于描述所要访问的数据是整块的 还是单个, 访问该数据块,或数据元素所要的地址以及其他信息
向量,数组数据表示
为向量, 数组数据结构的实现和快速运算提供更好的硬件支持的方法是 ,增设 向量, 数组数据的表示, 组成 "向量机".
堆栈数据表示
有堆栈数据表示的计算机称为堆栈计算机
堆栈计算机表现(特点)
由高速寄存器组成的硬件堆栈, 并附加控制电路, 让它 与主存中的堆栈区在逻辑上构成整体,是使堆栈的访问速度是寄存器的,容量是主存的
有丰富的 "堆栈操作指令" 且 "功能很强" , 可直接对堆栈中的数据进行各种运算和处理
有力的支持了 高级语言程序的编译
有力的支持了 子程序的嵌套和递归调用
引入的基本原则
原则1 看 "系统的效率" 是否有显著提高, 主要包括 "实现时间" 和 "存储空间" 是否有显著减少.
实现时间减少, 主要看主存 和处理机之间传输的信息量是否减少, 传送的数据量越少, 实现时间越少
实现时间减少, 主要看主存 和处理机之间传输的信息量是否减少, 传送的数据量越少, 实现时间越少
原则2 看引入这种数据表示后, 其 "通用性" 和 "利用率" 是否提高, 如果只是对某种数据结构实现的效率很高, 而对其他数据结构的实现效率很低, 或者引入这种数据表示在应用中很少用到, 那么为此耗费的硬件过多却 并未在性能上得到好处, 必然导致性能价格的下降, 特别是一些复杂的数据表示
浮点数尾数基值
表示: -0.1010110 x 2^(+4)
数符 (-)
阶符 (+)
阶值 (4= 00000100)
小数点 .
尾数 (m个机器位置)
计算
基数
就是底数 2 (比如 2^3 : 底数:2 ,指数:3, 幂:8)
rm
尾数的基数 10101110
log2^rm
基数占用的位 8
m
尾数的位数 (二进制位数)
m' =m /log2^rm
rm进制的尾数的位数
p
浮点数 阶值的位数
公式
最小尾数值
rm^-1
最大尾数值
1-rm^-m'
最小阶值
0
最大阶值
(2^p) -1
最小值
rm^-1
最大值
rm^最大阶值 x 最大尾数值
尾数个数
rm^m' x (1-1/rm)
阶的个数
2^p
数的个数
阶的个数 x 尾数个数
下溢处理方法
截断法
处理实现最简单
舍入法
规定字长之外增设以为附加位, 存放溢出部分的最高位, 每当进行尾数下溢处理时,将附加位加1(二进制证书相当于加0.5,
恒置 "1" 法
将计算机运算的规定字长的最低恒置为1 ,实现简单,不需要增加硬件和处理时间, 平均误差趋于0
缺点, 最大误差最大, 比截断法 还要大
查表舍入法
采用ROM 或者PLA 存放下溢处理表
ROM表共需要2^k的单位, 地址用k位二进制码表示, 每个存储单元字长为k-1 位
当存储器k位地址码之高 k-1位 全是1 ,对应单元内容填 k-1 位全 "1"
其余情况按k位二进制地址码最低位位 0 舍弃, 位1 进1 来填 k-1 位内容
寻址
指的是指令按什么方式寻找到所需的操作数或者信息 ,寻址方式在 多样性, 灵活性, 寻址范围, 地址映像算法 和 地址变换速度等方面有很大的进展
寻址目标
面向主存
主要访问主存, 少量访问寄存器
面向寄存器
主要访问寄存器,少量访问主存和堆栈
面向堆栈
主要访问堆栈,少量访问主存和寄存器
属于隐含寻址方式
指明方式
占用操作码中的某些位来指明.
不占用操作码, 而是在地址码部分专门设置寻址方式位字段指明
寻址方式
隐含寻址
操作数隐含的由累加器给出
立即寻址
指令中直接给出相应的操作数
寄存器直接寻址
指令中给出寄存器号R,操作数存放在R中
寄存器间接寻址
指令中给出寄存器号R,R中存放操作数的有效地址
直接寻址
对逻辑地址空间到物理地址空间变换的支持
以利于实现程序的 动态再定位
间接寻址
指令中给出存放有效地址E的存储单元地址。
相对寻址
指令中给出相对于PC的偏移量A
基址寻址
指令中给出相对于基址寄存器R的偏移量,基址寻址是对逻辑地址空间到物理地址空间变换的支持,以利于实现程序的动态再定 位。
变地寻址
指令中给出相对变址寄存器R的偏移量
对诸如向量,数组等数据块的支持, 以便于实现程序的循环
定位技术
基本概念
逻辑地址
是程序员编码使用的地址
主存物理地址
是程序在主存中的实际地址
静态再定位
在目的程序装入主存时,由装入程序用软件方法把目的程序的逻辑地址变换成物理地址, 程序执行时, 物理地址不再改变, 这种定位技术就是, 静态再定位.
动态再定位
程序不做变换直接装入主存的同时,将装入主存的起始地址a存入对该程序使用的 基址寄存器中,
程序执行时,只要通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理地址后去访问即可
程序执行时,只要通过地址加法器将逻辑地址加上基址寄存器的程序基址形成物理地址后去访问即可
人们把在执行每条指令时才形成访问物理地址的方法称为动态再定位.
基址寻址
逻辑地址空间到物理地址空间变换的支持
变址寻址
数据块运算的支持
虚实地址映像表
地址加界法要求程序员所编址空间不能超出实际主存容量, 20世纪70年代,采用虚拟存储器增加映像表硬件后, 是程序空间可以超过实际主存空间
指令系统
基本概念
指令系统
是程序设计者看计算机的主要属性,是软,硬件的主要界面, 它很大程度上决定了计算机具有的基本功能
设计 包括
指令功能的设计 ( 操作类型,寻址方式, 具体操作内容
指令格式的设计
指令格式
操作码
地址码
指令类型
非特权型
主要供应用程序员使用, 也可供系统程序员使用
算术逻辑运算
数据传送
浮点运算
字符串
十进制运算
控制转移
系统控制
特权型
只供系统程序员使用 , 用户无权使用,用户只有先经过
访管指令才能调用操作系统. 再有操作系统来只用特权指令
访管指令才能调用操作系统. 再有操作系统来只用特权指令
启动 1/O
停机等待
存储管理保护
控制系统状态
诊断
指令分类
按包含的地址码个数
零地址指令
一地址指令
二地址指令
三地址指令
设计基本原则
编译程序设计者对指令系统的要求
规整性
对象相识的操作做相同的规定
对称性
定义相同,便于翻译
独立性 和全能性
如果有多种程序选择实现同一种功能, 为了减少编译时 那种实习那好的分析, 赢限定操作只能选择一种方式
正交性
指令中各个不同含义的字段, 如 操作数, 数据类型, 寻址方式, 在编码时应互不相关, 相互独立
可组合性
让指令系统中所有操作对各种寻址方式和数据类型都能适用
可扩充性
要留一定数量的冗余操作码, 以便以后能扩充新指令
系统结构设计者对指令系统的要求
指令码密度适中
兼容性
适应性
设计优化
指令优化概念
如何利用最短的位数来表示指令的操作信息和地址信息, 使程序中指令的平均字长最短
指令操作码的优化 方法
哈夫曼算法构造哈夫曼树
当各种事件的发生概率不均等时,采用优化技术,对发生概率搞的事件用最短的位数来表示, 对出现概率较低的时间允许用较长的位数来表示, 就会使平均位数缩短
扩展操作码编码
界于定长二进制编码 和完全的哈夫曼编码之间的一种编码方式, 操作码不是定长的,但只有有限几种码长
指令字格式优化
采用扩展操作码,根据指令的频度愤怒状况,选择合适的编码方式, 一缩短操作码的平均码长
采用诸如,基址,变址,相对,寄存器, 寄存器间接,段氏存放,隐式指令,等多种寻址方式, 以缩短地址码的长度,并在有限地址长度内提供更多的地址信息
采用 0,1,2,3 多种地址值, 以增强指令的功能, 这样从宏观上就能缩短程序的长度, 加快程序的执行速度
在同种地址制内采用多种地址形式, 如 寄存器-寄存器, 寄存器-主存, 主存- 主存, 让每种地址字段有多种长度, 且让长操作码和短地址码想匹配
在维持指令字在存储器中按整数边界存储的前提下, 使用多种不同的指令字长度
发展和改进
目的
以 "不删改" 原有指令系统为前提 , 通过增加少量 "强功能" 新指令代替常用指令串.
使计算机系统有 更强的功能, 更高的性能, 更好的性能价格比. 在指令系统设计,发展和改进上有两种不同的途径和方向
途径和方向
复杂指令系统计算机 CISC (Complex Instruction Set Computer)
增强原有指令的功能以及设置更为复杂的指令取代软件 子程序完成的功能, 实现软件功能的硬化. 按照此方向发展,机器指令系统日益庞大和复杂.
精简指令系统计算机 RISC (Reduced Instruction Set Computer)
通过减少指令的种类和简化指令功能来降低硬件设计的复杂度, 提高指令的执行速度
优化改进
CISC
面向目标程序
1. 通过对大量已有机器的机器怨言程序机器执行情况的统计各个指令和指令串的使用频度来分析和改进
2.增设强功能复合指令来取代原先常用 宏指令 或 子程序实现的功能, 由 微程序解释实现, 不仅 大大提高运算速度. 减少程序调用的额外开销, 也减少子程序占用的主存空间
面向高级语言
1.通过对源程序中各种高级语言语句的使用频度进行统计 来分析改进
2. 应当增强系统的规整性, 尽量减少例外或 特殊情况的用法
3. 改进指令系统, 使它与各种语言间的语义差距都有同等的缩小.
4. 已指令系统为主, 高级语言为从, 方式演变成 "以高级语言为主, 指令系统为从" 的方式
5.发展高级语言计算机
面向操作系统
1.通过操作系统中常用指令和指令串的使用频度进行统计分析来改进
2. 考虑如何增设专用于操作系统的新指令
3.把操作系统中频繁使用的,对系统影响大的机构型软件子程序硬化,或固化, 改为直接用 硬件和微程序解释实现
4.发展让操作系统 由专门的处理机来执行的功能分布处理系统结构.
发展的问题
1.指令系统庞大, 一般指令在200条以上
2.指令的操作繁杂, 执行速度很低, 甚至不如用几条简单,基本的指令组合实现
3.由于指令系统庞大, 使用高级语言编译程序选择的指令范围太大, 英雌,南怡优化生成高效的机器语言程序,编译程序也太长,太复杂
4.由于指令系统庞大, 各种指令的使用频度都不会太高, 且差别很大, 其中一部分指令的利用率很低
RISC
基本原则
1.确定指令系统数时, 只选择使用频度很高的那些指令, 在增加少了能有效支持操作系统的,高级语言实现,以及其他功能的指令, 大大减少指令条数, 一般不超过100条.
2.减少指令系统所用寻址方式种类, 一般不超过两种,简化指令的格式在两种之内, 并让全部指令都是相同长度
3.让所有指令都在一个机器周期内完成
要求信息在主存中存放的地址必须是信该信息宽度的整数倍,按整数边界存储
对于长度不同的信息存放在主存中, 会带来 存储空间的浪费
4.扩大通用寄存器数,一般不少于32个, 尽量减少访存, 所有指令只有存,取,指令访存,其他指令一律只对寄存器操作
5.为提高指令执行速度, 大多数指令都用硬联控制实现, 少数指令采用微程序实现
6.通过精简指令和优化设计编译程序,简单,有效的支持高级语言的实现
采用的基本技术
按RISC一般原则来设计
逻辑实现采用硬联和微程序结合
在CPU中设置大量工作寄存器并采用重叠寄存器窗口
指令用流水和延迟转移
采用高速缓冲存储Cache, 设置指令Cache 和数据Cache 分别存放指令和数据
优化设计编译系统
优点
简化指令系统的设计, 适合VLSI实现
提高计算机的执行速度和效率
降低设计成本,提高系统的可靠性
可直接支持高级语言的实现, 简化编译程序的设计
问题和不足
1.由于指令少,使原来在CISI上由单一指令完成的某些复杂功能要用多条RISC指令完成,加重了汇编语言程序设计的负担,增加了机器语言程序的长度, 占用存储空间多, 加大了指令的信息流量
2.对浮点运算的执行和虚拟存储器的支持虽然有很大加强,但仍显不足
3.RISC计算机的编译程序比CISC的难写
3章 存储,中断,总线I/O 系统
存储系统
基本要求
大容量
高速度
低价格
特点
容量越大,延迟增大会使速度降低
容量越大,存储器总价格会越大
存储器速度越快,价格越高
概念
存储器速度: 可用 访问时间 ,存储周期, 频宽 来描述
存储器容器= 存储体字长 x 存储器字数 x 并行存储体数
存储器频宽
是存储器可提供的数据传送速率, 用每秒传送的 "信息位数" 或 字节数 衡量, 有 "最大频宽 和 实际频宽" 之分
转移概率
为给定指令的下条指令地址为非顺序地址的概率
申请序列
要求访存申请的K个地址中 没有两个或两个以上的地址处在同一分体重的最长序列
并行主存系统
为了弥补CPU和存储器在速度上的差距, 一条途径是在组成上 引入 "并行 和 重叠 "技术, 构成 并行主存系统, 在保持每位价格基本不变的情况下, 使主存的频宽得到较大的提高
单体单字存储器
Bw=W / Tw
存储器 字长 和 CPU 所要访问的字的字长相同
单体多字存储器
Bw=Wx4 / Tw
并行主存系统
能并行读出多个CPU字, 单体多字, 多体单字, 多体多字的交叉访问的主存系统
分多分体并行存储器
单体多字相结合
主存最大频宽: 存储器连续访问时的频宽
Bm=m×W/TM (m,W 采用2的小次幂计算)
m: 主存的模数 (分体数)
W: 分体宽带 或者 字长
TM: 每个分体的存储周期 2us
每个存取周期内能访问的平均读取字数
B= 1- (1-λ) ^m / λ
λ: 访存申请队的转移概率
m: 主存的模数
中断系统
响应和处理各种中断的软件,硬件总称为 中断系统. 是计算机系统不可缺少的重要组成部分.
中断系统的性能 主要有, "高的中断响应速度" 和 "中断处理的灵活性"
中断分类
内部中断
外部中断
定时器中断
用于计时,计费,控制等
外部信息中断
主要用于与掐计算机和系统的联系
中断键中断
操作员对计算机的干预
软件中断
由自陷指令引起,用于供操作系统服务
通道处理机IBM370系统中断分类
机器校验中断
是告知程序发生了设备故障
可用64位机器校验中断码指明故障原因和严重性
电源故障
运输电路的误操作
主存出错
通道动作故障
处理器的各种硬件故障
管理程序调用 (访管中断) (8位中断码)
用户程序需要操作系统介入时,通过执行 "访管"指令时发生中断, 访管原因由 "访管" 指令中的8位码指明.
程序性中断 (16位中断码)
包括指令和 数据的格式错误,程序执行中出现"异常",以及程序的事件, 监督程序对时间的检测引起的中断
外部中断 (16位中断码)
定时器中断
外部信息中断
中断键中断
输入/输出 I/O 中断 (16位中断码)
是CPU 和 IO 设备及通道联系的工具, 在输入输出操作完成, 或者IO通道或设备故障时发出
重新启动 中断
是为操作员或另一台CPU要启动一个程序所用. CPU不能禁止这种中断
中断的分级
分类方法
由于中断源相互独立,随机的发出中断情况, 因此常常会有多个中断请求同时发生, 中断系统按中断源的级别高低来响应.
同一类的个中断请求的处理和响应次序,一般不是由中断系统的硬件管理, 而是有由软件 或通道来管理.
不同类的中断,要根据中断的性质, 紧迫性,重要性 和 软件处理的方便性把他们分成不同的级别
1级
机器校验 优先级最高
2级
程序性和管理程序调用中断为第2级
3级
外部中断
4级
输入输出
重新启动
最低级
中断处理次序
由中断处理程序来完成,而中断处理程序在执行前或执行中是可以被中断的,提供很大的灵活性
中断响应次序
同时发送多个不同中断类的请求时, 中断响应硬件中断"排队器"所决定的响应次序由高到低固定
但中断实际处理完的次序是可以通过 "系统软件" 修改中断级处理程序 的 "中断级屏蔽位" , 来动态改变
中断系统功能
分配原则
: 按照 "中断处理程序软件" 和 "中断响应硬件" 的功能来分配
功能
中断请求的 保存, 清除, 优先级的确定
中断断点及现场的保存
中断现场
软件状态
硬件状态
对中断请求的分析和处理 以及 中断返回
总线系统
基本概念
总线
用于互联计算机,CPU,存储器,I/O接口和外围设备, 远程同设备间信息传送通路的集合
总线系统
总线和其相配合的附属控制电路系统 称为总线系统
总线分类
按信息传输功能,性能分类
数据线
地址线
命令
时序
中断信号
控制状态线
按在系统位置分3级
芯片级
CPU芯片内的总线
板级
链接插件版内的各个组件, 也称为 局部总线 或 内部总线
系统级
系统间或主机与IO接口或设备之间的总线
按传输方向
单向传输
双向传输
半双向
全双向
按用法
专用
只链接一对物理部件的总线
优点
1.多个部件可以同时收/发信息, 不争用总线, 系统流量高
2.通信是不用指明源和目的,控制简单
3.任何总线的失效,只会是链接该总线的两个部件不能直接通信, 但他们仍可通过其他部件间接通信, 因而系统可靠
缺点
总线数较多
非专用
优点
总线数少, 造价低, 总线接口标准化, 模块性强, 可扩充能力强, 部件的增加不会使用电缆,接口,
和驱动电路激增, 易用多重总线来提高总线的宽带, 可扩张性, 使故障弱化
和驱动电路激增, 易用多重总线来提高总线的宽带, 可扩张性, 使故障弱化
缺点
系统流量小, 出现争用总线的情况, 让未获得总线使用权的部件不得不等待, 从而降低效率, 如果处理不当,总线可能成为系统速度性能瓶颈,, 如果共享总线失效, 会导致整个系统瘫痪
3种控制
根据优先次序
集中式 串行链接
获得使用总线的优先次序是由, "总线可用" 线链接的部件的物理位置来决定, 离总线控制器越近的部件其优先级越高
总线可用, 总线请求,总线忙
优点
算法简单, 用于解决总线控制分配的控制线数少, 只需要3根, 且不取决于部件的数量, 部件 增减容易, 只需简单的把他链接到总线上就可
可扩充性好 ,逻辑简单, 容易通过重复设置提高可靠性
缺点
如果某部件不能正确传送 总线可用 信号, 则该部件之后的所有部件将得不到总线使用权, 由于优先级是线连固定 ,不能有程序改变, 不具备灵活性, 如果高优先级部件频繁使用总线, 则离总线控制器比较远的部件,就难以获得总线使用权, 所以限制总线的分配速度, 限制总线的长度, 增减部件也收到影响.
集中式 定时查询
总线请求, 总线忙, 定时查询计数
优点
由于计数器初值 部件均可有程序制定,优先次序可用程序控制, 灵活性强,不会因为某个部件失效而影响其他部件对总线的使用, 可靠性高
缺点
控制线数较多, 需要 2+log2N,根,
扩展性稍差
控制较为复杂
总线的分配速度 取决于计数信号的频率和部件数,不能很高
集中式 独立请求
当部件请求总线时候, 发送总线请求到达总线控制器.只要总线闲着, 总线控制器闲着就可以根据某种算法对同事送来的请求进行仲裁, 以确定那个部件可以使用总线, 并通过相应 总线准许 线 回复该部件, 同时去除其他请求, 建立 总线以被分配, 该部件获取总线使用权,总线分配过程结束
优点
总线分配速度快, 所有部件的总线请求 同时到达总线控制器, 不用查询, 控制器可以使用程序控制预定方式, 自适应方式, 循环方式或者混合方式灵活确定下一个使用总线的部件, 能方便的隔离失效的部件的请求,
缺点
控制线数量过大, 为控制N个设备 必须有2N+1 根控制线, 而且从控制线要复杂很多
3种不同的方式,也可以相互结合, 取决于
控制线数目
总线分配速度
可靠性
灵活性
通信技术
概念
信息传递
部件之间的 信息传递 通过 "定宽,定距的系统时标" 同步
最广泛的通信方式
异步双向互锁方式
分类
同步通信
异步通信
单向源控制
优点
简单, 高速,
缺点
没有来自目的部件指明传送是否有效的回答,
不同速度的部件通信比较困难, 部件内需要设置缓冲器来缓冲来不及处理掉 数据
效率低,高速部件难以发挥效能
要求数据数据准备干扰小,否则易误认成有效信号
请求/回答双向控制
数据宽度
数据宽度是指 IO设备取得 "IO总线 "后所传送数据总量
位
字节
字
双字
数据通路宽度是 "数据总线" 的物理宽度
总线线数
总线要有 ,发送/ 接受, 传输导线 或 电缆, 转接插头和电源
在满足性能的前提下应尽量减少线数.
方式
线的组合
编码
并/串-- 串/并 转换
总线标准 一般包括
机械
功能
电气
过程
I/O系统
基本概念
IO系统包含 输入/输出设备, 设备控制器 及 输入输出操作的有关的 软,硬件
3种控制方式 (发展3阶段)
程序控制IO
由 CPU执行, 用户程序控制来完成 输入输出工作... 包括全软件, 程序查询的,中断驱动,
直接存储器访问 (DMA)
IO处理机
处理方式
通道方式
外围处理机方式
分类
外存
磁盘
磁带
光盘
传输设备
鼠标
键盘
光笔
显示器
打印,印字机
声音输入/输出
图形扫描器
网络驱动器
通道处理机
工作原理
启动IO指令 主要是 输入输出指令, 属于 管态 指令
广义指令 由 "访管指令" 和 "若干参数" 组成 ,他的操作码实质上是对应广义指令的 管理程序入口
访管指令 属于 目态指令 , 当目态程序执行到要求输入输出的 访管指令后, 产生自愿访管中断
按信息传输方式不同
字节多路 通道
适合连接大量的像光电机 等 字符类低速设备
数组多路 通道
适合连接多台磁盘等高速设备
数组多路在选择好一台设备后,要连续传送完固定的K个字节组成的数组后才能释放总线
释放总线后, 通道在选取下一台设备, 转传送改设备的k个字节
以成组方式轮流交叉的为多台高速设备服务
某台设备 要传输n个字节,就需要进过n/K次的申请
由于在传输开始前,需要的操作时间比较长, 因此在传输的时候,为了不让通道空闲,因尽可能重叠多台设备的操作时间
并让其数据宽度定点长,传输完k个字节后,就重新选择下一个设备
选择通道
适合连接优先级别高的磁盘等高速设备
通道流量
是通道在数据传送期内, 单位时间内传送的字节数.
最大流量称为 "通道极限流量"
最大流量
IO系统的个各通道最大流量之和
实际流量
各通道实际流量之和
当实际最大流量非常接近于 通道极限流量时候, 会造成速率和优先级较低是设备可能长期得不到通道而丢失信息, 因此可以在设备和通道控制器中 加设 缓冲器, 来缓存来不及处理的信息, 或者动态改变响应优先级来弥补
通道极限流量
字节多路通道
f max.byte= 1 / Ts+Td
通道的实际最大流量, 是每个设备 字节传输速度之和
fbyte.j=Σfi.j
数组多路通道
f max.block= K/Ts+KTd = 1/(Ts/k +Td)
通达实际最大流量, 是所有设备中字节传输中的最大者
f block.j=max fi.j
选择通道
f max.select= N/ Ts+ NTd = 1/ (Ts/N+Td)
通达实际最大流量, 是所有设备中字节传输中的最大者
f select.j=max fi.j
Ts: 选择设备时间
Td: 传输一个字节数据需要的时间
4章. 存储体系
基本概念
存储体系
让构成存储系统的集中不同的存储器 之间 配上 辅助软,硬件, 是它从应用成程序员角度来看他们在逻辑上是一个整体.
虚拟存储器
是因为主存容量满足不了要求而提出来的. 在主存和辅存之间, 增加辅助的软,硬件设备, 让他们构成一个整体, 所以也称为 主存-辅存存储层次
cache存储器
因为主存的速度满足不了要求引出的Cache存储器. 在CPU 和主存之间增设高速,小容量,每位价格较高的Cache, 用"辅助硬件" 将 Cache和主存 构成整体
对应用程序员, 系统程序员都是透明的
二级存储器
由 虚拟存储器 和 Cache 存储器 组成,这是存储体系的两个不同的分支
等效访问速度接近于第一存储器访问速度的依据是程序的局部性, 包括 时间局部性 和空间局部性
解决主存和CPU之间的速度差
在CPU中设置寄存器, 让运算直接在CPU寄存器中进行, 减少与主存的交互
采用存储器的多体交叉并行存储来提高主存的等效速度
采用Cache存储器
多级存储层次
从CPU角度看整体, 有接近于最高层M1的速度, 最底层Mn的容量和每位价格.
性能评价指标
每位价格c
c=(c1Sm1+c2Sm2) / (Sm1 +Sm2)
ci 为每位价格
Smi 以位计算的存储容量
Tmi 为CPU 访问到Mi 中的信息所需要的时间
命中率H
CPU产生的逻辑地址能在M1中访问到的概率, 越接近于1越好
命中率 与 程序的地址流, 所采用的地址预判算法 和容量有很大关系
影响命中率的的因素
页地址流
页面调度策略
主存容量
等效访问时间TA
虚拟存储器
基本概念
程序特性
一个大程序可以分解成多个逻辑上相对独立的模块, 这些模块可以是 主程序,子程序, 过程, 也可以是数据块
地址映像
将虚存单元 按某种规则 装入 实主存, 建立起多用户虚地址NS 和 实存地址np 之间的对应关系
大的虚存空间压缩到小的主存空间, 因此主存中的每一页可以对应多个虚页, 能对应多少个和采用的 " 映像方式" 有关
地址变换
将多用户程序执行时的虚地址变换成对应的实地址
映像方式的选择标准
尽量减少实页冲突概率, 同时考虑 辅助硬件是否少, 成本是否低, 实现是否方便,地址变换的速度是否快
作用
只能用于多道程序环境
地址的映像 和 变换
地址映像
直接映像
是一个主存块只能直接拷贝到 Cache 的一个固定的位置上去
全相联映射 (常用)
将主存中的一个块直接拷贝到 Cache 中任意一块上, Cache 的数据块大小与主存的数据块存储的数据量大小相等。
页式虚拟存储器采用此法
优点
主存的块调入 Cache 中的位置不受限制,所以冲突率最低,空间利用率高
缺点
无法从主存地址中直接获得 Cache 的块号,地址变换复杂,速度较慢
目录表法
采用页表+按内容访问的相联存储器构成.
Cache 存储器使用此法
页表压缩成只存放已经装入主存中的虚页与实页对应关系.
页面替换算法
发生的时机
页面失效
页面争用
算法选择指标
主存是否有高的 命中率
页面替换算法
页地址流
程序的 主存页数 (实页数 /主存容量)
算法是否便于实现
辅助的软,硬件成本是否低
算法分类
随机算法
采用软的,硬的随机数产生器 生产主存中要被替换页的页号
算法简单, 易于实现
先进先出算法 FIFO
选择最早装入主存中的页 作为替换页
实现方便
需操作系统为主存中每个实页配一个计数器字段
近期最少使用 LRU
选择最近最少被使用的页,作为替换页
虚拟存储器使用此算法
硬件实现
信号需用 "与门"产生, 所以有多少个块,就得有多少个与门, 每个与门接受来自与它有关的 "比较对比触发器 "的输入
"比较对法"基本思路就是让组内各块成对组合, 用一个触发器的状态表示该比较对内两块访问的远近次序, 在经过门电路就可以找打LRU块
最佳置换算法 OPT
从主存中 移出永久 或 最近,或最长时间不在需要的页面, 来保证最低的缺页率
管理方式
根据存储映像算法
段式 管理
每个程序在系统中都有一个 段表(映像表) 来存放该程序各段转入主存的状况信息
操作系统还得为整个主存系统建立一个实主存管理表, 包括 "占用区域表" 和 "可用区域表 "两部分
特点
每个段独立
利用程序员灵活实现段的链接, 段的扩大, 缩小, 修改 ,不影响到其他的段
每段只包含一种类型的对象
如过程, 数组, 堆栈, 标量等集合, 易于针对特定类型实现保护
把共享的程序或数据单独构成一个段,实现多个用户,进程对共用段的管理
优缺点
优点
分段法能使大程序分模块编制, 从而可使多个程序员并行编程, 缩短编程时间, 分段便于多道程序共享已经在主存中的程序和数据, 容易以段为单位 实现存储保护
缺点
增加了辅助硬件的开销, 降低了查表速度, 也使主存管理麻烦, 还会带来段间零头浪费问题
页式 管理
把主存空间和程序空间 都机械的分成固定大小的页,按页顺序编号, 与段式一样, 计算机是采用多道程序方式工作的
由于页式存储中程序的起点必须处于一个页面起点, 搜索一用户程序中每个虚地址 就有 虚页号字段 和 页内位移字段 组成
段页式 管理
段表 + 页表
问题
页面失效
如果要访问的虚页不在实际主存中, 就会发生页面失效
页面争用
当页面调入主存中, 主存中的页面位置,全部被其他虚页占用的时候,就会发生 页面争用
提高虚拟存储 等效访问速度
等效访问时间 TA=HT1+(1-H)T2
H 是主存的命中率
T1 是主存的访问时间
T2 是辅存的访问时间
等效访问速度
等效访问时间 > 主存访问周期时,
可提高主存命中率的方法
当主存命中率H很高时
提高主存访问速度, 降低 T1
加快内部地址映像和变换速度
采用 快表和慢表组成二级表层次, 增大快表命中率等.
高速缓存存储器 Cache
作用
可以单用户环境也可以多用户环境
高速缓存存储器 速度接近于 Cache, 容量却是主存的
地址的映像和变换
全相联映像
主存中任意一块都可以映像装入到Cache中任意一块位置
优点
块冲突了最低, 只有当Cache全部装满才可能出现冲突,Cache的空间利用率最高
缺点
要构成容量为2^n项的相联代价太大, Cache的容量很大时候, 其查表的速度很难提高
直接映像
把主存空间按Cache大小等分区, 每区内的各块 只能按位置 一一 对应到Cache 相应的块位置上.
缺点
冲突率最高
空间利用率低
优点
节省硬件, 只需要容量较小的按地址访问的区号标志存储器和少了外比较电路, 成本低,
组相联映像
各组之间是直接映像, 组内各块之间是全相联映像
透明性和性能分析
写回法
抵触修改法
在CPU执行写操作时, 信息只写入cache ,单需要替换时,才将该写过的Cache块先写会主存,然后再调入新块. 需要为每个Cache 位 增加一个修改位的资源开销
单处理机系统的Cache存储器,多数用写回法 以节约成本
写直达法 (存直达法)
利用Cache存储器在处理机和主存之间的直接通路, 每当处理机写入Cache的同时, 也通过此通路直接写入主存,这种方法会增加写主存的时间
取算法
采用按需取进法, 选择好Cache的容量, 块的大小,组相联的组数和组内块数 ,是可以保证较高的命中率
恒预取法
无论是否命中,都预取 第i+1块
不命中时预取
只有cache不命中时, 菜预取主存中的i+i快,(Amdahl 470 V/8 就是采用这种算法)
性能分析
命中率和 块的大小 ,块的总数, 采用组相联时组的大小, 替换算法, 和地址流的簇聚性 有关
cache的速度 与容量都会影响Cache 存储器的等效访问速度.
三级存储体系
物理地址Cache
Cache -- 主存
主存-- 辅存
虚地址Cache
Cache --主存---辅存 直接构成三级存储层次形式
全Cache
Cache -- 辅存
5章 标量处理机
基本概念
标量处理机
该类型的处理机,不具备向量数据表示,和向量处理指令, 主要对标量数据进行流水处理, 但是也能采用并行和循环的方式处理数据向量数据
各种相关
指令相关
是因为机器指令允许修改而产生的,因此消除指令相关的最好方法 就是 "不允许修改指令"
指令相关的处理
对于有指缓的计算机, 由于计算机是提前从主存取进指缓, 为了判断是否发生指令相关, 需要对多条指令地址和多条指令 运算结果地址进行比较
指缓容量越大, 或者说 指令预处理 能力越强的计算机发生指令相关的概念越高
主存空间数相关
相邻两条指令之间出现对主存同一单元要求先写后读的关联, 重叠处理会出现问题, 因此 指令采取 延迟分析 k+1的读
会发生在 主存空间 和 通用寄存器 空间
推后读常见的方法
由存储控制器给 读数 和写数 申请安排不同的访存优先级来解决
通用寄存器组相关
通用寄存器可以存放源操作数, 运算结果外, 也可以存放形成操作数物理地址的 变址值和 基址值
变址值相关
基址值相关
操作数相关
k条指令的结果地址和第k+1的源地址一样
发生在主存 和 通用寄存器
重叠方式相关处理
解决方式
推后分析 K+1
是有存储控制器给 读数 和 写数 申请安排不同的访存优先级来解决的
前者是以降低速度为代价,减少设备
设置相关专用通路
后者是以增加设备为代价
指令转移的处理
当程序中遇到条件转移时候,一旦条件转移成功, 重叠解释就变成了 顺序解释
解释一条机器指令的操作
取指
按指令计数器的内容主存, 取出指令送到 指令寄存器
分析
对指令的操作码进行译码, 按寻址方式 和地址字段 形成操作数真地址, 并用此真地址去取操作数, 为取下一条指令还要形成下一个指令的地址
执行
对操作数 进行运算, 处理, 存储运算结果
指令解释方式
顺序解释(流水)
各个指令之间顺序串行的执行,每个指令单内部的微指令也是顺序串行的执行
优点
控制简单
转入下一条指令的 时间 易于控制
缺点
上一条指令未完成,下一条指令便不能开始
速度慢
计算机个部件的利用率低
一次重叠
指令分析部件和指令执行部件 在任何使用 都只有 相邻两条执行的 执行k 和 分析k+1 重叠解释执行, 这样的方式为 一次重叠
流水方式
流水线处理机的分类
按处理级别
部件级 流水
处理机级 流水
指令流水
取指令
指令译码
取操作数
执行指令
系统级 流水 (宏流水)
构成计算机系统的多个处理机之间的 流水
按功能多少
单功能流水线
线性流水线
只能实现单一功能的流水, 如浮点数的加减. 可以将多个单功能流水线组合,形成多功能流水线
多功能流水线
根据各段是否允许同时使用多种不同功能连接流水
静态流水线
在某段时间只能按一种功能连接流水, 从软硬件角度, 是将功能负担较多分配到软件上
动态流水线
同一时间可按不同"运算"或"功能" 连接,从软硬件角度, 是将功能负担较多分配到硬件上
CRAY-1
有12条单功能流水线, 分别完成 地址 加,乘,标量加, 移位,逻辑运算, 标量数,向量加, 移位,逻辑运算, 浮点加,乘,迭代求导
按数据表示角度
标量流水机
可以用循环方式来处理向量和数组
Amdahl 470 V/6 和 IBM 360/91
向量流水机
有向量数据表示, 有向量指令 和向量运算部件
是 "向量数据表示" 和 "流水技术" 的结合
按功能段中间是否有反馈回路
线性流水线
数据从流水线的一端流入 从另一端流出
非线性流水线
一次运算中多次使用流水线中的某些功能段
有串行连接外,还有 前馈 和反馈 连接
标量处理机的性能表现
吞吐率
流水线单位时间内能流出的任务数和结果数
对于 线性流水 且每段经过时间相等, 任务间无相关时, 流水线的效率才整比与 吞吐率
瓶颈
流水线中 经过最长时间的子过程 称为 瓶颈子过程
消除速度瓶颈方法
瓶颈子过程再细分
比如 2段过程最长 可以分为 21,22,23 等3个子过程
多套并联
Tp = n / ∑m△t +(n-1) △tj
n :指令条数
m: 经历m过程
△tj 是m个过程中 瓶颈执行时间
∑m△t 是m个过程所用时间之和
加速比SP
连续流入的任务数 / 流水线子过程数
效率
η=n∑m△t / m ( ∑m△t + (n-1)△tj )
n: 指令条数
m: 经历的过程
△tj : 是m个过程中 瓶颈执行时间
∑m△t : 是m个过程所用时间之和
设备的实际使用时间 / 整个运行时间之比
标量流水处理机的相关处理
局部性相关
原因
机器在解释执行多条指令的时候出现了对同一主存单元 或寄存器 要求 "先写后读" 的情况
包括
指令相关
主存操作数相关
通用寄存器组数相关
重叠机器对局部相关性处理
推后后续指令对相关单元的读
直到前指令写完成
设置 "相关直接通路"
将运算结果经相关直接通路直接送入所需部件
"公共数据总线" 是一种总线方式的 "相关直接通路", 可以为多种或多个不同相关所共用, 通过给出 "不同站号" 来控制其不同连接
任务在流水线中流动顺序的安排和控制
顺序流动方式 (同步流动方式)
任务流出流水线的顺序和流出流水线的顺序一致
异步流动方式
任务流出流水线的顺序和流入流水线的顺序不同
会出现 "写写" 和 "先读后写" 问题
IBM360/91 中央处理机
组成
指令处理部件
主存控制部件
定点执行部件
浮点执行部件
解决流水控制途径
1.在寄存器中设置忙位, 来判断是否相关, 当寄存器正在使用的时候设置标记为 "1",当寄存器释放的时候, 设置为 0
2. 设置多条流水线让他们并行工作,同时在各流水线上设置若干保存站来存放缓冲信息, 一旦相关 采用异步流动方式
3.通过设置的站号来控制相关专用通路的链接
4.相关专用通路采用总线方式,相关后通过更改站号来实现不同相关专用通路的链接
全局性相关
指的是已进入流水线的 转移指令(尤其是条件转移指令) 和 其后续指令相关
解决办法
使用猜测法
猜测其中一个分支继续流入,待条形码形成后再做决定是继续执行,还是作废按另一条重新流入
加快和提前形成条件码
加快 "指令内条件码 "形成,不等指令执行完就提前形成放映运算结果的条件码.比如 乘除,结果为 正负,0的条件码可以在运算前形成
加快" 程序 段内条件码 "的提前生成, 特别适合循环型在判断循环是否继续时的转移情况
采取延迟转移
这是用软件方法进行静态指令调度的技术
加快短循环程序的处理
流水机器的中断处理
中断处理原则
流水中断出现概率比条件转移的概率要低很多, 且是随机发生的, 所以流水中断主要是如何 处理好断点现场的保存和恢复, 而不是如何缩短流水线的断流时间.
处理方法
精确断点法
缺点 需要设置很多后援寄存器, 以保证流水线内各条指令的原有现场都能保存和恢复, 优点,中断现场 能准确的对应中断指令,有利于程序排错
不精确断点法
优点控制简单, 缺点是程序排错不利,
超标量处理机
基本概念
超标量处理机采用多指令流水线, 每个同时流出m条指令, 称为度m
分类
超标量处理机
非常适合求解稀疏向量和稀疏矩阵这类标量计算问题
利用 资源重复, 设置多个 执行部件寄存器堆端口
采用多指令流水线, 在处理机中配置多套功能部件,指令译码,多组总线,寄存器也备有多个端口和多组总线
主要靠编译程序优化编排指令的执行顺序, 将可并行的指令搭配成组,硬件不调整指令顺序,这样实现起来比较容易
超长指令字处理机
在编译的时候,找出指令间潜在的 "并行性" , 将多个功能并行执行不相关 或者无关的操作先压缩组合在一起, 形成一条有多个操作段的 "超长指令"
优点
每条指令所需拍数比超标量处理机少, 指令译码容易, 开发标量操作间的随机并发性更方便, 可是指令级并行性较高
缺点
机器的成功 , 很大程度取决于 代码压缩的效率, 其结构的目标码与一般计算机不兼容, 而且指令很长而操作段格式固定, 经常是指令字中许多字段没有操作, 白白浪费空间,结构也不如超标量处理机紧凑
超流水线处理机器
着重开发时间 "并行性", 在公共的硬件上采用较短的时钟周期,"深度流水" 来提高速度,需使用多相时钟
超标量超流水处理机
超长指令字结构
将 "水平型微码" 和 "超标量处理" 两者相结合
6章 向量处理机
基本概念
向量处理机
有向量数据表示的处理机,和向量处理相关指令
功能部件冲突
同一个功能部件 被要求并行工作的 多条向量指令所使用.
实质
1.由专门应对数组运算的处理单元阵列组成的处理机
2.专门从事处理单元阵列的控制和标量处理的处理机
3.专门从事系统 输入/输出及操作系统管理的处理机 组成的一个异构型多处理机系统
处理方式
向量处理方式
横向处理(水平处理) 方式
采用逐个求解向量元素的方法
向量的流水处理方式
向量纵向处理
对整个向量按相同操作执行完之后在转去执行别的操作
分组纵横处理
处理机分类
向量流水处理机
开发途径
流水线处理机 利用的是 "时间重叠'
算法举例
CRAY-1
浮点加
6拍
浮点乘
7拍
访主存
6拍
写寄存器
1拍
阵列处理机
开发途径
阵列处理机利用的是 "资源重复" ,利用的是并行性中的"同时性", 不是并发性,使用简单,规整的互联网来确定处理单元间的链接
有两种构形
差别主要在于 "存储器的组成方式" 和 "互联网络的作用 "不同
"分布式" 存储器阵列处理机
每个处理单元都有自己的 局部的存储器,只能被本处理单元直接访问, 通过控制部件连接到管理处理机SC 上
采用的是SIMD
ILLIAC IV
处理单元是 累加器型运算器, 把累加寄存器RGA中的数据和存储器中的数据进行运算, 结果保留在累加寄存器RGA中
ILLIAC IV并行算法举例
矩阵加
矩阵乘
累加和
MPP
DAP
CM-2
MP-1
DAP600
"集中式" 共享存储器阵列处理机
采用的是SIMD
BSP
提高性能
加快相邻向量指令的执行
让多个流水线功能部件并行, 流水线链接
循环向量量化
加快条件语句和稀疏矩阵处理, 加快向量的规约操作
链接提高性能
把寄存器做为 结果寄存器组 和 源寄存器组, 可以实现将两条或多条向量指令链接成一个链来提高向量操作的并行程度 和功能部件的流水程度
SIMD系统
设计目标
结构要简单, 以降低成本
互联要灵活, 以满足算法和应用的需要
处理信息交换所需的传送步数要尽可能少, 以提高速度性能
能用规整单一的基本结构组合而成, 或者经多次通过,经 多次链接来实现复杂的互联, 使模块性更好, 以便于用VLSI 实现满足系统的可扩充性
互联网络
定义
典型的互联网络是由 许多开关单元和互连线路组成, 互联通路的路径选择是通过 置定开关单元的工作状态 来控制
抉择的问题
操作方式
同步
异步
同步与异步组合
交换方法
线路交换
需要建立实际链接, 适合大批量数据传输的交换方式
包交换
不需要建立实际链接,对短数据信息传送特别有效,多用于多处理机和计算机网络的交换方式
线路与包交换组合
网络拓扑结构
指的是互联网入,出端可以连接的模式
分类
静态 拓扑结构
两个PE之间的链接是固定的, 总线不能重新配置成与其他PE相链
动态 拓扑结构
两个PE之间通过置定网络开关单元状态可以重新配置.
分类
集中控制策略
分布控制策略
动态网络
单级
多级
互联网络方式
单级互联网
立方体单级网络 8个顶点
有3种互联函数
Cube函数表示相连的入端和出端的二进制编号只在右起第i 位 互反,其余个代码都相同
Cube0
Cube1
Cube2
PM2I单级网络( Plus-Minus 2i 单级网络的简称).
PM2 +i(j)= j+2^i mod N
PM2-i(j)=j-2^i mod N
0<=j<N-1, 0 <=i<=log2N -1
共有2n-1个互联函数
N=8 只有 5个不同互联函数
N=16 ,只有2( log2^16)-1=7 个不同互联函数
PM2i单极网络最短距离为 log2N-1
ILLIAC IV 处理单元的互联是PM2I的特例
采用PM2+-0 和 PM2+- n/2(PM2+-3) 4个互联函数
混洗交换单级网络 (Shuffle_Exchange) 两个互联函数
全混 Prefect- Shuffle
Shuffle(Pn-1 Pn-2...P1 P0)=Pn-2....P1P0 Pn-1 ,n=log2N; Pn-1,Pn-2 ...P1P0 为入段编号的二进制码
全混单极
入端编号二进制 首位移到末尾后的二进制,就是连线的出端编号
- 第一个和最后一个 由于是 全0 和全1 ,所以需要n次交换, 和 n-1次混洗 ,最大距离为 2n-1
交换 Exchange
蝶形单级网络 Butterfly
Butterfly(Pn-1 Pn-2...P1P0= P0Pn-2...P1Pn-1
二进制最高位 和最低位 进行交换
多级互联网
不同互联网结构的3个参量
交换开关
是具有两个 入端 和两个 出端 的交换单元, 用做各种多级互联网络的基本构件
拓扑结构
是各级间 出端 和入端的 互联模式
控制方式
多级立方体网络
超立方体网络 维数>3 时,称为超立方体
3维 立方体 8个顶点
有 log2^8 个Cube函数
交换开关 控制方式 (交换函数)
级控制
同一级所有开关只用一个控制信号控制, 同时只能处于一种状态
单元控制
每个开关都由自己独立的控制信号控制, 可各自处于不同的状态
二功能单元
直连
交换
四功能单元
直连
交换
上播
下播
比如 OMEGA网络
部分级控制
第i级所有开关分别用i+1个信号控制, 0<i<N-1 n为级数
分类
STARAN网络(交换网络) 采用
级控制
交换函数 Exchange
exchange1
exchange2
exchange3
部分级控制
移数网络的时候采用此算法
间接二进制n方体网络 采用
单元控制
多级混洗交换网络 (OMEGA网络)
每级别 之间都 采用单级混洗网络 算法 , (首位 换到末尾)
shuffle(K)
首位换到末尾
采用 单元控制
每一级 都包含一个 全混拓扑 和 随后一列2^(n-1)个 四功能交换单元
多级PM2I网络
基准网络
在多级网络中 可以作为 中间介质,模拟一种网络的拓扑和功能
shuffle(K)
首位换到末尾
shuffle (k1)
末尾左移1位
=Exchange(1)
多级交叉开关网络
是一种非阻塞式网络
多级碟式网络
全排列网络
实现方式
任何一种基本多级互连设备的出端设置锁存器,使数据在时间上顺序通信两次
将log2N级的N个入端 和N个出端互联网络和 它的逆网络连接在一起,省出中间重复的一级后构成的全排列网络, 也称为Benes网络
分类
Benes网络
将三级基准网络 和它的 逆网络连接一起, 省出中间重复的一级后构成的全排列网络, 也称为Benes网络
可重排网络
只要经过可重新排列已有的 入,出端的连接, 就可完成所有可能的入,出端间的连接,而不发送冲突的互联网络
非堵塞网络
在多级互网络中的,同时实现对两对或多对入,出端间的连接,均不会发生传送路径上冲突的网络
灵活性低到高 (复杂性和成本也响应增高)
级控制立方体
部分级控制立方体
间接二进制n立方体
omega
ADM
共享主存阵列机
错误存活
存储器频宽与多个处理机单元的速率要匹配, 存储器就必须采用多体并行组成, 还要保证在各种访问模式下, 存储器都能实现无冲突的工作
脉动阵列流水处理机
结构
是 由一组处理单元PE 构成的阵列,每个PE 内部结构相同, 一般由一个加法/ 逻辑运算部件或者加法/乘法运算部件在加上过若干 锁存器构成, 可完成少数的基本算数逻辑运算
数据运算
系统内的 输入数据流 和结果数据流 可以在多个不同方向,以不同速度 同步向前推进
特点
结构简单,规则和模块化强度,可扩充性好, 非常适合VLSI实现
PE间数据通信距离短,规则,使数据流和控制 设计, 同步控制 简单规整
PE能同时运算具有极高的计算并行性, 可以通过流水获得很高的运算效率和吞吐率
阵列结构的构型与特定计算任务和算法密切相关,具有某种专用性, 限制了应用范围, 这对VLSI 是不利的
7章 多处理机
概念
多处理机是指两台以上的处理机, 共享I/O 子系统, 机间经共享主存
或 高速 通信网络 通信, 在统一操作系统控制下协同求解大而复杂问题的计算机系统
或 高速 通信网络 通信, 在统一操作系统控制下协同求解大而复杂问题的计算机系统
目的
1.通过多台处理机对多个 任务和作业进行并行执行 来提高求解速度, 从而提高系统的整体性能
2. 使用冗余的多个处理机通过重新组织来提高系统的 可靠性,可用性和适用性
构造分类
同构型
在单程序多数据流的多处理机上运行的多个并行进程上采用
异构型
在单程序多数据流的多处理机上运行的多个并行进程上采用
分布型
与阵列处理机的区别
多处理机 属于 MIMD系统, 实现的是更高一级 的 作业和任务间并行, 采用并行性中的 并发性
阵列机属于SIMD系统, 主要采用资源重复针对向量, 数组处理, 实现向量指令 "操作级" 的并行, 是并行性中的同时性
遇到的问题(特点)
在硬件结构上
多处理机要用多个指令部件分别控制, 通过共享主存或者 高速通信网络 互联通信
在算法上
不限于向量, 数组的处理, 还要挖掘和实现更多通用算法中隐含的并行性
在系统管理上
要更多的依靠操作系统等软件手段来解决资源分析和管理 ,特别是任务分配,处理机调度,进程的同步和通信问题, 对任务的派生 和 汇合
资源分配和调度
由于各处理机进入和退出任务的时间和需要的资源差别和变化较大, 必须研究好
如何较好的解决 动态资源分配和任务调度, 让处理机的负荷尽可能的均衡, 要防止出现死锁
如何较好的解决 动态资源分配和任务调度, 让处理机的负荷尽可能的均衡, 要防止出现死锁
结论
多处理机的结构, 机间互联,并行算法,并行语言, 编译,操作系统 都会直接影响到系统的性能和效率
硬件结构分类
紧耦合
多处理机采用共享主存实现机间通信, 通信速率主要受限于频宽
层次型
非层次型
多处理机多Cache一致性问题
由于每个处理机都有Cache, 当主存中同一个信息在多个Cache中都出现时,
会出现多个Cache之间信息块内容不一致的问题
会出现多个Cache之间信息块内容不一致的问题
解决办法
解决进程迁移引起的Cache一致性问题, 禁止进程迁移 或者 进程挂起时靠硬件方法将Cache 回写主存个相应位置
以硬件为基础 实现多Cache 的一致性, 采用监视 Cache 协议法和目录表法
只适用于总线互联的多处理机 和少量的多处理机中
目录表法
全映像目录表法
有限目录表法
链式目录表法
以软件为基础 实现Cache 一致性, 不把一些公用可写数据存入Cache中
松耦合
不同处理机间通过"通道互联" 实现通信, 以共享外围设备或通过"消息传送系统" 来交换信息, 各处理机可自带外围设备
机间互联形式
总线
多个处理机,存储器模块和外围设备通过接口与公用总线相连, 采用分时 或 多路转接技术传送
环形互联
交叉开关
多端口存储器
蠕虫穿洞
开关枢纽结构形式
存储器的组织
一般采用多个模块构成的并行存储器
为了减少主存冲突, 采用的方式一般是, "并行多体交叉主存系统"
并行算法
概念
同时执行多个进程的集合, 各进程可相互作用, 协调和并发操作
多处理机低层次的并行可通过向量化实现, 系统高层次的作业和任务 主要靠 算法,编译,语言,及操作系统来开发
算法分类
按运算基本对象
数值型
非数值型
基于关系运算, 选择,排序,查找,字符处理的并行主要是对符号操作的
按并行进程间的操作顺序
同步型
并行的各进程间由于相关,必须顺次等待
异步型
并行的各进程间 执行相互独立,不会因为相关而等待,只是根据执行情况决定终止或 继续
独立性
按任务大小
细粒度
该算法一般指向量或循环级的并行
中粒度
较大的循环级并行,可确保这种并行的好处可以补偿因并行带来的额外开销
粗粒度
一般是指子任务的并行
算法的研究
思路
多处理机主要是为了提高速度, 因此好的算法应该尽可能 扩大树的广度, 降低树的高度
从算数表达式的最直接形式出发, 利用 "交换律" 把相同的运算集中在一起, 然后利用"结合律" 把参与运算的操作数配对, 尽可能并行运算,从而组成树高为最小的子树
并行算法 取决于 计算机的结构和 题目, 他是提高多处理机的并行性能的关键
串行处理机 多采用 循环 和迭代的算法, 这样可以缩短程序长度, 节省程序所占用的空间, 简化编程
把运算过程表示层树形结构, 提高运算的并行性就是如何对 树进行变换, 以减少运算的级数, 树形结构可以用交换律, 结合律,分配律, 来变换树的形状
计算
p 表示并行处理机的数量
Tp 表示p 台处理机的 级数
T1 表示当处理机 为1台的时候 ,执行表达式(不拆开)需要多少步骤 完成
Sp 处理机的加速比: Sp =T1/Tp
Ep 处理机的设备利用率 Ep= Sp/p
霍纳法则
1. 将表达式 去掉嵌套括号
2.判断计算机执行步骤 T1
3.判断处理机数量 P
4.画图判断 表达式的 处理级数 Tp
5.计算 Sp 和 EP
并行性分析
数据相关
Pj必须取出Pi运算的结果来作为操作数, 称 Pj 数据相关 Pi 只允许 顺序串行
当Pj 和Pi 服从 交换律的时候, 允许 交换串行
数据反相关
Pj的运算结果 需要被Pi取出进来进行操作. 且 Pi 未取用之前是不允许改变的 ,需要硬件保证Pi对相关单元A先读出
流水发生 "先读后写" 可顺序串行 ,可并行执行, 但不能交换串行
数据输出相关
Pi的左边变量 也是Pj的左边变量(结果变量相同), 且Pj 必须在Pi存入之后存入,称为 Pj 数据相关Pi
结论
两段程序之间若有 先写后读的数据相关, 不能并行处理, 只在特定情况下可以交换串行
若数据 有先读后写的 数据反相关, 可以并行执行, 但必须保证写入共享的主存时候,先读后写次序. 不能交换串行
如果有 写写的数据输出相关, 可以并行执行, 但同样要保证写入的先后顺序,不能交换串行
若同时有 先写后读 和先读厚写 两种相关, 以交换数据为目的时, 必行并行执行, 且读写要完全同步,不许顺序串行和交换串行
若没有任何数据或者 仅有源数据相关, 可以并行,顺序串行, 交换串行
性能
任务粒度的大小会显著影响多处理机的性能和效率
粒度的衡量
程序用于计算的执行时间 / 辅助开销时间的比值
任务粒度小, 辅助开销大, 系统效率低
任务粒度大,并行度低, 性能不会很高
操作系统类型
分类
主从型
优点
结构简单, 整个管理程序只需要在一个处理机上运行, 除非某些递归调用和多重调用的公用程序, 一般都不是可再入的, 只有一个处理机访问执行表, 不存在系统控制表格的访问冲突和阻塞, 简化了管理控制的实现.这样能使操作系统 最大限度的使用已有的单处理机, 分时操作系统的成果,只需要对他稍加扩充即可. 实现简单, 经济方便, 是目前大多数处理机操作系统所采用的方式. 从处理机 通过 访管指令 和 自陷软中断 来请求主处理机服务
缺点
对主处理机的可靠性要求较高, 一旦发生故障,容易是整个系统瘫痪, 这个时候必须操作员干预才行,
如果主处理机不是设计成专用的, 操作员可用其他处理机作为新的主机来重新启动系统.
整个系统不够灵活,同时要求主处理机必须能快速执行器管理功能, 提前等待请求, 以便及时为从处理机分配任务,否则将是处理机应长时间空闲 降低系统效率
如果设计成专用处理机, 可能会因为负荷过重, 影响系统性能, 特别是大部分任务很短时, 由于频繁请求主处理机完成大量的管理性操作, 系统效率显著降低
适用于
从处理机 明显低于主处理机的异构型多处理机
各自独立型
优点
适用分布处理的模块结构特点,减少对大型专用处理机的需求, 某个机器故障不会引起系统瘫痪, 就较高的可靠性, 每台处理机都有专用的控制表格,系统表格冲突较少, 也不会有许多公用执行表, 同时控制用户进程和进程一起进行调度, 能有较高的系统效率
缺点
实现复杂,仍然有一些共享表格, 会增加共享表格的冲突访问, 要恢复和重新执行未完成的工作就比较困难, 每台机器都有自己的输入输出结构, 如果要变换需要操作员干预, 各处理机负荷平衡比较困难, 每台存储器需要存储管理程序副本, 降低存储器利用率
使用场景
松耦合多处理机,要求某个处理机挂掉,不会引起整个系统瘫痪, 具有较高的可靠性,适应分布处理的模块化结构特点.减少对大型专用处理机的需求
浮动型
优点
各类资源可以较好的做到负荷平衡, 对于IO 中断等非专门的操作, 可交由其他时段最闲的处理机执行,
他在硬件结构和可靠性上具有 分布式的优点, 在操作系统的复杂性和经济上则接近于 主从型, 如果系统设计的噩耗, 将不受多处理机数量的的影响, 具有很高的灵活性
缺点
设计困难
适用场景
同构性多处理机, 公共主存和 I/O 多个相同的处理机组成, 要求各类资源做到均衡负荷
发展历史
发展阶段
分布式共享存储器多处理机
将物理上分散的多台处理机拥有的 "本地存储器" 在逻辑上统一编址,形成一个统一的 "虚拟地址空间" ,以实现共享
对称多处理机
与并行向量处理的区别在于 处理器不是 专用的, 而是采用一般商品化在片Cache的微处理器, 在外加片外Cache, 经 高速总线 或 纵横交叉开关 连接到共享存储器上
多向量处理机
并行向量处理机
采用 纵横交叉开关 互联网络
由若干数目不等的强功能专用处理机经高宽带,的纵横交叉开关互联到若干共享的存储器模块, 每个处理机系统超过1GFLOPS , 这类机器一般不适用cache, 采用大量向量寄存器和指令缓冲存储器.
大规模并行处理机 MPP
进行中粒度 和 细粒度并行处理, 构成 SIMD 和 MIMD 系统
机群系统
将多个高性能工作站和高档微型计算机, 使用高速通信网络连接 组成的系统, 主机和网络 可以是同构 也可以是 异构, 主机间通信主要采用 消息传递
从结构和结点通信来看,是一种分布式存储方式, 从用户来看, 是一个完整的 并行系统
优点
系统有高的性价比
系统开发周期短
系统可扩展性好
系统的资源利用率高
用户投资风险小
用户编程方便
性能3T指标
1 TFLOPS 的计算能力
1 TByte 的主存容量
1 TByte/s的 IO 带宽
8章 数据流计算机和规约机
基本概念
数据令牌
表示某一操作数和参数已经准备就绪, 一旦执行某个操作数的所有操作数令牌都到齐,可标志这是什么操作, 以及操作结果所得出的数据令牌,应发送到那些等待此数据令牌的的操作第几个操作部件等相关信息 都将做为一个消息包, 传送到处理单元或操作部件并予以执行
异步性
一旦操作数到齐,就开始操作, 这是数据流计算机开拓并行性的基础
函数性
是指每一数据流操作都消耗一组输入值, 产生一组输出值而不会发生副作用,具有变量出现的幅值语句,左边仅一次单赋值特性,从而可以保证任意两个并发操作可以按任意次序执行, 不会相互干扰
活动默片表示法
数据流可以看成一组活动模片的集合体, 每个活动模片,右 4个域组成, 他们是 " 一个操作码域, 两个操作数域, 一个目的域", 该方法 被 数据流计算机操作系统中 分派程序 所使用.
控制类操作结点
归并门控结点
有2个数据输入端 和 1 个数据输出端, 并受控制端控制
F门控结点
布尔控制端为false, 且 输入端有数据令牌时才激发, 然后在输出端产生 带输入数据的 令牌
T门控结点
布尔控制端为True, 且 输入端有数据令牌时才激发, 然后在输出端产生 带输入数据的 令牌
开关门控结点
有1个输入端 和2个输出端, 并受控制端控制
算逻辑运算操作结点
该结点在 主要包括 算术运算 和 布尔逻辑 运算
复制操作结点
可以是 数据 的多个复制 和 控制量 的多个复制
判定操作结点
对输入数据按某种关系进行判断和比较, 激发后在输出控制端 给出带逻辑值的 真 和 假 的控制令牌
数据的驱动方式
数据驱动
优点
数据驱动 是 按输入数据可用性 决定次序的进行, 在数据流方式中, 数据令牌 是一种表示某一 操作数 或 参数 已准备就绪的标志
不通过共享变量的概念和共享存储数据的概念, 指令执行只受指令中数据相关性 的制约, 数据是以数据令牌的方式直接在指令中传递
控制驱动
Von Neumann型 计算机的特点是在 "程序计数器集中"控制下, 顺次的执行指令, 因此它是以 "控制流 Control Flow "方式工作的
优点
通过访问共享存储单元,让数据在指令间传递, 指令执行的顺序性隐含在控制流中, 可以使用专门的控制操作符来实现并行处理.
指令的执行顺序 受程序计数器控制, 受控制令牌所支配,
需求驱动
按数据需求所决定的次序进行
数据流计算机
概念
采用数据驱动, 按输入数据的 可用性决定次序的进行, 数据流 基于 异步性 和函数性 的一种计算机模型
分类
按"数据令牌"的处理方式把数据流计算机的机构分类
静态
为了满足迭代要求, 要重复激活同一操作结点外,还必须另设 控制令牌 以 识别 数据令牌 由一个结点传送到另一个结点的 时间关系, 从而区分属于不同迭代层次的批次数据
动态
进展
采用提高并行等级的数据流计算机
将并行等级提高到 函数 或 复合函数 一级以上 ,可以明显的减少总的操作开销
采用同,异步结合的数据流计算机
在指令级 适当采用 同步操作, 在函数级 和函数级之上 采用异步曹所, 就可以减少计算机的操作开销
采用控制流与数据流相结合的数据流计算机
使用语言
单赋值语言
ID 语言
是块结构式, 面向表达式, 无副作用的单赋值语言
采用ID编写的程序不能直接运行, 需要先编译成数据流程序图, 然后再在计算机上执行
基本数据类型
整型
实型
布尔型
字符型
结构数据有
数组
记录
特点
遵循单赋值规则
有丰富的数据类型
具有很强的类型性
具有模块化程序设计思想
没有全局存储器和状态的概念
程序不规定语句的执行顺序
函数程序设计语言
由所有的 函数表达式的集合 和 所有目标的集合 和 所有 函数表达式 到目标函数的 集合 三部分组成
本质上 属于 解释执行方式, 从函数式程序的规约来看, 计算机内部通常采用 链表的存储结构, 且依赖动态存储分配
逻辑程序设计语言
PROLOG描述式语言
存在的问题
在计算中, 为了给数据建立标识,处理识别,需要花费较大的辅存空间和较多的辅存开销
数据流计算机不保存数组, 处理大型数据时,会增加额外的传输开销
数据流语言的变量代表数值, 是程序员无法控制存储分配
数据流计算机互联网络设计困难, 输入输出系统不够完善
数据流计算机没有程序计数器, 给诊断和维护带来了困难
如果题目本身相关性强, 内涵并行性成分不多是, 就会是效率比传统Von Neumann 型机低
规约机
概念
属于数据流"的计算机模型, 采用的是 "需求驱动", 执行的操作序列取决于对数据的需求, 对数据的需求来源于 "函数式程序设计语言对表达式"的归约
分类
串归约机
是一种特殊的 "符号串处理机" , 函数定义 ,表达式, 和目标都以 字符串 的形式存储于计算机中
图归约机
特点
采用 "面向函数式语言, 或 函数式语言为机器语言, 非 Neumann型机器, 内部结构不同于Neumann机器
具有大容量物理存储器和虚拟存储器, 具备高效的动态存储分配和管理的软,硬件支持,
采用多个处理器或多个处理机并行的结构形式, 以发挥函数式程序并行处理的特长
采用适合函数式程序运行的多处理器互联的结构, 最好采用树形或多层次复合的互联结构形式
为减少进度调度和进程间通信开销, 尽量把运行进程的结点机器紧靠该进程所需用的数据安排, 让运行时需要相互通信的进程所需要的处理机也靠近,让个处理机负荷平衡
9. 计算题汇总
1章节
计算机系统结构
计算机实现
计算机组成
计算机设计原则
2章
标识符数据和 数据描述的区别 和作用
浮点数尾数基值的计算
哈夫曼树的画法 和 平均码长 是 概率成 位数 之和
精简和复杂指令集的 设计基本原则
3章
计算每个周期平均能访问到的字数
= 1-(1-入)^m / 入
计算主存最大频宽 Bm
Bm= 实际比例 * m * 宽度 / 存储周期
实际频宽和模数m的关系
中断响应次序 画图,
在前面的都能处理,都画1
处理机全过程画图
总线控制方式 优缺点
串行链接
独立请求
定时查询
总流量计算, 工作周期计算
4章
命中率计算 和画图
LRU
堆栈算法, 最近使用的不被移出
FIFO
标记上了就不会更改 (也就是哪怕刚刚使用了也会被移出)
OPT
最少缺页,最近最少最长时间未被使用的
堆栈算法
先进先出, 后进换位
组相联映像+命中率 画图
组件 直接相连, 组内全相连(混合链接)
5章
非标量流水处理机, 冲突向量计算 (精讲9,35')
延迟禁止表F
间隔 f={1,4,5,8}
冲突向量C
8 位数, 从右往左数, f表中的存在的写1
C= ( 1 00 11 001)
流水线状态转移图
先算允许表A=(2,3,6,7)
C 小数点左移 A表中位数, 然后 跟C 进行 或运算 得出集合R
R集合中小数可以推到大数, 然后画图, 位置相同的 可以互推
最佳调度方案
间隔最少的 △t 就是 最佳方案 i=(2,7)
平均延迟
最佳调度方案i =(2,7)集合 取平均值avg
最大吞吐率
n= 1/平均延迟
流水处理机的 计算
吞吐率
Tp= n / 一条只能完成的所需At + (n-1)最长部件执行时间
效率
n=n*一条指令完成需要的时间 / k个步骤* (一条指令所需时间+ (n-1)最长部件时间)
瓶颈子过程消除的 画法
时空图
两个指令之间 间隔 是 瓶颈子过程的时间
指令画的时候,要考虑 是否能并行
超标量流水处理器 的画法
6章
向量浮点数计算多多少拍
CRAY-1
浮点加 6拍
浮点乘 7拍
访主存 6拍
写寄存器 1拍
启动访存 1拍
送浮乘 1拍
计算
123 串行 22+3N拍
12并行 15+2N 拍
123 链接 16+N 拍
ILLAIC IV 成对递归相加求累加和
1.置全部PEi为活跃状态 0<i<=15
设置活跃状态
2.置全部A(i) 从PEi 的a 单元读取到相应 PEi的累加寄存器RGAi 中 0<i<=15
加载元素数据到RGAi中
3,令 K=0
4.将全部的PEi的 RGAi 转送到从传送寄存器RGRi (0<i<=15)
传送到RGR
5.将全部的PEi的RGRi 经过互联网络各右 传送 2^k 步距, (0<i<=15 )
6.令 j=2^k-1
7.设置 PE0-PEj为不活跃状态
8.处理活跃状态的所有 PEi, 执行RGAi:=RGAi+RGRi (j<i <=15)
9 K:=K+1
10.若k<4, 则转回 (4)
11.置全部PEi为活跃状态 0<i<=15
12.将全部PEi的累加寄存器内容RGAi 存入到相应 的PEi的a+1个单元中, (0<i<=15 )
SIMD 设计目标
PM2I 互联函数一般式
PM2+0(j)=j+1 mode 16
PM2-0(j)=j-1 mode 16
PM2+1(j)=j+2 mode 16
PM2-1(j)=j-2 mode 16
Cube函数一般式
Cube0(b2b1b0) = b2b1b0
Cube1(b2b1b0) = b2b1b0
Cube2(b2b1b0) = b2b1b0
ButtleFly函数一般式
f(P2P1P0) = P0P1P2
阵列处理机PE M的取质数
M=2^2p+1
S1=2^p
同一列相邻两个元素地址错开的距离为S1
S2=1
同一行两个相邻元素地址错开的距离S2
错误存放 满足 j= 2a+b+3 mod 5
对于 4*4 的二维数组
7章
霍纳表达式的计算
T1 TP P SP EP
fork join的时间资源图
表达式 转换 fork join
8章
数据流计算机
采用数据驱动的,基于 异步性和函数性的 一种计算机模型
将数据封装陈给一个 数据令牌的方式 传递到下一个处理结点
规约机
采用需求驱动
执行的操作序列 取决于对数据的需求,对数据的需求 又基于 函数式程序设计语言 对表达式的规约
0 条评论
下一页
为你推荐
查看更多