KR102389432B1 - 메모리 시스템 및 그의 동작방법 - Google Patents
메모리 시스템 및 그의 동작방법 Download PDFInfo
- Publication number
- KR102389432B1 KR102389432B1 KR1020170147375A KR20170147375A KR102389432B1 KR 102389432 B1 KR102389432 B1 KR 102389432B1 KR 1020170147375 A KR1020170147375 A KR 1020170147375A KR 20170147375 A KR20170147375 A KR 20170147375A KR 102389432 B1 KR102389432 B1 KR 102389432B1
- Authority
- KR
- South Korea
- Prior art keywords
- decoding operation
- read
- soft decision
- codeword
- label
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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 codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3746—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 기술은 메모리 시스템 및 이의 동작 방법에 관한 것으로, 메모리 시스템은 데이터들이 저장되고, 리드 동작 시 저장된 상기 데이터들을 리드하여 출력하기 위한 반도체 메모리 장치, 및 상기 리드 동작 시 상기 반도체 메모리 장치를 제어하고, 상기 반도체 메모리 장치에서 출력된 상기 데이터들에 대한 제1 및 제2 디코딩 동작을 순차적으로 수행하기 위한 컨트롤러를 포함하며, 상기 컨트롤러는 상기 제2 디코딩 동작 시 빈 라벨 코드워드(Bin Label codeword)를 업데이트하여 저장하되, 상기 빈 라벨 코드워드 중 시작 빈 라벨 코드워드를 백업하여 저장한다.
Description
본 발명은 비휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것으로서, 더욱 상세하게는 에러 정정 동작을 수행하는 메모리 시스템 및 그 동작방법에 관한 것이다.
최근 컴퓨터 환경에 대한 패러다임(paradigm)이 언제, 어디서나 컴퓨터 시스템을 사용할 수 있도록 하는 유비쿼터스 컴퓨팅(ubiquitous computing)으로 전환되고 있다. 이로 인해 휴대폰, 디지털 카메라, 노트북 컴퓨터 등과 같은 휴대용 전자 장치의 사용이 급증하고 있다. 이와 같은 휴대용 전자 장치는 일반적으로 메모리 장치를 이용하는 메모리 시스템, 다시 말해 데이터 저장 장치를 사용한다. 데이터 저장 장치는 휴대용 전자 장치의 주 기억 장치 또는 보조 기억 장치로 사용된다.
메모리 장치를 이용한 데이터 저장 장치는 기계적인 구동부가 없어서 안정성 및 내구성이 뛰어나며, 또한 정보의 액세스 속도가 매우 빠르고 전력 소모가 적다는 장점이 있다. 이러한 장점을 갖는 메모리 시스템의 일 예로 데이터 저장 장치는 USB(Universal Serial Bus) 메모리 장치, 다양한 인터페이스를 갖는 메모리 카드, 솔리드 스테이트 드라이브(SSD: Solid State Drive) 등을 포함한다.
본 발명의 실시 예는 에러 정정 디코딩 동작에서 데이터 리커버리에 소요되는 시간을 단축시킬 수 있는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시 예에 따른 메모리 시스템은 데이터들이 저장되고, 리드 동작 시 저장된 상기 데이터들을 리드하여 출력하기 위한 반도체 메모리 장치, 및 상기 리드 동작 시 상기 반도체 메모리 장치를 제어하고, 상기 반도체 메모리 장치에서 출력된 상기 데이터들에 대한 제1 및 제2 디코딩 동작을 순차적으로 수행하기 위한 컨트롤러를 포함하며, 상기 컨트롤러는 상기 제2 디코딩 동작 시 빈 라벨 코드워드(Bin Label codeword)를 업데이트하여 저장하되, 상기 빈 라벨 코드워드 중 시작 빈 라벨 코드워드를 백업하여 저장한다.
본 발명의 실시 예에 따른 메모리 시스템은 데이터들이 저장되고, 리드 동작 시 저장된 상기 데이터들을 리드하여 출력하기 위한 반도체 메모리 장치, 및 상기 반도체 메모리 장치에서 출력된 상기 데이터들에 대한 디코딩 동작을 수행하기 위한 컨트롤러를 포함하며, 상기 컨트롤러는 소프트 디시젼 디코딩, 추가 소프트 디시젼 디코딩 동작을 수행하기 위한 ECC 유닛, 및 상기 추가 소프트 디시젼 디코딩 동작 시 빈 라벨 코드워드(Bin Label codeword)를 업데이트하여 저장하되, 상기 빈 라벨 코드워드 중 시작 빈 라벨 코드워드를 백업하여 저장하는 ECC 버퍼를 포함한다.
본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은 소프트 디시젼 디코딩 동작을 수행하는 단계와, 상기 소프트 디시젼 디코딩 동작 결과 실패로 판별될 경우, 제1 추가 소프트 디시젼 디코딩 동작을 수행하되, 시작 빈 라벨 코드워드를 포함하는 복수의 빈 라벨 코드워드(Bin Label codeword)들을 업데이트하여 저장하되, 상기 시작 빈 라벨 코드워드는 백업하여 저장하는 단계, 및 상기 제1 추가 소프트 디시젼 디코딩 동작 결과 실패로 판별될 경우, 상기 백업된 시작 빈 레벨 코드워드를 이용하여 제2 추가 소프트 디시젼 디코딩 동작을 수행하는 단계를 포함한다.
본 기술에 따르면, 메모리 시스템의 에러 정정 디코딩시 소프트 디시젼 리드 동작에 대한 정보를 빈 라벨(Bin Label) 코드워드로 저장하여 후속 소프트 디시젼 리드 동작에 활용함으로써, 추가적인 소프트 리드 동작의 소요 시간을 단축시켜 데이터 리커버리 동작을 개선할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 2는 도 1에 도시된 컨트롤러를 설명하기 위한 블록도이다.
도 3은 도 1에 도시된 반도체 메모리 장치를 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 메모리 블록을 설명하기 위한 회로도이다.
도 5는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 문턱전압 분포도이다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8은 메모리 시스템의 다른 실시 예를 설명하기 위한 블록도이다.
도 9는 도 8의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 10은 도 9를 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 컨트롤러를 설명하기 위한 블록도이다.
도 3은 도 1에 도시된 반도체 메모리 장치를 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 메모리 블록을 설명하기 위한 회로도이다.
도 5는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 문턱전압 분포도이다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 8은 메모리 시스템의 다른 실시 예를 설명하기 위한 블록도이다.
도 9는 도 8의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 10은 도 9를 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다. 도 2는 도 1에 도시된 컨트롤러를 설명하기 위한 블록도이다.
도 1을 참조하면, 메모리 시스템(300)은 반도체 메모리 장치(100) 및 호스트로부터의 요청에 따라 반도체 메모리 장치(100)의 동작을 제어하는 컨트롤러(200)를 포함한다.
반도체 메모리 장치(100)는 컨트롤러(200)로부터 수신되는 커맨드(CMD) 및 어드레스(ADD)에 응답하여 메모리 블록에 포함되는 페이지들의 메모리 셀들에 프로그램 동작 또는 리드 동작을 수행한다. 반도체 메모리 장치(100)는 컨트롤러(200)로부터 입력되는 데이터(DATA)를 프로그램 대상 페이지의 메모리 셀들에 프로그램하고 메모리 셀들로부터 리드된 데이터(DATA)를 컨트롤러(200)에 출력한다.
도 2를 참조하면, 컨트롤러(200)는 ECC 유닛(210)과 메모리(220)를 포함한다.
ECC 유닛(210)은 ECC 인코더(211) 및 ECC 디코더(212)를 포함할 수 있다.
ECC 인코더(211)는 도 1의 반도체 메모리 장치(100)에 프로그램될 데이터를 오류정정 인코딩을 하여, 패리티(parity) 비트가 부가된 데이터를 형성할 수 있다. 패리티 비트는 반도체 메모리 장치(100)에 저장될 수 있다.
ECC 디코더(212)는 반도체 메모리 장치(100)로부터 리드한 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. ECC 디코더(212)는 에러 정정 디코딩의 성공 여부를 판별하고 판별 결과에 따라 지시 신호를 출력할 수 있다. ECC 디코더(212)는 ECC 인코딩 과정에서 생성된 페리티(parity) 비트를 사용하여 데이터의 에러 비트를 정정할 수 있다.
한편, ECC 유닛(210)은 에러 비트 개수가 정정 가능한 에러 비트 한계치 이상 발생하면, 에러 비트를 정정할 수 없다. 이때 에러 정정 페일(fail) 신호가 발생될 수 있다.
ECC 유닛(210)은 LDPC(low density parity check) code, BCH code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation)을 사용하여 에러 정정을 할 수 있으며 이에 한정되는 것은 아니다. ECC 유닛(210)은 오류정정을 위한 회로, 시스템 또는 장치를 모두 포함할 수 있다.
본 발명의 일실시예에 따르면, ECC 유닛(210)는 하드 디시젼 데이터 및 소프트 디시젼 데이터를 사용하여 에러 비트 정정을 수행할 수 있다.
메모리(220)는 반도체 메모리 장치(100)로부터 리드한 데이터를 저장하거나, 반도체 메모리 장치(100)에 프로그램할 데이터를 저장할 수 있다. 메모리(220)는 컨트롤러(200)의 동작 메모리, 반도체 메모리 장치(100) 및 호스트(Host) 사이의 캐시 메모리, 그리고 반도체 메모리 장치(100) 및 호스트(Host) 사이의 버퍼 메모리로 이용될 수 있다.
본 발명의 실시 예에서는 메모리(220)의 일부 영역을 ECC 버퍼(221)로 활용할 수 있다. ECC 버퍼(221)는 빈 라벨 코드워드(Bin Label codeword), 오류 정정된 코드워드(corrected codeword) 및 본래 코드워드(original codeword)를 저장할 수 있다.
빈 라벨 코드워드(Bin Label codeword)는 ECC 디코딩 동작 중 소프트 디코딩 동작을 위한 소프트 리드 동작 시 얻어진 메모리 셀들별 문턱 전압을 리드 전압에 기초하여 구분한 정보를 포함할 수 있다. 오류 정정된 코드워드(corrected codeword)는 ECC 디코딩 과정이 완료된 코드워드이다. 본래 코드워드(original codeword)는 ECC 디코딩 과정이 수행되지 아니한 코드워드이다.
ECC 버퍼(221)는 빈 라벨(Bin Label) 버퍼 영역(222) 및 백업 버퍼 영역(223)을 포함하여 구성될 수 있다. 빈 라벨 버퍼 영역(222)에는 빈 라벨 코드워드가 저장될 수 있으며, 백업 버퍼 영역(223)은 빈 라벨 버퍼영역(222)에 저장된 빈 라벨 코드워드를 복사하여 저장할 수 있다.
일예로 ECC 디코딩 동작 중 소프트 디코딩 동작이 완료되고 추가적인 제1 소프트 디코딩 동작이 수행될 때 빈 라벨 버퍼 영역(222)에 저장된 시작 빈 라벨 코드워드를 복사하여 백업 버퍼 영역(223)에 저장하고, 추가적인 제2 소프트 디코딩 동작 시 백업 버퍼 영역(223)에 저장된 시작 빈 라벨 코드워드를 복사하여 빈 라벨 버퍼 영역(222)에 저장할 수 있다.
도 3은 도 1에 도시된 반도체 메모리 장치를 설명하기 위한 블록도이다. 도 4는 도 3에 도시된 메모리 블록을 설명하기 위한 회로도이다.
도 3을 참조하면, 본 발명의 실시예에 따른 반도체 메모리 장치는 제1 내지 제m 메모리 블록들(MB1~MBm)을 포함하는 메모리 어레이(110), 메모리 블록들(MB1~MBm)의 선택된 페이지에 포함된 메모리 셀들의 프로그램 동작 및 리드 동작을 수행하도록 구성된 주변회로(PERI)를 포함한다. 주변회로(PERI)는 제어 회로(120), 전압 공급 회로(130), 페이지 버퍼 그룹(140), 컬럼 디코더(150) 및 입출력 회로(160)를 포함한다.
도 4를 참조하면, 각 메모리 블록은 비트라인들(BL1~BLk)과 공통 소스 라인(CSL) 사이에 연결된 다수의 스트링들(ST1~STk)을 포함한다. 즉, 스트링들(ST1~STk)은 대응하는 비트 라인들(BL1~BLk)과 각각 연결되고 공통 소스 라인(CSL)과 공통으로 연결된다. 각각의 스트링(ST1)은 소스가 공통 소스 라인(CSL)에 연결되는 소스 셀렉트 트랜지스터(SST), 복수의 메모리 셀들(C01~Cn1), 그리고 드레인이 비트라인(BL1)에 연결되는 드레인 셀렉트 트랜지스터(DST)를 포함한다. 메모리 셀들(C01~Cn1)은 셀렉트 트랜지스터들(SST, DST) 사이에 직렬로 연결된다. 소스 셀렉트 트랜지스터(SST)의 게이트는 소스 셀렉트 라인(SSL)에 연결되고, 메모리 셀들(C01~Cn1)의 게이트들은 워드라인들(WL0~WLn)에 각각 연결되며, 드레인 셀렉트 트랜지스터(DST)의 게이트는 드레인 셀렉트 라인(DSL)에 연결된다.
메모리 블록에 포함된 메모리 셀들은 물리적 페이지 단위 또는 논리적 페이지 단위로 구분할 수 있다. 예를 들어, 하나의 워드라인(예, WL0)에 연결된 메모리 셀들(C01~C0k)이 하나의 물리적 페이지(PAGE0)를 구성한다. 이러한 페이지는 프로그램 동작 또는 리드 동작의 기본 단위가 된다.
제어 회로(120)는 외부로부터 입출력 회로(160)를 통해 입력되는 커맨드(CMD)에 응답하여 프로그램 동작 또는 리드 동작을 수행하기 위해 필요한 전압을 생성하기 위한 전압 제어 신호(VCON)를 출력하고, 동작의 종류에 따라 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)을 제어하기 위한 PB 제어 신호(PBCON)를 출력한다. 또한, 제어 회로(120)는 입출력 회로(160)를 통해 외부로부터 입력되는 어드레스 신호(ADD)에 응답하여 로우 어드레스 신호(RADD)와 컬럼 어드레스 신호(CADD)를 출력한다.
전압 공급 회로(130)는 제어 회로(120)의 전압 제어 신호(VCON)에 응답하여 메모리 셀들의 프로그램 동작, 리드 동작 및 소거 동작에 필요한 동작 전압들을 선택된 메모리 블록의 드레인 셀렉트 라인(DSL), 워드라인들(WL0~WLn) 및 소스 셀렉트 라인(SSL)를 포함하는 로컬 라인들로 공급한다. 이러한 전압 공급 회로(130)는 전압 생성 회로 및 로우 디코더를 포함한다.
전압 생성 회로는 제어 회로(120)의 전압 제어 신호(VCON)에 응답하여 메모리 셀들의 프로그램 동작, 리드 동작, 또는 소거 동작에 필요한 동작 전압들을 글로벌 라인들로 출력한다.
로우 디코더는 제어 회로(120)의 로우 어드레스 신호들(RADD)에 응답하여, 전압 생성 회로에서 글로벌 라인들로 출력된 동작 전압들이 메모리 어레이(110)에서 선택된 메모리 블록의 로컬 라인들(DSL, WL0~WLn, SSL)로 전달될 수 있도록 글로벌 라인들과 로컬 라인들(DSL, WL0~WLn, SSL)을 연결한다.
페이지 버퍼 그룹(140)은 비트라인들(BL1~BLk)을 통해 메모리 어레이(110)와 연결되는 다수의 페이지 버퍼들(PB1~PBk)을 각각 포함한다. 페이지 버퍼 그룹(140)의 페이지 버퍼들(PB1~PBk)은 제어 회로(120)의 PB 제어 신호(PBCON)에 응답하여 메모리 셀들(C01~C0k)에 데이터를 저장하기 위하여 입력되는 데이터에 따라 비트라인들(BL1~BLk)을 선택적으로 프리차지하거나, 메모리 셀들로부터 데이터를 독출하기 위하여 비트라인들(BL1~BLk)의 전압을 센싱한다.
컬럼 디코더(150)는 제어 회로(120)에서 출력된 컬럼 어드레스 신호(CADD)에 응답하여 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)을 선택한다. 즉, 컬럼 디코더(150)는 메모리 셀들에 저장될 데이터를 컬럼 어드레스 신호(CADD)에 응답하여 순차적으로 페이지 버퍼들(PB1~PBk)로 전달한다. 또한, 리드 동작에 의해 페이지 버퍼들(PB1~PBk)에 래치된 메모리 셀들의 데이터가 외부로 출력될 수 있도록 컬럼 어드레스 신호(CADD)에 응답하여 순차적으로 페이지 버퍼들(PB1~PBk)을 선택한다.
입출력 회로(160)는 프로그램 동작 시 메모리 셀들에 저장하기 위해 외부로부터 입력된 데이터를 페이지 버퍼 그룹(140)으로 입력하기 위하여 제어 회로(120)의 제어에 따라 데이터를 컬럼 디코더(150)에 전달한다. 컬럼 디코더(150)는 입출력 회로(160)로부터 전달된 데이터를 페이지 버퍼 그룹(140)의 페이지 버퍼들(PB1~PBk)로 전달하면 페이지 버퍼들(PB1~PBk)은 입력된 데이터를 내부의 래치 회로에 저장한다. 또한, 리드 동작 시 입출력 회로(160)는 페이지 버퍼 그룹(140)의 페이지 버퍼들(PB1~PBk)로부터 컬럼 디코더(150)를 통해 전달된 데이터를 외부로 출력한다.
상술한 반도체 메모리 장치(100)는 리드 동작 시 하드 디시젼 리드 동작을 통해 하드 디시젼 데이터를 출력하고, 소프트 디시젼 리드 동작을 통해 소프트 디시젼 데이터를 출력할 수 있다. 이때 하드 디시젼 리드 동작 시 워드라인들에 인가되는 리드 전압은 소프트 디시젼 리드 동작 시 워드라인들에 인가되는 리드 전압과 상이할 수 있다.
도 5는 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 6은 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 문턱 전압 분포도이다.
도 1 내지 도 6을 참조하여, 본 발명의 실시 예에 따른 메모리 시스템의 동작 방법을 설명하면 다음과 같다.
메모리 시스템의 동작 방법은 제1 ECC 디코딩 단계(S510)로 구성되며, 제1 ECC 디코딩 결과 실패할 경우 제2 ECC 디코딩 단계(S520)를 수행하도록 구성될 수 있다.
제1 ECC 디코딩 단계(S510)는 소프트 디시젼 ECC 디코딩 단계일 수 있다. 제1 ECC 디코딩 단계(S510)는 단계 S511 내지 단계 S513로 구성될 수 있다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제1 리드 동작(S511)을 수행하도록 제어한다.
반도체 메모리 장치(100)의 제어 로직(120)은 입출력 회로(160)를 통해 컨트롤러(200)로부터 수신된 커맨드(CMD), 어드레스(ADD)에 응답하여 제1 리드 동작을 수행하기 위해 필요한 전압 예를 들어 소프트 디시젼 리드 전압 및 패스 전압을 생성하기 위한 전압 제어 신호(VCON)를 출력한다. 전압 공급 회로(130)는 제어 회로(120)의 전압 제어 신호(VCON)에 응답하여 소프트 디시젼 리드 전압 및 패스 전압을 선택된 메모리 블록(예를 들어 MB1)의 워드라인들(WLs; WL0~WLn)로 공급한다.
제어 회로(120)는 컨트롤러(200)로부터 수신된 커맨드(CMD)에 응답하여 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)을 제어하기 위한 PB 제어 신호(PBCON)를 출력한다. 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)은 PB 제어 신호(PBCON)에 응답하여 대응하는 비트라인들(BL1 내지 BLk)의 전위 레벨 또는 전류량을 센싱하여 소프트 디시젼 데이터를 센싱한다. 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제1 ECC 디코딩 동작을 수행한다(S512). 제1 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제1 ECC 디코딩 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다.
이 후, 제1 ECC 디코딩 동작의 성공 여부를 판별한다(S513). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다. 예를 들어, ECC 디코더(212)는 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터 및 패리티 검사 행렬(Parity Check Matrix)을 이용하여, 소프트 디시젼 ECC 디코딩된 소프트 리드 데이터의 에러가 정정되었는지 판별한다. 예를 들어, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')일 때, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터는 올바른 데이터인 것으로 판별될 수 있다. 반면, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')이 아닐 때, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터는 올바른 데이터가 아닌 것으로 판별될 수 있다.
상기 단계 S513의 판별 결과, 제1 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S550).
단계 S513의 판별 결과, 소프트 디시젼 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 제2 ECC 디코딩 단계(S540)를 수행한다. 제2 ECC 디코딩 단계(S540)는 추가적인 소프트 디시젼 ECC 디코딩 단계일 수 있다. 제2 ECC 디코딩 단계(S540)는 제1 추가 소프트 디코딩 단계(S520) 및 제2 추가 소프트 디코딩 단계(S530)을 포함하여 구성될 수 있다.
제1 추가 소프트 디코딩 단계(S520)는 소프트 디시젼 리드 전압을 변경하여 새로운 소프트 디시젼 데이터를 리드하고, 새로운 소프트 디시젼 데이터를 기초로 하여 소프트 디시젼 디코딩 동작을 수행하되, 디코딩 동작이 실패로 판단될 경우 소프트 디시젼 리드 전압을 제1 방향으로 변동시켜 새로운 소프트 디시젼 데이터를 리드하여 소프트 디시젼 디코딩 동작을 재수행할 수 있다.
제1 추가 소프트 디코딩 단계(S520)는 단계 S521 내지 단계 S525로 구성될 수 있다.
컨트롤러(200)는 시작 소프트 디시젼 리드 전압을 다수의 소프트 디시젼 리드 전압들(도 6의 V1 내지 V7) 중 하나로 설정하고(예를 들어 V4로 설정), 이에 대응하는 빈 라벨 코드워드(Bin Label codeword; 0 내지 6)를 ECC 버퍼(221)의 빈 라벨 버퍼 영역(222)에 저장한다. 또한 ECC 버퍼(221)에 저장된 빈 라벨 코드워드(Bin Label codeword)를 백업 버퍼 영역(223)에 복사하여 저장한다(S521). 이로 인하여 백업 버퍼 영역(223)에 시작 소프트 디시젼 리드 전압에 대응하는 빈 라벨 코드워드(예를 들어 3)가 저장된다. 다수의 소프트 디시젼 리드 전압들(도 6의 V1 내지 V7)은 서로 인접한 두 개의 프로그램 상태들(PV A 및 PV B) 사이의 전압 값을 갖는 리드 전압들이다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제2 리드 동작(S522)을 수행하도록 제어한다. 제2 리드 동작(S522)은 소프트 디시젼 리드 전압을 새로운 소프트 디시젼 리드 전압(예를 들어 V4)으로 설정하여 상술한 제1 리드 동작(S511)과 유사하게 진행될 수 있다. 제2 리드 동작 결과 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제2 ECC 디코딩 동작을 수행한다(S523). 제2 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제2 리드 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다. 제2 ECC 디코딩 동작은 앞서 설명한 제1 ECC 디코딩 동작과 유사하므로 상세한 설명은 생략하도록 한다.
이 후, 제2 ECC 디코딩 동작의 성공 여부를 판별한다(S524). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다.
상기 단계 S524의 판별 결과, 제2 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S550).
상기 단계 S524의 판별 결과, 제2 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 상술한 제2 리드 동작(S522) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인지 확인한다(S525). 마지막 소프트 리드 전압은 제1 방향의 마지막 소프트 리드 전압(V7)일 수 있다. 상기 단계 S525의 판별 결과, 마지막 소프트 리드 전압이 아니라고 판별될 경우(아니오), 소프트 디시젼 리드 전압을 제1 방향으로 상승시켜 새로운 소프트 디시젼 리드 전압(예를 들어 V5)을 설정하고 상술한 제2 리드 동작(S522)부터 재수행한다. 이 경우, 새로운 소프트 디시젼 리드 전압(예를 들어 V5)에 대응하는 빈 라벨 코드워드가 빈 라벨 버퍼 영역(222)에 업데이트된다.
상기 단계 S525의 판별 결과, 상술한 제2 리드 동작(S522) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인 것으로 판별될 경우(예), 제2 추가 소프트 디코딩 단계(S530)를 수행한다.
제2 추가 소프트 디코딩 단계(S530)는 제1 추가 소프트 디코딩 단계(S520)와 같이 소프트 디시젼 리드 전압을 변경하여 새로운 소프트 디시젼 데이터를 리드하고, 새로운 소프트 디시젼 데이터를 기초로 하여 소프트 디시젼 디코딩 동작을 수행하되, 디코딩 동작이 실패로 판단될 경우 소프트 디시젼 리드 전압을 제1 방향과 반대 방향인 제2 방향으로 변동시켜 새로운 소프트 디시젼 데이터를 리드하여 소프트 디시젼 디코딩 동작을 재수행할 수 있다.
제2 추가 소프트 디코딩 단계(S530)는 단계 S531 내지 단계 S535로 구성될 수 있다.
컨트롤러(200)는 백업 버퍼 영역(223)에 저장된 시작 소프트 디시젼 리드 전압에 대응하는 빈 라벨 코드워드(예를 들어 3)를 복사하여 빈 라벨 버퍼 영역(222)에 저장하여 시작 빈 라벨 코드워드를 복원한다(S531). 이로 인하여 제2 추가 소프트 디코딩 단계(S530)는 이전 수행된 제1 추가 소프트 디코딩 단계(S520)에서 마지막 사용된 리드 전압에서부터 제2 방향으로 리드 전압을 감소시켜 수행되는 리드 동작 및 디코딩 동작을 스킵할 수 있으며, 복원된 시작 빈 라벨 코드워드를 이용하여 시작 소프트 디시젼 리드 전압(예를 들어 V4)을 설정하고, 시작 소프트 디시젼 리드 전압에서 부터 제2 방향으로 리드 전압을 감소시켜 수행되는 리드 동작 및 디코딩 동작을 수행할 수 있다. 이로 인하여 제2 추가 소프트 디코딩 단계(S530)는 제1 추가 소프트 디코딩 단계(S520)와 중복되는 리드 동작 및 디코딩 동작이 스킵되어 동작 시간이 개선된다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제3 리드 동작(S532)을 수행하도록 제어한다. 제3 리드 동작(S532)은 소프트 디시젼 리드 전압을 새로운 소프트 디시젼 리드 전압(예를 들어 V4)으로 설정하여 상술한 제2 리드 동작(S521)과 유사하게 진행될 수 있다. 제3 리드 동작 결과 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제3 ECC 디코딩 동작을 수행한다(S533). 제3 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제3 리드 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다. 제3 ECC 디코딩 동작은 앞서 설명한 제1 ECC 디코딩 동작과 유사하므로 상세한 설명은 생략하도록 한다.
이 후, 제3 ECC 디코딩 동작의 성공 여부를 판별한다(S534). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다.
상기 단계 S534의 판별 결과, 제3 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S550).
상기 단계 S534의 판별 결과, 제3 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 상술한 제3 리드 동작(S532) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인지 확인한다(S535). 마지막 소프트 리드 전압은 제2 방향의 마지막 소프트 리드 전압(V1)일 수 있다. 상기 단계 S535의 판별 결과, 마지막 소프트 리드 전압이 아니라고 판별될 경우(아니오), 소프트 디시젼 리드 전압을 제2 방향으로 감소시켜 새로운 소프트 디시젼 리드 전압(예를 들어 V3)을 설정하고 상술한 제3 리드 동작(S532)부터 재수행한다. 이 경우, 새로운 소프트 디시젼 리드 전압(예를 들어 V3)에 대응하는 빈 라벨 코드워드가 빈 라벨 버퍼 영역(222)에 업데이트된다.
상기 단계 S535의 판별 결과, 상술한 제3 리드 동작(S532) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인 것으로 판별될 경우(예), 리드 동작이 실패한 것으로 판단(S560)하고 종료한다.
도 7은 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법을 설명하기 위한 순서도이다.
도 1 내지 도 4, 도 6 및 도 7을 참조하여, 본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법을 설명하면 다음과 같다.
메모리 시스템의 동작 방법은 제1 ECC 디코딩 단계(S710)로 구성되며, 제1 ECC 디코딩 결과 실패할 경우 제2 ECC 디코딩 단계(S720)를 수행하도록 구성될 수 있다. 또한 제2 ECC 디코딩 결과 실패할 경우 추가적인 제3 ECC 디코딩 단계(S750)를 수행하도록 구성될 수 있다.
제1 ECC 디코딩 단계(S710)는 하드 디시젼 ECC 디코딩 단계일 수 있다. 제1 ECC 디코딩 단계(S710)는 단계 S711 내지 단계 S713로 구성될 수 있다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제1 리드 동작(S711)을 수행하도록 제어한다.
반도체 메모리 장치(100)의 제어 로직(120)은 입출력 회로(160)를 통해 컨트롤러(200)로부터 수신된 커맨드(CMD), 어드레스(ADD)에 응답하여 제1 리드 동작을 수행하기 위해 필요한 전압, 예를 들어 하드 디시젼 리드 전압 및 패스 전압을 생성하기 위한 전압 제어 신호(VCON)를 출력한다. 전압 공급 회로(130)는 제어 회로(120)의 전압 제어 신호(VCON)에 응답하여 하드 디시젼 리드 전압 및 패스 전압을 선택된 메모리 블록(예를 들어 MB1)의 워드라인들(WLs; WL0~WLn)로 공급한다.
제어 회로(120)는 컨트롤러(200)로부터 수신된 커맨드(CMD)에 응답하여 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)을 제어하기 위한 PB 제어 신호(PBCON)를 출력한다. 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)은 PB 제어 신호(PBCON)에 응답하여 대응하는 비트라인들(BL1 내지 BLk)의 전위 레벨 또는 전류량을 센싱하여 하드 디시젼 데이터를 센싱한다. 센싱된 하드 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 메모리(220)에 저장된 하드 디시젼 데이터(DATA)에 대한 제1 ECC 디코딩 동작을 수행한다(S712). 제1 ECC 디코딩 동작은 하드 디시젼 ECC 디코딩 동작일 수 있으며, 하드 디시젼 데이터(DATA)를 소정 길이의 코드워드로 변환한 후 에러 정정 코드를 이용하여 하드 디시젼 ECC 디코딩 동작을 수행할 수 있다.
이 후, 제1 ECC 디코딩 동작의 성공 여부를 판별한다(S713). 즉, 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터의 에러가 정정되었는지 판별된다. 예를 들어, ECC 디코더(212)는 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터 및 패리티 검사 행렬(Parity Check Matrix)을 이용하여, 하드 디시젼 ECC 디코딩된 하드 리드 데이터의 에러가 정정되었는지 판별한다. 예를 들어, 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')일 때, 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터는 올바른 데이터인 것으로 판별될 수 있다. 반면, 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')이 아닐 때, 하드 디시젼 ECC 디코딩된 하드 디시젼 데이터는 올바른 데이터가 아닌 것으로 판별될 수 있다.
상기 단계 S713의 판별 결과, 제1 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 하드 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S760). 하드 디시젼 ECC 디코딩된 하드 리드 데이터는 에러 정정된 데이터로서 메모리 컨트롤러(200) 외부로 출력되거나 메모리 컨트롤러(200)의 내부에서 사용될 수 있다.
상기 단계 S713의 판별 결과, 제1 ECC 디코딩 동작이 실패한 것으로 판별될 경우(아니오), 제2 ECC 디코딩 단계(S720)를 수행한다.
제2 ECC 디코딩 단계(S720)는 소프트 디시젼 ECC 디코딩 단계일 수 있다. 제2 ECC 디코딩 단계(S720)는 단계 S721 내지 단계 S723로 구성될 수 있다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제2 리드 동작(S721)을 수행하도록 제어한다.
반도체 메모리 장치(100)의 제어 로직(120)은 입출력 회로(160)를 통해 컨트롤러(200)로부터 수신된 커맨드(CMD), 어드레스(ADD)에 응답하여 제2 리드 동작을 수행하기 위해 필요한 전압 예를 들어 소프트 디시젼 리드 전압 및 패스 전압을 생성하기 위한 전압 제어 신호(VCON)를 출력한다. 소프트 디시젼 리드 전압은 제1 리드 동작 시 사용된 하드 디시젼 리드 전압과 상이할 수 있다. 전압 공급 회로(130)는 제어 회로(120)의 전압 제어 신호(VCON)에 응답하여 소프트 디시젼 리드 전압 및 패스 전압을 선택된 메모리 블록(예를 들어 MB1)의 워드라인들(WLs; WL0~WLn)로 공급한다.
제어 회로(120)는 컨트롤러(200)로부터 수신된 커맨드(CMD)에 응답하여 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)을 제어하기 위한 PB 제어 신호(PBCON)를 출력한다. 페이지 버퍼 그룹(140)에 포함된 페이지 버퍼들(PB1~PBk)은 PB 제어 신호(PBCON)에 응답하여 대응하는 비트라인들(BL1 내지 BLk)의 전위 레벨 또는 전류량을 센싱하여 소프트 디시젼 데이터를 센싱한다. 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제2 ECC 디코딩 동작을 수행한다(S722). 제2 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제1 ECC 디코딩 동작 시 리드된 하드 디시젼 데이터와 제2 ECC 디코딩 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다.
하드 디시젼 데이터와 소프트 디시젼 데이터는 서로 상이한 리드 전압 즉, 하드 디시젼 리드 전압과 소프트 디시젼 리드 전압을 이용하여 리드된 데이터들이므로, 데이터 값이 서로 상이할 수 있다. 하드 디시젼 리드 전압에 따른 리드 동작에 더하여, 소프트 디시젼 리드 전압에 따른 추가적인 리드 동작이 수행되면, 메모리 셀들(C01 내지 C0n)의 문턱 전압들에 대한 추가적인 정보, 즉 제2 리드 동작에 의하여 리드된 소프트 디시젼 데이터에 신뢰도를 부가할 수 있는 정보인 LLR(예를 들어, 테일 셀들에 대한 정보)이 획득될 수 있다.
상기 추가적인 정보가 획득되면, 상기 메모리 셀들(C01 내지 C0n)이 저장하는 데이터가 제1 상태(예를 들어, '1') 또는 제2 상태(예를 들어, '0')일 확률 또는 우도비(likelihood ratio)의 정확성이 개선될 수 있다. 즉, 디코딩 동작의 신뢰성이 개선될 수 있다.
이 후, 제2 ECC 디코딩 동작의 성공 여부를 판별한다(S723). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다. 예를 들어, ECC 디코더(212)는 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터 및 패리티 검사 행렬(Parity Check Matrix)을 이용하여, 소프트 디시젼 ECC 디코딩된 소프트 리드 데이터의 에러가 정정되었는지 판별한다. 예를 들어, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')일 때, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터는 올바른 데이터인 것으로 판별될 수 있다. 반면, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터와 패리티 검사 행렬의 연산 결과가 영행렬('0')이 아닐 때, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터는 올바른 데이터가 아닌 것으로 판별될 수 있다.
상기 단계 S723의 판별 결과, 제2 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S760).
단계 S723의 판별 결과, 소프트 디시젼 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 제3 ECC 디코딩 단계(S750)를 수행한다. 제3 ECC 디코딩 단계(S750)는 추가적인 소프트 디시젼 ECC 디코딩 단계일 수 있다. 제3 ECC 디코딩 단계(S750)는 제1 추가 소프트 디코딩 단계(S730) 및 제2 추가 소프트 디코딩 단계(S740)을 포함하여 구성될 수 있다.
제1 추가 소프트 디코딩 단계(S730)는 소프트 디시젼 리드 전압을 변경하여 새로운 소프트 디시젼 데이터를 리드하고, 하드 디시젼 데이터와 새로운 소프트 디시젼 데이터를 기초로 하여 소프트 디시젼 디코딩 동작을 수행하되, 디코딩 동작이 실패로 판단될 경우 소프트 디시젼 리드 전압을 제1 방향으로 변동시켜 새로운 소프트 디시젼 데이터를 리드하여 소프트 디시젼 디코딩 동작을 재수행할 수 있다.
제1 추가 소프트 디코딩 단계(S730)는 단계 S731 내지 단계 S735로 구성될 수 있다.
컨트롤러(200)는 시작 소프트 디시젼 리드 전압을 다수의 소프트 디시젼 리드 전압들(도 6의 V1 내지 V7) 중 하나로 설정하고(예를 들어 V4로 설정), 이에 대응하는 빈 라벨 코드워드(Bin Label codeword; 0 내지 6)를 ECC 버퍼(221)의 빈 라벨 버퍼 영역(222)에 저장한다. 또한 ECC 버퍼(221)에 저장된 빈 라벨 코드워드(Bin Label codeword)를 백업 버퍼 영역(223)에 복사하여 저장한다(S731). 이로 인하여 백업 버퍼 영역(223)에 시작 소프트 디시젼 리드 전압에 대응하는 빈 라벨 코드워드(예를 들어 3)가 저장된다. 다수의 소프트 디시젼 리드 전압들(도 6의 V1 내지 V7)은 서로 인접한 두 개의 프로그램 상태들(PV A 및 PV B) 사이의 전압 값을 갖는 리드 전압들이다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제3 리드 동작(S732)을 수행하도록 제어한다. 제3 리드 동작(S732)은 소프트 디시젼 리드 전압을 새로운 소프트 디시젼 리드 전압(예를 들어 V4)으로 설정하여 상술한 제2 리드 동작(S721)과 유사하게 진행될 수 있다. 제3 리드 동작 결과 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제3 ECC 디코딩 동작을 수행한다(S733). 제3 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제1 ECC 디코딩 동작 시 리드된 하드 디시젼 데이터와 제3 리드 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다. 제3 ECC 디코딩 동작은 앞서 설명한 제2 ECC 디코딩 동작과 유사하므로 상세한 설명은 생략하도록 한다.
이 후, 제3 ECC 디코딩 동작의 성공 여부를 판별한다(S734). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다.
상기 단계 S734의 판별 결과, 제3 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S760).
상기 단계 S734의 판별 결과, 제3 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 상술한 제3 리드 동작(S732) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인지 확인한다(S735). 마지막 소프트 리드 전압은 제1 방향의 마지막 소프트 리드 전압(V7)일 수 있다. 상기 단계 S735의 판별 결과, 마지막 소프트 리드 전압이 아니라고 판별될 경우(아니오), 소프트 디시젼 리드 전압을 제1 방향으로 상승시켜 새로운 소프트 디시젼 리드 전압(예를 들어 V5)을 설정하고 상술한 제3 리드 동작(S732)부터 재수행한다. 이 경우, 새로운 소프트 디시젼 리드 전압(예를 들어 V5)에 대응하는 빈 라벨 코드워드가 빈 라벨 버퍼 영역(222)에 업데이트된다.
상기 단계 S735의 판별 결과, 상술한 제3 리드 동작(S732) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인 것으로 판별될 경우(예), 제2 추가 소프트 디코딩 단계(S740)를 수행한다.
제2 추가 소프트 디코딩 단계(S740)는 제1 추가 소프트 디코딩 단계(S730)와 같이 소프트 디시젼 리드 전압을 변경하여 새로운 소프트 디시젼 데이터를 리드하고, 하드 디시젼 데이터와 새로운 소프트 디시젼 데이터를 기초로 하여 소프트 디시젼 디코딩 동작을 수행하되, 디코딩 동작이 실패로 판단될 경우 소프트 디시젼 리드 전압을 제1 방향과 반대 방향인 제2 방향으로 변동시켜 새로운 소프트 디시젼 데이터를 리드하여 소프트 디시젼 디코딩 동작을 재수행할 수 있다.
제2 추가 소프트 디코딩 단계(S740)는 단계 S741 내지 단계 S745로 구성될 수 있다.
컨트롤러(200)는 백업 버퍼 영역(223)에 저장된 시작 소프트 디시젼 리드 전압에 대응하는 빈 라벨 코드워드(예를 들어 3)를 복사하여 빈 라벨 버퍼 영역(222)에 저장하여 시작 빈 라벨 코드워드를 복원한다(S741). 이로 인하여 제2 추가 소프트 디코딩 단계(S740)는 이전 수행된 제1 추가 소프트 디코딩 단계(S730)에서 마지막 사용된 리드 전압에서부터 제2 방향으로 리드 전압을 감소시켜 수행되는 리드 동작 및 디코딩 동작을 스킵할 수 있으며, 복원된 시작 빈 라벨 코드워드를 이용하여 시작 소프트 디시젼 리드 전압(예를 들어 V4)을 설정하고, 시작 소프트 디시젼 리드 전압에서 부터 제2 방향으로 리드 전압을 감소시켜 수행되는 리드 동작 및 디코딩 동작을 수행할 수 있다. 이로 인하여 제2 추가 소프트 디코딩 단계(S740)는 제1 추가 소프트 디코딩 단계(S730)와 중복되는 리드 동작 및 디코딩 동작이 스킵되어 동작 시간이 개선된다.
컨트롤러(200)는 반도체 메모리 장치(100)가 제4 리드 동작(S742)을 수행하도록 제어한다. 제4 리드 동작(S742)은 소프트 디시젼 리드 전압을 새로운 소프트 디시젼 리드 전압(예를 들어 V4)으로 설정하여 상술한 제2 리드 동작(S721)과 유사하게 진행될 수 있다. 제4 리드 동작 결과 센싱된 소프트 디시젼 데이터(DATA)는 컬럼 디코더(150) 및 입출력 회로(160)를 통해 컨트롤러(200)의 메모리(220)로 출력된다.
ECC 유닛(210)의 ECC 디코더(212)는 제4 ECC 디코딩 동작을 수행한다(S743). 제4 ECC 디코딩 동작은 소프트 디시젼 ECC 디코딩 동작일 수 있다. 소프트 디시젼 ECC 디코딩 동작은 제1 ECC 디코딩 동작 시 리드된 하드 디시젼 데이터와 제4 리드 동작 시 리드된 소프트 디시젼 데이터에 기초하여 수행될 수 있다. 제4 ECC 디코딩 동작은 앞서 설명한 제2 ECC 디코딩 동작과 유사하므로 상세한 설명은 생략하도록 한다.
이 후, 제4 ECC 디코딩 동작의 성공 여부를 판별한다(S744). 즉, 소프트 디시젼 ECC 디코딩된 소프트 디시젼 데이터의 에러가 정정되었는지 판별된다.
상기 단계 S744의 판별 결과, 제4 ECC 디코딩 동작이 성공한 것으로 판별된 경우(예), 리드된 소프트 디시젼 데이터의 에러 정정 디코딩이 성공한 것으로 판별되어 리드 동작이 성공한 것으로 판별된다(S760).
상기 단계 S744의 판별 결과, 제4 ECC 디코딩이 실패한 것으로 판별된 경우(아니오), 상술한 제4 리드 동작(S742) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인지 확인한다(S745). 마지막 소프트 리드 전압은 제2 방향의 마지막 소프트 리드 전압(V1)일 수 있다. 상기 단계 S745의 판별 결과, 마지막 소프트 리드 전압이 아니라고 판별될 경우(아니오), 소프트 디시젼 리드 전압을 제2 방향으로 감소시켜 새로운 소프트 디시젼 리드 전압(예를 들어 V3)을 설정하고 상술한 제4 리드 동작(S742)부터 재수행한다. 이 경우, 새로운 소프트 디시젼 리드 전압(예를 들어 V3)에 대응하는 빈 라벨 코드워드가 빈 라벨 버퍼 영역(222)에 업데이트된다.
상기 단계 S745의 판별 결과, 상술한 제4 리드 동작(S742) 시 사용된 소프트 디시젼 리드 전압이 마지막 소프트 리드 전압인 것으로 판별될 경우(예), 리드 동작이 실패한 것으로 판단(S770)하고 종료한다.
상술한 본원 발명의 실시 예에 따르면 소프트 디시젼 디코딩 동작 이전에 하드 디시젼 디코딩 동작을 수행하는 것으로 설명하였으나, 이에 한정되는 것은 아니며 하디 디시젼 디코딩 동작없이 소프트 디시젼 디코딩 동작을 수행할 수 있다. 또한 소프트 디시젼 디코딩 동작 및 추가적인 소프트 디시젼 디코딩 동작을 수행한 후 하드 디시젼 디코딩 동작을 수행할 수 있다.
도 8은 메모리 시스템의 다른 실시 예를 설명하기 위한 블록도이다.
도 8을 참조하면, 메모리 시스템(1000)은 반도체 메모리 장치(100) 및 컨트롤러(1100)를 포함한다.
반도체 메모리 장치(100)는 도 1 및 도 3을 참조하여 설명된 바와 마찬가지로 구성되고, 동작할 수 있다. 이하, 중복되는 설명은 생략된다.
컨트롤러(1100)는 호스트(Host) 및 반도체 메모리 장치(100)에 연결된다. 호스트(Host)로부터의 요청에 응답하여, 컨트롤러(1100)는 반도체 메모리 장치(100)를 액세스하도록 구성된다. 예를 들면, 컨트롤러(1100)는 반도체 메모리 장치(100)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 컨트롤러(1100)는 반도체 메모리 장치(100) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(1100)는 반도체 메모리 장치(100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
컨트롤러(1100)는 램(1110, Random Access Memory), 프로세싱 유닛(1120, processing unit), 호스트 인터페이스(1130, host interface), 메모리 인터페이스(1140, memory interface), 에러 정정 블록(1150) 및 ECC 버퍼(1160)를 포함한다.
램(1110)은 프로세싱 유닛(1120)의 동작 메모리, 반도체 메모리 장치(100) 및 호스트(Host) 사이의 캐시 메모리, 그리고 반도체 메모리 장치(100) 및 호스트(Host) 사이의 버퍼 메모리 중 적어도 하나로서 이용된다.
프로세싱 유닛(1120)은 컨트롤러(1100)의 제반 동작을 제어한다.
호스트 인터페이스(1130)는 호스트(Host) 및 컨트롤러(1100) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예시적인 실시 예로서, 컨트롤러(1100)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜, 사유(private) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 호스트(Host)와 통신하도록 구성된다. 메모리 인터페이스(1140)는 반도체 메모리 장치(100)와 인터페이싱한다. 예를 들면, 메모리 인터페이스는 낸드 인터페이스 또는 노어 인터페이스를 포함한다.
에러 정정 블록(1150)은 에러 정정 코드(ECC, Error Correcting Code)를 이용하여 반도체 메모리 장치(100)로부터 수신된 데이터의 에러를 검출하고, 정정하도록 구성된다. 프로세싱 유닛(1120)은 에러 정정 블록(1150)의 에러 검출 결과에 따라 읽기 전압을 조절하고, 재 읽기를 수행하도록 반도체 메모리 장치(100)를 제어할 것이다. 예시적인 실시 예로서, 에러 정정 블록은 컨트롤러(1100)의 구성 요소로서 제공될 수 있다. 에러 정정 블록(1150)은 도 2의 ECC 유닛(210)에 대응하는 구성요소일 수 있다.
ECC 버퍼(1160)는 에러 정정 블록(1150)의 디코딩 동작 시 빈 라벨 코드워드를 저장할 수 있으며, 시작 빈 라벨 코드워드를 백업하여 저장하고, 새로운 소프트 디코딩 동작 시 백업된 시작 빈 라벨 코드워드를 이용하여 시작 빈 라벨 코드워드를 복원할 수 있다. ECC 버퍼(1160)는 도 2의 ECC 버퍼(221)에 대응하는 구성 요소일 수 있다.
컨트롤러(1100) 및 반도체 메모리 장치(100)는 하나의 반도체 메모리 장치로 집적될 수 있다. 예시적인 실시 예로서, 컨트롤러(1100) 및 반도체 메모리 장치(100)는 하나의 반도체 메모리 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(1100) 및 반도체 메모리 장치(100)는 하나의 반도체 메모리 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 것이다.
컨트롤러(1100) 및 반도체 메모리 장치(100)는 하나의 반도체 메모리 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 반도체 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함한다. 메모리 시스템(1000)이 반도체 드라이브(SSD)로 이용되는 경우, 메모리 시스템(1000)에 연결된 호스트(Host)의 동작 속도는 획기적으로 개선된다.
다른 예로서, 메모리 시스템(1000)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공된다.
예시적인 실시 예로서, 반도체 메모리 장치(100) 또는 메모리 시스템(1000)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 반도체 메모리 장치(100) 또는 메모리 시스템(1000)은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
도 9는 도 8의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 9를 참조하면, 메모리 시스템(2000)은 반도체 메모리 장치(2100) 및 컨트롤러(2200)를 포함한다. 반도체 메모리 장치(2100)는 복수의 반도체 메모리 칩들을 포함한다. 복수의 반도체 메모리 칩들은 복수의 그룹들로 분할된다.
도 9에서, 복수의 그룹들은 각각 제 1 내지 제 k 채널들(CH1~CHk)을 통해 컨트롤러(2200)와 통신하는 것으로 도시되어 있다. 각 반도체 메모리 칩은 도 1 및 도 3을 참조하여 설명된 반도체 메모리 장치(100) 중 하나와 마찬가지로 구성되고, 동작할 것이다.
각 그룹은 하나의 공통 채널을 통해 컨트롤러(2200)와 통신하도록 구성된다. 컨트롤러(2200)는 도 8을 참조하여 설명된 컨트롤러(1100)와 마찬가지로 구성되고, 복수의 채널들(CH1~CHk)을 통해 반도체 메모리 장치(2100)의 복수의 메모리 칩들을 제어하도록 구성된다.
도 10은 도 9를 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
도 10을 참조하면, 컴퓨팅 시스템(3000)은 중앙 처리 장치(3100), 램(3200, RAM, Random Access Memory), 사용자 인터페이스(3300), 전원(3400), 시스템 버스(3500), 그리고 메모리 시스템(2000)을 포함한다.
메모리 시스템(2000)은 시스템 버스(3500)를 통해, 중앙처리장치(3100), 램(3200), 사용자 인터페이스(3300), 그리고 전원(3400)에 전기적으로 연결된다. 사용자 인터페이스(3300)를 통해 제공되거나, 중앙 처리 장치(3100)에 의해서 처리된 데이터는 메모리 시스템(2000)에 저장된다.
도 10에서, 반도체 메모리 장치(2100)는 컨트롤러(2200)를 통해 시스템 버스(3500)에 연결되는 것으로 도시되어 있다. 그러나, 반도체 메모리 장치(2100)는 시스템 버스(3500)에 직접 연결되도록 구성될 수 있다. 이때, 컨트롤러(2200)의 기능은 중앙 처리 장치(3100) 및 램(3200)에 의해 수행될 것이다.
도 10에서, 도 9를 참조하여 설명된 메모리 시스템(2000)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템(2000)은 도 8을 참조하여 설명된 메모리 시스템(1000)으로 대체될 수 있다. 예시적인 실시 예로서, 컴퓨팅 시스템(3000)은 도 8 및 도 9를 참조하여 설명된 메모리 시스템들(1000, 2000)을 모두 포함하도록 구성될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100 : 반도체 메모리 장치
110 : 메모리 어레이
120 : 제어 회로
130 : 전압 공급 회로
140 : 페이지 버퍼 그룹
150 : 컬럼 디코더
160 : 입출력 회로
210 : ECC 유닛
211 : ECC 인코더
212 : ECC 디코더
220 : 메모리
221 : ECC 버퍼
222 : 빈 라벨 버퍼 영역
223 : 백업 버퍼 영역
110 : 메모리 어레이
120 : 제어 회로
130 : 전압 공급 회로
140 : 페이지 버퍼 그룹
150 : 컬럼 디코더
160 : 입출력 회로
210 : ECC 유닛
211 : ECC 인코더
212 : ECC 디코더
220 : 메모리
221 : ECC 버퍼
222 : 빈 라벨 버퍼 영역
223 : 백업 버퍼 영역
Claims (23)
- 데이터들이 저장되고, 리드 동작 시 저장된 상기 데이터들을 리드하여 출력하기 위한 반도체 메모리 장치; 및
상기 리드 동작 시 상기 반도체 메모리 장치를 제어하고, 상기 반도체 메모리 장치에서 출력된 상기 데이터들에 대한 제1 및 제2 디코딩 동작을 순차적으로 수행하기 위한 컨트롤러를 포함하며,
상기 컨트롤러는 상기 제2 디코딩 동작 시 빈 라벨 코드워드(Bin Label codeword)를 업데이트하여 저장하되, 상기 빈 라벨 코드워드 중 시작 빈 라벨 코드워드를 백업하여 저장하는 메모리 시스템.
- ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 제1 디코딩 동작은 소프트 디시젼 디코딩 동작인 메모리 시스템.
- ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 반도체 메모리 장치는 상기 제1 디코딩 동작 시 소프트 디시젼 리드 전압을 이용한 리드 동작을 수행하는 메모리 시스템.
- ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 제2 디코딩 동작은 제1 추가 소프트 디코딩 동작 및 제2 추가 소프트 디코딩 동작을 포함하는 메모리 시스템.
- ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈제 4 항에 있어서,
상기 반도체 메모리 장치는 상기 제1 추가 소프트 디코딩 동작 시 시작 리드 전압에서부터 제1 방향으로 상승하는 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하고,
상기 제2 추가 소프트 디코딩 동작 시 상기 시작 리드 전압에서부터 제2 방향으로 감소하는 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하는 메모리 시스템.
- ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈제 5 항에 있어서,
상기 컨트롤러는 상기 제1 및 제2 디코딩 동작을 수행하기 위한 ECC 유닛; 및
상기 제1 추가 소프트 디코딩 동작 시 상기 시작 리드 전압 및 상기 제1 방향으로 상승하는 새로운 리드 전압들에 대응하는 상기 빈 라벨 코드워드를 업데이트하여 저장하고, 상기 시작 리드 전압에 대응하는 상기 시작 빈 라벨 코드워드를 백업하여 저장하기 위한 ECC 버퍼를 포함하는 메모리 시스템.
- ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈제 6 항에 있어서,
상기 ECC 버퍼는 상기 빈 라벨 코드워드를 업데이트하여 저장하기 위한 빈 라벨 버퍼; 및
상기 제1 추가 소프트 디코딩 동작 중 상기 시작 리드 전압을 이용한 상기 리드 동작 시 상기 시작 빈 라벨 코드워드를 백업하는 백업 버퍼를 포함하는 메모리 시스템.
- ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈제 7 항에 있어서,
상기 백업 버퍼는 상기 제2 추가 소프트 디코딩 동작 시 저장된 상기 시작 빈 라벨 코드워드를 상기 빈 라벨 버퍼로 이동시키는 메모리 시스템.
- ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈제 8 항에 있어서,
상기 컨트롤러는 상기 제2 추가 소프트 디코딩 동작 시 상기 빈 라벨 버퍼에 저장된 상기 시작 빈 라벨 코드워드를 기초로 하여 상기 반도체 메모리 장치가 상기 시작 리드 전압에서부터 상기 제2 방향으로 감소하는 상기 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하도록 제어하는 메모리 시스템.
- ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 빈 라벨 코드워드는 상기 제2 디코딩 동작 중 리드 동작 시 얻어진 메모리 셀들별 문턱 전압을 리드 전압에 기초하여 구분한 정보인 메모리 시스템.
- ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈제 1 항에 있어서,
상기 컨트롤러는 상기 제1 디코딩 동작을 수행하기 전에 하디 디시젼 디코딩 동작을 수행하는 메모리 시스템.
- 데이터들이 저장되고, 리드 동작 시 저장된 상기 데이터들을 리드하여 출력하기 위한 반도체 메모리 장치; 및
상기 반도체 메모리 장치에서 출력된 상기 데이터들에 대한 디코딩 동작을 수행하기 위한 컨트롤러를 포함하며,
상기 컨트롤러는 소프트 디시젼 디코딩 동작, 추가 소프트 디시젼 디코딩 동작을 수행하기 위한 ECC 유닛; 및
상기 추가 소프트 디시젼 디코딩 동작 시 빈 라벨 코드워드(Bin Label codeword)를 업데이트하여 저장하되, 상기 빈 라벨 코드워드 중 시작 빈 라벨 코드워드를 백업하여 저장하는 ECC 버퍼를 포함하는 메모리 시스템.
- ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제 12 항에 있어서,
상기 반도체 메모리 장치는 상기 소프트 디시젼 디코딩 동작 시 소프트 디시젼 리드 전압을 이용한 제1 리드 동작을 수행하는 메모리 시스템.
- ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제 12 항에 있어서,
상기 반도체 메모리 장치는 상기 추가 소프트 디코딩 동작 중 제1 추가 소프트 디코딩 동작 시 시작 리드 전압에서부터 제1 방향으로 상승하는 새로운 리드 전압들을 이용한 적어도 한 번의 제2 리드 동작을 수행하고,
상기 제1 추가 소프트 디코딩 동작 후 수행되는 제2 추가 소프트 디코딩 동작 시 상기 시작 리드 전압에서부터 제2 방향으로 감소하는 새로운 리드 전압들을 이용한 적어도 한 번의 제3 리드 동작을 수행하는 메모리 시스템.
- ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈제 14 항에 있어서,
상기 ECC 버퍼는 상기 빈 라벨 코드워드를 업데이트하여 저장하기 위한 빈 라벨 버퍼; 및
상기 제1 추가 소프트 디코딩 동작 중 상기 시작 리드 전압을 이용한 상기 리드 동작 시 상기 시작 빈 라벨 코드워드를 백업하는 백업 버퍼를 포함하는 메모리 시스템.
- ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈제 15 항에 있어서,
상기 백업 버퍼는 상기 제2 추가 소프트 디코딩 동작 시 저장된 상기 시작 빈 라벨 코드워드를 상기 빈 라벨 버퍼로 이동시키는 메모리 시스템.
- ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈제 16 항에 있어서,
상기 컨트롤러는 상기 제2 추가 소프트 디코딩 동작 시 상기 빈 라벨 버퍼에 저장된 상기 시작 빈 라벨 코드워드를 기초로 하여 상기 반도체 메모리 장치가 상기 시작 리드 전압에서부터 상기 제2 방향으로 감소하는 상기 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하도록 제어하는 메모리 시스템.
- ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈제 12 항에 있어서,
상기 ECC 유닛은 상기 소프트 디시젼 디코딩 동작 이전에 하드 디시젼 디코딩 동작을 수행하는 메모리 시스템.
- 소프트 디시젼 디코딩 동작을 수행하는 단계;
상기 소프트 디시젼 디코딩 동작 결과 실패로 판별될 경우, 제1 추가 소프트 디시젼 디코딩 동작을 수행하되, 시작 빈 라벨 코드워드를 포함하는 복수의 빈 라벨 코드워드(Bin Label codeword)들을 업데이트하여 저장하되, 상기 시작 빈 라벨 코드워드는 백업하여 저장하는 단계; 및
상기 제1 추가 소프트 디시젼 디코딩 동작 결과 실패로 판별될 경우, 상기 백업된 시작 빈 레벨 코드워드를 이용하여 제2 추가 소프트 디시젼 디코딩 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작 방법.
- ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈제 19 항에 있어서,
상기 소프트 디시젼 디코딩 동작을 수행하기 이전에 하드 디시젼 디코딩 동작을 수행하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
- ◈청구항 21은(는) 설정등록료 납부시 포기되었습니다.◈제 20 항에 있어서,
상기 제1 추가 소프트 디시젼 디코딩 동작은 시작 리드 전압에서부터 제1 방향으로 상승하는 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하여 소프트 디시젼 데이터들을 리드하고, 리드된 소프트 디시젼 데이터들 및 상기 하드 디시젼 디코딩 동작시 디코딩된 하드 디시젼 데이터들을 기초로 하여 소프트 디시젼 디코딩 동작이 수행되는 메모리 시스템의 동작 방법.
- ◈청구항 22은(는) 설정등록료 납부시 포기되었습니다.◈제 20 항에 있어서,
상기 제2 추가 소프트 디시젼 디코딩 동작은 시작 리드 전압에서부터 제2 방향으로 감소하는 새로운 리드 전압들을 이용한 적어도 한 번의 리드 동작을 수행하여 소프트 디시젼 데이터들을 리드하고, 리드된 소프트 디시젼 데이터들 및 상기 하드 디시젼 디코딩 동작시 디코딩된 하드 디시젼 데이터들을 기초로 하여 소프트 디시젼 디코딩 동작이 수행되는 메모리 시스템의 동작 방법.
- ◈청구항 23은(는) 설정등록료 납부시 포기되었습니다.◈제 22 항에 있어서,
상기 제2 추가 소프트 디시젼 디코딩 동작은 상기 백업된 시작 빈 레벨 코드워드를 이용하여 상기 시작 리드 전압을 설정하는 메모리 시스템의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170147375A KR102389432B1 (ko) | 2017-11-07 | 2017-11-07 | 메모리 시스템 및 그의 동작방법 |
US16/032,515 US10725863B2 (en) | 2017-11-07 | 2018-07-11 | Memory system and method for operating the same |
CN201810873418.1A CN109753376B (zh) | 2017-11-07 | 2018-08-02 | 存储器***及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170147375A KR102389432B1 (ko) | 2017-11-07 | 2017-11-07 | 메모리 시스템 및 그의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190051561A KR20190051561A (ko) | 2019-05-15 |
KR102389432B1 true KR102389432B1 (ko) | 2022-04-25 |
Family
ID=66327324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170147375A KR102389432B1 (ko) | 2017-11-07 | 2017-11-07 | 메모리 시스템 및 그의 동작방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10725863B2 (ko) |
KR (1) | KR102389432B1 (ko) |
CN (1) | CN109753376B (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020047322A (ja) * | 2018-09-14 | 2020-03-26 | キオクシア株式会社 | メモリシステム |
TWI670725B (zh) * | 2018-12-05 | 2019-09-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
KR20200138894A (ko) * | 2019-06-03 | 2020-12-11 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메모리 장치 |
US11747985B2 (en) | 2019-12-06 | 2023-09-05 | SK Hynix Inc. | Memory system, integrated circuit system, and operation method of memory system |
US11322219B2 (en) * | 2019-12-06 | 2022-05-03 | SK Hynix Inc. | Memory system, integrated circuit system, and operation method of memory system |
KR20210128704A (ko) | 2020-04-17 | 2021-10-27 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작 방법 |
US20230281185A1 (en) * | 2020-09-16 | 2023-09-07 | Motorola Solutions, Inc. | Device, system and method for modifying electronic workflows |
US20240054046A1 (en) * | 2022-08-09 | 2024-02-15 | Micron Technology, Inc. | Error-handling management during copyback operations in memory devices |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390002B1 (en) | 2013-01-23 | 2016-07-12 | SK Hynix Inc. | Efficient bin labeling schemes for tracking cells in solid state storage devices |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101406279B1 (ko) * | 2007-12-20 | 2014-06-13 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법 |
US7877724B2 (en) * | 2008-05-09 | 2011-01-25 | Lsi Corporation | Decision tree representation of a function |
CN103295631B (zh) * | 2012-02-22 | 2016-05-18 | 慧荣科技股份有限公司 | 读取快闪存储器中所储存的数据的方法、存储器控制器与*** |
KR20130128685A (ko) * | 2012-05-17 | 2013-11-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR101991905B1 (ko) * | 2012-07-19 | 2019-06-24 | 삼성전자주식회사 | 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템 |
KR102123946B1 (ko) * | 2012-12-28 | 2020-06-17 | 삼성전자주식회사 | 멀티 레벨 셀 메모리 장치 및 그것의 동작방법 |
US9467170B2 (en) * | 2013-05-17 | 2016-10-11 | Marvell World Trade Ltd. | NAND flash memory systems with efficient soft information interface |
KR20140144989A (ko) * | 2013-06-12 | 2014-12-22 | 에스케이하이닉스 주식회사 | 메모리 시스템, 반도체 메모리 장치 및 그것들의 동작 방법 |
KR102127287B1 (ko) * | 2014-02-11 | 2020-06-26 | 삼성전자주식회사 | 메모리 컨트롤러 및 메모리 컨트롤러가 불휘발성 메모리로부터 데이터를 읽는 데이터 읽기 방법 |
KR102321501B1 (ko) * | 2014-05-14 | 2021-11-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 스토리지 장치의 동작 방법 |
KR102265220B1 (ko) * | 2015-03-09 | 2021-06-16 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR20160116913A (ko) * | 2015-03-31 | 2016-10-10 | 에스케이하이닉스 주식회사 | 상태 페일 신호를 출력하는 반도체 메모리 장치 및 그것의 동작 방법 |
KR20170000108A (ko) * | 2015-06-23 | 2017-01-02 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
KR20170068681A (ko) * | 2015-12-09 | 2017-06-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170075065A (ko) * | 2015-12-22 | 2017-07-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 동작 방법 |
-
2017
- 2017-11-07 KR KR1020170147375A patent/KR102389432B1/ko active IP Right Grant
-
2018
- 2018-07-11 US US16/032,515 patent/US10725863B2/en active Active
- 2018-08-02 CN CN201810873418.1A patent/CN109753376B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390002B1 (en) | 2013-01-23 | 2016-07-12 | SK Hynix Inc. | Efficient bin labeling schemes for tracking cells in solid state storage devices |
Also Published As
Publication number | Publication date |
---|---|
US10725863B2 (en) | 2020-07-28 |
CN109753376B (zh) | 2022-05-24 |
CN109753376A (zh) | 2019-05-14 |
KR20190051561A (ko) | 2019-05-15 |
US20190138392A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102389432B1 (ko) | 메모리 시스템 및 그의 동작방법 | |
US10700706B2 (en) | Memory system with decoders and method of operating such memory system and decoders | |
US11450400B2 (en) | Controller and operating method thereof | |
US9477612B2 (en) | Memory system for reliable predicted sequential read operation | |
KR102257050B1 (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
US11070234B2 (en) | Memory system with hybrid decoding scheme with information exchange and method of operating such memory system | |
US10985780B2 (en) | Error correction circuit, and memory controller having the error correction circuit and memory system having the memory controller | |
US20160124805A1 (en) | Nonvolatile memory system and data recovery method thereof | |
KR20200025820A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11182243B2 (en) | Memory system with adaptive information propagation and method of operating such memory | |
KR102617832B1 (ko) | 메모리 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
KR20220008058A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
KR20170090177A (ko) | 메모리 시스템, 반도체 메모리 장치 및 그의 동작 방법 | |
KR20180022175A (ko) | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 | |
CN111367709A (zh) | 错误校正设备及其操作方法和使用该设备的存储器*** | |
US11082068B2 (en) | Error correction circuit, memory controller having error correction circuit, and memory system having memory controller | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
US11770133B1 (en) | Exact ber reporting in the presence of CRC termination | |
US11251811B2 (en) | Error correction circuit and operating method thereof | |
US11062758B2 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
US11621727B2 (en) | Decoding systems and methods for local reinforcement | |
US11630588B2 (en) | Controller and memory system including the same | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器***及其操作方法 | |
US20230385151A1 (en) | Controller and method of operating the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |