计算机组成原理第五章 输入输出系统课后习题

发布于:2024-04-28 ⋅ 阅读:(25) ⋅ 点赞:(0)

5.1I/O 设备有哪些编址方式,各有何特点?

1.独立编址(专用的 I/O 端口编址)----存储器和 I/O 端口在两个独立的地址空间中
(1)优点:I/O 端口的地址码较短,译码电路简单,存储器同 I/O 端口的操作指令不同,程序比较清晰;存储器和 I/O 端口的控制结构相互独立,可以分别设计
(2)缺点:需要有专用的 I/O 指令,程序设计的灵活性较差
2.统一编址(存储器映像编址)----存储器和 I/O 端口共用统一的地址空间,当一个地址空间分配给 I/O 端口以后,存储器就不能再占有这一部分的地址空间
(1)优点:不需要专用的 I/O 指令,任何对存储器数据进行操作的指令都可用于 I/O 端口的 数据操作,程序设计比较灵活;由于 I/O 端口的地址空间是内存空间的一部分,这样,I/O 端口的地址空间可大可小,从而使外设的数量几乎不受限制
(2)缺点:I/O 端口占用了内存空间的一部分,影响了系统的内存容量;访问 I/O 端口也要同访问内存一样,由于内存地址较长,导致执行时间增加!

5.2 简要说明CPU与I/O设备之间传递信息可采用哪几种联络方式,它们分别用于什么场合。

CPU 和 I/O 之间的联络方式有三种。
(1)立即响应方式。对于一些工作速度十分缓慢的 I/O 设备,如指示灯的亮与灭、开关的通与断、A/D 转换器缓变信号的输入等,当它们与 CPU 发生联系时,通常都已使其处于某 种等待状态,因此,只要 CPU 的 I/O 指令一到,它们便立即响应,故这种设备无须特殊联 络信号,称为立即响应方式;
(2)异步方式。对于一些慢速或中速的外设,由于与主机工作速度不匹配,且本身又在不 规则实际间隔下操作,则大多采用异步方式。即交换信息前,I/O 与 CPU 各自完成自身的 任务,仅当出现联络信号时,彼此才交换信息。联络时采用应答方式,如“Ready”和“Strobe” 可分别用来表示“准备就绪”和“响应”含义;
(3)同步方式。同步工作要求 I/O 设备与 CPU 的工作速度完全同步。例如,在数据采集过程中,若外部数据以 2400 bps 的速率传送至接口,则 CPU 也必须以 1/2400 s 的速率接收每一位数。这 种联络互相之间还得配有专用电路,用以产生同步时标来控制同步工作。

5.3I/O 设备与主机交换信息时,共有哪几种控制方式?简述它们的特点。

有程序查询方式、程序中断方式、DMA 方式、通道方式和 I/O 处理机的方式。 其特点分别如下: (1)程序查询方式:主机和 I/O 串行工作,如果 I/O 忙,那么 CPU 踏步等待。这种效率很低。
(2)程序中段方式:主机和 I/O 并行工作。这种方式消除了 CPU 踏步等待的现象,提高了 CPU 的工作效率。
(3)DMA 方式:主机和 I/O 并行工作。主存和 I/O 之间有一条直接数据通路,CPU 不参与 I/O 和主存间的信息交换,故不必中段现行程序,CPU 效率更高。
(4)通道方式:通道是一个具有特殊功能的处理器,CPU 把部分权利下方给通道,由它实现对外围设备的统一管理和外围设备与主存间的数据交换,大大提高了 CPU 的效率,但他是以花费更多的硬件为代价的。
(5)I/O 处理机方式:他是通道方式的进一步发展,CPU 将 I/O 操作及外围设备的管理权全 部 交给 I/O 处理机,其实质就是多机系统,因而效率有更大的提高。

5.4 试比较程序查询方式、程序中断方式和 DMA 方式对 CP U 工作效率的影响。

(1)程序查询方式要求 CPU 时刻查询 I/O,直到 I/O 准备好为止,这种方式 CPU 工作效率很低。 (2)程序中断方式比程序中断方式提高了 CPU 的工作效率,消除了“踏步”现象,CPU 工作效率得到提高。
(3)DMA 方式中 CPU 的工作效率是这三种之中最高的一个。 CPU 启动 I/O 后,不必查询 I/O 是否准备好,当 I/O 准备就绪后,发出 DMA 请求,此时 CPU 不直接参与 I/O 和主存间的信息 交换,只是把外部总线的使用权暂时交付 DMA,仍然可以完成自身内部的操作,所以不必中断现行程序,只需暂停一个存取周期访存,CPU 效率更高。

解析: 程序查询方式、程序中断方式和 DMA 方式作为三种常见的工作方式,常进行综合性能的比 较。除了上述答案中对 CPU 的效率影响之外,还有一些其他差别: 程序查询、程序中断方式的数据传送主要依赖软件,DMA 主要依赖硬件。程序查询、程序中 断传送数据的基本单位为字或字节,DMA 为数据块。 程序查询方式,CPU 主动查询 I/O 设备状态;程序中断及 DMA 方式 CPU 被动接受 I/O 中 断请求或 DMA 请求。

5.5 图形显示和图像显示有何区别?

图形一般指用计算机绘制的画面,如直线、圆、圆弧、任意曲线和图表等;图像则是指由输 入设备捕捉的实际场景画面或以数字化形式存储的任意画面。 图像都是由一些排成行列的像素组成的,一般数据量都较大。而图形文件中只记录生成图的 算法和图上的某些特征点,也称矢量图。相对于位图的大数据量来说,它占用的存储空间较小。

5.6 字符显示器的接口电路中配有缓冲存储器和只读存储器,各有何作用?

字符显示器的接口电路中,缓冲存储器由 RAM 组成,用来存放计算机准备显示的字符编码。 缓存的每一地址分别对应 CRT 显示屏上的不同位置,缓存每一单元的内容即为欲显示字符的 ASCI 码。
字符显示器接口电路中的只读存储器是用来存放每一个 ASCII 码对应的光点代码的,如果 荧光屏上的字符是以5X7光点组成,则ROM可视为将ASCI码变为一组5×7光点矩阵的部件, 又称为字符发生器。

5.7 试比较针式打印机、激光打印机和喷墨打印机的特点。

三种打印机都配有一个字符发生器,它们的共同点是都能将字符编码信息变为点阵信息,不 同的是这些点阵信息的控制对象不同。

点阵针式打印机的字符点阵用于控制打印针的驱动电路;
激光打印机的字符点阵脉冲信号用于控制激光束;
喷墨打印机的字符点阵信息控制墨滴的运动轨迹。
此外, 点阵针式打印机属于击打式的打印机,可以逐字打印,也可以逐行打印;
喷墨打印机只能逐字打印;
激光打印机属于页式输出设备。
后两种都属于非击打式打印机。

不同种类的打印机性能和价格差别很大,用户可根据不同需要合理选用。要求印字质量高的场合可选用激光打印机;要求价格便宜的或只需具有文字处理功能的个人用计算机,可配置 串行点阵针式打印机;要求处理的信息量很大,速度又要快,应该配行式打印机或高速激光打印机。

5.8 某计算机的 I/O 设备采用异步串行传送方式传送字符信息。字符信息的格式为 1 位起始 位、7 位数据位、1 位检验位和 1 位停止位。若要求每秒钟传送 480 个字符,那么该设备的数据传送速率为多少?

由题干可知一个字符共有(1+7+1+1)=10 位,
每秒要求传达 480 个字符,
则数据传送速率要求为 480x10=4800(bps)。

5.10 什么是 I/O 接口,它与端口有何区别?为什么要设置 I/O 接口?I/O 接口如何分类?

I/O 接口一般指 CPU 和 I/O 设备间的连接部件;
端口是给信息通讯所划分的通道口是相对于软件来说的,而接口是硬件连接的接口。
外围设备要通过接口与 CPU 相连的原因主要包括:
(1)一台机器通常配有多台外设,它们各自有其设备号(地址),通过接口可实现对设备的选择;
(2)I/O 设备种类繁多,速度不一,与 CPU 速度相差可能很大,通过接口可实现数据缓冲, 达到速度匹配;
(3)I/O 设备可能串行传送数据,而 CPU 一般并行传送,通过接口可实现数据串并格式转 换; (4)I/O 设备的入/出电平可能与 CPU 的入/出电平不同,通过接口可实现电平转换;
(5)CPU 启动 I/O 设备工作,要向外设发出各种控制信号,通过接口可传送控制命令;
(6)I/O 需将其工作状态及时报告 CPU,通过接口可监视设备的工作状态,并保存状态信 息,供 CPU 查询。

I/O 接口分类方法很多,主要有:
(1)按数据传送方式分有并行接口和串行接口两种;
(2)按数据传送的控制方式分有程序控制接口、程序终端接口和 DMA 接口三种。

5.11 简述 I/O 接口的功能和基本组成。

1.I/O 接口的功能,CPU 与外设之间的数据交换必须通过接口来完成,通常接口有以下一些功能: (1)设置数据的寄存、缓冲逻辑,以适应 CPU 与外设之间的速度差异,接口通常由一些寄 存器或 RAM 芯片组成,如果芯片足够大还可以实现批量数据的传输;
(2)能够进行信息格式的转换,例如串行和并行的转换;
(3)能够协调 CPU 和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模 /数转换器等;
(4)协调时序差异;
(5)地址译码和设备选择功能;
(6)设置中断和 DMA 控制逻辑,以保证在中断和 DMA 允许的情况下产生中断和 DMA 请求信 号,并在接受到中断和 DMA 应答之后完成中断处理和 DMA 传输。

2.基本组成:包括硬件电路和软件编程两部分
硬件电路包括基本逻辑电路,端口译码电路和供选电路等。
软件编程包括初始化程序段,传送方式处理程序段,主控程序段程序终止与退出程序段及辅助程序段等.

5.12 结合程序查询方式的接口电路,说明其工作过程。

图中设备选择电路用以识别本设备地址,当地地址线上的设备号与本设备号相符时,SEL 有效,可以接收命令;数据缓冲寄存器用于存放欲传送的数据;D 是完成触发器,B 是工作触发器。

以输入设备为例,该接口的工作过程如下:
①当 CPU 通过 I/O 指令启动输入设备时,指令的设备码字段通过地址线送至设备选择电路。
②若该接口的设备码与地址线上的代码吻合,其输出 SEL 有效。
③I/O 指令的启动命令经过“与非”门将工作触发器 B 置“1”,将完成触发器 D 置“0”。
④由 B 触发器启动设备工作。
⑤ 输入设备将数据送至数据缓冲寄存器。
⑥由设备发设备工作结束信号,将 D 置“1”,B 置“0”,表示外设准备就绪。
⑦D 触发器以“准备就绪”状态通知 CPU,表示“数据缓冲满”。
⑧CPU 执行输入指令,将数据缓冲寄存器中的数据送至 CPU 的通用寄存器,再存入主存相关单元。

5.13 说明中断向量地址和入口地址的区别和联系。

区别: 向量地址是硬件电路(向量编码器)产生的中断源的内存地址编号,中断入口地址是中断服务程序首址。

联系: 中断向量地址可理解为中断服务程序入口地址指示器(入口地址的地址),通过它访存可获 得中断服务程序入口地址。

5.14 在什么条件下,I/O 设备可以向 CPU 提出中断请求?

I/O 设备向 CPU 提出中断请求的条件是:I/O 接口中的设备工作完成状态为 1(D=1),中断 屏蔽码为 0(MASK=0),且 CPU 查询中断时,中断请求触发器状态为 1(INTR=1)。

5.15 什么是中断允许触发器?它有何作用?

中断允许触发器是 CPU 中断系统中的一个部件,他起着开关中断的作用(即中断总开关, 则中断屏蔽触发器可视为中断的分开关)。在 CPU 中断系统中,一个中断源的请求要得到响应,必须满足一定的条件。如果某一个中断被开放,且中断请求符合响应条件,CPU 会及时响应该中断请求,并置相应的中断允许触发器状态为 1。

5.16 在什么条件和什么时间,CPU 可以响应 I/O 的中断请求?

CPU 响应 I/O 中断请求的条件是:允许中断触发器是“1”状态(即开中断);I/O 本身有请求又未被屏蔽;经排队后又被选中。 CPU 响应 I/O 中断请求的时间是每条指令执行阶段的结束时刻。因为此时由 CPU 发出中断查询信号才能获取 I/O 的中断请求信号。

5.17 某系统对输入数据进行取样处理,每抽取一个输入数据,CPU 就要中断处理一次,将取样的数据存至存储器的缓冲区中,该中断处理需 P 秒。此外,缓冲区内每存储 N 个数据,主程序就要将其取出进行处理,这个处理需 Q 秒。试问该系统可以跟踪到每秒多少次中断请求?

N 个数据所需的处理时间=P×N+Q 秒 平均每个数据所需处理时间= (P×N+Q)/N 秒;
求倒数得: 该系统跟踪到的每秒中断请求数=N/(P×N+Q)次。 (主程序对数据的处理不是中断处理,因此 Q 秒不能算在中断次数内。)

5.18 试以键盘设备为例,结合中断接口电路,说明其工作过程。

中断接口电路如图所示

下面以键盘设备为例,结合图说明 I/O 中断处理的全过程。当 CPU 通过 I/O 指令的地址码选中某设备后。则
(1)由 CPU 发启动 I/O 设备命令,将接口中的 B 置“1”,D 置“0”;
(2)接口启动输入设备开始工作;
(3)输入设备将数据送入数据缓冲寄存器;
(4)输入设备向接口发出“设备工作结束”信号,将 D 置“1”,B 置“0”,标志设备准备就绪;
(5)当设备准备就绪(D=1)。且本设备未被屏蔽(MASK=0)时,在指令执行阶段的结束时刻,由 CPU 发出中断查询信号;
(6)设备中断请求触发器 INTR 被置“1”,标志设备向 CPU 提出中断请求。与此同时,INTR 送至排队器,进行中断判优;
(7)若 CPU 允许中(EINT=1),设备又被排队选中,即进入中断响应阶段,由中断响应信号 INTA 将队器输出送至编码器形成向量地址;
(8)向量地址送至 PC,作为下一条指令的地址;
(9)由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束后,即无条件转至该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将 数据缓冲寄存器的输入数据送至 CPU 的通用寄存器,再存入主存相关单元;
(10)中服务程序的最后一条指令是中断返回指令,当其执行结束时,即中断返回至原程序的断点处。至此,一个完整的程序中断处理过程即告结束。

5.19 在程序中断方式中,磁盘申请中断的优先级高于打印机。当打印机正在进行打印时, 圆盘申请中断请求。试问是否要将打印机输出停下来,等磁盘操作结束后,打印机输出才能继续进行?为什么?

由于磁盘中断的优先权高于打印机,因此应该将打印机停下来,等磁盘操作结束后,打印机 输出才能继续进行,因为打印机的速度比磁盘输入输出的速度慢并且暂停打印不会造成数据 丢失

5.20 试比较单重中断和多重中断服务程序的处理流程,说明它们不同的原因。

计算机在处理中断的过程中,有可能出现新的中断请求,此时如果 CPU 暂停现行的中断服务程序,转去处理新的中断请求,这种现象称为中断嵌套,或多重中断。倘若 CPU 在执行中断 服务程序时,对新的中断请求不予理睬,这种中断称为单重中断。这两种处理方式的中服务程序略有区别。 如图 (a)、(b)所示。

它们的主要区别是:
在中断服务程序中,开中断指令安排的位置不同。
单重中断的开中断指令安排在“恢复现场”之后,中断返回之前;
多重中断的开中断指令安排在“保护现场”之后。
由于 CPU 一旦响应了中断会自动关中断,因此单重中断在恢复现场之前,CPU 不可能再次响 应任何新的中断请求。
而多重中断在保护现场之后立即“开中断”,因此在此后 CPU 便可以再次响应级别更高的中断源请求,实现多重中断。

5.21 中断向量通过什么总线送至什么地方?为什么?

中断向量通过数据线送至 CPU 中的 PC,中断向量代表了中断服务程序的入口地址,在中断响应阶段根据这个入口地址访问处理程序。

5.22 程序查询方式和程序中断方式都是通过“程序”传送数据,两者的区别是什么?

程序查询方式是用户在程序中安排一段输入输出程序,它由 I/O 指令、测试指令和转移指令等组成。CPU 一旦启动 I/O 后,就进入这段程序,时刻查询 I/O 准备的情况,若未准备就绪就踏步等待;若准备就绪就实现传送。在输入输出的全部过程中,CPU 停止自身操作。 程序中断方式虽也要用程序实现外部设备的输入输出,但它只是以中断服务程序的形式插入 到用户现行程序中。即 CPU 启动 I/O 后,继续自身的工作,不必查询 I/O 的状态。而 I/O 被启动后,便进入自身的准备阶段,当其准备就绪时,向 CPU 提出中断请求,此时若满足条件,CPU 暂停现行程序,转入该设备的中断服务程序,在服务程序中实现数据的传送。

5.23 调用中断服务程序和调用子程序有何区别?

(1)子程序的执行是程序员事先安排好的(由调用子程序的指令转入);中断服务程序的执行一般由随机的中断事件引发。
(2)子程序的执行受到主程序或上层子程序的控制;中断服务程序一般与被中断的现行程序无关。
(3)不存在同时调用多个子程序的情况,因此子程序不需要进行优先级排队;而不同中断源则可能同时向 CPU 提出服务请求,因此需要中断仲裁及优先级排队。
(4)子程序是由调用指令给出目标地址,中断是通过隐指令获得中断服务程序的入口地址。

5.24 试分析图 5.33 所示对多个设备的查询流程,说明这种处理方式存在的问题以及如何改进。

对多个设备的查询流程图如图所示:

这种处理方式一旦发现某个设备需要服务,控制方向就转到与这个设备有关的服务程序,服务结束后,控制方向就转到主程序,不再继续检查其他任何设备是否准备就绪。因此,只有排在前面的设备才能经常检查,排在后面的设备却始终得不到服务。

改进的方法是将控制方向转回到查询子程序,如图所示即为改进后的多个设备查询子程序流程。

用这种处理方法,进入查询子程序后,一旦发现有某一设备请求服务,就把控制方向转至该设备的服务程序,且当这个服务程序结束时,控制方向又转回查询子程序,并由返回点开始继续检查排在刚处理完设备后面的其他设备。可见这种方法每转入查询子程序一次,查询序列就通过一次,只有所有的设备都已查询一遍,控制方向才转向主程序。因此没有哪一个设备会长时间的等待。

5.25 根据以下要求设计一个产生 3 个设备向量地址的电路。
(1)3 个设备的优先级按 A→B→C 降序排列。
(2)A、B、C 的向量地址分别为 110100、010100、000110。
(3)排队器采用链式排队电路。
(4)当 CPU 发来中断响应信号 INTA 时,可将向量地址取至 CPU。

5.26 什么是多重中断?实现多重中断的必要条件是什么?

多重中断是指:当 CPU 执行某个中断服务程序的过程中,发生了更高级、更紧迫的事件,CPU 暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。

实现多重中断的必要条件是:在现行中断服务期间,中断允许触发器为 1,即开中断。

5.27 DMA 方式有何特点?什么样的 I/O 设备与主机交换信息时采用 DMA 方式,举例说明。

DMA 方式的特点是主机与设备并行工作;设备通过 DMA 接口与主存有一条直接数据通路; 当设备和主存交换信息时,不中断现行程序:采用周期窃取方式(此时 CPU 只需将总显得控制权转让给 DMA 使用,暂停一个存取周期访存)。 比如数据传输率很高的 I/O 设备实现成组数据的传送时采用 DMA 方式。

5.28CPU 对 DMA 请求和中断请求的响应时间是否相同?为什么?

1.CPU 对 DMA 请求和中断请求的响应时间不一样,因为两种方式的交换速度相差很大,因此 CPU 必须以更短的时间间隔查询并响应 DMA 请求。响应中断请求是在每条指令执行周期结束 的时刻,而响应 DMA 请求是在存取周期结束的时刻。
2.中断方式是程序切换,而程序又是由指令组成,所以必须在一条指令执行完毕才能响应中 断请求,而且 CPU 只有在每条指令执行周期结束的时刻才发出查询信号,以获取中断请求信 号,若此时条件满足,便能响应中断请求。
3.DMA 请求是由 DMA 接口根据设备的工作状态向 CPU 申请占用总线,此时只要总线未被 CPU 占用,即可立即响应 DMA 请求;若总线正被 CPU 占用,则必须等待该存取周期结束时,CPU 才交 出总线的使用权。

5.29 结合 DMA 接口电路说明其工作过程。

DMA 接口电路如图所示。

DMA 的数据传送过程分为预处理、数据传送和后处理 3 个阶段。
在预处理阶段,CPU 给 DMA 预置如下信息: 给 DMA 控制路基指明数据传送方向是输入(写主存)还是输出(读主存);
向 DMA 设备地址寄存器送入设备号并启动设备;
向 DMA 主存地址寄存器送入交换数据的主存起始地址;
对字计数器赋予要交换的数据个数;

在数据传送阶段,DMA 方式以数据块为单位传送,通常 DMA 与主存交换数据时采用如下三种方式;停止 CPU 访存、周期挪用以及 DMA 和 CPU 交替访问;
后处理阶段是 DMA 中断请求得到响应后,CPU 停止原程序的执行,转去执行中断服务程序, DMA 做的结束工作包括校验送入主存的数据是否正确,确定是否继续使用 DMA 传送其他数据 块。

5.30在DMA的工作方式中,CPU暂停方式和周期挪用方式的数据传送流程有何不同,画图说明。

CPU 暂停方式数据传送流程图如图所示。

CPU 周期挪用方式数据传送流程图如图所示。

5.31 假设某设备向 CPU 传送信息的最高频率是 40000 次/秒,而相应的中断处理程序执行时 间为 40μs,试问该外设是否可用程序中断方式与主机交换信息,为什么?

5.32 设磁盘存储器转速为 3000r/min,分 8 个扇区,每扇区存储 1KB,主存与磁盘存储器数据 传送的宽度为 16 位(即每次传送 16 位)。假设一条指令最长执行时间是 25μs,是否可采用一条指令执行结束时响应 DMA 请求的方案,为什么?若不行,应采取什么方案?

先算出碰盘传送速度,然后和指令执行速度进行比较得出结论。
16 位=2B,道容量=1KB×8÷2B=4K 字;
数据传输率=4K 字 x3000 转/分=200K 字/秒;
一个字传送时间=1÷200K 字/秒=5μs;
5μs<<25μs,所以不能采用一条指令执行结束响应 DMA 请求的方式,应采取每个 CPU 机器周期末查询及响应 DMA 请求的方案(通常安排 CPU 机器周期=主存存取周期)。

5.33 试从下面 7 个方面比较程序查询、程序中断和 DMA 三种方式的综合性能。 (1)数据传送依赖软件还是硬件。 (2)传送数据的基本单位。 (3)并行性。 (4)主动性。 (5)传输速度。 (6)经济性。 (7)应用对象。

(1) 程序查询、程序中断方式的数据传送主要依赖软件,DMA 主要依赖硬件。 (注意: 这里指主要的趋势)
(2) 程序查询、程序中断传送数据的基本单位为字或字节,DMA 为数据块。
(3) 程序查询方式传送时,CPU 与 I/O 设备串行工作;程序中断方式时,CPU 与 I/O 设备 并行工作,现行程序与 I/O 传送串行进行;DMA 方式时,CPU 与 I/O 设备并行工作,现行程 序与 I/O 传送并行进行。
(4) 程序查询方式时,CPU 主动查询 I/O 设备状态;程序中断及 DMA 方式时,CPU 被动接受 I/O 中断请求或 DMA 请求。
(5) 程序中断方式由于软件额外开销时间比较大,因此传输速度最慢;程序查询方式软件额外开销时间基本没有,因此传输速度比中断快;DMA 方式基本由硬件实现传送,因此速度最快; 注意:程序中断方式虽然 CPU 运行效率比程序查询高,但传输速度却比程序查询慢。
(6) 程序查询接口硬件结构最简单,因此最经济;程序中断接口硬件结构稍微复杂一些, 因此较经济;DMA 控制器硬件结构最复杂,因此成本最高;
(7) 程序中断方式适用于中、低速设备的 I/O 交换;程序查询方式适用于中、低速实时处 理过程;DMA 方式适用于高速设备的 I/O 交换;

5.34 解释周期挪用,分析周期挪用可能会出现的几种情况。

所谓周期挪用即在 DMA 传送方式中,当 I/O 设备没有 DMA 请求时,CPU 按程序的要求访 问主存;一旦 I/O 设备有 DMA 请求并与 CPU 访存发生冲突时,CPU 要暂停一个存取周期 访存,把总线控制权让给 DMA。这就好比 I/O 设备挪用了 CPU 的访存周期,故称周期挪用。

设备提出 DMA 请求可能会遇到三种情况:
(1)I/O 设备有 DMA 请求时,CPU 正在进行自身的操作,并不需要访存,即 I/O 的 DMA 访 存和 CPU 访存没有冲突,故不存在周期挪用。
(2)I/O 设备要求访存时,CPU 也要求访存,此时发生冲突。在这种情况下,I/O 的 DMA 请 求优先,即出现了周期挪用,CPU 延缓一个存取周期访存。
(3)I/O 设备有 DMA 请求时,存储器本身正处于“忙”状态,此时必须等待存取周期结束后才能进行访存。

5.35 试从 5 个方面比较程序中断方式和 DMA 方式的区别。

DAM 方式和程序中断方式的区别为:
从数据传送看,程序中断方式靠程序传送,DMA 方式靠硬件传送;
从CPU响应时间看,程序中断方式在一条指令执行结束时响应,而DMA方式在存取周期结束时 CPU 才能响应,即将总线控制权让给 DMA 传送;
程序中断方式有处理异常事件的能力,DMA 方式没有这种能力;
程序中断方式需要中断现行程序,故需保护现场,DMA 方式不必中断现行程序,无需保护现场;
DMA 的优先级比程序中断高。


网站公告

今日签到

点亮在社区的每一天
去签到