← Back to Patent Explorer
US3725864A Expired / Lapsed US ⏱️ 0.0 years remaining

Input/output control

Assignee: International Business Machines Corp
•
Filing: 1971-03-03
•
Granted: 1973-04-03
•
Expires: 1991-03-03
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An input/output control system for a data processor which controls the transfer of data from I/O devices (such as disks or drums in which data are recorded in fixed sector lengths and in which the devices are capable of signalling when they reach any desired sector). A plurality of channels for scheduling and executing input/output programs are provided, each capable of being logically connected to a device through a cross-point switch. I/O tasks are placed in a queue common to the channels. Channels extract tasks from the queue and execute channel programs associated with the tasks. During latent periods of devices channel programs corresponding to the devices are queued in device queues. This frees a channel to go on to another task. When a device is at a point where its program can be continued, any free channel which has access to the device responds, reenters the program by extracting it from the device queue, and resumes execution of the program.

Inventors

  • 👤 W Clark
  • 👤 K Salmond
  • 👤 T Stafford

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-22 23:44
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10; G06F13/12; G06F13/122

Claims Analysis

Total Claims: 72
Claim 1
Independent Claim 199 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling an input/output operation performed by one of said interpreters comprising: selecting an I/O task from the queue of tasks; performing the task, which is in the form of an I/O program, up to the point where the controlled I/O device involved in the task does not need direct control for a relatively long period of time; temporarily storing in the temporary memory area the partially performed task in a device queue for the device being controlled; selectiNg another task from the queue of tasks and executing the I/O program associated with the new task; monitoring the I/O device for the signal generated by the device when it reaches a point where it needs direct control; and fetching the partially performed task previously stored in the device queue in response to the signal generated by the device to thereby resume the previously suspended I/O program.
Claim 2
Dependent Claim 199 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling an input/output operation performed by one of said interpreters comprising: selecting an I/O task from the queue of tasks; performing the task, which is in the form of an I/O program, up to the point where the controlled I/O device involved in the task does not need direct control for a relatively long period of time; temporarily storing in the temporary memory area the partially performed task in a device queue for the device being controlled; selectiNg another task from the queue of tasks and executing the I/O program associated with the new task; monitoring the I/O device for the signal generated by the device when it reaches a point where it needs direct control; and fetching the partially performed task previously stored in the device queue in response to the signal generated by the device to thereby resume the previously suspended I/O program.
Claim 3
Independent Claim 320 words
The method of reading logically contiguous groups of data recorded in blocks on physically non-contiguous locations of auxiliary storage I/O devices in a stored program data processing system, said system including a memory in which a dependent argument table is stored, said table containing a class code, block number and parameters defining a device queue and the data sought, and in which a channel control block (CCB) is stored which is initialized to contain a buffer address, a string length and a pointer to an independent argument table the method comprising a program loop of commands executed as part of a channel program execution of which commands by an I/O interpreter serves to read a string of data contained wholly within a single segment of a data set and within a single mechanical position of a device, the repetitive execution of said loop reading a logically contiguous string of bytes having consecutive logical addresses, comprising the steps of: executing a first enqueue command, having independent and dependent arguments, which command presents the logical address of the first byte of the desired string of data, including the steps of resolving said independent argument of said enqueue command to locate an entry in the independent argument table; establishing the validity of said entry and locating the corresponding dependent argument table; fetching the class code from said dependent argument table; resolving said dependent argument including a sequence loop in which the segment of the data set containing the first byte of the desired string of data is determined; including the steps of determining the maximum number of said blocks which may be read or written following the execution of said enqueue command; decoding said class code to identify the I/O device involved in the operation enqueuing said channel control block onto a device queue using parameters found in said dependent argument table and selecting said device; whereby said channel program may be suspended.
Claim 4
Independent Claim 320 words
The method of reading logically contiguous groups of data recorded in blocks on physically non-contiguous locations of auxiliary storage I/O devices in a stored program data processing system, said system including a memory in which a dependent argument table is stored, said table containing a class code, block number and parameters defining a device queue and the data sought, and in which a channel control block (CCB) is stored which is initialized to contain a buffer address, a string length and a pointer to an independent argument table the method comprising a program loop of commands executed as part of a channel program execution of which commands by an I/O interpreter serves to read a string of data contained wholly within a single segment of a data set and within a single mechanical position of a device, the repetitive execution of said loop reading a logically contiguous string of bytes having consecutive logical addresses, comprising the steps of: executing a first enqueue command, having independent and dependent arguments, which command presents the logical address of the first byte of the desired string of data, including the steps of resolving said independent argument of said enqueue command to locate an entry in the independent argument table; establishing the validity of said entry and locating the corresponding dependent argument table; fetching the class code from said dependent argument table; resolving said dependent argument including a sequence loop in which the segment of the data set containing the first byte of the desired string of data is determined; including the steps of determining the maximum number of said blocks which may be read or written following the execution of said enqueue command; decoding said class code to identify the I/O device involved in the operation enqueuing said channel control block onto a device queue using parameters found in said dependent argument table and selecting said device; whereby said channel program may be suspended.
Claim 5
Dependent Claim 41 words
The method of claim 2 including the further steps of: accepting a device address to thereby locate a device queue or subqueue; fetching a CCB from an address in said device queue; and terminating said operation to fetch the next command.
Claim 6
Dependent Claim 48 words
The method of claim 3 comprising the further steps of: executing a read command repetitively until the current block terminates on a mechanical or segment boundary; and completing the operation with a branch code to branch back to said enqueue command upon the condition that said boundary occurs.
Claim 7
Dependent Claim 41 words
The method of claim 4 further including the steps of modifying the contents of said CCB to insure that during each iteration of the three command loop the buffer address, string length and independent argument are appropriate to a subsequent iteration.
Claim 8
Dependent Claim 146 words
In a data processing system a method of providing a mechanism for automatic authority protection among components of an input/output subsystem whereby channel programs performed by a channel initiated by a CPU program invoke only those components, or actions with respect to components, which are implied by said mechanism, comprising the steps of: preparing an independent argument table (IAT) which table establishes the authority of a CPU program to invoke certain I/O devices; fetching a channel control block containing a task identification supplied by said CPU program, and a pointer to a channel program to be executed; and indirectly addressing said IAT by utilizing said task identificatIon to resolve the address of said table; whereby said channels assume the role of mutually protecting CPU programs and related channel programs and the dynamic use of I/O devices without the need for a supervisory program in the CPU.
Claim 9
Dependent Claim 146 words
In a data processing system a method of providing a mechanism for automatic authority protection among components of an input/output subsystem whereby channel programs performed by a channel initiated by a CPU program invoke only those components, or actions with respect to components, which are implied by said mechanism, comprising the steps of: preparing an independent argument table (IAT) which table establishes the authority of a CPU program to invoke certain I/O devices; fetching a channel control block containing a task identification supplied by said CPU program, and a pointer to a channel program to be executed; and indirectly addressing said IAT by utilizing said task identificatIon to resolve the address of said table; whereby said channels assume the role of mutually protecting CPU programs and related channel programs and the dynamic use of I/O devices without the need for a supervisory program in the CPU.
Claim 10
Dependent Claim 51 words
The method of claim 6 further including the steps of preparing a dependent argument table indirectly addressed by at least one entry in said independent argument table; said dependent argument table defining parameters translatable to produce the address of a device with which the channel is to establish a logical connection.
Claim 11
Independent Claim 193 words
The method of controlling a data processing system including: a primary controlling module for executing a primary program; a secondary controlling module for executing a secondary program stored at an indirect address in a memory shared by said primary and secondary module; and a controlled module controlled by said secondary program as executed by said secondary controlling module, comprising the steps of: storing a control word containing the indirect address of said secondary program and control information relative to said controlled module in a first memory queue accessible by said secondary controlling module; alerting said secondary controlling module that the control word is in the queue; fetching said control word to said secondary controlling module; controlling said controlled module by executing said secondary program up to an exit point in said program; posting said exit point in said control word; transferring said control word to a second queue accessible by said secondary controlling module; and fetching said control word from said second queue in response to a signal from said controlled module to thereby re-enter said secondary program at said exit point to thereby resume control of said controlled module in response thereto.
Claim 12
Independent Claim 193 words
The method of controlling a data processing system including: a primary controlling module for executing a primary program; a secondary controlling module for executing a secondary program stored at an indirect address in a memory shared by said primary and secondary module; and a controlled module controlled by said secondary program as executed by said secondary controlling module, comprising the steps of: storing a control word containing the indirect address of said secondary program and control information relative to said controlled module in a first memory queue accessible by said secondary controlling module; alerting said secondary controlling module that the control word is in the queue; fetching said control word to said secondary controlling module; controlling said controlled module by executing said secondary program up to an exit point in said program; posting said exit point in said control word; transferring said control word to a second queue accessible by said secondary controlling module; and fetching said control word from said second queue in response to a signal from said controlled module to thereby re-enter said secondary program at said exit point to thereby resume control of said controlled module in response thereto.
Claim 13
Dependent Claim 95 words
The method according to claim 8 including the further steps of: transmitting a status code to said controlled module, said status code representing a set of conditions in said controlled module requisite to the initiation of a specific operation; signalling said controlled module to respond when said conditions associated with said status code are satisfied in said controlled module; and transmitting a response code to said secondary controlling module when the conditions associated with said status code registered in said controlled module are met, to thereby establish a condition for resumption of said secondary program.
Claim 14
Dependent Claim 33 words
The method according to claim 9 comprising the further step of transmitting multiple status codes accompanied by response codes to thereby establish more than one condition for the resumption of said secondary program.
Claim 15
Independent Claim 183 words
The method of controlling a data processing system including: a central processing unit (CPU) for executing a primary program; a channel/control unit (CCU) for executing a secondary program stored at an indirect address in a memory shared by said CPU and said CCU; and an I/O device controlled by said secondary program as executed by said CCU, comprising the steps of: storing a control word containing the indirect address of said secondary program and control information relative to said I/O device in a work queue accessible by said CCU; alerting said CCU that the control word is in the queue; fetching said control word to said CCU; controlling said I/O device by executing said secondary program up to an exit point in said program; posting said exit point in said control word; transferring said control word to a device queue accessible by said CCU; and fetching said control word from said device queue in response to a signal from said I/O device to thereby re-enter said secondary program at said exit point to thereby resume control of said I/O device in response thereto.
Claim 16
Independent Claim 183 words
The method of controlling a data processing system including: a central processing unit (CPU) for executing a primary program; a channel/control unit (CCU) for executing a secondary program stored at an indirect address in a memory shared by said CPU and said CCU; and an I/O device controlled by said secondary program as executed by said CCU, comprising the steps of: storing a control word containing the indirect address of said secondary program and control information relative to said I/O device in a work queue accessible by said CCU; alerting said CCU that the control word is in the queue; fetching said control word to said CCU; controlling said I/O device by executing said secondary program up to an exit point in said program; posting said exit point in said control word; transferring said control word to a device queue accessible by said CCU; and fetching said control word from said device queue in response to a signal from said I/O device to thereby re-enter said secondary program at said exit point to thereby resume control of said I/O device in response thereto.
Claim 17
Dependent Claim 93 words
The method according to claim 11 including the further steps of: transmitting a sTatus code to said I/O device, said status code representing a set of conditions in said I/O device requisite to the initiation of a specific operation; signalling said I/O device to respond when said conditions associated with said status code are satisfied in said I/O device; and transmitting a response code to said CCU when the conditions associated with said status code registered in said I/O device are met, to thereby establish a condition for resumption of said secondary program.
Claim 18
Dependent Claim 33 words
The method according to claim 12 including the further step of transmitting multiple status codes accompanied by response codes to thereby establish more than one condition for the resumption of said secondary program.
Claim 19
Independent Claim 212 words
The method of controlling a data processing system including: at least one primary controlling module for executing a primary program; a plurality of secondary controlling modules for executing secondary programs stored at indirect addresses in a memory shared by said primary and secondary controlling modules; and a plurality of controlled modules controlled by said secondary programs as executed by said secondary controlling modules, comprising the steps of: storing a plurality of control words containing the indirect addresses of said secondary programs and control information relative to said controlled modules in a first memory queue accessible by said secondary controlling modules; alerting said secondary controlling modules that control words have been placed in said queue; fetching a control word to one of said secondary controlling modules; controlling a controlled module by executing the secondary program associated with said control word up to an exit point in said program; posting said exit point in said control word; said control word to a second memory queue accessible by said secondary controlling modules; fetching a respective control word from the one of said second queues corresponding to said controlled module in response to a signal from said controlled module; and re-entering said secondary program at said exit point to thereby resume control of said controlled module.
Claim 20
Independent Claim 212 words
The method of controlling a data processing system including: at least one primary controlling module for executing a primary program; a plurality of secondary controlling modules for executing secondary programs stored at indirect addresses in a memory shared by said primary and secondary controlling modules; and a plurality of controlled modules controlled by said secondary programs as executed by said secondary controlling modules, comprising the steps of: storing a plurality of control words containing the indirect addresses of said secondary programs and control information relative to said controlled modules in a first memory queue accessible by said secondary controlling modules; alerting said secondary controlling modules that control words have been placed in said queue; fetching a control word to one of said secondary controlling modules; controlling a controlled module by executing the secondary program associated with said control word up to an exit point in said program; posting said exit point in said control word; said control word to a second memory queue accessible by said secondary controlling modules; fetching a respective control word from the one of said second queues corresponding to said controlled module in response to a signal from said controlled module; and re-entering said secondary program at said exit point to thereby resume control of said controlled module.
Claim 21
Dependent Claim 97 words
The method according to claim 14 including the further steps of: transmitting a status code to one of said controlled modules, said status code representing a set of conditions in said controlled module requisite to the initiation of a specific operation; signalling said controlled module to respond when said conditions associated with said status code are satisfied in said controlled module; and transmitting a response code to said secondary controlling modules when the conditions associated with said status code registered in said controlled module are met, to thereby establish a condition for resumption of said secondary program.
Claim 22
Dependent Claim 33 words
The method according to claim 15 including the further step of transmitting multiple status codes accompanied by response codes to thereby establish more than one condition for the resumption of said secondary program.
Claim 23
Dependent Claim 319 words
In a data processing system including primary and secondary controlling modules, controlled modules, and a memory for storing primary and secondary programs for execution by said primary and secondary controlling modules, respectively, and wherein only certain ones of secondary controlling modules are electrically connected to controlled modules in said system, said memory containing a table of the origins of secondary module queues, one queue defined for each maximum set of secondary modules which have access to the same set of controlled modules and a work queue in a table at a fixed location; said memory also containing a secondary module queue control word for maintaining an inventory of the contents of said secondary module queues, the value of the bits in said queue control word indicating whether the corresponding secondary module queues are empty or contain control words indirectly addressing secondary programs to be performed by one of said plurality of secondary modules; a first state of the bit in the nth position of the queue control word signifying that the nth channel queue consists of a chain of said control words and a second state of the bit in said position signifying that the nth queue is empty; the method of insuring that only secondary controlling modules having access to controlled modules involved in an operation select a corresponding secondary program for execution comprising the steps of: setting the nth bit of the queue control word to a first state upon the condition that a control word is placed into said empty nth secondary module queue by said primary controlling module; setting said nth bit of the queue control word to a second state upon the extraction of a control word from said queue by said secondary controlling module; and setting a predetermined bit of said queue control word to a first state when a control word is added to said work queue by said primary controlling module.
Claim 24
Dependent Claim 319 words
In a data processing system including primary and secondary controlling modules, controlled modules, and a memory for storing primary and secondary programs for execution by said primary and secondary controlling modules, respectively, and wherein only certain ones of secondary controlling modules are electrically connected to controlled modules in said system, said memory containing a table of the origins of secondary module queues, one queue defined for each maximum set of secondary modules which have access to the same set of controlled modules and a work queue in a table at a fixed location; said memory also containing a secondary module queue control word for maintaining an inventory of the contents of said secondary module queues, the value of the bits in said queue control word indicating whether the corresponding secondary module queues are empty or contain control words indirectly addressing secondary programs to be performed by one of said plurality of secondary modules; a first state of the bit in the nth position of the queue control word signifying that the nth channel queue consists of a chain of said control words and a second state of the bit in said position signifying that the nth queue is empty; the method of insuring that only secondary controlling modules having access to controlled modules involved in an operation select a corresponding secondary program for execution comprising the steps of: setting the nth bit of the queue control word to a first state upon the condition that a control word is placed into said empty nth secondary module queue by said primary controlling module; setting said nth bit of the queue control word to a second state upon the extraction of a control word from said queue by said secondary controlling module; and setting a predetermined bit of said queue control word to a first state when a control word is added to said work queue by said primary controlling module.
Claim 25
Dependent Claim 94 words
The method according to claim 17 further including the step of constructing a list of mask words for describing the relationship between the secondary modules and the secondary module queues defined for said secondary modules, one mask word associated with each secondary module, the bits in said mask word set to indicate whether the corresponding secondary module queues are of significance to said secondary module, a one in the nth bit of a mask word signifying that the nth secondary module queue is related to the secondary module to which said mask word pertains.
Claim 26
Dependent Claim 49 words
The method according to claim 18 further including the steps of: setting one of said bits of each said mask word to signify that said first memory queue is associated with all the secondary modules; and logically removing a secondary module from said system by clearing its mask word.
Claim 27
Dependent Claim 63 words
The method according to claim 18 further including the step of: determining, in response to a command requiring the establishing of a logical connection with a controlled module, if said controlled module is accessible to said secondary controlling module by examining the bit of the mask word of said secondary controlling module associated with the secondary module queue corresponding to said controlled module.
Claim 28
Dependent Claim 74 words
The method according to claim 20 further including the steps of transferring said secondary program to another secondary controlling module by adding the control word to the secondary module queue corresponding to said controlled module upon the condition that said bit in said mask word corresponding to said secondary module queue is zero; and signalling the secondary controlling modules associated with said queue upon the condition that said queue was empty before this operation.
Claim 29
Dependent Claim 71 words
The method according to claim 21 further including the steps of: fetching both the mask word and said queue control word of a secondary controlling module; and developing the bit-wise product of said mask word and said queue control word, whereby the resultant one bits correspond to secondary module queues containing control words relating both to controlled modules accessible to the secondary module and to secondary programs suspended within said operation.
Claim 30
Dependent Claim 60 words
The method according to claim 22 further including the step of: removing a control word from the queue related to the least significant one bit of said bit-wise product; whereby execution of the corresponding secondary program is then assumed by said secondary module in accordance with a predetermined priority which thereby gives priority to programs which have been partially executed.
Claim 31
Independent Claim 214 words
The method of controlling a data processing system including: a memory; at least one central processing unit (CPU) for executing a primary program stored in said memory; a plurality of channel/control units (CCUs) for executing secondary programs stored at indirect addresses in said memory, said memory sHared by said CPU and CCUs; and a plurality of input/output (I/O) devices controlled by said secondary programs as executed by said CCUs, comprising the steps of: storing a plurality of control words containing the indirect addresses of said secondary programs and control information relative to said I/O devices in a work queue in said memory accessible by said CCUs; alerting said CCUs that a control word has been placed therein; fetching a control word to one of said CCUs; controlling an I/O device by executing the secondary program associated with said control word up to an exit point in said program; posting said exit point in said control word; transferring said control word to a device queue in said memory accessible by said CCUs; fetching a respective control word from the one of said device queues corresponding to said I/O device in response to a signal from said I/O device; and re-entering said secondary program at said exit point to thereby resume control of said I/O device.
Claim 32
Independent Claim 214 words
The method of controlling a data processing system including: a memory; at least one central processing unit (CPU) for executing a primary program stored in said memory; a plurality of channel/control units (CCUs) for executing secondary programs stored at indirect addresses in said memory, said memory sHared by said CPU and CCUs; and a plurality of input/output (I/O) devices controlled by said secondary programs as executed by said CCUs, comprising the steps of: storing a plurality of control words containing the indirect addresses of said secondary programs and control information relative to said I/O devices in a work queue in said memory accessible by said CCUs; alerting said CCUs that a control word has been placed therein; fetching a control word to one of said CCUs; controlling an I/O device by executing the secondary program associated with said control word up to an exit point in said program; posting said exit point in said control word; transferring said control word to a device queue in said memory accessible by said CCUs; fetching a respective control word from the one of said device queues corresponding to said I/O device in response to a signal from said I/O device; and re-entering said secondary program at said exit point to thereby resume control of said I/O device.
Claim 33
Dependent Claim 95 words
The method according to claim 24 including the further steps of: transmitting a status code to one of said I/O devices, said status code representing a set of conditions in said I/O device requisite to the initiation of a specific operation; signalling said I/O device to respond when said conditions associated with said status code are satisfied in said I/O device; and transmitting a response code to said CCUs when the conditions associated with said status code registered in said I/O device are met, to thereby establish a condition for resumption of said secondary program.
Claim 34
Dependent Claim 33 words
The method according to claim 25 including the further step of transmitting multiple status codes accompanied by response codes to thereby establish more than one condition for the resumption of said secondary program.
Claim 35
Dependent Claim 285 words
In a data processing system including a CPU, channel control units (CCUs), I/O devices and a memory for storing primary and secondary programs for execution by said CPU and CCUs, respectively, and wherein only certain ones of channel control units (CCUs) are electrically connected to I/O devices in said system, the method of insuring that only CCUs having access to devices involved in an operation select a corresponding secondary program for execution comprising the steps of: arranging the origins of channel queues in a table of channel queues, one queue defined for each maximum set of CCUs which have access to the same set of devices and a work queue in said table in said memory at a fixed location; providing a channel queue control word for maintaining an inventory of the contents of said channel queues, the value of the bits in said queue control word indicating whether the corresponding channel queues are empty or contain control words indirectly addressing secondary programs to be performed by one of said plurality of CCUs; a one in the nth position of the queue control word signifying that the nth channel queue consists of a chain of said control words and a zero in said position signifying that the nth queue is empty; setting the corresponding bit of the queue control word to a first state upon the condition that a control word is placed into a empty channel queue; setting the corresponding bit of the queue control word to a second state upon the extraction of a control word from said queue; and setting a predetermined bit of said queue control word to a first state when a control word is added to the work queue.
Claim 36
Dependent Claim 285 words
In a data processing system including a CPU, channel control units (CCUs), I/O devices and a memory for storing primary and secondary programs for execution by said CPU and CCUs, respectively, and wherein only certain ones of channel control units (CCUs) are electrically connected to I/O devices in said system, the method of insuring that only CCUs having access to devices involved in an operation select a corresponding secondary program for execution comprising the steps of: arranging the origins of channel queues in a table of channel queues, one queue defined for each maximum set of CCUs which have access to the same set of devices and a work queue in said table in said memory at a fixed location; providing a channel queue control word for maintaining an inventory of the contents of said channel queues, the value of the bits in said queue control word indicating whether the corresponding channel queues are empty or contain control words indirectly addressing secondary programs to be performed by one of said plurality of CCUs; a one in the nth position of the queue control word signifying that the nth channel queue consists of a chain of said control words and a zero in said position signifying that the nth queue is empty; setting the corresponding bit of the queue control word to a first state upon the condition that a control word is placed into a empty channel queue; setting the corresponding bit of the queue control word to a second state upon the extraction of a control word from said queue; and setting a predetermined bit of said queue control word to a first state when a control word is added to the work queue.
Claim 37
Dependent Claim 88 words
The method according to claim 27 further including the step of constructing a list of channel mask words for describing the relationship between the CCUs and the channel queues defined for said CCUs, one channel mask word associated with each CCU, the bits in said mask word set to indicate whether the corresponding channel queues are of significance to said CCU, a one in the nth bit of a mask word signifying that the nth channeL queue is related to the CCU to which said mask word pertains.
Claim 38
Dependent Claim 47 words
The method according to claim 28 further including the steps of: setting one of said bits of each said channel mask word to signify that said work queue is associated with all the CCUs, and logically removing a CCU from said system by clearing its mask word.
Claim 39
Dependent Claim 56 words
The method according to claim 28 further including the steps of: determining, in response to a channel command requiring the establishing of a logical connection with a device, if said device is accessible to said CCU by examining the bit of the mask word of said CCU associated with the channel queue corresponding to said device.
Claim 40
Dependent Claim 68 words
The method according to claim 30 further including the steps of transferring said secondary program to another CCU by adding the control word to the channel queue corresponding to said device upon the condition that said bit in said channel mask word corresponding to said channel queue is zero; and signalling the CCUs associated with said queue upon the condition that said queue was empty before this operation.
Claim 41
Dependent Claim 68 words
The method according to claim 31 further including the steps of: fetching both the channel mask word and said queue control word of a CCU; and developing the bit-wise product of said channel mask word and said queue control word, whereby the resultant one bits correspond to channel queues containing control words relating both to devices accessible to the CCU and to secondary programs suspended within said operation.
Claim 42
Dependent Claim 59 words
The method according to claim 32 further including the steps of: removing a control word from the queue related to the least significant one bit of said bit-wise produce whereby execution of the corresponding channel program is then assumed by said CCU in accordance with a predetermined priority which thereby gives priority to programs which have been partially executed.
Claim 43
Dependent Claim 203 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling said system to transfer data between a computer memory and cyclic devices in which data are recorded in sectors of fixed block lengths and in which the devices are capable of signalling when they reach any desired sector, comprising the steps of: scheduling and executing input/output (I/O) programs on a plurality of said interpreters, each interpreter capable of being logically connected to a device through switching means; placing I/O tasks in a queue in a memory common to said interpreters; extracting tasks from said queue; executing I/O programs associated with said tasks; storing the I/O program associated with a device in a device queue for said device during latent periods of said device; re-entering the program by extracting said programs from the device queue in response to means signalling that said device has reached a point where its program can be resumed; and resuming execution of said program.
Claim 44
Dependent Claim 203 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling said system to transfer data between a computer memory and cyclic devices in which data are recorded in sectors of fixed block lengths and in which the devices are capable of signalling when they reach any desired sector, comprising the steps of: scheduling and executing input/output (I/O) programs on a plurality of said interpreters, each interpreter capable of being logically connected to a device through switching means; placing I/O tasks in a queue in a memory common to said interpreters; extracting tasks from said queue; executing I/O programs associated with said tasks; storing the I/O program associated with a device in a device queue for said device during latent periods of said device; re-entering the program by extracting said programs from the device queue in response to means signalling that said device has reached a point where its program can be resumed; and resuming execution of said program.
Claim 45
Dependent Claim 325 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling an input/output control system comprising the steps of: stacking requests for data transfer to await execution of corresponding I/O programs by extracting from memory empty channel control blocks (CCBs) from a pool of empty CCBs in a shared memory, said CCB including a virtual instruction counter; initializing the CCBs with control information; chaining the CCBs onto an active list of CCBs in a general work queue in said mEmory; independently interpreting I/O programs to carry out input/output operations, by means of interpreters having access to said work queue and switchably connected through switching means to any one of a plurality of input/output devices in which data are stored; issuing an alert signal to the interpreters upon the condition that a CCB has been added to said work queue; extracting a CCB from said work queue in response to said alert signal; storing said CCB in said interpreter; addressing said memory with the contents of said virtual instruction counter to thereby extract from the memory an ENQUEUE command; loading into said interpreter an argument list specified by said ENQUEUE command, said argument list containing parameters describing the data involved in an I/O transfer; converting operands described by said parameters to a device address and a sector address on the device; storing said addresses in said interpreter; enqueuing the CCB stored in said interpreter onto an appropriate device and sector subqueue; issuing an order to the device requesting the corresponding sector; and disconnecting said interpreter from the device, whereupon the interpreter is free to return to the work queue to extract another task or to service a request from an I/O device.
Claim 46
Dependent Claim 325 words
In a data processing system including a central processing unit; a memory area containing a queue of I/O tasks; a temporary memory area; interpreters; and I/O devices, one of said I/O devices having means for generating a signal when it reaches a point where it needs direct control by said controller, the method of controlling an input/output control system comprising the steps of: stacking requests for data transfer to await execution of corresponding I/O programs by extracting from memory empty channel control blocks (CCBs) from a pool of empty CCBs in a shared memory, said CCB including a virtual instruction counter; initializing the CCBs with control information; chaining the CCBs onto an active list of CCBs in a general work queue in said mEmory; independently interpreting I/O programs to carry out input/output operations, by means of interpreters having access to said work queue and switchably connected through switching means to any one of a plurality of input/output devices in which data are stored; issuing an alert signal to the interpreters upon the condition that a CCB has been added to said work queue; extracting a CCB from said work queue in response to said alert signal; storing said CCB in said interpreter; addressing said memory with the contents of said virtual instruction counter to thereby extract from the memory an ENQUEUE command; loading into said interpreter an argument list specified by said ENQUEUE command, said argument list containing parameters describing the data involved in an I/O transfer; converting operands described by said parameters to a device address and a sector address on the device; storing said addresses in said interpreter; enqueuing the CCB stored in said interpreter onto an appropriate device and sector subqueue; issuing an order to the device requesting the corresponding sector; and disconnecting said interpreter from the device, whereupon the interpreter is free to return to the work queue to extract another task or to service a request from an I/O device.
Claim 47
Dependent Claim 101 words
The method according to claim 35 above further including the steps of: signalling said interpreters when the desired sector is available, to thereby initiate the selecting and connecting of the device to a non-busy interpreter by means of said switching means; storing the device address and the sector number at said interpreter in response to said signalling means; fetching the CCB previously stored at the sector subqueue for the device by utilizing said device address and said sector number; and selecting the next channel command by utilizing the virtual instruction counter stored in the CCB to thereby reenter the channel program.
Claim 48
Dependent Claim 73 words
The method according to claim 36 comprising the steps of: storing in said CCB the indirect address of a buffer location containing a series of locations sufficient to store a full sector or block of information; deselecting the device in response to an end of record indication; updating the argument list information to contain the buffer address of the data; and indicating that the task has been completed to thereby initiate an interrupt.
Claim 49
Dependent Claim 100 words
The method according to claim 37 further comprising the steps of: storing an interruption queue comprising a fixed length table preceded by a control word stored in said memory; comparing the priority of a CPU task with the priority of a task currently being executed by said interpreter in response to said interrupt; denying said interrupt to said interpreter upon the condition that a higher priority task is stored in said CPU; entering said task into said interruption queue; and interrogating said queue upon completion of said higher priority task to thereby process the interruption placed therein by said interpreter.
Claim 50
Dependent Claim 175 words
In a data processing system including a central processing unit (CPU), a plurality of input/output devices, a plurality of interpreters switchably connectable to ones of said plurality of input/output devices, and a storage unit shared by said CPU and said plurality of interpreters, said storage unit including a general work queue dedicated area, the method of processing I/O requests by said interpreters comprising the steps of: decoding by said CPU of an instruction request for access to one of said plurality of input/output devices; storing by said CPU in said general work queue in said storage unit a control item containing control data corresponding to said request; generating by said CPU an alert signal indicating to said interpreters that an item has been added to said work queue; extracting an item from said work queue by one of Said interpreters said alert signal; registering the contents of said item in said interpreter; and interpreting the control data in said item to thereby service the request for access to one of said plurality of input/output devices.
Claim 51
Dependent Claim 175 words
In a data processing system including a central processing unit (CPU), a plurality of input/output devices, a plurality of interpreters switchably connectable to ones of said plurality of input/output devices, and a storage unit shared by said CPU and said plurality of interpreters, said storage unit including a general work queue dedicated area, the method of processing I/O requests by said interpreters comprising the steps of: decoding by said CPU of an instruction request for access to one of said plurality of input/output devices; storing by said CPU in said general work queue in said storage unit a control item containing control data corresponding to said request; generating by said CPU an alert signal indicating to said interpreters that an item has been added to said work queue; extracting an item from said work queue by one of Said interpreters said alert signal; registering the contents of said item in said interpreter; and interpreting the control data in said item to thereby service the request for access to one of said plurality of input/output devices.
Claim 52
Dependent Claim 21 words
The method according to claim 39 further including the step of suppressing said alert signal to the other of said interpreters.
Claim 53
Dependent Claim 117 words
In an input/output control system in which a channel program being executed by a channel is halted pending the occurrence of a condition at an I/O device controlled by said channel, a method of reinitiating said channel program in response to a previously specified condition at said device comprising the steps of: transmitting to said device a status code representing the set of conditions in the device requisite to the initiation of a specific I/O operation; signalling said device to respond when the conditions associated with said status code are satisfied in said device; responding to said channel with a predetermined response code when the conditions associated with said status code registered in said device are met.
Claim 54
Dependent Claim 117 words
In an input/output control system in which a channel program being executed by a channel is halted pending the occurrence of a condition at an I/O device controlled by said channel, a method of reinitiating said channel program in response to a previously specified condition at said device comprising the steps of: transmitting to said device a status code representing the set of conditions in the device requisite to the initiation of a specific I/O operation; signalling said device to respond when the conditions associated with said status code are satisfied in said device; responding to said channel with a predetermined response code when the conditions associated with said status code registered in said device are met.
Claim 55
Dependent Claim 97 words
In an input/output control system in which a channel program executed by a channel is suspended, the method of establishing a logical connection between said channel and a device over an interface connectable between said channel and device to thereby cause the resumption of said channel program comprising the steps of: requesting a status report from said device; monitoring the interface between said channel and said device to determine if said channel is free; and establishing a logical connection between said device and said channel at a time when said predetermined conditions in said device are satisfied.
Claim 56
Dependent Claim 97 words
In an input/output control system in which a channel program executed by a channel is suspended, the method of establishing a logical connection between said channel and a device over an interface connectable between said channel and device to thereby cause the resumption of said channel program comprising the steps of: requesting a status report from said device; monitoring the interface between said channel and said device to determine if said channel is free; and establishing a logical connection between said device and said channel at a time when said predetermined conditions in said device are satisfied.
Claim 57
Dependent Claim 67 words
The method according to claim 42 comprising the further steps of: transferring the address of the device, and a response code to said channel; locating an entry in a device table associated with said device by utilizing the address of said device; and resuming execution of the channel program associated with a channel control block located in a subqueue of said table identified by said response code.
Claim 58
Dependent Claim 186 words
In an input/output control system a method of automatic data path selection to devices attached to control units and channels in said system comprising the steps of: monitoring an I/O interface between said control unit and channels within said system to establish a logical connection with one of said channels; presenting the the address of said device to said one channel; locating an entry in a device table corresponding to the device address presented by said control unit; locating an entry in said device table corresponding to the control unit attached to said device; extracting a channel control block (CCB) from a device queue origin designated by a pointer corresponding to said control unit address; and placing said CCB at the top of the device queue to thereby allow resumption of the operation; whereby no attempt need be made by a channel to locate an alternate path to a device when a control unit responds to the channel that is busy; if another path to the device exists which involves a free channel and a non-busy control unit that control unit automatically acquires the free channel.
Claim 59
Dependent Claim 186 words
In an input/output control system a method of automatic data path selection to devices attached to control units and channels in said system comprising the steps of: monitoring an I/O interface between said control unit and channels within said system to establish a logical connection with one of said channels; presenting the the address of said device to said one channel; locating an entry in a device table corresponding to the device address presented by said control unit; locating an entry in said device table corresponding to the control unit attached to said device; extracting a channel control block (CCB) from a device queue origin designated by a pointer corresponding to said control unit address; and placing said CCB at the top of the device queue to thereby allow resumption of the operation; whereby no attempt need be made by a channel to locate an alternate path to a device when a control unit responds to the channel that is busy; if another path to the device exists which involves a free channel and a non-busy control unit that control unit automatically acquires the free channel.
Claim 60
Dependent Claim 54 words
The method according to claim 44 comprising the further step of maintaining a logical connection with a busy control unit until the CCB has been placed in the control unit queue and the queue has been unlocked whereby said alternate control unit acquires a channel only after the busy control unit has been deselected.
Claim 61
Dependent Claim 109 words
In a data processing system comprising a CPU, a memory, and a plurality of input/output channels, a method of interruption comprising: storing an interruption queue comprising a fixed length table preceded by a control word in said memory; comparing the priority of a CPU task with the priority of a task currently being executed by said chaNnel in response to an interrupt; denying said interrupt to said channel upon the condition that a higher priority task is stored in said CPU; entering said task into said interruption queue; and interrogating said queue upon completion of said higher priority task to thereby process the interruption placed therein by said channel.
Claim 62
Dependent Claim 109 words
In a data processing system comprising a CPU, a memory, and a plurality of input/output channels, a method of interruption comprising: storing an interruption queue comprising a fixed length table preceded by a control word in said memory; comparing the priority of a CPU task with the priority of a task currently being executed by said chaNnel in response to an interrupt; denying said interrupt to said channel upon the condition that a higher priority task is stored in said CPU; entering said task into said interruption queue; and interrogating said queue upon completion of said higher priority task to thereby process the interruption placed therein by said channel.
Claim 63
Dependent Claim 268 words
In an input/output system comprising a memory, a CPU, I/O devices and a plurality of channels, only certain ones of said channels electrically connected to devices in said system, and in which input/output channels programs are selected for operation by channels from a list of tasks in a work queue common to all of said channels, the method of insuring that only channels having access to devices involved in said operations select a corresponding task for execution comprising the steps of: arranging the origins of channel queues, one queue defined for each maximum set of channels which have access to the same set of devices, and said work queue in a table at a fixed location in said memory; providing a channel queue control word for maintaining an inventory of the contents of said channel queues, the value of the bits in said queue control word indicating whether the corresponding channel queues are empty or contain channel program tasks to be performed by one of said plurality of channels; a one in the nth channel queue consists of a chain of said tasks and a zero in said position signifying that the nth queue is empty; setting the corresponding bit of the queue control word to a first state upon the condition that a task is placed into a empty channel queue; setting the corresponding bit of the queue control word to a second state upon the extraction of a task from said queue; and setting a predetermined bit of said queue control word to a first state when a task is added to the channel work queue.
Claim 64
Dependent Claim 268 words
In an input/output system comprising a memory, a CPU, I/O devices and a plurality of channels, only certain ones of said channels electrically connected to devices in said system, and in which input/output channels programs are selected for operation by channels from a list of tasks in a work queue common to all of said channels, the method of insuring that only channels having access to devices involved in said operations select a corresponding task for execution comprising the steps of: arranging the origins of channel queues, one queue defined for each maximum set of channels which have access to the same set of devices, and said work queue in a table at a fixed location in said memory; providing a channel queue control word for maintaining an inventory of the contents of said channel queues, the value of the bits in said queue control word indicating whether the corresponding channel queues are empty or contain channel program tasks to be performed by one of said plurality of channels; a one in the nth channel queue consists of a chain of said tasks and a zero in said position signifying that the nth queue is empty; setting the corresponding bit of the queue control word to a first state upon the condition that a task is placed into a empty channel queue; setting the corresponding bit of the queue control word to a second state upon the extraction of a task from said queue; and setting a predetermined bit of said queue control word to a first state when a task is added to the channel work queue.
Claim 65
Dependent Claim 88 words
The method according to claim 47 further including the steps of: constructing a list of channel mask words for describing the relationship between the channels and the channel queues defined for said channels, one channel mask word associated with each channel, the bits in said mask word set to indicate whether the corresponding channel queues are of significance to said channel, a one in the nth bit of a mask word signifying that the nth channel queue is related to the channel to which said mask word pertains.
Claim 66
Dependent Claim 47 words
The method according to claim 48 further including the steps of: setting one of said bits of each said channel mask word to signify that said work queue is associated with all the channels; and logically removing a channel from said system by clearing its mask word.
Claim 67
Dependent Claim 56 words
The method according to claim 48 further including the step of: determining, in response to a channel command requiring the establishing of a logical connection with a device, if said device is accessible to said channel by examining the bit of the mask word of said channel associated with the channel queue corresponding to said device.
Claim 68
Dependent Claim 69 words
The method according to claim 50 further including the steps of: transferring said channel program to another channel by adding the channel control block to the channel queue corresponding to said device upon the condition that said bit in said channel mask word corresponding to said channel queue is zero; and signalling the channels associated with said queue upon the condition that said queue was empty before this operation.
Claim 69
Dependent Claim 65 words
The method according to claim 51 further including the steps of: fetching both said channel mask word and said queue control word; and developing the bit-wise product of said channel mask word and said queue control word, whereby the resultant one bits correspond to channel queues containing CCBs relating both to devices accessible to the channel and to channel programs suspended within said enqueue operation.
Claim 70
Dependent Claim 58 words
The method according to claim 52 further comprising the step of: removing a CCB from the queue related to the least significant one bit of said bit-wise product whereby execution of the corresponding channel program is then assumed by said channel in accordance with a predetermined priority which thereby gives priority to tasks which have been partially executed.
Claim 71
Independent Claim 315 words
The method of controlling an input/output system said system including a memory in which a dependent argument table is stored, said table containing a class code, block number and parameters defining a device queue and the data sought, and in which a channel control block (CCB) is stored which is initialized to contain a buffer address, a string length and a pointer to an independent argument table comprising: selecting an I/O task from a queue of tasks; performing the task, which is in the form of an I/O program, up to a point where a controlled I/O device involved in the task does not need direct control for a relatively long period of time, executing a first enqueue command which command presents the logical address of the first byte of the desired string of data, resolving independent and dependent arguments of said enqueue command to locate an entry in a dependent argument table including the step of establishing the validity of operands and locating a corresponding dependent argument table; resolving a dependent argument including a sequence loop in which the segment of the data set containing the first byte of the desired string of data is determined; determining the maximum number of blocks which may be read or written following the execution of said enqueue command; decoding the class code of a current entry in said dependent argument table; enqueuing a channel control block onto a device queue using parameters found in said table; selecting said device; suspending said channel program; selecting another task from the task queue and executing the I/O program associated with the new task; monitoring the I/O device for a signal generated by the device when it reaches a point where it needs direct control; and fetching said channel control block corresponding to the partially performed task previously stored in the device queue to thereby resume the previously suspended I/O program.
Claim 72
Independent Claim 315 words
The method of controlling an input/output system said system including a memory in which a dependent argument table is stored, said table containing a class code, block number and parameters defining a device queue and the data sought, and in which a channel control block (CCB) is stored which is initialized to contain a buffer address, a string length and a pointer to an independent argument table comprising: selecting an I/O task from a queue of tasks; performing the task, which is in the form of an I/O program, up to a point where a controlled I/O device involved in the task does not need direct control for a relatively long period of time, executing a first enqueue command which command presents the logical address of the first byte of the desired string of data, resolving independent and dependent arguments of said enqueue command to locate an entry in a dependent argument table including the step of establishing the validity of operands and locating a corresponding dependent argument table; resolving a dependent argument including a sequence loop in which the segment of the data set containing the first byte of the desired string of data is determined; determining the maximum number of blocks which may be read or written following the execution of said enqueue command; decoding the class code of a current entry in said dependent argument table; enqueuing a channel control block onto a device queue using parameters found in said table; selecting said device; suspending said channel program; selecting another task from the task queue and executing the I/O program associated with the new task; monitoring the I/O device for a signal generated by the device when it reaches a point where it needs direct control; and fetching said channel control block corresponding to the partially performed task previously stored in the device queue to thereby resume the previously suspended I/O program.

References Cited (Backward Citations)

US3413609A Cited
US3439340A Cited
US3437998A Cited
US3449722A Cited
US3475730A Cited
US3479647A Cited
US3614742A Cited
US3573741A Cited
US3559187A Cited
US3588831A Cited
US3614745A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1976-04-02 1976-10-02 1977-04-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1980-04-02 1980-10-02 1981-04-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1984-04-02 1984-10-02 1985-04-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag