您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 综合/其它 > 北航计算机组成原理讲义_6.I-O接口与总线
I/O接口与总线MyNewEmail:xudliu@rt-info.com.cn本讲内容I/O接口程序查询I/O方式程序中断I/O方式直接存储器访问(DMA)I/O方式I/O通道总线本讲内容I/O接口程序查询I/O方式程序中断I/O方式直接存储器访问(DMA)I/O方式I/O通道总线1.1I/O接口外部设备并不直接挂接在系统总线上,而是通过I/O接口最为桥梁实现与系统总线的连接各种外设使用不同的操作方法,由CPU来直接控制不同的外设不切实际。外设的数据传送速度比存储器和处理器的速度慢得多,使用高速的系统总线与慢速的外设直接连接,不切实际。外设经常使用与处理器不同的数据格式和字长度。I/O接口外部设备SystemBusDataControlStatus1.1I/O接口I/O接口的功能识别I/O地址,即地址译码;实现主机与I/O设备的数据交换、控制命令的传递和状态检测与传递;提供缓冲、暂存和驱动能力;进行数据格式、类型方面的转换(串并行转换,电平转换等);支持一定的I/O方式(程序查询、程序中断、DMA等);I/O控制与定时I/O接口的分类按传送数据格式:串行接口,并行接口串行接口适合速度低、传输距离长的环境并行接口适合速度高、传输距离短的环境按I/O方式:程序查询接口、中断接口、DMA接口、通道控制接口按时序控制方式:同步接口、异步接口同步接口:数据传送由一个统一的时钟信号同步控制异步接口:数据传送采用异步应答方式控制1.1I/O接口I/O操作的过程(从外设到处理器的过程)处理器查询I/O接口状态,以检查连接设备的状态;I/O接口回送设备状态;如果设备可用,并准备好,CPU向I/O接口发出命令,请求传送;I/O接口获得来自外设的数据(字或字节);数据从I/O接口传送自CPU。I/O设备的编址I/O设备的编址=I/O接口的编址编址方式独立编址方式:存储器地址与I/O地址分开,CPU具有专用的I/O指令,系统总线中具有区别存储器读写和I/O操作的控制信号,并以此区别地址总线上的地址是存储器地址还是I/O地址。统一编址方式:存储器地址与I/O地址统一考虑,地址空间的一部分是存储器,另一部分是I/O,支持存储器操作的指令都可用于I/O操作。I/O地址(I/O接口地址,I/O端口地址):实际上是I/O接口电路中寄存器的地址。1.1I/O接口I/O接口的结构DataRegisterStatus/ControlRegisterPeripheralDeviceInterfaceLogicI/OLogicPeripheralDeviceInterfaceLogicDataAddressControlSystemBusInterfaceDataControlStatusDataControlStatusDeviceInterface1.1I/O接口I/O接口地址选择(译码)I/O接口地址是I/O接口电路中寄存器的地址单独编址方式下的I/O地址选择电路DataBusBQDQBQDQBQDQBQDQDecoderAddressBusIORI/ORegisterI/O接口程序查询I/O方式程序中断I/O方式直接存储器访问(DMA)I/O方式I/O通道总线2.1程序查询I/O方式I/O接口设置状态寄存器以表示外部设备的工作状态CPU通过不断读取状态寄存器以查询外部设备的状态在外部设备准备就绪的时候,CPU通过I/O接口中的数据寄存器与外设完成数据交换。读状态寄存器Ready?执行I/O操作NoYesRdSta:MOVDX,3FDHINAL,DXCMPAL,61HJNERdStaMOVDX,3F8HINAl,DX2.1程序查询I/O方式程序查询I/O接口的基本组成StatusRegisterDataRegister(InputRegister,OutputRegister)AddressSelectedLogicBusInterfaceLogic程序查询I/O方式的特点I/O操作由CPU直接完成(通过执行I/O指令完成)外设速度慢,CPU速度快,在外设准备过程中,CPU处在不断的查询之中,CPU的效率得到了极大的浪费。外设与CPU完全串行工作。I/O接口程序查询I/O方式程序中断I/O方式直接存储器访问(DMA)I/O方式I/O通道总线3.1程序中断I/O方式中断的概念机器出现了一些紧急事务,CPU不得不停下当前正在执行的程序,转去处理紧急事务,当紧急事务处理完后,继续执行被中断的程序。中断是随机的;主程序:被中断的程序;中断服务子程序:处理中断事务的程序;中断源与中断编码中断向量:中断服务子程序的入口地址;中断向量表:保存所有中断向量的内存区域中断的分类非屏蔽中断与可屏蔽中断程序中断与简单中断硬中断与软中断(软中断不是真正的中断)3.1程序中断I/O方式中断申请中断源提出中断申请;中断控制器接受中断源的申请;根据一定的排优策略将中断申请传递给CPU。中断的排优固定排优电路可编程中断响应条件:当前执行的程序允许被中断(即中断允许标志位为允许中断),非屏蔽中断不受中断允许标志位的限制。时间:当前指令执行完后,才能相应中断在允许中断的前题下,每条机器指令的执行周期中实际上包含一个中断周期。3.1程序中断I/O方式中断处理保护现场:当前程序计数器的值和程序状态字入栈;获取中断向量:根据中断编码从中断向量表中获取中断向量;转移到中断服务子程序执行中断服务子程序中断返回:恢复现场,返回到被中断的主程序的断点,继续执行主程序。主程序中断服务子程序3.1程序中断I/O方式设备控制器或其他系统硬件发出中断处理器结束当前指令的执行处理器发出中断认可信号处理器将PSW和PC压入堆栈处理器获取中断向量(PC值)保存其余处理器的状态处理中断事务恢复处理器状态取回原PC和PSW中断返回硬件实现软件实现3.1程序中断I/O方式中断I/O接口的基本组成DataInputRegisterDataOutputRegisterStatusRegisterControlRegisterAddressSelectedLogicInterruptControlLogicBusInterfaceLogic中断I/O方式的特点I/O操作仍然由CPU通过I/O指令完成在外设准备阶段,CPU可以执行其他程序,仅在外设准备就绪后,CPU才中断正在执行的程序,处理I/O事务。在外设准备阶段,CPU与外设的工作可以认为是并行的。中断I/O方式是目前最主要的I/O方式3.2中断控制器82598259AD0D1D3D4D5D6D7D8CAS0A0CSRDWRSP/ENINTINTAIR0IR1IR2IR3IR4IR5IR6IR7CAS2CAS1D0-D7:双向数据线,通常连接处理器IR0-IR7:中断请求输入,接其他I/O接口的中断申请INT:中断请求输出,接处理器中断请求输入。INTA:中断响应输入A0:用于选择8259内部的命令字CAS0-CAS3:用于级联CS:片选信号RD,WR:读写控制信号3.2中断控制器8259数据缓冲读写逻辑级联缓冲与比较器中断请求寄存器优先级分析电路中断服务寄存器中断屏蔽寄存器IREQ0IREQ1IREQ2IREQ3IREQ4IREQ5IREQ6IREQ7A0CSRDWRCAS0CAS1CAS2SP/END0~D7INTINTA3.2中断控制器82598086CPU8259InterruptControlINTAINTRI/O接口I/O接口I/O接口IRQ0IRQ1IRQ78259中断基本连接图3.2中断控制器82598086CPUIR0IR1IR2IR3IR4IR5IR6IR7INTAINTIRQ00IR0IR1IR2IR3IR4IR5IR6IR7IRQ01IRQ07IRQ70IR0IR1IR2IR3IR4IR5IR6IR7IRQ71IRQ77INTINT8259中断级联连接图3.2中断控制器82598259A编程初始化命令字(InitializationCommandWord:ICW):4个ICWICW1:编程8259A的基本操作,A0=0ICW2:选择用于中断请求输入的中断向量号,A0=1。ICW3:仅用于ICW1指示工作方式是级联方式时,A0=1。ICW4:处理器的中断工作方式,A0=1。操作命令字(OperationCommandWord:OCW):3个OCW。OCW1:用于设置和读取中断屏蔽寄存器,A0=1OCW2:仅在8259A在ICW4中未选择AEOI(自动结束中断)时有意义,用于选择中断结束方式,A0=0。OCW3:选择要读的寄存器、特殊屏蔽寄存器的操作以及查询命令,A0=0。3.2中断控制器82598259A编程(续)状态寄存器:3个可读状态寄存器。IRR与ISR通过编程OCW3来读出,IMR通过编程OCW1来读出。读IMR时,需要A0=1;读IIR和ISR时,需要A0=0,此时OCW3的D0和D1用于选择要读的寄存器是IIR还是ISR。IRR:InterruptRequestRegister中断请求寄存器ISR:In-ServiceRegister服务寄存器IMR:InterruptMaskRegister中断屏蔽寄存器有关8259AICW、OCW、状态寄存器及8259A编程的具体说明,已超出了本课程的范围,由兴趣者可以查阅后续课程《接口与通信》3.2中断控制器8259PIC1EQU48H;8259APortA0=0PIC2EQU49H;8259APortA0=1ICW1EQU1bHICW2EQU80HICW4EQU3OCW1EQU0FEHMOVAL,ICW1;编程ICW1OUTPIC1,ALMOVAL,ICW2;编程ICW2OUTPIC2,ALMOVAL,ICW4;编程ICW4OUTPIC2,ALMOVAL,OCW1;编程OCW1OUTPIC2,ALSTI;开中断I/O接口程序查询I/O方式程序中断I/O方式直接存储器访问(DMA)I/O方式I/O通道总线4.1DMA的一般概念程序I/O与中断I/O的不足I/O传送速度受处理器测试和给设备提供服务的速度的限制处理器直接负责管理I/O,对于每一次I/O传送,处理器必须执行一些指令。DMA(DirectMemoryAccess)CPU对总线的控制被临时禁止。DMA控制器接管总线控制权,控制数据直接在存储器与外设之间高速交换,CPU不再介入具体的I/O操作,由DMA控制器来负责提供存储器地址信号、读写控制信号等。CPU与I/O设备在更大的程度上并行工作,效率更高。DMA方式适合高速批量的数据传输,如视频显示刷新、磁盘存储系统的读写,存储器到存储器的传输等。4.2DMA过程CPU的工作:初始化DMA控制器设置数据传送方向:是请求读还是请求写(对存储器而言)设置I/O接口地址:DMA操作所涉及的I/O接口的地址设置存储器起始地址:读或写存储器的起始单元地址设置传送的数据数量:传送数据的字数有关中断方式的设置:DMA结束后通过中断方式请求CPU处理DMA请求当接口做好数据传输的准备,通过有关逻辑向CPU发出DMA请求信号。DMA响应CPU接到DMA请求,在当前总线周期操作结束后,暂停CPU对系统总线的控制和使用,发出DMA响应信号,并交出系统总线的控制权。4.2DMA过程DMA操作DMA控制器接到DMA应答信号后,通过控制逻辑向系统总线发送存储器地址信号、存储器读写控制信号、I/O接口读写控制信号等,完成一次数据传送。这些操作完全由硬件控制,一般仅需要一个总线周期,所以这种方式称为周期窃用(cycle-stealing)方式。所有数据传送结束后,通过中断方式告知CPU进行善后处理。CPU仅在开始DMA
本文标题:北航计算机组成原理讲义_6.I-O接口与总线
链接地址:https://www.777doc.com/doc-6040110 .html