3.1 存储系统的基本要求和并行主存系统
3.1.1 存储系统的基本要求
存储器的三个主要指标:容量、速度和价格(指每位价格)
人们对这三个指标的要求:容量大、速度快、价格低
三个要求是相互矛盾的:速度越快,价格越高;容量越大,价格越低;容量越大,速度越慢
为了弥补CPU与存储器在速度上的差距,一条途径是在组成上引入并行和重叠技术,构成并行主存系统。
3.1.2 并行主存系统
体:内存条上的每一个内存颗粒
单体单字存储器:一个存储器周期内可访问一个存储器字
单体多字存储器:一个存储器周期内可访问多个存储器字
多体单字交叉存储器:CPU字在主存中按模m交叉编址,有低位交叉和高位交叉两种,并行方式从m个存储体内一个字
并行主存系统:能并行读出多个CPU字的单体多字和多体单字、多体多字的交叉访问主存系统被称为并行主存系统。
3.2 中断系统
中断:
CPU中止正在执行的程序,转去处理随机提出的请求,待处理完后,再回到原先被打断的程序继续恢复执行的过程称为中断。
中断系统:
响应和处理各种中断的软、硬件总体称为中断系统。
中断分为内部中断
、外部中断
和软件中断
三类。内部中断由CPU内的异常引起;外部中断由中断信号引起;软件中断由自陷指令引起,用于供操作系统服务。外部中断又分为可屏蔽中断和不可屏蔽中断。
3.2.1 中断的分类和分级
中断源:引起中断的各种事件称为中断源。
中断请求:
中断源向中断系统发出请求中断的申请,称为中断请求。
同时多个中断请求,中断系统按中断响应优先次序对优先级高的中断请求予以相应。
中断响应:
中断响应就是允许其中断CPU现行程序的运行,转去对该请求进行预处理,包括保存好断点及其现场,调出有关处理该终端的中断服务程序,准备运行。
1. 中断的分类
访管中断
访管中断是在用户程序需要操作系统介入时,通过执行访管指令时发生的,访管原因由访管指令中的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级 |
3.2.3 中断系统的软、硬件功能分配
总线系统
总线是用于互联计算机、CPU、存储器、I/O接口及外围设备、远程通信设备间信息传送通路的集合。
总线与其相配合的附属控制电路统称为总线系统。按信息传送功能、性能的不同,有数据线,地址线,命令、时序和中断信号等控制/状态线,电源线,地线及备用线等。
数据线根数决定同时传送的数据位数,即数据通路宽度;地址线根数决定直接寻址的范围;控制/状态线决定总线的功能和使用能力;备用线用于系统功能的扩充。
3.3.1 总线的分类
总线按在系统中的位置分为3级:
- 芯片级(CPU芯片内的总线,也称片内总线)
- 板级(连接插件板内的各个总线,也称局部总线或内部总线)
- 系统级(系统间或主机与I/O接口或设备之间的总线)
就总线允许信息传送的方向来说,分为:
- 单向传输
- 双向传输(分为半双向、全双向)
总线按用法分为:
- 专用:只连接一对物理部件的总线称专用总线,缺点是总线数多。只适用于实现某个设备仅与另一个设备的连接。
- 非专用:非专用总线可以被多种功能或多个部件分时共享,同一时间只有一对部件可使用总线进行通信。优点是总线数少,造价低;总线接口标准化、模块性强;可扩充能力强,部件的增加不会使电缆、接口和驱动电路激增;易用多重总线来提高总线的带宽和可靠性,使故障弱化。缺点是系统流量小,经常会出现争用总线的情况。I/O系统适用于非专用线。
3.3.2 总线的控制方式
- 集中式总线控制:总线控制机构基本集中在一起
- 分布式总线控制:总线控制逻辑分散到连到总线的各个部件中
这里只讲集中式总线控制
优先次序的确定有串行链接、定时查询和独立请求3种不同的方式。
- 串行链接:串行链接方式获得总线权的优先次序是由“总线可用”线所接部件的物理位置来决定的,离总线控制器越近的部件其优先级越高。
- 定时查询:定时查询的按照发出请求的计数值是否和总线控制器的计数值是否一致来确定优先级的。定时查询的优点是因计数器初始、部件号可由程序制定,优先次序可用程序控制,灵活性强。
- 独立请求:对于发出的总线请求进行仲裁确定优先级。优点是总线分配速度快
3.3.3 总线的通信技术
1. 同步通信
部件间的信息传送由定宽、定距的系统时钟同步。
2. 异步通信
异步通信又分为单向源控制和请求/回答双向控制两种。
- 单线源控制:通信过程只由源或目的部件之一控制的称为单向源控制或单向目控制
- 请求/回答双向控制:由源和目的共同控制的称为请求/回答双向控制
3.3.4 数据宽度与总线线数
1. 数据宽度
数据宽度是I/O设备取得I/O总线后所传送数据的总量。
2. 总线线数
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. 通道处理机的工作原理
根据通道数据传送期中信息传送方式的不同,可分为字节多路、数组多路和选择3类通道。
- 字节多路通道适用于连接大量的像光电机等字符类低速设备。
- 数组多路通道适用于连接堕胎磁盘等高速设备。
- 选择通道适合于连接优先级高的磁盘等高速设备,让它独占通道,只能执行一道通道程序。
2. 通道流量的设计
通道流量是通道在数据传送期内,单位时间内传送的字节数。它能达到的最大流量称通道极限流量。
Ts:数据传送期内选择一次设备的时间
Td:数据传送期内传送一个字节的时间
字节多路的通道极限流量:f max.byte = 1/(Ts+Td)
数组多路的通道极限流量:f max.byte = 1/(Ts/K+Td)
选择多路的通道极限流量:f max.byte = 1/(Ts/N+Td)
挂上设备后,设备要求通道的实际最大流量:
字节多路应是该通道所接各设备的字节传送速率之和
数组多路和选择应是所接各设备的字节传送速率中的最大者
此部分大题可能会要求设计通道流量
有8台外设,各设备要求传送信息的工作速率(单位KB/s)如表所示
设备 | 速率 | 设备 | 速率 | 设备 | 速率 | 设备 | 速率 |
---|---|---|---|---|---|---|---|
A | 500 | B | 240 | C | 100 | D | 75 |
E | 50 | F | 40 | G | 14 | H | 100 |
现设计的通道在数据传送期,每选择一次设备需要2us,每传送一个字节数据也需要2us。
1)若用作字节多路通道,通道工作的最高流量是多少?
2)作字节多路通道用时,希望同时不少于4台设备挂在此通道上,最好多挂一些,且告诉设备尽量多挂一些,请问应选哪些设备挂在此通道上,为什么?
3)若用作数组多路通道,通道工作的最高流量是多少?设定长块大小为512B。
4)作数组多路通道用时,应选哪些设备挂在此通道上?为什么?
答:
1s = 1000000 us; 1kB = 1000 B;
1)f max.byte = 1/(Ts+Td) = 1/4 (B/us) = 250 (KB/s)
2) 这里找速率加起来小于等于250的,从表中可以看出,选择C、D、E、G、H,它们的实际最大速率为249KB/s(相加)
3)f max.byte = 1/(Ts/K+Td) = 1(2us/512B + 2us) = 499 (KB/s)
4) 这里选低于通道极限流量的,B、C、D、E、F、G、H
并行主存系统大题
- 设主存每个分体的存取周期为2us,宽度为4个字节。采用模m多体交叉存取,但实际频宽只能达到最大频宽的0.6倍。现要求主存实际频宽为4MB/s,问主存模数m应取多少方能使两者速度基本适配?
- 程序存放在模32单字交叉存储器中,设访存申请队转移概率A=25%,求每个存储周期能访问到的平均字数。若模为16呢?由此可得出什么结论?
1)单体:频宽= 字长/存储周期 Bm = W/Tm
多体:Bm = m * W/Tm
所以 上面的问题就变成了
4 <= 4/2 * m * 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的位置)