2009年 7月 27日 8时 37分第八章 输入输出系统
基本概念
程序查询方式
程序中断方式
DMA方式
通道方式
通用 I/O标准接口
2009年 7月 27日 8时 37分 2年 月 日 时 分基本概念 —— 输入输出系统的功能
输入输出系统的功能:
– 为了得到高效可靠的数据传输,选择输入输出设备。
– 在选定的输入输出设备和 CPU之间进行数据交换。
2009年 7月 27日 8时 37分 3年 月 日 时 分
输入输出设备和 CPU交换数据的过程:
– 输入过程:
CPU把一个地址值放在地址总线上,这一步将选择一个输入设备
CPU等候输入设备的数据成为有效
CPU从数据总线上读入数据,并放在一个相应的寄存器中
– 输出过程:
CPU把一个地址值放在地址总线上,这一步将选择一个输出设备
CPU把数据放在数据总线上
输出设备认为数据有效,从而把数据取走。
2009年 7月 27日 8时 37分 4年 月 日 时 分基本概念 —— CPU和外围设备的定时
CPU和外围设备的定时,分为三种情况:
– 慢速外围设备
– 中速外围设备
– 高速外围设备
2009年 7月 27日 8时 37分 5年 月 日 时 分基本概念 —— CPU和外围设备的定时
速度极慢或简单的外围设备:对于这类设备 CPU总是能足够快地作出响应,也可以说,CPU认为输入的数据一直有效,在这种情况下,CPU只要接受和发送数据就可以了。
常用的有:机械开关,显示二极管等。
开关 ------CPU认为输入数据一直有效 ;
显示二极管 ------输出一定准备就绪。
2009年 7月 27日 8时 37分 6年 月 日 时 分基本概念 —— CPU和外围设备的定时
慢速或中速的外围设备,CPU与这类设备之间的数据交换通常采用异步定时方式。
在这种情况下,CPU和外设之间用问答信号进行定时的方式叫做应答式数据交换 。
采用异步定时方式设备状态,工作 (忙 )
就绪 等待结束 再启动 等待 启动暫停
2009年 7月 27日 8时 37分 7年 月 日 时 分启动就绪?
传送一个字传送完?
CPU发响应信号复位就绪结束
N
N
Y
Y
CPU接收外设一批数据字的过程,
2009年 7月 27日 8时 37分 8年 月 日 时 分基本概念 —— CPU和外围设备的定时
高速外围设备,CPU和这类设备之间通常采用同步定时方式,一旦 CPU和外设发生同步,他们之间的数据交换用时钟控制来进行。
1)同步定时方式
CPU以等间隔的速率执行 I/O指令。
靠时钟脉冲控制进行。
2)DMA方式
2009年 7月 27日 8时 37分 9年 月 日 时 分基本概念 —— CPU和外围设备之间信息交换的方式
CPU和外设之间信息交换的方式:
– 程序查询方式
– 程序中断方式
– 直接内存访问( DMA)方式
– 通道方式
– 外围处理机方式
2009年 7月 27日 8时 37分 10年 月 日 时 分基本概念 —— CPU和外围设备之间信息交换的方式
I/O控制方式主要由程序实现 主要由附加硬件实现程序查询方式程序中断方式 DMA方式 通道方式
PPU方式
2009年 7月 27日 8时 37分 11年 月 日 时 分程序查询方式 —— 基本概念
程序查询方式,通过由 I/O指令所编的程序,
来控制主机与外设之间的信息传送。
工作过程,先由主机通过启动指令启动外设工作,启动后主机用测试指令不断查询外设工作是否完成,一旦外设工作完成,就可进行数据传送了。
特点,这种方式控制简单,但是主机和外设是串行工作的。当外设速度很慢时,主机大量时间被消耗在测试等待中,使主机不能充分发挥效率。
2009年 7月 27日 8时 37分 12年 月 日 时 分程序查询方式 —— 基本概念
CPU
存储器 I/O控制器外设状态位
CPU需要不断监测状态位以确定是否该做下一个 I/O 操作 。 由于
CPU比 I/O设备快得多,
所以轮询就要浪费大量的 CPU时间 。
2009年 7月 27日 8时 37分 13年 月 日 时 分程序查询方式 —— 程序流程图设置计数值设置内存缓冲区首址启动外设传送一个数据修改内存地址结束 I/O传送修改计数器准备好?
传送完?
程序查询方式的程序流程图否是是否
2009年 7月 27日 8时 37分 14年 月 日 时 分程序中断方式
中断:是指 CPU中止现行程序的执行,转而执行另一个更紧迫事件的程序,一旦处理完毕,自动返回原来被中断的程序。
中断技术的出现,提供了一种以响应外部异常事件而改变状态流程的有效手段,它支持了多重程序的运行及多个用户同时共享整个计算机资源,充分发挥了计算机的高速处理和实时处理能力,以及自动处理机内部故障的能力。
2009年 7月 27日 8时 37分 15年 月 日 时 分程序中断方式 —— 基本概念
中断的基本概念
– 中断问题的提出
– 中断类型
– 多重中断和单级中断
– 中断的功能
2009年 7月 27日 8时 37分 16年 月 日 时 分
中断问题的提出:
– 在程序查询方式中,CPU和外设的工作是串行的,当 CPU和外设交换信息时,就把 CPU的控制权交给了该设备,而 CPU只能做测试等待,
直到外设工作完成。 CPU的大部分工作时间被浪费了。
– 假若 CPU在启动外设工作后,设备释放对 CPU
的控制权使 CPU继续工作,当外设工作完成后向 CPU发中断请求信号,若 CPU响应中断,则停止正在执行的程序,转中断服务程序为该程序服务,这样就能 实现 CPU和外设并行工作,
使 CPU的效率充分发挥。
2009年 7月 27日 8时 37分 17年 月 日 时 分程序中断方式 —— 基本概念
中断类型:
– 按中断处理方法分类:
程序中断:主机响应中断请求后,通过执行一段程序来处理有关的事宜。
简单中断:主机响应中断请求后,不需要执行服务程序,而是让出一个或几个主存周期,使 I/O设备和主存直接交换数据 。
2009年 7月 27日 8时 37分 18年 月 日 时 分程序中断方式 —— 基本概念
– 按中断源分类:
– 强迫中断:是随机产生的。产生强迫中断的中断源有四个方面:
内中断:由硬件故障及程序故障引起的中断。
外中断:是由系统配置的外部设备引起的中断。
正在执行着的现行程序所引起的中断。
处理机之间的中断。
– 自愿中断(程序自中断):事先在程序某初设置断点,并借用中断处理方式保护现场,
引出一段服务程序。
2009年 7月 27日 8时 37分 19年 月 日 时 分程序中断方式 —— 基本概念
按中断源是否提供向量地址分类:
– 向量中断,CPU响应中断后,由中断机构自动地将向量地址通知处理机,由向量地址指明中断向量位置并实现向量切换,不必经过处理程序来查询中断源的中断功能,称为向量中断 。
– 非向量中断:是不能直接提供中断服务程序的入口地址,而要采用软件查询措施最后找到服务程序入口地址,然后再转入相应的中断服务程序。
2009年 7月 27日 8时 37分 20年 月 日 时 分程序中断方式 —— 基本概念多级中断和单级中断:
– 单级中断:在执行中断的过程中,如果只能为本次中断服务,不允许打断服务程序,只有在服务程序完成后,才能响应新的请求,称为单级中断。
– 多级中断:如在一次服务程序执行中,
允许优先级高的 中断 级别低的中断服务程序,在保存断点和现场后,转去响应优先级别更高的中断程序,并执行新的中断服务程序。
主程序第 1中断服务程序第 2中断服务程序
2009年 7月 27日 8时 37分 21年 月 日 时 分
根据系统的配置不同,多级中断可分为一维多级中断和二维多级中断。
一维多级中断 是指每一级中断里只有一个中断源,而 二维多级中断 是指每一级中断里又有多个中断源。
2009年 7月 27日 8时 37分 22年 月 日 时 分程序中断方式 —— 基本概念
中断功能:
– 引入中断系统后,可使 CPU和 I/O设备并行工作,从而大大提高了 CPU的工作效率。
– 利用中断来处理故障,提高了机器的可靠性。
– 利用中断进行实时处理。实时处理是指在某个事件或现象出现的实际时间内及时地进行处理,而不是积压起来再进行批处理。
– 利用中断进行人机对话。
– 实现多道程序的运行,需要借助于中断系统。
2009年 7月 27日 8时 37分 23年 月 日 时 分程序中断方式 —— 中断的基本接口
中断的基本接口:
– 工作标志触发器 BS
– 就绪标志触发器 RD
– 允许中断触发器 EI
– 中断请求触发器 IR
– 中断屏蔽触发器 IM
2009年 7月 27日 8时 37分 24年 月 日 时 分程序中断方式 —— 中断的基本接口控制
IM IR
公用寄存器
PC IR
0 1
BS
EI RD
数据缓冲寄存器中断向量逻辑 设备选择动作开始动作结束传送数据
CPU 接口 设备
2009年 7月 27日 8时 37分 25年 月 日 时 分程序中断方式 —— 中断的基本接口
各个触发器的具体功能:
– 准备就绪标志( RD):一旦设备做好一次数据的接受和发送,便发出一个设备动作完毕信号,使 RD标志置,1”。
– 允许中断触发器( EI):可以用程序指令来置位。 EI为 1时,某设备可以向 CPU发出中断请求; EI为 0时,不能向 CPU发出中断请求。
这意味着某中断源被禁止。
2009年 7月 27日 8时 37分 26年 月 日 时 分程序中断方式 —— 中断的基本接口
– 中断请求触发器( IR):暂存中断请求线上由设备发出的中断请求信号。
当 IR为,1”时,表示设备发出了中断请求。
– 中断屏蔽触发器( IM):是 CPU是否受理中断或批准中断的标志。 IM为,0”
时,CPU可以受理外界的中断请求,反之,CPU 不受理外界的中断。
2009年 7月 27日 8时 37分 27年 月 日 时 分程序中断方式 —— 中断的基本接口控制
IM IR
公用寄存器
0 1
BS
EI RD
数据缓冲寄存器中断向量逻辑 设备选择PC IR
动作开始动作结束传送数据数据缓冲寄存器
1 2
3
4
5
67
8
公用寄存器
10
9
2009年 7月 27日 8时 37分 28年 月 日 时 分程序中断方式 —— 中断结构
中断过程:
– 中断过程由中断请求、中断响应、状态保存、中断屏蔽、中断处理、恢复和返回组成。
中断源:
– 中断源是引起中断的事件及发生中断请求的来源。
中断结构:是指处理机与设备、设备与设备之间在中断系统中互相连接的关系。
2009年 7月 27日 8时 37分 29年 月 日 时 分程序中断方式 —— 中断结构
中断结构
– 中断请求的提出
– 中断请求的传送和中断的优先排队
2009年 7月 27日 8时 37分 30年 月 日 时 分程序中断方式 —— 中断结构
中断请求的提出:
– 中断申请:由中断源向处理机发出的中断请求,称为中断请求。中断源发中断请求要满足两个条件:
外设工作已经完成。
该外设的中断没有被系统屏蔽。
2009年 7月 27日 8时 37分 31年 月 日 时 分程序中断方式 —— 中断结构
中断请求的传送和中断的优先排队:
– 中断源的优先权
– 几种排队判优的方法
单线请求软件查询判优
单线请求菊花链响应
多线请求判优响应
多线请求菊花链响应
2009年 7月 27日 8时 37分 32年 月 日 时 分程序中断方式 —— 中断结构
中断源的优先权:
– 在各种类型的中断请求中:
一般是故障引起的中断最优先;
其次是简单中断及 I/O程序中断。
– 在 I/O程序中断中:
一般高速外设优先级高于低速外设的优先级;
输入设备的优先级高于输出设备的优先级。
2009年 7月 27日 8时 37分 33年 月 日 时 分程序中断方式 —— 中断结构
排队判优的方法:
单线请求软件查询判优,所有的设备的中断请求连到一根公用的中断请求线 IRQ
上。
2009年 7月 27日 8时 37分 34年 月 日 时 分
CPU
I/O I/O
程序中断方式 —— 中断结构具有公共请求线的中断请求传送方案保存断点和现场有 0#的中断请求?
有 1#的中断请求?
有 n#的中断请求?
恢复现场执行 0#设备中断服务程序执行 1#设备中断服务程序执行 n#设备中断服务程序是否是否是否软件查询中断源
IRQ
2009年 7月 27日 8时 37分 35年 月 日 时 分程序中断方式 —— 中断结构
单线请求菊花链响应:
各设备的中断请求仍公用一根请求线来传送,当 CPU接到中断请求后设备的优先级不是用查询程序依排队次序来决定,
而是用硬件排队线路来代替软件排队。
即用硬接线逻辑将设备连在中断响应线
INACK上,使优先级最高的设备离 CPU最近。
2009年 7月 27日 8时 37分 36年 月 日 时 分
CPU
INACK 1#
设备
2#
设备
n#
设备程序中断方式 —— 中断结构单线请求菊花链响应地址 数据线控制线
IRQ
2009年 7月 27日 8时 37分 37年 月 日 时 分程序中断方式 —— 中断结构
多线请求判优响应,每一各设备分配一个优先级,每一个设备都通过各自的中断请求线,将中断请求信号传送到 CPU,
在 CPU内设置有判有逻辑,接受各中断请求信号。并且给每一个设备设一根中断响应线传送中断响应信号。
2009年 7月 27日 8时 37分 38年 月 日 时 分
IRQ
CPU
INVEC
判优逻辑 1#
设备
2#
设备
n#
设备程序中断方式 —— 中断结构多线请求判优响应
IRQn
INACKn
IRQ2
INACK2
IRQ1
INACK1
2009年 7月 27日 8时 37分 39年 月 日 时 分程序中断方式 —— 中断结构
多线请求菊花连响应,如果系统中连接设备较多,即设备数超过了系统的优先级数时,把几个设备归到同一个优先级上,把同一优先级的 I/O设备挂在同一根公共请求线上。在不同请求线上 I/O设备中断优先级不同。
2009年 7月 27日 8时 37分 40年 月 日 时 分程序中断方式 —— 中断结构
CPU
IRQ
INACK
INVEC
IRQ0
INACK0
IRQ1
INACK1
IRQ2
INACK2
1#
设备
2#
设备
3#
设备
4#
设备
5#
设备
6#
设备
7#
设备
8#
设备
9#
设备数据线
2
中断判优逻辑
2009年 7月 27日 8时 37分 41年 月 日 时 分程序中断方式 —— 中断响应及响应条件
中断响应及响应条件
中断响应,I/O设备提出中断请求后,
CPU中止现行程序的执行,转去为某个设备服务的过程,称为中断响应。
中断响应的条件:
– 中断源有中断请求
– CPU允许接受中断请求
– CPU响应中断的时间
2009年 7月 27日 8时 37分 42年 月 日 时 分程序中断方式 —— 中断响应及响应条件
中断响应:在中断响应的过程中,处理机从一个程序切换到另一个程序,这时应注意:
– 关键性硬件状态的保存
– 中断请求设备的识别
– 提高响应速度
2009年 7月 27日 8时 37分 43年 月 日 时 分程序中断方式 —— 中断响应及响应条件
单线请求中断查询的响应
– 在单线请求的中断结构中,中断响应即为 CPU进入中断周期状态,在该状态下由 CPU执行一条中断隐指令。
– 中断隐指令的功能:
关闭中断触发器。
保护断点值。
执行跳转操作。
2009年 7月 27日 8时 37分 44年 月 日 时 分程序中断方式 —— 中断响应及响应条件
单线请求菊花链响应单线请求菊花链响应方案中 CPU响应中断请求后,进入中断周期状态 。 在中断周期状态下 CPU执行中断隐指令,并切换到中断服务程序,其过程与中断查询的响应方案相同 。 所不同的是,中断服务程序首先执行一条中断查询指令 INTA R0,查询由中断查询指令启动,通过接口中硬件连接电路来查出优先级最高的设备 。
INT0
001010 001011 001000数据总线编码器
INTA
INTI
IR1 IS1 IR2 IS2 IR3 IS3
1 2 3 4 5 6
IR1 IR2 IR3
2009年 7月 27日 8时 37分 46年 月 日 时 分中断服务处理
当 CPU执行完一条现行指令时,如果外设发出中断请求,CPU在满足响应条件的情况下,将发出中断响应信号,同时关闭中断,表示 CPU不再受理另外一个设备的中断。
这时,CPU将寻找中断请求源是哪个设备,并保存 CPU自己的程序计数器( PC)的内容,然后,
他将转移到处理该中断源的中断服务程序。
CPU在保存现场信息,设备服务以后,将恢复现场信息,在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令 。
2009年 7月 27日 8时 37分 47年 月 日 时 分程序中断方式 —— 中断服务处理取指令执行指令中断?
响应中断关中断,即,中断屏蔽,置位找出中断源,并保存( PC)
转移到中断服务子程序保存 CPU现场设备服务恢复 CPU现场开中断,即,中断屏蔽,复位否是
2009年 7月 27日 8时 37分 48年 月 日 时 分程序中断方式 —— 中断服务处理
CPU
存储器 I/O控制器外设中断寄存器
ADD
SUB
AND
OR
READ
STORE
RTI
中断服务例程保存 PC
中断服务地址
2009年 7月 27日 8时 37分 49年 月 日 时 分程序中断方式 —— 多级中断及中断优先权的动态分配
多重中断是指当 CPU正在执行某个中断服务程序期间,且 CPU处于开中断状态,则允许优先级高的中断源中断优先级别低的中断服务程序。
在保存断点和现场后转去响应优先级更高的中断请求,并执行新的中断服务程序。
2009年 7月 27日 8时 37分 50年 月 日 时 分程序中断方式 —— 多级中断及中断优先权的动态分配
中断系统的优先权包含着响应优先权和处理优先权。
– 响应优先权指多个中断请求同时提出时,由硬件排队线路决定 CPU响应中断请求的次序。
– 处理优先权指 CPU执行服务程序过程中,优先执行哪个中断服务的次序。
2009年 7月 27日 8时 37分 51年 月 日 时 分
DMA直接内存访问基本概念
直接内存访问 (DMA)是一种完全由硬件执行 I/O交换的工作方式。在这种方式中,DMA控制器从 CPU
完全接管对总线的控制,数据交换不经过 CPU,
而直接在内存和 I/O设备之间进行 。 DMA方式一般用于高速传送成组的数据。
DMA的特点
DMA的三种工作方式
DMA控制器的组成
DMA的操作过程
2009年 7月 27日 8时 37分 52年 月 日 时 分
DMA直接内存访问 —— 基本概念
DMA数据传送方式是在 I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速设备按照连接地址直接访问主存储器的成块数据传送。
数据传送是在 DMA控制器的控制下进行的。
由 DMA给出当前正在传送的数据字的主存地址,
并统计传送数据的个数,以确定一组数据的传送是否已结束。 在主存中开辟连续地址的专用缓冲器,用来提供或接受传送的数据。在数据传送前和结束后,要通过程序或中断方式对缓冲器和 DMA控制器进行预处理。
2009年 7月 27日 8时 37分 53年 月 日 时 分基本操作:
(1)从外围设备发出 DMA
(2)CPU响应请求,把 CPU工作改成 DMA操作方式,DMA控制器从 CPU接管总线的控制
(3)由 DMA控制器对内存寻址,即决定数据传送的内存单元地址及数据传送个数的计
(4)向 CPU报告 DMA操作的结束。
2009年 7月 27日 8时 37分 54年 月 日 时 分
DMA I/O
CPU
存储器 I/O控制器 DMA控制器外设 外设
CPU向 DMA控制器发送开始地址、方向;然后,发射“开始”命令。
DMA控制器 向外设提供握手信号;
向存储器提供地址和握手信号。
ROM
RAM
DMA
2009年 7月 27日 8时 37分 55年 月 日 时 分
DMA直接内存访问 —— 特点
DMA控制器建立了外围设备和内存之间直接交换的数据通道,大大减轻了总线负荷。
数据传送过程是由 DMA控制器来实现控制的。
主存需开辟专用缓冲区,及时供给和接受数据。
为了解决 CPU和 DMA同时访问内存发生的冲突,
DMA传送常采用周期挪用。
2009年 7月 27日 8时 37分 56年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
CPU暂停方式
CPU周期窃取方式
DMA与 CPU交替访内
2009年 7月 27日 8时 37分 57年 月 日 时 分
DMA三种工作方式
停止 CPU访问内存
CPU响应 DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给 CPU。采用这种方式的 I/O设备,在其接口中一般设置小容量的存储器。 I/O设备先与小容量存储器交换数据,然后由小容量存储器与主机交换数据,这样可减少 DMA传送占用存储总线的时间,减少 CPU暂停工作时间。
2009年 7月 27日 8时 37分 58年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
CPU周期挪用方式
DMA控制器与主存储器之间传送一个数据,
占用一个 CPU周期,即 CPU暂停工作一个周期,然后继续执行程序。
2009年 7月 27日 8时 37分 59年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
DMA与 CPU
如果 CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使 DMA传送和 CPU同时发挥最高的效率。这种方式不需要总线使用权的申请、建立和归还过程,对于总线,可通过用 C1,C2控制的多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对 DMA传送来讲效率是很高的。
2009年 7月 27日 8时 37分 60年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式内存工作时间
CPU控制并使用内存
DMA控制并使用内存内存工作时间内存工作时间
CPU控制并使用内存
CPU控制并使用内存
DMA控制并使用内存
停止 CPU访问内存
CPU周期挪用方式
直接访问存储器工作方式
2009年 7月 27日 8时 37分 61年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
DMA控制器的组成:
寄存器组
中断控制逻辑
DMA请求触发器
传输线
2009年 7月 27日 8时 37分 62年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
寄存器组
– DMA地址寄存器 DMAR
– 外围设备地址寄存器 ADR
– 字数计数器 WCR
– 控制和状态寄存器 CSR
– 数据缓冲寄存器 DBR
2009年 7月 27日 8时 37分 63年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
中断控制逻辑
DMA通道由 CPU程序准备和启动,一旦启动后,数据传送过程完全由 DMA接口实现;
当 DMA传送结束后,由 DMA接口中的中断控制逻辑向 CPU发中断申请,要求处理机做结束 处理工作。
2009年 7月 27日 8时 37分 64年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
DMA请求触发器
在批量数据传输过程中,每一个数据的交换都要向 CPU发一次 DMA请求,接口中设置 DMA触发器,一次周期结束,在 CPU
一侧,DMA控制器清除,在设备一侧,当设备读 /写操作完成后,则以完成信号回答接口,且使置 1,表示下次 DMA请求开始。
2009年 7月 27日 8时 37分 65年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
传输线:
传输线是 DMA接口和主机 和 DMA接口与
I/O设备两个方向的数据线,地址线和控制信号线。
2009年 7月 27日 8时 37分 66年 月 日 时 分内存 CPU
中断机构控制 /状态逻辑
DMA请求标志内存地址计数器字计数器数据缓冲寄存器 设备选择设备
DMA直接内存访问 —— DMA控制器的组成
2009年 7月 27日 8时 37分 67年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA操作过程
– DMA传送前的预处理
– DMA数据传送
– DMA的结束处理
2009年 7月 27日 8时 37分 68年 月 日 时 分
DMA请求
DMA响应发送内存地址传送一个字数据
DMA结束修改 地址指针和字计数器检测传送是否结束?
DMA直接内存访问 —— DMA操作过程
2009年 7月 27日 8时 37分 69年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA传送前的预处理
– 为了实现外围设备和内存之间数据直接成批的交换,必然把有关数据来源、去向和传送数据的总数等信息事先实现通知 DMA接口。所以在传送前先由由 CPU用测试指令测试设备状态,
以判断是否可以调用该设备。若可以调用该设备,则用几条输入输出指令实现。
– 在完成这些工作之后,CPU继续执行原程序,
从此 CPU与高速设备重叠运行。 DMA接口被启动后,便代替 CPU管理 I/O设备进行数据传送。
2009年 7月 27日 8时 37分 70年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA数据传送(以数据输入为例)
– 由主程序启动设备后,从 I/O设备存储介质上读入一个字到 DMA数据缓冲寄存器的 DBR中。此时设备控制器以,完成,信号置 1,表明设备已完成一个数据传送工作,并向
CPU发出 DMA请求,申请存储周期。
– CPU响应 DMA请求并在 CPU的一个存储周期结束后,DMA立即占用下一个存储周期进行写操作,此时 CPU现场冻结。
– 清除信号在 DMA接口中执行三个操作
– 高速设备只需启动一次,以后连续不断读出即循环上面几步,完成所要传送的全部字符。
– 数据全部读出并交换完毕后,DMA接口发 DMA中断请求。
2009年 7月 27日 8时 37分 71年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA的结束处理
CPU响应中断后,则停止原程序执行,转去执行中断服务程序,做一些 DMA结束处理工作。
2009年 7月 27日 8时 37分 72年 月 日 时 分内存 CPU
字计数器内存地址数据缓冲器状态控制设备号时序电路设备 1
设备 2
设备 n
DMA直接内存访问 —— DMA控制器的类型选择型 DMA
控制器
2009年 7月 27日 8时 37分 73年 月 日 时 分内存 CPU DMA控制器设备 设备内存 CPU DMA控制器设备 设备链式多路型 DMA
多路型 DMA控制器
DMA直接内存访问 —— DMA控制器的类型
2009年 7月 27日 8时 37分 74年 月 日 时 分通道方式
通道的功能,
– 执行通道指令
– 组织外围设备和内存进行数据传输
– 按 I/O指令要求启动外围设备
– 向 CPU报告中断
2009年 7月 27日 8时 37分 75年 月 日 时 分通道的任务:
接受 CPU的 I/O指令,按指令要求与指定的外围设备进行通信。
从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备各发送各种命令。
组织外围设备和内存之间进行数据传送。
从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供 CPU使用。
将外围设备的中断请求和通道本身的中断请求,
按次序及时报告 CPU。
2009年 7月 27日 8时 37分 76年 月 日 时 分通道方式
CPU对通道的管理
– CPU是通过执行 I/O指令以及处理来自通道的中断,实现对通道的管理。
来自通道的中断有两种:
– 数据传送结束中断
– 故障中断
2009年 7月 27日 8时 37分 77年 月 日 时 分通道方式
通道对设备控制器的管理
– 通道控制器是通道对 I/O设备实现传输控制的执行机构。
通道控制器的任务:
– 从通道接受通道指令,控制外围设备完成所要求的操作。
– 向通道反映外围设备的状态
– 将各种外围设备的不同信号转换成通道能够识别的标准信号。
2009年 7月 27日 8时 37分 78年 月 日 时 分通道方式
通道的类型:
– 选择通道
– 数组多路通道
– 字节多路通道
2009年 7月 27日 8时 37分 79年 月 日 时 分
I/O通道 (处理机 )
设备与存储器之间的数据传送直接由
I/O处理机控制; I/O处理机,窃取,存储周期。
CPU
存储器 I/O处理机外设 外设 外设
CPU
IOP
Memory
2009年 7月 27日 8时 37分 80年 月 日 时 分
I/O与 Cache的一致性问题
2009年 7月 27日 8时 37分 81年 月 日 时 分
I/O与 Cache的一致性问题
2009年 7月 27日 8时 37分 82年 月 日 时 分通道结构的发展通道结构的进一步发展,出现了两种计算机 I/O系统结构,
1.输入输出处理器 (IOP) 是通道结构的 I/O处理器。 IOP可以和 CPU并行工作,提供高速的 DMA处理能力,实现数据的高速传送。但是它不是独立于 CPU工作的,而是主机的一个部件。有些 IOP例如 Intel 8089 IOP,还提供数据的变换、搜索以及字装配 /拆卸能力。这类 IOP广泛应
2.外围处理机 (PPU) PPU基本上是独立于主机工作的,
它有自己的指令系统,完成算术 /逻辑运算,读 /写主存储器,与外设交换信息等。有的外围处理机干脆就选用已有的通用机。外围处理机 I/O方式一般应用于大型高效率的计算机系统中。
基本概念
程序查询方式
程序中断方式
DMA方式
通道方式
通用 I/O标准接口
2009年 7月 27日 8时 37分 2年 月 日 时 分基本概念 —— 输入输出系统的功能
输入输出系统的功能:
– 为了得到高效可靠的数据传输,选择输入输出设备。
– 在选定的输入输出设备和 CPU之间进行数据交换。
2009年 7月 27日 8时 37分 3年 月 日 时 分
输入输出设备和 CPU交换数据的过程:
– 输入过程:
CPU把一个地址值放在地址总线上,这一步将选择一个输入设备
CPU等候输入设备的数据成为有效
CPU从数据总线上读入数据,并放在一个相应的寄存器中
– 输出过程:
CPU把一个地址值放在地址总线上,这一步将选择一个输出设备
CPU把数据放在数据总线上
输出设备认为数据有效,从而把数据取走。
2009年 7月 27日 8时 37分 4年 月 日 时 分基本概念 —— CPU和外围设备的定时
CPU和外围设备的定时,分为三种情况:
– 慢速外围设备
– 中速外围设备
– 高速外围设备
2009年 7月 27日 8时 37分 5年 月 日 时 分基本概念 —— CPU和外围设备的定时
速度极慢或简单的外围设备:对于这类设备 CPU总是能足够快地作出响应,也可以说,CPU认为输入的数据一直有效,在这种情况下,CPU只要接受和发送数据就可以了。
常用的有:机械开关,显示二极管等。
开关 ------CPU认为输入数据一直有效 ;
显示二极管 ------输出一定准备就绪。
2009年 7月 27日 8时 37分 6年 月 日 时 分基本概念 —— CPU和外围设备的定时
慢速或中速的外围设备,CPU与这类设备之间的数据交换通常采用异步定时方式。
在这种情况下,CPU和外设之间用问答信号进行定时的方式叫做应答式数据交换 。
采用异步定时方式设备状态,工作 (忙 )
就绪 等待结束 再启动 等待 启动暫停
2009年 7月 27日 8时 37分 7年 月 日 时 分启动就绪?
传送一个字传送完?
CPU发响应信号复位就绪结束
N
N
Y
Y
CPU接收外设一批数据字的过程,
2009年 7月 27日 8时 37分 8年 月 日 时 分基本概念 —— CPU和外围设备的定时
高速外围设备,CPU和这类设备之间通常采用同步定时方式,一旦 CPU和外设发生同步,他们之间的数据交换用时钟控制来进行。
1)同步定时方式
CPU以等间隔的速率执行 I/O指令。
靠时钟脉冲控制进行。
2)DMA方式
2009年 7月 27日 8时 37分 9年 月 日 时 分基本概念 —— CPU和外围设备之间信息交换的方式
CPU和外设之间信息交换的方式:
– 程序查询方式
– 程序中断方式
– 直接内存访问( DMA)方式
– 通道方式
– 外围处理机方式
2009年 7月 27日 8时 37分 10年 月 日 时 分基本概念 —— CPU和外围设备之间信息交换的方式
I/O控制方式主要由程序实现 主要由附加硬件实现程序查询方式程序中断方式 DMA方式 通道方式
PPU方式
2009年 7月 27日 8时 37分 11年 月 日 时 分程序查询方式 —— 基本概念
程序查询方式,通过由 I/O指令所编的程序,
来控制主机与外设之间的信息传送。
工作过程,先由主机通过启动指令启动外设工作,启动后主机用测试指令不断查询外设工作是否完成,一旦外设工作完成,就可进行数据传送了。
特点,这种方式控制简单,但是主机和外设是串行工作的。当外设速度很慢时,主机大量时间被消耗在测试等待中,使主机不能充分发挥效率。
2009年 7月 27日 8时 37分 12年 月 日 时 分程序查询方式 —— 基本概念
CPU
存储器 I/O控制器外设状态位
CPU需要不断监测状态位以确定是否该做下一个 I/O 操作 。 由于
CPU比 I/O设备快得多,
所以轮询就要浪费大量的 CPU时间 。
2009年 7月 27日 8时 37分 13年 月 日 时 分程序查询方式 —— 程序流程图设置计数值设置内存缓冲区首址启动外设传送一个数据修改内存地址结束 I/O传送修改计数器准备好?
传送完?
程序查询方式的程序流程图否是是否
2009年 7月 27日 8时 37分 14年 月 日 时 分程序中断方式
中断:是指 CPU中止现行程序的执行,转而执行另一个更紧迫事件的程序,一旦处理完毕,自动返回原来被中断的程序。
中断技术的出现,提供了一种以响应外部异常事件而改变状态流程的有效手段,它支持了多重程序的运行及多个用户同时共享整个计算机资源,充分发挥了计算机的高速处理和实时处理能力,以及自动处理机内部故障的能力。
2009年 7月 27日 8时 37分 15年 月 日 时 分程序中断方式 —— 基本概念
中断的基本概念
– 中断问题的提出
– 中断类型
– 多重中断和单级中断
– 中断的功能
2009年 7月 27日 8时 37分 16年 月 日 时 分
中断问题的提出:
– 在程序查询方式中,CPU和外设的工作是串行的,当 CPU和外设交换信息时,就把 CPU的控制权交给了该设备,而 CPU只能做测试等待,
直到外设工作完成。 CPU的大部分工作时间被浪费了。
– 假若 CPU在启动外设工作后,设备释放对 CPU
的控制权使 CPU继续工作,当外设工作完成后向 CPU发中断请求信号,若 CPU响应中断,则停止正在执行的程序,转中断服务程序为该程序服务,这样就能 实现 CPU和外设并行工作,
使 CPU的效率充分发挥。
2009年 7月 27日 8时 37分 17年 月 日 时 分程序中断方式 —— 基本概念
中断类型:
– 按中断处理方法分类:
程序中断:主机响应中断请求后,通过执行一段程序来处理有关的事宜。
简单中断:主机响应中断请求后,不需要执行服务程序,而是让出一个或几个主存周期,使 I/O设备和主存直接交换数据 。
2009年 7月 27日 8时 37分 18年 月 日 时 分程序中断方式 —— 基本概念
– 按中断源分类:
– 强迫中断:是随机产生的。产生强迫中断的中断源有四个方面:
内中断:由硬件故障及程序故障引起的中断。
外中断:是由系统配置的外部设备引起的中断。
正在执行着的现行程序所引起的中断。
处理机之间的中断。
– 自愿中断(程序自中断):事先在程序某初设置断点,并借用中断处理方式保护现场,
引出一段服务程序。
2009年 7月 27日 8时 37分 19年 月 日 时 分程序中断方式 —— 基本概念
按中断源是否提供向量地址分类:
– 向量中断,CPU响应中断后,由中断机构自动地将向量地址通知处理机,由向量地址指明中断向量位置并实现向量切换,不必经过处理程序来查询中断源的中断功能,称为向量中断 。
– 非向量中断:是不能直接提供中断服务程序的入口地址,而要采用软件查询措施最后找到服务程序入口地址,然后再转入相应的中断服务程序。
2009年 7月 27日 8时 37分 20年 月 日 时 分程序中断方式 —— 基本概念多级中断和单级中断:
– 单级中断:在执行中断的过程中,如果只能为本次中断服务,不允许打断服务程序,只有在服务程序完成后,才能响应新的请求,称为单级中断。
– 多级中断:如在一次服务程序执行中,
允许优先级高的 中断 级别低的中断服务程序,在保存断点和现场后,转去响应优先级别更高的中断程序,并执行新的中断服务程序。
主程序第 1中断服务程序第 2中断服务程序
2009年 7月 27日 8时 37分 21年 月 日 时 分
根据系统的配置不同,多级中断可分为一维多级中断和二维多级中断。
一维多级中断 是指每一级中断里只有一个中断源,而 二维多级中断 是指每一级中断里又有多个中断源。
2009年 7月 27日 8时 37分 22年 月 日 时 分程序中断方式 —— 基本概念
中断功能:
– 引入中断系统后,可使 CPU和 I/O设备并行工作,从而大大提高了 CPU的工作效率。
– 利用中断来处理故障,提高了机器的可靠性。
– 利用中断进行实时处理。实时处理是指在某个事件或现象出现的实际时间内及时地进行处理,而不是积压起来再进行批处理。
– 利用中断进行人机对话。
– 实现多道程序的运行,需要借助于中断系统。
2009年 7月 27日 8时 37分 23年 月 日 时 分程序中断方式 —— 中断的基本接口
中断的基本接口:
– 工作标志触发器 BS
– 就绪标志触发器 RD
– 允许中断触发器 EI
– 中断请求触发器 IR
– 中断屏蔽触发器 IM
2009年 7月 27日 8时 37分 24年 月 日 时 分程序中断方式 —— 中断的基本接口控制
IM IR
公用寄存器
PC IR
0 1
BS
EI RD
数据缓冲寄存器中断向量逻辑 设备选择动作开始动作结束传送数据
CPU 接口 设备
2009年 7月 27日 8时 37分 25年 月 日 时 分程序中断方式 —— 中断的基本接口
各个触发器的具体功能:
– 准备就绪标志( RD):一旦设备做好一次数据的接受和发送,便发出一个设备动作完毕信号,使 RD标志置,1”。
– 允许中断触发器( EI):可以用程序指令来置位。 EI为 1时,某设备可以向 CPU发出中断请求; EI为 0时,不能向 CPU发出中断请求。
这意味着某中断源被禁止。
2009年 7月 27日 8时 37分 26年 月 日 时 分程序中断方式 —— 中断的基本接口
– 中断请求触发器( IR):暂存中断请求线上由设备发出的中断请求信号。
当 IR为,1”时,表示设备发出了中断请求。
– 中断屏蔽触发器( IM):是 CPU是否受理中断或批准中断的标志。 IM为,0”
时,CPU可以受理外界的中断请求,反之,CPU 不受理外界的中断。
2009年 7月 27日 8时 37分 27年 月 日 时 分程序中断方式 —— 中断的基本接口控制
IM IR
公用寄存器
0 1
BS
EI RD
数据缓冲寄存器中断向量逻辑 设备选择PC IR
动作开始动作结束传送数据数据缓冲寄存器
1 2
3
4
5
67
8
公用寄存器
10
9
2009年 7月 27日 8时 37分 28年 月 日 时 分程序中断方式 —— 中断结构
中断过程:
– 中断过程由中断请求、中断响应、状态保存、中断屏蔽、中断处理、恢复和返回组成。
中断源:
– 中断源是引起中断的事件及发生中断请求的来源。
中断结构:是指处理机与设备、设备与设备之间在中断系统中互相连接的关系。
2009年 7月 27日 8时 37分 29年 月 日 时 分程序中断方式 —— 中断结构
中断结构
– 中断请求的提出
– 中断请求的传送和中断的优先排队
2009年 7月 27日 8时 37分 30年 月 日 时 分程序中断方式 —— 中断结构
中断请求的提出:
– 中断申请:由中断源向处理机发出的中断请求,称为中断请求。中断源发中断请求要满足两个条件:
外设工作已经完成。
该外设的中断没有被系统屏蔽。
2009年 7月 27日 8时 37分 31年 月 日 时 分程序中断方式 —— 中断结构
中断请求的传送和中断的优先排队:
– 中断源的优先权
– 几种排队判优的方法
单线请求软件查询判优
单线请求菊花链响应
多线请求判优响应
多线请求菊花链响应
2009年 7月 27日 8时 37分 32年 月 日 时 分程序中断方式 —— 中断结构
中断源的优先权:
– 在各种类型的中断请求中:
一般是故障引起的中断最优先;
其次是简单中断及 I/O程序中断。
– 在 I/O程序中断中:
一般高速外设优先级高于低速外设的优先级;
输入设备的优先级高于输出设备的优先级。
2009年 7月 27日 8时 37分 33年 月 日 时 分程序中断方式 —— 中断结构
排队判优的方法:
单线请求软件查询判优,所有的设备的中断请求连到一根公用的中断请求线 IRQ
上。
2009年 7月 27日 8时 37分 34年 月 日 时 分
CPU
I/O I/O
程序中断方式 —— 中断结构具有公共请求线的中断请求传送方案保存断点和现场有 0#的中断请求?
有 1#的中断请求?
有 n#的中断请求?
恢复现场执行 0#设备中断服务程序执行 1#设备中断服务程序执行 n#设备中断服务程序是否是否是否软件查询中断源
IRQ
2009年 7月 27日 8时 37分 35年 月 日 时 分程序中断方式 —— 中断结构
单线请求菊花链响应:
各设备的中断请求仍公用一根请求线来传送,当 CPU接到中断请求后设备的优先级不是用查询程序依排队次序来决定,
而是用硬件排队线路来代替软件排队。
即用硬接线逻辑将设备连在中断响应线
INACK上,使优先级最高的设备离 CPU最近。
2009年 7月 27日 8时 37分 36年 月 日 时 分
CPU
INACK 1#
设备
2#
设备
n#
设备程序中断方式 —— 中断结构单线请求菊花链响应地址 数据线控制线
IRQ
2009年 7月 27日 8时 37分 37年 月 日 时 分程序中断方式 —— 中断结构
多线请求判优响应,每一各设备分配一个优先级,每一个设备都通过各自的中断请求线,将中断请求信号传送到 CPU,
在 CPU内设置有判有逻辑,接受各中断请求信号。并且给每一个设备设一根中断响应线传送中断响应信号。
2009年 7月 27日 8时 37分 38年 月 日 时 分
IRQ
CPU
INVEC
判优逻辑 1#
设备
2#
设备
n#
设备程序中断方式 —— 中断结构多线请求判优响应
IRQn
INACKn
IRQ2
INACK2
IRQ1
INACK1
2009年 7月 27日 8时 37分 39年 月 日 时 分程序中断方式 —— 中断结构
多线请求菊花连响应,如果系统中连接设备较多,即设备数超过了系统的优先级数时,把几个设备归到同一个优先级上,把同一优先级的 I/O设备挂在同一根公共请求线上。在不同请求线上 I/O设备中断优先级不同。
2009年 7月 27日 8时 37分 40年 月 日 时 分程序中断方式 —— 中断结构
CPU
IRQ
INACK
INVEC
IRQ0
INACK0
IRQ1
INACK1
IRQ2
INACK2
1#
设备
2#
设备
3#
设备
4#
设备
5#
设备
6#
设备
7#
设备
8#
设备
9#
设备数据线
2
中断判优逻辑
2009年 7月 27日 8时 37分 41年 月 日 时 分程序中断方式 —— 中断响应及响应条件
中断响应及响应条件
中断响应,I/O设备提出中断请求后,
CPU中止现行程序的执行,转去为某个设备服务的过程,称为中断响应。
中断响应的条件:
– 中断源有中断请求
– CPU允许接受中断请求
– CPU响应中断的时间
2009年 7月 27日 8时 37分 42年 月 日 时 分程序中断方式 —— 中断响应及响应条件
中断响应:在中断响应的过程中,处理机从一个程序切换到另一个程序,这时应注意:
– 关键性硬件状态的保存
– 中断请求设备的识别
– 提高响应速度
2009年 7月 27日 8时 37分 43年 月 日 时 分程序中断方式 —— 中断响应及响应条件
单线请求中断查询的响应
– 在单线请求的中断结构中,中断响应即为 CPU进入中断周期状态,在该状态下由 CPU执行一条中断隐指令。
– 中断隐指令的功能:
关闭中断触发器。
保护断点值。
执行跳转操作。
2009年 7月 27日 8时 37分 44年 月 日 时 分程序中断方式 —— 中断响应及响应条件
单线请求菊花链响应单线请求菊花链响应方案中 CPU响应中断请求后,进入中断周期状态 。 在中断周期状态下 CPU执行中断隐指令,并切换到中断服务程序,其过程与中断查询的响应方案相同 。 所不同的是,中断服务程序首先执行一条中断查询指令 INTA R0,查询由中断查询指令启动,通过接口中硬件连接电路来查出优先级最高的设备 。
INT0
001010 001011 001000数据总线编码器
INTA
INTI
IR1 IS1 IR2 IS2 IR3 IS3
1 2 3 4 5 6
IR1 IR2 IR3
2009年 7月 27日 8时 37分 46年 月 日 时 分中断服务处理
当 CPU执行完一条现行指令时,如果外设发出中断请求,CPU在满足响应条件的情况下,将发出中断响应信号,同时关闭中断,表示 CPU不再受理另外一个设备的中断。
这时,CPU将寻找中断请求源是哪个设备,并保存 CPU自己的程序计数器( PC)的内容,然后,
他将转移到处理该中断源的中断服务程序。
CPU在保存现场信息,设备服务以后,将恢复现场信息,在这些动作完成以后,开放中断,并返回到原来被中断的主程序的下一条指令 。
2009年 7月 27日 8时 37分 47年 月 日 时 分程序中断方式 —— 中断服务处理取指令执行指令中断?
响应中断关中断,即,中断屏蔽,置位找出中断源,并保存( PC)
转移到中断服务子程序保存 CPU现场设备服务恢复 CPU现场开中断,即,中断屏蔽,复位否是
2009年 7月 27日 8时 37分 48年 月 日 时 分程序中断方式 —— 中断服务处理
CPU
存储器 I/O控制器外设中断寄存器
ADD
SUB
AND
OR
READ
STORE
RTI
中断服务例程保存 PC
中断服务地址
2009年 7月 27日 8时 37分 49年 月 日 时 分程序中断方式 —— 多级中断及中断优先权的动态分配
多重中断是指当 CPU正在执行某个中断服务程序期间,且 CPU处于开中断状态,则允许优先级高的中断源中断优先级别低的中断服务程序。
在保存断点和现场后转去响应优先级更高的中断请求,并执行新的中断服务程序。
2009年 7月 27日 8时 37分 50年 月 日 时 分程序中断方式 —— 多级中断及中断优先权的动态分配
中断系统的优先权包含着响应优先权和处理优先权。
– 响应优先权指多个中断请求同时提出时,由硬件排队线路决定 CPU响应中断请求的次序。
– 处理优先权指 CPU执行服务程序过程中,优先执行哪个中断服务的次序。
2009年 7月 27日 8时 37分 51年 月 日 时 分
DMA直接内存访问基本概念
直接内存访问 (DMA)是一种完全由硬件执行 I/O交换的工作方式。在这种方式中,DMA控制器从 CPU
完全接管对总线的控制,数据交换不经过 CPU,
而直接在内存和 I/O设备之间进行 。 DMA方式一般用于高速传送成组的数据。
DMA的特点
DMA的三种工作方式
DMA控制器的组成
DMA的操作过程
2009年 7月 27日 8时 37分 52年 月 日 时 分
DMA直接内存访问 —— 基本概念
DMA数据传送方式是在 I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速设备按照连接地址直接访问主存储器的成块数据传送。
数据传送是在 DMA控制器的控制下进行的。
由 DMA给出当前正在传送的数据字的主存地址,
并统计传送数据的个数,以确定一组数据的传送是否已结束。 在主存中开辟连续地址的专用缓冲器,用来提供或接受传送的数据。在数据传送前和结束后,要通过程序或中断方式对缓冲器和 DMA控制器进行预处理。
2009年 7月 27日 8时 37分 53年 月 日 时 分基本操作:
(1)从外围设备发出 DMA
(2)CPU响应请求,把 CPU工作改成 DMA操作方式,DMA控制器从 CPU接管总线的控制
(3)由 DMA控制器对内存寻址,即决定数据传送的内存单元地址及数据传送个数的计
(4)向 CPU报告 DMA操作的结束。
2009年 7月 27日 8时 37分 54年 月 日 时 分
DMA I/O
CPU
存储器 I/O控制器 DMA控制器外设 外设
CPU向 DMA控制器发送开始地址、方向;然后,发射“开始”命令。
DMA控制器 向外设提供握手信号;
向存储器提供地址和握手信号。
ROM
RAM
DMA
2009年 7月 27日 8时 37分 55年 月 日 时 分
DMA直接内存访问 —— 特点
DMA控制器建立了外围设备和内存之间直接交换的数据通道,大大减轻了总线负荷。
数据传送过程是由 DMA控制器来实现控制的。
主存需开辟专用缓冲区,及时供给和接受数据。
为了解决 CPU和 DMA同时访问内存发生的冲突,
DMA传送常采用周期挪用。
2009年 7月 27日 8时 37分 56年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
CPU暂停方式
CPU周期窃取方式
DMA与 CPU交替访内
2009年 7月 27日 8时 37分 57年 月 日 时 分
DMA三种工作方式
停止 CPU访问内存
CPU响应 DMA请求后,让出存储总线,直到一组数据传送完毕后,DMA控制器才把总线控制权交还给 CPU。采用这种方式的 I/O设备,在其接口中一般设置小容量的存储器。 I/O设备先与小容量存储器交换数据,然后由小容量存储器与主机交换数据,这样可减少 DMA传送占用存储总线的时间,减少 CPU暂停工作时间。
2009年 7月 27日 8时 37分 58年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
CPU周期挪用方式
DMA控制器与主存储器之间传送一个数据,
占用一个 CPU周期,即 CPU暂停工作一个周期,然后继续执行程序。
2009年 7月 27日 8时 37分 59年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式
DMA与 CPU
如果 CPU的工作周期比内存存取周期长很多,此时采用交替访内的方法可以使 DMA传送和 CPU同时发挥最高的效率。这种方式不需要总线使用权的申请、建立和归还过程,对于总线,可通过用 C1,C2控制的多路转换器,这种总线控制权的转移几乎不需要什么时间,所以对 DMA传送来讲效率是很高的。
2009年 7月 27日 8时 37分 60年 月 日 时 分
DMA直接内存访问 —— DMA三种工作方式内存工作时间
CPU控制并使用内存
DMA控制并使用内存内存工作时间内存工作时间
CPU控制并使用内存
CPU控制并使用内存
DMA控制并使用内存
停止 CPU访问内存
CPU周期挪用方式
直接访问存储器工作方式
2009年 7月 27日 8时 37分 61年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
DMA控制器的组成:
寄存器组
中断控制逻辑
DMA请求触发器
传输线
2009年 7月 27日 8时 37分 62年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
寄存器组
– DMA地址寄存器 DMAR
– 外围设备地址寄存器 ADR
– 字数计数器 WCR
– 控制和状态寄存器 CSR
– 数据缓冲寄存器 DBR
2009年 7月 27日 8时 37分 63年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
中断控制逻辑
DMA通道由 CPU程序准备和启动,一旦启动后,数据传送过程完全由 DMA接口实现;
当 DMA传送结束后,由 DMA接口中的中断控制逻辑向 CPU发中断申请,要求处理机做结束 处理工作。
2009年 7月 27日 8时 37分 64年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
DMA请求触发器
在批量数据传输过程中,每一个数据的交换都要向 CPU发一次 DMA请求,接口中设置 DMA触发器,一次周期结束,在 CPU
一侧,DMA控制器清除,在设备一侧,当设备读 /写操作完成后,则以完成信号回答接口,且使置 1,表示下次 DMA请求开始。
2009年 7月 27日 8时 37分 65年 月 日 时 分
DMA直接内存访问 —— DMA控制器的组成
传输线:
传输线是 DMA接口和主机 和 DMA接口与
I/O设备两个方向的数据线,地址线和控制信号线。
2009年 7月 27日 8时 37分 66年 月 日 时 分内存 CPU
中断机构控制 /状态逻辑
DMA请求标志内存地址计数器字计数器数据缓冲寄存器 设备选择设备
DMA直接内存访问 —— DMA控制器的组成
2009年 7月 27日 8时 37分 67年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA操作过程
– DMA传送前的预处理
– DMA数据传送
– DMA的结束处理
2009年 7月 27日 8时 37分 68年 月 日 时 分
DMA请求
DMA响应发送内存地址传送一个字数据
DMA结束修改 地址指针和字计数器检测传送是否结束?
DMA直接内存访问 —— DMA操作过程
2009年 7月 27日 8时 37分 69年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA传送前的预处理
– 为了实现外围设备和内存之间数据直接成批的交换,必然把有关数据来源、去向和传送数据的总数等信息事先实现通知 DMA接口。所以在传送前先由由 CPU用测试指令测试设备状态,
以判断是否可以调用该设备。若可以调用该设备,则用几条输入输出指令实现。
– 在完成这些工作之后,CPU继续执行原程序,
从此 CPU与高速设备重叠运行。 DMA接口被启动后,便代替 CPU管理 I/O设备进行数据传送。
2009年 7月 27日 8时 37分 70年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA数据传送(以数据输入为例)
– 由主程序启动设备后,从 I/O设备存储介质上读入一个字到 DMA数据缓冲寄存器的 DBR中。此时设备控制器以,完成,信号置 1,表明设备已完成一个数据传送工作,并向
CPU发出 DMA请求,申请存储周期。
– CPU响应 DMA请求并在 CPU的一个存储周期结束后,DMA立即占用下一个存储周期进行写操作,此时 CPU现场冻结。
– 清除信号在 DMA接口中执行三个操作
– 高速设备只需启动一次,以后连续不断读出即循环上面几步,完成所要传送的全部字符。
– 数据全部读出并交换完毕后,DMA接口发 DMA中断请求。
2009年 7月 27日 8时 37分 71年 月 日 时 分
DMA直接内存访问 —— DMA操作过程
DMA的结束处理
CPU响应中断后,则停止原程序执行,转去执行中断服务程序,做一些 DMA结束处理工作。
2009年 7月 27日 8时 37分 72年 月 日 时 分内存 CPU
字计数器内存地址数据缓冲器状态控制设备号时序电路设备 1
设备 2
设备 n
DMA直接内存访问 —— DMA控制器的类型选择型 DMA
控制器
2009年 7月 27日 8时 37分 73年 月 日 时 分内存 CPU DMA控制器设备 设备内存 CPU DMA控制器设备 设备链式多路型 DMA
多路型 DMA控制器
DMA直接内存访问 —— DMA控制器的类型
2009年 7月 27日 8时 37分 74年 月 日 时 分通道方式
通道的功能,
– 执行通道指令
– 组织外围设备和内存进行数据传输
– 按 I/O指令要求启动外围设备
– 向 CPU报告中断
2009年 7月 27日 8时 37分 75年 月 日 时 分通道的任务:
接受 CPU的 I/O指令,按指令要求与指定的外围设备进行通信。
从内存选取属于该通道程序的通道指令,经译码后向设备控制器和设备各发送各种命令。
组织外围设备和内存之间进行数据传送。
从外围设备得到设备的状态信息,形成并保存通道本身的状态信息,根据要求将这些状态信息送到内存的指定单元,供 CPU使用。
将外围设备的中断请求和通道本身的中断请求,
按次序及时报告 CPU。
2009年 7月 27日 8时 37分 76年 月 日 时 分通道方式
CPU对通道的管理
– CPU是通过执行 I/O指令以及处理来自通道的中断,实现对通道的管理。
来自通道的中断有两种:
– 数据传送结束中断
– 故障中断
2009年 7月 27日 8时 37分 77年 月 日 时 分通道方式
通道对设备控制器的管理
– 通道控制器是通道对 I/O设备实现传输控制的执行机构。
通道控制器的任务:
– 从通道接受通道指令,控制外围设备完成所要求的操作。
– 向通道反映外围设备的状态
– 将各种外围设备的不同信号转换成通道能够识别的标准信号。
2009年 7月 27日 8时 37分 78年 月 日 时 分通道方式
通道的类型:
– 选择通道
– 数组多路通道
– 字节多路通道
2009年 7月 27日 8时 37分 79年 月 日 时 分
I/O通道 (处理机 )
设备与存储器之间的数据传送直接由
I/O处理机控制; I/O处理机,窃取,存储周期。
CPU
存储器 I/O处理机外设 外设 外设
CPU
IOP
Memory
2009年 7月 27日 8时 37分 80年 月 日 时 分
I/O与 Cache的一致性问题
2009年 7月 27日 8时 37分 81年 月 日 时 分
I/O与 Cache的一致性问题
2009年 7月 27日 8时 37分 82年 月 日 时 分通道结构的发展通道结构的进一步发展,出现了两种计算机 I/O系统结构,
1.输入输出处理器 (IOP) 是通道结构的 I/O处理器。 IOP可以和 CPU并行工作,提供高速的 DMA处理能力,实现数据的高速传送。但是它不是独立于 CPU工作的,而是主机的一个部件。有些 IOP例如 Intel 8089 IOP,还提供数据的变换、搜索以及字装配 /拆卸能力。这类 IOP广泛应
2.外围处理机 (PPU) PPU基本上是独立于主机工作的,
它有自己的指令系统,完成算术 /逻辑运算,读 /写主存储器,与外设交换信息等。有的外围处理机干脆就选用已有的通用机。外围处理机 I/O方式一般应用于大型高效率的计算机系统中。