Abstract:
An error handling method is provided for processing adapter errors. Rather than executing a disruptive controller hardware reset, an error handling routine provides instructions for a reset operation to be loaded and executed from cache while the SDRAM is in self-refresh mode and therefore unusable.

Description:
TECHNICAL FIELD  
       [0001]     The present invention relates generally to storage controllers and, in particular, to managing system resets caused by host adapter errors.  
       BACKGROUND ART  
       [0002]     A large-scale computing system generally includes a storage controller, such as the IBM® Enterprise Storage Server®, which processes input/output (I/O) commands from one or more host devices, such as an IBM S/390®, to write data to or read data from one or more storage devices, such as hard disk arrays, storage libraries or the like. Such controllers include error handling routines to process errors in the various I/O adapters through which external devices, such as hosts, servers and storage devices are attached to the storage controller. Although many errors may be “cleared” by resetting error registers in various components within the controller, there are many other types of errors which require a hardware reset in order to recover from the error.  
         [0003]     As will be appreciated, a hardware reset is time consuming and very disruptive to host operations. In a typical prior art recovery process, directed by an error handler, microprocessor code must be reloaded and built-in self-tests and power-on self-tests must be run before registers may be initialized. Moreover, global structures which are shared and exchanged with other processors must be updated.  
         [0004]     Consequently, a need exists for a less disruptive error recovery process in a device such as a storage controller.  
       SUMMARY OF THE INVENTION  
       [0005]     The present invention provides methods, systems, computer program products and methods for deploying computing infrastructure for processing adapter errors. Rather than executing a disruptive controller hardware reset, an error handling routine provides instructions for a reset operation to be loaded and executed from cache while the SDRAM is in self-refresh mode and therefore unusable.  
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0006]      FIG. 1  is a block diagram of a storage controller in which the present invention may be implemented; and  
         [0007]      FIG. 2  is a flow chart of a process of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0008]      FIG. 1  is a block diagram of a storage controller  100  in which the present invention may be implemented. Although the present invention is described in terms of a storage controller, it is equally applicable to other devices which include error handing routines. The controller  100  includes, among other components, a memory controller  120  to which are attached, directly or through a bus  112 , servers, hosts and storage devices through I/O adapters  102 ,  104  and  106 , respectively. A microprocessor  130  is also coupled to the memory controller  120 . A memory device, such as an SDRAM  108  is shared by the memory controller  120  and processor  130 . Another memory device, such as a RAM  110 , is coupled to the memory controller  120 . As used herein, the term “coupled” may refer to an indirect relationship in which two components may be separated by one or more intermediary components, whereby a signal may pass through and be processed or altered by the intermediary component(s), as well as to a direct electrical connection between two components, whereby a signal passes directly from one to the other.  
         [0009]     The memory controller  120  includes, among other components, an error register  122  and a cache controller  124 . The processor  130  includes, among other components, an error register  132  and an L 1  cache  134 . An L 2  cache  136  may be on-board, as illustrated, or external to the processor  130 .  
         [0010]     Referring also to the flow chart of  FIG. 2 , an implementation of the present invention will be described. When an error is received (step  200 ), such as from the host adapter  104 , the processor  130  directs the execution of error handling instructions to prepare the memory controller  120  for a reset. All processes which are using the memory controller  120  are quiesced (step  202 ) to prevent the SDRAM  108  from being accessed during the process. Next, the L 2  cache  136  is flushed (step  204 ), such as by reading dummy data into the cache  136 . The L 1  cache may be similarly flushed. Reset function code is then loaded into the L 2  cache  136  by reading in the reset instructions while the L 1  and L 2  caches  134  and  136  remain enabled (step  206 ). The reset function code is then executed by the processor  130  from the L 2  cache  136  rather than from the SDRAM  108  while the external processes remain quiesced.  
         [0011]     Simultaneously, the SDRAM  108  performs its internal refresh operation. Upon completion of the refresh, reset function code directs that the configuration and interface registers  126  and  128  in the memory controller  120  be refreshed or initialized (step  210 ). Finally, when the configuration and interface registers  126  and  128  and SDRAM  108  are initialized, processes are released and allowed to access the SDRAM in accordance with normal operations (step  212 ).  
         [0012]     It is also no longer necessary to run the power-on self-tests or built-in self-tests. Consequently, disruptions to host operations are significantly reduced and normal I/O operations may resume more quickly.  
         [0013]     It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciated that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such as a floppy disk, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communication links.  
         [0014]     The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Moreover, although described above with respect to an apparatus, the need in the art may also be met by a method of managing memory controller reset, a computer program product containing instructions for managing memory controller reset, or a method for deploying computing infrastructure comprising integrating computer readable code into a computing system for managing memory controller reset.