程序查询方式

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三,程序查询输入/输出方式 程序查询输入/ 程序查询方式是利用程序控制实现CPU和I/O设备之间的数 程序查询方式是利用程序控制实现CPU和I/O设备之间的数 据传送.程序执行的动作如下: 据传送.程序执行的动作如下: (1)先向 (1)先向I/O设备发出命令字,请求进行数据传送; 先向I/O设备发出命令字 请求进行数据传送; 设备发出命令字, (2)从I/O接口读入状态宇 (2)从I/O接口读入状态宇; 接口读入状态宇; (3)检查状态字中的标志 看看数据文换是否可以进行; (3)检查状态字中的标志,看看数据文换是否可以进行; 检查状态字中的标志, (4)假如这个设备没有准备就绪 则第(2)、 (3)步重复进 (4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进 假如这个设备没有准备就绪, 行准备好交换数据,发出准备就绪信号“Ready”为止。 行准备好交换数据,发出准备就绪信号“Ready”为止。 (5)CPU从I/O接口的数据缓存寄存器输入数据 (5)CPU从I/O接口的数据缓存寄存器输入数据.或将数据 接口的数据缓存寄存器输入数据. CPU输出至接口的数据缓冲寄存器 与此同时,CPU将接 输出至接口的数据缓冲寄存器. 从CPU输出至接口的数据缓冲寄存器.与此同时,CPU将接 口中的状态标志复位。 口中的状态标志复位。 示出了上述步骤的流程图和相应的程序. 图8.5示出了上述步骤的流程图和相应的程序.主程序去检 查状态字寄存器. I/O设备是否 准备就绪” 设备是否“ 查状态字寄存器.看I/O设备是否“准备就绪”.如果没有 准备就绪.则进行循环等待;如果已准备好. 准备就绪.则进行循环等待;如果已准备好.则执行数据交 然后再回到主程序。 换,然后再回到主程序。
8.2 程序查询方式
程序查询方式又叫程序控制I/O方式 在这种方式中. 程序查询方式又叫程序控制I/O方式.在这种方式中.数 方式. 据在CPU相外围设备之间的传送完全靠计算机程序控制 相外围设备之间的传送完全靠计算机程序控制, 据在CPU相外围设备之间的传送完全靠计算机程序控制, 是在CPU主动控制下进行的 当输入/输出时,CPU暂 主动控制下进行的. 是在CPU主动控制下进行的.当输入/输出时,CPU暂 停执行本程序,转去执行输入/输出的服务程序, 停执行本程序,转去执行输入/输出的服务程序,根据服 务程序中的I/O指令进行数据传送 指令进行数据传送. 务程序中的I/O指令进行数据传送. 这是一种最简单、最经济的输入/输出方式. 这是一种最简单、最经济的输入/输出方式.它只需要 很少的硬件,因此大多数机器特别是在微、小型机中, 很少的硬件,因此大多数机器特别是在微、小型机中,常 用程序查询方式来实现低速设备的输入/输出管理。 用程序查询方式来实现低速设备的输入/输出管理。 设备编制和I/O指令 一,设备编制和I/O指令 1. 设备编址 用程序实现输入/输出传送的机器,根据其结构特点, 用程序实现输入/输出传送的机器,根据其结构特点, 外围设备有两种不同的编址方法: 外围设备有两种不同的编址方法:统一编址法和单独编址 法.
不同的机器,所采用的I/O指令格式和操作也不相 不同的机器,所采用的I/O指令格式和操作也不相 NOVA系列机用表 系列机用表8 条指令来完成上述功能, 同.NOVA系列机用表8.2中8条指令来完成上述功能,其 I/O指令格式如下 I/O指令格式如下: 指令格式如下:
其中第0 其中第0一2位011表示I/O指令;OP表示操作码、用以指 011表示 表示I/O指令 OP表示操作码 指令; 表示操作码、 I/O指令的操作类型 见表8 指令的操作类型( DMs表示 表示I/O设备的 定I/O指令的操作类型(见表8.2);DMs表示I/O设备的 设备地址,每个设备地址中可含有A, B, 三个数据寄存器; 设备地址,每个设备地址中可含有A, B,C三个数据寄存器; 8,9位表示控制功能.如启动设备(s)、关闭设备(c)等; 位表示控制功能.如启动设备(s)、关闭设备(c)等 AC表示 AC表示CPU中的四个累加器。 表示CPU中的四个累加器 中的四个累加器。 上述I/O指令如用汇编语言写出时 指令“ 指令如用汇编语言写出时. 2,13” 上述I/O指令如用汇编语言写出时.指令“DOAS 2,13” 表示把AC2的内容输出到 号设备的 数据缓冲寄作器中, 的内容输出到12号设备的A 表示把AC2的内容输出到12号设备的A数据缓冲寄作器中, 同时启动13号设备工作 指令“ 号设备工作. 12” 表示把12 同时启动13号设备工作.指令“DICC 1, 12” 表示把12 号设备中C寄存器的数据送入CPU的 号累加器(AC1) 号设备中C寄存器的数据送入CPU的1号累加器(AC1),并 关闭12号设备 号设备。 关闭12号设备。
1。设备选择电路 。 接到总线上的每个设备都预先给定设备地址码.CPU执行 接到总线上的每个设备都预先给定设备地址码. 执行 I/O指令时需要把指令中的 设备地址送到地址总线上, 指令时需要把指令中的J设备地址送到地址总线上 指令时需要把指令中的 设备地址送到地址总线上, 用以指示CPU要选择的设备.每个设备接口电路都包含 要选择的设备. 用以指示 要选择的设备 一个设备选择电路. 一个设备选择电路.用它判别地址总线上呼叫的设备施不 是本设备.如果是,本设备就进入工作状态,否则不予理 是本设备.如果是,本设备就进入工作状态, 睬.设备选择电路实际上是设备地址的译码器. 设备选择电路实际上是设备地址的译码器. 2. 2.数据缓冲寄存器 当输入操作时,用数据缓冲寄存器来存放从I/ 设备读出 当输入操作时,用数据缓冲寄存器来存放从 /O设备读出 的数据.然而送往CPU;当输出操作时。用数据缓冲寄存 当输出操作时。 的数据.然而送往 当输出操作时 器来停放CPU近来的数据,以便送给 近来的数据, 设备输出. 器来停放 近来的数据 以便送给I/O设备输出. 设备输出 3。设备状态位(标志) 。设备状态位(标志) 设备状态位是接口中的标志触发器, 设备状态位是接口中的标志触发器,如“忙”、“准备就 错误” 用来标志设备的工作状态. 绪”、“错误”等。用来标志设备的工作状态.以便接口 对外设进行监视.一旦CPU用程序询问 用程序询问I/O设备时,将 设备时, 对外设进行监视.一旦 用程序询问 设备时 状态位信息取至CPU进行分析. 进行分析. 状态位信息取至 进行分析
显然,这种方式的优点是CPU的操作可以和I/O设备操 的操作可以和I/O设备操 显然,这种方式的优点是CPU的操作可以和 作同步,且接口硬件比较简单.但缺点是. 作同步,且接口硬件比较简单.但缺点是.当程序进入 循环时,CPU只能踏步等待 不能处理其他任务。 只能踏步等待, 循环时,CPU只能踏步等待,不能处理其他任务。 为此在实际应用中做如下改近:CPU在执行主程序的过 为此在实际应用中做如下改近:CPU在执行主程序的过 促中可周期性地调用各I/O设备询问子程序 设备询问子程序. 促中可周期性地调用各I/O设备询问子程序.而询问子 程序依次测试各I/O设备的状态触发器 Ready” 设备的状态触发器“ 程序依次测试各I/O设备的状态触发器“Ready”.如 果某设备的Ready为 果某设备的Ready为“1”.则转去执行该设备的服务子 程序;如该设备的Ready为 程序;如该设备的Ready为“o”.则依次测试下一个设 示出了典型的程序查询流程图。 备。图8。6示出了典型的程序查询流程图。 设备服务子程序的主要功能是:(1)实现数据传送.输 设备服务子程序的主要功能是:(1)实现数据传送. 实现数据传送 入时, I/O指今将设备的数据送 指今将设备的数据送CPU某寄存器 某寄存器, 入时,由I/O指今将设备的数据送CPU某寄存器,再由 访内指令把守存器中的数据存入内存某单元;输出时。 访内指令把守存器中的数据存入内存某单元;输出时。 其过程正好相反.(2)修改内存地址 修改内存地址, 其过程正好相反.(2)修改内存地址,为下一次数据传送 做准备.(3)修改传送字节数 以便修改传送长度. 修改传送字节数。 做准备.(3)修改传送字节数。以便修改传送长度.(4) 进行状态分析或其他控制功能. 进行状态分析或其他控制功能.
Biblioteka Baidu
输入/输出指今不仅用于传达数据和控制设备的启动 输入 输出指今不仅用于传达数据和控制设备的启动 与关闭,而且也用于测试设备的状态。如表8. 中的 与关闭,而且也用于测试设备的状态。如表 .2中的 SKP指令是测试跳步指令,它是程序查询方式中常用的 指令是测试跳步指令, 指令是测试跳步指令 指令.其功能是测试I/O设备的状态标志 如“就绪” 设备的状态标志(如 就绪” 指令.其功能是测试 设备的状态标志 触发器);若状态标志为“ 。则顺序执行下一条指令; 触发器 ;若状态标志为“o”。则顺序执行下一条指令; 若状态标志为“ ,则跳过下一条指令. 若状态标志为“1”,则跳过下一条指令. 二.程序查询方式的接口 程序查询方式的接口 诚如前面所述, 接口”是总线与I/O设备之间的一 诚如前面所述,“接口”是总线与 设备之间的一 个逻辑部件。它作为一个转换器.用以保证I/O设备用 个逻辑部件。它作为一个转换器.用以保证 设备用 计算机系统待性所要求的形式发送或接收信息. 计算机系统待性所要求的形式发送或接收信息. 由于主机和I/O设备之间进行数据传送的方式不同, 由于主机和 设备之间进行数据传送的方式不同, 设备之间进行数据传送的方式不同 因而接口的逻辑结构也相应有所不同。 因而接口的逻辑结构也相应有所不同。程序查询方式最 简单的.如图8. 所示 所示。 简单的.如图 .4所示。 程序查询方式的接口电路应包括如下部分: 程序查询方式的接口电路应包括如下部分:
在图8 3(b)的机器结构中 内存地址和I/O设备的地址 在图8.3(b)的机器结构中,内存地址和I/O设备的地址 的机器结构中, 是分开的.当访问内存时,由内存读、 是分开的.当访问内存时,由内存读、内存写两条控制线 控制;当访问I/O设备时 设备时, I/O读 I/O写两条控制 控制;当访问I/O设备时,由I/O读、I/O写两条控制 线控制.微型机Intel8080和Z80就是这类机器 就是这类机器. 线控制.微型机Intel8080和Z80就是这类机器.它有 专门的I/O指令组 指令组。 专门的I/O指令组。 2.输入/输出指令 输入/ 当用程序实现输入/输出传送时,I/O指令一般具有如 当用程序实现输入/输出传送时,I/O指令一般具有如 下功能: 下功能: (1)置 (1)置“1”或置“o”设备接口的某些控制触发器,用于 或置“ 设备接口的某些控制触发器, 控制设备进行某些动作、关闭设备、令磁带转动等. 控制设备进行某些动作、关闭设备、令磁带转动等. (2)测试设备的某些状态 (2)测试设备的某些状态,如“忙”、“准备就绪” 测试设备的某些状态, 准备就绪” 以便决定下一步的操作. 等.以便决定下一步的操作. (3)传送数据 当输入数据时, I/O设备中数据寄存器 (3)传送数据.当输入数据时,将I/O设备中数据寄存器 传送数据. 的内容送到CPU某一寄存器 当输出数据时. CPU中 某一寄存器; 的内容送到CPU某一寄存器;当输出数据时.将CPU中 寄存器的内容送到I/O设备的数据寄存器 设备的数据寄存器. 某—寄存器的内容送到I/O设备的数据寄存器.
所谓统一编址,是指输入/输出设备中的控制寄存器, 所谓统一编址,是指输入/输出设备中的控制寄存器, 数据寄存器,状态寄存器等也和内存单元一样看待, 数据寄存器,状态寄存器等也和内存单元一样看待,将 它们和内存单元联合在一起编排地址. 它们和内存单元联合在一起编排地址.这样就可用访问 内存的指令( 写指令)去访问I/O设备的某个寄存器 设备的某个寄存器, 内存的指令(读、写指令)去访问I/O设备的某个寄存器, 因而不需要专门的I/O指令组 比如. 指令组. 因而不需要专门的I/O指令组.比如.用访问存储器的 写指令就能实现I/O设备与 设备与CPU之间的数据传 读/写指令就能实现I/O设备与CPU之间的数据传 又如,比较指令可以用来比较I/O设备中某个寄存 送.又如,比较指令可以用来比较I/O设备中某个寄存 器的值,以此判断输入输出操作的执行情况.微型机M 器的值,以此判断输入输出操作的执行情况.微型机M 6800和小型机 6800和小型机PDP—11系列采用的就是统一编址 和小型机PDP—11系列采用的就是统一编址 法.在PDP—11中,把最高4K内存地址作为I/O设备 PDP—11中 把最高4K内存地址作为 内存地址作为I/O设备 寄存器的地址. 寄存器的地址. 3(a)是统 编址的单总线结构.所有的I/O设备 是统— 设备、 图8.3(a)是统—编址的单总线结构.所有的I/O设备、 内存和CPU共用同一条总线 共中地址总线传送CPU要 共用同一条总线. 内存和CPU共用同一条总线.共中地址总线传送CPU要 访问内存的地址或I/O设备的地址 数据总线传送数据、 设备的地址; 访问内存的地址或I/O设备的地址;数据总线传送数据、 指令和状态信息; 指令和状态信息;控制总线传送定时信号和各种控制信 号.
相关文档
最新文档