简介
控制器(controller)是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。作业控制器即用于将作业交给计算机及控制作业运行的装置。作业控制器使作业处理从人为操作方式转变成了脱机处理的方式。
作业类型脱机作业是指在计算机上无须人工干预而执行系列程序的作业。操作系统提供了一个作业控制语言 JCL(Job Control Language), 用户使用 JCL 语言预先写好作业说明书,将它和作业的程序与数据一起提交给计算机,当该作业运行时,OS 将逐条按照用户作业说明书的控制语句,自动控制作业的执行。脱机作业有如下优点:
允许多用户共享计算机资源
可以把作业处理转移到计算机资源不太繁忙的时段
避免计算资源闲置,而且无须时刻有人工监视和干预
在昂贵的高端计算机上,使昂贵的资源保持高使用率,以减低平均开销
联机作业联机作业(on-line job):指由用户从终端打入键盘命令,直接控制其运行的作业,通常又称为终端型作业。用户可以使用联机控制命令来对自己的作业进行控制。
作业控制器基本功能数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。
差错控制:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向 CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。
数据交换:这是指实现CPU与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。
状态说明:标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。
接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收CPU发来的Read、Write、Format等15条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。
地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址。
组成作业控制器位于 CPU 与设备之间,它既要与 CPU 通信,又要与设备通信,还应具有按照 CPU 所发来的命令去控制设备工作的功能,因此,现有的大多数控制器都是由以下三部分组成的。
设备控制器与处理机的接口该接口用于实现 CPU 与设备控制器之间的通信。共有三类信号线: 数据线、地址线和控制线。数据线通常与两类寄存器相连接,第一类是数据寄存器(在控制器中可以有一个或多个数据寄存器,用于存放从设备送来的数据(输入)或从 CPU 送来的数据(输出));第二类是控制/状态寄存器(在控制器中可以有一个或多个这类寄存器,用于存放从 CPU 送来的控制信息或设备的状态信息)。
设备控制器与设备的接口在一个设备控制器上,可以连接一个或多个设备。相应地,在控制器中便有一个或多个设备接口,一个接口连接一台设备。在每个接口中都存在数据、控制和状态三种类型的信号。控制器中的 I/O 逻辑根据处理机发来的地址信号去选择一个设备接口。
I/O 逻辑在设备控制器中的 I/O 逻辑用于实现对设备的控制。它通过一组控制线与处理机交互,处理机利用该逻辑向控制器发送 I/O 命令; I/O 逻辑对收到的命令进行译码。 每当 CPU 要启动一个设备时,一方面将启动命令发送给控制器;另一方面又同时通过地址线把地址发送给控制器, 由控制器的 I/O 逻辑对收到的地址进行译码, 再根据所译出的命令对所选设备进行控制。