KR20140034333A - 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치 - Google Patents

메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치 Download PDF

Info

Publication number
KR20140034333A
KR20140034333A KR1020120089401A KR20120089401A KR20140034333A KR 20140034333 A KR20140034333 A KR 20140034333A KR 1020120089401 A KR1020120089401 A KR 1020120089401A KR 20120089401 A KR20120089401 A KR 20120089401A KR 20140034333 A KR20140034333 A KR 20140034333A
Authority
KR
South Korea
Prior art keywords
data
nonvolatile memory
dump
buffer
memory controller
Prior art date
Application number
KR1020120089401A
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 KR1020120089401A priority Critical patent/KR20140034333A/ko
Publication of KR20140034333A publication Critical patent/KR20140034333A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • G06F13/1668Details of memory controller

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치가 개시된다. 상기 메모리 컨트롤러의 동작 방법은 호스트로부터 프로그램하고자 하는 데이터를 수신하고 상기 데이터를 버퍼에 저장하는 단계, 상기 데이터가 상기 버퍼에 저장되면 프로그램 완료 신호를 상기 호스트로 전송하는 단계, 및 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 어느 하나로 프로그램하기 전에 서든 파워 오프(sudden power off)가 발생하면 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역으로 덤프(dump)하는 단계를 포함한다.

Description

메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치{OPERATING METHOD OF MEMORY CONTROLLER AND MEMORY DEVICE INCLUDING THE SAME}
본 발명의 개념에 따른 실시 예는 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치에 관한 것으로, 특히 서든 파워 오프(sudden power off)가 발생한 때 멀티-플레인(multi-plane) 구조를 갖는 복수의 불휘발성 메모리 칩들을 제어하는 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치에 관한 것이다.
플래시 메모리(flash memory)는 전원이 공급되지 않아도 저장된 데이터가 유지되고, 전기적으로 데이터를 지우고 다시 기록할 수 있는 불휘발성 메모리이다.
플래시 메모리에는 NOR형 플래시 메모리와 NAND형 플래시 메모리가 있다.
상기 NAND형 플래시 메모리는 상기 NOR형 플래시 메모리에 비해 제조 단가가 싸고 대용량의 데이터를 저장할 수 있으므로 주로 데이터를 저장하는 용도로서 사용되고, 상기 NOR형 플래시 메모리는 상기 NAND형 플래시 메모리에 비해 동작 속도가 빠르고 안정성이 높으므로 주로 프로그램을 저장하는 용도로서 사용된다.
상기 NAND형 플래시 메모리로 데이터를 라이트(write) 또는 프로그램(program)하는 방식에는 라이트-스루(write-through) 방식과 라이트-백(write-back) 방식이 있다.
상기 라이트-스루 방식은 호스트로부터 라이트하고자 하는 데이터가 수신되는 즉시 상기 NAND형 플래시 메모리로 라이트하는 방식이고, 상기 라이트-백 방식은 호스트로부터 수신된 데이터를 버퍼에 저장하고 일정 시간이 경과한 후 상기 NAND형 플래시 메모리로 라이트하는 방식이다. 상기 라이트-백 방식은 상기 라이트-스루 방식보다 복잡하지만 데이터를 상기 NAND형 플래시 메모리로 라이트하는 횟수가 적으므로 동작 속도가 빠른 장점이 있다.
상기 라이트-백 방식에서는 보다 빠른 동작 속도를 위해 버퍼에 호스트로부터 수신된 데이터를 저장하고 실제로 상기 데이터를 상기 NAND형 플래시 메모리로 저장하기 전 상기 호스트로 프로그램 완료 신호가 출력될 수 있다. 실제로 상기 데이터를 상기 NAND형 플래시 메모리로 저장하기 전 서든 파워 오프(sudden power off)가 발생하면 버퍼에 저장된 데이터를 상기 NAND형 플래시 메모리의 덤프 영역으로 덤프(dump)하고, 전원이 재공급될 때 상기 덤프 영역에 덤프된 데이터를 상기 NAND형 플래시 메모리의 사용자 영역으로 라이트함으로써 데이터를 복구할 수 있다.
그러나, 상기 덤프 영역으로 데이터를 덤프하는 동안 프로그램 페일(program fail)이 발생하거나, 덤프된 데이터를 리드(read)할 수 없을 때에는 데이터를 복구할 수 없다.
본 발명이 이루고자 하는 기술적인 과제는 서든 파워 오프(sudden power off)가 발생하여 불휘발성 메모리의 덤프 영역으로 데이터를 덤프하는 동안 프로그램 페일(program fail)이 발생하거나, 덤프된 데이터를 리드(read)할 수 없을 때에도 데이터를 복구할 수 있는 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치를 제공하는 것이다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 호스트로부터 프로그램하고자 하는 데이터를 수신하고 상기 데이터를 버퍼에 저장하는 단계, 상기 데이터가 상기 버퍼에 저장되면 프로그램 완료 신호를 상기 호스트로 전송하는 단계, 및 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 어느 하나로 프로그램하기 전에 서든 파워 오프(sudden power off)가 발생하면 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역으로 덤프(dump)하는 단계를 포함한다.
상기 어느 하나의 불휘발성 메모리 칩은 상기 두 개의 불휘발성 메모리 칩들에 포함될 수 있다.
상기 덤프하는 단계는 상기 두 개의 불휘발성 메모리 칩들 중에서 제1불휘발성 메모리 칩의 제1덤프 영역에 예비 블럭(reserved block)이 없으면 상기 제1불휘발성 메모리 칩의 사용자 영역의 블럭들 중에서 어느 하나의 블럭의 데이터를 상기 두 개의 불휘발성 메모리 칩들 중에서 제2불휘발성 메모리 장치의 제2덤프 영역으로 이동시키는 단계, 및 상기 버퍼에 저장된 데이터를 상기 어느 하나의 블럭으로 프로그램하는 단계를 포함할 수 있다.
상기 덤프하는 단계는 상기 버퍼에 저장된 데이터를 상기 두 개의 불휘발성 메모리 칩들 중에서 제1불휘발성 메모리 칩의 제1덤프 영역으로 프로그램하는 단계, 및 상기 제1덤프 영역으로 상기 버퍼에 저장된 데이터를 프로그램하는 동안 프로그램 페일(program fail)이 발생하면 상기 버퍼에 저장된 데이터와 함께 상기 프로그램 페일의 발생 기록을 상기 두 개의 불휘발성 메모리 칩들 중에서 제2불휘발성 메모리 칩의 제2덤프 영역으로 프로그램하는 단계를 포함할 수 있다.
상기 메모리 컨트롤러의 동작 방법은 상기 메모리 컨트롤러로 전원이 재공급되면 상기 제1덤프 영역 또는 상기 제2덤프 영역으로 프로그램된 데이터를 상기 제1불휘발성 메모리 칩의 사용자 영역으로 복구(recovery)하는 단계, 및 상기 제1덤프 영역과 상기 제2덤프 영역을 이레이즈(erase)하는 단계를 더 포함할 수 있다.
상기 복구하는 단계는 상기 메모리 컨트롤러로 상기 전원이 재공급되면 상기 제1덤프 영역으로 프로그램된 데이터를 리드하는 단계, 및 리드된 데이터가 언커렉터블 에러(uncorrectable error)를 포함할 때, 상기 제2덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함할 수 있다.
상기 복구하는 단계는 상기 메모리 컨트롤러로 상기 전원이 재공급되면 상기 제2덤프 영역으로 프로그램된 데이터를 리드하는 단계, 및 리드된 데이터가 상기 프로그램 페일의 상기 발생 기록을 포함할 때 상기 제2덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함할 수 있다.
상기 복구하는 단계는 상기 메모리 컨트롤러로 상기 전원이 재공급되면 상기 제1덤프 영역으로 프로그램된 데이터와 상기 제2덤프 영역으로 프로그램된 데이터를 리드하는 단계, 및 상기 제1덤프 영역으로부터 리드된 데이터가 언커렉터블(uncorrectable error) 에러를 포함하지 않고 상기 제2덤프 영역으로부터 리드된 데이터가 상기 프로그램 페일의 상기 발생 기록을 포함하지 않을 때 상기 제1덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 장치는 버퍼, 복수의 불휘발성 메모리 칩들, 및 호스트로부터 프로그램하고자 하는 데이터를 수신하여 상기 버퍼에 저장하고 프로그램 완료 신호를 상기 호스트로 전송한 후 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중의 어느 하나의 불휘발성 메모리 칩으로 프로그램하기 전에 서든 파워 오프(sudden power off)가 발생하면 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역들로 덤프(dump)하는 메모리 컨트롤러를 포함한다.
상기 메모리 컨트롤러는, 상기 메모리 장치로 전원이 재공급되면, 상기 덤프 영역들 중에서 어느 하나의 덤프 영역에 덤프된 데이터를 상기 어느 하나의 불휘발성 메모리 칩의 사용자 영역으로 복구할 수 있다.
상기 메모리 장치는 솔리드 스테이트 드라이브(solid state drive)일 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치는 서든 파워 오프(sudden power off)가 발생하면 버퍼에 저장된 데이터를 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들로 덤프(dump)함으로써 상기 두 개의 불휘발성 메모리 칩들 중에서 어느 하나의 불휘발성 메모리 칩의 덤프 영역으로 데이터를 덤프하는 동안 프로그램 페일(program fail)이 발생하거나, 덤프된 데이터를 리드(read)할 수 없을 때에도 데이터를 복구할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 메모리 장치의 개략적인 블럭도를 나타낸다.
도 2는 도 1에 도시된 복수의 불휘발성 메모리 칩들 중의 어느 하나의 개략적인 블럭도를 나타낸다.
도 3은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 4는 도 1에 도시된 메모리 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 복수의 불휘발성 메모리 칩들 중의 일부의 블럭도를 나타낸다.
도 5는 도 1에 도시된 메모리 컨트롤러의 동작 방법의 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 6은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 또 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 7은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 또 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 장치의 개략적인 블럭도를 나타낸다.
도 1을 참조하면, 메모리 장치(10)는 메모리 컨트롤러(100), 호스트 인터페이스(200), 버퍼(300), 및 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)을 포함할 수 있다. 도 1에서는 4개의 불휘발성 메모리 칩들(400-1 내지 400-4)을 도시하였으나, 본 발명의 개념은 이에 한정되지 않는다.
메모리 장치(10)는 솔리드 스테이트 드라이브(solid state drive)일 수 있다.
호스트 인터페이스(100)는 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)로 라이트(write)하고자 하는 데이터를 호스트(HOST)로부터 수신하거나 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)로부터 리드(read)된 데이터를 호스트(HOST)로 전송할 수 있다.
메모리 컨트롤러(200)는 메모리 장치(10)의 전반적인 동작을 제어할 수 있다. 메모리 컨트롤러(200)의 구체적인 동작 방법은 도 3 내지 도 7에서 보다 상세하게 설명될 것이다.
버퍼(300)는 메모리 컨트롤러(200)로부터 수신된 데이터를 저장할 수 있다. 버퍼(300)는 DRAM(dynamic random access memory)으로 구현될 수 있다.
복수의 불휘발성 메모리 칩들(400-1 내지 400-4)은 메모리 컨트롤러(200)의 제어에 따라 데이터를 저장할 수 있다. 즉, 메모리 컨트롤러(200)는 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)의 동작, 예컨대, 리드(read), 라이트(write), 또는 이레이즈(erase)를 제어할 수 있다. 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 각각은 플래시 메모리 칩으로 구현될 수 있다.
메모리 장치(10)는 서든 파워 오프(sudden power off)가 발생한 때 메모리 장치(10)의 동작을 위한 전원을 공급할 수 있는 커패시터(미도시), 예컨대, 슈퍼 커패시터(super capacitor)를 더 포함할 수 있다.
도 2은 도 1에 도시된 복수의 불휘발성 메모리 칩들 중의 어느 하나의 개략적인 블럭도를 나타낸다.
도 1과 도 2를 참조하면, 불휘발성 메모리 칩(400-1 내지 400-4, 총괄적으로 400)은 복수의 플레인들(410, 430, 450, 및 470)을 포함할 수 있다. 즉, 불휘발성 메모리 칩(400)은 멀티-플레인(multi-plane) 구조를 가질 수 있다. 도 2에서는 4개의 플레인들(410, 430, 450, 및 470)을 포함하는 불휘발성 메모리 칩(400)을 도시하였으나, 본 발명의 개념은 이에 한정되지 않는다.
복수의 플레인들(410, 430, 450, 및 470) 각각은 복수의 블럭들을 포함할 수 있다. 예컨대, 플레인(410)은 복수의 블럭들(411, 413, 및 415)을 포함할 수 있다. 각 블럭들은 복수의 페이지를 포함할 수 있다.
복수의 플레인들(410, 430, 450, 및 470) 각각은 덤프 영역(DA)과 사용자 영역(UA)을 포함할 수 있다. 예컨대, 플레인(410)은 덤프 영역(DA)에 포함된 블럭(411)과 사용자 영역(UA)에 포함된 블럭들(413, 및 415)을 포함할 수 있다.
도 2에서는 각 플레인의 덤프 영역(DA)에 포함되는 블럭이 1개인 경우를 도시하였으나, 본 발명의 개념은 이에 한정되지 않는다.
도 3은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타내고, 도 4는 도 1에 도시된 메모리 컨트롤러의 동작 방법의 일 실시 예를 설명하기 위한 복수의 불휘발성 메모리 칩들 중의 일부의 블럭도를 나타낸다.
도 1 내지 도 4을 참조하면, 메모리 컨트롤러(200)는 라이트하고자 하는 데이터를 호스트 인터페이스(100)를 통해 호스트(HOST)로부터 수신하고, 수신된 데이터를 버퍼(300)에 저장할 수 있다(S110).
메모리 컨트롤러(200)는 호스트(HOST)로부터 수신된 데이터를 버퍼(300)에 저장한 후 상기 데이터를 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 중의 어느 하나로 프로그램한 것을 지시하는 프로그램 완료 신호를 호스트 인터페이스(100)를 통해 호스트(HOST)로 전송할 수 있다(S130).
즉, 메모리 컨트롤러(200)는, 빠른 동작 속도를 위해, 버퍼(300)에 저장된 데이터를 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 중의 어느 하나로 실제로 라이트하기 전에 상기 프로그램 완료 신호를 호스트 호스트(HOST)로 전송할 수 있다.
메모리 컨트롤러(200)는 외부로부터 공급되는 전원의 전압 변화에 따라 서든 파워 오프(sudden power off)의 발생을 감지할 수 있다(S150).
호스트(HOST)로 프로그램 완료 신호를 출력하고 실제로 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)로 데이터를 라이트하기 전에 서든 파워 오프가 발생하면(S150의 YES 브랜치), 메모리 컨트롤러(200)는 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역들(DA)로 상기 데이터를 덤프(dump)할 수 있다(S170).
예컨대, 도 4에 도시된 바와 같이, 메모리 컨트롤러(200)는 버퍼(300)에 저장된 데이터를 제1불휘발성 메모리 칩(400-1)의 제1덤프 영역, 예컨대, 블럭들(411-1, 431-1, 451-1, 및 471-1)의 제0페이지와 제2불휘발성 메모리 칩(400-2)의 제2덤프 영역, 예컨대, 블럭들(411-2, 431-2, 451-2, 및 471-2)의 제1페이지로 프로그램할 수 있다.
서든 파워 오프가 발생하지 않으면(S150의 NO 브랜치), 메모리 컨트롤러(200)는 버퍼(300)에 저장된 데이터를 복수의 불휘발성 메모리 칩들(400-1 내지 400-4)로 라이트할 수 있다(S190).
예컨대, 메모리 컨트롤러(200)는 버퍼(300)에 저장된 데이터를 제1불휘발성 메모리 칩(400-1)의 사용자 영역, 예컨대, 블럭들(413-1, 433-1, 453-1, 및 473-1)에 포함된 어느 하나의 페이지로 프로그램할 수 있다.
도 5는 도 1에 도시된 메모리 컨트롤러의 동작 방법의 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 1 내지 도 5를 참조하면, 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역들(DA)로 상기 데이터를 덤프할 때, 메모리 컨트롤러(200)는 상기 덤프 영역들(DA) 각각에 예비 블럭(reserved block), 즉, 어떠한 데이터도 저장하지 않고 있는 블럭이 있는지 여부를 판단할 수 있다(S171).
상기 덤프 영역들(DA) 중에서 어느 하나에 예비 블럭이 없으면(S171의 NO 브랜치), 메모리 컨트롤러(200)는 상기 예비 블럭이 없는 불휘발성 메모리 칩의 사용자 영역(UA)의 블럭들 중에서 어느 하나의 블럭을 다른 불휘발성 메모리 칩으로 이동시킨다(S172).
예컨대, 메모리 컨트롤러(200)는 상기 예비 블럭이 없는 불휘발성 메모리 칩의 사용자 영역(UA)의 블럭들 중에서 어느 하나의 블럭에 포함된 데이터를 다른 불휘발성 메모리 칩, 예컨대, 상기 다른 불휘발성 메모리 칩의 덤프 영역으로 라이트하고 상기 어느 하나의 블럭에 포함된 데이터를 이레이즈할 수 있다.
메모리 컨트롤러(200)는 상기 어느 하나의 블럭으로 버퍼(300)에 저장된 데이터를 덤프, 즉, 프로그램함으로써 멀티-플레인 구조를 유지시킬 수 있다.
상기 덤프 영역들(DA) 중에서 어느 하나에 예비 블럭이 있으면(S171의 YES 브랜치), 메모리 컨트롤러(200)는 상기 예비 블럭으로 버퍼(300)에 저장된 데이터를 프로그램할 수 있다.
도 6은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 또 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 1 내지 도 6을 참조하면, 복수의 불휘발성 메모리 칩들(400-1 내지 400-4) 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역들(DA)로 상기 데이터를 덤프할 때, 메모리 컨트롤러(200)는 먼저 상기 두 개의 불휘발성 메모리 칩들 중의 제1불휘발성 메모리 칩의 덤프 영역(DA)으로 버퍼(300)에 저장된 데이터를 프로그램할 수 있다(S176).
버퍼(300)에 저장된 데이터를 상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로 프로그램하는 동안 프로그램 페일이 발생하면(S177의 YES 브랜치), 메모리 컨트롤러(200)는 상기 두 개의 불휘발성 메모리 칩들 중의 제2불휘발성 메모리 칩의 덤프 영역(DA)으로 버퍼(300)에 저장된 데이터와 상기 프로그램 페일의 발생 기록을 프로그램할 수 있다(S178).
예컨대, 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로 버퍼(300)에 저장된 데이터를 프로그램하면서, 상기 프로그램 페일의 발생 기록을 메타데이터(metadata)로서 함께 프로그램할 수 있다.
버퍼(300)에 저장된 데이터를 상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로 프로그램하는 동안 프로그램 페일이 발생하지 않으면(S177의 NO 브랜치), 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로 버퍼(300)에 저장된 데이터를 프로그램할 수 있다.
도 7은 도 1에 도시된 메모리 컨트롤러의 동작 방법의 또 다른 실시 예를 설명하기 위한 플로우 차트(flow-chart)를 나타낸다.
도 1 내지 도 7을 참조하면, 메모리 컨트롤러(200)는 전원의 재공급을 감지할 수 있다(S200).
메모리 장치(10), 예컨대, 메모리 컨트롤러(200)로 전원이 재공급되면(S200의 YES 브랜치), 메모리 컨트롤러(200)는 상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로부터 데이터를 리드(read)하고(S210), 리드된 데이터가 언커렉터블 에러(uncorrectable error)를 포함하는지 여부를 판단한다(S210).
예컨대, 메모리 컨트롤러(200)는 상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터에 대하여 ECC(error checking and correction)를 수행하고, 수행 결과에 따라 상기 리드된 데이커가 언커렉터블 에러를 포함하는지 여부를 판단할 수 있다.
상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터가 언커렉터블 에러를 포함할 때(S210의 YES 브랜치), 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)에 저장된 데이터를 상기 제1불휘발성 메모리 칩의 사용자 영역(UA)으로 프로그램할 수 있다(S230).
상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터가 언커렉터블 에러를 포함하지 않을 때(S210의 NO 브랜치), 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)에 저장된 데이터를 리드할 수 있다(S240).
메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터가 상기 프로그램 페일의 발생 기록을 포함하고 있는지 여부를 판단할 수 있다(S250).
예컨대, 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터의 메타데이터에 기초하여 상기 프로그램 페일의 발생 여부를 판단할 수 있다.
상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터가 상기 프로그램 페일의 발생 기록을 포함하고 있을 때(S250의 YES 브랜치), 메모리 컨트롤러(200)는 상기 제2불휘발성 메모리 칩의 덤프 영역(DA)에 저장된 데이터를 상기 제1불휘발성 메모리 칩의 사용자 영역(UA)으로 프로그램할 수 있다(S230).
상기 제2불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터가 상기 프로그램 페일의 발생 기록을 포함하지 않을 때(S250의 NO 브랜치), 메모리 컨트롤러(200)는 상기 제1불휘발성 메모리 칩의 덤프 영역(DA)으로부터 리드된 데이터를 상기 제1불휘발성 메모리 칩의 사용자 영역(UA)으로 프로그램할 수 있다(S260).
서든 파워 오프가 발생함에 따라 덤프된 데이터의 복구가 종료된 후, 메모리 컨트롤러(200)는 상기 제1불휘발성 메모리 칩과 상기 제2불휘발성 메모리 칩 각각의 덤프 영역(DA)을 이레이즈함으로써 이후 발생할 수 있는 서든 파워 오프에 대비할 수 있다(S270).
도 8은 도 1에 도시된 메모리 장치를 포함하는 데이터 처리 시스템의 일 실시예를 나타낸다.
도 8를 참조하면, 데이터 처리 시스템(500)은 이동 전화기(cellular phone), 스마트 폰(smart phone), PDA(personal digital assistant), 또는 무선 통신 장치로 구현될 수 있다.
데이터 처리 시스템(500)은 메모리 장치(10), 프로세서(510), 디스플레이(520), 무선 송수신기(530), 및 입력 장치(540)를 포함할 수 있다.
프로세서(510)는 메모리 장치(10), 디스플레이(520), 무선 송수신기(530), 및 입력 장치(540)의 동작을 제어할 수 있다.
메모리 장치(10)로부터 출력된 데이터는 프로세서(510)의 제어에 따라 디스플레이(520)를 통하여 디스플레이될 수 있다.
무선 송수신기(530)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(530)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(510)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 프로세서(510)는 무선 송수신기(530)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 장치(10) 또는 디스플레이(520)로 전송할 수 있다.
또한, 무선 송수신기(530)는 프로세서(510)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(540)는 프로세서(510)의 동작을 제어하기 위한 제어 신호 또는 프로세서(510)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(510)는 메모리 장치(10)로부터 출력된 데이터, 무선 송수신기(530)로부터 출력된 데이터, 또는 입력 장치(540)로부터 출력된 데이터가 디스플레이(520)를 통하여 디스플레이될 수 있도록 디스플레이(520)의 동작을 제어할 수 있다. 실시 예에 따라, 메모리 컨트롤러(200)는 프로세서(510)의 일부로서 구현될 수 있고 또한 프로세서(510)와 별도의 칩으로 구현될 수 있다.
본 발명에 따른 메모리 컨트롤러의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 메모리 장치
100; 호스트 인터페이스
200; 메모리 컨트롤러
300; 버퍼
400-1 내지 400-4; 불휘발성 메모리 칩
DA; 덤프 영역
UA; 사용자 영역

Claims (10)

  1. 복수의 불휘발성 메모리 칩들을 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    호스트로부터 프로그램하고자 하는 데이터를 수신하고, 상기 데이터를 버퍼에 저장하는 단계;
    상기 데이터가 상기 버퍼에 저장되면, 프로그램 완료 신호를 상기 호스트로 전송하는 단계;
    상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 어느 하나의 불휘발성 메모리 칩으로 프로그램하기 전에 서든 파워 오프(sudden power off)가 발생하면, 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역으로 덤프(dump)하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  2. 제1항에 있어서,
    상기 어느 하나의 불휘발성 메모리 칩은 상기 두 개의 불휘발성 메모리 칩들에 포함되는 메모리 컨트롤러의 동작 방법.
  3. 제1항에 있어서,
    상기 덤프하는 단계는,
    상기 두 개의 불휘발성 메모리 칩들 중에서 제1불휘발성 메모리 칩의 제1덤프 영역에 예비 블럭(reserved block)이 없으면, 상기 제1불휘발성 메모리 칩의 사용자 영역의 블럭들 중에서 어느 하나의 블럭의 데이터를 상기 두 개의 불휘발성 메모리 칩들 중에서 제2불휘발성 메모리 장치의 제2덤프 영역으로 이동시키는 단계; 및
    상기 버퍼에 저장된 데이터를 상기 어느 하나의 블럭으로 프로그램하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  4. 제1항에 있어서,
    상기 덤프하는 단계는,
    상기 버퍼에 저장된 데이터를 상기 두 개의 불휘발성 메모리 칩들 중에서 제1불휘발성 메모리 칩의 제1덤프 영역으로 프로그램하는 단계; 및
    상기 버퍼에 저장된 데이터를 상기 제1덤프 영역으로 프로그램하는 동안 프로그램 페일(program fail)이 발생하면, 상기 버퍼에 저장된 데이터와 함께 상기 프로그램 페일의 발생 기록을 상기 두 개의 불휘발성 메모리 칩들 중에서 제2불휘발성 메모리 칩의 제2덤프 영역으로 프로그램하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  5. 제4항에 있어서, 상기 메모리 컨트롤러의 동작 방법은,
    상기 메모리 컨트롤러로 전원이 재공급되면, 상기 제1덤프 영역 또는 상기 제2덤프 영역으로 프로그램된 데이터를 상기 어느 하나의 불휘발성 메모리 칩의 사용자 영역으로 복구(recovery)하는 단계; 및
    상기 제1덤프 영역과 상기 제2덤프 영역을 이레이즈(erase)하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  6. 제5항에 있어서,
    상기 복구하는 단계는,
    상기 메모리 컨트롤러로 상기 전원이 재공급되면, 상기 제1덤프 영역으로 프로그램된 데이터를 리드하는 단계; 및
    리드된 데이터가 언커렉터블 에러(uncorrectable error)를 포함할 때, 상기 제2덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  7. 제5항에 있어서,
    상기 복구하는 단계는,
    상기 메모리 컨트롤러로 상기 전원이 재공급되면, 상기 제2덤프 영역으로 프로그램된 데이터를 리드하는 단계; 및
    리드된 데이터가 상기 프로그램 페일의 상기 발생 기록을 포함할 때, 상기 제2덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  8. 제5항에 있어서,
    상기 복구하는 단계는,
    상기 메모리 컨트롤러로 상기 전원이 재공급되면, 상기 제1덤프 영역으로 프로그램된 데이터와 상기 제2덤프 영역으로 프로그램된 데이터를 리드하는 단계; 및
    상기 제1덤프 영역으로부터 리드된 데이터가 언커렉터블(uncorrectable error) 에러를 포함하지 않고 상기 제2덤프 영역으로부터 리드된 데이터가 상기 프로그램 페일의 상기 발생 기록을 포함하지 않을 때, 상기 제1덤프 영역으로 프로그램된 데이터를 상기 사용자 영역으로 프로그램하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  9. 버퍼;
    복수의 불휘발성 메모리 칩들; 및
    호스트로부터 프로그램하고자 하는 데이터를 수신하여 상기 버퍼에 저장하고, 프로그램 완료 신호를 상기 호스트로 전송한 후 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중의 어느 하나의 불휘발성 메모리 칩으로 프로그램하기 전에 서든 파워 오프(sudden power off)가 발생하면 상기 버퍼에 저장된 데이터를 상기 복수의 불휘발성 메모리 칩들 중에서 두 개의 불휘발성 메모리 칩들 각각의 덤프 영역들로 덤프(dump)하는 메모리 컨트롤러를 포함하는 메모리 장치.
  10. 제9항에 있어서,
    상기 메모리 컨트롤러는, 상기 메모리 장치로 전원이 재공급되면, 상기 덤프 영역들 중에서 어느 하나의 덤프 영역에 덤프된 데이터를 상기 어느 하나의 불휘발성 메모리 칩의 사용자 영역으로 복구하는 메모리 장치.
KR1020120089401A 2012-08-16 2012-08-16 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치 KR20140034333A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120089401A KR20140034333A (ko) 2012-08-16 2012-08-16 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120089401A KR20140034333A (ko) 2012-08-16 2012-08-16 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치

Publications (1)

Publication Number Publication Date
KR20140034333A true KR20140034333A (ko) 2014-03-20

Family

ID=50644757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120089401A KR20140034333A (ko) 2012-08-16 2012-08-16 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치

Country Status (1)

Country Link
KR (1) KR20140034333A (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037159B2 (en) 2014-10-24 2018-07-31 SK Hynix Inc. Memory system and operating method thereof
CN109344007A (zh) * 2018-09-29 2019-02-15 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块
US10496281B2 (en) 2014-11-12 2019-12-03 Samsung Electronics Co., Ltd. Data storage device, data processing system and method of operation
KR20200019463A (ko) * 2018-08-14 2020-02-24 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US11461226B2 (en) 2019-12-23 2022-10-04 SK Hynix Inc. Storage device including memory controller
US11567867B2 (en) 2019-12-23 2023-01-31 SK Hynix Inc. Controller for storing data having different types in one memory block when SPO occurs, and method of operating the same

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10037159B2 (en) 2014-10-24 2018-07-31 SK Hynix Inc. Memory system and operating method thereof
US10496281B2 (en) 2014-11-12 2019-12-03 Samsung Electronics Co., Ltd. Data storage device, data processing system and method of operation
KR20200019463A (ko) * 2018-08-14 2020-02-24 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
CN109344007A (zh) * 2018-09-29 2019-02-15 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块
CN109344007B (zh) * 2018-09-29 2022-04-12 安徽江淮汽车集团股份有限公司 一种双离合器变速器nvm数据校验方法及模块
US11461226B2 (en) 2019-12-23 2022-10-04 SK Hynix Inc. Storage device including memory controller
US11567867B2 (en) 2019-12-23 2023-01-31 SK Hynix Inc. Controller for storing data having different types in one memory block when SPO occurs, and method of operating the same

Similar Documents

Publication Publication Date Title
US10720945B2 (en) Nonvolatile memory device and read and copy-back methods thereof
JP6228446B2 (ja) メモリシステムの動作方法及びメモリシステム
JP5853899B2 (ja) 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
CN109947358B (zh) 存储器系统及其操作方法
KR102430791B1 (ko) 컨트롤러 및 컨트롤러의 동작방법
KR20140034333A (ko) 메모리 컨트롤러의 동작 방법 및 이를 포함하는 메모리 장치
US9847122B2 (en) Multi-bit memory device and on-chip buffered program method thereof
JP2008181380A (ja) メモリシステムおよびその制御方法
KR20180039785A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
CN110096385B (zh) 存储器系统及其操作方法
KR101666987B1 (ko) 메모리 시스템 및 그것의 동작 방법
US11294814B2 (en) Memory system having a memory controller and a memory device having a page buffer
KR20120091648A (ko) 비휘발성 메모리, 이를 포함하는 시스템, 및 이의 프로그램 방법
US10853241B2 (en) Data storing method and data storing apparatus for reducing power consumption in sudden power-off
KR20110121897A (ko) 사용자 장치 및 그것의 프로그램 페일 처리 방법
US10621036B2 (en) Memory system and operation method thereof
CN111429960B (zh) 改善闪存的读取重试的方法、控制器以及相关存储装置
KR20200018060A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
TW201801089A (zh) 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置
US11003544B2 (en) Memory system and method of operating the same
KR20140031551A (ko) 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11029854B2 (en) Memory controller for concurrently writing host data and garbage collected data and operating method thereof
KR102281966B1 (ko) 데이터 스토리지 장치 및 그 동작 방법
KR20110074644A (ko) 불휘발성 반도체 메모리 장치

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination