System and method for improved efficiency and deadlock prevention in communication interfaces utilizing a first-in-first-out action queue
First Claim
1. A method of operating a data communication interface between a host data processing system and a plurality of data communication channels, the data communication interface having a processor and a plurality of communication controllers, each associated with one of the plurality of communication channels, the method comprising the steps executed by the data communication interface of:
- posting actions in response to requests from the host data processing system and a plurality of communication controllers;
monitoring for posting of actions;
responsive to detection of posting of an action, determining if an action was posted in response to a request by the host data processing system;
determining if the action can be executed if the action was posted in response to a request by the host data processing system;
if the determination of the last step is affirmative, executing the action;
if the action was posted in response to a request by the host data processing but was not executable, or if the action was posted in response to a request by one of said plurality of communication controllers, adding the action to an input of a First-In-First-Out queue;
examining only a first action in said First-In-First-Out queue to determine if said first action can be executed;
if the first action can be executed, executing the first action and replacing it as first action with a next action from said First-In-First-Out queue, if any; and
if the first action cannot be executed, moving the first action to said input of said First-In-First-Out queue and replacing it as first action with a next action from said First-In-First-Out queue, if any.
0 Assignments
0 Petitions
Accused Products
Abstract
A system for and method of operating of data communication interface for handling communication between a data processing system and a plurality of communication channels is disclosed. The method provides for monitoring posting of actions from the data processing system and from the plurality of communication channels. Responsive to detection of posting of an action, it is determined if the action was posted by the data processing system. Where the action was posted from the data processing system, it is determined if conditions permit the action to be executed. Responsive to an affirmative determination that the action can be executed it is executed. Responsive to a determination that the action was posted from the host data processing, but was not executable, the action is added to the end of a queue of actions. The first entry in the queue is then examined for executability. If executable, the first action is executed and replaced as first action with the next action from the queue, if any. If the first action cannot be executed, it is moved to the end of the queue and replaced the first action with a next action from the queue, if any. Actions required for response to interrupts from communication controllers are end queued upon receipt.
21 Citations
7 Claims
-
1. A method of operating a data communication interface between a host data processing system and a plurality of data communication channels, the data communication interface having a processor and a plurality of communication controllers, each associated with one of the plurality of communication channels, the method comprising the steps executed by the data communication interface of:
-
posting actions in response to requests from the host data processing system and a plurality of communication controllers; monitoring for posting of actions; responsive to detection of posting of an action, determining if an action was posted in response to a request by the host data processing system; determining if the action can be executed if the action was posted in response to a request by the host data processing system; if the determination of the last step is affirmative, executing the action; if the action was posted in response to a request by the host data processing but was not executable, or if the action was posted in response to a request by one of said plurality of communication controllers, adding the action to an input of a First-In-First-Out queue; examining only a first action in said First-In-First-Out queue to determine if said first action can be executed; if the first action can be executed, executing the first action and replacing it as first action with a next action from said First-In-First-Out queue, if any; and if the first action cannot be executed, moving the first action to said input of said First-In-First-Out queue and replacing it as first action with a next action from said First-In-First-Out queue, if any. - View Dependent Claims (2, 3)
-
-
4. A data communication interface for handling communication between a data processing system and a plurality of communication channels, comprising:
-
means for posting actions in response to requests from the data processing system and from the plurality of communication channels; means responsive to detection of posting of an action for determining if the action originated with the data processing system; means responsive to an affirmative determination of posting of an action originating with the data processing system for determining if the action can be executed; means responsive to an affirmative determination that the action can be executed for executing the action; means responsive to a determination that the action originated with the host data processing system but was not executable, or a determination that the action was posted in response to a request by one of said plurality of communication controllers, for adding the action to an input of a First-In-First-Out queue; means for examining only a first action in said First-In-First-Out queue to determine if said first action can be executed; means responsive to determination that the first action can be executed for executing the first action and for replacing it as first action with a next action from said First-In-First-Out queue, if any; and means responsive to determination that the first action cannot be executed for moving the first action to said input of said First-In-First-Out queue and for replacing it as first action with a next action from said First-In-First-Out queue, if any. - View Dependent Claims (5, 6)
-
-
7. An automated storage library for communicating with a plurality of communication channels, the automated storage library comprising:
-
a plurality of physical files; a plurality of magazines for holding the physical files; a drive unit for receiving physical files; means for carrying physical files between the magazines and the drive unit; a data processing system connected between the plurality of communication channels and the drive unit; means for posting actions in response to requests from the data processing system and from the plurality of communication channels; means responsive to detection of posting of an action for determining if the action originated with the data processing system; means responsive to an affirmative determination of posting of an action originating with the data processing system for determining if the action can be executed; means responsive to an affirmative determination that the action can be executed for executing the action; means responsive to a determination that the action originated with the host data processing but was not executable or a determination that the action is posted in response to a request by one of said plurality of communication channels, for adding the action to an input of a First-In-First-Out queue; means for examining only a first action in said First-In-First-Out queue to determine if said first action can be executed; means responsive to determination that the first action can be executed for executing the first action and for replacing it as first action with a next action from said First-In-First-Out queue, if any; and means responsive to determination that the first action cannot be executed for moving the first action to said input of said First-In-First-Out queue and for replacing it as first action with a next action from said First-In-First-Out queue, if any.
-
Specification