计算机系统结构练习题+笔记
习题
第二章







第三章



一个虚拟存储系统最多有64个用户,每个用户程序最大不超过8192页,每页4KB,主存储器的容量为64MB。为了加快地址变换过程,采用快慢表结构,快表的容量为64个存储字,快表地址经散列函数交换得到。为避免散列冲突,需要一个相等比较器。
(1)写出虚拟地址的格式,标出各字段的名称和长度。
(2)写出主存地址的格式,标出各字段的名称和长度。
(3)散列变换部件的输入位数和输出位数各为多少。
(4)相等比较器的位数是多少。
(5)写出快表每个存储字的格式,标出各字段的名称和长度。

散列变换部件的输入是多用户虚页号Pv(用户号+虚页号)
散列变换部件的输出是快表地址Ah
相等比较器的位数是多用户虚页号Pv(用户号+虚页号)
快表字段多用户虚页号(用户号+虚页号)+实页号

没写完,回头写














第四章
练 习
在程序查询的输入输出方式的系统中,有三个不同的外围设备。假定一个查询操作需要100个时钟周期,CPU的时钟频率为50MHz。求CPU在以下三种情况下为I/O查询所花费的时间比率,假定进行足够的查询以避免数据丢失。
(1) 鼠标器必须在每秒进行30次查询。
(2) 软盘与CPU的数据传输以16位的单位进行,数据传输速率为50KB/S。
(3) 硬盘传输数据以32位的字为单位,传输速率为2MB/S。







下面又是一道题(题目没记,大致题目就是中断优先级1234,开始32来,之后4来,1再来...)





第五章










期末复习


-1的移码怎么算?
-1=1001假如4位,2的3次幂=8
-1+8=7
7变成二进制是0111
所以-1的移码是0111
4的移码怎么算
4=0100假如4位,2的(4-1)次=8
4+8=12
12变成二进制是1100
所以4的移码是1100
(补充)
负数的补码=原码取反+1
-69的补码就是,先算+69的二进制数01000101,每位取反10111010,最后+1=101111011
浮点数的舍入处理,p+g只要p位👇
恒舍法(截断法):只要前p位
恒置法(恒指r/2):强制最后一位(最低位)是1,不是计组学的(隐藏最高位的1)
下舍上入法(4舍5入、0舍1入法):被舍弃的部分最高位是0,不变(不进位);是1,进位。
R*舍入法(书上是下舍上入+恒置1)

寻址操作:寻找操作数和它们的地址的方式
我们这个指令肯定要先有指令,所以我们先编址;编址之后就可以找了,我们叫寻址。哦,还有定位。
堆栈没有零地址
寻址方式👇

寄存器的寻址:有一地址、二地址、三地址、寄存器和内存
面向主存储器寻址:有立即数寻址、间接寻址、变址寻址、基址寻址、相对寻址、自动变址
立即数寻址咋回事呢?直接指出操作数在内存的地址

间接寻址呢?指出操作数地址的地址

变址寻址呢?有效地址=变址寄存器内容+指令格式的形式地址
基址寻址呢?有效地址=基址寄存器内容+指令格式的形式地址

相对寻址呢?有效地址=PC的内容+指令格式中的地址

自动变址??支持数组运算,每访问一次下标自动增加或减少
这个定位是怎么回事呢?就是把逻辑地址转换成物理地址。有直接定位(还没把程序装进主存储器,物理位置就确定了)、静态定位(装的过程随机进行地址变换)、动态定位(当访问到响应指令或数据时才进行地址变换)。
前面咱们一直提指令,这个指令一般由两部分组成:操作码OPC和地址码A
我们的操作码需要优化,有三种操作码编码方式:固定长度,Huffman编码,扩展编码
Huffman编码我们要学会计算操作码的最短平均长度、固定长编码的信息冗余量
例题:基本就是让你设计n种操作码,固定码长你可以算出来log以2为底n的对数,可能+1,正好就不加。然后给你频率,各种指令频率I1~In,你计算一下采用Huffman编码的操作码平均长度,计算固定长操作码和Huffman操作码的信息冗余量
给了指令概率,我们就排序吧,构造一棵哈夫曼树。
Huffman编码法平均长度为H=所有指令:概率*长度)的和
而操作码的最短平均长度是有一个公式的:
而且操作码最短平均长度肯定比Huffman编码平均长度要短
信息冗余量我们一般用字母R来表示:例题我没抄
H是最短平均长度=1.95
1.97是Huffman算出来的平均长度
[log以2为底7(题中n=7)的对数]是固定长度算出来的平均长度
然后是扩展编码法,比如1-2-3-5扩展编码法,一般这种题先指令设计好,然后H还是概率*长度=平均长度;信息冗余量R还是1-(最短的H/你算出来的平均长度H)
然后指令是包括两部分,一个操作码,一个地址码,刚刚编码编的是操作码。地址码可以按照个数划分:零地址、一地址、二地址、三地址
我们有三种方法来缩短地址码长度:间接寻址方式、变址寻址方式、寄存器间接寻址方式
如果你想要设计一个指令系统,要知道通用计算机一般有5类基本指令:数据传送类指令、运算类指令、程序控制指令、输入输出指令、处理机控制和调试指令
了解精简指令集系统RISC(从复杂指令系统计算机CISC到精简指令集系统计算机RISC
CISC有问题:比如28定理,还有技术上的进步更适合RISC、软硬件功能分配
减少CPI是RISC的精华

实现RISC的关键技术:延迟转移技术、指令取消技术、重叠寄存器窗口技术、流水线调整技术


16右上角的4是怎么来的?
e=+000100=4
rm=16;rm是位数的基值
接下来是存储系统!!!!终于到第三章了!!
前面我跳了,就是Cache和虚拟存储系统
我们看存储系统的好坏,有几个指标:容量、单位容量平均价格、命中率H、等效访问周期T=HT1+(1-H)T2、访问效率e=T1/T
先讲虚拟存储:这个设计到虚拟存储器工作原理,地址映像/变换,如何加快内部地址变换,页面替换算法,如何提高主存命中率
映像就是虚地址和实地址如何对应
变换就是:多用户虚地址变换成主存实地址(内部地址变换)、磁盘存储器地址(外部地址变换)
内部地址变换👇

外部地址变换👇

地址映像、地址变换👇

地址映像:把虚拟地址空间影响到主存地址空间
地址变换:在程序运行时,把虚地址变换成主存实地址或磁盘存储器地址
三种虚拟存储器:段式虚拟存储器、页式虚拟存储器、段页式虚拟存储器
页表级数计算公式👇





第三章:cache、虚拟存储各种页面替换;cache加速比,页面命中率;虚拟地址和主存地址的格式,标出长度和名称;虚地址:用户号、虚页号、页内地址;主存实地址:主存实页号、页内地址;地址映像和变换方法:全相联、直接、组相联
第四章:输入输出系统;程序控制、中断、DMA;中断:给你中断源,优先级(有时候有屏蔽码),算一下请求处理的图;处理机与外部设备连接方式(想一想那个图,下面这个图,还有下面第三个图):直接连接、通道处理机、输入输出处理机;通道的3个种类(下面第二个图);通道流量分析感觉不能考,有点像计网说的那个流量(计网有一个知识是流量控制和拥塞处理,水龙头,我一科也没复习,感觉有的极限了);不同种通道可能会有计算题,算流量、工作周期时间这种。
直接连和通道👇

三种通道👇

输入输出处理机连接👇

还是这种快速看一眼,不细看,来得快一点,不然卡死了。可惜知识不进脑,但是慢慢看也不进脑,这样起码还能快点。
接下来是第五章!!!
第五章标量处理机:流水线处理机、超流水线处理机和超标量处理机(这仨是这章的主要内容);时间并行性和空间并行性俩概念;指令重叠执行和流水线性能分析;重叠:顺序、一次重叠、二次重叠;时空图(一般用来算Tk也就是所用时间);指标:吞吐率(TP=n/Tk,任务数n除以完成n个任务所用的时间)、最大吞吐率(吞吐率max)为1/derta t、加速比S、效率E;刚刚说的这个肯定有计算;非流水线:有前馈或反馈;超标量?超流水线?超标量超流水线?超标量是每个时钟周期可并发多条独立指令,配置多个功能部件。超流水线是在一个时钟周期内分段,在一个时钟周期内一个部件使用多次;流水线的分类:有单功能多功能的,能完成几种功能运算。静态动态的,是看同一时间内,只能用一种功能还是多种功能同时。标量or向量?一般数据还是矢量数据。流水线or非流水线?有无反馈。




超标量👇

超流水线👇

超标量超流水线👇

第三章 存储系统
本章主要介绍两种存储系统:
一种是由Cache(高速缓存存储器/缓存)和主存储器(内存)构成的Cache存储系统;
另一种是由主存储器和磁盘存储器构成的虚拟存储系统。
Cache存储系统的主要目标是为了提高存储器的速度;
而虚拟存储系统的只要目标是为了增加存储器的存储容量。
Cache存储系统不存在进程切换;而虚拟存储系统会切换到其他进程。
从应用程序员看,这个存储器的速度接近速度最快的那个存储器,存储容量与容量最大的那个存储器相等或接近,单位容量的价格接近最便宜的那个存储器。
很明显,接下来要学的是:
Cache替换算法;(Cache)
页面替换算法;(虚拟)
速度:寄存器>buffer缓冲栈>cache>主存>磁盘
虚拟存储器(3种)
地址映象是把虚拟地址空间映象到主存地址空间。
地址变换是在程序被装入主存储器之后,在实际运行时,把用户虚地址变换成主存实地址(内部地址变换)或磁盘存储器地址(外部地址变换)。
- 段式
- 页式
- 段页式
加快内部地址变换的方法
PS.什么是内部地址映像和变换?
把虚拟地址空间映象到主存物理地址空间、以及把虚拟地址变换成主存实地址的方法。
PS.什么是外部地址变换?
找到辅存(磁盘存储器)的实地址,并且把需要访问的那一页或那一个程序段调入到主存储器中。
多级页表
一个公式(计算页表的级数g)(重点)
- 目录表
- 快慢表
- 散列函数
目录表的基本思想:压缩页表的存储容量,用一个容量比较小的高速存储器来存放页表,从而加快查表的速度。
由于程序在执行过程中具有局限性,因此,对页表中各存储字的访问并不是完全随机的。也就是说,在一段时间内,对页表的访问只是局限在少数几个存储字内。慢表是一个全表,快表是常用的几个。快表采用相联方式访问,慢表用地址访问。
散列函数的目的:把相联访问变成地址访问。
散列变换:实现快表按地址访问。(多对1)
避免散列冲突:相等比较器。
页面替换算法
- 随机算法RAND
- 先进先出FIFO
- 最近最少使用算法LRU
- 最久没有使用算法LFU
- 最优替换算法OPT(选择将来最久不被访问的页面替换,最好让程序先执行一遍,记录页地址流顺序)
命中率的计算
影响命中率因素

页面大小的选择

页面调度方法

高速缓冲存储器Cache
Cache全部用硬件来调度,因此它不仅对应用程序员是透明的,而且对系统程序员也是透明的。
| 相邻层之间的数据传送单位 | |
| CPU与高速缓存之间 | 字 |
| 高速缓存与主存之间 | 块 |
| 主存与硬盘之间 | 页面 |
| 磁盘与磁带之间 | 段 |
Cache与虚拟存储系统区别👇
- 信息交换单位不同,一个块,一个是页
- 速度不同:主存是磁盘的
倍,cache是主存的3到5倍。
- CPU与Cache及主存均有直接通路(主存可以不通过Cache直接装CPU)
- cache-主存:硬件实现。主-辅存:软件。
- Cache-主对应用程序员和系统程序员是透明的。主-辅对应用程序员透明。
- 还有就是不命中时的处理关系:Cache是等待主存储器、直接访存;虚拟存储器是任务/进程切换。
地址映象与变换方法👇
在Cache中,地址映象是指把主存地址空间映象到Cache地址空间,具体地说,就是把存放在主存中的程序按照某种规则装入到Cache中,并建立主存地址与Cache地址之间的对应关系。而地址变换则是指当程序已经装入到Cache之后,在实际运行过程中,把主存地址如何变换成Cache地址。
- 全相联映像及其变换
- 直接映像及其变换
- 组相联映像及其变换
全相联👇
主存中任意一块可以映象到Cache中任意一块的位置上。
映像关系有
种(Cache块容量
,主存块容量
)
目录表每一个存储字由三部分组成:主存块号、Cache块号、一个有效位。


直接映像👇




组相联(一种折中的方式)👇
组与组间采用直接相联;组内采用全相联。



Cache替换算法及其实现
直接映象及变换方式实际上不需要替换算法,这是因为主存中的一块只能转入到Cache的唯一一个块中。如果Cache的这一块是空的,则可以装入,如果Cache的这一块已经被占用,唯一的办法是把它替换出去。
在全相联映象及变换方式中,由于主存中的一块可以装入到Cache中任意一块的位置上,因此,它的替换算法也就最复杂。
在组相联和位选择组相联映象及地址变换方式中,需要从Cache同一组内的几个块中选择一块替换出去。
1.轮换法(类似FIFO,通常用于组相联映象及地址变换方式中。)P187
- 每块一个计数器(那个块的计数器最大,说明时间最久)

- 每组一个计数器

2.LFU算法(最久没有使用算法)

LFU与前两种轮换法比,控制逻辑更复杂,增加了判断和处理命中的情况。因此,LFU算法的命中率是比较高的。
Cache性能分析
Cache的加速比

Cache命中率与容量的关系:Cache命中率随它的容量的增加而提高。当Cache容量怎加到无穷大时,命中率可望达到100%,但是,这实际上是做不到的。
Cache命中率与块大小的关系:
Cache命中率与组数的关系:随着组数的增加,Cache的命中率要降低。当组数不太大时,如512组以下,命中率降低的少,当组数超过一定数量时,命中率下降的快。
Cache的一致性(由于主存和Cache都可直接装CPU)
Cache更新算法有两种:写直达法和写回法。
写直达法又称为写通过法,写回法又称为抵触修改法。
写回法是指CPU在执行写操作时,被写数据只写入Cache,不写入主存。仅当需要替换时,才把已经修改过的Cache块写回主存。
写直达法是指CPU在执行写操作时,必须把数据同时写入Cache和主存。
优缺点:
1.可靠性:写直达法优于写回法。
2.与主存的通信量:一般情况下,写回法少于写直达法。
据统计,在访问存储器的操作中,写操作一般要占 10%到 34%。这里假设为 20%,Cache 的命中率为 99%。每块为 4 个字,主存的字长为一个字。当 Cache 发生块替换时,有 30%的块需要写回到主存,其余的块因为没有被修改过而不必写回主存。对于写直达法,写主存次数占总访存次数的 20%。而对于写回法,写主存次数占总访存次数的比例可以这样计算:(1 - 99%)×30%×4 = 1.2%。因此,与主存的通信量,写回法仅是写直达法的十几分之一。
3.控制的复杂性:写直达法比写回法简单。
4.硬件实现的代价:写回法要比写直达好。因为在写直达中,通常要采用一个高速小容量的缓冲存储器。
Cache的预取算法
预期能大幅度提高Cache的命中率。
预期算法有下面几种:
- 按需取
- 恒预取
- 不命中预取
采用不命中预取能使 Cache 的不命中率降低 75%~85%,而采用不命中预取能使 Cache 的不命中率降低 30%~40%。但是,恒预取所增加的 Cache 与主存之间的通信量要比不命中预取大很多。
总结:本章讲了存储系统。涉及到内存地址和主存实地址的相互转换(内部/外部地址变换///地址映像和地址变换比如页式,段式,段页式)。讲了常用的页面替换算法。然后还有高速缓存cache...
第四章 输入输出系统
在计算机系统中,通常把处理机和主存储器之外的部分统称为输入输出系统,它包括输入输出设备,输入输出接口和输入输出软件。(总线属于输入输出系统)
输入输出系统的特点集中反映在异步性、实时性和与设备无关性三个基本要求上。
1.异步性:输入输出设备的工作在很大程度上独立于处理机之外,通常不使用统一的中央时钟,各个设备按照自己的时钟工作,但又要在某些时刻接受处理机的控制。
2.实时性
3.与设备无关性
根据各种外围设备的不同特点处理好这三方面的关系,就成为输入输出系统组织的基本内容(输入输出系统的组织方式)。具体地说,针对异步法,采用自治控制的方法;针对实时性,采用层次结构的方法;针对与设备无关性,采用分类处理的方法。
自治控制:在一般计算机系统中,输入输出系统是一个独立于处理机之外的自治系统。
层次结构:在外围设备比较多的情况下,输入输出系统一般要采用层次结构来进行组织。

对于工作速度、工作方式和工作性质不同的外围设备,通常要采用不同的输入输出方式。目前常用的基本输入输出设备方式有如下三种:
1.程序控制输入输出方式
处理机轮询方式分时访问多台外围设备。
CPU隔一段时间就来问外围设备:你有事吗?


2.中断输入输出方式
它的特点:CPU与外围设备能够并行工作;能够处理例外事件;数据的输入和输出都要经过CPU;一般用于连接低速外围设备。
CPU说:有事你说话。
3.直接存储器访问(DMA)方式

DMA方式特点:
1.主存储器既可以被CPU访问,也可以被外围设备访问。
2.由于在外围设备与主存储器直接传送数据不需要执行程序,也不动用CPU中的数据寄存器和指令计数器等,因此,不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。
3.在DMA控制器中,除了需要设置数据缓冲寄存器、设备状态寄存器或控制寄存器之外,还要设置主存储器地址寄存器、设备地址寄存器和数据交换个数计数器。
4.不需要CPU的干预。
目前使用的DMA方式有三种:
1.周期窃取方式:只是借用了一个CPU的周期来完成DMA流程。因此,其工作速度是极快的。而且它的硬件结构很简单,比较容易实现。缺点是数据输入或输出过程中实际上占用了CPU的时间。
2.直接存取方式:(不用CPU)DMA控制器的数据传送申请不是发向CPU,而是直接发往主存储器。它的优点与缺点正好和周期窃取方式相反。
3.数据块传送方式:在设备控制器中设置一个比较大的数据缓冲存储器,设备控制器与主存储器之间的数据交换以数据块为单位,并采用程序中断方式进行。
中断系统
👆需要硬件和软件共同来实现
中断源的组织
(来个中断,我们知道了它的种类,第一时间就可以找到它。)
引起中断的各种事件称为中断源。中断系统的复杂性实际上是由中断源的多样性引起的。中断源可以来自系统外部,也可以来自机器内部,甚至处理机本身。中断可以是硬件引起的,也可以是软件引起的。把各种各样的中断源分类、分级组织好,是设计中断系统时首先要做好的一件事情。
1.中断源的种类
- 由外围设备引起的中断
- 由处理机产生的中断
- 由存储器产生的中断
- 由控制器产生的中断
- 由总线产生的中断
- 实时过程控制产生的中断
- 实时钟的定时中断
- 多处理机系统中,从其他处理机发送来的中断
- 程序调试过程中,事先设置的断点
- 硬件故障中断
- 电源故障中断
2.中断源的分类组织
为了在响应中断后处理机能够尽快找到中断入口,必须对这些中断源进行分类。通常根据中断事件的紧迫程度、中断源工作速度的高低、中断源的性质等进行分类。对每一类中断源分配一个硬件的中断入口,在进入这个入口之后,再通过软件找到具体的中断源。
IBM公司的机器通常把中断源分成6类:
- 重新启动中断
- 机器检验出错中断。当硬件或软件故障时产生。
- 程序性错误引起的中断
- 访问管理程序错误
- 外部事件中断
- 输入输出中断
3.中断优先级
中断源的中断请求一般是随机的,在中断源比较多的情况下,很可能同时发生多个中断请求。CPU必须安排一个响应和处理中断的优先顺序。
中断优先级由下列因素决定:
1.中断源的急迫性
2.设备的工作速度
3.数据恢复的难易程度
4.要求处理机提供的服务量
中断服务顺序和中断优先级不是一个概念,而且前者时基于软件实现的,后者是基于硬件实现的。
中断系统的软硬件功能分配
从中断源发出的中断服务请求,到这个中断服务请求被处理机响应并全部处理完成,其过程是相当复杂的。其中,有些功能必须用硬件来实现,有的功能必须用软件来实现,而中间的大部分功能既可以用硬件实现,也可以用软件实现。因此,在设计一台计算机的中断系统时,如何恰当地分配中断系统的软件与硬件功能,是设计一个好的中断系统最关键的一个问题。
中断系统中软件和硬件的功能分配主要考虑2个因素:
1.中断响应时间
2.灵活性:一般情况下,用硬件实现速度快,但灵活性差。用软件实现正好相反,灵活性好,但速度低。
中断处理过程

第一次CPU中断是为了保护现场
第二次是为了恢复现场
中断响应时间
从一个中断源向处理机发出中断服务请求开始,到处理机实际开始执行这个中断源的中断服务程序为止,这一段时间称为中断响应时间。
影响中断响应时间的因素主要有四个:
1.最长指令执行时间
2.在一条指令执行完成后,处理其他更紧急的任务所用时间
3.从第一次“关CPU中断”到第一次“开CPU中断”所经历的时间
4.多个中断源同时请求中断服务时,通过软件找到相关中断源的中断服务程序入口所经历的时间
中断现场的保存和恢复
中断现场的保存和恢复分别是中断处理机过程开始和结束时必须执行的步骤。现场信息可分为三类:
第一类,主要指程序计数器PC中的内容,它必须由硬件来完成保存。
第二类,是指记录当前程序状态的有关信息,包括处理机状态字、堆栈指针、基址寄存器、中断屏蔽码等。

第三类,是指在中断服务程序中将要被破坏的通用寄存器中内容。对于软件现场,大多数机器都采用软件来保存和恢复,即在中断服务程序的开始保存在中断服务程序中将要用到的那些通用寄存器中的内容,在中断服务程序结束前恢复那些通用寄存器中的内容。
中断屏蔽
设置中断屏蔽由如下三个用处:
- 在中断优先级已经由硬件确定了的情况下,改变中断源的中断服务顺序。
- 决定设备是否采用中断方式工作。(前面介绍了外围设备由三种基本的输入输出方式,可以让某些外围设备不采用中断方式工作,而采用DMA方式工作)
- 在多处理机系统中,可以通过中断屏蔽,把对外围设备的输入输出服务工作分配到各个处理机中。
通道处理机
把外围设备的管理工作从CPU中分离出来,普遍采用通道处理机技术。
通道的作用和功能
如果仅仅采用前面说的程序控制、中断和DMA这三种基本的输入输出方式来管理外围设备,会引起如下两个问题:
1.所有外围设备的输入输出工作全部都要由CPU来承担,CPU的输入输出负担都很重,不能专心于用户程序的计算。
低速外围设备,每传送一个字符都要由CPU通过执行一段程序来完成,而告诉外围设备虽然使用DMA方式减少了CPU的干预,但初始化(如DMA)等工作仍然需要CPU用程序来完成。
2.大型计算机系统中的外围设备台数虽然很多,但是一般并不同时工作。
采用DMA方式传送数据,一个问题:硬件的利用率。
为了使CPU摆脱繁重的输入输出负担和共享输入输出接口,在大型计算机系统中采用通道处理机是一种比较好的选择。
一般来说,通道的功能有:
1.接受CPU发来的输入输出指令,根据指令要求选择一台指定的外围设备于通道相连接。
2.执行CPU为通道组织的通道程序。
3.给出外围设备的有关地址。
4.给出主存缓冲区的首地址。
5.控制外围设备与主存缓冲区之间数据交换的个数。
6.指定传送工作结束时要进行的操作。
7.检查外围设备的工作状态,是正常或故障。
8.在数据传输过程中完成必要的格式变换。
(以前这些工作都是CPU来做,现在由通道来做,这样CPU就可以从输入输出中脱离出来。)
通道的工作过程(3步)
1.在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。

2.通道处理机执行CPU为它组织的通道程序,完成指定的数据输入输出工作。
3.通道程序结束后向CPU发中断请求,CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对输入输出中断请求进行处理。
这样,每完成一次输入输出工作,CPU只需要两次调用管理程序,大大减少了对用户程序的打扰。
通道种类(3种)
字节多路通道、选择通道、数组多路通道。

字节多路通道(慢,无法为高速设备服务)
主要为多台低速或中速的外围设备服务。通常采用分时方式工作。
传输一个字节。
选择通道(快、一旦占了就要做完、别的事都要等,通道利用率低)
高速外围设备必须设置专门的通道在一段时间内单独为一台外围设备服务。一旦选中某一设备,通道就进入“忙”状态,直到该设备的数据传输工作全部结束为止。
数组多路通道(不会一直占着,会交叉着传)
把上面的字节多路通道和选择通道的特性结合起来就成为了数组多路通道。
从磁盘存储器读出一个文件的过程为例,分为三步:
1.找定位
2.找扇区
3.读出数据
像选择通道那样,一个高速通道始终职位一台高速外围设备服务并没有能够充分发挥高速通道的数据传输潜力,数组多路通道正是为了解决这一问题而提出来的。
通道中断数据传输过程
字节多路通道

选择通道

数组多路通道

通道的流量控制


输入输出处理机
能够独立承担输入输出工作的专用处理机(所以,输入输出处理机也可以存和执行指令,有CPU的功能,相当于小型CPU)
输入输出处理机作用
如果仍采用通道处理机,就会存在如下问题:
1.每调用一次输入输出的前处理和后处理仍然要CPU来完成,需要两次用中断方式中断CPU的现行程序。
2.外围设备或通道处理机出现异常时,通道处理机本身不能处理,要通过中断方式请求CPU来处理。
3.对所传送数据的格式转换、码制转换、数据块整体的正确性检验等工作仍然要CPU来实现。
4.文件的管理、设备的管理等操作系统上的工作,通道处理机本身无能为力,需要CPU来实现。

而输入输出处理机除了能够完成通道处理机的全部功能之外,还具有以下功能:
1.码制转换
2.数据校验和校正
3.故障处理
4.文件管理
5.诊断和显示系统状态
6.处理人机对话
7.连接网络或远程终端
除了以上工作,输入输出处理机还可以根据需要完成分配给它的其他任务,如数据库和知识库的管理工作等。
输入输出处理机除了具有数据的输入输出功能之外,还具有运算功能和程序控制等功能。不仅能够执行输入输出指令,还能够执行算术逻辑指令和程序控制指令,就像一个一般的处理机那样。
总之,输入输出处理机通常是一台独立的处理机,具有一定的运算功能,可以承担一般外围处理机的输入输出、控制操作和运算处理等任务。另外,由于输入输出处理机具有自己的处理器,因此不必通过主存就能完成与外围设备的数据交换,提高了计算机系统效率。
输入输出处理机种类
根据是否共享主存储器,可以把输入输出处理机分成两类:共享主存储器的输入输出处理机、不共享主存储器的输入输出处理机。
根据运算部件和指令控制部件是否为各个输入输出处理机共享,也可以把输入输出处理机分为两类:合用同一个运算部件和指令控制部件的输入输出处理机(造价低,但控制相对复杂)、独立运算部件和指令控制部件的输入输出处理机(采用独立运算部件和指令控制部件的处理机已经成为主流,独立性强)
输入输出处理机的结构有多种组织方式:👇
1.有些计算机系统有多个输入输出处理机,而且从功能上进行分工。每个处理机有自己专门干的活。
2.在许多并行计算机和超级计算机系统中,以输入输出处理机作为主处理机。
3.有的计算机系统中,用一台与中央处理机相同型号的处理机作为输入输出处理机(相当于有两个CPU,输入输出性能特别高)
4.很多计算机系统采用连接的微处理器来专门承担输入输出任务。
输入输出处理机特点
没画啊没画,家人们。
第五章 标量处理机
只有标量数据表示和标量指令系统的处理机成为标量处理机。
提高指令执行速度的三种途径:
1.提高处理机的工作主频
2.采用更好的算法和设计更好的功能部件
3.多种指令并行执行,称为指令级并行技术。这是目前和将来提高处理机指令执行速度的一条主要路径。其中又包括三种方法(1.流水线技术、2.多操作部件处理机或超标量处理机、3.超长指令字技术)
先行重叠技术
1.指令的重叠执行方式


总之:
顺序执行方式:T=3nt
一次重叠执行方式:T=(1+2n)t
二次重叠执行方式:T=(2+n)t
2.先行控制方式的原理和结构
采用二次重叠执行方式,要使指令能够正确地重叠执行。
第一,为了实现取指令、分析指令和执行指令同时进行,需要有独立的取指令部件、指令分析部件和指令执行部件。
第二,要解决访问主存储器的冲突问题。(1.主存分两块:指存和数存;2.指令和数据仍放在一个主存储器里,低位交叉存取,一个周期可访问多个存储单元;3.根本解决方法还是先行控制技术,该技术的关键是缓冲技术和预处理技术)
流水线处理机
从两个方面来开发处理机内部的并行性,一个是空间并行性,一个处理机内设置多个独立的操作部件,这类处理机也叫多操作部件处理机和超标量处理机;一个是时间并行性,分时使用同一部件的不同部分,就是采用流水线技术。
流水线工作原理
指令的执行过程可以采用流水线,称为指令流水线。
运算器中的操作部件也可以采用流水线,称为操作部件流水线。
时空图
流水线的特点
1.流水线中处理的必须是连续任务,只有连续不断的提供同类任务才能充分发挥流水线的效率。
2.在流水线的每一个功能部件的后面都要有一个缓冲寄存器(流水寄存器)。
3.流水线中各段的时间应尽量相等,否则将引起“堵塞”、“断流”等。
4.流水线需要有“装入时间”和“排空时间”。
流水线的分类
1.按照流水线的各个功能段之间是否有反馈信号,可以把流水线分为线性流水线和非流水线两类。
线性流水线每一个功能段都流过一次,而且仅仅流过一次。
非线性流水线除了有串行之外,还有反馈回路。

2.按照流水线使用的不同级别,可以把流水线分为功能部件级、处理机级和处理机间级等多种类型。
处理机流水线又称为指令流水线。
功能部件级流水线也成为运算操作流水线。
指令执行部件中采用了流水线的处理机称为流水线处理机或超流水线处理机,而把指令执行部件中设置多个操作部件的处理机称为多操作部件处理机或超标量处理机。
3.
一条流水线只能完成一种固定的功能,这种流水线称为单功能流水线。
多功能流水线是指流水线的各段可以进行不同的连接。

4.在多功能流水线中,按照在同一时间内是否能够连接成多种方式,同时执行多种功能,可以把多功能流水线分成静态流水线和动态流水线两种。(按连接方式分)
所谓静态流水线是指在同一段时间内,多功能流水线中的各个功能段只能按照一种固定的方式连接。

动态流水线是指在同一段时间内,多功能流水线中的各段可以按照不同(/多种)方式连接,同时执行多种功能。

线性流水线性能分析
对影响流水线性能的吞吐率、加速比和效率等三个主要指标进行分析。
1.吞吐率


最大吞吐率咋推出来的👇

2.加速比
如果不使用流水线,顺序执行所用时间为T0
使用流水线执行所用时间为Tk,则流水线的加速比(一般这个说法指硬件)为:

3.效率(一般是软件的叫法)
在时空图上,流水线的效率是n个任务占用的时空区与k个功能段总的时空区之比。


流水线性能分析例题
跳到前面看
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐









所有评论(0)