WO2013069859A1 - 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 - Google Patents

소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 Download PDF

Info

Publication number
WO2013069859A1
WO2013069859A1 PCT/KR2012/004568 KR2012004568W WO2013069859A1 WO 2013069859 A1 WO2013069859 A1 WO 2013069859A1 KR 2012004568 W KR2012004568 W KR 2012004568W WO 2013069859 A1 WO2013069859 A1 WO 2013069859A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
physical address
flash memory
entry
erase target
Prior art date
Application number
PCT/KR2012/004568
Other languages
English (en)
French (fr)
Inventor
송용호
정상혁
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of WO2013069859A1 publication Critical patent/WO2013069859A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a flash memory controller and method for storing a mapping table of an erase target block, and more particularly, to a mapping used to determine an erase target block while moving and deleting data in a flash memory.
  • An apparatus and method for maintaining and managing a table are provided.
  • Flash memory is widely used as a storage device for portable devices such as digital cameras, MP3 players, mobile phones, and PDAs due to its high performance, low power, and small size.
  • portable devices such as digital cameras, MP3 players, mobile phones, and PDAs
  • PDAs personal area network
  • flash memory is widely used as a storage device for portable devices such as digital cameras, MP3 players, mobile phones, and PDAs due to its high performance, low power, and small size.
  • the replacement of disks such as PCs, notebooks, and server systems with flash memory is increasing.
  • the flash memory performs an erase operation before writing due to the physical characteristics of the memory cell. That is, when a write operation is performed on a specific page, the flash memory may erase the entire block to which the page belongs and then perform the write operation if there is data already stored in the page. As such, unlike hard disks, flash memory does not support overwriting, which may require more time and operations for certain write operations. In addition, since the flash memory cannot use the block any longer when a certain number of erase operations are performed on the same block, the flash memory should avoid repeating the erase operation on a specific block.
  • Flash Translation Layer has been introduced as a way to control flash memory.
  • the FTL receives a logical page number (LPN) from the file system and converts it into a physical page number (PPN) to access the flash memory.
  • LPN logical page number
  • PPN physical page number
  • the FTL generates a mapping table for such address translation, and the generated mapping table is stored in random access memory (RAM).
  • the flash memory since the flash memory continuously writes to a new page without performing an overwrite operation by the erase-before-write characteristic, the flash memory is overwritten in the same logical address area.
  • a previous data invalidation technique that allocates a new physical address area and invalidates the data stored in the previous physical address area.
  • the technique of eliminating accumulated invalid data and collecting valid data is called garbage collection, and is performed by a controller of a flash memory.
  • garbage collection an operation of copying a valid page of the removed block to a new block and deleting the previous block is performed.
  • the controller of the flash memory must search all the blocks to determine the number of valid pages and invalid pages at the moment of garbage collection to select a block that is the target of garbage collection.
  • the target block can be retrieved by a simple sorting technique, but the disadvantage is that all blocks must be sorted and stored.
  • the maintenance and maintenance of the target block is not easy.
  • Korean Patent Laid-Open Publication No. 2004-0086500 discloses a control method for performing erasing by specifying an invalid physical block with reference to a valid block table indicating whether valid data is stored in a physical block.
  • a valid block table indicating whether valid data is stored in a physical block.
  • Korean Patent No. 0789406 discloses a method of calculating garbage collection cost to determine a target block of garbage collection, but this method also has a disadvantage in that maintenance and repair are difficult because the garbage collection cost must be newly calculated every time.
  • the technical problem of the present invention is to reduce the delay time when garbage collection is performed by resetting the priority of the target block every time a data request from the host is performed.
  • Disclosed is a flash memory controller and method for storing a mapping table of an erase target block that can immediately respond to a control signal.
  • a flash memory control apparatus for storing a mapping table of an erase target block, the host interface including transmitting and receiving a control signal and data with a host; A memory interface unit for storing the data in a flash memory or reading from the flash memory according to a control signal received from the host; And a storage unit for storing an address translation table in which the physical addresses of the respective pages are recorded in a plurality of entries corresponding to logical addresses of each of the plurality of pages in which the data is stored in the flash memory.
  • the erase target block table in which the physical address of each block is recorded is further stored in a plurality of entries corresponding to the number of invalid pages included in each block of the memory.
  • a flash memory control method for storing a mapping table of an erase target block includes (a) a plurality of entries corresponding to the number of invalid pages included in each block of the flash memory. Selecting an erase target block that is a block to erase data to perform garbage collection by referring to an erase target block table in which the physical addresses of the respective blocks are recorded; (b) erasing data stored at a physical address of the selected erase target block; And (c) updating the entry in which the physical address of the erase target block is recorded in the erase target block table after performing garbage collection.
  • garbage collection is performed in units of blocks by maintaining and managing an erased block table so that the erased block can be immediately selected from the garbage collection. Since data copy is performed in units of pages, an operation according to a control signal from a host can be performed immediately during garbage collection. In addition, the process of searching and sorting blocks for garbage collection is omitted, which reduces the delay time and prevents the system from being suspended.
  • FIG. 1 is a block diagram showing the configuration of a preferred embodiment of a flash memory controller for storing a mapping table of erased blocks according to the present invention
  • FIG. 2 is a diagram illustrating an entry structure of each table stored in a storage unit
  • 3 is a view showing an initial state of an erase target block table
  • FIG. 4 is a diagram showing an example in which a link of a block in which one invalid page is generated by page overwriting is recorded;
  • FIG. 5 is a diagram illustrating a case where two invalid pages are generated in a block having a physical address of 0 due to page overwriting
  • FIG. 6 is a diagram illustrating a case in which one block having two invalid pages is added in a state as shown in FIG. 5;
  • FIG. 7 illustrates a case in which one block having two invalid pages is added in the same state as shown in FIG. 6;
  • FIG. 8 is a diagram illustrating an example in which an entry value is updated after garbage collection for erasing a block linked to entry 128 of an erase target block table is performed;
  • FIG. 9 is a flowchart illustrating a preferred embodiment of a flash memory control method for storing a mapping table of an erase target block according to the present invention.
  • FIG. 1 is a block diagram showing the configuration of a preferred embodiment of a flash memory controller for storing a mapping table of an erase target block according to the present invention.
  • the flash memory controller 100 operates between the host 200 and the flash memory 300, and includes a host interface unit 110, a memory interface unit 120, and a storage unit ( 130).
  • the storage unit 130 is implemented in the form of a random access memory (RAM) to store the above-described FTL, that is, the address translation table.
  • RAM random access memory
  • the host interface 110 transmits and receives a control signal and data with the host 200, and the memory interface 120 according to the control signal received from the host 200.
  • Data is stored in the flash memory 300 or data is read from the flash memory 300.
  • the flash memory controller 100 further includes a table for determining an erase target block in addition to the address translation table in order to solve the problem of delay time occurring when garbage collection is performed. Select a block from the stored table to store and erase data when garbage collection is performed.
  • the storage 130 stores an address translation table in which the physical addresses of the respective pages are recorded in a plurality of entries corresponding to the logical addresses of the plurality of pages in which the data is stored in the flash memory 300.
  • a flag indicating whether a corresponding page is valid may be additionally recorded in a partial region of each entry of the address translation table.
  • the physical address of the page and the valid information flag may be included together in the 4-byte entry.
  • the table additionally stored in the storage unit 130 for garbage collection is a block mapping table and an erase target block table, and each block has a plurality of entries corresponding to the physical addresses of each block of the flash memory 300 in the block mapping table.
  • the physical addresses of other blocks including the same number of invalid pages and the same number of invalid pages are recorded, and the plurality of invalid pages corresponding to the number of invalid pages included in each block of the flash memory 300 are recorded in the erase target block table.
  • the physical address of each block is recorded in the entry.
  • FIG. 2 is a diagram illustrating an entry structure of each table stored in the storage 130.
  • (A) of FIG. 2 shows information recorded in one entry of the address translation table,
  • (b) shows one entry of the block mapping table, and
  • (c) shows information recorded in one entry of the erased block table. It is shown.
  • the address translation table includes entries equal to the number of pages included in the storage device including the flash memory 300 to the flash memory 300, and each entry includes a page. It can be accessed via its logical address.
  • the physical address (PPN) of the page can be known as in the prior art.
  • the page is valid You can check whether it corresponds to (Valid).
  • the numbers indicated in parentheses indicate the number of bits occupied by the corresponding information in the entry.
  • the number of entries in the block mapping table is the same as the number of blocks included in the storage device including the flash memory 300 to the flash memory 300, and each entry includes the physical of the block. Accessible via address.
  • Each entry in the block mapping table has a flag (BAD) for checking bad blocks, a flag indicating whether the block is deleted (ERASE), a flag indicating whether the block is bound to the block mapping table ( FREE), the number of invalid pages included in the block (invPage), information about how many pages are used sequentially within the block (curPage), and the number of erase operations performed on the block (eCount).
  • BAD flag
  • FREE flag indicating whether the block is deleted
  • FREE the number of invalid pages included in the block
  • curPage information about how many pages are used sequentially within the block
  • eCount erase operations performed on the block
  • the flash memory controller 100 includes a block including the same number of invalid pages among a plurality of blocks included in the flash memory 300 or the storage device in order to prevent a time delay occurring when garbage collection is performed.
  • a method of linking blocks having the same invPage value by link is used. That is, blocks including n invalid pages among the plurality of blocks are connected to each other by a link, and the specific link order is based on the order in which the number of invalid pages included in the block reaches n.
  • a block including the first n invalid pages among the plurality of blocks is positioned at the beginning of the array linked by a link. Then, blocks having the number of invalid pages reaching n are sequentially added to the array.
  • preBlk is link information, that is, a physical address of a block having an invPage value of n before the corresponding block among blocks in which the value of invPage is n
  • nextBlk is Among the blocks where the value of invPage is n, it is the link information, that is, the physical address of the block having the invPage value of n next to the block. If the block contains the first n invalid pages, the value of preBlk is 'null'. If there is no block that contains n invalid pages after the block, the value of nextBlk is written as 'null'. .
  • blocks having the same number of invalid pages in the flash memory 300 or the storage device are sequentially connected to each other. Will be constructed. Subsequently, when a change occurs in the number of invalid pages included in the block due to data erasing, the values of invPage, preBlk, and nextBlk may be modified in an entry of the block mapping table corresponding to the physical address of the block. The modification of this entry may be performed by the memory interface unit 120.
  • the block mapping table having an entry as shown in (b) of FIG. 2 is used in association with the erasure target block table in garbage collection.
  • the erase target block table includes the same number of entries as the number of pages included in one block plus 1, and each entry number corresponds to the number of invalid pages included in one block.
  • a physical address of a block including the same number of invalid pages as the entry number, specifically, a link of a block mapping table accessible through the physical address is recorded.
  • two links are recorded in each entry of the erase target block table.
  • These two links include the above-described array of blocks, that is, the same number of invalid pages and represent the physical address of the first block and the physical address of the last block of the array in the array of blocks linked by the link, respectively. If there is one block containing the same number of invalid pages as the entry number, the values of OLD and LAST of the entry are set equal to the physical address of the block.
  • the physical address of a block having 128 invalid pages is recorded. If a block is composed of 128 pages, all pages of the block correspond to invalid pages, which indicates that the block should be first erased when garbage collection is performed.
  • FIG 3 is a diagram illustrating an initial state of an erase target block table
  • FIGS. 4 to 7 illustrate embodiments of a link recorded in an entry of an erase target block table according to the number of invalid pages caused by page overwriting. Drawing.
  • the erase target block table includes entries from 0 to 128, which means that the number of pages constituting one block is 128.
  • FIG. 4 is a diagram illustrating an example in which a link of a block in which one invalid page is generated by page overwriting is recorded.
  • the physical address of the corresponding block is recorded in entry 1 of the block to be erased table.
  • a block having one physical page has one physical address of zero. Therefore, the same physical address of 0 is recorded in OLD and LAST.
  • the values of preBlk and nextBlk of the entry corresponding to the physical address 0 in the block mapping table are set to 'null'.
  • an arrow indicates a link and indicates that an entry of a block mapping table corresponding to the corresponding physical address can be accessed through a physical address of a block recorded in an entry of an erase target block table.
  • FIG. 5 is a diagram illustrating a case where two invalid pages are generated in a block having a physical address of 0 due to page overwriting.
  • entry 1 of the erase target block table in which a physical address of 0 is recorded in FIG. A physical address of zero is recorded.
  • the physical address 0 is equally recorded in OLD and LAST of the second entry.
  • FIG. 6 is a diagram illustrating a case in which one block having two invalid pages is added in the same state as shown in FIG. 5. Since there are a plurality of blocks including the same number of invalid pages, as described above, an array of blocks connected by a link is generated. Referring to FIG. 6, it can be seen that two invalid pages are generated in a block of physical address 1 following a block of physical address 0 including two invalid pages. Therefore, the value of OLD is kept to be the same as the physical address 0 in the second entry of the block table to be erased, and the value of LAST is updated to the physical address 1.
  • the preBlk value of the entry corresponding to the physical address 0 in the block mapping table is set to 'null' and the nextBlk value is set to '1'.
  • the preBlk value of the entry corresponding to physical address 1 is set to '0' and the nextBlk value is set to 'null'. 4 to 6, it can be seen that the invPage value of each entry of the block mapping table is also updated according to the number of invalid pages generated.
  • FIG. 7 illustrates a case in which one block having two invalid pages is added in the same state as shown in FIG. 6.
  • a block including two invalid pages following a block having a physical address of 1 is 2, and invPage and preBlk values of an entry corresponding to physical address 2 are updated in the block mapping table.
  • the nextBlk value of the entry corresponding to the physical address 1 is updated to the physical address 2 in the block mapping table.
  • the OLD value is kept the same as the physical address 0, and the LAST value is updated to '2' which is the physical address of the block located at the end of the array.
  • the memory interface unit 120 overwrites the invalid interface according to a control signal received from the host 200 through the host interface unit 110. It occurs every time it occurs, and each entry of the address translation table shown in FIG. 2 (a) is also updated every time the overwriting is performed.
  • the memory interface unit 120 performs the write and read operations of the data according to the control signal transmitted from the host 200 as described above.
  • the entry is updated, and when the garbage collection is performed, the information recorded in each entry of the erase target block table is used.
  • the memory interface unit 120 When performing the garbage collection, the memory interface unit 120 erases a block corresponding to a physical address written as an OLD value in the entry of the maximum number of the block to be erased table. In other words, the first block containing the maximum number of invalid pages is selected as the block to be erased with the highest priority in the garbage collection. If there is no link recorded in the entry of the maximum number, the memory interface unit 120 erases the block corresponding to the physical address recorded with the OLD value in the entry of the maximum number among the entries in which the link is recorded.
  • FIG. 8 is a diagram illustrating an example in which an entry value is updated after garbage collection for erasing a block linked to entry 128 of an erase target block table is performed.
  • FIG. 8A illustrates entry 128 of the block to be erased table before garbage collection is performed.
  • the OLD value is set to 0 and the LAST value is set to 2.
  • FIG. Also, blocks having 128 invalid pages are connected in the order of physical addresses 0, 1, and 2.
  • the memory interface unit 120 refers to an erase target block table to determine a block to be erased when garbage collection is performed, and determines that the block having the largest number of invalid pages is an erase target block.
  • Garbage collection is performed by determining the block of physical address 0 corresponding to the OLD value as the block to be erased. Since the entire page of block 0 corresponds to an invalid page, it is not necessary to perform additional operations such as moving data stored in the valid page.
  • the memory interface unit 120 updates the corresponding entry in the erase target block table and the block mapping table after the block erase operation. Specifically, as shown in (b) of FIG. 8, the OLD value of entry 128 in the erase target block table is updated with the physical address of block 1 including 128 invalid pages following block 0, and block mapping. The preBlk value of the entry corresponding to physical address 1 in the table is also updated to 'null' because block 0 is erased. In addition, the entry corresponding to the physical address 0 in the block mapping table is initialized as the block is erased.
  • the memory interface unit 120 performs garbage collection using the block linked to the OLD value at the highest numbered entry among the entries for which the link is written as the erase target block. In this case, if a valid page exists in an erase target block, a process of invalidating the page after moving data of the valid page to another block is performed. The process of moving data is performed in units of pages.
  • garbage collection performed by the memory interface unit 120 of the flash memory controller 100 according to the present invention is performed in units of blocks, and moves data when there is a valid page in an erase target block. The process is performed page by page.
  • the memory interface unit 120 updates the tables of FIGS. 2A to 2C to reflect the state where block erasing or page movement has been performed so far, even during garbage collection, and then the host 200.
  • the operation may be performed according to the control signal transmitted from the controller.
  • garbage collection can be performed normally because the results of the garbage collection performed up to the last time are reflected in the address translation table, the block mapping table, and the erased block table.
  • the garbage collection method requires searching and sorting time of the entire block to select a block to be erased each time, and performs a dozen or more page copies and several block erases in one garbage collection. Momentary stops may occur.
  • garbage collection by the flash memory controller 100 according to the present invention does not require time for block search and alignment, thereby minimizing system stoppage.
  • FIG. 9 is a flowchart illustrating a preferred embodiment of a flash memory control method for storing a mapping table of an erase target block according to the present invention.
  • the flash memory control method according to the present invention performs garbage collection by the flash memory controller 100 described above, and thus refers to the same table stored in the storage 130.
  • the memory interface unit 120 selects an erase target block from an erase target block table as shown in FIG. 2C (S1010). Since the method of selecting the erase target block and the configuration of the erase target block table have already been described above, a detailed description thereof will be omitted.
  • Garbage collection is performed by erasing all data stored in the physical address of the erase target block, and the memory interface unit 120 first determines whether a valid page exists in the erase target block (S1020). If a valid page exists in the erase target block, the memory interface unit 120 copies data stored in the physical address of the valid page to the physical address of the new page, and the valid page is converted into an invalid page (S1030). Such data copying is performed in units of pages, and the memory interface unit 120 updates the tables of FIGS. 2A through 2C whenever data is copied in units of pages (S1040).
  • the memory interface unit 120 erases data stored at the physical address of the erase target block (S1050), and accordingly, updates the tables of FIGS. 2A to 2C. (S1060). At this time, if a control signal is input from the host 200 during the data erasing and table update of the erase target block, the memory interface unit 120 (a) of FIG. After updating the table of (c) to (c), the operation according to the control signal of the host 200 is performed.
  • the invention can also be embodied as computer readable code on a computer readable recording medium.
  • the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and may also be implemented in the form of a carrier wave (for example, transmission over the Internet). Include.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법이 개시된다. 호스트 인터페이스부는 호스트와 제어신호 및 데이터를 송수신하고, 메모리 인터페이스부는 호스트로부터 수신된 제어신호에 따라 데이터를 플래시 메모리에 저장하거나 플래시 메모리로부터 독출한다. 저장부에는 플래시 메모리에서 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되며, 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장된다.

Description

소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
본 발명은 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법에 관한 것으로, 보다 상세하게는, 플래시 메모리 내부에서 데이터의 이동 및 삭제를 수행하는 동안 소거 대상 블록을 결정하기 위해 사용되는 매핑 테이블을 유지 및 관리하는 장치 및 방법에 관한 것이다.
플래시 메모리는 고성능, 저전력 및 소형화 등의 장점으로 인해 디지털 카메라, MP3 플레이어, 핸드폰 및 PDA 등과 같은 휴대용 디바이스의 저장장치로 많이 사용되고 있다. 또한 플래시 메모리의 용량이 증가함에 따라 PC나 노트북 및 서버 시스템 등의 디스크를 플래시 메모리로 대체하는 경우가 증가하고 있다.
플래시 메모리는 메모리 셀의 물리적인 특성으로 인하여 쓰기 전 소거 연산을 수행한다. 즉, 플래시 메모리는 특정 페이지에 쓰기 동작을 수행할 경우 해당 페이지에 이미 저장된 데이터가 있다면 그 페이지가 속해 있는 블록 전체를 소거한 다음 쓰기 동작을 수행할 수 있다. 이와 같이 플래시 메모리는 하드 디스크와 달리 덮어쓰기를 지원하지 않기 때문에 특정 쓰기 동작에 대해 더 많은 시간과 연산을 필요로 할 수 있다. 또한 플래시 메모리는 동일한 블록에 대해 일정 횟수 이상의 소거 동작이 수행되면 해당 블록을 더 이상 사용할 수 없기 때문에 특정 블록에 소거 동작이 반복되는 것을 피해야 한다.
이러한 단점을 극복하기 위해 플래시 메모리를 제어하기 위한 방법으로 플래시 변환 레이어(Flash Translation Layer : FTL)가 도입되었다. FTL은 파일 시스템으로부터 논리 페이지 번호(Logical Page Number : LPN)를 입력받아 물리 페이지 번호(Physical Page Number : PPN)로 변환하여 플래시 메모리에 접근한다. FTL은 이와 같은 주소 변환을 위해 매핑 테이블(mapping table)을 생성하며, 생성된 매핑 테이블은 랜덤 액세스 메모리(RAM)에 저장된다.
한편, 앞에서 설명한 바와 같이 플래시 메모리는 쓰기 전 소거(erase-before-write) 특성에 의해 덮어쓰기 연산을 수행하지 않고 새로운 페이지에 계속적으로 쓰기 연산을 수행하기 때문에, 같은 논리 주소 영역에 덮어쓰기 되는 경우에는 새로운 물리 주소 영역을 할당받고 이전의 물리 주소 영역에 저장된 데이터를 무효화시키는 이전 데이터 무효화 기법을 사용한다. 이와 같이 누적된 무효 데이터를 제거하고 유효 데이터를 취합하는 기법을 가비지 컬렉션(garbage collection)이라 하며, 플래시 메모리의 제어기에 의해 수행된다. 플래시 메모리 제어기가 가비지 컬렉션을 수행할 때에는 제거되는 블록의 유효한 페이지를 새로운 블록으로 복사한 후 이전 블록을 삭제하는 연산을 수행한다.
또한 플래시 메모리의 제어기는 가비지 컬렉션을 수행하는 순간에 가비지 컬렉션의 타깃이 되는 블록을 선정하기 위해 모든 블록들을 검색하여 유효 페이지 및 무효 페이지의 개수를 파악하여야 한다. 간단한 정렬 기법에 의해 타깃 블록을 검색할 수는 있으나, 모든 블록을 정렬하고 저장해야 한다는 단점이 존재한다. 또한 호스트의 요청에 의해 블록의 유효 및 무효 페이지가 계속적으로 변화하기 때문에 타깃 블록의 유지 및 보수도 용이하지 않다.
한국공개특허 제2004-0086500호에는 물리 블록에 유효한 데이터가 기억되어 있는지 여부를 나타내는 유효 블록 테이블을 참조하여 무효인 물리 블록을 지정하여 소거를 실행하는 제어 방법이 개시되어 있다. 그러나 기존의 매핑 테이블을 활용하는 것이 아닌 새로운 유효 블록 테이블을 생성하며, 블록의 유효 또는 무효 여부만 나타낼 뿐 가비지 컬렉션을 수행하는 순간에 타깃 블록을 즉시 결정하기는 어렵다는 문제가 있다.
또한 한국등록특허 제0789406호에는 가비지 컬렉션의 타깃 블록을 결정하기 위해 가비지 컬렉션 코스트를 계산하는 방법이 개시되어 있으나, 이 방법 역시 가비지 컬렉션 코스트를 매번 새롭게 산출해야 하므로 유지 및 보수가 어렵다는 단점을 가진다.
본 발명이 이루고자 하는 기술적 과제는, 호스트로부터의 데이터 요청을 수행할 때마다 타깃 블록의 우선순위를 재설정함으로써 가비지 컬렉션이 수행될 때의 지연 시간을 줄일 수 있으며, 가비지 컬렉션을 수행하는 도중 호스트로부터의 제어신호에 즉시 응답할 수 있는 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법을 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치는, 호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부; 상기 호스트로부터 수신된 제어신호에 따라 상기 데이터를 플래시 메모리에 저장하거나 상기 플래시 메모리로부터 독출하는 메모리 인터페이스부; 및 상기 플래시 메모리에서 상기 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 상기 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되는 저장부;를 구비하며, 상기 저장부에는 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 상기 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장된다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법은, (a) 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블을 참조하여 가비지 컬렉션을 수행하기 위해 데이터를 소거할 블록인 소거 대상 블록을 선택하는 단계; (b) 상기 선택된 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하는 단계; 및 (c) 가비지 컬렉션을 수행한 후 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 엔트리를 갱신하는 단계;를 갖는다.
본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법에 의하면, 가비지 컬렉션에서 소거 대상 블록을 즉시 선택할 수 있도록 소거 대상 블록 테이블을 유지 및 관리함으로써, 가비지 컬렉션이 블록 단위로 이루어지며, 데이터 복사는 페이지 단위로 수행되므로, 가비지 컬렉션을 수행하는 도중 호스트로부터의 제어신호에 따른 연산을 즉시 수행할 수 있다. 또한 가비지 컬렉션을 위한 블록의 탐색 및 정렬 과정이 생략되므로 지연 시간을 단축시켜 시스템의 일시 정지 현상을 방지할 수 있다.
도 1은 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 2는 저장부에 저장되는 각각의 테이블의 엔트리 구조를 도시한 도면,
도 3은 소거 대상 블록 테이블의 초기 상태를 도시한 도면,
도 4는 페이지 덮어쓰기에 의해 1개의 무효 페이지가 발생한 블록의 링크가 기록되는 예를 도시한 도면,
도 5는 페이지 덮어쓰기에 의해 물리 주소가 0인 블록에 2개의 무효 페이지가 발생한 경우를 도시한 도면,
도 6은 도 5에 도시된 것과 같은 상태에서 무효 페이지가 2개인 블록이 한 개 추가된 경우를 도시한 도면,
도 7은 도 6에 도시된 것과 같은 상태에서 무효 페이지의 개수가 2개인 블록이 한 개 추가된 경우를 도시한 도면,
도 8은 소거 대상 블록 테이블의 128번 엔트리에 링크된 블록을 소거하는 가비지 컬렉션이 수행된 후 엔트리 값이 갱신되는 예를 도시한 도면, 그리고,
도 9는 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 플래시 메모리 제어장치(100)는 호스트(200)와 플래시 메모리(300) 사이에서 동작하며, 호스트 인터페이스부(110), 메모리 인터페이스부(120) 및 저장부(130)를 구비한다. 이때 저장부(130)는 랜덤 엑세스 메모리(RAM)의 형태로 구현되어 앞에서 설명한 FTL, 즉 주소 변환 테이블이 저장된다.
본 발명에 따른 플래시 메모리 제어장치(100)에서 호스트 인터페이스부(110)는 호스트(200)와 제어신호 및 데이터를 송수신하며, 메모리 인터페이스부(120)는 호스트(200)로부터 수신된 제어신호에 따라 데이터를 플래시 메모리(300)에 저장하거나, 플레시 메모리(300)로부터 데이터를 독출한다.
또한 본 발명에 따른 플래시 메모리 제어장치(100)는 가비지 컬렉션을 수행할 때 발생하는 지연시간의 문제를 해결하기 위하여 저장부(130)에 주소 변환 테이블 외에 소거 대상 블록을 결정하기 위한 테이블을 추가로 저장하고, 가비지 컬렉션 수행시에 데이터를 소거할 블록을 저장된 테이블로부터 선택한다.
구체적으로, 저장부(130)에는 플래시 메모리(300)에서 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되며, 이는 종래기술과 동일하다. 다만, 본 발명에 따른 플래시 메모리 제어장치(100)에서는 주소 변환 테이블의 각 엔트리 내의 일부 영역에 해당 페이지가 유효인지 여부를 나타내는 플래그(flag)를 추가로 기록할 수 있다. 이러한 경우 4 바이트의 엔트리 내에 페이지의 물리 주소와 유효 정보 플래그를 함께 포함시킬 수 있다.
가비지 컬렉션을 위해 저장부(130)에 추가로 저장되는 테이블은 블록 매핑 테이블 및 소거 대상 블록 테이블로서, 블록 매핑 테이블에는 플래시 메모리(300)의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록되며, 소거 대상 블록 테이블에는 플래시 메모리(300)의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 각 블록의 물리 주소가 기록된다.
이하에서는 저장부(130)에 저장되는 주소 변환 테이블, 블록 매핑 테이블 및 소거 대상 블록 테이블의 각 엔트리에 기록되는 정보에 대하여 상세히 설명한다.
도 2는 저장부(130)에 저장되는 각각의 테이블의 엔트리 구조를 도시한 도면이다. 도 2의 (a)는 주소 변환 테이블의 하나의 엔트리에 기록되는 정보를 나타내며, (b)는 블록 매핑 테이블의 하나의 엔트리, (c)는 소거 대상 블록 테이블의 하나의 엔트리에 기록되는 정보를 나타낸 것이다.
먼저 도 2의 (a)를 참조하면, 주소 변환 테이블은 플래시 메모리(300) 내지 플래시 메모리(300)로 이루어진 저장장치에 포함된 페이지의 개수와 동일한 개수의 엔트리로 구성되며, 각각의 엔트리에는 페이지의 논리 주소를 통해 접근할 수 있다. 특정 페이지의 논리 주소를 통해 주소 변환 테이블의 엔트리에 접근하면 종래 기술과 같이 해당 페이지의 물리 주소(PPN)를 알 수 있으며, 나아가 페이지의 물리 주소를 통해 엔트리에 접근하는 경우에는 해당 페이지가 유효 페이지에 해당하는지 여부(Valid)를 확인할 수 있다. 도 2의 (a)에서 괄호 안에 표시된 숫자는 엔트리 내에서 해당 정보가 차지하는 비트 수를 나타낸다.
또한 도 2의 (b)를 참조하면, 블록 매핑 테이블의 엔트리 개수는 플래시 메모리(300) 내지 플래시 메모리(300)로 이루어진 저장장치에 포함된 블록의 개수와 동일하며, 각각의 엔트리에는 블록의 물리 주소를 통해 접근 가능하다.
블록 매핑 테이블의 각 엔트리에는 배드(bad) 블록을 체크하기 위한 플래그(BAD), 해당 블록이 삭제된 상태인지 여부를 나타내는 플래그(ERASE), 해당 블록이 블록 매핑 테이블에 구속되는지 여부를 나타내는 플래그(FREE), 해당 블록에 포함된 무효 페이지의 개수(invPage), 해당 블록 내에서 순차적으로 몇 번째 페이지까지 사용되고 있는지에 관한 정보(curPage) 및 해당 블록에 대하여 수행된 소거 연산의 횟수(eCount)를 비롯하여 가비지 컬렉션을 위한 링크 정보(preBlk, nextBlk)가 기록된다.
본 발명에 따른 플래시 메모리 제어장치(100)는 가비지 컬렉션을 수행할 때 발생하는 시간 지연을 방지하기 위하여 플래시 메모리(300) 또는 저장장치에 포함된 복수의 블록 중에서 동일한 개수의 무효 페이지를 포함하는 블록들, 즉 블록 매핑 테이블에서 invPage의 값이 동일한 블록들을 링크에 의해 연결하는 방법을 사용한다. 즉, 복수의 블록 중에서 n개의 무효 페이지를 포함하는 블록들은 링크에 의해 서로 연결되며, 구체적인 연결 순서는 해당 블록에 포함된 무효 페이지의 개수가 n개에 도달하게 된 순서에 따른다.
이에 따르면 복수의 블록 중에서 최초로 n개의 무효 페이지를 포함하게 된 블록이 링크에 의해 연결된 배열의 가장 처음에 위치하게 되며, 이후 무효 페이지의 개수가 n개에 도달하는 블록들은 순차적으로 배열에 추가된다. 도 2의 (b)에 도시된 블록 매핑 테이블의 엔트리에서 preBlk은 invPage의 값이 n으로 동일한 블록들 중 해당 블록에 앞서 n의 invPage 값을 가지게 된 블록의 링크 정보, 즉 물리 주소이며, nextBlk은 invPage의 값이 n으로 동일한 블록들 중 해당 블록 다음으로 n의 invPage 값을 가지게 된 블록의 링크 정보, 즉 물리 주소이다. 만약 해당 블록이 최초로 n개의 무효 페이지를 포함하게 되었다면 preBlk의 값은 'null'이 되며, 해당 블록 이후에 n개의 무효 페이지를 포함하게 된 블록이 존재하지 않는다면 nextBlk의 값이 'null'로 기록된다.
이와 같이 블록 매핑 테이블의 각 엔트리에 동일한 개수의 무효 페이지를 포함하는 다른 블록의 링크가 기록됨에 따라 플래시 메모리(300) 내지 저장장치 내에서 무효 페이지의 개수가 동일한 블록들은 순차적으로 연결된 하나의 배열을 구성하게 된다. 이후 데이터 소거 등에 의해 블록에 포함된 무효 페이지의 개수에 변동이 발생하면 해당 블록의 물리 주소에 대응하는 블록 매핑 테이블의 엔트리에서 invPage, preBlk 및 nextBlk의 값을 수정할 수 있다. 이러한 엔트리의 수정은 메모리 인터페이스부(120)에 의해 수행될 수 있다.
도 2의 (b)와 같은 엔트리를 가지는 블록 매핑 테이블은 가비지 컬렉션에 있어서 소거 대상 블록 테이블과 서로 연관되어 사용된다. 소거 대상 블록 테이블에는 하나의 블록에 포함된 페이지 수에 1을 더한 것과 동일한 개수의 엔트리가 포함되며, 각각의 엔트리 번호는 하나의 블록에 포함된 무효 페이지의 개수에 대응된다. 또한 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하는 블록의 물리 주소, 구체적으로는 물리 주소를 통해 접근 가능한 블록 매핑 테이블의 링크가 기록된다.
도 2의 (c)를 참조하면, 소거 대상 블록 테이블의 각 엔트리에는 OLD 및 LAST의 두 가지 링크가 기록된다. 이러한 두 가지의 링크는 앞에서 설명한 블록들의 배열, 즉 동일한 개수의 무효 페이지를 포함하며 링크에 의해 연결된 블록들의 배열에서 최초의 블록의 물리 주소 및 배열의 마지막 블록의 물리 주소를 각각 나타낸다. 만약 엔트리 번호와 동일한 개수의 무효 페이지를 포함하는 블록이 한 개라면, 해당 엔트리의 OLD와 LAST의 값은 해당 블록의 물리 주소로 동일하게 설정된다.
예를 들면, 번호가 128인 엔트리에는 무효 페이지의 개수가 128개인 블록의 물리 주소가 기록된다. 만약 하나의 블록이 128개의 페이지로 구성되어 있다면, 해당 블록의 모든 페이지가 무효 페이지에 해당하며, 이는 가비지 컬렉션을 수행할 때 가장 우선적으로 소거되어야 하는 블록임을 나타낸다.
도 3은 소거 대상 블록 테이블의 초기 상태를 도시한 도면이고, 도 4 내지 도 7은 페이지 덮어쓰기에 의해 발생한 무효 페이지의 개수에 따라 소거 대상 블록 테이블의 엔트리에 기록되는 링크의 실시예를 도시한 도면이다.
도 3을 참조하면, 소거 대상 블록 테이블은 0에서 128까지의 엔트리로 구성되며, 이는 하나의 블록을 구성하는 페이지의 개수가 128개임을 의미한다. 소거 대상 블록 테이블이 최초로 생성되면 어떠한 블록에도 무효 페이지가 발생하지 않은 상태이므로 모든 엔트리의 OLD 및 LAST 값은 'null'로 설정된다.
도 4는 페이지 덮어쓰기에 의해 1개의 무효 페이지가 발생한 블록의 링크가 기록되는 예를 도시한 도면이다. 도 4를 참조하면, 무효 페이지의 개수가 1개이므로 소거 대상 블록 테이블의 1번 엔트리에 해당 블록의 물리 주소가 기록되며, 이때 무효 페이지의 개수가 1개인 블록은 물리 주소가 0인 블록 한 개이므로 OLD와 LAST에 동일하게 0의 물리 주소가 기록된다. 또한 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리의 preBlk 및 nextBlk의 값은 'null'로 설정된다.
도 4에서 화살표는 링크를 의미하며, 소거 대상 블록 테이블의 엔트리에 기록된 블록의 물리 주소를 통해 해당 물리 주소에 대응하는 블록 매핑 테이블의 엔트리에 접근할 수 있음을 나타낸다.
도 5는 페이지 덮어쓰기에 의해 물리 주소가 0인 블록에 2개의 무효 페이지가 발생한 경우를 도시한 도면이다. 도 5를 참조하면, 물리 주소가 0인 블록의 무효 페이지의 개수가 한 개 증가하였으므로, 도 4에서 0의 물리 주소가 기록되어 있던 소거 대상 블록 테이블의 1번 엔트리는 초기화되고, 2번 엔트리에 0의 물리 주소가 기록된다. 도 4와 마찬가지로 무효 페이지가 2개인 블록이 한 개이므로 2번 엔트리의 OLD 및 LAST에는 물리 주소 0이 동일하게 기록된다.
도 6은 도 5에 도시된 것과 같은 상태에서 무효 페이지가 2개인 블록이 한 개 추가된 경우를 도시한 도면이다. 동일한 개수의 무효 페이지를 포함하는 블록이 복수 개이므로 앞에서 설명한 바와 같이 링크에 의해 연결된 블록들의 배열이 생성된다. 도 6을 참조하면, 최초로 2개의 무효 페이지를 포함하게 된 물리 주소 0의 블록에 이어서 물리 주소 1의 블록에 2개의 무효 페이지가 발생하였음을 확인할 수 있다. 따라서 소거 대상 블록 테이블의 2번 엔트리에서 OLD의 값은 물리 주소 0으로 동일하게 유지되며, LAST의 값이 물리 주소 1로 갱신된다.
또한 물리 주소가 0인 블록과 1인 블록은 서로 연결되어야 하므로, 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리의 preBlk 값은 'null'로, nextBlk 값은 '1'로 설정되며, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 preBlk 값은 '0'으로, nextBlk 값은 'null'로 설정된다. 또한 도 4 내지 도 6에서 블록 매핑 테이블의 각 엔트리의 invPage 값 역시 발생한 무효 페이지의 개수에 따라 갱신되는 것을 확인할 수 있다.
도 7은 도 6에 도시된 것과 같은 상태에서 무효 페이지의 개수가 2개인 블록이 한 개 추가된 경우를 도시한 도면이다. 도 7을 참조하면, 물리 주소가 1인 블록에 이어 2개의 무효 페이지를 포함하게 된 블록의 물리 주소는 2이며, 블록 매핑 테이블에서 물리 주소 2에 대응하는 엔트리의 invPage 및 preBlk 값이 갱신된다. 또한 동일한 개수의 무효 페이지를 포함하는 블록들의 배열에서 물리 주소가 1인 블록 다음에 새로운 블록이 추가되므로, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 nextBlk 값이 물리 주소 2로 갱신된다. 한편, 소거 대상 블록 테이블의 2번 엔트리의 경우, OLD 값은 물리 주소 0으로 동일하게 유지되며, LAST 값이 배열의 마지막에 위치하는 블록의 물리 주소인 '2'로 갱신된다.
이상에서 설명한 것과 같은 블록 매핑 테이블 및 소거 대상 블록 테이블의 갱신은 호스트(200)로부터 호스트 인터페이스부(110)를 통해 수신되는 제어신호에 따라 메모리 인터페이스부(120)가 덮어쓰기를 수행하여 무효 페이지가 발생할 때마다 이루어지며, 도 2의 (a)에 도시된 주소 변환 테이블의 각 엔트리 역시 덮어쓰기가 수행될 때마다 갱신된다.
메모리 인터페이스부(120)는 이상과 같이 호스트(200)로부터 전달되는 제어신호에 따라 데이터의 쓰기 및 읽기 연산을 수행하는 동안 필요에 따라 도 2의 (a) 내지 (c)에 도시된 각 테이블의 엔트리를 갱신하고, 이후 가비지 컬렉션을 수행할 때 소거 대상 블록 테이블의 각 엔트리에 기록된 정보를 이용한다.
메모리 인터페이스부(120)는 가비지 컬렉션을 수행할 때 소거 대상 블록 테이블의 최대 번호의 엔트리에서 OLD 값으로 기록된 물리 주소에 대응하는 블록을 소거한다. 즉, 가장 먼저 최대 개수의 무효 페이지를 포함하게 된 블록이 가비지 컬렉션에서 최우선순위의 소거 대상 블록으로 선택된다. 만약 최대 번호의 엔트리에 기록된 링크가 존재하지 않으면, 메모리 인터페이스부(120)는 링크가 기록되어 있는 엔트리 중 최대 번호의 엔트리에서 OLD 값으로 기록된 물리 주소에 대응하는 블록을 소거한다.
도 8은 소거 대상 블록 테이블의 128번 엔트리에 링크된 블록을 소거하는 가비지 컬렉션이 수행된 후 엔트리 값이 갱신되는 예를 도시한 도면이다. 도 8의 (a)는 가비지 컬렉션이 수행되기 이전 소거 대상 블록 테이블의 128번 엔트리를 나타낸 것으로, OLD의 값은 0으로, LAST의 값은 2로 설정되어 있다. 또한 무효 페이지의 개수가 128개인 블록들은 물리 주소 0, 1, 2의 순서로 연결된다.
메모리 인터페이스부(120)는 가비지 컬렉션을 수행할 때 소거될 블록을 결정하기 위해 소거 대상 블록 테이블을 참조하며, 이때 무효 페이지의 개수가 가장 많은 블록을 소거 대상 블록으로 결정한다. 하나의 블록이 128개의 페이지로 구성되는 경우, 도 8의 (a)에 도시된 바와 같이 최대 번호의 엔트리인 128번 엔트리에 링크된 블록이 존재하므로, 메모리 인터페이스부(120)는 128번 엔트리의 OLD 값에 대응하는 물리 주소 0의 블록을 소거 대상 블록으로 결정하여 가비지 컬렉션을 수행한다. 0번 블록의 페이지 전체가 무효 페이지에 해당하므로 유효 페이지에 저장된 데이터의 이동 등과 같은 부가적인 연산은 수행할 필요가 없다.
메모리 인터페이스부(120)에 의해 0번 블록에 대한 소거 연산이 수행되었으므로, 0번 블록에 포함된 무효 페이지의 개수는 0이 된다. 따라서 메모리 인터페이스부(120)는 블록 소거 연산 후 소거 대상 블록 테이블 및 블록 매핑 테이블에서 해당하는 엔트리를 갱신한다. 구체적으로, 도 8의 (b)에 도시된 바와 같이 소거 대상 블록 테이블에서 128번 엔트리의 OLD 값은 0번 블록에 이어서 128개의 무효 페이지를 포함하는 1번 블록의 물리 주소로 갱신되며, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 preBlk 값 역시 0번 블록이 소거되었으므로 'null'로 갱신된다. 또한 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리는 블록이 소거됨에 따라 초기화된다.
만약 소거 대상 블록 테이블의 최대 번호에 해당하는 엔트리가 초기화 상태이면 메모리 인터페이스부(120)는 링크가 기록된 엔트리 중 최대 번호의 엔트리에서 OLD 값에 링크된 블록을 소거 대상 블록으로 하여 가비지 컬렉션을 수행하는데, 이때 소거 대상 블록에 유효 페이지가 존재하면 해당 유효 페이지의 데이터를 다른 블록으로 이동시킨 후 해당 페이지를 무효화시키는 과정을 수행하게 된다. 이와 같이 데이터를 이동시키는 과정은 페이지 단위로 수행된다.
메모리 인터페이스부(120)가 시스템이 사용되지 않는 상태의 정지시간(idle time)을 이용하여 가비지 컬렉션을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 즉시 가비지 컬렉션을 중단하고 호스트(200)로부터의 제어신호에 따른 연산을 수행하여야 한다. 이상에서 설명한 바와 같이 본 발명에 따른 플래시 메모리 제어장치(100)의 메모리 인터페이스부(120)에 의해 수행되는 가비지 컬렉션은 블록 단위로 이루어지며, 소거 대상 블록에 유효 페이지가 존재하는 경우 데이터를 이동하는 과정은 페이지 단위로 수행된다.
따라서 메모리 인터페이스부(120)는 가비지 컬렉션을 수행하는 도중이라도 현재까지 블록 소거 또는 페이지 이동이 수행된 상태를 반영하여 도 2의 (a) 내지 (c)의 각 테이블을 갱신한 후 호스트(200)로부터 전달된 제어신호에 따른 연산을 수행할 수 있다. 이후 다시 가비지 컬렉션을 개시하게 되면 직전까지 수행한 가비지 컬렉션의 결과가 주소 변환 테이블, 블록 매핑 테이블 및 소거 대상 블록 테이블에 모두 반영되어 있기 때문에 정상적으로 가비지 컬렉션을 수행할 수 있다.
종래기술에 따른 가비지 컬렉션 기법에서는 매번 소거 대상 블록을 선택하기 위해 블록 전체의 탐색 및 정렬 시간을 필요로 하고, 한 번의 가비지 컬렉션에서 수십 개 이상의 페이지 복사 및 수 개 이상의 블록 소거를 수행하기 때문에 시스템의 순간적인 정지 현상이 발생할 수 있다. 그러나 본 발명에 따른 플래시 메모리 제어장치(100)에 의한 가비지 컬렉션은 블록 탐색 및 정렬을 위한 시간을 필요로 하지 않으므로 시스템 정지 현상을 최소화할 수 있다.
도 9는 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다. 본 발명에 따른 플래시 메모리 제어방법은 앞에서 설명한 플래시 메모리 제어장치(100)에 의해 가비지 컬렉션을 수행하며, 따라서 저장부(130)에 저장된 것과 동일한 테이블을 참조한다.
도 9를 참조하면, 메모리 인터페이스부(120)는 도 2의 (c)에 도시된 것과 같은 소거 대상 블록 테이블로부터 소거 대상 블록을 선택한다(S1010). 소거 대상 블록의 선택 방법 및 소거 대상 블록 테이블의 구성에 대하여는 앞에서 이미 설명하였으므로 상세한 설명은 생략한다.
가비지 컬렉션은 소거 대상 블록의 물리 주소에 저장된 데이터를 모두 소거함으로써 수행되며, 메모리 인터페이스부(120)는 우선 소거 대상 블록에 유효 페이지가 존재하는지 여부를 판단한다(S1020). 소거 대상 블록에 유효 페이지가 존재하면 메모리 인터페이스부(120)는 유효 페이지의 물리 주소에 저장된 데이터를 새로운 페이지의 물리 주소로 복사하고, 해당 유효 페이지는 무효 페이지로 전환된다(S1030). 이와 같은 데이터 복사는 페이지 단위로 수행되며, 메모리 인터페이스부(120)는 페이지 단위로 데이터가 복사될 때마다 도 2의 (a) 내지 (c)의 테이블을 갱신한다(S1040).
페이지 단위의 데이터 복사 및 테이블 갱신을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 해당 시점까지 수행된 데이터 복사 상태를 반영하기 위해 도 2의 (a) 내지 (c)의 테이블을 갱신한 후 호스트(200)의 제어신호에 따른 연산을 수행한다.
소거 대상 블록에 유효 페이지가 남아 있지 않으면, 메모리 인터페이스부(120)는 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하고(S1050), 그에 따라 도 2의 (a) 내지 (c)의 테이블을 갱신한다(S1060). 이때 소거 대상 블록의 데이터 소거 및 테이블 갱신을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 해당 시점까지 수행된 블록 소거 상태를 반영하기 위해 도 2의 (a) 내지 (c)의 테이블을 갱신한 후 호스트(200)의 제어신호에 따른 연산을 수행한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.

Claims (13)

  1. 호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부;
    상기 호스트로부터 수신된 제어신호에 따라 상기 데이터를 플래시 메모리에 저장하거나 상기 플래시 메모리로부터 독출하는 메모리 인터페이스부; 및
    상기 플래시 메모리에서 상기 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 상기 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되는 저장부;를 포함하며,
    상기 저장부에는 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 상기 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장된 것을 특징으로 하는 플래시 메모리 제어장치.
  2. 제 1항에 있어서,
    상기 블록 매핑 테이블 내에서 동일한 개수의 무효 페이지를 포함하는 블록들의 엔트리가 링크에 의해 순차적으로 연결되며,
    상기 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하며 링크에 의해 순차적으로 연결된 블록들 중 최초의 블록의 물리 주소 및 마지막 블록의 물리 주소가 기록된 것을 특징으로 하는 플래시 메모리 제어장치.
  3. 제 2항에 있어서,
    상기 메모리 인터페이스부는 상기 소거 대상 블록 테이블에서 블록의 물리 주소가 기록된 엔트리 중 최대 번호의 엔트리에 기록된 최초의 블록인 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하여 가비지 컬렉션을 수행하는 것을 특징으로 하는 플래시 메모리 제어장치.
  4. 제 3항에 있어서,
    상기 메모리 인터페이스부는 가비지 컬렉션을 수행한 후 상기 소거 대상 블록의 물리 주소에 대응하는 블록 매핑 테이블의 엔트리 및 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 최대 번호의 엔트리를 갱신하는 것을 특징으로 하는 플래시 메모리 제어장치.
  5. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 주소 변환 테이블의 각 엔트리에는 상기 각 페이지가 유효 페이지에 해당하는지 여부를 나타내는 플래그가 상기 각 페이지의 물리 주소와 함께 기록된 것을 특징으로 하는 플래시 메모리 제어장치.
  6. 제 1항 내지 제 4항 중 어느 한 항에 있어서,
    상기 메모리 인터페이스부는 상기 플래시 메모리의 동일한 논리 주소에 대응하는 새로운 물리 주소 영역에 데이터 쓰기 연산을 수행하여 무효 페이지가 발생할 때마다 상기 주소 변환 테이블, 상기 블록 매핑 테이블 및 상기 소거 대상 블록 테이블의 각 엔트리를 갱신하는 것을 특징으로 하는 플래시 메모리 제어장치.
  7. (a) 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블을 참조하여 가비지 컬렉션을 수행하기 위해 데이터를 소거할 블록인 소거 대상 블록을 선택하는 단계;
    (b) 상기 선택된 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하는 단계; 및
    (c) 가비지 컬렉션을 수행한 후 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 엔트리를 갱신하는 단계;를 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.
  8. 제 7항에 있어서,
    상기 (c) 단계에서, 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블에서 상기 소거 대상 블록의 물리 주소에 대응하는 엔트리를 갱신하는 것을 특징으로 하는 플래시 메모리 제어방법.
  9. 제 8항에 있어서,
    상기 블록 매핑 테이블 내에서 동일한 개수의 무효 페이지를 포함하는 블록들의 엔트리가 링크에 의해 순차적으로 연결되며,
    상기 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하며 링크에 의해 순차적으로 연결된 블록들 중 최초의 블록의 물리 주소 및 마지막 블록의 물리 주소가 기록된 것을 특징으로 하는 플래시 메모리 제어방법.
  10. 제 9항에 있어서,
    상기 (a) 단계에서, 상기 소거 대상 블록 테이블에서 블록의 물리 주소가 기록된 엔트리 중 최대 번호의 엔트리에 기록된 최초의 블록을 상기 소거 대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리 제어방법.
  11. 제 8항에 있어서,
    상기 (a) 단계와 상기 (b) 단계의 사이에,
    (d) 상기 소거 대상 블록에 포함된 유효 페이지의 물리 주소에 저장된 데이터를 상기 플래시 메모리의 새로운 페이지의 물리 주소에 복사하는 단계; 및
    (e) 상기 유효 페이지의 데이터가 상기 새로운 페이지로 복사될 때마다 상기 소거 대상 블록 테이블 및 상기 블록 매핑 테이블의 각 엔트리를 갱신하는 단계;를 더 포함하며,
    상기 (d) 단계 및 상기 (e) 단계는 상기 소거 대상 블록에 포함된 유효 페이지가 모두 무효 페이지로 전환될 때까지 순차적으로 반복하여 수행되는 것을 특징으로 하는 플래시 메모리 제어방법.
  12. 제 11항에 있어서,
    상기 (e) 단계와 상기 (b) 단계의 사이에,
    (f) 호스트로부터 데이터 쓰기 또는 읽기에 대한 제어신호가 입력되면 상기 (e) 단계를 수행한 후 상기 제어신호에 대응하는 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.
  13. 제 7항 내지 제 10항 중 어느 한 항에 있어서,
    상기 (a) 단계 내지 상기 (c) 단계는 순차적으로 반복하여 수행되며,
    (d) 호스트로부터 데이터 쓰기 또는 읽기에 대한 제어신호가 입력되면 상기 (c) 단계를 수행한 후 상기 제어신호에 대응하는 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.
PCT/KR2012/004568 2011-11-09 2012-06-08 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법 WO2013069859A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0116144 2011-11-09
KR1020110116144A KR101392174B1 (ko) 2011-11-09 2011-11-09 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법

Publications (1)

Publication Number Publication Date
WO2013069859A1 true WO2013069859A1 (ko) 2013-05-16

Family

ID=48290201

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/004568 WO2013069859A1 (ko) 2011-11-09 2012-06-08 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법

Country Status (2)

Country Link
KR (1) KR101392174B1 (ko)
WO (1) WO2013069859A1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI501242B (zh) * 2013-10-04 2015-09-21 Winbond Electronics Corp 快閃記憶體之抹除方法
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device
CN110727395A (zh) * 2018-07-17 2020-01-24 慧荣科技股份有限公司 闪存控制器、方法及存储装置
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN113641630A (zh) * 2017-03-27 2021-11-12 珠海极海半导体有限公司 一种flash存储器
CN117891415A (zh) * 2024-03-18 2024-04-16 深圳星火半导体科技有限公司 一种存储装置的p2l数据管理方法及装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465426B1 (ko) * 2013-11-06 2014-11-27 성균관대학교산학협력단 익스텐트 매핑 플래시 디바이스
KR20150068747A (ko) 2013-12-12 2015-06-22 삼성전자주식회사 비휘발성 메모리 시스템, 이를 포함하는 모바일 장치 및 비휘발성 메모리 시스템의 동작방법
KR102254392B1 (ko) 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR102343246B1 (ko) 2014-12-12 2021-12-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102391678B1 (ko) 2015-01-22 2022-04-29 삼성전자주식회사 저장 장치 및 그것의 서스테인드 상태 가속 방법
KR20170000516A (ko) 2015-06-24 2017-01-03 고려대학교 산학협력단 동적 프로파일러를 통한 객체의 특성을 이용한 dram과 플래시 하이브리드 기억장치에서의 가비지 컬렉션 수행 방법 및 그를 위한 시스템
KR102467032B1 (ko) 2015-10-08 2022-11-14 삼성전자주식회사 메모리 스케줄링 방법 및 메모리 시스템의 동작방법
KR20170044781A (ko) 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20170056765A (ko) 2015-11-13 2017-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102615593B1 (ko) 2016-05-04 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20170131796A (ko) 2016-05-20 2017-11-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180031858A (ko) 2016-09-19 2018-03-29 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102033462B1 (ko) * 2016-12-27 2019-10-17 한양대학교 산학협력단 플래시 메모리의 가비지 콜렉션 방법 및 이를 이용하는 저장 장치
KR102530583B1 (ko) 2017-10-31 2023-05-09 삼성전자주식회사 저장 장치 및 메모리 시스템
KR101995460B1 (ko) * 2017-11-21 2019-07-02 한림대학교 산학협력단 Ext 파일 관리 구조의 파일단위 단편화 제거 시스템 및 방법
KR20220046978A (ko) 2020-10-08 2022-04-15 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187062A (ja) * 2008-02-01 2009-08-20 Fujitsu Ltd 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
JP2009205689A (ja) * 2009-05-08 2009-09-10 Oki Electric Ind Co Ltd フラッシュディスク装置
JP2010067284A (ja) * 2009-12-25 2010-03-25 Toshiba Corp メモリシステムの制御方法
KR20100105317A (ko) * 2009-03-17 2010-09-29 가부시끼가이샤 도시바 컨트롤러 및 메모리 시스템

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062554A (ja) 2002-07-30 2004-02-26 Oki Electric Ind Co Ltd フラッシュメモリの管理方法
JP2008146253A (ja) 2006-12-07 2008-06-26 Sony Corp 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009187062A (ja) * 2008-02-01 2009-08-20 Fujitsu Ltd 情報処理装置、該情報処理装置で行われるデータ記憶を制御する制御部およびデータ記憶の制御方法
KR20100105317A (ko) * 2009-03-17 2010-09-29 가부시끼가이샤 도시바 컨트롤러 및 메모리 시스템
JP2009205689A (ja) * 2009-05-08 2009-09-10 Oki Electric Ind Co Ltd フラッシュディスク装置
JP2010067284A (ja) * 2009-12-25 2010-03-25 Toshiba Corp メモリシステムの制御方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI501242B (zh) * 2013-10-04 2015-09-21 Winbond Electronics Corp 快閃記憶體之抹除方法
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
CN113641630A (zh) * 2017-03-27 2021-11-12 珠海极海半导体有限公司 一种flash存储器
CN110727395A (zh) * 2018-07-17 2020-01-24 慧荣科技股份有限公司 闪存控制器、方法及存储装置
US11630580B2 (en) 2018-07-17 2023-04-18 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN110727395B (zh) * 2018-07-17 2023-08-08 慧荣科技股份有限公司 闪存控制器、方法及存储装置
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN112148631B (zh) * 2020-09-25 2023-05-26 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN117891415A (zh) * 2024-03-18 2024-04-16 深圳星火半导体科技有限公司 一种存储装置的p2l数据管理方法及装置
CN117891415B (zh) * 2024-03-18 2024-05-24 深圳星火半导体科技有限公司 一种存储装置的p2l数据管理方法及装置

Also Published As

Publication number Publication date
KR20130051032A (ko) 2013-05-20
KR101392174B1 (ko) 2014-05-09

Similar Documents

Publication Publication Date Title
WO2013069859A1 (ko) 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
WO2013024952A1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
US9152349B2 (en) Automated information life-cycle management with thin provisioning
KR102421075B1 (ko) 스트림 감지기를 포함하는 메모리 장치 및 그것의 동작 방법
KR100389867B1 (ko) 플래시 메모리 관리방법
JP5976980B1 (ja) 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
WO2012008732A2 (ko) 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
WO2010093114A1 (ko) 고체 상태 디스크 시스템에서 버퍼 캐시의 프로그래밍 방법 및 장치
US9423984B2 (en) Storage apparatus and control method thereof
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
US20190332329A1 (en) Optimization of log-structured merge (lsm) tree-based databases using object solid state drive (ssd) devices
CN1476562A (zh) 用于快闪存储器的记入后直写式高速缓存
WO2012121559A2 (ko) 복사 명령 및 이동 명령을 지원하는 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법
KR100526178B1 (ko) 플래시 메모리 액세스 장치 및 방법
US20100287330A1 (en) Method for writing data into flash memory
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2009126011A2 (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
JP2019028954A (ja) ストレージ制御装置、プログラム、及び重複排除方法
WO2012008731A2 (ko) 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
WO2014142427A1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
WO2010107173A1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2017116186A1 (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: 12847032

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12847032

Country of ref document: EP

Kind code of ref document: A1