WO2015181923A1 - Information processing device, control method, and control program - Google Patents
Information processing device, control method, and control program Download PDFInfo
- Publication number
- WO2015181923A1 WO2015181923A1 PCT/JP2014/064219 JP2014064219W WO2015181923A1 WO 2015181923 A1 WO2015181923 A1 WO 2015181923A1 JP 2014064219 W JP2014064219 W JP 2014064219W WO 2015181923 A1 WO2015181923 A1 WO 2015181923A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- replacement
- unit
- partitions
- data
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
Definitions
- a storage medium is used as a main storage of an embedded information device having a CPU (Central Processing Unit).
- a log is frequently written during execution of the microprogram in an area in which a log output by the CPU during execution of the microprogram is stored.
- no writing occurs in the area where the microprogram itself is stored unless the microprogram is updated. Therefore, for example, it is estimated that writing is performed at a frequency of several times a month or several times a year. Such a deviation in the number of times of writing becomes a cause of shortening the life of a storage medium (for example, a flash memory) in which the number of times of writing is limited.
- a storage medium for example, a flash memory
- a document discloses the following technology. Specifically, when the difference between the maximum erase count and the minimum erase count of the block erase count is equal to or greater than the reference count, the central controller determines that the data of the block with the minimum erase count and the data are Replace the data in the spare block that is not stored. However, when replacement is performed in this way, the number of erasures may increase after replacement.
- an object of the present invention is to equalize the number of times of writing in a storage medium in which the number of times of writing is limited.
- An information processing apparatus includes a storage unit having a plurality of partitions and storing an actual number of times of writing for each of the plurality of partitions, and an actual writing stored in the storage unit for each of the plurality of partitions. From the number of times, a first predicted value that is a predicted value of the number of times of writing when data replacement is not executed, and a predicted value of the number of times of writing when data replacement is executed for a pair of partitions that satisfy a predetermined condition When the maximum value of the first predicted values is greater than the maximum value of the second predicted values, the calculation unit that calculates the second predicted value, and a pair of partitions that satisfy a predetermined condition And a replacement unit for performing data replacement.
- the number of writes can be leveled on a storage medium with a limited number of writes.
- FIG. 1 is a diagram illustrating a hardware configuration of the information processing apparatus.
- FIG. 2 is a functional block diagram of the information processing apparatus.
- FIG. 3 is a processing flow for explaining an outline of processing executed by the information processing apparatus.
- FIG. 4 is a diagram illustrating a processing flow of processing executed by the trigger setting unit of the information processing apparatus.
- FIG. 5 is a diagram illustrating a processing flow of processing executed by the pace setting unit of the information processing apparatus.
- FIG. 6 is a diagram illustrating a processing flow of processing executed by the data setting unit of the information processing apparatus.
- FIG. 7 is a diagram illustrating a processing flow of processing executed by the partition setting unit of the information processing apparatus.
- FIG. 8 is a diagram illustrating an example of data stored in the set value storage unit.
- FIG. 9 is a diagram showing a main processing flow.
- FIG. 10 is a diagram illustrating a processing flow of determination processing.
- FIG. 11 is a diagram illustrating a processing flow of prediction processing.
- FIG. 12 is a diagram illustrating an example of data stored in the partition data storage unit.
- FIG. 13 is a diagram illustrating a list structure according to the present embodiment.
- FIG. 14 is a diagram for explaining generation of the list L6.
- FIG. 15 is a diagram illustrating a processing flow of pace management processing.
- FIG. 16 is a diagram illustrating a processing flow of frequency update processing.
- FIG. 17 is a diagram illustrating an example of data stored in the main memory in the frequency update process.
- FIG. 18 is a diagram illustrating a processing flow of list update processing.
- FIG. 19 is a diagram showing a comparative example of the state of the flash memory.
- FIG. 20 is a diagram showing a specific example of the state of the flash memory.
- FIG. 1 shows a hardware configuration of the information processing apparatus 1 in the present embodiment.
- the information processing apparatus 1 includes a flash memory 11 having a plurality of partitions, a processor 13 that is a CPU, for example, and a main memory 15 that is a dynamic random access memory (DRAM), for example.
- the processor 13 is connected to the flash memory 11 and the main memory 15 via a bus or the like.
- a program for executing the processing of the present embodiment is stored in the flash memory 11 and is read from the flash memory 11 to the main memory 15 when executed by the processor 13.
- the program for executing the processing of the present embodiment is included in, for example, an OS (Operating System) program or firmware.
- OS Operating System
- FIG. 2 shows a functional block diagram of the information processing apparatus 1 in the present embodiment.
- the information processing apparatus 1 includes a trigger setting unit 101, a pace setting unit 102, a data setting unit 103, a section setting unit 104, a set value storage unit 105, a trigger detection unit 106, a determination unit 107, and a prediction unit. 108, a partition data storage unit 109, an addition unit 110, a first list update unit 111, a frequency update unit 112, a second list update unit 113, a pace management unit 114, and a replacement unit 115.
- the set value storage unit 105 and the partition data storage unit 109 are provided in the flash memory 11, for example.
- the trigger setting unit 101 receives an input of a trigger setting value and stores it in the setting value storage unit 105.
- the pace setting unit 102 receives an input of a pace setting value and stores it in the setting value storage unit 105.
- the data setting unit 103 receives an input of a data set value and stores it in the set value storage unit 105.
- the partition setting unit 104 receives an input of a set value of the partition and stores it in the set value storage unit 105.
- the trigger detection unit 106 detects a trigger using the set value of the trigger stored in the set value storage unit 105 and calls the determination unit 107.
- the determination unit 107 calls the prediction unit 108.
- the prediction unit 108 uses the data stored in the partition data storage unit 109 as a predicted value of the number of writings when the replacement is not executed (hereinafter referred to as a first predicted value of the number of writings). Then, a predicted value of the number of writings when the replacement is executed (hereinafter referred to as a second predicted value of the number of writings) is calculated and notified to the determination unit 107.
- the determination unit 107 determines whether to perform replacement using the data received from the prediction unit 108 and the data stored in the setting value storage unit 105. When performing replacement, the determination unit 107 calls the pace management unit 114.
- the pace management unit 114 uses the data stored in the set value storage unit 105 to control the pace at which the replacement unit 115 executes replacement.
- the replacement unit 115 performs replacement in accordance with the control of the pace management unit 114.
- the pace management unit 114 calls the frequency update unit 112.
- the frequency update unit 112 changes the writing frequency for the section that has been replaced.
- the frequency update unit 112 calls the second list update unit 113.
- the second list updating unit 113 sets a pointer in the ascending order of the writing frequency stored in the partition data storage unit 109.
- the addition unit 110 updates the number of times of writing stored in the partition data storage unit 109.
- the addition unit 110 calls the first list update unit 111.
- the first list updating unit 111 sets a pointer in the ascending order list of the number of writings stored in the partition data storage unit 109.
- the addition unit 110 calls the frequency update unit 112.
- the frequency updating unit 112 updates the writing frequency for the partition in which writing has been performed.
- the frequency update unit 112 calls the second list update unit 113. In response to this, the second list updating unit 113 sets a pointer in the ascending order of the writing frequency stored in the partition data storage unit 109.
- the adding unit 110 detects that writing to the flash memory 11 has been performed (FIG. 3: step S1001). Then, the adding unit 110 updates the number of times of writing stored in the partition data storage unit 109 for the partition in which writing has been performed. Also, the frequency update unit 112 updates the writing frequency stored in the partition data storage unit 109 for the partition in which writing has been performed (step S1003).
- the trigger detection unit 106 determines whether a trigger is detected using the trigger setting value stored in the setting value storage unit 105 (step S1005). When the trigger is not detected (step S1005: No route), it is not the timing for calculating the predicted value, so the process returns to step S1001.
- the prediction unit 108 uses the data stored in the partition data storage unit 109 to calculate the first predicted value of the number of writes (that is, when no replacement is performed). A predicted value of the number of times of writing) is calculated for each partition (step S1007).
- the prediction unit 108 identifies the partition where the replacement is performed using the data stored in the partition data storage unit 109 (step S1009). Then, the prediction unit 108 calculates a second predicted value of the number of writes (that is, a predicted value of the number of writes when replacement is performed) for each partition (step S1011).
- the determination unit 107 determines whether to perform replacement using the first prediction value and the second prediction value calculated by the prediction unit 108 (step S1013). When the replacement is not executed (step S1013: No route), the process returns to step S1001.
- step S1013 When executing replacement (step S1013: Yes route), the replacement unit 115 performs replacement at the pace set by the pace management unit 114 (step S1015). Then, the frequency updating unit 112 replaces the writing frequency stored in the partition data storage unit 109 with respect to the replaced partition (step S1017). Then, the process ends.
- the replacement can be performed after confirming that the replacement is effective, so that the number of writes can be effectively leveled.
- the trigger setting unit 101 determines whether an input of a set value of a trigger (in this embodiment, a trigger for the determination unit 107 to start processing) has been detected (FIG. 4: step S1).
- the set value of the trigger is input by, for example, an administrator.
- step S1 No route
- the process returns to step S1.
- step S1 Yes route
- the trigger setting unit 101 determines whether the trigger setting value includes the time setting value (step S3).
- the process proceeds to step S7.
- the trigger setting unit 101 stores the time setting value in the setting value storage unit 105 (step S5).
- the trigger setting unit 101 determines whether the trigger setting value includes a setting value for an event (for example, a decrease in CPU load) (step S7). If the trigger setting value does not include the event setting value (step S7: No route), the process returns to step S1. On the other hand, when the trigger setting value includes the event setting value (step S7: Yes route), the trigger setting unit 101 stores the event setting value in the setting value storage unit 105 (step S9). Then, the process returns to step S1.
- a setting value for an event for example, a decrease in CPU load
- the trigger setting value can be used in the processing described later.
- the pace setting unit 102 determines whether or not an input of a set value of a pace (in this embodiment, the amount of data moved by one replacement) is detected (FIG. 5: step S11).
- the set value of the pace is input by, for example, an administrator.
- step S11: No route the process returns to step S11.
- step S11: Yes route the pace setting unit 102 stores the pace setting value in the setting value storage unit 105 (step S13). Then, the process returns to step S11.
- the pace setting value can be used in the processing described later.
- the data setting unit 103 determines whether an input of a data setting value (in this embodiment, a setting value indicating whether or not replacement can be performed on data) is detected (FIG. 6: Step S21).
- the data set value is input by, for example, an administrator.
- step S21: No route the process returns to step S21.
- step S21: Yes route the data setting unit 103 stores the data set value in the set value storage unit 105 (step S23). Then, the process returns to step S21.
- the data set value can be used in the processing described later.
- step S31 the partition setting process executed by the partition setting unit 104 of the information processing apparatus.
- the partition setting unit 104 detected an input of a partition setting value (in this embodiment, a setting value indicating whether or not replacement of data stored in the partition can be performed)? Judgment is made (FIG. 7: step S31).
- the set value of the section is input by, for example, an administrator.
- step S31: No route the process returns to step S31.
- step S31 Yes route
- the partition setting unit 104 stores the set value of the partition in the set value storage unit 105 (step S33). Then, the process returns to step S31.
- FIG. 8 shows an example of data stored in the set value storage unit 105.
- a time setting value, an event setting value, a pace setting value, a data setting value, and a section setting value are stored.
- the time setting value is valid.
- the determination unit 107 starts processing when the value of the CPU load is equal to or less than a predetermined reference value.
- the value of the IO (Input / Output) load flag in the set value of the event is 1, the determination unit 107 starts processing when the value of the IO load becomes equal to or less than a predetermined reference value.
- the value of the replacement flag in the data setting value is 1, replacement can be performed on the data.
- the value of the replacement flag in the section setting value is 1, replacement can be performed on the data stored in the section.
- the trigger detection unit 106 acquires the current time from the OS (FIG. 9: Step S41).
- the trigger detection unit 106 determines whether or not the current time acquired in step S41 is later than the set time represented by the set value of the time stored in the set value storage unit 105 (step S43). If the current time is after the set time (step S43: Yes route), the process proceeds to step S55.
- step S43 Yes route
- the trigger detection unit 106 determines whether the value of the CPU load flag stored in the set value storage unit 105 is 1 (step S45). . When the value of the CPU load flag is not 1 (step S45: No route), the process proceeds to step S51.
- step S45 When the value of the CPU load flag is 1 (step S45: Yes route), the trigger detection unit 106 acquires the value of the CPU load from the OS (step S47). The trigger detection unit 106 determines whether the CPU load value acquired in step S47 is equal to or less than a predetermined reference value (step S49). When the CPU load value is equal to or less than the predetermined reference value (step S49: Yes route), the process proceeds to step S55.
- step S49 When the value of the CPU load is larger than the predetermined reference value (step S49: No route), the trigger detection unit 106 indicates that the trigger detection unit 106 indicates that the IO load flag value stored in the set value storage unit 105 is 1. It is determined whether or not there is (step S50). If the value of the IO load flag is not 1 (step S50: No route), the process returns to step S41.
- step S50 When the value of the IO load flag is 1 (step S50: Yes route), the trigger detection unit 106 acquires the value of the IO load from the OS (step S51).
- the trigger detection unit 106 determines whether the IO load value acquired in step S51 is equal to or less than a predetermined reference value (step S53). If the IO load value is not less than or equal to the predetermined reference value (step S53: No route), the process returns to step S41.
- step S53 Yes route
- the trigger detection unit 106 calls the determination unit 107.
- the determination part 107 performs a determination process (step S55). The determination process will be described with reference to FIG.
- the determination unit 107 specifies “no replacement” as an argument and calls the prediction unit 108.
- the prediction unit 108 executes a prediction process (FIG. 10: step S61). The prediction process will be described with reference to FIGS. 11 to 13.
- FIG. 12 shows an example of data stored in the partition data storage unit 109.
- the number of partitions is n (n is a natural number of 2 or more), and partition data is stored for each of the n partitions.
- the partition data includes a partition identifier, a write count, a pointer in the list L1 that is a list of the write count, a first predicted value of the write count, and a list L2 that is a list of the first predicted value of the write count.
- the second predicted value of the write count, the list L3 that is a list of the second predicted value of the write count, the write frequency, the pointer in the list L4 that is the list of the write frequency, and the write when the replacement is executed It includes a pointer in a list L5 that is a list of frequencies (hereinafter referred to as post-replacement writing frequency) and a pointer in a list L6 that is a list of partitions on which replacement is performed.
- the partition data storage unit 109 stores the pointers of the anchors in the lists L1 to L6.
- FIG. 13 shows the structure of the list in the present embodiment.
- a pointer that points to the previous element (hereinafter referred to as the previous element pointer) and a pointer that points to the next element (hereinafter referred to as the next element pointer) are added to each element.
- the previous element pointer added to the anchor is “NULL”, and the next element pointer points to the first element (element [x] in the example of FIG. 13).
- the lists L1 to L5 in the present embodiment are lists arranged so that element values are in ascending order. Therefore, the value of the element indicated by the previous element pointer of the anchor is the smallest and the value of the last element is the largest.
- the prediction unit 108 sets the pointer in the list L2 (that is, the list of the first predicted value of the number of writes) in ascending order of the first predicted value of the number of writes according to the processing result of step S83. (Step S85). Then, the process returns to the calling process. Note that step S87 and subsequent steps in the determination process (FIG. 11) will be described later.
- the determination unit 107 specifies the maximum value M1 among the first predicted values of the number of writes from the list L2 (that is, the list of the first predicted values of the number of times of writing) (Step S63). ).
- the determination unit 107 generates a list L7 of partitions that are not replacement targets by using the data setting values and the partition setting values stored in the setting value storage unit 105 (step S65).
- the list L7 includes identifiers of sections that are not replacement targets. For example, when the replacement flag for data A is not 1, the identifier of the partition in which data A is stored is included in the list L7. For example, when the replacement flag for the section Sa is not 1, the identifier of the section Sa is included in the list L7.
- the determination unit 107 calls the prediction unit 108 by designating “with replacement” and “list L7” as arguments. In response to this, the prediction unit 108 executes a prediction process (step S67). The prediction process will be described with reference to FIGS. 11 and 14.
- the prediction unit 108 determines whether “replacement is present” is designated as an argument (FIG. 11: step S81). When “with replacement” is specified as the argument (step S81: Yes route), the prediction unit 108 uses the number of writes stored in the partition data storage unit 109 to execute the list L6 (that is, replacement is executed). A list of sections to be generated) (step S87).
- step S87 first, a difference in the number of writing times is calculated for a pair of partitions selected from the list L1 (that is, a list of the number of writing times), and it is determined whether the calculated difference is equal to or greater than a predetermined value.
- the pair of sections is selected as shown in FIG. That is, the pair including the partition with the largest number of writes and the partition with the smallest number of writes is selected, then the partition with the second largest number of writes and the partition with the second smallest number of writes are selected, and the next In addition, the partition with the third largest number of writes and the partition with the third smallest number of writes are selected.
- the prediction unit 108 copies the pointer in the list L4 stored in the partition data storage unit 109 to the pointer in the list L5 (step S89). Further, the prediction unit 108 copies the writing frequency stored in the partition data storage unit 109 to the writing frequency after replacement for each partition (step S91).
- the prediction unit 108 identifies a pair of partitions using the list L6 (that is, the list of partitions to be replaced) and the list L5 (that is, the list of write frequencies after replacement), and writes after replacement for the specified pair. Frequency replacement is executed (step S93).
- the prediction unit 108 calculates a second predicted value of the number of times of writing after a predetermined time has elapsed for each partition (step S95) and stores it in the partition data storage unit 109.
- the second predicted value of the number of write times the number of write times + (write frequency after replacement * predetermined time).
- the prediction unit 108 sets the pointers in the list L3 (that is, the list of second predicted values of the number of writes) according to the processing result of step S95 so that the second predicted value of the number of writes is in ascending order (step S97). Then, the process returns to the calling process.
- the first predicted value and the second predicted value of the number of writes can be easily calculated by using the write frequency.
- the determination unit 107 identifies the maximum value M2 of the second predicted values of the number of writes from the list L3 (that is, the list of second predicted values of the write frequency) (step S69). ).
- the determination unit 107 determines whether M1> M2 is satisfied (step S71). When M1> M2 is not satisfied (step S71: No route), the process returns to the caller process.
- step S73 Yes route
- the determination unit 107 calls the pace management unit 114 by designating “list L6” as an argument.
- the pace management unit 114 executes pace management processing (step S73). The pace management process will be described with reference to FIG.
- the pace management unit 114 determines whether it is the first execution (FIG. 15: step S101). In the case of the first execution (step S101: Yes route), the pace management unit 114 displays the pace setting values stored in the setting value storage unit 105 and the list L6 (that is, a list of sections on which replacement is executed). The number of executions, the amount of data for one execution, and the execution interval are determined (step S103) and stored in the main memory 15. For example, it is assumed that the number of sections included in the list L6 is 100, the capacity of one section is 1 megabyte, and the set value of the pace is 10 megabytes / second.
- the data amount for one execution is 10 megabytes and the execution interval is 1 second.
- the number of executions is 20, the amount of data for one execution is 5 megabytes, and the execution interval is 0.5 seconds.
- the pace management unit 114 stores data indicating that replacement is being performed in the main memory 15 (step S105).
- step S101 No route
- the pace management unit 114 acquires the current time from the OS (step S107).
- the pace management unit 114 determines whether the time corresponding to the execution interval has elapsed since the previous execution time (step S109). In step S109, it is determined whether the time at which the execution interval has elapsed from the previous execution time is later than the current time. The previous execution time is stored in the main memory 15 in step S115 described later. The execution interval is determined in step S103.
- step S109 If the time corresponding to the execution interval has not elapsed since the previous execution time (step S109: No route), the processing returns to step S101.
- the pace management unit 114 calls the replacement unit 115.
- the replacement unit 115 performs data replacement by the amount of data determined in step S103 (step S111). In step S111, for example, the data in the section to be replaced is moved to the main memory 15, and then moved to the replacement destination section.
- the pace manager 114 determines whether the actual number of executions has reached the number of executions determined in step S103 (step S113). If not reached (step S113: No route), the pace management unit 114 stores the time when the replacement is executed in the main memory 15 as the previous execution time (step S115). Then, the process returns to step S101.
- step S113 Yes route
- the pace management unit 114 indicates that the replacement stored in the main memory 15 in step S105 is being executed.
- the indicated data is deleted (step S117).
- the pace management unit 114 calls the frequency update unit 112 by designating “replacement” as an argument. In response to this, the frequency update unit 112 executes a frequency update process (step S119).
- the frequency update process will be described with reference to FIG.
- the frequency update unit 112 determines whether “replacement” is designated as an argument (step S121).
- “replacement” is designated as an argument (step S121: Yes route)
- the call is a call from the pace management unit 114. Therefore, the frequency update unit 112 performs replacement of the writing frequency stored in the partition data storage unit 109 for the partition that has been replaced (step S123). In step S123, the same replacement as in step S93 is performed.
- the frequency update unit 112 calls the second list update unit 113 with “replacement” specified as an argument.
- the second list update unit 113 executes a list update process (step S125).
- the list update process will be described later.
- step S121 when it is determined in step S121 that “replacement” is not specified as an argument (step S121: No route), the call is a call from the addition unit 110. Therefore, the frequency update unit 112 acquires the current time from the OS (step S127).
- FIG. 17 shows an example of data stored in the main memory 15.
- the update interval, the old measurement time, the measurement time, and the previous time are stored.
- the old measurement time is the time from the start time to the previous time.
- the measurement time is the time from the start time to the current time.
- the previous time is the time when the previous update was performed.
- the frequency update unit 112 sets the previous time (step S137).
- step S137 the previous time stored in the main memory 15 is updated with the current time.
- the frequency update unit 112 calls the second list update unit 113 by designating “update” as an argument.
- the second list update unit 113 executes list update processing (step S139).
- the list update process will be described with reference to FIG.
- the second list updating unit 113 determines whether “replacement” is designated as an argument (FIG. 18: step S141).
- “replacement” is specified as an argument (step S141: Yes route)
- the second list update unit 113 sets a pointer in the list L4 (that is, a list of write frequencies) based on the write frequency after replacement. (Step S145).
- the setting is performed so that the writing frequency after replacement is in ascending order.
- step S141 when “replacement” is not specified as an argument (step S141: No route), the second list updating unit 113 sets a pointer in the list L4 based on the updated writing frequency (step S143). Here, the setting is performed so that the updated writing frequency is in ascending order. Then, the process returns to step S41.
- the processing as described above is executed, it is ensured that the replacement is effective by comparing the predicted values, so that the number of writing can be effectively leveled. Further, since the pair of partitions is selected as shown in FIG. 14, the pair that does not contribute to the leveling of the number of times of writing is eliminated, and the leveling can be performed effectively. In addition, it is possible to calculate a predicted value that reflects an increase in the number of writes due to replacement.
- the flash memory has eight partitions (partitions s0 to s7), and the upper limit of the number of times of writing in the partition is 100.
- Data a consumes 4 sections, and the update frequency of data a is lower than that of data b.
- Data b consumes 3 sections, and the update frequency of data b is higher than data a.
- Time zones t0 to t3 are times having a certain length.
- any of the sections s0 to s7 is set to an empty state, and the empty sections are circulated.
- time zone t0 there is no write request and no write is performed.
- time zone t1 there are 53 write requests for data b. Since the section s7 is in an empty state in the time zone t1, the number of writes in the sections s4 to s6 is incremented by 53.
- time zone t2 replacement is performed and there is a write request of 37 for data b. Since the data b is stored in the partitions s0, s1, and s3 in the time zone t2, the number of times of writing in the partitions s0, s1, and s3 is incremented by 37. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
- time zone t3 replacement is performed and there is an 8 write request for data b. Since the data b is stored in the partitions s4, s6, and s7 in the time zone t3, the number of writes in the partitions s4, s6, and s7 is incremented by 8. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
- time zone t4 replacement is performed, and there are 43 write requests for data b. Since the data b is stored in the partitions s1, s3, and s4 in the time zone t4, the number of writes in the partitions s1, s3, and s4 is incremented by 43. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
- time zone t5 replacement is performed, and there are 32 write requests for data b. Since the data b is stored in the partitions s4, s6, and s7 in the time zone t5, the number of writes in the partitions s4, s6, and s7 is incremented by 32. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one. At this time, the number of times of writing in the section s6 reaches the upper limit. The number of write requests processed is 173. Compared with the example of FIG. 19, a write request of 173 / 98 ⁇ 1.8 times can be processed.
- the present invention is not limited to this.
- the functional block configuration of the information processing apparatus 1 described above may not match the actual program module configuration.
- each data holding form described above is an example, and the configuration as described above does not have to be. Further, regarding the processing flow, as long as the processing result does not change, the processing order may be changed or a plurality of steps may be executed in parallel.
- a pair may be selected more flexibly by dynamically changing the predetermined value used in step S87.
- the format of the lists L1 to L6 may be an array format or a red-black tree format.
- the information processing apparatus 1 may be a personal computer or a portable terminal (for example, a smartphone) equipped with an SSD (Solid State Drive).
- a portable terminal for example, a smartphone
- SSD Solid State Drive
- the information processing apparatus includes (A) a storage unit that has a plurality of sections and stores the actual number of times of writing for each of the plurality of sections, and (B) a plurality of sections For each of the data, the first predicted value, which is the predicted value of the number of writes in the case where data replacement is not performed, and the pair of partitions satisfying the predetermined condition, from the actual number of writes stored in the storage unit.
- a calculation unit that calculates a second predicted value that is a predicted value of the number of times of writing when the replacement is performed; and (C) a maximum value among the first predicted values is a maximum value among the second predicted values.
- the calculation unit described above uses (b1) the actual number of times of writing in the first section of the pair of sections and the first writing frequency calculated from the actual number of writes in the first section.
- the first predicted value of the first partition is calculated, and (b2) the second calculated from the actual number of writes of the first partition and the actual number of writes of the second partition in the pair of partitions. May be used to calculate the second predicted value of the first partition. In this way, the predicted value can be easily obtained.
- the predetermined condition described above is that a difference between the first predicted value of the first partition of the pair of partitions and the first predicted value of the second partition of the pair of partitions is equal to or greater than a predetermined value. It may include a condition that In this way, it is possible to perform replacement for a pair of sections that contribute to leveling of the number of writes.
- first partition and the second partition may be selected so that the difference between the first predicted value of the first partition and the first predicted value of the second partition is maximized. In this way, the most effective pair can be selected.
- the information processing apparatus may further include (D) a determination unit that determines a partition that is not a replacement target based on the second setting value acquired in advance.
- the predetermined condition described above may further include a condition that the first section and the second section are sections other than the sections that are not to be replaced. In this way, it is possible to prevent replacement of data or sections that should not be replaced.
- the information processing apparatus may further include (E) a control unit that causes the calculation unit and the replacement unit to start processing when a predetermined time has elapsed or when a predetermined event has occurred. In this way, processing can be performed at an appropriate timing, so that waste of resources of the information processing apparatus can be suppressed.
- the information processing apparatus calculates (F) the interval for executing the replacement, the number of times of replacement, and the amount of data moved by one replacement based on the first setting value acquired in advance, and based on the calculation result
- the storage unit described above may be (a1) a storage medium having an upper limit on the number of times of writing.
- the control method includes (G) a storage unit for each of a plurality of partitions in a storage unit that has a plurality of partitions and stores the actual number of times of writing for each of the plurality of partitions.
- a storage unit for each of a plurality of partitions in a storage unit that has a plurality of partitions and stores the actual number of times of writing for each of the plurality of partitions.
- the program is a computer-readable storage such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, and a hard disk.
- a medium or storage device Stored in a medium or storage device.
- the intermediate processing result is temporarily stored in a storage device such as a main memory.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
This information processing device is provided with: a storage unit which is provided with a plurality of partitions, and which stores the actual write frequency for each of the plurality of partitions; a calculation unit which calculates, for each of the plurality of partitions, from the actual write frequencies stored in the storage unit, a first prediction value, i.e. a prediction value of the write frequency in cases when data replacement is not performed, and a second prediction value, i.e. a prediction value of the write frequency in cases when data replacement is performed with respect to partition pairs satisfying prescribed conditions; and a replacement unit which, in cases when the highest value among the first prediction values is higher than the highest value among the second prediction values, performs data replacement with respect to the partition pairs satisfying the prescribed conditions.
Description
記憶媒体に対する書き込みの制御技術に関する。
Related to writing control technology for storage media.
記憶媒体には種々のデータが格納される。そして、記憶媒体に対して書き込みが行われる回数はデータの種類によって大きく異なる。
* Various data are stored in the storage medium. The number of times data is written to the storage medium varies greatly depending on the type of data.
例えば、記憶媒体がCPU(Central Processing Unit)を備えた組み込み情報機器のメインストレージとして利用される場合を考える。CPUがマイクロプログラムを実行中に出力するログが格納される領域には、マイクロプログラムの実行中に頻繁にログが書き込まれる。この場合、1日のうちに複数回の書き込みが行われ、年間では数百回から数千回の書き込みが行われると推定される。一方、マイクロプログラム自体が格納される領域には、マイクロプログラムのアップデートが行われない限り書き込みが発生しない。従って、例えば1ヶ月に数回又は年に数回というような頻度で書き込みが行われると推定される。このような書き込み回数の偏りは、書き込み回数に制限がある記憶媒体(例えばフラッシュメモリ)の寿命を縮める原因になる。
For example, consider a case where a storage medium is used as a main storage of an embedded information device having a CPU (Central Processing Unit). A log is frequently written during execution of the microprogram in an area in which a log output by the CPU during execution of the microprogram is stored. In this case, it is estimated that writing is performed a plurality of times within one day, and hundreds to thousands of writings are performed annually. On the other hand, no writing occurs in the area where the microprogram itself is stored unless the microprogram is updated. Therefore, for example, it is estimated that writing is performed at a frequency of several times a month or several times a year. Such a deviation in the number of times of writing becomes a cause of shortening the life of a storage medium (for example, a flash memory) in which the number of times of writing is limited.
また、コスト削減のため記憶媒体の容量を少なくする場合には、書き込みが頻繁に行われない領域(例えばマイクロプログラム等が格納される領域)が占める割合が相対的に大きくなる。さらに、組み込み情報機器がネットワークに接続される機会が限られている場合、マイクロプログラムのアップデートがほとんど行われない。このような要因により、書き込み回数の偏りはさらに顕著になる。
In addition, when the capacity of the storage medium is reduced for cost reduction, the ratio of the area where writing is not frequently performed (for example, an area where a microprogram or the like is stored) relatively increases. In addition, when embedded information devices have limited opportunities to connect to the network, microprogram updates are rarely performed. Due to such factors, the deviation in the number of writing becomes more remarkable.
書き込み回数の偏りに関して、或る文献は以下のような技術を開示する。具体的には、ブロックの消去回数のうち最大の消去回数と最小の消去回数との差分が基準回数以上である場合に、中央制御装置が、消去回数が最小であるブロックのデータと、データが格納されていない予備状態のブロックのデータとを入れ替える。しかし、このように入替を実行すると、入替後に消去回数が却って増加する場合がある。
Regarding a bias in the number of writings, a document discloses the following technology. Specifically, when the difference between the maximum erase count and the minimum erase count of the block erase count is equal to or greater than the reference count, the central controller determines that the data of the block with the minimum erase count and the data are Replace the data in the spare block that is not stored. However, when replacement is performed in this way, the number of erasures may increase after replacement.
従って、1つの側面では、本発明の目的は、書き込み回数に制限がある記憶媒体において書き込み回数を平準化することである。
Therefore, in one aspect, an object of the present invention is to equalize the number of times of writing in a storage medium in which the number of times of writing is limited.
本発明に係る情報処理装置は、複数の区画を有し且つ複数の区画の各々について実際の書き込み回数を記憶する記憶部と、複数の区画の各々について、記憶部に記憶されている実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対してデータの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出する算出部と、第1の予測値のうち最大の値が、第2の予測値のうち最大の値より大きい場合、所定の条件を満たす区画のペアに対してデータの入れ替えを実行する入替部とを有する。
An information processing apparatus according to the present invention includes a storage unit having a plurality of partitions and storing an actual number of times of writing for each of the plurality of partitions, and an actual writing stored in the storage unit for each of the plurality of partitions. From the number of times, a first predicted value that is a predicted value of the number of times of writing when data replacement is not executed, and a predicted value of the number of times of writing when data replacement is executed for a pair of partitions that satisfy a predetermined condition When the maximum value of the first predicted values is greater than the maximum value of the second predicted values, the calculation unit that calculates the second predicted value, and a pair of partitions that satisfy a predetermined condition And a replacement unit for performing data replacement.
1つの側面では、書き込み回数に制限がある記憶媒体において書き込み回数を平準化できるようになる。
In one aspect, the number of writes can be leveled on a storage medium with a limited number of writes.
図1に、本実施の形態における情報処理装置1のハードウェア構成を示す。情報処理装置1は、複数の区画を有するフラッシュメモリ11と、例えばCPUであるプロセッサ13と、例えばDRAM(Dynamic Random Access Memory)であるメインメモリ15とを有する。プロセッサ13は、フラッシュメモリ11と、メインメモリ15とにバス等を介して接続される。本実施の形態の処理を実行するためのプログラムはフラッシュメモリ11に格納され、プロセッサ13により実行される際にはフラッシュメモリ11からメインメモリ15に読み出される。本実施の形態の処理を実行するためのプログラムは、例えば、OS(Operating System)のプログラム又はファームウェアに含まれる。
FIG. 1 shows a hardware configuration of the information processing apparatus 1 in the present embodiment. The information processing apparatus 1 includes a flash memory 11 having a plurality of partitions, a processor 13 that is a CPU, for example, and a main memory 15 that is a dynamic random access memory (DRAM), for example. The processor 13 is connected to the flash memory 11 and the main memory 15 via a bus or the like. A program for executing the processing of the present embodiment is stored in the flash memory 11 and is read from the flash memory 11 to the main memory 15 when executed by the processor 13. The program for executing the processing of the present embodiment is included in, for example, an OS (Operating System) program or firmware.
図2に、本実施の形態における情報処理装置1の機能ブロック図を示す。情報処理装置1は、トリガ設定部101と、ペース設定部102と、データ設定部103と、区画設定部104と、設定値格納部105と、トリガ検出部106と、判定部107と、予測部108と、区画データ格納部109と、加算部110と、第1リスト更新部111と、頻度更新部112と、第2リスト更新部113と、ペース管理部114と、入替部115とを含む。設定値格納部105及び区画データ格納部109は、例えばフラッシュメモリ11に設けられる。
FIG. 2 shows a functional block diagram of the information processing apparatus 1 in the present embodiment. The information processing apparatus 1 includes a trigger setting unit 101, a pace setting unit 102, a data setting unit 103, a section setting unit 104, a set value storage unit 105, a trigger detection unit 106, a determination unit 107, and a prediction unit. 108, a partition data storage unit 109, an addition unit 110, a first list update unit 111, a frequency update unit 112, a second list update unit 113, a pace management unit 114, and a replacement unit 115. The set value storage unit 105 and the partition data storage unit 109 are provided in the flash memory 11, for example.
トリガ設定部101は、トリガの設定値の入力を受け付け、設定値格納部105に格納する。ペース設定部102は、ペースの設定値の入力を受け付け、設定値格納部105に格納する。データ設定部103は、データの設定値の入力を受け付け、設定値格納部105に格納する。区画設定部104は、区画の設定値の入力を受け付け、設定値格納部105に格納する。トリガ検出部106は、設定値格納部105に格納されているトリガの設定値を用いてトリガを検出し、判定部107を呼び出す。判定部107は、予測部108を呼び出す。これに応じ、予測部108は、区画データ格納部109に格納されているデータを用いて、入替を実行しない場合における書き込み回数の予測値(以下、書き込み回数の第1の予測値と呼ぶ)と、入替を実行した場合における書き込み回数の予測値(以下、書き込み回数の第2の予測値と呼ぶ)とを算出し、判定部107に通知する。判定部107は、予測部108から受け取ったデータ及び設定値格納部105に格納されているデータを用いて、入替を実行するか否か判定する。入替を実施する場合に、判定部107は、ペース管理部114を呼び出す。これに応じ、ペース管理部114は、設定値格納部105に格納されているデータを用いて、入替部115が入替を実行するペースを制御する。入替部115は、ペース管理部114の制御に従い入替を実行する。入替が終了した場合に、ペース管理部114は、頻度更新部112を呼び出す。これに応じ、頻度更新部112は、入替が行われた区画について書き込み頻度を入れ替える。また、頻度更新部112は、第2リスト更新部113を呼び出す。これに応じ、第2リスト更新部113は、区画データ格納部109に格納されている、書き込み頻度の昇順リストにおけるポインタを設定する。
The trigger setting unit 101 receives an input of a trigger setting value and stores it in the setting value storage unit 105. The pace setting unit 102 receives an input of a pace setting value and stores it in the setting value storage unit 105. The data setting unit 103 receives an input of a data set value and stores it in the set value storage unit 105. The partition setting unit 104 receives an input of a set value of the partition and stores it in the set value storage unit 105. The trigger detection unit 106 detects a trigger using the set value of the trigger stored in the set value storage unit 105 and calls the determination unit 107. The determination unit 107 calls the prediction unit 108. In response to this, the prediction unit 108 uses the data stored in the partition data storage unit 109 as a predicted value of the number of writings when the replacement is not executed (hereinafter referred to as a first predicted value of the number of writings). Then, a predicted value of the number of writings when the replacement is executed (hereinafter referred to as a second predicted value of the number of writings) is calculated and notified to the determination unit 107. The determination unit 107 determines whether to perform replacement using the data received from the prediction unit 108 and the data stored in the setting value storage unit 105. When performing replacement, the determination unit 107 calls the pace management unit 114. In response to this, the pace management unit 114 uses the data stored in the set value storage unit 105 to control the pace at which the replacement unit 115 executes replacement. The replacement unit 115 performs replacement in accordance with the control of the pace management unit 114. When the replacement is completed, the pace management unit 114 calls the frequency update unit 112. In response to this, the frequency update unit 112 changes the writing frequency for the section that has been replaced. Further, the frequency update unit 112 calls the second list update unit 113. In response to this, the second list updating unit 113 sets a pointer in the ascending order of the writing frequency stored in the partition data storage unit 109.
加算部110は、フラッシュメモリ11への書き込みが行われた場合、区画データ格納部109に格納されている書き込み回数を更新する。また、加算部110は、第1リスト更新部111を呼び出す。これに応じ、第1リスト更新部111は、区画データ格納部109に格納されている、書き込み回数の昇順リストにおけるポインタを設定する。また、加算部110は、頻度更新部112を呼び出す。これに応じ、頻度更新部112は、書き込みが行われた区画について書き込み頻度を更新する。また、頻度更新部112は、第2リスト更新部113を呼び出す。これに応じ、第2リスト更新部113は、区画データ格納部109に格納されている、書き込み頻度の昇順リストにおけるポインタを設定する。
When the writing to the flash memory 11 is performed, the addition unit 110 updates the number of times of writing stored in the partition data storage unit 109. In addition, the addition unit 110 calls the first list update unit 111. In response to this, the first list updating unit 111 sets a pointer in the ascending order list of the number of writings stored in the partition data storage unit 109. In addition, the addition unit 110 calls the frequency update unit 112. In response to this, the frequency updating unit 112 updates the writing frequency for the partition in which writing has been performed. Further, the frequency update unit 112 calls the second list update unit 113. In response to this, the second list updating unit 113 sets a pointer in the ascending order of the writing frequency stored in the partition data storage unit 109.
次に、図3乃至図20を用いて、情報処理装置1が実行する処理について説明する。まず、図3を用いて、情報処理装置1が実行する処理の概要を説明する。
Next, processing executed by the information processing apparatus 1 will be described with reference to FIGS. 3 to 20. First, an outline of processing executed by the information processing apparatus 1 will be described with reference to FIG.
まず、加算部110は、フラッシュメモリ11への書き込みが行われたことを検出する(図3:ステップS1001)。そして、加算部110は、書き込みが行われた区画について、区画データ格納部109に格納されている書き込み回数を更新する。また、頻度更新部112は、書き込みが行われた区画について、区画データ格納部109に格納されている書き込み頻度を更新する(ステップS1003)。
First, the adding unit 110 detects that writing to the flash memory 11 has been performed (FIG. 3: step S1001). Then, the adding unit 110 updates the number of times of writing stored in the partition data storage unit 109 for the partition in which writing has been performed. Also, the frequency update unit 112 updates the writing frequency stored in the partition data storage unit 109 for the partition in which writing has been performed (step S1003).
トリガ検出部106は、設定値格納部105に格納されているトリガの設定値を用いて、トリガを検出したか判断する(ステップS1005)。トリガを検出していない場合(ステップS1005:Noルート)、予測値を算出するタイミングではないので、ステップS1001の処理に戻る。
The trigger detection unit 106 determines whether a trigger is detected using the trigger setting value stored in the setting value storage unit 105 (step S1005). When the trigger is not detected (step S1005: No route), it is not the timing for calculating the predicted value, so the process returns to step S1001.
トリガを検出した場合(ステップS1005:Yesルート)、予測部108は、区画データ格納部109に格納されているデータを用いて、書き込み回数の第1の予測値(すなわち、入替を実行しない場合における書き込み回数の予測値)を区画毎に算出する(ステップS1007)。
When the trigger is detected (step S1005: Yes route), the prediction unit 108 uses the data stored in the partition data storage unit 109 to calculate the first predicted value of the number of writes (that is, when no replacement is performed). A predicted value of the number of times of writing) is calculated for each partition (step S1007).
予測部108は、区画データ格納部109に格納されているデータを用いて、入替が実行される区画を特定する(ステップS1009)。そして、予測部108は、書き込み回数の第2の予測値(すなわち、入替を実行した場合における書き込み回数の予測値)を区画毎に算出する(ステップS1011)。
The prediction unit 108 identifies the partition where the replacement is performed using the data stored in the partition data storage unit 109 (step S1009). Then, the prediction unit 108 calculates a second predicted value of the number of writes (that is, a predicted value of the number of writes when replacement is performed) for each partition (step S1011).
判定部107は、予測部108により算出された第1の予測値と第2の予測値とを用いて、入替を実行するか判定する(ステップS1013)。入替を実行しない場合(ステップS1013:Noルート)、ステップS1001の処理に戻る。
The determination unit 107 determines whether to perform replacement using the first prediction value and the second prediction value calculated by the prediction unit 108 (step S1013). When the replacement is not executed (step S1013: No route), the process returns to step S1001.
入替を実行する場合(ステップS1013:Yesルート)、入替部115は、ペース管理部114により設定されたペースで入替を実行する(ステップS1015)。そして、頻度更新部112は、入替が行われた区画について、区画データ格納部109に格納されている書き込み頻度を入れ替える(ステップS1017)。そして処理を終了する。
When executing replacement (step S1013: Yes route), the replacement unit 115 performs replacement at the pace set by the pace management unit 114 (step S1015). Then, the frequency updating unit 112 replaces the writing frequency stored in the partition data storage unit 109 with respect to the replaced partition (step S1017). Then, the process ends.
以上のような処理を実行すれば、入替が有効であることを確認したうえで入替を行えるので、書き込み回数を効果的に平準化できるようになる。
If the processing as described above is executed, the replacement can be performed after confirming that the replacement is effective, so that the number of writes can be effectively leveled.
次に、図4乃至図20を用いて、情報処理装置1が実行する処理についてより詳細に説明する。まず、図4を用いて、情報処理装置1のトリガ設定部101が実行するトリガ設定処理について説明する。
Next, the processing executed by the information processing apparatus 1 will be described in more detail with reference to FIGS. First, a trigger setting process executed by the trigger setting unit 101 of the information processing apparatus 1 will be described with reference to FIG.
トリガ設定部101は、トリガ(本実施の形態においては、判定部107が処理を開始するためのトリガ)の設定値の入力を検出したか判断する(図4:ステップS1)。トリガの設定値は、例えば管理者等により入力される。トリガの設定値の入力を検出していない場合(ステップS1:Noルート)、ステップS1の処理に戻る。
The trigger setting unit 101 determines whether an input of a set value of a trigger (in this embodiment, a trigger for the determination unit 107 to start processing) has been detected (FIG. 4: step S1). The set value of the trigger is input by, for example, an administrator. When the input of the trigger setting value is not detected (step S1: No route), the process returns to step S1.
トリガの設定値の入力を検出した場合(ステップS1:Yesルート)、トリガ設定部101は、トリガの設定値が時刻の設定値を含むか判断する(ステップS3)。トリガの設定値が時刻の設定値を含まない場合(ステップS3:Noルート)、ステップS7の処理に移行する。
When the input of the trigger setting value is detected (step S1: Yes route), the trigger setting unit 101 determines whether the trigger setting value includes the time setting value (step S3). When the trigger setting value does not include the time setting value (step S3: No route), the process proceeds to step S7.
トリガの設定値が時刻の設定値を含む場合(ステップS3:Yesルート)、トリガ設定部101は、時刻の設定値を設定値格納部105に格納する(ステップS5)。
When the trigger setting value includes the time setting value (step S3: Yes route), the trigger setting unit 101 stores the time setting value in the setting value storage unit 105 (step S5).
トリガ設定部101は、トリガの設定値がイベント(例えば、CPU負荷の低下など)の設定値を含むか判断する(ステップS7)。トリガの設定値がイベントの設定値を含まない場合(ステップS7:Noルート)、ステップS1の処理に戻る。一方、トリガの設定値がイベントの設定値を含む場合(ステップS7:Yesルート)、トリガ設定部101は、イベントの設定値を設定値格納部105に格納する(ステップS9)。そしてステップS1の処理に戻る。
The trigger setting unit 101 determines whether the trigger setting value includes a setting value for an event (for example, a decrease in CPU load) (step S7). If the trigger setting value does not include the event setting value (step S7: No route), the process returns to step S1. On the other hand, when the trigger setting value includes the event setting value (step S7: Yes route), the trigger setting unit 101 stores the event setting value in the setting value storage unit 105 (step S9). Then, the process returns to step S1.
以上のようにすれば、後で説明する処理においてトリガの設定値を使用できるようになる。
In this way, the trigger setting value can be used in the processing described later.
次に、図5を用いて、情報処理装置1のペース設定部102が実行するペース設定処理について説明する。まず、ペース設定部102は、ペース(本実施の形態においては、1回の入替で移動するデータの量)の設定値の入力を検出したか判断する(図5:ステップS11)。ペースの設定値は、例えば管理者等により入力される。ペースの設定値の入力を検出していない場合(ステップS11:Noルート)、ステップS11の処理に戻る。一方、ペースの設定値の入力を検出した場合(ステップS11:Yesルート)、ペース設定部102は、ペースの設定値を設定値格納部105に格納する(ステップS13)。そしてステップS11の処理に戻る。
Next, the pace setting process executed by the pace setting unit 102 of the information processing apparatus 1 will be described with reference to FIG. First, the pace setting unit 102 determines whether or not an input of a set value of a pace (in this embodiment, the amount of data moved by one replacement) is detected (FIG. 5: step S11). The set value of the pace is input by, for example, an administrator. When the input of the set value of pace is not detected (step S11: No route), the process returns to step S11. On the other hand, when the input of the pace setting value is detected (step S11: Yes route), the pace setting unit 102 stores the pace setting value in the setting value storage unit 105 (step S13). Then, the process returns to step S11.
以上のようにすれば、後で説明する処理においてペースの設定値を使用できるようになる。
In this way, the pace setting value can be used in the processing described later.
次に、図6を用いて、情報処理装置のデータ設定部103が実行するデータ設定処理について説明する。まず、データ設定部103は、データの設定値(本実施の形態においては、データに対して入替を行うことができるか否かを表す設定値)の入力を検出したか判断する(図6:ステップS21)。データの設定値は、例えば管理者等により入力される。データの設定値の入力を検出していない場合(ステップS21:Noルート)、ステップS21の処理に戻る。一方、データの設定値の入力を検出した場合(ステップS21:Yesルート)、データ設定部103は、データの設定値を設定値格納部105に格納する(ステップS23)。そしてステップS21の処理に戻る。
Next, a data setting process executed by the data setting unit 103 of the information processing apparatus will be described with reference to FIG. First, the data setting unit 103 determines whether an input of a data setting value (in this embodiment, a setting value indicating whether or not replacement can be performed on data) is detected (FIG. 6: Step S21). The data set value is input by, for example, an administrator. When the input of the data set value is not detected (step S21: No route), the process returns to step S21. On the other hand, when the input of the data set value is detected (step S21: Yes route), the data setting unit 103 stores the data set value in the set value storage unit 105 (step S23). Then, the process returns to step S21.
以上のようにすれば、後で説明する処理においてデータの設定値を使用できるようになる。
By doing so, the data set value can be used in the processing described later.
次に、図7を用いて、情報処理装置の区画設定部104が実行する区画設定処理について説明する。まず、区画設定部104は、区画の設定値(本実施の形態においては、区画に格納されているデータに対して入替を行うことができるか否かを表す設定値)の入力を検出したか判断する(図7:ステップS31)。区画の設定値は、例えば管理者等により入力される。区画の設定値の入力を検出していない場合(ステップS31:Noルート)、ステップS31の処理に戻る。一方、区画の設定値の入力を検出した場合(ステップS31:Yesルート)、区画設定部104は、区画の設定値を設定値格納部105に格納する(ステップS33)。そしてステップS31の処理に戻る。
Next, the partition setting process executed by the partition setting unit 104 of the information processing apparatus will be described with reference to FIG. First, has the partition setting unit 104 detected an input of a partition setting value (in this embodiment, a setting value indicating whether or not replacement of data stored in the partition can be performed)? Judgment is made (FIG. 7: step S31). The set value of the section is input by, for example, an administrator. When the input of the set value of the section is not detected (step S31: No route), the process returns to step S31. On the other hand, when the input of the set value of the partition is detected (step S31: Yes route), the partition setting unit 104 stores the set value of the partition in the set value storage unit 105 (step S33). Then, the process returns to step S31.
以上のようにすれば、後で説明する処理において区画の設定値を使用できるようになる。
By doing so, it becomes possible to use the set value of the section in the processing described later.
図8に、設定値格納部105に格納されるデータの一例を示す。図8の例では、時刻の設定値と、イベントの設定値と、ペースの設定値と、データの設定値と、区画の設定値とが格納される。時刻の設定値における時刻フラグの値が1である場合、時刻の設定値は有効である。イベントの設定値におけるCPU負荷フラグの値が1である場合、CPU負荷の値が所定の基準値以下になった場合に判定部107が処理を開始する。イベントの設定値におけるIO(Input Output)負荷フラグの値が1である場合、IO負荷の値が所定の基準値以下になった場合に判定部107が処理を開始する。データの設定値における入替フラグの値が1である場合、そのデータに対して入替を行うことができる。区画の設定値における入替フラグの値が1である場合、その区画に格納されているデータに対して入替を行うことができる。
FIG. 8 shows an example of data stored in the set value storage unit 105. In the example of FIG. 8, a time setting value, an event setting value, a pace setting value, a data setting value, and a section setting value are stored. When the value of the time flag in the time setting value is 1, the time setting value is valid. When the value of the CPU load flag in the set value of the event is 1, the determination unit 107 starts processing when the value of the CPU load is equal to or less than a predetermined reference value. When the value of the IO (Input / Output) load flag in the set value of the event is 1, the determination unit 107 starts processing when the value of the IO load becomes equal to or less than a predetermined reference value. When the value of the replacement flag in the data setting value is 1, replacement can be performed on the data. When the value of the replacement flag in the section setting value is 1, replacement can be performed on the data stored in the section.
次に、図9乃至図20を用いて、データの入替を実行する処理について説明する。まず、トリガ検出部106は、OSから現在時刻を取得する(図9:ステップS41)。
Next, a process for exchanging data will be described with reference to FIGS. 9 to 20. First, the trigger detection unit 106 acquires the current time from the OS (FIG. 9: Step S41).
トリガ検出部106は、ステップS41において取得した現在時刻が、設定値格納部105に格納されている時刻の設定値が表す設定時刻より後であるか判断する(ステップS43)。現在時刻が設定時刻より後である場合(ステップS43:Yesルート)、ステップS55の処理に移行する。
The trigger detection unit 106 determines whether or not the current time acquired in step S41 is later than the set time represented by the set value of the time stored in the set value storage unit 105 (step S43). If the current time is after the set time (step S43: Yes route), the process proceeds to step S55.
現在時刻が設定時刻より後ではない場合(ステップS43:Yesルート)、トリガ検出部106は、設定値格納部105に格納されているCPU負荷フラグの値が1であるか判断する(ステップS45)。CPU負荷フラグの値が1ではない場合(ステップS45:Noルート)、ステップS51の処理に移行する。
When the current time is not later than the set time (step S43: Yes route), the trigger detection unit 106 determines whether the value of the CPU load flag stored in the set value storage unit 105 is 1 (step S45). . When the value of the CPU load flag is not 1 (step S45: No route), the process proceeds to step S51.
CPU負荷フラグの値が1である場合(ステップS45:Yesルート)、トリガ検出部106は、CPU負荷の値をOSから取得する(ステップS47)。トリガ検出部106は、ステップS47において取得したCPU負荷の値が所定の基準値以下であるか判断する(ステップS49)。CPU負荷の値が所定の基準値以下である場合(ステップS49:Yesルート)、ステップS55の処理に移行する。
When the value of the CPU load flag is 1 (step S45: Yes route), the trigger detection unit 106 acquires the value of the CPU load from the OS (step S47). The trigger detection unit 106 determines whether the CPU load value acquired in step S47 is equal to or less than a predetermined reference value (step S49). When the CPU load value is equal to or less than the predetermined reference value (step S49: Yes route), the process proceeds to step S55.
CPU負荷の値が所定の基準値より大きい場合(ステップS49:Noルート)、トリガ検出部106は、トリガ検出部106は、設定値格納部105に格納されているIO負荷フラグの値が1であるか判断する(ステップS50)。IO負荷フラグの値が1ではない場合(ステップS50:Noルート)、ステップS41の処理に戻る。
When the value of the CPU load is larger than the predetermined reference value (step S49: No route), the trigger detection unit 106 indicates that the trigger detection unit 106 indicates that the IO load flag value stored in the set value storage unit 105 is 1. It is determined whether or not there is (step S50). If the value of the IO load flag is not 1 (step S50: No route), the process returns to step S41.
IO負荷フラグの値が1である場合(ステップS50:Yesルート)、トリガ検出部106は、IO負荷の値をOSから取得する(ステップS51)。
When the value of the IO load flag is 1 (step S50: Yes route), the trigger detection unit 106 acquires the value of the IO load from the OS (step S51).
トリガ検出部106は、ステップS51において取得したIO負荷の値が所定の基準値以下であるか判断する(ステップS53)。IO負荷の値が所定の基準値以下ではない場合(ステップS53:Noルート)、ステップS41の処理に戻る。
The trigger detection unit 106 determines whether the IO load value acquired in step S51 is equal to or less than a predetermined reference value (step S53). If the IO load value is not less than or equal to the predetermined reference value (step S53: No route), the process returns to step S41.
IO負荷の値が所定の基準値以下である場合(ステップS53:Yesルート)、トリガ検出部106は、判定部107を呼び出す。そして、判定部107は、判定処理を実行する(ステップS55)。判定処理については、図10を用いて説明する。
When the IO load value is equal to or smaller than the predetermined reference value (step S53: Yes route), the trigger detection unit 106 calls the determination unit 107. And the determination part 107 performs a determination process (step S55). The determination process will be described with reference to FIG.
まず、判定部107は、引数に「入替無し」を指定して予測部108を呼び出す。これに応じ、予測部108は、予測処理を実行する(図10:ステップS61)。予測処理については、図11乃至図13を用いて説明する。
First, the determination unit 107 specifies “no replacement” as an argument and calls the prediction unit 108. In response to this, the prediction unit 108 executes a prediction process (FIG. 10: step S61). The prediction process will be described with reference to FIGS. 11 to 13.
まず、予測部108は、引数に「入替有り」が指定されているか判断する(図11:ステップS81)。引数に「入替有り」が指定されていない場合(ステップS81:Noルート)、予測部108は、フラッシュメモリ11における区画毎に、所定時間経過後における書き込み回数の第1の予測値を算出し(ステップS83)、区画データ格納部109に格納する。ステップS83においては、例えば、書き込み回数の第1の予測値=書き込み回数+(書き込み頻度*所定時間)により算出する。
First, the prediction unit 108 determines whether “replacement is present” is designated as an argument (FIG. 11: step S81). When “with replacement” is not specified as an argument (step S81: No route), the prediction unit 108 calculates a first predicted value of the number of writes after a predetermined time has elapsed for each partition in the flash memory 11 ( In step S83, the data is stored in the partition data storage unit 109. In step S83, for example, the first predicted value of the number of write times = the number of write times + (write frequency * predetermined time) is calculated.
図12に、区画データ格納部109に格納されるデータの一例を示す。図12の例では区画の数がn(nは2以上の自然数)であり、n区画の各々について区画データが格納される。区画データには、区画識別子と、書き込み回数と、書き込み回数のリストであるリストL1におけるポインタと、書き込み回数の第1の予測値と、書き込み回数の第1の予測値のリストであるリストL2と、書き込み回数の第2の予測値と、書き込み回数の第2の予測値のリストであるリストL3と、書き込み頻度と、書き込み頻度のリストであるリストL4におけるポインタと、入替を実行した場合における書き込み頻度(以下、入替後書き込み頻度と呼ぶ)のリストであるリストL5におけるポインタと、入替が実行される区画のリストであるリストL6におけるポインタとを含む。また、区画データ格納部109には、リストL1乃至L6におけるアンカーのポインタが格納される。
FIG. 12 shows an example of data stored in the partition data storage unit 109. In the example of FIG. 12, the number of partitions is n (n is a natural number of 2 or more), and partition data is stored for each of the n partitions. The partition data includes a partition identifier, a write count, a pointer in the list L1 that is a list of the write count, a first predicted value of the write count, and a list L2 that is a list of the first predicted value of the write count. , The second predicted value of the write count, the list L3 that is a list of the second predicted value of the write count, the write frequency, the pointer in the list L4 that is the list of the write frequency, and the write when the replacement is executed It includes a pointer in a list L5 that is a list of frequencies (hereinafter referred to as post-replacement writing frequency) and a pointer in a list L6 that is a list of partitions on which replacement is performed. The partition data storage unit 109 stores the pointers of the anchors in the lists L1 to L6.
図13に、本実施の形態におけるリストの構造を示す。各要素には、前の要素を指し示すポインタ(以下、前要素ポインタと呼ぶ)と、次の要素を指し示すポインタ(以下、次要素ポインタと呼ぶ)とが付加される。アンカーに付加される前要素ポインタは「NULL」であり、次要素ポインタは最初の要素(図13の例では、要素[x])を指し示す。本実施の形態におけるリストL1乃至L5は、要素の値が昇順になるように並べられたリストである。従って、アンカーの前要素ポインタが指し示す要素の値が最も小さく、最後の要素の値が最も大きい。
FIG. 13 shows the structure of the list in the present embodiment. A pointer that points to the previous element (hereinafter referred to as the previous element pointer) and a pointer that points to the next element (hereinafter referred to as the next element pointer) are added to each element. The previous element pointer added to the anchor is “NULL”, and the next element pointer points to the first element (element [x] in the example of FIG. 13). The lists L1 to L5 in the present embodiment are lists arranged so that element values are in ascending order. Therefore, the value of the element indicated by the previous element pointer of the anchor is the smallest and the value of the last element is the largest.
図11の説明に戻り、予測部108は、ステップS83の処理結果に従い、リストL2(すなわち、書き込み回数の第1の予測値のリスト)におけるポインタを、書き込み回数の第1の予測値が昇順になるように設定する(ステップS85)。そして呼び出し元の処理に戻る。なお、判定処理(図11)のステップS87以降については、後で説明する。
Returning to the description of FIG. 11, the prediction unit 108 sets the pointer in the list L2 (that is, the list of the first predicted value of the number of writes) in ascending order of the first predicted value of the number of writes according to the processing result of step S83. (Step S85). Then, the process returns to the calling process. Note that step S87 and subsequent steps in the determination process (FIG. 11) will be described later.
図10の説明に戻り、判定部107は、リストL2(すなわち、書き込み回数の第1の予測値のリスト)から、書き込み回数の第1の予測値のうち最大の値M1を特定する(ステップS63)。
Returning to the description of FIG. 10, the determination unit 107 specifies the maximum value M1 among the first predicted values of the number of writes from the list L2 (that is, the list of the first predicted values of the number of times of writing) (Step S63). ).
判定部107は、設定値格納部105に格納されているデータの設定値及び区画の設定値を用いて、入替の対象ではない区画のリストL7を生成する(ステップS65)。リストL7は、入替の対象ではない区画の識別子を含む。例えばデータAについての入替フラグが1ではない場合、データAが格納されている区画の識別子はリストL7に含まれる。また、例えば区画Saについての入替フラグが1ではない場合には、区画Saの識別子はリストL7に含まれる。
The determination unit 107 generates a list L7 of partitions that are not replacement targets by using the data setting values and the partition setting values stored in the setting value storage unit 105 (step S65). The list L7 includes identifiers of sections that are not replacement targets. For example, when the replacement flag for data A is not 1, the identifier of the partition in which data A is stored is included in the list L7. For example, when the replacement flag for the section Sa is not 1, the identifier of the section Sa is included in the list L7.
判定部107は、引数に「入替有り」及び「リストL7」を指定して予測部108を呼び出す。これに応じ、予測部108は予測処理を実行する(ステップS67)。予測処理については、図11及び図14を用いて説明する。
The determination unit 107 calls the prediction unit 108 by designating “with replacement” and “list L7” as arguments. In response to this, the prediction unit 108 executes a prediction process (step S67). The prediction process will be described with reference to FIGS. 11 and 14.
まず、予測部108は、引数に「入替有り」が指定されているか判断する(図11:ステップS81)。引数に「入替有り」が指定されている場合(ステップS81:Yesルート)、予測部108は、区画データ格納部109に格納されている書き込み回数を用いて、リストL6(すなわち、入替が実行される区画のリスト)を生成する(ステップS87)。
First, the prediction unit 108 determines whether “replacement is present” is designated as an argument (FIG. 11: step S81). When “with replacement” is specified as the argument (step S81: Yes route), the prediction unit 108 uses the number of writes stored in the partition data storage unit 109 to execute the list L6 (that is, replacement is executed). A list of sections to be generated) (step S87).
図14を用いて、リストL6の生成について説明する。ステップS87においては、まずリストL1(すなわち、書き込み回数のリスト)から選択された区画のペアについて書き込み回数の差を算出し、算出された差が所定値以上であるか判断する。ここで、区画のペアは図14に示すように選択される。すなわち、まず書き込み回数が最も大きい区画と書き込み回数が最も小さい区画とを含むペアが選択され、次に、書き込み回数が2番目に大きい区画と書き込み回数が2番目に小さい区画とが選択され、次に、書き込み回数が3番目に大きい区画と書き込み回数が3番目に小さい区画とが選択され・・・、というように選択される。そして、選択されたペアについて算出された差が所定値以上であり、且つ、ペアに含まれる区画のいずれもリストL7(すなわち、入替の対象ではない区画のリスト)に含まれていない場合には、ペアに含まれる区画がリストL6に追加される。
The generation of the list L6 will be described with reference to FIG. In step S87, first, a difference in the number of writing times is calculated for a pair of partitions selected from the list L1 (that is, a list of the number of writing times), and it is determined whether the calculated difference is equal to or greater than a predetermined value. Here, the pair of sections is selected as shown in FIG. That is, the pair including the partition with the largest number of writes and the partition with the smallest number of writes is selected, then the partition with the second largest number of writes and the partition with the second smallest number of writes are selected, and the next In addition, the partition with the third largest number of writes and the partition with the third smallest number of writes are selected. When the difference calculated for the selected pair is equal to or greater than a predetermined value, and none of the sections included in the pair is included in the list L7 (that is, the list of sections not to be replaced) , The partitions included in the pair are added to the list L6.
図11の説明に戻り、予測部108は、区画毎に、区画データ格納部109に格納されている、リストL4におけるポインタを、リストL5におけるポインタにコピーする(ステップS89)。また、予測部108は、区画毎に、区画データ格納部109に格納されている書き込み頻度を入替後書き込み頻度にコピーする(ステップS91)。
Returning to the description of FIG. 11, for each partition, the prediction unit 108 copies the pointer in the list L4 stored in the partition data storage unit 109 to the pointer in the list L5 (step S89). Further, the prediction unit 108 copies the writing frequency stored in the partition data storage unit 109 to the writing frequency after replacement for each partition (step S91).
予測部108は、リストL6(すなわち、入替が実行される区画のリスト)及びリストL5(すなわち、入替後書き込み頻度のリスト)を用いて区画のペアを特定し、特定されたペアについて入替後書き込み頻度の入替を実行する(ステップS93)。
The prediction unit 108 identifies a pair of partitions using the list L6 (that is, the list of partitions to be replaced) and the list L5 (that is, the list of write frequencies after replacement), and writes after replacement for the specified pair. Frequency replacement is executed (step S93).
予測部108は、区画毎に、所定時間経過後における書き込み回数の第2の予測値を算出し(ステップS95)、区画データ格納部109に格納する。ステップS95においては、例えば、書き込み回数の第2の予測値=書き込み回数+(入替後書き込み頻度*所定時間)により算出する。
The prediction unit 108 calculates a second predicted value of the number of times of writing after a predetermined time has elapsed for each partition (step S95) and stores it in the partition data storage unit 109. In step S95, for example, the second predicted value of the number of write times = the number of write times + (write frequency after replacement * predetermined time).
予測部108は、ステップS95の処理結果に従い、リストL3(すなわち、書き込み回数の第2の予測値のリスト)におけるポインタを、書き込み回数の第2の予測値が昇順になるように設定する(ステップS97)。そして呼び出し元の処理に戻る。
The prediction unit 108 sets the pointers in the list L3 (that is, the list of second predicted values of the number of writes) according to the processing result of step S95 so that the second predicted value of the number of writes is in ascending order (step S97). Then, the process returns to the calling process.
以上のように、書き込み頻度を利用することで、書き込み回数の第1の予測値及び第2の予測値を簡便に算出できるようになる。
As described above, the first predicted value and the second predicted value of the number of writes can be easily calculated by using the write frequency.
図10の説明に戻り、判定部107は、リストL3(すなわち、書き込み頻度の第2の予測値のリスト)から、書き込み回数の第2の予測値のうち最大の値M2を特定する(ステップS69)。
Returning to the description of FIG. 10, the determination unit 107 identifies the maximum value M2 of the second predicted values of the number of writes from the list L3 (that is, the list of second predicted values of the write frequency) (step S69). ).
判定部107は、M1>M2が成立するか判断する(ステップS71)。M1>M2が成立しない場合(ステップS71:Noルート)、呼び出し元の処理に戻る。
The determination unit 107 determines whether M1> M2 is satisfied (step S71). When M1> M2 is not satisfied (step S71: No route), the process returns to the caller process.
M1>M2が成立する場合(ステップS73:Yesルート)、判定部107は、引数に「リストL6」を指定してペース管理部114を呼び出す。これに応じ、ペース管理部114は、ペース管理処理を実行する(ステップS73)。ペース管理処理については、図15を用いて説明する。
When M1> M2 is satisfied (step S73: Yes route), the determination unit 107 calls the pace management unit 114 by designating “list L6” as an argument. In response to this, the pace management unit 114 executes pace management processing (step S73). The pace management process will be described with reference to FIG.
まず、ペース管理部114は、初回の実行であるか判断する(図15:ステップS101)。初回の実行である場合(ステップS101:Yesルート)、ペース管理部114は、設定値格納部105に格納されているペースの設定値及びリストL6(すなわち、入替が実行される区画のリスト)を用いて、実行回数、1回分のデータ量、及び実行間隔を決定し(ステップS103)、メインメモリ15に格納する。例えばリストL6に含まれる区画の数が100であり、1区画の容量が1メガバイトであり、ペースの設定値が10メガバイト/秒であるとする。この場合、例えば実行回数を10回とすると、1回分のデータ量は10メガバイトであり、実行間隔は1秒である。また、例えば実行回数を20回とすると、1回分のデータ量は5メガバイトであり、実行間隔は0.5秒である。
First, the pace management unit 114 determines whether it is the first execution (FIG. 15: step S101). In the case of the first execution (step S101: Yes route), the pace management unit 114 displays the pace setting values stored in the setting value storage unit 105 and the list L6 (that is, a list of sections on which replacement is executed). The number of executions, the amount of data for one execution, and the execution interval are determined (step S103) and stored in the main memory 15. For example, it is assumed that the number of sections included in the list L6 is 100, the capacity of one section is 1 megabyte, and the set value of the pace is 10 megabytes / second. In this case, for example, if the number of executions is 10, the data amount for one execution is 10 megabytes and the execution interval is 1 second. For example, if the number of executions is 20, the amount of data for one execution is 5 megabytes, and the execution interval is 0.5 seconds.
ペース管理部114は、入替の実行中であることを示すデータをメインメモリ15に格納する(ステップS105)。
The pace management unit 114 stores data indicating that replacement is being performed in the main memory 15 (step S105).
一方、初回の実行ではない場合(ステップS101:Noルート)、ペース管理部114は、OSから現在時刻を取得する(ステップS107)。
On the other hand, when it is not the first execution (step S101: No route), the pace management unit 114 acquires the current time from the OS (step S107).
ペース管理部114は、前回の実行時刻から実行間隔分の時間が経過したか判断する(ステップS109)。ステップS109においては、前回の実行時刻から実行間隔分の時間が経過した時点が現在時刻よりも後であるか判断する。前回の実行時刻は、後で説明するステップS115においてメインメモリ15に格納される。実行間隔は、ステップS103において決定される。
The pace management unit 114 determines whether the time corresponding to the execution interval has elapsed since the previous execution time (step S109). In step S109, it is determined whether the time at which the execution interval has elapsed from the previous execution time is later than the current time. The previous execution time is stored in the main memory 15 in step S115 described later. The execution interval is determined in step S103.
前回の実行時刻から実行間隔分の時間が経過していない場合(ステップS109:Noルート)、ステップS101の処理に戻る。前回の実行時刻から実行間隔分の時間が経過した場合(ステップS109:Yesルート)、ペース管理部114は、入替部115を呼び出す。これに応じ、入替部115は、ステップS103において決定されたデータ量だけデータの入替を実行する(ステップS111)。ステップS111においては、例えば、入替の対象である区画内のデータをメインメモリ15に移動し、その後に入替先の区画に移動する。
If the time corresponding to the execution interval has not elapsed since the previous execution time (step S109: No route), the processing returns to step S101. When the time corresponding to the execution interval has elapsed from the previous execution time (step S109: Yes route), the pace management unit 114 calls the replacement unit 115. In response to this, the replacement unit 115 performs data replacement by the amount of data determined in step S103 (step S111). In step S111, for example, the data in the section to be replaced is moved to the main memory 15, and then moved to the replacement destination section.
ペース管理部114は、実際の実行回数がステップS103において決定された実行回数に到達したか判断する(ステップS113)。到達していない場合(ステップS113:Noルート)、ペース管理部114は、入替を実行した時刻を前回の実行時刻としてメインメモリ15に格納する(ステップS115)。そしてステップS101に戻る。
The pace manager 114 determines whether the actual number of executions has reached the number of executions determined in step S103 (step S113). If not reached (step S113: No route), the pace management unit 114 stores the time when the replacement is executed in the main memory 15 as the previous execution time (step S115). Then, the process returns to step S101.
実際の実行回数がステップS103において決定された実行回数に到達した場合(ステップS113:Yesルート)、ペース管理部114は、ステップS105においてメインメモリ15に格納された、入替の実行中であることを示すデータを削除する(ステップS117)。
When the actual number of executions reaches the number of executions determined in step S103 (step S113: Yes route), the pace management unit 114 indicates that the replacement stored in the main memory 15 in step S105 is being executed. The indicated data is deleted (step S117).
ペース管理部114は、引数に「入替」を指定して頻度更新部112を呼び出す。これに応じ、頻度更新部112は、頻度更新処理を実行する(ステップS119)。頻度更新処理については、図16を用いて説明する。
The pace management unit 114 calls the frequency update unit 112 by designating “replacement” as an argument. In response to this, the frequency update unit 112 executes a frequency update process (step S119). The frequency update process will be described with reference to FIG.
まず、頻度更新部112は、引数に「入替」が指定されているか判断する(ステップS121)。引数に「入替」が指定されている場合(ステップS121:Yesルート)、呼び出しはペース管理部114からの呼び出しである。従って頻度更新部112は、入替が行われた区画について、区画データ格納部109に格納されている書き込み頻度の入替を実行する(ステップS123)。ステップS123においては、ステップS93と同様の入替が行われる。
First, the frequency update unit 112 determines whether “replacement” is designated as an argument (step S121). When “replacement” is designated as an argument (step S121: Yes route), the call is a call from the pace management unit 114. Therefore, the frequency update unit 112 performs replacement of the writing frequency stored in the partition data storage unit 109 for the partition that has been replaced (step S123). In step S123, the same replacement as in step S93 is performed.
頻度更新部112は、引数に「入替」を指定して第2リスト更新部113を呼び出す。これに応じ、第2リスト更新部113は、リスト更新処理を実行する(ステップS125)。リスト更新処理については、後で説明する。
The frequency update unit 112 calls the second list update unit 113 with “replacement” specified as an argument. In response to this, the second list update unit 113 executes a list update process (step S125). The list update process will be described later.
一方、ステップS121において引数に「入替」が指定されていないと判断された場合(ステップS121:Noルート)、呼び出しは加算部110からの呼び出しである。従って頻度更新部112は、OSから現在時刻を取得する(ステップS127)。
On the other hand, when it is determined in step S121 that “replacement” is not specified as an argument (step S121: No route), the call is a call from the addition unit 110. Therefore, the frequency update unit 112 acquires the current time from the OS (step S127).
頻度更新部112は、更新間隔を、更新間隔=現在時刻-前回時刻により算出し(ステップS129)、メインメモリ15に格納されている更新間隔を更新する。図17に、メインメモリ15に格納されるデータの一例を示す。図17の例では、更新間隔と、旧計測時間と、計測時間と、前回時刻とが格納される。旧計測時間とは、開始時刻から前回時刻までの時間である。計測時間は、開始時刻から現在時刻までの時間である。前回時刻は、前回更新をした時刻である。
The frequency update unit 112 calculates the update interval by update interval = current time−previous time (step S129), and updates the update interval stored in the main memory 15. FIG. 17 shows an example of data stored in the main memory 15. In the example of FIG. 17, the update interval, the old measurement time, the measurement time, and the previous time are stored. The old measurement time is the time from the start time to the previous time. The measurement time is the time from the start time to the current time. The previous time is the time when the previous update was performed.
頻度更新部112は、旧計測時間を設定する(ステップS131)。ステップS131においては、メインメモリ15に格納されている計測時間で、旧計測時間を更新する。また、頻度更新部112は、計測時間を、計測時間=計測時間+更新間隔により算出し(ステップS133)、メインメモリ15に格納されている計測時間を更新する。
The frequency update unit 112 sets the old measurement time (step S131). In step S131, the old measurement time is updated with the measurement time stored in the main memory 15. Further, the frequency updating unit 112 calculates the measurement time by measurement time = measurement time + update interval (step S133), and updates the measurement time stored in the main memory 15.
頻度更新部112は、書き込みが行われた区画について、書き込み頻度=((書き込み頻度*旧計測時間)+1)/計測時間を算出し、区画データ格納部109に格納されている書き込み頻度を更新する(ステップS135)。
The frequency update unit 112 calculates write frequency = ((write frequency * old measurement time) +1) / measurement time for the partition in which writing has been performed, and updates the write frequency stored in the partition data storage unit 109. (Step S135).
頻度更新部112は、前回時刻を設定する(ステップS137)。ステップS137においては、メインメモリ15に格納されている前回時刻を現在時刻で更新する。
The frequency update unit 112 sets the previous time (step S137). In step S137, the previous time stored in the main memory 15 is updated with the current time.
頻度更新部112は、引数に「更新」を指定して第2リスト更新部113を呼び出す。これに応じ、第2リスト更新部113は、リスト更新処理を実行する(ステップS139)。リスト更新処理については、図18を用いて説明する。
The frequency update unit 112 calls the second list update unit 113 by designating “update” as an argument. In response to this, the second list update unit 113 executes list update processing (step S139). The list update process will be described with reference to FIG.
まず、第2リスト更新部113は、引数に「入替」が指定されているか判断する(図18:ステップS141)。引数に「入替」が指定されている場合(ステップS141:Yesルート)、第2リスト更新部113は、入替後の書き込み頻度に基づき、リストL4(すなわち、書き込み頻度のリスト)におけるポインタを設定する(ステップS145)。ここでは、入替後の書き込み頻度が昇順になるように設定が行われる。
First, the second list updating unit 113 determines whether “replacement” is designated as an argument (FIG. 18: step S141). When “replacement” is specified as an argument (step S141: Yes route), the second list update unit 113 sets a pointer in the list L4 (that is, a list of write frequencies) based on the write frequency after replacement. (Step S145). Here, the setting is performed so that the writing frequency after replacement is in ascending order.
一方、引数に「入替」が指定されていない場合(ステップS141:Noルート)、第2リスト更新部113は、更新後の書き込み頻度に基づき、リストL4におけるポインタを設定する(ステップS143)。ここでは、更新後の書き込み頻度が昇順になるように設定が行われる。そしてステップS41の処理に戻る。
On the other hand, when “replacement” is not specified as an argument (step S141: No route), the second list updating unit 113 sets a pointer in the list L4 based on the updated writing frequency (step S143). Here, the setting is performed so that the updated writing frequency is in ascending order. Then, the process returns to step S41.
以上のような処理を実行すれば、入れ替えが有効であることが予測値の比較によって担保されるので、書き込み回数を効果的に平準化できるようになる。また、図14に示したように区画のペアを選択するので、書き込み回数の平準化に寄与しないペアを排除し、効果的に平準化を行えるようになる。また、入替による書き込み回数の増加を反映した予測値を算出できるようになる。
If the processing as described above is executed, it is ensured that the replacement is effective by comparing the predicted values, so that the number of writing can be effectively leveled. Further, since the pair of partitions is selected as shown in FIG. 14, the pair that does not contribute to the leveling of the number of times of writing is eliminated, and the leveling can be performed effectively. In addition, it is possible to calculate a predicted value that reflects an increase in the number of writes due to replacement.
図19及び図20を用いて、書き込み回数の平準化について具体例を示す。ここで、フラッシュメモリは8つの区画(区画s0乃至s7)を有し、区画の書き込み回数の上限は100である。データaは4区画を消費し、データaの更新頻度はデータbに比べて低い。データbは3区画を消費し、データbの更新頻度はデータaに比べて高い。時間帯t0乃至t3は、一定の長さを有する時間である。
19 and FIG. 20, a specific example of leveling the number of writes will be shown. Here, the flash memory has eight partitions (partitions s0 to s7), and the upper limit of the number of times of writing in the partition is 100. Data a consumes 4 sections, and the update frequency of data a is lower than that of data b. Data b consumes 3 sections, and the update frequency of data b is higher than data a. Time zones t0 to t3 are times having a certain length.
まず、図19を用いて、本実施の形態を利用しない場合におけるフラッシュメモリの状態について説明する。ここでは、データbに対して4区画を割り当てているが、4区画のうち1区画を空状態にし、空状態の区画を循環させる。時間帯t0においては書き込み要求が無く、書き込みが行われない。時間帯t1においては、データbについて53の書き込み要求がある。時間帯t1においては区画s7が空き状態であるので、区画s4乃至s6の書き込み回数が53インクリメントされる。時間帯t2においては、データbについて37の書き込み要求がある。時間帯t2においては区画s6が空き状態であるので、区画s4、s5及びs7の書き込み回数が37インクリメントされる。時間帯t3においては、データbについて8の書き込み要求がある。時間帯t3においては区画s5が空き状態であるので、区画s4、s6及びs7の書き込み回数が8インクリメントされ、この時点で区画s4の書き込み回数が上限に達する。処理された書き込み要求の数は98である。しかし、この時点で区画s0乃至s3にはほとんど書き込みが行われておらず、フラッシュメモリが効率的に使用されているとは言えない。
First, the state of the flash memory when the present embodiment is not used will be described with reference to FIG. Here, four sections are assigned to the data b, but one section out of the four sections is made empty, and the empty section is circulated. In time zone t0, there is no write request and no write is performed. In the time zone t1, there are 53 write requests for data b. Since the section s7 is in an empty state in the time zone t1, the number of writes in the sections s4 to s6 is incremented by 53. In the time zone t2, there are 37 write requests for data b. Since the partition s6 is in an empty state in the time zone t2, the number of times of writing in the partitions s4, s5, and s7 is incremented by 37. There are 8 write requests for data b in time zone t3. Since the partition s5 is in an empty state in the time zone t3, the number of writes in the partitions s4, s6, and s7 is incremented by 8, and the number of writes in the partition s4 reaches the upper limit at this point. The number of write requests processed is 98. However, almost no writing is performed in the partitions s0 to s3 at this point, and it cannot be said that the flash memory is being used efficiently.
次に、図20を用いて、本実施の形態におけるフラッシュメモリ11の状態について説明する。ここでは、区画s0乃至s7のいずれかを空き状態とし、空き状態の区画を循環させる。時間帯t0においては書き込み要求が無く、書き込みが行われない。時間帯t1においては、データbについて53の書き込み要求がある。時間帯t1においては区画s7が空き状態であるので、区画s4乃至s6の書き込み回数が53インクリメントされる。
Next, the state of the flash memory 11 in the present embodiment will be described with reference to FIG. Here, any of the sections s0 to s7 is set to an empty state, and the empty sections are circulated. In time zone t0, there is no write request and no write is performed. In the time zone t1, there are 53 write requests for data b. Since the section s7 is in an empty state in the time zone t1, the number of writes in the sections s4 to s6 is incremented by 53.
時間帯t2においては入替が行われており、データbについて37の書き込み要求がある。時間帯t2においてはデータbが区画s0、s1及びs3に格納されているため、区画s0、s1及びs3の書き込み回数が37インクリメントされる。また、データの入替を行ったため、全区画の書き込み回数が1インクリメントされる。
In time zone t2, replacement is performed and there is a write request of 37 for data b. Since the data b is stored in the partitions s0, s1, and s3 in the time zone t2, the number of times of writing in the partitions s0, s1, and s3 is incremented by 37. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
時間帯t3においては入替が行われており、データbについて8の書き込み要求がある。時間帯t3においてはデータbが区画s4、s6及びs7に格納されているため、区画s4、s6及びs7の書き込み回数が8インクリメントされる。また、データの入替を行ったため、全区画の書き込み回数が1インクリメントされる。
In time zone t3, replacement is performed and there is an 8 write request for data b. Since the data b is stored in the partitions s4, s6, and s7 in the time zone t3, the number of writes in the partitions s4, s6, and s7 is incremented by 8. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
時間帯t4においては入替が行われており、データbについて43の書き込み要求がある。時間帯t4においてはデータbが区画s1、s3及びs4に格納されているため、区画s1、s3及びs4の書き込み回数が43インクリメントされる。また、データの入替を行ったため、全区画の書き込み回数が1インクリメントされる。
In time zone t4, replacement is performed, and there are 43 write requests for data b. Since the data b is stored in the partitions s1, s3, and s4 in the time zone t4, the number of writes in the partitions s1, s3, and s4 is incremented by 43. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one.
時間帯t5においては入替が行われており、データbについて32の書き込み要求がある。時間帯t5においてはデータbが区画s4、s6及びs7に格納されているため、区画s4、s6及びs7の書き込み回数が32インクリメントされる。また、データの入替を行ったため、全区画の書き込み回数が1インクリメントされる。この時点で区画s6の書き込み回数が上限に達する。処理された書き込み要求の数は173である。図19の例と比較すると、173/98≒1.8倍の書き込み要求を処理することができるようになる。
In time zone t5, replacement is performed, and there are 32 write requests for data b. Since the data b is stored in the partitions s4, s6, and s7 in the time zone t5, the number of writes in the partitions s4, s6, and s7 is incremented by 32. In addition, since the data is replaced, the number of times of writing in all the partitions is incremented by one. At this time, the number of times of writing in the section s6 reaches the upper limit. The number of write requests processed is 173. Compared with the example of FIG. 19, a write request of 173 / 98≈1.8 times can be processed.
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
Although one embodiment of the present invention has been described above, the present invention is not limited to this. For example, the functional block configuration of the information processing apparatus 1 described above may not match the actual program module configuration.
また、上で説明した各データ保持形態の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローについては、処理結果が変わらない限り、処理の順番を入れ替えたり、複数ステップを並列に実行させるようにしても良い。
Further, the configuration of each data holding form described above is an example, and the configuration as described above does not have to be. Further, regarding the processing flow, as long as the processing result does not change, the processing order may be changed or a plurality of steps may be executed in parallel.
なお、ステップS87において使用される所定値を動的に変更することで、より柔軟にペアの選択を行えるようにしてもよい。
It should be noted that a pair may be selected more flexibly by dynamically changing the predetermined value used in step S87.
なお、リストL1乃至L6の形式は、配列形式又は赤黒木形式等であってもよい。
The format of the lists L1 to L6 may be an array format or a red-black tree format.
なお、リストL1乃至L5について、昇順ではなく降順に要素の値を並べてもよい。
Note that, in the lists L1 to L5, element values may be arranged in descending order instead of ascending order.
なお、情報処理装置1は、SSD(Solid State Drive)を搭載したパーソナルコンピュータ或いは携帯端末(例えばスマートフォン)等であってもよい。
Note that the information processing apparatus 1 may be a personal computer or a portable terminal (for example, a smartphone) equipped with an SSD (Solid State Drive).
以上述べた本発明の実施の形態をまとめると、以下のようになる。
The embodiments of the present invention described above are summarized as follows.
本実施の形態の第1の態様に係る情報処理装置は、(A)複数の区画を有し且つ複数の区画の各々について実際の書き込み回数を記憶する記憶部と、(B)複数の区画の各々について、記憶部に記憶されている実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対してデータの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出する算出部と、(C)第1の予測値のうち最大の値が、第2の予測値のうち最大の値より大きい場合、所定の条件を満たす区画のペアに対してデータの入れ替えを実行する入替部とを有する。
The information processing apparatus according to the first aspect of the present embodiment includes (A) a storage unit that has a plurality of sections and stores the actual number of times of writing for each of the plurality of sections, and (B) a plurality of sections For each of the data, the first predicted value, which is the predicted value of the number of writes in the case where data replacement is not performed, and the pair of partitions satisfying the predetermined condition, from the actual number of writes stored in the storage unit. A calculation unit that calculates a second predicted value that is a predicted value of the number of times of writing when the replacement is performed; and (C) a maximum value among the first predicted values is a maximum value among the second predicted values. When the value is larger than the value, a replacement unit that performs data replacement for a pair of partitions satisfying a predetermined condition is provided.
このようにすれば、入れ替えが有効であることが担保されるので、書き込み回数を効果的に平準化できるようになる。
In this way, since the replacement is guaranteed to be effective, the number of writes can be effectively leveled.
また、上で述べた算出部は、(b1)区画のペアのうち第1の区画の実際の書き込み回数と、第1の区画の実際の書き込み回数から算出された第1の書き込み頻度とを用いて、第1の区画の第1の予測値を算出し、(b2)第1の区画の実際の書き込み回数と、区画のペアのうち第2の区画の実際の書き込み回数から算出された第2の書き込み頻度とを用いて、第1の区画の第2の予測値を算出してもよい。このようにすれば、予測値を簡便に求めることができるようになる。
Further, the calculation unit described above uses (b1) the actual number of times of writing in the first section of the pair of sections and the first writing frequency calculated from the actual number of writes in the first section. The first predicted value of the first partition is calculated, and (b2) the second calculated from the actual number of writes of the first partition and the actual number of writes of the second partition in the pair of partitions. May be used to calculate the second predicted value of the first partition. In this way, the predicted value can be easily obtained.
また、上で述べた所定条件は、区画のペアのうち第1の区画の第1の予測値と、当該区画のペアのうち第2の区画の第1の予測値との差が所定値以上であるという条件を含んでもよい。このようにすれば、書き込み回数の平準化に寄与する区画のペアに対して入れ替えを実行できるようになる。
In addition, the predetermined condition described above is that a difference between the first predicted value of the first partition of the pair of partitions and the first predicted value of the second partition of the pair of partitions is equal to or greater than a predetermined value. It may include a condition that In this way, it is possible to perform replacement for a pair of sections that contribute to leveling of the number of writes.
また、第1の区画の第1の予測値と第2の区画の第1の予測値との差が最大になるように、第1の区画と第2の区画とが選択されてもよい。このようにすれば、最も効果的なペアを選択できるようになる。
Also, the first partition and the second partition may be selected so that the difference between the first predicted value of the first partition and the first predicted value of the second partition is maximized. In this way, the most effective pair can be selected.
また、本情報処理装置は、(D)予め取得した第2の設定値に基づき、入れ替えの対象ではない区画を決定する決定部をさらに有してもよい。そして、上で述べた所定条件は、第1の区画及び第2の区画が、入れ替えの対象ではない区画以外の区画であるという条件をさらに含んでもよい。このようにすれば、入れ替えの対象になるべきではないデータ或いは区画に対して入れ替えが行われるのを防げるようになる。
Further, the information processing apparatus may further include (D) a determination unit that determines a partition that is not a replacement target based on the second setting value acquired in advance. The predetermined condition described above may further include a condition that the first section and the second section are sections other than the sections that are not to be replaced. In this way, it is possible to prevent replacement of data or sections that should not be replaced.
また、本情報処理装置は、(E)所定の時刻を経過した場合又は所定のイベントが発生した場合、算出部及び入替部に処理を開始させる制御部をさらに有してもよい。このようにすれば、適切なタイミングに処理を行えるので、情報処理装置の資源の浪費を抑制できるようになる。
The information processing apparatus may further include (E) a control unit that causes the calculation unit and the replacement unit to start processing when a predetermined time has elapsed or when a predetermined event has occurred. In this way, processing can be performed at an appropriate timing, so that waste of resources of the information processing apparatus can be suppressed.
また、本情報処理装置は、(F)予め取得した第1の設定値に基づき、入れ替えを実行する間隔、入れ替えの回数、及び1回の入れ替えにより移動するデータ量を算出し、算出結果に基づき入替部に入れ替えを実行させる入替管理部をさらに有してもよい。このようにすれば、例えば区画の数又はサイズ等に応じて適切に入れ替えを行えるようになる。
In addition, the information processing apparatus calculates (F) the interval for executing the replacement, the number of times of replacement, and the amount of data moved by one replacement based on the first setting value acquired in advance, and based on the calculation result You may further have a replacement management part which makes a replacement part perform replacement. If it does in this way, it will come to be able to replace appropriately according to the number or size of a division, for example.
また、上で述べた記憶部は、(a1)書き込み回数に上限がある記憶媒体であってもよい。
Further, the storage unit described above may be (a1) a storage medium having an upper limit on the number of times of writing.
本実施の形態の第2の態様に係る制御方法は、(G)複数の区画を有し且つ複数の区画の各々について実際の書き込み回数を記憶する記憶部における複数の区画の各々について、記憶部に記憶されている実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対してデータの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出し、(H)第1の予測値のうち最大の値が、第2の予測値のうち最大の値より大きい場合、所定の条件を満たす区画のペアに対してデータの入れ替えを実行する処理を含む。
The control method according to the second aspect of the present embodiment includes (G) a storage unit for each of a plurality of partitions in a storage unit that has a plurality of partitions and stores the actual number of times of writing for each of the plurality of partitions. When data exchange is executed for a pair of partitions that satisfy a predetermined condition and a first predicted value that is a predicted value of the number of write times when data exchange is not executed from the actual number of writes stored in A second predicted value that is a predicted value of the number of times of writing in (H), and (H) when the maximum value among the first predicted values is greater than the maximum value among the second predicted values, a predetermined condition Including a process of exchanging data for a pair of partitions satisfying the condition.
なお、上記方法による処理をコンピュータ又はプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD-ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
It is possible to create a program for causing a computer or processor to perform the processing according to the above method, and the program is a computer-readable storage such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, and a hard disk. Stored in a medium or storage device. The intermediate processing result is temporarily stored in a storage device such as a main memory.
Claims (10)
- 複数の区画を有し且つ前記複数の区画の各々について実際の書き込み回数を記憶する記憶部と、
前記複数の区画の各々について、前記記憶部に記憶されている前記実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対して前記データの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出する算出部と、
前記第1の予測値のうち最大の値が、前記第2の予測値のうち最大の値より大きい場合、前記所定の条件を満たす区画のペアに対して前記データの入れ替えを実行する入替部と、
を有する情報処理装置。 A storage unit having a plurality of partitions and storing the actual number of times of writing for each of the plurality of partitions;
For each of the plurality of partitions, from the actual number of writes stored in the storage unit, a partition that satisfies a first predicted value that is a predicted value of the number of writes when data replacement is not performed and a predetermined condition A calculation unit that calculates a second predicted value that is a predicted value of the number of times of writing when the data replacement is performed on the pair of
A replacement unit that performs replacement of the data for a pair of partitions satisfying the predetermined condition when a maximum value of the first predicted values is greater than a maximum value of the second predicted values; ,
An information processing apparatus. - 前記算出部は、
前記区画のペアのうち第1の区画の前記実際の書き込み回数と、前記第1の区画の前記実際の書き込み回数から算出された第1の書き込み頻度とを用いて、前記第1の区画の前記第1の予測値を算出し、
前記第1の区画の前記実際の書き込み回数と、前記区画のペアのうち第2の区画の前記実際の書き込み回数から算出された第2の書き込み頻度とを用いて、前記第1の区画の前記第2の予測値を算出する
請求項1記載の情報処理装置。 The calculation unit includes:
Using the actual number of writes in the first partition of the pair of partitions and the first write frequency calculated from the actual number of writes in the first partition, the first partition Calculating a first predicted value;
Using the actual number of writes of the first partition and the second write frequency calculated from the actual number of writes of the second partition of the pair of partitions, the first partition of the first partition The information processing apparatus according to claim 1, wherein the second predicted value is calculated. - 前記所定条件は、前記区画のペアのうち第1の区画の前記第1の予測値と、当該区画のペアのうち第2の区画の前記第1の予測値との差が所定値以上であるという条件を含む
請求項1又は2記載の情報処理装置。 The predetermined condition is that a difference between the first predicted value of the first section of the pair of sections and the first predicted value of the second section of the pair of sections is a predetermined value or more. The information processing apparatus according to claim 1, further comprising: - 前記第1の区画の前記第1の予測値と前記第2の区画の前記第1の予測値との差が最大になるように、前記第1の区画と前記第2の区画とが選択される
請求項3記載の情報処理装置。 The first partition and the second partition are selected such that the difference between the first predicted value of the first partition and the first predicted value of the second partition is maximized. The information processing apparatus according to claim 3. - 予め取得した第2の設定値に基づき、前記入れ替えの対象ではない区画を決定する決定部
をさらに有し、
前記所定条件は、前記第1の区画及び前記第2の区画が、前記入れ替えの対象ではない区画以外の区画であるという条件をさらに含む
請求項3記載の情報処理装置。 A determination unit that determines a section that is not the target of replacement based on the second setting value acquired in advance;
The information processing apparatus according to claim 3, wherein the predetermined condition further includes a condition that the first section and the second section are sections other than the section that is not the replacement target. - 所定の時刻を経過した場合又は所定のイベントが発生した場合、前記算出部及び前記入替部に処理を開始させる制御部
をさらに有する請求項1乃至5のいずれか1つ記載の情報処理装置。 The information processing apparatus according to claim 1, further comprising: a control unit that causes the calculation unit and the replacement unit to start processing when a predetermined time has elapsed or when a predetermined event has occurred. - 予め取得した第1の設定値に基づき、前記入れ替えを実行する間隔、前記入れ替えの回数、及び1回の前記入れ替えにより移動するデータ量を算出し、算出結果に基づき前記入替部に前記入れ替えを実行させる入替管理部
をさらに有する請求項1乃至6のいずれか1つ記載の情報処理装置。 Based on the first set value acquired in advance, the interval for performing the replacement, the number of times of replacement, and the amount of data to be moved by one replacement are calculated, and the replacement is performed in the replacement unit based on the calculation result. The information processing apparatus according to any one of claims 1 to 6, further comprising a replacement management unit. - 前記記憶部は、書き込み回数に上限がある記憶媒体である
請求項1乃至7のいずれか1つ記載の情報処理装置。 The information processing apparatus according to claim 1, wherein the storage unit is a storage medium having an upper limit on the number of times of writing. - 複数の区画を有し且つ前記複数の区画の各々について実際の書き込み回数を記憶する記憶部における前記複数の区画の各々について、前記記憶部に記憶されている前記実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対して前記データの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出し、
前記第1の予測値のうち最大の値が、前記第2の予測値のうち最大の値より大きい場合、前記所定の条件を満たす区画のペアに対して前記データの入れ替えを実行する
処理をコンピュータに実行させるための制御プログラム。 For each of the plurality of partitions in the storage unit that has a plurality of partitions and stores the actual number of writes for each of the plurality of partitions, the data is replaced from the actual number of writes stored in the storage unit. A first predicted value that is a predicted value of the number of times of writing when the data is not executed, and a second predicted value that is a predicted value of the number of times of writing when the data replacement is executed for a pair of partitions satisfying a predetermined condition And
When the maximum value of the first predicted values is greater than the maximum value of the second predicted values, the computer executes a process of exchanging the data for a pair of partitions satisfying the predetermined condition A control program to be executed. - 複数の区画を有し且つ前記複数の区画の各々について実際の書き込み回数を記憶する記憶部における前記複数の区画の各々について、前記記憶部に記憶されている前記実際の書き込み回数から、データの入れ替えを実行しない場合における書き込み回数の予測値である第1の予測値と、所定条件を満たす区画のペアに対して前記データの入れ替えを実行した場合における書き込み回数の予測値である第2の予測値とを算出し、
前記第1の予測値のうち最大の値が、前記第2の予測値のうち最大の値より大きい場合、前記所定の条件を満たす区画のペアに対して前記データの入れ替えを実行する
処理をコンピュータが実行する制御方法。 For each of the plurality of partitions in the storage unit that has a plurality of partitions and stores the actual number of writes for each of the plurality of partitions, the data is replaced from the actual number of writes stored in the storage unit. A first predicted value that is a predicted value of the number of times of writing when the data is not executed, and a second predicted value that is a predicted value of the number of times of writing when the data replacement is executed for a pair of partitions satisfying a predetermined condition And
When the maximum value of the first predicted values is greater than the maximum value of the second predicted values, the computer executes a process of exchanging the data for a pair of partitions satisfying the predetermined condition Control method executed by.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/064219 WO2015181923A1 (en) | 2014-05-29 | 2014-05-29 | Information processing device, control method, and control program |
JP2016523037A JP6222354B2 (en) | 2014-05-29 | 2014-05-29 | Information processing apparatus, control method, and control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/064219 WO2015181923A1 (en) | 2014-05-29 | 2014-05-29 | Information processing device, control method, and control program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015181923A1 true WO2015181923A1 (en) | 2015-12-03 |
Family
ID=54698303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2014/064219 WO2015181923A1 (en) | 2014-05-29 | 2014-05-29 | Information processing device, control method, and control program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6222354B2 (en) |
WO (1) | WO2015181923A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018169980A (en) * | 2017-03-30 | 2018-11-01 | 日本電気株式会社 | Storage device, control method thereof, and program |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816482A (en) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | Storage device using flash memory, and its storage control method |
JP2010152723A (en) * | 2008-12-25 | 2010-07-08 | Canon Inc | Information processing device, method and program |
-
2014
- 2014-05-29 WO PCT/JP2014/064219 patent/WO2015181923A1/en active Application Filing
- 2014-05-29 JP JP2016523037A patent/JP6222354B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816482A (en) * | 1994-06-29 | 1996-01-19 | Hitachi Ltd | Storage device using flash memory, and its storage control method |
JP2010152723A (en) * | 2008-12-25 | 2010-07-08 | Canon Inc | Information processing device, method and program |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018169980A (en) * | 2017-03-30 | 2018-11-01 | 日本電気株式会社 | Storage device, control method thereof, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6222354B2 (en) | 2017-11-01 |
JPWO2015181923A1 (en) | 2017-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9652332B2 (en) | Information processing apparatus and virtual machine migration method | |
CN108369544B (en) | Deferred server recovery in a computing system | |
EP3175359B1 (en) | Patch process ensuring high availability of cloud application | |
US9396353B2 (en) | Data allocation among devices with different data rates | |
CN111124475B (en) | Method for storage management, electronic device, and computer-readable storage medium | |
JP5323554B2 (en) | Job processing method, computer-readable recording medium storing job processing program, and job processing system | |
TW201140442A (en) | Accelerating a wake-up time of a system | |
JPWO2014147802A1 (en) | Information processing apparatus, resource allocation method, and program | |
WO2013171944A1 (en) | Virtual machine management system, virtual machine management method, and program | |
JP2019079334A (en) | Information processing apparatus, information processing system, and information processing method | |
US20170109376A1 (en) | Method for managing data using in-memory database and apparatus thereof | |
US11461131B2 (en) | Hosting virtual machines on a secondary storage system | |
CN112256433B (en) | Partition migration method and device based on Kafka cluster | |
CN104932986A (en) | Data redistribution method and apparatus | |
JP5849794B2 (en) | Storage control device, storage control method, and storage control program | |
JP6115575B2 (en) | Data set multiplicity changing device, server, data set multiplicity changing method, and computer program | |
JP6222354B2 (en) | Information processing apparatus, control method, and control program | |
CN106484312B (en) | A kind of virtual machine disk data migration method and device | |
JP6148129B2 (en) | Information processing apparatus, firmware update method, and firmware update program | |
JP5672521B2 (en) | Computer system and checkpoint restart method thereof | |
JP6349837B2 (en) | Scheduler apparatus, scheduling method therefor, arithmetic processing system, and computer program | |
TWI668636B (en) | Update method for server firmware | |
CN114697213A (en) | Upgrading method and device | |
JP7332249B2 (en) | Destination determination program, device and method | |
JP2021105772A (en) | Prediction management system of resource usage amount, and prediction management method of resource usage amount |
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: 14893077 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2016523037 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: 14893077 Country of ref document: EP Kind code of ref document: A1 |