I/0控制方式-1 在程序I/0方式中,由于CPU的速度远远高于I/0设备,导致 CPU的绝大部分时间都处于等待Ⅰ/0设备完成而循环测试之中, 造成了CPU的极大浪费。但是它管理简单,在要求不高的场合 可以被采用 (2)中断控制( nterrupt-driven I/C)方式 在现代计算机系统中,对Ⅰ/0设备的控制,广泛地采用中断驱 动方式,即当某进程要启动某个I/0设备时,便由CPU向相应 的设备控制器发出一条I/0命令,然后立即返回继续执行原来 的任务。设备控制器便按照该命令的要求去控制I/0设备。此 时,CPU与I/0设备处于并行工作状态。例如,在输入时,当 设备控制器收到CPU发来的读命令后,便准备接收从相应输 入设备送来的数据。一旦数据进入数据寄存器,控制器便通 过控制线向CPU发送一中断信号,由CPU检查输入过程中是否 出错,若无错,便向控制器发取走数据的信号,然后便通过 控制器将数据写入指定内存单元
I/O控制方式-1 • 在程序I/O方式中,由于CPU的速度远远高于I/O设备,导致 CPU的绝大部分时间都处于等待I/O设备完成而循环测试之中, 造成了CPU的极大浪费。但是它管理简单,在要求不高的场合 可以被采用。 (2)中断控制(Interrupt-driven I/O)方式 在现代计算机系统中,对I/O设备的控制,广泛地采用中断驱 动方式,即当某进程要启动某个I/O设备时,便由CPU向相应 的设备控制器发出一条I/O命令,然后立即返回继续执行原来 的任务。设备控制器便按照该命令的要求去控制I/O设备。此 时, CPU与I/O设备处于并行工作状态。例如,在输入时,当 设备控制器收到 CPU发来的读命令后,便准备接收从相应输 入设备送来的数据。一旦数据进入数据寄存器,控制器便通 过控制线向CPU发送一中断信号,由CPU检查输入过程中是否 出错,若无错,便向控制器发取走数据的信号,然后便通过 控制器将数据写入指定内存单元
I/0控制方式-2 所以,中断驱动方式在I/O设备输入数据的过程中,无需CPU 干预,可以使CPU与I/0设备并行工作。仅当输完一个数据时 才需CPU花费极短的时间去进行中断处理。从而大大地提高 了整个系统的资源利用率及吞吐量,特别是CPU的利用率 (3) DMA (Direct Memory Access)控制方式 中断驱动I/0方式虽然大大提高了主机的利用率,但是它以字 (节)为单位进行数据传送,每完成一个字(节)的传送, 控制器便要向CPU请求一次中断(做保存现场信息,恢复现场 等工作),例如1KB的数据块,要中断1K次CPU。仍然占用 CPU的许多时间。这种方式对于高速的块设备的I/O控制显然 是不适合。为了进一步减少CPU对I/0的干预,引入了直接存 储器访问( Direct Memory Access)控制方式。该方式的特 点是: 1.它作为高速的外围设备与内存之间成批的数据交换,但是不 对数据再做加工处理,数据传输的基本单位是数据块,I0操 作的类型比较简单
I/O控制方式-2 所以,中断驱动方式在I/O设备输入数据的过程中,无需 CPU 干预,可以使CPU与I/O设备并行工作。仅当输完一个数据时, 才需 CPU花费极短的时间去进行中断处理。从而大大地提高 了整个系统的资源利用率及吞吐量,特别是CPU的利用率。 (3)DMA(Direct Memory Access )控制方式 中断驱动I/O方式虽然大大提高了主机的利用率,但是它以字 (节)为单位进行数据传送,每完成一个字(节)的传送, 控制器便要向CPU请求一次中断(做保存现场信息,恢复现场 等工作),例如1KB的数据块,要中断1K次CPU。仍然占用了 CPU的许多时间。这种方式对于高速的块设备的I/O控制显然 是不适合。为了进一步减少CPU对I/O的干预,引入了直接存 储器访问(Direct Memory Access)控制方式。该方式的特 点是: 1.它作为高速的外围设备与内存之间成批的数据交换,但是不 对数据再做加工处理,数据传输的基本单位是数据块,I/O操 作的类型比较简单
I/0控制方式-3 2.它需要使用一个专门的DMA控制器(DMAC)。DMAC中有控制、状 态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。 它采用盗窃总线控制权的方法,由DMAC送出内存地址和发出内 存读、设备写或设备读、内存写的控制信号来完成内存与设备之 间的直接数据传送,而不用CPU的干预。有的DMA传送甚至不经过 DMAC的数据缓冲寄存器的再吞吐,传输速率非常高。 4.仅在传送一个或多个数据块的开始和结束时,才需CPU干预, 整块数据的传送是在控制器的控制下完成的 可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对 I/0控制的干预,进一步提高了CPU与I/O设备的并行操作程度。 主存 lCPU从主存读取控制信息 2CPU把控制信息送DMAC CPU 3CPU执行其它指令 DMA控制器 LO设备DMAC从主存读/写数据 ACPU继续执行其它指令 DMAC把数据送I/0设备
I/O控制方式-3 2.它需要使用一个专门的DMA控制器(DMAC)。DMAC中有控制、状 态寄存器、传送字节计数器、内存地址寄存器和数据缓冲寄存器。 3.它采用盗窃总线控制权的方法,由DMAC送出内存地址和发出内 存读、设备写或设备读、内存写的控制信号来完成内存与设备之 间的直接数据传送,而不用CPU的干预。有的DMA传送甚至不经过 DMAC的数据缓冲寄存器的再吞吐,传输速率非常高。 4.仅在传送一个或多个数据块的开始和结束时,才需 CPU干预, 整块数据的传送是在控制器的控制下完成的。 • 可见,DMA方式较之中断驱动方式,又是成百倍地减少了CPU对 I/O控制的干预,进一步提高了CPU与I/O设备的并行操作程度。 CPU 主存 DMA控制器 I/O设备 1 2 3 4 1CPU从主存读取控制信息 2CPU把控制信息送DMAC 3CPU执行其它指令 DMAC从主存读/写数据 4CPU继续执行其它指令 DMAC把数据送I/O设备
(4)I/0通道控制方式 1.I/0通道控制方式的引入 虽然DMA方式比中断驱动方式已显著地减少了CPU的干预, 即由以字(节)为单位的干预减少到以数据块为单位的干预 但是CP每发出一条I/O指令,也只能去读(或写)一个连续 的数据块。而当我们需要一次去读多个离散的数据块且将它 们分别传送到不同的内存区域,或者相反时,则需由CPU分 别发出多条I/0指令及进行多次中断处理,才能完成。 由于DMA每次只能执行一条I/O指令,不能满足复杂的I/0 操作要求。在大、中型计算机系统中,普遍采用由专用的 Ⅰ/0处理机来接受CPU的委托,独立执行自己的通道程序来实 现I/0设备与内存之间的信息交换,这就是通道技术。通道 技术可以进一步减少CPU的干预,即把对一个数据块为单位 的读(或写)的干预,减少到对一组数据块为单位的读(或 写)的有关的控制和管理的干预。这样可实现CPU、通道和 I/0设备三者之间的并行工作,从而更有效地提高了整个系 统的资源利用率和运行速度
(4)I/O通道控制方式 1.I/O通道控制方式的引入 虽然 DMA方式比中断驱动方式已显著地减少了CPU的干预, 即由以字(节)为单位的干预减少到以数据块为单位的干预。 但是CPU每发出一条I/O指令,也只能去读(或写)一个连续 的数据块。而当我们需要一次去读多个离散的数据块且将它 们分别传送到不同的内存区域,或者相反时,则需由CPU分 别发出多条I/O指令及进行多次中断处理,才能完成。 由于DMA每次只能执行一条I/O指令,不能满足复杂的I/O 操作要求。在大、中型计算机系统中,普遍采用由专用的 I/O处理机来接受CPU的委托,独立执行自己的通道程序来实 现I/O设备与内存之间的信息交换,这就是通道技术。通道 技术可以进一步减少 CPU的干预,即把对一个数据块为单位 的读(或写)的干预,减少到对一组数据块为单位的读(或 写)的有关的控制和管理的干预。这样可实现 CPU、通道和 I/O设备三者之间的并行工作,从而更有效地提高了整个系 统的资源利用率和运行速度
I/0通道控制方式-1 2.通道程序 通道是通过执行通道程序,并与设备控制器来共同实现对 Ⅰ/0设备的控制。通道程序是由一系列的通道指令(或称为通 道命令)所构成。通道指令与一般的机器指令不同,在每条 指令中包含的信息较多,有操作码、内存地址、计数(读或 写数据的字节数)、通道程序结束位P和记录结束标志R。 3.通道类型 由于外围设备的种类较多,且其传输速率相差很大,所以通道 也具有多种类型。根据信息交换方式,可以把通道分成以下 三种类型: 字节多路通道( Byte Multiplexor channe1) 在这种通道中,通常都含有较多个(8,16,32)非分配型子 通道,每一个子通道连接一台I/0设备。这些子通道按时间片 轮转方式共享主通道。一个子通道完成一个字节的传送后, 立即让出字节多路通道(主通道),给另一个子通道使用。 它适用于连接低速或中速设备,如打印机、终端等
I/O通道控制方式-1 2.通道程序 通道是通过执行通道程序,并与设备控制器来共同实现对 I/O设备的控制。通道程序是由一系列的通道指令(或称为通 道命令)所构成。通道指令与一般的机器指令不同,在每条 指令中包含的信息较多,有操作码、内存地址、计数(读或 写数据的字节数)、通道程序结束位P和记录结束标志R。 3.通道类型 由于外围设备的种类较多,且其传输速率相差很大,所以通道 也具有多种类型。根据信息交换方式,可以把通道分成以下 三种类型: • 字节多路通道(Byte Multiplexor Channel) 在这种通道中,通常都含有较多个(8,16,32)非分配型子 通道,每一个子通道连接一台I/O设备。这些子通道按时间片 轮转方式共享主通道。一个子通道完成一个字节的传送后, 立即让出字节多路通道(主通道),给另一个子通道使用。 它适用于连接低速或中速设备,如打印机、终端等