Technique for controlling channel operations in a host computer by updating signals defining a dynamically alterable channel program
First Claim
1. A method of controlling channel operations in a first computer system, wherein said first computer system includes a channel sub-system means for executing a sequence of said channel operations in accordance with a first form of a channel program defined by program signals located in said first computer system, wherein said channel program includes initial and successive program portions corresponding to respective initial and successive channel operation portions of the sequence of channel operations, wherein said first computer system further includes means for executing a first program means for generating a second form of the initial program portion and extending said channel program by dynamically generating, in said second form, the successive program portions while said channel sub-system means executes said channel operations specified by said first form of said channel program, and wherein said first computer system further includes means for executing a second program means for updating said channel program by performing the method steps of:
- setting, in response to a pre-defined interrupt signal transmitted from said channel sub-system means to said second program means during execution of said channel operations, a timer located in said first computer system to generate a trigger signal after a pre-determined time period has elapsed, wherein said pre-determined time period defines a first time at which alterations, are to begin, said alterations being to one of said program portions, such that said alterations can be completed prior to a second time at which execution of a corresponding channel operation portion would complete and execution of said channel program would terminate, and wherein said pre-determined time period occurs during an execution time period when the corresponding channel operation portion is occurring; and
modifying, in response to said trigger signal, said program signals defining the channel program portion being executed by said channel sub-system means in accordance with the steps of;
determining when said first program means has generated a next one of said channel program portions;
translating said next one of said successive channel program portions from said second to said first form to form translated program signals defining a new translated channel program portion, wherein said new translated channel program portion causes said pre-defined interrupt signal to be transmitted when said channel sub-system means begins executing a corresponding one of said operation portions specified by said new translated channel portion; and
appending said new translated channel program portion onto said channel program then executing in said channel sub-system means.
2 Assignments
0 Petitions
Accused Products
Abstract
A technique, specifically apparatus and an accompanying method, for use in, e.g., a "host" operating system (610), for properly updating a dynamically alterable channel program that controls an input/output (I/O) device so as to emulate a "guest" computer system, that employs dynamic address translation (DAT) in an I/O channel sub-system (150), on a "host" computer system (10) that does not. This technique performs this updating in a manner that significantly increases channel throughput so as to substantially reduce a performance degradation that would otherwise result from a lack of channel DAT on the host system. Specifically, our technique relies on program controlled interrupt (PCI) chaining coupled with use of "just-in-time" translation of each new virtual channel program segment generated by a guest operating system (620) and corresponding updating of channel program (415) then executing on the host computer system.
46 Citations
29 Claims
-
1. A method of controlling channel operations in a first computer system, wherein said first computer system includes a channel sub-system means for executing a sequence of said channel operations in accordance with a first form of a channel program defined by program signals located in said first computer system, wherein said channel program includes initial and successive program portions corresponding to respective initial and successive channel operation portions of the sequence of channel operations, wherein said first computer system further includes means for executing a first program means for generating a second form of the initial program portion and extending said channel program by dynamically generating, in said second form, the successive program portions while said channel sub-system means executes said channel operations specified by said first form of said channel program, and wherein said first computer system further includes means for executing a second program means for updating said channel program by performing the method steps of:
-
setting, in response to a pre-defined interrupt signal transmitted from said channel sub-system means to said second program means during execution of said channel operations, a timer located in said first computer system to generate a trigger signal after a pre-determined time period has elapsed, wherein said pre-determined time period defines a first time at which alterations, are to begin, said alterations being to one of said program portions, such that said alterations can be completed prior to a second time at which execution of a corresponding channel operation portion would complete and execution of said channel program would terminate, and wherein said pre-determined time period occurs during an execution time period when the corresponding channel operation portion is occurring; and modifying, in response to said trigger signal, said program signals defining the channel program portion being executed by said channel sub-system means in accordance with the steps of; determining when said first program means has generated a next one of said channel program portions; translating said next one of said successive channel program portions from said second to said first form to form translated program signals defining a new translated channel program portion, wherein said new translated channel program portion causes said pre-defined interrupt signal to be transmitted when said channel sub-system means begins executing a corresponding one of said operation portions specified by said new translated channel portion; and appending said new translated channel program portion onto said channel program then executing in said channel sub-system means. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of controlling an input/output (I/O) operation in a first computer system having a main storage, an I/O device and a channel sub-system means connected between said main storage and said I/O device, wherein said channel sub-system means controls said I/O operation for transferring information signals between said device and said main storage, wherein said sub-system means executes said I/O operation in accordance with a channel program defined by first program signals located in said first computer system in absolute address form, wherein said first computer system executes a guest operating system of a second computer system that employs dynamic address translation (DAT) in a channel sub-system used therein, wherein said guest operating system generates an initial program portion of said channel program defined by second program signals in virtual address form for executing an initial operation portion of said I/O operation and extends said channel program by dynamically generating, in virtual address form, successive program portion of said channel program while said channel sub-system means is executing said I/O operation, wherein execution of each of said successive channel program portions by said channel sub-system means causes execution of a corresponding successive operation portion of said I/o operation by transferring information signals between said I/O device and said main storage, and wherein said first computer system includes a host operating system performing a method for updating said channel program comprising the steps of:
-
setting, in response to a programmed controlled interrupt (PCI) signal received from said channel sub-system means, a timer to generate a trigger signal after a pre-determined time period has elapsed, wherein said pre-determined time period defines, during an execution time period while a corresponding operation portion of said I/O operation is occurring, a first time at which alterations, are to begin, said alterations being to said channel program, then executing in said channel sub-system means, such that said alterations can be completed prior to a second time at which said operation would complete and said executing channel program would terminate; modifying, in response to said trigger signal generated from the time at the conclusion of said time period, said first program signals representing said channel program being executed by said channel sub-system means, said modifying step comprising the steps of; determining if said guest operating system has generated a next one of said successive channel program portions; translating said next successive one of said channel program portions from said virtual to said absolute form to form a new translated channel program portion wherein said new translated channel program portion causes said channel sub-system means to transmit said PCI signal to said host operating system when said channel sub-system means begins performing a corresponding one of said operation portions specified by said new translated channel program portion; appending said new translated channel program portion onto said channel program then executing in said channel sub-system means; and repeating said setting and modifying steps for each subsequent one of said successive channel program portions generated by said guest operating system wherein said channel program being executed by said channel sub-system means performs each successive one of said operation portions prior to terminating said I/O operation. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. In a first computer system having a channel sub-system means for controlling a channel operation and executing program signals which define a first form of a channel program to perform said channel operation, and a first program means executed by said first computer system for generating, in a second form, an initial program portion of said channel program for executing an initial operation portion of said channel operation and extending said channel program by dynamically generating, in said second form, successive portions of said channel program while said channel sub-system means executes said channel program, wherein each execution of said successive channel program portions causes execution of a corresponding successive operation portion of said channel operation, channel program updating apparatus, operative in conjunction with a second program means for executing in said first computer system, comprising:
-
means for setting, in response to an interrupt signal transmitted by said channel sub-system means, a timer to generate a trigger signal after a pre-determined time period has elapsed, wherein said pre-determined time period defines, during an execution time period while said channel sub-system means executes a corresponding channel operation portion, a first time at which alterations, are to begin, said alterations being to said channel program then executing by said sub-system means, such that said alterations can be completed prior to a second time at which said corresponding operation portion would complete and execution of said executing channel program would terminate; and means for modifying, in response to said trigger signal, said program signals defining said channel program portion being executed by said channel sub-system means, said modifying means comprising; means for determining when said first program has generated a next one of said successive channel program portions; means for translating said next successive one of said channel program portions from said second to said first form to form translated program signals defining a new translated channel program portion, wherein said new translated channel program portion causes said interrupt signal to be transmitted when said channel sub-system means begins executing a corresponding one of said operation portions specified by said new translated channel program portion; and means for appending said new translated channel program portion onto said channel program portion executing in said channel sub-system means. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29)
-
Specification