* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ① 当中断处理的CPU控制权转移涉及到特权级改变时,必须把 当前的SS和ESP两个寄存器的内容压入系统堆栈予以保存。 ② 标志寄存器EFLAGS的内容也压入堆栈。 ③ 清除标志触发器TF和IF。 ④ 当前的代码段寄存器CS和指令指针EIP也压入此堆栈。 ⑤ 如果中断发生伴随有错误码,则错误码也压入此堆栈。 ⑥ 完成上述中断现场保护后,从中断向量号获取的中断服务子 程序入口地址(段,偏移)分别装入CS和EIP,开始执行中断 服务子程序。 ⑦ 中断服务子程序最后的IRET指令使中断返回。保存在堆栈中 的中断现场信息被恢复,并由中断点继续执行原程序。 中断处理过程 DMA方式 1.DMA的基本概念 直接内存访问(DMA)是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行 。 DMA方式一般用于高速传送成组数据。DMA控制器将向内存发出地址和控制信号,修改地址,对传送的字的个数计数,并且以中断方式向CPU报告传送操作的结束。 DMA能执行以下一些基本操作: (1) 从外围设备发出DMA请求; (2) CPU响应请求,把CPU工作改成DMA操作方式,DMA控 制器从CPU接管总线的控制; (3) 由DMA控制器对内存寻址,即决定数据传送的内存单元地 址及数据传送个数的计数,并执行数据传送的操作; (4) 向CPU报告DMA操作的结束。 注意 在DMA方式中,一批数据传送前的准备工作,以及传送结束后的处理工作,均由管理程序承担,而DMA控制器仅负责数据传送的工作。 2.基本的DMA控制器 (1)DMA控制器的基本组成 内存地址计数器 用于存放内存中要交换的数据的地址。在DMA传送前,须通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当DMA传送时,每交换一次数据,将地址计数器加“1”,从而以增量方式给出内存中要交换的一批数据的地址。 字计数器 用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1” ,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发中断信号。 数据缓冲寄存器 用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。 “DMA请求”标志 每当设备准备好一个数据字后给出一个控制信号,使“DMA请求” 标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA请求”标志复位,为交换下一个字做好准备。 “控制/状态”逻辑 由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。 中断机构 当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是I/O系统中不同的中断事件。 DMA控制器结构 DMA与CPU的连接 当某个外围设备请求DMA服务时,操作过程如下: 1.DMA控制器接到设备发出的DMA请求时,将请求转送到CPU。 2.CPU在适当的时刻响应DMA请求。若CPU不需要占用总线则 继续执行指令;若CPU需要占用总线,则CPU进入等待状态。 3.DMA控制器接到CPU的
原创力文档

文档评论(0)