KR102121333B1 - 반도체 시스템 및 이의 동작 방법 - Google Patents

반도체 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR102121333B1
KR102121333B1 KR1020130128491A KR20130128491A KR102121333B1 KR 102121333 B1 KR102121333 B1 KR 102121333B1 KR 1020130128491 A KR1020130128491 A KR 1020130128491A KR 20130128491 A KR20130128491 A KR 20130128491A KR 102121333 B1 KR102121333 B1 KR 102121333B1
Authority
KR
South Korea
Prior art keywords
data
block
bit data
buffer block
stored
Prior art date
Application number
KR1020130128491A
Other languages
English (en)
Other versions
KR20150048426A (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 KR1020130128491A priority Critical patent/KR102121333B1/ko
Priority to US14/199,739 priority patent/US9575888B2/en
Publication of KR20150048426A publication Critical patent/KR20150048426A/ko
Application granted granted Critical
Publication of KR102121333B1 publication Critical patent/KR102121333B1/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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/14Error detection or correction of the data by redundancy in operation
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/70Details relating to dynamic memory management
    • G06F2212/702Conservative garbage collection

Abstract

본 기술은 데이타를 저장하도록 구성된 반도체 메모리 장치; 및 외부 명령 신호에 따라 상기 반도체 메모리 장치를 제어하도록 구성된 호스트를 포함하며, 상기 반도체 메모리 장치는, 원본 데이타를 저장하도록 구성된 버퍼 블록; 및 상기 호스트의 제어에 따라 프로그램되는 데이타를 저장하거나, 서든 파워 페일(sudden power fail) 발생시 상기 버퍼 블록에 저장된 데이타의 복사본을 저장하도록 구성된 메인 블록을 포함하는 반도체 시스템 및 이의 동작 방법을 포함한다.

Description

반도체 시스템 및 이의 동작 방법{Semiconductor system and operating method thereof}
본 발명은 반도체 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 서든 파워 페일 발생시 데이타 복원을 위한 반도체 시스템 및 이의 동작 방법에 관한 것이다.
반도체 시스템은 데이타를 저장하도록 구성된 반도체 메모리 장치와 이를 제어하도록 구성된 호스트를 포함한다. 호스트는 반도체 메모리 장치에 프로그램, 리드 및 소거 동작 명령 신호와 각 동작에 필요한 어드레스를 전달하며, 반도체 메모리 장치는 호스트로부터 전달받은 명령 신호와 어드레스에 응답하여 프로그램, 리드 또는 소거 동작을 수행한다. 따라서, 호스트는 시작된 동작이 완료될 때까지 반도체 메모리 장치의 제어에 대한 신뢰도가 높아야 하고, 반도체 메모리 장치는 데이타 저장에 대한 신뢰도가 높아야 한다.
한편, 반도체 시스템의 동작 중, 서든 파워 페일(sudden power fail)이 발생할 수 있는데, 서든 파워 페일이란, 예상치 않게 파워의 공급이 중단되는 현상을 의미한다. 예를 들면, 정전과 같이 예상치 못한 파워 공급 중단 현상이 서든 파워 페일에 포함될 수 있다.
서든 파워 페일이 발생하면, 호스트는 수행중이던 동작을 다시 실시하도록 해야 하며, 반도체 메모리 장치는 프로그램 완료된 데이타를 온전하게 저장하고, 이를 다시 복구할 수 있어야 한다.
본 발명의 실시예는 서든 파워 페일이 발생한 경우, 서든 파워 페일이 발생하기 이전에 반도체 메모리 장치에 프로그램 완료된 데이타를 복구 가능하도록 하며, 데이타의 복구에 필요한 장치의 증가를 억제하고 복구 시간을 단축할 수 있는 반도체 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 반도체 시스템은 데이타를 저장하도록 구성된 반도체 메모리 장치; 및 외부 명령 신호에 따라 상기 반도체 메모리 장치를 제어하도록 구성된 호스트를 포함하며, 상기 반도체 메모리 장치는, 원본 데이타를 저장하도록 구성된 버퍼 블록; 및 상기 호스트의 제어에 따라 프로그램되는 데이타를 저장하거나, 서든 파워 페일(sudden power fail) 발생시 상기 버퍼 블록에 저장된 데이타의 복사본을 저장하도록 구성된 메인 블록을 포함한다.
본 발명의 일 실시예에 따른 반도체 시스템의 동작 방법은, 하위비트 데이타의 원본 데이타를 버퍼 블록에 저장하는 단계; 상기 버퍼 블록에 저장된 상기 하위비트 데이타를 메인 블록으로 복사하는 단계; 및 상기 호스트의 제어에 따라 상위비트 데이타를 상기 메인 블록에 프로그램하는 단계를 포함하며, 상기 상위비트 데이타의 프로그램 동작 중, 서든 파워 페일이 발생할 경우, 상기 버퍼 블록에 저장된 상기 하위비트 데이타를 상기 메인 블록으로 복사한 후, 상기 상위비트 데이터의 프로그램 동작을 재수행하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 반도체 시스템의 동작 방법은, 하위비트 데이타의 원본 데이타를 버퍼 블록에 저장하는 단계; 버퍼 블록의 가비지 콜렉션(garbage collection)을 수행할 필요가 있는지는 판단하는 단계; 상기 판단 결과, 상기 가비지 콜렉션을 수행할 필요가 없으면, 상기 버퍼 블록에 상위비트 데이타를 프로그램한 후, 상기 버퍼 블록에 프로그램된 상기 상위비트 데이타를 메인 블록으로 복사하는 단계; 및 상기 판단 결과, 상기 가비지 콜렉션을 수행할 필요가 있으면, 상기 가비지 콜렉션을 수행한 후, 상기 메인 블록에 상기 상위비트 데이타를 프로그램하는 단계를 포함하며, 상기 상위비트 데이타의 프로그램 동작 중, 서든 파워 페일이 발생할 경우, 상기 버퍼 블록에 저장된 상기 하위비트 데이타를 상기 메인 블록으로 복사한 후, 상기 상위비트 데이터를 다시 프로그램하는 단계를 포함한다.
본 기술은 서든 파워 페일 발생시, 서든 파워 페일이 발생하기 이전에 프로그램 완료된 데이타를 용이하게 복구할 수 있으며, 데이타의 복구에 필요한 장치의 증가를 억제하고, 프로그램 동작시간을 단축할 수 있다. 따라서, 반도체 시스템의 용량 저하를 억제할 수 있고 신뢰도를 개선할 수 있다.
도 1은 본 발명의 실시예에 따른 반도체 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시예에 따른 반도체 메모리 장치를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예에 따른 메모리 셀 어레이를 구체적으로 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 따른 메모리 블록을 구체적으로 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 데이타 저장 방법을 개략적으로 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 LSB 프로그램 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 실시예에 따른 MSB 프로그램 방법을 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 데이타 복구 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 다른 시예에 따른 데이타 복구 방법을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시예에 따른 반도체 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 반도체 시스템(1000)은 호스트(1100) 및 반도체 메모리 장치(1200)를 포함한다. 호스트(1100)는 외부 명령 신호에 따라 반도체 메모리 장치(1200)를 제어하기 위한 동작 명령 신호들(CMD), 어드레스(ADD) 및 데이타(DQ)를 출력한다. 반도체 메모리 장치(1200)는 동작 명령 신호들(CMD), 어드레스(ADD) 및 데이타(DQ)에 응답하여 프로그램 동작, 리드 동작 또는 소거 동작을 수행하고, 리드 동작시 출력된 데이타(DQ)를 호스트(1100)에 전달하기도 한다.
반도체 시스템(1000)이 동작하는 도중에, 다양한 원인에 의하여 예상치 못하게 파워의 공급이 중단되는 경우가 발생할 수 있다. 이를 서든 파워 페일(sudden power fail)이라 한다.
서든 파워 페일이 발생하면, 반도체 메모리 장치(1200)는 서든 파워 페일이 발생하기 이전에 저장된 데이타를 보존하고, 다음 동작을 위하여 데이타를 복구하도록 구성된다. 구체적인 반도체 메모리 장치(1200)를 설명하면 다음과 같다.
도 2는 본 발명의 실시예에 따른 반도체 메모리 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 반도체 메모리 장치(1200)는 데이타를 저장하도록 구성된 메모리 셀 어레이(110), 프로그램, 리드 및 소거동작을 수행하도록 구성된 주변회로들(120), 주변회로들(120)을 제어하도록 구성된 제어회로(130)를 포함한다.
메모리 셀 어레이(110)는 제1 내지 제k 메모리 블록들을 포함하며, 제1 내지 제k 메모리 블록들은 데이타를 저장하기 위한 다수의 메모리 셀들을 포함한다.
주변회로들(120)은 전압 생성 회로(121), 로우 디코더(122), 페이지 버퍼 그룹(123), 컬럼 디코더(124) 및 입출력 회로(125)를 포함한다.
전압 생성 회로(121)는 프로그램 신호(PGM), 리드 신호(READ) 또는 소거 신호(ERASE)에 응답하여 프로그램 전압(Vpgm), 리드 전압(Vread), 소거 전압(Verase) 등의 각종 동작에 필요한 전압들을 생성한다. 예를 들면, 전압 생성 회로(121)는 프로그램 전압(Vpgm) 및 리드 전압(Vread)을 생성하여 로우 디코더(122)에 공급하고, 소거 전압(Verase)을 생성하여 메모리 셀 어레이(110)에 공급한다.
로우 디코더(122)는 로우 어드레스(RADD)에 응답하여 제1 내지 제k 메모리 블록들 중 하나를 선택하고, 전압 생성 회로(121)에서 생성된 전압들을 선택된 메모리 블록에 연결된 워드라인들(WL), 드레인 셀렉트 라인(DSL) 및 소오스 셀렉트 라인(SSL)에 전달한다.
페이지 버퍼 그룹(123)은 페이지 버퍼 제어신호들(PBSIGNALS)에 응답하여 데이타를 임시로 저장하도록 구성된 다수의 페이지 버퍼들(PB)을 포함한다. 페이지 버퍼들(PB)은 비트라인들(BL)을 통해 메모리 셀 어레이(110)에 연결되며, 페이지 버퍼 제어신호들(PBSIGNALS)에 응답하여 임시로 저장된 데이타를 비트라인들(BL)에 전달하거나, 메모리 셀 어레이(110)로부터 비트라인들(BL)을 통해 전달된 데이타를 임시로 저장한다.
컬럼 디코더(124)는 컬럼 라인들(CL)을 통해 페이지 버퍼들(PB)에 연결되며, 컬럼 어드레스(CADD)에 응답하여 페이지 버퍼들(PB)에 데이타를 전달하거나 페이지 버퍼들(PB)로부터 데이타를 전달받는다.
입출력 회로(125)는 입출력 라인들(IL)을 통해 컬럼 디코더(124)에 연결되며, 데이타 신호(DATA)에 응답하여 입출력 데이타(DQ)를 컬럼 디코더(124)에 전송하거나 컬럼 디코더(124)로부터 전달받은 데이타(DQ)를 외부로 출력한다.
제어회로(130)는 명령신호(CMD) 및 어드레스(ADD)에 응답하여 동작신호(PGM, READ 또는 ERASE), 로우 어드레스(RADD), 페이지 버퍼 신호들(PBSIGNALS), 컬럼 어드레스(CADD) 및 데이타 신호(DATA)를 출력하여 주변회로들(120)을 제어한다.
도 3은 본 발명의 실시예에 따른 메모리 셀 어레이를 구체적으로 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 셀 어레이(110)는 제1 내지 제k 메모리 블록들을 포함한다. 제1 내지 제k 메모리 블록들 중에서 일부 메모리 블록들은 버퍼 블록으로 지정되고, 나머지 메모리 블록들은 메인 블록으로 지정된다. 버퍼 블록은 프로그램 동작시 호스트로부터 받은 원본 데이타를 저장하며, 메인 블록은 호스트로부터 받은 원본 데이타 또는 버퍼 블록에 저장된 원본 데이타의 복사본을 저장한다. 즉, 프로그램 동작의 최종 데이타는 메인 블록에 저장된다. 따라서, 제1 내지 제k 메모리 블록들 중 대부분의 메모리 블록들이 메인 블록으로 지정된다. 예를 들면, 제1 내지 제k-1 메모리 블록들이 메인 블록으로 지정되고, 제k 메모리 블록이 버퍼 블록으로 지정될 수 있다.
메인 블록은 대용량의 데이타들을 저장해야 하므로, 멀티 레벨 셀(multi level cell; MLC)로 구현된다. 버퍼 블록은 멀티 레벨 셀(MLC) 또는 싱글 레벨 셀(single level cell; SLC)로 구현될 수 있으나, 원본 데이타가 온전하게 저장되어야 하므로, 멀티 레벨 셀(MLC)보다 신뢰도가 높은 싱글 레벨 셀(SLC)로 구현된다.
메인 블록을 멀티 레벨 셀로 구현하면, 데이타는 하위비트 데이타(LSB_DATA)와 상위비트 데이타(MSB_DATA)로 구분된다. 예를 들면, 호스트는 하위비트 데이타(LSB_DATA)를 먼저 프로그램한 후, 상위비트 데이타(MSB_DATA)를 프로그램하도록 반도체 메모리 장치를 제어한다. 하위비트 데이타(LSB_DATA)는 버퍼 블록에 우선적으로 저장되고, 상위비트 데이타(MSB_DATA) 프로그램 동작시 버퍼 블록에 저장된 하위비트 데이타(LSB_DATA)는 메인 블록으로 복사된다. 상위비트 데이타(MSB_DATA)는 버퍼 블록에 저장 공간이 남을 경우 버퍼 블록에 저장되고, 버퍼 블록에 저장 공간이 없을 경우에는 메인 블록에 저장된다. 즉, 상위비트 데이타(MSB_DATA)는 하위비트 데이타(LSB_DATA)와 같이 간섭을 받지 않으므로, 원본 데이타의 중요성이 하위비트 데이타(LSB_DATA)보다 낮다. 따라서, 버퍼 블록에 하위비트 데이타(LSB_DATA)가 저장되고 남은 공간이 있을 경우에만 원본으로써의 상위비트 데이타(MSB_DATA)를 저장한다. 버퍼 블록에 저장 공간이 없는 경우에는, 버퍼 블록에 저장된 데이타 중에서 유효한 데이타(valid data)를 메인 블록으로 옮기는 동작을 수행하는데, 이를 가비지 콜렉션(garbage collection) 이라 한다. 이하, 설명의 편의를 위하여, 가비지 콜렉션에 따라 버퍼 블록에서 메인 블록으로 옮겨지는 유효한 데이타를 가비지 데이타(GC_DATA)로 정의한다.
메모리 블록의 구성을 구체적으로 설명하면 다음과 같다.
도 4는 본 발명의 실시예에 따른 메모리 블록을 구체적으로 설명하기 위한 도면이다.
도 4를 참조하면, 각각의 메모리 블록은 서로 동일한 구조로 구성되므로, 어느 하나의 메모리 블록을 예를 들어 설명하도록 한다.
메모리 블록은 메인 데이타가 저장되도록 구성된 메인 스트링 영역(main string region; MSR)과 플래그 데이타가 저장되도록 구성된 플래그 스트링 영역(flag string region; FSR)을 포함한다. 메인 스트링 영역(MSR)과 플래그 스트링 영역(FSR)은 서로 동일하게 구성된 다수의 스트링들(ST)을 포함한다.
스트링(ST)은 서로 직렬로 연결된 드레인 셀렉트 트랜지스터(DST), 다수의 메모리 셀들(F0~Fn) 및 소오스 셀렉트 트랜지스터(SST)를 포함한다. 서로 다른 스트링들(ST)에 포함된 드레인 셀렉트 트랜지스터들(DST)의 드레인들(drains)은 비트라인들(BL0~BLs)에 연결되고, 소오스 셀렉트 트랜지스터들(SST)의 소오스들(sources)은 소오스 라인(SL)에 공통으로 연결된다. 메인 스트링 영역(MSR)에는 제0 내지 제k 비트라인들(BL0~BLk)이 연결되고, 플래그 스트링 영역(FSR)에는 제k+1 내지 제s 비트라인들(BLk+1~BLs)이 연결된다. 서로 다른 스트링들(ST)에 포함된 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 드레인 셀렉트 라인(DSL)에 연결되고, 메모리 셀들(F0~Fn)의 게이트들은 워드라인들(WL0~WLn)에 연결되고, 소오스 셀렉트 트랜지스터들(SST)의 게이트들은 소오스 셀렉트 라인(SSL)에 연결된다.
하나의 워드라인에 연결된 메모리 셀들의 그룹을 페이지(page; PG)라 하므로, 메모리 블록에 n+1개의 워드라인들이 연결되어 있으면 하나의 메모리 블록에는 n+1개의 페이지들(PG)이 포함된다. 프로그램 동작시, 선택된 페이지의 하위비트 프로그램 동작이 완료되면, 선택된 페이지의 플래그 스트링 영역(FSR)에는 하위비트 프로그램 동작이 완료되었다는 데이타가 저장된다. 따라서, 플래그 스트링 영역(FSR)에 저장된 데이타에 따라 해당 페이지의 하위비트 프로그램 완료 여부를 판단할 수 있다.
도 5는 본 발명의 실시예에 따른 데이타 저장 방법을 개략적으로 설명하기 위한 도면이다.
도 5를 참조하면, 프로그램 동작이 시작되면, 호스트는 하위비트 데이타에 대응되는 데이타(VA_DATA1, VA_DATA2 및 VA_DATA3)를 버퍼 블록에 저장한다. 이때, 버퍼 블록에 저장된 하위비트 데이타(LSB_DATA)는 원본 데이타가 된다. 버퍼 블록에 저장된 데이타(VA_DATA1, INVA_DATA1, VA_DATA2, VA_DATA3) 중에서 하위비트 데이타에 대응되는 유효 데이타(VA_DATA1, VA_DATA2 및 VA_DATA3)의 저장이 완료되면, 호스트는 상위비트 데이타에 대응되는 데이타(HOST_DATA1, HOST_DATA2, HOST_DATA3)를 메인 블록에 저장한다. 이때, 버퍼 블록에 저장된 데이타(VA_DATA1, VA_DATA2 및 VA_DATA3)가 먼저 메인 블록으로 복사된 후, 상위비트 데이타에 대응되는 데이타(HOST_DATA1, HOST_DATA2, HOST_DATA3)가 메인 블록에 저장된다. 버퍼 블록에서 메인 블록으로 복사된 데이타(VA_DATA1, VA_DATA2 및 VA_DATA3)는 메인 블록의 선택된 페이지(PG)에서 하위비트(LSB) 페이지에 저장되고, 상위비트 데이타에 대응되는 데이타(HOST_DATA1, HOST_DATA2, HOST_DATA3)는 선택된 페이지(PG)에서 상위비트(MSB) 페이지에 저장된다. 만약, 하위비트 프로그램 없이 상위비트에 대응되는 데이타만 저장하는 경우, 버퍼 블록에 저장 공간이 남아있으면, 남아있는 저장 공간에 상위비트 데이터에 해당되는 데이타(VA_DATA4)를 저장한 후, 이를 다시 메인 블록의 선택된 페이지(PG)의 상위비트(MSB) 페이지에 복사한다.
버퍼 블록에 저장된 프로그램 동작 중, 버퍼 블록에 저장된 데이타(VA_DATA1, VA_DATA2, VA_DATA3 및 VA_DATA4)는 원본 데이타가 되므로, 메인 블록에 해당 데이타를 복사하는 도중에 에러가 발생하면, 원본 데이타를 이용하여 복구할 수 있다.
도 6은 본 발명의 실시예에 따른 LSB 프로그램 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, LSB 프로그램 동작이 시작되면, 제어회로는 호스트로부터 전달된 동작 명령 신호(CMD) 및 어드레스(ADD)에 응답하여 버퍼 블록에 LSB 데이타를 저장하기 위한 LSB 프로그램 동작을 수행한다(S601). 만약, 버퍼 블록에 LSB 데이타의 프로그램이 완료되기 이전에 서든 파워 페일이 발생할 경우, 이는 호스트에 의한 프로그램 동작 중 발생한 것이므로 데이타 저장 기능을 하는 반도체 메모리 장치에는 책임이 없다. 만약, LSB 프로그램이 완료된 이후에 서든 파워 페일이 발생할 경우, 이는 데이타 저장 기능을 하는 반도체 메모리 장치에 책임이 있으므로, 멀티 레벨 셀(MLC)로 구현된 메인 블록이 아닌 싱글 레벨 셀(SLC)로 구현된 버퍼 블록에 원본 데이타를 저장한다. 즉, 메일 블록에 원본 데이타가 저장되면, 서든 파워 페일 등의 에러 발생시 원본 데이타가 손상될 수 있기 때문에, 멀티 레벨 셀보다 신뢰도가 좋은 싱글 레벨 셀로 구현된 버퍼 블록에 원본 데이타를 저장한다.
이어서, 버퍼 블록에 저장된 LSB 데이타를 메인 블록으로 복사한다(S602). 이때, LSB 데이타는 메인 블록의 메인 스트링 영역에 포함된 선택된 페이지의 선택된 메모리 셀들에 복사되는데, 선택된 메모리 셀들과 버퍼 블록에 저장되어 있는 원본 LSB 데이타의 정보가 맵핑된다. 예를 들면, 버퍼 블록의 제1 저장소에 저장된 원본 LSB 데이타가 메인 블록의 제2 페이지의 제4 메모리 셀에 복사되었다면, 추후에 제2 페이지의 제4 메모리 셀에 저장된 데이타의 원본 데이타가 버퍼 블록의 제1 저장소에 저장되었음을 알 수 있도록 해당 어드레스 정보를 다른 저장소에 저장한다.
버퍼 블록에 저장된 원본 데이타인 LSB 데이타를 메인 블록의 선택된 페이지에 복사하였으면, 플래그 스트링 영역에 LSB 복사가 완료되었음을 나타내는 LSB 완료 데이타를 저장하고(S603) LSB 프로그램을 종료한다.
도 7은 본 발명의 실시예에 따른 MSB 프로그램 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, MSB 프로그램 동작이 시작되면, 가비지 콜렉션(garbage collection)을 수행할 필요가 있는지를 판단한다(S702). 가비지 콜렉션은 버퍼 블록의 모든 저장 공간에 데이타가 저장된 경우, 버퍼 블록에 저장된 데이타 중에서 유효 데이타를 다른 저장소에 복사하는 동작을 의미한다.
S702 단계의 판단 결과, 가비지 콜렉션을 수행할 필요가 없는 것으로 판단되면, 버퍼 블록에 MSB 데이타를 저장하기 위한 MSB 프로그램 동작을 수행한다(S703). 버퍼 블록에 저장된 MSB 데이타는 원본 데이타가 된다. 만약, 버퍼 블록에 MSB 데이타의 프로그램이 완료되기 이전에 서든 파워 페일이 발생할 경우, 이는 호스트에 의한 프로그램 동작 중 발생한 것이므로 데이타 저장 기능을 하는 반도체 메모리 장치에는 책임이 없다. 만약, MSB 프로그램이 완료된 이후에 서든 파워 페일이 발생할 경우, 이는 데이타 저장 기능을 하는 반도체 메모리 장치에 책임이 있으므로, 멀티 레벨 셀(MLC)로 구현된 메인 블록 대신 싱글 레벨 셀(SLC)로 구현된 버퍼 블록에 원본 데이타를 저장한다. 즉, 메일 블록에 원본 데이타가 저장되면, 서든 파워 페일 등의 에러 발생시 원본 데이타가 손상될 수 있기 때문에, 멀티 레벨 셀보다 신뢰도가 좋은 싱글 레벨 셀로 구현된 버퍼 블록에 원본 데이타를 저장한다.
이어서, 버퍼 블록에 저장된 MSB 데이타를 메인 블록으로 복사한다. 따라서, MSB 데이타는 메인 블록에 저장되고, MSB 데이타의 원본은 버퍼 블록에 저장된다. 버퍼 블록에 저장된 원본 데이타인 MSB 데이타가 메인 블록에 복사되면 MSB 프로그램을 종료한다.
S702 단계의 판단 결과, 가비지 콜렉션을 수행할 필요가 있는 것으로 판단되면, 가비지 콜렉션을 수행한다(S705). 예를 들면, MSB 프로그램 동작에 맵핑된 LSB 데이타를 버퍼 블록에서 메인 블록으로 복사한다. 이때, 버퍼 블록에 저장된 모든 LSB 데이타를 메인 블록으로 복사하는 것이 아니라, MSB 프로그램 동작에 맵핑된 LSB 데이타를 메인 블록으로 복사한다. 즉, 프로그램할 MSB 데이타에 대응되는 LSB 데이타를 메인 블록으로 복사한다.
이어서, 메인 블록에 MSB 데이타를 저장하기 위한 MSB 프로그램 동작을 수행한다(S706). MSB 프로그램 동작시 버퍼 블록에 MSB 데이타를 프로그램하지 않고 메인 블록에 MSB 데이타를 프로그램하므로, 프로그램 동작시간을 단축할 수 있다. MSB 데이타의 프로그램이 완료되면 MSB 프로그램 동작을 종료한다.
도 8은 본 발명의 일 실시예에 따른 데이타 복구 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, MSB 프로그램 동작 중 가비지 콜렉션이 필요한 경우, 서든 파워 페일의 발생여부에 따라 데이타 복구 프로세스를 수행한다. 구체적으로 설명하면 다음과 같다.
메인 블록의 플래그 스트링 영역을 스캔하여 서든 파워 페일이 발생한 페이지가 존재하는지를 판단한다(S801). 플래그 스트링 영역에는 LSB 완료 데이타가 저장되는데, 플래그 스트링 영역을 스캔하여 LSB 완료 데이타가 저장되어 있지 않은 페이지 있는지를 스캔한다.
S801 단계의 판단결과, 서든 파워 페일이 발생한 페이지가 존재하지 않은 것으로 판단되면(S802), 서든 파워 페일이 발생하지 않은 것이므로 데이타 복구 프로세스를 종료한다.
S801 단계의 판단결과(S802), 서든 파워 페일이 발생한 페이지가 존재하는 것으로 판단되면, 서든 파워 페일이 발생한 페이지의 맵핑 정보에 따라 버퍼 블록에 저장된 원본 LSB 데이타를 지정한다(S803).
버퍼 블록에서 지정된 원본 LSB 데이타를 메인 블록의 선택된 페이지로 복구한다(S804). 즉, 메인 블록에는 LSB 데이타가 저장되지 않았거나 저장된 데이타가 손상되더라도, 버퍼 블록에 원본 데이타가 저장되어 있으므로 메인 블록으로 복구가 가능하다.
도 9는 본 발명의 다른 실시예에 따른 데이타 복구 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, MSB 프로그램 동작 중 가비지 콜렉션이 필요하지 않은 경우, 서든 파워 페일의 발생여부에 따라 데이타 복구 프로세스를 수행한다. 구체적으로 설명하면 다음과 같다.
메인 블록의 플래그 스트링 영역을 스캔하여 서든 파워 페일이 발생한 페이지가 존재하는지를 판단한다(S901). 플래그 스트링 영역에는 LSB 완료 데이타가 저장되는데, 플래그 스트링 영역을 스캔하여 LSB 완료 데이타가 저장되어 있지 않은 페이지 있는지를 스캔한다.
S901 단계의 판단결과, 서든 파워 페일이 발생한 페이지가 존재하지 않은 것으로 판단되면(S902), 서든 파워 페일이 발생하지 않은 것이므로 데이타 복구 프로세스를 종료한다.
S901 단계의 판단결과(S902), 서든 파워 페일이 발생한 페이지가 존재하는 것으로 판단되면, 서든 파워 페일이 발생한 페이지의 맵핑 정보에 따라 버퍼 블록에 저장된 원본 LSB, MSB 데이타를 지정한다(S903).
버퍼 블록에서 지정된 원본 LSB 데이타를 메인 블록의 선택된 페이지로 복구한다(S904). 즉, 메인 블록에는 LSB 데이타가 저장되지 않았거나 저장된 데이타가 손상되더라도, 버퍼 블록에 원본 데이타가 저장되어 있으므로 메인 블록으로 복구가 가능하다.
LSB 데이타를 복구한 후에는, 버퍼 블록에서 지정된 원본 MSB 데이타를 메인 블록의 선택된 페이지로 복구한다(S905).
상술한 바와 같이, 버퍼 블록에 LSB 데이타를 저장하고, 버퍼 블록의 저장 공간이 남아 있지 않은 경우에는 MSB 데이타를 버퍼 블록에 저장하지 않고 메인 블록에 저장함으로써, 버퍼 블록이 차지하는 면적을 감소시킬 수 있다. 또한, 모든 MSB 데이타를 버퍼 블록에 저장하지 않아도 되기 때문에 프로그램 동작시간을 단축할 수 있으며, LSB 데이타의 원본을 버퍼 블록에 저장함으로써, 데이타 손상 또는 변형이 쉬운 LSB 데이타의 복구를 용이하게 수행할 수 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시 예에서 구체적으로 기술되었으나, 상기한 실시 예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.
1000: 반도체 시스템 1100: 호스트
1200: 반도체 메모리 장치 110: 메모리 셀 어레이
120: 주변회로들 130: 제어회로
121: 전압 생성 회로 122: 로우 디코더
123: 페이지 버퍼 그룹 124: 컬럼 디코더
125: 입출력 회로
MSR: 메인 스트링 영역 FSR: 플래그 스트링 영역

Claims (17)

  1. 데이타를 저장하는 버퍼 블록 및 메인 블록을 포함하는 반도체 메모리 장치; 및
    외부 명령 신호에 따라 상기 반도체 메모리 장치를 제어하도록 구성된 호스트를 포함하며,
    상기 호스트는,
    상기 데이타 중 하위 비트 데이타를 상기 버퍼 블록에 저장하고, 상기 데이타 중 상위 비트 데이타의 저장 시에 상기 하위 비트 데이타의 복사본을 상기 메인 블록에 저장하고, 상기 상위 비트 데이타를 상기 버퍼 블록에 저장하지 않고, 상기 메인 블록에 저장하도록 상기 메모리 장치를 제어하는 반도체 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 반도체 메모리 장치는,
    상기 버퍼 블록 및 상기 메인 블록을 포함하는 메모리 셀 어레이;
    상기 메모리 셀 어레이에 프로그램, 리드 및 소거 동작을 수행하도록 구성된 주변회로들; 및
    상기 호스트의 제어에 따라 상기 주변회로들을 제어하도록 구성된 제어회로를 포함하는 반도체 시스템.
  3. 삭제
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 버퍼 블록에 포함된 메모리 셀들은 각각 1비트의 데이타를 저장하도록 프로그램 되고, 상기 메인 블록에 포함된 메모리 셀들은 각각 2비트 이상의 데이타를 저장하도록 프로그램 되는 반도체 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 메인 블록은 메인 스트링 영역 및 플래그 스트링 영역을 포함하는 반도체 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서,
    상기 메인 스트링 영역 및 상기 플래그 스트링 영역은 각각 다수의 스트링들을 포함하는 반도체 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서,
    상기 메인 스트링 영역의 스트링들에는 상기 하위 비트 데이타의 복사본 및 상기 상위 비트 데이타가 저장되고, 상기 플래그 스트링 영역의 스트링들에는 상기 메인 스트링 영역에 상기 하위 비트 데이타의 저장이 완료되었다는 플래그 데이타가 저장되는 반도체 시스템.
  8. 하위비트 데이타를 버퍼 블록에 저장하는 단계;
    상기 버퍼 블록에 저장된 상기 하위비트 데이타를 메인 블록으로 복사하는 단계; 및
    호스트의 제어에 따라 상위비트 데이타를 상기 버퍼 블록에 저장하지 않고, 상기 메인 블록에 프로그램하는 단계를 포함하며,
    상기 상위비트 데이타의 프로그램 동작 중, 서든 파워 페일이 발생할 경우, 상기 버퍼 블록에 저장된 상기 하위비트 데이타를 상기 메인 블록으로 복사한 후, 상기 상위비트 데이타의 프로그램 동작을 재수행하는 단계를 포함하는 반도체 시스템의 동작 방법.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 하위비트 데이타 없이 상기 상위비트 데이타만 프로그램하는 동작시, 상기 버퍼 블록에 저장 공간이 남은 경우에는 상기 상위비트 데이타를 상기 버퍼 블록에 저장한 후, 상기 버퍼 블록에 저장된 상기 상위비트 데이타를 상기 메인 블록으로 복사하는 단계를 더 포함하는 반도체 시스템의 동작 방법.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제8항에 있어서,
    상기 상위비트 데이타를 상기 메인 블록에 프로그램하는 단계는,
    가비지 콜렉션(garbage collection)을 수행할 필요가 있는지를 판단하는 단계;
    상기 판단 결과, 상기 가비지 콜렉션을 수행할 필요가 없으면, 상기 버퍼 블록에 상기 상위비트 데이타를 프로그램한 후, 상기 버퍼 블록에 프로그램된 상기 상위비트 데이타를 상기 메인 블록으로 복사하는 단계; 및
    상기 판단 결과, 상기 가비지 콜렉션을 수행할 필요가 있으면, 상기 가비지 콜렉션을 수행한 후, 상기 메인 블록에 상기 상위비트 데이타를 프로그램하는 단계를 포함하는 반도체 시스템의 동작 방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 가비지 콜렉션을 수행할 필요가 있는지를 판단하는 단계는, 상기 버퍼 블록을 스캔하여 수행하는 반도체 시스템의 동작 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 버퍼 블록을 스캔한 결과, 상기 버퍼 블록에 저장 공간이 남아 있지 않으면 상기 가비지 콜렉션을 수행하고, 상기 버퍼 블록에 저장 공간이 남아 있으면 상기 가비지 콜렉션을 수행하지 않는 반도체 시스템의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 가비지 콜렉션은 상기 버퍼 블록에 저장된 상기 하위비트 데이타를 상기 메인 블록으로 복사하여 수행하는 반도체 시스템의 동작 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
KR1020130128491A 2013-10-28 2013-10-28 반도체 시스템 및 이의 동작 방법 KR102121333B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130128491A KR102121333B1 (ko) 2013-10-28 2013-10-28 반도체 시스템 및 이의 동작 방법
US14/199,739 US9575888B2 (en) 2013-10-28 2014-03-06 Semiconductor system and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130128491A KR102121333B1 (ko) 2013-10-28 2013-10-28 반도체 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20150048426A KR20150048426A (ko) 2015-05-07
KR102121333B1 true KR102121333B1 (ko) 2020-06-11

Family

ID=52996803

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130128491A KR102121333B1 (ko) 2013-10-28 2013-10-28 반도체 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US9575888B2 (ko)
KR (1) KR102121333B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102417976B1 (ko) 2015-10-21 2022-07-07 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR20220070989A (ko) 2020-11-23 2022-05-31 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11694755B2 (en) 2021-06-02 2023-07-04 Sandisk Technologies Llc Nonvolatile memory with data recovery

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110055625A1 (en) 2009-08-28 2011-03-03 Toshiyuki Honda Nonvolatile memory device and memory controller
US20120311293A1 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819102B1 (ko) * 2007-02-06 2008-04-03 삼성전자주식회사 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치
KR20090129791A (ko) * 2008-06-13 2009-12-17 가부시키가이샤 교토 소프트웨어 리서치 다치 플래시 메모리

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110055625A1 (en) 2009-08-28 2011-03-03 Toshiyuki Honda Nonvolatile memory device and memory controller
US20120311293A1 (en) * 2011-05-31 2012-12-06 Micron Technology, Inc. Dynamic memory cache size adjustment in a memory device

Also Published As

Publication number Publication date
US9575888B2 (en) 2017-02-21
US20150121026A1 (en) 2015-04-30
KR20150048426A (ko) 2015-05-07

Similar Documents

Publication Publication Date Title
JP5505922B2 (ja) メモリシステム及びその読み出し方法
KR101967368B1 (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20150045747A (ko) 데이터 저장 시스템 및 그것의 동작 방법
KR20150053092A (ko) 데이터 저장 시스템 및 그것의 동작 방법
KR20130087857A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR102567373B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
KR20190051570A (ko) 메모리 시스템 및 그것의 동작 방법
KR20150008671A (ko) 반도체 장치
CN112181283A (zh) 存储器系统、存储器控制器及操作方法
KR20210097353A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR102121333B1 (ko) 반도체 시스템 및 이의 동작 방법
US11726878B2 (en) Memory system and operating method thereof
KR20200132566A (ko) 메모리 장치 및 이의 동작 방법
KR20200121108A (ko) 간섭 보상을 위한 메모리 시스템 및 메모리 시스템의 동작 방법
CN113936721A (zh) 存储器系统、存储器装置和操作存储器装置的方法
KR20140079913A (ko) 불휘발성 메모리 장치 및 이의 프로그램 방법
KR20210012123A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN113806254B (zh) 存储器系统、存储器控制器及存储器系统的操作方法
KR20140028718A (ko) 반도체 메모리 장치 및 이의 동작 방법
US11182108B2 (en) Memory system, memory controller, and operation method
KR20230049858A (ko) 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
KR20150029401A (ko) 데이터 저장 시스템 및 그것의 동작 방법
CN111798913A (zh) 存储器系统、存储器控制器及其操作方法
KR20210071314A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
KR20140088383A (ko) 반도체 장치 및 이의 동작 방법

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