主讲:焦明海Email:mhjiao@cc.neu.edu.cn计算机硬件技术基础主讲:焦明海东北大学计算中心主讲:焦明海Email:mhjiao@cc.neu.edu.cn第五章I/O接口§5.1接口概念§5.2CPU与I/O设备之间的接口信息§5.3CPU与外设之间的数据传送方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.1接口概念输入/输出(I/O)接口是主机与I/O设备之间所设置的逻辑控制部件,通过它实现主机与I/O设备之间的信息交换。接口电路有两类:辅助接口电路:接收时钟、中断请求信号输入/输出接口电路:连接外部设备思考问题:微型计算机和外设之间为什么需要接口?主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.1接口概念一般情况下,存储器可以与总线直接相连,而外部设备却需要通过接口与CPU的总线相连,原因是由存储器和外设的特点决定:存储器:功能单一传输方式单一(一次一个字或一个字节)操作方式单一(读和写)制造工艺与CPU相似,速度与CPU相匹配主讲:焦明海Email:mhjiao@cc.neu.edu.cn接口:解决以上差异,协调、匹配外设与主机正常工作的逻辑部件及相应控制软件。§5.1接口概念外设:种类繁多(输入,输出,输入/输出,检测,控制)信号种类不一(A,D,开关量)信号带宽不同(串行,并行)同一个时刻CPU通常只和一个外设交换信息工作速度不同主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.1接口概念CPU寻址外设的两种方式:1.存储器映射方式将I/O端口和存储器单元同等看待,统一编址。即一个端口占用一个存储单元地址。可以使用访问内存的指令访问端口。优点:可以使用的访问指令类型多,使用方便,另外,端口的地址空间较大。缺点:占用内存空间,访问速度慢。主讲:焦明海Email:mhjiao@cc.neu.edu.cn2.隔离I/O方式将I/O端口和存储器做不同处理,分开编址。即CPU在寻址内存和外设时,使用不同的控制信号加以区分。CPU为端口提供了与内存访问空间完全独立的I/O地址空间,使用专用指令IN和OUT访问端口。优点:执行速度快,不占用内存空间。缺点:地址范围小。§5.1接口概念主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.2CPU和I/O设备之间的接口信息1、数据信息数字量信息:离散的二进制形式数据,最小单位为“位(b)”,8位为一个字节(B)。模拟量信息:用模拟电压或模拟电流幅值大小表示的物理量。开关量:只有两个状态,“开”和“关”,用一位二进制数即可表示。主讲:焦明海Email:mhjiao@cc.neu.edu.cn2、状态信息反映当前外设所处的工作状态,实际中通过状态端口信息表现。3、控制信息由CPU发出的用来控制外设工作的信号。例如:控制输入/输出装置的启动或停止问题提出:数据信息、状态信息、控制信息是不同性质的信息,被分别传送,如何实现?§5.2CPU和I/O设备之间的接口信息主讲:焦明海Email:mhjiao@cc.neu.edu.cn问题解决:数据信息、状态信息、控制信息使用不同的端口地址。问题结论:都通过数据总线传送,但放在接口的不同寄存器(I/O端口)中,其中:输入输出的数据信息放在数据缓冲器输入的状态信息放在状态寄存器输出的控制信息放在控制寄存器§5.2CPU和I/O设备之间的接口信息主讲:焦明海Email:mhjiao@cc.neu.edu.cn接口数据输入寄存器数据输出寄存器控制输出寄存器状态输入寄存器§5.2CPU和I/O设备之间的接口信息外部输入或输出设备CPUDBABCB外设通过接口与CPU之间的连接数据控制状态ABCBDB主讲:焦明海Email:mhjiao@cc.neu.edu.cn访问接口的过程描述:1.CPU先将地址信息发送到地址总线,将确定的控制信息发送到控制总线(打开相应端口);2.CPU传输数据信息到数据总线上等待相应端口接收,或者CPU等待接口把指定端口的内容送到数据总线上(收发数据)。注意:地址是端口(寄存器)的地址,而不是接口部件的地址,一个接口部件包含多个端口,即多个地址。§5.2CPU和I/O设备之间的接口信息主讲:焦明海Email:mhjiao@cc.neu.edu.cn几点说明:I/O端口即I/O接口的寄存器,接口中的每个寄存器都有一个端口地址,每个I/O接口都有一组寄存器。CPU与外设的信息交流就是CPU与接口寄存器(端口)的交流。数据输入和数据输出寄存器可以使用同一地址;控制输出和状态输入寄存器可以使用同一地址。§5.2CPU和I/O设备之间的接口信息主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.3CPU和外设之间的数据传送方式§5.3.1无条件传送方式§5.3.2查询传送方式§5.3.3中断传送方式§5.3.4直接存储器存取(DMA)控制方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn定义:在数据传送过程中,输入或输出数据一方不查询、判断对方的状态,进行无条件的数据传送。CPU能够确信外设准备就绪,就不用查询外设的状态而可以直接进行数据传输。例如:CPU要输出一个数据到显示器显示,由于显示器是可以根据输入数据而随时改变显示内容的设备,因而CPU就可以直接向其发送数据,而无需查询。§5.3.1无条件传送方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.3.1无条件传送方式三态缓冲器输入设备地址译码器&数据来自外设数据总线地址总线IO/MRDCPU无条件传送的输入方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.3.1无条件传送方式锁存器输出设备地址译码器&数据到外设数据总线地址总线IO/MWRCPUCE无条件传送的输出方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn定义:CPU执行程序不断读取并测试外设的状态,如果外设处于准备好(输入)或空闲(输出)状态,则执行输入或输出指令,进行数据交换,否则等待。§5.3.2查询传送方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn完成一次数据传送的过程:1)CPU从状态端口读取外设的状态字;2)CPU检测状态字对应位是否满足“就绪”条件;3)如不满足,则重复执行1)2)过程,直到条件满足;4)如果条件满足,表明外设就绪,则传送数据,同时I/O的状态复位。§5.3.2查询传送方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn两种查询传送方式:1.查询式输入2.查询式输出§5.3.2查询传送方式查询式输入方式描述查询式输入是程序控制下的查询式输入方式,在传送前,CPU必须去查询一下外设的状态,当外设准备好了才传送;若未准备好,CPU则等待。主讲:焦明海Email:mhjiao@cc.neu.edu.cn锁存器锁存器三态缓冲器(8位)输入设备地址译码器&数据选通信号DBABIO/MRDCPU三态缓冲器(1位)&准备就绪触发器DQR+5VDiREADY(状态信息)查询式输入接口电路三态缓冲器(8位)三态缓冲器(1位)主讲:焦明海Email:mhjiao@cc.neu.edu.cn三态缓冲器(8位)三态缓冲器(8位)锁存器锁存器输入设备地址译码器&数据选通信号DBABIO/MRDCPU三态缓冲器(1位)&准备就绪触发器DQR+5VDiREADY(状态信息)查询式输入接口电路主讲:焦明海Email:mhjiao@cc.neu.edu.cn1.输入设备准备好后,发选通信号;2.数据进入锁存器锁存,并使D触发器置1,从而使三态缓冲器输出状态信号;3.CPU从状态端口读入状态字;4.CPU检测状态位,如果条件满足;5.CPU从数据端口读入数据;6.清状态字。查询式输入的过程:主讲:焦明海Email:mhjiao@cc.neu.edu.cnD7D08位数据端口(8位)(输入)D7状态端口(1位)(输入)查询式输入时的数据和状态信息:“READY”(1位)数据信息状态信息主讲:焦明海Email:mhjiao@cc.neu.edu.cnLOOP1:INAL,STATUS_PORT;读入状态值TESTAL,80H;READY=1?JZLOOP1;未准备好?循环INAL,DATA_PORT;是,输入数据查询式输入的查询程序:讨论:分析查询程序,熟悉汇编语言在接口电路中的应用。主讲:焦明海Email:mhjiao@cc.neu.edu.cn输出设备地址译码器&数据选通信号DBABIO/MRDCPU状态缓冲器(1位)&忙触发器DQR+5V数据锁存器查询式输出接口电路WRACKBUSY状态忙置1主讲:焦明海Email:mhjiao@cc.neu.edu.cn1.通过IO/M,WR信号将数据写入锁存器,并同时将状态触发器置1,进而使状态位BUSY置1,防止CPU再次传送数据;2.外设读取数据;3.外设向接口发ACK信号,将状态位BUSY清零。查询式输出的过程:主讲:焦明海Email:mhjiao@cc.neu.edu.cnD7D08位数据端口(8位)(输出)D7状态端口(1位)(输出)查询式输出时的数据和状态信息:“READY”(1位)数据信息状态信息主讲:焦明海Email:mhjiao@cc.neu.edu.cnLOOP2:INAL,STATUS_PORT;读状态信息TESTAL,80H;检查BUSY位JNZLOOP2;BUSY=0?MOVAL,STORE;为零,取数据OUTDATA_PORT,AL;数据端口输出查询式输出的查询程序:问题:结合汇编语言,分析程序是如何实现查询输出功能的?主讲:焦明海Email:mhjiao@cc.neu.edu.cn工作原理:当外设准备好数据或可以接收数据时,就通过接口向CPU发出中断请求信号,CPU在执行完当前的一条指令后,检测是否有中断信号,如果有中断信号,则CPU转向执行中断服务程序,执行完毕后CPU返回原来的程序继续执行。§5.3.3中断方式主讲:焦明海Email:mhjiao@cc.neu.edu.cn三态缓冲器输入设备地址译码器1数据RDYDBABIO/MRDCPU&中断请求触发器数据锁存器+5V中断传送方式输入接口电路QDINT状态信号数据锁存器三态缓冲器1&主讲:焦明海Email:mhjiao@cc.neu.edu.cn§5.3.3中断方式1.输入设备准备就绪,发出就绪状态信号,数据暂存在锁存器中,同时中断请求触发器置“1”,向CPU发出中断请求信号;2.CPU响应中断,执行中断服务程序,从数据端口输入数据,同时将中断请求触发器置“0”,撤销中断请求;3.CPU返回被中断的程序。中断传送方式的过程:主讲:焦明海Email:mhjiao@cc.neu.edu.cnDMA传送方式的提出§5.3.4直接存储器存取(DMA)控制方式DMA(DirectMemoryAccess)直接存储器存取控制方式下,I/O设备是和存储器直接交换信息,不需要CPU介入,外设与存储器间的数据传输是在硬件的作用下完成的。优点:传输速度大幅提高。主讲:焦明海Email:mhjiao@cc.neu.edu.cnDMA方式下,外设利用专门的接口电路直接和存贮器进行高速数据传送,而不经过CPU。数据的传输速度基本上决定于外设和存储器的速度。§5.3.4直接存储器存取(DMA)控制方式主存I/O设备CPU改进主存I/O设备总线使用直接存储器传送方式(DMA),实现数据块操作。主讲:焦明海Email:mhjiao@cc.neu.edu.cnDMA控制器具有以下功能:1)向CPU发出HOLD信号。2)当CPU发出HLDA信号后,接管对总线的控制,进入DMA方式。3)发出地址信息,能对存储器寻址,能修改地址指针。4)能发出读或写等控制信号。5)能决定传送的字节数,判断DMA传送是否结束。6)发出DMA结束信号,使CPU恢复正常工作状态。§5.3.