WO2010018613A1 - ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム - Google Patents

ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム Download PDF

Info

Publication number
WO2010018613A1
WO2010018613A1 PCT/JP2008/064397 JP2008064397W WO2010018613A1 WO 2010018613 A1 WO2010018613 A1 WO 2010018613A1 JP 2008064397 W JP2008064397 W JP 2008064397W WO 2010018613 A1 WO2010018613 A1 WO 2010018613A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
valid data
copying
exclusion
garbage collection
Prior art date
Application number
PCT/JP2008/064397
Other languages
English (en)
French (fr)
Inventor
広隆 福島
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2010524628A priority Critical patent/JP5120455B2/ja
Priority to EP08792380A priority patent/EP2315126A4/en
Priority to PCT/JP2008/064397 priority patent/WO2010018613A1/ja
Publication of WO2010018613A1 publication Critical patent/WO2010018613A1/ja
Priority to US12/986,515 priority patent/US20110113075A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Definitions

  • the present invention relates to a garbage collection program, a garbage collection method, and a garbage collection system for performing garbage collection processing when erasing data in an auxiliary storage medium in an embedded system having an auxiliary storage medium that erases data in block units. Is.
  • a NAND flash memory (hereinafter abbreviated as a flash memory) that is smaller and faster accessible than a magnetic disk device and has a certain storage capacity is often employed.
  • FIG. 13 is a block diagram showing an example of the configuration of an apparatus including an embedded system using a flash memory in the prior art.
  • the apparatus 100 includes, as an embedded system 101, a CPU 102 (Central Processing Unit) that controls the operation of all devices in the apparatus, a main memory 103 that is a main storage medium with which the CPU 102 directly exchanges data, A flash memory 104, which is an auxiliary storage medium that performs storage, is provided.
  • a CPU 102 Central Processing Unit
  • main memory 103 main storage medium with which the CPU 102 directly exchanges data
  • a flash memory 104 which is an auxiliary storage medium that performs storage, is provided.
  • the written area cannot be partially erased, but can be erased only in units of blocks including the area. Further, the number of erasures is limited to 100,000 times, and frequent rewriting cannot be performed. In consideration of such characteristics, there is a write-once file system for the purpose of reducing the number of times of writing to the flash memory.
  • the write-once file system is abbreviated as “file system”.
  • file system The contents of the file stored in the file system exist on the flash memory, and only management information such as the position of the data constituting the file on the flash memory is placed on the main memory. This saves the main memory usage. In the following, the concept of the file system and the file reading and rewriting operations will be described.
  • FIG. 14 is a conceptual diagram of data read processing in the write-once file system.
  • symbol has shown the same thing or the equivalent, and duplication description is abbreviate
  • the access target of the file system 105 is the main memory 103 and the flash memory 104.
  • the main memory 103 is loaded with an exclusion mechanism 107 that is a program for performing exclusive control of access to data.
  • the main memory 103 stores a file 108 in which configuration data (details will be described later) is stored, and location information on where the data constituting the file 108 is stored in the flash memory 104.
  • An address table 109 is held.
  • the address table 109 holds a-address data 113 indicating an address where data # a, which is one of data constituting the file 108, is held.
  • data indicating an address is referred to as address data.
  • the address table 109 holds b address data 114 that is address data of data #b and c address data 115 that is address data of data #c.
  • the file 108 holds, as configuration data, access paths 110 to 112 that are reference paths to the address table 109.
  • the access route 110 is a reference route to the address data 113 of the data #a
  • the access route 111 is a reference route to the address data 114 of the data #b
  • the access route 112 is the data #c. This is a reference path to the address data 115.
  • the flash memory 104 is composed of blocks 116A, B,. Hereinafter, the blocks are collectively referred to as a block 116.
  • the number of blocks 116 is different from A, B, C... N depending on the storage capacity of the flash memory 104.
  • FIG. 14 it is assumed that data # a117 is stored in block 116A, data # b118 is stored in block 116B, and data # c119 is stored in block 116C.
  • the program 106 requests read / write access to the file, and here, it is assumed that access is performed to read the file 108.
  • the file 108 is assumed to be composed of data # a117, data # b118, and data # c119.
  • the file system 105 that has received a read instruction for the file 108 by the program 106 excludes the file 108 by issuing an exclusive control instruction to the exclusion mechanism 107, so that other processes for the file 108 cannot interfere with each other (see FIG. Exclusive processing).
  • the file system 105 identifies necessary data from the configuration data stored in the file 108. The necessary data here is assumed to be data # a117.
  • the file system 105 acquires the address data 113 of the data #a 117 from the address table 109 via the access path 110, and outputs the data #a 117 from the flash memory 104 to the program 106.
  • the file system 105 outputs the data of the file 108 requested by the program 106 and then releases the exclusion of the file 108 by instructing the exclusion mechanism 107 to release the exclusion control, and the data reading is completed.
  • the file data is read by the file system using the flash memory by the above-described operation.
  • FIG. 15 is a conceptual diagram of data rewriting processing in the write-once file system. Note that the data whose data content is changed is data # a117, and the data # i117 is a data # i117.
  • the program 120 is a program for changing data # a117 to data # i121.
  • the file system 105 that has received an instruction to rewrite the file 108 by the program 120 excludes the file 108 by the exclusion mechanism 107 and performs an exclusion process.
  • the file system 105 changes the contents of the data #a 117 based on the instruction of the program 120 and writes the changed contents data #i 121 in the free area of the flash memory 103.
  • the file system 105 adds i address data 122, which is position information of data #i 121, to the address table 109.
  • the file system 105 adds an access path 123 from the file 108 to the i-address data 122 and deletes the access path 110 from the file 108 because the old data # a117 is unnecessary.
  • the file system 105 marks a status flag in the a address data 113 in order to indicate that the data #a 117 is not necessary.
  • this status flag is marked, data # a117 cannot be accessed, read / write is disabled, and invalid data is obtained.
  • the file system 105 releases the exclusion of the file 108 by the exclusion mechanism 107, and the data content change is completed.
  • the data contents of the file system file using the flash memory are changed by the above-described operation.
  • GC Garbage Collection
  • the flash memory can be erased only in units of blocks. To erase data, it is necessary to fill the entire block with unnecessary data.
  • the above-described GC program enables deletion of a target block by moving (copying) valid data scattered in the target block to another block.
  • the GC is generally stored in the ROM, and is expanded in the main memory after the apparatus is activated. The process for the GC process file system will be described below.
  • 16 to 19 are diagrams showing the concept of the operation of the GC program.
  • the target block of the GC program is a block 116A
  • the block 116A includes data # a117, data # b118, data # c119 as necessary data, and unnecessary data 124. To do. Further, it is assumed that the block 116B is composed of data # x125 which is necessary data and there is a free area 126.
  • the GC program starts from the initial state shown in FIG. 16, as shown in FIG. 17, duplicate data (data # a′127, data #) of data # a117, data # b118, and data # c119, which are necessary data. b′128, data # c′129) are created in the block 116B, which is another block having a free area.
  • the GC program determines that the block 116A is only the unnecessary data 124 as shown in FIG.
  • the GC program erases the unnecessary data 124 in the block 116A which has become only the unnecessary data 124, thereby making all of the block 116A usable as a free area as shown in FIG.
  • the GC program organizes data in the flash memory.
  • the data rearrangement process here represents a process of moving data # a117 on the block 116A to another block.
  • FIG. 20 is a conceptual diagram of the operation of the GC program in the write-once file system. Note that data # a ′ 131 is a copy of data # a117. Further, the GC program is included in the file system 105, and the GC program will be described as a part of the function of the file system 105.
  • the GC program 130 instructs the exclusion mechanism 107 in the file system 105 to exclude the file 108 and performs the exclusion process.
  • the GC program 130 reads the contents of the data #a 117, copies it to the free area of the flash memory 104 as data #a ′ 131, and stores it in the address table 109 as a ′ address data 132 that is the position information of the data #a ′ 131.
  • the GC program 130 adds the access path 133 from the file 108 to the a ′ address data 132 and deletes the access path 110 from the file 108 because the old data # a117 is unnecessary.
  • the GC program 130 marks a status flag in the a address data 113 to indicate that the data #a 117 is unnecessary, and instructs the exclusion mechanism 107 to release exclusion from the file 108. Data organization is complete.
  • garbage collection which cannot be avoided when using a nonvolatile solid-state memory (flash memory) is written in another nonvolatile solid-state memory or recording medium in a predetermined mode.
  • flash memory nonvolatile solid-state memory
  • the present invention has been made to solve the above-described problems, and an object of the present invention is to provide a garbage collection program, a garbage collection method, and a garbage collection system that reduce the exclusion time when data is moved. .
  • one aspect of the present invention is the first storage device capable of erasing data only in units of blocks, from the first block in which valid data and invalid data are mixed, A first copy step for copying valid data to a second storage device, which is a storage device different from the first storage device, and access to valid data of the copy source copied in the first copy step are exclusive.
  • one aspect of the present invention is the first storage device capable of erasing data only in units of blocks, from the first block in which valid data and invalid data are mixed, A first copy step for copying valid data to a second storage device, which is a storage device different from the first storage device, and access to valid data of the copy source copied in the first copy step are exclusive.
  • one aspect of the present invention is the first storage device capable of erasing data only in units of blocks, from the first block in which valid data and invalid data are mixed,
  • the first copy unit that copies valid data to the second storage device, which is a storage device different from the first storage device, and the access to the valid data of the copy source copied by the first copy unit are exclusive.
  • a first exclusion instruction unit that instructs the exclusion mechanism to control, and after the exclusion based on the first exclusion instruction unit is performed, from the valid data of the copy source to be copied by the first copying unit, the first A first switching unit that switches an access path to valid data at a copy destination copied by one copying unit, and a command that instructs the exclusion mechanism to release exclusive control after the access path is switched by the first switching unit.
  • 1 Exclusive release The valid data of the copy destination copied by the display unit and the first copying unit is a block of the first storage device from the second storage device and is a block different from the first block.
  • FIG. 1 is a conceptual diagram of a write-once file system according to the present embodiment. It is a flowchart which shows an example of operation
  • FIG. 1 is a block diagram illustrating an example of the configuration of an apparatus including a GC program according to the present embodiment.
  • the device 1 stores, as an embedded system 2, a CPU 3 that controls the operation of the device 1, a main memory 4 (second storage device) that is a main storage medium with which the CPU 3 exchanges data, and stores data.
  • a flash memory 5 (first storage device) that is an auxiliary storage medium, and a startup ROM 80 that stores a program for controlling the embedded system 2 are provided.
  • the device 1 is a device in which a flash memory is mounted or can be mounted, such as an embedded device such as a mobile phone or a car navigation system, or a personal computer.
  • the GC program 6 is stored in the activation ROM 80 together with other programs for controlling the embedded system 2 and is read into the main memory 4 after the apparatus 1 is activated.
  • the GC program 6 includes a copy management program 7, an exclusion instruction program 8, an access management program 9, and a determination program 10.
  • the copy management program 7 is a program for creating a copy of data stored in the flash memory 5 and address data of the data on the main memory 4.
  • the exclusion instruction program 8 is a program that instructs the exclusion mechanism loaded in the main memory 4 to exclude and release the file, and prohibits and permits access to the flash memory 5 other than the GC program.
  • the access management program 9 is a program for creating and deleting an access path between a file developed in the main memory 4 and the address table and switching the access path.
  • the determination program 10 is a program that determines whether the data in the main memory 4 and the flash memory 5 is data that is subject to GC or not. Details of the above-described exclusion mechanism, file, and address table will be described later.
  • FIG. 2 is a conceptual diagram of the write-once file system according to the present embodiment.
  • the file system 11 controls and manages access to data held in the main memory 4 and the flash memory 5.
  • the main memory 4 holds a file 12 in which configuration data is stored, and an address table 14 in which address data indicating where the file configuration data is stored in the flash memory 5 is stored. It is assumed that the address table 14 holds a-address data 15 that is address data of data # a17 that is valid data or target data.
  • the file 12 holds an access route 13 that is a reference route to the address table 14 as configuration data.
  • the access path 13 is an access path corresponding to data # a17.
  • the flash memory 5 includes blocks 16A (first block), 16B (second block),. Hereinafter, the block is collectively referred to as block 16.
  • the number of blocks 16 is different from A, B, C... N depending on the storage capacity of the flash memory 5.
  • FIG. 2 it is assumed that data # a17 is stored in the block 16A.
  • the file 12 is assumed to be composed of data # a17.
  • the data organization process represents a process of moving valid data stored in the flash memory 5 to another block and organizing valid data and invalid data.
  • data # a17 on the block 16A is the target of data reduction processing.
  • FIG. 3 is a flowchart showing an example of the operation of the GC program according to the present embodiment.
  • 4 to 8 are conceptual diagrams of operations of the GC program in the write-once file system according to the present embodiment.
  • the GC program 6 determines whether or not the data # a17 data to be moved is necessary data, that is, valid data that is not a garbage collection target by the determination program 10 (S101, first determination step). .
  • valid data not subject to garbage collection is referred to as “necessary data”.
  • the determination program 10 determines whether the target data is necessary data based on whether or not the status flag of the a address data 15 held in the address table 14 is marked. If the status flag related to data # a17 is not marked, it is determined that the target data is necessary data (YES in S101), and the GC program 6 uses the copy management program 7 to set the data # a17 as shown in FIG.
  • the data is read from the flash memory 5, a copy is created as data # a ′′ 18 on the main memory 4, and a ′′ address data 19 is written in a predetermined area of the main memory 4 (S 102, first copying step).
  • the determination program 10 determines whether a file referring to data # a17 exists in the file system 11 (S103, second determination step).
  • the exclusive mechanism 20 shown in FIG. 4 will be described later.
  • the exclusion instruction program 8 instructs the exclusion mechanism 20 to exclude the file 12 ( S104, first exclusive instruction step).
  • the exclusion mechanism 20 is a program having the function of the exclusion mechanism 107 described above.
  • the GC program 6 releases the access path 13 to the data # a 17 by the access management program 9 and creates an access path 21 to the a ′′ address data 19 created on the main memory 4. (S105, first switching step).
  • the GC program 6 uses the copy management program 7 to copy data # a ′′ 18 to the new block 16B on the flash memory 5 as data # a′22 as shown in FIG. Then, a 'address data 23, which is position information of data # a'22, is written into the address table 14 (S107, second copying step). Here, copying is performed to the block 16B, but copying may be performed anywhere as long as the block has an empty area.
  • the determination program 10 determines whether data # a ′′ 18 is necessary (S108, third determination step). That is, it is determined whether the status flag is marked.
  • the GC program 6 locks the file 12 again according to an instruction from the exclusion instruction program 8 to the exclusion mechanism 19 as shown in FIG. 7 (S109, second exclusion) Instructing step), the access management program 9 releases the access path 21 to the a ′′ address data 19 and creates the access path 24 to the a ′ address data 23 (S110, second switching step). After the access path 24 is created, the GC program 6 releases the exclusion of the file 12 according to the instruction to the exclusion mechanism 20 by the exclusion instruction program 8 as shown in FIG. 8 (S111, second exclusion release step), and data # a Since “18” and “a” address data 19 are unnecessary, they are deleted (S112, first deletion step).
  • This deletion can be executed without being aware of the block unit because the data #a ′′ 18 and the a ′′ address data 19 exist not on the flash memory 5 but on the main memory 4.
  • the deletion of the data # a ′′ 18 and the a ′′ address data 19 may be performed before the exclusion of the exclusion of the file 12 (S111), that is, after the access path 24 is created. This completes the movement of necessary data.
  • step S101 in FIG. 3 S101, NO
  • the data # a17 data is garbage collected. Since it is the data to be erased, there is no need to move it. Therefore, the GC program 6 ends the process because it is not a target of movement.
  • the file is exclusive only when the address is switched. Therefore, the exclusion period can be shortened as compared with the conventional case where exclusion is performed during the entire period during which the movement processing between blocks of data is executed.
  • the GC program 6 organizes necessary data on the flash memory 5 by repeating the above-described data organization, and only unnecessary data is obtained. Data in block 16 can be erased.
  • step S103 in FIG. 3 if there is no file referring to the data # a17, that is, if the status flag is marked in the a address data 15, the GC program 6 reads the data # a17. In the meantime, the file 12 has been changed by another program, and data # a17 is no longer needed.
  • FIG. 9 is a conceptual diagram after the operation of the GC program when a file is rewritten by another program in the write-once file system according to the present embodiment, and necessary data becomes unnecessary data (S103, NO). .
  • the other program 25 shown in FIG. 9 changes data # a17 to data # i27, and the i-address data 26 is position information in the flash memory 5 of data # i27.
  • the file system 11 rewrites the data #a 17 to the data #i 27 according to the instruction of the other program 25, and changes it to the a address data 15. Mark the status flag and rewrite the access path to i-address data 26.
  • the GC program 6 finishes copying the data #a ′′ 18, and checks the status flag of the a address data 15 on the main memory 4 by the determination program 10.
  • the GC program 6 deletes the data #a ′′ 18 and the a ′′ address data 19 (S112, second deletion step). The process is terminated.
  • step S108 in FIG. 3 if the data # a''17 data is unnecessary data, that is, if the status flag is marked in the a '' address data 19, the GC program 6 executes the data #a. While '22 is being written, the file 11 is changed by another program and the data #a ′′ 17 is no longer needed.
  • FIG. 10 is a conceptual diagram after the operation of the GC program when a file is rewritten by another program in the write-once file system according to the present embodiment and necessary data becomes unnecessary data (S108, NO). .
  • the GC program 6 rewrites data #a ′′ 18 to data # i27 in accordance with an instruction from the other program 25 during copying of data # a′22, and a ′′ A status flag is marked in the address data 19 and the access path is rewritten to the i address data 26.
  • the GC program 6 finishes copying data # a′22, and the determination program 10 checks the status flag of the a ′′ address data 19 on the main memory 4.
  • the GC program 6 marks the status flag in the a ′ address data 23 (S113, second flag setting step), and data.
  • the #a ′′ 18 and a ′′ address data 19 are deleted (S112, third deletion step), and the process is terminated.
  • FIG. 11 is a comparison diagram between the GC program processing according to the present embodiment and the GC program processing of the prior art.
  • the left represents conventional GC program processing
  • the right represents GC program processing according to the present embodiment.
  • 28 is the exclusive process of the file 12
  • 29 is the read process of the data # a17
  • 30 is the process of creating the data # a'22 that is a copy of the data # a17
  • 31 is the data #a '.
  • 22 represents an access route creation process
  • 32 represents an exclusion release process.
  • 33 is a process for creating data # a ′′ 18 that is a copy of data # a17 (S102), 34 is an access path creation process for data # a ′′ 18 (S105), and 35 is a data # a ′.
  • This represents the creation process (S107) of data # a'22 which is a copy of '18.
  • the hatched portion in FIG. 11 represents access of the GC program 6 to the flash memory 5, and the arrow portion represents an exclusive section of the file 12.
  • the exclusive section includes access operations such as reading and writing of data from the flash memory 5 that require a long processing time. Access to the memory is not included, and the exclusion time by the GC program 6 can be reduced.
  • FIG. 12 is a block diagram showing an example of the configuration of the GC system according to the present embodiment.
  • the GC system 36 excludes the GC program 6 in the startup ROM 80 and newly includes a GC processing unit 37 (first flag setting unit, second flag setting unit, deletion unit). is there.
  • the GC processing unit 37 includes a copy management unit 38 (first copying unit, second copying unit) and an exclusion instruction unit 39 (first exclusion instruction unit, first exclusion release instruction unit, second exclusion instruction unit, second exclusion unit). Release instruction unit), address management unit 40 (first switching unit, second switching unit), and determination unit 41 (first determination unit, second determination unit). Note that the GC processing unit 37 shown in FIG.
  • the GC program 6 is realized by cooperation of the GC program 6 and hardware resources such as the CPU 3, the main memory 4, the flash memory 5, and the activation ROM 80. Further, the copy management program 38 and the above-described hardware resources cooperate to realize the copy management unit 38, and the exclusion instruction program 8 and the above-described hardware resources cooperate to perform the exclusion instruction unit 39. Is realized. Further, the address management program and the above-described hardware resources cooperate to realize the address management unit 40 shown in FIG. 12, and the determination program 10 and the above-described hardware resources cooperate. The determination unit 41 is realized.
  • the copy management program 7 and the access management program 9 create a backup of the data # a17, which is necessary data, on the main memory 4 so that the file 12 of another program can be obtained even while the GC program 6 is being executed. Can be accessed. Further, by performing exclusion only when the access instruction is switched by the exclusion instruction program 8, access to the flash memory 5, which requires processing time, can be issued outside the section in which the file 12 is excluded. Time can be minimized. Further, since the backup unit of the target data is for one data, it can be executed even in a system with a small capacity of the main memory 4.
  • the above-mentioned program can be executed by a computer constituting the GC system by storing it in a computer-readable recording medium.
  • the computer-readable recording medium includes an internal storage device such as a ROM or RAM, a portable storage such as a CD-ROM, flexible disk, DVD disk, magneto-optical disk, or IC card. It includes a medium, a database holding a computer program, another computer and its database, and a transmission medium on a line.
  • the present invention it is possible to provide a garbage collection device, a garbage collection program, a garbage collection method, and a garbage collection system that reduce the exclusion time when moving data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

 ブロック単位でのみデータ消去が可能なNAND型フラッシュメモリのうちの、有効なデータと無効なデータが混在する第1ブロックから、有効なデータをメインメモリへコピーし、コピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示し、コピー元の有効なデータから、コピー先の有効なデータへアクセス経路を切り替え、排他機構へ排他制御を解除するよう指示し、コピー先の有効なデータを、メインメモリからNAND型フラッシュメモリのブロックである第2ブロックにコピーし、第2ブロックにコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示し、第2ブロックにコピーされるコピー元の有効なデータから、第2ブロックにコピーされたコピー先の有効なデータへアクセス経路を切り替え、排他機構へ排他制御を解除するよう指示することをコンピュータに実行させる。

Description

ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
 本発明は、ブロック単位でデータを消去する補助記憶媒体を備える組み込みシステムにおいて、補助記憶媒体内のデータを消去する際にガーベジコレクション処理を行うガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステムに関するものである。
 近年の携帯電話機やカーナビケーションシステムに代表されるように、電子機器の小型化、多機能化、高性能化を可能にしているのは、これら装置内に搭載された組み込みシステムの技術の発達によるところが大きい。
 組み込みシステムでは、コストやサイズを抑えるために、安価なCPUや最小限のデータ容量のメインメモリでハードウェアを構成することが重要である。また、組み込みシステムに採用される補助記憶装置として、磁気ディスク装置より小型かつ高速アクセスが可能であり、ある程度の記憶容量のあるNAND型フラッシュメモリ(以下フラッシュメモリと略す)を採用することが多い。
 図13は、従来技術における、フラッシュメモリを用いた組み込みシステムを備える装置の構成の一例を示すブロック図である。組み込みシステムを備えた装置の例として、例えば上述の携帯電話機やカーナビゲーションシステムなどがあげられる。図13に示す通り、装置100は、組み込みシステム101として、装置内全てのデバイスの動作を制御するCPU102(Central Processing Unit)、CPU102が直接データをやり取りする主記憶媒体であるメインメモリ103、データの記憶を行う補助記憶媒体であるフラッシュメモリ104を備える。
 フラッシュメモリ104は、一度データを書き込むと、その書き込まれた領域の部分的な消去が行えず、その領域を含むブロック単位での消去のみが可能である。また消去回数も10万回に制限されており、頻繁な書き換えを行えない。このような特性を考慮し、フラッシュメモリへの書き込み回数を低減することを目的とした追記型のファイルシステムがある。以下、追記型のファイルシステムを「ファイルシステム」と略す。なお、ファイルシステムにて記憶されるファイルの内容は、フラッシュメモリ上に存在し、メインメモリ上にはファイルを構成するデータのフラッシュメモリ上の位置といった管理情報のみを置いている。これにより、メインメモリの使用量を節約している。以下に、ファイルシステムの概念と、ファイルの読み出し、書き換え動作を説明する。
 図14は、追記型のファイルシステムにおける、データ読み出し処理の概念図である。なお、以下の各図において、同一符号は同一物又は相当物を示しており重複説明は省略する。図14に示す通り、ファイルシステム105のアクセス対象は、メインメモリ103、フラッシュメモリ104とする。また、メインメモリ103には、データへのアクセスの排他制御を行うプログラムである排他機構107がロードされている。また、メインメモリ103には構成データ(後述にて詳細を説明する)が格納されているファイル108、ファイル108を構成するデータがフラッシュメモリ104のどこに格納されているかの位置情報が格納されているアドレステーブル109が保持されている。また、アドレステーブル109は、ファイル108を構成するデータの一つであるdata#aが保持されているアドレスを指し示すaアドレスデータ113が保持されている。以下、アドレスを指し示すデータをアドレスデータと称す。また、アドレステーブル109は、data#bのアドレスデータであるbアドレスデータ114と、data#cのアドレスデータであるcアドレスデータ115とを保持しているものとする。
 また、ファイル108は、アドレステーブル109への参照経路であるアクセス経路110から112を構成データとして保持している。なお、図14において、アクセス経路110はdata#aのアドレスデータ113までの参照経路であり、アクセス経路111はdata#bのアドレスデータ114までの参照経路であり、アクセス経路112はdata#cのアドレスデータ115までの参照経路である。
 また、フラッシュメモリ104は、消去単位であるブロック116A、B、・・・、Nにて構成される。以下、ブロックを総称するときはブロック116と称す。ブロック116は、フラッシュメモリ104の記憶容量によりA,B,C・・・Nと数が異なるものである。なお、図14においては、ブロック116Aにはdata#a117、ブロック116Bにはdata#b118、ブロック116Cにはdata#c119が格納されているものとする。また、プログラム106は、ファイルに対する読み書きのアクセスを要求するものであり、ここではファイル108を読み出すアクセスを行うものとする。また、ファイル108は、ここでは、data#a117、data#b118、data#c119とで構成されているものとする。
 次に従来のフラッシュメモリを使用したファイルシステムのファイルのデータ読み出し動作について説明する。なお、以下に記載する全てのプログラムの動作はCPU102により実行される。
 まず、プログラム106によるファイル108に対する読み出し指示を受けたファイルシステム105は、排他機構107に排他制御指示を行うことでファイル108を排他し、ファイル108に対する他のプロセスが干渉不可能な状態とする(排他処理)。次に、ファイルシステム105は、ファイル108に格納されている構成データより必要なデータを特定する。なお、ここでの必要データはdata#a117とする。次に、ファイルシステム105は、アクセス経路110を経てアドレステーブル109よりdata#a117のアドレスデータ113を取得し、フラッシュメモリ104からdata#a117をプログラム106に出力する。
 ファイルシステム105は、プログラム106から要求されたファイル108のデータを出力後、排他機構107に排他制御の解除指示を行うことでファイル108の排他を解除し、データの読み出しは完了となる。
 上述した動作により、フラッシュメモリを使用したファイルシステムによるファイルのデータ読み出しが行われる。
 次に、ファイルシステム105におけるファイルのデータ内容変更処理について説明する。
 図15は、追記型ファイルシステムにおける、データ書き換え処理の概念図である。なお、データ内容を変更するデータはdata#a117であり、このdata#a117を変更したものがdata#i121である。また、プログラム120は、data#a117をdata#i121へ変更をするプログラムである。
 まず、プログラム120によるファイル108に対する書き換え指示を受けたファイルシステム105は、排他機構107によりファイル108を排他し、排他処理を行う。次に、ファイルシステム105は、プログラム120の指示に基づきdata#a117の内容を変更し、変更後の内容data#i121をフラッシュメモリ103の空き領域に書き込む。data#i121の書き込み後、ファイルシステム105は、data#i121の位置情報であるiアドレスデータ122をアドレステーブル109へ追加する。位置情報追加後、ファイルシステム105は、ファイル108からiアドレスデータ122へのアクセス経路123を追加し、古い内容のdata#a117は不要な為、ファイル108からのアクセス経路110を削除する。ここで、ファイルシステム105は、data#a117が不要であることを示すために、aアドレスデータ113に状態フラグをマークする。この状態フラグがマークされると、data#a117へのアクセスが出来なくなり、読み書き不可となり、無効データとなる。状態フラグのマーク後、ファイルシステム105は、排他機構107によりファイル108の排他を解除し、データ内容変更は完了となる。
 上述した動作により、フラッシュメモリを使用したファイルシステムのファイルのデータ内容変更が行われる。
 しかしながら、上述したファイルのデータ内容変更を繰り返すと、フラッシュメモリ上に不要なデータ(無効なデータ。以下同様)が貯まり、フラッシュメモリの容量を浪費してしまう。その為、フラッシュメモリ上の不要なデータを集めて削除するガーベジコレクション(Garbage Collection、以下GCと略す)プログラムが必要となる。フラッシュメモリはブロック単位でのみ消去が可能であり、消去を行うにはブロック全体を不要なデータで埋める必要がある。上述したGCプログラムは、対象のブロック内に点在する有効なデータを他のブロックに移動(コピー)を行うことにより、対象のブロックの消去を可能にするものである。なお、GCは、一般的にはROMに格納されているものであり、装置起動後にメインメモリに展開されるものである。以下に、GCプロセスのファイルシステムに対する処理を説明する。
 図16から図19は、GCプログラムの動作の概念を示す図である。なお、図16から図19において、GCプログラムの対象ブロックをブロック116Aとし、ブロック116Aは、必要データとしてdata#a117、data#b118、data#c119と、不要データ124にて構成されているものとする。また、ブロック116Bは必要データであるdata#x125で構成され、空き領域126が存在するものとする。
 まず、GCプログラムは、図16に示されている初期状態から、図17に示す通り、必要データであるdata#a117、data#b118、data#c119の複製データ(data#a'127、data#b'128、data#c'129)を、空き領域のある別ブロックであるブロック116Bに作成する。複製データを作成することにより、GCプログラムは、図18に示す通り、ブロック116Aを不要データ124のみと判断する。次にGCプログラムは、不要データ124のみとなったブロック116A内の不要データ124を消去することにより、図19に示す通り、ブロック116Aの全てが空き領域として使用可能状態とする。
 以上の処理を経て、GCプログラムはフラッシュメモリのデータ整理を行う。次に、上述したGCプログラムによるデータ整理処理におけるファイルシステムの概念を説明する。なお、ここでのデータ整理処理とは、ブロック116A上のdata#a117を他のブロックへ移動する処理を表す。
 図20は、追記型ファイルシステムにおける、GCプログラムの動作の概念図である。なお、data#a'131はdata#a117のコピーである。また、GCプログラムはファイルシステム105に含まれ、GCプログラムがファイルシステム105の機能の一部を担うものとして説明する。
 まず、GCプログラム130は、ファイルシステム105内の排他機構107に対しファイル108の排他を指示し、排他処理を行う。次にGCプログラム130は、data#a117の内容を読み出し、フラッシュメモリ104の空き領域にdata#a'131としてコピーし、アドレステーブル109にdata#a'131の位置情報であるa'アドレスデータ132を追加する。位置情報追加後、GCプログラム130は、ファイル108からa'アドレスデータ132へのアクセス経路133を追加し、古い内容のdata#a117は不要な為、ファイル108からのアクセス経路110を削除する。アクセス経路110削除後、GCプログラム130は、data#a117が不要であることを示すために、aアドレスデータ113に状態フラグをマークし、排他機構107に対しファイル108への排他解除を指示し、データ整理は完了となる。
 なお、本発明の関連ある従来技術として、不揮発性固体メモリ(フラッシュメモリ)を使用する上で避けることのできないガーベジコレクションを、所定のモードにおいて、他の不揮発性固体メモリ又は記録媒体にデータの書き込みを中断することなく並行して実行し、さらにホスト装置へのデータ転送に影響を及ぼすことなく並行して実行する技術が知られている(例えば、特許文献1参照)。
特開2007-193883号公報
 しかしながら、上述したGCプログラムは、フラッシュメモリ上のデータを移動するだけなので、他のプロセスへ影響を与えないように行いたいが、GCプログラムによってファイルが排他されている最中に、他のプログラムによるそのファイルへのアクセスが発生すると、他のプロセスは待機を余儀なくされ、処理が遅延されてしまう。
 本発明は上述した問題点を解決するためになされたものであり、データを移動する際の排他時間を低減するガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステムを提供することを目的とする。
 また、上述した課題を解決するため、本発明の一態様は、ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写ステップと、前記第1複写ステップでコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示ステップと、前記第1排他指示ステップに基づく排他制御が行われた後、前記第1複写ステップにてコピーされるコピー元の有効なデータから、前記第1複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替ステップと、前記第1切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示ステップと、前記第1複写ステップにてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写ステップと、前記第2複写ステップにてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示ステップと、前記第2排他指示ステップに基づく排他が行われた後、前記第2複写ステップにてコピーされるコピー元の有効なデータから、前記第2複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替ステップと、前記第2切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示ステップとをコンピュータに実行させる。
 また、上述した課題を解決するため、本発明の一態様は、ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写ステップと、前記第1複写ステップでコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示ステップと、前記第1排他指示ステップに基づく排他が行われた後、前記第1複写ステップにてコピーされるコピー元の有効なデータから、前記第1複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替ステップと、前記第1切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示ステップと、前記第1複写ステップにてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写ステップと、前記第2複写ステップにてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示ステップと、前記第2排他指示ステップに基づく排他が行われた後、前記第2複写ステップにてコピーされるコピー元の有効なデータから、前記第2複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替ステップと、前記第2切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示ステップとを行う。
 また、上述した課題を解決するため、本発明の一態様は、ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写部と、前記第1複写部でコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示部と、前記第1排他指示部に基づく排他が行われた後、前記第1複写部にてコピーされるコピー元の有効なデータから、前記第1複写部にてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替部と、前記第1切替部によるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示部と、前記第1複写部にてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写部と、前記第2複写部にてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示部と、前記第2排他指示部に基づく排他が行われた後、前記第2複写部にてコピーされるコピー元の有効なデータから、前記第2複写部にてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替部と、前記第2切替部によるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示部とを備える。
本実施の形態に係る、GCプログラムを備えた装置の構成の一例を示すブロック図である。 本実施の形態に係る追記型ファイルシステムの概念図である。 本実施の形態に係る、GCプログラムの動作の一例を示すフローチャートである。 本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。 本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。 本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。 本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。 本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。 本実施の形態に係る、追記型ファイルシステムにおける他プログラムにより、ファイルが書き換えられ、必要データが不要データとなった場合(S103、NO)のGCプログラムの動作後の概念図である。 本実施の形態に係る、追記型ファイルシステムにおける他プログラムにより、ファイルが書き換えられ、必要データが不要データとなった場合(S108、NO)のGCプログラムの動作後の概念図である。 本実施の形態に係るGCプログラム処理と、従来技術のGCプログラム処理の比較図である。 本実施の形態に係る、GCシステムの構成の一例を示すブロック図である。 従来技術における、フラッシュメモリを用いた組み込みシステムを備える装置の構成の一例を示すブロック図である。 追記型ファイルシステムにおける、データ読み出し処理の概念図である。 追記型ファイルシステムにおける、データ書き換え処理の概念図である。 GCプログラムの動作の概念を示す図である。 GCプログラムの動作の概念を示す図である。 GCプログラムの動作の概念を示す図である。 GCプログラムの動作の概念を示す図である。 追記型ファイルシステムにおける、GCプログラムの動作の概念図である。
 以下、本発明の実施の形態について図面を参照しつつ説明する。尚、GCプログラムは上述同様、ファイルシステムに含まれ、GCプログラムがファイルシステムの機能の一部を担うものとして説明する。
 まず、本実施の形態に係るGCプログラムの構成について説明する。図1は、本実施の形態に係る、GCプログラムを備えた装置の構成の一例を示すブロック図である。図1に示す通り、装置1は、組み込みシステム2として、装置1の動作を制御するCPU3、CPU3がデータをやり取りする主記憶媒体であるメインメモリ4(第2記憶装置)、データの記憶を行う補助記憶媒体であるフラッシュメモリ5(第1記憶装置)、組み込みシステム2を制御するプログラムを格納している起動ROM80を備える。なお、本実施形態では、装置1は例として、携帯電話機やカーナビケーションシステム等の組み込み機器やパーソナルコンピュータ等、フラッシュメモリを搭載した、または搭載可能である装置であるものとする。
 また、本実施の形態において、GCプログラム6は、組み込みシステム2を制御する他のプログラムと一緒に起動ROM80に格納されているものとし、装置1起動後にメインメモリ4へ読み込まれるものである。また、GCプログラム6は、コピー管理プログラム7と、排他指示プログラム8と、アクセス管理プログラム9と、判断プログラム10とを備えるものである。
 なお、コピー管理プログラム7は、フラッシュメモリ5に格納されているデータのコピー及びデータのアドレスデータをメインメモリ4上に作成するプログラムである。排他指示プログラム8は、メインメモリ4にロードされる排他機構にファイルの排他及び排他解除を指示し、GCプログラム以外のフラッシュメモリ5へのアクセスを禁止及び許可するプログラムである。アクセス管理プログラム9は、メインメモリ4に展開されるファイルとアドレステーブル間のアクセス経路を作成及び削除を行い、アクセス経路を切り替えるプログラムである。判断プログラム10は、メインメモリ4及びフラッシュメモリ5内のデータがGCの対象となるデータであるか、対象でないデータであるかの判断を行うプログラムである。なお、上述した排他機構、ファイル、アドレステーブルについては、後述にて詳細を説明する。
 図2は、本実施の形態に係る、追記型ファイルシステムの概念図である。図2に示す通り、ファイルシステム11は、メインメモリ4、フラッシュメモリ5に保持されているデータのアクセスを制御、管理を行う。また、メインメモリ4には、構成データが格納されているファイル12、ファイルの構成データがフラッシュメモリ5のどこに格納されているかのアドレスデータが格納されているアドレステーブル14が保持されている。なお、アドレステーブル14は、有効なデータあるいは対象データであるdata#a17のアドレスデータであるaアドレスデータ15を保持しているものとする。
 また、ファイル12は、構成データとしてアドレステーブル14への参照経路であるアクセス経路13が保持される。なお、アクセス経路13は、data#a17に対応するアクセス経路である。また、フラッシュメモリ5は、消去単位であるブロック16A(第1ブロック)、16B(第2ブロック)、・・・、にて構成される。以降、ブロックを総称するときばブロック16と称す。このブロック16の数は、フラッシュメモリ5の記憶容量によってA,B,C・・・Nと数が異なるものである。なお、図2においては、ブロック16Aにはdata#a17が格納されているものとする。また、ファイル12は、ここでは、data#a17にて構成されているものとする。
 次に、本実施の形態に係るGCプログラムのデータ整理処理の動作の概要について説明する。なお、本実施の形態において、データ整理処理は、フラッシュメモリ5内に格納されている有効なデータを別ブロックへ移動し、有効なデータと無効なデータを整理する処理を表す。なお、ブロック16A上のdata#a17をデータ整理処理の対象とする。図3は、本実施の形態に係る、GCプログラムの動作の一例を示すフローチャートである。また、図4から図8は、本実施の形態に係る、追記型ファイルシステムにおけるGCプログラムの動作の概念図である。
 まず、GCプログラム6は、判断プログラム10により、移動の対象となるdata#a17のデータが必要なデータ、つまりガーベジコレクション対象でない有効なデータか否かの判断を行う(S101,第1判断ステップ)。以下、ガーベジコレクション対象でない有効なデータを「必要データ」と称する。尚、判断プログラム10は、アドレステーブル14に保持されているaアドレスデータ15の状態フラグがマークされているか否かで、対象データが必要データであるか否かを判断する。data#a17に関する状態フラグがマークされていない場合、対象データが必要データであると判断され(S101、YES)、GCプログラム6は、図4に示す通り、コピー管理プログラム7により、data#a17をフラッシュメモリ5から読み出し、メインメモリ4上にdata#a’’18としてコピーを作成し、メインメモリ4の所定の領域にa’’アドレスデータ19を書き込む(S102,第1複写ステップ)。a’’アドレスデータ19の書き込み後、判断プログラム10は、data#a17を参照しているファイルがファイルシステム11内にあるか判断を行う(S103,第2判断ステップ)。なお、図4に示されている排他機構20に関しては後述にて説明する。
 data#a17を参照しているファイルがファイルシステム11内にある場合(S103、YES)、図5に示す通り、排他指示プログラム8は、排他機構20に対しファイル12を排他するよう指示をする(S104,第1排他指示ステップ)。なお、排他機構20は、上述した排他機構107の機能を有するプログラムである。ファイル12の排他後、GCプログラム6は、アクセス管理プログラム9により、data#a17へのアクセス経路13を解除し、メインメモリ4上に作成したa’’アドレスデータ19へのアクセス経路21を作成する(S105,第1切替ステップ)。この時点でフラッシュメモリ5上のdata#a17は不要なデータとなるので、GCプログラム6はaアドレスデータ15に状態フラグをマークし、排他指示プログラム8の排他機構20への排他解除指示により、ファイル12への排他を解除する(S106,第1排他解除指示ステップ,第1フラグ設置ステップ)。なお、aアドレスデータ15への状態フラグのマークは、排他解除後に行ってもよい。
 ファイル12への排他の解除後、GCプログラム6は、図6に示す通り、コピー管理プログラム7により、data#a’’18をフラッシュメモリ5上の新しいブロック16Bへdata#a’22としてコピーを行い、data#a’22の位置情報であるa’アドレスデータ23をアドレステーブル14へ書き込む(S107,第2複写ステップ)。なお、ここではブロック16Bへコピーを行ったが、空きの領域のあるブロックであれば何処へコピーしてもよい。書き込み後、判断プログラム10は、data#a’’18が必要であるか判断を行う(S108,第3判断ステップ)。すなわち、状態フラグのマークがなされているかの判断を行う。
 data#a’’18が必要データと判断した場合、GCプログラム6は、図7に示す通り、排他指示プログラム8による排他機構19への指示により、再びファイル12をロックし(S109,第2排他指示ステップ)、アクセス管理プログラム9により、a’’アドレスデータ19へのアクセス経路21を解除し、a’アドレスデータ23へのアクセス経路24を作成する(S110,第2切替ステップ)。アクセス経路24作成後、GCプログラム6は、図8に示す通り、排他指示プログラム8による排他機構20への指示により、ファイル12の排他を解除し(S111,第2排他解除ステップ)、data#a’’18及びa’’アドレスデータ19は不要なので、これらを削除する(S112,第1削除ステップ)。なお、この削除は、data#a’’18及びa’’アドレスデータ19が、フラッシュメモリ5上でなく、メインメモリ4上に存在する為、ブロック単位を意識することなく実行することができる。また、data#a’’18及びa’’アドレスデータ19の削除は、ファイル12の排他の解除(S111)以前、すなわち、アクセス経路24作成後に行ってもよい。以上で必要データの移動は完了する。
 また、図3におけるステップS101において、data#a17のデータが不要データであった場合(S101、NO)、すなわち、aアドレスデータ15に状態フラグのマークなされていた場合、data#a17はガーベジコレクションでの消去対象のデータであるため、移動させる必要がない。よって、移動の対象とならない為、GCプログラム6は処理を終了する。
 図3のフローでは、アドレスを切り替えるときのみにファイルに対する排他を行っている。よってデータのブロック間の移動処理が実行されている全期間中に排他がなされている従来のものよりも、排他を行う期間を短縮できる。
 なお、本実施の形態においては、データ整理処理について詳細を説明したが、GCプログラム6は、上述したデータ整理を繰り返すことで、フラッシュメモリ5上の必要データを整理し、不要データのみとなったブロック16内のデータを消去できる。
 また、排他を必要時にのみ行っているため、GCプログラム6の処理中に、他プログラムがファイル12のデータ内容、つまりフラッシュメモリ5上のデータを書き換える可能性がある。データ内容が書き換えられたまま、GCプログラム6が処理を続けると、書き換えられる前の不要なデータをフラッシュメモリ5内に増加させることに繋がってしまう。かかる書き換えが行われるタイミングは、排他制御がされていない図3におけるステップS102~S103の間とステップS107~S108の間である。下記に、ステップS102~S103の間とステップS107~S108の間において、必要データが書き換えられた場合におけるGCプログラム6の処理を説明する。
 まず、図3におけるステップS103において、data#a17のデータを参照しているファイルが無かった場合、つまりaアドレスデータ15に状態フラグがマークされていた場合は、GCプログラム6がdata#a17を読み出している最中に、他プログラムにより、ファイル12が変更され、data#a17が不要とされた状態である。
 図9は、本実施の形態に係る、追記型ファイルシステムにおける他プログラムにより、ファイルが書き換えられ、必要データが不要データとなった場合(S103、NO)のGCプログラムの動作後の概念図である。図9に示される他プログラム25は、data#a17をdata#i27へ変更するものであり、iアドレスデータ26は、data#i27のフラッシュメモリ5における位置情報である。図9に示すように、GCプログラム6が、data#a’’18のコピー中に、他プログラム25の指示により、ファイルシステム11は、data#a17をdata#i27へ書き換え、aアドレスデータ15に状態フラグをマークし、iアドレスデータ26へアクセス経路を書き換える。その後、GCプログラム6が、data#a’’18のコピーを終え、判断プログラム10により、メインメモリ4上のaアドレスデータ15の状態フラグを確認する。ここでaアドレスデータ15に状態フラグがマークされているため(S103、NO)、GCプログラム6は、data#a’’18及びa’’アドレスデータ19を削除し(S112,第2削除ステップ)、処理を終了する。
 また、図3におけるステップS108において、data#a’’17のデータが不要データであった場合、つまりa’’アドレスデータ19に状態フラグがマークされていた場合は、GCプログラム6がdata#a’22の書き込みをしている最中に、他プログラムにより、ファイル11が変更され、data#a’’17が不要とされた状態である。
 図10は、本実施の形態に係る、追記型ファイルシステムにおける他プログラムにより、ファイルが書き換えられ、必要データが不要データとなった場合(S108、NO)のGCプログラムの動作後の概念図である。図10に示すように、GCプログラム6が、data#a’22のコピー中に、他プログラム25の指示により、ファイルシステム11は、data#a’’18をdata#i27へ書き換え、a’’アドレスデータ19に状態フラグをマークし、iアドレスデータ26へアクセス経路を書き換える。その後、GCプログラム6が、data#a’22のコピーを終え、判断プログラム10は、メインメモリ4上のa’’アドレスデータ19の状態フラグを確認する。ここでa’’アドレスデータ19に状態フラグがマークされているため(S108、NO)、GCプログラム6は、a’アドレスデータ23に状態フラグをマークし(S113,第2フラグ設置ステップ)、data#a’’18及びa’’アドレスデータ19を削除し(S112,第3削除ステップ)、処理を終了する。
 上述した本実施の形態に係るGCプログラム動作の一例において、従来技術との動作の比較を下記に説明する。
 図11は、本実施の形態に係るGCプログラム処理と、従来技術のGCプログラム処理の比較図である。なお、図に向かって左が従来のGCプログラム処理を表し、右側が本実施の形態に係るGCプログラム処理を表す。図11に示される28は、ファイル12の排他処理、29は、data#a17の読み出し処理、30は、data#a17のコピーであるdata#a’22の作成処理、31は、data#a’22のアクセス経路作成処理、32は、排他解除処理を表す。また、33は、data#a17のコピーであるdata#a’’18の作成処理(S102)、34は、data#a’’18のアクセス経路作成処理(S105)、35は、data#a’’18のコピーであるdata#a’22の作成処理(S107)を表す。また、図11におけるハッチング部は、フラッシュメモリ5へのGCプログラム6のアクセスを表し、矢印部はファイル12の排他区間を表す。
 図11に示すように、従来技術では、排他する区間に処理時間のかかるフラッシュメモリ5からのデータの読み出し、および書込みといったアクセス動作が含まれているが、本実施の形態では、排他区間にフラッシュメモリへのアクセスが含まれておらず、GCプログラム6による排他時間が低減することができる。
 また、本実施の形態における、GCシステムの構成について詳細を下記に説明する。
 図12は、本実施の形態に係る、GCシステムの構成の一例を示すブロック図である。図12に示される通り、GCシステム36は、起動ROM80内に、GCプログラム6を排除し、GC処理部37(第1フラグ設定部,第2フラグ設定部,削除部)を新たに備えるものである。GC処理部37は、コピー管理部38(第1複写部,第2複写部)と、排他指示部39(第1排他指示部,第1排他解除指示部,第2排他指示部,第2排他解除指示部)と、アドレス管理部40(第1切替部,第2切替部)と、判断部41(第1判断部,第2判断部)とを備える。なお、GCプログラム6と、CPU3、メインメモリ4、フラッシュメモリ5、起動ROM80等のハードウェア資源とが協働することで図12に示されているGC処理部37が実現される。また、コピー管理プログラム7と上述のハードウェア資源とが協働することで、コピー管理部38が実現され、排他指示プログラム8と上述のハードウェア資源とが協働することで、排他指示部39が実現される。また、アドレス管理プログラムと上述のハードウェア資源とが協働することで、図12に示されているアドレス管理部40が実現され、判断プログラム10と上述のハードウェア資源とが協働することで、判断部41が実現される。
 このような構成によれば、上述したGCプログラム6のデータ整理処理の一連の作業を行うシステムを提供することができる。
 本実施の形態によれば、コピー管理プログラム7とアクセス管理プログラム9により、メインメモリ4上へ必要データであるdata#a17のバックアップを作成することでGCプログラム6の実行中でも、他プログラムのファイル12へのアクセスが可能となる。また、排他指示プログラム8がアクセス経路の切替え時のみ排他を行うことにより、ファイル12が排他される区間の外側へ、処理時間のかかるフラッシュメモリ5へのアクセスを出すことができ、ファイル12の排他時間を最小限に抑えることができる。また、対象データのバックアップ単位は、1データ分である為、メインメモリ4の容量が小さいシステムでも実行が可能である。
 本発明は、その要旨または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
 更に、上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、GCシステムを構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ROMやRAM等のコンピュータに内部実装される内部記憶装置、CD-ROMやフレキシブルディスク、DVDディスク、光磁気ディスク、ICカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
 本発明によれば、データを移動する際の排他時間を低減するガーベジコレクション装置、ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステムを提供することができる。

Claims (20)

  1.  ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写ステップと、
     前記第1複写ステップでコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示ステップと、
     前記第1排他指示ステップに基づく排他制御が行われた後、前記第1複写ステップにてコピーされるコピー元の有効なデータから、前記第1複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替ステップと、
     前記第1切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示ステップと、
     前記第1複写ステップにてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写ステップと、
     前記第2複写ステップにてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示ステップと、
     前記第2排他指示ステップに基づく排他が行われた後、前記第2複写ステップにてコピーされるコピー元の有効なデータから、前記第2複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替ステップと、
     前記第2切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示ステップと、
     をコンピュータに実行させるガーベジコレクションプログラム。
  2.  請求項1に記載のガーベジコレクションプログラムにおいて、
     前記第1切替えステップにより、コピー元の有効なデータから、コピー先の有効なデータへアクセス経路を切り替えた後、コピー元の有効なデータを無効なデータとなるよう所定のフラグを設置する第1フラグ設置ステップを更にコンピュータに実行させるガーベジコレクションプログラム。
  3.  請求項1に記載のガーベジコレクションプログラムにおいて、
     前記第2排他解除指示ステップにより前記排他機構が排他制御の解除を行った後、前記第1複写ステップによりコピーされたコピー先の有効なデータを削除する第1削除ステップを更にコンピュータに実行させるガーベジコレクションプログラム。
  4.  請求項1に記載のガーベジコレクションプログラムにおいて、
     前記第1複写ステップにより、前記第1ブロックから前記有効なデータを前記第2記憶装置へコピーする前に、対象データが有効なデータであるか、無効なデータであるか判断を行う第1判断ステップを更にコンピュータに実行させるガーベジコレクションプログラム。
  5.  請求項4に記載のガーベジコレクションプログラムにおいて、
     前記第1判断ステップにより、前記対象データが有効なデータであると判断された場合、前記第1複写ステップをコンピュータに実行させるガーベジコレクションプログラム。
  6.  請求項4に記載のガーベジコレクションプログラムにおいて、
     前記第1判断ステップにより、前記対象データが無効なデータであると判断された場合、前記ガーベジコレクションプログラムの処理が終了することを特徴とするガーベジコレクションプログラム。
  7.  請求項1に記載のガーベジコレクションプログラムにおいて、
     前記第1複写ステップにより、前記第1ブロックから前記有効なデータを前記第2記憶装置へコピーした後、前記第1ブロックのコピー元である有効なデータが有効なデータのままであるか、無効なデータとなったかを判断する第2判断ステップを更にコンピュータに実行させるガーベジコレクションプログラム。
  8.  請求項7に記載のガーベジコレクションプログラムにおいて、
     前記第2判断ステップにより、前記有効なデータが有効なデータのままであると判断された場合、前記第1排他指示ステップをコンピュータに実行させるガーベジコレクションプログラム。
  9.  請求項7に記載のガーベジコレクションプログラムにおいて、
     前記第2判断ステップにより、前記有効なデータが無効なデータになったと判断された場合、前記第1複写ステップによりコピーされたコピー先のデータを削除する第2削除ステップをコンピュータに実行させ、前記ガーベジコレクションプログラムの処理が終了することを特徴とするガーベジコレクションプログラム。
  10.  請求項1に記載のガーベジコレクションプログラムにおいて、
     前記第2複写ステップにより、前記第2記憶装置の有効なデータを、前記第2ブロックにコピーした後、前記第2記憶装置のコピー元の有効なデータが有効なデータのままであるか、無効なデータとなったかを判断する第3判断ステップを更にコンピュータに実行させるガーベジコレクションプログラム。
  11.  請求項10に記載のガーベジコレクションプログラムにおいて、
     前記第3判断ステップにより、前記第2記憶装置のコピー元の有効なデータが有効なデータのままであると判断された場合、前記第2排他指示ステップをコンピュータに実行させるガーベジコレクションプログラム。
  12.  請求項10に記載のガーベジコレクションプログラムにおいて、さらに、
     前記第3判断ステップにより、前記第2記憶装置のコピー元の有効なデータが無効なデータとなったと判断された場合、前記第2ブロックにコピーされた有効なデータを無効なデータとなるよう所定のフラグをマークする第2フラグ設置ステップと、
     前記第1複写ステップによりコピーされた有効なデータを削除する第3削除ステップと、
    をコンピュータに実行させ、前記ガーベジコレクションプログラムの処理が終了することを特徴とするガーベジコレクションプログラム。
  13.  ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写部と、
     前記第1複写部でコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示部と、
     前記第1排他指示部に基づく排他が行われた後、前記第1複写部にてコピーされるコピー元の有効なデータから、前記第1複写部にてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替部と、
     前記第1切替部によるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示部と、
     前記第1複写部にてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写部と、
     前記第2複写部にてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示部と、
     前記第2排他指示部に基づく排他が行われた後、前記第2複写部にてコピーされるコピー元の有効なデータから、前記第2複写部にてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替部と、
     前記第2切替部によるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示部と、
     を備えることを特徴とするガーベジコレクションシステム。
  14.  請求項13に記載のガーベジコレクションシステムにおいて、
     前記第1切替え部により、コピー元の有効なデータから、コピー先の有効なデータへアクセス経路を切り替えた後、コピー元の有効なデータを無効なデータとなるよう所定のフラグを設置する第1フラグ設置部を更に備えることを特徴とするガーベジコレクションシステム。
  15.  請求項13に記載のガーベジコレクションシステムにおいて、
     前記第2排他解除指示部により前記排他機構が排他制御の解除を行った後、前記第1複写部によりコピーされたコピー先の有効なデータを削除する削除部を更に備えることを特徴とするガーベジコレクションシステム。
  16.  請求項13に記載のガーベジコレクションシステムにおいて、
     前記第1複写部により、前記第1ブロックから前記有効なデータを前記第2記憶装置へコピーする前に、対象データが有効なデータであるか、無効なデータであるか判断を行う第1判断部を更に備えることを特徴とするガーベジコレクションシステム。
  17.  請求項13に記載のガーベジコレクションシステムにおいて、
     前記第1複写部により、前記第1ブロックから前記有効なデータを前記第2記憶装置へコピーした後、前記第1ブロックのコピー元である有効なデータが有効なデータのままであるか、無効なデータとなったかを判断する第2判断部を更に備えることを特徴とするガーベジコレクションシステム。
  18.  請求項13に記載のガーベジコレクションシステムにおいて、
     前記第2複写部により、前記第2記憶装置の有効なデータを、前記第2ブロックにコピーした後、前記第2記憶装置のコピー元の有効なデータが有効なデータのままであるか、無効なデータとなったかを判断する第3判断部を更に備えることを特徴とするガーベジコレクションシステム。
  19.  ブロック単位でのみデータ消去が可能な第1記憶装置のうちの、有効なデータと無効なデータとが混在する第1ブロックから、有効なデータを前記第1記憶装置とは別の記憶装置である第2記憶装置へコピーする第1複写ステップと、
     前記第1複写ステップでコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第1排他指示ステップと、
     前記第1排他指示ステップに基づく排他が行われた後、前記第1複写ステップにてコピーされるコピー元の有効なデータから、前記第1複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第1切替ステップと、
     前記第1切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第1排他解除指示ステップと、
     前記第1複写ステップにてコピーされたコピー先の有効なデータを、前記第2記憶装置から前記第1記憶装置のブロックであって前記第1ブロックとは別のブロックである第2ブロックに有効なデータをまとめるようコピーする第2複写ステップと、
     前記第2複写ステップにてコピーされるコピー元の有効なデータへのアクセスを排他制御するよう排他機構へ指示する第2排他指示ステップと、
     前記第2排他指示ステップに基づく排他が行われた後、前記第2複写ステップにてコピーされるコピー元の有効なデータから、前記第2複写ステップにてコピーされたコピー先の有効なデータへアクセス経路を切り替える第2切替ステップと、
     前記第2切替ステップによるアクセス経路の切替後、前記排他機構へ排他制御を解除するよう指示する第2排他解除指示ステップと、
     を備えるガーベジコレクション方法。
  20.  請求項19に記載のガーベジコレクション方法において、
     前記第1切替えステップにより、コピー元の有効なデータから、コピー先の有効なデータへアクセス経路を切り替えた後、コピー元の有効なデータを無効なデータとなるよう所定のフラグを設置する第1フラグ設置ステップを更に備えるガーベジコレクション方法。
PCT/JP2008/064397 2008-08-11 2008-08-11 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム WO2010018613A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2010524628A JP5120455B2 (ja) 2008-08-11 2008-08-11 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
EP08792380A EP2315126A4 (en) 2008-08-11 2008-08-11 PEST INFORMATION COLLECTION PROGRAM, PASSING INFORMATION COLLECTION METHOD, AND PASSING INFORMATION COLLECTION SYSTEM
PCT/JP2008/064397 WO2010018613A1 (ja) 2008-08-11 2008-08-11 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
US12/986,515 US20110113075A1 (en) 2008-08-11 2011-01-07 Garbage collection program, garbage collection method, and garbage collection system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/064397 WO2010018613A1 (ja) 2008-08-11 2008-08-11 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/986,515 Continuation US20110113075A1 (en) 2008-08-11 2011-01-07 Garbage collection program, garbage collection method, and garbage collection system

Publications (1)

Publication Number Publication Date
WO2010018613A1 true WO2010018613A1 (ja) 2010-02-18

Family

ID=41668768

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/064397 WO2010018613A1 (ja) 2008-08-11 2008-08-11 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム

Country Status (4)

Country Link
US (1) US20110113075A1 (ja)
EP (1) EP2315126A4 (ja)
JP (1) JP5120455B2 (ja)
WO (1) WO2010018613A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515145A (ja) * 2011-08-31 2014-06-26 華為技術有限公司 コンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステム
US10877884B2 (en) 2018-01-09 2020-12-29 International Business Machines Corporation Copying and forwarding for concurrent copying garbage collection

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110119462A1 (en) * 2009-11-19 2011-05-19 Ocz Technology Group, Inc. Method for restoring and maintaining solid-state drive performance
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US9430376B2 (en) 2012-12-26 2016-08-30 Western Digital Technologies, Inc. Priority-based garbage collection for data storage systems
US9659021B1 (en) * 2013-11-20 2017-05-23 EMC IP Holding Company LLC Client based backups and backup indexing
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
US9811457B2 (en) * 2014-01-16 2017-11-07 Pure Storage, Inc. Data placement based on data retention in a tiered storage device system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
KR102501751B1 (ko) * 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10558567B1 (en) 2017-05-12 2020-02-11 Levyx, Inc. Storage device embedded strand architecture

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61105653A (ja) * 1984-07-31 1986-05-23 テキサス インスツルメンツ インコ−ポレイテツド 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置
JPS63223845A (ja) * 1987-03-12 1988-09-19 Fujitsu Ltd 実時間ガ−ベジコレクシヨン処理装置
JP2001184254A (ja) * 1999-12-27 2001-07-06 Nec Corp ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体
JP2001265750A (ja) * 2000-03-17 2001-09-28 Omron Corp メモリ制御装置
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4675561A (en) * 1985-11-15 1987-06-23 Precision Monolithics, Inc. FET output drive circuit with parasitic transistor inhibition
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5857210A (en) * 1997-06-26 1999-01-05 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including read and write barriers associated with an instance of a partially relocated object
JP3534585B2 (ja) * 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
US6308185B1 (en) * 1998-03-06 2001-10-23 Sun Microsystems, Inc. Methods and apparatus for generational dynamic management of computer memory
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
US6823351B1 (en) * 2000-05-15 2004-11-23 Sun Microsystems, Inc. Work-stealing queues for parallel garbage collection
US6963960B2 (en) * 2003-03-25 2005-11-08 Microsoft Corporation System and method for kernel mode memory management having movable kernel objects
US7451168B1 (en) * 2003-06-30 2008-11-11 Data Domain, Inc. Incremental garbage collection of data in a secondary storage
KR100608606B1 (ko) * 2004-01-28 2006-08-03 삼성전자주식회사 적응형 가비지 컬렉션 방법 및 상기 방법을 수행하는 장치
US7831783B2 (en) * 2005-12-22 2010-11-09 Honeywell International Inc. Effective wear-leveling and concurrent reclamation method for embedded linear flash file systems
JP4751814B2 (ja) * 2006-11-28 2011-08-17 富士通東芝モバイルコミュニケーションズ株式会社 携帯端末
US7991807B2 (en) * 2007-11-21 2011-08-02 Sap Ag Method and system for garbage collection

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61105653A (ja) * 1984-07-31 1986-05-23 テキサス インスツルメンツ インコ−ポレイテツド 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置
JPS63223845A (ja) * 1987-03-12 1988-09-19 Fujitsu Ltd 実時間ガ−ベジコレクシヨン処理装置
JP2001184254A (ja) * 1999-12-27 2001-07-06 Nec Corp ガーベージコレクション機能を有する情報処理装置およびその方法ならびに記録媒体
JP2001265750A (ja) * 2000-03-17 2001-09-28 Omron Corp メモリ制御装置
JP2007193883A (ja) 2006-01-18 2007-08-02 Sony Corp データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2315126A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014515145A (ja) * 2011-08-31 2014-06-26 華為技術有限公司 コンピュータシステムのメモリを管理する方法、メモリ管理ユニット及びコンピュータシステム
US10877884B2 (en) 2018-01-09 2020-12-29 International Business Machines Corporation Copying and forwarding for concurrent copying garbage collection

Also Published As

Publication number Publication date
JP5120455B2 (ja) 2013-01-16
EP2315126A1 (en) 2011-04-27
EP2315126A4 (en) 2012-06-20
JPWO2010018613A1 (ja) 2012-01-26
US20110113075A1 (en) 2011-05-12

Similar Documents

Publication Publication Date Title
JP5120455B2 (ja) ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JP5420814B2 (ja) バッファメモリに貯蔵されたデータを無効化させるスキームを有する貯蔵システム及びそれを含んだコンピューティングシステム
JP5336060B2 (ja) 不揮発性メモリ装置およびそれを動作させる方法
JP5612514B2 (ja) 不揮発性メモリコントローラ及び不揮発性記憶装置
JP2009181314A (ja) 情報記録装置およびその制御方法
US20090037648A1 (en) Input/output control method and apparatus optimized for flash memory
WO2009118917A1 (ja) フラッシュメモリを用いた記憶装置
JP2008046964A (ja) 情報記録装置及びその制御方法
US7971022B2 (en) Apparatus and method of processing data of non-volatile memory using transaction block
JP2013174975A (ja) メモリシステムとそのデータ書き込み方法
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
CN109690465B (zh) 一种存储设备管理方法及用户终端
JP4829202B2 (ja) 記憶装置及びメモリ制御方法
JPWO2009001514A1 (ja) メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
JP4308780B2 (ja) 半導体メモリ装置、メモリコントローラ及びデータ記録方法
JP4026588B2 (ja) ディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラム
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
WO2012104974A1 (ja) メモリコントローラ
JP2013235530A (ja) 制御装置、記憶装置、記憶制御方法
JP3818130B2 (ja) データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体
JP5180726B2 (ja) 記憶装置およびデータ書き込み制御方法
JP2008191797A (ja) ファイルシステム

Legal Events

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

Ref document number: 08792380

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010524628

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2008792380

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE