KR101663425B1 - Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability - Google Patents
Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability Download PDFInfo
- Publication number
- KR101663425B1 KR101663425B1 KR1020150092405A KR20150092405A KR101663425B1 KR 101663425 B1 KR101663425 B1 KR 101663425B1 KR 1020150092405 A KR1020150092405 A KR 1020150092405A KR 20150092405 A KR20150092405 A KR 20150092405A KR 101663425 B1 KR101663425 B1 KR 101663425B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user blocks
- determined
- recorded
- locality
- 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/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
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
The present invention relates to an apparatus and method for managing multiple open blocks for improving performance and durability of a storage device, and more particularly, to a method and apparatus for managing temporal locality or spatial locality of data, And more particularly, to a multiple open block management apparatus and method for recording on a user block on the basis of a plurality of open blocks.
Recently, flash memory based storage devices have attracted attention as a main storage medium for mobile systems and personal portable computer systems. Such a flash memory-based storage device is expected to be used as a next-generation storage medium to replace the conventional hard disk.
However, since there are many disadvantages according to the characteristics of the semiconductor devices constituting the flash memory, there is a need for a mechanism for effectively analyzing and solving the flash memory. To this end, a flash memory based storage device is used by supplementing the disadvantage of a flash memory mounted through a controller. The disadvantage of flash memory is that it can not be overwritten, and there are limitations on the number of erasures. Therefore, there is a need for a mapping technique capable of flexibly accessing a region of a flash memory where data is stored in order to overcome such shortcomings and to provide an interface such as an existing hard disk. Such a mapping table is often changed and stored in volatile memory such as SRAM or DRAM in addition to flash memory because it needs to be accessed quickly.
However, the volatile memory such as SRAM or DRAM has a problem that stored data is evaporated when power is lost. In order to solve this problem, a flash memory based storage device should use a technique of storing a mapping table stored in a volatile memory such as an SRAM or a DRAM as a whole or in a separate flash memory.
At this time, if the mapping table is stored in the flash memory too frequently, a large storage space for processing the mapping table must be secured, and the performance of the flash memory based storage device may be deteriorated in view of a large delay time. The reboot time after the power loss is required to check the storage area and restore the mapping table to restore the state before the power loss, but it should be managed so that only a delay that can be accepted by the user occurs.
In order to maintain the mapping management for the storage area of the flash memory and to keep the mapping table in the nonvolatile state, one open block or a very small number (2 to 4) is managed. An open block is a block in which a write operation is actually performed while a flash storage device is in operation. After all pages have been written, an open block changes its state to a closed block. In the closed block, all the mapping information for the corresponding block is accumulated in the last page, and all the information on the closed state is stored in the block map table. Therefore, the management of multiple open blocks causes a problem in that a power failure is caused in the storage device by keeping the blocks in an incomplete state unclosed.
The present invention relates to an apparatus and method for managing multiple open blocks for enhancing the performance and durability of a storage device, and more particularly to an apparatus and method for managing multiple open blocks for improving the performance and durability of a storage device, To thereby improve the performance and durability of the storage device.
According to an embodiment of the present invention, there is provided a memory storing method comprising: determining a plurality of user blocks to be recorded among a plurality of user blocks to be recorded with data; Determining whether the data has a locality of temporal locality or spatial locality, and writing the data to the determined user blocks based on the locality of the identified data .
The checking step may confirm that the data has temporal locality if the data needs to be repeatedly written to a specific logical address during a preset time interval.
Wherein the verifying step can verify that the data has a spatial locality if the data needs to be written to a similar logical address area.
The recording step may sequentially record the data on a plurality of pages included in one of the plurality of user blocks, when the data is confirmed to have spatial localization.
The recording step may record the data in one of the plurality of user blocks when the data is determined to have temporal locality.
Wherein the recording step comprises: dividing the data according to a multi-process or a multi-thread of the host system when the data is confirmed to have spatial localization; and dividing each of the divided data into a plurality of users Can be collected and recorded in any one of the user blocks.
A method for storing a memory according to an embodiment of the present invention includes the steps of determining a plurality of first user blocks to be recorded among a plurality of user blocks to be recorded with data, The method comprising: confirming whether the data has a locality of temporal locality or spatial locality when delivered through a system, determining whether the data is localized based on locality of the identified data, 1 user blocks, and switching the first user blocks into second user blocks, in which data is written, when data is recorded in all of the determined first user blocks.
The determining may further include recording the determined plurality of first user blocks in a system page of the system block.
The memory storage device according to an embodiment of the present invention includes a controller for performing a plurality of operations, and the plurality of operations determine a plurality of user blocks to be recorded among a plurality of user blocks to which data is to be written Checking whether the data has temporal locality or spatial locality when the data to be recorded in the determined user blocks are transferred through the host system, And writing the data to the determined user blocks based on the locality of the identified data.
The controller may verify that the data has temporal locality if the data needs to be repeatedly written to a specific logical address during a preset time interval.
If the data needs to be written to a similar logical address area, the controller can verify that the data has spatial localization.
The controller may sequentially record the data on a plurality of pages included in one of the plurality of user blocks if the data is confirmed to have spatial localization.
The controller may collect the data to be recorded in one of the plurality of user blocks when the data is confirmed to have temporal locality.
The controller divides the data according to a multi-process or a multi-thread of the host system when the data is confirmed to have spatial localization, and divides each of the divided data into a plurality of user blocks In the user block.
The memory storage device according to an embodiment of the present invention includes a controller for performing a plurality of operations, the plurality of operations including a plurality of first user blocks to be recorded, Determining whether the data has temporal locality or spatial locality when the data to be recorded in the determined first user blocks are transmitted through the host system; Recording the data on the determined first user blocks based on the locality of the verified data, and recording the first user blocks on the basis of the recorded data if the data is recorded in all of the determined first user blocks. To the completed second user blocks.
The controller may further include writing the determined plurality of first user blocks in a system page of the system block.
According to an embodiment of the present invention, the temporal locality or the spatial locality of data can be confirmed, and the performance and durability of the storage device can be improved by recording the data on the user block based on the confirmed locality .
1 is a block diagram illustrating a memory storage device according to an embodiment of the present invention.
2 is a diagram illustrating a configuration of a flash memory according to an embodiment of the present invention.
FIG. 3 illustrates how data according to an embodiment of the present invention is divided and stored in an associated open block.
FIG. 4 illustrates a method of recording data in an open block according to an embodiment of the present invention.
FIG. 5 illustrates a method of managing an open block on a system page according to an embodiment of the present invention.
FIG. 6 illustrates a method of recording data in an open block managed in a system page according to an embodiment of the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
1 is a block diagram illustrating a memory storage device according to an embodiment of the present invention.
The
The
The
2 is a diagram illustrating a configuration of a flash memory according to an embodiment of the present invention.
The
The system block within the
The map block in the
User blocks in
FIG. 3 illustrates how data according to an embodiment of the present invention is divided and stored in an associated open block.
In the present invention, the
If a limited open block is used as in the conventional case, there is a high probability that data having different localities are mixed and stored in one open block. That is, if a data group frequently changed in one open block and a fixed data group are mixed, a fixed data group is unnecessarily moved to another open block at the time of garbage collection, resulting in overhead.
In the present invention, the
First, the
Secondly, the
Third, the
Accordingly, the
FIG. 4 illustrates a method of recording data in an open block according to an embodiment of the present invention.
In
In
The
At
Alternatively, the
When the data is determined to have spatial localization, the
FIG. 5 illustrates a method of managing an open block on a system page according to an embodiment of the present invention.
The
To recover the mapping table after an abnormal power loss, the map block in which the mapping table is stored and the user block that was in use immediately before the abnormal power loss should be searched. At this time, the
FIG. 6 illustrates a method of recording data in an open block managed in a system page according to an embodiment of the present invention.
In
At
In
The
In
Alternatively, the
When the data is determined to have spatial localization, the
In step 650, when data is recorded in all of the determined open blocks, the
Thereafter, if no abnormal power loss has occurred in the host system, the
As described above, the present invention can improve the performance and durability of the
While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible.
Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.
100: memory storage device
110: controller
120: Cache memory
130: flash memory
210: system block area
220: map block area
230: User block area
510: first user block list
520: second user block list
Claims (16)
Confirming whether the data has temporal locality or spatial locality when the data to be recorded in the determined user blocks are transferred through the host system; And
Recording the data on each of the different user blocks of the determined plurality of user blocks based on the locality of the identified data
Lt; / RTI >
Wherein the recording step comprises:
If it is determined that the data has temporal locality, collects the data in any one of a plurality of user blocks and sequentially records the data,
Dividing the data in a time division manner based on a multi-process or a multi-thread supported by a host system when the data is determined to have spatial localization, and dividing the divided data into any one of a plurality of user blocks And sequentially recording the data in the memory.
Wherein the verifying step comprises:
Wherein if the data needs to be repeatedly written to a specific logical address during a predetermined time interval, then the data is confirmed to have temporal locality.
Wherein the verifying step comprises:
And if the data needs to be written to a similar logical address area, verifies that the data has spatial localization.
Determining whether the data has temporal locality or spatial locality when the data to be recorded in the determined first user blocks are transmitted through the host system;
Recording the data on each of the different first user blocks of the determined plurality of first user blocks based on the locality of the identified data; And
When data is recorded in all of the determined first user blocks, converting the first user blocks into second user blocks in which data has been written
Lt; / RTI >
Wherein the recording step comprises:
If it is determined that the data has temporal locality, collects the data in any one of a plurality of user blocks and sequentially records the data,
Dividing the data in a time division manner based on a multi-process or a multi-thread supported by a host system when the data is determined to have spatial localization, and dividing the divided data into any one of a plurality of user blocks And sequentially recording the data in the memory.
Wherein the determining comprises:
And writing the determined plurality of first user blocks to a system page of a system block.
And a controller for performing a plurality of operations,
Determining a plurality of user blocks to be recorded among a plurality of user blocks to which data is to be recorded;
Confirming whether the data has temporal locality or spatial locality when the data to be recorded in the determined user blocks are transmitted through the host system; And
And recording the data on each of the different user blocks among the determined user blocks based on the locality of the identified data
/ RTI >
The recording operation may include:
If it is determined that the data has temporal locality, collects the data in any one of a plurality of user blocks and sequentially records the data,
Dividing the data in a time division manner based on a multi-process or a multi-thread supported by a host system when the data is determined to have spatial localization, and dividing the divided data into any one of a plurality of user blocks And sequentially records the data.
The controller comprising:
And confirms that the data has temporal locality if the data needs to be repeatedly written to a specific logical address during a predetermined time interval.
The controller comprising:
And if the data needs to be written to a similar logical address area, verifies that the data has spatial localization.
And a controller for performing a plurality of operations,
Determining a plurality of first user blocks to be recorded among a plurality of user blocks to which data is to be recorded;
Confirming whether the data has temporal locality or spatial locality when the data to be recorded in the determined first user blocks are transferred through the host system;
Recording the data in each of the first user blocks of the determined first user blocks based on the locality of the identified data; And
When data is recorded in all of the determined first user blocks, switching the first user blocks into second user blocks in which data is written
/ RTI >
The recording operation may include:
If it is determined that the data has temporal locality, collects the data in any one of a plurality of user blocks and sequentially records the data,
Dividing the data in a time division manner based on a multi-process or a multi-thread supported by a host system when the data is determined to have spatial localization, and dividing the divided data into any one of a plurality of user blocks And sequentially records the data.
The controller comprising:
And writing the determined plurality of first user blocks to a system page of a system block.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150092405A KR101663425B1 (en) | 2015-06-29 | 2015-06-29 | Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability |
US15/736,607 US20180189144A1 (en) | 2015-06-16 | 2016-06-16 | Apparatus and method for memory storage to protect data-loss after power loss |
PCT/KR2016/006392 WO2016204529A1 (en) | 2015-06-16 | 2016-06-16 | Memory storage device and method for preventing data loss after power loss |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150092405A KR101663425B1 (en) | 2015-06-29 | 2015-06-29 | Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101663425B1 true KR101663425B1 (en) | 2016-10-07 |
Family
ID=57145239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150092405A KR101663425B1 (en) | 2015-06-16 | 2015-06-29 | Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101663425B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090107098A (en) * | 2008-04-08 | 2009-10-13 | 재단법인서울대학교산학협력재단 | Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems |
KR20140133800A (en) * | 2014-10-29 | 2014-11-20 | 삼성전자주식회사 | Memory device and managing method of memory device |
-
2015
- 2015-06-29 KR KR1020150092405A patent/KR101663425B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20090107098A (en) * | 2008-04-08 | 2009-10-13 | 재단법인서울대학교산학협력재단 | Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems |
KR20140133800A (en) * | 2014-10-29 | 2014-11-20 | 삼성전자주식회사 | Memory device and managing method of memory device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466932B2 (en) | Cache data placement for compression in data storage systems | |
US10176190B2 (en) | Data integrity and loss resistance in high performance and high capacity storage deduplication | |
KR101824295B1 (en) | Cache management including solid state device virtualization | |
US8838875B2 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
Ji et al. | An empirical study of {File-System} fragmentation in mobile storage systems | |
US9501418B2 (en) | Invalidation data area for cache | |
US8280858B2 (en) | Storage pool scrubbing with concurrent snapshots | |
KR101813786B1 (en) | System and method for copy on write on an ssd | |
TWI533152B (en) | Data storage apparatus and method | |
WO2016086819A1 (en) | Method and apparatus for writing data into shingled magnetic record smr hard disk | |
US20170139825A1 (en) | Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach | |
US8862819B2 (en) | Log structure array | |
KR20120090965A (en) | Apparatus, system, and method for caching data on a solid-state strorage device | |
US20180189144A1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
CN106557428B (en) | Mapping system selection for data storage devices | |
JP2017079053A (en) | Methods and systems for improving storage journaling | |
US9983826B2 (en) | Data storage device deferred secure delete | |
US11461287B2 (en) | Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS | |
US10235284B2 (en) | Memory system | |
KR20090107098A (en) | Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
US20180307419A1 (en) | Storage control apparatus and storage control method | |
KR101676175B1 (en) | Apparatus and method for memory storage to protect data-loss after power loss | |
KR101153688B1 (en) | Nand flash memory system and method for providing invalidation chance to data pages | |
KR101663425B1 (en) | Apparatus and method for memory storage to manage multiplexer open block for improving memory's performance and durability |
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: 20190624 Year of fee payment: 4 |