KR20120084906A - 비휘발성 메모리 시스템 및 그 관리 방법 - Google Patents

비휘발성 메모리 시스템 및 그 관리 방법 Download PDF

Info

Publication number
KR20120084906A
KR20120084906A KR1020110006222A KR20110006222A KR20120084906A KR 20120084906 A KR20120084906 A KR 20120084906A KR 1020110006222 A KR1020110006222 A KR 1020110006222A KR 20110006222 A KR20110006222 A KR 20110006222A KR 20120084906 A KR20120084906 A KR 20120084906A
Authority
KR
South Korea
Prior art keywords
block
mcu
data
log
allocated
Prior art date
Application number
KR1020110006222A
Other languages
English (en)
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 KR1020110006222A priority Critical patent/KR20120084906A/ko
Priority to US13/188,668 priority patent/US20120191897A1/en
Publication of KR20120084906A publication Critical patent/KR20120084906A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • 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
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

복수의 비휘발성 메모리 블럭을 포함하는 메모리 영역 및 메모리 블럭을 데이터 블럭 및 버퍼블럭으로 관리하는 MCU(Micro Control Unit)를 포함하고, MCU는 기록 명령이 입력됨에 따라 데이터 블럭에 할당된 버퍼블럭이 존재하지 않고, 데이터 블럭에 프리 페이지가 존재하는 경우 데이터 블럭을 셀프 버퍼블럭으로 교체하는 비휘발성 메모리 시스템 및 그 관리 방법을 제시한다.

Description

비휘발성 메모리 시스템 및 그 관리 방법{Non-Volatile Memory System and Management Method Therefor}
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 구체적으로는 비휘발성 메모리 시스템 및 그 관리 방법에 관한 것이다.
플래시 메모리로 대표되는 비휘발성 메모리는 전력 소모가 적고 충격에 강하며 소형화가 가능한 장점이 있어 모바일 멀티미디어 제품들에 널리 사용되고 있다.
다만, 플래시 메모리는 데이터를 기록하는 작업 이전에 소거 작업이 선행되어야 한다는 것과, 데이터의 독출/기록 작업의 단위(페이지)보다 소거 작업의 단위(블럭)가 훨씬 크다는 단점이 있다.
따라서, 플래시 메모리의 특정 페이지에 저장된 데이터를 갱신하기 위해서는 갱신하고자 하는 페이지 외에 다른 페이지의 내용까지 소거될 수 밖에 없다. 이러한 특성에 따라 블럭 맵핑 기법, 페이지 맵핑 기법, 또는 이들을 혼합한 하이브리드 맵핑 기법이 사용되고 있다.
블럭 맵핑 기법은 데이터 기록 명령이 발생함에 따라 새로운 블럭 할당, 원래 블럭으로부터 갱신할 페이지만 제외하고 나머지 페이지들을 새로운 블럭으로 복사, 갱신할 페이지의 데이터를 새로운 블럭에 기록, 새로운 블럭이 원래 블럭을 대체하도록 블럭 단위의 맵핑 테이블 수정, 원래 블럭의 소거 과정을 통해 이루어진다.
한편, 페이지 맵핑 기법은 갱신하고자 하는 논리 페이지의 데이터를 임의의 비어 있는 물리 페이지에 기록하고, 해당 논리 페이지에 대한 페이지 단위의 맵핑 정보가 갱신된 데이터가 저장된 물리 페이지를 가리키도록 변경함으로써 이루어진다.
하이브리드 맵핑 기법은 갱신 빈도가 잦은 파일 시스템의 메타 데이터는 페이지 맵핑 기법을 사용하여 관리하고, 갱신 빈도가 낮은 사용자 데이터를 블럭 맵핑 기법을 사용하여 관리하는 방식이다.
블럭 맵핑 기법을 사용하게 되면 데이터 기록 동작을 수행하는 매 동작시마다 새로운 블럭으로의 맵핑 변화가 발생하고, 그에 따라 변경된 데이터와 해당 블럭에 포함된 나머지 데이터에 대한 복사가 발생하는 이른바 병합 동작이 수행된다. 이러한 단점을 해결하기 위해, 로그 버퍼 기반의 블럭 관리 기법이 도입되었다.
로그 버퍼 기반의 플래시 메모리 시스템에서는 플래시 메모리를 구성하는 복수의 블럭 중 일부를 로그 블럭으로 사용한다. 각각의 로그 블럭은 하나의 데이터 블럭과 맵핑되어 해당 데이터 블럭에 기록될 데이터를 임시로 저장한다.
특정 데이터 블럭에 대한 새로운 기록 명령이 발생하고, 해당 데이터 블럭에 맵핑된 로그 블럭에 프리 페이지가 존재하는 경우에는 해당 데이터를 로그 블럭의 프리 페이지에 저장한다.
한편, 해당 데이터 블럭에 맵핑된 로그 블럭이 존재하지 않는 경우, 또는 해당 데이터 블럭에 맵핑된 로그 블럭에 프리 페이지가 존재하지 않는 경우에는, 타 데이터 블럭들에 맵핑된 로그 블럭 중 어느 하나를 희생 블럭으로 선택하여 선택된 희생 블럭의 내용을 데이터 블럭으로 옮기고, 희생 블럭의 데이터를 소거한다.
로그 블럭을 사용하게 되면 데이터 기록 동작시마다 병합 동작이 발생하는 것을 방지할 수 있기 때문에 고속으로 데이터를 처리할 수 있는 이점이 있다.
이와 같이, 로그 블럭을 이용한 플래시 메모리 시스템에서는 기록하고자 하는 데이터가 항상 로그 블럭에 먼저 기록된다. 따라서, 데이터 블럭에 맵핑된 로그 블럭이 모두 사용 중인 경우, 또는 데이터 블럭에 맵핑된 로그 블럭이 존재하지 않을 경우에는 블럭 교체 알고리즘을 수행하여 로그 블럭을 확보한 후 데이터를 기록해야 한다.
블럭 교체 알고리즘을 수행할 때에는 데이터의 복사, 소거, 주소 맵핑 과정 등이 수반된다. 이는 플래시 메모리 장치의 동작 효율을 저하시킴은 물론, 잦은 데이터의 복사와 소거는 플래시 메모리의 수명을 저하시키는 요인이 된다.
본 발명은 데이터 기록을 위해 접근되는 데이터 블럭에 로그블럭이 할당되어있지 않고, 해당 데이터 블럭의 물리 페이지에 프리 페이지가 존재하는 경우 해당 데이터 블럭을 로그 블럭으로 활용하는 비휘발성 메모리 시스템 및 그 관리 방법을 제공하는 데 그 기술적 과제가 있다.
본 발명의 다른 기술적 과제는 프리 페이지가 존재하는 데이터 블럭을 로그 블럭으로 사용함으로써 병합 동작이나 가비지 컬렉션(Garbage collection)의 발생빈도를 감소시킬 수 있는 비휘발성 메모리 시스템 및 그 관리 방법을 제공하는 데 있다.
상술한 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 의한 비휘발성 메모리 시스템은 복수의 비휘발성 메모리 블럭을 포함하는 메모리 영역; 및 상기 메모리 블럭을 데이터 블럭 및 버퍼블럭으로 관리하는 MCU(Micro Control Unit);를 포함하고, 상기 MCU는 기록 명령이 입력됨에 따라 상기 데이터 블럭에 할당된 버퍼블럭이 존재하지 않고, 상기 데이터 블럭에 프리 페이지가 존재하는 경우 상기 데이터 블럭을 셀프 버퍼블럭으로 교체한다.
한편, 본 발명의 일 실시예에 의한 비휘발성 메모리 관리 방법은 메모리 영역, 상기 메모리 영역을 데이터 블럭 및 로그블럭으로 구분하여 관리하는 MCU(Micro Control Unit)를 포함하는 비휘발성 메모리 시스템의 관리 방법으로서, 기록 명령이 입력됨에 따라, 상기 MCU가 상기 데이터 블럭에 상기 로그블럭이 할당되어 있는지 확인하는 단계; 상기 로그블럭이 할당되어 있지 않은 경우 상기 MCU가 상기 데이터 블럭에 프리 페이지가 존재하는지 확인하는 단계; 및 상기 프리 페이지가 존재하는 경우 상기 MCU가 상기 데이터 블럭을 셀프 버퍼블럭으로 교체하는 단계;를 포함한다.
아울러, 본 발명의 다른 실시예에 의한 비휘발성 메모리 관리 방법은 메모리 영역, 상기 메모리 영역을 데이터 블럭 및 로그블럭으로 구분하여 관리하는 MCU(Micro Control Unit)를 포함하는 비휘발성 메모리 시스템의 관리 방법으로서, 독출 명령이 입력됨에 따라, 상기 MCU가 상기 데이터 블럭에 할당된 로그블럭이 셀프 버퍼블럭인지 확인하는 단계; 및 상기 데이터 블럭에 셀프 버퍼블럭이 할당된 경우, 상기 MCU의 제어에 따라 상기 셀프 버퍼블럭으로부터 유효한 데이터를 출력하는 단계;를 포함한다.
본 발명에서는 기록 명령에 의해 접근되는 데이터 블럭에 로그블럭이 할당되어 있지 않으면서 해당 데이터 블럭에 프리 페이지가 존재하는 경우 해당 데이터 블럭을 셀프 버퍼블럭으로 변경하고, 변경된 셀프 버퍼블럭의 페이지에 데이터를 기록한다.
따라서, 데이터 블럭에 로그 블럭이 할당되어 있지 않은 경우 버퍼블럭에 대한 병합 동작을 수행하지 않고 데이터를 기록할 수 있다.
비휘발성 메모리 시스템에서 데이터 복사, 소거, 주소 맵핑 과정을 수반하는 병합 동작은 시스템 성능을 저하시키는 요인으로 작용한다. 하지만, 본 발명에서와 같이 프리 페이지를 갖는 데이터 블럭을 셀프 버퍼 블럭으로 관리하게 되면, 병합 동작의 발생 빈도를 현저히 낮출 수 있어 시스템의 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 의한 비휘발성 메모리 시스템의 구성도,
도 2는 본 발명에 적용되는 주소 맵핑 테이블의 구성도,
도 3은 본 발명의 비휘발성 메모리 시스템에서의 로그 블럭 관리 개념을 설명하기 위한 도면,
도 4 및 도 5는 본 발명의 일 실시예에 의한 비휘발성 메모리 관리 방법을 설명하기 위한 흐름도,
도 6은 본 발명의 다른 실시예에 의한 비휘발성 메모리 관리 방법을 설명하기 위한 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 의한 비휘발성 메모리 시스템의 구성도이다.
도 1을 참조하면, 본 발명에 의한 비휘발성 메모리 시스템(10)은 호스트 인터페이스(110), 버퍼부(120), MCU(Micro Control Unit, 130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.
호스트 인터페이스(110)는 버퍼부(120)와 접속되어 외부 호스트(미도시)와 비휘발성 메모리 시스템(10) 간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다.
버퍼부(120)는 호스트 인터페이스(110)로부터 출력되는 신호들이나 데이터들을 버퍼링하거나, 메모리 영역(150)에서 전송되는 데이터들을 버퍼링한다. 또한, 버퍼부(120)는 MCU(130)로부터의 출력 신호를 버퍼링하여 호스트 인터페이스(110) 및 메모리 컨트롤러(140)에 제공할 수 있다.
MCU(130)는 버퍼부(120)를 통해 호스트 인터페이스(110)와 제어 명령, 어드레스 신호 및 데이터 신호 등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.
아울러, MCU(130)는 파일 시스템 및 소프트웨어 추상화 레이어(Flash Translation Layer; FTL)를 포함한다. 파일 시스템은 사용자에게 보다 효율적인 저장 장치 환경을 제공하기 위하여 파일 및 디렉토리 관리 등의 기능을 수행한다. 아울러, FTL은 메모리 영역(150)을 가상의 블럭 디바이스처럼 사용할 수 있도록 하며, 이를 위하여 주소 맵핑 기능을 수행한다. 즉, 어플리케이션에서 전달하는 논리 주소를 메모리 영역(150)에서 사용하는 물리 주소로 변경하는 것이다. 그리고, MCU(130)는 이러한 FTL의 주소 맵핑 테이블을 이용하여 블럭 교체 기능을 수행한다.
메모리 컨트롤러(140)는 메모리 영역(150)에 구비되는 복수의 비휘발성 메모리 소자 중 소정 메모리 소자를 선택하고 기록, 소거, 독출 명령을 제공한다. 또한, 내부에 구비된 버퍼(미도시)를 통해 논리적 어드레스 및 물리적 어드레스간의 맵핑 정보와 같은 메타 데이터를 동작 수행중의 참조용 정보로서 임시 저장한다.
메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 기록, 소거 및 독출 동작이 수행된다. 메모리 영역(150)을 구성하는 비휘발성 메모리 장치는 복수의 블럭을 포함하고, 복수의 블럭 중 적어도 일부는 로그 블럭으로 할당되어 그 외의 블럭 즉, 데이터 블럭에 맵핑되어 있다. 따라서, 기록 동작시 데이터는 직접 데이터 블럭에 기록되지 않고, 로그블럭에 먼저 기록되게 된다.
이러한 의미에서 로그블럭은 버퍼블럭이라 칭할 수 있다. 아울러, 후술할 셀프 버퍼블럭은 데이터 블럭을 버퍼블럭으로 교체하여 사용하는 저장 공간이며, 따라서, 본 발명에서 로그블럭이란 버퍼블럭, 또는 데이터 블럭을 변경한 셀프 버퍼블럭을 포함하는 개념으로 이해하여야 한다.
본 발명에 의한 MCU(130)는 비휘발성 메모리 장치(10)의 기록 동작시 해당 데이터 블럭에 로그블럭(버퍼블럭, 셀프 버퍼블럭)이 할당되어 있지 않는 경우 해당 데이터 블럭에 프리 페이지가 존재하는지 확인한다. 그리고, 프리 페이지가 존재하는 경우 해당 데이터 블럭을 셀프 버퍼블럭으로 변경한다. 이에 따라, 호스트로부터 전송되는 데이터는 변경된 셀프 버퍼의 프리 페이지에 저장된다.
만약, 접근되는 데이터 블럭에 로그블럭이 할당되어 있다면, MCU(130)는 할당된 로그블럭에 프리 페이지가 있는지 확인하여, 프리 페이지가 존재하면 데이터를 기록한다. 반면, 접근되는 데이터 블럭에 로그블럭이 할당되어 있기는 하나 프리 페이지가 존재하지 않는 경우에는 해당 데이터 블럭에 할당된 로그블럭이 버퍼블럭인지, 또는 셀프 버퍼블럭인지에 따라 블럭 교체 알고리즘을 적용하여 새로운 로그블럭을 확보한 후 데이터를 기록한다.
도 2는 본 발명에 적용되는 주소 맵핑 테이블의 구성도이다.
본 발명에서는 기록을 위해 접근된 데이터 블럭에 로그블럭이 할당되어 있지 않으면서 프리 페이지가 존재하는 경우, 해당 데이터 블럭을 셀프 버퍼블럭으로 교체한다. 이에 따라, 셀프 버퍼블럭으로 교체된 블럭에 대한 어드레스를 관리하여야 한다.
도 2에는 MUC(130)에서 관리되는 주소 맵핑 테이블의 일 예를 나타낸 것으로, 논리-물리(LTP) 블럭 맵핑 정보, LTP 페이지 맵핑 정보, 버퍼블럭 할당 정보 및 셀프 버퍼블럭 할당 정보를 포함할 수 있다.
데이터 블럭이 셀프 버퍼블럭으로 교체되면 그에 따라 변경된 LTP 블럭 맵핑 정보 및 셀프 버퍼블럭 할당 정보를 갱신한다.
이때, 셀프 버퍼블럭의 LTP 페이지 맵핑 정보는 변경될 때마다 주소 맵핑 테이블에 저장할 필요는 없다. 셀프 버퍼블럭의 논리 페이지 주소는 셀프 버퍼블럭의 해당 페이지에 저장하는 것이 바람직하며, LTP 페이지 맵핑 정보는 메모리 컨트롤러(140)에만 유지시킬 수 있다. 그리고, 시스템의 전원이 오프된 후 다시 구동되면, 셀프 버퍼블럭의 페이지를 스캔하여 논리 주소를 확인한 후 메모리 컨트롤러(140)에 유지된 LTP 페이지 맵핑 정보를 갱신한다.
한편, 본 발명에 적용되는 주소 맵핑 테이블은 물리블럭 기록 포인터 정보를 더 포함할 수 있다. 이는 데이터 블럭의 물리 페이지의 어디까지 데이터가 기록되어 있는지를 나타내는 것으로, 기록 동작시 접근된 데이터 블럭에 프리 페이지가 존재하는지 확인하는 기준이 될 수 있다.
도 3은 본 발명의 비휘발성 메모리 시스템에서의 로그 블럭 관리 개념을 설명하기 위한 도면이다.
기록 동작을 위해 접근되는 데이터 블럭은 이미 데이터가 기록된 페이지들(A)과 프리 페이지들(B)이 존재할 수 있다.
만약, 이러한 상태의 데이터 블럭에 로그블럭이 할당되어 있지 않는 경우, 본 발명의 MCU(130)는 해당 데이터 블럭을 셀프 버퍼블럭으로 교체한다. 이러한 블럭 교체에 따라 도 2에 도시한 주소 맵핑 테이블의 정보가 변경됨은 물론이다.
아울러, 호스트로부터 전송된 데이터는 셀프 버퍼블럭으로 교체된 블럭의 프리 페이지에 저장된다.
로그블럭을 사용하는 비휘발성 메모리 시스템에서, 데이터는 일단 로그블럭에 저장된다. 따라서, 접근되는 데이터 블럭에 맵핑된 로그블럭이 존재하지 않는 경우에는 희생 로그블럭을 선택하고 선택된 희생 로그블럭의 정보를 데이터 블럭으로 복사한다. 그리고, 희생 로그블럭을 소거한 후 이를 접근되는 데이터 블럭에 맵핑시켜 데이터를 저장한다.
하지만, 본 발명에서는 접근되는 데이터 블럭에 로그블럭이 맵핑되어 있지 않은 경우, 접근되는 데이터 블럭에 프리 페이지가 존재하는지 확인하여 프리 페이지가 존재하는 경우 이를 셀프 버퍼블럭으로 교체하고 데이터를 기록한다.
따라서, 데이터의 복사, 소거, 주소 맵핑 등을 수반하는 병합동작을 수행하지 않고도 데이터를 기록할 수 있다. 결과적으로, 비휘발성 메모리 시스템의 동작 속도가 향상되어 시스템의 성능을 개선할 수 있다.
도 4 및 도 5는 본 발명의 일 실시예에 의한 비휘발성 메모리 관리 방법을 설명하기 위한 흐름도로서, 데이터 기록 동작을 나타낸다.
호스트로부터 기록 명령이 입력됨에 따라(S101), MCU(130)는 주소 맵핑 테이블을 참조하여 기록을 위해 접근되는 데이터 블럭에 로그블럭(버퍼블럭, 셀프 버퍼블럭)이 할당되어 있는지 확인한다(S103).
단계 S103의 확인 결과, 로그블럭이 할당되어 있지 않는 경우, MCU(130)는 접근되는 데이터 블럭에 프리 페이지가 존재하는지 확인한다(S105). 이때, MCU(130)는 주소 맵핑 테이블의 물리 블럭 기록 포인터 정보를 참조할 수 있다.
프리 페이지가 존재한다면, MCU(130)는 해당 데이터 블럭을 셀프 버퍼블럭으로 관리한다(S107). 즉, 해당 데이터 블럭을 셀프 버퍼블럭으로 교체함에 따른 LTP 블럭 맵핑 정보를 주소 맵핑 테이블에 저장하는 것이다.
그리고, 메모리 컨트롤러(140)는 셀프 버퍼블럭으로 교체된 블럭에 데이터를 기록한다(S109). 이때, 데이터가 기록되는 셀프 버퍼블럭의 논리 페이지 어드레스를 함께 저장하고, 이에 따른 LTP 페이지 맵핑 정보는 메모리 컨트롤러(140)에서 갱신된다.
한편, 단계 S105의 확인 결과 프리 페이지가 존재하지 않는다면, MCU(130)는 새로운 버퍼블럭을 할당하고(S111), 메모리 컨트롤러(140)는 새로운 버퍼블럭에 데이터를 기록한다(S113). 새로운 버퍼블럭 할당은 통상의 블럭 교체 알고리즘을 이용하여 수행할 수 있다. 즉, 버퍼블럭 중 어느 하나를 희생 버퍼블럭으로 선택하고, 희생 버퍼블럭의 데이터를 새로운 데이터 블럭으로 복사한다. 그리고, 희생 버퍼블럭을 소거하는 것이다. 이때, 희생 버퍼블럭은 LRU(Least Recently Used) 방식으로 선택할 수 있으나, 이에 한정되는 것은 아니며, 가장 먼저 할당된 버퍼블럭을 희생 버퍼블럭으로 선택하는 라운드 로빈(round robin) 방식을 이용하는 것도 가능하다. 아울러, 데이터 기록(S113)시에는 데이터가 기록되는 버퍼블럭의 논리 페이지 어드레스를 함께 저장하고, 이에 따른 LTP 페이지 맵핑 정보는 메모리 컨트롤러(140)에서 갱신된다.
도 4의 단계 S103에서 기록을 위해 접근된 데이터 블럭에 로그블럭이 할당되어 있는 경우에는 도 5와 같은 동작이 이루어진다.
먼저, MCU(130)는 메모리 컨트롤러(140)에 접근하여 해당 데이터 블럭에 할당된 로그블럭(버퍼블럭 또는 셀프 버퍼블럭)에 대한 LTP 페이지 맵핑 정보를 검색한다(S201).
만약, LTP 페이지 맵핑 정보가 메모리 컨트롤러(140)에 유지되어 있지 않으면(S203), MCU(130)는 해당 로그블럭을 스캔하여 LTP 페이지 맵핑 정보를 생성한다(S205).
그리고, MCU(130)는 해당 로그블럭에 프리 페이지가 존재하는지 확인한다(S207). 이때에는 주소 맵핑 테이블의 물리 블럭 기록 포인터 정보를 참조할 수 있다.
단계 S207의 확인 결과 프리 페이지가 존재하는 경우, 메모리 컨틀롤러(140)의 제어에 따라 해당 프리 페이지에 데이터를 기록한다(S209). 한편, 프리 페이지가 존재하지 않는 경우에는 해당 데이터 블럭에 할당된 로그 블럭이 셀프 버퍼블럭인지 확인한다(S211). 그리고, 셀프 버퍼블럭인 경우 셀프 버퍼블럭에 대한 블럭 교체 알고리즘을 통해 새로운 셀프 버퍼블럭을 할당하고 데이터를 기록한다(S213, S215).
로그블럭이 버퍼블럭인 경우에도, 버퍼블럭에 대한 블럭 교체 알고리즘을 통해 새로운 버퍼블럭을 할당한 후 데이터를 기록한다(S217, S219).
로그블럭이 셀프 버퍼블럭이든 버퍼블럭이든지, 블럭 교체 알고리즘은 적용 가능한 알고리즘 중 어느 하나를 적용할 수 있다. 예를 들어, 로그블럭 중 어느 하나를 희생 로그블럭으로 선택하고, 희생 로그블럭의 데이터를 새로운 데이터 블럭으로 복사한다. 그리고, 희생 로그블럭을 소거한 후 접근된 데이터 블럭의 데이터를 희생 로그블럭으로 복사한 후 접근된 데이터 블럭의 정보를 소거하는 것이다. 이때, 희생 로그블럭은 LRU(Least Recently Used) 방식으로 선택할 수 있으나, 이에 한정되는 것은 아니며, 가장 먼저 할당된 로그블럭을 희생 로그블럭으로 선택하는 라운드 로빈(round robin) 방식을 이용하는 것도 가능하다.
도 6은 본 발명의 다른 실시예에 의한 비휘발성 메모리 관리 방법을 설명하기 위한 흐름도로서, 데이터 독출 동작을 나타낸다.
호스트로부터 독출 명령이 전송됨에 따라(S301), MCU(130)는 메모리 컨트롤러(140)에 접근하여 해당 데이터 블럭에 할당된 로그블럭(버퍼블럭 또는 셀프 버퍼블럭)에 대한 LTP 페이지 맵핑 정보를 검색한다(S303).
만약, LTP 페이지 맵핑 정보가 메모리 컨트롤러(140)에 유지되어 있지 않으면(S305), MCU(130)는 해당 로그블럭을 스캔하여 LTP 페이지 맵핑 정보를 생성한다(S307).
그리고, MCU(130)는 해당 데이터 블럭에 할당된 로그블럭이 셀프 버퍼블럭인지 확인한다(S309). 그리고, 메모리 컨트롤러(140)는 해당 셀프 버퍼블럭의 해당 페이지에 유효한 데이터가 기록되어 있는 경우 이를 독출한다(S311).
해당 데이터 블럭에 할당된 로그블럭이 버퍼블럭인 경우에도 메모리 컨트롤러(140)는 해당 버퍼블럭의 해당 페이지에 기록된 유효한 정보를 독출한다(S313).
만약, 로그블럭에 유효한 데이터가 기록되어 있지 않다면, 메모리 컨트롤러(140)는 호스트측으로 에러 메시지를 출력할 수 있다.
본 발명에서는 기록 명령에 따라 접근하는 데이터 블럭에 로그블럭이 할당되어 있지 않은 경우, 해당 데이터 블럭이 프리 페이지를 갖고 있는지 확인한다. 그리고, 프리 페이지가 존재하는 경우 해당 데이터 블럭을 셀프 버퍼블럭으로 관리하고 데이터를 기록한다.
따라서, 로그블럭은 할당되어 있지 않지만 데이터 블럭이 프리 페이지를 갖는 경우 병합 동작을 수행하지 않고도 데이터를 기록할 수 있어 시스템의 성능을 향상시킬 수 있다.
이러한 동작을 수행하기 위하여 물리 블럭 기록 포인터 정보를 이용하여 프리 페이지의 존재 여부를 확인한다. 또한, 셀프 버퍼블럭으로 교체된 블럭에 대한 LTP 페이지 맵핑 정보는 변경시마다 메모리 영역에 저장할 필요가 없다. 즉, 셀프 버퍼블럭에 데이터를 저장할 때 논리 페이지 정보를 함께 저장하고, 셀프 버퍼블럭에 대한 액세스가 발생하면 셀프 버퍼블럭의 논리 페이지 정보를 스캔하여, LTP 페이지 맵핑 정보를 최신으로 유지할 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10 : 비휘발성 메모리 시스템
110 : 호스트 인터페이스
120 : 버퍼부
130 : MCU
140 : 메모리 컨트롤러
150 : 메모리 영역

Claims (17)

  1. 복수의 비휘발성 메모리 블럭을 포함하는 메모리 영역; 및
    상기 메모리 블럭을 데이터 블럭 및 버퍼블럭으로 관리하는 MCU(Micro Control Unit);를 포함하고,
    상기 MCU는 기록 명령이 입력됨에 따라 상기 데이터 블럭에 할당된 버퍼블럭이 존재하지 않고, 상기 데이터 블럭에 프리 페이지가 존재하는 경우 상기 데이터 블럭을 셀프 버퍼블럭으로 교체하는 비휘발성 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 MCU는 주소 맵핑 테이블을 저장하고 있으며, 상기 데이터 블럭을 상기 셀프 버퍼블럭으로 교체함에 따라, 상기 주소 맵핑 테이블을 갱신하는 비휘발성 메모리 시스템.
  3. 상기 MCU는 물리 블럭 기록 포인터 정보를 저장하고 있으며, 상기 물리 블럭 기록 포인터 정보를 참조하여 상기 데이터 블럭에 프리 페이지가 존재하는지 확인하는 비휘발성 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 MCU는 기록 또는 독출 명령이 입력됨에 따라 상기 데이터 블럭에 로그블럭이 할당되어 있는 경우, 상기 로그블럭에 대한 논리-물리 페이지 맵핑 정보를 생성하는 비휘발성 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 MCU는 기록 명령이 입력됨에 따라, 상기 데이터 블럭에 상기 로그블럭이 할당되어 있는 경우 상기 로그블럭에 프리 페이지가 존재하는지 확인하는 비휘발성 메모리 시스템.
  6. 제 1 항에 있어서,
    기록 명령이 입력됨에 따라 상기 MCU의 제어에 의해 상기 셀프 버퍼블럭에 데이터 및 논리 페이지 주소를 기록하는 메모리 컨트롤러를 더 포함하는 비휘발성 메모리 시스템.
  7. 메모리 영역, 상기 메모리 영역을 데이터 블럭 및 로그블럭으로 구분하여 관리하는 MCU(Micro Control Unit)를 포함하는 비휘발성 메모리 시스템의 관리 방법으로서,
    기록 명령이 입력됨에 따라, 상기 MCU가 상기 데이터 블럭에 상기 로그블럭이 할당되어 있는지 확인하는 단계;
    상기 로그블럭이 할당되어 있지 않은 경우 상기 MCU가 상기 데이터 블럭에 프리 페이지가 존재하는지 확인하는 단계; 및
    상기 프리 페이지가 존재하는 경우 상기 MCU가 상기 데이터 블럭을 셀프 버퍼블럭으로 교체하는 단계;
    를 포함하는 비휘발성 메모리 시스템의 관리 방법.
  8. 제 7 항에 있어서,
    상기 셀프 버퍼블럭에 데이터 및 논리 페이지 주소를 저장하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  9. 제 7 항에 있어서,
    상기 로그블럭이 할당되어 있는 경우, 상기 MCU가 상기 할당된 로그블럭에 프리 페이지가 존재하는지 확인하는 단계; 및
    상기 할당된 로그블럭에 프리 페이지가 존재하는 경우 상기 MCU의 제어에 의해 데이터를 기록하는 단계;
    를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  10. 제 9 항에 있어서,
    상기 데이터를 기록하는 단계는 논리 페이지 주소를 저장하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  11. 제 10 항에 있어서,
    상기 로그블럭이 할당되어 있는 경우, 상기 MCU가 상기 로그블럭에 대한 논리-물리 페이지 맵핑 정보가 존재하는지 확인하는 단계;
    상기 논리-물리 페이지 맵핑 정보가 존재하지 않는 경우 상기 MCU가 상기 로그블럭의 상기 논리 페이지 주소를 스캔하여 상기 논리-물리 페이지 맵핑 정보를 생성하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  12. 제 8 항에 있어서,
    상기 할당된 로그블럭에 프리 페이지가 존재하지 않는 경우, 상기 MCU가 상기 로그블럭이 셀프 버퍼블럭인지 확인하는 단계; 및
    셀프 버퍼블럭인 경우 상기 MCU가 셀프 버퍼블럭에 대한 블럭 교체 알고리즘을 수행하는 단계;
    를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  13. 제 12 항에 있어서,
    상기 로그블럭이 버퍼블럭인 경우, 상기 MCU가 버퍼 블럭에 대한 블럭 교체 알고리즘을 수행하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  14. 제 7 항에 있어서,
    상기 프리 페이지가 존재하지 않는 경우 상기 MCU가 버퍼블럭에 대한 블럭 교체 알고리즘을 수행하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
  15. 메모리 영역, 상기 메모리 영역을 데이터 블럭 및 로그블럭으로 구분하여 관리하는 MCU(Micro Control Unit)를 포함하는 비휘발성 메모리 시스템의 관리 방법으로서,
    독출 명령이 입력됨에 따라, 상기 MCU가 상기 데이터 블럭에 할당된 로그블럭이 셀프 버퍼블럭인지 확인하는 단계; 및
    상기 데이터 블럭에 셀프 버퍼블럭이 할당된 경우, 상기 MCU의 제어에 따라 상기 셀프 버퍼블럭으로부터 유효한 데이터를 출력하는 단계;
    를 포함하는 비휘발성 메모리 시스템의 관리 방법.
  16. 제 15 항에 있어서,
    상기 데이터 블럭에 버퍼블럭이 할당된 경우, 상기 MCU의 제어에 따라 상기 버퍼블럭으로부터 유효한 데이터를 출력하는 단계를 포함하는 비휘발성 메모리 시스템의 관리 방법.
  17. 제 15 항에 있어서,
    독출 명령이 입력됨에 따라, 상기 MCU가 상기 데이터 블럭에 할당된 상기 로그블럭에 대한 논리-물리 페이지 맵핑 정보가 존재하는지 확인하는 단계;
    상기 논리-물리 페이지 맵핑 정보가 존재하지 않는 경우 상기 MCU가 상기 로그블럭을 스캔하여 상기 논리-물리 페이지 맵핑 정보를 생성하는 단계를 더 포함하는 비휘발성 메모리 시스템의 관리 방법.
KR1020110006222A 2011-01-21 2011-01-21 비휘발성 메모리 시스템 및 그 관리 방법 KR20120084906A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110006222A KR20120084906A (ko) 2011-01-21 2011-01-21 비휘발성 메모리 시스템 및 그 관리 방법
US13/188,668 US20120191897A1 (en) 2011-01-21 2011-07-22 Non-volatile memory system and management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110006222A KR20120084906A (ko) 2011-01-21 2011-01-21 비휘발성 메모리 시스템 및 그 관리 방법

Publications (1)

Publication Number Publication Date
KR20120084906A true KR20120084906A (ko) 2012-07-31

Family

ID=46545022

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110006222A KR20120084906A (ko) 2011-01-21 2011-01-21 비휘발성 메모리 시스템 및 그 관리 방법

Country Status (2)

Country Link
US (1) US20120191897A1 (ko)
KR (1) KR20120084906A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (ko) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
KR20150133916A (ko) * 2014-05-20 2015-12-01 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672237B2 (en) * 2013-03-15 2017-06-06 Amazon Technologies, Inc. System-wide checkpoint avoidance for distributed database systems
US9483413B2 (en) 2014-10-24 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
KR20160112135A (ko) 2015-03-18 2016-09-28 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10445230B2 (en) 2017-12-08 2019-10-15 Macronix International Co., Ltd. Managing block arrangement of super blocks
TWI752784B (zh) * 2019-03-04 2022-01-11 慧榮科技股份有限公司 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN111651371B (zh) 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
TWI725416B (zh) * 2019-04-23 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
CN111858389B (zh) * 2019-04-30 2023-07-04 群联电子股份有限公司 数据写入方法、存储器控制电路单元以及存储器存储装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US7444461B2 (en) * 2006-08-04 2008-10-28 Sandisk Corporation Methods for phased garbage collection
US8364931B2 (en) * 2009-06-29 2013-01-29 Mediatek Inc. Memory system and mapping methods using a random write page mapping table

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (ko) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
KR20150133916A (ko) * 2014-05-20 2015-12-01 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법

Also Published As

Publication number Publication date
US20120191897A1 (en) 2012-07-26

Similar Documents

Publication Publication Date Title
KR20120084906A (ko) 비휘발성 메모리 시스템 및 그 관리 방법
CN108021510B (zh) 操作对多重名称空间进行管理的存储装置的方法
EP2631916B1 (en) Data deletion method and apparatus
EP3301584B1 (en) Storage system, storage management device, storage device, hybrid storage device, and storage management method
US9053007B2 (en) Memory system, controller, and method for controlling memory system
US8117374B2 (en) Flash memory control devices that support multiple memory mapping schemes and methods of operating same
KR101086857B1 (ko) 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법
KR102252419B1 (ko) 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법
US8364885B2 (en) Semiconductor storage system for decreasing page copy frequency and controlling method thereof
US20060179263A1 (en) Flash memory device and associated data merge method
EP2665065A2 (en) Electronic device employing flash memory
KR20130075018A (ko) 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법
US11237979B2 (en) Method for management of multi-core solid state drive
US20100318726A1 (en) Memory system and memory system managing method
JP2008009527A (ja) メモリシステム
JPWO2009001514A1 (ja) メモリコントローラ、不揮発性記憶装置、ファイルシステム、不揮発性記憶システム、データ書き込み方法及びデータ書き込みプログラム
CN106326132B (zh) 存储***、存储管理装置、存储器、混合存储装置及存储管理方法
JP2010237907A (ja) ストレージ装置および記録方法
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
JP6817242B2 (ja) ディスクアレイ装置、ディスクアレイ装置の制御方法、及びディスクアレイ装置の制御プログラム
JP5452735B2 (ja) メモリコントローラ及びメモリアクセス方法
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
US20200319999A1 (en) Storage device, control method of storage device, and storage medium
CN116368472A (zh) 数据处理方法及相关设备
JP4985108B2 (ja) データ記憶装置およびその制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee