Patent ID: 7734957
Filing Date: 2010-06-08
Classification: G06F

Abstract:
1. A disk controller for controlling read/write of data from/to a disk drive, comprising: a plurality of channel control units coupled to a host computer via channels; a plurality of cache memory units for temporarily storing data requested by the host computer to be read/written; a plurality of disk control units coupled to the disk drive; and a plurality of internal switch units for coupling the plurality of channel control units, the plurality of cache memory units, and the plurality of disk control units to one another, wherein one of the plurality of channel control units or one of the plurality of disk control units sends to one of the plurality of cache memory units a request packet which requests execution of processing, wherein the one of the plurality of cache memory units receives the request packet from the one of the plurality of channel control units or the one of the plurality of disk control units, wherein the one of the plurality of cache memory units executes the processing that is requested by the received request packet, wherein the one of the plurality of cache memory units sends, in response to the received request packet, a response packet to the one of the plurality of channel control units and the disk control unit, which has sent the request packet, wherein one of the internal switch units monitors the request packet sent from the one of the plurality of channel control units or the one of the plurality of disk control units and the response packet sent from the one of the cache memory units, wherein the one of the plurality of internal switch units judges whether or not the response packet to the request packet has passed through the one of the plurality of the internal switch units within a first given time period since the passage of the request packet, wherein the one of the plurality of the internal switch units sends a failure notification in a case where the response packet has not passed through one of plurality of the internal switch units within the first given time period, wherein the one of the plurality of channel control units or the one of the plurality of disk control units monitors the response packet to the sent request packet, wherein the one of the plurality of channel control units or the one of the plurality of disk control units judges whether the response packet to the request packet has been received within a second given time period since the sending of the request packet, wherein the one of the plurality of channel control units or the one of the plurality of disk control units judges that a failure has occurred in the one of the plurality of internal switch units in a case where the failure notification has not been received from the one of the plurality of internal switch units, and in a case where the response packet has not been received within the second given time period, wherein, one of each of the plurality of channel control units, each of the plurality of disk control units, each of the plurality of internal switch units, and each of the plurality of cache memory units are coupled to one another via internal paths, wherein the one of the plurality of internal switch units or the one of the plurality of channel control units or the one of the plurality of disk control units calculates the first given time period based on the one of the plurality of internal switch units, a type of the request packet, and a destination among the plurality of cache memory units, wherein the one of the plurality of internal switch units sends, in the case where the response packet has not passed through the one of the plurality of internal switch units within the first given time period, a specific of the failure and the failure notification to the one of the plurality of channel control units or the one of the plurality of disk control units, which has sent the request packet, wherein the one of the plurality of channel control units or the one of the plurality of disk control units comprises a packet checker for managing an association between the request packet and the response packet to thereby detect a failure occurring within a range of units coupled via the internal paths to the one of the plurality of channel control units or the one of the plurality of disk control units, wherein the one of the plurality of channel control units or the one of the plurality of disk control units calculates the second given time period based on the type of the request packet and the destination among the plurality of cache memory units, wherein the packet checker monitors the response packet to the sent request packet, wherein the packet checker judges whether or not the response packet to the request packet has been received within the second given time period since the sending of the request packet, wherein the packet checker sends, in the case where the response packet has not been received within the second given time period, the specific of the failure and the failure notification to the one of the plurality of channel control units or the one of the plurality of disk control units, wherein the one of the plurality of channel control units or the one of the plurality of disk control units identifies, in a case where the specific of the failure indicates a timeout error, and in a case where the failure notification has been sent by the packet checker, the failure occurring in the one of the plurality of internal switch units, and disables the internal path through the one of the internal switch, and sends the request packet to the one of the plurality of cache memory through another of the plurality of internal switch units, wherein the one of the plurality of channel control units or the one of the plurality of disk control units identifies, in the case where the specific of the failure indicates the timeout error, and in a case where the failure notification has been sent by the one of the plurality of internal switch units, the failure occurring in the one of the plurality of cache memory units, and disables the one of the plurality of cache memory units, to which the request packet has been sent, and sends the request packet to the other cache memory via the internal path, wherein the one of the plurality of channel control units or the one of the plurality of disk control units identifies, in a case where the specific of the failure indicates a link down error, and in the case where the failure notification has been sent by the packet checker, the failure occurring in the internal path between the one of the plurality of channel control units or the one of the plurality of disk control units and the one of the plurality of internal switch, and disables the internal path identified that the failure occurs, and sends the request packet to the one of the plurality of cache memory units from the one of the plurality of channel control units or the one of the plurality of disk control units via the other internal paths, and wherein the one of the plurality of channel control units or the one of the plurality of disk control units identifies, in the case where the specific of the failure indicates the link down error, and in the case where the failure notification has been sent by the one of the plurality of internal switch units, the failure occurring in the internal paths between the one of the plurality of internal switch units and the one of the plurality of cache memory units, and disables the internal path between the one of the plurality of internal switch units and the one of the plurality of cache memory units, sends the request packets to the one of the plurality of cache memory units from the one of the plurality of internal switch units via the other internal paths.