Data storage subsystem having apparatus for enabling concurrent housekeeping processing while an input/output data transfer occurs

Information

  • Patent Grant
  • 6260126
  • Patent Number
    6,260,126
  • Date Filed
    Friday, June 5, 1998
    28 years ago
  • Date Issued
    Tuesday, July 10, 2001
    25 years ago
Abstract
The invention implements a method for enabling overlapped performance of data processing actions during data transfers between a DSS and a host processor. The DSS includes a state queue which holds a plurality of states, each state comprising a self-contained procedure which, upon execution, determines a readiness to execute of an associated task. The method initially determines an amount of available time during a data transfer wherein a front-end processor of the DSS would otherwise be idle. The method then causes the front-end processor to extract and execute a first state from the state queue during the data transfer, if available time during the data transfer exceeds or is equal to an estimated execution time of the first state. Then, if a task associated with the first state is found to be ready to execute, that task is listed on a task work queue for execution subsequent to the data transfer. If, after execution of the first state, additional time remains, further states may be executed, in each instance, however, care being taken to assure that the front-end processor is ready to accommodate a new input/output operation when the current input/output operation ends.
Description




FIELD OF THE INVENTION




This invention relates to data storage subsystems and, more particularly, to a method and apparatus for enabling a data storage subsystem to perform housekeeping data processing functions during an input/output data transfer.




BACKGROUND OF THE INVENTION




Currently, data storage subsystems (DSSs) are configured as arrays of disk drives which provide high capacity storage for one or more attached host processors. Each host processor is coupled to the DSS via a high capacity communication channel and a dedicated front-end processor at the DSS. The front-end processor performs the command and protocol processing to facilitate the data transfers. However, when the actual data transfer occurs, it often by-passes the front-end processor and is performed as a “direct memory access” (DMA). Under such circumstances, the input data flows directly from the host processor to a cache memory in the DSS or from the cache memory in the DSS to the host processor, in both cases bypassing any buffering by the front-end processor. During a DMA, the front end processor is idle.




The prior art has suggested that such front end processors be applied to other functions during a DMA input/output data transfer action. U.S. Pat. No. 4,400,772 to Broyles et al., entitled “Method and Apparatus for Direct Memory Access in a Data Processing System” suggests that during a DMA, the central processing unit be placed in an idle state, without disturbing the central processing unit registers. This enables the central processing unit to then carry out secondary functions. One such suggested secondary function is to continue the refreshing of dynamic memory used in the system.




When a DSS processor, in a system such as described above by Broyles et al. remains idle, typically, the operating system relinquishes control of the DSS processor and makes it available for a new task. However, there is no guarantee how long the new task will take to execute. In such a case, if the DSS processor is occupied with the new task and the host processor's input/output operation finishes, the system remains in a wait state until the DSS processor again becomes available to perform an input/output function. This action may slow the system's primary function, i.e., input/output of data from/to the host processor. Only when the DSS processor becomes available to process the necessary command and interface data can an input/output action be accommodated.




Accordingly, it is an object of this invention to provide a method and apparatus for control of a DSS which enables a front end processor to be utilized for other tasks during an input/output data transfer.




It is another object of this invention to assure that the front-end processor of a DSS is available for use with an input/output action at the end of an input/output data transfer, irrespective of what other tasks have been assigned to it to be carried out.




SUMMARY OF THE INVENTION




The invention implements a method for enabling overlapped performance of data processing actions during data transfers between a DSS and a host processor. The DSS includes a state queue which holds a plurality of states, each state comprising a self-contained procedure which, upon execution, determines a readiness to execute of an associated task. The method initially determines an amount of available time during a data transfer wherein a front-end processor of the DSS would otherwise be idle. The method then causes the front-end processor to extract and execute a first state from the state queue during the data transfer, if available time during the data transfer exceeds or is equal to an estimated execution time of the first state. Then, if a task associated with the first state is found to be ready to execute, that task is listed on a task work queue for execution subsequent to the data transfer. If, after execution of the first state, additional time remains, further states may be executed, in each instance, however, care being taken to assure that the front-end processor is ready to accommodate a new input/output operation when the current input/output operation ends.











BRIEF DESCRIPTION OF THE DRAWINGS





FIG. 1

is a high level block diagram of a DSS adapted to perform the invention.





FIG. 2

schematically illustrates a state entry in a state queue.





FIG. 3

schematically illustrates a state queue.





FIG. 4

schematically illustrates a work queue that is maintained by the front-end processor of FIG.


1


.





FIGS. 5 and 6

comprise a logical flow diagram illustrating the method of the invention.











DETAILED DESCRIPTION OF THE INVENTION




Referring to

FIG. 1

, DSS


10


includes a plurality of disk drive units


14


,


16


, etc. which are coupled to a bus system


18


via device controllers


20


,


22


, respectively. The front end of DSS


10


comprises a plurality of host director processors


24


,


26


each of which is, respectively, coupled to a host processor. Host director processors


24


are, in turn, coupled via a bus


28


to a controller


30


. Controller


30


is coupled between buses


18


and


28


and controls input and output of data from a cache memory


32


.




Each host director processor


24


,


26


, . . . etc. includes a state execution procedure which, in conjunction with the associated host director processor, implements the invention hereof. Each host director processor further includes a table memory


34


, within which two queues are maintained, a state queue


36


and a work queue


38


.




As used herein, a “state” is a self-contained procedure which enables determination of the readiness to execute of an associated task within DSS


10


. As an example, a state may be a procedure which checks to see if the following functions are ready to execute: a periodic determination of “time-out” checks; a check for missing interrupts, logical device disable polling, etc. More precisely, a state procedure determines if a task is ready to run and, if yes, places the task on work queue


38


, to be described in detail below.




A state procedure is one, by definition, which can be performed by a host director processor


24


,


26


, during an input/output data transfer. More precisely, a state procedure is one which can be executed when a DMA data transfer is in process, either from or to a host processor. Note, that while not shown in

FIG. 1

, a DMA transfer of data between cache memory


32


and a host processor is not buffered by an intermediate host director processor


24


,


26


, but rather is fed directly to/from cache memory


32


. Accordingly, the respective host director processor is otherwise idle under these conditions.




As shown in

FIG. 3

, each state queue


36


comprises a list of state procedures


40


,


42


, with one or more interspersed “set time stamp” procedures


44


. When a “set time stamp” procedure


44


reaches the top of a state queue


36


and is executed, it causes entry into a register (not shown) of a current machine time “Ts”. As will be hereafter understood, time stamp value “Ts” is utilized by a “time out” task


46


in a work queue


38


(see

FIG. 4

) to determine when all states in state queue


36


must be executed, irrespective of a pending input/output request from a host processor. A set time stamp task is never removed from state queue


36


, but rather recirculates thereon to assure that a set time stamp action is periodically executed.




Each work queue


38


further includes a series of tasks


48


,


50


, etc. which have been found ready to execute as a result of execution of an associated state in state queue


36


. Time out task


46


is never removed from work queue


38


, but rather recirculates thereon to assure that a time out function is periodically executed.





FIG. 2

illustrates the data values present in a state entry on a state queue


36


. Each state entry includes a pointer to a next state, a pointer to a previous state, and an estimated worst case execution time for the particular state procedure. In general, the worst case execution time denotes the maximum possible time which the execution of the specific state procedure can consume. Clearly, the execution of the state can consume less time than the worst case value. Finally, each state entry includes a substate value which defines further parameters that are to be utilized by the state procedure during its execution, e.g., a logical path to be followed, a logical device to be accessed, etc.




Turning now to

FIGS. 5 and 6

, the method of the invention will be described, as executed under control of a state execution procedure


31


. Initially, assume that a host processor requests a data access input/output action from DSS


10


. In the known manner, the host processor provides the address of the data to be accessed and the number of bytes to be transferred (step


100


). Thereafter, DSS


10


is set up to perform a direct memory access (DMA) and commences the DMA (step


102


). Such set up involves the accessing of the specified data from a disk storage unit and the buffering thereof in-cache memory


32


, under control of controller


30


. Thereafter a DMA transfer occurs, between cache memory


32


and a host processor.




At this point, a host director processor (e.g.


24


) calculates a time dT available during the DMA input/output access action. Time dT is calculated based upon the “number of bytes” parameter received from the host processor (step


104


). Instead of remaining idle during the DMA action, host director processor


24


is actuated to select a top state from a state queue


36


in its table memory


34


(step


106


). Host director processor


24


then determines if the top state is a “set time stamp” state (decision step


108


). If yes, the time stamp parameter Ts is reset to the current time indicated by a time keeping function within host director processor


24


.




Next, a “worst case execution time” parameter is derived from the state entry in state queue


36


. That parameter is compared with the available time parameter dT calculated in step


104


to determine if it is less than or equal to dT (decision step


112


). If yes, it is concluded that sufficient time is available to execute the top state in state queue


36


. Note, that the time available parameter dT is not set equal to the total calculated time to be taken by the DMA access action but rather is set to a somewhat shorter time so as to enable host director processor


24


to be reset and ready to accept a next I/O access upon the completion of the current DMA access.




As shown in step


114


, host director processor then proceeds to execute the top state in state queue


36


. As above indicated, execution of a state involves the examination of a potential task to see if it is ready to execute. If the task is found ready to execute (i.e., a task “hit”) (decision step


116


), the task is placed on work queue


38


(step


118


). Thereafter, the procedure moves to step


120


, wherein host director processor


24


calculates the actual execution time “Te” taken by the just executed state. Then, a new available time parameter dT′ is calculated in accord with the expression: dT′=dT—Te (step


122


).




The procedure then recycles back to decision step


108


and if the top state is not a “set time stamp” task, moves to step


112


to determine if the top state in state queue


36


exhibits a worst case run time parameter that is less than or equal to dT′. If yes, the procedure moves down the right-hand series of steps from decision step


112


. If no, the procedure waits until the DMA action is finished (decision step


124


) and then determines if a host processor request for an input/output action is pending (decision step


126


). If yes, the procedure moves back to step


102


and recycles; and if no, the procedure moves to execute a task on work queue


38


(step


128


). Here it is to be understood that the DMA action has finished and that the execution of a task on work queue


38


results in overhead “expense” for DSS


10


.




Further details of the actions which occur during step


128


are shown in FIG.


6


. Initially, it is determined if the top task in work queue


38


is a “time out” task (decision step


130


). If yes, the procedure moves to decision step


132


where it is determined if the current machine time less Ts is greater than or equal to a threshold value. That threshold value sets a time duration, at the expiration of which, all states in state queue


36


must be executed to assure that the necessary housekeeping actions are carried out for DSS


10


.




If a no response issues from decisions step


132


, the procedure moves to step


138


where the task is executed. Thereafter, the procedure moves through decision step


140


where, if no input/output request is pending, the procedure recycles back to decision step


130


. Otherwise, the procedure moves back to step


102


(FIG.


5


).




Returning to decision step


132


, if it is determined that the calculation shown therein indicates that the threshold value has been equaled or exceeded, any input/output access request is placed on a queue (i.e., temporarily inhibited) (step


134


), as is any resulting calculation of the parameter dT. Then, host director processor


24


executes all states on state queue


36


(including the next listed set time stamp task) (step


136


) and places on work queue


38


any associated tasks found to be ready to execute. Thereafter, the procedure moves to decision step


140


and proceeds as shown. In such manner, it is assured that, periodically, all states are executed and any associated ready-to-execute tasks are queued for execution during overhead time of host director processor


24


.




Accordingly, it can be seen that DSS


10


is enabled to perform processing functions during an input/output access from a host processor, while assuring that the housekeeping tasks will not interfere with host processor access actions. Further, tasks which are found to be ready to execute are placed on a work queue to be immediately ready for execution during “overhead” time within DSS


10


. Further, DSS


10


is forced, periodically, to execute all states on state queue


36


so as to assure that all housekeeping actions are accomplished, at least periodically.




It should be understood that the foregoing description is only illustrative of the invention. Various alternatives and modifications can be devised by those skilled in the art without departing from the invention. For instance, while state execution procedure


31


is shown as already loaded in a host director processor, it may be configured on a storage media which is selectively loaded as needed. Accordingly, the present invention is intended to embrace all such alternatives, modifications and variances which fall within the scope of the appended claims.



Claims
  • 1. A method for enabling overlapped performance of data processing actions during data transfers between a memory system and a host processor, said memory system including a memory processor which enables said data transfers and a state queue which holds a plurality of states, each state comprising a self contained procedure for determining a readiness to execute of an associated task, said method comprising:determining an amount of available time during a data transfer; causing said memory processor to execute a first state from said state queue during said data transfer if said available time exceeds or is equal to an estimated execution time of said first state; if a task associated with said first state is found to be ready to execute, listing said task on a task work queue for execution subsequent to said data transfer. after execution of said first state, determining remaining time from said available time; and causing said memory processor to execute a second state from said state queue during said data transfer if said remaining time exceeds or is equal to an estimated execution time of said second state, wherein said remaining time is determined by subtracting actual execution time for said first task from said available time.
  • 2. The method as recited in claim 1, wherein said memory processor is inhibited from executing said first state during said data transfer if said available time is less than said estimated execution time of said first state.
  • 3. The method as recited in claim 1, further comprising:subsequent to said data transfer, accessing a first task on said task work queue; and if said first task is a task requiring execution of states listed on said state queue, comparing a current machine time value and a time stamp and if a difference therebetween exceeds or equals a threshold value, inhibiting further data transfers and causing said memory processor to execute all states listed on said state queue.
  • 4. The method as recited in claim 3, wherein said memory processor causes a set time stamp state to be listed on said state queue and said step for causing said memory processor to execute a first state, upon encountering said set time stamp state, resets a time value associated with said time stamp in response thereto.
  • 5. A memory media including a procedure for enabling a memory processor to overlap performance of data processing actions during data transfers between a memory system and a host processor, said memory system including said memory processor and a state queue which holds a plurality of states, each state comprising a self contained procedure for determining a readiness to execute of an associated task, said memory media comprising:means for controlling said memory processor to determine an amount of available time during a data transfer; means for controlling said memory processor to cause said memory processor to execute a first state from said state queue during said data transfer if said available time exceeds or is equal to an estimated execution time of said first state; means for controlling said memory processor to list a task associated with said first state on a task work queue for execution subsequent to said data transfer, if a said task associated with said first state is found to be ready to execute. means for controlling said memory processor, after execution of said first state, to determine remaining time from said available time; and means for controlling said memory processor to cause said memory processor to execute a second state from said state queue during said data transfer if said remaining time exceeds or is equal to an estimated execution time of said second state wherein said remaining time is determined by subtracting actual execution time for said first task from said available time.
  • 6. The memory media as recited in claim 5, wherein said means for controlling said memory processor to cause said memory processor to execute a first state inhibits said memory processor from executing said first state during said data transfer if said available time is less than said estimated execution time of said first state.
  • 7. The memory media as recited in claim 5, further comprising:means for controlling said memory processor to access a first task on said task work queue subsequent to said data transfer; and means responsive to said first task being a task which requires execution of states listed on said state queue, for controlling said memory processor to compare a current machine time value and a time stamp and if a difference therebetween exceeds or equals a threshold value, for controlling said memory processor to inhibit further data transfers and to cause execution of all states listed on said state queue.
  • 8. The memory media as recited in claim 7, wherein said memory processor causes a set time stamp state to be listed on said state queue and said means for controlling said memory processor to cause said memory processor to execute a first state, upon encountering said set time stamp state, resets a time value associated with said time stamp in response thereto.
US Referenced Citations (12)
Number Name Date Kind
3972023 Bodner et al. Jul 1976
4400772 Broyles et al. Aug 1983
4831520 Rubinfeld et al. May 1989
5133069 Asato et al. Jul 1992
5249297 Brockmann et al. Sep 1993
5339395 Pickett et al. Aug 1994
5341482 Cutler et al. Aug 1994
5379381 Lamb Jan 1995
5386518 Reagle et al. Jan 1995
5455701 Eng et al. Oct 1995
5475855 Uesugi Dec 1995
5790838 Irish et al. Aug 1998