WO2014157817A1 - 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 - Google Patents
플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 Download PDFInfo
- Publication number
- WO2014157817A1 WO2014157817A1 PCT/KR2013/012429 KR2013012429W WO2014157817A1 WO 2014157817 A1 WO2014157817 A1 WO 2014157817A1 KR 2013012429 W KR2013012429 W KR 2013012429W WO 2014157817 A1 WO2014157817 A1 WO 2014157817A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- mapping
- address
- flash memory
- logical address
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Definitions
- the present invention relates to a flash memory based page unit address mapping method and system, and more particularly, when logical addresses and physical addresses are sequential together, the size and size of mapping information using sequential logical addresses and data information sizes.
- the present invention relates to a method and system for improving performance at system boot-up by reducing the number of read operations by reducing the size of the page mapping table.
- the present invention is derived from a study performed as part of general research support of the Ministry of Education, Science and Technology and the Korea Research Foundation [Task Management No .: 1345176071, Task Name: Research on system software supporting a next-generation flash memory system].
- Flash Translation Layer Flash Translation Layer
- Conventional file systems are designed based on hard disks so that the read / write costs are the same, and data can be overwritten in place. Flash memory-based systems, however, have different costs for read / write / erase operations, cannot overwrite data in place, and have limitations in erasing flash memory before writing data to write data. Therefore, the flash translation layer uses address mapping (mapping) and mapping information management between the operating system or file system and flash memory for smooth operation when the operating system (OS) or file system accesses the flash memory based system. Performs the function of.
- OS operating system
- the FTL translates requests from logical sectors of the file system into physical pages of flash memory. If a modification has occurred in the flash memory, the FTL first writes data for the requested sector in the newly allocated block and then changes the mapping information in the mapping table. FTL also provides leveling of wear for a limited number of block erases in flash memory.
- the main mapping scheme of FTL's algorithm is page mapping, block mapping, and mixed mapping.
- Page mapping maintains the mapping of the entire flash memory area in units of pages.
- the page mapping table may be kept in memory (DRAM or SRAM), or only part of it may be cached in memory.
- Such page mapping is advantageous for data writing through a random writing method in a flash memory, but has a disadvantage of requiring a large number of mapping memories.
- the block mapping has the advantage that the size of the mapping information is small, but the disadvantage is that performance decreases due to the increase of the merge operation when frequent writes with a fixed offset value occur in repetitive requests.
- Korean Patent Publication No. 10-2012-0074707 "Storage Device Using Flash Memory and Address Mapping and Data Page Allocation Method" manages address mapping and data page allocation more effectively for a storage device using flash memory. Here's how to do it.
- the address mapping method is applied differently according to the write pattern of data, and the physical location of the flash memory is allocated differently according to each write pattern, thereby reducing the cost of garbage collection for the data area, There is an effect that can extend the life of the.
- the prior art does not solve the disadvantage that the performance of the flash memory is degraded because the page mapping table writes the addresses of all the pages, so that the size of the page mapping table is so large that a large number of read operations are performed to look up the mapping information at system boot.
- An object of the present invention is to reduce the mapping information of a write command by using the sequential information characteristic of a logical address and the size of data information.
- the present invention is to improve the flash memory-based system boot performance by reducing the time to read the boot information by storing the reduced mapping information in the memory in the FTL, such as DRAM.
- a flash memory-based page address mapping system includes a write command receiver, a shortened map information generator, an FTL memory (memory in a flash translation layer), a map information storage manager, and a read command. It may include a receiver, a searcher, a calculator, and a read performer.
- the flash memory-based page address mapping system may include a mapping information inquiry unit, a detection unit, and a mapping information management unit.
- the write command receiving unit receives a write command from a file system, and the shortening map information generating unit maps the shortened map information by using a size of data information of the write command and a start logical address of a logical address sequentially assigned to the write command.
- the FTL memory stores the reduced mapping information as an FTL mapping table, and the mapping information storage manager calculates the starting logical address, a starting physical address corresponding to the starting logical address, and a page unit based on the FTL mapping table.
- a flash memory mapping table including the size of data information of the write operation may be stored in a system area of the flash memory.
- the mapping information storage management unit may store the flash memory mapping table in a condensed state in the system area of the flash memory.
- the mapping information storage management unit compresses the flash memory mapping table into a table having mapping information for each page, and thus, the system area of the flash memory. Can also be stored in
- mapping information storage manager may store a flash memory mapping table including one-to-one page mapping information between a logical page address and a physical page address using the FTL mapping table in a system area of the flash memory.
- the read command receiver receives a read command from a file system, and the searcher searches the FTL mapping table for a starting logical address that is closest to or smaller than the logical address requested in the read command.
- the operation unit calculates a physical address corresponding to the read command by using the found start logical address and the logical address requested by the read command.
- the read performer reads data stored at the calculated physical address of the flash memory.
- the mapping information inquiry unit performs a read operation on a system area of the flash memory at boot time to inquire mapping information between the logical address and the physical address of the flash memory mapping table, and the detection unit sequentially stores the logical address based on the mapped mapping information. And detect sequential physical addresses corresponding to the sequential logical addresses.
- the mapping information management unit may include a start logical address, a start physical address corresponding to the start logical address, and a size of sequential data information using the detected sequential logical addresses and the sequential sizes of physical addresses.
- the mapping information is reduced and stored in the memory of the flash translation layer.
- the mapping information management unit determines whether the logical address and the physical address of the current item and the next item of the inquired flash memory mapping table are sequentially, and if the logical address and the physical address of the current item and the next item are sequential,
- the mapping information generated by shortening the current item and the next item into one item may be stored in a memory of a flash translation layer.
- a flash memory based page address mapping method may include receiving a write command, generating abbreviated mapping information, storing in a memory of a flash translation layer, and a system region of a flash memory. Storing in the.
- the receiving of the write command may include receiving a write command from a file system, and generating the reduced mapping information.
- the storing in the memory of the flash translation layer may include: storing a start logical address that is the reduced mapping information, a starting physical address corresponding to the starting logical address, and a data information size of the write command calculated in units of pages as an FTL mapping table. Stored in the memory of the translation layer.
- the storing in the system area of the flash memory may include a flash memory including a starting logical address, a starting physical address corresponding to the starting logical address, and a size of data information of the write operation calculated on a page basis based on an FTL mapping table. Store the mapping table in flash memory.
- a flash memory mapping table including one-to-one page mapping information between a logical page address and a physical page address may be stored in the flash memory based on an FTL mapping table.
- the flash memory-based page address mapping method according to an embodiment of the present invention, the step of receiving a read command from the file system, the starting logical address that is closest to or smaller than the logical address requested in the read command, Searching in an FTL mapping table, calculating a physical address corresponding to the read command using the searched start logical address and the logical address required in the read command, and storing data stored in the calculated physical address of the flash memory.
- the method further includes reading.
- a flash memory based page address mapping method performing a read operation on a system area of a flash memory at boot time to query mapping information between a logical address and a physical address stored in the flash memory. Detecting a sequential logical address based on the mapped mapping information, a sequential physical address corresponding to the sequential logical address, and using the detected sequential logical address and the sequential size of the physical address, a starting logical address And storing the abbreviated flash memory mapping information including the starting physical address corresponding to the starting logical address and the size of the sequential data information in the memory of the flash translation layer.
- the detecting of the sequential physical addresses may include determining whether a logical address and a physical address of a current item and a next item are sequentially by using mapping information queried from a flash memory mapping table of the flash memory, In the storing of the current item and the logical address and the physical address of the next item, the FTL mapping information obtained by shortening the current item and the next item into one item is stored in a memory of a flash translation layer.
- the mapping information of the write command can be reduced by using the sequential information characteristic of the logical address and the size of the data information.
- the present invention does not simply store the page mapping table in an FTL memory such as a DRAM, but reduces the number of read operations by storing the reduced page mapping table in a DRAM.
- mapping information can be reduced by storing short information such as logical address and mapping information in units of pages, such as 'start logical address, starting physical address, and data information size calculated in units of pages'. There is.
- the present invention has the effect of reducing the size of the page mapping table by using a fast wake-up operation.
- the present invention can improve the flash boot-based system boot performance.
- the present invention can be applied to various smart devices because it can improve the system boot performance of the flash memory.
- FIG. 1 is a diagram illustrating a schematic configuration of a flash memory based page address mapping system of the present invention.
- FIG. 2 is a diagram illustrating a schematic configuration of a flash memory based page address mapping system according to the present invention.
- FIG. 3 is a flowchart illustrating a process of managing mapping information in a flash translation layer when a write command is received according to an embodiment of the present invention.
- FIG. 4 is a flowchart illustrating a process of performing a read operation that shortens mapping information according to an embodiment of the present invention.
- FIG. 5 is a flowchart illustrating a process of shortening mapping information at boot time and storing it in a memory within a flash translation layer according to an embodiment of the present invention.
- FIG. 6 is a flowchart illustrating a process of storing mapping information from a flash translation layer to a flash memory when a write command is received according to another embodiment of the present invention.
- FIG. 7 is a flowchart illustrating a process of storing mapping information from a flash translation layer to a flash memory when a write command is received according to another embodiment of the present invention.
- a flash memory-based page address mapping system includes a write command receiver, a shortened map information generator, an FTL memory (memory in a flash translation layer), a map information storage manager, and a read command. It may include a receiver, a searcher, a calculator, and a read performer.
- the flash memory-based page address mapping system may include a mapping information inquiry unit, a detection unit, and a mapping information management unit.
- the write command receiving unit receives a write command from a file system, and the shortening map information generating unit maps the shortened map information by using a size of data information of the write command and a start logical address of a logical address sequentially assigned to the write command.
- the FTL memory stores the reduced mapping information as an FTL mapping table, and the mapping information storage manager calculates the starting logical address, a starting physical address corresponding to the starting logical address, and a page unit based on the FTL mapping table.
- a flash memory mapping table including the size of data information of the write operation may be stored in a system area of the flash memory.
- the mapping information storage management unit may store the flash memory mapping table in a condensed state in the system area of the flash memory.
- the mapping information storage management unit compresses the flash memory mapping table into a table having mapping information for each page, and thus, the system area of the flash memory. Can also be stored in
- mapping information storage manager may store a flash memory mapping table including one-to-one page mapping information between a logical page address and a physical page address using the FTL mapping table in a system area of the flash memory.
- the read command receiver receives a read command from a file system, and the searcher searches the FTL mapping table for a starting logical address that is closest to or smaller than the logical address requested in the read command.
- the operation unit calculates a physical address corresponding to the read command by using the found start logical address and the logical address requested by the read command.
- the read performer reads data stored at the calculated physical address of the flash memory.
- the mapping information inquiry unit performs a read operation on a system area of the flash memory at boot time to inquire mapping information between the logical address and the physical address of the flash memory mapping table, and the detection unit sequentially stores the logical address based on the mapped mapping information. And detect sequential physical addresses corresponding to the sequential logical addresses.
- the mapping information management unit may include a start logical address, a start physical address corresponding to the start logical address, and a size of sequential data information using the detected sequential logical addresses and the sequential sizes of physical addresses.
- the mapping information is reduced and stored in the memory of the flash translation layer.
- the mapping information management unit determines whether the logical address and the physical address of the current item and the next item of the inquired flash memory mapping table are sequentially, and if the logical address and the physical address of the current item and the next item are sequential,
- the mapping information generated by shortening the current item and the next item into one item may be stored in a memory of a flash translation layer.
- a flash memory based page address mapping method may include receiving a write command, generating abbreviated mapping information, storing in a memory of a flash translation layer, and a system region of a flash memory. Storing in the.
- the receiving of the write command may include receiving a write command from a file system, and generating the abbreviated mapping information. Create using.
- the storing in the memory of the flash translation layer may include: storing a start logical address that is the reduced mapping information, a starting physical address corresponding to the starting logical address, and a data information size of the write command calculated in units of pages as an FTL mapping table. Stored in the memory of the translation layer.
- the storing in the system area of the flash memory may include a flash memory including a starting logical address, a starting physical address corresponding to the starting logical address, and a size of data information of the write operation calculated on a page basis based on an FTL mapping table. Store the mapping table in flash memory.
- a flash memory mapping table including one-to-one page mapping information between a logical page address and a physical page address may be stored in the flash memory based on an FTL mapping table.
- the flash memory-based page address mapping method according to an embodiment of the present invention, the step of receiving a read command from the file system, the starting logical address that is closest to or smaller than the logical address requested in the read command, Searching in an FTL mapping table, calculating a physical address corresponding to the read command using the searched start logical address and the logical address required in the read command, and storing data stored in the calculated physical address of the flash memory.
- the method further includes reading.
- a flash memory based page address mapping method performing a read operation on a system area of a flash memory at boot time to query mapping information between a logical address and a physical address stored in the flash memory. Detecting a sequential logical address based on the mapped mapping information, a sequential physical address corresponding to the sequential logical address, and using the detected sequential logical address and the sequential size of the physical address, a starting logical address And storing the abbreviated flash memory mapping information including the starting physical address corresponding to the starting logical address and the size of the sequential data information in the memory of the flash translation layer.
- the detecting of the sequential physical addresses may include determining whether a logical address and a physical address of a current item and a next item are sequentially by using mapping information queried from a flash memory mapping table of the flash memory, In the storing of the current item and the logical address and the physical address of the next item, the FTL mapping information obtained by shortening the current item and the next item into one item is stored in a memory of a flash translation layer.
- Flash Translation Layer Flash Translation Layer
- the flash translation layer stores information stored in the flash memory. It contains address mapping method for efficient management. Conventional address mapping methods are classified into page mapping methods and block mapping methods.
- the information stored in the flash memory can be classified into attribute information and user information.
- the write operation instruction corresponding to the attribute information has a small size of 1, 2, 4, and 8 sectors of information, and a logical address of the attribute information. It is allocated irregularly.
- a write operation command corresponding to user information has a large size of 32, 64, and 128 sectors, and logical addresses are sequentially assigned.
- the page mapping method solves the drawback that the page mapping table increases in size by writing addresses for all pages, although flash memories have been widely researched as they use multi-channel access. Is hard to find.
- the size of the page mapping table can greatly affect performance because many read operations are performed to look up mapping information at system boot. Therefore, in the present invention, user information has a large information size and logical addresses are sequentially assigned.
- the shortened mapping information is written by writing only the starting logical address, the starting physical address, and the size of the data information.
- the page mapping table is stored in a certain area of the flash memory (system area) before the power is turned off, and when the system is booted, the page mapping table is stored in the DRAM by performing a read operation in a certain area of the flash memory (system area).
- system area the flash memory
- the mapping information stored in the system area of the flash memory is read during booting.
- FIG. 1 is a diagram illustrating a schematic configuration of a flash memory based page address mapping system of the present invention.
- the flash memory-based page address mapping system 100 includes a write command receiver 110, an abbreviated mapping information generation unit 120, an FTL memory 130, and a mapping information storage management unit 140. , The read command receiver 150, the searcher 160, the calculator 170, and the read performer 180.
- the write command receiving unit 110 receives a write command from the file system.
- the reduced mapping information generating unit 120 generates the reduced mapping information by using the data information size of the writing command received by the writing command receiving unit 110 and the starting logical address of the logical address sequentially assigned to the writing command.
- the reduced mapping information is generated using the start logical address, the start physical address corresponding to the start logical address, and the size of data information of the write command calculated in units of pages.
- the FTL memory 130 stores the reduced mapping information generated by the reduced mapping information generator 120 as an FTL mapping table.
- FTL memory 130 resides on a memory of a flash translation layer, such as DRAM.
- the FTL memory 130 is not necessarily composed of DRAM or SRAM, and any memory device capable of random access and reading / writing within a short time as compared to the flash memory may function as the FTL memory 130.
- the mapping information storage manager 140 stores a flash memory mapping table generated based on the FTL mapping table stored in the FTL memory 130.
- mapping information of the flash memory mapping table is calculated in the starting logical address, the starting physical address corresponding to the starting logical address, and the page unit when the mapping information of the shortened FTL mapping table is stored in the abbreviated form. Data size of the write operation.
- the mapping information of the flash memory mapping table includes one-to-one page mapping information between a logical page address and a physical page address when the mapping information of the abbreviated FTL mapping table is decompressed and stored in the flash memory.
- the mapping information storage management unit 140 manages the mapping information stored in the system area of the flash memory.
- the read command receiver 150 receives a read command from the file system, and the search unit 160 searches the FTL mapping table for the closest starting logical address that matches or is smaller than the logical address requested by the read command.
- the calculator 170 calculates a physical address corresponding to the read command by using the start logical address retrieved by the searcher 160 and the logical address requested by the read command receiver 150. The method of calculating the physical address will be described later in more detail.
- the read performer 180 reads data stored in the physical address calculated by the calculator 170.
- FIG. 2 is a diagram illustrating a schematic configuration of a flash memory based page address mapping system according to the present invention.
- the flash memory-based page address mapping system 100 of the present invention includes a mapping information inquiry unit 210, a detection unit 220, and a mapping information management unit 230.
- the mapping information inquiry unit 210 performs a read operation on the system area of the flash memory at boot time to inquire mapping information between the logical address and the physical address of the flash memory mapping table stored in the flash memory.
- mapping information of the flash memory mapping table is stored in the flash memory while the mapping information of the FTL mapping table is abbreviated by the mapping information storage management unit 140, a starting logical address and a starting physical address corresponding to the starting logical address are stored. , The size of the sequential data information.
- the mapping information of the flash memory mapping table may include one-to-one page mapping information between the logical address and the physical address when the mapping information of the FTL mapping table abbreviated by the mapping information storage management unit 140 is stored in the flash memory.
- the detection unit 220 detects a sequential logical address and a sequential physical address corresponding to the sequential logical addresses based on the mapping information of the flash memory mapping table queried by the mapping information inquiry unit 210.
- the mapping information manager 230 uses the sequential sizes of the sequential logical addresses and the physical addresses detected by the detector 220 to determine the starting logical address, the starting physical address corresponding to the starting logical address, and the sequential data information. More reduced mapping information, including the size, is stored in the memory of the flash translation layer.
- the reduced mapping information stored in the memory of the flash translation layer is determined using the mapping information of the flash memory mapping table queried by the detector 220 to determine whether the logical address and the physical address of the current item and the next item are sequentially.
- mapping information is generated by shortening the current item and the next item into one item.
- the mapping information manager 230 manages mapping information stored in a memory (DRAM) of a flash translation layer.
- FIG. 3 is a flowchart illustrating a process of managing mapping information in a flash translation layer when a write command is received according to an embodiment of the present invention.
- a write command is received.
- the write command receiver 110 receives a write command from a file system.
- an FTL mapping table is generated.
- the abbreviation mapping information generating unit 120 receives the size of the data information of the write command received by the write command receiving unit 110 and the start logic of the logical address sequentially assigned to the write command. Generate shortened mapping information using addresses.
- Step S330 is a step of storing in the memory of the flash translation layer.
- the reduced mapping information generated in step S320 is stored in the memory 130 of the flash translation layer as an FTL mapping table.
- the conventional page unit mapping method is (page logical page 0, physical page 0), (logical page 1, physical page 1), (logical page 2, physical page) in page units. 2), ... All 16 items are included in the page mapping table, such as (Logical Page 15, Physical Page 15).
- the present invention shortens the mapping information in the reduced mapping information generating unit 120. That is, when the information stored in the flash memory is user information (large size of information) rather than attribute information, the start logical address, the start physical address corresponding to the start logical address, and not the address of every page unit are written.
- the reduced mapping information is generated using the data information size of the write command calculated in the page unit.
- the reduced mapping information generating unit 120 may abbreviate (logical page 0, physical page 0, 16).
- One mapping information is generated (S320).
- the FTL memory 130 stores the abbreviated information, that is, (logical page 0, physical page 0, 16) (S330).
- FIG. 6 is a flowchart illustrating a process of storing mapping information from a flash translation layer to a flash memory when a write command is received according to another embodiment of the present invention.
- FIG. 7 is a flowchart illustrating a process of storing mapping information from a flash translation layer to a flash memory when a write command is received according to another embodiment of the present invention.
- the mapping information storage management unit 140 stores the flash memory mapping table generated based on the FTL mapping table stored in the FTL memory 130 in a system area of the flash memory (S340 and S350). .
- the mapping information storage management unit 140 stores the mapping information (FTL mapping table) stored in the memory 130 of the flash mapping layer in the system area of the flash memory before the operation of the flash memory is terminated, or when the power is suddenly cut off.
- the FTL mapping table may be periodically stored as a flash memory mapping table in a system area of the flash memory (S340 and S350).
- the mapping information storage manager 140 may store the FTL mapping table as a flash memory mapping table in the system area of the flash memory as the FTL mapping table is abbreviated (S340).
- the mapping information storage manager 140 generates a flash memory mapping table including one-to-one mapping information of each page by decompressing the abbreviated FTL mapping table and generates a flash memory mapping table. It may be stored in the system area of the flash memory (S350).
- the flash memory mapping table includes a starting logical address, a starting physical address corresponding to the starting logical address, and a size of data information of the write operation calculated in units of pages.
- the flash memory mapping table Contains one-to-one page mapping information between the logical page address and the physical page address.
- step S340 since the flash memory mapping table is an abbreviated format mapping table different from the conventional technology, the data structure on the flash memory may be different from the conventional technology to implement step S340.
- step S350 the mapping of the present invention is represented by focusing in the process of shortening mapping information in the flash translation layer memory 130, and the mapping table stored in the flash memory is the same as the conventional data structure. That is, the idea of the present invention is not necessarily limited to the case where the data structure on the flash memory is modified to fit the abbreviated event information, and the present invention can be applied to the case of using the flash memory map information and data structure of the existing technology.
- FIG. 4 is a diagram illustrating a process of a read operation according to an embodiment of the present invention.
- the read operation will be described based on the assumption that the FTL mapping table is stored in the memory of the flash translation layer.
- the read command receiver 150 receives a read command from a file system.
- Step S420 searches the FTL mapping table for a starting logical address that is closest to or smaller than the logical address requested in the read command received in step S410. That is, step S420 is performed by the search unit 160 based on the information stored in the FTL memory 130.
- Step S430 obtains a logical offset between the start logical address retrieved in step S420 and the logical address requested in the read command, and step S440 adds the logical offset obtained in step S430 to the start physical address corresponding to the retrieved start logical address. Calculate the physical address corresponding to. Steps S430 to S440 are performed by the calculator 170.
- operation S450 a read is performed on the physical address calculated in operation S440, which is performed by the read performer 180.
- step S410 a read command has been received from the file system as "R, LPN 0: perform logical page 0 read operation.” And reads "(logical page 0, physical page) into memory (DRAM) of the flash translation layer.” 0, 16) "is stored.
- step S420 the logical address of the item "(logical page 0, physical page 0, 16)" is searched as the closest starting logical address which is equal to or smaller than the logical address requested in the read command received in step S410.
- Step S430 obtains the logical offset between the start logical address 0 retrieved in step S420 and the logical address 0 requested in the read command, so that the logical offset (logical page 0-logical page 0) becomes "0".
- step S440 the logical address is calculated by adding the logical offset 0 to the starting physical address 0 corresponding to the found starting logical address 0, so that the calculated physical address becomes "0".
- the read performer 180 reads the physical address “0”. This completes the read operation.
- the data is reduced by using a starting logical address, a starting physical address corresponding to the starting logical address, and a size of data information of the write command calculated in units of pages, rather than storing all data. Saved the event information.
- FIG. 5 is a view showing a flow at boot in one embodiment of the present invention.
- step S520 is a step of searching for mapping information of the flash memory mapping table and detecting a sequential logical / physical address.
- the mapping information inquiry unit 210 may flash the flash memory.
- a read operation is performed on the system area of the to retrieve a flash memory mapping table which is mapping information between a logical address and a physical address stored in the flash memory.
- the detection unit 220 detects a sequential logical address and a sequential physical address corresponding to the sequential logical addresses based on the mapping information of the flash memory mapping table queried by the mapping information inquiry unit 210.
- mapping information of the flash memory mapping table is stored in the mapping information storage management unit 140 while the mapping information of the FTL is abbreviated, and thus, the starting logical address, the starting physical address corresponding to the starting logical address, and the sequential data information.
- mapping information of the FTL is uncompressed and stored in the mapping information storage management unit 140, the mapping information includes one-to-one page mapping information between the logical address and the physical address.
- the mapping information management unit 230 determines the starting logical address, the starting physical address corresponding to the starting logical address, and the size of the sequential data information using the sequential sizes of the sequential logical addresses and the physical addresses detected in step S520. Stores more shortened mapping information that includes.
- the mapping information management unit 230 exists in the memory of the flash translation layer (DRAM), and the mapping information stored in the memory of the flash translation layer becomes FTL mapping information in which the mapping information stored in the FTL memory 130 is further shortened.
- Step S530 is a logical address and a physical address of the current item (logical address i, physical address i, information size i) and the next item (logical address i + 1, physical address i + 1, information size i + 1) detected in step S520. Check that the addresses are sequential.
- step S540 shortens the current item and the next item to (logical address i, physical address i, information size i + information size i).
- Step S550 defines the information "(logical page 0, physical page 0, 32)" abbreviated in step S540 as the current item.
- operation 560 it is determined whether the next item exists. If the next item exists, the operation S530 is performed again to compare the current item with the next item. If the next item does not exist, the operation S570 is performed. Is stored in the memory of the flash translation layer. That is, in step 570 (logical page 0, physical page 0, 32) is stored in the memory of the flash translation layer.
- This process further shortens the mapping information stored in the flash memory when the logical address and the physical address are sequential, thereby storing the shortened mapping information in the memory (DRAM) of the flash translation layer. Can improve.
- step S580 flashes the current items (logical address i, physical address i, information size i), that is, (logical page 0, physical page 0, 16). Stored in the memory of the translation layer.
- Step S590 defines the next item (logical address i + 1, physical address i + 1, information size i + 1), that is, (logical pages 16, physical pages 16, 16) as the current item.
- operation 560 it is determined whether the next item exists. If the next item exists, the operation S530 is performed again to compare the current item with the next item. If the next item does not exist, the operation S570 is performed. Is stored in the memory of the flash translation layer. That is, in step 570 (logical pages 16, physical pages 16, 16) are stored in the memory of the flash translation layer.
- the flash memory-based page address mapping method may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium.
- the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
- Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
- Magneto-optical media and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
- program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
- the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
- the present invention relates to a flash memory based page-based address mapping method and system, and more particularly, to reduce the size of mapping information and the size of page mapping table by using sequential logical addresses and data information sizes.
- the present invention relates to a method and a system for improving performance when a system is booted by reducing a number.
- the method may further include: receiving a read command from the file system, and starting from or near to the logical address requested by the read command, and starting from the FTL. Retrieving from a mapping table; calculating a physical address corresponding to the read command using the retrieved starting logical address and the logical address required in the read command; and reading data stored at the calculated physical address of flash memory. Steps.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 플래시 메모리 기반의 페이지 단위 주소 사상 방법 및 시스템에 관한 것으로, 보다 상세하게는 순차적인 논리 주소와 데이터 정보의 크기를 이용해 사상 정보의 크기 및 페이지 사상 테이블의 크기를 줄임으로써 읽기 연산의 횟수를 줄여 시스템 부팅 시 성능을 향상시키기 위한 방법 및 시스템에 관한 것이다. 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 상기 파일 시스템으로부터 읽기 명령을 수신하는 단계, 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색하는 단계, 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계 및 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 단계를 포함한다.
Description
본 발명은 플래시 메모리 기반의 페이지 단위 주소 사상 방법 및 시스템에 관한 것으로, 보다 상세하게는 논리 주소와 물리 주소가 함께 순차적인 경우에, 순차적인 논리 주소와 데이터 정보의 크기를 이용해 사상 정보의 크기 및 페이지 사상 테이블의 크기를 줄임으로써 읽기 연산의 횟수를 줄여 시스템 부팅 시 성능을 향상시키기 위한 방법 및 시스템에 관한 것이다.
본 발명은 교육과학기술부 및 한국연구재단의 일반연구자지원의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 1345176071, 과제명: 차세대 플래시 메모리 시스템을 지원하는 시스템 소프트웨어에 대한 연구].
파일 시스템으로부터 낸드 플래시 메모리 기반의 시스템으로 접근하고자 하는 요청을 수행하기 위해서 파일 시스템과 플래시 메모리 사이에는 FTL(Flash Translation Layer)이라는 플래시 변환 계층이라는 것이 존재한다. 통상적인 파일 시스템은 하드 디스크 기반으로 설계되어 읽기/쓰기 비용이 동일하고, 원래의 자리에 데이터를 덮어쓸 수 있다. 그러나 플래시 메모리 기반의 시스템은 읽기/쓰기/지우기 연산의 비용이 서로 다르고 제자리에 데이터를 덮어쓸 수 없으며 데이터를 쓰기 위해서는 데이터를 쓰기 전에 플래시 메모리를 소거해야 하는 제약이 있다. 따라서 운영 체제(OS, Operating System)나 파일 시스템에서 플래시 메모리 기반 시스템에 접근하는 경우에 원활한 동작을 위하여 플래시 변환 계층이 운영 체제나 파일 시스템과 플래시 메모리 사이에서 주소 사상(매핑) 및 사상 정보 관리 등의 기능을 수행한다.
FTL은 파일 시스템의 논리 섹터로부터의 요청을 플래시 메모리의 물리 페이지로 변환시킨다. 만약 플래시 메모리에 수정사항이 발생하였을 경우, FTL은 우선 새로 할당된 블록에, 요청된 섹터에 대한 데이터를 기록하고 그 후 사상 테이블의 사상 정보를 변경한다. 그리고 FTL은 플래시 메모리의 제한된 블록 삭제 횟수에 대한 마모도 평준화를 제공한다.
FTL의 알고리즘의 주된 사상 방식은 페이지 사상, 블록 사상, 그리고 혼합 사상이 있다.
페이지 사상은 플래시 메모리 전체의 영역을 페이지 단위로 사상을 유지하며. 페이지 사상 테이블은 메모리(DRAM 혹은 SRAM)에 모두 유지할 수도 있고, 그렇지 않은 경우에는 일부만을 메모리에 캐싱할 수 있다. 이러한 페이지 사상은 플래시 메모리 내의 랜덤 쓰기 방식을 통한 데이터 쓰기에 유리하나, 많은 사상 메모리가 요구되는 단점이 있다.
블록 사상은 사상 정보의 크기가 작다는 장점이 있지만 반복적인 요청에 있어서 고정된 오프셋 값에 의한 쓰기가 빈번하게 발생할 때 병합 연산의 증가로 인하여 성능이 떨어진다는 단점이 있다.
그리고 혼합 사상은 앞선 두 사상 방식의 장단점을 잘 고려하고 있으나 페이지 사상 영역의 크기가 커질수록 랜덤 쓰기에 유연하게 대처하지만 맵 읽기나 쓰기 요청 시 혼합 영역을 탐색해야 하는 비용이 발생하고, 블록 내에서의 오프셋 검색에 있어서의 시간적 오버헤드가 크게 발생하는 단점이 있다. 상기와 같은 이유에 있어 기존의 플래시 변환 계층들은 시스템의 성능을 충분히 저하 시킬 수 있다.
이에 따라, 한국공개특허 제10-2012-0074707호 "플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법"은 플래시 메모리를 사용하는 저장장치를 위해 보다 효과적으로 주소 사상과 데이터 페이지 할당을 관리할 수 있는 방법을 제시한다.
위 선행기술은 데이터의 쓰기 패턴에 따라 주소 사상방식을 서로 다르게 적용하고 또한 플래시 메모리의 물리적 위치를 각각의 쓰기 패턴에 따라 다르게 할당함으로써 데이터 영역에 대한 쓰레기 수집과정에 발생하는 비용을 줄이고, 플래시 메모리의 수명을 연장시킬 수 있는 효과가 있다.
하지만 위 선행기술은 페이지 사상 테이블이 모든 페이지에 관한 주소를 기입하기 때문에 크기가 커서 시스템 부팅 시 사상 정보 조회를 위해 많은 읽기 연산을 수행하게 되므로 플래시 메모리의 성능이 저하 된다는 단점을 해결하지 못하고 있다.
따라서, 사상 정보의 크기 및 페이지 사상 테이블의 크기를 축약함으로써 읽기 연산의 횟수를 줄여 시스템 부팅 성능을 향상시킬 수 있도록 하는 기술이 요구된다.
본 발명은 논리 주소의 순차적인 정보 특성 및 데이터 정보의 크기를 이용하여 쓰기 명령의 사상 정보를 축약시키는 것을 목적으로 한다.
본 발명은 단순히 페이지 사상 테이블을 DRAM에 저장하는 것이 아니라, 크기를 축약시킨 페이지 사상 테이블을 DRAM에 저장함으로써 읽기 연산의 횟수를 줄이려는 것을 목적으로 한다.
또한 본 발명은 축약된 사상 정보를 DRAM 등 FTL 내의 메모리에 저장함으로써 부팅 정보를 읽는 시간을 단축하여 플래시 메모리 기반의 시스템 부팅 성능을 향상시키는 것을 목적으로 한다.
이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 시스템은 쓰기 명령 수신부, 축약 사상 정보 생성부, FTL 메모리(플래시 변환 계층 내의 메모리), 사상 정보 저장 관리부, 읽기 명령 수신부, 검색부, 연산부, 및 읽기 수행부를 포함할 수 있다.
또한 본 발명의 다른 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 시스템은 사상 정보 조회부, 검출부 및 사상 정보 관리부를 포함할 수 있다.
상기 쓰기 명령 수신부는 파일 시스템으로부터 쓰기 명령을 수신하고, 상기 축약 사상 정보 생성부는 상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성한다.
상기 FTL 메모리는 상기 축약된 사상 정보를 FTL 사상 테이블로서 저장하고, 상기 사상 정보 저장 관리부는 FTL 사상 테이블을 기반으로 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장할 수 있다. 이 때 사상 정보 저장 관리부는 플래시 메모리 사상 테이블을 축약된 상태로 플래시 메모리의 시스템 영역에 저장할 수도 있고, 반대로 플래시 메모리 사상 테이블을 페이지 각각에 대한 사상 정보를 가지는 테이블로 압축을 풀어 플래시 메모리의 시스템 영역에 저장할 수도 있다.
또한, 사상 정보 저장 관리부는 상기 FTL 사상 테이블을 이용하여 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장할 수도 있다.
상기 읽기 명령 수신부는 파일 시스템으로부터 읽기 명령을 수신하고, 상기 검색부는 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색한다. 상기 연산부는 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산한다. 상기 읽기 수행부는 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는다.
상기 사상 정보 조회부는 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리 사상 테이블의 논리 주소와 물리 주소 간의 사상 정보를 조회하고, 상기 검출부는 상기 조회된 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출한다.
상기 사상 정보 관리부는 상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 및 순차적인 데이터 정보의 크기를 포함하는 플래시 메모리의 사상 정보를 축약하여 플래시 변환 계층의 메모리에 저장한다.
이때, 사상 정보 관리부는 상기 조회된 플래시 메모리 사상 테이블의 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정한 후, 상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약함으로써 생성된 사상 정보를 플래시 변환 계층의 메모리에 저장할 수 있다.
한편, 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 쓰기 명령을 수신하는 단계, 축약된 사상 정보를 생성하는 단계, 플래시 변환 계층의 메모리에 저장하는 단계 및 플래시 메모리의 시스템 영역에 저장하는 단계를 포함한다.
상기 쓰기 명령을 수신하는 단계는 파일 시스템으로부터 쓰기 명령을 수신하고, 상기 축약된 사상 정보를 생성하는 단계는 상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 생성한다.
상기 플래시 변환 계층의 메모리에 저장하는 단계는 상기 축약된 사상 정보인 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 FTL 사상 테이블로서 플래시 변환 계층의 메모리에 저장한다.
상기 플래시 메모리의 시스템 영역에 저장하는 단계는 FTL 사상 테이블을 기반으로 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리에 저장한다.
또한 상기 플래시 메모리의 시스템 영역에 저장하는 단계는 FTL 사상 테이블을 기반으로 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리에 저장할 수도 있다.
또한 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 상기 파일 시스템으로부터 읽기 명령을 수신하는 단계, 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색하는 단계, 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계 및 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 단계를 더 포함한다.
한편 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리에 저장된 논리 주소와 물리 주소 간의 사상 정보를 조회하는 단계, 상기 조회된 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출하는 단계 및 상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 및 순차적인 데이터 정보의 크기를 포함하는 축약된 플래시 메모리 사상 정보를 플래시 변환 계층의 메모리에 저장하는 단계를 포함한다.
또한 상기 순차적인 물리 주소를 검출하는 단계는 상기 플래시 메모리의 플래시 메모리 사상 테이블에서 조회된 사상 정보를 이용해 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정하고, 상기 플래시 변환 계층의 메모리에 저장하는 단계는 상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약한 FTL 사상 정보를 플래시 변환 계층의 메모리에 저장한다.
본 발명은 논리 주소의 순차적인 정보 특성 및 데이터 정보의 크기를 이용하여 쓰기 명령의 사상 정보를 축약할 수 있는 효과가 있다.
본 발명은 단순히 페이지 사상 테이블을 DRAM과 같은 FTL 메모리에 저장하는 것이 아니라, 크기를 축약시킨 페이지 사상 테이블을 DRAM에 저장함으로써 읽기 연산의 횟수를 줄일 수 있는 효과가 있다.
본 발명은 페이지 단위의 논리 주소 및 사상 정보를 '시작 논리 주소, 시작 물리 주소 및 페이지 단위로 산정된 데이터 정보 크기'와 같이 축약한 정보를 플래시 메모리에 저장함으로써 사상 정보의 크기를 줄일 수 있는 효과가 있다.
또한 본 발명은 Fast wake-up 연산을 이용하여 페이지 사상 테이블의 크기를 축약시키는 효과가 있다. 본 발명은 플래시 메모리 기반의 시스템 부팅 성능을 향상시킬 수 있다. 또한 본 발명은 플래시 메모리의 시스템 부팅 성능을 향상시킬 수 있기 때문에 각종 스마트 디바이스에 적용할 수 있다.
도 1은 본 발명의 플래시 메모리 기반의 페이지 주소 사상 시스템의 개략적인 구성을 나타낸 도면이다.
도 2는 본 발명의 부팅 시 플래시 메모리 기반의 페이지 주소 사상 시스템의 개략적인 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예로 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 관리하는 과정을 나타낸 동작 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 사상 정보를 축약하는 읽기 연산의 수행 과정을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일 실시예로 부팅 시 사상 정보를 축약하여 플래시 변환 계층 내의 메모리에 저장하는 과정을 나타낸 동작 흐름도이다.
도 6은 본 발명의 다른 일 실시예에 따른 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 플래시 메모리로 저장하는 과정을 도시하는 동작 흐름도이다.
도 7은 본 발명의 또 다른 일 실시예에 따른 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 플래시 메모리로 저장하는 과정을 도시하는 동작 흐름도이다.
이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 시스템은 쓰기 명령 수신부, 축약 사상 정보 생성부, FTL 메모리(플래시 변환 계층 내의 메모리), 사상 정보 저장 관리부, 읽기 명령 수신부, 검색부, 연산부, 및 읽기 수행부를 포함할 수 있다.
또한 본 발명의 다른 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 시스템은 사상 정보 조회부, 검출부 및 사상 정보 관리부를 포함할 수 있다.
상기 쓰기 명령 수신부는 파일 시스템으로부터 쓰기 명령을 수신하고, 상기 축약 사상 정보 생성부는 상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성한다.
상기 FTL 메모리는 상기 축약된 사상 정보를 FTL 사상 테이블로서 저장하고, 상기 사상 정보 저장 관리부는 FTL 사상 테이블을 기반으로 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장할 수 있다. 이 때 사상 정보 저장 관리부는 플래시 메모리 사상 테이블을 축약된 상태로 플래시 메모리의 시스템 영역에 저장할 수도 있고, 반대로 플래시 메모리 사상 테이블을 페이지 각각에 대한 사상 정보를 가지는 테이블로 압축을 풀어 플래시 메모리의 시스템 영역에 저장할 수도 있다.
또한, 사상 정보 저장 관리부는 상기 FTL 사상 테이블을 이용하여 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장할 수도 있다.
상기 읽기 명령 수신부는 파일 시스템으로부터 읽기 명령을 수신하고, 상기 검색부는 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색한다. 상기 연산부는 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산한다. 상기 읽기 수행부는 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는다.
상기 사상 정보 조회부는 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리 사상 테이블의 논리 주소와 물리 주소 간의 사상 정보를 조회하고, 상기 검출부는 상기 조회된 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출한다.
상기 사상 정보 관리부는 상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 및 순차적인 데이터 정보의 크기를 포함하는 플래시 메모리의 사상 정보를 축약하여 플래시 변환 계층의 메모리에 저장한다.
이때, 사상 정보 관리부는 상기 조회된 플래시 메모리 사상 테이블의 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정한 후, 상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약함으로써 생성된 사상 정보를 플래시 변환 계층의 메모리에 저장할 수 있다.
한편, 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 쓰기 명령을 수신하는 단계, 축약된 사상 정보를 생성하는 단계, 플래시 변환 계층의 메모리에 저장하는 단계 및 플래시 메모리의 시스템 영역에 저장하는 단계를 포함한다.
상기 쓰기 명령을 수신하는 단계는 파일 시스템으로부터 쓰기 명령을 수신하고, 상기 축약된 사상 정보를 생성하는 단계는 상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 생성한다.
상기 플래시 변환 계층의 메모리에 저장하는 단계는 상기 축약된 사상 정보인 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 FTL 사상 테이블로서 플래시 변환 계층의 메모리에 저장한다.
상기 플래시 메모리의 시스템 영역에 저장하는 단계는 FTL 사상 테이블을 기반으로 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리에 저장한다.
또한 상기 플래시 메모리의 시스템 영역에 저장하는 단계는 FTL 사상 테이블을 기반으로 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 플래시 메모리 사상 테이블을 플래시 메모리에 저장할 수도 있다.
또한 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 상기 파일 시스템으로부터 읽기 명령을 수신하는 단계, 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색하는 단계, 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계 및 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 단계를 더 포함한다.
한편 본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리에 저장된 논리 주소와 물리 주소 간의 사상 정보를 조회하는 단계, 상기 조회된 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출하는 단계 및 상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 및 순차적인 데이터 정보의 크기를 포함하는 축약된 플래시 메모리 사상 정보를 플래시 변환 계층의 메모리에 저장하는 단계를 포함한다.
또한 상기 순차적인 물리 주소를 검출하는 단계는 상기 플래시 메모리의 플래시 메모리 사상 테이블에서 조회된 사상 정보를 이용해 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정하고, 상기 플래시 변환 계층의 메모리에 저장하는 단계는 상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약한 FTL 사상 정보를 플래시 변환 계층의 메모리에 저장한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다. 또한 본 발명의 실시 예들을 설명함에 있어 구체적인 수치는 실시예에 불과하다.
파일 시스템으로부터 낸드 플래시 메모리 기반의 시스템에 접근하기 위한 요청을 수행하기 위해 플래시 메모리와 파일 시스템 사이에는 FTL(Flash Translation Layer)이라는 플래시 변환 계층이 존재하며, 플래시 변환 계층은 플래시 메모리에 저장하는 정보를 효율적으로 관리하기 위해 주소 사상 방법을 내포하고 있다. 기존 주소 사상 방법은 페이지 사상 방법과 블록 사상 방법으로 분류된다.
플래시 메모리에 저장되는 정보는 속성 정보와 사용자 정보로 구별될 수 있는데, 속성 정보에 해당되는 쓰기 연산 명령은 정보의 크기가 1, 2, 4, 8개의 섹터로써 매우 작고, 속성 정보의 논리 주소가 불규칙적으로 할당된다. 반면, 사용자 정보에 해당되는 쓰기 연산 명령은 정보의 크기가 32, 64, 128개의 섹터로 매우 크고, 논리 주소가 순차적으로 할당된다.
한편, 페이지 사상 방법은 최근 플래시 메모리들이 다중 채널 엑세스(multi-channel access)를 사용함에 따라 널리 연구되고 있음에도 불구하고 페이지 사상 테이블이 모든 페이지에 관한 주소를 기입하여 크기가 커진다는 단점을 해결하는 기술은 찾아보기 힘들다.
따라서 페이지 사상 테이블의 크기는 시스템 부팅 시 사상 정보 조회를 위해 많은 읽기 연산을 수행하기 때문에 성능에 큰 영향을 줄 수 있으므로, 본 발명에서는 사용자 정보가 정보의 크기가 크고 논리 주소가 순차적으로 할당된다는 점을 이용함으로써, 기존 페이지 주소 사상과 같이 해당되는 페이지 사상 정보를 모두 기입하는 것이 아니라 시작 논리 주소, 시작 물리 주소 및 데이터 정보 크기만을 기입한 축약된 사상 정보를 생성한다. 좀 더 자세한 설명은 이후에 도면을 참조하여 설명하기로 한다.
또한, 일반적으로 페이지 사상 테이블은 전원이 꺼지기 전에 플래시 메모리 일정 영역(시스템 영역)에 저장되었다가 시스템이 부팅되면 플래시 메모리의 일정 영역(시스템 영역)에 읽기 연산을 수행하여 페이지 사상 테이블을 DRAM에 저장하는데, 본 발명은 파일 시스템으로부터 쓰기 명령을 수신한 후, 사상 정보의 크기를 줄인 FTL 사상 테이블을 생성하여 플래시 메모리의 시스템 영역에 저장하고, 부팅 시 플래시 메모리의 시스템 영역에 저장된 사상 정보를 읽어들인 후, 저장된 사상 정보 기반으로 더 축약한 사상 정보를 플래시 변환 계층의 메모리에 저장하는 방법 및 시스템을 기술한다.
도 1은 본 발명의 플래시 메모리 기반의 페이지 주소 사상 시스템의 개략적인 구성을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 플래시 메모리 기반의 페이지 주소 사상 시스템(100)은 쓰기 명령 수신부(110), 축약 사상 정보 생성부(120), FTL 메모리(130), 사상 정보 저장 관리부(140), 읽기 명령 수신부(150), 검색부(160), 연산부(170) 및 읽기 수행부(180)을 포함한다.
쓰기 명령 수신부(110)는 파일 시스템으로부터 쓰기 명령을 수신한다.
축약 사상 정보 생성부(120)는 쓰기 명령 수신부(110)에서 수신한 쓰기 명령의 데이터 정보 크기와 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성한다. 축약된 사상 정보는 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 이용하여 생성한다.
FTL 메모리(130)는 축약 사상 정보 생성부(120)에서 생성한 축약된 사상 정보를 FTL 사상 테이블로서 저장한다. FTL 메모리(130)는 DRAM과 같은 플래시 변환 계층의 메모리 상에 존재한다. 물론 FTL 메모리(130)가 반드시 DRAM이나 SRAM으로 구성되는 것만은 아니고, 랜덤 액세스가 가능하고 플래시 메모리에 비하여 빠른 시간 내에 읽기/쓰기가 가능한 메모리 장치라면 FTL 메모리(130)로서 기능할 수 있다.
사상 정보 저장 관리부(140)는 FTL 메모리(130)에 저장된 FTL 사상 테이블을 기반으로 생성된 플래시 메모리 사상 테이블을 저장한다.
이때, 플래시 메모리 사상 테이블의 사상 정보는 축약된 FTL 사상 테이블의 사상 정보를 축약된 채 그대로 플래시 메모리에 저장한 경우, 상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하고 있다.
또는 플래시 메모리 사상 테이블의 사상 정보는 축약된 FTL 사상 테이블의 사상 정보를 풀어서 플래시 메모리에 저장한 경우, 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하고 있다. 사상 정보 저장 관리부(140)는 플래시 메모리의 시스템 영역에 저장되는 사상 정보를 관리한다.
읽기 명령 수신부(150)는 파일 시스템으로부터 읽기 명령을 수신하고, 검색부(160)는 FTL 사상 테이블에서 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 검색한다.
연산부(170)는 검색부(160)에서 검색된 시작 논리 주소와 읽기 명령 수신부(150)에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산한다. 상기 물리 주소를 계산하는 방법은 추후에 더 자세히 설명하기로 한다.
읽기 수행부(180)는 연산부(170)에서 계산된 물리 주소에 저장된 데이터에 읽기를 수행한다.
도 2는 본 발명의 부팅 시 플래시 메모리 기반의 페이지 주소 사상 시스템의 개략적인 구성을 나타낸 도면이다.
도 2를 참조하면, 부팅 시 본 발명의 플래시 메모리 기반의 페이지 주소 사상 시스템(100)은 사상 정보 조회부(210), 검출부(220) 및 사상 정보 관리부(230)를 포함한다.
사상 정보 조회부(210)는 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리에 저장된 플래시 메모리 사상 테이블의 논리 주소와 물리 주소 간의 사상 정보를 조회한다.
이때, 플래시 메모리 사상 테이블의 사상 정보는 사상 정보 저장 관리부(140)에서 FTL 사상 테이블의 사상 정보를 축약된 채 그대로 플래시 메모리에 저장한 경우, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 순차적인 데이터 정보의 크기를 포함한다.
또는 플래시 메모리 사상 테이블의 사상 정보는 사상 정보 저장 관리부(140)에서 축약된 FTL 사상 테이블의 사상 정보를 풀어서 플래시 메모리에 저장한 경우, 상기 논리 주소 및 상기 물리 주소 간의 일대일 페이지 사상 정보를 포함한다.
검출부(220)는 사상 정보 조회부(210)에서 조회된 플래시 메모리 사상 테이블의사상 정보를 기반으로 순차인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출한다.
사상 정보 관리부(230)는 검출부(220)에서 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 및 순차적인 데이터 정보의 크기를 포함하는 더 축약된 사상 정보를 플래시 변환 계층의 메모리에 저장한다.
이때 플래시 변환 계층의 메모리에 저장되는 축약된 사상 정보는 검출부(220)에서 조회된 플래시 메모리 사상 테이블의 사상 정보를 이용해 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정하고, 상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적일 경우, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약하여 생성된 사상 정보이다. 사상 정보 관리부(230)는 플래시 변환 계층의 메모리(DRAM)에 저장되는 사상 정보를 관리한다.
이상으로 도 1 및 도 2를 참조하여 본 발명의 시스템에 대해 간단히 설명 하였고, 이하 설명부터는 단계별로 좀 더 상세히 설명하기로 한다.
도 3은 본 발명의 일 실시예로 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 관리하는 과정을 나타낸 동작 흐름도이다.
단계 S310은 쓰기 명령을 수신하는 단계로, 도 1을 함께 참조하면 쓰기 명령 수신부(110)가 파일 시스템으로부터 쓰기 명령을 수신한다.
단계 S320은 FTL 사상 테이블을 생성하는 단계로, 축약 사상 정보 생성부(120)가 쓰기 명령 수신부(110)에서 수신한 쓰기 명령의 데이터 정보의 크기와 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성한다.
단계 S330은 플래시 변환 계층의 메모리에 저장하는 단계로, 단계S320에서 생성된 축약 사상 정보를 FTL 사상 테이블로서 플래시 변환 계층의 메모리(130)에 저장한다.
예를 들면, 추상적으로 파일 시스템에서 "W, LSN 0, 128: 시작 논리 섹터 0에서 128개의 섹터를 쓰시오."라는 명령이 수행되었다고 가정하자. 하나의 페이지가 8개의 섹터로 구성되어 있다고 가정하면, 기존 페이지 단위 사상 방법은 페이지 단위로 (논리 페이지 0, 물리 페이지 0), (논리 페이지 1, 물리 페이지 1), (논리 페이지 2, 물리 페이지 2), … , (논리 페이지 15, 물리 페이지 15)와 같이 16개의 항목을 모두 페이지 사상 테이블에 포함시킨다.
이러한 기존 페이지 사상 방법은 페이지 사상 테이블의 크기를 매우 크게 만들기 때문에, 시스템 부팅 시 성능을 저하시키는 요인이 된다.
본 발명은 축약 사상 정보 생성부(120)에서 사상 정보를 축약한다. 즉, 플래시 메모리에 저장되는 정보가 속성 정보가 아닌 사용자 정보(정보의 크기가 큼)일 경우, 모든 페이지 단위의 주소를 기입하는 것이 아니라 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 이용하여 축약된 사상 정보를 생성한다.
다시 말해, 쓰기 명령 수신부(110)에서 파일 시스템으로부터 "W, LSN 0, 128"을 수신하면(S310), 축약 사상 정보 생성부(120)는 (논리 페이지 0, 물리 페이지 0, 16)로 축약한 사상 정보를 생성한다(S320). FTL 메모리(130)는 축약된 정보, 즉 (논리 페이지 0, 물리 페이지 0, 16)를 저장한다(S330).
도 6은 본 발명의 다른 일 실시예에 따른 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 플래시 메모리로 저장하는 과정을 도시하는 동작 흐름도이다.
도 7은 본 발명의 또 다른 일 실시예에 따른 쓰기 명령이 수신되었을 때 사상 정보를 플래시 변환 계층에서 플래시 메모리로 저장하는 과정을 도시하는 동작 흐름도이다.
도 6과 도 7을 참조하면, 사상 정보 저장 관리부(140)가 FTL 메모리(130)에 저장된 FTL 사상 테이블을 기반으로 생성된 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장한다(S340, S350). 사상 정보 저장 관리부(140)는 플래시 메모리의 동작이 종료되기 전에 플래시 사상 계층의 메모리(130)에 저장된 사상 정보(FTL 사상 테이블)를 플래시 메모리의 시스템 영역에 저장하거나, 전원이 갑자기 차단되는 경우 데이터 손실을 방지하기 위해 주기적으로 FTL 사상 테이블을 플래시 메모리 사상 테이블로서 플래시 메모리의 시스템 영역에 저장할 수 있다(S340, S350).
도 6을 참조하면 본 발명의 일 실시예에서 사상 정보 저장 관리부(140)는 FTL 사상 테이블이 축약된 채 그대로 FTL 사상 테이블을 플래시 메모리 사상 테이블로서 플래시 메모리의 시스템 영역에 저장할 수 있다(S340). 또한 도 7을 참조하면 본 발명의 다른 실시예에서는 사상 정보 저장 관리부(140)는 축약된 FTL 사상 테이블을 풀어서 페이지 각각의 일대일 사상 정보를 포함하는 플래시 메모리 사상 테이블을 생성하고, 플래시 메모리 사상 테이블을 플래시 메모리의 시스템 영역에 저장할 수 있다(S350).
단계 S340의 경우 플래시 메모리 사상 테이블은 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하고 있으며, 단계 S350의 경우에는 플래시 메모리 사상 테이블은 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하고 있다.
단계 S340의 경우에는 플래시 메모리 사상 테이블은 종래의 기술과는 다른, 축약된 포맷의 사상 테이블이므로, 단계 S340을 구현하기 위해서는 플래시 메모리 상의 데이터 구조가 종래의 기술과도 달라질 수 있다. 다만 단계 S350의 경우에는 본 발명의 사상은 플래시 변환 계층 메모리(130)에서 사상 정보를 축약하는 과정에 포커싱되어 표현되고, 플래시 메모리에 저장되는 사상 테이블은 종래의 데이터 구조와 동일하다. 즉, 본 발명의 사상은 반드시 플래시 메모리 상의 데이터 구조가 축약된 사상 정보에 걸맞게 변형된 경우에만 미치지 않으며, 기존 기술의 플래시 메모리 사상 정보 및 데이터 구조를 사용하는 경우에도 본 발명을 적용할 수 있다.
도 4는 본 발명의 일 실시 예로 읽기 연산의 과정을 나타낸 도면이다. 도 4의 실시예에서는 읽기 연산은 플래시 변환 계층의 메모리에 FTL 사상 테이블이 저장되어 있다는 전제 하에서 각 단계를 설명한다.
정보의 크기가 큰 사용자 정보는 논리 주소가 순차적으로 진행되기 때문에 플래시 메모리에 저장되는 물리 주소도 순차적으로 저장된다. 따라서 오프셋에 따라 물리 페이지를 조회하면 된다.
단계S410은 읽기 명령 수신부(150)에서 파일 시스템으로부터 읽기 명령을 수신한다.
단계S420은 단계S410에서 수신한 읽기 명령어에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 FTL 사상 테이블에서 검색한다. 즉, 단계S420은 FTL 메모리(130)에 저장된 정보를 기반으로 검색부(160)에서 수행된다.
단계S430은 단계S420에서 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소 간의 논리 오프셋을 구하고, 단계S440은 검색된 시작 논리 주소에 대응하는 시작 물리 주소에 단계S430에서 구한 논리 오프셋을 더하여 상기 읽기 명령에 대응하는 물리 주소를 계산한다. 단계S430 내지 단계S440은 연산부(170)에서 수행된다.
단계S450은 단계S440에서 계산된 물리 주소에 대해 읽기를 수행하며, 이는 읽기 수행부(180)에서 이루어진다.
예를 들어, 단계S410에서 파일 시스템으로부터 "R, LPN 0: 논리 페이지 0 읽기 연산을 수행하시오."라고 읽기 명령어가 수신되었고, 플래시 변환 계층의 메모리(DRAM)에 "(논리 페이지 0, 물리 페이지 0, 16)"가 저장되어 있다고 가정하자.
단계S420은 단계S410에서 수신한 읽기 명령어에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소로 "(논리 페이지 0, 물리 페이지 0, 16)" 항목의 논리 주소가 검색된다.
단계S430은 단계S420에서 검색된 시작 논리 주소(0)와 읽기 명령에서 요구된 논리 주소(0) 간의 논리 오프셋을 구하므로, 논리 오프셋(논리 페이지 0 - 논리 페이지 0)은 "0"이 된다.
단계S440은 검색된 시작 논리 주소(0)에 대응하는 시작 물리 주소(0)에 논리오프셋(0)을 더하여 물리 주소를 계산하므로, 계산된 물리 주소는 "0"이 된다.
따라서 단계S450은 읽기 수행부(180)에서 물리 주소 "0"에 대해 읽기를 수행한다. 이로써 읽기 연산은 종료된다.
지금까지는 FTL 사상 테이블의 크기를 축약하기 위해서 모든 데이터를 저장하는 것이 아닌 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 이용하여 축약된 사상 정보를 저장했다.
이하 설명은 본 발명의 시스템 부팅 성능을 향상시키기 위해 FTL 사상 테이블의 크기를 더 축약하는 기술을 제시하며, 본 명세서에서는 이와 같은 연산을 Fast wake-up 연산이라 명명하기로 한다.
도 5는 본 발명의 일 실시예로 부팅 시 흐름을 나타낸 도면이다.
도 5를 참조하면, 단계S520은 플래시 메모리 사상 테이블의 사상 정보 조회 및 순차적인 논리/물리 주소를 검출하는 단계로, 시스템의 부팅이 감지(단계S510)되면 사상 정보 조회부(210)에서 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 플래시 메모리에 저장된 논리 주소와 물리 주소 간의 사상 정보인 플래시 메모리 사상 테이블을 조회한다. 그리고 검출부(220)에서는 상기 사상 정보 조회부(210)에서 조회된 플래시 메모리 사상 테이블의 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출한다.
이때 플래시 메모리 사상 테이블의 사상 정보는 사상 정보 저장 관리부(140)에 FTL의 사상 정보가 축약된 채 그대로 저장되어 있을 경우, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 순차적인 데이터 정보의 크기를 포함하며, 사상 정보 저장 관리부(140)에 FTL의 사상 정보가 축약 되지 않은 채 풀어서 저장되어 있을 경우, 상기 논리 주소 및 상기 물리 주소 간의 일대일 페이지 사상 정보를 포함한다.
그리고 사상 정보 관리부(230)는 단계S520에서 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 순차적인 데이터 정보의 크기를 포함하는 더 축약된 사상 정보를 저장한다. 사상 정보 관리부(230)는 플래시 변환 계층의 메모리(DRAM)에 존재하며, 이때 플래시 변환 계층의 메모리에 저장되는 사상 정보는 FTL 메모리(130)에 저장된 사상 정보가 더 축약된 FTL 사상 정보가 된다.
상기 더 축약된 FTL 사상 정보를 만드는 과정은 이하 단계를 통해 설명한다.
단계S530은 단계S520에서 검출된 현재 항목(논리 주소 i, 물리 주소 i, 정보 크기 i)과 다음 항목 (논리 주소 i+1, 물리 주소 i+1, 정보 크기 i+1)의 논리주소 및 물리 주소가 순차적인지를 확인한다.
상기 논리 주소 및 물리 주소가 순차적일 경우, 단계S540은 현재 항목과 다음 항목을 (논리 주소 i, 물리 주소 i, 정보크기 i + 정보크기 i)로 축약한다.
예를 들어, 현재 항목이 (논리 페이지 0, 물리 페이지 0, 16)이고 다음 항목이 (논리 페이지 16, 물리 페이지 16, 16)일 경우, 단계S530에서는 현재 항목은 논리 페이지를 0~15, 다음 항목은 논리 페이지를 16~31을 보유하고 있으므로 논리 주소가 순차적임을 확인할 수 있고, 마찬가지로 물리 페이지도 현재 항목 0~15, 다음 항목 16~31를 보유하고 있으므로 물리 주소가 순차적임을 확인할 수 있다. 따라서 단계S540에서는 (논리 페이지 0, 물리 페이지 0, 32(=16+16))로 축약할 수 있다.
단계S550은 단계S540에서 축약한 정보 "(논리 페이지 0, 물리 페이지 0, 32)"를 현재 항목으로 정의한다.
그리고 단계560에서 다음 항목의 존재 여부를 판단하여, 다음 항목이 존재할 경우에는 다시 단계S530을 수행하여 현재 항목과 다음 항목을 비교하고, 다음 항목이 존재하지 않을 경우에는 단계S570을 수행함으로써, 현재 항목을 플래시 변환 계층의 메모리에 저장한다. 즉, 단계570에서는 (논리 페이지 0, 물리 페이지 0, 32)가 플래시 변환 계층의 메모리에 저장된다.
이와 같은 과정은 플래시 메모리에 저장되어 있던 사상 정보를 논리 주소 및 물리 주소가 순차적일 경우 더 축약함으로써, 플래시 변환 계층의 메모리(DRAM)에 더 축약된 사상 정보를 저장할 수 있고, 이로써 시스템 부팅 시 성능을 향상시킬 수 있다.
한편, 단계S530에서 논리 주소 및 물리 주소가 순차적이지 않을 경우, 단계S580은 현재 항목인 (논리 주소 i, 물리 주소 i, 정보크기 i), 즉 (논리 페이지 0, 물리 페이지 0, 16)를 플래시 변환 계층의 메모리에 저장한다.
단계S590은 다음 항목인 (논리 주소 i+1, 물리 주소 i+1, 정보 크기 i+1), 즉 (논리 페이지 16, 물리 페이지 16, 16)를 현재 항목으로 정의한다.
그리고 단계560에서 다음 항목의 존재 여부를 판단하여, 다음 항목이 존재할 경우에는 다시 단계S530을 수행하여 현재 항목과 다음 항목을 비교하고, 다음 항목이 존재하지 않을 경우에는 단계S570을 수행함으로써, 현재 항목을 플래시 변환 계층의 메모리에 저장한다. 즉, 이때 단계570에서는 (논리 페이지 16, 물리 페이지 16, 16)가 플래시 변환 계층의 메모리에 저장된다
본 발명의 일 실시 예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
본 발명은 플래시 메모리 기반의 페이지 단위 주소 사상 방법 및 시스템에 관한 것으로, 보다 상세하게는 순차적인 논리 주소와 데이터 정보의 크기를 이용해 사상 정보의 크기 및 페이지 사상 테이블의 크기를 줄임으로써 읽기 연산의 횟수를 줄여 시스템 부팅 시 성능을 향상시키기 위한 방법 및 시스템에 관한 것이다.
본 발명의 일 실시예에 따른 플래시 메모리 기반의 페이지 주소 사상 방법은 상기 파일 시스템으로부터 읽기 명령을 수신하는 단계, 상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 FTL 사상 테이블에서 검색하는 단계, 상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계 및 플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 단계를 포함한다.
Claims (19)
- 파일 시스템으로부터 쓰기 명령을 수신하는 단계;상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성하는 단계; 및상기 축약된 사상 정보를 플래시 변환 계층의 메모리에 제1 사상 테이블로서 저장하는 단계;를 포함하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제1항에 있어서,상기 축약된 사상 정보를 저장하는 단계는상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 명령의 데이터 정보 크기를 상기 제1 사상 테이블로서 저장하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제1항에 있어서,상기 제1 사상 테이블을 기반으로 생성한 제2 사상 테이블을 플래시 메모리의 시스템 영역에 저장하는 단계;를 더 포함하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제3항에 있어서,상기 제2 사상 테이블을 저장하는 단계는상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 제2 사상 테이블을 저장하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제3항에 있어서,상기 제2 사상 테이블을 저장하는 단계는상기 제1 사상 테이블을 이용하여 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 제2 사상 테이블을 생성하여 상기 플래시 메모리의 시스템 영역에 저장하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제1항에 있어서,상기 파일 시스템으로부터 읽기 명령을 수신하는 단계;상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 제1 사상 테이블에서 검색하는 단계;상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계; 및플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 단계;를 더 포함하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제6항에 있어서,상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계는상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소 간의 논리 오프셋을 계산하는 단계; 및상기 검색된 시작 논리 주소에 대응하는 시작 물리 주소에 상기 논리 오프셋을 더하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 단계;를 포함하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 논리 주소와 물리 주소 간의 제1 사상 정보를 조회하는 단계;상기 조회된 제1 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출하는 단계; 및상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 순차적인 데이터 정보의 크기를 포함하는 제2 사상 정보를 플래시 변환 계층의 메모리에 저장하는 단계;를 포함하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제8항에 있어서,상기 순차적인 논리 주소와 상기 순차적인 물리 주소를 검출하는 단계는상기 조회된 제1 사상 정보의 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정하고,상기 제2 사상 정보를 저장하는 단계는상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약하여 축약된 제2 사상 정보를 생성하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제8항에 있어서,상기 제1 사상 정보는시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소, 순차적인 데이터 정보의 크기를 포함하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제8항에 있어서,상기 제1 사상 정보는상기 논리 주소 및 상기 물리 주소 간의 일대일 페이지 사상 정보를 포함하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 방법.
- 제1항 내지 제11항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
- 파일 시스템으로부터 쓰기 명령을 수신하는 쓰기 명령 수신부;상기 쓰기 명령의 데이터 정보의 크기와 상기 쓰기 명령에 순차적으로 할당된 논리 주소의 시작 논리 주소를 이용하여 축약된 사상 정보를 생성하는 축약 사상 정보 생성부; 및상기 축약된 사상 정보를 제1 사상 테이블로서 저장하는 플래시 변환 계층의 메모리;를 포함하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 제13항에 있어서,상기 제1 사상 테이블을 기반으로 생성한 제2 사상 테이블을 플래시 메모리의 시스템 영역에 저장하는 사상 정보 저장 관리부;를 더 포함하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 제14항에 있어서,상기 사상 정보 저장 관리부는상기 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 페이지 단위로 산정된 상기 쓰기 연산의 데이터 정보 크기를 포함하는 제2 사상 테이블을 저장하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 제14항에 있어서,상기 사상 정보 저장 관리부는상기 제1 사상 테이블을 이용하여 논리 페이지 주소 및 물리 페이지 주소 간의 일대일 페이지 사상 정보를 포함하는 제2 사상 테이블을 생성하여 상기 플래시 메모리의 시스템 영역에 저장하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 제13항에 있어서,상기 파일 시스템으로부터 읽기 명령을 수신하는 읽기 명령 수신부;상기 읽기 명령에서 요구된 논리 주소와 일치하거나 또는 작으면서 가장 근접한 시작 논리 주소를 상기 제1 사상 테이블에서 검색하는 검색부;상기 검색된 시작 논리 주소와 상기 읽기 명령에서 요구된 논리 주소를 이용하여 상기 읽기 명령에 대응하는 물리 주소를 계산하는 연산부; 및플래시 메모리의 상기 계산된 물리 주소에 저장된 데이터를 읽는 읽기 수행부;를 더 포함하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 부팅 시 플래시 메모리의 시스템 영역에 읽기 연산을 수행하여 논리 주소와 물리 주소 간의 제1 사상 정보를 조회하는 사상 정보 조회부;상기 조회된 제1 사상 정보를 기반으로 순차적인 논리 주소와, 상기 순차적인 논리 주소에 대응하는 순차적인 물리 주소를 검출하는 검출부; 및상기 검출된 순차적인 논리 주소 및 물리 주소의 순차적인 크기를 이용하여, 시작 논리 주소, 상기 시작 논리 주소에 대응하는 시작 물리 주소 및 순차적인 데이터 정보의 크기를 포함하는 제2 사상 정보를 플래시 변환 계층의 메모리에 저장하는 사상 정보 관리부;를 포함하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
- 제18항에 있어서,상기 검출부는상기 조회된 제1 사상 정보의 현재 항목과 다음 항목의 논리 주소 및 물리 주소가 순차적인지 여부를 판정하고,상기 사상 정보 관리부는상기 현재 항목과 상기 다음 항목의 논리 주소 및 물리 주소가 순차적이면, 상기 현재 항목과 상기 다음 항목을 하나의 항목으로 축약하여 축약된 제2 사상 정보를 생성하는 것을 특징으로 하는 플래시 메모리 기반의 페이지 주소 사상 시스템.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/779,954 US9830260B2 (en) | 2013-03-25 | 2013-12-31 | Method for mapping page address based on flash memory and system therefor |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2013-0031375 | 2013-03-25 | ||
| KR1020130031375A KR101453313B1 (ko) | 2013-03-25 | 2013-03-25 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2014157817A1 true WO2014157817A1 (ko) | 2014-10-02 |
Family
ID=51624741
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/KR2013/012429 Ceased WO2014157817A1 (ko) | 2013-03-25 | 2013-12-31 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US9830260B2 (ko) |
| KR (1) | KR101453313B1 (ko) |
| WO (1) | WO2014157817A1 (ko) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106991114A (zh) * | 2015-12-17 | 2017-07-28 | 罗伯特·博世有限公司 | 用于管理控制设备的非易失性存储器的方法和装置 |
| CN111858395A (zh) * | 2020-06-30 | 2020-10-30 | 维沃移动通信有限公司 | 数据管理方法及装置 |
| CN113076267A (zh) * | 2021-04-29 | 2021-07-06 | 华侨大学 | 一种基于热点汇集的地址转换方法和数据存储装置 |
| CN115114182A (zh) * | 2022-06-28 | 2022-09-27 | 苏州浪潮智能科技有限公司 | 提高垃圾回收精准度的方法、系统、终端及存储介质 |
| CN119938548A (zh) * | 2024-12-31 | 2025-05-06 | 珠海妙存科技有限公司 | 存储器件的逻辑映射信息重建方法及控制器、设备、介质 |
Families Citing this family (29)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10840442B2 (en) | 2015-05-22 | 2020-11-17 | Crossbar, Inc. | Non-stoichiometric resistive switching memory device and fabrication methods |
| KR20170012629A (ko) | 2015-07-21 | 2017-02-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
| US10248333B1 (en) | 2017-02-07 | 2019-04-02 | Crossbar, Inc. | Write distribution techniques for two-terminal memory wear leveling |
| US10409714B1 (en) * | 2017-02-09 | 2019-09-10 | Crossbar, Inc. | Logical to physical translation for two-terminal memory |
| CN107015764B (zh) * | 2017-03-17 | 2020-03-27 | 深圳市江波龙电子股份有限公司 | Nand flash的数据处理方法、装置和一种Nand flash |
| WO2018232089A1 (en) * | 2017-06-14 | 2018-12-20 | Burlywood, LLC | Extent-based data location table management |
| CN107391393A (zh) * | 2017-07-28 | 2017-11-24 | 郑州云海信息技术有限公司 | 一种ftl映射表的统计方法及装置 |
| CN107291405B (zh) * | 2017-08-17 | 2020-05-26 | 北京中电华大电子设计有限责任公司 | 一种NorFlash的数据管理方法与装置 |
| KR20190083051A (ko) | 2018-01-03 | 2019-07-11 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
| KR102685015B1 (ko) | 2018-04-24 | 2024-07-16 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
| CN109491927B (zh) * | 2018-11-06 | 2023-02-03 | 镕铭微电子(济南)有限公司 | 数据存储、读取方法、装置及电子设备 |
| KR102818164B1 (ko) * | 2019-04-01 | 2025-06-10 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
| US11093170B2 (en) * | 2019-04-02 | 2021-08-17 | EMC IP Holding Company LLC | Dataset splitting based on workload footprint analysis |
| US11068204B2 (en) * | 2019-05-22 | 2021-07-20 | Macronix International Co., Ltd. | Memory device with multiple physical spaces, multiple non-volatile memory arrays, multiple main data, multiple metadata of multiple types of commands, and access method thereof |
| CN110309081B (zh) * | 2019-06-03 | 2022-11-01 | 华侨大学 | 基于压缩存储和地址映射表项的ftl读写数据页的方法 |
| US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
| US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
| US11282567B2 (en) * | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
| US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
| WO2023028848A1 (zh) | 2021-08-31 | 2023-03-09 | 长江存储科技有限责任公司 | 加载逻辑到物理映射表到存储器控制器的缓存 |
| JP7749497B2 (ja) * | 2022-03-15 | 2025-10-06 | キオクシア株式会社 | メモリシステムおよび方法 |
| CN116795738A (zh) * | 2022-03-15 | 2023-09-22 | 联芸科技(杭州)股份有限公司 | 映射表数据的压缩方法、地址查找方法和存储器 |
| US11940926B2 (en) | 2022-05-13 | 2024-03-26 | Micron Technology, Inc. | Creating high density logical to physical mapping |
| CN114968120B (zh) * | 2022-06-01 | 2023-06-06 | 上海佳勒电子有限公司 | 一种提高单片机flash存储次数的数据处理方法及系统 |
| CN116010298B (zh) * | 2023-03-24 | 2023-09-22 | 温州市特种设备检测科学研究院(温州市特种设备应急处置中心) | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
| CN117370222A (zh) * | 2023-12-08 | 2024-01-09 | 成都佰维存储科技有限公司 | 存储映射方法、装置、计算机可读存储介质及电子设备 |
| KR20250117996A (ko) | 2024-01-29 | 2025-08-05 | 삼성전자주식회사 | 스토리지 시스템 및 그의 동작 방법 |
| CN118760629B (zh) * | 2024-09-06 | 2024-12-17 | 珠海妙存科技有限公司 | 地址映射的处理方法、装置、电子设备及存储介质 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20030095820A (ko) * | 2002-06-14 | 2003-12-24 | 주식회사 포인칩스 | 메모리 억세스 제어장치 및 방법 |
| KR20120037218A (ko) * | 2010-10-11 | 2012-04-19 | 성균관대학교산학협력단 | Ssd 장치의 매핑 테이블 관리 방법 |
| KR20120074707A (ko) * | 2010-12-28 | 2012-07-06 | 한양대학교 산학협력단 | 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법 |
Family Cites Families (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
| US8019925B1 (en) * | 2004-05-06 | 2011-09-13 | Seagate Technology Llc | Methods and structure for dynamically mapped mass storage device |
| KR100965051B1 (ko) | 2008-10-01 | 2010-06-21 | 서울시립대학교 산학협력단 | 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 |
| KR20100055565A (ko) * | 2008-11-18 | 2010-05-27 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
| US8819385B2 (en) * | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
| US8364931B2 (en) | 2009-06-29 | 2013-01-29 | Mediatek Inc. | Memory system and mapping methods using a random write page mapping table |
| US20120278560A1 (en) * | 2009-10-04 | 2012-11-01 | Infinidat Ltd. | Pre-fetching in a storage system that maintains a mapping tree |
| KR101191650B1 (ko) | 2010-10-04 | 2012-10-17 | 한국과학기술원 | 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법 |
| US20120110239A1 (en) * | 2010-10-27 | 2012-05-03 | Seagate Technology Llc | Causing Related Data to be Written Together to Non-Volatile, Solid State Memory |
| KR101257691B1 (ko) | 2011-08-12 | 2013-04-24 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
| KR101319589B1 (ko) | 2011-08-12 | 2013-10-16 | 아주대학교산학협력단 | 솔리드 스테이트 드라이브의 쓰기 데이터 분별 방법 및 그 컨트롤러 |
| KR101374065B1 (ko) | 2012-05-23 | 2014-03-13 | 아주대학교산학협력단 | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 |
| US9086820B2 (en) * | 2012-12-10 | 2015-07-21 | Infinidat Ltd. | System and methods for managing storage space allocation |
| KR102025180B1 (ko) * | 2013-08-08 | 2019-09-26 | 삼성전자주식회사 | 스토리지 시스템 및 그것의 쓰기 방법 |
| US9465543B2 (en) * | 2014-01-18 | 2016-10-11 | International Business Machines Corporation | Fine-grained data reorganization in tiered storage architectures |
-
2013
- 2013-03-25 KR KR1020130031375A patent/KR101453313B1/ko active Active
- 2013-12-31 WO PCT/KR2013/012429 patent/WO2014157817A1/ko not_active Ceased
- 2013-12-31 US US14/779,954 patent/US9830260B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR20030095820A (ko) * | 2002-06-14 | 2003-12-24 | 주식회사 포인칩스 | 메모리 억세스 제어장치 및 방법 |
| KR20120037218A (ko) * | 2010-10-11 | 2012-04-19 | 성균관대학교산학협력단 | Ssd 장치의 매핑 테이블 관리 방법 |
| KR20120074707A (ko) * | 2010-12-28 | 2012-07-06 | 한양대학교 산학협력단 | 플래시 메모리를 사용하는 저장장치 및 주소 사상과 데이터 페이지 할당 방법 |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106991114A (zh) * | 2015-12-17 | 2017-07-28 | 罗伯特·博世有限公司 | 用于管理控制设备的非易失性存储器的方法和装置 |
| CN111858395A (zh) * | 2020-06-30 | 2020-10-30 | 维沃移动通信有限公司 | 数据管理方法及装置 |
| CN111858395B (zh) * | 2020-06-30 | 2024-03-19 | 维沃移动通信有限公司 | 数据管理方法及装置 |
| CN113076267A (zh) * | 2021-04-29 | 2021-07-06 | 华侨大学 | 一种基于热点汇集的地址转换方法和数据存储装置 |
| CN113076267B (zh) * | 2021-04-29 | 2023-05-26 | 华侨大学 | 一种基于热点汇集的地址转换方法和数据存储装置 |
| CN115114182A (zh) * | 2022-06-28 | 2022-09-27 | 苏州浪潮智能科技有限公司 | 提高垃圾回收精准度的方法、系统、终端及存储介质 |
| CN119938548A (zh) * | 2024-12-31 | 2025-05-06 | 珠海妙存科技有限公司 | 存储器件的逻辑映射信息重建方法及控制器、设备、介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101453313B1 (ko) | 2014-10-22 |
| KR20140116617A (ko) | 2014-10-06 |
| US20160048448A1 (en) | 2016-02-18 |
| US9830260B2 (en) | 2017-11-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2014157817A1 (ko) | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 | |
| WO2013042880A2 (ko) | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 | |
| 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 | |
| CN101107593B (zh) | 支持虚拟机环境中的地址转换的方法及装置 | |
| US8095723B2 (en) | Log-based flash translation layer and operating method thereof | |
| JP4832521B2 (ja) | フラッシュメモリメディアにおけるデータ管理方法 | |
| RU2427892C2 (ru) | Способ и устройство для установки политики кэширования в процессоре | |
| WO2013024952A1 (ko) | 메모리 컨트롤러 및 이의 데이터 관리방법 | |
| CN108804350A (zh) | 一种内存访问方法及计算机系统 | |
| US20080195801A1 (en) | Method for operating buffer cache of storage device including flash memory | |
| JP2004318940A (ja) | 記憶装置 | |
| CN108132890B (zh) | 存储芯片的垃圾回收方法、装置、设备及存储介质 | |
| JPH10228419A (ja) | 様々なデフォルト・アドレス変換属性を事前ロードする方法および装置 | |
| JPH10133950A (ja) | ページテーブル更新方法および装置 | |
| CN102713826A (zh) | 经由位图的树表示分配文件存储的方法和设备 | |
| CN104102591A (zh) | 计算机子系统及在其中实现闪存转换层的方法 | |
| WO2013176376A1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
| WO2014185652A1 (ko) | 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치 | |
| US9535796B2 (en) | Method, apparatus and computer for data operation | |
| WO2016204529A1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 | |
| KR20220105612A (ko) | 해시 기반의 키 밸류에 관한 블록 변환 방법 및 시스템 | |
| JP2016085677A (ja) | メモリ管理方法、メモリ管理プログラム及び情報処理装置 | |
| US20100005265A1 (en) | Method for isolating objects in memory region | |
| JP2007220107A (ja) | 不揮発性メモリのマッピング情報管理装置及び方法 | |
| WO2017026740A1 (ko) | 전자 장치 및 이의 데이터 압축 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13879903 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 14779954 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 13879903 Country of ref document: EP Kind code of ref document: A1 |