计算机体系结构

目录

第一章 基本概念

1.虚拟计算机

2.计算机系统结构的定义

3.佛林(Flynn)分类法

4.Amdahl定律

5.CPU性能公式

6.程序访问的局部性原理

第二章 指令系统

1.数据表示与数据类型

2.浮点数的表示方式

3.编址方式

4.寻址方式

5.指令系统的优化设计 

6.Huffman编码法

7.拓展编码

8.两种方向的指令系统发展

第3章 存储系统

1. 存储系统的定义

2 存储系统的层次结构

3.并行访问存储器

4.高位交叉访问存储器

5.访问冲突

6.地址的映象与变换 

3. 段页式虚拟存储器 

4.加快内部地址变换的方法

5.页面替换算法及其实现

6.提高主存命中率的方法

7.cache基本工作原理

8.地址映象与变换方法

9.Cache替换算法及其实现 

10.Cache存储系统性能分析 

11.Cache的一致性

12.Cache的预取算法

第四章 IO设备

1.基本输入输出方式

2.中断源的种类

3.中断优先级

4.中断系统的软硬件分配

5.中断屏蔽

6.通道的作用和功能

7.通道的工作过程

8.通道流量分析 

第5章 标量处理机 

1.指令的重叠执行方式

2.先行控制方式的原理

3.流水线技术

4.流水线的分类

5.线性流水线的性能分析

6.非线性流水线的调度

7.全局相关

第6章 向量处理机

1.向量处理机的结构

2.向量处理方式

3.向量链接技术

4.向量循环开采技术

5.向量处理机的性能评价

6.最大性能​编辑和半性能向量长度​编辑

第7章 互连网络

1.互连网络的作用

2.互连函数

3.静态互连网络

4.动态互连网络


第一章 基本概念

1.虚拟计算机

定义:从不同角度所看到的计算机系统的属性是不同的
主要观察角度包括:
• 应用程序员
系统程序员
硬件设计人员

翻译(Translation) :先把N+1级程序全部转换成N级程序后,再去执行新产生的N级程序,在执行过程中N+1级程序不再被访问。
解释(Interpretation) :每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级的指令,依此重复进行。
解释执行比编译后再执行所花的时间多,但占用的存储空间较少。
L0-L2级用解释的方法实现,L3-L5级则用翻译的方法实现

2.计算机系统结构的定义

定义一
Amdahl于1964年在推出IBM360系列计算机时提出
程序设计者所看到的计算机系统的属性, 即概念性结构和功能特性
定义二
计算机系统结构也称为计算机系统的体系结构
3. 结论
计算机系统结构研究的是 软、硬件 之间的功能分配 以及 对传统机器级 界面的确定 ,为机器语言、汇编语言程序设计者或编译程序生成系统提供使其设计或生成的程序能在机器上正确运行而应看到和遵循的计算机属性

3.佛林(Flynn)分类法

1966年由Michael.J. Flynn 提出,按照指令流和数据流的多倍性特征进
行分类
指令流(Instruction Stream) :机器执行的指令序列
数据流(Data Stream) :由指令流调用的数据序列
多倍性(multiplicity) :在系统性能瓶颈部件上同时处于同一执行阶段的指 令或数据的最大可能个数
四种类型
1) 单指令流单数据流 SISD(Single Instruction Single Data stream)
2) 单指令流多数据流 SIMD(Single Instruction Multiple Data stream)
3) 多指令流单数据流 MISD(Multiple Instruction Single Data stream)
4) 多指令流多数据流 MIMD(Multiple Instruction Multiple Data stream)

4.Amdahl定律

系统中某一部件由于采用更快的执行方式后,整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关

假设T_{0}为改进前整个任务的执行时间,则改进后整个任务的执行时间为 

改进后整个系统的加速比为

5.CPU性能公式

CPU的程序执行时间T_{CPU}
程序执行的总指令条数IC (Instruction Counter):取决于是指令
集结构和编译技术
平均每条指令的时钟周期数CPI (Cycles Per Instruction):取决
于计算机组成和指令集结构
时钟主频 \mathit{f}_{c} . :取决于硬件实现技术和计算机组成

6.程序访问的局部性原理

局部性分 时间局部性 空间局部性
时间局部性:程序中近期被访问的信息项很可能马上将被再次访问。
空间局部性:指那些在访问地址上相邻近的信息项很可能会被一起访问。

第二章 指令系统

1.数据表示与数据类型

数据表示 :是指计算机硬件能够直接识别,可以被指令系统直接调用的那些数据类型
数据结构 :串、队、栈、向量、阵列、链表、树、图等软件要处理的各 种数据结构,反映了应用中要用到的各种数据元素或信息单元之间的结构关系
数据结构要通过软件映像,变换成机器所具有的数据表示来实现
不同的数据表示可为数据结构的实现提供不同的支持
数据结构和数据表示实际上是 软硬件的交界面 ,需要在系统结构设计时予以确定

2.浮点数的表示方式

尾数 :数制(小数或整数)和码制(原码或补码)
阶码 :整数, 移码(偏码、增码、余码)或补码
尾数基值 :2、4、8、16和10进制等
阶码基值 : 通常为2进制
尾数长度 :尾数部分按基值计算的长度
阶码长度 :阶码部分的二进制位数
• 尾数决定了浮点数的表示精度,阶值决定了浮点数的表示范围

3.编址方式

常用的编址单位:字编址、字节编址、位编址、块编址等
编址单位与访问字长
一般:字节编址,字访问
部分机器:位编址,字访问
辅助存储器:块编址,位访问

4.寻址方式

Ø 立即数寻址方式 :直接在指令中给出操作数
• 用于数据比较短,且为源操作数的场合
Ø 面向寄存器的寻址方式 :指令在执行过程中所需要的操作数来自于寄
存器,运算结果也写回到寄存器中
Ø 面向主存储器的寻址方式
q 直接寻址 :在指令中直接给出参加运算的操作数及运算结果所存
放的主存地址。
q 间接寻址 :指令中给出的是操作数地址的地址,必须经过两次
(或两次以上)的访主存操作才能得到操作数。
q 变址寻址(相对寻址、基址寻址) :指令执行时,用一个硬件加
法器,把变址寄存器中给出的基地址加上指令中给出的偏移量,
才能得到有效地址。
Ø 面向堆栈的寻址方式 :堆栈寻址方式的地址是隐含的,在指令中不需要
给出操作数的地址

OPC ;运算型指令

OPC M ;数据传送型指令

5.指令系统的优化设计 

主要目标:节省程序的存储空间 / 指令格式尽量规整,便于译码

6.Huffman编码法

7.拓展编码

某处理机的指令系统要求:三地址指令4条,单地址指令255条,零地址指令16条,指令字长12位,每个地址码长3位,问此时能用拓展编码为操作码编码吗?假如单地址是254条呢?

解:
对于三地址指令的编码:
在这里插入图片描述
操作码有三位,能表示的操作状态数量是 2^3=8种,因为需要4条,所以剩下空余数4个。

对于单地址指令的编码:
在这里插入图片描述
操作码能有6位,根据乘法原则:4*2^6=256条,也就说最多能表示256种状态,需要单地址指令255个,剩下一个数。

对于零地址指令的编码:
在这里插入图片描述
操作码有3位,能表示2^3=8条,剩下的一个数根据乘法原则1 ∗ 8 = 8,所以不够编码零地址指令了。

但是,如果我们的单地址指令有254条,剩下多一个数(256-254=2)的话,就变成:
在这里插入图片描述
操作码有3位,能表示8条,剩下多的一个数,根据乘法原则2 ∗ 8 = 16,就够用来对零地址指令编码了。

8.两种方向的指令系统发展

CISC方向
这是朝着利用更多硬件实现更多的指令的方向,能实现的功能越多越好,那拓展的都是些什么指令呢?第一是算术拓展,像求根号,sin,cos,tan,求指数那些,第二是增强数据传输指令的功能,比如传双字和半字的优化,大量数据传送的优化等,第三是对循环语句的优化,根据测试程序的调查显示循环体有1-3条语句的情况占据70%,也就说循环体一般很短,设置专门的循环指令,比如Loop,第四是根据高级语言来优化,在高级语言里面有一些常用的,会直接变成机器指令,加快速度。

RISC方向
这是朝着越简洁越工整越好的方向发展的,CISC的方向最大的问题是芯片面积过大(因为需要实现的硬件功能需要太多了)减少指令种类,简化指令功能,降低硬件设计复杂度,提高指令执行速度

RISC的定义与特点
1) 减少指令和寻址方式种类 :指令系统只选择高频指令,减少指令数量,一般不超
过100条;减少寻址方式,一般不超过两种
2) 固定指令格式 :精减指令格式限制在两种以内,并使全部指令都在相同的长度
3) 大多数指令在单周期内完成 :让所有指令都在一个周期内完成
4) 采用LOAD/STORE结构 :扩大通用寄存器数量(一般不少于32个),尽量减少访存,
所有指令只有存(STORE)/取(LOAD)指令可以访存,其他指令只对寄存器操作
5) 硬布线逻辑 :大多数指令采用硬联逻辑,少数指令采用微程序实现,提高指令执
行速度
6) 优化编译 :通过精减指令和优化设计编译程序,简单有效地支持高级语言实现
RISC的关键技术
1. 延时转移技术
为了使指令流水线不断流,在转移指令之后插入一条没有数据相关和控制相关的有效指令,而转移指令被延迟执行,这种技术称为延迟转移技术。
采用指令延迟转移技术时,指令序列的调整由编译器自动进行,用户不必干预。
2.指令取消技术
采用指令延时技术,经常找不到可以用来调整的指令,可考虑采用另一种方法:指令取消技术
分为两种情况:
(1)向后转移(适用于循环程序)(2)向前转移(IF THEN )
3. 重叠寄存器窗口(Overlapping Register Window)技术
Ø 原因:在RISC中,子程序比CISC中多,因为传送参数而访问存储器的信息
量很大
Ø 实现方法:设置一个数量比较大的寄存器堆,并把它划分成很多个窗口。
在每个过程使用的几个窗口中:
有一个窗口是与前一个过程共用
有个窗口是与下一个过程共用
4. 指令流调整技术
目标:通过变量重新命名消除数据相关,提高流水线效率
例子:调整后的指令序列比原指令序列的执行速度快一倍
5. 采用高速缓冲存储器Cache
Ø 设置指令 Cache 和数据 Cache 分别存放指令和数据,保证向指令流水
线不间断地输送指令和存取数据,提高流水线效率
6. 优化设计编译系统
Ø RISC 由于使用了大量寄存器,因此编译程序必须尽量优化寄存器分配,
提高其使用效率,减少访存次数。
Ø 优化编译器要做数据和控制相关性分析,要调整指令的执行序列,并
与硬件相配合实现指令延迟技术和指令取消技术
Ø 由于 CISC 中一条指令在 RISC 中需要一段子程序来实现,所以要设计
复杂的子程序库

3章 存储系统

1. 存储系统的定义

Ø 两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件、
或软件与硬件相结合的方法连接起来成为一个存储系统。这个存储系
统对应用程序员是透明的,并且,从应用程序员看,它是一个存储器,
这个存储器的速度接近速度最快的那个存储器,存储容量与容量最大
的那个存储器相等,单位容量的价格接近最便宜的那个存储器。

2 存储系统的层次结构

 

3.并行访问存储器

方法:把m字w位的存储器改变成为m/n字n×w位的存储器
逻辑实现:把地址码分成两个部分,一部分作为存储器的地址另一部分
负责选择数据
主要缺点:访问冲突大
(1) 取指令冲突
(2) 读操作数冲突
(3) 写数据冲突
(4) 读写冲突

4.高位交叉访问存储器

实现方法:用地址码的高位部分区分存储体号

5.访问冲突

6.地址的映象与变换 

三种虚拟存储器
页式虚拟存储器
段式虚拟存储器
段页式虚拟存储器
地址变换方法 :由用户号找到基址寄存器,读出段表起始地址,与虚地址中段号相加得到段表地址,把段表中的起始地址与段内偏移D相加就能得到主存实地址。

 

2. 页式虚拟存储器
Ø 地址映像 :页式虚拟存储器把虚拟地址空间划分成一个个固定大小
的块,每一块称为一页(
page),把主存储器的地址空间也按虚拟
地址空间同样的大小划分为页。
Ø 虚拟地址空间中的页称为 虚页 ,主存地址空间的页称为 实页

3. 段页式虚拟存储器 

Ø 用户按段写程序 , 每段分成几个固定大小的页
Ø 地址映象方法 :每个程序段在段表中占一行,在段表中给出页表长
度和页表的起始地址,页表中给出每一页在主存储器中的实页号。
地址变换方法: 先查段表,得到页表起始地址和页表长度,再查页
表找到要访问的主存实页号,把实页号p与页内偏移d拼接得到主存
实地址。

4.加快内部地址变换的方法

造成虚拟存储器速度降低的主要原因:
1) 要访问主存储器必须先查段表或页表。如果段表和页表都在主存中,则主存储器的访问速度要降低2至3倍
2) 当页表和段表的容量超过了一个页面的大小时,它们有可能被映像到主存不连续的页面上,使得按照地址查找主存实页号的办法无法成立。
解决方法:多级页表
由页表基址寄存器指出第一级页表的基地址,再用第一级页表各单元中的地址字段指出第二级页表的基地址,如此下去,构成一个树型结构的多级页表。在最后一级页表中给出主存实页号信息。

 

1 目录表法
压缩页表的存储容量,用一个 容量比较小的高速存储器 来存放页表,
从而加快页表的查表速度
页表只为已经装入到主存中的那些页面建立虚页号与实页号之间的对应关系
随着主存容量的增加,目录表的容量也必须增加,所以可扩展性较差。当主存容量
增加到一定数量,目录表的造价就会很高,查表速度也会降低
2 快慢表
Ø 由于程序访问的时间局部性,在一段时间内,对页表的访问只是局限在少数几
个存储字内。因此,可以大大缩小目录表的存储容量(
8-16个存储字),加快
访问速度(与CPU中通用寄存器速度相当)
Ø 快表 (Translation Lookaside Buffer, TLB)保存最近访问的虚页到实页
的映射

3 散列函数

5.页面替换算法及其实现

1) 随机算法(Random,RAND) :采用软件或者硬件随机数产生器产生主存中要被替换的页号。
算法简单,容易实现;没有利用历史信息,没有反映程序的局部性,命中率低
2) 最优替换算法( Optimal Replacement Algorithm, OPT :选择将来最久没有被访问的页作为被替换页面
是一种理想算法,仅用作评价其它页面替换算法好坏的标准。
3) 近期最少使用算法(Least Recently Used, LRU) :选择近期最少访问的页作为被替换的页
能够比较正确反映程序的局部性
实现困难,一般使用其变形, 把最久未被访问的页作为被替换页
多”与“少”简化成“有”与“无”,实现比较容易
4) 先进先出算法(First-In-First-Out, FIFO) :选择最早装入主存的页作为被替换的页
容易实现,利用了历史信息;没有反映局部性,最先调入的页面,很
可能也是要使用的页面

6.提高主存命中率的方法

影响主存命中率的主要因素
1) 程序在执行过程中的页地址流分布情况。
2) 所采用的页面替换算法。
3) 页面大小
4) 主存储器的容量
5) 所采用的页面调度算法

7.cache基本工作原理

地址映象 :把主存中的程序按照某种规则装入到Cache中,并建立主存地址与Cache地址之间的对应关系。
地址变换 :当程序已经装入到Cache之后,在程序运行过程中,把主存地址变换成Cache地址。
在选取地址映象方法要考虑的主要因素:
地址变换的硬件实现容易、速度要快
Cache空间利用率要高
发生块冲突的概率要小

8.地址映象与变换方法

全相联映象及其变换
映象规则 :主存的任意一块可以映象到Cache中的任意一块。

 直接映象及其变换

映象规则:主存储器中一块只能映象到Cache的一个特定的块中。

 

 组相联映象及其变换

映象规则
主存和Cache按同样大小划分成块和组。
主存和Cache的组之间采用直接映象方式。
在两个对应的组内部采用全相联映象方式

9.Cache替换算法及其实现 

使用的场合:
直接映象方式实际上不需要替换算法
全相联映象方式的替换算法最复杂
主要用于组相联、段相联等映象方式中
1. 轮换法及其实现
用于组相联映象方式中,有两种实现方法。
方法一:每块一个计数器
在块表内增加一个替换计数器字段,计数器的长度与 Cache 地址中的组内
块号字段的长度相同。
替换方法及计数器的管理规则:新装入或替换的块,它的计数器清 0 ,同
组其它块的计数器都加“ 1”
在同组中选择计数器的值最大的块作为被替换的块。
方法二:每组一个计数器
替换规则和计数器的管理:本组有替换时,计数器加“1”,计数器的
值就是要被替换出去的块号。
例:NOVA3机的Cache采用组相联映象方式,Cache每组的块数为8,每
组设置一个3位计数器。在需要替换时,计数器的值加“1”,用计数
器的值直接作为被替换块的块号。
轮换法的优点:实现比较简单,能够利用历史上的块地址流情况
轮换法的缺点:没有利用程序的局部性特点
2. LRU算法及其实现
为每一块设置一个计数器,计数器的长度与块号字段的长度相同
计数器的使用及管理规则:新装入或替换的块,计数器清 0 ,同组中
其它块的计数器加 1 。命中块的计数器清 0 ,同组的其它计数器中,凡
计数器的值小于命中块计数器原来值的加 1 ,其余计数器不变。需要
替换时,在同组的所有计数器中选择计数值最大的计数器,它所对应
的块被替换。
4. 堆栈法
把本次访问的块号与堆栈中保存的所有块号进行相联比较。
如果有相等的,则Cache命中。把本次访问块号从栈顶压入,堆栈
内各单元中的块号依次往下移,直至与本次访问的块号相等的那个
单元为止,再往下的单元直止栈底都不变。
如果没有相等的,则Cache块失效。本次访问的块号从栈顶压入,
堆栈内各单元的块号依次往下移,直至栈底,栈底单元中的块号被
移出堆栈,它就是要被替换的块号。

10.Cache存储系统性能分析 

11.Cache的一致性

写直达法 ( Write-through ,WT):CPU的数据写入Cache时,同时
也写入主存。
写回法 (Write-Back,WB):CPU的数据只写入Cache,不写入主存,
仅当替换时,才把修改过的Cache块写回主存。
Cache的更新算法(写直达法、写回法)比较
1) 可靠性 :写直达法优于写回法。写直达法能够始终保证Cache是主存的副
本。如果Cache发生错误,可以从主存得到纠正。
2) 与主存的通信量 :写回法少于写直达法。
对于写回法,大多数操作只需要写Cache,不需要写主存;当发生块
失效时,可能要写一个块到主存;即使是读操作,也可能要写一个
块到主存。
对于写直达法,每次写操作,必须写、且只写一个字到主存。
实际上,写直达法的写次数很多、每次只写一个字;写回法是的写
次数很少、每次要写一个块。
3) 控制的复杂性 :写直达法比写回法简单。
对于写回法,要为每块设置一个修改位,而且要对修改位进行管;
为了保证Cache的正确性,通常要采用比较复杂的校验方式或校
正方式。
对于写直达法,不需要设置修改位;只需要采用简单的奇偶校验
即可。由于Cache始终是主存的副本,Cache一旦有错误可以从主
存得到纠正。
4) 硬件实现的代价 :写回法要比写直达法好。
对于写直达法:为了缩短写Cache流水段的时间,通常要设置一
个小容量的高速寄存器堆(后行写数缓冲站),每个存储单元要
有数据、地址和控制状态等3部分组成。每次写主存时,首先把
写主存的数据和地址写到高速寄存器堆中。每次读主存时,要首
先判断所读数据是否在这个高速寄存器堆中。
写回法不需要设置高速缓冲寄存器堆。
写Cache的两种方法
1) 不按写分配法 :在写Cache不命中时,只把所要写的字写入主存。
2) 按写分配法 :在写Cache不命中时,还把一个块从主存读入Cache。
目前,在写回法中采用按写分配法,在写直达法中采用不按写分配法。

12.Cache的预取算法

预取算法有如下几种:
1) 按需取 。当出现Cache不命中时,才把需要的一个块取到Cache中。
2) 恒预取 。无论Cache是否命中,都把下一块取到Cache中。
3) 不命中预取 。当出现Cache不命中,把本块和下一块都取到Cache
中。

第四章 IO设备

1.基本输入输出方式

1. 程序控制输入输出方式(Polling)

状态驱动输入输出方式、应答输入输出方式、查
询输入输出方式、条件驱动输入输出方式
程序控制输入输出方式的 4 个特点:
1) 何时对何设备进行输入输出操作受 CPU 控制
2) CPU 要通过指令对设备进行测试才能知道设备的工作状态。空闲、准备就绪、忙碌等
3) 数据的输入和输出都要经过 CPU
4) 用于连接低速外围设备,如终端、打印机等
2.中断输入输出方式(Interrupts)
定义 :当出现来自系统外部,机器内部,甚至处理机本身的任何例外的,或者虽然是事先安排的,但出现在现行程序的什么地方是事先不知道的事件时,CPU暂停执行现行程序,转去处理这些事件,等处理完成后再返回来继续执行原先的程序。
特点
1) CPU与外围设备能够并行工作。
2) 能够处理例外事件。
3) 数据的输入和输出都要经过CPU。
4) 用于连接低速外围设备。
3.直接存储器访问方式
直接存储器访问方式( DMA Direct Memory Access :主要用来连接高速外围设备。如磁盘存储器,磁带存储器、光盘辅助存储器,行式打印机等。
DMA方式具有如下特点:
1) 主存储器既可以被CPU访问,也可以被外围设备访问
2) 外围设备的访问请求直接发往主存储器,数据的传送过程不需要CPU的干预,不需要做保存现场和恢复现场等工作
3) DMA控制器复杂,需要设置数据寄存器、设备状态控制寄存器、主存地址寄存器、设备地址寄存器和数据交换个数计数器及控制逻辑等,
其数据交换过程全部在硬件控制下完成
4) 在DMA方式开始和结束时,需要处理机进行管理
5) CPU与外围设备并行工作,整个数据传送过程不需要CPU的干预
DMA输入设备的工作流程如下:
1) 从设备读一个字节到DMA控制器中的数据缓冲寄存器BD(DMA控制器中)
2) 若一个字没有装配满,则返回到上面;若校验出错,则发中断申请;
3) 若一个字已装配满,则将BD中的数据送主存数据寄存器。
4) 把主存地址寄存器BA( DMA控制器中)中的地址送主存地址寄存器,并将BA中的主存地址增值
5) 把DMA控制器内的数据交换个数计数器减1
6) 若交换个数为0,则DMA数据传送过程结束,否则回到上面

2.中断源的种类

1) 由外围设备引起的中断。 低速外围设备每传送一个字节申请一次中断;高速外围设备的前、后处理。
2) 由处理机本身产生的中断。 如算术溢出,除数为零,数据校验错等。
3) 由存储器产生的中断。 如地址越界、页面失效、访问存储器超时等。
4) 由控制器产生的中断。 如非法指令、堆栈溢出、时间片到、切换到特权态。
5) 由总线产生的中断。 输入输出总线出错,存储总线出错等。
6) 实时过程控制产生的中断。
7) 实时钟的定时中断。
8) 多处理机系统中,从其它处理机发送来的中断。
9) 程序调试过程中,由断点产生的中断。
10) 硬件故障中断。
11) 电源故障中断。

3.中断优先级

安排中断优先顺序主要由下列因素来决定:
中断源的急迫性。
设备的工作速度。
数据恢复的难易程度。
要求处理机提供的服务量。
中断优先级与中断服务顺序
要求:响应速度快,灵活性好。
做法:由硬件排队器决定中断优先级,通过软件设置中断屏蔽码改变中断服务顺序

4.中断系统的软硬件分配

有些功能必须用硬件实现,有的功能必须用软件实现,而大部分功能既
可以用硬件实现,也可以用软件实现。
恰当分配中断系统的软硬件功能,是中断系统最关键问题
1.主要考虑的两个因素:
中断响应时间 :中断响应时间是一个非常重要的指标。
灵活性 :硬件实现速度快,灵活性差;软件实现正好相反
2.中断处理过程
表示一般用硬件实现, 表示一般用软件实现, 表示可以用硬件实现, 也可以用软件实现
1) 现行指令结束,且没有更紧急的服务请求
2) 关CPU中断
3) 保存断点,主要保存PC中的内容
4) 撤消中断源的中断请求
5) 保存硬件现场,主要是PSW及SP等
6) 识别中断源
7) 改变设备的屏蔽状态
8) 进入中断服务程序入口
9) 保存软件现场,在中断服务程序中使用的通用寄存器等
10)开CPU中断,可以响应更高级别的中断请求
11)中断服务,执行中断服务程序
12)关CPU中断
13)恢复软件现场
14)恢复屏蔽状态
15)恢复硬件现场
16)开CPU中断
17)返回到中断点
3.中断响应时间
定义:从中断源向处理机发出中断服务请求开始,到处理机开始执行这个中断源的中断服务程序时为止,这一段时间称为中断响应时间。
影响中断响应时间的因素主要有4个:(前2个属于处理机设计,后2个属于中断系统)
1) 最长指令执行时间。
2) 处理其它更紧急的任务所用时间。
3) 从第一次关CPU中断到第一次开CPU中断所经历的时间。
4) 多个中断源同时请求中断服务,通过软件找到中断服务程序入口所用时间

5.中断屏蔽

设置中断屏蔽有三个用处:
1) 在中断优先级由硬件确定了的情况下,改变中断源的中断服务顺序。
2) 决定设备是否采用中断方式工作。
3) 在多处理机系统中,把外围设备的服务工作分配到不同的处理机中。
中断屏蔽的实现方法主要有两种:
1) 每级中断源设置一个中断屏蔽位。
2) 改变处理机优先级
解:
如果4个中断源都使用正常的中断屏蔽码,处理机的中断服务顺序将严格按照中断源的中断优先级进行。
如果改变中断屏蔽码,当D 1 、D 2 、D 3 和D 4 这4个中断源同时请求中断服务时,处理机实际为各个中断源服务的先后次序就会改变。
处理机响应的顺序是D 1 、D 2 、D 3 、D 4
实际服务的顺序是D 4 、D 3 、D 2 、D 1

6.通道的作用和功能

通道的主要功能:
Ø 接受CPU发来的指令,选择一台指定的外围设备与通道相连接。
Ø 执行CPU为通道组织的通道程序。
Ø 管理外围设备的有关地址。
Ø 管理主存缓冲区的地址。
Ø 控制外围设备与主存缓冲区之间数据交换的个数。
Ø 指定传送工作结束时要进行的操作。
Ø 检查外围设备的工作状态,是正常或故障。
Ø 在数据传输过程中完成必要的格式变换。

7.通道的工作过程

通道完成一次数据输入输出的过程分为三步:
在用户程序中使用 访管指令 进入管理程序,由CPU通过管理程序组织一个通道程序 ,并启动通道。
通道处理机执行通道程序,完成指定的数据输入输出工作。
通道程序结束后再次调用管理程序进行处理
每完成一次输入输出工作,CPU只需要两次调用管理程序。

8.通道流量分析 

通道流量:单位时间内能够传送的最大数据量。又称通道吞吐率,通道数据传输率等。
通道最大流量:通道在满负荷工作状态下的流量。
通道流量与连接在通道上的设备的数据传输率的关系如下:

 

 

1) 计算这个通道的实际流量和工作周期。
2) 如果这个字节多路通道的 最大流量正好等于通道实际流量 ,并假设数据传输率高的设备,其优先级也高。5 台设备在 0 时刻同时向通道发出第一次传送数据的请求,并在以后的时间里按照各自的数据传输率连续工作。画出通道分时为各台设备服务的时间图,并计算处理完各设备的第一次请求的时刻。
3) 从时间图中发现什么问题?如何解决?

 

 

 3) D5的第一次请求没有得到响应的原因分析:对所有设备的请求时间间隔取最小公倍数,在这一段时间内通道的流量是平衡的,但在任意一台设备的任意两次时间传送请求之间并不能保证都能得到通道的响应

可以采取下列方法:
方法一:增加通道的最大工作流量。 例如,把通道的工作流量增加到0.25MB/S(工作周期为4us)。
方法二:动态改变设备的优先级。 例如,在30 us 至70 us 之间临时提高设备D5 的优先级。
方法三:增加缓冲存储器。 例如,只要为设备D 5 增加一个数据缓冲寄存器,它的第一次请求可以在第85us处得到响应,第二次请求可以在第145us处得到响应。
如果通道在数据传送期间,选择设备需要9.8us,传送一个字节数据需要0.2us。某低速设备每隔500us发送一个字节请求,那么至多可连接几台这种低速设备?
对于如下A~F这6种高速设备,一次通信传送的字节数不少于1024个字节,若采用选择通道,则哪些设备可挂,哪些设备不能挂?其中,A~F设备每发一个字节数据传送请求的时间间隔如下表所示

5章 标量处理机 

1.指令的重叠执行方式

指令的三个阶段:
取指令 :按照指令计数器的内容访问主存储器,取出一条指令送到指令寄存器
指令分析 :对指令的操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数地址,并用这个地址读取操作数
指令执行 :根据操作码要求,完成规定的功能,将运算结果写到寄存器或主存储器
1.顺序执行方式

2.一次重叠执行方式

 3.二次重叠执行方式

采用二次重叠执行方式必须解决两个问题:
1) 有独立的取指令部件、指令分析部件和指令执行部件
• 把一个集中的指令控制器,分解成三个独立的控制器:存储控制器、指令控制器、运算控制器
2) 要解决访问主存储器的冲突问题
• 取指令、分析指令、执行指令都可能要访问存储器
解决访存冲突的方法:
(1)采用低位交叉存取方式:
这种方法不能根本解决冲突问题。
指令、读操作数、写结果。
(2)两个独立的存储器:独立的指令存储器和数据存储器。
如果再规定,执行指令所需要的操作数和执行结果只写到通用寄存器,则取指令、分析指令和执行指令就可以同时进行。
在许多高性能处理机中,有独立的指令Cache和数据Cache。这种结构被称为哈佛结构。
(3)采用先行控制技术
采用先行控制技术的关键是缓冲技术和预处理技术。
缓冲技术通常用在工作速度不固定的两个功能部件之间。设置缓冲栈的目的是用来以平滑功能部件之间的工作速度。
在采用了缓冲技术和预处理技术之后,运算器能够专心于数据的运算,从而大幅度提高程序的执行速度。

2.先行控制方式的原理

先行指令缓冲栈的作用:只要指令缓冲栈没有充满,就自动发出取指令的请求。

设置了指令缓冲栈,取指令的时间就可以忽略不计。一条指令的执行可分为2个过程,即指令分析指令执行

设置先行缓冲栈的目的:使指令分析器和指令执行部件能够独立工作。

先行操作栈:采用先进先出方式工作,由指令寄存器堆和控制逻辑组成

指令分析器对已经放在先行指令缓冲栈里的指令进行预处理,把处理之后的指令送入先行操作栈
处于指令分析器和运算控制器之间,使指令分析器和运算器能够各自独立工作

3.流水线技术

空间并行性: 设置多个独立的操作部件
时间并行性: 分时使用同一个部件的不同部分

4.流水线的分类

线性流水线与非线性流水线
流水线的各个流水段之间是否有反馈信号
线性流水线 (Linear Pipelining):每一个流水段都流过一次,而且仅流过一次
非线性流水线 (Nonlinear Pipelining):某些流水段之间有反馈回路或前馈回路。
按照流水线的级别来分
处理机级流水线,又称为指令流水线。
部件级流水线(操作流水线) 如浮点加法器流水线
宏流水线(Macro Pipelining)
        • 处理机之间的流水线称,每个处理机对同一个数据流的不同部分分
别进行处理。
单功能流水线与多功能流水线
单功能流水线(Unifunction Pipelining):只能完成一种固定功能的流水线。
多功能流水线(Multifunction Pipelining):流水线的各段通过不同连接实现不同功能
静态流水线与动态流水线
静态流水线 :同一段时间内,各个功能段只能按照一种方式连接,实现一种固定的功能。
动态流水线 :在同一段时间内,各段可以按照不同的方式连接,同时执行多种功能。

 

5.线性流水线的性能分析

 

6.非线性流水线的调度

启动距离:连续输入两个任务之间的时间间隔

流水线冲突:几个任务争用同一个流水段

禁止向量 预约表中每一行任意两个“×”之间距离的集合。上例中为 3,4,6)
冲突向量 C =(Cm C m-1 …C 2 C 1 )其中:m 是禁止向量中的最大值。如果i 在禁止向量中,则 C i 1 ,否则 C i 0 。上例中 C=(101100)
状态图:把初始冲突向量中的“0”通过逻辑右移移出后得到的结果与初始冲突向量进行与运算,得到一个状态
例5.3: 一条4功能段的非线性流水线,每个功能段的延迟时间都相等,它的预约表如下:
(1)写出流水线的禁止向量和初始冲突向量。
(2)画出调度流水线的状态图。
(3)求最小启动循环和最小平均启动距离。
(4)求平均启动距离最小的恒定循环。
(1)禁止向量为: (2,4,6)
初始冲突向量:S = 101010
(2)构造状态图
S逻辑右移2、4、6位时,不作任何处理, 逻辑右移1、3、5和大于等于7时:
S右移1位之后:010101∨101010= 111111
S右移3位之后:000101∨101010= 101111
S右移5位之后:000001∨101010= 101011
S右移7位或大于7位后:还原到它本身。
101111右移5位之后:000001∨101010= 101011
101011右移3位之后:000101∨101010= 101111
101011右移5位之后:000001∨101010= 101011
简单循环:状态图中各种冲突向量只经过一次的启动循环。
(3) 最小的启动循环为(1,7)、(5,3)和(3,5),平均启动距离为 4。
(4) 启动距离最小的恒定循环为(5)

 

7.全局相关

由条件转移或程序中断引起的相关成为全局相关
处理好条件转移和中断的关键问题有两个:
要确保流水线能够正常工作
减少因“断流”引起的吞吐率和效率的下降
条件分支对流水线性能的影响
假设条件转移指令在一般程序中所占的比例为p,转移成功的概率为q。
n条指令的总的执行时间是:

有条件转移影响的流水线吞吐率为:

有条件转移影响的流水线最大吞吐率为:

条件分支的处理方法

(1)延迟转移技术和指令取消技术

(2)动态分支预测技术

1) 在指令Cache中记录转移历史信息

在指令Cache中专门设置一个字段,称为“转移历史表”。
在执行转移指令时,把转移成功或不成功的信息记录在这个表中。
当下次再执行到这条指令时,转移预测逻辑根据“转移历史表”中记录的信息预测转移成功或不成功。
2)设置转移目标地址缓冲栈
用高速缓冲栈保存最近k条转移指令的“转移历史表”和转移目标地址
当前指令地址与转移目标缓冲栈中的所有转移指令地址进行比较;如果发现有相等的,则根据所记录的历史信息预测本次转移方向。
根据某种规则修改“转移历史表”。
3)设置转移目标指令缓冲栈
把上面方法中的“转移目标地址”字段改为存放转移目标地址之后的n条指令。
预测转移方向的规则和修改“转移历史表”的规则与上面的方法相同。
(3)静态分支预测技术
转移预测的方向是确定的,或者预测转移不成功,或者预测转移成功,
在程序实际执行过程中,转移预测的方向不能改变。
静态转移预测可以只用软件实现,也可用硬件来实现,还可以在转移的两个方向上都预取指令。

(4)提前形成条件码
必要性:对提高流水线的性能非常有效
可能性: 可在运算开始或中间产生条件码
对于乘除法,两个源操作数的符号相同结果为正,符号相反结果为负
对于乘法,有一个操作数为0,则乘积为0
被除数为0,商为0; 除数为0,除法结果溢出
同号加或异号减,结果符号与第一操作数相同
异号加或同号减,结果的符号与绝对值大的操作数相同
溢出及是否为0可以通过一个比较器提前产生

第6章 向量处理机

1.向量处理机的结构

存储器-存储器结构: 利用几个独立的存储器模块来支持相对独立的数据并发访问,从而达到所要求的存储器带宽
多个独立的存储器模块并行工作
处理机结构简单
对存储系统的访问速度要求很高
寄存器-寄存器结构: 构造一个具有所要求带宽的高速中间存储器,并实现该高速中间存储器与主存储器之间的快速数据交换
运算通过向量寄存器进行
需要大量高速寄存器
对存储系统访问速度的要求降低

2.向量处理方式

横向处理方式 ,又称为水平处理方式,横向加工方式等。向量计算是按行的方式从左至右横向地进行。
纵向处理方式 ,又称为垂直处理方式,纵向加工方式等。向量计算是按列的方式自上而下纵向地进行。

纵横处理方式 ,又称为分组处理方式,纵横向加工方式等。横向处理和纵向处理相结合的方式。

 用于寄存器-寄存器结构的向量处理机中,向量寄存器的长度是有限的 当向量长度N大于向量寄存器长度n时,需要分组处理。 分组方法:

 

3.向量链接技术

向量运算中的数据相关和功能部件冲突(采用顺序发射顺序完成方式)
(1)写读数据相关。
(2)读读数据相关,或向量寄存器冲突。
(3)运算部件冲突。

第1、2条指令没有数据相关和功能部件冲突,可以同时开始执行。
第3条指令与第1、2条指令均存在写读数据相关,可以链接执行。

 

4.向量循环开采技术

当向量的长度大于向量寄存器的长度时 ,必须把长向量分成长度固定的段,采用循环结构处理这个长向量,这种技术称为向量循环开采技 ,也称为向量分段开采技术。

5.向量处理机的性能评价

1. 一条向量指令处理时间

 

2. 一组向量指令的处理时间
一组向量操作的执行时间主要取决于
向量长度
向量操作之间是否存在流水线功能部件的冲突
数据的相关性
将几条能在一个时钟周期内一起开始执行的向量指令称为一个编队
同一个编队中的向量指令一定不存在流水部件的冲突和数据相关性
如果存在部件冲突和数据相关,需要把它们分在不同的编队中

 

 3. 分段时一组向量指令的总执行时间

其中, X 和Y 是向量,最初保存在主存中, a 是标量,已经存放在寄存器F0中。向量指令序列如下
1:LV V1,Rx ;取向量x
2:MULTSV V2,F0,V1 ;向量和标量相乘
3:LV V3,Ry ;取向量Y
4:ADDV V4,V2,V3 ;加法
5:SV Ry,V4 ;存结果
当不采用向量链接技术时,将上述5条向量指令分成4个编队
1:LV V1,Rx ;取向量x
2:MULTSV V2,F0,V1 ;向量和标量相乘
3:LV V3,Ry ;取向量Y
4:ADDV V4,V2,V3 ;加法
5:SV Ry,V4 ;存结果
则有

若采用向量链接技术,那么上述5条向量指令的编队结果如下(m = 3 )
第一编队: LV V1, RX; MULTFV V2, F0, V1;
第二编队: LV V3, Ry; ADDV V4, V2, V3;
第三编队: SV V4, Ry;
前两个编队中分别是取数和乘法指令链接以及取数和加法指令链接,可知
第一编队启动需要 12+7=19 个时钟周期
第二编队启动需要 12+6=18 个时钟周期
第三编队启动需要 12 个时钟周期

6.最大性能R_{\infty }和半性能向量长度n_{1/2}

 

半性能向量长度n_{1/2} 
半性能向量长度 n_{1/2} 是指向量处理机的性能为其最大性能的一半所需要的向量长度
评价向量流水线的建立时间对性能影响的重要参数
向量长度临界值
向量长度临界值n_{\nu } 是指:对于某一计算任务而言,向量方式的处理速度优于标量串行方式处理速度时所需要的最小向量长度

第7章 互连网络

1.互连网络的作用

互连网络是一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统中节点之间的相互连接。
互连网络已成为并行处理系统的核心组成部分
互连网络对整个计算机系统的性能价格比有着决定性的影响

2.互连函数

为反映互连网络的连接特性,每种互连网络可用一组互连函数来描述
如果将互连网络的N 个输入端和 N 个输出端分别用整数 0 1 ,N 1来表示,则互连函数表示相互连接的输出端号和输入端号之间的一一对应关系,即在互连函数fx 的作用下,输入端x 连接到输出端fx
当互连网络用来实现处理器与处理器之间的数据变换时,互连函数反映了网络输入数组和输出数组之间对应的置换关系或排列关系,有时也称为置换函数或排列函数

恒等函数:相同编号的输入端与输出端一一对应互连所实现的置换

交换函数 :实现二进制地址编码中第k位互反的输入端与输出端之间的连接
均匀洗牌函数(shuffle) :将输入端分成数目相等的两半,前一半和后一半按类似均匀混洗扑克牌的方式交叉地连接到输出端(输出端相当于混洗的结果,也称为混洗函数或混洗置换 )
子洗牌 (子混洗,subshuffle):即把输入端的二进制编号中的低k位循环左移一位
超洗牌 (超混洗,supershuffle):即把输入端的二进制编号中的高k位循环左移一位

蝶式互连函数 (Butterfly):把输入端的二进制编号的最高位与最低位互换位置,便得到了输出端的编号。
子蝶式 (subbutterfly):把输入端的二进制编号的低k 位中的最高位与最低位互换。

 

超蝶式 (superbutterfly):把输入端的二进制编号的高k 位中的最高位与最低位互换。
反位序函数 (Bit Reversal):将输入端二进制编号的位序颠倒过来求得相应输出端的编号。

子反位序 :即把输入端的二进制编号的低k 位中各位的次序颠倒过来

超反位序:即把输入端的二进制编号的高k位中各位的次序颠倒过来。

移数函数 :将各输入端都错开一定的位置(模N )后连到输出端。
PM2I函数 ​P和M 分别表示加和减, 2I 表示2^{i}
该函数又称为“加减2 i ”函数。
一种移数函数,将各输入端都错开一定的位置(模N)后连到输出端。
互连函数

3.静态互连网络

在各结点之间有固定的连接通路,在运行过程中不能改变的网络结构。
一般静态互连网络 不能 实现任意结点到结点之间的互连。
一维的有线性阵列结构;二维的有环形、星形、树形、网格形等;三维的有立方体等;三维以上的有超立方体等。

4.动态互连网络

总线网络
由一组导线和插座构成,经常被用来实现计算机系统中处理机模块、存储模块和外围设备等之间的互连。

 交叉开关网络

 多级互连网络

 Omega网络(多级混洗交换网络)

一个8×8的Omega网络
每级由4个4功能的2×2开关构成
级间互连采用均匀洗牌连接方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值