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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1678—Details of memory controller using bus width
Abstract
Description
BACKGROUND OF THE
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
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
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
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
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
Specifically, if there is a writeable dirty cache for any data block of the
If there is a clean cache for any data block of the
Also, if there is a frozen dirty cache for any data block of the
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
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
On the other hand, in the non-volatile journaling integrated
Accordingly, the nonvolatile journaling integrated
Also for this purpose, the non-volatile journaled integrated
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
The data blocks of the
State 1 (S1) is the case where the cache block cached in the non-volatile journaling integrated
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
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
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
As will be described later, the cooperative memory control unit 21 has a write inhibit dirty
In these cases, the cooperative memory control unit 21 regards the data stored in the data block set in the erasable state in the
At this time, although the data block in state 1 (S1), which is the erasable state of
However, in this case, since the local controller of the
The cooperative memory control unit 21 performs a direct read operation in the corresponding cache block in the nonvolatile journaling integrated
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
The cooperative memory control unit 21 determines whether the non-volatile journaling integrated
The cooperative memory control unit 21 updates the cache block in the non-volatile journaled integrated
Therefore, the data stored in the data block of the
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
Until the in-place commit operation is performed on the non-volatile journaling integrated
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
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
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
On the other hand, the state 3 (S3) can be described as follows.
First, when the data block of the
Accordingly, the cooperative memory control unit 21 sets the cache block in the nonvolatile journaling integrated
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
In other words, the cooperative memory control unit 21 determines that the cache block cached in the nonvolatile journaling integrated
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
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
Therefore, until the in-place commit operation or the checkpoint operation is performed on the nonvolatile journaling integrated
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
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
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
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
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
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
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
Since the cache block A of the nonvolatile journaling integrated
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
Since the cache block A of the nonvolatile journaling integrated
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
Since the cache block A of the nonvolatile journaling integrated
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
Since the cache block A of the nonvolatile journaling integrated
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
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
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
Specifically, a data block is cached from the
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
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
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
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)
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
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 >
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.
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 >
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 >
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.
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.
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.
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.
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)
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)
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 |
-
2013
- 2013-08-19 KR KR1020130098019A patent/KR101450157B1/en active IP Right Grant
Patent Citations (3)
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)
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 |