KR20130066720A - 메모리 컨트롤러 및 이의 동작 방법 - Google Patents

메모리 컨트롤러 및 이의 동작 방법 Download PDF

Info

Publication number
KR20130066720A
KR20130066720A KR1020110133321A KR20110133321A KR20130066720A KR 20130066720 A KR20130066720 A KR 20130066720A KR 1020110133321 A KR1020110133321 A KR 1020110133321A KR 20110133321 A KR20110133321 A KR 20110133321A KR 20130066720 A KR20130066720 A KR 20130066720A
Authority
KR
South Korea
Prior art keywords
level
error correction
bits
memory device
error
Prior art date
Application number
KR1020110133321A
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 KR1020110133321A priority Critical patent/KR20130066720A/ko
Publication of KR20130066720A publication Critical patent/KR20130066720A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Abstract

메모리 컨트롤러의 동작 방법이 개시된다. 상기 메모리 컨트롤러의 동작 방법은 불휘발성 메모리 장치로부터 출력되는 데이터로부터 에러 비트들을 검출하고, 상기 검출된 에러 비트들을 정정하는 단계, 상기 정정된 에러 비트들의 수에 따라 상기 불휘발성 메모리 장치의 각 블록별로 에러 정정 레벨을 조절하는 단계를 포함한다.

Description

메모리 컨트롤러 및 이의 동작 방법{MEMORY CONTROLLER AND OPERATION METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 메모리 컨트롤러의 동작 방법에 관한 것으로, 특히 메모리 컨트롤러의 전력을 감소시킬 수 있는 메모리 컨트롤러 및 이의 동작 방법에 관한 것이다.
NAND 플래시 메모리 장치와 같은 불휘발성 메모리 장치에서 데이터를 저장하기 위한 프로그램(program) 동작, 상기 불휘발성 메모리 장치로부터 데이터를 읽기 위한 리드(read) 동작, 및 상기 불휘발성 메모리 장치에 저장된 데이터를 소거하기 위한 이레이즈(erase) 동작이 수행될 수 있다.
상기 불휘발성 메모리 장치에서 상기 프로그램 동작 또는 상기 리드 동작이 수행될 때, 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러는 상기 데이터에서 생성되는 에러를 검출하고 수정하기 위해 ECC(error correcting code)를 이용한다.
상기 메모리 컨트롤러는 상기 데이터에서 생성되는 에러를 수정하기 위해 상기 불휘발성 메모리 장치의 각 블록에 대해 동일한 에러 정정 레벨을 이용하였다.
상기 데이터는 블록 단위로 소거되며, 상기 에러 정정 레벨은 상기 각 블록당 얼마나 많은 에러 비트들을 정정할 수 있는지를 나타낸다.
또한, 시간이 지남에 따라 상기 불휘발성 메모리 장치에서 생성되는 에러들의 수는 증가할 수 있다.
상기 메모리 컨트롤러가 상기 불휘발성 메모리 장치의 각 블록에 대해 동일한 에러 정정 레벨을 이용하여 상기 에러를 수정할 때, 상기 메모리 컨트롤러의 전력은 낭비될 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 불휘발성 메모리 장치의 수명 또는 정정된 에러 비트들의 수에 따라 에러 정정 능력을 적응적으로 조절할 수 있는 메모리 컨트롤러 및 이의 동작 방법을 제공하는 것이다.
본 발명의 실시 예에 다른 메모리 컨트롤러의 동작 방법은 불휘발성 메모리 장치로부터 출력되는 데이터로부터 에러 비트들을 검출하고, 상기 검출된 에러 비트들을 정정하는 단계, 및 상기 정정된 에러 비트들의 수에 따라 상기 불휘발성 메모리 장치의 각 블록별로 에러 정정 레벨을 조절하는 단계를 포함한다.
상기 에러 정정 레벨은 상기 각 블록당 얼마나 많은 에러 비트들을 정정할 수 있는지를 나타낸다.
실시 예에 따라 상기 메모리 컨트롤러의 동작 방법은 상기 불휘발성 메모리 장치의 프로그램(program)-이레이즈(erase) 사이클들(cycles)의 수에 따라 상기 불휘발성 메모리 장치의 상기 각 블록별로 상기 에러 정정 레벨을 조절하는 단계를 더 포함할 수 있다.
상기 에러 정정 레벨을 조절하는 단계는 상기 정정된 에러 비트들의 수와 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값을 비교하는 단계, 및 상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 클 때, 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절하는 단계를 포함한다.
상기 에러 정정 레벨을 조절하는 단계는 상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 작을 때, 상기 제1레벨을 유지하는 단계를 더 포함한다.
실시 예에 따라, 상기 각 블록이 최상위 비트들을 포함하는 MSB(most significant bit) 페이지와 최하위 비트들을 포함하는 LSB(least significant bit) 페이지를 포함할 때, 상기 메모리 컨트롤러의 동작 방법은 상기 정정된 에러 비트들의 수에 따라 상기 MSB 페이지와 상기 LSB 페이지의 상기 에러 정정 레벨을 조절하는 단계를 더 포함할 수 있다.
상기 각 블록이 복수의 페이지들을 포함할 때, 실시 예에 따라 상기 메모리 컨트롤러의 동작 방법은 상기 정정된 에러 비트들의 수에 따라 상기 복수의 페이지들 각각의 에러 정정 레벨을 조절하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 ECC(error correction code) 블록, 및 상기 ECC 블록을 제어하는 마이크로 프로세서를 포함하며, 상기 ECC 블록은 불휘발성 메모리 장치로부터 출력되는 데이터로부터 에러 비트들을 검출하고 상기 검출된 에러 비트들을 정정하며, 상기 정정된 에러 비트들의 수에 따라 상기 불휘발성 메모리 장치의 각 블록별로 에러 정정 레벨을 조절한다.
상기 ECC 블록은, 상기 정정된 에러 비트들의 수가 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값보다 클 때, 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절한다.
상기 불휘발성 메모리 장치의 각 블록이 복수의 페이지들을 포함할 때, 상기 ECC 블록은 상기 정정된 에러 비트들의 수에 따라 상기 복수의 페이지들 각각의 에러 정정 레벨을 조절한다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 불휘발성 메모리 장치의 수명 또는 정정된 에러 비트들의 수에 따라 에러 정정 능력을 적응적으로 조절함으로써 메모리 컨트롤러의 전력을 줄일 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 메모리 컨트롤러를 포함하는 메모리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 메모리 시스템을 포함하는 멀티-칩 패키지의 일 실시 예를 나타낸다.
도 3은 도 1에 도시된 메모리 시스템을 포함하는 멀티-칩 패키지의 다른 실시 예를 나타낸다.
도 4는 도 1에 도시되고 2차원적인 구조를 갖는 불휘발성 메모리 장치의 블록도를 나타낸다.
도 5는 도 1에 도시되고 3차원적인 구조를 갖는 불휘발성 메모리 장치의 블록도를 나타낸다.
도 6은 도 1에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 흐름도이다.
도 7은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 8은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 9는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 10은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 11은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 12는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 13은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 컨트롤러(20)를 포함하는 메모리 시스템(10)의 블록도를 나타낸다. 도 1을 참조하면, 메모리 시스템(10)은 메모리 컨트롤러(20) 및 불휘발성 메모리 장치(40)를 포함한다.
메모리 컨트롤러(20)는 호스트(HOST)의 제어에 따라 불휘발성 메모리 장치 (40)의 데이터 처리 동작, 예컨대 프로그램(program) 동작, 리드(read) 동작, 및 이레이즈(erase) 동작을 제어할 수 있다.
메모리 컨트롤러(20)는 마이크로프로세서(22), 버퍼(24), ROM(read only memory; 26), ECC(error correction code) 블록(27), 호스트 인터페이스(29), 메모리 인터페이스(30)를 포함한다. 각 구성 요소(22, 24, 26, 27, 29, 및 30)는 버스(28)를 통하여 서로 통신할 수 있다.
회로(circuit), 로직(logic), 코드(code), 또는 이들의 조합으로 구현될 수 있는 마이크로프로세서(22)는 각 구성 요소(24, 26, 27, 29, 및 30)의 동작을 제어할 수 있다.
버퍼(24)는 DRAM(dynamic random access memory), SRAM(static random access memory), 또는 듀얼-포트(dual-port) SRAM와 같은 휘발성(volatile) 메모리로 구현될 수 있다. 버퍼(24)는 불휘발성 메모리 장치(40)로부터 출력되는 데이터를 임시적으로 저장할 수 있다.
ROM(26)은 메모리 컨트롤러(20)의 동작에 필요한 프로그램 코드를 저장한다.
호스트(HOST)와 메모리 컨트롤러(20)는 호스트 인터페이스(29)를 통하여 통신할 수 있다. 호스트(HOST)는 프로그램 요구(program request)와 불휘발성 메모리 장치(40)에 프로그램될 데이터를 호스트 인터페이스(29)를 통하여 메모리 컨트롤러 (20)로 전송할 수 있다. 이때, 메모리 컨트롤러(20)는 상기 프로그램 요구에 따라 상기 데이터가 저장될 불휘발성 메모리 장치(40)의 페이지의 페이지 어드레스 및/또는 상기 페이지에 상응하는 워드 라인 어드레스를 생성할 수 있다.
ECC 블록(27)은 불휘발성 메모리 장치(40)로부터 출력되는 데이터로부터 에러 비트들을 검출하고, 상기 검출된 에러 비트들을 정정한다.
ECC 블록(27)은 상기 정정된 에러 비트들의 수에 따라 불휘발성 메모리 장치(40)의 각 블록별(141-1~141-M)로 에러 정정 레벨을 조절한다.
상기 에러 정정 레벨은 ECC 블록(27)이 각 블록당(141-1~141-M) 얼마나 많은 에러 비트들을 정정할 수 있는지를 나타낸다. 또한, 상기 에러 정정 레벨은 상기 에레 정정 레벨을 조절하기 위해 각 레벨에 대응되는 문턱 값을 가질 수 있다.
예컨대, 상기 에러 정정 레벨은 표 1과 같이 나타낼 수 있다.
에러 정정 레벨 정정가능한 에러 비트들의 수 문턱 값
1 4 bit 2 bit
2 8 bit 4 bit
3 12 bit 8 bit
4 16 bit 12 bit
ECC 블록(27)은 상기 정정된 에러 비트들의 수와 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값을 비교한다.
ECC 블록(27)은 상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 클 때, ECC 블록(27)은 각 블록별(141-1~141-M)로 상기 에러 정정 레벨을 조절한다.
예컨대, 각 블록(141-1~141-M)의 에러 정정 레벨은 모두 제1레벨을 가진다고 가정한다. 제1블록(141-1)의 상기 정정된 에러 비트들의 수가 3비트이고, 상기 에러 정정 레벨의 제1레벨과 대응되는 문턱 값이 2비트일 때, ECC 블록(27)은 제1블록(141-1)의 상기 에러 정정 레벨을 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절한다.
따라서 제1블록(141-1)의 에러 정정 레벨은 나머지 블록들(141-2~141-M)의 에러 정정 레벨과 다르다. 메모리 컨트롤러(20)는 정정된 에러 비트들의 수에 따라 에러 정정 능력을 적응적으로 조절함으로써 메모리 컨트롤러(20)의 전력이 줄어들 수 있다.
메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 메모리 인터페이스(30)를 통하여 서로 통신할 수 있다.
불휘발성 메모리 장치(40)의 메모리 셀 어레이(140)는 복수의 메모리 블록들 (memory block)을 포함하고, 상기 복수의 메모리 블록들 각각은 복수의 페이지들 (42-1~42-N)을 포함하고, 복수의 페이지들(42-1~42-N) 각각은 복수의 불휘발성 메모리 셀들, 예컨대, NAND 플래시 메모리 셀들을 포함한다. 상기 NAND 플래시 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 수 있다.
불휘발성 메모리 장치(40), 예컨대 NAND 플래시 메모리 장치에서, 프로그램 동작 또는 리드 동작은 페이지(page) 단위로 수행되고, 이레이즈 동작은 메모리 블록(memory block) 단위로 수행된다.
여기서 페이지(page)는 하나의 워드 라인에 접속된 복수의 불휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들로 정의되는 메모리 영역을 의미할 수 있다.
예컨대, 상기 NAND 플래시 메모리 셀들 각각이 1-비트를 저장할 수 있는 SLC (single level cell)인 경우, 하나의 워드 라인은 하나의 페이지로 정의될 수 있다.
실시 예에 따라, 메모리 컨트롤러(20)는 상기 정정된 에러 비트들의 수에 따라 각 페이지별(42-1~42-N)로 상기 에러 정정 레벨을 조절할 수 있다.
예컨대, 각 페이지(42-1~42-N)의 에러 정정 레벨은 모두 제1레벨을 가진다고 가정한다. 제1페이지(42-1)의 상기 정정된 에러 비트들의 수가 3비트이고, 상기 에러 정정 레벨의 제1레벨과 대응되는 문턱 값이 2비트일 때, ECC 블록(27)은 제1페이지(42-1)의 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절한다. 따라서 제1페이지(42-1)의 에러 정정 레벨은 나머지 페이지들(42-2~42-N)의 에러 정정 레벨과 다르다.
상기 NAND 플래시 메모리 셀들 각각이 2-비트 이상을 저장할 수 있는 MLC (multi level cell)인 경우, 하나의 워드 라인은 상기 하나의 워드 라인에 접속된 복수의 MLC들 각각에 프로그램되는 비트 수와 동일한 페이지 수를 갖는 것으로 정의될 수 있다.
예컨대, 상기 복수의 MLC들 각각이 2-비트 MLC인 경우, 상기 하나의 워드 라인은 두 개의 페이지들, 예컨대 제1페이지와 제2페이지를 포함하고, 상기 복수의 MLC들 각각이 3-비트 MLC인 경우, 상기 하나의 워드 라인은 세 개의 페이지들, 예컨대 제1페이지, 제2페이지, 및 제3페이지를 포함하다.
상기 제1페이지는 LSB(least significant bit) 페이지를 의미하고, 상기 제2페이지는 MSB(most significant bit) 페이지를 의미하고, 상기 제3페이지는 CSB (center significant bit) 페이지를 의미할 수 있다. 상기 복수의 MLC들 각각이 2-비트 MLC일 때, 제1페이지(42-1)는 LSB 페이지를 의미하고 제2페이지(42-2)는 MSB 페이지를 의미할 수 있다. 일반적으로 상기 MSB 페이지에서 출력되는 데이터는 상기 LSB 페이지에서 출력되는 데이터보다 에러 비트들이 검출될 확률이 더 높다.
실시 예에 따라, 메모리 컨트롤러(20)는 상기 정정된 에러 비트들의 수에 따라 상기 MSB 페이지와 상기 LSB 페이지별로 상기 에러 정정 레벨을 조절할 수 있다.
예컨대, 각 페이지(42-1~42-N)의 에러 정정 레벨은 모두 제1레벨을 가진다고 가정한다. LSB 페이지인 제1페이지(42-1)의 상기 정정된 에러 비트들의 수가 3비트이고, 상기 에러 정정 레벨의 제1레벨과 대응되는 문턱 값이 2비트일 때, ECC 블록(27)은 LSB 페이지들의 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절한다. 따라서 LSB 페이지들의 에러 정정 레벨은 MSB 페이지들의 에러 정정 레벨과 다르다.
또한 실시 예에 따라, 메모리 컨트롤러(20)는 프로그램(program)-이레이즈(erase) 사이클들의 수에 따라 불휘발성 메모리 장치(40)의 각 블록별(141-1~141-M)로 상기 에러 정정 레벨을 조절할 수 있다.
예컨대, 불휘발성 메모리 장치(40)의 프로그램-이레이즈 사이클들의 수가 10000일 때, ECC 블록(27)은 불휘발성 메모리 장치(40)의 상기 에러 정정 레벨을 제1레벨에서 제2레벨로 조절할 수 있다.
도 2는 도 1에 도시된 메모리 시스템을 포함하는 멀티-칩 패키지의 일 실시 예를 나타낸다.
도 2를 참조하면, 멀티-칩 패키지(11)는 회로 기판(11-1), 예컨대 PCB (printed circuit board) 위에 마운트된(mounted) 또는 적층된(stacked) 메모리 컨트롤러(20)와 메모리 컨트롤러(20) 위에 마운트된 또는 적층된 불휘발성 메모리 장치(40)를 포함한다. 메모리 컨트롤러(20)는 본딩 와이어들(11-2)과 솔더 볼들(11-3)을 통하여 외부 장치와 통신할 수 있다. 또한, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 본딩 와이어들(11-4)을 통하여 통신할 수 있다.
도 2에서는 설명의 편의를 위하여, 불휘발성 메모리 장치(40)가 메모리 컨트롤러(20) 위에 형성된 예를 도시하였으나, 실시 예에 따라 두 장치들(20과 40)의 구현 위치가 서로 바뀔 수 있다.
또한, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 본딩 와이어들 (11-4) 이외의 접속 수단을 통하여 서로 통신할 수 있고, 메모리 컨트롤러(20)와 솔더 볼들(11-3)은 본딩 와이어들(11-2) 이외의 접속 수단을 통하여 서로 접속될 수 있다. 상기 접속 수단은 수직 전기 소자(vertical electrical element), 예컨대 TSV(through silicon via)로 구현될 수도 있다.
도 3은 도 1에 도시된 메모리 시스템을 포함하는 멀티-칩 패키지의 다른 실시 예를 나타낸다.
도 3을 참조하면, 멀티-칩 패키지(13)는 회로 기판(13-1), 예컨대 PCB 위에 접속된 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)를 포함한다. 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 본딩 와이어들(13-2)을 통하여 서로 통신하고, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40) 각각은 본딩 와이어들(13-3)과 솔더 볼들(13-4)를 통하여 외부 장치와 통신할 수 있다.
실시 예에 따라, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 본딩 와이어들(13-2) 이외의 접속 수단을 통하여 서로 통신할 수 있다. 상기 접속 수단은 수직 전기 소자, 예컨대 TSV(through silicon via)로 구현될 수도 있다.
예컨대, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40) 각각이 수직 전기 소자들을 통하여 회로 기판(13-1)에 접속될 때, 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)는 상기 수직 전기 소자들과 회로 기판(13-1)을 통하여 서로 통신할 수 있다.
각각의 칩(chip)으로 구현된 메모리 컨트롤러(20)와 불휘발성 메모리 장치 (40)는 PoP(Package On Package), BGAs(Ball Grid Arrays), CSPs(Chip Scale Packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Din in Wafer Form, COB(Chip On Board), CERDIP(CERamic Dual In-Line Package), MQFP(plastic metric quad flat pack), TQFP(Thin Quad FlatPack), SOIC(small-outline integrated circuit), SSOP(shrink small outline package), TSOP(thin small outline), SIP(system in package), MCP(multi chip package), WFP(wafer-level fabricated package), 또는 WSP (wafer-level processed stack package) 등과 같은 패키지로 구현될 수 있다.
도 4는 도 1에 도시되고 2차원적인 구조를 갖는 불휘발성 메모리 장치의 블록도를 나타낸다.
도 1과 도 10을 참조하면, 불휘발성 메모리 장치(40), 예컨대 NAND 플래시 메모리 장치는 데이터를 저장하기 위한 메모리 셀 어레이(140), 컨트롤 로직(43), 전압 발생기(44), 로우 디코더(45), 페이지 버퍼 블록(46), 컬럼 디코더(47), Y-게이팅 회로(48), 및 입출력 블록(49)을 포함한다.
메모리 셀 어레이(140)는 복수의 NAND 메모리 셀 스트링들(strings)을 포함한다. 상기 복수의 NAND 메모리 셀 스트링들 각각은 직렬로 접속된 복수의 NAND 메모리 셀들(41)을 포함한다.
예컨대, 제1NAND 메모리 셀 스트링은 비트 라인(BL1)에 접속된 제1선택 트랜지스터(또는, 스트링 선택 트랜지스터(string selection transistor))와 공통 소스 라인(common source line(CSL))에 접속된 제2선택 트랜지스터(또는, 접지 선택 트랜지스터(ground selection transistor)) 사이에 직렬로 접속된 복수의 NAND 메모리 셀들(41)을 포함한다.
상기 제1선택 트랜지스터의 게이트는 스트링 선택 라인(string selection line(SSL))에 접속되고, 상기 복수의 NAND 메모리 셀들(41) 각각의 게이트는 복수의 워드 라인들(WL0~WL63) 각각에 접속되고, 상기 제2선택 트랜지스터의 게이트는 접지 선택 라인(ground selection line(GSL))에 접속된다.
상술한 바와 같이, 메모리 셀들 각각이 SLC일 때, 각 워드 라인(예컨대, WL0~WL3)은 각 페이지(PAGE0~PAGE3)를 정의할 수 있다.
도 4에는 64개의 워드 라인들(WL0~WL63)을 포함하는 메모리 셀 어레이(140)가 도시되어 있으나, 워드 라인들의 개수에 한정되는 것은 아니다.
도 5는 도 1에 도시되고 3차원적인 구조를 갖는 불휘발성 메모리 장치의 블록도를 나타낸다. 도 1과 도 5에 도시된 바와 같이, 각 NAND 메모리 셀 스트링 (40'-1, 40'-2, ..., 40'-t; t는 자연수)은 3차원적으로 서로 다른 평면에 배치될 수 있다.
도 5에 도시된 바와 같이, 제1NAND 메모리 셀 스트링(40'-1)은 제1레이어 (41-1)에 배치될 수 있고, 제2NAND 메모리 셀 스트링(40'-2)은 제1레이어(41-1)와 서로 다른 제2레이어(41-2)에 배치될 수 있고, 제tNAND 메모리 셀 스트링(40'-t)은 제2레이어(41-2)와 서로 다른 레이어(41-k)에 3차원적으로 배치될 수 있다.
복수의 레이어들(41-1~41-t)은 웨이퍼 적층(wafer stack), 칩(chip) 적층, 또는 셀(cell) 적층을 통하여 형성될 수 있다. 복수의 레이어들(41-1~41-t)은 TSV (through-silicon via)를 포함하는 전기 수직 소자(electrical vertical element), 펌프(bump) 또는 와이어 본딩(wire bonding)을 통하여 접속될 수 있다. 복수의 레이어들(41-1~41-t) 각각은 복수의 셀 스트링들을 포함한다.
도 5에 도시된 바와 같이, 각 NAND 메모리 셀 스트링(40'-1, 40'-2, ..., 40'-t)은 복수의 워드 라인들(WL0-WL63), CSL, 및 비트 라인(BL1)을 공유할 수 있다.
본 명세서에서 사용되는 메모리 셀 어레이(140과 140')는 도 4에 도시된 2차원 메모리 셀 어레이(140)와 도 5에 도시된 3차원 메모리 셀 어레이 (140')를 총괄적으로 의미한다.
회로, 로직, 코드, 또는 이들의 조합으로 구현될 수 있는 컨트롤 로직(43)은 NAND 플래시 메모리 장치(140)의 데이터 처리 동작, 예컨대 프로그램 동작, 리드 동작, 및 이레이즈 동작을 제어한다. 예컨대, 컨트롤 로직(43)은 메모리 컨트롤러 (20)로부터 출력된 복수의 제어 신호들에 따라 상기 데이터 처리 동작을 수행하기 위하여 각 구성 요소(44~49)의 동작을 제어한다.
전압 발생기(44)는 프로그램 동작을 수행하기 위해 필요한 프로그램 전압을 포함하는 복수의 전압들, 리드 동작을 수행하기 위해 필요한 리드 전압을 포함하는 복수의 전압들, 또는 이레이즈 동작을 수행하기 위해 필요한 이레이즈 전압을 포함하는 복수의 전압들을 발생할 수 있다. 전압 발생기(44)는 각각의 동작에 필요한 복수의 전압들을 로우 디코더로 출력할 수 있다.
로우 디코더(45)는, 컨트롤 로직(43)으로부터 출력된 로우 어드레스에 따라, 전압 발생기(44)로부터 출력된 복수의 전압들을 복수의 워드 라인들(WL0~WL63)로 공급한다.
컬럼 디코더(47)는 컨트롤 로직(43)의 제어 하에 컬럼 어드레스를 디코딩하여 복수의 선택 신호들을 Y-게이팅 회로(48)로 출력한다.
페이지 버퍼 블록(46)은 복수의 페이지 버퍼들을 포함한다. 상기 복수의 페이지 버퍼들 각각은 복수의 비트 라인들(BL1~BLx, x는 자연수) 각각에 접속된다.
상기 복수의 페이지 버퍼들 각각은 컨트롤 로직(43)의 제어에 따라 프로그램 동작 동안에는 메모리 셀 어레이(140)에 데이터를 프로그램하기 위한 드라이버로써 동작할 수 있다. 또한, 상기 복수의 페이지 버퍼들 각각은 컨트롤 로직(43)의 제어에 따라 리드 동작 동안 또는 검증(verify) 동작 동안에는 복수의 비트 라인들 (BL1~BLx) 각각의 전압 레벨을 감지 증폭할 수 있는 감지 증폭기로써 동작할 수 있다.
Y-게이팅 회로(48)는 컬럼 디코더(47)로부터 출력된 복수의 선택 신호들에 응답하여 페이지 버퍼 블록(46)과 입출력 블록(49) 사이에서 데이터(DATA)의 전송을 제어할 수 있다.
입출력 블록(49)은 메모리 컨트롤러(20)로부터 입력된 데이터(DATA)를 Y-게이팅 회로(48)로 전송하거나 또는 Y-게이팅 회로(48)로부터 출력된 데이터(DATA)를 복수의 입출력 핀들 또는 데이터 버스를 통하여 메모리 컨트롤러(20)로 전송할 수 있다.
도 6은 도 1에 도시된 메모리 컨트롤러의 동작을 설명하기 위한 흐름도이다.
도 1과 도 6을 참조하면, ECC 블록(27)은 불휘발성 메모리 장치(40)로부터 출력되는 데이터로부터 에러 비트들을 검출하고, 상기 검출된 에러 비트들을 정정한다(S10).
ECC 블록(27)은 상기 정정된 에러 비트들의 수와 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값을 비교한다(S20).
상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 클 때, ECC 블록(27)은 각 블록별(141-1~141-M)로 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절한다(S30).
실시 예에 따라, ECC 블록(27)은 MSB 페이지들 및 LSB 페이지들별로 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제2레벨로 조절할 수 있다.
또한 실시 예에 따라, ECC 블록(27)은 각 페이지별(42-1~42-N)로 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제2레벨로 조절할 수 있다.
또한, 실시 예에 따라, ECC 블록(27)은 불휘발성 메모리 장치(40)의 수명에 따라 상기 에러 정정 레벨을 조절할 수 있다.
상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 작을 때, ECC 블록(27)은 상기 에러 정정 레벨을 상기 제1레벨로 유지한다(S30).
메모리 컨트롤러(20)는, 불휘발성 메모리 장치(40)의 수명 또는 정정된 에러 비트들의 수에 따라 에러 정정 능력을 적응적으로 조절함으로써, 메모리 컨트롤러(20)의 전력을 줄일 수 있다.
도 7은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 일 실시 예를 나타낸다.
도 1, 도 2, 도 7, 및 도 13을 참조하면, 전자 장치(electronic device; 100)는 이동 전화기(cellular/mobile phone), 스마트 폰(smart phone), 태블릿 PC (tablet personal computer), PDA(personal digital assistant), 비디오 게임 콘솔(video game console), 또는 휴대용(handheld) 통신 장치로 구현될 수 있다.
전자 장치(100)는 메모리 컨트롤러(20)와 불휘발성 메모리 장치(40)를 포함한다. 메모리 컨트롤러(20)는 프로세서(110)의 제어에 따라 불휘발성 메모리 장치 (40)의 데이터 처리 동작, 예컨대 프로그램(program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작을 제어할 수 있다.
프로그램 요구에 따라 메모리 컨트롤러(20)는 페이지별로 할당된 시드 테이블에 포함된 시드, 또는 페이지별로 할당된 존에 포함된 시드를 이용하여 의사 난수(RS)를 생성하고, 의사 난수(RS)를 이용하여 데이터(DATA1)를 랜더마이즈하고 랜더마이즈된 데이터(RDATA)를 출력한다. 따라서, 불휘발성 메모리 장치(40)는 랜더마이즈된 데이터를 현재 프로그램될 페이지에 프로그램할 수 있다.
불휘발성 메모리 장치(40)에 프로그램된 데이터는 프로세서(110) 및/또는 메모리 컨트롤러(20)의 제어에 따라 디스플레이(120)를 통하여 디스플레이될 수 있다. 디스플레이(120)는 TFT-LCD(thin film transistor-liquid crystal display), LED(light-emitting diode) 디스플레이, OLED (organic LED) 디스플레이, 또는 AMOLED(active matrix OLED) 디스플레이와 같은 평판 디스플레이(flat panel display)로 구현될 수 있다.
무선 송수신기(130)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(130)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(110)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 프로세서(110)는 무선 송수신기(130)로부터 출력된 신호를 처리하고 처리된 신호를 메모리 컨트롤러(20) 또는 디스플레이(120)로 전송할 수 있다. 본 발명의 실시 예에 따른 메모리 컨트롤러(20)는 프로세서(110)에 의하여 처리된 신호를 불휘발성 메모리 장치 (40)에 프로그램할 수 있다.
또한, 무선 송수신기(130)는 프로세서(110)로부터 출력된 신호를 무선 신호로 변경하고, 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(140)는 프로세서(110)의 동작을 제어하기 위한 제어 신호 또는 프로세서(110)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(110)는 메모리 컨트롤러(20)로부터 출력된 데이터, 무선 송수신기 (130)로부터 출력된 데이터, 또는 입력 장치(140)로부터 출력된 데이터가 디스플레이(120)를 통하여 디스플레이될 수 있도록 디스플레이(120)의 동작을 제어할 수 있다.
실시 예에 따라, 불휘발성 메모리 장치(40)의 동작을 제어할 수 있는 메모리 컨트롤러(20)는 프로세서(110)의 일부로서 구현될 수 있고 또한 프로세서(110)와 별도의 칩으로 구현될 수 있다.
도 8은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 다른 실시 예를 나타낸다.
도 8에 도시된 전자 장치(200)는 PC(personal computer), 랩탑(laptop) 컴퓨터, 넷-북(net-book), e-리더(e-reader), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
전자 장치(200)는 불휘발성 메모리 장치(40)와, 불휘발성 메모리 장치(40)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(20)를 포함한다.
프로세서(210)는 입력 장치(220)를 통하여 입력된 데이터에 따라 불휘발성 메모리 장치(40)에 저장된 데이터를 디스플레이(230)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(220)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 또한, 입력 장치(220)는 다른 장치와 데이터를 인터페이싱할 수 있는 인터페이스일 수 있다.
프로세서(210)는 전자 장치(200)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(20)의 동작을 제어할 수 있다.
실시 예에 따라 불휘발성 메모리 장치(40)의 동작을 제어할 수 있는 메모리 컨트롤러(20)는 프로세서(210)의 일부로서 구현될 수 있고 또한 프로세서(210)와 별도의 칩으로 구현될 수 있다.
도 9는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다. 도 9에서는 설명의 편의를 위하여 전자 장치(300)와 호스트(330)를 함께 도시한다.
도 9에 도시된 전자 장치(300)는 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 상기 디지털 정보를 저장하기 위하여 사용되는 전자 플래시 메모리 데이터 저장 장치인 메모리 카드는 PC 카드, MMC(multimedia card), e-MMC(embedded MMC), SD(secure digital) 카드, 또는 USB(universal serial bus) 플래시 드라이브(flash drive)를 포함한다.
메모리 카드와 같은 전자 장치(300)는 메모리 컨트롤러(20), 불휘발성 메모리 장치(40), 카드 인터페이스(320)를 포함한다.
메모리 컨트롤러(20)는 불휘발성 메모리 장치(40)와 카드 인터페이스(320) 사이에서 데이터의 교환을 제어할 수 있다.
실시 예에 따라, 카드 인터페이스(320)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(320)는 호스트(330)의 프로토콜에 따라 호스트(330)와 메모리 컨트롤러(20) 사이에서 데이터 교환을 인터페이싱할 수 있다.
실시 예에 따라 카드 인터페이스(320)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스라 함은 호스트(330)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어, 또는 신호 전송 방식을 의미할 수 있다.
전자 장치(300)가 PC(personal computer), 랩탑 컴퓨터, 태블릿(tablet) PC, 디지털 카메라(digital camera), 디지털 오디오 플레이어(digital audio player), 이동 전화기, 비디오 게임 콘솔(video gane console), MP3플레이어, PMP(portable multimedia player), e-북, 또는 디지털 셋-탑 박스(digital set-topn box)와 같은 호스트(330)의 호스트 인터페이스(350)에 접속될 때, 호스트 인터페이스(350)는 마이크로프로세서(340)의 제어에 따라 카드 인터페이스(320)와 메모리 컨트롤러(20)를 통하여 불휘발성 메모리 장치(40)와 데이터 통신을 수행할 수 있다.
도 10은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 10에 도시된 전자 장치(400)는 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
전자 장치(400)는 불휘발성 메모리 장치(40)와 불휘발성 메모리 장치(40)의 데이터 처리 동작, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(20)를 포함한다.
전자 장치(400)의 이미지 센서(420)는 광학 이미지를 디지털 이미지 신호들로 변환하고, 변환된 디지털 이미지 신호들은 프로세서(410) 및/또는 메모리 컨트롤러(20)로 전송된다. 프로세서(410)의 제어에 따라, 상기 변환된 디지털 이미지 신호들은 디스플레이(430)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(20)를 통하여 불휘발성 메모리 장치(40)에 저장될 수 있다.
또한, 불휘발성 메모리 장치(40)에 저장된 데이터는 프로세서(410) 및/또는 메모리 컨트롤러(20)의 제어에 따라 디스플레이(430)를 통하여 디스플레이된다.
실시 예에 따라 불휘발성 메모리 장치(40)의 동작을 제어할 수 있는 메모리 컨트롤러(20)는 프로세서(410)의 일부로서 구현될 수 있고 또한 프로세서(410)와 별개의 칩으로 구현될 수 있다.
도 11은 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 11을 참조하면, 전자 장치(500)는 불휘발성 메모리 장치(40)와 불휘발성 메모리 장치(40)의 동작을 제어할 수 있는 메모리 컨트롤러(20)를 포함한다.
전자 장치(500)는 CPU(central processing unit; 510)의 동작 메모리 (operation memory)로서 사용될 수 있는 메모리 장치(550)를 포함한다. 메모리 장치(550)는 ROM(read only memory)과 같은 불휘발성 메모리로 구현될 수 있고 SRAM (Static random access memory)과 같은 휘발성 메모리로 구현될 수 있다.
전자 장치(500)에 접속된 호스트(HOST)는 메모리 컨트롤러(20)와 호스트 인터페이스(540)를 통하여 불휘발성 메모리 장치(40)와 데이터 통신을 수행할 수 있다.
CPU(510)의 제어에 따라 ECC 블록(530)은 메모리 컨트롤러(20)를 통하여 불휘발성 메모리 장치(40)로부터 출력된 데이터에 포함된 에러 비트를 검출하고, 상기 에러 비트를 정정하고, 에러 정정된 데이터를 호스트 인터페이스(540)를 통하여 호스트(HOST)로 전송할 수 있다. 실시 예에 따라 ECC 블록(530)은 전자 장치(500)에 포함되지 않을 수도 있다.
CPU(510)는 버스(501)를 통하여 메모리 컨트롤러(20), ECC 블럭(530), 호스트 인터페이스(540), 및 메모리 장치(550) 사이에서 데이터 통신을 제어할 수 있다.
전자 장치(500)는 플래시 메모리 드라이브, USB 메모리 드라이브, IC-USB 메모리 드라이브, 또는 메모리 스틱(memory stick)으로 구현될 수 있다.
도 12는 도 1에 도시된 메모리 시스템을 포함하는 전자 장치의 또 다른 실시 예를 나타낸다.
도 12를 참조하면, 전자 장치(600)는 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
전자 장치(600)는 복수의 솔리드 스테이트 메모리 장치들(40), 메모리 컨트롤러(20), 휘발성 메모리 장치(630), 및 버퍼 매니저(620)를 포함한다.
메모리 컨트롤러(20)는 복수의 솔리드 스테이트 메모리 장치들(40) 각각의 데이터 처리 동작을 제어할 수 있다. 복수의 솔리드 스테이트 메모리 장치들(40) 각각은 도 1에 도시된 불휘발성 메모리 장치, 예컨대 NAND 플래시 메모리 장치로 구현되고, 복수의 페이지들을 포함한다. 메모리 컨트롤러(20)는 데이터를 복수의 솔리드 스테이트 메모리 장치들(40) 중에서 하나의 포함된 페이지에 프로그램할 수 있다.
휘발성 메모리 장치(630)는 DRAM으로 구현될 수 있고 메모리 컨트롤러(20)와 호스트(640) 사이에서 주고 받는 데이터를 일시적으로 저장한다.
버퍼 매니저(620)는 휘발성 메모리 장치(630) 및/또는 메모리 컨트롤러(20)의 데이터 버퍼링 동작을 제어할 수 있다.
도 13은 도 12에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 12와 도 13을 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 처리 장치(700)는 RAID 컨트롤러(710)와 복수의 전자 장치들(600-1~600-n; n는 자연수)을 포함할 수 있다.
전자 장치들(600-1~600-n) 각각은 도 12에 도시된 전자 장치(600)이다. 복수의 전자 장치들(600-1~600-n)은 RAID 어레이를 구성할 수 있다. 데이터 처리 장치 (700)는 PC(personal computer), NAS(Network-attached storage) 또는 SSD(solid state drive)로 구현될 수 있다. 전자 장치들(600-1~600-n) 각각은 메모리 모듈 (memory module) 형태로 구현된 메모리 시스템일 수 있다.
프로그램 동작 동안, 호스트(HOST)로부터 출력된 프로그램 요구에 따라 RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 데이터를 RAID 레벨에 기초하여 복수의 전자 장치(600-1~600-n) 중에서 적어도 어느 하나의 전자 장치로 출력할 수 있다.
리드 동작 동안, RAID 컨트롤러(710)는 호스트(HOST)로부터 출력된 리드 명령에 따라 복수의 전자 장치들(600-1~600-n) 중에서 적어도 어느 하나의 전자 장치로부터 리드된 데이터를 호스트(HOST)로 전송할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10; 메모리 시스템
20; 메모리 컨트롤러
22; 마이크로프로세서
24; 버퍼
26; ROM
27; ECC 블록
29; 호스트 인터페이스
30; 메모리 인터페이스
40; 불휘발성 메모리 장치

Claims (9)

  1. 불휘발성 메모리 장치로부터 출력되는 데이터로부터 에러 비트들을 검출하고, 상기 검출된 에러 비트들을 정정하는 단계; 및
    상기 정정된 에러 비트들의 수에 따라 상기 불휘발성 메모리 장치의 각 블록별로 에러 정정 레벨을 조절하는 단계를 포함하며,
    상기 에러 정정 레벨은,
    상기 각 블록당 얼마나 많은 에러 비트들을 정정할 수 있는지를 나타내는 레벨인 메모리 컨트롤러의 동작 방법.
  2. 제1항에 있어서, 상기 메모리 컨트롤러의 동작 방법은,
    상기 불휘발성 메모리 장치의 프로그램(program)-이레이즈(erase) 사이클들(cycles)의 수에 따라 상기 불휘발성 메모리 장치의 상기 각 블록별로 상기 에러 정정 레벨을 조절하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  3. 제1항에 있어서, 상기 에러 정정 레벨을 조절하는 단계는.
    상기 정정된 에러 비트들의 수와 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값을 비교하는 단계; 및
    상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 클 때, 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  4. 제3항에 있어서, 상기 에러 정정 레벨을 조절하는 단계는.
    상기 정정된 에러 비트들의 수가 상기 제1문턱 값보다 작을 때, 상기 제1레벨을 유지하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  5. 제1항에 있어서, 상기 각 블록이 최상위 비트들을 포함하는 MSB(most significant bit) 페이지와 최하위 비트들을 포함하는 LSB(least significant bit) 페이지를 포함할 때,
    상기 메모리 컨트롤러의 동작 방법은,
    상기 정정된 에러 비트들의 수에 따라 상기 MSB 페이지와 상기 LSB 페이지의 상기 에러 정정 레벨을 조절하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  6. 제1항에 있어서, 상기 각 블록이 복수의 페이지들을 포함할 때,
    상기 메모리 컨트롤러의 동작 방법은.
    상기 정정된 에러 비트들의 수에 따라 상기 복수의 페이지들 각각의 에러 정정 레벨을 조절하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  7. ECC(error correction code) 블록; 및
    상기 ECC 블록을 제어하는 마이크로 프로세서를 포함하며,
    상기 ECC 블록은,
    불휘발성 메모리 장치로부터 출력되는 데이터로부터 에러 비트들을 검출하고 상기 검출된 에러 비트들을 정정하며, 상기 정정된 에러 비트들의 수에 따라 상기 불휘발성 메모리 장치의 각 블록별로 에러 정정 레벨을 조절하며,
    상기 에러 정정 레벨은 상기 각 블록당 얼마나 많은 에러 비트들을 정정할 수 있는지를 나타내는 메모리 컨트롤러.
  8. 제7항에 있어서, 상기 ECC 블록은,
    상기 정정된 에러 비트들의 수가 상기 에러 정정 레벨의 제1레벨과 대응되는 제1문턱 값보다 클 때, 상기 에러 정정 레벨을 상기 제1레벨에서 상기 제1레벨보다 큰 제2레벨로 조절하는 메모리 컨트롤러.
  9. 제7항에 있어서, 상기 불휘발성 메모리 장치의 각 블록이 복수의 페이지들을 포함할 때,
    상기 ECC 블록은,
    상기 정정된 에러 비트들의 수에 따라 상기 복수의 페이지들 각각의 에러 정정 레벨을 조절하는 메모리 컨트롤러.
KR1020110133321A 2011-12-13 2011-12-13 메모리 컨트롤러 및 이의 동작 방법 KR20130066720A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110133321A KR20130066720A (ko) 2011-12-13 2011-12-13 메모리 컨트롤러 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110133321A KR20130066720A (ko) 2011-12-13 2011-12-13 메모리 컨트롤러 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130066720A true KR20130066720A (ko) 2013-06-21

Family

ID=48862782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110133321A KR20130066720A (ko) 2011-12-13 2011-12-13 메모리 컨트롤러 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR20130066720A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110942798A (zh) * 2018-09-25 2020-03-31 三星电子株式会社 半导体存储器件、存储系统及操作半导体存储器件的方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110942798A (zh) * 2018-09-25 2020-03-31 三星电子株式会社 半导体存储器件、存储系统及操作半导体存储器件的方法

Similar Documents

Publication Publication Date Title
US8635509B2 (en) Method of operating memory controller and memory system including the memory controller
KR101818445B1 (ko) 메모리 컨트롤러, 이의 동작 방법, 및 상기 메모리 컨트롤러를 포함하는 전자 장치들
US9256528B2 (en) Method for operating a memory controller and a system having the memory controller
KR20120028581A (ko) 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들
US8711618B2 (en) Method for programming non-volatile memory device and apparatuses performing the method
US8705277B2 (en) Non-volatile memory programming
US9741440B2 (en) Memory device and read method of memory device
CN108461099B (zh) 半导体存储装置
US11386965B2 (en) Memory device, memory system including the memory device, and operating method of the memory system
US11004504B2 (en) Controller, memory system including the controller, and operating method of the memory system
US9508452B2 (en) Partial chip, and systems having the same
KR20190098393A (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US10678471B2 (en) Memory controller, memory system having the memory controller, and operating method of the memory controller
KR20150109705A (ko) 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
KR20130066720A (ko) 메모리 컨트롤러 및 이의 동작 방법
US11494116B2 (en) Memory device for programming dummy pages, memory controller for controlling the memory device and memory system having the same
US10984869B2 (en) Memory device, memory system including the memory device, and operating method of the memory system
US10930356B2 (en) Memory controller and method of operating the same
US10969987B2 (en) Memory device, memory system including the memory device, and method of operating the memory system
KR20130006190A (ko) 메모리 컨트롤러, 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
KR102398671B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20210026782A1 (en) Data storage apparatus, operating method thereof, and controller therefor
KR20130118424A (ko) 메모리 시스템 및 이의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application