KR102009437B1 - 반도체 장치 및 이의 동작 방법 - Google Patents

반도체 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR102009437B1
KR102009437B1 KR1020130006018A KR20130006018A KR102009437B1 KR 102009437 B1 KR102009437 B1 KR 102009437B1 KR 1020130006018 A KR1020130006018 A KR 1020130006018A KR 20130006018 A KR20130006018 A KR 20130006018A KR 102009437 B1 KR102009437 B1 KR 102009437B1
Authority
KR
South Korea
Prior art keywords
data
delete delete
program loop
error
page data
Prior art date
Application number
KR1020130006018A
Other languages
English (en)
Other versions
KR20140093868A (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 KR1020130006018A priority Critical patent/KR102009437B1/ko
Priority to US13/844,910 priority patent/US9513991B2/en
Publication of KR20140093868A publication Critical patent/KR20140093868A/ko
Application granted granted Critical
Publication of KR102009437B1 publication Critical patent/KR102009437B1/ko

Links

Images

Classifications

    • 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
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

Landscapes

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

Abstract

반도체 장치는 버퍼 메모리 블록에서 독출된 데이터를 에러 정보에 따라 수정하고 수정된 데이터를 메인 메모리 블록에 저장하기 위한 프로그램 루프를 수행하도록 구성된 메모리 장치, 및 데이터의 오류 검사 정정 동작을 수행하고 오류 검사 정정 동작에 의해 얻어진 에러 정보를 메모리 장치로 출력하도록 구성된 메모리 컨트롤러를 포함한다.

Description

반도체 장치 및 이의 동작 방법{Semiconductor apparatus and method of operating the same}
본 발명은 반도체 장치 및 이의 동작 방법에 관한 것으로, 특히 데이터의 입출력이 가능한 반도체 장치 및 이의 동작 방법에 관한 것이다.
NAND 플래시 메모리 장치는 하나의 메모리 셀에 2비트의 데이터를 저장하는 MLC(Multi Level Cell) 방식이나 3비트의 데이터를 저장하는 TLC(Triple Level Cell) 방식으로 동작할 수 있다. MLC 방식의 NAND 플래시 메모리 장치는 하나의 메모리 셀에 LSB 데이터와 MSB 데이터가 저장되고, TLC 방식의 NAND 플래시 메모리 장치는 하나의 메모리 셀에 LSB 데이터, CSB 데이터 및 MSB 데이터가 저장된다.
NAND 플래시 메모리 장치에서 워드라인에 연결된 메모리 셀들이 페이지를 구성하고, 하나의 물리적 페이지는 여러 논리적 페이지들로 구분될 수 있다. 예로써, TLC 방식에서 하나의 물리적 페이지는 LSB 페이지, CSB 페이지 및 MSB 페이지를 포함할 수 있다.
하나의 메모리 셀에 여러 비트의 데이터를 저장하기 위해서는 저장되는 데이터에 따라 메모리 셀들의 문턱전압 분포들을 여러 레벨들로 분산시켜야 한다. 예로써, TLC 방식에서는 하나의 메모리 셀에 3비트의 데이터가 저장되므로 문턱전압 분포들을 8개의 레벨들로 구분해야 한다. 이 경우 분포들 사이의 마진이 적어질 뿐만 아니라 집적도가 높아지기 때문에 따른 프로그램 간섭에 의해 오류 비트가 발생하는 양이 증가한다. 하지만, 정해진 범위 내에서 데이터의 오류는 오류 검사 정정(Error checking and correction; ECC) 동작에 의해 수정될 수 있다.
오류 검사 정정 동작에 의해 오류 비트를 수정할 수 있지만, 오류 검사 정정 동작에 의해 데이터를 저장하는 프로그램 루프의 동작 시간이 늘어난다. 특히, TLC 방식의 데이터 입력 동작에서는 LSB 데이터를 저장하기 위한 LSB 프로그램 루프, CSB 데이터를 저장하기 위한 CSB 프로그램 루프 및 MSB 데이터를 저장하기 위한 MSB 프로그램 루프를 실시할 때마다 LSB 데이터, CSB 데이터 및 MSB 데이터의 오류 검사 정정 동작을 수행해야 하기 때문에 동작 시간은 더욱 더 늘어나게 된다.
본 발명의 실시예는 동작의 신뢰성을 향상시키고 동작 시간을 줄일 수 있는 반도체 장치 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 반도체 장치의 동작 방법은 버퍼 메모리 블록으로부터 독출된 제1 데이터를 제1 데이터의 제1 오류 검사 정정 동작에서 얻어진 제1 에러 정보에 따라 수정하는 단계와, 버퍼 메모리 블록으로부터 독출된 제2 데이터를 제2 데이터의 제2 오류 검사 정정 동작에서 얻어진 제2 에러 정보에 따라 수정하는 단계, 및 제1 및 제2 에러 정보들에 의해 수정된 제1 데이터 및 제2 데이터에 따라, 메인 메모리 블록에서 선택된 워드라인에 연결된 메모리 셀들의 프로그램 루프를 완료하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법은 버퍼 메모리 블록으로부터 독출된 제1 데이터를 제1 데이터의 제1 오류 검사 정정 동작에서 얻어진 제1 에러 정보에 따라 수정하는 단계와, 버퍼 메모리 블록으로부터 독출된 제2 데이터를 제2 데이터의 제2 오류 검사 정정 동작에서 얻어진 제2 에러 정보에 따라 수정하는 단계와, 버퍼 메모리 블록으로부터 독출된 제3 데이터를 제3 데이터의 제3 오류 검사 정정 동작에서 얻어진 제3 에러 정보에 따라 수정하는 단계, 및 제1 내지 제3 에러 정보들에 의해 수정된 제1 데이터 내지 제3 데이터에 따라, 메인 메모리 블록에서 선택된 워드라인에 연결된 메모리 셀들의 프로그램 루프를 완료하는 단계를 포함한다.
본 발명의 실시예에 따른 반도체 장치는 버퍼 메모리 블록에서 독출된 데이터를 에러 정보에 따라 수정하고 수정된 데이터를 메인 메모리 블록에 저장하기 위한 프로그램 루프를 수행하도록 구성된 메모리 장치, 및 데이터의 오류 검사 정정 동작을 수행하고 오류 검사 정정 동작에 의해 얻어진 에러 정보를 메모리 장치로 출력하도록 구성된 메모리 컨트롤러를 포함한다.
본 발명의 실시예는 동작의 신뢰성을 향상시키고 동작 시간을 줄일 수 있다.
도 1은 본 발명의 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 2는 본 발명의 다른 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 3은 도 1 및 도 2에 도시된 메모리 컨트롤러와 메모리 장치를 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 메모리 블록을 설명하기 위한 회로도이다.
도 5는 본 발명의 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 도면이다.
도 6 및 도 7은 도 5에 도시된 반도체 장치의 동작 방법을 설명하기 위한 흐름도들이다.
도 8은 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 도면이다.
도 9 내지 도 11은 도 8에 도시된 반도체 장치의 동작 방법을 설명하기 위한 흐름도들이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범위는 본원의 특허 청구 범위에 의해서 이해되어야 한다.
도 1은 본 발명의 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 1을 참조하면, 반도체 장치(10)는 메모리 컨트롤러(100)와 메모리 장치(200)를 포함한다.
메모리 장치(200)는 버퍼 메모리 블록에서 독출된 데이터를 에러 정보(HS DATA)에 따라 수정하고 수정된 데이터를 메인 메모리 블록에 저장하기 위한 프로그램 루프를 수행하도록 구성된다.
메모리 컨트롤러(100)는 데이터의 오류 검사 정정 동작을 수행하고 오류 검사 정정 동작에 의해 얻어진 에러 정보(HS DATA)를 메모리 장치(200)로 출력하도록 구성된다. 여기서, 에러 정보(HS DATA)는 데이터에 포함된 에러 비트의 위치와 정정 값을 각각 포함할 수 있다. 예로써, 에러 정보(HS DATA)는 버퍼 메모리 블록으로부터 독출된 데이터와 동일한 크기를 가지며, 독출된 데이터에서 에러 비트의 위치와 동일한 위치의 비트가'1'이 되고 정상 데이터의 위치는 '0'이 될 수 있다. 반대로, 독출된 데이터에서 에러 비트의 위치와 동일한 위치의 비트가'0'이 되고 정상 데이터의 위치는 '1'이 될 수도 있다.
이러한 에러 정보(HS DATA)는 메모리 컨트롤러에 저장될 수 있다.
도 2는 본 발명의 다른 실시예에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 2를 참조하면, 에러 정보(Random DATA)는 버퍼 메모리 블록으로부터 독출된 데이터에 포함된 에러 비트의 위치와 정정 값을 포함할 수 있다. 예로써, 독출된 데이터에 포함된 에러 비트의 컬럼 어드레스와 정정된 비트를 포함할 수 있다.
이러한 에러 정보(Random DATA)는 메모리 컨트롤러에 저장될 수 있다.
이렇게, 메모리 장치(200)가 메모리 컨트롤러(100)의 에러 정보(HS DATA 또는 Random DATA)에 따라 데이터의 에러 비트를 수정함으로써, 데이터의 에러 비트를 수정하기 위해 매번 실시되는 에러 검색 정정 동작에 의해 동작 시간이 늘어나는 것을 방지할 수 있다. 보다 구체적으로 설명하면 다음과 같다.
도 3은 도 1 및 도 2에 도시된 메모리 컨트롤러와 메모리 장치를 설명하기 위한 블록도이다.
도 3을 참조하면, 메모리 컨트롤러(100)는 호스트(HOST)로부터의 요청에 응답하여, 메모리 컨트롤러(100)는 메모리 장치(200)를 액세스하도록 구성된다. 예를 들면, 메모리 컨트롤러(100)는 메모리 장치(200)의 리드 동작, 프로그램 루프 및 소거 루프를 제어하도록 구성된다. 메모리 컨트롤러(100)는 메모리 장치(200) 및 호스트(HOST) 사이에 인터페이스를 제공하도록 구성된다.
메모리 컨트롤러(100)는 내부 버스(110), 프로세서(120), 저장부(130), 메모리 인터페이스(140), 그리고 호스트 인터페이스(150)를 포함한다. 내부 버스(110)는 메모리 컨트롤러(100)의 구성요소들 사이에 채널을 제공하도록 구성된다. 예시적으로, 내부 버스(110)는 커맨드 및 데이터를 전송하기 위한 공통 채널일 수 있다. 다른 예로서, 내부 버스(110)는 커맨드 및 데이터를 각각 전송하기 위한 커맨드 채널 및 데이터 채널을 포함할 수 있다.
프로세서(120)는 메모리 컨트롤러(100)의 제반 동작을 제어하도록 구성된다. 프로세서(120)는 메모리 컨트롤러(100)에서 구동되는 소프트웨어 및 펌웨어를 실행하도록 구성될 수 있다.
저장부(130)는 프로세서(120)의 동작 메모리나 메모리 장치(200) 및 호스트(Host) 사이의 버퍼 메모리나 캐시 메모리로 이용될 수 수 있다. 또한, 저장부(140)는 에러 검색 정정 동작에서 얻어진 에러 정보를 저장할 수 있다. 예시적으로, 저장부(140)는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM), PRAM(Phase-change RAM), MRAM(Magnetic RAM), RRAM(Resistive RAM), FRAM(Ferroelectric RAM), 노어 플래시 메모리 등과 같이, 랜덤 액세스가 가능한 다양한 메모리들 중 적어도 하나를 포함할 수 있다.
메모리 인터페이스(140)는 플래시 메모리 장치(200)와 통신하기 위한 프로토콜을 포함한다. 예를 들면, 메모리 인터페이스(140)는 낸드(NAND) 인터페이스, 노어(NOR) 인터페이스 등과 같은 플래시 인터페이스들 중 적어도 하나를 포함할 수 있다.
오류 검색 정정 블록(150)은 메모리 장치(200)로부터 읽어진 데이터(특히, 버퍼 메모리 블록으로부터 읽어진 데이터)의 오류를 검출하고 정정하기 위한 오류 검색 정정 동작을 수행하도록 구성된다. 특히, 오류 검색 정정 블록(150)은 오류 검색 정정 동작으로부터 얻어진 데이터의 에러 정보를 생성하도록 구성될 수 있다.
호스트 인터페이스(160)는 호스트(HOST) 및 메모리 컨트롤러(100) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예시적으로, 메모리 컨트롤러(100)는 USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E(PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(smallcomputer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성된다.
메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등을 구성할 수 있다. 메모리 컨트롤러(100) 및 메모리 장치(200)는 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수도 있다.
메모리 징치(200)는 데이터 입력을 위해 프로그램 루프를 수행하도록 구성된다. 메모리 장치(200)가 플래시 메모리 장치인 경우, 플래시 메모리 장치(200)는 메모리 어레이(210), 제어 회로(220), 전압 공급 회로(230), 읽기/쓰기 회로(240) 및 데이터 변경 회로(250)를 포함할 수 있다.
플래시 메모리 장치(200)는 메모리 어레이(210)와 주변 회로(220~250)를 포함한다.
메모리 어레이(210)는 다수의 메모리 블록들(210M, 210B)을 포함한다. 메모리 어레이(210)에는 메인 메모리 블록(210M)과 버퍼 메모리 블록(210M)을 포함할 수 있다. 메인 메모리 블록(210M)은 외부로부터 입력되는 데이터를 저장하기 위한 유저 영역에 해당하고, 버퍼 메모리 블록(210M)은 메인 메모리 블록(210M)에 입력될 데이터가 임시로 저장되는 영역에 해당한다. 메인 메모리 블록(210M)의 메모리 셀들은 MLC 방식 또는 TLC 방식의 프로그램 루프를 통해 데이터가 저장될 수 있다. 버퍼 메모리 블록(210B)에는 데이터가 임시로 저장되기 때문에 데이터의 저장 속도와 안정성을 확보하기 위하여 버퍼 메모리 블록(210B)의 메모리 셀들에는 SLC(Single Level Cell) 방식으로 데이터가 저장될 수 있다.
메인 메모리 블록(210M)과 버퍼 메모리 블록(210M)은 동일한 구조로 형성될 수 있으며 구체적으로 설명하면 다음과 같다.
도 4는 도 3에 도시된 메모리 블록을 설명하기 위한 회로도이다.
도 4를 참조하면, 각각의 메모리 블록은 비트라인들(BL0~BLk)과 공통 소스 라인(CSL) 사이에 연결된 다수의 메모리 스트링들(ST0~STk)을 포함한다. 즉, 메모리 스트링들(ST0~STk)은 대응하는 비트 라인들(BL0~BLk)과 각각 연결되고 공통 소스 라인(CSL)과 공통으로 연결된다. 각각의 메모리 스트링(ST0)은 소스가 공통 소스 라인(CSL)에 연결되는 소스 셀렉트 트랜지스터(SST), 복수의 메모리 셀들(C00~Cn0)이 직렬로 연결된 셀 스트링, 그리고 드레인이 비트라인(BL0)에 연결되는 드레인 셀렉트 트랜지스터(DST)를 포함한다. 셀 스트링에 포함된 메모리 셀들(C00~Cn0)은 셀렉트 트랜지스터들(SST, DST) 사이에 직렬로 연결된다. 소스 셀렉트 트랜지스터(SST)의 게이트는 소스 셀렉트 라인(SSL)에 연결되고, 메모리 셀들(C00~Cn0)의 게이트들은 워드라인들(WL0~WLn)에 각각 연결되며, 드레인 셀렉트 트랜지스터(DST)의 게이트는 드레인 셀렉트 라인(DSL)에 연결된다.
여기서, 드레인 셀렉트 트랜지스터(DST)는 셀 스트링(C00~Cn0)과 비트라인(BL0)의 연결 또는 차단을 제어하며, 소스 셀렉트 트랜지스터(SST)는 셀 스트링(C00~Cn0)과 공통 소스 라인(CSL)의 연결 또는 차단을 제어한다.
낸드 플래시 메모리 장치에서 메모리 셀 블록에 포함된 메모리 셀들은 물리적 페이지 단위 또는 논리적 페이지 단위로 구분할 수 있다. 예를 들어, 하나의 워드라인(예, WL0)에 연결된 메모리 셀들(C01~C0k)이 하나의 물리적 페이지(PAGE)를 구성한다. MLC 방식으로 동작하는 플래시 메모리 장치의 경우, 물리적 페이지(PAGE)는 LSB 데이터를 저장하기 위한 LSB 페이지와 MSB 데이터를 저장하기 위한 MSB 페이지를 포함할 수 있다. 또한, TLC 방식으로 동작하는 플래시 메모리 장치의 경우, 물리적 페이지(PAGE)는 LSB 데이터를 저장하기 위한 LSB 페이지, CSB 데이터를 저장하기 위한 CSB 페이지, 및 MSB 데이터를 저장하기 위한 MSB 페이지를 포함할 수 있다. 상기에서, LSB 페이지, CSB 페이지 및 MSB 페이지는 논리적 페이지에 해당한다. 이러한 페이지(물리적 페이지 또는 논리적 페이지)는 프로그램 루프 또는 리드 동작의 기본 단위가 되며, 메모리 블록은 소거 루프의 기본 단위가 될 수 있다.
다시 도 3을 참조하면, 주변 회로(220~250)는 선택된 메모리 셀들의 프로그램 루프, 소거 루프 및 리드 동작을 수행하도록 구성된다. 특히, 주변 회로(220~250)는 하나의 메모리 셀에 LSB 데이터와 MSB 데이터를 포함하는 2비트의 데이터를 저장하기 위해 LSB 프로그램 루프와 MSB 프로그램 루프를 포함하는 MLC 방식의 프로그램 루프를 수행할 수 있다. 또한, 주변 회로(220~250)는 하나의 메모리 셀에 LSB 데이터, CSB 데이터 및 MSB 데이터를 포함하는 3비트의 데이터를 저장하기 위해 LSB 프로그램 루프, CSB 프로그램 루프 및 MSB 프로그램 루프를 포함하는 TLC 방식의 프로그램 루프를 수행할 수 있다.
특히, 주변 회로(220~250)는 메모리 컨트롤러(100)로부터 입력된 에러 정보(ERROR DATA)에 따라 메모리 블록(예, 210B)로부터 독출된 데이터를 수정할 수 있도록 구성된다. 여기서, 에러 정보(ERROR DATA)는 도 1에서 설명한 에러 정보나 도 2에서 설명한 에러 정보가 될 수 있다.
이러한 주변 회로는 제어 회로(220), 전압 공급 회로(230), 읽기/쓰기 회로(240) 및 데이터 변경 회로(250)를 포함한다.
제어 회로(220)는 메모리 셀들의 프로그램 루프, 리드 동작 및 소거 루프 시 전압 공급 회로(230), 읽기/쓰기 회로(240) 및 데이터 변경 회로(250)를 제어하도록 구성된다.
전압 공급 회로(230)는 프로그램 루프, 리드 동작 또는 소거 루프에 필요한 동작 전압들을 메인 메모리 블록(210M) 또는 버퍼 메모리 블록(210B)으로 출력하도록 구성된다.
읽기/쓰기 회로(240)는 리드 동작 시 비트라인들을 통해 메모리 셀들에 저장된 데이터를 센싱하여 래치하거나, 프로그램 루프 시 메모리 셀들에 저장되는 데이터에 따라 비트라인들에 프로그램 금지 전압과 프로그램 허용 전압을 선택적으로 인가하도록 구성된다. 읽기/쓰기 회로(240)는 페이지 버퍼로 구현될 수 있다.
데이터 변경 회로(250)는 읽기/쓰기 회로(240)에 의해 메모리 블록(예, 210B)으로부터 독출된 데이터를 메모리 컨트롤로(100)로부터 입력된 에러 정보(ERROR DATA)에 따라 수정할 수 있도록 구성된다. 예로써, 데이터 변경 회로(250)는 메모리 블록으로부터 독출되어 읽기/쓰기 회로(240)의 내부 래치(미도시)에 저장되어 있는 데이터가 에러 정보(ERROR DATA)에 따라 수정될 수 있도록 읽기/쓰기 회로(240)에 저장되어 데이터를 제어할 수 있다. 다른 예로써, 읽기/쓰기 회로(240)의 내부 래치(미도시)에 저장되어 있는 데이터가 데이터 변경 회로(250)로 출력되면, 데이터 변경 회로(250)는 메모리 컨트롤러(100)로부터 입력된 에러 정보를 이용한 XOR 연산으로 데이터를 에러 비트를 수정한 후 수정된 데이터를 읽기/쓰기 회로(240)로 출력할 수도 있다. 수정된 데이터는 읽기/쓰기 회로(240)에 의해 다른 메모리 블록(예, 210M)으로 다시 저장된다.
이하, 상기에서 설명한 반도체 장치의 동작 방법을 보다 구체적으로 예를 들어 설명하기로 한다.
도 5는 본 발명의 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 메모리 장치가 MLC 방식으로 동작하는 경우 메모리 셀에 LSB 데이터를 저장하기 위한 LSB 프로그램 루프(LSB)와 MSB 데이터를 저장하기 위한 MSB 프로그램 루프(MSB)가 실시된다. 선택된 워드라인의 LSB 프로그램 루프와 MSB 프로그램 루프가 완료된 후 다음 워드라인의 MSB 프로그램 루프가 진행되는 동안 프로그램 간섭 현상에 의해 선택된 워드라인의 메모리 셀들의 문턱전압이 변경될 수 있다. 따라서, 간섭 현상에 의한 문턱전압의 변동을 최소화하기 위하여 선택된 워드라인의 메모리 셀들의 문턱전압들이 목표 레벨들보다 각각 설정된 값만큼 낮도록 MSB 프로그램 루프를 완료한다. 그리고, 다음 워드라인의 MSB 프로그램 루프가 완료된 후 선택된 워드라인의 메모리 셀들의 문턱전압들이 목표 레벨들보다 높아지도록 재프로그램 루프(Re-PGM)를 실시할 수도 있다. 이후, 다음 워드라인의 재프로그램 루프가 실시되더라도 이때 발생되는 간섭 현상은 상대적으로 작기 때문에 큰 문제가 되지 않는다.
한편, 워드라인들(WL0~WL4)의 LSB 프로그램 루프들(LSB), MSB 프로그램 루프들(MSB) 및 재프로그램 루프(Re-PGM)의 순서는 프로그램 간섭 현상에 의한 문턱전압의 변동을 보다 더 최소화할 수 있도록 정해질 수 있다. 예로써, 제3 워드라인(WL2)이 선택된 워드라인이라 가정할 경우, 이전 워드라인(WL1)의 MSB 프로그램 루프가 실시되기 전에 선택된 워드라인(WL2)의 LSB 프로그램 루프를 완료한다. 그리고, 다음 워드라인(WL3)의 MSB 프로그램 루프가 완료되기 전에 선택된 워드라인(WL2)의 MSB 프로그램 루프를 완료한다. 이어서, 다음 워드라인(WL3)의 MSB 프로그램 루프가 완료된 후에 선택된 워드라인(WL2)의 재프로그램 루프(Re-PGM)를 실시하도록 순서를 정한다.
한편, 상기에서 설명한 에러 정보를 이용한 데이터의 수정 동작은 재프로그램 동작 시 실시될 수 있다. 보다 구체적으로 실시예를 설명하면 다음과 같다.
도 6 및 도 7은 도 5에 도시된 반도체 장치의 동작 방법을 설명하기 위한 흐름도들이다.
도 3, 도 5 및 도 6을 참조하면, 단계(S601)에서 선택된 워드라인(WL2)의 메모리 셀들에 저장될 데이터가 메모리 컨트롤러(100)로부터 입력되면, 단계(S603)에서 입력된 데이터가 메모리 장치(200)의 버퍼 메모리 블록(210B)에 저장된다. 이때, 제1 데이터(또는, LSB 데이터)와 제2 데이터(또는, MSB 데이터)가 연속적으로 입력되어 버퍼 메모리 블록(210B)에 저장될 있으며, LSB 데이터와 MSB 데이터는 읽기/쓰기 회로(240)에 의해 SLC 방식으로 버퍼 메모리 블록(210B)에 저장될 수 있다. LSB 데이터와 MSB 데이터는 SLC 방식으로 버퍼 메모리 블록(210B)에 저장되기 때문에 저장 속도가 아주 빠르다. 단계(S605)에서 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 LSB 데이터를 독출하고, 독출된 LSB 데이터는 메모리 컨트롤러(100)로 출력된다.
단계(S607)에서 메모리 컨트롤러(100)는 입력된 LSB 데이터의 오류 검색 정정 동작을 수행한다. 이때, LSB 데이터의 제1 에러 정보(또는 LSB 에러 정보)가 생성된다. 단계(S609)에서 메모리 컨트롤러(100)는 LSB 데이터의 오류 검색 정정 동작에서 생성된 LSB 에러 정보를 저장부(130)에 저장한다. 그리고, 오류 검색 정정 동작이 수행된 LSB 데이터를 메모리 장치(200)로 출력한다.
단계(S611)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터를 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들 저장하기 위한 LSB 프로그램 루프를 실시한다. 이로써, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포는 소거 레벨과 프로그램 레벨로 구분된다. 단계(S613)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들을 실시한다. 예로써, 이전 워드라인(WL1)의 MSB 프로그램 루프, 주변 워드라인(WL0)의 재프로그램 루프 및 다음 워드라인(WL3)의 LSB 프로그램 루프가 실시될 수 있다. 이어서, 단계(S615)에서 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 MSB 데이터를 독출하고, 독출된 MSB 데이터는 메모리 컨트롤러(100)로 출력된다.
단계(S617)에서 메모리 컨트롤러(100)는 입력된 MSB 데이터의 오류 검색 정정 동작을 수행한다. 이때, MSB 데이터의 제2 에러 정보(또는 MSB 에러 정보)가 생성된다. 단계(S619)에서 메모리 컨트롤러(100)는 MSB 데이터의 오류 검색 정정 동작에서 생성된 MSB 에러 정보를 저장부(130)에 저장한다. 그리고, 오류 검색 정정 동작이 수행된 MSB 데이터를 메모리 장치(200)로 출력한다.
단계(S621)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 MSB 데이터를 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들에 저장하기 위한 MSB 프로그램 루프를 실시한다. 이로써, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포는 소거 레벨과 제1 내지 제3 프로그램 레벨로 구분된다. 단계(S623)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들을 실시한다. 예로써, 이전 워드라인(WL1)의 재프로그램 루프, 주변 워드라인(WL4)의 LSB 프로그램 루프 및 다음 워드라인(WL3)의 MSB 프로그램 루프가 실시될 수 있다.
이어서, 선택된 워드라인(WL2)의 재프로그램 루프를 실시하기 위한 동작들이 진행된다. 재프로그램 루프를 실시하기 위해서는 LSB 데이터와 MSB 데이터가 모두 필요하다.
단계(S625)에서 메모리 장치(200)의 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 LSB 데이터를 독출하여 제1 내부 래치(미도시)에 저장하고 MSB 데이터를 독출하여 제2 내부 래치(미도시)에 저장한다. 단계(S627)에서 메모리 컨트롤러(100)는 단계들(S607, S617)에서 생성되어 단계들(S609, S619)에서 저장부(130)에 저장된 에러 정보들을 메모리 장치(200)로 출력한다. 단계(S629)에서 메모리 장치(200)의 데이터 변경 회로(250)는 읽기/쓰기 회로(240)에 저장되어 있는 LSB 데이터 및 MSB 데이터의 오류 비트들을 메모리 컨트롤러(100)로부터 입력된 에러 정보들에 따라 수정한다.
단계(S631)에서 메모리 장치(200)의 읽기/쓰기 회로(240)는 수정된 LSB 데이터 및 MSB 데이터에 따라서 선택된 워드라인(WL2)의 메모리 셀들의 재프로그램 루프를 실시한다. 재프로그램 루프가 실시됨에 따라 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포 폭들이 좁아지고 문터전압 분포들이 제1 내지 제3 프로그램 레벨에 대응하도록 정확하게 제어된다.
이로써, 선택된 워드라인(WL2)의 메모리 셀들에 LSB 데이터와 MSB 데이터를 저장하기 위한 전체적인 프로그램 루프가 완료된다. 이후, 버퍼 메모리 블록(210B)에 저장된 선택된 워드라인(WL2)의 LSB 데이터와 MSB 데이터는 후속 단계에서 삭제될 수 있다.
상기에서와 같이, 메모리 컨트롤러(100)에 저장된 에러 정보들을 이용하여 LSB 데이터와 MSB 데이터를 수정함으로써, 재프로그램 루프에서 오류 검색 정정 동작과 이에 필요한 절차들을 생략할 수 있으므로 동작 시간을 단축시킬 수 있다.
한편, LSB 프로그램 루프와 MSB 프로그램 루프로 구분하지 않고 LSB 데이터와 MSB 데이터에 따라 한 번에 메모리 셀들의 문턱전압 분포들을 소거 레벨과 제1 내지 제3 프로그램 레벨들로 구분하는 원샷 프로그램 방식으로 프로그램 루프를 실시할 수도 있다. 이러한 실시예를 설명하면 다음과 같다.
도 3, 도 5 및 도 7을 참조하면, 단계(S701)부터 단계(S709)까지는 앞서 설명한 단계(S601)부터 단계(S609)와 동일하게 진행될 수 있다. 단계(S701)부터 단계(S709)를 통해 버퍼 메모리 블록(210B)로부터 독출된 LSB 데이터의 오류 검색 정정 동작이 수행되고 LSB 데이터의 에러 정보가 메모리 컨트롤러(100)의 저장부(130)에 저장된다.
단계(S711)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터를 읽기/쓰기 회로(240)의 내부 래치(미도시)에 저장한다.
다시, 단계(S713)부터 단계(S717)까지는 앞서 설명한 단계(S615)부터 단계(S619)와 동일하게 진행될 수 있다. 단계(S713)부터 단계(S717)를 통해 버퍼 메모리 블록(210B)로부터 독출된 MSB 데이터의 오류 검색 정정 동작이 수행되고 MSB 데이터의 에러 정보가 메모리 컨트롤러(100)의 저장부(130)에 저장된다.
단계(S719)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 MSB 데이터를 읽기/쓰기 회로(240)의 내부 래치(미도시)에 저장한다.
단계(S721)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터 및 MSB 데이터를 선택된 워드라인(WL2)의 메모리 셀들에 저장하기 위한 메인 프로그램 루프(원샷 프로그램 루프)를 실시한다. 이로써, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포는 소거 레벨에서 4개의 레벨들(소거 레벨과 제1 내지 제3 프로그램 레벨)로 분산된다. 단계(S723)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들을 실시한다. 원샷 프로그램 루프가 실시되는 경우, 이전 워드라인(WL1)의 재프로그램 루프 및 다음 워드라인(WL3)의 메인 프로그램 루프가 실시될 수 있다.
이어서, 선택된 워드라인(WL2)의 재프로그램 루프를 실시하기 위한 동작들이 진행된다. 재프로그램 루프를 실시하기 위해서는 LSB 데이터와 MSB 데이터가 모두 필요하다. 선택된 워드라인(WL2)이 재프로그램 루프를 위하여 단계들(S725~S731)이 앞서 설명한 단계들(S625~S631)과 동일한 방식으로 진행될 수 있다.
도 8은 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 메모리 장치가 TLC 방식으로 동작하는 경우 메모리 셀에 LSB 데이터를 저장하기 위한 LSB 프로그램 루프(LSB), CSB 데이터를 저장하기 위한 CSB 프로그램 루프(CSB)와 MSB 데이터를 저장하기 위한 MSB 프로그램 루프(MSB)가 실시된다. 한편, 주변 워드라인들의 프로그램 루프가 실시되는 동안 선택된 워드라인의 메모리 셀들에 간섭 현상이 발생되어 선택된 워드라인의 메모리 셀들의 문턱전압이 변경될 수 있다.
따라서, 워드라인들(WL0~WL4)의 LSB 프로그램 루프들(LSB), CSB 프로그램 루프들(CSB) 및 MSB 프로그램 루프들(MSB)의 순서는 프로그램 간섭 현상에 의한 문턱전압의 변동을 최소화할 수 있도록 정해질 수 있다. 예로써, 제3 워드라인(WL2)이 선택된 워드라인이라 가정할 경우, 이전 워드라인(WL0)의 CSB 프로그램 루프, 선택된 워드라인(WL2)의 LSB 프로그램 루프, 이전 워드라인(WL1)의 CSB 프로그램 루프, 이전 워드라인(WL0)의 MSB 프로그램 루프, 다음 워드라인(WL3)의 LSB 프로그램 루프, 선택된 워드라인(WL2)의 CSB 프로그램 루프, 이전 워드라인(WL1)의 MSB 프로그램 루프, 다음 워드라인(WL4)의 LSB 프로그램 루프, 다음 워드라인(WL3)의 CSB 프로그램 루프 및 선택된 워드라인(WL2)의 MSB 프로그램 루프의 순서대로 실시된다.
한편, 에러 정보를 이용한 데이터의 수정 동작은 CSB 프로그램 루프와 MSB 프로그램 루프에서 실시될 수 있다. 보다 구체적으로 실시예를 설명하면 다음과 같다.
도 9 내지 도 11은 도 8에 도시된 반도체 장치의 동작 방법을 설명하기 위한 흐름도들이다.
도 3, 도 8 및 도 9를 참조하면, 단계(S901)에서 선택된 워드라인(WL2)의 메모리 셀들에 저장될 데이터가 메모리 컨트롤러(100)로부터 입력되면, 단계(S903)에서 입력된 데이터가 메모리 장치(200)의 버퍼 메모리 블록(210B)에 저장된다. 이때, 제1 데이터(또는, LSB 데이터), 제2 데이터(또는, CSB 데이터) 및 제3 데이터(MSB 데이터)가 연속적으로 입력되어 버퍼 메모리 블록(210B)에 저장될 있으며, LSB 데이터, CSB 데이터 및 MSB 데이터는 읽기/쓰기 회로(240)에 의해 SLC 방식으로 버퍼 메모리 블록(210B)에 저장될 수 있다. LSB 데이터, CSB 데이터 및 MSB 데이터는 SLC 방식으로 버퍼 메모리 블록(210B)에 저장되기 때문에 저장 속도가 아주 빠르다. 단계(S905)에서 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 LSB 데이터를 독출하고, 독출된 LSB 데이터는 메모리 컨트롤러(100)로 출력된다.
단계(S907)에서 메모리 컨트롤러(100)는 입력된 LSB 데이터의 오류 검색 정정 동작을 수행한다. 이때, LSB 데이터의 제1 에러 정보(또는 LSB 에러 정보)가 생성된다. 단계(S909)에서 메모리 컨트롤러(100)는 LSB 데이터의 오류 검색 정정 동작에서 생성된 LSB 에러 정보를 저장부(130)에 저장한다. 그리고, 오류 검색 정정 동작이 수행된 LSB 데이터를 메모리 장치(200)로 출력한다.
단계(S911)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터를 읽기/쓰기 회로(240)의 제1 내부 래치(미도시)에 저장한다. 단계(S913)에서 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 CSB 데이터를 독출하고, 독출된 CSB 데이터는 메모리 컨트롤러(100)로 출력된다.
단계(S915)에서 메모리 컨트롤러(100)는 입력된 CSB 데이터의 오류 검색 정정 동작을 수행한다. 이때, CSB 데이터의 제2 에러 정보(또는 CSB 에러 정보)가 생성된다. 단계(S917)에서 메모리 컨트롤러(100)는 CSB 데이터의 오류 검색 정정 동작에서 생성된 CSB 에러 정보를 저장부(130)에 저장한다. 그리고, 오류 검색 정정 동작이 수행된 LSB 데이터를 메모리 장치(200)로 출력한다.
단계(S911)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 CSB 데이터를 읽기/쓰기 회로(240)의 제2 내부 래치(미도시)에 저장한다. 동일한 방법으로 단계들(S921~S927)을 실시하여, 메모리 장치(200)는 오류 검색 정정 동작이 수행된 MSB 데이터를 읽기/쓰기 회로(240)의 제2 내부 래치(미도시)에 저장한다
단계(S929)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터를 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들에 저장하기 위한 제1 프로그램 루프(또는 LSB 프로그램 루프)를 실시한다. TLC 프로그램 루프는 LSB 프로그램 루프, CSB 프로그램 루프 및 MSB 프로그램 루프를 포함할 수 있다. 이 경우, LSB 프로그램 루프가 완료되면, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포들은 소거 레벨과 프로그램 레벨로 구분될 수 있다. 또한, TLC 프로그램 루프를 LSB 프로그램 루프, CSB 프로그램 루프 및 MSB 프로그램 루프로 구분하지 않고, LSB 데이터, CSB 데이터 및 MSB 데이터에 따라 한 번에 메모리 셀들의 문턱전압 분포들을 소거 레벨과 제1 내지 제7 프로그램 레벨들로 구분하는 원샷 프로그램 방식으로 TLC 프로그램 루프를 진행할 수도 있다. 이 경우, 제1 프로그램 루프가 완료되면, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포들은 소거 레벨과 7개의 프로그램 레벨들로 구분될 수 있다. 이때, 메모리 셀들의 문턱전압 분포들의 폭은 최종 목표 분포들의 폭보다 넓고, 메모리 셀들의 문턱전압 분포들과 최종 목표 분포들의 레벨 차이가 크다.
단계(S931)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들을 실시한다. 예로써, 이전 워드라인(WL1)의 CSB 프로그램 루프, 주변 워드라인(WL0)의 MSB 프로그램 루프 및 다음 워드라인(WL3)의 LSB 프로그램 루프가 실시될 수 있다.
상기에서는 LSB 데이터, CSB 데이터 및 MSB 데이터가 오류 검색 정정 동작이 실시된 후 단계들(S911, S919, S927)에서 각각 메모리 장치(200)로 입력되어 읽기/쓰기 회로(240)에 저장되었으나, 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터가 한번에 연속적으로 출력될 수도 있다. 구체적인 실시예를 설명하면 다음과 같다.
도 10을 참조하면, 단계들(S909, S917)에서 오류 검색 정정 동작에 의해 얻어진 LSB 데이터 및 CSB 데이터의 에러 정보들이 메모리 컨트롤러(100)의 저장부(130)에 각각 저장된 후 메모리 장치(200)로 출력되지 되지 않는다. 즉, 단계들(S911, S919)이 생략된다. 그리고, 단계들(S921, S923, S925)에 의해 MSB 데이터의 오류 검색 정정 동작이 실시되고, 오류 검색 정정 동작에서 얻어진 에러 정보가 메모리 컨트롤러(100)의 저장부(130)에 저장된다. 이렇게 모든 데이터들에 대한 에러 정보들이 저장부(130)에 저장된 후, 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터가 메모리 장치로 연속해서 출력된다.
단계(S928)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터를 읽기/쓰기 회로(240)의 제1 내지 제3 내부 래치들(미도시)에 각각 저장한다. 이어서, 단계(S929)에서 메모리 장치(200)는 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터를 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들 저장하기 위한 제1 프로그램 루프(또는 LSB 프로그램 루프)를 실시한다. 그리고, 단계(S931)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들이 실시된다.
이렇게 오류 검색 정정 동작이 수행된 LSB 데이터, CSB 데이터 및 MSB 데이터를 한번에 연속해서 메모리 장치(200)에 입력하면 동작에 소요되는 시간을 줄일 수 있다.
또한, 메모리 컨트롤러(100)에서 단계(S907 또는 S909)가 실시되는 동안 메모리 장치(200)에서 단계(S913)가 동시에 실시되고, 메모리 컨트롤러(100)에서 단계(S915 또는 S917)가 실시되는 동안 메모리 장치(200)에서 단계(S921)가 동시에 실시되면, 동작에 소요되는 시간을 보다 더 줄일 수 있다.
이어서, 선택된 워드라인(WL2)의 메모리 셀들의 제2 프로그램 루프(또는 CSB 프로그램 루프)를 실시하기 위한 동작들이 진행된다.
도 11을 참조하면, 단계(S933)에서 메모리 장치(200)의 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 LSB 데이터를 독출하여 제1 내부 래치(미도시)에 저장한다. 단계(S935)에서 메모리 컨트롤러(100)는 저장부(130)에 저장된 LSB 데이터의 LSB 에러 정보를 메모리 장치(200)로 출력한다. 단계(S937)에서 메모리 장치(200)의 데이터 변경 회로(250)는 입력된 LSB 에러 정보에 따라 읽기/쓰기 회로(240)의 제1 내부 래치에 저장된 LSB 데이터를 수정한다.
단계(S939)에서 메모리 장치(200)의 읽기/쓰기 회로(240)는 버퍼 메모리 블록(210B)에 저장된 CSB 데이터를 독출하여 제2 내부 래치(미도시)에 저장한다. 단계(S941)에서 메모리 컨트롤러(100)는 저장부(130)에 저장된 CSB 데이터의 CSB 에러 정보를 메모리 장치(200)로 출력한다. 단계(S943)에서 메모리 장치(200)의 데이터 변경 회로(250)는 입력된 CSB 에러 정보에 따라 읽기/쓰기 회로(240)의 제2 내부 래치에 저장된 CSB 데이터를 수정한다.
마찬가지로, 단계들(S945, S947, S949)을 통해 버퍼 메모리 블록(210B)으로부터 MSB 데이터가 독출되고 메모리 컨트롤러(100)의 저장부(130)에 저장된 MSB 에러 정보에 따라 MSB 데이터가 수정된다.
상기에서, 동작들의 진행순서가 변경될 수도 있다. 예를 들어, 단계들(S933, S935, S939, S941, S945, S947)이 순차적으로 먼저 진행된 후, 단계들(S939, 934, S949)이 순차적으로 또는 동시에 진행될 수도 있다.
이어서, 단계(S951)에서 메모리 장치(200)는 에러 정보들을 근거로 데이터 변경 회로(250)에 의해 수정된 LSB 데이터, CSB 데이터 및 MSB 데이터에 따라 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들의 제2 프로그램 루프(또는 CSB 프로그램 루프)를 실시한다. TLC 프로그램 루프가 LSB 프로그램 루프, CSB 프로그램 루프 및 MSB 프로그램 루프를 포함하는 경우, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포들은 CSB 프로그램 루프에 의해 소거 레벨과 3개의 프로그램 레벨들로 구분될 수 있다. 또한, TLC 프로그램 루프가 원샷 프로그램 방식으로 진행되는 경우, 제1 프로그램 루프에 의해 소거 레벨과 제1 내지 제7 프로그램 레벨들로 구분되어 있는 메모리 셀들의 문턱전압 분포의 폭들이 제2 프로그램 루프에 의해 조금 더 좁아진다. 그리고, 제2 프로그램 루프에 의해 메모리 셀들의 문턱전압 분포들과 최종 목표 분포들의 레벨 차이가 줄어든다.
단계(S953)에서 정해진 프로그램 순서에 따라 주변 워드라인들의 프로그램 루프들을 실시한다. 예로써, 이전 워드라인(WL1)의 제3 프로그램 루프(또는 MSB 프로그램 루프), 주변 워드라인(WL4)의 제1 프로그램 루프(또는, LSB 프로그램 루프) 및 다음 워드라인(WL3)의 제2 프로그램 루프(또는 CSB 프로그램 루프)가 실시될 수 있다.
계속해서, 메인 메모리 블록(210M)에 포함된 선택된 워드라인(WL2)의 메모리 셀들의 제3 프로그램 루프(또는 MSB 프로그램 루프)를 위한 동작들이 진행된다. 제3 프로그램 루프(또는 MSB 프로그램 루프)는 앞서 설명한 단계들(S933~S951)과 동일한 방법으로 진행될 수 있다. TLC 프로그램 루프가 LSB 프로그램 루프, CSB 프로그램 루프 및 MSB 프로그램 루프를 포함하는 경우, 선택된 워드라인(WL2)의 메모리 셀들의 문턱전압 분포들은 MSB 프로그램 루프에 의해 소거 레벨과 7개의 프로그램 레벨들로 구분될 수 있다. 또한, TLC 프로그램 루프가 원샷 프로그램 방식으로 진행되는 경우, 제2 프로그램 루프에 의해 소거 레벨과 제1 내지 제7 프로그램 레벨들로 구분되어 있는 메모리 셀들의 문턱전압 분포의 폭들이 제3 프로그램 루프에 의해 보다 더 좁아진다. 그리고, 제3 프로그램 루프에 의해 메모리 셀들의 문턱전압 분포들과 최종 목표 분포들에 대응한다.
10 : 반도체 장치 100 : 메모리 컨트롤러
110 : 데이터 버스 120 : 프로세서
130 : 저장부 140 : 메모리 인터페이스
150 : ECC 160 : 호스트 인터페이스
200 : 메모리 장치 210 : 메모리 어레이
210M : 메인 메모리 블록 210B : 버퍼 메모리 블록
220 : 제어 회로 230 : 전압 공급 회로
240 : 읽기/쓰기 회로 250 : 데이터 변경 회로

Claims (41)

  1. 버퍼 메모리 블록에 저장된 복수의 페이지 데이터 중 제1 페이지 데이터 및 제2 페이지 데이터를 메모리 컨트롤러에 전송하는 단계;
    상기 제1 및 제2 페이지 데이터 각각에 대해서 오류 정정 동작이 수행된 제1 정정 데이터 및 제2 정정 데이터를 상기 메모리 컨트롤러로부터 수신하는 단계;
    상기 제1 정정 데이터를 메인 메모리 블록에 저장하기 위한 제1 프로그램 루프를 수행하는 단계;
    상기 제2 정정 데이터를 상기 메인 메모리 블록에 저장하기 위한 제2 프로그램 루프를 수행하는 단계;
    상기 메모리 컨트롤러의 상기 오류 정정 동작을 통해 획득한 상기 제1 및 제2 페이지 데이터의 에러 정보를 상기 메모리 컨트롤러로부터 수신하는 단계;
    상기 에러 정보에 따라 상기 버퍼 메모리 블록에 저장된 상기 제1 및 제2 페이지 데이터를 수정하여 상기 제1 정정 데이터 및 제2 정정 데이터를 획득하는 단계; 및
    상기 제1 및 제2 정정 데이터를 상기 메인 메모리 블록에 저장하기 위한 제3 프로그램 루프를 수행하는 단계를 포함하는 메모리 장치의 동작 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 에러 정보는 상기 제1 및 제2 페이지 데이터에 포함된 에러 비트의 위치와 정정 값을 각각 포함하는 메모리 장치의 동작 방법.
  5. 삭제
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 버퍼 메모리 블록에 저장된 복수의 페이지 데이터 중 제1 페이지 데이터, 제2 페이지 데이터 및 제3 페이지 데이터를 메모리 컨트롤러에 전송하는 단계;
    상기 제1, 제2 및 제3 페이지 데이터 각각에 대해서 오류 정정 동작이 수행된 제1, 제2 및 제3 정정 데이터를 상기 메모리 컨트롤러로부터 수신하는 단계;
    상기 제1, 제2 및 제3 정정 데이터를 메인 메모리 블록에 저장하기 위한 제1 프로그램 루프를 수행하는 단계;
    상기 메모리 컨트롤러의 상기 오류 정정 동작을 통해 획득한 상기 제1, 제2 및 제3 페이지 데이터의 에러 정보를 상기 메모리 컨트롤러로부터 수신하는 단계;
    상기 에러 정보에 따라 상기 버퍼 메모리 블록에 저장된 상기 제1, 제2 및 제3 페이지 데이터를 수정하여 상기 제1, 제2 및 제3 정정 데이터를 획득하는 단계; 및
    상기 제1, 제2 및 제3 페이지 데이터를 상기 메인 메모리 블록에 저장하기 위한 제2 프로그램 루프를 수행하는 단계를 포함하는 메모리 장치의 동작 방법.
  12. 삭제
  13. 삭제
  14. 제 11 항에 있어서,
    상기 에러 정보는 상기 제1, 제2 및 제3 페이지 데이터에 포함된 에러 비트의 위치와 정정 값을 각각 포함하는 메모리 장치의 동작 방법.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 제 1 항에 있어서,
    상기 에러 정보는 상기 제1 및 제2 페이지 데이터에 포함된 에러 비트의 열 주소 및 수정된 비트를 포함하는 메모리 장치의 동작 방법.
  35. 제 1 항에 있어서,
    상기 제1 페이지 데이터는 LSB 데이터를 포함하고, 상기 제2 페이지 데이터는 MSB 데이터를 포함하며,
    상기 제3 프로그램 루프는 상기 LSB 데이터 및 상기 MSB 데이터를 재프로그램하도록 수행되는 메모리 장치의 동작 방법.
  36. 제 1 항에 있어서,
    상기 제1 정정 데이터 및 제2 정정 데이터를 획득하는 단계는
    상기 에러 정보를 사용하여 상기 제1 및 제2 페이지 데이터에 대해 XOR 연산을 수행하는 단계를 포함하는 메모리 장치의 동작 방법.
  37. 제 1 항에 있어서,
    상기 제1 및 제2 프로그램 루프는
    선택된 워드 라인의 메모리 셀들의 문턱 전압들이 메모리 셀들의 목표 레벨들보다 설정된 값만큼 낮아지도록 수행되며,
    상기 제3 프로그램 루프는 상기 선택된 워드 라인의 메모리 셀들의 상기 문턱 전압들이 메모리 셀들의 목표 레벨들 이상이 되도록 수행되는 메모리 장치의 동작 방법.
  38. 제 11 항에 있어서,
    상기 에러 정보는 상기 제1, 제2 및 제3 페이지 데이터에 포함된 에러 비트의 위치 및 정정 값을 포함하는 메모리 장치의 동작 방법.
  39. 제 11 항에 있어서,
    상기 제1 페이지 데이터는 LSB 데이터를 포함하고, 상기 제2 페이지 데이터는 MSB 데이터를 포함하고, 상기 제3 페이지 데이터는 CSB 데이터를 포함하는 메모리 장치의 동작 방법.
  40. 제 11 항에 있어서,
    상기 제1 프로그램 루프는 선택된 워드 라인의 메모리 셀들의 문턱 전압들이 메모리 셀들의 목표 레벨들보다 설정된 값만큼 낮게 설정되도록 수행되며,
    상기 제2 프로그램 루프는 상기 선택된 워드 라인의 메모리 셀들의 상기 문턱 전압들이 상기 메모리 셀들의 상기 목표 레벨들 이상으로 설정되도록 수행되는 메모리 장치의 동작 방법.
  41. 제 11 항에 있어서,
    상기 제1, 제2 및 제3 정정 데이터를 획득하는 단계는
    상기 에러 정보를 사용하여 상기 제1, 제2 및 제3 페이지 데이터에 대해 XOR 연산을 수행하는 단계를 포함하는 메모리 장치의 동작 방법.
KR1020130006018A 2013-01-18 2013-01-18 반도체 장치 및 이의 동작 방법 KR102009437B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130006018A KR102009437B1 (ko) 2013-01-18 2013-01-18 반도체 장치 및 이의 동작 방법
US13/844,910 US9513991B2 (en) 2013-01-18 2013-03-16 Semiconductor apparatus performing program loop by using error information and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130006018A KR102009437B1 (ko) 2013-01-18 2013-01-18 반도체 장치 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20140093868A KR20140093868A (ko) 2014-07-29
KR102009437B1 true KR102009437B1 (ko) 2019-08-13

Family

ID=51208746

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130006018A KR102009437B1 (ko) 2013-01-18 2013-01-18 반도체 장치 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US9513991B2 (ko)
KR (1) KR102009437B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104425020A (zh) * 2013-08-23 2015-03-18 慧荣科技股份有限公司 存取快闪存储器中储存单元的方法以及使用该方法的装置
US9972393B1 (en) * 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
KR102381218B1 (ko) * 2015-09-25 2022-04-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10423487B2 (en) * 2016-08-19 2019-09-24 Samsung Electronics Co., Ltd. Data protection offloads using SSD peering
CN109903790A (zh) * 2017-12-11 2019-06-18 旺宏电子股份有限公司 存储器装置及其操作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113306A1 (en) * 2005-09-01 2011-05-12 David Eggleston Memory device with error detection

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7313600A (en) * 1999-09-17 2001-04-24 Hitachi Limited Storage where the number of error corrections is recorded
US8300478B2 (en) * 2007-09-19 2012-10-30 Apple Inc. Reducing distortion using joint storage
KR101489827B1 (ko) 2008-03-25 2015-02-04 삼성전자주식회사 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
KR101572830B1 (ko) * 2009-06-22 2015-11-30 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법, 비휘발성 메모리 장치 및 비휘발성 메모리 시스템
KR101633018B1 (ko) * 2009-12-28 2016-06-24 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US9141473B2 (en) * 2011-03-25 2015-09-22 Samsung Electronics Co., Ltd. Parallel memory error detection and correction
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
KR101893145B1 (ko) * 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110113306A1 (en) * 2005-09-01 2011-05-12 David Eggleston Memory device with error detection

Also Published As

Publication number Publication date
US9513991B2 (en) 2016-12-06
US20140208187A1 (en) 2014-07-24
KR20140093868A (ko) 2014-07-29

Similar Documents

Publication Publication Date Title
US11340790B2 (en) Storage device for migrating data based on random read workload and operating method of the same
KR102290974B1 (ko) 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
KR102564563B1 (ko) 메모리 시스템 및 그 동작 방법
TWI674581B (zh) 半導體記憶體裝置及其之操作方法
US10726932B2 (en) Storage device and method of operating the same
KR20180130872A (ko) 저장 장치 및 그 동작 방법
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
US11037639B2 (en) Memory controller and method of operating the same for processing the failed read operation
US11289165B2 (en) Memory device and method of operating the same
US10983726B2 (en) Storage device and method of operating the same for detecting last programmed page
KR102009437B1 (ko) 반도체 장치 및 이의 동작 방법
KR20190113438A (ko) 메모리 장치 및 그것의 동작방법
US11061757B2 (en) Storage device and method of operating the same
KR102340328B1 (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20230020109A (ko) 리드 동작을 수행하는 메모리 장치 및 그것의 동작 방법
US10910047B2 (en) Storage device and method of operating the same
KR20190100763A (ko) 저장 장치 및 그 동작 방법
US9728264B2 (en) Nonvolatile memory device, operating method thereof, and data storage device including the same
KR20200036508A (ko) 메모리 시스템 및 그것의 동작방법
KR20190125002A (ko) 메모리 시스템 및 그것의 동작방법
KR20220020731A (ko) 메모리 장치 및 그 동작 방법
KR20200023758A (ko) 메모리 시스템 및 그것의 동작방법
KR20190117235A (ko) 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템
US11693771B2 (en) Storage device for storing randomized data and operating method of the same
US12027209B2 (en) Memory device and method of operating the same

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
GRNT Written decision to grant