EP0055370A2 - Independent handling of I/O interrupt requests and associated status information transfers - Google Patents
Independent handling of I/O interrupt requests and associated status information transfers Download PDFInfo
- Publication number
- EP0055370A2 EP0055370A2 EP81108990A EP81108990A EP0055370A2 EP 0055370 A2 EP0055370 A2 EP 0055370A2 EP 81108990 A EP81108990 A EP 81108990A EP 81108990 A EP81108990 A EP 81108990A EP 0055370 A2 EP0055370 A2 EP 0055370A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- status
- condition
- central
- channel
- subchannel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012546 transfer Methods 0.000 title description 7
- 238000012545 processing Methods 0.000 claims abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 27
- 238000003860 storage Methods 0.000 claims description 41
- 230000008859 change Effects 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 15
- 230000003750 conditioning effect Effects 0.000 claims description 4
- 230000000763 evoking effect Effects 0.000 claims description 2
- 230000004936 stimulating effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 9
- 238000011084 recovery Methods 0.000 abstract description 6
- 230000002093 peripheral effect Effects 0.000 abstract description 4
- 230000014759 maintenance of location Effects 0.000 abstract description 3
- 239000013256 coordination polymer Substances 0.000 description 142
- 230000009471 action Effects 0.000 description 14
- 230000000977 initiatory effect Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 230000006978 adaptation Effects 0.000 description 9
- 238000007667 floating Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 7
- 230000006854 communication Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 239000000470 constituent Substances 0.000 description 3
- 230000001066 destructive effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- GFRROZIJVHUSKZ-FXGMSQOLSA-N OS I Natural products C[C@@H]1O[C@@H](O[C@H]2[C@@H](O)[C@@H](CO)O[C@@H](OC[C@@H](O)[C@@H](O)[C@@H](O)CO)[C@@H]2NC(=O)C)[C@H](O)[C@H](O)[C@H]1O GFRROZIJVHUSKZ-FXGMSQOLSA-N 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003334 potential effect Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
Abstract
Description
- This invention concerns a method and associated apparatus for ensuring that multi-processing systems are able to maintain unambiguous control over communications of device status information via interruptions, and over utilization of such information in respect to starting operations at associated devices.
- In contemporary tightly coupled multi-processing systems, wherein plural central processing elements (hereinafter CP elements or CP's) share an operating system (supervisory programs), main storage facilities, and devices, each attempt to start an operation of a device is predicated on status information contained in a UCB (Unit Control Block) table in main storage which is uniquely associated with the device (refer to OS I/O Supervisor Logic, GY 28-6616 Pages 3-9). In such systems CP's working relative to a shared device may have interfering access to an associated UCB with potentially destructive effects.
- For example, one CP may be working to start an operation at a device shared with another CP while the other CP is handling an interruption associated with the status of the same device. These CP's may be in communication with different I/O channel, subchannel and control unit paths not commonly accessible to both. Although the CP which is seeking to start the operation may be programmed to explicitly test the status of the device, via an I/O path affiliated with that CP (refer to IBM System/370 Principles of Operation, GA22-7000 Pp 208, 209 and GY 28-661 Supra, pages 17-2), and thereby recover status information manifested in that path, such tests would not enable that CP to recover status information which is manifested in a path accessible only to another CP. However, the locking of the UCB by the first CP may prevent the other (interruption handling) CP from updating the UCB. Accordingly, the device operation may be started with reference to outdated status information which is not distinguishable as such. This can result in destructive error, and cause the central operating system to be burdened with wasteful "overhead" processes for error analysis and recovery.
- For example, assume that while a first CP, CP-A, is handling an interruption associated with a manual change of disk packs in a DASD file, a second CP, CP-B, is working to start an output (writing) operation relative to the removed pack. Assume also that CP-B has exclusive (locked) access to the UCB associated with the DASD file. In this circumstance, the output operation might be started by CP-B relative to the wrong (newly mounted) disk pack, because CP-B is incapable of distinguishing the change in status associated with the interruption (since associated conditions which reflect this change will have been cleared from the connection path associated with CP-A when CP-A first accepted the interruption, and may not be manifested in the I/O path over.which CP-B is attempting to operate). The resulting output operation could overwrite data previously recorded on the newly mounted pack, and thereby destroy valid (and possibly important) data.
- In contemporary multi-processing systems such interferences are avoided by adapting the shared device to communicate its changed status condition redundantly, to each sharing CP, over each path through which it can communicate with the CP's. However, this procedure, which is called multi-tagging of status, requires all CP's to redundantly process interruptions relative to a single status change event. Obviously, this is less efficient than having a single status change event processed by a single CP.
- It has also been proposed that I/O channels be adapted to have dynamically variable ("floating") affiliations-with central processors, whereby an I/O processing subsystem shared by such channels could be delegated responsibility for assigning paths for communicating with the devices, and for managing the accounting processes associated with such assignments, and thereby relieve the central complex and its operating system of the burden of having to specify and manage such paths (refer to Clark et al's U. S.
Patent 3 725 864 issued April 3, 1974). In such so called "floating channel" systems the inefficiency of the "multi-tagging" technique would be compounded by the dynamic variability of channel path assignments to the multiple CP's constituting the central complex, that is, it would be difficult to ensure that each CP would be redundantly required to process interruptions relative to a single status change event. - In the above-referenced Clark et al patent, it had also been proposed to provide a single subchannel for each device in the I/O processing subsystem, apparently to provide a unique communication node for each device, relative to the central complex, regardless of the number of physical channel paths which may be able to link the device to the central complex at any time. However, such concentration of subchannel storage facilities does not ensure that operations of the associated device will always be started with reference to the most current status information. For example even with multi-tagging of status, status could be cleared from the device to one CP over one path followed immediately by initiating signals from another CP to the device over the same path; thus starting the device without the initiating CP being notified of the changed status.
- The object of the present invention is to provide a method and associated apparatus for avoiding such CP interferences and associated destructive effects and for enabling central processing elements of a multi-processing system to coordinate their handling of interruptions which relate to changes in status of a shared device, and their handling of associated status information, whereby the status communication process associated with any single status change event may be handled by a single central processing element, and yet not expose the system to potential errors in respect to the scheduling of new operations at the associated device.
- In accordance with the present invention, when a change of status occurs at a peripheral device which is linked to plural CP's via an I/O processing facility (IOP) associated with a collection of "floating" I/O channels, the IOP stores a status pending indication (SP), in a subchannel uniquely associated with that device, together with the status change information and an indication of interruption pendency (IP) relative to the CP's. These SP and IP indications are examined and cleared by entirely different CP actions. The IP condition is cleared when a CP acting independent of its operating system accepts an I/O interruption associated with the respective subchannel.
- However, the SP condition and the associated status information remain stored in the subchannel after clearance of the IP condition, and in accordance with the subject invention the CP's of the central system complex are required by their common operating system, acting in conjunction with apparatus in accordance with the present invention, to test the subchannel and recover any preserved status. Such testing and recovery is performed under circumstances which preclude initiation of a device operation with reference to incorrect or outdated status.
- Apparatus is provided in each CP for executing an operation specified by an instruction "test subchannel" (TSCH), which is newly defined in accordance with the subject invention. This operation permits the operating system to explicitly test a specified subchannel for an SP condition and to recover status in an atomic (uninterruptable) mode of operation. When executing a TSCH operation the CP examines a program specified subchannel for an SP condition, clears such condition if it finds one, recovers status if relevant, and sets a condition code for sequence branching indicating if an SP condition has or has not been cleared. This enables the operating system to cause the CP to update the UCB status. The apparatus of the subject invention operates in association with programming conventions which ensure that a TSCH operation will be executed in due time relative to a status-pending subchannel, thereby ensuring that the associated UCB will be updated before any CP having access to that UCB can cause a stimulus for starting the associated device to be passed through the subchannel.
- These conventions require that the UCB be accessible on a serial basis to only one CP at a time, and that a CP having access to a UCB while working to start an operation at the associated device must examine the subchannel for an SP condition during execution of any device initiating instruction (whereby a TSCH operation may be interpolated, if necessary). Additional restrictions, which are desirable but not essential to the operation of the present invention, require that a CP which has access to a UCB (and may, for instance, be working to start a device operation) must act just prior to relinquishing its control of that UCB to examine a flag field within the lock word which governs its access to the UCB. This field indicates whether or not any other CP has been competing (unsuccessfully, of courselfor access to that UCB during the tenure of control of this CP. If such competition is indicated the "relinquishing" CP is required to execute a TSCH operation and, if necessary, update status in the UCB. These additional restrictions, and the associated flag examination and status recovery.operations, enable a CP which may be handling an interruption task associated with a change in subchannel status, and which is unable to access the UCB, to abort its operation in respect to that task, while ensuring that the CP then having control of the UCB will in effect complete the status updating portion of the aborted operation.
- In the preferred mode of operation of the subject invention, as disclosed infra, the foregoing conventions are implemented by operations of "compare and swap" apparatus disclosed in U. S.
Patent 3 886 525 by P. J. Brown et al. By means of such operations a CP which bids for access to a UCB modifies a lock field in the UCB to indicate its contention and examines the previous contents of that field to determine if the UCB is locked (i.e. controlled by another CP). If the UCB is locked, the contending CP may either perform other operations or "spin on the lock" (i.e. repeat its examination of the UCB lock after a suitable idling period), depending on the applicable program restrictions, - On the other hand, if a processor which is handling an interruption task obtains access to the UCB, that processor is required by its program to execute a TSCH operation; whereby it will clear the SP condition "directly", and complete the task (recover status from the subchannel, update the UCB, etc.).
- The foregoing and other objects, features and advantages of our invention may be understood more completely by referring to the following detailed description.
- Figs. 1 and 2 illustrate how the problem situation addressed by the subject invention occurs in various prior art MP system environments;
- Figs. 3 and 4 illustrate central system operations in the environments of Figs. 1 and 2 which give rise to the problem situation addressed by the present invention;
- Figs. 5-11 illustrate adaptation of a floating channel MP system, of the type shown in Fig. 2, in accordance with the present invention;
- Figs. 12-14' illustrate how the adapted system of Figs. 5-11 operates to handle interruptions and start device operations in accordance with the present invention.
- In contemporary data processing systems which are configured for multiprocessing (MP) operation a peripheral device may communicate with plural central processing elements (hereafter CP's) in a host central processing complex through plural I/O channel paths. In such MP systems two CP's may operate concurrently, under a shared operating system (supervisory program), to perform different functions relative to one shared device. One CP may be working to start an operation at the device and the other CP may be handling an interruption task associated with a change in status communicated from the same device.
- In such systems the device status information which is used by the operating system as the principal reference for scheduling operation of a given device is stored in a Unit Control Block (UCB). space in main storage. Each device has one uniquely associated UCB..Since any UCB is effectively accessible to only one CP at a time it is possible for CP's to interfere with each other so that one may start an operation of the associated device with reference to outdated status information because the UCB is being controlled by the initiating CP and is therefore currently inaccessible for receiving new status information.
- It has also been recognized for some time, by those skilled in the art, that such systems can be operated more efficiently if their I/O channels are adapted to have dynamically varying or "floating" relationships of connection affinity with CP's (refer to the Clark et al U.S. Patent supra) thereby permitting the CP's to delegate responsibility to the I/O channel processing subsystem for selecting channel paths over which to conduct I/O operations and for managing the accounting for such paths; whereby the central work load associated with these aspects of I/O operation may be eliminated.
- As noted previously, in such system environments, particularly in the floating channel - single subchannel per device - type of environment, it is possible for a CP which is working to start a device operation to "miss" important status change information which is being handled by another CP in response to an interruption, since the subchannel is cleared when the interruption is accepted (as used herein the term "subchannel" means the collection of channel facilities required for sustaining a single I/O operation, and includes the facilities used by the channel processing subsystem for storing data storage addresses, transfer counts and any status and control information associated with the operation). At such times the changed status may not be posted in the associated UCB, which is the principal status reference of the central complex, because the UCB is only accessible to one processor at a time. Accordingly, the UCB may be controlled by a CP which is working to start the device operation and inaccessible to a CP which is processing an interruption relative to the same device. This can result in initiation of device operation with reference to erroneous data and impose a heavy burden of error analysis and recovery procedures on both the central complex and the I/O subsystem.
- Consider for instance the potential effect of having one CP prepare and initiate an output (writing) data transfer relative to a specified disk pack device, while another CP is processing a "status change" interruption associated with the removal of the specified pack (e.g. by a human/operator) and its replacement with a different pack. The effect, in this situation, could be an overwriting and destruction of valid data on the substituted pack. Detection and correction of this type of error may burden the central system with lengthy analysis and recovery processes which inevitably would degrade the productive performance of the system.
- This problem results from the procedures and mechanisms employed in contemporary (prior art) MP systems for making device status information available to any CP which is seeking to start an I/O operation. In contemporary systems, the starting of I/0 operations is specified by scheduling elements of an I/O Supervisor program which is part of a more general Operating System Control program (refer, for instance, to GY 28-6616 supra pages 17-21), and is based primarily upon status information contained in a "logical channel" entity whose "nucleus" is a Unit Control Block (UCB) space in main storage (refer to GY 28-6616 supra pages 3-9). Each UCB is associated uniquely with a single device unit. The status information in a UCB can be modified either under control of an Interruption Handling section of the I/O Supervisor program, or by channel and device testing operations explicitly specified by known instructions (e.g. Test I/O and Test Channel) which precede the starting instruction (e.g. Start I/O) for actually initiating the device operation (refer, for instance, to GY 28-6616 supra, pages 17-21, and GA 22-7000 supra, pages 69-74, 88, 95-101, 185-189, 208-239 and 249-252).
- Such explicitly specified testing operations enable the central system complex to distinguish whether or not "reportage" of a status change condition is pending in a specific path to the device including a specified channel. When status is pending at the device or an interruption is pending in the channel these operations enable the central system to recover the status information by explicitly programmed actions. We have discovered that the problem arises because such pendency conditions are all terminated when a CP accepts an associated I/O interruption even though the interruption handling process associated with such acceptance (including the updating of the UCB) may be incomplete for an indefinite period of time following the acceptance. Acceptance of an interruption by a CP involves actions carried out by the CP on a machine level transparent to the supervisory and problem level programs by which other operations of the CP are controlled (refer to GA 22-7000 supra, pages 69-74). Such actions, which are triggered in response to an interruption request condition manifested by the I/O subsystem, involve a change in the program state of the responding CP ("PSW swap") by which control of that CP is transferred to a supervisory level interruption handling (IH) program. This program causes the CP to determine the cause of the interruption (I/O, machine check, etc.) and its source (e.g. for an I/O interruption the IH may cause the CP to determine the identity of the device and the channel - control unit path through which the interruption request has been received). It also causes the CP to perform operations or tasks required by the particular interruption condition (e.g. in respect to an I/O interruption, evaluation of status change information and updating of the logical channel, if relevant).
- In such systems the signal stimulus for interrupting the CP is established by the I/O channel processing subsystem (hereafter IOP) after status has been communicated from the device to the IOP and after an associated status pendency condition at the device has been cleared. While this stimulus is pending an associated "interruption pending" condition is manifested under control of the IOP in the subchannel associated with the.device. When a CP responds to the stimulus, and accepts interruption, the interruption pending condition is cleared from the subchannel, and the associated status change information is staged in an intermediate buffer in main storage (subject to being transferred to the UCB later under control of a CP program).
- We have found that a principal cause of the present problem is that during the time between the acceptance of interruption by a CP (in response to an IOP stimulus), and the actual updating of the UCB, the conditions denoting the changed status may no longer be manifested outside of the central-complex. Consequently, during this time explicit tests, by any other CP, of specific paths to the device, may be ineffective for indicating whether status presently in the UCB is current. Therefore, if this other CP controls access to a UCB. it can start an operation at the respective device with reference to outdated (UCB) status even after having conducted tests explicitly relative to the device and subchannel.
- This problem is even more acute in a floating channel MP environment. In this environment the storage of an interruption pending condition in a subchannel may be associated with a status change condition communicated from a device to the IOP over any one of several variably affiliated channel interface paths. Without proper safeguards in the IOP subsystem and its affiliated peripheral path elements it would be possible for a status change condition to evade detection even while the central system is explicitly testing the device through one of these channel paths.
- The present invention seeks to eliminate such occurrences by means of at least two distinct mechanisms. One mechanism operates in, or in association with, the IOP subsystem for manifesting a condition of status pendency (SP) in any subchannel independent of the interruption stimulus associated with the status, and of any interruption acceptance action by the central complex in response to that stimulus. This SP condition and the associated status change information remain stored in the subchannel until the central complex acts explicitly, under control of its supervisory program, to clear the condition and recover the status. These explicit acts are thereby programmable to occur only under circumstances which preclude intermediate attempts to start a device operation with reference only to outdated UCB status.
- Another mechanism associated with the subject invention operates in or in association with the CP's of the central complex to enable any CP to be directed by the operating system to execute a presently unique "test subchannel" (TSCH) operation. This operation includes examination of a specified subchannel, clearance of any SP condition which may be manifested in that subchannel, removal of status information from the subchannel if an SP condition is found, and setting of a condition for program branching as a function of any clearance action taken or not taken; whereby any removed status may be subsequently evaluated and, if suitable, entered into the UCB under control of the operating system. This second mechanism is adapted to perform its operations in response to a newly-defined privileged instruction denoted TSCH. Such privileged instructions are executable only by a CP which is in supervisor state (refer to GA 22-7000 supra page 30). The execution of a TSCH instruction is performed in an atomic (uninterruptible) mode, which ensures that the operations will not be interrupted, and thereby avoids potentially uncertain or ambiguous effects which could occur if the operation could be interrupted. ,
- A third associated mechanism, which is known per se but disclosed in a novel context presently, permits a CP which is blocked from accessing a UCB to perform a presently desirable (but not altogether necessary) operation of storing a flag condition in that UCB. Under program restrictions described herein this flag must eventually be examined by any CP having controlling access to that UCB, and when found to be active it requires the controlling CP to conduct a TSCH operation relative to the associated subchannel. The flag storage operation is performed by "compare and swap" apparatus described in
U. S. Patent 3 886 525 and its effect-presently is more fully discussed infra. The flag examination operation is scheduled by program conventions to occur just before the CP having earlier access to the UCB relinquishes its control of the UCB. The flag storage, flag examination and conditional TSCH operations enable any CP which may be blocked from access to a UCB while it is handling an interruption task to abort its performance of the task, while ensuring that the CP which then controls the UCB will effectively complete the status updating portion of the aborted task. This eliminates the inefficiency of having the blocked CP "spin" idly on repeated examinations of the UCB until it finds the UCB free. - Figs. 1 and 2 illustrate different "prior art" environmental multiprocessing (MP) systems in which the subject "status loss" problem may arise, and Figs. 3 and 4 illustrate examples of operations in the respective environments of Figs. 1 and 2 which cause such occurrences. The configuration of Fig. 1 is hereinafter referred to as the "subchannel per path" (abbreviated SPP) environment, and the configuration of Fig. 2 is referred to herein as the "unmodified subchannel per device" (abbreviated SPD) environment. The term "unmodified" is used in the preceding sentence to distinguish the configuration of Fig. 2 from the "modified" SPD configuration which is described infra with reference to Figs. 5-13, the latter configuration embodying the subject invention.
- As implied by their designations, the SPP configuration contains a separate subchannel for each discrete channel path between a shared device and the central complex, while the SPD configuration contains only a single subchannel for each device which is common to all channel paths associated with the device.
- The SPP configuration (Figure 1) includes two (or more) CP's, indicated at 16 and 18, also identified respectively as CPl and CP2. These CP's have access to a
main storage 20 and a shared device n indicated at 22.Main storage 20 contains a UCBn uniquely associated with device n. Device n, illustrated as a disk pack, may connect with the CP's andmain storage 20 via two or more paths. For simplicity, only two paths are shown; a first path "a(n)" to CP1 and main storage, and a second path b(n) to CP2 and main storage. Path a(n) includes acontrol unit 24, also identified as "control unit a", and achannel 26, also identified as CH1. Path b(n) includes acontrol unit 28, also identified as "control unit b", and achannel 30 also identified as CH2. The paths a(n) and b(n), which may be entirely separate from each other, have separate associatedsubchannel facilities - The SPD configuration (Figure 2) also comprises two or more CP's, represented by CPl and CP2 shown respectively at 36 and 38. These CP's also have shared access to a common
main store 40 and a common disk storage device n shown at 42.Main store 40 contains aspace 44 which stores a UCBn uni- quely associated with device n. However, this configura- tion includes a plurality of "floating"channels 46 which are assignable variably, by a common I/O processing (IOP)facility 48, to conduct communications between the CP's and their affiliated devices, includingdevice 42. Furthermore, thechannels 46 have access, via IOP, to a single sharedsubchannel storage facility 50, a portion of which shown at 52 is dedicated exclusively todevice 42 and serves as a subchannel for that device relative to I/O transactions conducted through any of thechannels 46. - In the SPD configuration,
device 42 connects with thechannels 46 via a first path a(n), extending through a control unit "a" shown at 54, and a second path b(n), extending through a control unit "b" shown at 56.Control unit 54 may have physical connection links with any or even all of thechannels 46, one of which is suggested at 60. Similarly,control unit 56 may have physical connection links with any or all of thechannels 46, one such being suggested at 62. Anychannel 46 may communicate with CP1 and/or CP2 viaIOP 48. Accordingly, it will be understood that the physical constituents of path a(n) may be varied in time, depending upon which of the links betweencontrol unit 54 andchannels 46 is chosen byIOP 48 and/or thecontrol unit 54. Likewise, it should be understood that the physical constituents of path b(n) are dynamically variable under the control ofIOP 48 and/orcontrol unit 56. - In either configuration, SPP or SPD, a shared access device such as 22 or 42 may be adapted either to indicate pendency of a status change condition over a single path-(e.g. over a(n) or 13(n)), in an "untagged" mode, or over all paths (i.e. a(n) and b(n)) in the multitagging mode. In either the SPP or SPD configuration, and with the device such as n adapted for operation in either mode, the "status loss" problem addressed by the present invention can occur.
- Figs. 3 and 4 illustrate how this occurs in the SPP environment, with the device adapted for operating respectively in the untagged and multitagging modes. From these examples and from subsequent descriptions of the "modified" SPD configuration, those skilled in the art will easily understand how the problem situation may occur in an unmodified SPD configuration (with the device adapted for operation in either the untagged or multitagging mode).
- In Figure 3 device n is assumed to be operating in the untagged mode relative only to CH1 and CP1 (i.e. path a(n)). When it has status to present to CP1 the device, acting through
control unit 24, manifests a "status pending"signal 72 over path a(n). When CH1 is free (CH1 may for instance be busy with other control units) it responds with anacceptance signal 76, and stores the associated status information temporarily in subchannel nl together with an "interruption pending"indication 78. At the same time CH1 causes an interruption request associated with subchannel nl to be manifested to CPl. When CP1 is free it signals acceptance of interruption, which causes CH1 to clear the interruption pending condition and transfer the device n status information from subchannel nl to a space inmain storage 20 permanently dedicated as an intermediate status buffer for all channels. Then CPl starts to perform the associated interruption handling process as suggested at 82. While performing the interruption handling tasks CP1 will transfer the status from the intermediate buffer for all status to one or more intermediate buffer spaces allocated temporarily for evaluating device n status. If the status is correct UCBn will be updated. - While performing the interruption handling process CPl may attempt to access UCBn by testing a lock word in that UCB. As suggested at 84 and 86, these attempts/tests may be unsuccessful because the lock on UCBn may then be controlled by CP2 which, as suggested at 90, may then be working on starting an operation at device n (via path b(n)) and, as suggested at 92, may have taken prior control of the UCBn lock. In this situation, as suggested at 94, it is possible for CP2 and CH2 to execute an initiating in- struction Start I/O (SIO) relative to device n, via
control unit 28, with reference only to outdated status information then available in UCBn, even while CPl has been trying to update this information. - In Figure 4, in the same SPP environment but with device n adapted for multitagging, device n manifests its status pending condition over both paths a(n) and b(n) as suggested at 110 and 112. However, since the constituents of these paths (control
unit 24 and CH1 in a(n) andcontrol unit 28 and CH2 in b(n)) have different work loads, their responses to these status pending manifestations (storage of status in subchannels nl and n2 respectively) will occur at different times, 114 in a(n) and 116 in b(n). Accordingly, associated manifestations of interruption pending conditions relative to CP1 and CP2 will start at different times, shown respectively at 118 and 120, whereby CP1 and CP2 may be caused to perform redundant interruption handling processes 122 and 124 starting at such different times, relative to the one status change event. In its interruption process CP1 may be able to lock UCBn and update status as shown at 126, and release the lock as shown at 127, even before CP2 has made any attempt to access this UCB. - While CP1 is handling its interruption, CP2 may be working to start an operation relative to device n, as suggested at 128, and as suggested at 130, CP2 may lock the UCB belatedly, either in connection with this starting function or in connection with its redundant handling of the multitagged interruption. Thereafter CP2 may update UCBn status as shown at 132, and perform the initiating SIO operation as shown at 134, before releasing the lock at 136.
- Figures 5-14 illustrate a preferred embodiment of adaptation of the SPD configuration of Figure 2, in accordance with the subject invention, which eliminates the foregoing "status loss" problem. The circumstances in which status loss could have occurred, were it not for such adaptation, and the extension of this adaptation to the relatively simpler SPP configuration will become obvious to those skilled in this art as the description progresses.
- In Figure 5, CP1 and CP2 respectively shown at 210 and 212, are indicated as being modified in a manner illustrated in Figures 8-11, and
main storage 40 is shown as having a modifiedUCBn 214 for each device n. Furthermore, a modified IOP processor associated with the "floating"channels 46 is shown at 220 as being modified in a manner illustrated in Figure 6 and a modified subchannel store is shown at 222. - Each modified
UCB 214 includes a lock word havingspecial bit spaces 230, 232 and 234 which are used in association with the subject adaptations of the CP's and the IOP, in a manner to be described, to improve performance efficiency in respect to CP handling of interruptions.Bit 230 is used to indicate whether the respective UCB is locked (busy) or unlocked (not busy). Bits 232 and 234 are used to indicate that a respective CP (CP1 or CP2) has unsuccessfully tested the lock. Although UCBn is shown as having only two bits 232, 234 for this purpose, it will be understood that in any practical system there will be a sufficient number of such bits to provide a contention indication for each potentially linkable CP. - The device n shown at 42, and the "a" and "b" control units shown at 54 and 56 respectively, are the same as like-numbered elements shown in Figure 2, and require no specific adaptation in respect to the subject invention. The device n may or may not be adapted for multitagging and it will be seen that such adaptation or non-adaptation will not affect the operations of the (yet to be described) subject adapting mechanisms in the IOP, subchannel store and CP's.
- The adaptations of
IOP 220 andsubchannel store 222, in accordance with the subject invention, are shown in Figure 6. The operations of the IOP, and subchannel store as adapted, are indicated in Figure 7. As shown in Figure 6 the adaptively modifiedsubchannel store 222 includes a Subchannel Control Block (SCB) storage space 238 for each device. In this space, the IOP stores the status of the respective device and its associated control unit path elements as suggested at 240. The space 238 allotted to device n is termed SCBn. Each space such as SCBn includes a pair ofbit slots - IPn is set to 1 when the IOP has positioned SCBn in an interruption queue as described infra, and IPn is reset to 0 when SCBn is removed from the queue in association with acceptance of interruption by a CP. In accordance with the present invention, SP1 is set to 1 when status is stored in SCBn and remains in that state until a "test subchannel" operation directed to SCBn is performed by a CP under control of the central operating system.
- Although not indicated in Figure 6,
subchannel store 222 is accessible both to the IOP and each of the CP's (at different times). Furthermore, althoughstore 222 is shown as a separate entity it is contemplated that this store may be embedded in the main store 40 (Figure 5) without altering the operations required of the apparatus to be described. - Relative to the
subchannel store 222,IOP 220 includes logic means 244 for modifying information in the SCB spaces, and logic means 246 for manifesting interruption requests to the CP's and maintaining a queue of subchannels associated with such requests. This "interruption" queue, which is served on a first-in first-out basis, is described below but it is not shown in the drawings because it is not directly relevant to the present invention. - Logic means 244 includes
means 248 for modifying information contained in any SCB, and associated means 250 for manipulating the bit conditions IPn and SPn in that SCB. Logic means 246 includesmeans 252 for manifesting an interruption request signal to the CP's vialine 253, while the interruption queue contains at least one unserviced SCB, and means 254 for causing a new element (SCB) to be added to the interruption queue (by causinglogic 248 to insert queue linking address indications into the SCB which is currently being entered on the queue, and into the preceding SCB entry if the queue was not empty prior to the present entry, by modifying a "next element" pointer associated with the queue to point to the SCB which is currently being entered if the queue was empty prior to this entry, and by setting a "not empty" indication when an entry is being.made to a formerly empty queue). -
Logic 246 also includesmeans 256 for removing SCB's from the interruption queue one at a time, on a FIFO basis, in response to interruption acceptance signals received from the CP's vialines 258. In association with each such removal, logic 256 (via a not shown connection) causeslogic 248 to modify the next element pointer and linkage indicators of the interruption queue, and to reset the "not empty" indication if the present removal operation vacates the queue.Logic 256 also causes the identity (address) of the removed SCB to be signalled to the accepting CP vialines 260. - The sequence of operations of the apparatus shown in Figure 6 relative to one subchannel associated with device n is indicated in Figure 7. When a status pending signal from device n via
control unit 54 or 56 (or both if device n is adapted for multitagging operation) is received by one of thechannels 46, as suggested at 280, the IOP is stimulated at 282 to modify SCBn and enter it on the interruption queue. In theoperations 282 the IOP obtains an "atomic" lock on subchannel storage (exclusive control of subchannel storage for the duration of operations 282), writes status information received from one of the control units, 54 or 56, into SCBn, sets IPn and SPn to 1, modifies the interruption queue to include SCBn as its last entry, establishes an interruption request signal relative to the CP's if the queue was vacant prior to this entry, and thereafter releases its lock on subchannel storage. - In conjunction with or following these actions, the IOP acts as shown at 284 to stimulate a channel (or channels) 46 to release the control unit(s). This causes the control unit(s) to clear the status pending condition from its (their, in the multitagged case) respective path(s).
- At some arbitrary later time, suggested by the "break" at 286, one of the CP's (in this case assumed to be CP1) responds to the outstanding interruption request signal from the IOP and signals acceptance of an interruption as suggested at 288. When this occurs, the IOP acts as shown at 290 to remove the "oldest unprocessed SCB entry" (i.e. the oldest entry having an IPn bit set to 1) from its interruption queue (in this instance, assumed to be SCBn), modifies its queue information appropriately (resets the IP bit in the removed entry SCBn, revises the queue linkage functions and pointers to delete SCBn, etc.) and signals the identity (address) of the removed entry SCBn. This completes the handling of SCBn by the IOP and leaves SCBn with its SP bit still set to 1.
- The principal modification of the CP's, in respect to the present invention, is illustrated in block schematic form in Figure 8. Associated operations of this equipment are shown in Figure 9. As shown in Figure 8, a new instruction Test Subchannel (abbreviated TSCH), when staged in the
instruction register 300 of a CP, in conjunction with prior preparation of address information in a general register (GR1) indicated at 302 (such information identifying the address insubchannel storage 222 of a particular subchannel such as SCBn), causes instruction decoding controls andarithmetic logic 304 in the CP (as newly modified for execution of this instruction) to evoke presently novel operations which cause the CP to read out the SP bit of SCBn (from subchannel storage 222), examine the value of that bit, write a 0 value into the SP bit slot of SCBn, and conditional upon the value of the tested bit set acondition code value register 308. Ifcondition code 0 is set, status is read out of the addressed SCBn and stored, in main storage, in aspace 310 temporarily allocated by the operating system for this purpose. This temporary space is referred to herein as the "interruption response block space" or IRB in association with the addressed SCB (i.e. the IRB for SCBn is designated IRBn). - The operations associated with execution of a TSCH instruction are- indicated in Figure 9. Prior to such execution, as suggested at 320, the address of the targeted SCBn is loaded into register 302 (by actions evoked by instructions preceding the TSCH instruction). The TSCH instruction is then fetched from main storage as indicated at 322 (by operation of the conventional instruction fetching controls indicated at 324 in Figure 8).
- At 326, the
CP circuits 304 for executing instructions react to detection of the OP CODE of a TSCH instruction (code B235) and obtain "atomic" locks on main storage and subchannel storage in preparation for the following operations. At 328, SCBn is addressed using the address inregister 302, and an address is prepared for conditionally accessing the associated IRBn (310, Figure 8). The address for SCBn is formed by adding the contents of the D2'field of the TSCH instruction to the contents of the register specified by the B2 field of the instruction (of course the values of B2'and D2 will have been set up by preceding instructions to form this address.of IRBn). - In the next operation 330, the CP acts to remove the SPn bit from the addressed SCBn and to examine its value. If the value is 1, meaning that status is pending in the respective subchannel SCBn, the CP performs
operations 332, which include storing a 0 value in the SPn bit slot of SCBn, transferring status information from SCBn to IRBn, and setting a 0 condition code value incondition code register 308. If the value of the examined SPn bit is 0, the CP acts at 334 to store a 1 incondition code register 308. - The setting of the condition code value may be used to condition the selection of one of two sequences of instructions following the TSCH execution; it will be understood that one such sequence, associated with
condition code 0, may be used for evaluating the status and conditionally updating UCBn, and the other sequence associated withcondition code 1 may "skip" such evaluation and selective updating. At 336, after eitheroperation - Ancillary and desirable (but not essential) operations employing apparatus shown in Figure 10 and described with reference to Figure 11, permits the subject system to ease the burden of a CP which is performing interruption handling but is blocked from accessing a UCB to complete the updating of status. These ancillary operations permit the blocked CP to abort its handling of the interruption while insuring that the CP which then controls the UCB will, in conjunction with program restrictions described herein, complete the aborted (status updating) task.
- The apparatus shown in Figure 10 is identical to the "compare and swap" apparatus described in
U.S. patent 3 886 525 by P. J. Brown et al which has been referred to previously, but acts in a unique context presently to provide a basis for the desirable ancillary operations referred to above. This apparatus executes the "compare and swap" instruction (C&S) which is shown in Figure 10 as it appears when staged for execution in theCP instruction register 300. This instruction includes an OP code portion, which conditions the instruction decoding apparatus 304 (Figure 8) to perform the subject compare and swap operations, two fields Rl and R3 for specifying general registers, and fields B2 and D2 for defining a storage address. The OP code is shown at 350, the Rl and R3 fields are respectively indicated at 352 and 354, and the B2 and D2 fields are indicated respectively at 356 and 358. - In respect to the present ancillary operations, the result of adding displacement D2 to the content of the register defined by B2 is used to address a lock word field in UCBn (operand 2) which is to be evaluated. The addressed lock word is read out of storage and applied to one side of compare
circuit 360 while theoperand 1 contained in thegeneral register 362 specified by Rl is applied to the other side of comparecircuit 360. Comparecircuit 360 compares the two inputs (operands 1 and 2) and produces either an "equal" (=) output or a "not equal" (≠) output. If the equal output is generated, operand 3 (the contents of theregister 364 which is specified by R3) is transferred through gates indicated generally at 366 and written into the lock word field of UCBn, replacing theoperand 2 value previously held therein. If the comparison result is unequal, then theoperand 2 word read out of the UCB is gated intoregister 362 and replaces theoperand 1 value previously contained therein. - This instruction is used presently to enable a first CP (e.g. CP1) to determine whether or not a second CP (e.g. CP2) currently controls access to a given UCB (e.g. UCBn) and to set a flag in that UCB for conditioning the second CP to complete an operation (e.g. status updating) which may then potentially be aborted by the first CP. The restrictions imposed on the execution of this instruction (refer to GA 22-7000 supra at pages 123 and 124) enable the first processor to determine, when it executes the instruction, whether or not the second processor has relinquished its control of the UCB lock prior to the execution of the instruction and thereby enables the first processor to decide if it should repeat its bid for access to the UCB (by repeating its execution of the instruction with revised Rl, R3 parameters), or abort its (interruption handling) operation and rely on the second processor to complete the updating of the UCB.
- Referring to Figure 11, the (C&S) instruction is used as follows. Assume first that CP2 controls the lock on UCBn for some time prior to CP1 execution of the instruction and during the execution. Prior to execution, at 370, CP1 reads the present UCBn lock word (without change), evaluates it and determines (from its value) that CP2 then controls the lock. CP1 then acts at 370 to place the fetched lock word in
register 362 and a modified lock word inregister 364. The modified lock word contains a flag bit which indicates that CP1 has unsuccessfully sought access to UCBn during CP2's tenure of control. At 372, CP1 fetches the compare and swap instruction toinstruction register 300. At 374, CP1 fetches operand 2 (the UCBn lock word) and at 376, CP1 comparesoperand 2 to operand 1 (word in register 362). If the status of CP2 control has not changed during the execution of operations 370-376, as presently assumed, the compared operands will be equal and CP1 will performactions Action 380 stores the modified lock word in UCBn andaction 382 sets a condition code value of 0 associated with equal comparison. - On the other hand, if CP2 had relinquished its control of the UCBn lock prior to or during CPl's execution of the instruction, it would have changed the lock word (
operand 2 value) so thatcomparison 376 would have indicated an unequal condition. In that case, CP1 would have performedoperations operation 384 substitutingoperand 2 foroperand 1 inregister 362, andoperation 386setting condition code 1. After performing either sequence, 380, 382 or 384, 386, CP1 concludes the instruction execution sequence as shown at 390. Afterwards, branching on the condition code CP2 may analyze the new value inregister 362, if the conditon code is 1, determine that UCBn may now be accessible, and execute a second C&S instruction to attempt to secure control of the UCBn lock. - Figure 12 indicates how in the environment of Fig. 5 apparatus of Fig. 8, for executing TSCH, operates in conjunction with apparatus of Fig. 10 for performing the ancillary compare and swap function to eliminate the subject status loss problem. In this figure, it is assumed that CP2 is working relative to path b(n), Figure 5, to start an operation at device n, while CP1 is working concurrently to process a status change received from the same device via path a(n), Figure 5.
- Considering first the operations of CP2, at 400 CP2 executes a compare and swap instruction relative to UCBn. At
decision point 402, if this operation indicates that the UCB is accessible (equal comparison), a modified lock word is stored at 404 indicating that CP2 controls the UCB. If the UCB is not accessible (unequal comparison) CP2 sets acondition code 1 and branches viapath 406 to re-execute the instruction after a delay. This "spinning" action continues until CP2 gains access to UCBn, and completes the associated lockingaction 404. - After gaining access to UCBn, CP2 acts at 406 to execute a "modified start I/O" instruction which will be described later with reference to Figures 13 and 14. This instruction causes the CP to evaluate the state of the device represented by SCBn, to conditionally store initiating control information in SCBn, and to set one of four condition codes (0, 1, 2 or 3) depending on the evaluated state of SCBn. Depending upon which condition code is set, CP2 performs (different) additional operations suggested at 408 (which will be described with reference to Figure 14) and then concludes its handling of the initiation scheduling process. Thereafter, CP2 acts at 410 to perform a "final" compare and swap operation. This enables CP2 to determine whether the UCBn lock has been modified since the previous compare and
swap operation 400; i.e. to determine whether any other CP (e.g. CP1) has attempted unsuccessfully to obtain access to UCBn. - At
decision point 412, CP2 branches on the results of itsC&S operation 410. If the results indicate that no other CP has attempted to gain access to UCBn, CP2 acts at 414 to modify the UCBn lock, so as to effectively indicate release of that UCB, and concludes its operation at 416. On the other hand, if CP2 determines at 412 that another CP has unsuccessfully attempted to access UCBn, then it executesoperations 420, which includes a TSCH operation for testing the SPn bit in SCBn and conditionally updating UCBn status, if necessary. CP2 then performs another compare and swap operation at 422 and repeatsdecision 412, enabling CP2 to determine if any CP has attempted to gain access to the UCB whileoperations 420 were being performed. If necessary CP2 performsoperations - During the foregoing operations of CP2, as assumed previously, CP1 has been operating to process an interruption relative to device n. Therefore CP1 will have accepted an interruption and retrieved status from SCBn as shown at 430. Then CP1 will have performed other interruption handling operations, suggested at 432, for evaluating the retrieved device status information. Assuming that the status is meaningful CP1 will attempt to gain access to UCBn (for updating its status), by executing compare and
swap operation 434, and branch on the outcome of this operation atdecision point 436. If the UCB is accessible, CP1 will lock the UCBn and conditionally update UCBn status viaoperations - On the other hand, if CP1 finds that UCBn is locked by another CP such as CP2, at
decision point 436, CP1 then would merely abort its operation and takesequence route 450 directly to theconcluding function 446. It will be understood that if CP1 takes the "yes"path 450 atdecision point 436, CP2 which then controls UCBn will at some later point, by virtue of one of itsC&S operations - As indicated above, one of the
operations 406 performed by CP2 is the execution of a modified start I/O instruction. The apparatus for performing this instruction is shown in Figure 13 and the actions associated with its execution are shown in Figure 14. - Figure 13 shows this instruction as staged for execution in
CP instruction register 300. At such timesgeneral register 302 is pre-loaded with information defining the location of a specific subchannel, in this case SCBn, and the "second operand" defined by the B2 and D2 parameters of the instruction specify an operation request block (ORB)space 480 in main storage which is prearranged to contain the parameters defining the starting operation. These parameters, named in Figure 13, are not discussed presently inasmuch as they are not relevant to the present invention. - As indicated in Figure 14, the operations 484-502 associate with execution of the modified start I/O instruction are performed only by the CP without any interaction with. the IOP. Thereafter, as indicated at 504, the IOP, if properly stimulated, will proceed to perform associated operations for selecting a path to the device, and initiating communication with the device, while the CP may be performing other functions.
- After
ORB preparation 480 the CP fetches the instruction at 484. At 486 the CP secures atomic locks on subchannel storage and main storage. At 490 the CP evaluates the status of the subchannel (SCB) addressed by the content of register 302 (Fig. 13), and branches on the result to one of the four functions indicated at 492, 494, 496 or 498. If the SP bit in SCBn is set (=l) the CP performsoperation 492 setting the instruction condition code to 1 and releasing the atomic locks. If SCBn state information indicates that the subchannel does not have status pending but is in a busy condition, the CP executes operation '494 setting the instruction condition code to thevalue 2 and releasing the locks. If the SCBn state information indicates =that the device is not operational (either not installed or not operating) the CP executesoperation 496 setting the condition code to thevalue 3 and releasing the locks. Finally, if none of the foregoing exceptional conditions are found, and therefore if the subchannel is in a state suitable for starting the operation, the CP executes operations'498 to: set the condition code value to 0, transfer the initiating control information from the ORB in location 480 (Fig. 13) in main store to SCBn in subchannel storage, set an SFP (start function pending) bit in SCBn to a 1 value as an indication that the operation in question is now pending for advancement by the IOP, generate an IOP work stimulus to excite the IOP to continue the operation as discussed infra, and release the locks. - After executing one of the
operations operations 502 to evaluate the conditions set byoperation operations 502 correspond to theoperations 410 through 420 discussed in reference to Figure 12. - As indicated at 504, after the CP has performed its concluding
operations 500, and assuming that the CP has generated an IOP work stimulus viaoperation 498, the IOP when free responds to said stimulus and performs operations 506-516 for advancing the initiation process. At 506 the IOP acknowledges the work stimulus, and obtains atomic locks on subchannel and main storages. At 510 the IOP performs operations to select a path to the device for attempting to start the operation. At 512 the IOP attempts to communicate with the device via the channel and control unit elements of the selected path. - At 514, IOP branches on the success or failure of this attempt. If the attempt was successful the locks are released at 516 and the operation is carried forward by the selected path elements. If the attempt was not successful, IOP repeats
operations - Accordingly, it may be seen that this modified start I/O operation involves separate operations by the CP and IOP whereby the CP need only transfer the contents of the into the subchannel and present work stimulus to the IOP and the IOP thereafter independently controls path selection, device stimulation, etc.
- While we have illustrated and described preferred embodiments of our invention, it is to be understood that we do not limit ourselves to the precise construction herein disclosed and the right is reserved to all changes and modifications coming within the scope of the invention as defined in the appended claims.
Claims (7)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/221,604 US4400773A (en) | 1980-12-31 | 1980-12-31 | Independent handling of I/O interrupt requests and associated status information transfers |
US221604 | 1980-12-31 |
Publications (3)
Publication Number | Publication Date |
---|---|
EP0055370A2 true EP0055370A2 (en) | 1982-07-07 |
EP0055370A3 EP0055370A3 (en) | 1984-10-31 |
EP0055370B1 EP0055370B1 (en) | 1989-07-26 |
Family
ID=22828504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP81108990A Expired EP0055370B1 (en) | 1980-12-31 | 1981-10-27 | Independent handling of i/o interrupt requests and associated status information transfers |
Country Status (5)
Country | Link |
---|---|
US (1) | US4400773A (en) |
EP (1) | EP0055370B1 (en) |
JP (1) | JPS605011B2 (en) |
CA (1) | CA1165457A (en) |
DE (1) | DE3177080D1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0420531A2 (en) * | 1989-09-28 | 1991-04-03 | AT&T Corp. | Channel adapter for broadband communications at channel speeds |
EP0528060A1 (en) * | 1991-08-13 | 1993-02-24 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Procedure for input/output operations in computer systems |
WO1996009583A2 (en) * | 1994-09-23 | 1996-03-28 | Cambridge Consultants Limited | Data processing circuits and interfaces |
US8719837B2 (en) | 2004-05-19 | 2014-05-06 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4709349A (en) * | 1982-01-05 | 1987-11-24 | Sharp Kabushiki Kaisha | Method for maintaining display/print mode in display printer |
JPS5947625A (en) * | 1982-09-13 | 1984-03-17 | Fujitsu Ltd | Input and output interruption system |
US4618968A (en) * | 1983-11-04 | 1986-10-21 | Motorola, Inc. | Output compare system and method automatically controlilng multiple outputs in a data processor |
US4604694A (en) * | 1983-12-14 | 1986-08-05 | International Business Machines Corporation | Shared and exclusive access control |
US4713751A (en) * | 1984-10-24 | 1987-12-15 | International Business Machines Corporation | Masking commands for a second processor when a first processor requires a flushing operation in a multiprocessor system |
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4858108A (en) * | 1985-03-20 | 1989-08-15 | Hitachi, Ltd. | Priority control architecture for input/output operation |
US4779195A (en) * | 1985-06-28 | 1988-10-18 | Hewlett-Packard Company | Interrupt system using masking register in processor for selectively establishing device eligibility to interrupt a particular processor |
US5155812A (en) * | 1989-05-04 | 1992-10-13 | Texas Instruments Incorporated | Devices and method for generating and using systems, software waitstates on address boundaries in data processing |
JPH01117013U (en) * | 1988-01-29 | 1989-08-08 | ||
US5043876A (en) * | 1988-05-27 | 1991-08-27 | International Business Machines Corporation | N-level file shadowing and recovery in a shared file system |
US5038275A (en) * | 1988-10-07 | 1991-08-06 | Advanced Micro Devices, Inc. | Status transfer structure within a data processing system with status read indication |
US5065313A (en) * | 1989-03-30 | 1991-11-12 | Dell Usa Corporation | Digital computer system having circuit for regulation of I/O command recovery time |
US5055491A (en) * | 1989-04-10 | 1991-10-08 | Sumitomo Chemical Company, Limited | Carboxylic acid esters, methods for producing them and insecticides and/or acaricides containing them as an active ingredient |
US5617574A (en) | 1989-05-04 | 1997-04-01 | Texas Instruments Incorporated | Devices, systems and methods for conditional instructions |
US5202998A (en) * | 1990-08-31 | 1993-04-13 | International Business Machines Corporation | Fast, simultaneous multi-processor system status communication interface |
US5202964A (en) * | 1990-10-26 | 1993-04-13 | Rolm Systems | Interface controller including messaging scanner accessing state action table |
US5386560A (en) * | 1991-05-23 | 1995-01-31 | International Business Machines Corporation | Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens |
US5392397A (en) * | 1992-03-30 | 1995-02-21 | International Business Machines Corporation | Command execution system for using first and second commands to reserve and store second command related status information in memory portion respectively |
US5331673A (en) * | 1992-03-30 | 1994-07-19 | International Business Machines Corporation | Integrity of data objects used to maintain state information for shared data at a local complex |
US5394542A (en) * | 1992-03-30 | 1995-02-28 | International Business Machines Corporation | Clearing data objects used to maintain state information for shared data at a local complex when at least one message path to the local complex cannot be recovered |
US5319753A (en) * | 1992-09-29 | 1994-06-07 | Zilog, Inc. | Queued interrupt mechanism with supplementary command/status/message information |
JPH06214969A (en) * | 1992-09-30 | 1994-08-05 | Internatl Business Mach Corp <Ibm> | Method and equipment for information communication |
US5410709A (en) * | 1992-12-17 | 1995-04-25 | Bull Hn Information System Inc. | Mechanism for rerouting and dispatching interrupts in a hybrid system environment |
US5911138A (en) * | 1993-06-04 | 1999-06-08 | International Business Machines Corporation | Database search facility having improved user interface |
JP2846837B2 (en) * | 1994-05-11 | 1999-01-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Software-controlled data processing method for early detection of faults |
US5513351A (en) * | 1994-07-28 | 1996-04-30 | International Business Machines Corporation | Protecting a system during system maintenance by usage of temporary filenames in an alias table |
US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
US11163892B2 (en) * | 2019-01-09 | 2021-11-02 | International Business Machines Corporation | Buffering data until encrypted destination is unlocked |
CN112198820B (en) * | 2020-09-27 | 2021-11-12 | 中国第一汽车股份有限公司 | Interrupt service implementation method, device, equipment and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725864A (en) * | 1971-03-03 | 1973-04-03 | Ibm | Input/output control |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3675209A (en) * | 1970-02-06 | 1972-07-04 | Burroughs Corp | Autonomous multiple-path input/output control system |
US3886525A (en) * | 1973-06-29 | 1975-05-27 | Ibm | Shared data controlled by a plurality of users |
US4073005A (en) * | 1974-01-21 | 1978-02-07 | Control Data Corporation | Multi-processor computer system |
US4123794A (en) * | 1974-02-15 | 1978-10-31 | Tokyo Shibaura Electric Co., Limited | Multi-computer system |
US4004277A (en) * | 1974-05-29 | 1977-01-18 | Gavril Bruce D | Switching system for non-symmetrical sharing of computer peripheral equipment |
US4042914A (en) * | 1976-05-17 | 1977-08-16 | Honeywell Information Systems Inc. | Microprogrammed control of foreign processor control functions |
US4191997A (en) * | 1978-04-10 | 1980-03-04 | International Business Machines Corporation | Circuits and methods for multiple control in data processing systems |
US4166290A (en) * | 1978-05-10 | 1979-08-28 | Tesdata Systems Corporation | Computer monitoring system |
-
1980
- 1980-12-31 US US06/221,604 patent/US4400773A/en not_active Expired - Lifetime
-
1981
- 1981-10-27 DE DE8181108990T patent/DE3177080D1/en not_active Expired
- 1981-10-27 EP EP81108990A patent/EP0055370B1/en not_active Expired
- 1981-10-29 CA CA000388972A patent/CA1165457A/en not_active Expired
- 1981-12-04 JP JP56194616A patent/JPS605011B2/en not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3725864A (en) * | 1971-03-03 | 1973-04-03 | Ibm | Input/output control |
Non-Patent Citations (1)
Title |
---|
ELEKTRONISCHE DATENVERARBEITUNG, vol. 12, no. 10, October 1970, pages 455-458, Braunschweig, DE; D. PHILIPP et al.: "Experiment - Rechner Kopplung im Forschungsbereich" * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0420531A2 (en) * | 1989-09-28 | 1991-04-03 | AT&T Corp. | Channel adapter for broadband communications at channel speeds |
EP0420531A3 (en) * | 1989-09-28 | 1992-04-29 | American Telephone And Telegraph Company | Channel adapter for broadband communications at channel speeds |
EP0528060A1 (en) * | 1991-08-13 | 1993-02-24 | Siemens Nixdorf Informationssysteme Aktiengesellschaft | Procedure for input/output operations in computer systems |
WO1996009583A2 (en) * | 1994-09-23 | 1996-03-28 | Cambridge Consultants Limited | Data processing circuits and interfaces |
WO1996009583A3 (en) * | 1994-09-23 | 1996-06-06 | Cambridge Consultants | Data processing circuits and interfaces |
US6311263B1 (en) | 1994-09-23 | 2001-10-30 | Cambridge Silicon Radio Limited | Data processing circuits and interfaces |
US6901503B2 (en) | 1994-09-23 | 2005-05-31 | Cambridge Consultants Ltd. | Data processing circuits and interfaces |
US8719837B2 (en) | 2004-05-19 | 2014-05-06 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
US9003422B2 (en) | 2004-05-19 | 2015-04-07 | Synopsys, Inc. | Microprocessor architecture having extendible logic |
Also Published As
Publication number | Publication date |
---|---|
CA1165457A (en) | 1984-04-10 |
DE3177080D1 (en) | 1989-08-31 |
US4400773A (en) | 1983-08-23 |
EP0055370A3 (en) | 1984-10-31 |
JPS57125447A (en) | 1982-08-04 |
EP0055370B1 (en) | 1989-07-26 |
JPS605011B2 (en) | 1985-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4400773A (en) | Independent handling of I/O interrupt requests and associated status information transfers | |
US3825902A (en) | Interlevel communication in multilevel priority interrupt system | |
US4847754A (en) | Extended atomic operations | |
US4447874A (en) | Apparatus and method for communication of information between processes in an information system | |
US5253344A (en) | Method and apparatus for dynamically changing the configuration of a logically partitioned data processing system | |
US4590555A (en) | Apparatus for synchronizing and allocating processes among several processors of a data processing system | |
EP0059838B1 (en) | Data processing system with a plurality of host processors and peripheral devices | |
US6697834B1 (en) | Mutual exculsion system and method for restarting critical sections of code when preempted during a critical section | |
EP0145889A2 (en) | Non-spinning task locking using compare and swap | |
EP0301220A2 (en) | Register management system in a computer processor with out-of-sequence instruction execution | |
EP0528220A2 (en) | Dynamically established event monitors in event management services of a computer system | |
EP0192232A2 (en) | Data processing apparatus | |
JPH0324696B2 (en) | ||
EP0141744B1 (en) | Method and apparatus for self-testing of floating point accelerator processors | |
US5551051A (en) | Isolated multiprocessing system having tracking circuit for verifyng only that the processor is executing set of entry instructions upon initiation of the system controller program | |
US4040037A (en) | Buffer chaining | |
EP0125044A1 (en) | Microcomputer with interprocess communication | |
EP0844565A2 (en) | Method and apparatus for protecting portions of memory | |
EP0484033A2 (en) | Method for implementing dismissible instructions on a computer | |
US3778780A (en) | Operation request block usage | |
EP0290942A2 (en) | Guest machine execution control system for virtual machine system | |
US5613133A (en) | Microcode loading with continued program execution | |
CA1302580C (en) | Apparatus and method for using lockout for synchronization of access to main memory signal groups in a multiprocessor data processing system | |
EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
US3363236A (en) | Digital computer having linked test operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19811027 |
|
AK | Designated contracting states |
Designated state(s): DE FR GB IT |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Designated state(s): DE FR GB IT |
|
17Q | First examination report despatched |
Effective date: 19860528 |
|
R17C | First examination report despatched (corrected) |
Effective date: 19870129 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): DE FR GB IT |
|
REF | Corresponds to: |
Ref document number: 3177080 Country of ref document: DE Date of ref document: 19890831 |
|
ITF | It: translation for a ep patent filed |
Owner name: IBM - DR. ARRABITO MICHELANGELO |
|
ET | Fr: translation filed | ||
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed | ||
ITTA | It: last paid annual fee | ||
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 19950926 Year of fee payment: 15 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 19951009 Year of fee payment: 15 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 19951030 Year of fee payment: 15 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GB Effective date: 19961027 |
|
GBPC | Gb: european patent ceased through non-payment of renewal fee |
Effective date: 19961027 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: FR Effective date: 19970630 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: DE Effective date: 19970701 |
|
REG | Reference to a national code |
Ref country code: FR Ref legal event code: ST |