Source: https://patents.google.com/patent/JP2008003932A/en
Timestamp: 2020-01-28 01:32:24
Document Index: 40935510

Matched Legal Cases: ['art 310', 'art 340', 'art 40', 'art 310', 'art 320', 'art 330', 'art 340', 'art 350']

JP2008003932A - Data storage device, data storage method, and computer program - Google Patents
Data storage device, data storage method, and computer program Download PDF
JP2008003932A
JP2008003932A JP2006174103A JP2006174103A JP2008003932A JP 2008003932 A JP2008003932 A JP 2008003932A JP 2006174103 A JP2006174103 A JP 2006174103A JP 2006174103 A JP2006174103 A JP 2006174103A JP 2008003932 A JP2008003932 A JP 2008003932A
JP2006174103A
Kazuyoshi Maezawa
一好 前澤
2006-06-23 Application filed by Sony Corp, ソニー株式会社 filed Critical Sony Corp
2006-06-23 Priority to JP2006174103A priority Critical patent/JP2008003932A/en
2008-01-10 Publication of JP2008003932A publication Critical patent/JP2008003932A/en
<P>PROBLEM TO BE SOLVED: To provide a data storage device, a data storage method and a computer program. <P>SOLUTION: The data storage device 10 comprises a storage part having a storage area divided to a first storage area and a second storage area, a writing part 310 for writing data to the first storage area of the storage part by a log structured file system, and an optimized data generation part 340 for optimizing the data written in the first storage area, when the data volume of the data written in the first storage area exceeds a set data volume, to generate optimized data. The writing part writes the optimized data generated by the optimized data generation part into the second storage area. <P>COPYRIGHT: (C)2008,JPO&INPIT
The present invention relates to a data storage device, a data storage method, and a computer program.
In recent years, a storage medium such as a random access memory (RAM) that can freely read and write data and a read only memory (ROM) that can maintain data storage even when the power is turned off has been widely used as the configuration of information processing apparatuses. . In addition, flash memories that have the characteristics of both the RAM and the ROM, can rewrite data electrically, and can maintain data storage even when the power is turned off are rapidly spreading.
The flash memory is roughly classified into a NAND flash memory and a NOR flash memory. The NAND flash memory is mainly used for storing and transporting data, and the NOR flash memory is often used for storing a program of a portable device because it can perform high-speed random access. Hereinafter, an outline of the storage medium will be described by taking a NOR flash memory as an example.
While the NOR flash memory can perform high-speed random access as described above, data can be erased only in units of sectors, and there is an upper limit on the number of erases per sector. It has the property that it takes time to erase. In order to change data in the NOR type flash memory, (1) data of the entire sector is read from the sector where the data to be changed exists, and (2) data is changed with respect to the read data of the sector. (3) The entire data of the sector in which the data to be changed exists is erased, and (4) the data in which the change is reflected needs to be written into the sector where the data has been erased in the previous step. It took a lot of time.
In order to reduce the time required for data change in such a NOR type flash memory, a log-structured file system (Log-Structured File System) that writes data changes as log appends has been proposed. According to the log structured file system, the sector data can be changed simply by writing the changed data into the empty area of the NOR flash memory, so that the time load can be suppressed.
In addition, the cleanup process in the NOR flash memory, that is, the data optimization process, is a unit called (1) selecting a cleanup target range and (2) an invalid log or a segment containing a lot of data from the cleanup target range. (3) Write all the valid logs included in the searched segment to the unused segment as a new log, and (4) delete the data of the searched segment. The segment is changed to an unused segment. (5) As a result of the above processing, fragmentation occurs between the used segment and the unused segment in the cleanup target range. (See Patent Document 1).
More specifically, the above defragmentation process reads the data of segment A in use, writes it to an unused segment adjacent to another segment B in use, erases the data of segment A, and uses segment A as an unused segment. This operation is executed until all unused segments in the cleanup target range become continuous. Note that the size of each segment may be set based on the size of the sector, but may be set arbitrarily.
Japanese Patent Laid-Open No. 10-11337
However, as described above, the cleanup process in the data storage device that operates based on the conventional log structured file system has a large number of read, write, and erase processes. Therefore, depending on the frequency with which the cleanup process is required, there is a problem that a large time load is applied to the storage device.
Therefore, the present invention has been made in view of the above problems, and an object of the present invention is to optimize the data written in the storage unit while reducing the time required for the optimization. It is an object of the present invention to provide a new and improved data storage device, a data storage method, and a computer program capable of performing the above.
In order to solve the above-described problem, according to one aspect of the present invention, a storage area is divided into a first storage area and a second storage area, and a log structure is formed in the first storage area of the storage section. When the data amount of the data written in the first storage area exceeds the set data amount, the optimized data that optimizes the data written in the first storage area There is provided a data storage device including an optimized data generation unit for generating, and the writing unit writes the optimized data generated by the optimized data generation unit to the second storage area.
According to such a configuration, the optimized data generation unit extracts valid data from the data written in the first storage area, and generates optimized data obtained by continuously connecting the valid data. Can do. In addition, the writing unit writes the optimized data in the second storage area, which is a storage area different from the first storage area, so that the second storage area is written in the first storage area. Valid data is reflected. Therefore, the data written in the first storage area can be optimized without erasing the data written in the first storage area.
The writing unit may further include an identification information adding unit that adds identification information indicating a storage area to which data is to be written to the first storage area or the second storage area. According to this configuration, the writing unit determines whether the identification information is assigned to the first storage area or the second storage area, or makes effective identification based on the contents of the assigned identification information. Information can be determined, and data can be written to a storage area to which identification information is assigned or a storage area to which valid identification information is assigned.
The writing unit may transfer the additional data written in the first storage area to the second storage area after the optimization data generation unit starts generating the optimization data. According to such a configuration, since the content of the additional data is written in the second storage area as it is or optimized, the additional data written in the first storage area can be erased collectively.
The identification information adding unit may add the identification information to the second storage area when the transfer of the additional data by the writing unit is completed. According to this configuration, the writing unit can perform data writing after the transfer of the additional data is finished in the second storage area to which the identification information is given.
The identification information adding unit may add identification information that can be determined to be valid to either the first storage area or the second storage area. According to such a configuration, the writing unit can determine which identification information is valid and write the data to the corresponding storage area even if the identification information is given to the plurality of storage areas.
The identification information adding unit may add identification information including a number larger than the most recently assigned identification information or identification information including a smaller number than the most recently assigned identification information. According to such a configuration, the identification information is given to the second storage area before the identification information of the first storage area is erased, or the data storage device is identified to a plurality of storage areas for some reason. Even in a state where information is provided, the writing unit can determine valid identification information based on the size of the identification information and write the data in the corresponding storage area.
After the identification information is given to the second storage area to which the additional data is transferred, an erasing unit that erases data written in the first storage area may be further included. According to such a configuration, the erasure unit erases the data written in the first storage area in a lump after reflecting all the valid data written in the first storage area in the second storage area. can do. Therefore, the time required for the process of optimizing a series of data can be reduced.
The erasure unit may erase the data stored in the first storage area when the data processing of the data storage device is idle. According to such a configuration, the erasing unit writes the first data to the storage unit, reads the data from the storage unit, generates optimized data, and assigns identification information. Erase the data stored in the storage area. Therefore, the load required for erasing data stored in the first storage area can be substantially eliminated.
The storage unit may be a NOR flash memory.
In order to solve the above problem, according to another aspect of the present invention, a log structure is formed in a first storage area of a storage unit in which the storage area is divided into a first storage area and a second storage area. Writing data using the integrated file system, and generating optimized data that optimizes the data written to the first storage area when the amount of data written to the first storage area exceeds the set data amount There is provided a data storage method comprising the steps of: writing optimized data into a second storage area.
According to such a configuration, optimized data that optimizes valid data among the data written in the first storage area, triggered by the amount of data exceeding the set data amount being written in the first storage area Can be collectively reflected in the second storage area. Therefore, the number of times of writing and erasing required for data cleanup processing in the conventional log structured file system can be remarkably reduced, and the time load for the processing can be suppressed.
In order to solve the above-mentioned problem, according to another aspect of the present invention, a computer includes a first storage area of a storage unit in which the storage area is divided into a first storage area and a second storage area. To write data using the log structured file system, and when the amount of data written to the first storage area exceeds the set amount of data, optimization is performed to optimize the data written to the first storage area There is provided a computer program that functions as a data storage device that executes a step of generating data and a step of writing optimized data to a second storage area.
According to such a configuration, optimized data that optimizes valid data among the data written in the first storage area, triggered by the amount of data exceeding the set data amount being written in the first storage area Can be collectively reflected in the second storage area. Therefore, when optimizing the data written in the first storage area, the data written in the first storage area can be erased all at once without repeating erasure in small amounts.
As described above, according to the data storage device, the data storage method, and the computer program according to the present invention, it is possible to optimize the data written in the storage unit while reducing the time required for the optimization.
FIG. 1 is a block diagram showing a configuration of a data storage device according to an embodiment of the present invention. The data storage device 10 includes a NOR flash memory 20, a processing unit 30 and an input / output unit 40. The data storage device 10 performs processing such as data writing and reading with respect to a NOR flash memory 20 as a storage unit that is built-in or detachably connected. Examples of the data storage device 10 include a PC (Personal Computer), a home video processing device (DVD recorder, VCR, etc.), a mobile phone, a PHS (Personal Handyphone System), a portable music playback device, and a portable video processing device. And information processing apparatuses such as PDA (Personal Digital Assistant), home game machine, portable game machine, and home appliance.
The NOR flash memory 20 as an example of a storage unit can store data input from the outside by the processing unit 30. Further, the NOR flash memory 20 can electrically rewrite data, and can retain data even if power supply is once cut off. Further, the NOR flash memory 20 can process data for each physically partitioned sector constituting the storage area.
The NAND (Not AND) type flash memory has a cell structure in which cells are connected in series to bit lines, while the NOR (Not OR) type flash memory 20 has a cell in which cells are connected in parallel to bit lines. It has a structure. The NOR flash memory 20 having such a structure can be randomly accessed.
Note that the storage unit is not limited to the NOR flash memory 20, but is a nonvolatile flash memory such as a NAND flash memory, an EEPROM (Electrically Erasable Programmable Read Only Memory), an ERPM (Erasable Programmable Read Only Memory), or a hard disk. (Registered trademark) magnetic disk, CD-R (Compact Disk Recordable) / RW (ReWriteable), DVD-R (Digital Versatile Disk Recordable) / RW / + R / + RW / RAM (Randam Access B) -Ray Disc) -R / Optical disk or the like D-RE, may be a storage medium such as a MO (Magneto Optical) disk. In this case, the processing unit 30 is configured to have a function corresponding to each storage medium.
In addition, the storage area of the NOR flash memory 20 according to the present embodiment is divided into two storage areas: a storage area 1 (first storage area) and a storage area 2 (second storage area). The storage capacities of the storage area 1 and the storage area 2 may be the same. Further, the storage area may be physically divided. Specifically, based on the physical address indicating the position of each sector in the real storage area, the storage of the NOR flash memory 20 is performed so that the sectors constituting the storage area 1 and the storage area 2 are continuous on the respective storage areas. The area can be divided.
Furthermore, the storage unit can be constituted by a plurality of storage media, and each of the storage media can be handled as a divided storage area. For example, two NOR flash memories may be provided as the storage unit, and the storage area of one NOR flash memory may be handled as the storage area 1, and the storage area of the other NOR flash memory may be handled as the storage area 2.
Hereinafter, an example in which the storage area is divided into two will be described, but the storage area may be divided into three or more.
The processing unit 30 includes a writing unit 310, a reading unit 320, an erasing unit 330, an optimized data generating unit 340, and an identification information adding unit 350.
The writing unit 310 performs a process of writing the data input via the input / output unit 40 into the NOR flash memory 20 by the log structured file system. The log structured file system is a method in which new data or changed data for changing the contents of data already written is added in the form of a log without overwriting past data. Therefore, according to the log structured file system, the process of erasing data at the time of writing or changing data is not necessary, so that the efficiency of data writing or changing can be improved.
The storage area of the NOR flash memory 20 into which the writing unit 310 writes data is determined based on identification information described later written in each storage area. The writing unit 310 can also transfer the data read from the NOR flash memory 20 to a different storage area of the NOR flash memory 20 again. Here, the log format in the log structured file system will be described with reference to FIGS.
FIG. 2 is an explanatory diagram showing the format of a log written by the log structured file system. As described above, the log in the log structured file system includes new data to be added when new data is written or changed data to be added when data is changed. In the following description, a file name is assigned to each of the new data and the changed data. In the example shown in FIG. 2, the log A is a log recorded when the file A is written to the NOR flash memory 20. The header A, the block 1 of the file A, the block 2 of the file A, the position Information A and EOL-A are included.
The header A is information that is arranged at the head of the log A and indicates which of the block or position information of the file A that constitutes the log A is valid. In the example illustrated in FIG. 2, the header A includes information indicating that all of the block 1, block 2, and position information of the file A are valid.
Block 1 and block 2 of file A are data blocks in which data of file A made up of information such as video / audio and programs is divided and stored in units of blocks. In the illustrated example, it means that the data capacity of the file A corresponds to two data blocks. The data block may consist of a plurality of sectors. The program may be a program for controlling the data storage device 10 read from a ROM (not shown) via a central processing unit (not shown).
The position information A is information (inode) indicating the position in the storage area of the data block of the valid file A included in the log A. In the example shown in FIG. 2, since the block 1 and the block 2 of the file A are valid data blocks, the position information A indicates the positions of the block 1 and the block 2 of the file A on the NOR flash memory 20. Yes.
EOL (End Of Log) -A is information indicating the end of the log A. Therefore, the header A to the EOL-A are handled as one log.
FIG. 3 is an explanatory diagram showing a state in which the log B and the log A-2 are written by the log structured file system after the log A.
Log B is a log related to file B, and includes header B, block 1 of file B, position information B, and EOL-B. Since the roles of the header B, the block 1 of the file B, the position information B, and EOL-B are substantially the same as the contents described in the log A, the description thereof is omitted.
The log A-2 is a log added to change the data of the file A, and includes a header A-2, a block 2 of the file A, position information A2, and EOL-A2. Here, the block 2 of the file A of the log A-2 is a data block obtained by changing the block 2 of the file A of the log A. That is, the log A-2 is a log added to change a part of the data of the file A. Therefore, block 2 of log A becomes an invalid data block by writing log A-2.
Further, the position information A of the log A becomes invalid information at the same time that the block 2 of the log A becomes an invalid data block. In this way, the block 2 and the position information of the file A of the log A that has become invalid due to the addition of the log and is invalid are shown in color.
Then, instead of the position information A, the position information A2 of the log A-2 holds information indicating the position of a valid data block of the file A. In the example shown in FIG. 3, the position information A2 indicates the positions on the storage area of the block 1 of the log A and the block 2 of the log A-2, which are currently effective data blocks.
As described above, according to the log structured file system, when the existing data already written in the NOR flash memory 20 is changed, the changed data is not used without reading and erasing the existing data. The change of the existing data can be realized only by appending to the area. Therefore, the time load and data processing load accompanying the change of the existing data can be suppressed.
Returning to the description of the configuration of the data storage device 10 with reference to FIG. 1, the reading unit 320 of the processing unit 30 plays a role of reading data stored in the NOR flash memory 20. The read data is output to an external device via the input / output unit 40, or input to the writing unit 310, the optimized data generation unit 340, and the like.
The erasing unit 330 erases data stored in the NOR flash memory 20 at a predetermined timing. Note that the erasing unit 330 may be configured so that when erasing the same amount of data stored in the NOR type flash memory 20, the erasing can be performed more quickly than by erasing them in batches. . The predetermined timing at which the erasing unit 330 erases data will be described later with reference to FIGS. 4 and 5.
The optimized data generation unit 340 generates optimized data obtained by optimizing (defragmenting) fragmented (fragmented) data stored in the NOR flash memory 20. Fragmentation is invalid in the data usage area even if there is an unused area between the data usage areas and the data usage area is discontinuous or the data usage area is continuous. This means a state where data is intervened. In this way, when data is fragmented and an unused area or an invalid area containing invalid data is fragmented, when data is newly written, the data is divided into a plurality of unused areas. It becomes necessary to store data across areas or invalid areas. This is a problem in that the data reading and writing speed is reduced.
The optimization is a process of rearranging the data on the fragmented NOR flash memory 20 to eliminate the fragmented state of the unused area or the invalid area and increasing the continuous unused area. . That is, the optimized data is a data group in which data is arranged so that valid data is continuous. The timing at which the optimization data generation unit 340 generates the optimization data and a specific example will be described later with reference to FIGS.
The identification information adding unit 350 alternately assigns identification information to the storage areas 1 and 2 of the NOR flash memory 20. When the storage area is divided into three or more, it is given to each storage area in order. The identification information is information that is referred to when the writing unit 310 writes data. The writing unit 310 determines a storage area in which valid identification information is written, and writes the data to the storage area.
The identification information may be information given only to any storage area at an arbitrary time. In this case, the writing unit 310 determines the storage area to which the identification information is added as the data writing target without determining whether the identification information is valid or invalid. In this case, the content of the identification information provided by the identification information providing unit 350 is not limited, and the identification information providing unit 350 may provide different identification information every time or may give the same identification information every time.
The identification information may be information representing a symbol, a number, a character, or the like. The timing at which the identification information is added to each storage area of the NOR flash memory 20 by the identification information adding unit 350 and a specific example of the identification information will be described later with reference to FIGS. 4 and 5.
The input / output unit 40 functions as an interface unit or a communication unit that inputs / outputs signals with an external device connected to the data storage device. The signals include music data such as music, lectures and radio programs, video data such as movies, television programs, video programs, photos, pictures and charts, arbitrary data such as games and software, and data storage. A control signal, a program, etc. for controlling the apparatus or the external device are included.
The external device includes a content distribution server for distributing content such as music data and video data, a PC, a home video processing device, a mobile phone, a PHS, a portable music playback device, a portable video processing device, a PDA, Information processing apparatuses such as home game machines, portable game machines, and home appliances can be given.
Next, the operation of the data storage device 10 according to the present embodiment will be described with reference to FIG. 4 and FIG.
FIG. 4 is a flowchart showing an operation flow of the data storage device 10 according to the present embodiment. FIG. 5 is an explanatory diagram showing a state of processing in the NOR type flash memory 20.
First, the writing unit 310 writes data to the storage area 1 of the NOR flash memory 20 (S500). At this point, it is assumed that valid identification information is stored in the storage area 1. FIG. 5A shows a state in which data is written in the storage area 1 of the NOR flash memory 20. Since the identification information “0x01” is written in the storage area 1 but the identification information is not written in the storage area 2 (identification information: NULL), the storage area 1 of the NOR flash memory 20 is This is a storage area to which data is written by the writing unit 310. In the present embodiment, when the identification information is written in both the storage area 1 and the storage area 2, the writing unit 310 determines that the identification information having a larger value is valid, and the identification information having a larger value is displayed. The storage area to which data is written is set as a data writing target area. “0x” means that the subsequent character string is a hexadecimal number.
In FIG. 5A, log A-1, log B-1, log C-1 and log B-2 are written in the storage area 1. Here, as described with reference to FIG. 2, each log includes a header, a data block of a file, position information, and EOL. For example, log A-1 includes a data block of file A, log B-1 includes a data block of file B, and log C-1 includes a data block of file C. Thus, the area where the log is written is classified as a use area.
The log B-2 is a log added to change the data block and position information of the file B of the log B-1. By adding log B-2, the data block of log B-1 becomes invalid, and the state is indicated by a color as an invalid area. Note that adding log B-2 does not necessarily invalidate all the contents of log B-1, but in FIG. 5, the logs shown in the same alphabet are attached to the alphabet for the sake of clarity of explanation. It is assumed that all contents have been changed by a log with a large number. Further, the blank portion in each storage area of the NOR flash memory 20 indicates an unused area where no log is written.
Subsequently, it is determined whether the amount of data written in the storage area 1 has reached a predetermined set data amount Th (S504). This determination may be performed by the monitoring unit (not shown) related to the storage area of the reading unit 320, the optimized data generation unit 340, or the NOR flash memory 20. When it is determined that the amount of data written in the storage area 1 has not reached the predetermined set data amount Th, the writing unit 310 continues to write data in the storage area 1 (S500).
When it is determined that the amount of data written to the storage area 1 has reached a predetermined set data amount Th, or when the remaining storage capacity of the storage area 1 is below a predetermined value, the optimized data generation unit 340 Generation of optimized data is started based on the data written in the storage area 1 of the NOR flash memory 20 (S508). FIG. 5B shows a state in which the data amount written in the storage area 1 has reached a predetermined set data amount Th. In FIG. 5B, when the log B-3 for changing the contents of the log B-2 is written, the data amount written in the storage area 1 of the NOR type flash memory 20 becomes the set data amount Th. Has reached.
If the entire storage capacity of the NOR flash memory 20 is 64 Mbytes, the sector size is 12 Kbytes, and the storage areas 1 and 2 are 32 Mbytes, for example, the set data amount Th is 28 Mbytes or each storage It may be 25.6 Mbytes, which is 80% of the storage capacity of the area. Further, the identification information of the storage area 1 may be written in the sector 0 that is the first sector of the storage area 1, and the identification information of the storage area 2 may be written in the sector 256 that is the first sector of the storage area 2. When a plurality of NOR flash memories are provided and each NOR flash memory is handled as a divided storage area, identification information may be written in the head sector or head area of each NOR flash memory.
In FIG. 5B, log A-1, log B-1, log B-2, and log A-2 are invalid logs due to the addition of log A-3 and log B-3. Therefore, at this time, the log C-1, the log A-3, and the log B-3 are valid logs. Therefore, the optimized data generation unit 340 generates optimized data in which the data in the storage area 1 is optimized by using the log C-1, the log A-3, and the log B-3 as valid data (S508).
Next, the writing unit 310 writes the optimized data generated by the optimized data generating unit 340 into the storage area 2 (S512). Then, it is determined whether or not the writing of the optimized data has been completed (S516). In S508, data is written as additional data in the storage area even after generation of optimized data in the storage area 1 is started (S520). In the above description, it has been described that the writing unit 310 writes data to a storage area to which valid identification information is assigned, that is, the storage area 1 at this time. However, the optimized data and the additional data are given valid identification information. It is possible to write to a storage area that has not been processed, that is, storage area 2.
FIG. 5C shows that the log D-1 is added as additional data to the storage area 1 while the optimization data is written to the storage area 2 after the optimization data generation unit 340 starts generating the optimization data. It shows how it was written. The optimized data generated by the optimized data generation unit 340 is data in which the log A-3, the log B-3, and the log C-1 that are valid at the start of the generation of the optimized data in the storage area 1 are continuously arranged. It is. A more detailed configuration of the optimized data will be described with reference to FIG.
FIG. 6 is an explanatory diagram showing an example of the optimization data generated by the optimization data generation unit 340. The optimization data of the log A-3, the log B-3, and the log C-1, that is, the optimization data of the data written in the storage area 1, includes the header N, the block 1 and position information A3 of the file A, and the file B blocks 1 and 2 and position information B3, file C block 1 and position information C1, and EOL-N are included. Since the header, data block, position information, and EOL are referred to with reference to FIG. 2, description thereof is omitted here.
As shown in FIG. 6, the optimized data generation unit 340 not only connects valid logs continuously without using invalid data blocks and logs, but also adds headers and EOLs included in each log. A collection of optimized data can be generated. That is, a plurality of logs written in the storage area 1 can be written in the storage area 2 as one log from the header N to EOL-N. With such a configuration, the valid logs are continuously connected together, and at the same time, the fragmented unused area and the invalid area are combined into one unused area, and the efficiency of log writing and reading can be improved.
Subsequently, when the writing of the optimized data to the storage area 2 is completed, the additional data written to the storage area 1 in S520 is transferred to the storage area 2 (S524). The transfer means that the additional data written in the storage area 1 is written in the storage area 2 as it is, or the additional data written in the storage area 1 is optimized and written in the storage area 2. By transferring the additional data to the storage area 2, the additional data written in the storage area 1 becomes unnecessary and can be erased at a later time.
When the transfer of the additional data ends (S528), the identification information adding unit 350 adds identification information to the storage area 2 (S532). FIG. 5D shows a state in which identification information is given to the storage area 2. The identification information can be information that can be identified as valid or invalid. For example, in the example shown in FIG. 5D, “0x02” is assigned to the storage area 2. Therefore, when the identification information “0x02” is assigned to the storage area 2, the identification information “0x02” is larger than the identification information “0x01” assigned to the storage area 1. “0x02” is determined as valid identification information.
In the present embodiment, as shown in FIG. 5D, a state in which the identification information is temporarily written in both the storage area 1 and the storage area 2 occurs. In addition, there may be a case where identification information remains in both the storage area 1 and the storage area 2 due to an abnormality in the processing unit 30. In such a case, the writing unit 310 cannot operate normally unless it is possible to determine which identification information is valid.
Therefore, the identification information adding unit 350 does not give the same identification information every time, but can give identification information whose value is larger than the most recently assigned identification information, as shown in FIG. Therefore, when the identification information has been written in a plurality of storage areas, the writing unit 310 is controlled so that the data is written in the storage area in which the identification information having a larger value is written. Writing becomes possible.
FIG. 5D shows an example in which the identification information is an 8-bit value and the identification information obtained by adding 1 to the most recently assigned identification information is shown. However, the identification information is a 16-bit value. You can also. In this case, the writing unit 310 determines that “0x0000” and “0xffff” are larger values in “0x0000”. Further, the identification information adding unit 350 may add the identification information obtained by subtracting 1 from the most recently assigned identification information to the corresponding storage area. In this case, the writing unit 310 can determine identification information having a smaller value as valid identification information. Furthermore, the number to be added to or subtracted from the most recently assigned identification information is not limited to 1, and may be 2 or more.
After the identification information is given to the storage area 2, the erasure unit 330 erases the data in the storage area 1 together (S536). FIG. 5E shows a state in which the data in the storage area 1 is erased. Since the identification information in the storage area 1 is also deleted, the writing unit 310 simply writes a log in the storage area 2 to which the identification information “0x02” is assigned. When the amount of data written in the storage area 2 reaches the set data amount Th, the same operations as those in S508 to S536 are repeated. For example, in S532, the identification information adding unit 350 alternately adds “0x03”, “0x04”, “0x05”, and so on to each of the storage area 1 and the storage area 2 with the identification information incremented by one. .
The data in the storage area 1 in S536 is erased when data processing is idle in the data storage device 10, for example, writing data into the NOR flash memory 20, reading data from the NOR flash memory 20, and optimization. It may be performed while processing in the data storage device such as generation of data and provision of identification information is not performed or when there is a margin in processing capacity. With this configuration, it is possible to substantially eliminate the time or processing capacity load required for erasing the data in the storage area 1 by the erasing unit 330.
As described above, according to the present invention, data written in the storage unit in the log structured file format can be optimized in a short time as compared with the conventional cleanup process.
Explaining in detail, the conventional cleanup process divides the used area into units called segments, adds valid data contained in each used area as new data to the unused area, and then erases the data in the used area Then, the process of making an unused area is sequentially performed in all divided used areas. After that, defragmentation processing that eliminates fragmentation of the used area and the unused area in which valid data is additionally written and continuously distributes valid data is necessary.
On the other hand, according to the present invention, valid data is extracted from the data written in the first storage area, and the valid data is written so as to be continuously arranged in the second storage area. be able to. That is, according to the present invention, the optimized data of the data written in the first storage area can be reflected in the second storage area without erasing any data written in the first storage area. it can.
According to one embodiment of the present invention, when the optimized data of the data written in the first storage area as described above is reflected in the second storage area, the data is written in the first storage area. Since the stored data is no longer necessary, the data in the first storage area can be erased collectively. After the data in the first storage area was erased and the first storage area became an unused area, the optimized data written in the first storage area was reflected in the second storage area. Similarly, the optimization data in the second storage area can be reflected in the first storage area.
Here, normally, even if the same amount of data is erased, the processing speed is faster when erasing all at once than by dividing and erasing. Therefore, according to the embodiment of the present invention, it is possible to collectively erase data written in the first storage area, so that the data can be erased more efficiently.
In addition, after the data written in the first storage area is reflected as optimized data in the second storage area, the data written in the first storage area can be stored in the idle state of the data storage device. Erasing can be performed. According to such a configuration, data is stored in the first storage area when processing is idle in the data storage device such as writing data to the storage unit, reading data from the storage unit, generating optimized data, and providing identification information. Therefore, the load required for erasing the data stored in the first storage area can be substantially eliminated.
For example, in the above embodiment, the NOR type flash memory in which the storage area is divided into two has been described as an example. However, the storage area can be divided into three or more. Specifically, the storage area is divided into storage area 1, storage area 2, and storage area 3, and identification information is given in the order of storage area 1, storage area 2, storage area 3, storage area 1, and storage area 3 Consider the case where the current storage area is valid. At this time, the optimized data of the data written in the storage area 2 is written in the storage area 3. In the above embodiment, it is necessary to delete the data in the storage area 2. However, if the data in the storage area 1 to which the optimization data is written next is deleted, the data in the storage area 2 is deleted. You do n’t have to. With this configuration, even when the data in the storage area 3 disappears for some reason, roll forward based on the data in the storage area 2 is possible.
In the above description, the NOR type flash memory has been described as an example of the storage medium or the storage unit. However, the present invention is not limited to the NOR type flash memory 20, and is, for example, a NAND type flash memory, EEPROM (Electrically Erasable Programmable Read-Only Memory). , ERPPM (Erasable Programmable Read Only Memory), magnetic disks such as hard disks and floppy (registered trademark) disks, CD-R / RW, DVD (DVD-R / RW / + R / + RW / RAM, etc.) ) And Blu-ray Disc (BD-R / BD-RE) (registered trademark) and other storage media that can hold data such as MO discs In any case, the present invention is applicable.
In addition, each step in the processing of the data storage device of the present specification does not necessarily have to be processed in time series in the order described in the flowchart, and processing that is executed in parallel or individually (for example, parallel processing or Object processing) may also be included. For example, S532, which is a step of providing identification information, may be performed immediately after S508, which is a step of starting generation of optimized data. In this case, additional data is not superimposed on the optimized data in the storage area 2 even after the optimized data is generated in the storage area 2 after the optimized data generation unit 340 starts generating the optimized data. Can be written on. According to such a configuration, the process of transferring additional data from the storage area 1 to the storage area 2 as described in the above embodiment can be omitted, and the processing efficiency can be improved.
Further, a configuration may be adopted in which identification information indicating a storage area to which data is written by the writing unit is not given to each storage area. For example, the number of times the optimized data generation unit has generated optimized data for a specific NOR flash memory is held, and the current write is performed based on the remainder obtained by dividing the number of times by the number of divided storage areas The target storage area may be determined.
Alternatively, in the above embodiment, after the optimized data is once generated, the data is always written in any storage area. Therefore, the reading unit 320 can extract a storage area in which data is written, and determine that the storage area is a storage area to which data is to be written. As shown in FIGS. 5C and 5D, when data is written in a plurality of storage areas, a storage area with a large amount of data written or a storage area with a small amount of data is set as a data write target. May be determined as a storage area.
According to such a configuration, it is not necessary to provide a data area for assigning identification information to each storage area of the NOR flash memory, so that actual data can be stored more. This effect is prominent when the NOR flash memory is divided into a large number of storage areas, for example, 10 storage areas.
Further, the optimized data generation unit may generate optimized data that optimizes all the data written in the first storage area, and then write the optimized data in the second storage area. While valid data written in the first storage area is extracted, the valid data may be written adjacent to unused areas in the second storage area.
The set data amount does not always need to be constant, and may be set adaptively based on the amount of data written to the NOR flash memory per unit time and the time required to generate optimized data. That is, after the optimized data generation unit starts generating optimized data in the first storage area, the set data amount is set so that the additional data to be written in the first storage area fits in the first storage area. Can be set.
In addition, when the optimized data and the additional data are written to the second storage area, if the data amount written to the second storage area has reached the set data amount, the second storage area Data may be written to the first storage area after the data is written to the unused area and the capacity of the second storage area is saturated. With this configuration, the storage capacity of the NOR flash memory can be fully utilized.
It is the block diagram which showed the structure of the data storage device concerning one Embodiment of this invention. It is explanatory drawing which showed the format of the log written by the log structure file system. It is explanatory drawing which showed the format of the log written by the log structure file system. 3 is a flowchart showing a flow of operations of the data storage device according to the same embodiment. It is explanatory drawing which showed the mode of the process in a NOR type flash memory. It is explanatory drawing which showed an example of the optimization data produced | generated by the optimization data production | generation part.
DESCRIPTION OF SYMBOLS 10 Data storage device 20 NOR type flash memory 30 Processing part 40 Input / output part 310 Writing part 320 Reading part 330 Erasing part 340 Optimization data generation part 350 Identification information provision part
A storage unit in which the storage area is divided into a first storage area and a second storage area;
A writing unit for writing data to the first storage area of the storage unit by a log structured file system;
An optimized data generation unit that generates optimized data that optimizes the data written to the first storage area when the amount of data written to the first storage area exceeds a set data amount;
The data storage device, wherein the writing unit writes the optimized data generated by the optimized data generating unit into the second storage area.
2. The information processing apparatus according to claim 1, further comprising: an identification information adding unit that adds identification information indicating a storage area to which data is written by the writing unit to the first storage area or the second storage area. The data storage device described in 1.
The writing unit transfers additional data written in the first storage area to the second storage area after the optimization data generation unit starts generating the optimization data. The data storage device according to claim 2.
4. The data storage device according to claim 3, wherein the identification information adding unit adds the identification information to the second storage area when the transfer of the additional data by the writing unit is finished. 5.
The said identification information provision part provides the identification information which can discriminate | determine that it is effective to either said 1st storage area or said 2nd storage area. Data storage device.
The data storage device according to claim 2, wherein the identification information adding unit adds identification information including a larger or smaller number than the most recently assigned identification information.
The apparatus further comprises an erasing unit that erases data written in the first storage area after the identification information is given to the second storage area to which the additional data is transferred. 3. The data storage device according to 3.
8. The data storage device according to claim 7, wherein the erasure unit erases data stored in the first storage area when the data processing of the data storage device is idle.
The data storage device according to claim 1, wherein the storage unit is a NOR flash memory.
Writing data to the first storage area by a log structured file system in a storage unit in which the storage area is divided into a first storage area and a second storage area;
Generating optimized data by optimizing the data written in the first storage area when the data amount of the data written in the first storage area exceeds a set data amount;
Writing the optimized data to the second storage area;
A data storage method comprising:
A computer program which functions as a data storage device for executing
JP2006174103A 2006-06-23 2006-06-23 Data storage device, data storage method, and computer program Withdrawn JP2008003932A (en)
JP2006174103A JP2008003932A (en) 2006-06-23 2006-06-23 Data storage device, data storage method, and computer program
JP2008003932A true JP2008003932A (en) 2008-01-10
ID=39008250
JP2006174103A Withdrawn JP2008003932A (en) 2006-06-23 2006-06-23 Data storage device, data storage method, and computer program
JP (1) JP2008003932A (en)
JP2011509495A (en) * 2008-01-10 2011-03-24 サムスン エレクトロニクス カンパニー リミテッド Information recording medium, recording / reproducing apparatus, and recording / reproducing method
JP2011197945A (en) * 2010-03-18 2011-10-06 Toshiba Corp Controller, data storage device, and program
JP2014071906A (en) * 2012-09-28 2014-04-21 Samsung Electronics Co Ltd Computer system, and data management method for computer system
JP2018049652A (en) * 2013-03-15 2018-03-29 アマゾン・テクノロジーズ・インコーポレーテッド Log record management
US10534768B2 (en) 2015-12-28 2020-01-14 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
2006-06-23 JP JP2006174103A patent/JP2008003932A/en not_active Withdrawn
US8291296B2 (en) 2008-01-10 2012-10-16 Samsung Electronics Co., Ltd. Information recording medium, recording/reproducing apparatus and recording/reproducing method
KR100449708B1 (en) 2004-09-22 Flash memory management method
US6658438B1 (en) 2003-12-02 Method for deleting stored digital data from write-once memory device
JPWO2002054247A1 (en) 2004-05-13 Data recording device and data writing method for flash memory
KR20110010583A (en) 2011-02-01 Index cache tree
US6862604B1 (en) 2005-03-01 Removable data storage device having file usage system and method
EP2209074A1 (en) 2010-07-21 Data storage processing method, data searching method and devices thereof
2009-09-01 A300 Withdrawal of application because of no request for examination