计算机组成原理第六次作业
6.1 名词解释
总线
早期总线是指连接多个计算机硬件功能部件的一组公共的并行传输信号线缆,用于在各功能部件之间进行信息传输
现代总线是指连接多个计算机内部功能部件或多个计算机的通信系统,总线既包括相关的硬件(总线控制器、总线接口)、软件,也包括相关的通信协议。
系统总线
系统总线是 CPU直接连接主存、I0模块等主要功能部件的信息传输线,与CPU引脚直接相连,随着总线结构的变化,系统总线也被称为主机总线、CPU 总线、前端总线等。
总线接口
总线系统通常包括一组连接各功能部件的传输线缆和总线控制器。总线控制器负责总线控制权的仲裁以及总线资源的分配和管理,如果是扩展总线控制器还需要进行总线协议转换。
总线仲裁
总线仲裁也称总线控制、总线裁决/判优,早期计算机中只有CPU一个总线主设备,由CPU全权控制总线的使用。当总线上存在多个主设备时,由于每个主设备都能控制总线,因此存在共享总线的争用问题,需要有一个总线控制器来解决总线使用权的分配仲裁问题。决定申请总线的多个主设备中哪一个获得总线控制权的过程就是总线仲裁。在进行仲裁的时候要综合考虑不同主设备的优先级问题,还要兼顾公平性,也就是要保证最低优先级的主设备也能有机会获得总线使用权,另外还要尽可能地缩短总线仲裁时间。
PCI总线
PCI(Peripheral Component Interconnect)总线是Intel 公司1991年推出的一种与处理器无关的局部总线。PCI总线将多级总线结构引入个人计算机,不同总线之间通过相应的桥芯片来转接其由于独特的处理器无关特性,从奔腾 CPU 开始流行了相当长的时间。PCI总线包括 62 个引脚,包含 32位数据总线,采用了总线复用技术来减少引脚数目。支持总线主控、集中式仲裁,采用同步方式进行并行数据传输,时钟频率为 33/66MHz,最大数据传输速率为133/266MB/S。后续又出现了 94 针的 64位 PCI总线,另外还衍生出了应用于工业计算机的 CompactPCI 总线标准,以及 1999年推出的应用于服务器的PCI-X总线标准,频率为133MHz,采用ODR技术,总线带宽可达 4.26GB/s。
PCIE总线
PCIExpress是Intel 公司在 2001年提出的高速串行计算机扩展总线标准,原名 3GIO,旨在替代PCI、PCI-X和AGP总线标准,也称为PCI-e或PCIe。PCle总线颠覆了传统总线结构,改并行总线为串行总线,改共享连接为专用的点到点连接。每个设备都有独立的连接链路,支持热插拔,支持1到40条通路并发,如常见的PCex8表示8条通路并发;而每条通路由两对差分信号线组成双单工串行传输通道,没有专用的数据、地址、控制和时钟线,总线上将各种事务组织成信息包来传送。
6.2 简要回答下列问题
计算机系统为什么采用总线结构
在冯诺依曼计算机的硬件结构中,计算机由五大部分组成,它们的互连方式有两种:一种是各部件之间使用单独的连线,称为分散连接;另一种是将各部件连到一组公共信息传输线上,称为总线连接。
早期的计算机大多数用分散连接方式,但是分散连接无法解决 I/O 设备与主机之间连接的灵活性问题:随着 I/O 设备的种类和数量的增多,或者人们希望随时增添或减撤设备,用分散连接方式几乎是不可能的。由此出现了总线连接方式。
总线的信息传送方式有哪几种?各有什么特点?
总线按信号传输的模式可分为并行传输总线和串行传输总线。并行传输总线包含多位传输线,同一时刻可以传输多位数据;而串行传输总线同一时刻只能传输一个比特位的数据,相同频率下并行传输总线传输性能更好。但并行传输不仅存在线间串扰和时钟偏移的问题,还存在高频障碍,所以现代计算机总线发展出很多高速的串行传输总线,如QPI、PCIe。为了进一步提升串行传输总线的性能,可采用多条独立串行总线并发的方式,如PCle的x4、x8、x16 模式就分别表示 4、8、16条独立串行总线并发。
6.3 单选题
- C
- 总线时钟频率为10 MHz,一个总线周期占用2个时钟周期,故1 s内共有5 M个总线周期;每个周期并行传输4字节信息,故总线带宽为5 M/s×4 B=20 MB/s。选B
- 数据线有32根,也就是一次可以传送32bit/8=4B的数据,66MHz意味着有66M个时钟周期,而每个时钟周期传送两次数据,可知总线每秒传送的最大数据量为66M×2×4B=528MB,所以总线的最大数据传输率为528MB/s,选C。
- C
- IV 地址数据线复用并非提高而是降低,同一时间还得传地址过去,等价的数据传输效率就低。选B
6.4 名词解释
接口
计算机系统中包括多个IO设备,所有设备均通过 I0接口(总线接口)与总线相连CPU使用设备地址经总线与1/0接口通信来访问I/O设备。I/0 接口是连接总线与IO 设备的物理和逻辑界面,既包括物理连接电路,也包括软件交互的逻辑接口。总线标准化直接使接口标准化,采用标准接口进行设备连接有利于增强输入输出系统的独立性,降低连接的复杂度。
中断
计算机系统运行时,若系统外部、内部或现行程序本身出现某种非预期的随机事件,CPU将暂停现行程序的执行,转向为该事件服务;待事件处理完毕,再恢复执行原来被暂停的程序,这个过程称为中断。产生非预期事件的原因很多,如除数为零、运算溢出、堆栈溢出、程序中断点、打印机缺纸、校验错、定时时间到、地址越界、虚存缺页等。这些中断事件对 CPU 来说大多都是随机发生的,CPU不能预知这些事件发生的时刻;中断技术把有序的程序运行和无序的随机中断事件统一起来,大大增强了系统的处理能力和灵活性。
中断屏蔽
外部中断可分为可屏蔽和不可屏蔽两类,可屏蔽中断请求通过CPU的INTR引脚发送给CPU,与中断允许位IE/IF进行逻辑与后送入内部中断逻辑;关中断时可屏蔽中断无法得到CPU的响应,其中断优先级最低。不可屏蔽中断请求则通过CPU的NMI引脚发送,用于响应最紧急和最重要的事件,如计时器中断、掉电等,其优先级最高,其次是内部异常,不可屏蔽中断在关中断模式下也需要响应。
中断响应
中断优先级就是指CPU响应并处理中断请求的先后次序。计算机系统中通常包括多个中断源,当同时有多个中断产生时,就存在中断优先级的问题,优先级高的先响应,优先级低的后响应。多重中断中优先级高的中断请求可以中断CPU正在执行的低优先级中断服务程序。中断优先级包括两层含义:响应优先级和处理优先级。
中断识别
中断识别的任务是确定中断是由哪个中断源发出的,识别出中断源后还需要获取中断服务程序入口地址,这样才能执行中断服务程序。关于中断源的识别在前面介绍中断请求信号传送的时候已经进行了介绍,如果采用独立请求传送方式则采用硬件编码电路进行识别,也称为独立请求法;如果采用链式查询方式,可以采用硬件串行查询法和软件查询法,这里不再详述。
中断隐指令
这部分工作是由硬件自动完成的,也就是所谓的中断隐指令。首先清除中断使能位并关中断,保证后续操作的完整性;然后保存程序断点以便中断服务结束后能正确返回断点。断点除了程序计数器PC,还可能包括状态寄存器,断点保存位置通常是内存堆栈,也有可能是特殊的寄存器,如MIPS中的EPC寄存器。最后是中断识别阶段,将中断服务程序入口地址送入程序计数器 PC,该阶段还会向中断控制器发出中断响应,并清除当前中断请求。完成中断响应后CPU即开始正式执行中断服务程序。
平均定位时间
平均存取时间等于平均找道时间与平均等待时间之和
6.5 选择题
-
D
-
A
-
A
-
B
-
存取时间 = 寻道时间 + 延迟时间 + 传输时间。存取一个扇区的平均延迟时间为旋转半周的时间,即为 (60/7200)/2=4.17ms ,传输时间为 (60/7200)/1000=0.01ms ,因此访问一个扇区的平均存取时间为 4.17+0.01+8=12.18ms ,保留一位小数则为 12.2ms
选B
6.6 简答题
-
现代操作系统中,所有外围设备都被一个抽象的设备 -- 总线作为桥梁与 CPU 的核心线路连接在一起。
-
(1)对应的中断请求未被屏蔽。
(2)当前没有更高优先级的其他中断请求。
(3)如果CPU正在执行中断服务,则中断请求应符合嵌套条件。(4)中断使能位处于使能状态,也就是开中断状态,内部异常和不可屏蔽中断不受此限制。
(5)CPU已执行完一条指令的最后一个状态周期(中断时机)。内部异常指令无法执行完毕,所以其中断时机不受此项制约。
-
中断优先级就是指CPU响应并处理中断请求的先后次序。
中断优先级包括两层含义:响应优先级和处理优先级。
中计算机系统中通常包括多个中断源,当同时有多个中断产生时,就存在中断优先级的问题,优先级高的先响应,优先级低的后响应。多重中断中优先级高的中断请求可以中断CPU正在执行的低优先级中断服务程序。
优先级应与中断请求的紧急程度和重要性相对应。
6.7
设备名 | 中断屏蔽字 | |||
---|---|---|---|---|
L0 | L1 | L2 | L3 | |
L0 | 1 | 0 | 1 | 0 |
L1 | 1 | 1 | 1 | 1 |
L2 | 0 | 0 | 1 | 0 |
L3 | 1 | 0 | 1 | 1 |
6.8
-
每传送一个ASCII字符,需要传输的位数有1位起始位、7位ASCII数据位、1位 奇校验位和1位停止位,故总位数为1+7+1+1=10。
I/O 端口每秒钟最多可接收1/0.5×10-3=2000个字符。
-
一个字符的传输时间包括三个部分:首先是设备D将字符发送到I/O端口的时间,然后是中断的响应时间,最后是中断服务程序执行前15条指令的时间。时钟周期设定为T,其值为1/(50 MHz),即20纳秒。设备D发送字符到I/O端口的时间计算为0.5毫秒除以时钟周期T,得到25,000个时钟周期。因此,传输一个字符的总时间大约是25,000个时钟周期加上中断响应时间的10个时钟周期,以及中断服务程序前15条指令执行时间的15乘以4个时钟周期,总计为25070T。对于1000个字符的传输,总时间将是1000乘以25070,即25,070,000T。
在处理这项任务时,CPU大约需要的时间是1000乘以(10加上15乘以4),即90,000T。
当中断发生时,CPU会执行一系列操作,包括关闭中断、保存当前的程序断点以及识别中断类型。这些操作是中断响应阶段的关键部分。