Control device, memory system, control method, and program

By converting error-affected areas in volatile memory to read cache areas, the control device optimizes storage system efficiency by managing errors and reassigning storage, reducing unused space.

JP2026055253APending Publication Date: 2026-03-31KK TOSHIBA +1
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-09-18
Publication Date
2026-03-31

AI Technical Summary

Technical Problem

In storage systems with volatile memory, errors lead to unused storage areas due to conventional countermeasures that disable affected areas, resulting in inefficiencies.

Method used

A control device converts error-affected areas in volatile memory into read cache areas for storing read data, managing errors through error correction and area reassignment.

Benefits of technology

This approach reduces unused storage areas by effectively utilizing error-affected regions, enhancing memory efficiency and data handling.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026055253000001_ABST
    Figure 2026055253000001_ABST
Patent Text Reader

Abstract

The objective is to provide a control device, a storage system, a control method, and a program that can suppress the occurrence of a large amount of unused storage space in volatile memory. [Solution] The control device of the embodiment is a control device for controlling volatile memory. When an error occurs in reading data stored in the storage area of ​​the volatile memory, and the circumstances of the error in the storage area where the error occurred satisfy a predetermined first occurrence condition, the control device of the embodiment makes the storage area where the error occurred a read cache area for storing read data read from a predetermined storage unit.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present invention relate to a control device, a storage system, a control method, and a program.

Background Art

[0002] In a storage system including a volatile memory, conventionally, when an error occurs while reading data stored in the volatile memory, regardless of whether the error is a temporary error or a permanent error, a countermeasure has been taken not to use the storage area where the error has occurred. Therefore, there has been a problem that the storage areas not used in the volatile memory increase.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] The problem to be solved by the present invention is to provide a control device, a storage system, a control method, and a program that can suppress an increase in storage areas not used in a volatile memory.

Means for Solving the Problems

[0005] The control device of the embodiment is a control device that controls a volatile memory. When an error occurs in reading data stored in a storage area of the volatile memory and the occurrence status of the error in the storage area where the error has occurred satisfies a predetermined first occurrence condition, the control device of the embodiment makes the storage area where the error has occurred into a read cache area that stores read data read from a predetermined storage unit.

Brief Description of the Drawings

[0006] [Figure 1] A block diagram showing the configuration of the memory system according to the first embodiment. [Figure 2] A schematic diagram showing the area in the first volatile memory where data is stored. [Figure 3] A flowchart showing some of the processes performed by the control device of the first embodiment. [Figure 4] A flowchart showing the processing procedure for determining whether or not the first occurrence condition of the first embodiment has been met. [Figure 5] This diagram schematically shows the data storage area in the first volatile memory in the first embodiment, where one of the storage areas is designated as a read cache area. [Figure 6] A flowchart illustrating the process executed when accessing data stored in the memory area designated as the read cache area in the first embodiment. [Figure 7] A flowchart showing the processing procedure for determining whether the second occurrence condition of the first embodiment has been met. [Figure 8] This diagram schematically shows the memory area of ​​the first volatile memory in the first embodiment, where the memory area designated as the read cache area has become an unused memory area and alternative processing has been performed. [Figure 9] A block diagram showing a memory system of the second embodiment. [Modes for carrying out the invention]

[0007] The control device, storage system, control method, and program of the embodiment will be described below with reference to the drawings.

[0008] (First embodiment) Figure 1 is a block diagram showing the configuration of the storage system 100 according to the first embodiment. The storage system 100 shown in Figure 1 is a disk device equipped with a disk 10 as a storage unit. More specifically, the storage system 100 is a magnetic disk device with a built-in hard disk drive. The storage system 100 is capable of storing information as digital data. The storage system 100 is driven based on commands from a higher-level device 40. The higher-level device 40 is, for example, a personal computer. The higher-level device 40 is not particularly limited as long as it is a device that gives commands to the storage system 100. The higher-level device 40 is capable of causing the storage system 100 to record information and reading the data recorded in the storage system 100.

[0009] As shown in Figure 1, the storage system 100 includes a disk 10, a head 11, a spindle motor 12, a voice coil motor 13, a head amplifier IC 14, a driver IC 15, a control device 20, a first volatile memory 31, a second volatile memory 32, and a non-volatile memory 33. In the first embodiment, the disk 10 is a magnetic disk. In the first embodiment, the disk 10 corresponds to a predetermined storage unit. The disk 10 is rotated by the spindle motor 12. For example, multiple disks 10 are provided.

[0010] The head 11 is a magnetic head capable of reading data recorded on the disk 10 and writing data to the disk 10. Although not shown in the diagram, the head 11 has a read head for reading data recorded on the disk 10 and a write head for writing data to the disk 10. A head 11 is provided for each disk 10. The head 11 is moved by a voice coil motor 13 between a position facing the recording surface of the disk 10 and a position not facing the recording surface of the disk 10. In the position facing the recording surface of the disk 10, the head 11 can read data from the recording surface of the disk 10 and write data to the recording surface of the disk 10.

[0011] Although not shown in the diagram, the head amplifier IC 14 includes a read amplifier and a write driver. The read amplifier amplifies the signal of the data read from the disk 10 by the head 11 and outputs it to the read / write channel 23 in the control device 20, which will be described later. The write driver outputs a write current to the head 11 according to the data output from the read / write channel 23. The head 11 writes the data to the disk 10 based on the write current output from the write driver.

[0012] The driver IC 15 controls the driving of the spindle motor 12 and the voice coil motor 13 based on commands from the control device 20.

[0013] The control device 20 is a system controller that controls the memory system 100. The control device 20 is a large-scale integrated circuit (LSI), such as a system-on-a-chip (SoC), in which multiple elements are integrated onto a single chip. The control device 20 is electrically connected to the head amplifier IC 14, the driver IC 15, the first volatile memory 31, the second volatile memory 32, and the non-volatile memory 33. The control device 20 includes a microprocessor 21, a hard disk controller 22, and a read / write channel 23.

[0014] The hard disk controller 22 controls data transfer between the host device 40 and the read / write channel 23 based on commands from the microprocessor 21. The hard disk controller 22 is electrically connected to the microprocessor 21, the read / write channel 23, the head amplifier IC 14, the driver IC 15, the first volatile memory 31, the second volatile memory 32, and the non-volatile memory 33. The hard disk controller 22 includes an interface control unit 22a, a buffer control unit 22b, and a format control unit 22c. The interface control unit 22a controls the interface with the host device 40. The interface control unit 22a reads commands input from the host device 40 and performs data reception and transfer. The buffer control unit 22b temporarily records data input from the host device 40 via the interface control unit 22a and data read from the disk 10 in the first volatile memory 31. The format control unit 22c converts the format of data input from the buffer control unit 22b and data input from the read / write channel 23.

[0015] The read / write channel 23 performs signal processing on data sent from the disk 10 to the higher-level device 40 and data sent from the higher-level device 40 to the disk 10, based on commands from the microprocessor 21. The read / write channel 23 has, for example, a function to measure the signal quality of the data.

[0016] The first volatile memory 31 and the second volatile memory 32 are semiconductor memories in which the stored data is lost when the power supply is cut off. In the first embodiment, data is temporarily recorded in the first volatile memory 31 by the buffer control unit 22b. In the first embodiment, the first volatile memory 31 is a DRAM (Dynamic Random Access Memory). In the first embodiment, the first volatile memory 31 is used as a cache for read data read from the disk 10 which is a storage unit and write data written to the disk 10. Data necessary for processing in each part of the storage system 100 and the like is recorded in the second volatile memory 32. In the first embodiment, the second volatile memory 32 is an SRAM (Static Random Access Memory). The first volatile memory 31 and the second volatile memory 32 may be provided integrally as one volatile memory. The first volatile memory 31 may be an SRAM, SDRAM (Synchronous Dynamic Random Access Memory), FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetoresistive Random Access Memory), or the like. The second volatile memory 32 may be a DRAM, SDRAM, FeRAM, MRAM, or the like.

[0017] FIG. 2 is a diagram schematically showing the area where data is stored in the first volatile memory 31. As shown in FIG. 2, the first volatile memory 31 has a plurality of storage areas 31a. Each of the plurality of storage areas 31a can store data. A memory address is assigned to each storage area 31a. In the example of FIG. 2, an example is shown in which data is stored in the storage areas 31a with memory addresses from 1 to 4 respectively.

[0018] The data stored in each memory area 31a is one of read data, write data, and fixed data. The read data is data read from the disk 10 which is a storage unit. The write data is data written to the disk 10 which is a storage unit. The read data and the write data are cache data temporarily stored in the memory area 31a of the first volatile memory 31. The fixed data is data that is not rewritten from when the power of the storage system 100 is turned on until it is turned off. The fixed data is, for example, system data used for driving the storage system 100 and the like. In the first embodiment, the fixed data is data other than the read data and is data stored in the disk 10 which is a storage unit.

[0019] The non-volatile memory 33 is a semiconductor memory that continues to hold the recorded data even when the power supply is cut off. In the first embodiment, the non-volatile memory 33 is a flash memory. The non-volatile memory 33 is, for example, a NOR type or NAND type flash memory. At least a part of the program for driving the storage system 100 and data required before reading and writing data to and from the disk 10 are recorded in the non-volatile memory 33.

[0020] In Figure 1, the white arrows indicate the flow of user data UD. User data UD input from the host device 40 to the storage system 100 is input to the buffer control unit 22b via the interface control unit 22a, and is temporarily recorded in the first volatile memory 31 by the buffer control unit 22b. User data UD recorded in the first volatile memory 31 is read by the buffer control unit 22b and converted into a format that can be recorded on the disk 10 by the format control unit 22c. The converted user data UD is sent to the head amplifier IC 14 via the read / write channel 23 and written to the disk 10 by the head 11. When the host device 40 reads the user data UD recorded on the disk 10, for example, the user data UD is read in the reverse procedure of the procedure described above for writing the user data UD to the disk 10.

[0021] The microprocessor 21 is a control unit and main controller that controls each part of the storage system 100. The microprocessor 21 controls the voice coil motor 13 via the driver IC 15 and performs servo control to position the head 11. The microprocessor 21 controls the spindle motor 12 via the driver IC 15 to rotate the disk 10. The microprocessor 21 controls the data writing operation to the disk 10 (write operation). The microprocessor 21 selects the storage location for the data to be written to the disk 10. The microprocessor 21 controls the data reading operation (read operation) of the data recorded on the disk 10. The microprocessor 21 controls the processing of the data read from the disk 10. The microprocessor 21 is electrically connected to each part of the storage system 100.

[0022] The control device 20 includes a first counter 24a and a second counter 24b. The first counter 24a and the second counter 24b are counters that count the number of errors that occur when accessing the first volatile memory 31. Such errors are, for example, errors in which at least a portion of the data stored in the first volatile memory 31 cannot be read normally. Such errors include temporary errors and permanent errors. Temporary errors are soft errors that occur temporarily when reading data stored in the first volatile memory 31 due to the influence of noise or the like. Permanent errors are hard errors (permanent defects) that occur due to a physical problem in the storage area 31a of the first volatile memory 31.

[0023] The first counter 24a and the second counter 24b each count the number of errors that occur in each storage area 31a of the first volatile memory 31. The first counter 24a is a counter that counts the number of errors that can be corrected by the error correction function (ECC). The second counter 24b is a counter that counts the number of errors that cannot be corrected by the error correction function. The count of the first counter 24a is incremented when the control device 20 detects that an error that can be corrected by the error correction function has occurred. The count of the second counter 24b is incremented when the control device 20 detects that an error that cannot be corrected by the error correction function has occurred. The initial values ​​of the count of the first counter 24a and the count of the second counter 24b are, for example, 0.

[0024] The error correction function is a function provided in the storage system 100. The error correction function is a function that, when reading data from the first volatile memory 31, if a soft error or hard error occurs as described above and there is a loss or error in the data being read, can correct the loss or error if the amount of the loss or error is less than or equal to a predetermined amount. The error correction function cannot correct the loss or error if the amount of data loss or error caused by the soft error or hard error is greater than the predetermined amount. The amount of data that the error correction function can correct is not particularly limited. The error correction function may be provided in any part of the storage system 100. For example, the error correction function may be a function of the first volatile memory 31 or a function of the control device 20.

[0025] Figure 3 is a flowchart showing part of the processing performed by the control device 20 in the first embodiment. In the first embodiment, the control device 20 executes the processing shown in Figure 3 using a microprocessor 21. As shown in Figure 3, when a command to access data stored in the first volatile memory 31 is issued to the control device 20, the control device 20 accesses the data stored in the first volatile memory 31 (step S110). The command to access data stored in the first volatile memory 31 is input to the control device 20 from, for example, a host device 40. When the control device 20 accesses the data stored in the first volatile memory 31, it determines whether or not an error has occurred (step S120).

[0026] If no error occurs in reading the data stored in the first volatile memory 31 (step S120: NO), the control device 20 terminates the access process to the first volatile memory 31. If an error occurs in reading the data stored in the first volatile memory 31 (step S120: YES), the control device 20 determines whether the error situation satisfies a predetermined first occurrence condition (step S130).

[0027] Figure 4 is a flowchart showing the processing procedure for determining whether the first occurrence condition has been met. As shown in Figure 4, when an error occurs (step S120: YES), the control device 20 determines whether the error is an error that cannot be corrected by the error correction function (step S131). The control device 20 determines that the error is an error that cannot be corrected if the capacity of the missing or erroneous portion of the read data is greater than a predetermined capacity. The control device 20 determines that the error is a correctable error if the capacity of the missing or erroneous portion of the read data is less than or equal to a predetermined capacity. If the error is an error that cannot be corrected (step S131: YES), the control device 20 determines that the first occurrence condition has been met (step S130: YES). In the first embodiment, the occurrence of an error that cannot be corrected by the error correction function is a predetermined second determination condition. In other words, the control device 20 determines that the error occurrence situation satisfies the first occurrence condition when the second determination condition is met.

[0028] Furthermore, errors that cannot be corrected by the error correction function may be temporary soft errors or permanent hard errors (permanent defects). Therefore, when an error that cannot be corrected by the error correction function occurs, the control device 20 cannot determine whether the error is a soft error or a hard error.

[0029] If the error that occurred is a correctable error (step S131: NO), the control device 20 determines whether the number of errors correctable by the error correction function in the storage area 31a where the error occurred is greater than a first predetermined value (step S132). In step S132 of the first embodiment, the control device 20 determines whether the count of the first counter 24a in the storage area 31a where the error occurred is greater than a first predetermined value.

[0030] In step S132, the control device 20 determines that the first occurrence condition is not met if the count of the first counter 24a is less than or equal to a first predetermined value (step S130: NO). In step S132, the control device 20 determines that the first occurrence condition is met if the count of the first counter 24a is greater than the first predetermined value (step S130: YES). In the first embodiment, the first determination condition is that the count of errors that can be corrected by the error correction function is greater than the first predetermined value. In other words, the control device 20 determines that the error occurrence situation satisfies the first occurrence condition when the first determination condition is met. In the first embodiment, the first occurrence condition is that either the first determination condition or the second determination condition is met.

[0031] The first predetermined value is, for example, an integer greater than or equal to 1. The first predetermined value may also be 0. In this case, if even one correctable error occurs, the counter count of the first counter 24a becomes 1, which is greater than the first predetermined value. Therefore, when a correctable error occurs, the first determination condition is met, and the first occurrence condition is met.

[0032] In addition, in each of the multiple storage areas 31a, the count of the first counter 24a may be reset if no error occurs when accessing data stored in the storage area 31a. In this case, the control device 20 determines in step S132 that the first determination condition is met if errors occur consecutively more times than a first predetermined value when accessing data in the storage area 31a.

[0033] Furthermore, in each of the multiple storage areas 31a, the count of the first counter 24a may be reset each time the data stored in the storage area 31a is accessed a predetermined number of times. In this case, the control device 20 determines in step S132 that the first determination condition is met if more errors occur than a first predetermined value during the predetermined number of accesses to the data in the storage area 31a.

[0034] As shown in Figure 3, if the control device 20 determines that the error situation does not meet the first occurrence condition (step S130: NO), it terminates the access process to the first volatile memory 31. If the control device 20 determines that the error situation does meet the first occurrence condition (step S130: YES), it processes the data according to the data stored in the memory area 31a where the error occurred (step S140).

[0035] In step S140, if the data stored in the memory area 31a where the error occurred is fixed data, the control device 20 writes the data in the memory area 31a where the error occurred to another memory area 31a. In other words, if the data stored in the memory area 31a where the first occurrence condition is met is data other than read data read from the disk 10, which is the storage unit, and is data stored on the disk 10, the control device 20 writes the data to another memory area 31a of the first volatile memory 31. In step S140, if the data stored in the memory area 31a where the error occurred is read data, and the second determination condition is met and the first occurrence condition is met, the control device 20 writes the read data in the memory area 31a where the error occurred to another memory area 31a. The control device 20 may also write the read data back to the memory area 31a where the error occurred if the data was read data when the second determination condition is met and the first occurrence condition is met.

[0036] In step S140, if the control device 20 determines that the first occurrence condition is met because the first determination condition described above is met, and the stored data in the memory area 31a is fixed data, it copies the stored data in the memory area 31a and writes it to another memory area 31a, and deletes the stored data that was stored in the memory area 31a where the error occurred. In other words, in step S140, if the control device 20 determines that the first occurrence condition is met because the number of errors that can be corrected by the error correction function has become greater than a first predetermined value, it copies the fixed data stored in the memory area 31a and writes it to another memory area 31a.

[0037] In step S140, if the control device 20 determines that the first occurrence condition is met because the second determination condition described above is met, and the stored data in the storage area 31a is fixed data, it copies the fixed data stored on the disk 10 in the same way as when the fixed data stored in the storage area 31a where the error occurred was written, writes the fixed data to another storage area 31a, and deletes the fixed data that was stored in the storage area 31a where the error occurred. In other words, in step S140, if the control device 20 determines that the first occurrence condition is met because an error that cannot be corrected by the error correction function has occurred, it writes the fixed data to another storage area 31a in the same way as when the fixed data stored in the storage area 31a where the error occurred was written.

[0038] In step S140, if the data stored in the memory area 31a where the first occurrence condition is met is write data, the control device 20 processes the data according to whether the first occurrence condition was met by satisfying the first determination condition or the second determination condition. In step S140, if the control device 20 has determined that the first occurrence condition is met by satisfying the first determination condition described above, and the data stored in the memory area 31a is write data, it writes the write data to the disk 10 and deletes the write data that was stored in the memory area 31a. In step S140, if the control device 20 has determined that the first occurrence condition is met by satisfying the second determination condition described above, and the data stored in the memory area 31a is write data, it determines that there is a write error and sends a signal to the host device 40 indicating that a write error has occurred.

[0039] If the data to be written to the other storage area 31a in step S140 is read data, the control device 20 makes the other storage area 31a in a state where it can be overwritten. If the data to be written to the other storage area 31a in step S140 is fixed data, the control device 20 locks the other storage area 31a, making it impossible to overwrite. In step S140, if the control device 20 has determined that the first occurrence condition is met because the first determination condition described above is met, and the stored data in storage area 31a is write data, it may write the write data to the other storage area 31a. In this case, the control device 20 makes the other storage area 31a on which the write data has been written in a state where it can be overwritten.

[0040] In step S140, if the data stored in the memory area 31a where the error occurred is read data, and the first determination condition is met and the first occurrence condition is met, the control device 20 will keep the stored read data in the memory area 31a where the error occurred and will not write it to any other memory area 31a. However, if the data stored is read data when the first determination condition is met and the first occurrence condition is met, the control device 20 may write the read data to any other memory area 31a.

[0041] After performing step S140, the control device 20 converts the storage area 31a where the error occurred into a read cache area for storing read data read from disk 10 (step S150). In other words, when an error occurs in reading data stored in storage area 31a of the first volatile memory 31, and the error conditions satisfy a predetermined first occurrence condition, the control device 20 converts the storage area 31a where the error occurred into a read cache area for storing read data read from disk 10, which is a predetermined storage unit. The read cache area is an area where only read data is stored. No data other than read data is stored in the storage area 31a that has been designated as a read cache area. The control device 20 stores the memory address of the storage area 31a that has been designated as a read cache area in the non-volatile memory 33.

[0042] The control device 20 terminates the access process to the first volatile memory 31 after designating the storage area 31a, where the first occurrence condition is met, as a read cache area. If the second determination condition is met and the storage area 31a is designated as a read cache area, an uncorrectable error occurs when reading data from the storage area 31a. Therefore, the control device 20 is unable to correctly read the data when accessing the storage area 31a. In this case, if the data stored in the storage area 31a is read data or fixed data, the control device 20 can correctly read the data to be read from the storage area 31a by reading it from the disk 10, since the data is stored on the disk 10. On the other hand, if the data stored in the storage area 31a is write data, the control device 20 sends an error message to the host device 40 indicating that the data could not be read, and causes the host device 40 to issue a command to write the data again.

[0043] Figure 5 schematically shows the data storage area in the first volatile memory 31 when one storage area 31a is designated as a read cache area. Figure 5 shows an example where the storage area 31a with memory address 4 is the read cache area. In the example in Figure 5, the data 4 that was originally stored in the storage area 31a with memory address 4 is written to the storage area 31a with memory address N in step S140.

[0044] Figure 6 is a flowchart showing the process executed when accessing data stored in the storage area 31a designated as the read cache area. As shown in Figure 6, when the control device 20 receives a command to access data stored in the storage area 31a designated as the read cache area in step S150, among the multiple storage areas 31a of the first volatile memory 31, the control device 20 accesses the data stored in said storage area 31a (step S210).

[0045] When the control device 20 accesses data stored in the storage area 31a designated as the read cache area, it determines whether or not an error has occurred (step S220). If the control device 20 does not encounter an error in reading data stored in the storage area 31a designated as the read cache area (step S220: NO), it terminates the access process to the first volatile memory 31. If an error occurs in reading data stored in the storage area 31a designated as the read cache area (step S220: YES), the control device 20 determines whether or not the error situation satisfies a predetermined second occurrence condition (step S230).

[0046] Figure 7 is a flowchart showing the processing procedure for determining whether the second occurrence condition has been met. As shown in Figure 7, if the control device 20 determines in step S220 that an error has occurred (step S220: YES), it determines whether the accessed memory area 31a has become a read cache area by satisfying the first determination condition described above (step S231). If the control device 20 determines in step S231 that the memory area 31a has become a read cache area by satisfying the first determination condition (step S231: YES), it determines whether the error that occurred is an error that can be corrected by the error correction function (step S232). If the control device 20 determines in step S232 that the error is an error that can be corrected by the error correction function (step S232: YES), it determines whether the count of correctable errors in the accessed memory area 31a is greater than the second predetermined value (step S233). In step S233, the control device 20 determines whether the count of the first counter 24a in the accessed memory area 31a is greater than the second predetermined value.

[0047] The second predetermined value is, for example, an integer greater than or equal to 1. The second predetermined value may also be 0. The second predetermined value may be the same as the first predetermined value described above, or it may be different from the first predetermined value. The count of the first counter 24a in each storage area 31a may or may not be reset when each storage area 31a is designated as a read cache area. The second predetermined value is set appropriately depending on whether or not the second counter 24b is reset. If the first counter 24a is not reset when the storage area 31a is designated as a read cache area, the control device 20 adds the number of correctable errors that occurred in the storage area 31a after it became a read cache area to the count of the first counter 24a when the storage area 31a was designated as a read cache area. In this case, the control device 20 compares the total number of correctable errors from before it became a read cache area with the second predetermined value and makes the determination in step S233.

[0048] If the control device 20 determines in step S233 that the number of correctable errors is greater than the second predetermined value (step S233: YES), it determines that the second occurrence condition has been met (step S230: YES). In the first embodiment, when the first determination condition is met and the storage area 31a is set as the read cache area, the number of errors correctable by the error correction function being greater than the second predetermined value is a predetermined third determination condition. In other words, in the first embodiment, if the predetermined third determination condition is met, the control device 20 determines that the error occurrence status satisfies the second occurrence condition. If the control device 20 determines in step S233 that the number of correctable errors is less than or equal to the second predetermined value (step S233: NO), it determines that the second occurrence condition has not been met (step S230: NO).

[0049] If the control device 20 determines in step S232 that the error is an uncorrectable error (step S232: NO), it determines whether the count of uncorrectable errors in the accessed storage area 31a is greater than a third predetermined value (step S234). In step S234, the control device 20 determines whether the count of the second counter 24b in the accessed storage area 31a is greater than a third predetermined value.

[0050] The third predetermined value is, for example, an integer greater than or equal to 1. The third predetermined value may also be 0. The third predetermined value may also be, for example, less than the second predetermined value described above. The third predetermined value may also be the same as the second predetermined value, or greater than the second predetermined value. The third predetermined value may also be the same as the first predetermined value described above, or different from the first predetermined value. The count of the second counter 24b in each storage area 31a may or may not be reset when each storage area 31a is designated as a read cache area. The third predetermined value is set appropriately depending on whether or not the second counter 24b is reset. The second counter 24b does not need to count uncorrectable errors before the storage area 31a becomes a read cache area. In this case, the second counter 24b starts counting uncorrectable errors after the storage area 31a is designated as a read cache area.

[0051] If the control device 20 determines in step S234 that the count of uncorrectable errors is greater than the third predetermined value (step S234: YES), it determines that the second occurrence condition has been met (step S230: YES). In the first embodiment, when the first determination condition is met and the storage area 31a is set as the read cache area, the count of uncorrectable errors by the error correction function being greater than the third predetermined value is a predetermined fourth determination condition. In other words, in the first embodiment, if the predetermined fourth determination condition is met, the control device 20 determines that the error occurrence status satisfies the second occurrence condition. If the control device 20 determines in step S234 that the count of uncorrectable errors is less than or equal to the third predetermined value (step S234: NO), it determines that the second occurrence condition has not been met (step S230: NO).

[0052] If the control device 20 determines in step S231 that the storage area 31a does not satisfy the first determination condition and is not a read cache area, that is, if it determines that the storage area 31a has become a read cache area and satisfies the second determination condition (step S231: NO), it determines whether the total number of error counts is greater than a fourth predetermined value (step S235). The total number of error counts is the sum of the number of errors that can be corrected by the error correction function and the number of errors that cannot be corrected by the error correction function. In step S235, the control device 20 determines whether the sum of the counts of the first counter 24a and the second counter 24b in the accessed storage area 31a is greater than a fourth predetermined value.

[0053] The fourth predetermined value is, for example, an integer greater than or equal to 1. The fourth predetermined value may also be 0. The fourth predetermined value may be, for example, the same as any of the first predetermined value, second predetermined value, and third predetermined value described above, or it may be different from any of the first predetermined value, second predetermined value, and third predetermined value. The fourth predetermined value is set appropriately depending on whether or not the first counter 24a and the second counter 24b are reset when the memory area 31a is used as a read cache area. Each of the first predetermined value, second predetermined value, third predetermined value, and fourth predetermined value is determined for each product based on, for example, a specific test or specific verification. For example, if a specific test or specific verification yields results such as the probability of a permanent defect occurring in the memory area 31a is higher when a specific error occurs a certain number of times compared to when the specific error occurs less than a certain number of times, then each predetermined value is determined based on that certain number of occurrences.

[0054] Furthermore, a third counter may be provided that counts the number of errors regardless of whether the errors can be corrected or not by the error correction function. In this case, in step S235, the control device 20 may determine whether the count of the third counter is greater than a fourth predetermined value. The count of the third counter may be reset, or may not be reset, when the storage area 31a becomes a read cache area, similar to the first counter 24a and the second counter 24b.

[0055] If the control device 20 determines in step S235 that the error count is greater than the fourth predetermined value (step S235: YES), it determines that the second occurrence condition has been met (step S230: YES). In the first embodiment, when the second determination condition is met and the storage area 31a is set as a read cache area, the error count being greater than the fourth predetermined value is a predetermined fifth determination condition. In other words, in the first embodiment, if the predetermined fifth determination condition is met, the control device 20 determines that the error occurrence situation satisfies the second occurrence condition. If the control device 20 determines in step S235 that the error count is less than or equal to the fourth predetermined value (step S235: NO), it determines that the second occurrence condition has not been met (step S230: NO).

[0056] As described above, in the first embodiment, the second occurrence condition is that any one of the third, fourth, or fifth determination conditions is met.

[0057] Furthermore, regarding the count of the number of errors in the storage area 31a that has become a read cache area, the counts of the first counter 24a and the second counter 24b may be reset when no error occurs when accessing data in the storage area 31a, or they may be reset each time the data in the storage area 31a is accessed a predetermined number of times. In these cases, when the storage area 31a becomes a read cache area, the counts of the first counter 24a and the second counter 24b are reset.

[0058] As shown in Figure 6, if the control device 20 determines in step S230 that the second occurrence condition is not met (step S230: NO), it terminates the access process to the first volatile memory 31. If the control device 20 determines in step S230 that the second occurrence condition is met (step S230: YES), it performs a replacement process to replace the storage area 31a where the second occurrence condition is met with another storage area 31a (step S240). Once the replacement process is performed, the storage area 31a where the second occurrence condition is met becomes an unused storage area 31a, and when a command to use that storage area 31a is issued, the other replaced storage area 31a is used instead. In other words, if an error occurs in reading data stored in the storage area 31a designated as a read cache area and the error situation meets a predetermined second occurrence condition, the control device 20 makes the storage area 31a where the error occurred an unused storage area 31a and performs a replacement process to replace the storage area 31a where the error occurred with another storage area 31a. Furthermore, if the control device 20 determines in step S230 that the second occurrence condition has been met, it may simply designate the storage area 31a that has met the second occurrence condition as an unused storage area 31a without performing any alternative processing. In this case, after designating the storage area 31a as an unused storage area 31a, the control device 20 does not perform any data writing processing to the storage area 31a or data reading processing to the storage area 31a.

[0059] Figure 8 schematically shows the storage area of ​​the first volatile memory 31 when the storage area 31a designated as the read cache area becomes an unused storage area 31a and a replacement process is performed. In Figure 8, an example is shown where the storage area 31a with memory address 4, which was the read cache area, becomes an unused storage area 31a, and a replacement process is performed in which the storage area 31a with memory address 4 is replaced by the storage area 31a with memory address M. The information that the storage area 31a, which was the read cache area, has been replaced is stored in the non-volatile memory 33. The control device 20 stores the memory address of the storage area 31a that has become an unused storage area 31a, and the memory address of the other storage area 31a to be used in place of that storage area 31a, in the non-volatile memory 33.

[0060] In the first embodiment, there are three determination patterns for determining whether the memory area 31a becomes an unused memory area 31a and is replaced: a first determination pattern, a second determination pattern, and a third determination pattern. The first determination pattern is a pattern in which the first occurrence condition is met when the first determination condition is met, and the memory area 31a becomes a read cache area, and then the second occurrence condition is met when the third determination condition is met, and the memory area 31a becomes an unused memory area 31a and is replaced. The second determination pattern is a pattern in which the first occurrence condition is met when the first determination condition is met, and the memory area 31a becomes a read cache area, and then the second occurrence condition is met when the fourth determination condition is met, and the memory area 31a becomes an unused memory area 31a and is replaced. The third determination pattern is one in which the first occurrence condition is met when the second determination condition is met, so the memory area 31a becomes a read cache area, and then the second occurrence condition is met when the fifth determination condition is met, so the memory area 31a becomes an unused memory area 31a and is replaced.

[0061] In the third determination pattern, an uncorrectable error occurs when the storage area 31a is used as a read cache area, making it impossible to correctly read the data in the storage area 31a. Therefore, in the third determination pattern, if the data stored in the storage area 31a is read data, the control device 20 accesses the location on the disk 10 from which the read data was written to the storage area 31a, reads the read data, and writes the read data to another storage area 31a different from the storage area 31a where the error occurred, or writes it again to the storage area 31a where the error occurred. Also, in the third determination pattern, if the data stored in the storage area 31a is fixed data, the control device 20 accesses the location on the disk 10 from which the fixed data was written to the storage area 31a, reads the fixed data, and writes the fixed data to another storage area 31a different from the storage area 31a where the error occurred. In the third determination pattern, if the data stored in the memory area 31a is write data, the control device 20 sends, for example, an error indicating that the data could not be read to the higher-level device 40, and causes the higher-level device 40 to issue a command to write the data again.

[0062] If the stored data in the third determination pattern is read data, in step S140 the control device 20 may rewrite the read data to the memory area 31a where the error occurred, i.e., the memory area 31a designated as the read cache, or it may write it to another memory area 31a. In this case, the other memory area 31a to which the read data is written is made overwritable. If the stored data in the third determination pattern is write data, in step S140 the control device 20 writes the write data to another memory area 31a. In this case, the other memory area 31a to which the write data is written is made overwritable. If the stored data in the third determination pattern is fixed data, in step S140 the control device 20 writes the fixed data to another memory area 31a. In this case, the other memory area 31a to which the fixed data is written is made non-overwritable.

[0063] The non-volatile memory 33 stores whether each of the multiple storage areas 31a of the first volatile memory 31 is in a normal state, in a state designated as a read cache area, or in a state where it has become an unused storage area 31a and has been replaced. Therefore, even if the power to the storage system 100 is turned off and the data in the first volatile memory 31 is lost, the storage area 31a that was a read cache area before the power to the storage system 100 was turned off will become a read cache area again when the power to the storage system 100 is turned on again. Also, even if the power to the storage system 100 is turned off and the data in the first volatile memory 31 is lost, the storage area 31a that was an unused storage area 31a and had been replaced before the power to the storage system 100 was turned off will become an unused storage area 31a and be replaced again when the power to the storage system 100 is turned on again.

[0064] The control method for the first volatile memory 31 in the first embodiment is a control method performed by the control device 20 described above. At least a part of the functions of the control device 20 described above is realized, for example, by the microprocessor 21 executing a program, i.e., software, stored in the disk 10 or non-volatile memory 33. This program is a program that causes the control device 20, which is a computer, to execute the control method of the first embodiment. At least a part of the functions of the control device 20 may be realized by hardware including circuit parts such as LSI (Large Scale Integration), ASIC (Application Specific Integrated Circuit), FPGA (Field-Programmable Gate Array), and GPU (Graphics Processing Unit), or by cooperation between software and hardware. The control device 20 may be composed of multiple devices.

[0065] The medium on which the program causing the control device 20, which is a computer, to execute the control method of the first embodiment is stored is not particularly limited and may be a storage medium other than the disk 10 or the non-volatile memory 33. The storage medium may be another storage medium provided in the storage system 100, or it may be a storage medium provided separately from the storage system 100. Examples of such storage media include flexible disks, magneto-optical disks, RAM (Random Access Memory), ROM (Read Only Memory), CD-ROM, HDD (hard disk drive), SSD (Solid State Drive), and flash memory. The program causing the control device 20, which is a computer, to execute the control method of the first embodiment may be transmitted to the control device 20 via a telecommunications line.

[0066] According to the first embodiment, the control device 20 is a control device that controls the first volatile memory 31. When an error occurs in reading data stored in the storage area 31a of the first volatile memory 31, and the error situation in the storage area 31a where the error occurred satisfies a predetermined first occurrence condition, the control device 20 converts the storage area 31a where the error occurred into a read cache area that stores read data read from a predetermined storage unit, which is the disk 10. In other words, the control method for controlling the first volatile memory 31 includes converting the storage area 31a where the error occurred into a read cache area that stores read data read from the disk 10 when an error occurs in reading data stored in the storage area 31a of the first volatile memory 31 and the error situation satisfies a predetermined first occurrence condition. Therefore, even if an error occurs when reading data stored in the storage area 31a of the first volatile memory 31, the storage area 31a is not immediately converted into a storage area 31a that is not used, and the storage area 31a is used as a read cache area when the predetermined first occurrence condition is met. This prevents a large amount of unused storage area 31a in the first volatile memory 31 from occurring. Furthermore, since the read cache area is the area where read data read from the storage unit disk 10 is stored, the original data of the data stored in the read cache area is stored on disk 10. Therefore, even if an uncorrectable error occurs while using the storage area 31a where an error has occurred as the read cache area, making it impossible to read the read data stored in that storage area 31a, the read data can still be correctly read from disk 10. Thus, even if the storage area 31a where an error has occurred is used as a read cache area instead of immediately becoming unused storage area 31a, the impact on the storage system 100 is minimal, and malfunctions when the storage system 100 is used can be suppressed. If the storage unit where the read data is stored is a storage medium other than disk 10, the control device 20 can correctly read the read data from that other storage medium.

[0067] According to the first embodiment, the control device 20 determines that the error occurrence situation satisfies the first occurrence condition when a predetermined first determination condition is met. In other words, the control method of the first embodiment includes determining that the error occurrence situation satisfies the first occurrence condition when a predetermined first determination condition is met. The first determination condition is that the count of errors that can be corrected by the error correction function is greater than a first predetermined value. Here, even if an error that can be corrected by the error correction function occurs, the data read from the storage area 31a is corrected to correct data by the error correction function. Therefore, if the error that occurs is an error that can be corrected by the error correction function, the control device 20 can use the storage area 31a where the error occurs as if no error occurred. Thus, even if a correctable error occurs, there is no problem in reading data from the storage area 31a. On the other hand, even if an error is correctable, if it occurs frequently, there is a possibility that there is some kind of malfunction in the storage area 31a. Therefore, by appropriately setting the first predetermined value, if correctable errors do not occur frequently, the storage area 31a can be used in the same way as a normal storage area 31a, while if correctable errors occur frequently, the storage area 31a, which is relatively likely to have a malfunction, can be used as a read cache area.

[0068] According to the first embodiment, the control device 20 determines that the error occurrence situation satisfies the first occurrence condition when a predetermined second determination condition is met. In other words, the control method of the first embodiment includes determining that the error occurrence situation satisfies the first occurrence condition when a predetermined second determination condition is met. The second determination condition is that an error that cannot be corrected by the error correction function occurs. When an error that cannot be corrected by the error correction function occurs, it is not possible to correctly read data from the storage area 31a where the error occurred. Therefore, an uncorrectable error has a greater impact on the storage system 100 than a correctable error. Furthermore, when an uncorrectable error occurs, it is possible that the error is not a temporarily occurring soft error, but a permanently occurring hard error. Therefore, when an error that cannot be corrected by the error correction function occurs, the storage area 31a where the error occurred can be immediately converted into a read cache area to suppress malfunctions in the storage system 100.

[0069] According to the first embodiment, if the data stored in the storage area 31a where the first occurrence condition is met is data other than read data read from the disk 10, which is a storage unit, and is fixed data stored in the disk 10, the control device 20 writes the stored data to another storage area 31a of the first volatile memory 31. In other words, the control method of the first embodiment includes writing the stored data to another storage area 31a of the first volatile memory 31 if the data stored in the storage area 31a where the first occurrence condition is met is data other than read data read from the disk 10, which is a storage unit, and is fixed data stored in the disk 10. Therefore, even if the storage area 31a where the error occurred is used as a read cache area, the control device 20 can read the fixed data that was stored in the storage area 31a used as a read cache area by referring to the other storage area 31a. Thus, even if the storage area 31a where the error occurred is used as a read cache area, malfunctions in the storage system 100 can be further suppressed.

[0070] According to the first embodiment, when an error occurs in reading data stored in the storage area 31a designated as a read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the control device 20 designates the storage area 31a as an unused storage area 31a. In other words, the control device 20 of the first embodiment includes designating the storage area 31a where the error occurred as an unused storage area 31a when an error occurs in reading data stored in the storage area 31a designated as a read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition. A storage area 31a that frequently experiences errors even after being designated as a read cache area is highly likely to have a permanent hard error. Therefore, by appropriately setting the second occurrence condition and designating the storage area 31a where errors frequently occur as an unused storage area 31a, it is possible to suppress malfunctions in the storage system 100.

[0071] According to the first embodiment, the control device 20 determines that the error occurrence status satisfies the second occurrence condition when a predetermined third determination condition is met. In other words, the control method of the first embodiment includes determining that the error occurrence status satisfies the second occurrence condition when a predetermined third determination condition is met. The third determination condition is that, when the first determination condition is met and the storage area 31a is designated as a read cache area, the number of errors that can be corrected by the error correction function becomes greater than a second predetermined value. Even if an error can be corrected by the error correction function, if such an error occurs frequently, there is a high probability that a permanent malfunction, i.e., a permanent defect (hard error), has occurred in the storage area 31a where the error occurs. Therefore, the control device 20 determines that the second occurrence condition is met when the number of correctable errors becomes greater than the second predetermined value in the storage area 31a that has been designated as a read cache area because the number of correctable errors becomes greater than the first predetermined value, thereby making the storage area 31a that is likely to have a permanent defect not used. Thus, malfunctions in the storage system 100 can be further suppressed.

[0072] According to the first embodiment, the control device 20 determines that the error occurrence status satisfies the second occurrence condition when a predetermined fourth determination condition is met. In other words, the control method of the first embodiment includes determining that the error occurrence status satisfies the second occurrence condition when a predetermined fourth determination condition is met. The fourth determination condition is that, when the first determination condition is met and the storage area 31a is designated as a read cache area, the count of errors that cannot be corrected by the error correction function becomes greater than a third predetermined value. If uncorrectable errors frequently occur in the storage area 31a that has been designated as a read cache area because the count of correctable errors becomes greater than the first predetermined value, there is a high probability that a permanent defect has occurred in the storage area 31a. Therefore, the control device 20 determines that the second occurrence condition is met when the count of uncorrectable errors becomes greater than the third predetermined value in the storage area 31a that has been designated as a read cache area because the count of correctable errors becomes greater than the first predetermined value, thereby making the storage area 31a that is likely to have a permanent defect not used. Therefore, malfunctions in the memory system 100 can be more effectively suppressed.

[0073] Furthermore, uncorrectable errors have a greater impact on the storage system 100 than correctable errors. Therefore, for example, by making the third predetermined value smaller than the second predetermined value, if uncorrectable errors frequently occur in the storage area 31a designated as the read cache area, the storage area 31a can be quickly made into a storage area 31a that is not used. Thus, malfunctions in the storage system 100 can be further suppressed.

[0074] According to the first embodiment, the control device 20 determines that the error occurrence status satisfies the second occurrence condition when a predetermined fifth determination condition is met. In other words, the control method of the first embodiment includes determining that the error occurrence status satisfies the second occurrence condition when a predetermined fifth determination condition is met. The fifth determination condition is that, when the second determination condition is met and the storage area 31a is designated as a read cache area, the error count becomes greater than a fourth predetermined value. In a storage area 31a that has been designated as a read cache area due to an uncorrectable error, there is a higher probability of a permanent defect occurring than in a storage area 31a that has been designated as a read cache area due to the first determination condition being met. Therefore, the control device 20 determines that the second occurrence condition is met when the error count becomes greater than a fourth predetermined value, without distinguishing between correctable and uncorrectable errors, in a storage area 31a that has been designated as a read cache area due to an uncorrectable error. This allows the control device 20 to quickly designate a storage area 31a that is likely to have a permanent defect as a storage area 31a that is not used. Thus, malfunctions in the storage system 100 can be further suppressed.

[0075] According to the first embodiment, the control device 20 performs a replacement process in which, when the error occurrence conditions satisfy the second occurrence conditions, the memory area 31a where the error occurred is replaced by another memory area 31a. In other words, the control method of the first embodiment performs a replacement process in which, when the error occurrence conditions satisfy the second occurrence conditions, the memory area 31a where the error occurred is replaced by another memory area 31a. Therefore, another memory area 31a can be used in place of the memory area 31a that was designated as unused.

[0076] According to the first embodiment, the storage system 100 is a disk device equipped with a disk 10 as a storage unit. Therefore, regardless of the higher-level device 40 to which the disk device, which is the storage system 100, is connected, it is possible to suppress the occurrence of a large amount of unused storage area in the first volatile memory 31.

[0077] In the first embodiment, the non-volatile memory 33 may correspond to the "storage unit" together with the disk 10, or instead of the disk 10. In this case, the read data read from the non-volatile memory 33 is stored in the first volatile memory 31. Also in the first embodiment, the second volatile memory 32 may be controlled by the control device 20 in the same way as the first volatile memory 31.

[0078] (Second embodiment) Figure 9 is a block diagram of a storage system 200 according to a second embodiment. The storage system 200 shown in Figure 9 comprises a control device 220 and a storage device 201. The control device 220 is, for example, a personal computer. The storage device 201 is, for example, a magnetic disk device with a built-in hard disk drive. The storage device 201 may also be an SSD. The storage device 201 is connected to the control device 220. The storage device 201 has a volatile memory 231 and a storage unit 210. The volatile memory 231 is, for example, DRAM. The volatile memory 231 may also be SRAM, SDRAM, FeRAM, MRAM, etc. The volatile memory 231 is used as a cache for read data read from the storage unit 210 and write data written to the storage unit 210. If the storage device 201 is a magnetic disk device, the storage unit 210 is a magnetic disk. If the storage device 201 is an SSD, the storage unit 210 is flash memory.

[0079] The control device 220 controls the volatile memory 231. The method of controlling the volatile memory 231 by the control device 220 is the same as the method of controlling the first volatile memory 31 by the control device 20 in the first embodiment. Similar to the control device 20 in the first embodiment, the control device 220 uses the storage area of ​​the volatile memory 231 as a read cache area when a predetermined first occurrence condition is met. This suppresses the accumulation of unused storage area in the volatile memory 231, similar to the first embodiment.

[0080] According to at least one embodiment described above, the control device is a control device for controlling volatile memory. In the embodiment, when an error occurs in reading data stored in the storage area of ​​the volatile memory, and the error situation in the storage area where the error occurred satisfies a predetermined first occurrence condition, the control device makes the storage area where the error occurred a read cache area for storing read data read from a predetermined storage unit. As a result, even if an error occurs, the storage area of ​​the volatile memory does not immediately become an unused storage area 31a. Therefore, it is possible to suppress the accumulation of unused storage areas in the volatile memory.

[0081] The first occurrence condition is not particularly limited. For example, the first occurrence condition may be that an error occurs at least once, regardless of whether it is a correctable or uncorrectable error. The second occurrence condition is not particularly limited. For example, the second occurrence condition may be that an error occurs more than a predetermined number of times, regardless of the determination condition when it becomes a read cache area. The storage unit may be any storage medium as long as data is stored in it. In a storage system, the control unit, the storage unit, and the volatile memory may each be provided in separate devices.

[0082] The control device, storage system, control method, and program of the embodiment include the following appended embodiments. (Note 1) A control device for controlling volatile memory, A control device that, when an error occurs in reading data stored in the storage area of ​​the volatile memory, and the circumstances of the error in the storage area where the error occurred satisfy a predetermined first occurrence condition, converts the storage area where the error occurred into a read cache area for storing read data read from a predetermined storage unit. (Note 2) If a predetermined first determination condition is met, it is determined that the error occurrence conditions satisfy the first occurrence conditions. The control device according to Appendix 1, wherein the first determination condition is that the number of errors correctable by the error correction function is greater than a first predetermined value. (Note 3) If the predetermined second determination condition is met, it is determined that the error occurrence conditions satisfy the first occurrence condition. The control device according to Appendix 1 or Appendix 2, wherein the second determination condition is that the error that cannot be corrected by the error correction function occurs. (Note 4) A control device according to any one of the appendices 1 to 3, wherein if the stored data in the storage area where the first occurrence condition is met is data other than read data read from the storage unit, and is stored in the storage unit, the control device writes the stored data to another storage area of ​​the volatile memory. (Note 5) A control device according to any one of the appendices 1 to 4, wherein, when an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. (Note 6) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined third determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition. The control device according to Appendix 2, wherein the third determination condition is that when the first determination condition is met and the storage area is designated as the read cache area, the number of errors correctable by the error correction function is greater than a second predetermined value. (Note 7) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined fourth determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition. The control device according to Appendix 2, wherein, when the first determination condition is met and the storage area is designated as the read cache area, the number of errors that cannot be corrected by the error correction function is greater than a third predetermined value. (Note 8) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined fifth determination condition is met, it is determined that the error occurrence conditions satisfy the second occurrence condition. The control device according to Appendix 3, wherein the fifth determination condition is that when the second determination condition is met and the storage area is designated as the read cache area, the error count is greater than the fourth predetermined value. (Note 9) A control device according to any one of Appendix 5 to 8, which performs a replacement process to replace the memory area where the error occurred with another memory area when the circumstances of the error occurrence satisfy the second occurrence condition. (Note 10) A control device described in any one of the appendices 1 to 9, The aforementioned storage unit, The volatile memory and, A memory system equipped with the following features. (Note 11) The storage system described in Appendix 10, which is a disk device having a disk as the storage unit. (Note 12) A control method for controlling volatile memory, A control method that, when an error occurs in reading data stored in the storage area of ​​the volatile memory, and the error conditions in the storage area where the error occurred satisfy a predetermined first occurrence condition, includes making the storage area where the error occurred a read cache area for storing read data read from a predetermined storage unit. (Note 13) This includes determining that the circumstances of the error satisfy the first occurrence conditions when a predetermined first determination condition is met, The control method according to Appendix 12, wherein the first determination condition is that the number of errors correctable by the error correction function is greater than a first predetermined value. (Note 14) This includes determining that the circumstances of the error satisfy the first occurrence condition when a predetermined second determination condition is met, The control method according to Appendix 12 or Appendix 13, wherein the second determination condition is that the error that cannot be corrected by the error correction function occurs. (Note 15) A control method according to any one of Appendix 12 to Appendix 14, which includes, when an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. (Note 16) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When a predetermined third determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method according to Appendix 13, wherein the third determination condition is that when the first determination condition is met and the storage area is designated as the read cache area, the number of errors that can be corrected by the error correction function is greater than a second predetermined value. (Note 17) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When the predetermined fourth determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method as described in Appendix 13, wherein the fourth determination condition is that when the first determination condition is met and the storage area is designated as the read cache area, the number of errors that cannot be corrected by the error correction function is greater than a third predetermined value. (Note 18) When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When a predetermined fifth determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method according to Appendix 14, wherein the fifth determination condition is that when the second determination condition is met and the storage area is designated as the read cache area, the error count is greater than the fourth predetermined value. (Note 19) The control method according to any one of the appendices 15 to 18, which, when the circumstances of the occurrence of the error satisfy the second occurrence condition, performs a replacement process to replace the storage area where the error occurred with another storage area. (Note 20) A program that causes a computer to execute one of the control methods described in any one of the appendices 12 to 19.

[0083] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims and their equivalents. [Explanation of Symbols]

[0084] 4...Data, 10...Disk (storage unit), 20, 220...Control device, 31...First volatile memory (volatile memory), 31a...Storage area, 100, 200...Storage system, 210...Storage unit, 231...Volatile memory

Claims

1. A control device for controlling volatile memory, A control device that, when an error occurs in reading data stored in the storage area of ​​the volatile memory, and the circumstances of the error in the storage area where the error occurred satisfy a predetermined first occurrence condition, converts the storage area where the error occurred into a read cache area for storing read data read from a predetermined storage unit.

2. If a predetermined first determination condition is met, it is determined that the error occurrence conditions satisfy the first occurrence conditions. The control device according to claim 1, wherein the first determination condition is that the number of errors correctable by the error correction function is greater than a first predetermined value.

3. If the predetermined second determination condition is met, it is determined that the error occurrence conditions satisfy the first occurrence condition. The control device according to claim 1, wherein the second determination condition is that the error that cannot be corrected by the error correction function occurs.

4. The control device according to claim 1, wherein if the stored data in the storage area where the first occurrence condition is met is data other than read data read from the storage unit and is data stored in the storage unit, the control device writes the stored data to another storage area of ​​the volatile memory.

5. The control device according to claim 1, wherein, when an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is set to a storage area that is not used.

6. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined third determination condition is met, it is determined that the error occurrence conditions satisfy the second occurrence condition. The control device according to claim 2, wherein the third determination condition is that when the first determination condition is met and the storage area is set as the read cache area, the number of errors that can be corrected by the error correction function is greater than a second predetermined value.

7. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined fourth determination condition is met, it is determined that the error occurrence conditions satisfy the second occurrence condition. The control device according to claim 2, wherein, when the first determination condition is met and the storage area is designated as the read cache area, the count of errors that cannot be corrected by the error correction function is greater than a third predetermined value.

8. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. If the predetermined fifth determination condition is met, it is determined that the error occurrence conditions satisfy the second occurrence condition. The control device according to claim 3, wherein the fifth determination condition is that when the second determination condition is met and the storage area is designated as the read cache area, the error count is greater than the fourth predetermined value.

9. The control device according to claim 5, which, when the circumstances of the occurrence of the error satisfy the second occurrence condition, performs a replacement process to replace the storage area where the error occurred with another storage area.

10. A control device according to any one of claims 1 to 9, The aforementioned storage unit, The volatile memory and, A memory system equipped with the following features.

11. The storage system according to claim 10, wherein the storage unit is a disk device that includes a disk.

12. A control method for controlling volatile memory, A control method that, when an error occurs in reading data stored in the storage area of ​​the volatile memory, and the error conditions in the storage area where the error occurred satisfy a predetermined first occurrence condition, includes making the storage area where the error occurred a read cache area for storing read data read from a predetermined storage unit.

13. This includes determining that the circumstances of the error satisfy the first occurrence conditions when a predetermined first determination condition is met, The control method according to claim 12, wherein the first determination condition is that the number of errors correctable by the error correction function is greater than a first predetermined value.

14. This includes determining that the circumstances of the error satisfy the first occurrence condition when a predetermined second determination condition is met, The control method according to claim 12, wherein the second determination condition is that the error that cannot be corrected by the error correction function occurs.

15. The control method according to claim 12, further comprising, when an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used.

16. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When a predetermined third determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method according to claim 13, wherein the third determination condition is that when the first determination condition is met and the storage area is designated as the read cache area, the number of errors that can be corrected by the error correction function is greater than a second predetermined value.

17. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When the predetermined fourth determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method according to claim 13, wherein the fourth determination condition is that when the first determination condition is met and the storage area is designated as the read cache area, the number of errors that cannot be corrected by the error correction function is greater than a third predetermined value.

18. When an error occurs in reading data stored in the storage area designated as the read cache area, and the circumstances of the error satisfy a predetermined second occurrence condition, the storage area where the error occurred is designated as a storage area that is not used. When a predetermined fifth determination condition is met, it is determined that the circumstances of the error occurrence satisfy the second occurrence condition, Includes, The control method according to claim 14, wherein the fifth determination condition is that when the second determination condition is met and the storage area is designated as the read cache area, the error count is greater than the fourth predetermined value.

19. The control method according to claim 15, wherein, when the circumstances of the occurrence of the error satisfy the second occurrence condition, a replacement process is performed to replace the storage area where the error occurred with another storage area.

20. A program that causes a computer to execute the control method described in any one of claims 12 to 19.

Citation Information

Patent Citations

  • Data storage device

    JP2009283085A