KR20100089229A - 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 - Google Patents

플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 Download PDF

Info

Publication number
KR20100089229A
KR20100089229A KR1020090008386A KR20090008386A KR20100089229A KR 20100089229 A KR20100089229 A KR 20100089229A KR 1020090008386 A KR1020090008386 A KR 1020090008386A KR 20090008386 A KR20090008386 A KR 20090008386A KR 20100089229 A KR20100089229 A KR 20100089229A
Authority
KR
South Korea
Prior art keywords
data
block
user
flash memory
block area
Prior art date
Application number
KR1020090008386A
Other languages
English (en)
Other versions
KR101663667B1 (ko
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 삼성전자주식회사
Priority to KR1020090008386A priority Critical patent/KR101663667B1/ko
Priority to US12/557,068 priority patent/US8645614B2/en
Publication of KR20100089229A publication Critical patent/KR20100089229A/ko
Application granted granted Critical
Publication of KR101663667B1 publication Critical patent/KR101663667B1/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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은, 플래시 메모리의 논리 영역을 사용자 저장 데이터가 저장되는 사용자 블록 영역 및 사용자 저장 데이터의 변경을 위해 사용자 저장 데이터가 임시 저장되는 프리 블록 영역으로 구획하고, 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와 플래시 메모리 중 사용자 저장 데이터가 저장되는 물리적 주소 및 논리적 주소의 매핑 관계에서 이용되는 제 2 데이터 단위가 상이한 경우, 플래시 메모리 중 소정 논리 영역을 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하는 캐시 블록 영역으로 구획함으로써 플래시 메모리의 데이터를 관리 방법을 개시한다.
플래시 메모리, 플래시 변환 계층

Description

플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치{Method and apparatus for data management in flash memory by address mapping}
본 발명은 플래시 메모리 관리 및 데이터 관리에 관한 것이다.
플래시 메모리는 저전력, 비휘발성, 안정성 등의 장점과 함께, 생산 공정의 발전에 따라 생산 가격이 낮아지고 있어, 다양한 용도로 널리 사용되고 있다.
디스크 저장매체는 데이터의 업데이트를 위해 기존 데이터 위에 새로운 데이터를 덮어쓰는 동작(overwrite)이 가능한 반면에, 플래시 메모리는 이와 같은 즉각적인 업데이트(In-place Update)가 불가능하다. 따라서, 플래시 메모리의 저장 데이터를 업데이트하기 위해 기존에 저장되어 있던 데이터가 삭제된 후 새로운 데이터가 저장되어야 한다.
또한, 플래시 메모리에 데이터가 실제로 저장되는 물리적 주소는, 데이터 처리 및 연산과 관련된 논리적 주소와 일치하지 않을 수 있다. 따라서, 호스트 및 플래시 메모리 간의 데이터 원활한 입출력을 중계하기 위해서는 물리적 주소 및 논리 적 주소를 매핑하고 데이터 입출력을 제어하는 소프트웨어의 지원이 필요하다.
본 발명은 플래시 메모리의 소정 논리 영역 중 캐시 블록 영역으로 구획하여 논리 주소 매핑 기법을 통한 데이터 관리 방법 및 그에 따른 플래시 메모리 장치를 제안한다.
본 발명의 일 실시예에 따라 플래시 메모리의 데이터를 관리하는 방법은, 상기 플래시 메모리의 논리 영역을, 사용자 저장 데이터가 저장되는 사용자 블록 영역 및 상기 사용자 저장 데이터의 변경을 위해 상기 사용자 저장 데이터가 임시 저장되는 프리 블록 영역으로 구획하는 단계; 및 상기 플래시 메모리 중 소정 논리 영역을, 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와 상기 플래시 메모리 중 사용자 저장 데이터가 저장되는 물리적 주소 및 논리적 주소의 매핑 관계에서 이용되는 제 2 데이터 단위가 상이한 경우, 상기 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하는 캐시 블록 영역으로 구획하는 단계를 포함한다.
일 실시예의 상기 플래시 메모리의 데이터 관리 방법은, 상기 호스트로부터 데이터 기록 요청을 수신하는 단계; 및 상기 호스트로부터 입력된 사용자 저장 데이터의 크기와 상기 제 2 데이터 단위의 비교 결과에 기초하여 상기 사용자 블록 영역, 상기 프리 블록 영역 및 상기 캐시 블록 영역 중 적어도 하나에 상기 입력된 사용자 저장 데이터를 저장하는 단계를 더 포함할 수 있다.
일 실시예의 상기 입력된 사용자 저장 데이터 저장 방법은, 상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 다른 상기 입력된 사용자 저장 데이 터를 상기 캐시 블록 영역에 저장하는 단계를 더 포함할 수 있다.
일 실시예의 상기 입력된 사용자 저장 데이터 저장 방법은, 상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 동일한 상기 입력된 사용자 저장 데이터를 상기 사용자 블록 영역 및 상기 프리 블록 영역 중 적어도 하나에 저장하는 단계를 더 포함할 수 있다.
일 실시예의 상기 플래시 메모리의 데이터 관리 방법은, 상기 호스트로부터 데이터 판독 요청을 수신하는 단계; 및 상기 판독 요청에 대응하는 데이터를 상기 사용자 블록 영역, 상기 프리 블록 영역 및 상기 캐시 블록 영역 중 적어도 하나로부터 판독하는 단계를 더 포함할 수 있다.
일 실시예의 상기 플래시 메모리의 데이터 관리 방법은, 상기 캐시 블록 영역에 저장된 데이터를 이용하여 상기 사용자 블록 영역 중 소정 블록에 대해 데이터 플러시를 수행하는 단계를 더 포함할 수 있다.
일 실시예의 상기 데이터 플러시 수행 단계는, 상기 제 2 데이터 단위의 크기보다 작거나 같은 적어도 하나의 데이터를 상기 캐시 블록 영역으로부터 판독하여 상기 사용자 블록 영역 중 소정 블록에 복사하는 단계; 및 상기 캐시 블록 영역에 저장된 데이터가 상기 사용자 블록 영역에 모두 복사된 제 1 캐시 블록에 대해, 상기 제 1 캐시 블록의 데이터를 모두 삭제하는 단계를 포함할 수 있다.
일 실시예의 상기 플래시 메모리의 데이터 관리 방법은, 상기 플래시 메모리 중 소정 영역을, 상기 사용자 블록 영역 중 소정 블록에 대해 새롭게 입력된 업데이트 데이터를 기록하기 위한 적어도 하나의 로그 블록으로 할당하는 단계를 더 포 함할 수 있다. 일 실시예의 상기 플래시 메모리의 데이터 관리 방법은, 상기 로그 블록에 데이터가 연속적으로 저장되어 있는지 여부에 기초하여, 상기 로그 블록에 저장되어 있는 상기 업데이트 데이터를 재정렬하는 단계를 더 포함할 수 있다.
일 실시예의 상기 재정렬 단계는, 상기 사용자 블록 영역 중 소정 블록을 위한 하나의 로그 블록에 데이터가 연속적으로 저장되어 있는 경우, 상기 로그 블록을 상기 사용자 블록 영역으로 다시 할당함으로써 재정렬하는 스위치 동작을 수행하는 단계를 더 포함할 수 있다.
일 실시예의 상기 재정렬 단계는, 상기 캐시 블록에 상기 소정 사용자 블록에 대응하는 사용자 저장 데이터가 없는 경우, 상기 분산되어 저장되어 있는 사용자 저장 데이터를 상기 프리 블록 영역 중 소정 프리 블록을 이용하여 하나의 블록에 수집하여 연속적으로 저장하고, 상기 소정 프리 블록을 상기 사용자 블록 영역으로 다시 할당함으로써 재정렬하는 머지 동작을 수행하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르는 플래시 메모리 장치는, 적어도 하나의 플래시 메모리; 상기 플래시 메모리 및 호스트의 사용자 저장 데이터의 입출력을 수행하는 데이터 입출력부; 및 상기 플래시 메모리의 논리 영역을, 상기 사용자 저장 데이터가 저장되는 사용자 블록 영역, 상기 사용자 저장 데이터의 변경을 위해 상기 사용자 저장 데이터가 임시 저장되는 프리 블록 영역, 및 상기 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와 상기 플래시 메모리에 사용자 저장 데이터가 저장된 물리적 주소 및 논리적 주소의 매핑 관계에서 이용되는 제 2 데이터 단 위가 상이한 경우, 상기 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하는 캐시 블록 영역으로 구획하여, 플래시 메모리의 데이터 저장 영역 및 데이터를 관리하는 플래시 메모리 관리부를 포함한다.
일 실시예의 상기 플래시 메모리 관리부는, 상기 호스트로부터 데이터 기록 요청이 수신되는 경우, 상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 다른 상기 입력된 사용자 저장 데이터를 상기 캐시 블록 영역에 저장할 수 있다.
일 실시예의 상기 플래시 메모리 관리부는, 상기 호스트로부터 데이터 판독 요청이 수신되는 경우, 상기 판독 요청에 대응하는 데이터 중 상기 제 2 데이터 단위의 크기의 제 1 데이터가 상기 캐시 블록 영역에 저장되어 있을 때, 상기 캐시 블록 영역으로부터 상기 제 1 데이터를 판독할 수 있다.
일 실시예의 상기 플래시 메모리 관리부는, 상기 사용자 블록 영역에 모두 복사된 제 1 캐시 블록에 대해 데이터 플러시 동작을 수행할 수 있다.
일 실시예의 상기 플래시 메모리 관리부는, 로그 블록에 데이터가 연속적으로 저장되어 있는지 여부에 기초하여, 상기 로그 블록에 저장되어 있는 상기 업데이트 데이터를 재정렬하는 동작을 수행할 수 있다.
본 발명은, 본 발명의 일 실시예에 따른 플래시 메모리의 데이터 관리 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 포함한다.
이하 도 1 내지 도 13 을 참조하여, 본 발명의 일 실시예에 따라 플래시 메 모리의 데이터 및 플래시 메모리의 저장 공간을 관리하는 방법 및 그에 따른 플래시 메모리 장치가 개시된다.
도 1 은 본 발명의 일 실시예에 따른 플래시 메모리 장치의 블록도를 도시한다.
일 실시예에 따른 플래시 메모리 장치(100)는, 메모리부(110), 데이터 입출력부(120) 및 플래시 메모리 관리부(130)를 포함한다.
메모리부(110)는 적어도 하나의 플래시 메모리(Flash Memory)를 포함한다. 플래시 메모리는 낸드(NAND) 플래시 메모리일 수 있다.
데이터 입출력부(120)를 통해 호스트(Host) 및 플래시 메모리 간의 데이터가 이동한다. 호스트는 플래시 메모리에 데이터를 저장하기 위해 플래시 메모리 장치(100)로 데이터 저장 요청(또는 기록 요청) 및 저장될 데이터를 전송할 수 있다. 또한, 호스트는 플래시 메모리에 데이터를 읽어오기 위해 플래시 메모리 장치(100)로부터 데이터 판독 요청을 전송하고 데이터를 추출할 수 있다.
데이터 입출력부(120)는 플래시 메모리 장치(100) 및 호스트 간의 인터페이스 또는 데이터 제어부를 포함할 수 있다. 또한, 플래시 메모리 장치(100) 내에서 메모리부(110)의 플래시 메모리로의 데이터 입력 및 플래시 메모리로부터의 데이터 출력이 발생하는 플래시 메모리 컨트롤러를 포함할 수도 있다.
플래시 메모리 관리부(130)는 메모리부(110)의 플래시 메모리 내에서의 데이터의 저장, 판독, 이동 등을 제어하여 데이터 및 플래시 메모리를 관리한다.
플래시 메모리 관리부(130)는 데이터의 효과적인 관리를 위해 플래시 메모리 를 사용자 블록 영역, 프리 블록 영역, 캐시 블록 영역 등을 포함하는 논리 블록 영역으로 구획한다.
사용자 블록 영역은 사용자에 의해 저장되는 데이터 및 사용자에 의해 저장됐던 데이터(이하, '사용자 저장 데이터'라 한다.)가 저장되는 논리 블록 영역이다. 프리 블록 영역은, 플래시 메모리에 저장되어 있는 사용자 저장 데이터의 논리적 주소의 변경을 위해 사용자 저장 데이터를 임시로 저장하는 논리 블록 영역이다.
일 실시예에서 제안하는 캐시 블록 영역은, 호스트로부터 입력된 사용자 저장 데이터가 플래시 메모리에 저장되기 전에는 일치하지 않는 데이터 단위를 통일시키기 위해 사용자 저장 데이터가 임시로 저장되는 논리 블록 영역이다.
호스트로부터 입력된 사용자 저장 데이터의 데이터 단위(이하, '제 1 데이터 단위')와, 플래시 메모리의 물리적 주소 및 논리적 주소의 매핑 관계에 따라 플래시 메모리에 대해 사용자 저장 데이터를 처리할 때 이용되는 데이터 처리 단위(이하, '제 2 데이터 단위')가 상이할 수 있다. 이러한 제 1 데이터 단위와 제 2 데이터 단위의 불일치로 인해 플래시 메모리의 데이터 저장 공간이 효율적으로 활용되지 못하는 경우가 발생할 수 있다.
일 실시예에서, 호스트의 파일 시스템에서 이용되는 제 1 데이터 단위는 섹터 단위이고, 플래시 메모리 관리부(130)에서 이용되는 제 2 데이터 단위는 페이지 단위일 수 있다.
본 발명은 플래시 메모리의 새로 저장될 사용자 저장 데이터를 캐시 블록 영 역을 이용하여 플래시 메모리의 저장 공간을 최적화하여 활용할 수 있다. 이하 도 7 내지 8을 참조하여 캐시 블록 영역을 이용한 플래시 메모리의 저장 공간 최적화 아이디어가 후술된다.
플래시 메모리 관리부(130)는 호스트의 요청에 따라 플래시 메모리의 데이터 저장 및 판독 동작을 제어한다. 플래시 메모리 관리부(130)는 효과적인 데이터 저장 공간의 확보를 위해 캐시 블록의 데이터 플러시 동작 및 메모리의 논리 영역의 재정렬 동작 등을 수행한다.
또한, 플래시 메모리 관리부(130)는 플래시 메모리의 수명을 연장하기 위해 저장 공간 별 이용 빈도에 따라 데이터의 저장 영역을 변경하는 작업을 수행할 수 있다. 따라서, 플래시 메모리 관리부(130)는 호스트의 요청 또는 플래시 메모리 자체의 관리를 위해 플래시 메모리의 데이터의 판독, 저장 및 이동 작업 등을 제어할 수 있다.
플래시 메모리 관리부(130)는 플래시 변환 계층(Flash Translation Layer, FTL)을 구현할 수 있다. 플래시 메모리 관리부(130)는 제 1 데이터 단위 및 제 2 데이터 단위를 고려하여, 사용자 저장 데이터의 저장 및 판독 동작을 제어한다.
플래시 메모리 관리부(130)는, 사용자 저장 데이터를 플래시 메모리에 저장하고자 할 때, 제 1 데이터 단위 및 제 2 데이터 단위가 일치하지 않는 경우 캐시 블록을 이용하여 사용자 저장 데이터를 캐시 블록에 임시로 저장할 수 있다. 마찬가지로, 플래시 메모리 관리부(130)는, 사용자 저장 데이터를 플래시 메모리로부터 판독하고자 할때, 제 1 데이터 단위 및 제 2 데이터 단위가 일치하지 않는 사용자 저장 데이터를 캐시 블록으로부터 판독할 수 있다. 이하, 도 7, 10 및 11를 참조하여 일 실시예에 따라 캐시 블록을 이용한 데이터 저장 및 판독 방법이 상술된다.
플래시 메모리 관리부(130)는 제 1 데이터 단위 및 제 2 데이터 단위가 일치하지 않는 경우 사용자 데이터를 캐시 블록 영역으로부터 사용자 블록 영역으로 이동시킴으로써 플래시 메모리의 저장 공간을 최적화할 수 있다. 이를 위한 캐시 블록에 저장된 사용자 저장 데이터의 데이터 플러쉬 동작 및 캐시 블록을 통한 메모리의 논리 영역의 재정렬 동작은 이하 도 8, 12 및 13을 참조하여 상술된다.
대용량 데이터의 증가에 따라 플래시 메모리의 데이터 저장 용량도 증가하고 있다. 플래시 메모리의 저장 용량이 증가함에 따라 플로시 메모리로 데이터가 고속으로 전송될 필요성이 대두되므로, 이를 지원하기 위한 플래시 메모리 장치의 하드웨어적 자원 및 소프트웨어적 자원이 필요하다.
하드웨어적 측면에서는, 플래시 메모리의 수량이 증가됨으로써 대용량 데이터가 수용될 수 있다. 이렇게 대형화되는 플래시 메모리 장치를 제어하기 위해서는 소프트웨어를 통해 대용량의 플래시 메모리가 효과적, 효율적으로 관리되는 것이 바람직하다.
일 실시예에 따른 플래시 메모리 장치(100)의 플래시 메모리 관리부(130)는 캐시 블록 영역을 도입함으로써, 데이터 저장, 삭제 동작 등을 포함하여 데이터의 저장 위치 변경과 관련된 추가적인 동작들이 감소될 수 있다. 따라서, 플래시 메모리 관리부(130)의 제어에 의한 플래시 메모리의 추가적인 데이터의 이동 및 저장 작업의 소요 시간 및 연산량이 감소될 수 있다.
또한, 플래시 메모리는 데이터 기록 회수에 한계가 있다. 따라서, 플래시 메모리의 소정 영역에 소정 회수 이상 데이터 기록 동작이 반복되면 소정 영역을 더 이상 사용할 수 없게 된다. 따라서, 플래시 메모리의 저장 공간의 수명을 연장하기 위해서는, 플래시 메모리의 총 라이프사이클(Life Cycle) 동안 모든 영역이 골고루 사용될 필요가 있다.
일 실시예에 따라 플래시 메모리의 데이터를 관리하는 방법 및 그에 따른 장치는, 캐시 블록 영역, 사용자 블록 영역, 프리 블록 영역 등의 논리 블록의 위치가 효율적으로 변경되면서 플래시 메모리 내의 모든 데이터 저장 공간이 고른 빈도로 이용될 수 있으므로, 플래시 메모리의 사용 수명의 연장 효과도 더불어 도모될 수 있다.
도 2 는 낸드 플래시 메모리의 일반적인 논리 영역을 도시한다.
일반적으로 플래시 변환 계층(FTL)은 낸드 플래시 메모리(200)의 데이터 저장 공간을 맵 블록 영역(210), 사용자 블록 영역(220), 프리 블록 영역(230) 및 예약 블록 영역(240)으로 구획하여 플래시 메모리(200)를 관리한다. 낸드 플래시 메모리(200)의 데이터 저장 공간은, 논리적 주소에 따라 적어도 하나의 논리 블록을 포함하는 논리 영역으로 구획된다.
낸드 플래시 메모리(200)의 각각의 논리 영역은 적어도 하나의 블록(block)을 포함하며, 각각의 블록은 적어도 하나의 페이지(page)를 포함한다. 플래시 변환 계층(200)은 페이지 단위로 데이터를 기록하거나 판독한다.
데이터가 낸드 플래시 메모리(200)에 저장될 때, 데이터가 저장되는 물리적 주소와 호스트 등의 외부 구성요소에서 인식하는 논리적 주소가 별도로 정의된다. 플래시 변환 계층은 데이터의 물리적 주소 및 논리적 주소 간의 매핑 관계를 제어하여 맵 테이블을 생성하고, 맵 테이블을 플래시 메모리의 맵 블록 영역(210)에 저장한다. 사용자 저장 데이터는 사용자 블록 영역(220)의 사용자 블록에 저장된다.
낸드 플래시 메모리(200)에 데이터를 업데이트하기 위해 기존에 저장되어 있던 데이터가 삭제된 후 새로운 데이터가 기록되어야 한다. 또한, 데이터의 기록 동작은 페이지 단위로, 데이터의 삭제 동작은 블록 단위로 수행되어야 한다.
플래시 변환 계층(200)은 플래시 메모리의 저장 공간 중 소정 영역을 프리 블록 영역(230)으로 할당하여, 프리 블록에 업데이트가 발생한 블록의 사용자 저장 데이터를 저장한다. 프리 블록에 저장된 최신 데이터는 차후 메모리 재정렬 과정에서 사용자 블록 영역(210)으로 이동하여 저장될 수 있다.
플래시 변환 계층(200)은 낸드 플래시 메모리(200)의 불량 블록이 발생하는 경우 대체할 블록을 확보하기 위해 낸드 플래시 메모리(200)의 소정 영역을 예약 블록 영역(240)으로 할당한다.
플래시 변환 계층(200)은 낸드 플래 메모리(200)의 마모 평준화(wear-leveling)를 위해 맵 블록 영역(210), 사용자 블록 영역(220), 프리 블록 영역(230) 및 예약 블록 영역(240) 등의 모든 영역의 위치를 지속적으로 변경할 수 있다.
도면에 도시되지는 않았지만, 플래시 변환 계층은 낸드 플래시 메모리 중 사용자 저장 데이터가 저장된 데이터 블록에 대해 새롭게 입력되는 작은 사이즈의 업 데이트 데이터를 기록하기 위해, 낸드 플래시 메모리 중 일부 영역을 소정 데이터 블록을 위한 논리 블록으로 할당할 수 있다. 이렇게 데이터 블록 별로 소용량의 업데이트 데이터를 저장하기 위해 연계되는 논리 블록을 로그 블록이라 한다.
사용자 블록, 로그 블록, 프리 블록 등을 포함하는 '데이터 블록'은 사용자 저장 데이터가 저장되는 논리 영역이다.
플래시 변환 계층은, 데이터 저장 공간을 효율적으로 관리하기 위해 메모리 재정렬 작업을 수행하며, 메모리 재정렬 작업의 한 종류가 가비지 컬렉션(Garbage collection)이다. 가비지 컬렉션은 머지(merge) 동작 및 스위치(switch) 동작을 포함한다.
머지 동작은 플래시 메모리 중 데이터가 분산되어 물리적 주소가 비연속적으로 저장되거나 저장 공간이 비효율적으로 활용되고 있는 경우, 분산되어 있는 데이터를 소정 영역에 정리하여 모으는 작업이다.
스위치 동작은 소정 블록에 연속적으로 데이터가 저장되어 있는 경우, 소정 블록을 사용자 블록 등의 데이터 블록으로 변환하고, 빈 블록을 프리 블록으로 변환함으로써 프리 블록을 확보하는 작업이다.
이하 도 3을 참조하여 머지 동작이 상술되고, 도 4를 참조하여 스위치 동작이 상술된다.
도 3 은 사용자 데이터 영역, 프리 영역 및 로그 블록 영역을 포함하는 플래시 메모리의 머지 동작을 도시한다.
머지 동작의 제 1 단계에서, 제 1 데이터 블록(310)에 연계된 제 1 로그 블 록들(322, 324, 326)에 사용자 저장 데이터가 분산되어 저장되어 있다. 제 1 프리 블록(330)은 빈 블록 상태이다.
머지 동작의 제 2 단계에서, 제 1 로그 블록들(322, 324, 326)의 데이터가 제 1 프리 블록(330)에 복사되어 데이터가 연속적인 주소로 저장되어 있는 제 2 프리 블록(350)이 생성된다. 제 1 로그 블록들(322, 324, 326)의 데이터는 삭제되어 제 2 로그 블록들(342, 344, 346)은 빈 블록 상태가 된다.
머지 동작의 제 3 단계에서, 플래시 변환 계층은 제 2 프리 블록(350)을 데이터 블록으로 할당하여 제 2 데이터 블록(360)이 생성되고, 빈 제 1 데이터 블록(310) 및 제 2 로그 블록(432, 344, 346)은 각각 제 3 프리 블록들(372, 374, 376, 378)로 재할당된다.
따라서 머지 동작은 분산된 데이터를 소정 영역으로 모아서 정리하여 프리 블록을 확보함으로써, 데이터를 재정렬하고 데이터의 저장 공간을 효율적으로 관리하는데 필요한 동작이다. 그러나, 낸드 플래시 메모리의 특성 상 데이터의 업데이트를 위해 기존 데이터를 삭제하기 위해 기존 데이터를 프리 블록 등의 다른 여유 공간에 옮겼다가 다시 복사해오는 부수적인 작업이 많이 필요하며, 머지 동작은 연산 속도가 느리므로 대용량 데이터 전송 속도의 증가에 부담이 가중된다.
도 4 는 사용자 데이터 영역, 프리 영역 및 로그 블록 영역을 포함하는 플래시 메모리의 스위치 동작을 도시한다.
스위치 동작의 제 1 단계에서, 제 1 데이터 블록(410)에 연계된 제 1 로그 블록들(422, 424, 426) 중 로그 블록(426)에는 연속적인 주소로 데이터가 저장되어 있다. 프리 블록(430)은 빈 블록 상태이다.
스위치 동작의 제 2 단계에서, 연속적인 주소로 데이터가 저장되어 있는 로그 블록(426)이 데이터 블록으로 변환되어 제 2 데이터 블록(440)으로 재할당된다. 빈 블록 상태였던 제 1 데이터 블록(410) 및 로그 블록들(422, 424)은 빈 블록 상태의 제 2 로그 블록들(422, 424, 456)으로 대응될 수 있다.
스위치 동작의 제 3 단계에서, 플래시 변환 계층은, 빈 블록 상태의 제 2 로그 블록들(422, 424, 456)을 제 2 프리 블록들(462, 464, 466, 430)으로 다시 할당하여 프리 블록을 확보할 수 있다.
전술한 바와 같이, 스위치 동작은 머지 동작에 비해 소정 블록에서 다른 블록으로의 데이터 복사 과정이 발생하지 않으므로 머지 동작에 비해 연산 부담이 적은 것이 특징이다. 따라서, 플래시 메모리의 데이터 처리, 전송 등의 데이터 관리의 성능 향상을 위해서, 머지 동작보다는 스위치 동작에 의한 연산이 유리하다.
데이터가 메모리에 기록될 때 데이터가 연이어 저장되므로 논리적 주소가 연속적으로 증가하는 패턴을 띤다. 메모리 재정렬 과정에서 연속적인 논리적 주소에 저장된 데이터 블록에 대해서는 스위치 동작이 발생할 확률이 높다.
그러나, 호스트로부터 입력되는 사용자 저장 데이터의 데이터 단위와 플래시 변환 계층이 사용하는 데이터 처리 단위가 일반적으로 다르다. AV 데이터 등 대용량 데이터가 증가함에 따라 플래시 변환 계층의 데이터 처리 단위는 확장하여, 호스트의 파일 시스템의 데이터 기록 단위보다 플래시 변환 계층의 데이터 처리 단위가 큰 것이 일반적이다. 예를 들어, 파일 시스템의 데이터 기록 단위는 4KB인 것에 반해, 플래시 변환 계층의 데이터 기록 단위는 64BK 블록 기준으로 8KB이다.
호스트의 파일 스시템의 데이터 기록 단위와 플래시 변환 계층의 데이터 처리 단위가 상이함에 따라, 메모리 재정렬시 스위치 동작보다는 머지 동작이 더 자주 발생할 수 있다. 이러한 현상에 대해 이하 도 5를 통해 상술한다.
도 5 는 플래시 메모리에 AV 데이터가 저장되는 논리 주소 패턴을 도시한다.
플래시 메모리 장치가 호스트로부터 3 단계의 '기록' 요청을 수신한 경우를 가정한다. 기록 요청 0(502)는 논리적 주소 4KB로부터 16KB 사이즈의 데이터를 메모리에 기록하라는 요청이며, 기록 요청 1(504)는 논리적 주소 20KB로부터 32KB 사이즈의 데이터를 메모리에 기록하라는 요청이고, 기록 요청 2(506)는 논리적 주소 52KB로부터 32KB 사이즈의 데이터를 메모리에 기록하라는 요청이다.
플래시 변환 계층은 호스트의 기록 요청 0, 1, 2(502, 504, 506) 및 데이터의 사이즈에 따라 순차적으로 증가하는 논리적 주소에 데이터를 기록한다. 논리 블록(510, 520, 530)은 페이지 단위로 데이터가 처리되며, 한 페이지(508)는 8KB의 데이터가 기록될 수 있다.
기록 요청 0(502)에 따라 논리적 주소 4KB로부터 데이터가 기록되기 시작되므로, 플래시 변환 계층은 16KB 사이즈의 총 데이터를 사이즈가 각각 4KB인 데이터(511), 8KB인 데이터(512), 4KB인 데이터(513)로 나누어 논리 블록 0(510)의 세 페이지에 걸쳐서 저장한다.
기록 요청 1(504)에 따라 논리적 주소 20KB로부터 데이터가 기록되기 시작되므로, 플래시 변환 계층은 32KB 사이즈의 총 데이터를 사이즈가 각각 4KB인 데이 터(514), 8KB인 데이터(515), 8KB인 데이터(516), 8KB인 데이터(517), 4KB인 데이터(518)로 나뉘어져서 논리 블록 0(510)의 다섯 페이지에 걸쳐서 저장된다. 다만, 논리적 주소 20KB로부터 기록되기 시작되어야 하지만, 이전 기록 요청 0(502)에 의해 대응하는 페이지는 이미 처리가 완료되었으므로, 다음 페이지로부터 데이터(514)가 기록된다.
기록 요청 2(506)에 따라 논리적 주소 52KB로부터 데이터가 기록되어야 하는데, 도 5의 예시적 논리 블록들은 64KB 단위이므로, 논리 블록 0(510)의 다음 논리 블록인 논리 블록 1(530)는 시작 주소가 64KB에 매핑된다. 따라서, 플래시 변환 계층은 논리 블록 0(510)에 대한 로그 블록(520)을 할당하고, 로그 블록(520)에 논리적 주소 52KB를 매핑하여 데이터 사이즈가 각각 4KB인 데이터(521) 및 8KB인 데이터(522)를 저장할 수 있다.
기록 요청 2(506)의 동작 중 시작 주소가 64KB인 데이터를 기록할 순서가 되면 플래시 변환 계층은 논리 블록 1(530)에 데이터를 기록하기 시작한다. 따라서, 플래시 변환 계층은 나머지 데이터 중 데이터 사이즈가 각각 8KB(531), 8KB(532), 4KB(533)인 데이터를 논리 블록 1(530)의 세 페이지에 걸쳐서 저장한다.
호스트의 파일 시스템의 데이터 단위는 4KB이고 플래시 변환 계층의 데이터 처리 단위는 8KB임에 따라 데이터 단위가 불일치하는 현상에 따라, 플래시 변환 계층의 한 페이지에 사이즈 8KB의 데이터가 기록되지 못하고, 데이터(511, 513, 518, 522, 533)과 같이 사이즈 4KB의 데이터만이 기록되는 경우가 발생한다.
이렇게 한 페이지 중 사이즈 4KB의 데이터만 기록되는 경우, 차후 메모리 재 정렬 동작 중 프리 블록을 이용한 머지 동작이 반드시 수행되어야 하므로 연산량의 부담이 가중된다.
도 6 는 본 발명의 일 실시예에 따른 플래시 메모리의 논리 영역을 도시한다.
일 실시예에 따른 플래시 메모리 관리부(130)는, 플래시 메모리(600)를 맵 블록 영역(610), 사용자 블록 영역(620), 프리 블록 영역(630), 캐시 블록 영역(640), 예약 블록 영역(650)으로 구획하여 플래시 메모리(600)를 관리한다. 맵 블록 영역(610), 사용자 블록 영역(620), 프리 블록 영역(630), 예약 블록 영역(650)의 역할은, 각각 도 2를 참고하여 전술한 맵 블록 영역(210), 사용자 블록 영역(220), 프리 블록 영역(230), 예약 블록 영역(240)의 역할과 동일하다.
일 실시예에 따른 플래시 메모리 관리부(130)는, 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와, 물리적 주소 및 논리적 주소의 매핑 관계에 따라서 플래시 메모리에 대한 사용자 저장 데이터의 처리시 이용되는 제 2 데이터 단위가 상이한 경우, 플래시 메모리(600)의 일부분을 캐시 블록 영역(640)으로 할당한다. 플래시 메모리 관리부(130)는 호스트로부터 입력된 사용자 저장 데이터의 데이터 처리 도중에, 제 2 데이터 단위보다 작은 사용자 저장 데이터를 캐시 블록에 임시로 저장할 수 있다.
예를 들어, 플래시 메모리 관리부(130)가 플래시 변환 계층를 구현하는 경우, 호스트로부터는 4KB 데이터 단위를 기준으로 각종 데이터 처리 요청이 전송되고, 플래시 메모리 관리부(130)는 사이즈 8KB의 페이지 단위로 데이터를 처리할 수 있다. 따라서, 사이즈 4KB의 데이터에 대한 데이터 처리가 필요한 경우 플래시 메모리 관리부(130)는 캐시 블록을 이용할 수 있다.
도 5를 예로 들면, 사이즈 4KB의 데이터들(511, 513, 518, 521, 533)이 캐시 블록에 저장될 수 있다. 캐시 블록의 구체적인 이용례가 이하 도 7 내지 도 13을 참조하여 상술된다.
도 7 는 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 AV 데이터가 저장되는 논리 주소 패턴을 도시한다.
도 5와 마찬가지로, 플래시 메모리 장치(100)가 호스트로부터 3 단계의 '기록' 요청을 수신한 경우를 가정한다. 기록 요청 0(702), 기록 요청 1(704), 기록 요청 2(506)는, 각각 논리적 주소 4KB로부터 사이즈 16KB의 데이터를, 논리적 주소 20KB로부터 사이즈 32KB의 데이터를, 논리적 주소 52KB로부터 사이즈 32KB의 데이터를 메모리에 기록하라는 요청이다.
기록 요청 0(702)에 따라 논리적 주소 4KB로부터 사이즈 4KB의 데이터가 한 페이지에 저장되어야 한다. 플래시 메모리 관리부(130)는 사이즈 4KB의 데이터를 캐시 블록(730)에 저장한다. 따라서, 기록 요청 0(702)에 대응하는 사이즈 4KB의 데이터(711)는 캐시 블록(730)에 저장된다.
사이즈 4KB의 데이터(711)에 이어지는 사이즈 8KB의 데이터(712)는 한 페이지의 크기와 일치하므로 논리 블록 1(710)에 저장된다. 데이터(712)에 이어지는 사이즈 4KB의 데이터(713)도 캐시 블록(730)에 저장된다.
기록 요청 1(704)에 따라 논리적 주소 20KB로부터 총 사이즈 32KB의 데이터 가 기록되기 시작하므로, 플래시 변환 계층은 사이즈 4KB인 첫 데이터(714)를 캐시 블록(730)에 저장한다. 마찬가지로 사이즈 8KB인 데이터들(715, 716, 717)은 논리 블록 0(710)에 저장된다. 플래시 변환 계층은 사이즈 4KB인 나머지 데이터(718)를 캐시 블록(730)에 저장할 수 있다.
기록 요청 2(706)에 따라, 논리적 주소 52KB부터 총 사이즈 32KB의 데이터가 기록되기 시작하므로, 플래시 변환 계층은 사이즈 4KB인 첫 데이터(721)를 캐시 블록(730)에 저장한다. 마찬가지로 사이즈 8KB인 데이터들(722, 731, 732)는 매핑되는 논리적 주소에 따라 순차적으로 논리 블록 0(710) 또는 논리 블록 1(720)에 저장된다. 사이즈 4KB의 나머지 데이터(733)는 캐시 블록(730)에 저장될 수 있다.
따라서, 한 페이지보다 작은 사이즈의 데이터들은 캐시 블록(730)에 저장됨으로써, 논리 블록 0 및 1(710, 720)에는 사이즈 8KB의 데이터들이 순차적으로 페이지마다 정렬되어 저장될 수 있다.
즉, 일 실시예에 따른 플래시 메모리 관리부(130)는 제 1 데이터 단위(호스트의 파일 시스템 단위) 및 제 2 데이터 단위(플래시 메모리 관리부(130)의 데이터 처리 단위)가 일치하는 경우에는 논리 블록과 관련하여 데이터를 처리한다. 다만, 제 1 데이터 단위와 제 2 데이터 단위가 일치하지 않는 경우, 캐시 블록과 관련하여 데이터를 처리한다.
도 8 는 본 발명의 일 실시예에 따라, 캐시 블록에 저장된 사용자 저장 데이터에 대한 데이터 플러시 동작을 도시한다.
도 7 의 일 실시예에 따라 캐시 블록을 이용하여 데이터가 기록된 경우, 캐 시 블록(730)에 저장된 데이터에 대한 데이터 플러시 동작이 수행될 수 있다. 플래시 메모리 관리부(130)는 캐시 블록(730)에 저장된 데이터들 중 8KB 사이즈씩 모아서 논리 블록의 한 페이지에 복사할 수 있다.
다만, 기록 요청 0(702)이 논리적 주소 4KB부터 데이터 기록을 요청했으므로, 플래시 메모리 관리부(130)는 기록 요청 1(702)에 대응하는 데이터에 대응되지 않는 논리적 주소 0~4KB의 데이터(810)는 플래시 메모리 내의 다른 저장 영역으로부터 복사해 올 수 있다. 캐시 블록(730)의 첫번째 사이즈 4KB의 데이터(711)가 데이터(810)의 후속 저장 공간에 복사될 수 있다.
캐시 블록(730)의 사이즈 4KB의 나머지 데이터들(713, 714, 718, 722)을 논리 블록 0(710)에 복사하여 순차적으로 한 쌍의 데이터(813 및 814, 818 및 822)가 한 페이지마다 저장될 수 있다.
플래시 메모리 관리부(130)는 캐시 블록(730) 중 논리 블록 0(710)으로 복사된 데이터에 대해서는, 데이터 복수가 완료된 무효 데이터임을 표시할 수 있다. 캐시 블록(730) 내의 모든 데이터가 무효 데이터로 표시되면, 플래시 메모리 관리부(130)는 캐시 블록(730) 내의 모든 데이터를 삭제하고 빈 캐시 블록을 프리 블록으로 다시 할당할 수 있다.
데이터 플러시 동작에 의해, 캐시 블록에 저장된 데이터를 데이터 블록으로 복사하여 논리 블록의 저장 공간의 활용도를 높이며, 데이터가 데이터 블록으로 모두 복사된 캐시 블록은 데이터를 모두 삭제하고 프리 블록으로 변환함으로써 프리 블록 풀(pool)이 확보될 수 있다.
이러한 데이터 플러시 동작에 따라, 논리 블록 0(710)에는 빈 저장 공간 없이 최신 데이터가 정렬되어 저장될 수 있다. 이렇게 데이터가 정렬된 논리 블록 0(710)은 차후 가비지 컬렉션과 같은 메모리 저장 영역의 재정렬 작업에서 스위칭 동작을 통해 처리될 수 있다.
도 9 는 본 발명의 일 실시예에 따른 플래시 메모리의 데이터 관리 방법의 흐름도를 도시한다.
단계 910 에서, 플래시 메모리의 논리 영역은 사용자 블록 영역 및 프리 블록 영역으로 구획될 수 있다.
단계 920 에서, 플래시 메모리 중 소정 논리 영역은, 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와, 물리적 주소 및 논리적 주소의 매핑 관계에 따라서 플래시 메모리의 데이터 처리시 이용되는 제 2 데이터 단위가 상이한 경우를 대비하여, 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하기 위한 캐시 블록 영역으로 구획될 수 있다.
일 실시예에 따른 플래시 메모리의 데이터 관리 방법은, 제 2 데이터 단위보다 작은 사이즈의 데이터를 캐시 블록에 저장하고, 데이터 블록에는 제 2 데이터 단위의 데이터만이 순차적으로 저장하므로, 플래시 메모리의 저장 공간의 활용도를 높일 수 있다.
특히 대용량 AV 데이터는 순차적으로 데이터가 기록될 확률이 높으므로, 일 실시예에 따라 캐시 블록을 이용하는 데이터 처리 방법은 데이터 기록 및 처리 속도의 향상에 더욱 유리하다.
캐시 블록을 이용하여 데이터가 정렬된 논리 블록은 가비지 컬렉션과 같은 메모리 저장 영역의 재정렬 작업에서 스위치 동작을 통해 처리될 수 있다. 부가적인 데이터의 복사 및 삭제 과정이 필요한 머지 동작의 연산량에 비해 스위치 동작의 연산량 부담이 훨씬 적다.
또한, 캐시 블록 영역에는 데이터 입출력 빈도가 크고, 연속적인 페이지에 순차적으로 데이터가 저장된 논리 영역이 많을 수록 스위칭 동작의 연산 회수가 증가하므로, 마모 평준화 효과가 향상된다.
도 10 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리에 사용자 저장 데이터를 기록하는 방법의 흐름도를 도시한다. 플래시 메모리 관리부(1030)의 일례는 플래시 변환 계층을 통해 호스트 및 플래시 메모리를 중계한다.
단계 1010에서, 플래시 메모리 장치(100)에 대해 호스트로부터 데이터 기록 요청이 수신된다. 데이터 기록 요청은, 논리적 주소에 관한 정보 및 데이터의 총 사이즈에 관한 정보를 포함할 수 있다.
단계 1020에서, 플래시 메모리 관리부(130)는, 플래시 변환 계층의 주소 매핑 동작과 관련하여 현재 데이터 처리 단위에 기록될 데이터의 사이즈를 계산하고, 기록 요청에 대응되는 데이터 중 해당 데이터를 수신받는다. 일 실시예에서 데이터 처리 단위는 페이지를 포함한다.
단계 1030에서, 앞서 단계 1020의 수신된 데이터의 사이즈가 플래시 변환 계층의 데이터 처리 단위와 일치하는지 여부가 판단된다. 수신된 데이터 사이즈가 플래시 변환 계층의 데이터 처리 단위와 일치하면 단계 1070으로 진행하여 기존 플래 시 메모리의 논리적 주소 및 물리적 주소를 매핑시켜 해당 데이터가 적절한 위치에 저장된다.
데이터 사이즈 및 플래시 변한 계층의 데이터 처리 단위가 일치하지 않으면 단계 1040으로 진행된다. 단계 1040에서, 캐시 블록에 데이터가 기록될 공간이 남아있는지 여부가 판단된다. 기록될 공간이 남아 있으면 단계 1050으로 진행하여, 수신된 데이터가 캐시 블록에 기록된다.
캐시 블록에 데이터가 한 데이터 처리 단위에 해당하는 데이터가 기록될 공간이 남아있지 않으면 단계 1060으로 진행한다. 단계 1060에서, 플래시 메모리 관리부(130)는 프리 블록 영역 중 하나의 블록을 캐시 블록으로 할당하고, 단계 1050으로 진행하여 캐시 블록에 수신된 데이터를 기록한다.
단계 1070에서는, 단계 1020의 수신 데이터가 기록된 후, 단계 1010의 기록 요청에 대응하여 더 이상 기록될 데이터가 남아있는지 여부가 판단된다. 데이터가 아직 남아있다면 단계 1020으로 회귀하고, 데이터가 남아있지 않다면 단계 1090으로 진행하여 데이터 기록이 완료된다.
도 11 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리로부터 사용자 저장 데이터를 판독하는 방법의 흐름도를 도시한다. 일 실시예에 따라, 플래시 메모리 관리부(130)가 플래시 메모리 계층을 구현함으로써 플래시 메모리로부터 데이터를 판독할 수 있다.
단계 1110에서, 플래시 메모리 장치(100)에 대해 호스트로부터 데이터 판독 요청이 수신된다. 데이터 판독 요청은, 논리적 주소에 관한 정보 및 데이터의 총 사이즈에 관한 정보를 포함한다.
단계 1120에서, 플래시 메모리 관리부(130)는, 플래시 변환 계층의 데이터 처리 단위로부터 판독될 데이터 사이즈를 계산한다.
단계 1130에서, 현재 판독할 데이터가 캐시 블록에 존재하는지 여부가 판단된다. 캐시 블록에 존재하지 않는다면 단계 1170으로 진행하여, 플래시 메모리 관리부(130)는 맵 테이블에 따라 플래시 메모리 내의 소정 데이터 블록으로부터 해당 데이터를 판독할 수 있다. 단계 1180에서 판독된 데이터는 호스트로 전송된다.
현제 판독할 데이터가 캐시 블록에 저장되어 있다면, 단계 1140에서 플래시 메모리 관리부(130)는 캐시 블록으로부터 해당 데이터를 판독하고, 단계 1150에서는 판독할 데이터가 더 남아있는지 여부가 판단된다. 판독할 데이터가 캐시 블록에 더 남아있다면 단계 1160에서는 나머지 데이터를 플래시 메모리 내의 소정 데이터 블록으로부터 판독해낸다. 판독된 데이터는 단계 1180에서 호스트로 전송된다.
단계 1185에서 호스트로 전송할 데이터의 잔여 여부가 판단된 후 이에 따라, 단계 1120으로 회귀하거나, 단계 1190으로 진행하여 데이터 전송 작업이 완료될 수 있다.
도 12 는 본 발명의 일 실시예에 따라, 캐시 블록에 저장된 사용자 저장 데이터에 대한 데이터 플러시 동작의 흐름도를 도시한다.
단계 1200에서, 캐시 블록의 데이터 플러시 동작이 시작된다.
단계 1210에서, 플러시 메모리 데이터 관리부(130)는 사용자 블록 중에서 데이터 플러시 동작을 진행할 논리 블록을 선정한다.
단계 1220에서, 캐시 블록 중 해당 논리 블록에 대한 데이터가 존재하는지 여부가 판단된다. 캐시 블록에 해당 데이터가 존재하지 않는다면 단계 1295에서 데이터 플러시 동작이 종료된다.
단계 1230에서, 플러시 메모리 데이터 관리부(130)는 플래시 변환 계층의 하나의 데이터 처리 단위보다 작거나 같은 사이즈의 데이터를 캐시 블록으로부터 판독한다.
단계 1240에서, 캐시 블록으로부터 데이터 처리 단위만큼의 데이터가 판독되었는지 여부가 판단된다. 즉, 캐시 블록으로부터 판독된 현재 데이터의 사이즈가 플래시 변환 계층의 데이터 처리 단위와 일치하는지 여부가 판단된다. 플래시 변환 계층의 데이터 처리 단위 만큼의 데이터가 판독됐다면 단계 1260으로 바로 진행하여, 플러시 메모리 데이터 관리부(130)는 판독된 데이터를 사용자 블록에 저장한다.
단계 1240에서 캐시블록으로부터 판독된 데이터의 사이즈가 플래시 변환 계층의 데이터 처리 단위보다 작다면, 단계 1250에서 플러시 메모리 데이터 관리부(130)는 한 데이터 처리 단위로부터 캐시 블록으로부터 판독된 데이터를 제외한 나머지 사이즈 만큼의 데이터를 데이터 블록으로부터 판독할 수 있다. 판독된 총 데이터는 단계 1260에서 사용자 블록에 복사될 수 있다.
단계 1270에서, 플러시 메모리 데이터 관리부(130)는 캐시 블록의 데이터 중 사용자 블록으로 복사된 데이터에 대해 무효 데이터임을 표시한다.
단계 1280에서, 플러시 메모리 데이터 관리부(130)는 모든 페이지의 데이터 에 무효 데이터 표시가 된 캐시 블록이 존재하는지 검출한다. 단계 1290에서는 모든 페이지에 무효 데이터 표시가 된 캐시 블록의 데이터를 모두 삭제하고, 해당 캐시 블록을 프리 블록 영역으로 재할당한다. 모든 페이지에 무효 데이터 표시가 된 캐시 블록이 더 이상 없다면 단계 1220으로 회귀한다.
도 13 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리를 재정렬하는 방법의 흐름도를 도시한다.
단계 1300에서, 메모리 재정렬 동작이 개시된다.
단계 1310에서, 플래시 메모리 관리부(130)는 논리 블록들 중 스위치 동작을 이용하여 메모리 재정렬이 가능한 블록이 존재하는지 여부를 판단하고, 판단 결과에 따라 단계 1320에서 스위치 동작을 이용하여 메모리 재정렬 동작이 수행될 수 있다. 스위치 동작을 이용하여 메모리 재정렬이 가능한 블록은, 빈 저장 공간 없이 순차적인 논리적 주소에 따라 데이터가 저장되어 있는 블록을 포함할 수 있다.
스위치 동작이 가능한 논리 블록이 없다면, 단계 1330에서는 캐시 블록에 데이터가 존재하는지 확인한다. 캐시 블록에도 데이터가 없다면 단계 1340으로 진행하여 플래시 메모리 관리부(130)는 머지 동작을 이용하여 메모리 재정렬 동작을 수행할 수 있다.
캐시 블록에 데이터가 존재한다면, 단계 1350에서 플래시 메모리 관리부(130)는 캐시 블록의 데이터에 대해 데이터 플러시 동작을 수행한다. 데이터 플러시 동작을 통해 논리 블록의 논리적 주소에 순차적으로 데이터가 저장되도록 캐시 블록의 데이터를 복사함으로써, 논리 블록의 저장 공간의 활용성이 향상될 수 있다. 단계 1310으로 회귀하여, 플래시 메모리 관리부(130)는 스위치 동작이 가능한 블록을 다시 검색한다.
단계 1360에서는, 스위치 동작 또는 머지 동작을 통해 메모리 재정렬이 수행된 후, 프리 블록이 더 필요한지 여부가 판단된다. 프리 블록이 더 확보되어야 한다면 단계 1310으로 회귀하고, 프리 블록의 개수가 충분하다면 단계 1370에서 메모리 재정렬 동작이 종료될 수 있다.
따라서 일 실시예에 따른 플래시 메모리의 데이터 관리 방법(도 9)은 캐시 블록을 이용하여 호스트의 파일 시스템의 데이터 단위 및 플래시 변환 계층의 데이터 처리 단위가 상이한 경우의 데이터를 캐시 블록에 저장함으로써, 데이터 기록(도 10), 데이터 판독(도 11) 과정에서 논리 블록들의 저장 공간의 활용성을 도모할 수 있다.
또한, 캐시 블록에 저장된 데이터에 대한 데이터 플러시 동작(도 12) 및 메모리 재정렬 동작(13)을 통해 캐시 블록 및 다른 논리 영역들을 재정렬함으로써 저장 공간의 활용성을 향상시키고 마모 평준화의 효과를 개선할 수 있다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1 은 본 발명의 일 실시예에 따른 플래시 메모리 장치의 블록도를 도시한다.
도 2 는 낸드 플래시 메모리의 일반적인 논리 영역을 도시한다.
도 3 은 사용자 데이터 영역, 프리 영역 및 로그 블록 영역을 포함하는 플래시 메모리의 머지 동작을 도시한다.
도 4 는 사용자 데이터 영역, 프리 영역 및 로그 블록 영역을 포함하는 플래시 메모리의 스위치 동작을 도시한다.
도 5 는 플래시 메모리에 AV 데이터가 저장되는 논리 주소 패턴을 도시한다.
도 6 는 본 발명의 일 실시예에 따른 플래시 메모리의 논리 영역을 도시한다.
도 7 는 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 AV 데이터가 저장되는 논리 주소 패턴을 도시한다.
도 8 는 본 발명의 일 실시예에 따라, 캐시 블록에 저장된 사용자 저장 데이터에 대한 데이터 플러시 동작을 도시한다.
도 9 는 본 발명의 일 실시예에 따른 플래시 메모리의 데이터 관리 방법의 흐름도를 도시한다.
도 10 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리에 사용자 저장 데이터를 기록하는 방법의 흐름도를 도시한다.
도 11 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리 로부터 사용자 저장 데이터를 판독하는 방법의 흐름도를 도시한다.
도 12 는 본 발명의 일 실시예에 따라, 캐시 블록에 저장된 사용자 저장 데이터에 대한 데이터 플러시 동작의 흐름도를 도시한다.
도 13 은 본 발명의 일 실시예에 따라, 캐시 블록을 이용하여 플래시 메모리를 재정렬하는 방법의 흐름도를 도시한다.

Claims (33)

  1. 플래시 메모리의 데이터를 관리하는 방법에 있어서,
    상기 플래시 메모리의 논리 영역을, 사용자 저장 데이터가 저장되는 사용자 블록 영역 및 상기 사용자 저장 데이터의 변경을 위해 상기 사용자 저장 데이터가 임시 저장되는 프리 블록 영역으로 구획하는 단계; 및
    상기 플래시 메모리 중 소정 논리 영역을, 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와 상기 플래시 메모리 중 사용자 저장 데이터가 저장되는 물리적 주소 및 논리적 주소의 매핑 관계에서 이용되는 제 2 데이터 단위가 상이한 경우, 상기 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하는 캐시 블록 영역으로 구획하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  2. 제 1 항에 있어서, 상기 플래시 메모리의 데이터 관리 방법은,
    상기 호스트로부터 데이터 기록 요청을 수신하는 단계; 및
    상기 호스트로부터 입력된 사용자 저장 데이터의 크기와 상기 제 2 데이터 단위의 비교 결과에 기초하여 상기 사용자 블록 영역, 상기 프리 블록 영역 및 상기 캐시 블록 영역 중 적어도 하나에 상기 입력된 사용자 저장 데이터를 저장하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  3. 제 2 항에 있어서, 상기 입력된 사용자 저장 데이터 저장 방법은,
    상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 다른 상기 입력된 사용자 저장 데이터를 상기 캐시 블록 영역에 저장하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  4. 제 3 항에 있어서, 상기 캐시 블록 영역에 저장하는 단계는,
    상기 캐시 블록 영역에 상기 입력된 사용자 저장 데이터를 기록할 여유 공간이 없다면, 상기 프리 블록 영역으로부터 새로운 캐시 블록을 할당하는 단계; 및
    상기 입력된 사용자 저장 데이터를 상기 새로운 캐시 블록에 저장하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  5. 제 2 항에 있어서, 상기 입력된 사용자 저장 데이터 저장 방법은,
    상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 동일한 상기 입력된 사용자 저장 데이터를 상기 사용자 블록 영역 및 상기 프리 블록 영역 중 적어도 하나에 저장하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  6. 제 1 항에 있어서, 상기 플래시 메모리의 데이터 관리 방법은,
    상기 호스트로부터 데이터 판독 요청을 수신하는 단계; 및
    상기 판독 요청에 대응하는 데이터를 상기 사용자 블록 영역, 상기 프리 블 록 영역 및 상기 캐시 블록 영역 중 적어도 하나로부터 판독하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  7. 제 6 항에 있어서, 상기 판독 단계는,
    상기 판독 요청에 대응하는 데이터 중 상기 제 2 데이터 단위의 크기의 제 1 데이터를 결정하는 단계; 및
    상기 제 1 데이터를 상기 캐시 블록 영역에서 검색하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  8. 제 7 항에 있어서, 상기 판독 단계는,
    상기 검색 결과에 기초하여 상기 캐시 블록 영역에 상기 제 1 데이터가 상기 캐시 블록 영역에 저장되어 있을 때, 상기 캐시 블록 영역으로부터 상기 제 1 데이터를 판독하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  9. 제 7 항에 있어서, 상기 판독 단계는,
    상기 검색 결과에 기초하여 상기 캐시 블록 영역에 상기 제 1 데이터가 상기 캐시 블록 영역에 저장되어 있지 않을 때, 상기 사용자 블록 영역 및 상기 프리 블록 영역 중 적어도 하나로부터 상기 제 1 데이터를 판독하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  10. 제 1 항에 있어서, 상기 플래시 메모리의 데이터 관리 방법은,
    상기 캐시 블록 영역에 저장된 데이터를 이용하여 상기 사용자 블록 영역 중 소정 블록에 대해 데이터 플러시를 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  11. 제 10 항에 있어서, 상기 데이터 플러시 수행 단계는,
    상기 제 2 데이터 단위의 크기보다 작거나 같은 적어도 하나의 데이터를 상기 캐시 블록 영역으로부터 판독하여 상기 사용자 블록 영역 중 소정 블록에 복사하는 단계; 및
    상기 캐시 블록 영역에 저장된 데이터가 상기 사용자 블록 영역에 모두 복사된 제 1 캐시 블록에 대해, 상기 제 1 캐시 블록의 데이터를 모두 삭제하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  12. 제 11 항에 있어서, 상기 사용자 블록 영역으로의 복사 단계는,
    상기 제 2 데이터 단위의 크기보다 작은 하나 이상의 데이터를 상기 사용자 블록 영역으로부터 판독하는 단계; 및
    상기 판독된 하나 이상의 데이터를 상기 사용자 블록 영역 중 소정 블록에 복사하는 단계를 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  13. 제 11 항에 있어서, 상기 제 1 캐시 블록의 데이터 삭제 단계는,
    상기 모든 데이터가 삭제된 제 1 캐시 블록을 상기 프리 블록 영역으로 다시 할당하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  14. 제 11 항에 있어서,
    상기 사용자 블록 영역으로의 복사 단계는, 상기 적어도 하나의 데이터가 상기 사용자 블록 영역 중 소정 블록으로 복사된 후 상기 캐시 블록 영역에 저장되어 있는 상기 적어도 하나의 데이터에 대해 무효 데이터임을 표시하는 단계를 더 포함하고,
    상기 제 1 캐시 블록의 데이터 삭제 단계는, 상기 제 1 캐시 블록의 모든 데이터에 대해 무효 데이터로 표시된 후 상기 제 1 캐시 블록의 데이터를 모두 삭제하는 것을 특징으로 플래시 메모리의 데이터 관리 방법.
  15. 제 1 항에 있어서, 상기 플래시 메모리의 데이터 관리 방법은,
    상기 플래시 메모리 중 소정 영역을, 상기 사용자 블록 영역 중 소정 블록에 대해 새롭게 입력된 업데이트 데이터를 기록하기 위한 적어도 하나의 로그 블록으로 할당하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  16. 제 15 항에 있어서, 상기 플래시 메모리의 데이터 관리 방법은,
    상기 로그 블록에 데이터가 연속적으로 저장되어 있는지 여부에 기초하여, 상기 로그 블록에 저장되어 있는 상기 업데이트 데이터를 재정렬하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  17. 제 16 항에 있어서, 상기 재정렬 단계는,
    상기 사용자 블록 영역 중 소정 블록을 위한 하나의 로그 블록에 데이터가 연속적으로 저장되어 있는 경우, 상기 로그 블록을 상기 사용자 블록 영역으로 다시 할당함으로써 재정렬하는 스위치 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  18. 제 16 항에 있어서, 상기 재정렬 단계는,
    상기 사용자 블록 영역 중 소정 블록을 위한 적어도 하나의 로그 블록에 사용자 저장 데이터가 비연속적으로 분산되어 저장되어 있는 경우, 상기 캐시 블록 영역에 상기 소정 사용자 블록에 대응하는 사용자 저장 데이터가 저장되어 있는지 여부를 판단하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  19. 제 18 항에 있어서, 상기 재정렬 단계는,
    상기 캐시 블록에 상기 소정 사용자 블록에 대응하는 사용자 저장 데이터가 없는 경우, 상기 분산되어 저장되어 있는 사용자 저장 데이터를 상기 프리 블록 영역 중 소정 프리 블록을 이용하여 하나의 블록에 수집하여 연속적으로 저장하고, 상기 소정 프리 블록을 상기 사용자 블록 영역으로 다시 할당함으로써 재정렬하는 머지 동작을 수행하는 단계를 더 포함하는 것을 특징을 하는 플래시 메모리의 데이터 관리 방법.
  20. 제 18 항에 있어서, 상기 재정렬 단계는,
    상기 캐시 블록에 상기 소정 사용자 블록에 대응하는 사용자 저장 데이터가 있는 경우, 상기 캐시 블록 영역 중 상기 사용자 저장 데이터에 대해 데이터 플러쉬 동작을 수행하는 단계를 더 포함하고,
    상기 데이터 플러쉬 동작은, 상기 캐시 블록 영역의 사용자 저장 데이터를 상기 제 2 데이터 단위에 기초하여 상기 사용자 블록 영역으로 복사하고 상기 캐시 블록의 사용자 저장 데이터를 삭제하는 동작인 것을 특징으로 하는 플래시 메모리의 데이터 관리 방법.
  21. 적어도 하나의 플래시 메모리를 포함하는 메모리부;
    상기 메모리부 및 호스트의 사용자 저장 데이터의 입출력을 수행하는 데이터 입출력부; 및
    상기 플래시 메모리의 논리 영역을, 상기 사용자 저장 데이터가 저장되는 사용자 블록 영역, 상기 사용자 저장 데이터의 변경을 위해 상기 사용자 저장 데이터 가 임시 저장되는 프리 블록 영역, 및 상기 호스트로부터 입력된 사용자 저장 데이터의 제 1 데이터 단위와 상기 플래시 메모리에 사용자 저장 데이터가 저장된 물리적 주소 및 논리적 주소의 매핑 관계에서 이용되는 제 2 데이터 단위가 상이한 경우, 상기 호스트로부터 입력된 사용자 저장 데이터를 임시로 저장하는 캐시 블록 영역으로 구획하여, 플래시 메모리의 데이터 저장 영역 및 데이터를 관리하는 플래시 메모리 관리부를 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  22. 제 21 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 호스트로부터 데이터 기록 요청이 수신되는 경우, 상기 호스트로부터 입력된 사용자 저장 데이터의 크기와 상기 제 2 데이터 단위의 비교 결과에 기초하여 상기 사용자 블록 영역, 상기 프리 블록 영역 및 상기 캐시 블록 영역 중 적어도 하나에 상기 입력된 사용자 저장 데이터를 저장하는 것을 특징으로 하는 플래시 메모리 장치.
  23. 제 22 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 다른 상기 입력된 사용자 저장 데이터를 상기 캐시 블록 영역에 저장하는 것을 특징으로 하는 플래시 메모리 장치.
  24. 제 23 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 비교 결과에 기초하여 상기 제 2 데이터 단위와 크기가 동일한 상기 입력된 사용자 저장 데이터를 상기 사용자 블록 영역 및 상기 프리 블록 영역 중 적어도 하나에 저장하는 것을 특징으로 하는 플래시 메모리 장치.
  25. 제 21 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 호스트로부터 데이터 판독 요청이 수신되는 경우, 상기 판독 요청에 대응하는 데이터를 상기 사용자 블록 영역, 상기 프리 블록 영역 및 상기 캐시 블록 영역 중 적어도 하나로부터 판독하는 것을 특징으로 하는 플래시 메모리 장치.
  26. 제 25 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 판독 요청에 대응하는 데이터 중 상기 제 2 데이터 단위의 크기의 제 1 데이터가 상기 캐시 블록 영역에 저장되어 있을 때, 상기 캐시 블록 영역으로부터 상기 제 1 데이터를 판독하는 것을 특징으로 하는 플래시 메모리 장치.
  27. 제 21 항에 있어서, 상기 플래시 메모리 관리부는,
    상기 제 2 데이터 단위의 크기보다 작거나 같은 적어도 하나의 데이터를 상기 캐시 블록 영역으로부터 판독하여 상기 사용자 블록 영역 중 소정 블록에 복사하고, 상기 캐시 블록 영역에 저장된 데이터가 상기 사용자 블록 영역에 모두 복사된 제 1 캐시 블록에 대해, 상기 제 1 캐시 블록의 데이터를 모두 삭제하는 데이터 플러시 동작을 수행하는 것을 특징으로 하는 플래시 메모리 장치.
  28. 제 27 항에 있어서,
    상기 데이터 플러시 동작은, 상기 제 2 데이터 단위의 크기보다 작은 하나 이상의 데이터를 상기 캐시 블록 영역으로부터 판독하여 상기 사용자 블록 영역 중 소정 블록에 복사하는 것을 특징으로 하는 플래시 메모리 장치.
  29. 제 27 항에 있어서,
    상기 데이터 플러시 동작은, 상기 모든 데이터가 삭제된 제 1 캐시 블록을 상기 프리 블록 영역으로 다시 할당하는 것을 특징으로 하는 플래시 메모리 장치.
  30. 제 21 항에 있어서,
    상기 플래시 메모리 관리부는, 로그 블록에 데이터가 연속적으로 저장되어 있는지 여부에 기초하여, 상기 로그 블록에 저장되어 있는 상기 업데이트 데이터를 재정렬하는 동작을 수행하고,
    상기 로그 블록은, 상기 사용자 블록 영역 중 소정 블록에 대해 새롭게 입력된 업데이트 데이터를 기록하기 위해 상기 플래시 메모리 중 소정 영역에 할당되는 것을 특징으로 하는 플래시 메모리 장치.
  31. 제 30 항에 있어서,
    상기 메모리 재정렬 동작은, 상기 사용자 블록 영역 중 소정 블록을 위한 적 어도 하나의 로그 블록에 사용자 저장 데이터가 비연속적으로 분산되어 저장되어 있는 경우, 상기 캐시 블록 영역의 사용자 저장 데이터를 상기 제 2 데이터 단위에 기초하여 상기 사용자 블록 영역으로 복사하고 상기 캐시 블록의 사용자 저장 데이터를 삭제하는 데이터 플러쉬 동작을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  32. 제 30 항에 있어서,
    상기 메모리 재정렬 동작은, 상기 사용자 블록 영역 중 소정 블록을 위한 하나의 로그 블록에 데이터가 연속적으로 저장되어 있는 경우, 상기 로그 블록을 상기 사용자 블록 영역으로 다시 할당함으로써 재정렬하는 스위치 동작을 포함하는 것을 특징으로 하는 플래시 메모리 장치.
  33. 제 1 항 내지 제 20 항 중 어느 한 항의 플래시 메모리의 데이터 관리 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020090008386A 2009-02-03 2009-02-03 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치 KR101663667B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090008386A KR101663667B1 (ko) 2009-02-03 2009-02-03 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
US12/557,068 US8645614B2 (en) 2009-02-03 2009-09-10 Method and apparatus for managing data of flash memory via address mapping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090008386A KR101663667B1 (ko) 2009-02-03 2009-02-03 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100089229A true KR20100089229A (ko) 2010-08-12
KR101663667B1 KR101663667B1 (ko) 2016-10-07

Family

ID=42398638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090008386A KR101663667B1 (ko) 2009-02-03 2009-02-03 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치

Country Status (2)

Country Link
US (1) US8645614B2 (ko)
KR (1) KR101663667B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042880A2 (ko) * 2011-09-23 2013-03-28 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
KR101631409B1 (ko) * 2015-03-06 2016-06-24 한양대학교 산학협력단 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076239B2 (en) * 2009-04-30 2015-07-07 Stmicroelectronics S.R.L. Method and systems for thumbnail generation, and corresponding computer program product
JP2012113789A (ja) * 2010-11-26 2012-06-14 Buffalo Inc ハードディスクドライブ装置およびその処理装置
US20130145095A1 (en) * 2011-12-06 2013-06-06 Lsi Corporation Melthod and system for integrating the functions of a cache system with a storage tiering system
CN102866955A (zh) * 2012-09-14 2013-01-09 记忆科技(深圳)有限公司 一种闪存数据管理方法及系统
KR20140069659A (ko) * 2012-11-29 2014-06-10 성균관대학교산학협력단 플래시 메모리용 파일 시스템
US9575884B2 (en) 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
US9424027B2 (en) * 2013-07-29 2016-08-23 Ralph Moore Message management system for information transfer within a multitasking system
EP3058457A4 (en) * 2013-10-15 2017-07-12 Mill Computing, Inc. Computer processor with deferred operations
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9244631B2 (en) * 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US9882930B2 (en) * 2014-07-02 2018-01-30 Waratek Limited Command injection protection for java applications
US9785368B1 (en) * 2016-07-24 2017-10-10 Nxp Usa, Inc. System and method for mapping control and user data
EP3358456A4 (en) * 2016-12-05 2018-08-08 Huawei Technologies Co., Ltd. Control method, storage device and system for data read/write command in nvme over fabric architecture
KR20180079584A (ko) * 2016-12-30 2018-07-11 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
KR102566635B1 (ko) * 2017-12-18 2023-08-14 삼성전자주식회사 비휘발성 메모리 시스템 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156633A (ja) * 2005-12-01 2007-06-21 Sony Corp メモリ装置及びメモリ制御方法
KR20080035237A (ko) * 2006-10-19 2008-04-23 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR20080067548A (ko) * 2007-01-16 2008-07-21 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
JP2008299511A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156633A (ja) * 2005-12-01 2007-06-21 Sony Corp メモリ装置及びメモリ制御方法
KR20080035237A (ko) * 2006-10-19 2008-04-23 삼성전자주식회사 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR20080067548A (ko) * 2007-01-16 2008-07-21 삼성전자주식회사 하이브리드 하드 디스크 드라이브, 하이브리드 하드 디스크드라이브를 내장하는 컴퓨터 시스템, 그리고 하이브리드하드 디스크 드라이브의 플래시 메모리 dma 회로
JP2008299511A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042880A2 (ko) * 2011-09-23 2013-03-28 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
WO2013042880A3 (ko) * 2011-09-23 2013-05-23 한양대학교 산학협력단 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
US9298384B2 (en) 2011-09-23 2016-03-29 Industry-University Cooperation Foundation Hanyang University Method and device for storing data in a flash memory using address mapping for supporting various block sizes
US9990277B2 (en) 2014-01-09 2018-06-05 Electronics And Telecommunications Research Institute System and method for efficient address translation of flash memory device
KR101631409B1 (ko) * 2015-03-06 2016-06-24 한양대학교 산학협력단 드라이브 컨트롤러를 포함하는 저장 장치, 상기 드라이브 컨트롤러가 수행하는 가비지 컬렉션 수행 방법

Also Published As

Publication number Publication date
KR101663667B1 (ko) 2016-10-07
US8645614B2 (en) 2014-02-04
US20100199024A1 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
KR101663667B1 (ko) 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
JP4988215B2 (ja) 複数のマッピング技法を採用した適応型フラッシュメモリ制御装置及びそれを含むフラッシュメモリシステム
KR101289931B1 (ko) 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치
KR100684887B1 (ko) 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
KR100771519B1 (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
KR101257691B1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
TW201818249A (zh) 操作對多重名稱空間進行管理的儲存裝置的方法
JP2004334419A (ja) 磁気ディスク装置、ファイル管理システム及びその方法
WO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
EP2665065A2 (en) Electronic device employing flash memory
KR20100132244A (ko) 메모리 시스템 및 메모리 시스템 관리 방법
KR20100011698A (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법
WO2017149592A1 (ja) ストレージ装置
JP2005222550A (ja) フラッシュメモリのリマッピング方法
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
JP6298932B2 (ja) ストレージ装置
CN113253926A (zh) 提升新型存储器的查询和存储性能的存储内索引构建方法
CN115203079A (zh) 一种将数据写入固态硬盘的方法
JP2006072441A (ja) メモリ装置および不揮発性メモリの制御方法
JP2005202942A (ja) 情報記録媒体、データ処理装置及びデータ処理方法
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
EP2381354A2 (en) Data recording device
KR100745163B1 (ko) 동적 매핑 테이블을 이용한 플래시 메모리 관리방법
JP5452735B2 (ja) メモリコントローラ及びメモリアクセス方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190829

Year of fee payment: 4