3.1 存储系统的基本要求和并行主存系统
3.1.1 存储系统的基本要求
存储器的三个主要指标:容量、速度和价格(指每位价格)
对这三个指标的要求:大容量
、高速度
、低价格
三个要求是相互矛盾的:速度越快
,价格越高
;容量越大
,价格越低
(每位价格越低,总价格是越高);容量越大
,速度越慢
为了弥补CPU与存储器在速度上的差距,一条途径是在组成上引入并行和重叠技术
,构成并行主存系统。
3.1.2 并行主存系统
体:内存条上的每一个内存颗粒
单体单字存储器:一个存储器周期内可访问一个存储器字
单体多字存储器:一个存储器周期内可访问多个存储器字
多体单字交叉存储器:CPU字在主存中按模m交叉编址,有低位交叉和高位交叉两种,并行方式从m个存储体内一个字
并行主存系统:能并行读出多个CPU字的单体多字和多体单字
、多体多字
的交叉访问
主存系统被称为并行主存系统
。
主存最大频宽的计算方式:
- 单体单字:Bm=W/Tm.(W为存储体的字长(单位是位或者字节);Tm是连续启动一个存储体所需要的间隔时间)
- 单体多字:Bm=W.m/Tm.(W为存储体的字长(单位是位或者字节);Tm是连续启动一个存储体所需要的间隔时间;m代表多字的多)
- 多体单字:Bm=W.m/Tm.(W为存储体的字长(单位是位或者字节);Tm是连续启动一个存储体所需要的间隔时间;m代表多体的多)
每个存储周期能访问到的平均字数(λ:指令的转移概率)
【1610真题】设主存采用模m多分体交叉存取,每个分体的存取周期为Tm=2μs,
要求主存实际频宽为8MB/s,但实际频宽只能达到最大频宽的0.6倍。
1.若分体宽度W=4字节,则主存模数应取多少才能满足要求?(m取2的幂)
2.若主存模数为8,则分体宽度应为多少才能满足要求?
解:
由题意可知:Bm=8/0.6=40/3 MB/s
由于 Bm=W.m/Tm
1. 已知W=4字节,Tm=2μs,代入公式可得
40/3 ≤ 4.m/2,解出m≥20/3
又知m取2的幂,所以m=8才能满足要求
2. 已知m=8,Tm=2μs,代入公式可得
40/3 ≤ W.8/2,解出W≥10/3
所以W为4即可满足要求
【1710真题】程序存放在模32单字交叉存储器中,设访存申请队的转移概率λ=25%。
1.求每个存储周期能访问到的平均字数。
2.当模为16呢?由此可得到什么结论?
解:
代入上面图中的公式
1. 4
2. 3.96
结论:模不是越大越好,单纯靠增大m来提高并行主存系统的频宽是有限的,而且性能价格比还会随m的增大而下降。
并行主存系统大题
- 设主存每个分体的存取周期为2us,宽度为4个字节。采用模m多体交叉存取,但实际频宽只能达到最大频宽的0.6倍。现要求主存实际频宽为4MB/s,问主存模数m应取多少方能使两者速度基本适配?
- 程序存放在模32单字交叉存储器中,设访存申请队转移概率A=25%,求每个存储周期能访问到的平均字数。若模为16呢?由此可得出什么结论?
解:
1)单体:频宽= 字长/存储周期 Bm = W/Tm
多体:Bm = m.W/Tm
所以 上面的问题就变成了
4 ≤ ((4.m)/2) . 0.6 ,解出m应该取4
2) 每个存储周期所能访问的平均字数 B = (1- (1-λ)m)/λ,λ为访存队转移概率
m为32时,得出 B = (1-(1-0.25)m)/0.25 = 4
m为16时,得出 B = (1-(1-0.25)m)/0.25 = 3.96
结论:提高模的数量对提高频宽影响甚微,当m变大时,会因为工程实现复杂度变高,成本变高,实际性能可能更低,所以模不宜过大
并行存储的无冲突访问
在并行存储器中,为了对4x4的二维数组A的各元素a ij在行、列、主对角线、次对角线上均能实现无冲突访问,则
1)存储器的分体数m至少应该为多少?
2)画出数组各元素在该存储器各分体中的分布情况(设分体号从0开始、体内地址从i+0开始,且a 00 已存放在分体号为2、体内地址为i+0的位置)
3.2 中断系统
中断:
CPU中止正在执行的程序,转去处理随机提出的请求,待处理完后,再回到原先被打断的程序继续恢复执行的过程称为中断。
中断系统:
响应和处理各种中断的软、硬件总体称为中断系统。
中断分为内部中断
、外部中断
和软件中断
三类。内部中断由CPU内的异常引起;外部中断由中断信号引起;软件中断由自陷指令引起,用于供操作系统服务。外部中断又分为可屏蔽中断和不可屏蔽中断。
3.2.1 中断的分类和分级
中断源:引起中断的各种事件称为中断源。
中断请求:
中断源向中断系统发出请求中断的申请,称为中断请求。
同时多个中断请求,中断系统按中断响应优先次序对优先级高的中断请求予以相应。
中断响应:
中断响应就是允许其中断CPU现行程序的运行,转去对该请求进行预处理,包括保存好断点及其现场,调出有关处理该终端的中断服务程序,准备运行。
1. 中断的分类
IBM370系统就将中断分成机器校验、管理程序调用、程序性、外部、输入/输出和重新启动6大类。
机器校验中断:是告诉程序发生了设备故障
。可用64位机器校验中断码指明故障原因和严重性。
访管中断
访管中断是在用户程序需要操作系统介入时,通过执行访管指令
时发生的,访管原因由访管指令中的8
位码指明。
程序性中断
程序性中断是包括指令和数据的格式错
、程序执行中出现异常以及程序的事件记录、监督程序对事件的检测引起的中断等。
外部中断
外部中断来自计算机外部,它包括各种定时器中断
、外部信号中断
及中断键中断
。
输入/输出中断
输入/输出中断是CPU与I/O设备及通道联系的工具,在输入/输出操作完成
或者通道或者设备产生故障
时发出。
程序性、外部、I/O这3类的中断码均为16位。
重新启动中断
重新启动中断是操作员或另一台CPU要启动一个程序所用。CPU不能禁止这种中断。
2. 中断的分级
多个中断请求发生时,同一类的各中断请求的响应和处理的优先次序,一般不是由中断系统的硬件管理,而是由其软件或通道来管理的;而不同类的中断就要根据中断的性质、紧迫性、重要性以及软件处理的方便性把它们分成不同的级别。
中断系统按中断源的级别高低来响应,一般最高为第1级,其次第2级……。通常机器校验为第1级,程序性和管理程序调用为第2级,外部为第3级,输入/输出为第4级,重新启动为最低级。
3.2.2 中断的响应次序与处理次序
中断的响应次序是在同时发生多个不同中断类的中断请求时,中断响应硬件中的排队器
所决定的响应次序。 低级的中断处理程序可能被高级的中断处理程序打断,所以中断处理次序可以和中断响应次序不同。
此部分的考点可能有两个
给出1->2->3->4的响应优先次序,要求处理次序为1->4->3->2,设计中断屏蔽位(1表示开放,0表示屏蔽)
此题主要看处理次序,答案如下
中断处理程序级别 | 屏蔽位 | 屏蔽位 | 屏蔽位 | 屏蔽位 |
---|---|---|---|---|
中断处理程序级别 | 1级 | 2级 | 3级 | 4级 |
1级 | 0 | 0 | 0 | 0 |
2级 | 1 | 0 | 1 | 1 |
3级 | 1 | 0 | 0 | 1 |
4级 | 1 | 0 | 0 | 0 |
给出屏蔽位的表,先要求给出中断处理次序,然后给出处理时间,各个中断分别到来的时刻,要求画图
中断处理次序看表容易看出(看0最多的,依次)。
如果两个中断请求同时到来,要先看响应顺序
处理时,需要标注一横表示处理,并写上处理时间
记得加上箭头
画图时,记得加入用户程序,然后下方加入时间轴方向,画出过程示意图
中断请求 | 用户程序 | 中断处理程序 | 中断处理程序 | 中断处理程序 | 中断处理程序 |
---|---|---|---|---|---|
1级 | 2级 | 3级 | 4级 |
【1404真题】机器有5级中断,中断响应次序为1->2->3->4->5,现要求实际中断处理次序为2->3->1->5->4。
1.设计各级中断处理程序的中断级屏蔽位的状态,令0为开放,1为屏蔽
;
2.若运行用户程序时,同时发生1、3级中断请求,而在1级中断服务未完成时,又发生2、3、4、5级中断,请画出处理机执行程序全过程的示意图(标出交换PSW的时间)
解:
1.
(请注意,这里0为开放,1为屏蔽,所以要和书上反着来)
中断处理程序级别 | 屏蔽位 | 屏蔽位 | 屏蔽位 | 屏蔽位 | 屏蔽位 |
---|---|---|---|---|---|
中断处理程序级别 | 1级 | 2级 | 3级 | 4级 | 5级 |
1级 | 1 | 0 | 0 | 1 | 1 |
2级 | 1 | 1 | 1 | 1 | 1 |
3级 | 1 | 0 | 1 | 1 | 1 |
4级 | 0 | 0 | 0 | 1 | 0 |
5级 | 0 | 0 | 0 | 1 | 1 |
【1510真题】设中断屏蔽位1对应开放,0对应屏蔽,各级中断处理程序的中断级屏蔽位如图所示。
1.当中断响应优先次序为1->2->3->4时,其中断处理次序是什么?
2.如果所有的中断处理各需3个单位时间,中断响应和中断返回时间相对中断处理时间少得多。当计算机正在处理用户程序时,同时发生2、3级中断请求,过两个单位时间后,又同时发生1、4级中断请求,试画出程序运行过程示意图。
中断处理程序级别 | 屏蔽位 | 屏蔽位 | 屏蔽位 | 屏蔽位 |
---|---|---|---|---|
中断处理程序级别 | 1级 | 2级 | 3级 | 4级 |
1级 | 0 | 0 | 0 | 0 |
2级 | 1 | 0 | 1 | 1 |
3级 | 1 | 0 | 0 | 1 |
4级 | 1 | 0 | 0 | 0 |
解:
-
由图可知,中断处理次序为1->4->3->2
注意:画图时,响应顺序和处理顺序都要考虑,就算是同时发生,如上例的2、3,响应顺序是先2后3,所以2会先响应,然后被3中断,再跳到3执行;3在执行2△t后,被1中断,接着跳到1执行,1执行3△t后执行完毕,恢复现场,回到3;然后3又被4中断,4执行3△t后执行完毕,恢复现场,回到3;3执行1△t后执行完毕,恢复现场,回到2;2执行3△t后执行完毕,恢复现场,回到用户程序继续执行。
3.2.3 中断系统的软、硬件功能分配(填空)
中断系统的软、硬件功能的实质是中断处理程序软件
和中断响应硬件
的功能分配。
中断系统的功能(简答)
中断请求的保存和清除
、优先级
的确定、中断断点及现场
的保存、对中断请求
的分析和处理以及中断返回
等。中断现场包括软件状态和硬件状态。
总线系统
总线是用于互联计算机、CPU、存储器、I/O接口及外围设备、远程通信设备间信息传送通路的集合。
总线与其相配合的附属控制电路统称为总线系统。按信息传送功能、性能的不同,有数据线
,地址线
,命令、时序和中断信号等控制/状态线
,电源线,地线及备用线等。
数据线根数决定同时传送的数据位数,即数据通路宽度;地址线根数决定直接寻址的范围;控制/状态线决定总线的功能和使用能力;备用线用于系统功能的扩充。
3.3.1 总线的分类
总线按在系统中的位置
分为3级:
芯片级
(CPU芯片内的总线,也称片内总线)板级
(连接插件板内的各个总线,也称局部总线或内部总线)系统级
(系统间或主机与I/O接口或设备之间的总线)
就总线允许信息传送的方向
来说,分为:
单向传输
双向传输
(分为半双向
、全双向
)
总线按用法
分为:
专用
:只连接一对物理部件
的总线称专用总线,缺点是总线数多
。只适用于实现某个设备仅与另一个设备的连接。非专用
:非专用总线可以被多种功能或多个部件分时共享,同一时间只有一对部件可使用总线进行通信。优点是总线数少,造价低;总线接口标准化、模块性强;可扩充能力强,部件的增加不会使电缆、接口和驱动电路激增;易用多重总线来提高总线的带宽和可靠性,使故障弱化。缺点是系统流量小,经常会出现争用总线的情况。I/O系统适用于非专用线。
专用总线的优点:
- 多个部件可以同时收/发信息,不争用总线,
系统流量高
- 通信时不用指明源和目的,
控制简单
- 任何总线的失效只会使连于该总线的两个部件不能直接通信,但它们仍可通过其他部件间接通信,因而
系统可靠
专用总线的缺点是总线数多
3.3.2 总线的控制方式
集中式
总线控制:总线控制机构基本集中在一起分布式
总线控制:总线控制逻辑分散到连到总线的各个部件中
这里只讲集中式总线控制
优先次序的确定有串行链接
、定时查询
和独立请求
3种不同的方式。
- 串行链接:串行链接方式获得总线权的优先次序是由“总线可用”线所接部件的物理位置来决定的,离总线控制器越近的部件其优先级越高。
- 定时查询:定时查询的按照发出请求的计数值是否和总线控制器的计数值是否一致来确定优先级的。定时查询的优点是因计数器初始、部件号可由程序制定,优先次序可用程序控制,灵活性强。缺点是控制线的线数较多,需
2+log2N
根;可以共享总线的部件数受限于定时查询线的线数(编址能力),扩展性较差;控制较为复杂;总线分配的速度取决于计数信号的频率和部件数,不能很高。 - 独立请求:对于发出的总线请求进行仲裁确定优先级。优点是总线分配速度快
3.3.3 总线的通信技术
1. 同步通信
部件间的信息传送由定宽、定距的系统时钟同步。
2. 异步通信
异步通信又分为单向源控制和请求/回答双向控制两种。
- 单线源控制:通信过程只由源或目的部件之一控制的称为单向源控制或单向目控制
- 请求/回答双向控制:由源和目的共同控制的称为请求/回答双向控制
3.3.4 数据宽度与总线线数
1. 数据宽度
数据宽度是I/O设备取得I/O总线
后所传送数据的总量。
数据宽度有单字(单字节)、定长块、可变长块、单字加定长块和单字加可变长块等。
单字(单字节)
宽度适合于输入机、打印机
等低速设备定长块
宽度适合于磁盘
等高速设备,可以充分利用总线宽度可变长块
宽度适合于高优先级的中高速磁带、磁盘
等设备- 对于挂有
速度较低而优先级较高的设备
的总线,可以采用单字加定长块
传送 - 采用
单字加可变长块
的传送,是一种灵活有效却复杂、开销大的方法
2. 总线线数
总线要有发送/接收电路、传输导线或电缆、转接插头和电源等。
在满足性能前提下应尽量减少线数。总线线数可通过采用线的功能组合
、编码
和并/串--串/并
转换来减少
总线标准一般包括机械
、功能
、电气
及过程
(同步)等4个方面的标准
3.4 I/O系统
3.4.1 I/O系统概述
I/O(输入/输出)系统包括输入/输出设备
、设备控制器
及与输入/输出操作有关的软、硬件
大多计算机I/O系统的设计应该面向操作系统。
I/O系统的发展经历了3个阶段:
程序控制I/O
直接存储器访问(DMA)
I/O处理机
对于I/O处理机方式,又有通道
(Channel)和外围处理机(PPU)
方式之分。
输入/输出设备分为外存
和传输设备
两大类。
3.4.2 通道处理机的工作原理和流量设计
1. 通道处理机的工作原理
启动I/O指令是主要的输入/输出指令,属于管态
指令。
根据通道数据传送期中信息传送方式的不同,可分为字节多路
、数组多路
和选择
3类通道。
- 字节多路通道适用于连接大量的像
光电机
等字符类低速设备。 - 数组多路通道适用于连接多台
磁盘
等高速设备。 - 选择通道适合于连接
优先级高的磁盘
等高速设备,让它独占通道,只能执行一道通道程序。
2. 通道流量的设计
通道流量是通道在数据传送期内,单位时间内传送的字节数。它能达到的最大流量称通道极限流量。
Ts:数据传送期内选择一次设备的时间
Td:数据传送期内传送一个字节的时间
字节多路的通道极限流量:fmax.byte = 1/(Ts+Td)
数组多路的通道极限流量:fmax.byte = 1/(Ts/K+Td)
选择多路的通道极限流量:fmax.byte = 1/(Ts/N+Td)
数组多路每选择一次通道传输定长块K字节,所以fmax.byte = K/(Ts+Td*K),上下同时除以K,就得到公式了
选择多路每选择一次通道传输多个不定长块,它们加起来有N字节,所以fmax.byte = N/(Ts+Td*N),上下同时除以N,就得到公式了
挂上设备(多个设备)后,设备要求通道的实际最大流量:
字节多路应是该通道所接各设备的字节传送速率之和
数组多路和选择应是所接各设备的字节传送速率中的最大者
为了保证通道上所挂设备在满负荷的最坏情况下都不丢失信息,必须满足设备要:
fbyte ≤ f max
fblock ≤ f max
fselect ≤ f max
所以,f max必须满足
fmax ≥ fbyte + fblock + fselect
【1604真题】如果通道在数据传送期中,选择设备的时间Ts为10μs,传送一个字节数据需要的时间Td为0.5μs。
1.某低速设备每隔500μs发出一个字节数据请求,至多可接几台这种设备。
2.对于如表所示的低速设备,一次通信传送的字节数不少于1024个字节,则哪些设备可挂?哪些设备不可挂?
解:
1.低速设备选择字节多路通道,所以
fmax.byte = 1/(Ts+Td) = 1/10.5 (byte/μs)
从已知得知 f实际 = 1/500 (byte/μs)
设可接的设备数量为m ,所以m.f实际 ≤ fmax.byte
解出m≤47.6 所以至多可接47台设备
2.由题意可知,多个设备且传送的字节数不少于1024B,所以应该是选择通道。
fmax.byte = 1/(Ts/N + Td)
由于N≥1024,所以fmax.byte ≤ 1/(10/1024+0.5) < 1/0.5
由于选择通道的设备速率不可大于通道极限速率,所以:
从表中可知:
fA > fmax.byte,所以A不可挂
fB < fmax.byte,所以B可挂
fC > fmax.byte,所以C不可挂
fD > fmax.byte,所以D不可挂
fE < fmax.byte,所以E可挂
fF < fmax.byte,所以F可挂
设计极限流量
有8台外设,各设备要求传送信息的工作速率(单位KB/s)如表所示
设备 | 速率 | 设备 | 速率 | 设备 | 速率 | 设备 | 速率 |
---|---|---|---|---|---|---|---|
A | 500 | B | 240 | C | 100 | D | 75 |
E | 50 | F | 40 | G | 14 | H | 10 |
现设计的通道在数据传送期,每选择一次设备需要2us,每传送一个字节数据也需要2us。
1)若用作字节多路通道,通道工作的最高流量是多少?
2)作字节多路通道用时,希望同时不少于4台设备挂在此通道上,最好多挂一些,且告诉设备尽量多挂一些,请问应选哪些设备挂在此通道上,为什么?
3)若用作数组多路通道,通道工作的最高流量是多少?设定长块大小为512B。
4)作数组多路通道用时,应选哪些设备挂在此通道上?为什么?
答:
注释:1s = 10^6 us; 1kB = 10^3 B;
1)fmax.byte = 1/(Ts+Td) = 1/4 (B/us) = 250 (KB/s)
2) 这里找速率加起来小于等于250的,从表中可以看出,选择C、D、E、G、H,它们的实际最大速率为249KB/s(相加)
3)fmax.byte = 1/(Ts/K+Td) = 1(2us/512B + 2us) = 499 (KB/s)
4) 这里选低于通道极限流量的,B、C、D、E、F、G、H