(设备管理)微计算机中处理器与IO设备间数据传输控制方法
CPU和外设之间的数据传送方式有哪几种实际选择某种传输

CPU与外设之间的数据传送方式有哪几种?实际选择某种传输方式时,主要依据是什么?CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。
其中程序方式又可分为无条件传送方式与条件传送方式两种方式。
在CPU外设传送数据不太频繁的情况下一般采用无条件传送方式。
在CPU用于传输数据的时间较长且外设数目不多时采用条件传送方式。
在实时系统以及多个外设的系统中,为了提高CPU的效率与使系统具有实时性能,采用中断传送方式。
如I/O设备的数据传输效率较高,那么CPU与这样的外设进行数据传输是,即使尽量压缩程序查询方式与中断方式中的非数据传输时间,也仍然不能满足要求。
这是因为在这两种方式下,还存在另外一个影响速度的原因,即它们都是按字节或字来进行传输的。
为了解决这个问题,实现按数据块传输,就需要改变传输方式,这就是直接存储器传输方式,即DMA方式。
在查询方式、中断方式与DMA方式中,分别用什么方法启动数据传输过程?在查询方式下,是通过程序来检测接口中状态寄存器中的"准备好"(READY)位,以确定当前是否可以进行数据传输的;在中断方式下,当接口中已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个外部中断请求,CPU在得到中断请求后,如果响应中断,便通过运行中断处理程序来实现输入/输出;在DMA方式下,外设要求传输数据时,接口会向DMA 控制器发DMA请求信号,DMA控制器转而往CPU发送一个总线请求信号,以请求得到总线控制权,如果得到DMA允许,那么,就可以在没有CPU参预的情况下实现DMA传输。
CPU与输入/输出设备之间传送的信息有哪几类?CPU与输入/输出设备之间传送的信息有以下几类:数据信息、状态信息、控制信息。
什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O 端口进行编址?CPU与外设进行数据传输时,各类信息在接口中进入不同的寄存器,一般称这些寄存器为端口。
微机中处理器与IO设备间数据传输共114页文档

谢谢!
36、自己的鞋子,自己知道紧在哪里。——西班牙
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯拉罕·林肯
ห้องสมุดไป่ตู้
39、勿问成功的秘诀为何,且尽全力做你应该做的事吧。——美华纳
40、学而不思则罔,思而不学则殆。——孔子
微机中处理器与IO设备间数 据传输
41、实际上,我们想要的不是针对犯 罪的法 律,而 是针对 疯狂的 法律。 ——马 克·吐温 42、法律的力量应当跟随着公民,就 像影子 跟随着 身体一 样。— —贝卡 利亚 43、法律和制度必须跟上人类思想进 步。— —杰弗 逊 44、人类受制于法律,法律受制于情 理。— —托·富 勒
CPU与外设间的数据传送方式

C
数据线
21CH端口 端口 状态端口 218H端口 端口 数据端口
P
控制线
输 入 外 备
U
13
查询方式输入接口, 参看教材图6-10 查询方式输入接口 参看教材图 PC总线 总线
A15 地址线 ~ A0 D7 ~ D0
IOR
数据 端口 & 地址 译码 218H
MOV DX, 218H IN AL, DX
三、中断传送方式
实现方法: 实现方法:
1. 当外设准备好,向CPU发出中断请求 当外设准备好, 发出中断请求 2. CPU在满足响应中断的条件下,发出中断响应信号; 在满足响应中断的条件下, 在满足响应中断的条件下 发出中断响应信号; 3. CPU暂停当前的程序,转 去执行中断服务程序, 暂停当前的程序, 去执行中断服务程序, 暂停当前的程序 完成与外设的数据传送; 完成与外设的数据传送; 4. CPU从中断服务程序返回,继续执行被中断的程序 从中断服务程序返回, 从中断服务程序返回
一、 无条件传送方式 二、 条件传送方式 ( 查询方式 ) 三、 中断传送方式 四、 DMA传送方式 传送方式
( Direct Memory Access )
2
概述
1。无条件传送(CPU与外设同步工作): 无条件传送( 与外设同步工作): 与外设同步工作 时间是固定的, 是已知的。 外部控制过程各种动作时间是固定的 而且是已知的 外部控制过程各种动作时间是固定的,而且是已知的。 2。查询方式(CPU与外设不同步工作): 查询方式( 与外设不同步工作): 与外设不同步工作 传送前,先查询外设状态,准备好才传送,否则 传送前,先查询外设状态,准备好才传送,否则CPU处于等 处于等 待状态。 待状态。 3。中断方式: 中断方式: 外设与CPU处于并行工作,一旦外设准备好,外设向CPU发 处于并行工作,一旦外设准备好,外设向 外设与 处于并行工作 发 中断申请,条件具备, 暂停原程序执行, 中断申请,条件具备,CPU暂停原程序执行,响应中断,外设 暂停原程序执行 响应中断, 串行工作。 与CPU串行工作。 串行工作 4。DMA方式(高速 及成组交换数据): DMA方式 高速I/O及成组交换数据 方式( 及成组交换数据): CPU不干予,由硬件实现存储器与外设之间交换数据,称直 不干予,由硬件实现存储器与外设之间交换数据, 不干予 存储器与外设之间交换数据 接存取存储器。 接存取存储器。 3
微机内部信息的传送

微机内部信息的传送
如果是通过网线连接的电脑,那就是通过数字信道传输的。
如果通过电话线相连,那就是通过模拟信道传输的。
如果通过光口相连,当然,现在有光口的家用电脑似乎还没有诞生,那就是通过光信道通信的。
不过不管怎么传输,其实都是0和1的数字传输的。
数据传送控制方式有程序直接控制方式、中断控制方式、DMA方式和通道方式4种。
1、程序直接控制方式:由用户进程来直接控制内存或CPU和外围设备之间的数据传送。
2、中断控制方式:利用向CPU发送中断的方式控制外围设备和CPU之间的数据传送。
3、DMA方式:在外围设备和内存之间开辟直接的数据交换通路进行数据传送。
4、通道方式:使用通道来控制内存或CPU和外围设备之间的数据传送。
通道是一个独立与CPU的专管输入输出控制的机构,它控制设备与内存直接进行数。
CPU和外设数据传送方式

CPU和外设数据传送方式
4.2 I/O接口中的I/O端口
一. I/O端口
I/O接口通常包含一组能够与处理器交换信息的寄存器,称为I/O 端口寄存器,简称为I/O端口。
( 接口中可寻址并进行读写的寄存器。)
接口电路 数据缓冲器
数据端口
数据线
读/写/中断 控制逻辑
端口 地址 译码
游戏控制卡
I/O端口地址分配2端00口~地2址0FH
并行口控制卡1
370~37FH
并行口控制卡2
270~27FH
串行口控制卡1
3F8~3FFH
串行口控制卡2
2F0~2FFH
原型插件板(用户可用)
300~31FH
同步通信卡1
3A0~3AFH
同步通信卡2
380~38FH
单显MDA
3B0~3BFH
彩显CGA
• 8088/8086 CPU的I/O编址方式
– 采用I/O独立编址方式 – 最小模式下,通过控制总线中的 M/IO来区分访问存储器还是IO
端口; 最大模式下通过控制总线 MEMR、MEMW 、 IOR 、 IOW 区分访问存储器还是IO端口; – I/O操作只使用20根地址线中的16根: A15 ~ A0 I/O地址范围为0~FFFFH – IBM PC只使用了1024个I/O地址(0~3FFH)
条件传送即程序查询;
CPU和外设数据传送方式
1 无条件程序传送方式
认为外设已经准备就绪,直接与外设传送数据
• 适用于总是处于准备好状态的外设 • 以下外设可采用无条件传送方式:
– 开关 – 发光器件(如发光二极管、7段数码管、灯泡等) – 继电器 – 步进电机 • 优点:软件及接口硬件简单 • 缺点:只适用于慢速简单外设,适应范围较窄
输入输出控制方式

输入输出控制方式
直接程序控制方式 中断控制方式 DMA控制方式 I/O处理机控制方式
一、直接程序控制方式
含义:直接在程序控制下进行微处理器与 外设之间的数据传送。
分类:无条件传送方式和条件传送方式两 种。
1.无条件传送方式 含义:不查询外设状态而直接进行输
入输出的一种方式。
内存/外设
2022年3月14日星期一
无需CPU指令
DMA控制器
外设/内存
四、I/O处理机控制方式
尽管DMA方式优点比较突出,但在DMA进行 传输之前,对DMA的初始操作、对数据的运算和处 理等都需要处理器事先干预。为了让处理器彻底摆 脱管理和控制I/O设备的负担,引入了I/O处理机控 制方式。这种方式下,由专用I/O协处理器负责I/O 操作和处理。
输出
读状态口的状态
Y BU SY =1 ? N 输出数据
二、中断控制方式பைடு நூலகம்
含义:在满足传输条件时,外设向CPU发请求传
输的中断信号,CPU接收请求后进入服务程序,在 中断服务程序中进行输入输出操作。
特点:无需查询等待,CPU利用率大大提高。 不足:中断控制方式仍需要一系列本与输入输出
无关的操作(如压栈保护等),因此对于高速I/O设 备效率仍不算快。
特点:简单、经济,但可靠性差。
2022年3月14日星期一
2.条件传送方式
含义:首先查询外设状态,满足条件时才
进行数据的传送,因此也叫查询传送方式。
特点:简单、可靠性高,但CPU效率低。 开始
输入状态信息
准备输出数据
输入
2022年3月14日星期一
N RE A D Y =1 ?
Y 输入数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 第5章 微计算机中处理器与I/O设备间数据传输控制方法 1.试说明一般中断系统的组成和功能。 答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。 2.什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系? 答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。 3.什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同? 答:硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。 4.试叙述基于8086/8088的微机系统处理硬件中断的过程。 答:以INTR请求为例。当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。 5.在PC机中如何使用“用户中断”入口请求中断和进行编程? 答:PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。在应用程序中把主片8259A D2屏蔽位清0,把从片8259A D1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。中断服务程序结束前向主片8259A发中断结束命令。应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。 6.8259A中断控制器的功能是什么? 答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。 7.8259A初始化编程过程完成那些功能?这些功能由那些ICW设定? 答:初始化编程用来确定8259A的工作方式。ICW1确定8259A工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2用来指定8个中断请求的类型码。ICW3在多片系统中确定主片与从片的连接关系。ICW4用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。 8.8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么? 答:在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A将ISR 2
中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。 9.8259A的初始化命令字和操作命令字有什么区别?它们分别对应于编程结构中那些内部寄存器? 答:8259A的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4内部寄存器。8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3内部寄存器中。8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。 10.8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别? 答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。 11.若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位? 答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。 12.试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H~27H,8259A的端口地址为B0H和B1H。 答:ICW1=1BH (送B0H端口),ICW2=20H (送B1H端口),ICW4=03H (送B1H端口) 13.比较中断与DMA两种传输方式的特点。 答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。 直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。 14.DMA控制器应具有那些功能? 答:DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数据传输过程。 15.8237A只有8位数据线,为什么能完成16位数据的DMA传送? 答:I/O与存储器间在进行DMA传送过程中,数据是通过系统的数据总线传送的,不经过8237A的数据总线,系统数据总线是具有16位数据的传输能力的。 16.8237A的地址线为什么是双向的? 答:8237A的A0~A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0~A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。当8237A取得总线控制权进行DMA传送时,A0~A3输出低4位地址信号供存储器寻址对应单元用,A0~A3必需是双向的。 17.说明8237A单字节DMA传送数据的全过程。 3
答:8237A取得总线控制权以后进行单字节的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃。若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。 18.8237A单字节DMA传送与数据块DMA传送有什么不同? 答:单字节传送方式下,8237A每传送完一个字节数据就释放总线,传送下一字节时再请求总线的控制权。块传送方式下8237A必须把整个数据块传送完才释放总线。 19.8237A什么时候作为主模块工作,什么时候作为从模块工作?在这两种工作模式下,各控制信号处于什么状态,试作说明。 答:8237A取得总线控制权后,开始进行DMA传送过程,此时8237A作为主模块工作。8237A在被处理器编程或读取工作状态时,处于从模块工作状态。 8237A处于从模块时,若CS#=0、HLDA=0说明它正被编程或读取状态,IOR#与IOW#为输入,A0~A3为输入。8237A处于主模块时,输出地址信号A0~A15 (低8位经A0~A7输出,高8位经DB0~DB7输出)。8237A还要输出IOR#、IOW#、MEMR#、MEMW#、AEN、ADSTB等有效信号供DMA传送过程使用。 20.说明8237A初始化编程的步骤。 答:(1)写屏蔽字,阻止某通道的DMA请求。(2)写命令字(8号地址),确定信号有效电平、优先级方式、通道工作允许等。(3)写模式字(B号地址),确定某通道传送方式、传送类型、地址寄存器变化方式等。(4)置0先/后触发器。(5)设置地址寄存器、字节数寄存器的初值。(6)清除某通道屏蔽位,允许8237A响应其DMA请求。 21.8237A选择存储器到存储器的传送模式必须具备那些条件? 答:必须使用8237A内部的暂存器作为数据传送的缓冲器。8237A通道0的地址寄存器存放存储器的源地址、通道1的地址寄存器存放存储器的目的地地址、字节计数器存放传送的字节数,建立通道0的软件DMA请求来启动这一传输过程。 21.利用8237A的通道2,由一个输入设备输入一个32KB的数据块至内存,内存的首地址为34000H,采用增量、块传送方式,传送完不自动初始化,输入设备的DREQ和DACK都是高电平有效。请编写初始化程序,8237A的首地址用标号DMA表示。 答:设存储器页面寄存器内容已被置为3。8237A初始化程序如下: MOV AL, 06H ;屏蔽通道2 MOV DX, DMA+0AH ; OUT DX, AL ; MOV AL, 80H ;写通道2命令字:DREQ、 MOV DX, DMA+08H ;DACK高电平有效,正常 DUT DX, AL ;时序、固定优先级、允许8237A工作等。 MOV AL, 86H ;写通道2模式字:块传 MOV DX,DMA+0BH ;输、写传输、地址增、 OUT DX, AL ;禁止自动预置等。 MOV DX,DMA+0CH ;置0先/后触发器 OUT DX,AL ; MOV AL,00H ;设通道2基地址为4000H MOV DX,DMA+04H ; OUT DX,AL ; MOV AL, 40H ; OUT DX, AL ; MOV AL, 0FFH ;设通道2基字节数为