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

Efficient channel and control unit for host computer

Assignee: International Business Machines Corp
•
Filing: 1992-03-02
•
Granted: 1995-02-07
•
Expires: 2012-03-02
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An I/O system including a processor, a multitasking operating system and DMA hardware efficiently controls a transfer of data between a main memory and memories of different types of devices by minimizing context switches between tasks and wait times of the tasks. A plurality of validation routines are used to validate a plurality of commands when the validation routines are called. Each of the commands corresponds to a specific type of I/O operation and a specific one of the device memories to participate in the I/O operation with the main memory. Each of the validation routines is device type specific and command type specific. A general routine responds to each of the commands by identifying and calling the validation routine which corresponds to the type of I/O operation and type of device which are specified in the command. The general routine initiates I/O hardware after the validation routine validates the command. After the I/O hardware completes the I/O operation, it signals a command completion routine which is command specific and device type specific. In response, the command completion routine signals to the general routine a state of the I/O operation. Each of the validation routines executes on the same task as the general routine to minimize context switches, and each of the command completion routines executes on a different task than the general routine to minimize wait time for the command completion routine.

Inventors

  • 👤 Shek-Wayne Chan
  • 👤 David L. Dosch
  • 👤 Karlheinz Dutke
  • 👤 Wayne R. Longcore

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 09:56
CPC Classifications
G; G06; G06F; G06F13/00; G06F13/10; G06F13/102; G06F9/00; G06F9/06; G06F9/46; G06F9/461

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 194 words
An I/O system for controlling transfer of data between a memory of a host processor and a plurality of different types of device controllers, said I/O system comprising: a plurality of first programmed means, within an other processor, for determining if a plurality of respective device controller types support specific I/O commands; second programmed means, within said other processor and responsive to an I/O command to perform an I/O operation on a specific device controller, for identifying and invoking execution of a program within the corresponding first programmed means associated with a type of said specific device controller and, if said specific device controller supports the command, invoking execution of a program within said specific device controller; third programmed means, within said other processor, for receiving I/O operation state information from said specific device controller and signalling the state information to said second programmed means; and multitasking operating system means for controlling execution of the program within said corresponding first programmed means and a program within said second programmed means on said other processor in a common task, and a program within said third programmed means on said other processor in a different task.
Claim 2
Dependent Claim 194 words
An I/O system for controlling transfer of data between a memory of a host processor and a plurality of different types of device controllers, said I/O system comprising: a plurality of first programmed means, within an other processor, for determining if a plurality of respective device controller types support specific I/O commands; second programmed means, within said other processor and responsive to an I/O command to perform an I/O operation on a specific device controller, for identifying and invoking execution of a program within the corresponding first programmed means associated with a type of said specific device controller and, if said specific device controller supports the command, invoking execution of a program within said specific device controller; third programmed means, within said other processor, for receiving I/O operation state information from said specific device controller and signalling the state information to said second programmed means; and multitasking operating system means for controlling execution of the program within said corresponding first programmed means and a program within said second programmed means on said other processor in a common task, and a program within said third programmed means on said other processor in a different task.
Claim 3
Dependent Claim 23 words
An I/O system as set forth in claim 1 wherein said third programmed means receives said I/O operation state information as an interrupt.
Claim 4
Dependent Claim 35 words
An I/O system as set forth in claim 1 wherein said second programmed means also determines if said specific device controller is available before invoking execution of the program within said corresponding first programmed means.
Claim 5
Dependent Claim 33 words
An I/O system as set forth in claim 1 wherein said I/O operation state information indicates completion of said I/O operation and initiates said task containing the program within said third programmed means.
Claim 6
Dependent Claim 32 words
An I/O system as set forth in claim 1 wherein said corresponding first programmed means is specific to a control command and sets a status of said specific device controller to busy.
Claim 7
Dependent Claim 68 words
An I/O system as set forth in claim 5 further comprising fourth programmed means, within said other processor and responsive to an I/O state completion signal from said third programmed means, for resetting the status of said specific device controller from busy to available; and wherein said operating system means controls execution of a program within said fourth programmed means on said other processor in said common task.
Claim 8
Dependent Claim 32 words
An I/O system as set forth in claim 1 wherein said other processor is an I/O processor, and said commands originate with calls from an application program executing on said host processor.
Claim 9
Dependent Claim 49 words
An I/O system as set forth in claim 7 wherein an operating system which controls execution of said application program on said main processor converts said calls to channel command words which comprise said commands, and said second programmed means fetches said channel command words one at a time.
Claim 10
Dependent Claim 35 words
An I/O system as set forth in claim 8 wherein said second programmed means, after being signalled by said third programmed means that execution of said command has been completed, fetches another channel command word.
Claim 11
Dependent Claim 20 words
An I/O system as set forth in claim 1 wherein each of said first programmed means is command type specific.
Claim 12
Dependent Claim 40 words
An I/O system as set forth in claim 1 wherein the program within said second programmed means is provided by a single instance of program code which is common to programs within all of said plurality of first programmed means.
Claim 13
Dependent Claim 29 words
An I/O system as set forth in claim 1 wherein said second programmed means terminates said common task upon invoking execution of the program within said specific device controller.
Claim 14
Dependent Claim 30 words
An I/O system as set forth in claim 1 wherein said third programmed means analyzes control information associated with the command while said specific device controller performs the I/O operation.
Claim 15
Dependent Claim 42 words
An I/O system as set forth in claim 1 wherein said third programmed means comprises a plurality of device controller-type specific programs which are executed on said other processor in different tasks than each other and different tasks than said common task.
Claim 16
Dependent Claim 28 words
An I/O system as set forth in claim 1 wherein each of said first programmed means also determines if said common task is available to execute said command.
Claim 17
Independent Claim 182 words
A method for controlling transfer of data between a memory of a host processor and a plurality of different types of device controllers, said method comprising the steps of: receiving a command to perform an I/O operation to a specific device controller, and in response, executing a first sequence of program steps on an other processor to identify and invoke execution of a second sequence of program steps corresponding to a type of said specific device controller; executing said second sequence on said other processor to determine if said specific device controller supports the command, and if so, said first sequence invoking execution of a program within said specific device controller; executing a third sequence of program steps on said other processor to receive information from said specific device controller indicating the state of the I/O operation and signal the state information to said first sequence; and using a multitasking operating system, controlling execution of said first sequence and said second sequence on said other processor in a common task, and said third sequence on said other processor in a different task.
Claim 18
Independent Claim 182 words
A method for controlling transfer of data between a memory of a host processor and a plurality of different types of device controllers, said method comprising the steps of: receiving a command to perform an I/O operation to a specific device controller, and in response, executing a first sequence of program steps on an other processor to identify and invoke execution of a second sequence of program steps corresponding to a type of said specific device controller; executing said second sequence on said other processor to determine if said specific device controller supports the command, and if so, said first sequence invoking execution of a program within said specific device controller; executing a third sequence of program steps on said other processor to receive information from said specific device controller indicating the state of the I/O operation and signal the state information to said first sequence; and using a multitasking operating system, controlling execution of said first sequence and said second sequence on said other processor in a common task, and said third sequence on said other processor in a different task.
Claim 19
Dependent Claim 27 words
A method as set forth in claim 16 wherein said specific device controller signals said third sequence as to completion of said I/O operation by an interrupt.
Claim 20
Dependent Claim 28 words
A method as set forth in claim 16 wherein said first sequence also determines if said specific device controller is available before invokinq execution of said second sequence.
Claim 21
Dependent Claim 26 words
A method as set forth in claim 16 wherein said specific device controller invokes said different task after said specific device controller completes said I/O operation.
Claim 22
Dependent Claim 59 words
A method as set forth in claim 16 further comprising the step of executing on said other processor a fourth sequence of program steps specific to a control command to set a status of said specific device controller to busy; and wherein said operating system controls execution of said fourth sequence on said other processor in said common task.
Claim 23
Dependent Claim 78 words
A method as set forth in claim 20 wherein the I/O state information indicates completion of the I/O operation and further comprising the steps of: executing a fifth sequence of program steps on said other processor to reset the status of said specific device controller from busy to available in response to the completion signal from the third sequence; and wherein said operating system controls execution of said fifth sequence on said other processor in said common task.
Claim 24
Dependent Claim 31 words
A method as set forth in claim 16 further comprising the step of terminating said common task when said first sequence invokes execution of the program within said specific device controller.
Claim 25
Dependent Claim 29 words
A method as set forth in claim 16 wherein said third sequence also analyzes control information associated with the command while said specific device controller performs the I/O operation.

References Cited (Backward Citations)

US4453209A Cited
JPS59148919A Cited
US4587628A Cited
US4868734A Cited
USH696H Cited
US5014194A Cited
US5060142A Cited
US5063494A Cited
US5170471A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-02-06 1998-08-08 1999-02-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-02-06 2002-08-08 2003-02-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-02-06 2006-08-08 2007-02-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag