WO2013024952A1 - 메모리 컨트롤러 및 이의 데이터 관리방법 - Google Patents

메모리 컨트롤러 및 이의 데이터 관리방법 Download PDF

Info

Publication number
WO2013024952A1
WO2013024952A1 PCT/KR2012/001354 KR2012001354W WO2013024952A1 WO 2013024952 A1 WO2013024952 A1 WO 2013024952A1 KR 2012001354 W KR2012001354 W KR 2012001354W WO 2013024952 A1 WO2013024952 A1 WO 2013024952A1
Authority
WO
WIPO (PCT)
Prior art keywords
pages
block
blocks
page
hot
Prior art date
Application number
PCT/KR2012/001354
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 WO2013024952A1 publication Critical patent/WO2013024952A1/ko
Priority to US14/177,924 priority Critical patent/US9304905B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Definitions

  • the present invention relates to a memory controller and a data management method thereof, and more particularly, to a data management technology that can consider wear leveling while minimizing performance degradation of a flash memory device.
  • Flash memory is a nonvolatile memory capable of electrically writing or erasing data, and can be rewritten within a limited number of times. Flash memory does not erase stored information even when the power is turned off.It is widely used as a storage device for portable electronic devices such as digital cameras, PDAs, MP3 players and mobile phones due to its low power consumption, fast operation speed, and excellent durability. Recently, it is used in various fields such as solid state disk (SSD) and turbo memory. Hereinafter, the structure of a flash memory will be described with reference to Korean Patent Publication No. 2011-0016320.
  • FIG. 1A is a diagram illustrating a general structure of a flash memory
  • FIG. 1B is a diagram illustrating one page in detail in (a).
  • a flash memory may be divided into a plane including a plurality of blocks, and one block is divided into a plurality of pages.
  • One page is divided into a sector, which is an area in which data is stored, and a spare, which is an area in which information related to data stored in the sector is stored.
  • the host or the file system may recognize the sector area, but the spare area is an area managed by the flash translation layer (FTL). Since the information regarding the data stored in the sector is recorded in the spare area, information about the data stored in the corresponding sector area can be obtained by referring to the spare area.
  • FTL flash translation layer
  • flash memory In flash memory, write operations are performed in units of pages, and erase operations are performed in units of blocks.
  • the host transmits data in sector units to the flash memory storage device, and the storage device must allocate a specific page in which the input data is to be stored.
  • an overwrite operation cannot be performed, and an erase before write operation must be performed to overwrite new data in a block that is already used, that is, in which data is written.
  • the number of times that the flash memory can be erased is limited to about 100,000 times in the case of SLC (Single Level Cell), and about 10,000 times in the case of MLC (Multi-Level Cell).
  • Flash Translation Layer FTL
  • the conventional wear leveling algorithms consider only wear leveling, it is assumed that the conventional wear leveling algorithm has a separate performance improvement algorithm that efficiently uses read, write, and erase (erase) operations.
  • the hardware constraint refers to the limit of the number of partial programming of the flash memory.
  • Partial programming constraints refer to the number of times a page can be accessed. For example, if the total number of accesses allowed by flash memory is three, but the performance improvement algorithm consumes two, the wear leveling algorithm can only use one access. Wear leveling algorithms that require more than one partial programming will be disabled.
  • the conventional wear leveling technique has a common feature that the wear leveling is performed periodically according to a predetermined time or a certain number of calculations. Such a method causes a large variation in the performance of the flash memory depending on the type of write operation.
  • all the erase counts (ECN: erase count) performed on each block are retrieved by a read operation, and the information of two blocks having a certain number of deviations is replaced. do. Since such an algorithm performs wear leveling periodically without a condition according to time or a certain number of operations, unnecessary read and write operations for information inquiry occur even when wear leveling is not required.
  • An object of the present invention is to provide a data management technique that can consider wear leveling while minimizing performance degradation of a flash memory device.
  • an object of the present invention is to provide a technique that can consider the performance and wear leveling at the same time, rather than performing a separate wear leveling according to a predetermined time or a certain number of calculations.
  • the present invention minimizes the occurrence of a separate read or write operation for leveling the wear after the merge operation (merge operation), and improved merge operation process that can maximize the effect of the wear leveling in the merge operation process It is for the purpose of presentation.
  • a memory controller managing a correspondence between a logical address and a physical address of a memory including a plurality of blocks including a plurality of pages according to the present invention, wherein the memory controller includes a hot page determination unit and an address conversion unit.
  • the hot page determiner divides pages in a block into hot pages and cold pages according to predetermined criteria. If there are a plurality of divided hot pages, the address translator places each of the divided hot pages in different target blocks.
  • a hot page and a cold page are distinguished in a merge operation and each hot page is distributed to empty blocks, an erase operation that can be concentrated in a specific physical block can be avoided.
  • the wear leveling can be efficiently performed.
  • the wear leveling is considered in the process of performing the merge operation, since there is no unnecessary information inquiry after the merge operation for leveling the wear level, the performance of the flash memory device can be maximized and its service life can be increased.
  • At least one or more Victim blocks are selected from among data blocks not including the hot pages, and at least a part of the cold pages of the Victim blocks are selected from the plurality of target blocks.
  • 1A is a diagram illustrating a general structure of a flash memory.
  • FIG. 1B is a diagram illustrating one page in detail in FIG. 1A.
  • FIG. 2 is a diagram illustrating a configuration of a flash memory device according to an embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a comparison between a case in which a big team block is considered and a case in which hot pages are distributed.
  • FIG. 4 is a flowchart illustrating a data management method of a memory controller according to an embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a case of merging using Victim block when distributing hot pages.
  • FIG. 6 is a diagram illustrating a data management method of FIG. 5.
  • FIG. 7 is a diagram illustrating a case in which mapping information between logical blocks and physical blocks is managed in a separate table after an improved merge operation according to the present invention.
  • a memory controller managing a correspondence between a logical address and a physical address of a memory including a plurality of blocks including a plurality of pages according to the present invention, wherein the memory controller includes a hot page determination unit and an address conversion unit.
  • the hot page determiner divides pages in a block into hot pages and cold pages according to predetermined criteria. If there are a plurality of divided hot pages, the address translator places each of the divided hot pages in different target blocks.
  • FIG. 2 is a diagram illustrating a schematic configuration of a flash memory device according to an embodiment of the present invention.
  • the flash memory device 300 includes a memory 100, a memory controller 200, and the like.
  • the flash memory device 300 includes not only an independent device for data storage, such as an SSD or a USB memory, but also a case in which the flash memory device 300 is embedded in portable devices such as a digital camera and an MP3 player. It is electrically connected to a host (host) 10, such as a PC, a laptop through.
  • the host 10 may or may not use the file system 12. If the host 10 uses the file system 12, the application 11 may read, write, delete, or update data stored in the form of a file in the flash memory device 300 through the file system 12. have. If the host 10 does not use the file system 12, the application 11 may read, write, delete, or update data in the flash memory device 300 by simply referring to an address.
  • the memory controller 200 drives the interface 210 and the memory 100 to read, write, and erase data. Read / write operations occurring in the memory 100 are performed in units of pages, and erase operations are performed in units of blocks. In addition, since the memory controller 200 cannot perform an overwrite operation on an already written page due to its physical characteristics, the memory controller 200 performs an erase operation before the write operation, and during the write operation, data input through the interface 210 is stored. Determine the location and record the data in the determined location.
  • the memory controller 200 converts data input / output requests from the outside according to the characteristics of the memory 100 by using a flash translation layer (FTL) algorithm.
  • FTL flash translation layer
  • the flash translation layer uses a page-based FTL, It is classified into block based FTL and hybrid based FTL. Detailed descriptions of the classified techniques may be easily understood from related publicly known technologies and technical literature, and thus the following description is omitted (for example, Korean Patent Publication No. 2011-0012062).
  • the memory controller 200 receives a logical address from the application 11 or the file system 12, and converts the logical address into a physical address. That is, the memory controller 200 manages a correspondence between a logical address and a physical address of the memory 100, allocates a physical block in which the corresponding data is stored in order to record data in the memory 100, and allocates a physical block.
  • the address mapping table stored in the RAM 220 in the memory controller 200 is referred to.
  • the address mapping table includes mapping information between a logical block number (LBN) of a data block input from the host 10 and a physical block number (PBN) of each physical block in memory. With this mapping information, the logical block number can be converted into a physical block number.
  • LBN logical block number
  • PBN physical block number
  • the logical block number is a number assigned by the host 10 for each data block
  • the physical block number is a number sequentially assigned to respective physical blocks in the memory.
  • FIG. 2B is a diagram illustrating an example of a plurality of physical blocks corresponding to a logical block having one logical address.
  • the file system can freely update the data of one page several times. However, since physical overwrite cannot be physically overwritten in the actual flash memory, the flash translation layer writes the newly updated version of the page data to the next page (blank page) of the same physical block, and the data of the previous version of the updated page. Invalidates and displays a physical page that stores. Physical blocks containing invalidated data may also be referred to as dirty blocks.
  • the flash translation layer selects another physical block (empty block) in addition to the currently active physical block, and selects the selected empty block as the current logical address.
  • the first physical block that directly corresponds to the logical block number LBN is referred to as a data block, and the corresponding physical block may also be referred to as a log block.
  • FIG. 2B an example in which four physical blocks correspond to one LBN is illustrated.
  • the first physical block among the four physical blocks may be expressed as a data block and the remaining three physical blocks as a log block.
  • the flash translation layer performs an operation to collect data (physical data corresponding to one LBN) in one physical block, which are distributed at physically different locations. This operation is called a merge operation.
  • the latest version of data is stored in one physical block (empty block, target block).
  • the order in which the data is stored may be stored according to a logical page address, which may be referred to as an in-place.
  • the memory controller 200 includes a hot page determiner 230, an address converter 240, and the like.
  • the hot page determiner 230 divides pages in a block into hot pages and cold pages according to a predetermined criterion, and information related thereto is temporarily stored in the RAM 220.
  • the predetermined criterion includes at least one of an update frequency of a page or an attribute (characteristic) of data to be recorded on the page. That is, the page is defined as a hot page in consideration of the page in which frequent updates occur or the property of a file stored in the page.
  • the attributes of a file are meta information about the file, which means the creation / modification date or extension of the file.
  • the creation date of the file is recent, the modification date of the file is recorded several times, or the extension of the file is It could be a documentation program that can be modified many times, such as hwp, doc, ppt, xls, txt, and so on.
  • the predetermined criterion is the update frequency of the page, the number of times may be two or more times, or the number (a) determined by the user's intention, and the present invention is not limited thereto.
  • the address conversion unit 240 may distinguish each of the divided hot pages from each other when there are a plurality of the divided hot pages. Place in target blocks.
  • the target block is a physical block to which data stored in the physical block is to be copied.
  • the address conversion unit 240 copies data stored in at least one existing physical block corresponding to a logical block to a target block, and defines the target block as an information block. After deleting the at least one existing physical block, it is defined as an empty block.
  • the information block is a block in which data is stored
  • the empty block is a block in which no data is stored and thus is empty.
  • the address conversion unit 240 sequentially arranges the divided cold pages in the remaining pages of the target blocks. If the predetermined criterion is the number of times the page is updated, the hot page determination unit 230 searches for a page with the number of a or more, defines a page with a or more as a hot page, and defines a page less than a as a cold page. .
  • the general merge operation or the improved merge operation is determined according to the total number of divided hot pages. In other words, when the number of hot pages is zero or one, the general merge operation is performed. When the number of hot pages is two or more, the hot pages must be distributed. Thus, the merge operation is improved according to the present invention.
  • the memory controller 200 searches for a target block to move valid data from an existing information block. After valid data stored in the information block is copied to the target block, the target block is defined as a new information block, an erase operation is performed on the existing information block, and the existing information block is defined as an empty block. do.
  • the improved merge operation proceeds as follows.
  • the memory controller 200 searches for a target block to be defined as a new information block, and moves only one hot page to the target block without copying all valid data in the existing information block to the target block.
  • the rest of the target block is filled with cold pages, the target block is defined as a new information block, and the existing information blocks are deleted.
  • the address conversion unit 240 records page addresses of pages located in a physical block different from the physical block corresponding to the existing logical block in a separate address mapping table, and when searching the corresponding information of the logical block and the physical block. To enable quick inquiry.
  • the hot pages are distinguished from the cold pages, and each of the hot pages is distributed to the empty blocks, thereby avoiding an erase operation that can be concentrated on a specific physical block, thereby efficiently leveling wear. Can be done.
  • the wear level since the merge operation is performed and the wear level is considered and there is no unnecessary information inquiry for the wear level, there is an effect of maximizing the performance of the flash memory device and increasing its service life.
  • the address conversion unit 240 selects at least one or more victor blocks including only a cold page and not a hot page, and the cold page of the Victim block. At least a part of is distributed in a plurality of target blocks. This improved merging operation allows data to be stored in the same number of physical blocks as the LBN and erases older versions of blocks to make enough available storage space.
  • each of the hot pages is placed in an empty block (target block), and cold pages of the Victim block are placed in the target block.
  • the address conversion unit 240 may select a block having an erase count of less than or equal to a predetermined reference value among the existing data blocks that do not include a hot page as the Victim block for leveling wear.
  • FIGS. 5 and 6 A data management method of a memory controller according to an exemplary embodiment of the present invention will be described with reference to the exemplary diagrams illustrated in FIGS. 5 and 6 in addition to the flowchart illustrated in FIG.
  • the predetermined criterion includes at least one of an update frequency of a page or an attribute (characteristic) of data to be written to the page. That is, the page is defined as a hot page in consideration of the page in which frequent updates occur or the attributes of a file stored in the page. The hot page is stored in the hot page, and the cold data is stored in the cold page.
  • the attribute of a file is meta information about a file and means a file creation / modification date or extension.
  • the predetermined criterion is the update frequency of a page is illustrated, and the number of times may be two or more times, or a number determined by a user's intention, and the present invention is not limited thereto.
  • step S410 pages in the physical block are classified into a hot page and a cold page.
  • step S420 if there are other pages other than the divided hot page and cold page, all pages may be classified as a hot page or a cold page.
  • the target block B is searched to move valid data from the existing information block A.
  • the information block is a block in which data is stored
  • the target block is a physical block to which data stored in the physical block is to be copied.
  • Target block B is defined as a new information block.
  • the divided hot pages are disposed in different target blocks, and the divided cold pages are sequentially disposed on the remaining pages of the target blocks. .
  • a target block to be defined as a new information block is searched.
  • the target block is defined as a new information block.
  • An existing information block is erased and the existing information block is defined as an empty block.
  • the hot page and the cold page are distinguished, and the hot pages are evenly distributed to the free blocks, respectively, so that an erase operation that can be concentrated on a specific physical block can be avoided, so that efficient wear leveling is performed. can do.
  • a Victim block having an erase count of less than or equal to a predetermined reference value is selected (S564), and at least a part of the cold page of the Victim block is distributed to the plurality of target blocks. (S565).
  • the target block is defined as a new information block (S566), the existing information block is deleted, and the existing information block is defined as an empty block (S567).
  • Hot pages (hot page 1, 2) are arranged respectively.
  • hot page distribution proceeds as follows.
  • the batch may divide and divide cold pages 2 into cold pages ⁇ and ⁇ as shown in (b) in consideration of the remaining space in which data may be stored in PBN 10 and 11 (4).
  • pages located in a physical block different from the physical block corresponding to the existing logical block by an improved merge operation are managed by a separate address mapping table as shown in FIG.
  • the data corresponding to Logical Sector Number (LSN) 53 to 63 and the data corresponding to LSN 32 to 52 are data belonging to the same LBN, but the data corresponding to LSN 53 to 63 are improved by the improved merge operation of the present invention.
  • Data corresponding to LSNs 32 to 52 are stored in different physical blocks.
  • the LBN to PBN mapping table maps and stores LBNs corresponding to LSNs 32 to 63 and PBN 11 (physical addresses of physical blocks to which LSNs 32 to 52 belong), and correspond to LSNs 53 to 63 stored separately in PBN 10.
  • the physical address (PSN) is stored and managed in a separate address mapping table of FIG. 7.
  • the data management method is implemented in the form of program instructions that can be executed by various computer means may be recorded on 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.
  • Examples of 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 data management technique that can consider wear leveling while minimizing performance degradation of a flash memory device.
  • the memory controller includes a hot page determination unit and an address conversion unit.
  • the hot page determiner divides pages in a block into hot pages and cold pages according to predetermined criteria. If there are a plurality of divided hot pages, the address translator places each of the divided hot pages in different target blocks.
  • the hot page and the cold page are distinguished, and each hot page is distributed to the empty blocks, thereby eliminating an erase operation that can be concentrated on a specific physical block, thereby efficiently leveling wear. Can be done.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 플래시 메모리 장치의 성능 저하를 최소화하면서 마모도 평준화를 고려할 수 있는 데이터 관리 기술에 관한 것이다. 이를 위해, 본 발명에 따른 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러에 있어서, 메모리 컨트롤러는 핫 페이지 판정부 및 주소 변환부를 포함한다. 상기 핫 페이지 판정부는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분한다. 주소 변환부는 상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치한다. 이러한 구성에 의하면, 합병 연산 시, 핫 페이지와 콜드 페이지를 구별하여, 핫 페이지들 각각을 빈 블록들에 분배함으로써, 특정 물리 블록에 집중될 수 있는 소거 연산을 피할 수 있으므로, 효율적으로 마모도 평준화를 수행할 수 있다.

Description

메모리 컨트롤러 및 이의 데이터 관리방법
본 발명은 메모리 컨트롤러 및 이의 데이터 관리방법에 관한 것으로, 보다 상세하게는 플래시 메모리 장치의 성능 저하를 최소화하면서 마모도 평준화를 고려할 수 있는 데이터 관리 기술에 관한 것이다.
플래시 메모리(Flash Memory)는 데이터를 전기적으로 기록 또는 소거할 수 있는 비휘발성 메모리로써, 한정된 횟수 내에서 재기록이 가능하다. 플래시 메모리는 전원이 꺼져도 저장된 정보가 지워지지 않으며, 낮은 소비전력, 빠른 동작속도, 뛰어난 내구성 등의 장점으로 인해 디지털 카메라, PDA, MP3 player, 핸드폰 등의 휴대형 전자기기들의 저장장치로 폭넓게 이용되고 있으며, 최근에는 SSD(Solid State Disk)나 터보 메모리 등 다양한 분야에서 사용되고 있다. 이하, 국내공개특허 제2011-0016320호를 참조하여 플래시 메모리의 구조를 살펴보면 다음과 같다.
도 1의 (a)는 플래시 메모리의 일반적인 구조를 나타낸 도면이고, (b)는 (a)에서 하나의 페이지를 구체적으로 나타낸 도면이다.
도 1에 도시된 바와 같이, 플래시 메모리는 복수개의 블록(block)들을 포함하는 플레인(plane)으로 구분될 수 있으며, 하나의 블록은 다시 복수개의 페이지(page)로 나누어진다. 하나의 페이지는 데이터가 저장되는 영역인 섹터(sector)와, 섹터에 저장된 데이터에 관련된 정보가 저장되는 영역인 스페어(spare)로 구분된다. 이 때 호스트(host) 또는 파일시스템(file system)은 섹터 영역을 인식할 수 있으나, 스페어 영역은 플래시 변환 계층(FTL)에 의하여 관리되는 영역이다. 스페어 영역에는 섹터에 저장된 데이터에 관한 정보가 기록되므로, 스페어 영역을 참조하면 해당 섹터 영역에 저장된 데이터에 관한 정보를 획득할 수 있다. 설명의 편의 상 도 1에는 하나의 페이지에 하나의 섹터가 포함되는 예가 도시되었으나, 하나의 페이지는 둘 이상의 섹터를 포함할 수도 있다. 또한 표현하기에 따라서는 도 1에 도시된 섹터 영역을 데이터 영역이라 지칭하고, 데이터 영역과 스페어 영역을 함께 포함하여 섹터라 지칭하는 경우도 있을 수 있으나, 이는 표현의 차이가 있을 뿐이고, 실질적으로 나타내고자 하는 기술적 특징은 도 1에 도시된 바와 같다.
플래시 메모리에서 쓰기 연산은 페이지 단위로 수행되며, 소거 연산은 블록 단위로 수행된다. 플래시 메모리에 데이터를 기록하기 위해서, 호스트(host)는 플래시 메모리 저장장치에 섹터 단위로 데이터를 전송하며, 저장장치는 입력되는 데이터가 저장될 특정 페이지를 할당해야 한다. 플래시 메모리에서는 덮어쓰기(overwrite) 연산을 수행할 수 없으며, 이미 사용된, 즉 데이터가 기록된 블록에 새로운 데이터를 덮어쓰기 위해서는 쓰기 전에 소거(erase before write) 연산을 수행해야 한다. 플래시 메모리를 소거할 수 있는 횟수는 SLC(Single Level Cell)의 경우 약 10만번으로 제한되며, MLC(Multi-Level Cell)의 경우 약 1만번으로 제한된다.
이러한 소거 횟수의 제한을 극복하기 위해서는 플래시 메모리 내 특정 블록이 집중적으로 반복하여 사용되어 다른 블록들에 비해 빠르게 마모되는 것을 방지하고, 데이터를 각 블록에 골고루 분배함으로써, 모든 블록의 마모가 균등하게 발생하도록 하는 마모도 평준화(wear-leveling)가 필요하다. 이런 성질들을 고려하면서 플래시 메모리의 성능을 극대화시키고, 마모도 평준화를 수행하여 수명을 연장시키는 것이 소프트웨어 계층인 플래시 변환 계층(FTL: Flash Translation Layer)의 역할이다.
플래시 메모리에서 종래의 마모도 평준화 기법에 관한 기술이 한국공개특허 제10-2008-0033649호 "머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그 관리 방법"에 설명되었다. 본 선행기술에 따르면, 머지 동작(merge operation, 합병 연산)이 수행된 후, 해당 데이터의 업데이트 빈도를 체크하여 이들에 대한 마모도 평준화를 위한 별도의 구획 할당 및 조정 연산이 수행된다.
이러한 기존의 마모도 평준화 알고리즘들은 오직 마모도 평준화만을 고려한 알고리즘이기 때문에, 읽기, 쓰기, 지우기(소거) 연산을 효율적으로 사용하는 별도의 성능 향상 알고리즘을 지니고 있다는 것을 가정한다. 하지만, 두 가지 분야의 알고리즘을 하나의 플래시 변환 계층으로 이행하는 것은 하드웨어적 제약으로 구현 불가능하다. 여기서, 하드웨어적 제약이란 플래시 메모리의 부분 프로그래밍(partial programming)의 횟수 제한을 말한다. 부분 프로그래밍 제약이란, 하나의 페이지에 접근할 수 있는 횟수를 말한다. 예를 들어, 플래시 메모리가 허용하는 총 접근 횟수가 3회인데, 성능 향상 알고리즘이 2회를 소모하게 되면, 마모도 평준화 알고리즘이 사용할 수 있는 접근 횟수는 1회에 불과하다. 부분 프로그래밍을 2회 이상 필요로 하는 마모도 평준화 알고리즘들은 사용하지 못하게 된다.
또한, 기존의 마모도 평준화 기법은 일정 시간이나 일정 횟수의 연산에 따라 마모도 평준화를 주기적으로 수행한다는 공통점을 지니고 있다. 이와 같은 방법은 쓰기 연산의 유형에 따라 플래시 메모리의 성능에 많은 편차를 발생시킨다. 기존의 마모도 평준화 알고리즘의 경우, 각 블록에 수행된 지우기 연산의 횟수(ECN: erase count number)를 읽기 연산으로 모두 조회한 후, 일정 수의 편차가 발생된 두 블록의 정보들을 교체하는 작업을 수행한다. 이와 같은 알고리즘은 마모도 평준화를 시간에 따라 또는 일정 연산 횟수에 따라 조건 없이 주기적으로 수행하기 때문에, 마모도 평준화가 필요하지 않을 경우에도 정보 조회를 위한 불필요한 읽기 연산과 쓰기 연산이 발생하게 된다. 예를 들어, 일정 시간이 지났지만 오직 읽기 연산만이 수행되었을 경우나, 많은 쓰기 연산이 수행되었지만 모두 고르게 분포되어 지우기 연산이 수행되지 않는 경우에는 마모도 평준화가 불필요함에도 불구하고 정보 조회를 위한 연산이 발생한다는 것이다.
따라서 플래시 메모리 장치의 성능 저하를 최소화하면서 마모도 평준화를 고려할 수 있는 데이터 관리 기술이 필요하다.
본 발명은 플래시 메모리 장치의 성능 저하를 최소화하면서 마모도 평준화를 고려할 수 있는 데이터 관리 기술을 제공하는 것을 목적으로 한다.
또한, 본 발명은 일정 시간 또는 일정의 연산 횟수에 따라 별도의 마모도 평준화를 수행하는 것이 아니라, 성능과 마모도 평준화를 동시에 고려할 수 있는 기술을 제공하는 것을 목적으로 한다. 특히 본 발명은 합병 연산(merge operation)이 수행된 이후 마모도 평준화를 위한 별도의 읽기 또는 쓰기 연산이 발생하는 것을 최소화하고, 합병 연산 과정에서 마모도 평준화의 효과를 극대화할 수 있는 개선된 합병 연산 과정을 제시하는 것을 목적으로 한다.
이러한 목적을 달성하기 위하여 본 발명에 따른 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러에 있어서, 메모리 컨트롤러는 핫 페이지 판정부 및 주소 변환부를 포함한다. 상기 핫 페이지 판정부는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분한다. 주소 변환부는 상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치한다.
이상에서 설명한 바와 같이 본 발명에 의하면, 합병 연산 시, 핫 페이지와 콜드 페이지를 구별하여, 핫 페이지들 각각을 빈 블록들에 분배함으로써, 특정 물리 블록에 집중될 수 있는 소거 연산을 피할 수 있으므로, 효율적으로 마모도 평준화를 수행할 수 있다.
또한, 본 발명에서는 합병 연산을 수행하는 과정에서 마모도 평준화가 고려되므로, 마모도 평준화를 위한 합병 연산 이후의 불필요한 정보 조회가 없기 때문에, 플래시 메모리 장치의 성능을 최대화하고, 그 사용 연한을 늘릴 수 있다.
또, 본 발명에서는 구분된 핫 페이지가 복수개이면, 핫 페이지를 포함하지 않는 데이터 블록 가운데 적어도 하나 이상의 빅팀 블록(victim block)을 선택하고, 상기 빅팀 블록의 콜드 페이지의 적어도 일부를 복수의 타겟 블록들에 분산하여 배치함으로써, 데이터 저장의 효율과 마모도 평준화 효과를 높일 수 있어, 플래시 메모리 장치의 성능이 저하되는 것을 최소화할 수 있다.
도 1의 (a)는 플래시 메모리의 일반적인 구조를 나타낸 도면이다.
도 1의 (b)는 도 1의 (a)에서 하나의 페이지를 구체적으로 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 플래시 메모리 장치의 구성을 나타낸 도면이다.
도 3은 핫 페이지들의 분배 시, 빅팀 블록을 고려한 경우와 아닌 경우를 비교하여 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 메모리 컨트롤러의 데이터 관리방법의 흐름을 나타낸 도면이다.
도 5는 핫 페이지들의 분배 시, 빅팀 블록을 이용하여 합병하는 경우의 흐름을 나타낸 도면이다.
도 6은 도 5에 의한 데이터 관리방법을 나타낸 도면이다.
도 7은 본 발명에 따라 개선된 합병 연산 후, 논리 블록과 물리 블록 간의 매핑 정보를 별도의 테이블로 관리하는 경우를 나타낸 도면이다.
이러한 목적을 달성하기 위하여 본 발명에 따른 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러에 있어서, 메모리 컨트롤러는 핫 페이지 판정부 및 주소 변환부를 포함한다. 상기 핫 페이지 판정부는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분한다. 주소 변환부는 상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치한다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다. 또한 본 발명의 실시예들을 설명함에 있어 구체적인 수치는 실시예에 불과하며, 설명의 편의와 이해를 위하여 실제와는 달리 과장된 수치가 제시되었을 수 있다.
<장치에 대한 설명>
도 2는 본 발명의 일실시예에 따른 플래시 메모리 장치의 개략적인 구성을 도시한 도면이다.
도 2(a)를 참조하면, 플래시 메모리 장치(300)는 메모리(100)와 메모리 컨트롤러(200) 등을 포함한다. 본 발명에서 플래시 메모리 장치(300)는 SSD나 USB 메모리와 같은 데이터 저장을 위한 독립된 디바이스뿐만 아니라 디지털 카메라, MP3 player 등과 같은 휴대형 장치들에 내장되어 구현되는 경우를 모두 포함하며, 인터페이스(210)를 통해 PC, 노트북 등의 호스트(host)(10)와 전기적으로 연결된다. 호스트(10)는 파일 시스템(12)을 사용할 수도 있고, 사용하지 않을 수도 있다. 파일 시스템(12)을 사용하는 호스트(10)라면, 어플리케이션(11)은 파일 시스템(12)을 통해 플래시 메모리 장치(300)에 파일의 형태로 저장된 데이터를 읽거나, 쓰거나, 삭제 또는 갱신할 수 있다. 파일 시스템(12)을 사용하지 않는 호스트(10)라면, 어플리케이션(11)은 단순히 주소만 참고하여 플래시 메모리 장치(300)에 데이터를 읽거나, 쓰거나, 삭제 또는 갱신할 수 있다.
메모리 컨트롤러(200)는 인터페이스(210) 및 메모리(100)를 구동하여 데이터를 읽고(read), 쓰고(write), 소거(erase)한다. 메모리(100)에서 발생하는 읽기/쓰기 작업은 페이지의 단위로 수행되며, 소거 작업은 블록의 단위로 수행된다. 그리고 메모리 컨트롤러(200)는 물리적 특성상 이미 써진 페이지에 덮어쓰기(overwrite) 작업을 수행할 수 없으므로, 쓰기 동작 전에 소거 동작을 수행하며, 쓰기 연산 시, 인터페이스(210)를 통해 입력되는 데이터가 저장되는 위치를 결정하고, 결정된 위치에 데이터를 기록한다.
이러한 메모리 컨트롤러(200)는 플래시 변환 계층(FTL) 알고리즘을 이용하여 외부로부터의 데이터 입출력 요청을 메모리(100)의 특성에 맞게 변환시키는데, 일반적으로 플래시 변환 계층은 주소 매핑 기법에 따라 페이지 기반 FTL, 블록 기반 FTL 및 하이브리드 기반 FTL로 분류된다. 상기 분류된 기법들에 대한 상세한 설명은 관련 공지기술 및 기술문헌으로부터 용이하게 파악될 수 있으므로, 이하 설명은 생략한다(예를 들어, 국내공개특허 제2011-0012062호).
상기 메모리 컨트롤러(200)는 어플리케이션(11)이나 파일 시스템(12)으로부터 논리 주소(logical address)를 입력받아, 이를 물리 주소(physical address)로 변환한다. 즉, 메모리 컨트롤러(200)는 메모리(100)의 논리 주소와 물리 주소 간의 대응을 관리하고, 메모리(100)에 데이터를 기록하기 위해서 해당 데이터가 저장되는 물리 블록을 할당하며, 물리 블록을 할당하기 위해서 메모리 컨트롤러(200) 내의 RAM(220)에 저장된 주소 매핑 테이블(address mapping table)을 참조한다.
여기서, 주소 매핑 테이블은 호스트(10)로부터 입력되는 데이터 블록의 논리 블록 번호(LBN: Logical Block Number)와 메모리 내 각 물리 블록의 물리 블록 번호(PBN: Physical Block Number) 간의 매핑 정보를 포함하며, 이러한 매핑 정보로 논리 블록 번호를 물리 블록 번호로 변환할 수 있다. 일반적으로 논리 블록 번호는 데이터 블록마다 호스트(10)에 의해 할당되는 번호이고, 물리 블록 번호는 메모리 내의 각 물리 블록들에 순차적으로 할당되는 번호이다.
도 2(b)는 하나의 논리 주소를 가지는 논리 블록에 대응하는 복수의 물리 블록들의 일 예를 도시하는 도면이다.
파일 시스템은 하나의 페이지의 데이터를 자유롭게 여러 차례 갱신(update)할 수 있다. 그러나 실제 플래시 메모리에서는 물리적으로 덮어쓰기가 이루어질 수 없으므로, 플래시 변환 계층은 동일한 물리 블록의 다음 페이지(빈 페이지)에 새롭게 갱신된 버전의 페이지 데이터를 쓰고(write), 갱신된 페이지의 이전 버전의 데이터를 저장하는 물리 페이지를 무효화(invalid)하여 표시한다. 무효화된 데이터를 포함하는 물리 블록을 더티 블록(dirty block)이라 표현하기도 한다.
이처럼 파일 시스템에서 하나의 페이지 또는 복수의 페이지들에 대한 데이터의 갱신이 반복되면, 플래시 변환 계층은 현재 활성화된 물리 블록 이외에 다른 물리 블록(빈 블록)을 선택하고, 선택된 빈 블록을 현재의 논리 주소에 추가적으로 대응시킨다. 이 때, 논리 블록 번호(LBN)와 직접적으로 대응하는 최초의 물리 블록을 데이터 블록(data block)이라 하고, 추가적으로 대응되는 물리 블록을 로그 블록(log block)이라 표현하기도 한다.
도 2(b)에서는 하나의 LBN에 4개의 물리 블록들이 대응하는 경우의 예가 도시되었다. 4개의 물리 블록들 중 최초의 물리 블록을 데이터 블록, 나머지 3개의 물리 블록들을 로그 블록이라 표현할 수 있다.
파일 시스템에서 데이터의 갱신이 반복됨에 따라 물리적으로 많은 수의 블록들이 하나의 LBN에 대응하기 위하여 이용된다. 따라서 파일 시스템이 파악하고 있는 것보다 실제로 플래시 메모리의 가용(available) 저장 공간이 빠르게 감소할 수 있다. 플래시 메모리의 물리적인 가용 저장 공간이 일정한 임계 수준보다 감소하면, 플래시 변환 계층은 물리적으로 상이한 위치에 분포하고 있는 데이터(하나의 LBN에 대응하는 데이터)를 하나의 물리 블록에 모으기 위한 연산을 수행하는데, 이러한 연산을 합병 연산(merge operation)이라 한다.
합병 연산이 수행되면 최신 버전의 데이터가 하나의 물리 블록(빈 블록, 타겟 블록)에 저장된다. 이 때, 저장되는 순서는 논리 페이지 주소에 맞게 저장될 수 있는데, 이를 인-플레이스(in-place)라 표현하기도 한다.
최신 버전의 데이터가 새로운 타겟 블록에 모두 저장되면, 이전 버전의 데이터가 저장된 물리 블록들은 소거(erase)되어 가용 저장 공간을 만들어 낸다.
합병 연산 자체는 각 블록들의 정보를 조회하기 때문에 마모도 평준화에 영향을 미치고, 플래시 메모리 장치의 연한이 감소하는 요인이 될 수 있다. 이에 따라, 본 발명에서는 합병 연산을 수행하는 과정에서 마모도 평준화를 고려하여, 마모도 평준화를 위한 불필요한 정보 조회가 없도록 하고 있다. 일반적인 마모도 평준화에 대한 상세한 설명은 공지기술로서 이미 배경기술에서 살펴보았으므로, 이에 관한 설명은 생략하기로 하고, 이하 합병 연산 시 마모도 평준화를 고려하는 본 발명의 기술에 관하여 살펴보기로 한다.
본 발명에 따른 메모리 컨트롤러(200)는 도 2에 도시된 바와 같이, 핫 페이지 판정부(230)와 주소 변환부(240) 등을 포함한다.
핫 페이지 판정부(230)는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분하며, 이와 관련된 정보들은 일시적으로 RAM(220)에 저장된다. 상기 소정의 기준은 페이지의 업데이트 빈도 또는 페이지에 기록할 데이터의 속성(특성) 중 적어도 하나 이상을 포함한다. 즉, 빈번한 업데이트가 일어나는 페이지나, 페이지에 저장되는 파일의 속성을 고려하여 해당 페이지를 핫 페이지로 정의한다. 파일의 속성은 파일에 관한 메타정보로, 파일의 작성/수정 날짜나 확장자 등을 의미하며, 예를 들어 파일의 작성 날짜가 최근이거나, 파일의 수정 날짜가 여러 번 기록되어 있거나, 파일의 확장자가 hwp나 doc, ppt, xls, txt 등과 같이 여러 번 수정될 가능성이 있는 문서 작성 프로그램일 수 있다. 그리고 상기 소정의 기준이 페이지의 업데이트 빈도인 경우에는 그 횟수가 2번 이상이거나, 사용자의 의도로 정해진 횟수(a)일 수 있으며, 본 발명이 이에 한정되지는 않는다.
한편, 물리 블록이 여러 개의 핫 페이지를 보유할 경우에는 상기 물리 블록에서 빈번한 정보 갱신이 발생하기 때문에, 많은 지우기(소거) 연산이 발생될 수 있다. 따라서 합병 연산 시, 핫 페이지들을 분배하여 마모도 평준화를 수행하는 것이 바람직하며, 이를 위해 본 발명에서 주소 변환부(240)는 상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치한다. 상기 타겟 블록은 물리 블록에 저장된 데이터를 복사할 대상이 되는 물리 블록이다.
주소 변환부(240)는 상기 구분된 핫 페이지가 1개 이하이면, 논리 블록에 대응하는 기존의 적어도 하나 이상의 물리 블록에 저장된 데이터를 타겟 블록으로 복사하고, 상기 타겟 블록을 정보 블록으로 정의하며, 상기 기존의 적어도 하나 이상의 물리 블록을 소거한 후, 빈 블록으로 정의한다. 여기서, 정보 블록은 데이터가 저장된 블록이고, 빈 블록은 데이터가 저장되어 있지 않아 비어있는 블록을 의미한다.
주소 변환부(240)는 타겟 블록들 각각에 상기 구분된 핫 페이지들 각각이 배치되면, 상기 구분된 콜드 페이지들을 상기 타겟 블록들의 나머지 페이지에 순차적으로 배치한다. 만약, 상기 소정의 기준이 페이지의 업데이트 횟수라고 한다면, 핫 페이지 판정부(230)는 상기 횟수가 a이상인 페이지를 찾아, a이상인 페이지를 핫 페이지라고 정의하며, a미만인 페이지를 콜드 페이지라고 정의한다. 그리고 구분된 핫 페이지의 총 개수에 따라 일반 합병 연산을 수행할지, 개선된 합병 연산(핫 페이지들을 분배하는 합병 연산)을 수행할지를 결정한다. 즉, 핫 페이지의 개수가 0개이거나 1개일 때는 일반 합병 연산을 수행하지만, 핫 페이지의 개수가 2개 이상일 때는 핫 페이지를 분배해야 하기 때문에 본 발명에 따라 개선된 합병 연산을 수행한다.
일반 합병 연산은 다음과 같이 진행된다.
먼저, 메모리 컨트롤러(200)는 유효한 데이터를 기존의 정보 블록에서 옮기기 위해 타겟 블록을 검색한다. 그리고 정보 블록에 저장되어 있는 유효한 데이터를 타겟 블록으로 복사한 후, 타겟 블록을 새로운 정보 블록으로 정의하고, 상기 기존의 정보 블록에 소거 연산을 수행한 후, 상기 기존의 정보 블록을 빈 블록으로 정의한다.
개선된 합병 연산은 다음과 같이 진행된다.
먼저, 메모리 컨트롤러(200)가 새로운 정보 블록으로 정의할 타겟 블록을 검색하여, 기존의 정보 블록 내에 모든 유효한 데이터를 타겟 블록으로 복사하지 않고, 오직 하나의 핫 페이지만을 타겟 블록으로 옮긴다. 그리고 타겟 블록의 나머지를 콜드 페이지들로 채우고, 타겟 블록을 새로운 정보 블록으로 정의한 후, 기존의 정보 블록들을 지운다. 여기서, 주소 변환부(240)는 기존의 논리 블록에 대응하는 물리 블록과 다른 물리 블록에 위치하게 된 페이지들의 페이지 주소를 별도의 주소 매핑 테이블에 기록하여, 논리 블록과 물리 블록의 대응 정보 조회 시, 신속한 조회가 가능하도록 한다.
전술한 바와 같이, 합병 연산 시, 핫 페이지와 콜드 페이지를 구별하여, 핫 페이지들 각각을 빈 블록들에 분배함으로써, 특정 물리 블록에 집중될 수 있는 소거 연산을 피할 수 있으므로, 효율적으로 마모도 평준화를 수행할 수 있다. 즉, 본 발명에서는 합병 연산을 수행하는 동시에 마모도 평준화를 고려하여, 마모도 평준화를 위한 불필요한 정보 조회가 없기 때문에, 플래시 메모리 장치의 성능을 최대화하고, 그 사용 연한을 늘릴 수 있는 효과가 있다.
한편, 핫 페이지들 각각이 배치되는 서로 다른 타겟 블록들은 빈 블록들이므로, 핫 페이지들의 수만큼 타겟 블록들을 선택하여 핫 페이지들을 분산시키는 것에 그친다면 다수의 빈 블록들을 소진하게 되어 플래시 메모리 장치(300)의 데이터 저장 효율이 저하될 수 있다. 따라서 본 발명에서 주소 변환부(240)는 상기 구분된 핫 페이지가 복수개이면 핫 페이지를 포함하지 않고 콜드 페이지만을 포함하고 있는 적어도 하나 이상의 빅팀 블록(victim block)을 선택하고, 상기 빅팀 블록의 콜드 페이지의 적어도 일부를 복수의 타겟 블록들에 분산하여 배치한다. 이와 같은 개선된 합병 연산에 의하여 LBN과 동일한 수의 물리 블록들에 데이터가 저장되고 이전 버전의 블록들은 소거됨으로써 가용 저장 공간을 충분히 만들어 낼 수 있다.
예를 들어, 도 3의 (a)에 도시된 바와 같이 하나의 정보 블록 내 2개의 핫 페이지와 콜드 페이지들이 배치되어 있다고 하자. 이 경우, 핫 페이지들 각각을 서로 다른 빈 블록들에 배치하기 위해 2개의 빈 블록을 타겟 블록으로서 할당하고, 기존의 정보 블록에는 소거 연산을 수행하여, 상기 기존의 정보 블록을 빈 블록으로 정의한다. 이는 하나의 정보 블록에 저장된 유효 데이터를 2개의 빈 블록으로 나누어 저장하게 되므로, 플래시 메모리 장치(300)의 가용 저장 공간이 저하되는 요인이 될 수 있다.
하지만, 도 3의 (b)와 같이 핫 페이지 분배 시, 기존의 정보 블록 외에 빅팀 블록을 선택한 후 핫 페이지들 각각을 빈 블록(타겟 블록)에 배치하고, 상기 타겟 블록에 빅팀 블록의 콜드 페이지들을 분산하여 배치하면, 2개의 정보 블록에 저장된 유효 데이터를 2개의 빈 블록으로 나누어 저장하게 되므로, 플래시 메모리 장치(300)의 가용 저장 공간이 줄어들지 않는다. 이때, 주소 변환부(240)는 마모도 평준화를 위해 핫 페이지를 포함하지 않는 기존의 데이터 블록 중 소거 횟수가 소정의 기준치 이하 또는 최소인 블록을 빅팀 블록으로 선택하는 것이 바람직하다.
<방법에 대한 설명>
본 발명의 일실시예에 따른 메모리 컨트롤러의 데이터 관리방법에 대해서 도 4에 도시된 흐름도와 더불어 도 5, 6에 도시된 예시도를 참조하여 설명하되, 편의상 순서를 붙여 설명한다.
1. 페이지들이 소정의 기준을 만족하는지 판단<S410>
메모리(100)의 물리 블록들 내 페이지들이 소정의 기준을 만족하는지 판단하는 단계로, 상기 소정의 기준은 페이지의 업데이트 빈도 또는 페이지에 기록할 데이터의 속성(특성) 중 적어도 하나 이상을 포함한다. 즉, 빈번한 업데이트가 일어나는 페이지나, 페이지에 저장되는 파일의 속성을 고려하여 해당 페이지를 핫 페이지로 정의하며, 핫 페이지에는 핫 데이터가 저장되고, 콜드 페이지에는 콜드 데이터가 저장된다. 파일의 속성은 파일에 관한 메타정보로 파일의 작성/수정 날짜나 확장자 등을 의미한다. 도 4에서는 상기 소정의 기준이 페이지의 업데이트 빈도인 경우가 도시되었으며, 그 횟수가 2번 이상이거나, 사용자의 의도로 정해진 횟수일 수 있으며, 본 발명이 이에 한정되지는 않는다.
한편, 물리 블록이 여러 개의 핫 페이지를 보유할 경우에는 상기 물리 블록에서 빈번한 정보 갱신이 발생하기 때문에, 많은 지우기 연산이 발생될 수 있다. 따라서 합병 연산 시, 핫 페이지들을 분배하여 마모도 평준화를 수행하는 것이 바람직하며, 이를 위해 본 발명에서는 이하 단계들이 수행된다.
2. 핫 페이지와 콜드 페이지 구분<S420>
상기 단계 S410에 의해 물리 블록 내 페이지들을 핫 페이지와 콜드 페이지로 구분한다.
3. 모든 페이지들을 조회하였는지 판단<S430>
상기 단계 S420에서 구분된 핫 페이지와 콜드 페이지 외에 다른 페이지들이 있는지 검색하여, 모든 페이지들이 핫 페이지 또는 콜드 페이지로 구분될 수 있도록 한다.
4. 핫 페이지의 개수가 2개 이상인지 판단<S440>
모든 페이지들이 핫 페이지 또는 콜드 페이지로 구분되었다면, 상기 구분된 핫 페이지가 복수개인지 판단한다.
다음, 상기 구분된 핫 페이지의 총 개수에 따라 일반 합병 연산을 수행할지<S450>, 본 발명에 의해 개선된 합병 연산(핫 페이지들을 분배하는 합병 연산)을 수행할지<S460>를 결정한다. 즉, 핫 페이지의 개수가 0개이거나 1개일 때는 일반 합병 연산을 수행하지만, 핫 페이지의 개수가 2개 이상일 때는 핫 페이지를 분배해야 하기 때문에 개선된 합병 연산을 수행한다.
먼저, 구분된 핫 페이지가 1개 이하인 경우를 살펴보기로 한다.
5. 합병 연산 수행<S450>
5-1. 타겟 블록 검색<S451>
유효한 데이터를 기존의 정보 블록 A에서 옮기기 위해 타겟 블록 B를 검색한다. 본 발명에서 정보 블록은 데이터가 저장된 블록이며, 타겟 블록은 물리 블록에 저장된 데이터를 복사할 대상이 되는 물리 블록이다.
5-2. 타겟 블록으로 복사<S452>
논리 블록에 대응하는 기존의 적어도 하나 이상의 물리 블록(정보 블록 A)에 저장된 유효한 데이터를 타겟 블록 B로 복사한다.
5-3. 타겟 블록을 새로운 정보 블록으로 정의<S453>
타겟 블록 B를 새로운 정보 블록으로 정의한다.
5-4. 기존의 정보 블록 소거 후, 빈 블록으로 정의<S454>
상기 기존의 적어도 하나 이상의 정보 블록 A를 소거한 후, 빈 블록으로 정의한다.
다음에는 구분된 핫 페이지가 2개 이상인 경우를 살펴보기로 한다.
6. 개선된 합병 연산 수행<S460>
구분된 핫 페이지가 복수개인 경우, 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치하고, 구분된 콜드 페이지들을 상기 타겟 블록들의 나머지 페이지에 순차적으로 배치하는 단계로, 다음과 같이 진행된다.
6-1. 타겟 블록 검색<S461>
먼저, 새로운 정보 블록으로 정의할 타겟 블록을 검색한다.
6-2. 핫 페이지들 분배<S462>
구분된 핫 페이지들 각각을 서로 다른 타겟 블록들로 옮긴다.
6-3. 콜드 페이지 이동<S463>
타겟 블록의 나머지를 하나 이상의 콜드 페이지로 채운다.
6-4. 타겟 블록을 새로운 정보 블록으로 정의<S464>
마지막으로, 타겟 블록을 새로운 정보 블록으로 정의한다.
6-5. 기존의 정보 블록 소거 후, 빈 블록으로 정의<S465>
기존의 정보 블록을 지우고, 상기 기존의 정보 블록을 빈 블록으로 정의한다.
전술한 바와 같이, 합병 연산 시, 핫 페이지와 콜드 페이지를 구별하여, 핫 페이지들을 각각 빈 블록들에 고르게 분배함으로써, 특정 물리 블록에 집중될 수 있는 소거 연산을 피할 수 있으므로, 효율적인 마모도 평준화를 수행할 수 있다.
한편, 핫 페이지들 각각이 배치되는 서로 다른 타겟 블록들은 빈 블록들이므로, 핫 페이지들의 수만큼 빈 블록들을 소진해야 하므로, 플래시 메모리 장치(300)의 가용 저장 공간이 저하될 수 있다. 따라서 도 5와 같이 본 발명에 따른 개선된 합병 연산 시(S560)에는 먼저 새로운 정보 블록으로 정의할 타겟 블록을 검색하고(S561), 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들로 옮긴 후(S562), 타겟 블록의 나머지를 하나 이상의 콜드 페이지로 채운다(S563). 그리고 핫 페이지를 포함하지 않는 블록들 중 소거 횟수가 소정의 기준치 이하 또는 최소인 빅팀 블록을 선택하고(S564), 상기 빅팀 블록의 콜드 페이지의 적어도 일부를 상기 복수의 타겟 블록들에 분산하여 배치한다(S565). 빅팀 블록 선택 시에는 소거 횟수가 소정의 기준치 이하 또는 최소인 블록을 빅팀 블록으로 선택하여, 효율적인 마모도 평준화를 수행할 수 있도록 하는 것이 바람직하다. 마지막으로는 타겟 블록을 새로운 정보 블록으로 정의하고(S566), 기존의 정보 블록을 지운 후, 상기 기존의 정보 블록을 빈 블록으로 정의한다(S567). 이러한 단계들과 관련하여, 도 6을 참조하여 살펴보기로 한다.
도 6의 (a)를 살펴보면, LBN 0에 대응하는 데이터 블록(PBN 0)이 있고, PBN 0에 대한 기록들이 저장된 로그 블록들(PBN 1, 2, 3)이 있으며, 상기 PBN 2, 3 내에는 각각 핫 페이지들(hot page 1, 2)이 배치되어 있다. 이 경우, 핫 페이지 분배는 다음과 같이 진행된다.
먼저, hot page 1, 2를 각각 배치시킬 빈 블록(PBN 10, 11)을 검색하여, 배치시킨다(①, ②). 그리고 PBN 0의 cold pages 1을 PBN 10으로 복사하고(③), PBN 0, 2, 3을 소거한 후, 빈 블록으로 정의한다. 다음, 콜드 페이지들(cold pages 2)로 채워져 있는 빅팀 블록(PBN 4)을 검색하여, PBN 4의 cold pages 2를 PBN 10, 11으로 배치시킨다. 여기서, 배치는 PBN 10, 11에 데이터가 저장될 수 있는 나머지 공간을 고려하여, (b)와 같이 cold pages 2를 cold pages α, β로 나누어 분배할 수도 있다(④).
이때, 본 발명에서는 개선된 합병 연산에 의하여 기존의 논리 블록에 대응하는 물리 블록과 다른 물리 블록에 위치하게 된 페이지들을 도 7과 같이 별도의 주소 매핑 테이블(address mapping table)로 관리하여, 논리 블록과 물리 블록의 대응 정보 조회 시, 신속한 조회가 가능하도록 한다. 즉, LSN(Logic Sector Number) 53 내지 63에 해당하는 데이터와 LSN 32 내지 52에 해당하는 데이터는 동일한 LBN에 속하는 데이터이지만, 본 발명의 개선된 합병 연산에 의하여 LSN 53 내지 63에 해당하는 데이터와 LSN 32 내지 52에 해당하는 데이터가 서로 다른 물리 블록에 저장된다. 이 때, LBN - PBN 매핑 테이블에서는 LSN 32 내지 63에 해당하는 LBN과 PBN 11 (LSN 32 내지 52가 속한 물리 블록의 물리 주소)을 매핑시켜 저장하고, PBN 10에 별도로 저장된 LSN 53 내지 63에 해당하는 물리 주소 (PSN, Physical Sector Number)는 도 7의 별도의 주소 매핑 테이블에 저장하여 관리한다.
한편, 본 발명의 일실시예에 따른 데이터의 관리방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
본 발명은 플래시 메모리 장치의 성능 저하를 최소화하면서 마모도 평준화를 고려할 수 있는 데이터 관리 기술에 관한 것이다.
이를 위해, 본 발명에 따른 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러에 있어서, 메모리 컨트롤러는 핫 페이지 판정부 및 주소 변환부를 포함한다. 상기 핫 페이지 판정부는 블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분한다. 주소 변환부는 상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치한다.
이러한 구성에 의하면, 합병 연산 시, 핫 페이지와 콜드 페이지를 구별하여, 핫 페이지들 각각을 빈 블록들에 분배함으로써, 특정 물리 블록에 집중될 수 있는 소거 연산을 피할 수 있으므로, 효율적으로 마모도 평준화를 수행할 수 있다.

Claims (13)

  1. 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러에 있어서,
    블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분하는 핫 페이지 판정부; 및
    상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치하는 주소 변환부를 포함하는
    메모리 컨트롤러.
  2. 제1항에 있어서,
    상기 소정의 기준은 상기 페이지의 업데이트 빈도 또는 상기 페이지에 기록될 데이터의 속성 중 적어도 하나 이상을 포함하는
    메모리 컨트롤러.
  3. 제1항에 있어서,
    상기 주소 변환부는
    상기 타겟 블록들 각각에 상기 구분된 핫 페이지들 각각이 배치되면, 상기 구분된 콜드 페이지들을 상기 타겟 블록들의 나머지 페이지에 순차적으로 배치하는
    메모리 컨트롤러.
  4. 제1항에 있어서,
    상기 주소 변환부는
    상기 구분된 핫 페이지가 1개 이하이면, 논리 블록에 대응하는 기존의 적어도 하나 이상의 물리 블록에 저장된 데이터를 타겟 블록으로 복사하고, 상기 타겟 블록을 정보 블록으로 정의하며, 상기 기존의 적어도 하나 이상의 물리 블록을 소거한 후, 상기 소거된 물리 블록을 빈 블록으로 정의하는
    메모리 컨트롤러.
  5. 제1항에 있어서,
    상기 주소 변환부는
    상기 구분된 핫 페이지가 복수개이면, 적어도 하나 이상의 빅팀 블록 - 상기 빅팀 블록은 핫 페이지를 포함하지 않음 - 을 선택하고, 상기 빅팀 블록의 콜드 페이지의 적어도 일부를 상기 복수의 타겟 블록들에 분산하여 배치하는
    메모리 컨트롤러.
  6. 제5항에 있어서,
    상기 주소 변환부는
    소거 횟수가 소정의 기준치 이하 또는 최소인 블록을 상기 빅팀 블록으로 선택하는
    메모리 컨트롤러.
  7. 제1항에 있어서,
    상기 주소 변환부는
    기존의 논리 블록에 대응하는 물리 블록과 다른 물리 블록에 위치하게 된 페이지들의 페이지 주소를 별도의 주소 매핑 테이블(address mapping table)에 기록하는
    메모리 컨트롤러.
  8. 복수의 페이지들을 포함하는 블록을 복수개 포함하는 메모리의 논리 주소와 물리 주소 간의 대응을 관리하는 메모리 컨트롤러의 데이터 관리방법에 있어서,
    블록 내 페이지들을 소정의 기준에 따라 핫 페이지(hot page)와 콜드 페이지(cold page)로 구분하는 단계; 및
    상기 구분된 핫 페이지가 복수개인 경우 상기 구분된 핫 페이지들 각각을 서로 다른 타겟 블록들에 배치하는 단계를 포함하는
    메모리 컨트롤러의 데이터 관리방법.
  9. 제8항에 있어서,
    상기 소정의 기준은 상기 페이지의 업데이트 빈도 또는 상기 페이지에 기록될 데이터의 속성 중 적어도 하나 이상을 포함하는
    메모리 컨트롤러의 데이터 관리방법.
  10. 제8항에 있어서,
    상기 타겟 블록들 각각에 상기 구분된 핫 페이지들 각각이 배치되면, 상기 구분된 콜드 페이지들을 상기 타겟 블록들의 나머지 페이지에 순차적으로 배치하는
    메모리 컨트롤러의 데이터 관리방법.
  11. 제8항에 있어서,
    상기 구분된 핫 페이지가 복수개인 경우 핫 페이지를 포함하지 않는 블록들 중 소거 횟수가 소정의 기준치 이하 또는 최소인 빅팀 블록을 선택하는 단계; 및
    상기 빅팀 블록의 콜드 페이지의 적어도 일부를 상기 복수의 타겟 블록들에 분산하여 배치하는 단계를 더 포함하는
    메모리 컨트롤러의 데이터 관리 방법.
  12. 제8항에 있어서,
    기존의 논리 블록에 대응하는 물리 블록과 다른 물리 블록에 위치하게 된 페이지들의 페이지 주소를 별도의 주소 매핑 테이블에 기록하는 단계를 더 포함하는 메모리 컨트롤러의 데이터 관리방법.
  13. 제8항 내지 제12항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
PCT/KR2012/001354 2011-08-12 2012-02-22 메모리 컨트롤러 및 이의 데이터 관리방법 WO2013024952A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/177,924 US9304905B2 (en) 2011-08-12 2014-02-11 Memory controller and data management method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0080360 2011-08-12
KR1020110080360A KR101257691B1 (ko) 2011-08-12 2011-08-12 메모리 컨트롤러 및 이의 데이터 관리방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/177,924 Continuation US9304905B2 (en) 2011-08-12 2014-02-11 Memory controller and data management method thereof

Publications (1)

Publication Number Publication Date
WO2013024952A1 true WO2013024952A1 (ko) 2013-02-21

Family

ID=47715254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/001354 WO2013024952A1 (ko) 2011-08-12 2012-02-22 메모리 컨트롤러 및 이의 데이터 관리방법

Country Status (3)

Country Link
US (1) US9304905B2 (ko)
KR (1) KR101257691B1 (ko)
WO (1) WO2013024952A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016182255A1 (ko) * 2015-05-11 2016-11-17 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
US10311025B2 (en) 2016-09-06 2019-06-04 Samsung Electronics Co., Ltd. Duplicate in-memory shared-intermediate data detection and reuse module in spark framework
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101453313B1 (ko) 2013-03-25 2014-10-22 아주대학교산학협력단 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
KR101655508B1 (ko) * 2013-11-28 2016-09-07 한양대학교 에리카산학협력단 메모리 장치 및 그 동작 방법
KR20160028680A (ko) * 2014-09-04 2016-03-14 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
US10318414B2 (en) 2014-10-29 2019-06-11 SK Hynix Inc. Memory system and memory management method thereof
KR101630085B1 (ko) * 2014-12-09 2016-06-13 주식회사 지큐브 데이터 속성에 따른 플래시 메모리의 데이터 저장 블록 배치방법
KR102258126B1 (ko) 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
TWI571882B (zh) * 2016-02-19 2017-02-21 群聯電子股份有限公司 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
US9959058B1 (en) 2016-03-31 2018-05-01 EMC IP Holding Company LLC Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives
KR20180059208A (ko) 2016-11-25 2018-06-04 삼성전자주식회사 리클레임 제어부를 갖는 메모리 콘트롤러 및 그에 따른 동작 제어 방법
KR20180073742A (ko) 2016-12-22 2018-07-03 삼성디스플레이 주식회사 플렉서블 표시패널, 플렉서블 표시패널 제조방법, 및 플렉서블 표시패널 제조장치
WO2018124912A1 (en) 2016-12-28 2018-07-05 EMC IP Holding Company LLC Data storage system tiering accounting for limited write endurance
US10235098B1 (en) * 2017-01-10 2019-03-19 Pavilion Data Systems, Inc. Writable clones with minimal overhead
DE102017119065B4 (de) * 2017-08-21 2020-12-10 Infineon Technologies Ag Aktualisieren eines Speichers
US10891239B2 (en) * 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
CN110489051A (zh) * 2018-05-14 2019-11-22 慧荣科技股份有限公司 数据储存装置及系统信息的编程方法
KR102671141B1 (ko) * 2018-07-05 2024-05-30 에스케이하이닉스 주식회사 비휘발성 메모리의 주소를 관리하는 반도체 장치
US11520514B2 (en) * 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
CN109388579A (zh) * 2018-09-18 2019-02-26 深圳市德名利电子有限公司 一种闪存冷数据识别方法
KR102243920B1 (ko) * 2018-10-08 2021-04-22 강원대학교산학협력단 하이브리드 디바이스를 포함하는 비휘발성 메모리 장치 및 그 동작 방법
CN109753443B (zh) * 2019-01-12 2021-05-18 湖南国科微电子股份有限公司 一种数据处理方法、装置及电子设备
US11579892B2 (en) * 2019-05-29 2023-02-14 Lg Electronics Inc. Digital device for performing booting process and control method therefor
TWI688958B (zh) * 2019-08-23 2020-03-21 群聯電子股份有限公司 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置
US11513952B2 (en) * 2020-07-01 2022-11-29 Micron Technology, Inc. Data separation for garbage collection
US11645198B2 (en) * 2020-12-08 2023-05-09 International Business Machines Corporation Buffer pool maintenance improvement
KR20230059911A (ko) 2021-10-26 2023-05-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
CN116795297B (zh) * 2023-08-18 2023-11-17 江苏云途半导体有限公司 一种存储设备、存储方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358233A (ja) * 2001-05-31 2002-12-13 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005276071A (ja) * 2004-03-26 2005-10-06 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법
KR20090090570A (ko) * 2008-02-21 2009-08-26 인하대학교 산학협력단 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924092A (en) 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
US7089349B2 (en) 2003-10-28 2006-08-08 Sandisk Corporation Internal maintenance schedule request for non-volatile memory system
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR20080033649A (ko) 2006-10-12 2008-04-17 삼성전자주식회사 머지 빈도를 줄일 수 있는 플래쉬 메모리 시스템 및 그관리 방법
KR100845552B1 (ko) 2006-12-18 2008-07-10 (재)대구경북과학기술연구원 Ftl의 어드레스 매핑 방법
TW200917277A (en) 2007-10-15 2009-04-16 A Data Technology Co Ltd Adaptive hybrid density memory storage device and control method thereof
TWI389125B (zh) 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
KR20110016320A (ko) 2009-08-11 2011-02-17 주식회사 유니듀 플래시 메모리를 블록 그룹으로 구분하여 관리하는 방법
US9513843B2 (en) * 2010-04-13 2016-12-06 Dot Hill Systems Corporation Method and apparatus for choosing storage components within a tier
US9015441B2 (en) * 2010-04-30 2015-04-21 Microsoft Technology Licensing, Llc Memory usage scanning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002358233A (ja) * 2001-05-31 2002-12-13 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005276071A (ja) * 2004-03-26 2005-10-06 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
KR20080010965A (ko) * 2006-07-28 2008-01-31 엠텍비젼 주식회사 메모리 장치 및 메모리 장치의 불량블록 관리 방법
KR20090090570A (ko) * 2008-02-21 2009-08-26 인하대학교 산학협력단 메모리의 페이지 할당 방법 및 이를 수행하기 위한프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016182255A1 (ko) * 2015-05-11 2016-11-17 삼성전자 주식회사 전자 장치 및 이의 페이지 병합 방법
US10817179B2 (en) 2015-05-11 2020-10-27 Samsung Electronics Co., Ltd. Electronic device and page merging method therefor
US10311025B2 (en) 2016-09-06 2019-06-04 Samsung Electronics Co., Ltd. Duplicate in-memory shared-intermediate data detection and reuse module in spark framework
US10372677B2 (en) 2016-09-06 2019-08-06 Samsung Electronics Co., Ltd. In-memory shared data reuse replacement and caching
US10452612B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Efficient data caching management in scalable multi-stage data processing systems
US10455045B2 (en) 2016-09-06 2019-10-22 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US10467195B2 (en) 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
US11451645B2 (en) 2016-09-06 2022-09-20 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems
US11811895B2 (en) 2016-09-06 2023-11-07 Samsung Electronics Co., Ltd. Automatic data replica manager in distributed caching and data processing systems

Also Published As

Publication number Publication date
US20140164687A1 (en) 2014-06-12
US9304905B2 (en) 2016-04-05
KR20130017748A (ko) 2013-02-20
KR101257691B1 (ko) 2013-04-24

Similar Documents

Publication Publication Date Title
WO2013024952A1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
EP3301584B1 (en) Storage system, storage management device, storage device, hybrid storage device, and storage management method
US9898200B2 (en) Memory device having a translation layer with multiple associative sectors
WO2014157817A1 (ko) 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템
KR101392174B1 (ko) 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법
KR100806343B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법
KR101477047B1 (ko) 메모리 시스템 및 그것의 블록 병합 방법
WO2013176376A1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
WO2013042880A2 (ko) 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
JP5976980B1 (ja) 階層化ストレージシステム、階層化ストレージ装置を利用するコンピュータ、及びファイルへのアクセスのカウントを補正する方法
US20170060448A1 (en) Systems, solid-state mass storage devices, and methods for host-assisted garbage collection
WO2012091234A1 (ko) 비휘발성 메모리 및 휘발성 메모리를 포함하는 메모리 시스템 및 그 시스템을 이용한 처리 방법
WO2012008732A2 (ko) 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
WO2009126011A2 (ko) 광 디스크 드라이브처럼 동작 가능한 메모리 드라이브 및 메모리 드라이브를 광 디스크 드라이브로 가상화하는 방법
WO2017193967A1 (zh) 固态存储器中的数据巡检方法及装置
WO2014185652A1 (ko) 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
CN106326132B (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
WO2012008731A2 (ko) 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
WO2012149815A1 (zh) 磁盘缓存的管理方法及装置
WO2010107173A1 (ko) Ssd 컨트롤러 및 ssd 컨트롤러의 동작 방법
WO2014142427A1 (ko) 스토리지 시스템 및 이의 데이터 전송 방법
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
WO2019190084A1 (ko) 비휘발성 메모리 장치, 및 비휘발성 메모리의 데이터 관리 방법
WO2011019216A2 (en) Hybrid storage device, and control method
Lin et al. Flash-aware linux swap system for portable consumer electronics

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: 12823404

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: 12823404

Country of ref document: EP

Kind code of ref document: A1