WO2012137323A1 - 情報処理装置及び疑似障害発生方法 - Google Patents

情報処理装置及び疑似障害発生方法 Download PDF

Info

Publication number
WO2012137323A1
WO2012137323A1 PCT/JP2011/058713 JP2011058713W WO2012137323A1 WO 2012137323 A1 WO2012137323 A1 WO 2012137323A1 JP 2011058713 W JP2011058713 W JP 2011058713W WO 2012137323 A1 WO2012137323 A1 WO 2012137323A1
Authority
WO
WIPO (PCT)
Prior art keywords
failure
error
pseudo
information
unit
Prior art date
Application number
PCT/JP2011/058713
Other languages
English (en)
French (fr)
Inventor
規子 笛吹
鈴木 克之
Original Assignee
富士通株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/058713 priority Critical patent/WO2012137323A1/ja
Priority to JP2013508679A priority patent/JPWO2012137323A1/ja
Publication of WO2012137323A1 publication Critical patent/WO2012137323A1/ja
Priority to US14/032,232 priority patent/US20140025983A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Definitions

  • This case relates to an information processing apparatus and a pseudo failure generation method.
  • a trouble that has occurred is verified by a reproduction test in which a failure assumed as a cause is reproduced in hardware.
  • This reproduction test is performed, for example, by generating a pseudo failure (pseudo failure) in hardware such as an IO device connected to a host such as a processor.
  • the reproduction test is used to verify the trouble using hardware that does not actually cause trouble, such as when trouble occurs in the client environment, or when it is difficult to use the actual environment where trouble occurred. It may be done when you want to do it.
  • a pseudo failure occurs in the IO device connected to the host as in the case of the reproduction test. Verification may be performed.
  • an IO device such as an HDD (Hard Disk Drive) in order to perform a reproduction test or a test of recovery operation as described above, for example, the following (i) or (ii) The technique as shown is mentioned.
  • (I) There is a method of generating a pseudo failure when a special condition is recognized by the firmware of the IO device.
  • a special condition for example, when the firmware of the IO device is changed to a setting for pseudo failure, or when the IO device supports SCSI (SmallmComputer System Interface), a mode select command is used. For example, the mode has been shifted to the failure operation mode.
  • the actual operation data is processed by processing the actual operation data used for actual operation in order to add a special pattern for generating a pseudo failure in the data portion.
  • a function for interpreting a pseudo failure corresponding to the pattern added to the data part is prepared, but there is a problem that it takes time to execute the test because overhead is generated by the process of interpretation.
  • one of the purposes of this case is to reduce the influence on actual operation when a pseudo failure occurs in a test using an information processing apparatus in actual operation.
  • Another object of the present invention is to improve the accuracy of tests using an information processing apparatus in actual operation.
  • another object of the present case is to easily realize a test using an information processing apparatus in actual operation.
  • the present invention is not limited to the above-described object, and other effects of the present invention can be achieved by the functions and effects derived from the respective configurations shown in the embodiments for carrying out the invention which will be described later. It can be positioned as one of
  • the information processing apparatus of the present case is an information processing apparatus including a processing unit and a control unit that performs control to acquire data from a target device in response to an acquisition request from the processing unit.
  • a processing unit When the pseudo failure mode for generating a failure is enabled, an error corresponding to the failure type of the generated pseudo failure is set for the data acquired from the target device in response to the acquisition request
  • An error setting unit and an error processing unit that notifies the processing unit of a failure response for a failure type corresponding to the error when an error is detected from the data when the pseudo failure mode is enabled It is to be prepared.
  • the pseudo failure generation method of the present case is a pseudo failure generation method in an information processing apparatus including a processing unit and a control unit that performs control to acquire data from a target device in response to an acquisition request from the processing unit.
  • the control unit when a pseudo failure mode for causing a pseudo failure is enabled, an error corresponding to the failure type of the pseudo failure to be generated is acquired from the target device in response to the acquisition request. If an error is detected from the data when the pseudo failure mode is enabled, the failure response for the failure type corresponding to the error is notified to the processing unit. Is.
  • (A) is a figure which shows an example of the data processed in an error detection part
  • (b) is a figure which shows the result of the ECC data check with respect to error setting data by an error detection part. It is a figure explaining the detailed setting operation example of the pseudo fault by the control part of this embodiment. It is a figure explaining the detailed example of a generation
  • FIG. 1 is a diagram illustrating a configuration example of an information processing apparatus 1 according to an embodiment. As illustrated in FIG. 1, the information processing apparatus 1 includes a processing unit 2, a control unit 3, a storage unit 4, and a target device 5.
  • the processing unit 2 is a processing device that performs various controls and operations, and implements various functions by executing programs stored in a storage device as the target device 5 or a ROM (Read Only Memory) (not shown). To do. Examples of the processing unit 2 include at least one processor such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit).
  • a CPU Central Processing Unit
  • MPU Micro Processing Unit
  • the storage unit (memory) 4 is a storage area for temporarily storing various data and programs. When the processing unit 2 executes the program, the data and program are temporarily stored and expanded.
  • volatile memories such as RAM (Random Access Memory)
  • RAM Random Access Memory
  • the target device 5 is, for example, a magnetic disk device such as an HDD, a semiconductor disk device such as an SSD (Solid State Drive), an optical drive device or a card reader that reads data recorded on an optical disk or a flash memory, or a tape drive. It is various IO devices, and is hardware that stores various data, programs, and the like.
  • the target device 5 is connected to the control unit 3 and outputs data and programs stored therein under the control of the control unit 3.
  • the target device 5 is also referred to as an IO device 5.
  • the control unit 3 is connected to the processing unit 2 and the target device 5 and controls the target device 5 in response to a request from the processing unit 2 as a host. For example, in response to an acquisition request from the processing unit 2 Then, control for acquiring data from the IO device 5 is performed.
  • An example of the control unit 3 is an IO controller.
  • the control unit 3 when receiving a data acquisition request for the IO device 5 from the processing unit 2, acquires (reads) data corresponding to the acquisition request from the IO device 5 and processes the acquired data. Output to part 2. At this time, the control unit 3 performs an error check on data acquired from the IO device 5 in response to the acquisition request (hereinafter also referred to as original data), and if an error is detected and the error can be corrected, This error correction process is performed.
  • control unit 3 in the present embodiment generates a pseudo failure of the hardware in response to an acquisition request from the processing unit 2 to the IO device 5, and the generated pseudo failure is used as a response to the acquisition request.
  • a function of notifying the processing unit 2 is provided.
  • the control unit 3 in this embodiment includes an error setting unit 34 and an error processing unit 35.
  • the error setting unit 34 In response to an acquisition request from the processing unit 2, the error setting unit 34 indicates an error corresponding to the failure type of the pseudo failure to be generated in response to an acquisition request from the processing unit 2.
  • the pseudo failure mode is one of the operation modes of the control unit 3 that causes a pseudo failure while using the firmware used for actual operation, and is a service (not shown) that manages the information processing apparatus 1 and the like.
  • the pseudo failure mode is enabled / disabled by an external host such as a processor.
  • the failure type is information indicating at least one failure that occurs as a pseudo failure in the control unit 3, and an error according to the failure type is an acquisition request so that an error is detected by an error check described later on the data. Is set with respect to data acquired in accordance with. A detailed description of the failure type and the error corresponding to the failure type will be described later.
  • the error processing unit 35 When the error processing unit 35 detects an error from the data when the pseudo failure mode is enabled, the error processing unit 35 notifies the processing unit 2 of a failure response for the failure type corresponding to the error.
  • This failure response is a failure response to a pseudo error set by the error setting unit 34, and is a response notified to the processing unit 2 as a pseudo failure of the IO device 5.
  • the error processing unit 35 as in the normal operation (actual operation) of the information processing apparatus 1 as described above, is data in which an error is set by the error setting unit 34 with respect to the original data (hereinafter referred to as an error). Error check for (also called setting data). When an error set by the error setting unit 34 is detected by an error check on the error setting data, the error processing unit 35 receives information about the error from the control unit 3.
  • the error processing unit 35 creates a failure response for the failure type corresponding to the input error, and notifies the created failure information to the processing unit 2. That is, when the pseudo failure mode is enabled, the error processing unit 35 performs error checking on error setting data in which an error (for example, 1-bit error) that can be corrected intentionally by the error setting unit 34 is set by error checking. Is detected, a failure response for the failure type corresponding to the detected error is notified to the processing unit 2 without performing error correction.
  • an error for example, 1-bit error
  • FIG. 2 is a flowchart illustrating an example of a procedure for setting a pseudo failure by the control unit 3 according to the present embodiment.
  • FIG. 3 is a flowchart illustrating an example of a procedure for generating a pseudo failure by the control unit 3.
  • the controller 3 selects an error corresponding to the failure type, that is, an error corresponding to the pseudo failure to be generated (step S1).
  • the selected error is set by the error setting unit 34 for the data acquired from the target device 5 in response to the acquisition request (step S2). That is, the error is embedded in the original data by the error setting unit 34.
  • the control unit 3 there is an error with respect to the data (original data) acquired from the target device 5 in response to the acquisition request from the processing unit 3 or error setting data in which an error is set.
  • a check is performed (step S3), and it is determined whether or not an error has been detected (step S4).
  • the error processing unit 35 When an error is detected (Yes route in step S4), the error processing unit 35 creates a failure response for the failure type corresponding to the error set in the data, and notifies the processing unit 2 of the response. (Step S5). Then, the pseudo fault setting and generation process by the control unit 3 ends. On the other hand, if no error is detected (No route in step S4), the control unit 3 transfers the original data to the processing unit 2 (step S6), and the process ends. That is, when no error is detected by the error check by the control unit 3, the data acquired from the target device 5 in response to the acquisition request from the processing unit 2 by the control unit 3 in accordance with normal operation. And transferred to the processing unit 2.
  • step 4 Even when an error is detected in step 4, if the control unit 3 is in a pseudo-failure generating operation, that is, if the pseudo-failure mode is not valid, the error detected by the error processing unit 35 is corrected, The error-corrected data may be transferred to the processing unit 2 in step S6.
  • the control unit 3 when the pseudo failure mode is enabled, an error set by the error setting unit 34 is detected by an error check on data. Then, the error processing unit 35 notifies the processing unit 2 of a failure response for the failure type corresponding to the error. That is, the control unit 3 includes an error setting unit 34 that sets an error corresponding to the type of failure to be generated with respect to the original data, so that the control unit 3 sets the original data using the error check function provided in the control unit 3. Error can be detected. In addition, the control unit 3 includes an error processing unit 35 that notifies the processing unit 2 of a failure response for the failure type corresponding to the detected error when the pseudo failure mode is enabled. A fault response indicating that a fault has occurred in the device 5 can be generated in a pseudo manner.
  • the procedure for generating the pseudo failure can be reduced only by providing the error setting unit 34 and the error processing unit 35. Therefore, a test using the information processing apparatus 1 in actual operation can be easily realized. That is, a test involving the occurrence of a pseudo failure can be easily realized by using the information processing apparatus 1 used for actual operation.
  • control unit 3 acquires data used for actual operation from the IO device 5 in response to the acquisition request. Therefore, an error is detected when no error is detected by the error check on the data by the control unit 3, or when the operation of generating a pseudo failure is not performed by the control unit 3, that is, when the pseudo failure mode is invalid. In such a case, the control unit 3 can perform processing in accordance with actual operation. That is, when no error is detected by the error check, the control unit 3 can output the acquired original data to the processing unit 2 in accordance with actual operation.
  • control unit 3 When an error other than the error set by the error setting unit 34 is detected, the control unit 3 notifies the processing unit 2 that an error has occurred in accordance with normal operation, or the control unit 3 If 3 has an error correction function, data in which the error is corrected can be output to the processing unit 2. Furthermore, the control unit 3 can realize the notification of the pseudo failure to the processing unit 2 by simply switching the pseudo failure mode between valid / invalid while using the firmware used for actual operation.
  • FIG. 4 is a diagram illustrating a detailed configuration example of the control unit 3 according to the present embodiment
  • FIG. 5 is an example of failure type information used in the control unit 3 of the present embodiment
  • FIG. It is a figure explaining an example of information, respectively.
  • the information processing apparatus 1 includes an external host 6.
  • the control unit 3 can include a pseudo failure setting unit 31, a holding unit 32, and a data reading unit 33.
  • the external host (setting unit) 6 makes the control unit 3 set validity / invalidity of the above-described pseudo failure mode, and sends a pseudo failure mode request and a pseudo failure mode to set the pseudo failure mode to be effective. Issue a pseudo failure mode end request to make it invalid. Further, the external host 6 outputs failure setting information related to conditions for generating error information described later to the control unit 3.
  • Examples of the external host 6 include a service processor that manages the information processing apparatus 1 and the like.
  • the holding unit 32 holds failure setting information related to conditions for generating error information in the pseudo failure setting processing unit 31, and includes, for example, a volatile memory such as a RAM.
  • the holding unit 32 stores and holds the failure setting information input from the external host 6 via the simulated failure setting unit 31 in a table (failure setting table T2) illustrated in FIG.
  • the failure setting information includes at least one of the number of failure occurrences and the failure occurrence address information, and the failure occurrence frequency and / or failure occurrence address information is associated with each failure type to be generated. Detailed description of the failure setting information and error information will be described later.
  • the pseudo failure setting unit 31 When a pseudo failure mode request is input from the external host 6, the pseudo failure setting unit 31 performs a setting process for generating a pseudo failure. In addition, when an acquisition request is input from the processing unit 2, the pseudo failure setting unit 31 generates error information according to the type of failure to be generated based on the information set by the setting process, and the error setting unit 34 Output.
  • the pseudo failure setting unit 31 includes a pseudo failure setting processing unit 31a, a pseudo failure mode setting unit 31b, and an error information generation unit 31c.
  • a pseudo failure mode request including failure setting information is input from the external host 6, the pseudo failure setting processing unit 31 a sets the input failure setting information in the holding unit 32, and the pseudo failure mode setting unit 31 b Then, processing for enabling the pseudo failure mode is performed.
  • the pseudo failure mode setting unit 31b manages the validity / invalidity of the pseudo failure mode, which is the operation mode of the control unit 3, and examples of the pseudo failure mode setting unit 31b include a register.
  • the pseudo failure mode is one of the operation modes of the control unit 3 in which a pseudo failure occurs while using the firmware used for actual operation.
  • the pseudo failure mode is notified to the processing unit 2 by performing a predetermined error setting / detection process for data while the processing related to the acquisition request from the processing unit 2 in actual operation is continued by the control unit 3. It generates a fault response for a pseudo fault.
  • the setting for enabling / disabling the pseudo operation mode may be performed by switching a DIP (Dual In-line Package) switch or the like on the board on which the processing unit 2 is mounted.
  • the pseudo failure setting processing unit 31a sets, for example, a flag “1” indicating ON to the pseudo failure mode setting unit 31b. Thereby, the pseudo failure mode setting unit 31b activates the pseudo failure mode.
  • the pseudo failure setting processing unit 31a for example, when the number of error information generations according to the type of failure to be generated in a pseudo manner reaches the corresponding number of failure occurrences set in the failure setting information, and the external host When the pseudo failure mode end request is input from 6, the pseudo failure mode is invalidated in at least one of the cases. That is, the pseudo failure setting processing unit 31a sets, for example, a flag “0” indicating “off” to the pseudo failure mode setting unit 31b as the end of the pseudo failure mode. As a result, the pseudo failure mode setting unit 31b invalidates the pseudo failure mode.
  • the pseudo-failure setting processing unit 31a receives from the data reading unit 33 the data acquisition target address related to the acquisition request issued by the processing unit 2, that is, the address of the IO device 5, the pseudo-failure mode setting is performed. Referring to the part 31b, it is confirmed whether or not the pseudo failure mode is on. When the pseudo failure mode is off, the pseudo failure setting processing unit 31a ends the process. Then, the control unit 3 is configured as a normal operation mode that is an operation mode for performing the actual operation of the control unit 3 such as a control for acquiring data from the IO device 5 in response to an acquisition request from the processing unit 2 along the actual operation. Perform the following process.
  • the pseudo failure setting processing unit 31a shifts to the pseudo failure mode, and the failure held by the holding unit 32 based on the address of the IO device 5 input from the data reading unit 33. Select the type of failure to be generated from the setting information.
  • the failure type selection method by the pseudo failure setting processing unit 31a will be described later. Further, the pseudo failure setting processing unit 31a sets error information corresponding to the selected failure type in the error information generating unit 31c based on, for example, the failure type information illustrated in FIG.
  • the error information generation unit 31c is set with error information by the pseudo failure setting processing unit 31a and temporarily holds the error information. Further, the error information generation unit 31 c outputs the held error information to the error setting unit 34.
  • An example of the error information generation unit 31c is a register. Next, failure type information will be described.
  • the failure type information includes at least one failure type that is a type of failure to be generated as a pseudo failure, and an error bit position associated with each failure type.
  • the failure type of the pseudo failure to be generated as a failure that cannot be notified of the response to the processing unit 2, as illustrated in FIG. 5, for example, in response to a request from the control unit 3 to the IO device 5, the IO device 5, there is a “response timeout” indicating that a response timeout has occurred.
  • the IO device 5 As another failure type, when the IO device 5 is an optical drive device or a card reader, a “medium error” indicating that an error has occurred in a medium such as an optical disk or a flash memory to be read, the IO device 5 There is a “hardware error” indicating that some kind of hardware failure has occurred. In addition, the failure type includes “interface error” indicating that an error has occurred in the interface with the control unit 3 in the IO device 5.
  • failure type is not limited to those illustrated in FIG. 5, but “data corruption” indicating that data corruption has occurred in the data acquired from the IO device 5, for example, a classification obtained by further subdividing a hardware error or the like. May be defined. Further, as shown in FIG. 5, “normal response” indicating that no failure has occurred in the IO device 5 and the response from the control unit 3 has been returned normally is defined as the failure type. May be.
  • the error bit position is a position of an error bit detected by an error check of data described later, and is associated with each failure type.
  • the error information is an error pattern (error bit format) indicating an error bit position of an error according to the failure type. For example, the bit corresponding to the original data, which is different from the value of the other bits only by the value of the error bit position It is a pattern of numbers.
  • the pseudo failure setting processing unit 31a acquires the error bit position associated with the failure type to be generated as the pseudo failure based on the failure type information as described above. Then, the pseudo failure setting processing unit 31a generates an error pattern indicating the error bit position, that is, error information, by inverting the bit corresponding to the acquired error bit position with respect to the error information generating unit 31c.
  • the pseudo failure setting processing unit 31a sets “1” to the bit of the register corresponding to the acquired error bit position. As described above, the pseudo failure setting processing unit 31a sets the bit corresponding to the error bit position to “1” for the error information generating unit 31c, thereby generating an error pattern.
  • the pseudo failure setting processing unit 31a sets “1” to the bit “1” of the error information generation unit 31c, and other bits, that is, bit “0”, bit “2” to “IO device 5”. All the maximum bits of the original data acquired from “0” are “0” which is an initial value. As a result, an error pattern is generated in which only the value of bit “1” is “1”.
  • the maximum bit of the original data for which an error is set is assumed to be bit n (n is an integer of 1 or more).
  • the error bit position is bit “2”, and an error pattern in which only the value of bit “2” is “1” is generated. Is done.
  • the error bit position is bit “3”, and an error pattern in which only the value of bit “3” is “1” is generated. Is done.
  • the error bit position is bit “4”, and an error pattern in which only the value of bit “4” is “1” is generated.
  • failure type information may be set in advance in the firmware of the control unit 3 by the external host 6 in the form of a table (failure type table T1), for example.
  • the control unit 3 includes a volatile memory such as a RAM or a readable / writable non-volatile memory such as a flash memory, the control unit 3 is stored in the RAM or the flash memory and is changed by the firmware of the external host 6 or the control unit 3 It may be possible.
  • the failure type information may be output to the pseudo failure setting unit 31 by the external host 6 and stored in the holding unit 32 by the pseudo failure setting processing unit 31a.
  • the data reading unit 33 acquires data from the IO device 5 in response to an acquisition request from the processing unit 2, and outputs the acquired data to the error setting unit 34.
  • the data reading processing unit 33a and the buffer 33b Is provided.
  • the data read processing unit 33a receives the acquisition request from the processing unit 2, the data read processing unit 33a sets the address of the acquisition target of the data related to the acquisition request, that is, the address of the IO device 5 to the pseudo fault setting unit 31 (pseudo fault setting processing unit 31a ).
  • the data read processing unit 33a accesses the acquisition target address of the data related to the acquisition request, acquires the data (original data), and outputs the data to the buffer 33b.
  • the data read by the data read processing unit 33a is data read by software such as an application that actually operates when the above-described reproduction test is performed in the information processing apparatus 1, for example.
  • the data read processing unit 33a acquires data from the IO device 5 in predetermined block units.
  • This block is preferably, for example, a register size of the error information generation unit 31c, that is, a size larger than the number of bits of the error pattern.
  • the pseudo failure setting processing unit 31a generates an error pattern so that the size (number of bits) is equal to or smaller than the block size.
  • the buffer 33b temporarily stores the data acquired from the IO device 5 by the data read processing unit 33a, and outputs the stored data to the error setting unit 34.
  • Examples of the buffer 33b include a volatile memory such as a RAM.
  • the error setting unit 34 includes an error setting processing unit 34a and a buffer 34b. Based on the error pattern input from the error information generation unit 31c of the pseudo failure setting unit 31, the error setting processing unit 34a sends an error corresponding to the failure type of the pseudo failure to be generated from the buffer 33b of the data read processing unit 33a. Error setting data is generated by setting the input original data. Further, the error setting processing unit 34a outputs the generated error setting data to the buffer 34b.
  • the error setting processing unit 34a performs, for example, an exclusive OR operation for each bit on the input original data and the error pattern, and corresponds to the bit position where “1” is set in the error pattern. The bit of the original data at the specified position is inverted.
  • An example of the error setting processing unit 34a is an XOR (Exclusive OR) circuit.
  • the buffer 34b temporarily stores the error setting data generated by the error setting processing unit 34a, and outputs the stored error setting data to the error processing unit 35.
  • Examples of the buffer 34b include a volatile memory such as a RAM. If the error pattern is not generated by the pseudo failure setting unit 31, the error setting processing unit 34a outputs the original data to the buffer 34b.
  • the error setting unit 34 receives an acquisition request from the processing unit 2 in accordance with actual operation when an error pattern is not generated, that is, when a pseudo failure is not generated by the control unit 3. Can be acquired from the IO device 5 and output to the error processing unit 35 in the subsequent stage. Note that the error pattern is not generated when the pseudo failure mode is off and the pseudo failure mode is on, but the data acquired from the IO device 5 according to the processing request is in the failure setting information described later. This includes cases where the conditions are not met.
  • the error processing unit 35 includes an error detection unit 35a, a pseudo failure processing unit 35b, and an error correction unit 35c.
  • the error detection unit 35a detects whether an error is included by an error check on the original data or the error setting data input from the buffer 34b of the error setting unit 34, and detects an error bit position when an error is included. To do.
  • the original data or the error setting data is simply referred to as input data.
  • the error check includes, for example, data check using error detection / correction code such as ECC (Error Correcting Code), and the error detection unit 35a uses the ECC, for example, for the error bit position for the input data. Is detected.
  • ECC Error Correcting Code
  • the error detection unit 35a performs an error check using ECC. Specifically, when an error is detected as a result of performing an error check on the input data, the error detection unit 35a sends the error bit position of the detected error to the pseudo failure processing unit 35b. Notify them.
  • the error detection unit 35a outputs the input data to the error correction unit 35c at the subsequent stage, regardless of whether the error is detected by the error check or not.
  • the error bit position detection processing by the error detection unit 35a will be described later.
  • the error correction unit 35c outputs the input data to the processing unit 2, while there is an error in the data.
  • the errors detected by the error detection unit 35a correctable errors are corrected, and the corrected data is output (transferred) to the processing unit 2.
  • the error correction unit 35c suppresses output of the data input from the error detection unit 35a to the processing unit 2.
  • the suppression of data output can be realized by, for example, masking the response header for transmission of input data by the error correction unit 35c.
  • the error detection unit 35a, the error detection unit 35a and the error correction unit 35c, or the error correction unit 35c has a function of suppressing data output to the subsequent stage, and the pseudo failure processing unit 35b has a function for the suppression function.
  • suppression of data output may be realized, and in addition, it can be realized by various known methods.
  • the pseudo failure processing unit 35b does not correct the error by the error correction unit 35c when the pseudo failure mode is enabled and the error detection unit 35a detects an error from the input data.
  • the processing unit 2 is notified of a failure response for the failure type corresponding to the error.
  • the pseudo failure processing unit 35b acquires the error bit position from the error detection unit 35a when the error bit position is detected by the error check by the error detection unit 35a. Then, the pseudo failure processing unit 35b refers to the pseudo failure mode setting unit 31b and confirms whether or not the pseudo failure mode is on.
  • the pseudo failure processing unit 35b ends the process.
  • the pseudo failure processing unit 35b outputs an output stop instruction to the error correction unit 35c, for example. Further, the pseudo failure processing unit 35b acquires a failure type corresponding to the acquired error bit position based on the failure type information, creates a failure response for the acquired failure type, and sends the failure response to the processing unit. 2 is notified.
  • the pseudo failure processing unit 35b When the pseudo failure mode is off, the pseudo failure processing unit 35b does not output an output stop instruction to the error correction unit 35c or the like, and the error correction unit 35c uses error setting data in the same manner as in actual operation. Alternatively, error correction may be performed and the corrected data may be output to the processing unit 2. Further, when the acquired failure type is “response timeout”, the pseudo failure processing unit 35b is configured not to create a failure response for the failure type and not to notify the processing unit 2 of the failure response. be able to.
  • the control unit 3 when the pseudo failure mode is off, the data acquired from the IO device 5 in response to the acquisition request is output to the processing unit 2 that is the request source. Is done.
  • the pseudo failure mode when the pseudo failure mode is ON, output of the data to the processing unit 2 is suppressed in order to create a pseudo situation where a failure has occurred in the IO device 5.
  • the processing unit 2 receives the above-described reproduction test and error recovery operation confirmation of the device driver based on the fault response. Etc. can be performed.
  • the control unit 3 performs the normal operation of acquiring data from the IO device 5 in response to an acquisition request from the processing unit 2 and performs this operation when receiving a pseudo failure mode request from the external host 6.
  • the pseudo fault setting process and the pseudo fault occurrence process in the embodiment can be performed. [1-3-1] Setting Example of Failure Setting Information Next, failure setting information (failure setting table T2) held by the holding unit 32 will be described with reference to FIG.
  • the failure setting information related to the condition for generating error information in the pseudo failure setting unit 31 may include at least one of the number of times of failure occurrence and failure occurrence address information as a parameter. Also, the number of times of failure occurrence and / or failure occurrence address information is associated with each type of failure to be generated.
  • the number of times of failure occurrence (Times) is the number of times that a pseudo failure of the corresponding failure type is generated, and the pseudo failure setting processing unit 31a waits until the number of generations of error information corresponding to the failure type reaches the corresponding failure occurrence number. Then, error information corresponding to the type of failure to be generated is generated. That is, the number of times of failure occurrence is one of the conditions for generating a pseudo failure of the corresponding failure type.
  • the number of failure occurrences corresponds to “response timeout”, “medium error”, “hardware error”, “interface error”, and “normal response”, respectively. “3”, “5”, “0”, and “10” are set. As illustrated in FIG. 6, when “0” is set as the number of occurrences, the pseudo failure setting processing unit 31 a can prevent a pseudo failure from occurring for the corresponding failure type.
  • the pseudo failure setting unit 31 preferably has a function of counting the number of times the corresponding error information is set after the pseudo failure mode is enabled for each failure type.
  • the pseudo failure setting unit 31 sets the number of times of failure occurrence for the corresponding failure type in the failure setting information stored in the holding unit 32 when error information is set after the pseudo failure mode is enabled. You may decrement.
  • the failure setting information when the failure setting information includes the number of failures, the number of times error information is generated corresponds to the corresponding number of failures after the pseudo failure mode is enabled.
  • a failure type that has not been reached can be selected as a failure type to be generated in a pseudo manner.
  • the pseudo failure setting unit 31 selects a failure type that satisfies both the failure occurrence frequency and the failure address information as a failure type to be generated, but the failure address information is included in the failure setting information. Is included, and a plurality of failure types are selection candidates, one failure type with the highest or lowest number of failure occurrences may be selected.
  • the pseudo failure setting unit 31 sets the error information generation count to the corresponding failure occurrence count after the pseudo failure mode is enabled.
  • the failure types may be selected in descending order of priority.
  • the failure occurrence address information is information indicating the address range of the IO device 5, and the pseudo failure setting processing unit 31a corresponds to the failure type in which the address of the acquisition target of the data related to the acquisition request from the processing unit 2 is generated. If it is within the range indicated by the failure address information, error information corresponding to the type of failure to be generated is generated. That is, the failure address information is one of the conditions for generating a pseudo failure of the corresponding failure type, and the start address (SA; Start Address) and end address (EA; End Address) for setting this condition range including.
  • SA Start Address
  • EA End Address
  • the failure address information is “SA: 0x1000” corresponding to “response timeout”, “medium error”, “hardware error”, “interface error”, and “normal response”, respectively.
  • the failure occurrence address information can be prevented from being set.
  • the pseudo failure setting processing unit 31a determines failure occurrence address information including an acquisition target address of data related to the acquisition request from the processing unit 2, and the acquisition target address is Select the failure type corresponding to the included failure address information.
  • the failure type to be generated is “medium error”, “hardware error”, and Any of “normal responses” can be selected.
  • the pseudo failure setting processing unit 31a can select, for example, a failure type having a narrow range of failure occurrence address information, that is, “medium error” in the case of FIG. 6, as the failure type to be generated.
  • the present invention is not limited to this, and when the address of the IO device 5 specified by the acquisition request is included in a plurality of ranges of the failure occurrence address information in the failure setting information, the failure having a wide range of failure occurrence address information A type may be selected, or a corresponding type of failure with a large or small number of failures may be selected.
  • a priority order is set in advance for each fault type in the fault setting information, and the faults are generated in descending order of priority among a plurality of fault types including the address of the IO device 5. It may be selected as a failure type.
  • the pseudo failure setting unit 31 sets the failure occurrence address information to the entire address of the IO device 5 when the failure occurrence count corresponding to the failure type to be generated is 1 or more and failure occurrence address information is not set. It is preferable that it is comprised so that it may recognize.
  • the pseudo failure setting processing unit 31a when receiving the pseudo failure mode request from the external host 6, the pseudo failure setting processing unit 31a sets the parameters of the failure setting information included in the request to the holding unit 32. Then, the pseudo failure setting processing unit 31a receives an acquisition request from the processing unit 2 and, when the pseudo failure mode is valid, based on the failure occurrence frequency or / and failure occurrence address information in the parameters of the failure setting information. Select the type of failure to be generated.
  • the selection of the failure type to be generated by the pseudo failure setting processing unit 31a is not limited to the above-described method.
  • the external host 6 notifies the failure type to be generated prior to the acquisition request from the processing unit 2. May be.
  • the pseudo failure setting processing unit 31a may select the notified failure type as the failure type to be generated regardless of the parameters of the failure setting information, that is, the conditions for generating the error information.
  • FIG. 7 is a diagram illustrating an example of error bit position detection processing by the error detection unit 35a of the present embodiment.
  • FIG. 7A is a diagram illustrating an example of data processed in the error detection unit 35a
  • FIG. 7B is a diagram illustrating a result of ECC data check for error setting data by the error detection unit 35a. .
  • the block size of the buffer 33b and the error information generation unit 31c is 8 bits, and the case where the 8-bit data is input to the error detection unit 35a and data consistency check by ECC is performed will be described.
  • the error detection unit 35a performs ECC data check on the error setting data. The result of this ECC data check is shown in FIG.
  • the error detection unit 35a calculates the ECC data values “p [2-0]” and “q [2-0]” calculated in advance in FIG. 7A and the calculated ECC data check result. As shown in FIG. 7B, q [0], p [1] and p [2] are different from the ECC data shown in FIG. 7A, that is, a data error is detected.
  • the error detection unit 35a performs a data consistency check by ECC, and when an error is detected, an error bit position is calculated.
  • error information is not generated, that is, when no failure response occurs, if an error as shown in FIG. 7B is detected in the data input to the error detection unit 35a, the error correction unit 35c is detected. Inverts the value of the bit of the original data corresponding to the detected error bit position to correct the error, and transfers it to the processing unit 2.
  • control unit 3 of the present embodiment by using an error detection / correction function by ECC used in actual operation, an error, that is, a failure occurrence code is embedded in the original data, thereby preventing a pseudo failure.
  • a framework for generating can be easily realized. That is, it is possible to easily realize a test using the information processing apparatus 1 in actual operation without preparing a new function for analyzing the failure occurrence code set in the original data.
  • control unit 3 of the present embodiment when an error is embedded in the original data and a pseudo failure occurs, data correction is not performed, but when an error actually occurs in the original data. Since the data correction is performed, the overhead associated with the data correction can be minimized. Furthermore, according to the control unit 3 of the present embodiment, since an error that can be corrected by ECC is set for the original data, it is not necessary to prepare special data for generating a pseudo failure, and the processing unit 2 Since the size and content of the data transferred with respect to the data does not change from the original data, it is possible to perform a test in accordance with the actual operation.
  • control unit 3 of the present embodiment the processing unit 2 can perform a test with the same data pattern as the actual operation, and therefore performs a highly accurate test in a situation close to normal operation in an actual environment. be able to.
  • FIG. 8 is a diagram for explaining a detailed setting operation example of the pseudo failure by the control unit 3 according to the present embodiment.
  • FIG. 9 is a diagram for explaining an example of a pseudo failure occurrence operation by the control unit 3 according to the present embodiment
  • FIG. 10 is a flowchart for explaining a detailed example of a pseudo failure occurrence procedure by the control unit 3.
  • the pseudo failure setting operation by the control unit 3 when the pseudo failure mode request is received from the external host 6 by the pseudo failure setting processing unit 31a (arrow A1 shown in FIG. 8), as shown in FIG.
  • the parameters included in the mode request or received together with the pseudo failure mode request are set in the holding unit 32 (arrow A2).
  • the pseudo failure setting processing unit 31a sets the pseudo failure mode flag held by the pseudo failure mode setting unit 31b to ON (arrow A3). Note that, as described above, the pseudo failure setting processing unit 31a, for example, when the number of generations of error information corresponding to a failure type to be generated in a pseudo manner reaches the corresponding number of failure occurrences set in the failure setting information, respectively.
  • the pseudo failure mode flag is set to OFF in at least one of the cases.
  • the pseudo failure setting processing unit 31a refers to the pseudo failure mode setting unit 31b and checks whether the pseudo failure mode flag is on (arrow B5, step S12).
  • the pseudo failure mode flag is on (Yes route in step S12)
  • the failure type information held in the holding unit 32 is referred to by the pseudo failure setting processing unit 31a (arrow B6) and corresponds to the generated pseudo failure.
  • the selected error bit position (ECC error bit format) is selected (step S12).
  • the pseudo failure setting processing unit 31a inverts the bit corresponding to the selected error bit position to the error information generation unit 31c to generate an error pattern (arrow B7).
  • the original data is output from the buffer 33b, and the error pattern is output from the error information generation unit 31c to the error information setting processing unit 34a (arrow B8).
  • error setting data is created by setting an error based on the error pattern for the original data (step S14), and the created error setting data is output to the buffer 34b. (Arrow B9, step S15).
  • the pseudo failure mode flag is off (No route in step S12)
  • the pseudo failure setting processing unit 31a does not perform processing, and the error information setting processing unit 34a stores the original data input from the buffer 33b. 34b (arrow B9).
  • the error detection unit 35a When the original data or the error setting data is output to the error detection unit 35a in the buffer 34b (arrow B10), the error detection unit 35a performs an error check on the input data using, for example, ECC. (Step S16). If no error is detected by the error check (No route in step S16), the error detection unit 35a transfers the input data to the processing unit 2 via the error correction unit 35c (arrow B15). , B16, step S20).
  • the error bit position of the detected error is output to the pseudo failure processing unit 35b (arrow B11).
  • the pseudo failure processing unit 35b refers to the pseudo failure mode setting unit 31b and checks whether or not the pseudo failure mode flag is on (arrow B12, step S17).
  • the pseudo failure processing unit 35b When the pseudo failure mode flag is off (No route in step S17), the pseudo failure processing unit 35b is not processed, and the error correction unit 35c applies, for example, ECC to the data input from the error detection unit 35a.
  • the data correction process is performed according to (step S18). Then, the corrected data is transferred to the processing unit 2 by the error correction unit 35c (arrow B16, step S20).
  • the pseudo failure processing unit 35b notifies the error correction unit 35c and the like of output stop (arrow B13), and the processing unit 2 is instructed. Data output is suppressed. Then, the pseudo fault processing unit 35b creates a pseudo fault of the fault type corresponding to the error bit position, and notifies the processing unit 2 of the fault response (arrow B14, step S19).
  • the pseudo failure processing unit 35b does not create a failure response for the failure type and causes the processing unit 2 to You may comprise so that a response may not be notified.
  • the control unit 3 according to the present embodiment shown in FIG. 4 can achieve the same effect as the control unit 3 shown in FIG.
  • the pseudo failure setting unit 31 of the present embodiment when the acquisition request is received and the data acquired from the IO device 5 by the acquisition request satisfies the condition in the failure setting information held in the holding unit 32. Then, error information corresponding to the failure type to be generated in a pseudo manner is generated, and the generated error information is output to the error setting unit 34. Further, the conditions in the failure setting information are notified to the pseudo failure setting unit 31 by the external host 6.
  • the processing unit 2 can selectively generate a desired failure type from a plurality of failure types in a pseudo manner according to the conditions notified by the external host 6 and the acquisition request issued by the processing unit 2.
  • the pseudo failure setting unit 31 of the present embodiment when the acquisition target address of the data related to the acquisition request is included in the range indicated by the failure occurrence address information, the failure occurrence including the acquisition target address is included.
  • the failure type corresponding to the address information is selected as the failure type to be generated. Therefore, it is possible to set in detail the conditions for selecting the type of failure to be generated, and to improve the test accuracy.
  • the address range of the IO device 5 used for the occurrence of the pseudo failure can be designated, for example, when the pseudo failure is generated by shifting from the address range of the IO device 5 used in actual operation. The impact on operations can be reduced.
  • the pseudo failure mode setting unit 31b for managing the validity / invalidity of the pseudo failure mode is provided, and the pseudo failure mode request / pseudo failure mode end request from the processing unit 2 is provided. Based on the above, the validity / invalidity of the pseudo failure mode can be switched. Therefore, the operation mode of the control unit 3 can be easily switched between the normal operation mode and the pseudo failure mode while using the firmware used for actual operation, and the time required for switching the operation mode can be reduced. Therefore, the influence on actual operation can be reduced.
  • the external host 6 includes, for example, parameters such as a sequence and the number of cycles in the pseudo failure mode request or together with the pseudo failure mode request to the control unit 3. Can be notified.
  • the sequence (Seq; Sequence) is failure occurrence order information indicating the order in which failure responses for a plurality of failure types are generated.
  • the pseudo failure setting processing unit 31a can generate a plurality of types of pseudo failures of each failure type in a predetermined order.
  • error bit numbers are designated from the lower order, for example, in the order in which pseudo faults are generated.
  • the error bit number may be an error bit position corresponding to the failure type, or an ID corresponding to the failure type.
  • the error bit number set in the sequence is preferably a unique number corresponding to the failure type.
  • the failure response of “medium error” whose error bit position is bit “2” is performed “3” times that is the number of failure occurrences.
  • the pseudo failure setting processing unit 31a of the present modification receives an acquisition request, and selects a failure type to be generated with reference to the sequence when the pseudo failure mode flag is on. Then, the pseudo failure setting processing unit 31a determines whether or not the data acquired from the IO device 5 in response to the acquisition request satisfies the condition relating to the selected failure type in the failure setting information, that is, the number of failure occurrences and the failure occurrence address information. Judging.
  • the pseudo failure setting processing unit 31a When the condition is satisfied, the pseudo failure setting processing unit 31a generates error information corresponding to the selected failure type. On the other hand, when the condition is not satisfied, the pseudo-failure setting processing unit 31a suppresses generation of error information even when the data satisfies a condition of another failure type in the failure setting information.
  • the control unit 3 of the present modification example by using the failure occurrence order information, it is possible to generate a pseudo failure of each failure type by combining a plurality of types in a predetermined order.
  • the external host 6 outputs the failure occurrence order information to the control unit 3 so that the processing unit 2 can receive the failure responses in a predetermined order. Therefore, the processing unit 2 can easily and reliably realize a combined test of a plurality of failures.
  • Cycle number is repetitive information that specifies the number of occurrences of a series of operations defined by a sequence. That is, when the holding unit 32 holds the sequence and the number of cycles, the pseudo failure setting processing unit 31a performs a series of operations for generating a plurality of types of pseudo failures of each failure type in a predetermined order. Can be repeated as many times as specified in.
  • the target device 5 may be any device that can use an error detection / correction function such as ECC, such as a storage unit (memory) 4, in addition to an IO device such as an HDD.
  • ECC error detection / correction function
  • storage unit 4 memory 4
  • the function as the control unit 3 may be provided in a memory controller or the like.
  • the processing unit 2 as a host issues an acquisition request
  • the external host 6 that manages the information processing apparatus 1 performs a pseudo failure mode request, a pseudo failure mode end request, and Various information to be held in the holding unit 32 is output to the control unit 3, but is not limited thereto.
  • these requests and information may be output to the control unit 3 from a device other than the processing unit 2 via an interface and a network connected to the control unit 3 as an IO controller. That is, the test in the information processing apparatus 1 may be executed by a host other than the processing unit 2 and an external host.
  • the external host 6 notifies the control unit 3 of the parameters of the failure type information and the failure setting information in the pseudo failure mode request or together with the pseudo failure mode request. explained. Similarly, in the above-described modification, the external host 6 notifies the controller 3 of the failure occurrence order information and the repetition information parameters in the pseudo failure mode request or together with the pseudo failure mode request.
  • the present invention is not limited to this. For example, the external host 6 may notify these parameters in advance prior to the pseudo mode request to the control unit 3.
  • Programs for example are flexible disk, CD (CD-ROM, CD-R, CD-RW, etc.), DVD (DVD-ROM, DVD-RAM, DVD-R, DVD + R, DVD-RW) , DVD + RW, HD DVD, etc.), Blu-ray disc, magnetic disc, optical disc, magneto-optical disc, and the like.
  • the computer reads the program from the recording medium, transfers it to the internal storage device or the external storage device, and uses it. Further, the program may be recorded in a storage device (recording medium) such as a magnetic disk, an optical disk, or a magneto-optical disk, and provided from the storage device to a computer via a communication line.
  • a program stored in an internal storage device (memory of the control unit 3 in this embodiment) is executed by a microprocessor of the computer (processor of the control unit 3 in this embodiment). At this time, the computer may read and execute the program recorded on the recording medium.
  • the computer is a concept including hardware and an operating system, and means hardware that operates under the control of the operating system. Further, when an operating system is unnecessary and hardware is operated by an application program alone, the hardware itself corresponds to a computer.
  • the hardware includes at least a microprocessor such as a CPU and means for reading a computer program recorded on a recording medium.
  • the control unit 3 has a function as a computer. It is.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

 処理部(2)からの取得要求に応じて対象装置(5)からデータを取得する制御を行なう制御部(3)は、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置(5)から取得されたデータに対して設定するエラー設定部(34)と、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部(2)に通知するエラー処理部(35)とを備える。

Description

情報処理装置及び疑似障害発生方法
 本件は、情報処理装置及び疑似障害発生方法に関する。
 サーバやPC(Personal Computer)等の情報処理装置で用いられるIO(Input Output)装置等のハードウェアに障害が発生した場合、この障害の発生をトリガとして、システムのハングアップ等の様々なトラブルが発生することがある。
 情報処理装置において上記のようなトラブルが発生した場合には、発生したトラブルの検証により、障害原因の特定及びその対処が行なわれる。
 発生したトラブルの検証は、原因として想定される障害をハードウェアにおいて再現した、再現テストにより行なわれることがある。この再現テストは、例えば、プロセッサ等のホストに接続されたIO装置等のハードウェアにおいて疑似的に障害(疑似障害)を発生させることによって行なわれる。
 なお、再現テストは、例えばクライアント環境でトラブルが発生した場合等、トラブルが発生した実際の環境を用いることが難しい場合や、実際には障害の発生していないハードウェアを用いてトラブルの検証を行ないたい場合等に行なわれることがある。
 また、IO装置等のハードウェアで発生した障害に対する、デバイスドライバのリカバリ動作の確認等を行なう場合にも、再現テストと同様に、ホストに接続されたIO装置で疑似障害を発生させてトラブルの検証が行なわれる場合がある。
 上述の如き再現テストやリカバリ動作の確認等のテストを行なうために、HDD(Hard Disk Drive)等のIO装置等で疑似障害を発生させる技術としては、例えば以下の(i)又は(ii)に示すような手法が挙げられる。
 (i)IO装置のファームウェアで特殊な条件を認識した場合に、疑似障害を発生させる手法がある。なお、特殊な条件としては、例えばIO装置のファームウェアが疑似障害用の設定に変更されたことや、IO装置がSCSI(Small Computer System Interface)に対応する場合は、モードセレクト(Mode Select)コマンドによって障害動作モードに移行されたこと、等が挙げられる。
 (ii)また、IO装置等から転送されるデータのうちのデータ部(メインデータ)に対して特殊なパターンを付加しておき、このパターンに対応して予め決められた疑似障害を解釈させて、その疑似障害を発生させる手法がある。
特開2000-48478号公報 特開平9-204317号公報
 しかしながら、上記(i)又は(ii)に示す手法により、IO装置等で疑似障害を発生させる場合、それぞれ以下に示すような問題がある。
 上記(i)に示す手法では、疑似障害を発生させるための特殊なIO装置のファームウェアが用いられており、通常の運用(実運用)に用いられるファームウェアでは疑似障害の状態を実現することが困難であるという問題がある。
 また、疑似障害を発生させる際には、実運用に用いられるファームウェアから疑似障害発生用のIO装置のファームウェアに入れ替える処理が行なわれるため、テストが実行されるまでに時間がかかるという問題がある。
 さらに、発生させる疑似障害の種別を設定して、一律に同じ障害を発生させることはできるが、複数の障害を複合したテストを行なうことは難しい。
 上記(ii)に示す手法では、データ部に疑似障害を発生させるための特殊なパターンを付加するために、実運用に用いられる実運用データを加工する処理が行なわれることから、実運用データをそのまま使用して疑似障害を発生させることが困難であるという問題がある。
 また、データ部に付加されたパターンに対応する疑似障害を解釈させる機能を用意することになるが、解釈する処理によってオーバーヘッドが発生するため、テストの実行に時間がかかるという問題がある。
 上述の点に鑑み、本件の目的の1つは、実運用の情報処理装置を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することである。
 また、本件の他の目的の1つは、実運用の情報処理装置を用いたテストの精度の向上を図ることである。
 さらに、本件の他の目的の1つは、実運用の情報処理装置を用いたテストを容易に実現することである。
 なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
 本件の情報処理装置は、処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、前記制御部は、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えるものである。
 また、本件の疑似障害発生方法は、処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、前記制御部において、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するものである。
 開示の技術によれば、実運用の情報処理装置を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することができる。また、実運用の情報処理装置を用いたテストの精度の向上を図ることができる。さらに、実運用の情報処理装置を用いたテストを容易に実現することができる。
一実施形態に係る情報処理装置の構成例を示す図である。 本実施形態の制御部による疑似障害の設定手順例を説明するフローチャートである。 本実施形態の制御部による疑似障害の発生手順例を説明するフローチャートである。 本実施形態に係る制御部の詳細な構成例を示す図である。 本実施形態の制御部において用いられる障害種別情報の一例を説明する図である。 本実施形態の制御部において用いられる障害設定情報の一例を説明する図である。 本実施形態のエラー検出部によるエラービット位置の検出処理の一例を説明する図である。(a)は、エラー検出部において処理されるデータの一例を示す図であり、(b)は、エラー検出部による、エラー設定データに対するECCデータチェックの結果を示す図である。 本実施形態の制御部による疑似障害の詳細な設定動作例を説明する図である。 本実施形態の制御部による疑似障害の詳細な発生動作例を説明する図である。 本実施形態の制御部による疑似障害の詳細な発生手順例を説明するフローチャートである。
 以下、図面を参照して実施の形態を説明する。
 〔1〕一実施形態
 〔1-1〕全体の構成例
 図1は、一実施形態に係る情報処理装置1の構成例を示す図である。
 図1に例示するように、情報処理装置1は、処理部2、制御部3、記憶部4、及び対象装置5を備える。
 処理部2は、種々の制御や演算を行なう処理装置であり、対象装置5としての記憶装置や図示しないROM(Read Only Memory)等に格納されたプログラムを実行することにより、種々の機能を実現する。処理部2としては、例えば、少なくとも1つのCPU(Central Processing Unit)又はMPU(Micro Processing Unit)等のプロセッサが挙げられる。
 記憶部(メモリ)4は、種々のデータやプログラムを一時的に格納する記憶領域であって、処理部2がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、記憶部4としては、例えばRAM(Random Access Memory)等の揮発性メモリが挙げられる。
 対象装置5は、例えばHDD等の磁気ディスク装置やSSD(Solid State Drive)等の半導体ディスク装置、光ディスクやフラッシュメモリ等に記録されたデータを読み取る光学ドライブ装置やカードリーダ等、又はテープドライブ等の各種IO装置であり、種々のデータやプログラム等を格納するハードウェアである。対象装置5は、制御部3に接続され、制御部3による制御を受けて、格納しているデータやプログラム等を出力する。
 以下、対象装置5を、IO装置5ともいう。
 制御部3は、処理部2及び対象装置5に接続され、ホストとしての処理部2からの要求に応じて対象装置5に対する制御を行なうものであり、例えば、処理部2からの取得要求に応じてIO装置5からデータを取得する制御を行なう。制御部3としては、例えばIOコントローラが挙げられる。
 具体的には、制御部3は、例えば処理部2からIO装置5に対するデータの取得要求を受けると、当該取得要求に応じたデータをIO装置5から取得し(読み込み)、取得したデータを処理部2に対して出力する。このとき、制御部3は、取得要求に応じてIO装置5から取得されたデータ(以下、元データともいう)に対するエラーチェックを行ない、エラーが検出され、当該エラーを訂正可能な場合には、このエラーの訂正処理を行なう。
 また、本実施形態における制御部3は、処理部2からIO装置5に対する取得要求等に応じて、当該ハードウェアの疑似障害を発生させ、発生させた疑似障害を、取得要求等への応答として、処理部2に通知する機能を備える。
 このために、本実施形態における制御部3は、エラー設定部34及びエラー処理部35を備える。
 エラー設定部34は、疑似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、処理部2からの取得要求に応じてIO装置5から取得されたデータに対して設定する。
 ここで、疑似障害モードは、実運用に用いられるファームウェアを用いたまま疑似的に障害を発生させる、制御部3の動作モードの一つであり、情報処理装置1の管理等を行なう図示しないサービスプロセッサ等の外部ホストにより、疑似障害モードの有効/無効が設定される。
 また、障害種別は、制御部3において疑似障害として発生させる少なくとも1つの障害を示す情報であり、障害種別に応じたエラーは、データに対する後述するエラーチェックによってエラーが検出されるように、取得要求に応じて取得されたデータに対して設定されるものである。なお、障害種別及び障害種別に応じたエラーの詳細な説明は、後述する。
 エラー処理部35は、疑似障害モードが有効となっている場合に、データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、処理部2に通知する。この障害応答は、エラー設定部34によって設定された疑似エラーに対する障害応答であり、疑似的にIO装置5に障害が発生したものとして処理部2へ通知される応答となる。
 具体的には、エラー処理部35は、上述の如き情報処理装置1の通常の運用(実運用)と同様に、元データに対してエラー設定部34によりエラーが設定されたデータ(以下、エラー設定データともいう)に対するエラーチェックを行なう。
 エラー処理部35は、エラー設定部34によって設定されたエラーが、エラー設定データに対するエラーチェックにより検出された場合、当該エラーに関する情報を制御部3から入力される。
 そして、エラー処理部35は、入力されたエラーに対応した障害種別についての障害応答を作成し、作成した障害情報を処理部2に通知する。
 つまり、エラー処理部35は、疑似障害モードが有効となっている場合に、エラーチェックにより、エラー設定部34が意図的に訂正可能なエラー(例えば1ビットエラー)を設定したエラー設定データについてエラーが検出された場合には、エラー訂正を行なうことなく、検出したエラーに対応した障害種別についての障害応答を処理部2に通知する。
 処理部2は、エラー処理部35から、制御部3に出力した取得要求に対する応答として障害応答を入力されると、当該障害応答に基づいて、上述した再現テストやデバイスドライバのエラーリカバリ動作確認等のテストを行なうことができる。
 〔1-2〕制御部の動作例
 次に、上述の如く構成された本実施形態の一例としての情報処理装置1における制御部3の動作例を、図2及び図3を参照しながら説明する。
 図2は、本実施形態の制御部3による疑似障害の設定手順の例を説明するフローチャートであり、図3は、制御部3による疑似障害の発生手順の例を説明するフローチャートである。
 はじめに、図2に示すように、制御部3により、障害種別に応じたエラー、つまり発生させる疑似障害に対応したエラーが選択される(ステップS1)。
 次いで、エラー設定部34により、選択したエラーが、取得要求に応じて対象装置5から取得されたデータに対して設定される(ステップS2)。つまり、エラー設定部34により、エラーが元データに対して埋め込まれる。
 そして、図3に示すように、制御部3において、処理部3からの取得要求に応じて対象装置5から取得されたデータ(元データ)、又はエラーが設定されたエラー設定データに対してエラーチェックが行なわれ(ステップS3)、エラー検出の有無が判断される(ステップS4)。
 エラーが検出された場合(ステップS4のYesルート)、エラー処理部35により、当該データに設定されたエラーに対応した障害種別について、障害応答が作成され、当該応答が処理部2に通知される(ステップS5)。そして、制御部3による疑似障害の設定及び発生処理が終了する。
 一方、エラーが検出されなかった場合(ステップS4のNoルート)、制御部3により、元データが処理部2に対して転送され(ステップS6)、処理が終了する。すなわち、制御部3によるエラーチェックによりエラーが検出されなかった場合には、通常の運用に沿って、制御部3により、処理部2からの取得要求に応じて対象装置5から取得されたデータが、処理部2に対して転送される。なお、ステップ4でエラーが検出された場合であっても、制御部3が疑似障害の発生動作中、つまり疑似障害モードが有効でなければ、エラー処理部35により検出されたエラーが訂正され、エラー訂正されたデータがステップS6において処理部2に転送されても良い。
 このように、本実施形態の一例としての制御部3によれば、疑似障害モードが有効となっている場合に、エラー設定部34によって設定されたエラーが、データに対するエラーチェックにより検出された場合、エラー処理部35により、当該エラーに対応した障害種別についての障害応答が処理部2に通知される。
 すなわち、制御部3は、元データに対して、発生させる障害種別に応じたエラーを設定するエラー設定部34を備えることで、制御部3が備えるエラーチェック機能を用いて、元データに設定されたエラーを検出することができる。また、制御部3は、疑似障害モードが有効となっている場合に、検出されたエラーに対応した障害種別についての障害応答を、処理部2に通知するエラー処理部35を備えることで、IO装置5に障害が発生したことを示す障害応答を疑似的に発生することができる。
 このように、制御部3が備えるエラーチェック機能を疑似障害の発生に用いることができるため、エラー設定部34及びエラー処理部35を備えるだけで、疑似障害を発生させるための手順を少なくすることができ、実運用の情報処理装置1を用いたテストを容易に実現することができる。つまり、実運用に用いられる情報処理装置1を利用して、疑似障害の発生を伴うテストを容易に実現することができる。
 また、制御部3は、取得要求に応じて、IO装置5から実運用に用いられるデータを取得する。従って、制御部3によるデータに対するエラーチェックによってエラーが検出されない場合や、制御部3により疑似障害発生の動作が行なわれていない状況、つまり疑似障害モードが無効となっている場合にエラーが検出された場合には、制御部3は、実運用に沿った処理を行なうことができる。すなわち、エラーチェックによってエラーが検出されない場合には、制御部3は、実運用に沿って、取得した元データを処理部2に出力することができる。また、エラー設定部34によって設定されたエラー以外のエラーが検出された場合には、制御部3は、通常の運用に沿って、エラーが発生した旨を処理部2に通知するか、制御部3がエラー訂正機能を備えていれば、当該エラーが訂正されたデータを処理部2に出力することができる。さらに、制御部3では、実運用に用いられるファームウェアを用いた状態で、疑似障害モードの有効/無効を切り替えるだけで、処理部2に対する疑似障害の通知を実現することができる。
 従って、実運用の情報処理装置1を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することができるとともに、通常の運用データを用いることができるため、当該テストの精度の向上を図ることができる。
 〔1-3〕制御部の詳細な構成例
 次に、本実施形態の制御部3の詳細な構成例について説明する。
 図4は、本実施形態に係る制御部3の詳細な構成例を示す図であり、図5は、本実施形態の制御部3において用いられる障害種別情報の一例を、図6は、障害設定情報の一例を、それぞれ説明する図である。
 この図4に例示するように、情報処理装置1は、外部ホスト6を備える。
 また、制御部3は、図1に示したエラー設定部34及びエラー処理部35に加えて、疑似障害設定部31、保持部32、及びデータ読込部33を備えることができる。
 外部ホスト(設定部)6は、制御部3に対して、上述した疑似障害モードの有効/無効を設定させるものであり、疑似障害モードを有効に設定させる疑似障害モード要求、及び疑似障害モードを無効に設定させる疑似障害モード終了要求を発行する。
 また、外部ホスト6は、制御部3に対して、後述するエラー情報を生成するための条件に関する障害設定情報を出力する。
 外部ホスト6としては、情報処理装置1の管理等を行なうサービスプロセッサ等が挙げられる。
 保持部32は、疑似障害設定処理部31においてエラー情報を生成するための条件に関する障害設定情報を保持するものであり、例えばRAM等の揮発性メモリが挙げられる。
 保持部32は、外部ホスト6から疑似障害設定部31を経由して入力された障害設定情報を、図6に例示するようなテーブル(障害設定テーブルT2)形式で格納し、保持する。
 この障害設定情報は、障害発生回数及び障害発生アドレス情報のうちの少なくとも1つを含み、これら障害発生回数又は/及び障害発生アドレス情報は、発生させる障害種別それぞれに対応付けられる。
 障害設定情報及びエラー情報の詳細な説明については、後述する。
 疑似障害設定部31は、外部ホスト6から疑似障害モード要求を入力されると、疑似障害を発生させるための設定処理を行なう。また、疑似障害設定部31は、処理部2から取得要求を入力されると、設定処理によって設定された情報に基づいて、発生させる障害種別に応じたエラー情報を生成し、エラー設定部34に出力する。
 この疑似障害設定部31は、疑似障害設定処理部31a、疑似障害モード設定部31b、及びエラー情報生成部31cを備える。
 疑似障害設定処理部31aは、外部ホスト6から障害設定情報を含む疑似障害モード要求を入力されると、入力された障害設定情報を保持部32に設定するとともに、疑似障害モード設定部31bに対して、疑似障害モードを有効化させる処理を行なう。
 疑似障害モード設定部31bは、制御部3の動作モードである疑似障害モードの有効/無効を管理するものであり、疑似障害モード設定部31bとしては、例えばレジスタが挙げられる。
 なお、上述の如く、疑似障害モードは、実運用に用いられるファームウェアを用いたまま疑似的に障害を発生させる、制御部3の動作モードの一つである。つまり、疑似障害モードは、制御部3により、実運用における処理部2からの取得要求に係る処理は継続したまま、データに対する所定のエラー設定・検出処理を行なうことで、処理部2に通知する疑似障害の障害応答を生成するものである。
 なお、疑似動作モードの有効/無効の設定は、処理部2が搭載されているボード上のDIP(Dual In-line Package)スイッチ等の切り替えによって行なわれても良い。
 疑似障害設定処理部31aは、外部ホスト6からの疑似障害モード要求に応じて、この疑似障害モード設定部31bに対して、例えばオンを示すフラグ“1”を設定する。これにより、疑似障害モード設定部31bは、疑似障害モードを有効化する。
 また、疑似障害設定処理部31aは、例えば疑似的に発生させる障害種別に応じたエラー情報の生成回数が、それぞれ、障害設定情報に設定された対応する障害発生回数に達した場合、及び外部ホスト6から疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、疑似障害モードを無効化する。つまり、疑似障害設定処理部31aは、疑似障害モードの終了として、疑似障害モード設定部31bに対して、例えばオフを示すフラグ“0”を設定する。これにより、疑似障害モード設定部31bは、疑似障害モードを無効化する。
 さらに、疑似障害設定処理部31aは、データ読込部33から、処理部2により発行された取得要求に係るデータの取得対象のアドレス、つまりIO装置5のアドレスを入力されると、疑似障害モード設定部31bを参照し、疑似障害モードがオンであるか否かを確認する。
 疑似障害モードがオフである場合、疑似障害設定処理部31aは処理を終了する。そして、制御部3は、実運用に沿って、処理部2からの取得要求に応じてIO装置5からデータを取得する制御等、制御部3の実運用を行なう動作モードである通常動作モードとしての処理を行なう。
 一方、疑似障害モードがオンである場合、疑似障害設定処理部31aは、疑似障害モードに移行し、データ読込部33から入力されたIO装置5のアドレスに基づいて、保持部32が保持する障害設定情報から、発生させる障害種別を選択する。
 なお、疑似障害設定処理部31aによる障害種別の選択手法については、後述する。
 また、疑似障害設定処理部31aは、例えば図5に示す障害種別情報に基づいて、選択した障害種別に応じたエラー情報をエラー情報生成部31cに設定する。
 エラー情報生成部31cは、疑似障害設定処理部31aによりエラー情報を設定され、当該エラー情報を一時的に保持するものである。また、エラー情報生成部31cは、保持するエラー情報をエラー設定部34に対して出力する。エラー情報生成部31cとしては、例えばレジスタが挙げられる。
 次に、障害種別情報について説明する。
 障害種別情報は、疑似障害として発生させる障害の種別である少なくとも1つの障害種別と、この障害種別それぞれに対応付けられたエラービット位置とを含む。
 発生させる疑似障害の障害種別としては、処理部2に応答を通知することができない障害として、図5に例示するように、例えば制御部3からIO装置5への要求等に対して、IO装置5において応答タイムアウトが発生したことを示す“応答タイムアウト”がある。また、他の障害種別としては、IO装置5が光学ドライブ装置やカードリーダ等である場合、読み取り対象の光ディスクやフラッシュメモリ等の媒体にエラーが生じたことを示す“媒体エラー”、IO装置5において何らかのハードウェア障害が発生したことを示す“ハードウェアエラー”がある。他にも、障害種別としては、IO装置5における、制御部3とのインタフェースにおいてエラーが生じたことを示す“インタフェースエラー”等がある。
 なお、障害種別は、図5に例示したものに限定されず、IO装置5から取得したデータについてデータ化けが生じたことを示す“データ化け”や、例えばハードウェアエラー等を更に細分化した種別が定義されても良い。
 また、図5に示すように、IO装置5において障害が発生しておらず、制御部3からの要求に対して正常に応答が返されたことを示す“正常応答”が、障害種別として定義されても良い。
 エラービット位置は、後述するデータのエラーチェックによって検出されるエラービットの位置であり、障害種別のそれぞれに対応付けられる。また、エラー情報は、障害種別に応じたエラーのエラービット位置を示すエラーパターン(エラービット形式)であり、例えば、エラービット位置の値だけ他のビットの値と異なる、元データに対応したビット数のパターンである。
 すなわち、疑似障害設定処理部31aは、上述の如き障害種別情報に基づいて、疑似障害として発生させる障害種別に対応付けられたエラービット位置を取得する。そして、疑似障害設定処理部31aは、エラー情報生成部31cに対して、取得したエラービット位置に応じたビットを反転させることにより、当該エラービット位置を示すエラーパターン、つまりエラー情報を生成する。
 例えばエラー情報生成部31cがレジスタである場合、初期状態として当該レジスタの全てのビットに“0”が設定されるものとする。この状態において、疑似障害設定処理部31aは、取得したエラービット位置に対応したレジスタのビットに“1”を設定する。このように、疑似障害設定処理部31aにより、エラー情報生成部31cに対して、エラービット位置に対応するビットに“1”が設定されることにより、エラーパターンの生成が行なわれる。
 具体例を挙げると、図5に例示するように、疑似障害設定処理部31aは、障害種別として“応答タイムアウト”を選択した場合、障害種別情報に基づいて、障害種別に応じたエラービット位置としてビット“1”を取得する。この場合、疑似障害設定処理部31aによりエラー情報生成部31cのビット“1”に対して“1”が設定され、それ以外のビット、すなわちビット“0”、ビット“2”~“IO装置5から取得される元データの最大ビット”は、全て初期値である“0”となる。これにより、ビット“1”の値だけ“1”であるエラーパターンが生成される。以下、エラーが設定される元データの最大ビットを、ビットn(nは1以上の整数)とする。
 同様に、疑似障害設定処理部31aにより、障害種別として“媒体エラー”が選択された場合、エラービット位置はビット“2”となり、ビット“2”の値だけ“1”であるエラーパターンが生成される。また、疑似障害設定処理部31aにより、障害種別として“ハードウェアエラー”が選択された場合、エラービット位置はビット“3”となり、ビット“3”の値だけ“1”であるエラーパターンが生成される。さらに、疑似障害設定処理部31aにより、障害種別として“インタフェースエラー”が選択された場合、エラービット位置はビット“4”となり、ビット“4”の値だけ“1”であるエラーパターンが生成される。
 また、障害種別として“正常応答”が定義されており、疑似障害設定処理部31aにより、障害種別として“正常応答”が選択された場合、エラービット位置はビット“0”となり、ビット“0”の値だけ“1”であるエラーパターンが生成される。
 なお、上述した障害種別情報は、外部ホスト6によって、例えばテーブル(障害種別テーブルT1)形式で、制御部3のファームウェア等に予め設定されても良い。又は、制御部3がRAM等の揮発性メモリやフラッシュメモリ等の読み書き可能な不揮発性メモリを備える場合には、これらRAMやフラッシュメモリ等に格納され、外部ホスト6や制御部3のファームウェアにより変更可能であっても良い。また、この障害種別情報は、外部ホスト6によって疑似障害設定部31に出力され、疑似障害設定処理部31aにより保持部32に格納されても良い。
 データ読込部33は、処理部2からの取得要求に応じてIO装置5からデータを取得し、取得したデータをエラー設定部34に対して出力するものであり、データ読込処理部33a及びバッファ33bを備える。
 データ読込処理部33aは、処理部2からの取得要求を受けると、当該取得要求に係るデータの取得対象のアドレス、つまりIO装置5のアドレスを、疑似障害設定部31(疑似障害設定処理部31a)に対して出力する。
 また、データ読込処理部33aは、当該取得要求に係るデータの取得対象のアドレスに対してアクセスを行ない、データ(元データ)を取得するとともに、当該データをバッファ33bに対して出力する。
 ここで、データ読込処理部33aが読み込むデータは、例えば情報処理装置1において、上述の如き再現テストが行なわれる場合には、実際に動作するアプリケーション等のソフトウェアによって読み込まれるデータである。
 なお、データ読込処理部33aは、IO装置5から所定のブロック単位でデータを取得する。このブロックは、例えばエラー情報生成部31cのレジスタサイズ、すなわちエラーパターンのビット数以上のサイズであることが好ましい。換言すれば、疑似障害設定処理部31aは、このブロックサイズ以下のサイズ(ビット数)となるようにエラーパターンを生成する。
 バッファ33bは、データ読込処理部33aによりIO装置5から取得されたデータを一時的に格納するものであり、格納したデータをエラー設定部34に対して出力する。バッファ33bとしては、例えばRAM等の揮発性メモリが挙げられる。
 エラー設定部34は、エラー設定処理部34a及びバッファ34bを備える。
 エラー設定処理部34aは、疑似障害設定部31のエラー情報生成部31cから入力されたエラーパターンに基づいて、発生させる疑似障害の障害種別に応じたエラーを、データ読込処理部33aのバッファ33bから入力された元データに対して設定してエラー設定データを生成するものである。また、エラー設定処理部34aは、生成したエラー設定データをバッファ34bに出力する。
 具体的には、エラー設定処理部34aは、入力された元データ及びエラーパターンに対して、例えばビットごとに排他的論理和演算を行ない、エラーパターンにおいて“1”が設定されたビット位置に対応した位置の元データのビットを反転させる。
 エラー設定処理部34aとしては、例えばXOR(Exclusive OR;排他的論理和)回路が挙げられる。
 バッファ34bは、エラー設定処理部34aにより生成されたエラー設定データを一時的に格納するものであり、格納したエラー設定データをエラー処理部35に対して出力する。バッファ34bとしては、例えばRAM等の揮発性メモリが挙げられる。
 なお、疑似障害設定部31によるエラーパターンの生成が行なわれない場合には、エラー設定処理部34aは、元データをバッファ34bに出力する。
 すなわち、エラーパターンが生成されない場合には、エラー設定処理部34aには、バッファ33bからの元データのみが入力され、エラー情報生成部31cからの入力は発生しないか、或いは全てのビットに“0”が設定されたデータが入力される。いずれの場合においても、エラー設定処理部34aにおける排他的論理和演算により、エラー設定処理部34aからバッファ34bに出力されるデータは、元データと同じパターンとなる。
 換言すれば、エラー設定部34は、エラーパターンの生成が行なわれない場合、つまり制御部3による疑似障害の発生が行なわれない場合には、実運用に沿って、処理部2からの取得要求に応じたデータをIO装置5から取得し、後段のエラー処理部35に出力することができる。
 なお、エラーパターンが生成されない場合としては、疑似障害モードがオフである場合のほか、疑似障害モードがオンであるが、処理要求によりIO装置5から取得されるデータが、後述する障害設定情報における条件を満たさない場合等も含まれる。
 図4に示すように、エラー処理部35は、エラー検出部35a、疑似障害処理部35b、及びエラー訂正部35cを備える。
 エラー検出部35aは、エラー設定部34のバッファ34bから入力された元データ又はエラー設定データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、エラーが含まれる場合にエラービット位置を検出する。以下、これら元データ又はエラー設定データを、単に入力されたデータという。
 なお、エラーチェックとしては、例えばECC(Error Correcting Code)等のエラー検出・訂正符号によるデータチェックが挙げられ、エラー検出部35aは、入力されたデータに対して、例えばECCを用いてエラービット位置を検出する。以下、エラー検出部35aが、ECCを用いたエラーチェックを行なうものとして説明する。
 具体的には、エラー検出部35aは、入力されたデータに対してエラーチェックを行なった結果、エラーが検出された場合には、検出されたエラーのエラービット位置を、疑似障害処理部35bに対して通知する。
 また、エラー検出部35aは、エラーチェックによりエラーが検出された場合、及びされなかった場合のいずれの場合においても、入力されたデータを後段のエラー訂正部35cに対して出力する。
 このエラー検出部35aによるエラービット位置の検出処理については、後述する。
 エラー訂正部35cは、エラー検出部35aから入力されたデータにエラーが発生していない場合、入力されたデータを処理部2に対して出力する一方、当該データにエラーが発生している場合には、エラー検出部35aが検出したエラーのうち、訂正可能なエラーの訂正を行ない、訂正後のデータを処理部2に対して出力(転送)する。
 また、エラー訂正部35cは、疑似障害処理部35bから出力停止指示を入力されると、エラー検出部35aから入力されたデータの処理部2への出力を抑止する。なお、このデータの出力の抑止は、例えばエラー訂正部35cにより、入力されたデータの送信用の応答ヘッダに対するマスク処理等により実現することができる。なお、エラー検出部35a、エラー検出部35aとエラー訂正部35cとの間、若しくはエラー訂正部35cに、後段へのデータ出力の抑止機能を備え、疑似障害処理部35bが当該抑止機能に対して出力停止指示を通知することにより、データの出力の抑止が実現されても良く、その他、既知の種々の手法により実現することができる。
 疑似障害処理部35bは、疑似障害モードが有効となっている場合で、且つ、エラー検出部35aが、入力されたデータからエラーを検出した場合、エラー訂正部35cによるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を処理部2に通知する。
 具体的には、疑似障害処理部35bは、エラー検出部35aによるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置をエラー検出部35aから取得する。そして、疑似障害処理部35bは、疑似障害モード設定部31bを参照して疑似障害モードがオンであるか否かを確認する。
 疑似障害モードがオフである場合には、疑似障害処理部35bは、処理を終了する。
 一方、疑似障害モードがオンである場合には、疑似障害処理部35bは、例えばエラー訂正部35cに対して、出力停止指示を出力する。また、疑似障害処理部35bは、障害種別情報に基づいて、取得したエラービット位置に対応した障害種別を取得するとともに、取得した障害種別についての障害応答を作成し、当該障害応答を、処理部2に通知する。
 なお、疑似障害モードがオフである場合に、疑似障害処理部35bは、エラー訂正部35c等に対して出力停止指示を出力せず、エラー訂正部35cは、実運用と同様にエラー設定データに対してエラー訂正を行ない、訂正後のデータを処理部2に対して出力しても良い。
 また、疑似障害処理部35bは、取得した障害種別が“応答タイムアウト”であった場合には、障害種別についての障害応答を作成せず、処理部2には障害応答を通知しないように構成することができる。
 このように、本実施形態の一例としての制御部3においては、疑似障害モードがオフの場合、取得要求に応じてIO装置5から取得されたデータは、要求元の処理部2に対して出力される。一方、疑似障害モードがオンの場合には、IO装置5において障害が発生した状況を疑似的に作り出すために、当該データの処理部2への出力が抑止される。
 処理部2は、疑似障害処理部35bから、制御部3に出力した取得要求に対する応答として障害応答を入力されると、当該障害応答に基づいて、上述した再現テストやデバイスドライバのエラーリカバリ動作確認等の処理を行なうことができる。
 上述のように、制御部3は、処理部2からの取得要求により、IO装置5からデータを取得する通常の運用を行なうとともに、外部ホスト6から疑似障害モード要求を受けた場合に、本実施形態における疑似障害設定処理及び疑似障害発生処理を行なうことができる。
 〔1-3-1〕障害設定情報の設定例
 次に、保持部32が保持する障害設定情報(障害設定テーブルT2)について、図6を参照しながら説明する。
 上述の如く、疑似障害設定部31においてエラー情報を生成するための条件に関する障害設定情報は、パラメータとして、障害発生回数及び障害発生アドレス情報のうちの少なくとも1つを含むことができる。また、これら障害発生回数又は/及び障害発生アドレス情報は、発生させる障害種別それぞれに対応付けられる。
 障害発生回数(Times)は、対応する障害種別の疑似障害を発生させる回数であり、疑似障害設定処理部31aは、障害種別に応じたエラー情報の生成回数が対応する障害発生回数に達するまでは、発生させる障害種別に応じたエラー情報を生成する。つまり、障害発生回数は、対応する障害種別の疑似障害を発生させるための条件の一つである。
 障害発生回数は、図6に示す例においては、“応答タイムアウト”、“媒体エラー”、“ハードウェアエラー”、“インタフェースエラー”、及び“正常応答”に対応して、それぞれ“8”、“3”、“5”、“0”、及び“10”が設定される。なお、図6に例示するように、発生回数として“0”が設定された場合、疑似障害設定処理部31aは、対応する障害種別については、疑似障害を発生させないようにすることができる。
 なお、疑似障害設定部31は、障害種別ごとに、疑似障害モードが有効化されてから、対応するエラー情報を設定した回数をカウントする機能を備えることが好ましい。或いは、疑似障害設定部31は、疑似障害モードが有効化されてから、エラー情報を設定した場合に、保持部32に格納された障害設定情報のうちの対応する障害種別について、障害発生回数をデクリメントしても良い。
 このように、エラー情報を生成するための条件として、障害設定情報に障害発生回数が含まれる場合には、疑似障害モードが有効化された以降、エラー情報の生成回数が対応する障害発生回数に達していない障害種別が、疑似的に発生させる障害種別として選択され得る。
 なお、本実施形態においては、疑似障害設定部31は、障害発生回数及び障害発生アドレス情報の双方の条件を満たす障害種別を、発生させる障害種別として選択するが、障害設定情報に障害発生アドレス情報が含まれず、且つ、複数の障害種別が選択候補である場合には、障害発生回数が最も多い、又は最も少ない、一の障害種別を選択しても良い。或いは、障害設定情報における各障害種別それぞれに対して、予め優先順位が設定され、疑似障害設定部31は、疑似障害モードが有効化された以降、エラー情報の生成回数が対応する障害発生回数に達していない複数の障害種別のうちの、優先順位が高い、又は低いものから順に、発生させる障害種別として選択しても良い。
 障害発生アドレス情報は、IO装置5のアドレス範囲を示す情報であり、疑似障害設定処理部31aは、処理部2からの取得要求に係るデータの取得対象のアドレスが、発生させる障害種別に対応した障害発生アドレス情報の示す範囲内である場合に、発生させる障害種別に応じたエラー情報を生成する。つまり、障害発生アドレス情報は、対応する障害種別の疑似障害を発生させるための条件の一つであり、この条件範囲を設定する開始アドレス(SA;Start Address)及び終了アドレス(EA;End Address)を含む。
 障害発生アドレス情報は、図6に示す例においては、“応答タイムアウト”、“媒体エラー”、“ハードウェアエラー”、“インタフェースエラー”、及び“正常応答”に対応して、それぞれ“SA:0x1000, EA:0x1000”、“SA:0x2000, EA:0x3000”、“SA:0x0, EA:0xffffffff”、“SA:-, EA:-”、及び“SA:0x0, EA:0xffffffff”が設定される。なお、図6に示すように、発生回数が“0”である障害種別“インタフェースエラー”、つまり疑似障害を発生させない障害種別については、障害発生アドレス情報が設定されないようにすることができる。
 疑似障害設定部31による、発生させる障害種別の選択及び選択した障害種別に応じたエラー情報の生成は、図6を例に挙げると、以下のように行なわれる。
 (a)障害発生アドレス情報が“SA:0x1000, EA:0x1000”の場合、つまり開始アドレス=終了アドレスである場合
 取得要求によって指定されたIO装置5のアドレスが“0x1000”のとき、つまり開始(終了)アドレスと一致するときにのみ、疑似障害設定部31により、発生させる障害種別に応じたエラー情報が生成される。
 (b)障害発生アドレス情報が“SA:0x2000, EA:0x3000”の場合、つまりアドレス範囲が設定される場合
 取得要求によって指定されたIO装置5のアドレスが“0x2000”~“0x3000”の範囲内にあるとき、つまり設定されたアドレス範囲内にあるときに、疑似障害設定部31により、発生させる障害種別に応じたエラー情報が生成される。
 (c)障害発生アドレス情報が“SA:0x0(IO装置5のデータが格納されている先頭アドレス), EA:0xffffffff(IO装置5のデータが格納されている最終アドレス)”の場合、つまりIO装置5のデータが格納されている全体アドレスが設定される場合
 取得要求によって指定されたIO装置5のアドレスが“0x0”~“0xffffffff”の範囲内にあるとき、つまりIO装置5のどのアドレスが取得要求によって指定されても、疑似障害設定部31により、発生させる障害種別に応じたエラー情報が生成される。
 疑似障害設定処理部31aは、上述の如き障害設定情報に基づいて、処理部2からの取得要求に係るデータの取得対象のアドレスが含まれる障害発生アドレス情報を判定し、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を選択する。
 ここで、例えば、取得要求により指定されたIO装置5のアドレスが“0x2000”である場合、図6に示す例においては、発生させる障害種別として、“媒体エラー”、“ハードウェアエラー”、及び“正常応答”のいずれかが選択され得る。この場合、疑似障害設定処理部31aは、例えば、障害発生アドレス情報の範囲が狭い障害種別、つまり図6に示す場合には“媒体エラー”を、発生させる障害種別として選択することができる。
 なお、これに限定されるものではなく、取得要求によって指定されたIO装置5のアドレスが、障害設定情報における障害発生アドレス情報の複数の範囲に含まれる場合、障害発生アドレス情報の範囲が広い障害種別が選択されても良いし、対応する障害発生回数が多い、又は少ない障害種別が選択されても良い。或いは、障害設定情報における各障害種別それぞれに対して、予め優先順位が設定され、IO装置5のアドレスが含まれる複数の障害種別のうちの、優先順位が高い、又は低いものから順に、発生させる障害種別として選択されても良い。
 また、図6に示す障害種別“ハードウェアエラー”及び“正常応答”のように、障害発生アドレス情報としてIO装置5の全体アドレスが設定される場合には、障害発生アドレス情報が設定されなくても良い。この場合、疑似障害設定部31は、発生させる障害種別に対応する障害発生回数が1以上であり、且つ障害発生アドレス情報が設定されていないときに、障害発生アドレス情報がIO装置5の全体アドレスであると認識するように構成されることが好ましい。
 このように、疑似障害設定処理部31aは、外部ホスト6からの疑似障害モード要求を受領すると、当該要求に含まれる上述の如き障害設定情報のパラメータを保持部32に対して設定する。そして、疑似障害設定処理部31aは、処理部2から取得要求を受け、且つ疑似障害モードが有効である場合に、障害設定情報のパラメータのうちの障害発生回数又は/及び障害発生アドレス情報に基づいて、発生させる障害種別として選択する。
 なお、疑似障害設定処理部31aによる、発生させる障害種別の選択は、上述した手法に限定されず、例えば外部ホスト6は、処理部2からの取得要求に先立って、発生させる障害種別を通知しても良い。この場合、疑似障害設定処理部31aは、上記障害設定情報のパラメータ、つまりエラー情報を生成するための条件にかかわらず、通知された障害種別を、発生させる障害種別として選択しても良い。
 〔1-3-2〕エラー検出部の動作例
 次に、エラー検出部35aによるエラービット位置の検出処理の一例について、図7を参照しながら説明する。
 図7は、本実施形態のエラー検出部35aによるエラービット位置の検出処理の一例を説明する図である。図7(a)は、エラー検出部35aにおいて処理されるデータの一例を示す図であり、図7(b)はエラー検出部35aによる、エラー設定データに対するECCデータチェックの結果を示す図である。
 以下、バッファ33b及びエラー情報生成部31cのブロックサイズは、8ビットであり、この8ビットのデータがエラー検出部35aに入力され、ECCによるデータの整合性チェックが行なわれる場合について説明する。
 また、以下、図7(a)に示すように、元データが“0x43”=“0b01000011”であり、エラーパターンとして“0x2”=“0b00000010”が生成された場合を仮定して説明する。
 ECCデータのビット列である“p[2-0]”及び“q[2-0]の値は、元データの値に応じてIO装置5に格納されていた際に予め算出されており、例えば図7(a)に示すように、p[2-0]には“0x0”=“0b000”が、q[2-0]には“0x7”=“0b111”がそれぞれ予め算出されている。なお、このp[2-0]及びq[2-0]の値は、例えば図7(b)に示す算出式に従って、元データの所定のビット位置の値同士について排他的論理和演算を行なうことにより算出される。
 ここで、図7(a)に示すように、エラー設定部34において、元データ“0x43”=“0b01000011”に対してエラーパターン“0x2”=“0b00000010”が設定されると、エラー検出部35aに入力されるエラー設定データは“0x41”=“0b01000001”となる。
 エラー検出部35aは、このエラー設定データに対してECCデータチェックを行なう。このECCデータチェックの結果を図7(b)に示す。
 また、エラー検出部35aは、図7(a)に示す予め算出されたECCデータの値“p[2-0]”及び“q[2-0]”と、算出したECCデータチェックの結果とを比較し、図7(b)に示すように、q[0]、p[1]及びp[2]が図7(a)に示すECCデータと異なること、つまりデータのエラーを検出する。
 そして、エラー検出部35aは、ECCを用いたエラービット位置検出の手法の一例として、検出されたq[0]、p[1]及びp[2]を上位ビットから順にソートしてp[2],p[1],q[0]とするとともに、p[*]=“0”、q[*]=“1”を代入して、エラービット位置として“0b001”を得る。つまり、この値はエラービット位置を示すものであり、エラー検出部35aは、検出したエラービット位置としてビット“1”を得る。
 このように、エラー検出部35aにより、ECCによるデータの整合性チェックが行なわれ、エラーが検出された場合には、エラービット位置が算出される。
 なお、エラー情報が生成されていない場合、つまり障害応答が発生しない場合に、エラー検出部35aに入力されたデータについて図7(b)に示すようなエラーが検出されると、エラー訂正部35cは、検出されたエラービット位置に対応する元データのビットの値を反転させて当該エラーを訂正するとともに、処理部2に対して転送する。
 このように、本実施形態の制御部3によれば、実運用で用いられるECCによるエラー検出・訂正機能を利用することにより、元データにエラー、つまり障害発生コードを埋め込むことで、疑似障害を発生させるためのフレームワークを容易に実現することができる。すなわち、元データに設定された障害発生コードを解析する機能を新たに用意せずに、実運用の情報処理装置1を用いたテストを容易に実現することができる。
 また、本実施形態の制御部3によれば、元データに対してエラーを埋め込み、疑似障害を発生させる場合には、データ訂正を行なわない一方、実際に元データにエラーが発生した場合には、データ訂正を実行するため、データ訂正に係るオーバーヘッドを極小化することもできる。
 さらに、本実施形態の制御部3によれば、元データに対してECC訂正可能なエラーが設定されるため、疑似障害を発生させるための特別なデータを用意せずに済むとともに、処理部2に対して転送されるデータのサイズや内容にも、元データからの変化が生じないため、実運用に沿ったテストを実施することができる。
 また、本実施形態の制御部3によれば、処理部2は、実運用と同じデータパターンでテストを行なうことができるため、実環境において通常の運用に近い状況で精度の高いテストを実施することができる。
 〔1-4〕制御部の詳細な動作例
 次に、上述の如く構成された本実施形態の一例としての情報処理装置1における制御部3の詳細な動作例を、図8~図10を参照しながら説明する。
 図8は、本実施形態の制御部3による疑似障害の詳細な設定動作例を説明する図である。また、図9は、本実施形態の制御部3による疑似障害の発生動作例を説明する図であり、図10は、制御部3による疑似障害の詳細な発生手順例を説明するフローチャートである。
 制御部3による疑似障害の設定動作では、図8に示すように、疑似障害設定処理部31aにより、外部ホスト6から疑似障害モード要求が受領されると(図8に示す矢印A1)、疑似障害モード要求に含まれる、又は疑似障害モード要求とともに受領したパラメータが、保持部32に設定される(矢印A2)。
 また、疑似障害設定処理部31aにより、疑似障害モード設定部31bが保持する疑似障害モードのフラグがオンに設定される(矢印A3)。
 なお、疑似障害設定処理部31aは、上述の如く、例えば疑似的に発生させる障害種別に応じたエラー情報の生成回数が、それぞれ、障害設定情報に設定された対応する障害発生回数に達した場合、及び外部ホスト6から疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、疑似障害モードのフラグをオフに設定する。
 次に、制御部3による疑似障害の発生動作では、図9に示すように、データ読込処理部33aにより、処理部2から取得要求が受領されると(図9に示す矢印B1)、当該取得要求に応じてIO装置5からデータ(元データ)が取得され(矢印B2)、バッファ33bに格納される(矢印B3、図10に示すステップS11)。
 また、データ読込処理部33aにより、図9に示す矢印B1において処理部2から取得要求が受領されると、当該取得要求に係るデータの取得対象のアドレスが疑似障害設定処理部31aに対して出力される(矢印B4)。
 このアドレスを入力されると、疑似障害設定処理部31aにより、疑似障害モード設定部31bが参照され、疑似障害モードのフラグがオンであるか否かが確認される(矢印B5、ステップS12)。
 疑似障害モードのフラグがオンである場合(ステップS12のYesルート)、疑似障害設定処理部31aにより、保持部32に保持された障害種別情報が参照され(矢印B6)、発生させる疑似障害に対応したエラービット位置(ECCエラービット形式)が選択される(ステップS12)。
 次いで、疑似障害設定処理部31aにより、エラー情報生成部31cに対して、選択したエラービット位置に対応するビットの反転が行なわれ、エラーパターンが生成される(矢印B7)。
 そして、バッファ33bから元データが、エラー情報生成部31cからエラーパターンが、それぞれエラー情報設定処理部34aに出力される(矢印B8)。
 エラー情報設定処理部34aにおいては、元データに対してエラーパターンに基づくエラーが設定されることでエラー設定データが作成され(ステップS14)、作成されたエラー設定データがバッファ34bに対して出力される(矢印B9、ステップS15)。
 一方、疑似障害モードのフラグがオフである場合(ステップS12のNoルート)、疑似障害設定処理部31aでは処理が行なわれず、エラー情報設定処理部34aにより、バッファ33bから入力された元データがバッファ34bに対して出力される(矢印B9)。
 バッファ34bにおいて、元データ又はエラー設定データがエラー検出部35aに対して出力されると(矢印B10)、エラー検出部35aにより、入力されたデータに対して例えばECCを用いたエラーチェックが行なわれる(ステップS16)。
 エラーチェックによりエラーが検出されなかった場合(ステップS16のNoルート)、エラー検出部35aにより、入力されたデータが、エラー訂正部35cを経由して処理部2に対して転送される(矢印B15、B16、ステップS20)。
 一方、エラー検出部35aによりエラーが検出された場合(ステップS16のYesルート)、検出されたエラーのエラービット位置が疑似障害処理部35bに対して出力される(矢印B11)。
 エラービット位置が入力されると、疑似障害処理部35bにより、疑似障害モード設定部31bが参照され、疑似障害モードのフラグがオンであるか否かが確認される(矢印B12、ステップS17)。
 疑似障害モードのフラグがオフである場合(ステップS17のNoルート)、疑似障害処理部35bによる処理は行なわれず、エラー訂正部35cにより、エラー検出部35aから入力されたデータに対して、例えばECCによるデータ訂正処理が行なわれる(ステップS18)。そして、エラー訂正部35cにより、訂正後のデータが処理部2に対して転送される(矢印B16、ステップS20)。
 一方、疑似障害モードのフラグがオンである場合(ステップS17のYesルート)、疑似障害処理部35bにより、エラー訂正部35c等に対して出力停止指示が通知され(矢印B13)、処理部2に対するデータの出力が抑止される。
 そして、疑似障害処理部35bにより、エラービット位置に対応した障害種別の疑似障害が作成され、障害応答が処理部2に通知される(矢印B14、ステップS19)。
 なお、疑似障害処理部35bは、上述の如く、エラービット位置に対応した障害種別が“応答タイムアウト”であった場合には、障害種別についての障害応答を作成せず、処理部2には障害応答を通知しないように構成しても良い。
 上述のように、図4に示す本実施形態の制御部3によっても、図1に示す制御部3における効果と同様の効果を奏することができる。
 また、本実施形態の疑似障害設定部31によれば、取得要求を受け、且つ取得要求によりIO装置5から取得されるデータが、保持部32に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる障害種別に応じたエラー情報が生成され、生成されたエラー情報がエラー設定部34に出力される。また、この障害設定情報における条件は、外部ホスト6により疑似障害設定部31に通知される。
 従って、外部ホスト6が任意の条件を通知したり、外部ホスト6と処理部2とが協働して障害設定情報における条件を満たすような取得要求を発行したりすることにより、処理部2は、所望の障害応答を制御部3から得ることができ、実運用の情報処理装置1を用いたテストを容易に実現することができる。また、処理部2は、外部ホスト6が通知する条件、及び処理部2が発行する取得要求により、複数の障害種別から所望の障害種別を選択的に、疑似的に発生させることができる。
 また、本実施形態の疑似障害設定部31によれば、取得要求に係るデータの取得対象のアドレスが、障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別が、発生させる障害種別として選択される。
 従って、発生させる障害種別の選定条件を詳細に設定することができ、テストの精度の向上を図ることができる。また、疑似障害の発生のために用いられるIO装置5のアドレス範囲を指定することができるため、例えば実運用で用いられるIO装置5のアドレス範囲とずらすことにより、疑似障害を発生させる際に実運用に与える影響を低減することができる。
 さらに、本実施形態の疑似障害設定部31によれば、疑似障害モードの有効/無効を管理する疑似障害モード設定部31bが備えられ、処理部2からの疑似障害モード要求/疑似障害モード終了要求等に基づいて、当該疑似障害モードの有効/無効を切り替えることができる。従って、実運用に用いられるファームウェアを用いた状態で、制御部3の動作モードを通常動作モード及び疑似障害モード間で容易に切り替えることができ、動作モードの切り替えにかかる時間を低減することができるため、実運用に与える影響を低減することができる。
 〔1-5〕変形例
 上述した実施形態に加えて、外部ホスト6は、例えばシーケンスやサイクル数等のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部3に対して通知することができる。
 シーケンス(Seq;Sequence)は、複数の障害種別についての障害応答を発生させる順序を示す障害発生順序情報である。つまり、疑似障害設定処理部31aは、保持部32がシーケンスを保持する場合には、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させることができる。
 シーケンスには、疑似障害を発生させる順序で、例えば下位からエラービット番号が指定される。なお、このエラービット番号は、障害種別に対応したエラービット位置であっても良いし、障害種別に対応したID等であっても良い。いずれにしても、シーケンスに設定されるエラービット番号は、障害種別に対応した一意の番号であることが好ましい。
 エラービット番号としてエラービット位置を用いる場合のシーケンスは、例えばエラービット番号が4ビット単位で指定される場合には、“0x302”=“0b001100000010”のように設定される。この場合、例えば図5及び図6に示すように、制御部3では、エラービット位置がビット“2”である“媒体エラー”の障害応答が障害発生回数である“3”回行なわれ、その後エラービット位置がビット“0”である“正常応答”が“10”回行なわれ、最後にエラービット位置がビット“3”である“ハードウェアエラー”の障害応答が“5”回行なわれる。
 すなわち、本変形例の疑似障害設定処理部31aは、取得要求を受け、疑似障害モードのフラグがオンであると、シーケンスを参照して、発生させる障害種別を選択する。そして、疑似障害設定処理部31aは、取得要求によりIO装置5から取得されるデータが、障害設定情報における、選択した障害種別に係る条件、つまり障害発生回数や障害発生アドレス情報を満たすか否かを判断する。
 当該条件を満たす場合には、疑似障害設定処理部31aは、選択した障害種別に応じたエラー情報を生成する。一方、当該条件を満たさない場合には、疑似障害設定処理部31aは、当該データが障害設定情報における他の障害種別の条件を満たす場合であっても、エラー情報の生成を抑止する。
 これにより、本変形例の制御部3によれば、障害発生順序情報を用いることにより、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させることができる。つまり、外部ホスト6は、障害発生順序情報を制御部3に対して出力しておくことで、処理部2は、障害応答を所定の順序で受信することができる。従って、処理部2は、複数の障害の複合テストを容易に且つ確実に実現することができる。
 サイクル数(Cycles)は、シーケンスで定義した一連の動作の発生回数を指定する繰返情報である。つまり、疑似障害設定処理部31aは、保持部32がシーケンス及びサイクル数を保持する場合には、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させる一連の動作を、サイクル数で規定された回数だけ繰り返すことができる。
 例えば、シーケンスに上述した“0x302”=“0b001100000010”が設定されており、サイクル数として“2”が設定されている場合、“媒体エラー”が“3”回、“正常応答”が“10”回、“ハードウェアエラー”が“5”回、“媒体エラー”が“3”回、“正常応答”が“10”回、“ハードウェアエラー”が“5”回行なわれる。
 このように、外部ホスト6がサイクル数を設定することにより、処理部2は、例えば所定の障害種別についての疑似障害を、所定の順序で反復して行なうテストを実行する場合に、当該テストを容易に且つ確実に実現することができる。
 〔2〕その他
 以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
 例えば、上述した実施形態及び変形例においては、制御部3がIOコントローラであり、対象装置5がIO装置である場合について説明したが、これに限定されるものではない。つまり、制御部3では、エラー検出部35a及びエラー訂正部35cとして、既存のECC等によるエラー検出・訂正機能を用いる。従って、対象装置5は、HDD等のIO装置以外に、例えば記憶部(メモリ)4等、ECC等によるエラー検出・訂正機能が利用できる装置であれば良い。なお、対象装置5として記憶部4を用いる場合、制御部3としての機能は、メモリコントローラ等に備えられて良い。
 さらに、上述した実施形態及び変形例においては、ホストとしての処理部2が、取得要求を、情報処理装置1の管理等を行なう外部ホスト6が、疑似障害モード要求、疑似障害モード終了要求、及び、保持部32に保持させる各種情報を、制御部3に対して出力していたが、これに限定されるものではない。例えば、これらの要求や情報が、IOコントローラとしての制御部3に接続されたインタフェース及びネットワークを介して、処理部2以外の装置から、制御部3に対して出力されても良い。つまり、情報処理装置1におけるテストが、処理部2以外のホスト及び外部ホストにより実行されても良い。
 また、上述した実施形態においては、外部ホスト6は、障害種別情報や障害設定情報のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部3に対して通知することとして説明した。同様に、上述した変形例においては、外部ホスト6は、障害発生順序情報や繰返情報のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部3に対して通知することとして説明したが、これに限定されるものではない。例えば、外部ホスト6は、制御部3に対する疑似モード要求に先立って、事前にこれらのパラメータを通知しても良い。
 なお、これらの疑似障害設定処理部31a、データ読込処理部33a、エラー設定処理部34a、エラー処理部35、エラー検出部35a、疑似障害処理部35b、及びエラー訂正部35cとしての機能を実現するためのプログラム(疑似障害発生プログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしても良い。
 疑似障害設定処理部31a、データ読込処理部33a、エラー設定処理部34a、エラー処理部35、エラー検出部35a、疑似障害処理部35b、及びエラー訂正部35cとしての機能を実現する際には、内部記憶装置(本実施形態では制御部3のメモリ)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態では制御部3のプロセッサ)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしても良い。
 なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。また、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、制御部3がコンピュータとしての機能を有しているのである。
 1  情報処理装置
 2  CPU(処理部)
 3  IOコントローラ(制御部)
 4  メモリ(記憶部)
 5  IO装置(対象装置)
 6  外部ホスト(設定部)
 31  疑似障害設定部
 31a  疑似障害設定処理部
 31b  疑似障害モード設定部
 31c  エラー情報生成部
 32  保持部
 33  データ読込部
 33a  データ読込処理部
 33b,34b  バッファ
 34  エラー設定部
 34a  エラー設定処理部
 35  エラー処理部
 35a  エラー検出部
 35b  疑似障害処理部
 35c  エラー訂正部

Claims (18)

  1.  処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、
     前記制御部は、
     擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、
     前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えることを特徴とする、情報処理装置。
  2.  前記エラー処理部は、
     検出したエラーのうち、訂正可能なエラーの訂正を行なうエラー訂正部と、
     前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラー訂正部によるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知する疑似障害処理部と、を備えることを特徴とする、請求項1記載の情報処理装置。
  3.  前記エラー処理部は、
     前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出するエラー検出部を備え、
     前記エラー処理部は、前記疑似障害モードが有効となっている場合であって、且つ、前記エラー検出部によるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、請求項1又は請求項2記載の情報処理装置。
  4.  前記エラー検出部は、前記データについてECC(Error Correcting Code)を用いて前記エラービット位置を検出することを特徴とする、請求項3記載の情報処理装置。
  5.  前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持する保持部と、
     前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力する疑似障害設定部とを備え、
     前記エラー設定部は、前記疑似障害設定部から入力されたエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定することを特徴とする、請求項1~4のいずれか1項記載の情報処理装置。
  6.  前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
     前記疑似障害設定部は、前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、請求項5記載の情報処理装置。
  7.  前記疑似障害モードを有効に設定させる疑似障害モード要求を発行する設定部を備え、
     前記疑似障害設定部は、
     前記設定部から前記疑似障害モード要求を入力されると、疑似障害モードを有効化する疑似障害モード設定部を備え、
     前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、請求項5又は請求項6記載の情報処理装置。
  8.  前記疑似障害モード設定部は、前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、請求項7記載の情報処理装置。
  9.  前記設定部は、前記疑似障害設定部に前記障害設定情報を出力し、
     前記疑似障害設定部は、前記設定部から前記障害設定情報を入力されると、入力された前記障害設定情報を前記保持部に設定することを特徴とする、請求項7又は請求項8記載の情報処理装置。
  10.  前記保持部は、複数の障害種別についての障害応答を発生させる順序を示す障害発生順序情報を保持し、
     前記疑似障害設定部は、前記取得要求を受けると、前記障害発生順序情報に基づき発生させる障害種別を選択し、前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における、前記選択した障害種別に係る条件を満たす場合に、当該選択した障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、請求項5~9のいずれか1項記載の情報処理装置。
  11.  前記エラー処理部は、前記検出されたエラーに対応する障害種別が、前記処理部に応答を通知することができない障害であった場合、前記処理部に対する当該障害種別についての障害応答の通知を抑止することを特徴とする、請求項1~10のいずれか1項記載の情報処理装置。
  12.  処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、
     前記制御部において、
     擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、
     前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、疑似障害発生方法。
  13.  前記制御部において、
     検出したエラーのうち、訂正可能なエラーの訂正を行なうとともに、
     前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラーの訂正を行なわずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知することを特徴とする、請求項12記載の疑似障害発生方法。
  14.  前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出し、
     前記疑似障害モードが有効となっている場合であって、且つ、前記エラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、請求項12又は請求項13記載の疑似障害発生方法。
  15.  前記情報処理装置が前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持部に保持し、
     前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、
     生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、請求項12~14のいずれか1項記載の疑似障害発生方法。
  16.  前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
     前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、請求項15記載の疑似障害発生方法。
  17.  設定部から前記疑似障害モードを有効に設定させる疑似障害モード要求を入力されると、疑似障害モードを有効化し、
     前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成して、
     生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、請求項15又は請求項16記載の疑似障害発生方法。
  18.  前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、請求項17記載の疑似障害発生方法。
PCT/JP2011/058713 2011-04-06 2011-04-06 情報処理装置及び疑似障害発生方法 WO2012137323A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/058713 WO2012137323A1 (ja) 2011-04-06 2011-04-06 情報処理装置及び疑似障害発生方法
JP2013508679A JPWO2012137323A1 (ja) 2011-04-06 2011-04-06 情報処理装置及び疑似障害発生方法
US14/032,232 US20140025983A1 (en) 2011-04-06 2013-09-20 Information processing apparatus and method for generating pseudo failure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/058713 WO2012137323A1 (ja) 2011-04-06 2011-04-06 情報処理装置及び疑似障害発生方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/032,232 Continuation US20140025983A1 (en) 2011-04-06 2013-09-20 Information processing apparatus and method for generating pseudo failure

Publications (1)

Publication Number Publication Date
WO2012137323A1 true WO2012137323A1 (ja) 2012-10-11

Family

ID=46968760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/058713 WO2012137323A1 (ja) 2011-04-06 2011-04-06 情報処理装置及び疑似障害発生方法

Country Status (3)

Country Link
US (1) US20140025983A1 (ja)
JP (1) JPWO2012137323A1 (ja)
WO (1) WO2012137323A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090586A (ja) * 2013-11-06 2015-05-11 Necフィールディング株式会社 端末装置、シミュレーションシステム、端末装置の制御方法、及び端末装置の制御プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6542148B2 (ja) * 2016-03-18 2019-07-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US10452459B2 (en) 2016-12-09 2019-10-22 Microsoft Technology Licensing, Llc Device driver telemetry
US10467082B2 (en) * 2016-12-09 2019-11-05 Microsoft Technology Licensing, Llc Device driver verification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675813A (ja) * 1992-08-26 1994-03-18 Fujitsu Ltd 外部記憶装置の疑似障害発生方法
JP2005078431A (ja) * 2003-09-01 2005-03-24 Toshiba Corp 半導体装置
JP2007122396A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd ディスクアレイ装置及びその障害対応検証方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60144851A (ja) * 1983-12-30 1985-07-31 Fujitsu Ltd チヤネル制御装置
JP2806856B2 (ja) * 1996-01-29 1998-09-30 甲府日本電気株式会社 誤り検出訂正回路の診断装置
JP2000048478A (ja) * 1998-05-26 2000-02-18 Yamaha Corp ディジタルコピー制御方法及びそれを用いた装置
WO2007096997A1 (ja) * 2006-02-24 2007-08-30 Fujitsu Limited メモリ制御装置およびメモリ制御方法
US8627163B2 (en) * 2008-03-25 2014-01-07 Micron Technology, Inc. Error-correction forced mode with M-sequence

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675813A (ja) * 1992-08-26 1994-03-18 Fujitsu Ltd 外部記憶装置の疑似障害発生方法
JP2005078431A (ja) * 2003-09-01 2005-03-24 Toshiba Corp 半導体装置
JP2007122396A (ja) * 2005-10-27 2007-05-17 Hitachi Ltd ディスクアレイ装置及びその障害対応検証方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015090586A (ja) * 2013-11-06 2015-05-11 Necフィールディング株式会社 端末装置、シミュレーションシステム、端末装置の制御方法、及び端末装置の制御プログラム

Also Published As

Publication number Publication date
US20140025983A1 (en) 2014-01-23
JPWO2012137323A1 (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
TWI397080B (zh) 記憶體裝置及其相關測試方法
US7171594B2 (en) Pausing a transfer of data
KR101618925B1 (ko) 고착 고장을 갖는 메모리 셀에 비트를 저장하기 위한 기법
JP4852315B2 (ja) データ信頼性向上方法及びその方法を用いた情報処理装置
JP2007300619A (ja) 異なるデータ保護方法間で切換えにおいてデータの完全性を維持する方法、装置及びプログラム
US7624301B2 (en) Method and apparatus for identifying failure module
US9513993B2 (en) Stale data detection in marked channel for scrub
WO2012137323A1 (ja) 情報処理装置及び疑似障害発生方法
JP5565340B2 (ja) 試験方法,試験プログラム,及び試験装置
JP6568012B2 (ja) メモリ管理システム、方法、およびコンピュータ・プログラム
US20100293418A1 (en) Memory device, data transfer control device, data transfer method, and computer program product
WO2017012460A1 (zh) 检测随机存储器故障的方法及装置、处理器
CN102971984B (zh) 认证存储设备的方法和主机设备
US20070291388A1 (en) Control apparatus and storage device
JP2015138372A (ja) 書込検査プログラム,情報処理装置,及び書込検査方法
JP2013257640A (ja) コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラム
US9563500B2 (en) Storage integrity validator
TWI511158B (zh) 記憶體模組上之記憶體備用技術
US9288161B2 (en) Verifying the functionality of an integrated circuit
JP2013037631A (ja) 診断装置、診断方法および診断プログラム診断方法
JP5910356B2 (ja) 電子装置、電子装置制御方法及び電子装置制御プログラム
JP5087970B2 (ja) 情報処理装置および情報処理方法
JP6246022B2 (ja) ソフトウェア試験装置及びソフトウェア試験プログラム
JP5148676B2 (ja) ビデオデータ処理装置及びビデオデータ処理方法
JP2012010108A (ja) データ処理回路及びデータ処理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11863047

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013508679

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11863047

Country of ref document: EP

Kind code of ref document: A1