KR101450157B1 - Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage - Google Patents

Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage Download PDF

Info

Publication number
KR101450157B1
KR101450157B1 KR1020130098019A KR20130098019A KR101450157B1 KR 101450157 B1 KR101450157 B1 KR 101450157B1 KR 1020130098019 A KR1020130098019 A KR 1020130098019A KR 20130098019 A KR20130098019 A KR 20130098019A KR 101450157 B1 KR101450157 B1 KR 101450157B1
Authority
KR
South Korea
Prior art keywords
cache
block
volatile
data
state
Prior art date
Application number
KR1020130098019A
Other languages
Korean (ko)
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 KR1020130098019A priority Critical patent/KR101450157B1/en
Application granted granted Critical
Publication of KR101450157B1 publication Critical patent/KR101450157B1/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1678Details of memory controller using bus width

Abstract

A non-volatile cooperative memory control system according to the present invention may include a non-volatile journaling UBJ buffer cache, a non-volatile storage, and a cooperative memory controller for maintaining a data block. The cooperative memory controller can be operated to cooperatively manage a non-volatile journaling UBJ buffer cache and a non-volatile storage such that an original copy of the most recent consistent data can be maintained in any one of the non-volatile journaling UBJ buffer cache and the non-volatile storage, by setting data blocks of the non-volatile storage to one of a valid state, a removable state, and an invalid state according to setting of prohibition of writing of the corresponding cache block and existence of a clean cache, by regarding the data stored in the corresponding data block as an original copy if the data block of the non-volatile storage is in a valid state or in a removable state, and regarding the data stored in the corresponding prohibition set cache block as an original copy if the data block is in a non-valid state or removed.

Description

[0001] APPARATUS AND METHOD FOR COOPERATIVE DATA MANAGEMENT FOR NON-VOLATILE UBJ BUFFER CACHE AND NON-VOLATILE STORAGE [0002]

BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage data management technique, and more particularly, to a storage data management technique implemented in a nonvolatile memory device.

Recently, nonvolatile RAM (NVRAM) technologies such as PCM (Phase Change Memory) and STT-MRAM (Spin Torque Transfer Magnetic RAM) have rapidly developed and replaced DRAM (Dynamic RAM) Is expected to be used. NVRAM can show better characteristics than DRAM in various aspects such as performance, integration, and power.

The emergence of nonvolatile main memory is expected to make a significant difference to the hierarchical storage management mechanism with existing volatile main memory. Furthermore, systems in which main memory, buffer cache, and storage are both implemented as nonvolatile memory are expected to be introduced soon.

In traditional systems, buffer cache has been provided by DRAM, a volatile medium, and has been used to temporarily store data for quick access. However, if the buffer cache is implemented as a non-volatile medium, the buffer cache, a traditional temporary storage location, can hold the data semi-permanently as well as mass storage, which is a semi-permanent storage of data.

Unlike a hard disk, which can be permanently stored at the same position, unless the data unit is updated once, data such as garbage collection (GC) or the like Non-volatile storage devices perform their own writing operations on an ongoing basis due to ancillary administrative tasks.

This non-volatile mass storage device, where write operations are relatively slow, costs less to maintain the data because of the same overhead as this management operation, which degrades performance and shortens the life span.

 Therefore, in such a technical context, there is a need for a storage management technique capable of managing buffer cache and mass storage integrally and extending performance and life span in an environment in which nonvolatile storage medium is used as buffer cache and mass storage.

Meanwhile, the most common method for coping with a system failure of the conventional file system is to check the integrity of the file system with a predetermined utility such as fsck at the time of booting in, for example, The system checks the file system to find a problem, corrects it automatically, or reboots into a recovery mode so that the user can recover it automatically if it can not be calibrated automatically.

Depending on the version of the operating system, a utility such as fsck may always be run at mount time to check the consistency of the file system metadata. Therefore, in the conventional method, since there is no problem in the file system, it is necessary to investigate the file system in order to investigate the large file system sequentially.

To overcome these drawbacks, the proposed journaling technique is to log changes to the journal once before the changes are recorded in the file system and to manage the metadata about the changes in the log. At the abnormal termination of the file system It can be recovered with high reliability and fast speed.

The meta data of the file system is auxiliary data for structure management for management of data structurally stored in the disk, and is data generated due to generation and deletion of a file, creation and deletion of a directory, and increase and decrease of a file size. In other words, information about the changes that are reflected in the file system.

A file system employing a journaling technique is called a journaling file system. Commonly, the journaling file system writes the changes to the separately prepared journal area, or records the changes and the metadata together, and records the most recent changes to the original location of the storage at a predetermined time point, (checkpoint).

A transaction called commint that ensures that all data belonging to a transaction is successfully recorded in the journal area, typically at intervals of a few seconds, by managing a series of updates that must be consistently changed when writing to the journal area, .

Journaling file systems are being developed somewhat differently from detailed policies for each developer. For example, according to policy, you can save changes to the original location of the storage, then record the metadata in the journal area, or record the metadata and changes in the journal and write the changes back to the original location of the storage . In addition, depending on the policy, you can checkpoint journals when you run out of space, or checkpoint journals at a set time.

The journal area of a journaling file system uses some space in nonvolatile storage because it must remain in a storage state after the abnormal termination of the system and beyond.

In a system without a journaling job, journaling operations may be performed in order to reduce the vulnerability of the system, as opposed to transferring the updated data from the main memory to the storage device, Frequent commits can cause significant storage traffic. This can significantly degrade performance and durability in flash memory usage environments, which can result in significant performance degradation on expensive hard disk and cloud storage and also allow write operations with a limited number of times and slower speeds.

Although there is a common consensus that a journaling file system is required in recent cloud storage systems, it is not easily applied due to the cost of network access due to journaling.

On the other hand, this problem can be easily solved only by using a nonvolatile memory such as a phase-change memory (PCM) or a magnetoresistive memory (STT-MRAM) capable of random access at the time of reading and writing as main memory. It seems to be, but in reality it is not.

In a journaling file system, reliability is not only ensured by data retention in case of power failure, but also consistency of data must be ensured at re-supply or reboot after power down.

For example, changes to the data in the buffer cache and corresponding metadata should occur simultaneously. If the system stops, the data is updated in the non-volatile buffer cache, but the metadata for this update is changed The metadata at the time of reboot is inconsistent with this latest change data, so that the latest change data in the buffer cache is stored in the original location of the storage even though the latest change data remains in the nonvolatile buffer cache after the reboot Can not reflect.

SUMMARY OF THE INVENTION It is an object of the present invention to provide a cooperative data management apparatus and method for a nonvolatile journaling integrated buffer cache and nonvolatile storage.

A non-volatile cooperative memory control system according to an aspect of the present invention

A nonvolatile journaling integrated buffer cache that maintains cache blocks;

Non-volatile storage for holding data blocks; And

Volatile storage is set to one of a valid state, a removable state, and an invalid state according to a write inhibition setting and a clean cache state of a corresponding cache block, If the data block of the non-volatile storage is in the valid state or the erasable state, the data stored in the corresponding data block is regarded as the original, and if the data block is in the ineffective state or deleted, Volatile storage buffer cache and the non-volatile storage to cooperatively manage the non-volatile journaling integrated buffer cache and the non-volatile storage so as to maintain the most up-to-date and consistent source of data in either the journaling integrated buffer cache or the non-volatile storage. can do.

According to one embodiment, the cooperative memory control comprises:

To set the uncached data block of the non-volatile storage and the data block of the non-volatile storage in which the corresponding dirty newest cache block that is not write inhibited in the non-volatile journaling integrated buffer cache exist, Can operate.

According to one embodiment, the cooperative memory control comprises:

If a dirty latest cache block that is not write-protected in the nonvolatile journaling integrated buffer cache corresponding to a data block in the valid state of the nonvolatile storage is set to write-inhibited by a commit operation, And may be operable to set the active state to an inactive state.

According to one embodiment, the cooperative memory control comprises:

If a dirty newest cache block in the non-volatile journaling integrated buffer cache corresponding to a data block in the valid state of the non-volatile storage is set to write-inhibited by a commit operation, the non-volatile journaling integrated cache It can operate to regard the data stored in the cache block of the buffer cache as the original.

According to one embodiment, the cooperative memory control comprises:

And to set the data block of the non-volatile storage corresponding to the clean latest cache block in the non-volatile journaling integrated buffer cache to an erasable state.

According to one embodiment, the cooperative memory control comprises:

Volatile storage buffer in accordance with a checkpoint operation on a dirty new cache block in the non-volatile journaled integrated buffer cache, or a data block of the non-volatile storage in the non- The cache block corresponding to the condition for storing the data of the cache block is set as the clean latest cache block.

According to one embodiment, the cooperative memory control comprises:

And to monitor whether data blocks set to be erasable within the non-volatile storage are erased due to garbage collection.

According to one embodiment, the cooperative memory control comprises:

If a data block which is set to be erasable and has been regarded as an original is deleted from the nonvolatile storage, the clean newest cache block cached in the nonvolatile journaling integrated buffer cache corresponding to the deleted data block is written as a write- And to set it to the latest cache block.

According to one embodiment, the cooperative memory control comprises:

The data stored in the write inhibit dirty new cache block in the non-volatile journaling integrated buffer cache may be treated as an original until the next commit operation or checkpoint operation.

According to one embodiment, the cooperative memory control comprises:

Volatile storage buffer in the non-volatile storage buffer cache, storing data in the data block of the non-volatile storage, which is stored in the latest cache block of the non-volatile journaled integrated buffer cache and considered as the original cache block, Lt; / RTI > state.

According to one embodiment, the cooperative memory control comprises:

Writable dirty new cache block in the non-volatile journaling integrated buffer cache, if write access is made to the other empty cache block, write the newly created cache block to the writeable dirty newest cache block And to set the write inhibit dirty new cache block to the write inhibit dirty old cache block.

According to one embodiment, the cooperative memory control comprises:

The data stored in the write inhibit dirty past cache block in the non-volatile journaling integrated buffer cache may be treated as an original until the next commit operation or checkpoint operation.

According to one embodiment, the cooperative memory control comprises:

If a cache block set in the newly created writeable dirty latest cache exists in the nonvolatile journaling integrated buffer cache during a checkpoint operation, a data block stored in the nonvolatile storage is set to a valid state by a checkpoint operation Lt; / RTI >

According to one embodiment, the cooperative memory control comprises:

Write dirty past cache block existing in the non-volatile journaling integrated buffer cache at the commit operation time into a write-inhibited dirty cache.

According to one embodiment, the cooperative memory control comprises:

In the non-volatile journaling integrated buffer cache, a write-inhibited dirty cache block or a write-inhibited dirty old cache block in the nonvolatile journaling integrated buffer cache or a write inhibited dirty cache block in the nonvolatile journaling integrated buffer cache And to return the write-protected dirty cache block to the empty cache block before the checkpoint operation after the switch.

According to another aspect of the present invention,

A processor; And

An information processing apparatus comprising a non-volatile cooperative memory control system,

The non-volatile cooperative memory control system comprising:

A nonvolatile journaling integrated buffer cache that maintains cache blocks;

Non-volatile storage for holding data blocks; And

Volatile storage is set to one of a valid state, a removable state, and an invalid state according to a write inhibition setting and a clean cache state of a corresponding cache block, If the data block of the non-volatile storage is in the valid state or the erasable state, the data stored in the corresponding data block is regarded as the original, and if the data block is in the ineffective state or deleted, Volatile storage buffer cache and the non-volatile storage to cooperatively manage the non-volatile journaling integrated buffer cache and the non-volatile storage so as to maintain the most up-to-date and consistent source of data in either the journaling integrated buffer cache or the non-volatile storage. Nonvolatile cooperative memory It may include a control system.

A non-volatile cooperative memory control method according to another aspect of the present invention includes:

A non-volatile cooperative memory control method for integrally managing a non-volatile journaling integrated buffer cache for holding cache blocks and non-volatile storage for holding data blocks,

Setting a data block of non-cached non-volatile storage to a valid state;

Setting a corresponding block of data in the non-volatile storage buffer to a valid state if the cache block cached in the non-volatile journaled integrated buffer cache is a dirty new cache block that is not write-protected;

Setting a corresponding data block in the non-volatile storage to an inactive state if a cached but uncommitted cache block in the non-volatile journaled integrated buffer cache is committed through a write inhibit setting due to a commit operation;

Setting a corresponding data block of the non-volatile storage to an erasable state if the cache block cached in the non-volatile journaling integrated buffer cache is a clean latest cache block; And

If a data block set to the erasable state is deleted, setting a cached clean latest cache block in the nonvolatile journaling unified buffer cache as a write inhibition dirty latest cache block, and setting a corresponding data block in the nonvolatile journaling unified buffer cache as a nominal non- And setting it to a valid state.

According to one embodiment,

If a dirty new cache block that has not been committed is committed, the data stored in the write inhibited dirty new cache block of the nonvolatile journaling integrated buffer cache set as write prohibited by the commit operation may be regarded as the original.

According to one embodiment,

Volatile journaling unified buffer cache in response to a read access, or in response to a checkpoint operation on a dirty new cache block in the non-volatile journaling unified buffer cache, a data block of the non-volatile storage is cached in the non- A cache block corresponding to a condition in which the latest data is stored may be set as a clean latest cache block.

According to one embodiment, the non-volatile cooperative memory control method comprises:

The method may further include monitoring whether a data block set in the erasable state in the non-volatile storage is erased due to garbage collection.

According to one embodiment,

The data stored in the write inhibit dirty newest cache block in the nonvolatile journaling integrated buffer cache may be regarded as the original until there is a next commit operation or checkpoint operation.

According to one embodiment,

According to a checkpoint operation, the data stored in the latest dirty cache block that is write-prohibited in the nonvolatile journaling integrated buffer cache and regarded as the original is stored in the data block of the nonvolatile storage, and the data stored in the non- It can be set to a possible state.

According to one embodiment, the non-volatile cooperative memory control method comprises:

Writable dirty new cache block in the non-volatile journaling integrated buffer cache, if write access is made to the other empty cache block, write the newly created cache block to the writeable dirty newest cache block And setting the write inhibit dirty latest cache block to the write inhibit dirty past cache block.

According to one embodiment,

The data stored in the write inhibit dirty past cache block in the non-volatile journaling integrated buffer cache may be considered as the original until the next commit or checkpoint operation.

According to one embodiment, the non-volatile cooperative memory control method comprises:

If a cache block set in the newly created writeable dirty latest cache exists in the nonvolatile journaling integrated buffer cache during a checkpoint operation, a data block stored in the nonvolatile storage is set to a valid state by a checkpoint operation The method comprising the steps of:

According to one embodiment, the non-volatile cooperative memory control method comprises:

And converting the write inhibit dirty old cache block existing in the nonvolatile journaling integrated buffer cache to a write inhibit dirty cache at a commit operation time.

According to one embodiment, the non-volatile cooperative memory control method comprises:

In the non-volatile journaling integrated buffer cache, a write-inhibited dirty cache block or a write-inhibited dirty old cache block in the nonvolatile journaling integrated buffer cache or a write inhibited dirty cache block in the nonvolatile journaling integrated buffer cache And returning the write inhibit dirty cache block to the empty cache block before the check point operation after the switch.

According to another aspect of the present invention, a computer-readable recording medium is a computer-readable recording medium on which a program capable of implementing a non-volatile cooperative memory control method according to any one of the embodiments is stored.

The nonvolatile journaling integrated buffer cache of the present invention and the cooperative data management apparatus and method for nonvolatile storage cooperatively manage the nonvolatile journaling integrated buffer cache and the nonvolatile storage, You can minimize blocks to store.

According to the nonvolatile journaling integrated buffer cache of the present invention and the cooperative data management apparatus and method for nonvolatile storage, it is possible to guarantee the atomicity of the block having the updated contents in the nonvolatile buffer cache.

The nonvolatile journaling integrated buffer cache of the present invention and the cooperative data management apparatus and method for nonvolatile storage enable the nonvolatile journaling integrated buffer cache and the nonvolatile journaling integrated buffer cache to coexist with existing essential management tasks such as garbage collection in non- You can manage the data storage space of your storage.

1 is a block diagram illustrating an information processing apparatus having a nonvolatile journaling integrated buffer cache and a cooperative data management device for nonvolatile storage according to an embodiment of the present invention.
FIG. 2 is a state diagram illustrating a state change of a buffer cache block in a nonvolatile journaling integrated buffer cache and a cooperative data management method for nonvolatile storage according to an embodiment of the present invention. Referring to FIG.
FIGS. 3-6 illustrate how data stored in non-volatile storage is cached in a non-volatile journaled integrated buffer cache according to a non-volatile journaled integrated buffer cache and a cooperative data management method for non-volatile storage according to an embodiment of the present invention These are conceptual diagrams illustrating the actions that occur according to each situation.
7 is a flowchart illustrating a non-volatile journaling integrated buffer cache and a cooperative data management method for non-volatile storage according to an embodiment of the present invention.

For the embodiments of the invention disclosed herein, specific structural and functional descriptions are set forth for the purpose of describing an embodiment of the invention only, and it is to be understood that the embodiments of the invention may be practiced in various forms, The present invention should not be construed as limited to the embodiments described in Figs.

Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

The present invention is supported by the research project "Design of embedded operating system for smart devices based on the analysis of program characteristics" (Government task number 1345176231) of the basic research project - middle researcher support project planned by the Ministry of Education, Science and Technology and managed by the Korea Research Foundation The research result and the research project "Development of original technology of embedded system software for next generation memory based smart device" of SW Computing industry original technology development project which is planned by Ministry of Knowledge Economy and managed by Korea Industrial Technology Evaluation and Management Service (Ministry of Internal Affairs No. 1415122825 ), Respectively.

In the following, unless otherwise defined locally, for data referenced with the same address, the data block indicates the block whose data is stored in the storage, the cache block indicates the block cached in the journaling unified buffer cache, Quot; refers to a cache block in a journaling unified buffer cache that is write-protected with in-place commit.

In general, the most recent consistent version of data from the buffer cache is consistently journaled by a commit operation, which may be referred to as commit in terms of commit operations and journaling in terms of journaling techniques. Thus, throughout this specification, terms such as " committed ", "committed "," journaled " In this specification, "commit operation" means "in-place commit operation" unless otherwise specified.

The term " erasable state "in this application means that the data block of the storage has valid data but can be a target of garbage collection of the storage device. If the data block has invalid data, It can be a collection.

The term "original" in this application refers to the most recent data as a consistency assurance version for normal restart if the system is abnormally terminated.

1 is a block diagram illustrating an information processing apparatus having a nonvolatile journaling integrated buffer cache and a cooperative data management device for nonvolatile storage according to an embodiment of the present invention.

Referring to Figure 1, the information processing apparatus 1 of the present invention may have a processor 10 and a non-volatile cooperative memory control system 20.

The processor 10 may internally have a computing core 11 and various levels of the L1 cache 12 and the L2 cache 13, for example.

The non-volatile cooperative memory control system 20 may include a cooperative memory controller 21, a non-volatile journaling integrated buffer cache 22, and a non-volatile storage 23.

The cooperative memory control unit 21 may be implemented in hardware, or at least partially in hardware, such as a memory controller device, and a combination of software, such as an operating system or a driver.

The non-volatile journaled integrated buffer cache 22 and the non-volatile storage 23 may be implemented in logically separated areas within one physical storage medium, according to an embodiment, or may be implemented as separate physical storage media have.

Although the non-volatile cooperative memory control system 20 is described primarily in the context of the present invention based on non-volatile elements, the present invention may be implemented based on volatile memory as long as power is normally supplied.

The cooperative memory control unit 21 maintains and manages the most up-to-date consistent authentic data in either the non-volatile journaled integrated buffer cache 22 or the non-volatile storage 23, The integrity of the non-volatile journaling integrated buffer cache 22, the previously orignal data stored in the non-volatile storage 23, the newly original data, and the updated data, Can be guaranteed.

Typically, the storage and buffer caches are stored in the storage of the original of the data, and a copy or update of the data is temporarily held in the buffer cache during storage access such as reading or writing, When the copy is updated, it operates in a way that the updated version is reflected in the storage and evicted from the buffer cache.

On the other hand, the cooperative memory control unit 21 of the present invention controls the data blocks of the nonvolatile storage 23 according to whether the corresponding cache block is write-protected and whether or not the cache is clean, Volatile storage 23 is set to one of a valid state, a removable state, and an invalid state depending on whether a commit operation and a checkpoint operation are executed, The nonvolatile journaling integrated buffer cache 22 and the nonvolatile storage 23 (see FIG. 2) are regarded as the original data, and if the data is in the ineffective state or the data is deleted, the data stored in the corresponding write- ) Nonvolatile journaling to maintain the most up-to-date and consistent source of data. Write operation, the in-place commit operation, and the checkpoint operation of the non-volatile storage 23 and the non-volatile storage 23, respectively.

Specifically, if there is a writeable dirty cache for any data block of the non-volatile storage 23, but a frozen dirty cache is not present, the data block of the non- Is set to the valid state.

If there is a clean cache for any data block of the non-volatile storage 23, the data block of the non-volatile storage 23 is set to the erasable state.

Also, if there is a frozen dirty cache for any data block of the non-volatile storage 23, the data block of the non-volatile storage 23 is set to the inactive state.

The in-place commit operation provided in the non-volatile cooperative memory control system 20 of the present invention can be described as follows.

The file system having the existing disk buffering and journaling functions stores a data block which is definitely changed among the data blocks buffered in the buffer cache in a predetermined journal area according to the journaling policy for each operating system. commit). Although this technique ensures reliability, the original intent of disk buffering to reduce the number of accesses to disk with a long access time may not be achieved, and further, the data block (committed) (Checkpoint), so that two storage operations are required in the end, which may lead to an unexpected performance degradation.

On the other hand, the non-volatile cooperative memory control system 20 of the present invention is in-place committed within the non-volatile journaling integrated buffer cache 22, without a separate journal area, when the dirty cache blocks are committed .

Here, the in-place commit operation proposed by the inventor of the present invention is a method in which the cache blocks to be committed are copied and stored in a separate journal area as in the conventional journaling file system, By setting the contents to be frozen in the same manner as in the journal area.

Read operations on write-protected cache blocks by in-place commit operations are performed like normal read buffer cache, so there is no performance degradation as read cache.

However, if the data block being cached by the write-protected cache block is changed and the data block is updated, the corresponding cache block is write-protected and can not be overwritten. Therefore, The cache block is found and stored. At this time, only the contents of the updated portion may be newly stored, but the entire data blocks related to the updated contents may be copied and stored. This technique is called a copy-on-write technique.

On the other hand, the in-place committed cache block is reflected to the non-volatile storage 23 in a checkpoint, that is, the data block in the non-volatile storage 23, at an appropriate time according to the journaling policy. Specifically, when the cache block in place is checked, the cache block has the latest contents. When the cache block is checkpointed, the cache block is released from the write protection and can be freely written. . If the write-protected cache block has obsolete data block contents, the contents of the write-protected cache block are deleted and returned to the empty cache block.

On the other hand, in the non-volatile journaling integrated buffer cache 22, a write-protected (normal) cache block can be read and overwritten unrestrictedly like a normal cache block. The updated contents overwritten on the uncommitted writeable cache block may be checkpointed to the nonvolatile storage 23 at the time of the checkpoint operation according to the journaling policy in the future.

Accordingly, the nonvolatile journaling integrated buffer cache 22 can write the latest data block contents into the journal by writing-protecting the cache block storing the data block contents. At the same time, It can be accessed as a read cache without performance degradation or overhead.

Also for this purpose, the non-volatile journaled integrated buffer cache 22 may have an internally write-protected setting table to store the write-protect setting of each cache block.

2 is a block diagram illustrating a nonvolatile journaling integrated buffer cache and a cooperative data management method for nonvolatile storage according to an exemplary embodiment of the present invention. Referring to FIG. 2, Is a state diagram for explaining the state change of the buffer cache block in FIG.

In FIG. 2, with respect to the circle divided by the horizontal line, the upper half indicates the state of the cache block, the lower half indicates the state of the data block, and the small circle on the upper half is an index of these states.

Arrows indicate control operations such as read / write access, in-place commit / checkpoint operations, and deletion detection. The correspondence with each of the steps S51 to S59 in Fig. 5 is illustrated.

State 0 (S0) indicates that there is no read or write access to the data blocks of the non-volatile storage 23 so that no non-volatile journaling unified buffer cache 22 has no caching, The cache block corresponding to the checkpoint operation is completed in the non-volatile buffer cache 22 is recovered to the empty cache block, or the hit ratio of the clear cache due to the read access is low, And is recovered and replaced.

The data blocks of the nonvolatile storage 23 corresponding to the state 0 are set to the valid state, and the data stored in such data blocks are regarded as the original.

State 1 (S1) is the case where the cache block cached in the non-volatile journaling integrated buffer cache 22 is a clean up-to-date cache block and the cooperative memory controller 21 is in the non-volatile storage (" 23 in the erasable state.

Specifically, the cooperative memory control unit 21, if there is a read access to any data block in state 0 (S0) that has not yet been cached in the non-volatile storage 23, Set the block to the erasable state 1 (S1).

As will be described later, the cooperative memory control unit 21 has a state 2 (S2) in which there is a dirty new cache block writable in the nonvolatile journaling integrated buffer cache 22 having a valid data block in the nonvolatile storage 23, Volatile storage 23 is updated with the latest data as the checkpoint operation is performed in the non-volatile storage 23, the dirty latest cache block of the non-volatile buffer cache 22 is set as a clean latest cache block , The data block of the nonvolatile storage 23 is set to the erasable state 1 (S1).

As will be described later, the cooperative memory control unit 21 has a dirty new cache block that has erased or invalid data blocks in the non-volatile storage 23 and writable in the non-volatile journaling integrated buffer cache 22 When a checkpoint operation is performed in the state 3 (S3), a writeable dirty newest cache block of the non-volatile buffer cache 22 is cleared when a data block having the latest data is generated in the non-volatile storage 23 Sets the latest cache block, and sets the data block of the nonvolatile storage 23 to the erasable state 1 (S1).

As will be described later, the cooperative memory control unit 21 has a write inhibit dirty newest cache block 22, which has deleted or ineffective data blocks in the nonvolatile storage 23 and has been in place in the nonvolatile journaling integrated buffer cache 22, When a data block having the latest data is generated in the nonvolatile storage 23 as a checkpoint operation is performed in the state 3 (S3) in which the write cache block 22 is present, Writes the data block of the nonvolatile storage 23 to the erasable state 1 (S1).

In these cases, the cooperative memory control unit 21 regards the data stored in the data block set in the erasable state in the nonvolatile storage 23 as the original.

At this time, although the data block in state 1 (S1), which is the erasable state of non-volatile storage 23, is in an unstable state that can be erased by garbage collection at any time, Version of data is cached in the clean fresh cache block of the non-volatile buffer cache 22, it is possible to provide consistent data to the host system even when the data block is erased in the non-volatile storage 23.

However, in this case, since the local controller of the non-volatile storage 23 can perform the garbage collection to erase the data block in the erasable state at any time, the upper cooperative memory control unit 21 performs the garbage collection An additional configuration may be required to monitor whether or not to erase the data block in the erasable state.

The cooperative memory control unit 21 performs a direct read operation in the corresponding cache block in the nonvolatile journaling integrated buffer cache 22 of the corresponding data block in response to the read access during the state 1 (S1).

On the other hand, if there is write access during state 1 (S1), the data block and cache block in state 1 (S1) are switched to state 2 (S2).

Since there is no change in the cache block while state 1 (S1) is maintained, the cache block in state 1 (S1) is not the object of checkpoint calculation.

The case of switching to state 3 (S3) when garbage collection occurs in state 1 (S1) will be described later.

From the viewpoint of garbage collection in the viewpoint of garbage collection, garbage collection is an operation for arranging blocks having invalid data. In contrast, even if the garbage collection of the present invention is a block having partially valid data, Is safely cached in the non-volatile buffer cache, it can be said to be an operation to clean up with blocks having invalid data. Thus, garbage collection can be performed more efficiently.

On the other hand, the state 2 (S2) is a state before a write access to the predetermined data block of the nonvolatile storage 23 in the state 0 (S0) or the state 1 (S1) is made and it is in place.

The cooperative memory control unit 21 determines whether the non-volatile journaling integrated buffer cache 22 is in state 2 (S2), as long as it is set to the dirty latest cache block ) Of the nonvolatile storage 23 in the valid state.

The cooperative memory control unit 21 updates the cache block in the non-volatile journaled integrated buffer cache 22 according to the additional write access to the predetermined data block of the non-volatile storage 23 in the state 2 (S2) The corresponding data in the nonvolatile storage 23 can be held in the valid state until the cache block is committed in place.

Therefore, the data stored in the data block of the nonvolatile storage 23 set to the valid state is regarded as the original.

If the system is abnormally terminated before performing an in-situ commit operation or a checkpoint operation in state 2 (S2), the latest version of data written into the non-volatile journaled integrated buffer cache 22 is discarded and the non-volatile storage 23 ) Is applied as the original data at system restart.

Until the in-place commit operation is performed on the non-volatile journaling integrated buffer cache 22, the cooperative memory control unit 21 performs a read operation on the corresponding cache block in the nonvolatile journaling integrated buffer cache 22 of the corresponding data block Or performs a read or write operation in response to a write access.

Thus, if the data block and cache block in state 2 (S2) were in state 2 (S2) between consecutive in-place commit operations, or between in-place commit operation and checkpoint operation, S2).

If there is an in-place commit operation in state 2 (S2), the cache block of the non-volatile journaled integrated buffer cache 22 is set to the write-inhibited dirty newest cache and the corresponding data block of the non-volatile storage 23 is invalidated And is switched to state 3 (S3).

In one embodiment, if there is a checkpoint operation in state 2 (S2), then the latest content stored in the cache block of the non-volatile journaled integrated buffer cache 22 is stored in the data block of the non-volatile storage 23, The cache block of the journaling unified buffer cache 22 and the data block of the non-volatile storage 23 may remain in state 2 (S2).

In another embodiment, if there is a checkpoint operation in state 2 (S2), the latest content stored in the cache block of the non-volatile journaled integrated buffer cache 22 is stored in the data block of the non-volatile storage 23, The cache block of the journaling integrated buffer cache 22 may be set to a writeable clean latest cache and the data block of the nonvolatile storage 23 may be switched to state 1 (S1) while being set to the erasable state.

On the other hand, the state 3 (S3) can be described as follows.

First, when the data block of the nonvolatile storage 23 in state 1 (S1) is erased by, for example, garbage collection (GC) or the like, the corresponding data block of the nonvolatile storage 23 is deleted It is actually absent, but here it is called nominally ineffective.

Accordingly, the cooperative memory control unit 21 sets the cache block in the nonvolatile journaling integrated buffer cache 22 to write-free (freeze) in place of the original status of the deleted data block, The data stored in the frozen cache block is regarded as the original.

The cooperative memory control unit 21 also performs a checkpoint operation after the in-place commit operation is performed on the dirty latest cache block (i.e., the cache block in state 2 (S2) or state 4 (S4) The dirty new cache block is set to write-disabled, the corresponding data block of the non-volatile storage 23 is set to the inactive state, and the write-inhibited dirty newest cache block in the non-volatile journaling integrated buffer cache 22 Is regarded as the original.

In other words, the cooperative memory control unit 21 determines that the cache block cached in the nonvolatile journaling integrated buffer cache 22 is the cleanest latest cache block (S1) and the corresponding data block in the nonvolatile storage 23 is deleted Or if the corresponding data block in the non-volatile storage 23 is now in the past version by becoming a write inhibit dirty new cache block in the nonvolatile journaling integrated buffer cache 22 being cached in place and being committed, The corresponding data block of the nonvolatile storage 23 is set to the ineffective state.

While the write inhibition latest cache block is in state 3 (S3), it does not correspond to commit triggering since there is no change after in-place commit.

When the checkpoint operation is performed on the dirty latest cache block in the write-protected state 3 (S3) after the in-place commit, the cooperative memory controller 21 stores the in-place committed data in the data block of the nonvolatile storage 23 Sets the cache block of the nonvolatile journaling integrated buffer cache 22 to the writable clean latest cache, sets the data block stored in the nonvolatile storage 23 to the erasable state, and switches to the state 1 (S1) .

On the other hand, until there is a write operation or a checkpoint operation after the write inhibition setting of the cache block in state 3 (S3), the cooperative memory control unit 21 reads from the write-inhibited cache block Read operation, but if there is write access, the write data is stored in another empty cache block, for example, as a copy-on-write technique.

According to the write access, the cache block in state 3 (S3) is no longer the latest version, so it is set as a frozen dirty out-of-date cache and switched to state 5 (S5) The cache block is set to a writeable dirty latest cache and corresponds to state 4 (S4) described later.

State 4 (S4) is write-inhibit dirty in state 3 (S3) Write-enabled dirty created by storing the latest contents in the empty cache block when there is a new write access to the latest cache block. It is a state before becoming.

At this time, the data block of the nonvolatile storage 23 in the state 4 (S4) is deleted when the state 4 (S4) goes from the state 1 (S1) to the state 3 (S3) Or in the state 4 (S4) via the state 2 (S2) to the state 3 (S3), it can be maintained in the ineffective state.

Therefore, until the in-place commit operation or the checkpoint operation is performed on the nonvolatile journaling integrated buffer cache 22 in the state 4 (S4), the data block of the nonvolatile storage 23 set to the ineffective state is replaced with the state 5 The data stored in the write inhibit dirty cache in the nonvolatile journaling integrated buffer cache 22 of step S5 is regarded as the original.

If the system is abnormally terminated before the in-place commit operation or the checkpoint operation is performed in state 4 (S4), the data of the writeable dirty latest cache block in state 4 (S4) is discarded in the nonvolatile journaling integrated buffer cache 22 The data of the write inhibit dirty past cache block in state 5 (S5) of the nonvolatile journaling integrated buffer cache 22 is applied as an original at system restart.

It should be noted that the data block corresponding to the writeable dirty newest cache in state 2 (S2) is valid, whereas the data block corresponding to the writeable dirty newest cache in state 4 (S4) is invalid. This is because, in the state 2 (S2), the cache block and the data block become the state 2 (S2) by the caching of the data block in the state 0 (S0) and the updating of the data block in the state 1 (S1) In case of state 4 (S4), since a data block has already been deleted in state S3 or a new cache block has been created after it has been set to invalid, a valid data block can not exist from the beginning or it is ineffective from the beginning.

The cooperative memory control unit 21 stores the corresponding cache in the nonvolatile journaling integrated buffer cache 22 of the corresponding data block until the in-place commit operation or the checkpoint operation is performed on the nonvolatile journaling integrated buffer cache 22 A read or write operation is performed in response to a read access or a write access in the block.

Thus, if the data block and cache block in state 4 (S4) were in state 4 (S4) between consecutive in-place commit operations, or between in-place commit operation and checkpoint operation, S4).

If there is an in-place commit operation in state 4 (S4), the cache block of the non-volatile journaling integrated buffer cache 22 is set to state 3 (S3) while being set to the write-inhibited dirty latest cache. At the same time, the write inhibit dirty past cache block in state 5 (S5), which will be described later, is switched to the write inhibit dirty cache block in state 6 (S6).

In one embodiment, if there is a checkpoint operation in state 4 (S4), the latest content stored in the cache block of the non-volatile journaled integrated buffer cache 22 is stored in the data block of the non-volatile storage 23, The cache block of the journaling integrated buffer cache 22 is set to the writeable dirty latest cache and the data block of the nonvolatile storage 23 is set to the valid state and is switched to the state 2 (S2).

In another embodiment, if there is a checkpoint operation in state 4 (S4), the latest content stored in the cache block of the non-volatile journaled integrated buffer cache 22 is stored in the data block of the non-volatile storage 23, The cache block of the journaling integrated buffer cache 22 may be set to a writeable clean latest cache and the data block of the nonvolatile storage 23 may be switched to state 1 (S1) while being set to the erasable state.

At the same time, the write inhibit dirty past cache block in state 5 (S5) and the write inhibit dirty insignificant cache block in state 6 (S6) to be described later are returned to the empty cache block in state 0 (S0).

The state 5 (S5) is a state where the write inhibit dirty newest cache block in the state 3 (S3) is switched to the write inhibit dirty past cache block when there is a write operation.

The write inhibit dirty past cache block in state 5 (S5) acts as a state source until there is an in-place commit operation on state 4 (S4) writeable dirty fresh cache block.

If there is an in-place commit operation, the cooperative memory control unit 21 switches the write inhibit dirty past cache block in state 5 (S5) to a frozen dirty obsolete cache (state 6 (S6)) .

Further, if there is a checkpoint operation thereafter, the cooperative memory control unit 21 erases the write inhibition dirty past cache block in state 5 (S5) and returns it to the empty cache block in state 0 (S0).

State 6 (S6) is a state in which the write inhibit dirty past cache block in state 5 (S5) is switched to a write-prohibited insoluble past cache block when there is an in-place commit operation. With respect to the data stored in the state 6 (S6), the data stored in the latest cache block of the write inhibit dirty state in the state 3 (S3) becomes the original.

If there is a checkpoint operation thereafter, the cooperative memory control unit 21 erases the write inhibition dirty insufficient cache block in state 6 (S6) and returns it to the empty cache block in state 0 (S0).

Here, since the write-inhibited dirt-free cache block actually occupies only a capacity without serving as a cache block as an original, it can be used at any time, for example, immediately, at an arbitrary point before a checkpoint operation, It can be returned as a block.

The relationship between state 3 (S3), state 4 (S4), state 5 (S5) and state 6 (S6) is as follows. Until write access is made to the latest write- Prohibition Dirty: The state is 3 (S3) and the state is changed to state 5 (S5) until the latest cache block serves as a source and write access is made to the latest write-inhibited cache block and there is an in-place commit operation or checkpoint operation. Write-inhibited dirty cache blocks continue to act as originals. Subsequently, when there is an in-place commit operation, the write inhibit dirty past cache block in state 5 (S5) is switched from state 5 (S5) to state 6 (S6) ) To state 3 (S3) write inhibit dirty newest cache block.

That is, the state 3 (S3) and the state 6 (S6) correspond to a situation where a new original is determined according to deletion of an original or an in-place commit operation, and states 4 (S4) and 5 Until the next original is confirmed.

Also, although the version cached with respect to data that is typically accessed with the same address may vary, in the present invention, cache block state 3 and cache block state 4 do not exist at the same time with respect to data accessed with the same address.

Therefore, only one cache block in the state 3 of the non-volatile journaling integrated buffer cache 22 and the cache block in the state 4 of the floating cache block are checked by the checkpoint operation, And is switched to state 1 (S1), depending on the embodiment, to state 2 (S2).

FIGS. 3, 4, and 5 are diagrams illustrating operations performed after data stored in a nonvolatile storage is cached in a nonvolatile buffer cache according to a nonvolatile buffer cache and an integrated data management method for nonvolatile storage according to an embodiment of the present invention. Respectively.

3 to 6, italic (e.g., D0 ) indicates whether the version considered as the source at that point is stored in the nonvolatile journaling integrated buffer cache and nonvolatile storage, and is usually a font (for example, D0 ) Means a clean cache, a bold font means a dirty cache, and a lock means a write-protected cache.

In the nonvolatile storage, the solid line box indicates a block storing valid data, the dashed box indicates a block in a deletable state (S1), and the box filled with a slash indicates a data block set to ineffective.

Figure 3 illustrates a situation in which cache blocks are managed when the content is not updated after the data block is read cached and then deleted as a garbage collection.

Referring to FIG. 3, at time t = 0, some data D0 stored in data block X of non-volatile storage 23 is cached in cache block A of non-volatile journaling integrated buffer cache 22 by read access.

Since the cache block A of the nonvolatile journaling integrated buffer cache 22 with the read access becomes a clean cache with the data D0, the data D0 of the data block X of the nonvolatile storage 23 from t = State (S1).

Since the update writing does not occur in the cache block A from t = 10 to t = 40, and the data block X is not deleted, the deletable state (S1) is maintained.

At t = 40, it was actually deleted by garbage collection. The cache block A having the data D0 immediately switches to the write inhibit dirty latest cache block (state 3 (S3)), and the data D0 stored by the write inhibit dirty latest cache block is regarded as the original instead of the deleted data block X (State 3 (S3)). Write access to cache block A is restricted, but read access is freely possible.

If the write operation does not occur until t = 90 after t = 40, the cache block A will hit the checkpoint operation with the latest cache state of write inhibit dirty in state 3 (S3) with data D0, and when t = 90, The data DO of the cache block A is stored in the data block X of the nonvolatile storage.

In this case, the cache block A becomes the cleanest latest cache (state 1 (S1)) again, and the data block having the data D0 that has been checkpointed in the nonvolatile storage is the original and becomes the erasable state S1. In the same situation, the data D0 of the data block X is copied somewhere and the data block X is destined to be erased due to garbage collection in the conventional art anyway, so there is no performance deterioration in comparison with the prior art.

4 illustrates a situation in which cache blocks are managed when content is updated after a data block is read cached and then deleted as a garbage collection.

Referring to FIG. 4, at time t = 0, some data D0 stored in data block X of non-volatile storage 23 is cached in cache block A of non-volatile journaling integrated buffer cache 22 by read access.

Since the cache block A of the nonvolatile journaling integrated buffer cache 22 with the read access becomes a clean cache with the data D0, the data D0 of the data block X of the nonvolatile storage 23 from t = State (S1).

Since the update writing does not occur in the cache block A from t = 10 to t = 40, and the data block X is not deleted, the deletable state (S1) is maintained.

At t = 40, it was actually deleted by garbage collection. The cache block A having the data D0 immediately switches to the write inhibit dirty latest cache block (state 3 (S3)), and the data D0 stored by the write inhibit dirty latest cache block is regarded as the original instead of the deleted data block X (State 3 (S3)). Writing to cache block A is prohibited, but read access is freely possible.

Since the write operation is performed at t = 50, since the cache block A is write inhibited, the data D1 is stored in the new cache block B by the copy-on-write (CoW) Dirty past cache block (state 5 (S5)), but since the in-place commit has not yet occurred, the data D0 of the cache block A is regarded as the original.

At the time t = 60, an in-place commit operation is performed, and the cached data D1 in the dirty latest cache block B is committed in place to become the write inhibition dirty newest cache block (state 3 (S3)), It is regarded as the original (state 3 (S3)). The cache block A is now switched to a write inhibit dirty cache block (state 6 (S6)).

Since cache block A now has cache data D0 which is useless at all, it may return cache block A immediately to the empty cache block, but this operation may cause additional overhead, May be desirable.

no action occurs at t = 70 and t = 80, so that the cache block B in the state 3 and the cache block A in the state 6 can be maintained as they are.

At the time t = 90, the checkpoint operation is performed, and the latest version of the data D1 stored in the cache block B in the state 3 is stored in the nonvolatile storage.

Along with the checkpoint operation, the cache block A having the insoluble data D0 can be emptied with the checkpoint, and the cache block B becomes the cleanest latest cache (state 1 (S1)). The data block having the data D1 checked in the nonvolatile storage becomes the original and the erasable state (S1).

At t = 100, a rewrite operation occurs. Accordingly, the cache block B is set to the dirty latest cache (state 2 (S2)) while the updated data is written to the data D1 and the cached data of the cache block B is changed to D2. The data block X of the storage is set to valid (state 2 (S2)), and the data of the data block X of the nonvolatile storage X is held until the next in-place commit operation D1 is considered as the original.

FIG. 5 illustrates a situation in which cache blocks are managed when content is updated before a data block is read-cached and then deleted as a garbage collection and then checkpointed after the last commit.

Referring to FIG. 5, at time t = 0, some data D0 stored in data block X of non-volatile storage 23 is cached in cache block A of non-volatile journaling integrated buffer cache 22 by read access.

Since the cache block A of the nonvolatile journaling integrated buffer cache 22 with the read access becomes a clean cache with the data D0, the data D0 of the data block X of the nonvolatile storage 23 from t = State (S1).

Since the update writing does not occur in the cache block A from t = 10 to t = 40, and the data block X is not deleted, the deletable state (S1) is maintained.

At t = 40, it was actually deleted by garbage collection. The cache block A having the data D0 immediately switches to the write inhibit dirty latest cache block (state 3 (S3)), and the data D0 stored by the write inhibit dirty latest cache block is regarded as the original instead of the deleted data block X (State 3 (S3)). Write is prohibited for cache block A, but read access is freely possible.

The data D1 is stored in the new cache block B by the copy-on-write technique (state 4 (S4)). Since the write operation is performed at t = 50, the cache block A is write- (State 5 (S5)), but since the in-place commit has not yet occurred, the data D0 of the cache block A is regarded as the original.

At the time t = 60, an in-place commit operation is performed, and the cached data D1 in the dirty latest cache block B is committed in place to become the write inhibition dirty newest cache block (state 3 (S3)), It is regarded as the original (state 3 (S3)). The cache block A is now switched to a write inhibit dirty cache block (state 6 (S6)).

Since cache block A now has cache data D0 which is useless at all, it may return cache block A immediately to the empty cache block, but this operation may cause additional overhead, May be desirable.

no action occurs at t = 70, so that the cache block B in the state 3 and the cache block A in the state 6 can be maintained as they are.

Data D2 is stored in the new cache block C by the copy-on-write technique (state 4 (S4)) because the write operation is performed again with data D2 at t = The data D1 of the cache block B is regarded as the original since the cache block B is set to the write inhibit dirty past cache block (state 5 (S5)). However, since the in-place commit or checkpoint operation has not yet occurred, the cache block A is still write- (State 6 (S6)).

At the time t = 90, the checkpoint operation is performed, and the data D2, which is the latest version stored in the cache block C in the state 4 (S4), is stored in the nonvolatile storage data block X.

At this time, unlike the checkpoint of the cache block B in FIG. 4, the cache block C is set as a writable dirty cache block in state 2 (S2), and the data block of nonvolatile storage having data D2 checked in non- X is set to valid (state 2 (S2) and data D2 stored in data block X is regarded as the original.

According to an embodiment, the cache block C may be set as a writable clean cache block in state 1 (S1), in which case the data block X having data D2 checked in non-volatile storage is in the original and erasable state (S1).

Along with a checkpoint operation, a cache block A with insufficient data D0 and a cache block B with data D1 of a previous version can also be emptied with checkpoints.

At t = 100, a rewrite operation occurs, so that the cache block C is updated and written to the data D2, the cached data in the cache block C is changed to D3, and the dirty latest cache setting in state 2 (S2) is maintained. The data block X of the storage is set to valid (state 2 (S2)), and the data of the data block X of the nonvolatile storage X is held until the next in- D2 is regarded as the original.

According to the embodiment, until immediately before the write operation of t = 100, the cache block C is the cleanest latest cache of the state 1 (S1) and the state transition from the state 1 (S1) to the state 2 (S2) .

Figure 6 illustrates a situation in which cache blocks are managed when content is updated and in-place committed after a data block is read cached.

Referring to FIG. 6, at time t = 0, some data D0 stored in data block X of non-volatile storage 23 is cached in cache block A of non-volatile journaling integrated buffer cache 22 by read access.

Since the cache block A of the nonvolatile journaling integrated buffer cache 22 with the read access becomes a clean cache with the data D0, the data D0 of the data block X of the nonvolatile storage 23 from t = State (S1).

When a write operation is performed to data D1 at t = 20, the cache block A is updated to data D1 and becomes the dirty latest cache of state 2 (S2), and the corresponding data block X is set to valid (Step S2), and the data D0 of the data block X is regarded as the original.

When an in-place commit operation occurs at t = 30, the cache block A is inhibited from being written with the data D1 and is the latest cache of the write inhibit dirty in the state 3 (S3). However, State 3 (S3)), and the data D1 of the cache block A is regarded as the original.

When the write operation is performed again with the data D2 at t = 50, since the cache block A in the state 3 (S3) is write inhibited, the data D2 is stored in the new cache block B in the copy- . The cache block A is set to the write inhibit dirty past cache block (state 5 (S5)), but since the in-place commit has not yet occurred, the data D1 of the cache block A is regarded as the original.

At a time t = 60, an in-place commit operation is performed, and the data D2 cached in the dirty latest cache block B is committed in place to become the write inhibition dirty latest cache block (state 3 (S3)), It is regarded as the original (state 3 (S3)). The cache block A is now switched to a write inhibit dirty cache block (state 6 (S6)).

Since the cache block A now has cache data D1 which is useless at all, it may return the cache block A immediately to the empty cache block. However, such an operation may cause additional overhead. Therefore, May be desirable.

no action occurs at t = 70 and t = 80, so that the cache block B in the state 3 and the cache block A in the state 6 can be maintained as they are.

At the time t = 90, the checkpoint operation is performed, and the latest version of the data D2 stored in the cache block B in the state 3 is stored in the nonvolatile storage.

Along with the checkpoint operation, the cache block A having the insoluble data D0 can be emptied with the checkpoint, and the cache block B becomes the cleanest latest cache (state 1 (S1)). The data block having the data D2 checked in the nonvolatile storage becomes the original and the erasable state (S1).

At t = 100, a rewrite operation occurs. Accordingly, the cache block B is set to the dirty latest cache (state 2 (S2)) while the updated data is written to the data D2 and the cached data in the cache block B is changed to D3. The data block X of the storage is set to valid (state 2 (S2)), and the data of the data block X of the nonvolatile storage X is held until the next in-place commit operation D2 is regarded as the original.

7 is a flowchart illustrating an integrated data management method for a nonvolatile buffer cache and nonvolatile storage according to an embodiment of the present invention.

Referring to FIG. 7, the integrated data management method includes a cooperative memory control unit 21 for managing a nonvolatile buffer cache and a nonvolatile storage in a unified manner. In step S71, Set the data block to the valid state.

Thereafter, in step S72, if the data is cached in the non-volatile journaled integrated buffer cache 22 with read or write access to any valid state data block of the non-volatile storage 23, If the cache block cached in the journaling unified buffer cache 22 is a dirty latest cache block that has not been in-place committed through write-protection settings, then the corresponding data block in the non-volatile storage 23 is set to the valid state.

Here, steps S71 and S72 correspond to a situation where the state changes from state 0 (S0) or state 1 (S1) to state 2 (S2).

On the other hand, if there is a read access or a write access to a dirty latest cache block (state 2) that has not been committed after being cached, a corresponding read operation or a write operation in the corresponding dirty latest cache block can be performed.

In step S73, if the cache block that has been cached but not committed in the non-volatile journaling integrated buffer cache 22 is in-place committed through the write-protection setting, the corresponding valid or invalid state in the non-volatile storage buffer 23 The data block is set to the ineffective state.

The steps S72 and S73 correspond to a situation where the state is switched from the state 2 (S2) or the state 4 (S4) to the state 3 (S3).

In step S74, if the cache block cached in the nonvolatile journaling integrated buffer cache 22 is a clean latest cache block, the corresponding data block of the nonvolatile storage 23 is set to the erasable state.

Specifically, a data block is cached from the non-volatile storage 23 in response to a read access, or a checkpoint operation is performed on the in-place committed write-inhibited dirty new cache block, and data having the latest data in the nonvolatile storage 23 If a block has been created, then the cache block is a clean up-to-date cache block that caches the same data as the data block.

Steps S71 and S74 correspond to a situation where the state changes from state 0 (S0) or state 3 (S3) to state 1 (S1).

In step S75, if the data block set to the erasable state is deleted, the cached clean latest cache block is set as the write inhibit dirty latest cache block and the corresponding data block in the nonvolatile storage 23 is designated as nominally nominally set to the inactive state.

Steps S74 and S75 correspond to a situation where the state is switched from state 1 (S1) to state 3 (S3).

In the case of the nonvolatile storage 23, the data held by the data blocks set in the valid state and the erasable state are regarded as the original. In the case of the nonvolatile journaling integrated buffer cache 22, the write inhibited dirty cache block The dirty new cache block and the write inhibit dirty old cache block) may be regarded as an original in place of the data block of the nonvolatile storage 23.

Additionally, in step S76, if there is write access to the write-inhibited dirty newest cache block, write data for write access to the other empty cache block and set the new cache block as a writable dirty newest cache block Write inhibit dirty transitions the latest cache block into a write inhibit dirty past cache block.

This step S76 corresponds to a situation where the state is switched from the state 3 (S3) to the state 4 (S4) and the state 5 (S5).

Additionally, in step S77, if there is a writeable dirty newest cache block associated with the write inhibit dirty old cache block in the checkpoint operation, the data of the writeable dirty latest cache block is stored in nonvolatile storage, Set the data block stored in the storage to the valid state.

This step S77 corresponds to a situation where the state is switched from the state 4 (S4) to the state 2 (S2).

In addition, in step S78, if there is a write inhibit dirty past cache block in the commit operation, the cache block is switched to the write inhibit dirty cache block.

This step S78 corresponds to a situation where the state changes from state 5 (S5) to state 6 (S6).

In addition, in step S79, if there is a write inhibit insoluble clean cache block or a write inhibit past clean cache block at a predetermined time, for example, at the time of a checkpoint operation, these are returned to the empty cache block.

For example, immediately before or after accumulating a predetermined number of cache blocks in the nonvolatile journaling integrated buffer cache 22 before the checkpoint operation according to the embodiment, It can be returned as a cache block.

This step S79 corresponds to a situation where the state 5 (S5) or the state 6 (S6) is switched to the state 0 (S0).

While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, Modification is possible. Accordingly, the spirit of the present invention should be understood only in accordance with the following claims, and all of the equivalent or equivalent variations will fall within the scope of the present invention.

Further, the apparatus according to the present invention can be implemented as a computer-readable code on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the recording medium include a ROM, a RAM, an optical disk, a magnetic tape, a floppy disk, a hard disk, a nonvolatile memory, and the like, and a carrier wave (for example, transmission via the Internet). The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

1 information processing device
10 processors
11 operation core
12 L1 cache
13 L2 cache
20 Nonvolatile Cooperative Memory Control System
21 cooperative memory controller
22 Nonvolatile Buffer Cache
23 Nonvolatile Storage

Claims (28)

A nonvolatile journaling integrated buffer cache that maintains cache blocks;
Non-volatile storage for holding data blocks; And
Volatile storage is set to one of a valid state, a removable state, and an invalid state according to a write inhibition setting and a clean cache state of a corresponding cache block, If the data block of the non-volatile storage is in the valid state or the erasable state, the data stored in the corresponding data block is regarded as the original, and if the data block is in the ineffective state or deleted, Volatile storage buffer cache and the non-volatile storage to cooperatively manage the non-volatile journaling integrated buffer cache and the non-volatile storage so as to maintain the most up-to-date and consistent source of data in either the journaling integrated buffer cache or the non-volatile storage. Nonvolatile cooperative memory Control system.
2. The apparatus of claim 1,
To set the uncached data block of the non-volatile storage and the data block of the non-volatile storage in which the corresponding dirty newest cache block that is not write inhibited in the non-volatile journaling integrated buffer cache exist, Volatile cooperative memory control system.
3. The apparatus of claim 2,
If a dirty latest cache block that is not write-protected in the nonvolatile journaling integrated buffer cache corresponding to a data block in the valid state of the nonvolatile storage is set to write-inhibited by a commit operation, Wherein the non-volatile cooperative memory control system is operative to set the non-volatile cooperative memory control system from an enabled state to an inactive state.
4. The cooperative memory control unit according to claim 3,
If a dirty newest cache block in the non-volatile journaling integrated buffer cache corresponding to a data block in the valid state of the non-volatile storage is set to write-inhibited by a commit operation, the non-volatile journaling integrated cache Wherein the processor is operative to regard the data stored in the cache block of the buffer cache as the original.
3. The apparatus of claim 2,
Volatile coherent memory control system is operable to set a data block of the non-volatile storage corresponding to a clean up-to-date cache block in the non-volatile journaling integrated buffer cache to an erasable state.
6. The apparatus of claim 5,
Volatile storage buffer in accordance with a checkpoint operation on a dirty new cache block in the non-volatile journaled integrated buffer cache, or a data block of the non-volatile storage in the non- The cache block corresponding to the condition that the data of the cache block is stored in the cache block as the clean latest cache block.
6. The apparatus of claim 5,
Wherein the processor is operative to monitor whether data blocks set to be erasable within the non-volatile storage are erased due to garbage collection.
6. The apparatus of claim 5,
If a data block which is set to be erasable and has been regarded as an original is deleted from the nonvolatile storage, the clean newest cache block cached in the nonvolatile journaling integrated buffer cache corresponding to the deleted data block is written as a write- And to set the new cache block to the latest cache block.
9. The apparatus of claim 8,
Volatile journaling unified buffer cache to the data stored in the write inhibit dirty new cache block in the non-volatile journaling integrated buffer cache until the next commit or checkpoint operation.
9. The apparatus of claim 8,
Volatile storage buffer in the non-volatile storage buffer cache, storing data in the data block of the non-volatile storage, which is stored in the latest cache block of the non-volatile journaled integrated buffer cache and considered as the original cache block, ≪ / RTI > wherein the processor is operative to set a state of the non-volatile cooperative memory control system.
9. The apparatus of claim 8,
Writable dirty new cache block in the non-volatile journaling integrated buffer cache, if write access is made to the other empty cache block, write the newly created cache block to the writeable dirty newest cache block And sets the write inhibit dirty new cache block to a write inhibit dirty old cache block.
12. The system of claim 11,
Wherein the data stored in the write inhibit dirty past cache block in the non-volatile journaling integrated buffer cache is treated as an original until the next commit operation or checkpoint operation.
12. The system of claim 11,
If a cache block set in the newly created writeable dirty latest cache exists in the nonvolatile journaling integrated buffer cache during a checkpoint operation, a data block stored in the nonvolatile storage is set to a valid state by a checkpoint operation Wherein the non-volatile cooperative memory control system is operative to:
12. The system of claim 11,
Volatile journaling integrated buffer cache to a write-inhibit dirty cache when the commit operation is performed on the non-volatile journaled integrated buffer cache.
15. The system of claim 14,
In the non-volatile journaling integrated buffer cache, a write-inhibited dirty cache block or a write-inhibited dirty old cache block in the nonvolatile journaling integrated buffer cache or a write inhibited dirty cache block in the nonvolatile journaling integrated buffer cache And to return the write inhibit dirty cache block to the empty cache block after the checkpoint operation after the switch.
A processor; And
An information processing apparatus comprising a non-volatile cooperative memory control system,
The non-volatile cooperative memory control system comprising:
A nonvolatile journaling integrated buffer cache that maintains cache blocks;
Non-volatile storage for holding data blocks; And
Volatile storage is set to one of a valid state, a removable state, and an invalid state according to a write inhibition setting and a clean cache state of a corresponding cache block, If the data block of the non-volatile storage is in the valid state or the erasable state, the data stored in the corresponding data block is regarded as the original, and if the data block is in the ineffective state or deleted, Volatile storage buffer cache and the non-volatile storage to cooperatively manage the non-volatile journaling integrated buffer cache and the non-volatile storage so as to maintain the most up-to-date and consistent source of data in either the journaling integrated buffer cache or the non-volatile storage. Nonvolatile cooperative memory The information processing apparatus comprising a control system.
A non-volatile cooperative memory control method for integrally managing a non-volatile journaling integrated buffer cache for holding cache blocks and non-volatile storage for holding data blocks,
Setting a data block of non-cached non-volatile storage to a valid state;
Setting a corresponding block of data in the non-volatile storage buffer to a valid state if the cache block cached in the non-volatile journaled integrated buffer cache is a dirty new cache block that is not write-protected;
Setting a corresponding data block in the non-volatile storage to an inactive state if a cached but uncommitted cache block in the non-volatile journaled integrated buffer cache is committed through a write inhibit setting due to a commit operation;
Setting a corresponding data block of the non-volatile storage to an erasable state if the cache block cached in the non-volatile journaling integrated buffer cache is a clean latest cache block; And
If a data block set to the erasable state is deleted, setting a cached clean latest cache block in the nonvolatile journaling unified buffer cache as a write inhibition dirty latest cache block, and setting a corresponding data block in the nonvolatile journaling unified buffer cache as a nominal non- And setting the valid state of the non-volatile cooperative memory control.
18. The method of claim 17,
Wherein the data stored in the newest cache block of the write inhibit dirty new cache block of the nonvolatile journaling integrated buffer cache set as write-disabled according to the commit operation is regarded as the original when the uncommitted dirty latest cache block is committed. Way.
18. The method of claim 17,
Volatile journaling unified buffer cache in response to a read access, or in response to a checkpoint operation on a dirty new cache block in the non-volatile journaling unified buffer cache, a data block of the non-volatile storage is cached in the non- Wherein a cache block corresponding to a condition that the latest data is stored is set as a clean latest cache block.
18. The method of claim 17,
Further comprising monitoring whether a data block set to be erasable in the non-volatile storage is erased due to garbage collection. ≪ Desc / Clms Page number 19 >
18. The method of claim 17,
Wherein the data stored in the write inhibit dirty newest cache block in the nonvolatile journaling integrated buffer cache is considered as the original until the next commit or checkpoint operation.
23. The method of claim 21,
Volatile storage buffer in the data block of the non-volatile storage, the data stored in the latest dirty cache block of the non-volatile journal integrated buffer cache and regarded as the original, ≪ / RTI > is set to the < RTI ID = 0.0 > non-volatile cooperative < / RTI >
18. The method of claim 17,
Writable dirty new cache block in the non-volatile journaling integrated buffer cache, if write access is made to the other empty cache block, write the newly created cache block to the writeable dirty newest cache block And setting the write inhibit dirty new cache block to a write inhibit dirty old cache block. ≪ Desc / Clms Page number 20 >
24. The method of claim 23,
Wherein the data stored in the write inhibit dirty past cache block in the non-volatile journaling integrated buffer cache is regarded as the original until the next commit or checkpoint operation is performed.
27. The method of claim 24,
If a cache block set in the newly created writeable dirty latest cache exists in the nonvolatile journaling integrated buffer cache during a checkpoint operation, a data block stored in the nonvolatile storage is set to a valid state by a checkpoint operation Wherein the non-volatile cooperative memory control method operates in a non-volatile cooperative memory control manner.
27. The method of claim 24,
Further comprising the step of switching the write inhibit dirty past cache block existing in the nonvolatile journaling integrated buffer cache to a write inhibit dirty cache at the time of a commit operation.
27. The method of claim 26,
In the non-volatile journaling integrated buffer cache, a write-inhibited dirty cache block or a write-inhibited dirty old cache block in the nonvolatile journaling integrated buffer cache or a write inhibited dirty cache block in the nonvolatile journaling integrated buffer cache And returning the write inhibit dirty cache block to the empty cache block before the check point operation after the conversion.
A computer-readable recording medium having embodied thereon a program capable of implementing a non-volatile cooperative memory control method according to any one of claims 17 to 27.
KR1020130098019A 2013-08-19 2013-08-19 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage KR101450157B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130098019A KR101450157B1 (en) 2013-08-19 2013-08-19 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130098019A KR101450157B1 (en) 2013-08-19 2013-08-19 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage

Publications (1)

Publication Number Publication Date
KR101450157B1 true KR101450157B1 (en) 2014-10-13

Family

ID=51997506

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130098019A KR101450157B1 (en) 2013-08-19 2013-08-19 Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage

Country Status (1)

Country Link
KR (1) KR101450157B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105849688A (en) * 2014-12-01 2016-08-10 华为技术有限公司 Data write-in method, apparatus and device, and storage system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258789A (en) 2004-03-11 2005-09-22 Toshiba Solutions Corp Storage device, storage controller, and write back cache control method
KR20070096429A (en) * 2006-03-24 2007-10-02 부산대학교 산학협력단 Fast mounting for a file system on nand flash memory
KR20080076529A (en) * 2007-02-16 2008-08-20 한국과학기술원 Data process method using journaling file system based on flash memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258789A (en) 2004-03-11 2005-09-22 Toshiba Solutions Corp Storage device, storage controller, and write back cache control method
KR20070096429A (en) * 2006-03-24 2007-10-02 부산대학교 산학협력단 Fast mounting for a file system on nand flash memory
KR20080076529A (en) * 2007-02-16 2008-08-20 한국과학기술원 Data process method using journaling file system based on flash memory

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105849688A (en) * 2014-12-01 2016-08-10 华为技术有限公司 Data write-in method, apparatus and device, and storage system
CN105849688B (en) * 2014-12-01 2019-10-22 华为技术有限公司 Method, apparatus, equipment and the storage system of data write-in

Similar Documents

Publication Publication Date Title
KR101475483B1 (en) Apparatus and method for united data management for non-volatile buffer cache and non-volatile storage
US10289545B2 (en) Hybrid checkpointed memory
KR101567134B1 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
US20240095233A1 (en) Persistent memory management
KR100843543B1 (en) System comprising flash memory device and data recovery method thereof
US10817421B2 (en) Persistent data structures
US10241711B2 (en) Multiversioned nonvolatile memory hierarchy for persistent memory
US8621144B2 (en) Accelerated resume from hibernation in a cached disk system
US5519831A (en) Non-volatile disk cache
KR101717644B1 (en) Apparatus, system, and method for caching data on a solid-state storage device
CN107735774B (en) SMR perception only adds file system
US20110082983A1 (en) Cpu instruction and data cache corruption prevention system
WO2015020811A1 (en) Persistent data structures
KR20170010729A (en) Storage system and method for metadata management in Non-volatile memory
JP2010152747A (en) Storage system, cache control method and cache control program for storage
US9003106B1 (en) Crash consistency
US9335941B1 (en) Crash consistency
CN116069681A (en) Disk space recovery method and device, electronic equipment and storage medium
US20030046482A1 (en) Data management in flash memory
JP2006099802A (en) Storage controller, and control method for cache memory
KR100866513B1 (en) Data Process Method Using Journaling File System Based on Flash Memory
KR101450157B1 (en) Apparatus and method for cooperative data management for non-volatile ubj buffer cache and non-volatile storage
KR101474843B1 (en) Buffer cache apparatus, journaling file system and journaling method for incorporating journaling features within non-volatile buffer cache
KR101814047B1 (en) Memory management apparatus in cache for providing a persistent-consistency of persistent memories and method thereof
KR20150058092A (en) Network boot system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 6