KR20150130633A - 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법 - Google Patents

불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법 Download PDF

Info

Publication number
KR20150130633A
KR20150130633A KR1020140057304A KR20140057304A KR20150130633A KR 20150130633 A KR20150130633 A KR 20150130633A KR 1020140057304 A KR1020140057304 A KR 1020140057304A KR 20140057304 A KR20140057304 A KR 20140057304A KR 20150130633 A KR20150130633 A KR 20150130633A
Authority
KR
South Korea
Prior art keywords
data
read
memory device
logic
page
Prior art date
Application number
KR1020140057304A
Other languages
English (en)
Other versions
KR102174030B1 (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 KR1020140057304A priority Critical patent/KR102174030B1/ko
Priority to US14/692,494 priority patent/US10490285B2/en
Priority to CN201510239393.6A priority patent/CN105097028B/zh
Publication of KR20150130633A publication Critical patent/KR20150130633A/ko
Application granted granted Critical
Publication of KR102174030B1 publication Critical patent/KR102174030B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • 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/1072Adding 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 multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0466Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells with charge storage in an insulating layer, e.g. metal-nitride-oxide-silicon [MNOS], silicon-oxide-nitride-oxide-silicon [SONOS]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • G11C2013/0057Read done in two steps, e.g. wherein the cell is read twice and one of the two read values serving as a reference value

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명에 따른 불휘발성 메모리 장치의 읽기 방법은, 제 1 읽기 전압에 따라 상기 불휘발성 메모리 장치의 선택된 메모리 영역의 데이터를 독출하는 단계, 상기 독출된 데이터의 에러를 검출 및 정정하는 단계, 상기 독출된 데이터의 에러 정정이 불가한 경우, 상기 독출된 데이터에 포함되는 논리 '0' 또는 논리 '1'의 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 단계를 포함한다.

Description

불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법{STORAGE DEVICE INCLUDING NONVOLATILE MEMORY DEVICE AND READ METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 저장하는데 쓰인다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등(이하, '호스트'라 함)과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다.
최근 들어 메모리 장치에 대한 고용량화 요구의 증가에 따라, 하나의 메모리 셀에 멀티 비트를 저장하는 멀티 레벨 셀(Multi-Level Cell: MLC) 또는 멀티-비트 메모리 장치들이 보편화되고 있다. 하지만, 멀티 레벨 셀(MLC)을 채용하는 메모리 장치에서 메모리 셀들의 문턱 전압은 제한된 전압 윈도 내에서 복수의 상태들로 식별되어야 한다. 하지만, 메모리 장치의 특성이나, 시간의 경과, 주위의 온도에 따라 메모리 셀들의 문턱 전압은 변화한다. 따라서, 데이터 신뢰성(Data Integrity)을 높이기 위해 데이터 상태들 각각을 식별하기 위한 읽기 전압의 조정 가능해야 한다.
본 발명에서는 상술한 읽기 전압의 조정을 위한 추가적인 읽기 동작없이 고속으로 최적 읽기 전압을 결정할 수 있는 방법 및 데이터 저장 장치가 제공될 것이다.
본 발명의 목적은 최적의 읽기 전압을 결정하기 위해 선택된 메모리 영역으로의 추가적인 접근없이 고신뢰도의 읽기 레벨을 결정하는 데이터 저장 장치 및 그것의 읽기 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 불휘발성 메모리 장치의 읽기 방법은, 제 1 읽기 전압에 따라 상기 불휘발성 메모리 장치의 선택된 메모리 영역의 데이터를 독출하는 단계, 상기 독출된 데이터의 에러를 검출 및 정정하는 단계, 상기 독출된 데이터의 에러 정정이 불가한 경우, 상기 독출된 데이터에 포함되는 논리 '0' 또는 논리 '1'의 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명에 따른 저장 장치는, 읽기 명령에 응답하여 선택된 메모리 셀들로부터 데이터를 독출하는 불휘발성 메모리 장치, 그리고 상기 독출된 데이터에 정정 불가한 에러가 존재하는 경우에, 상기 불휘발성 메모리 장치로의 접근없이 상기 독출 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 메모리 컨트롤러를 포함한다.
상기 목적을 달성하기 위한 다른 실시 예에 따른 불휘발성 메모리 장치의 읽기 방법은, 상기 불휘발성 메모리 장치의 선택된 메모리 영역을 하나 이상의 읽기 전압으로 센싱하여 페이지 단위로 래치하는 단계, 상기 래치된 데이터 중에서 어느 하나의 페이지 데이터를 백업하는 단계, 상기 페이지 단위로 래치된 데이터를 조합하여 하나의 페이지 단위에 대응하는 독출 데이터로 출력하는 단계, 상기 독출 데이터의 에러 정정이 불가한 경우, 상기 불휘발성 메모리 장치에 상기 백업된 어느 하나의 페이지 데이터를 요청하는 단계, 그리고 상기 선택된 메모리 영역으로의 접근없이 상기 백업된 어느 하나의 페이지 데이터를 상기 하나 이상의 읽기 전압을 조정하기 위한 데이터로 출력하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 다른 실시 예에 따른 저장 장치는, 읽기 명령에 응답하여 선택된 메모리 영역을 하나 이상의 제 1 읽기 전압으로 센싱하여 페이지 단위로 래치하고, 상기 페이지 단위로 래치된 데이터를 조합하여 하나의 페이지 단위에 대응하는 독출 데이터로 출력하되, 상기 래치된 데이터 중에서 어느 하나의 페이지 데이터를 백업 또는 유지하는 불휘발성 메모리 장치, 그리고 상기 독출된 데이터에 정정 불가한 에러가 존재하는 경우에, 백업 또는 유지되는 어느 하나의 페이지 데이터를 제공받고, 상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 메모리 컨트롤러를 포함한다.
이상과 같은 본 발명의 실시 예에 따르면, 통상의 읽기 동작에서 생성되는 부산물 데이터를 활용하여 정확한 읽기 전압의 조정이 가능하다. 따라서, 추가적인 센싱 동작 없이도 메모리 셀들의 데이터를 센싱할 수 있는 최적 레벨의 읽기 전압을 결정할 수 있다.
도 1은 전하 트랩 플래시 셀의 수직 구조를 개략적으로 보여주는 도면이다.
도 2는 메모리 셀들의 문턱 전압 산포의 처짐과 퍼짐을 예시적으로 보여주는 산포도이다.
도 3은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 4는 도 3의 불휘발성 메모리 장치를 보여주는 블록도이다.
도 5는 다양한 원인에 의한 메모리 셀들의 문턱 전압의 변화를 예시적으로 보여주는 도면이다.
도 6은 도 3의 메모리 컨트롤러(110)에서 구성되는 산포골 검출 테이블(115)의 예를 보여주는 도면이다.
도 7은 본 발명의 노말 읽기 동작시에 인가되는 읽기 전압의 레벨을 간략히 보여주는 도면이다.
도 8은 도 4의 페이지 버퍼(123)를 예시적으로 보여주는 블록도이다.
도 9 및 도 10은 도 8의 페이지 버퍼 회로(123a)에서 SLC 데이터 백업의 일 실시 예를 보여주는 블록도들이다.
도 11은 본 발명의 불휘발성 메모리 장치(120)의 데이터 읽기 방법을 간략히 보여주는 순서도이다.
도 12는 본 발명의 메모리 컨트롤러(110)에서 수행되는 불휘발성 메모리 장치(120)의 제어 방법을 보여주는 순서도이다.
도 13은 본 발명의 실시 예에 따른 저장 장치의 동작을 보여주는 도면이다.
도 14는 본 발명의 다양한 실시 예를 설명하기 위한 도면이다.
도 15는 본 발명의 다른 실시 예에 따른 저장 장치(200)를 보여주는 블록도이다.
도 16은 도 15의 불휘발성 메모리 장치의 구성을 보여주는 블록도이다
도 17은 본 발명의 다른 실시 예에 따른 저장 장치를 보여주는 도면이다.
도 18은 본 발명의 이점을 적용할 수 있는 다양한 멀티 레벨 셀들에 대한 문턱 전압 산포를 보여주는 도면들이다.
도 19는 본 발명의 또 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 20은 도 19의 불휘발성 메모리 장치를 보여주는 블록도이다.
도 21은 본 발명의 실시 예에 따른 저장 장치(300)의 동작을 보여주는 도면이다.
도 22는 도 19에 도시된 산포골 검출 테이블(315)의 일 예를 보여주는 표이다.
도 23은 도 19에 도시된 산포골 검출 테이블(315)의 다른 예를 보여주는 표이다.
도 24는 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다.
도 25는 본 발명의 다른 실시 예에 따른 메모리 카드(2000)를 예시적으로 보여주는 블록도이다.
도 26은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 플래시 메모리 장치를 사용하는 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
그리고 이하에서 사용하는 싱글 레벨 셀 읽기(SLC read)와 멀티 레벨 셀 읽기(MLC read)는 각각 하나의 페이지 데이터를 출력하는 방식을 의미한다. 즉, 싱글 레벨 셀 읽기(SLC read)는 선택된 메모리 셀들로부터 하나의 읽기 전압을 사용하여 센싱된 데이터를 가공하지 않고 출력한 값을 의미한다. 반면, 멀티 레벨 셀 읽기(MLC read)는 적어도 2개 읽기 전압으로 센싱된 데이터를 믹싱(또는 쿠킹)하여 하나의 페이지 데이터로 출력하는 동작을 의미한다.
도 1은 전하 트랩 플래시 셀의 수직 구조를 개략적으로 보여주는 도면이다. 도 1을 참조하면, 전하 트랩 플래시 셀(이하, CTF 셀이라 칭함)은 정보를 저장하기 위한 정보 저장층(1)을 포함한다. 정보 저장층(1)은 채널(2) 상에 순차적으로 적층된 제 1 산화막(11), 전하 트랩층(charge trap layer)으로서 질화막(12), 그리고 제 2 산화막(13)을 포함한다. CTF 셀의 프로그래밍을 위해서, 프로그램 전압이 제어 게이트(3)에 인가되고 CTF 셀의 채널에 소정 전압(예를 들면, 0V)이 인가될 것이다. 이러한 바이어스 조건에 따르면, 전계가 제어 게이트(3)에서 채널(2) 방향으로 형성되고, 그러한 전계에 의해서 전하들이 채널(2)에서 전하 트랩층(12)으로 이동될 것이다. 따라서, 이러한 바이어스 조건하에서 CTF 셀이 프로그램될 것이다. CTF 셀의 소거를 위해서, 소정 전압(예를 들면, 0V 또는 그 보다 높은 전압)이 제어 게이트(3)에 인가되고 CTF 셀의 채널(2)에 소거 전압(예를 들면, 20V)이 인가될 것이다. 이러한 바이어스 조건에 따르면, 전계가 벌크에서 제어 게이트 방향으로 형성되며, CTF 셀은 소거될 것이다.
도 1에 있어서, 프로그래밍을 통해 전하 트랩층(12)에 트랩된 전하들의 위치는 예시적이며, 트랩된 전하들의 위치가 CTF 셀의 특성에 따라 변화됨은 잘 이해될 것이다. 프로그래밍을 통해 전하 트랩층(12)에 트랩된 전하들은 시간의 경과에 따라 재배열 현상, 채널(2)로의 유실 (도 1에서 수직 방향으로 표시된 화살표 참조), 질화막(12)을 통한 이동 (도 1에서 수평 방향으로 표시된 화살표 참조), 등과 같은 다양한 현상들로 인해 감소될 것이다. 이러한 현상은 패스트 전하 손실 현상(fast charge loss phenomenon)이라 불린다. 패스트 전하 손실 현상이 발생하면, CTF 셀의 문턱 전압은 낮아질 것이다. 나아가, 프로그램된 CTF 셀들의 문턱 전압들의 산포에 대한 처짐(Drooping)과 퍼짐(Spreading)이 발생할 것이다.
상술한 CTF 셀들의 문턱 전압들의 산포에 대한 처짐(Drooping)과 퍼짐(Spreading)은 경과 시간에 따라 다양한 양상으로 발생한다. 주로, 프로그램된 시점으로부터의 경과 시간이 길어질수록 CTF 셀들의 문턱 전압들의 처짐(Drooping)과 퍼짐(Spreading)은 증가한다.
도 2는 메모리 셀들의 문턱 전압 산포의 처짐과 퍼짐을 예시적으로 보여주는 산포도이다. 도 2를 참조하면, 프로그램된 직후의 메모리 셀들의 문턱 전압 산포(S1)는 시간의 경과에 따라 문턱 전압 산포(S1')로 변화된다.
프로그램된 CTF 셀들의 문턱 전압들은 프로그램 동작이 수행된 직후에 문턱 전압 산포(S1)의 형태로 분포할 것이다. 프로그램된 CTF 셀들의 문턱 전압들은 프로그램 동작이 수행된 후 특정 시간이 경과한 후에 문턱 전압 산포(S1')를 형성할 것이다. 여기서, 문턱 전압 산포의 하한의 변화 즉 Z의 크기는 산포의 처짐에 해당한다. 그리고 문턱 전압 산포의 확장된 크기(Y-X)는 산포의 퍼짐에 해당한다.
문제는 이러한 산포의 처짐과 퍼짐이 시간에 따라 변화한다는데 있다. 시간에 따라 복수의 문턱 전압 산포들의 퍼짐과 처짐에 의해서 중첩되고, 중첩된 산포골의 위치도 이동하게 될 것이다. 메모리 셀에 저장된 데이터에 발생하는 에러를 최소화하기 위해서는 산포들 사이에 산포골을 정확히 검출하여 읽는 절차가 필요하다. 본 발명은 메모리 셀에 대한 별도의 추가적인 접근없이 산포골을 검출하기 위한 데이터를 획득할 수 있다.
도 3은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 3을 참조하면, 저장 장치(100)는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)를 포함할 수 있다. 메모리 컨트롤러(110)는 읽기 동작시 선택된 메모리 셀에 대한 추가적인 접근없이 독출된 데이터를 참조하여 선택된 영역에 대한 읽기 전압을 최적화할 수 있다. 좀더 구체적으로 설명하면 다음과 같다.
메모리 컨트롤러(110)는 호스트(Host)의 요청에 응답하여 불휘발성 메모리 장치(120)를 제어한다. 메모리 컨트롤러(110)는 호스트(Host)로부터의 쓰기 요청에 응답하여 불휘발성 메모리 장치(120)에 쓰기 명령(Write CMD)이나 쓰기 데이터(Write data)를 제공한다. 메모리 컨트롤러(110)는 호스트(Host)로부터 읽기 요청이 전달되면 해당 위치의 데이터를 센싱 및 출력하도록 불휘발성 메모리 장치(120)를 제어할 것이다. 즉, 메모리 컨트롤러(110)는 선택된 메모리 셀들에 대한 읽기 명령어(R_CMD)를 제공할 것이다.
특히, 본 발명의 메모리 컨트롤러(110)는 읽기 명령어(R_CMD)에 응답하여 선택된 메모리 영역으로부터 센싱된 데이터를 산포골 검출에 사용할 수 있다. 즉, 불휘발성 메모리 장치(120)는 읽기 명령어(R_CMD)에 따라 선택된 셀 영역을 센싱할 것이다. 그리고 불휘발성 메모리 장치(120)는 센싱된 데이터를 래치하여 독출 데이터(R_Data)로 출력할 것이다. 더불어, 불휘발성 메모리 장치(120)는 독출 데이터(R_Data)의 독출 과정에서 수행된 복수의 싱글 레벨 셀 읽기(SLC read) 데이터 중 적어도 어느 하나의 데이터를 백업할 것이다.
메모리 컨트롤러(110)는 독출 데이터(R_Data)에 대한 에러 검출 및 정정을 수행한다. 만일, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable Error)가 존재하는 경우, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 백업된 SLC 데이터(S_Data)를 요청한다. 그러면, 불휘발성 메모리 장치(120)는 별도의 추가적인 센싱 동작없이 래치된 SLC 데이터(S_Data)를 메모리 컨트롤러(110)에 제공할 것이다. 메모리 컨트롤러(110)는 SLC 데이터(S_Data)에 포함되는 논리 '0'과 논리 '1'의 수를 참조하여 산포골의 이동 크기를 추정한다.
일반적으로 메모리 셀에 저장되는 데이터의 논리 '0'과 논리 '1'의 비율은 랜덤화 연산에 따라 일정한 비율을 유지할 것이다. 따라서, SLC 데이터(S_Data)에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 숫자 변화는 산포골의 이동 경향과 밀접한 관련이 있다. 이러한 SLC 데이터(S_Data)를 참조하여 산포골의 위치를 추정하고 추정된 위치에 대응하는 최적 읽기 전압을 결정할 수 있다. 이러한 논리 '0' 또는 논리 '1'의 상대적인 크기를 참조하여 산포골의 이동 크기를 맵핑하기 위한 테이블(115)이 메모리 컨트롤러(110)에서 구성될 것이다.
불휘발성 메모리 장치(120)는 하나 또는 그보다 많은 메모리 장치들로 구성될 수 있다. 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 읽기 명령(R_CMD)에 응답하여 선택된 메모리 셀들을 지정된 읽기 전압(Rn)에 의거하여 독출할 수 있다. 또는 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 읽기 명령어(R_CMD)에 응답하여 메모리 셀의 센싱을 수반하지 않고 특정 래치에 저장된 백업된 SLC 데이터(S_Data)를 출력할 수도 있다.
본 발명의 실시 예에 따르면, 선택 영역에 대한 별도의 센싱 동작 없이 불휘발성 메모리 장치(120)의 메모리 셀들에 대한 최적의 읽기 전압이 제공될 수 있다. 따라서, 정정 불가한 에러(Un-correctable Error)가 존재하는 메모리 영역에 대한 읽기 전압 조정에 필요한 소요 시간을 최소화할 수 있어 메모리 시스템의 성능을 높일 수 있다.
도 4는 도 3의 불휘발성 메모리 장치를 보여주는 블록도이다. 도 4를 참조하면, 불휘발성 메모리 장치(120)는 셀 어레이(121), 행 디코더(122), 페이지 버퍼(123), 입출력 버퍼(124), 제어 로직(125) 그리고 전압 발생기(126)를 포함한다.
셀 어레이(121)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(122)에 연결된다. 셀 어레이(121)는 비트 라인들(BL0~BLm-1)을 통해서 페이지 버퍼(123)에 연결된다. 셀 어레이(121)는 낸드형으로 구성되는 복수의 셀 스트링들을 포함한다. 복수의 셀 스트링들은 하나의 메모리 블록(BLK)을 구성할 수 있다. 여기서, 셀 스트링들 각각의 채널은 수직 또는 수평 방향으로 형성될 수 있다.
프로그램 동작시 메모리 셀들은 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)의 제어에 따라 페이지 단위(예를 들면, 2KByte) 또는 그보다 작은 단위(512Byte)로 선택될 수 있다. 읽기 동작시에도 메모리 셀들은 페이지 단위나 그보다 작은 단위로 선택될 수 있다. 다양한 원인에 의하여 읽기 시점에서의 메모리 셀들의 문턱 전압 산포는 프로그램 시점에서의 문턱 전압 산포와 달라질 수 있다. 따라서, 데이터 신뢰성을 높이기 위해서 문턱 전압의 변화를 고려하여 읽기 전압의 레벨은 조정될 수 있다.
행 디코더(122)는 어드레스(ADD)에 응답하여 셀 어레이(121)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 행 디코더(122)는 선택된 메모리 블록의 워드 라인들(WLs) 중 어느 하나를 선택할 수 있다. 행 디코더(122)는 선택된 워드 라인에 전압 발생기(126)로부터 제공된 읽기 전압(RV)을 전달한다. 프로그램 동작시 행 디코더(122)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(Vvfy)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달한다. 읽기 동작시, 행 디코더(122)는 선택 워드 라인(Selected WL)에 선택 읽기 전압(Vrd)을, 비선택 워드 라인(Unselected WL)에는 비선택 읽기 전압(Vread)을 전달한다.
페이지 버퍼(123)는 프로그램 동작시에는 기입 드라이버로 동작하고, 읽기 동작시에는 감지 증폭기로 동작한다. 프로그램 동작시, 페이지 버퍼(123)는 셀 어레이(121)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(123)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(123)는 감지된 데이터를 래치하여 입출력 버퍼(124)에 전달한다.
페이지 버퍼(123)는 읽기 동작시 특정 읽기 전압으로 센싱된 데이터를 보관 유지하는 기능을 갖는다. 일반적으로 MLC 데이터를 센싱할 경우 페이지 버퍼(123)는 서로 다른 읽기 전압에 따라 적어도 2회의 SLC 센싱을 수행한다. 그리고 페이지 버퍼(123)는 서로 다른 전압에 의해서 SLC 센싱된 데이터를 믹싱하여 하나의 페이지로 가공한다. 이러한 과정을 쿠킹(Cooking)이라 칭하기로 한다. 페이지 버퍼(123)는 쿠킹 과정을 통해서 하나의 페이지 단위의 독출 데이터(R_Data)를 출력할 것이다.
본 발명의 페이지 버퍼(123)는 특정 읽기 전압으로 센싱된 SLC 데이터(S_Data)를 내부에 구비되는 특정 래치에 백업할 수 있다. 그리고 페이지 버퍼(123)는 특정 래치에 저장된 SLC 데이터(S_Data)를 제어 로직(125)의 제어에 따라 입출력 버퍼(124)로 전달할 수 있다. 여기서, SLC 데이터(S_Data)가 페이지 버퍼(123)의 특정 래치에 저장되는 것으로 설명되었으나, 본 발명은 여기에 국한되지 않는다. SLC 데이터(S_Data)는 페이지 버퍼(123)뿐 아니라, 입출력 버퍼(124)와 같은 다양한 래치 회로에 저장되고, 제어 로직(125)의 제어에 따라 출력될 수 있을 것이다.
입출력 버퍼(124)는 프로그램 동작시에 입력받은 쓰기 데이터를 페이지 버퍼(123)에 전달한다. 입출력 버퍼(124)는 읽기 동작시에 페이지 버퍼(123)로부터 제공되는 읽기 데이터를 외부로 출력한다. 입출력 버퍼(124)는 입력되는 어드레스(ADD) 또는 명령어(CMDi)를 제어 로직(125)이나 행 디코더(122)에 전달한다.
제어 로직(125)은 외부로부터 전달되는 명령어(CMDi)에 응답하여 페이지 버퍼(123)와 행 디코더(122)를 제어한다. 제어 로직(125)은 메모리 컨트롤러(110)로부터 제공되는 읽기 명령어(R_CMD)에 응답하여 선택된 메모리 셀들을 센싱하도록 전압 발생기(126) 및 페이지 버퍼(123)를 제어할 수 있다. 더불어, 제어 로직(125)은 메모리 컨트롤러(110)로부터의 요청에 따라 특정 래치에 저장된 SLC 데이터(S_Data)를 출력하도록 페이지 버퍼(123) 및 입출력 버퍼(124)를 제어할 수 있다.
전압 발생기(126)는 제어 로직(125)의 제어에 따라 각각의 워드 라인들로 공급될 다양한 워드 라인 전압들과, 메모리 셀들이 형성된 벌크(예를 들면, 웰 영역)로 공급될 전압을 발생한다. 각각의 워드 라인들로 공급될 워드 라인 전압들로는 프로그램 전압(Vpgm), 패스 전압(Vpass), 선택 및 비선택 읽기 전압들(Vrd, Vread) 등이 있다. 전압 발생기(126)는 읽기 동작 및 프로그램 동작시에 선택 라인들(SSL, GSL)에 제공되는 선택 라인 전압(VSSL, VGSL)을 생성할 수 있다. 또한, 전압 발생기(126)는 제어 로직(125)의 제어에 따라 조정된 읽기 전압(RVaj)을 생성하여 행 디코더(122)에 제공할 수 있다.
이상의 본 발명의 불휘발성 메모리 장치(120)는 읽기 명령어(R_CMD)에 응답하여 선택된 메모리 셀에 저장된 데이터를 센싱하여 출력할 수도 있다. 그리고 불휘발성 메모리 장치(120)는 데이터의 센싱 및 래치 과정에서 SLC 데이터(S_Data)를 특정 래치에 저장할 것이다. 만일, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable Error)가 존재하는 경우, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 요청에 따라 산포골 검출을 위한 정보로써 추가적인 센싱 동작없이 백업된 SLC 데이터(S_Data)를 제공할 수 있다.
도 5는 다양한 원인에 의한 메모리 셀들의 문턱 전압의 변화를 예시적으로 보여준다. 도 5를 참조하면, 메모리 셀들의 문턱 전압은 최초에 프로그램된 상태에 대응하는 산포들(S1, S2)과 시간 경과나 특정 원인으로 인해서 변화된 문턱 전압의 산포들(S1', S2')이 도시되어 있다. 가로 축은 메모리 셀들의 문턱 전압을, 세로 축은 메모리 셀들의 수를 가리킨다. 세로축은 로그 스케일일 수 있음을 유의해야 한다.
메모리 셀들의 문턱 전압은 프로그램 직후에는 산포들(S1, S2)로 나타날 수 있다. 이때, 산포들(S1, S2)은 읽기 전압(RV)에 의해서 식별될 것이다. 읽기 전압(RV)는 다양한 인자들을 분석하여 산포들(S1, S2)이 중첩되는 문턱 전압의 레벨에 대응하는 산포골(Valley)에 대응하는 값으로 결정될 것이다. 그러나 시간의 경과나 다양한 원인으로 인해서 메모리 셀들의 문턱 전압이 산포들(S1', S2')로 변하는 경우, 실질적인 산포골도 이동하게 된다. 즉, 도시된 예시와 같이 산포골은 최초 결정된 읽기 전압(RV)에 비하여 ΔV의 크기 만큼 감소할 수 있다.
읽기 전압(RV)에 의해서 센싱되는 경우, 산포들(S1, S2)로 문턱 전압이 유지되는 시점에서는 메모리 셀들에 저장된 논리 '1'과 논리 '0'의 비율이나 수는 균형을 유지하게 될 것이다. 이것이 가능한 이유는 랜덤화 연산을 통해서 프로그램 상태들 각각에 대해서 균일한 비율로 데이터가 할당되기 때문이다. 하지만, 메모리 셀들의 문턱 전압이 산포들(S1', S2')로 변화된 이후에는 이러한 논리값들의 균형은 무너지게 된다. 즉, 산포들(S1', S2')로 문턱 전압이 변화된 메모리 셀들을 읽기 전압(RV)으로 센싱하는 경우, 논리 '1'이 증가하게 될 것이다.
본 발명에서는 이러한 논리 '1'의 증가량을 검출하여 산포골의 이동치(ΔV)를 추정하고, 추정된 값을 고려하여 새로운 읽기 전압을 결정하는 기술이 설명된다. 그리고 논리 '1'의 증가량이나 감소량의 검출은 추가적인 센싱 및 읽기 동작 없이 수행된다. 즉, 에러가 발생한 데이터 또는 에러가 발생한 데이터를 독출하는 과정에서 생성된 SLC 데이터(S_Data)를 사용하여 산포골의 이동 크기를 추정할 수 있다. 이러한 기술에 따라 정정 불가 에러가 발생하는 경우, 재독출(Read retry)을 위한 읽기 전압을 생성하는 시간을 대폭 감소시킬 수 있다.
도 6은 도 3의 메모리 컨트롤러(110)에서 구성되는 산포골 검출 테이블(115)의 예를 보여주는 도면이다. 도 6을 참조하면, 산포골 검출 테이블(115)에는 논리 '1'의 증감에 따른 산포골의 이동 레벨이 맵핑되어 있다.
메모리 컨트롤러(110)는 선택된 메모리 영역에 대한 독출 데이터에 대한 에러 검출 및 정정을 수행한다. 특히, 독출된 데이터에 대해 정정 불가한 에러가 검출되면, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 백업된 SLC 데이터(S_Data)를 요청할 것이다. SLC 데이터(S_Data)는 정정 불가한 에러가 존재하는 독출 데이터의 일부 또는 독출 데이터를 출력하기 위한 제반 독출 동작에서 센싱된 데이터이다. 따라서, 선택된 메모리 셀들에 대한 추가적인 센싱 동작없이 SLC 데이터(S_Data)가 메모리 컨트롤러(110)에 제공될 수 있다.
메모리 컨트롤러(110)는 SLC 데이터(S_Data)를 수신하여, 논리 '1'의 증감을 검출할 것이다. 예를 들면, SLC 데이터(S_Data)에 포함되는 논리 '1'의 기준 숫자(Rn)에 비해서 1개 내지 5개 증가한 것으로 검출되면, 메모리 컨트롤러(110)는 산포골에 대응하는 최적 읽기 전압의 레벨이 α만큼 증가한 것으로 결정할 수 있다. 즉, 메모리 컨트롤러(110)는 SLC 데이터(S_Data)에 포함되는 논리 '1'의 수가 증가한 경우, 산포골의 위치는 증가한 것으로 판단할 수 있다. 메모리 컨트롤러(110)는 논리 '1'의 증가 숫자에 대응하는 α만큼의 읽기 전압을 증가시켜 최적 읽기 전압으로 결정할 것이다.
만일, 논리 '1'의 수가 기준 수(Rn)와 동일하다면, 메모리 컨트롤러(110)는 산포골에 대응하는 최적 읽기 전압의 레벨이 노말 읽기 전압(RV)인 것으로 판단할 것이다. 즉, 메모리 컨트롤러(110)는 산포골의 위치가 변하지 않은 것으로 판단할 것이다. 그리고 SLC 데이터(S_Data)에 포함되는 논리 '1'의 수가 기준 숫자(Rn)에 비해서 1개 내지 5개 감소한 것으로 검출되면, 메모리 컨트롤러(110)는 산포골에 대응하는 최적 읽기 전압의 레벨을 α만큼 감소시킬 것이다. SLC 데이터(S_Data)에 포함되는 논리 '1'의 수가 기준 숫자(Rn)에 비해서 6개 내지 10개 감소한 것으로 검출되면, 메모리 컨트롤러(110)는 산포골에 대응하는 최적 읽기 전압의 레벨을 β만큼 감소시킬 것이다. SLC 데이터(S_Data)에 포함되는 논리 '1'의 수가 기준 수(Rn)에 비해서 11개 내지 20개 감소한 것으로 검출되면, 메모리 컨트롤러(110)는 산포골에 대응하는 최적 읽기 전압의 레벨을
Figure pat00001
만큼 감소시킬 것이다.
이러한 방식으로 산포골 검출 테이블(115)을 사용하여 메모리 컨트롤러(110)는 산포골의 이동 크기를 논리 '1'의 증감을 참조하여 판단할 수 있다. 여기서, 논리 '1'의 증감으로 산포골의 이동을 판단하는 것으로 예시적으로 설명되었으나, 본 발명은 여기에 국한되지 않는다. 예를 들면, SLC 데이터(S_Data) 전체 비트 수에 대한 논리 '1'의 수의 비율의 변화를 참조하여 산포골의 이동 크기를 결정할 수도 있을 것이다. 여기서, 논리 '1'의 증감이나 비율의 변화를 산포골의 이동을 판단하는 파라미터로 삼았으나, 논리 '0'의 수 또는 전체 데이터 비트 수에 대한 비율의 변화를 파라미터로 하여 산포골 이동의 크기를 판단할 수도 있을 것이다.
도 7은 읽기 동작시에 선택 워드 라인에 인가되는 읽기 전압의 레벨을 간략히 보여주는 도면이다. 도 7을 참조하면, 예시적으로 3-비트 MLC(이하, TLC) 데이터를 프로그램한 메모리 셀들의 산포가 간략히 도시되어 있다.
TLC에 3개 페이지 데이터를 프로그램하면, 메모리 셀의 문턱 전압은 8개의 상태들(States)에 대응하는 산포들 중 어느 하나에 이 포함된다. 즉, TLC는 소거 상태(E0)와 7개의 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 중 어느 하나에 대응하는 문턱 전압을 갖게 된다. TLC는 시간의 경과나 셀들 간의 간섭, 그 밖의 다양한 요인들로 인해서 문턱 전압이 변화될 수 있다. 이러한 변화에 의해서 메모리 셀들의 문턱 전압 상태들은 명확하게 식별하기 어려울 정도로 중첩될 수 있다.
TLC의 MSB(Most Significant Bit) 페이지의 읽기 동작시, 선택된 메모리 셀들의 워드 라인으로는 노말 읽기 전압들(R3, R7)이 제공될 수 있다. 먼저, 노말 읽기 전압(RV7)에 의해서 메모리 셀들이 센싱된 후에 이어서 노말 읽기 전압(RV3)에 의해서 메모리 셀들이 센싱될 수 있다. 그리고 각각의 센싱된 데이터를 조합하여 하나의 MSB 페이지 데이터로 출력할 것이다. 이러한 복수의 읽기 전압으로 센싱된 SLC 데이터를 조합하는 과정을 쿠킹(Cooking)이라 하기로 한다. 물론, 읽기 전압을 인가하는 순서로 노말 읽기 전압(RV3)이 먼저 인가될 수도 있을 것이다.
본 발명의 제 1 실시 예에 따르면, 본 발명의 불휘발성 메모리 장치(120, 도 1 참조)는 MLC 페이지를 센싱 및 래치하는 과정에서 쿠킹을 수행하지만 노말 읽기 전압(RV3, RV7)중 어느 하나에 의해서 센싱된 SLC 데이터를 백업할 수 있다. 예를 들면, 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 MSB 페이지 읽기 요청을 받으면, MSB 페이지를 읽는 과정에서 수행되는 SLC 읽기 결과를 유지하거나 특정 래치에 저장할 수 있다. 예를 들면, MSB 페이지의 읽기 과정에서 읽기 전압(RV7)에 의하여 센싱된 SLC 데이터는 페이지 버퍼(123, 도 2 참조)에 구비되는 특정 래치에 유지되거나 백업될 수 있다. 그리고 특정 래치에 유지 또는 백업된 SLC 데이터는 재독출(Read retry)이나 다른 페이지 읽기 명령이 입력될 때까지 보관된다.
에러 검출 결과, 쿠킹 과정을 통해서 출력된 MSB 페이지 데이터에 정정 불가한 에러(Un-correctable Error)가 존재하면, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)가 유지하거나 백업한 SLC 데이터를 요청할 것이다. 그러면, 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 센싱 절차 없이 래치된 SLC 데이터를 메모리 컨트롤러(110)에 제공할 수 있다. 그러면, 메모리 컨트롤러(110)는 논리 '1' 또는 논리 '0'의 수 또는 비율의 증감을 참조하여 산포골의 이동 크기를 추정하고, 재독출을 위한 최적 읽기 전압을 결정할 것이다.
여기서, 예시적으로 TLC의 MSB 페이지의 노말 읽기 전압들(RV3, RV7)을 도시하였으나, LSB 페이지 및 CSB 페이지를 읽기 위한 노말 읽기 전압들에 대해서도 본 발명의 이점은 적용될 수 있다.
도 8은 도 4의 페이지 버퍼(123)를 예시적으로 보여주는 블록도이다. 도 8을 참조하면, 본 발명의 페이지 버퍼(123)는 복수의 페이지 버퍼 회로들(123a, 123b, 123c)을 포함한다. 그리고 복수의 페이지 버퍼 회로들(123a, 123b, 123c) 각각은 본 발명의 SLC 데이터(S_Data)를 저장하기 위한 래치를 포함할 수 있다.
구체적으로 복수의 페이지 버퍼 회로들(123a, 123b, 123c) 각각은 센스 래치(SL), 데이터 래치(DL1, DL2), 캐시 래치(CL)를 포함할 수 있다. 선택된 메모리 셀들에 저장된 복수의 페이지 데이터 중에서 어느 하나의 페이지 데이터에 대한 읽기 요청이 수신되면, 복수의 페이지 버퍼 회로들(123a, 123b, 123c)은 센싱 및 래치 동작을 수행한다. 즉, 복수의 페이지 버퍼 회로들(123a, 123b, 123c)은 복수의 노말 읽기 전압들(R3, R7) 각각이 제공되는 시점에 순차적으로 비트 라인들(BL0~BLm-1)의 프리차지된 전압의 레벨을 센싱할 것이다. 센싱 래치(SL)에 의해서 센싱된 데이터는 데이터 래치들(DL1, DL2)로 덤프된다. 이러한 노말 읽기 전압들 각각에 대한 센싱 절차를 SLC 읽기라 칭하기로 한다. MSB 페이지에 대한 읽기를 위해서는 복수의 SLC 읽기 후에 쿠킹 절차가 수행된다. 쿠킹에 의해서 복수의읽기 전압에 의해서 센싱된 데이터는 하나의 페이지 단위 데이터로 출력된다.
본 발명의 복수의 페이지 버퍼 회로들(123a, 123b, 123c) 각각은 SLC 읽기에 의해서 센싱된 데이터를 데이터 래치(DL1, DL2)나 센싱 래치(SL)에 보관 유지할 수 있다. 이러한 절차를 SLC 백업 동작이라 칭하기로 한다. 그리고 특정 명령어에 응답하여 SLC 백업 동작에 의해서 유지되는 SLC 데이터(S_Data)를 외부로 출력할 수 있다.
도 9 및 도 10은 도 8의 페이지 버퍼 회로(123a)에서 SLC 데이터(S_Data)의 백업의 방법을 보여주는 블록도들이다. 도 9를 참조하면, 본 발명의 일 실시 예에 따른 MLC 데이터의 읽기 절차가 설명되어 있다. 여기서, 페이지 버퍼 회로(123a)에 대해서 설명하고 있지만, 나머지 페이지 버퍼 회로들(123b, 123c)도 동일한 방식으로 SLC 데이터(S_Data)를 백업할 것이다.
먼저, 비트 라인들(BL0~BLm-1)은 센싱을 위해 프리차지(Precharge)된다. 그리고 제어 로직(125)의 제어에 따라 선택된 메모리 셀들의 워드 라인으로 읽기 전압(RV7)이 인가될 것이다. 그러면, 읽기 전압(RV7)에 대한 비트 라인(BL0)에 연결된 메모리 셀의 온셀 또는 오프 셀 여부에 따라 비트 라인(BL0)에 대응하는 센싱 노드(SO)의 전압이 변화(Develop)된다. 변화된 센싱 노드의 레벨이 센싱 데이터로 센싱 래치(SL)에 저장된다. 이어서, 센싱 래치(SL)에 래치된 데이터는 데이터 래치(DL1)에 덤프된다. 읽기 전압(VR7)을 사용하는 센싱 및 덤프 과정이 ① 라인으로 표시될 수 있다. ① 라인으로 표시된 읽기 동작은 하나의 SLC 읽기 단위에 해당한다.
더불어, 비트 라인들(BL0~BLm-1)이 재차 프리차지(Precharge)된다. 그리고 제어 로직(125)의 제어에 따라 선택된 메모리 셀들의 워드 라인으로 읽기 전압(R3)이 인가될 것이다. 그러면, 읽기 전압(VR3)에 대한 비트 라인(BL0)에 연결된 메모리 셀의 온셀 또는 오프 셀 여부에 따라 비트 라인(BL0)에 대응하는 센싱 노드(SO)의 전압이 변화한다. 변화된 센싱 노드(SO)의 레벨이 센싱 데이터로 센싱 래치(SL)에 저장된다. 이어서, 센싱 래치(SL)에 래치된 데이터는 데이터 래치(DL2)에 덤프된다. 읽기 전압(VR3)을 사용하는 센싱 및 덤프 과정이 ② 라인으로 표시될 수 있다. ② 라인으로 표시된 절차는 ① 라인으로 표시된 SLC 읽기 단위와 별도로 수행되는 다른 하나의 SLC 읽기 단위를 나타낸다.
이어서, 2개 읽기 전압(RV3, RV7)에 의해서 센싱된 데이터를 하나의 페이지 단위로 머지하기 위해서 데이터 쿠킹을 수행한다. 데이터 쿠킹을 통해서 실제적으로 외부에서 제공된 페이지 단위의 데이터로 재구성된다. 이러한 과정은 ③ 라인으로 도시되어 있다. 데이터 쿠킹에 대한 상세한 기술 설명은 본 발명의 기술 사항과 크게 관련이 없으므로 생략하기로 한다. 쿠킹에 의해서 확정된 최종 데이터는 이어서 캐시 래치(CL)로 덤프되고, 외부로 출력될 수 있다. 이러한 과정은 ④ 라인으로 표시하였다.
상술한 3-비트 MLC의 MSB 페이지의 읽기 동작시 2회의 SLC 읽기 동작이 수행되고, 적어도 어느 하나의 SLC 읽기 결과는 쿠킹이 된 이후에도 데이터 래치(DL1)에 유지될 수 있다. 그리고 외부에서 특정 명령어를 제공하면, 불휘발성 메모리 장치(120)는 메모리 셀들에 대한 추가적인 센싱 절차없이 데이터 래치(DL1)에 저장된 SLC 데이터를 캐시 래치(CL)로 덤프하고, 출력할 수 있다.
도 10을 참조하면, 데이터 래치(DL1)에 유지되는 백업된 SLC 데이터의 출력 절차가 간략히 도시되어 있다. 메모리 컨트롤러(110, 도 1 참조)에 의해서 MSB 페이지 데이터에 대한 정정 불가한 에러(Un-correctable Error)가 검출되면, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 백업된 SLC 데이터(S_Data)를 요청한다. 그러면, 불휘발성 메모리 장치(120)는 메모리 셀들에 대한 접근없이 데이터 래치(DL1)에 백업된 SLC 데이터(S_Data)를 메모리 컨트롤러(110)에 제공할 것이다. 그러면, 메모리 컨트롤러(110)는 전달되는 SLC 데이터(S_Data)에 포함되는 논리 '1'이나 논리 '0'의 증감을 고려하여 산포골의 이동 크기를 검출할 것이다. 그리고 메모리 컨트롤러(110)는 검출된 산포골에 대응하는 읽기 전압으로 선택된 메모리 셀들에 대한 재독출 명령을 불휘발성 메모리 장치(120)에 전달한다. 재독출 명령에 응답하여 제어 로직(125)은 페이지 버퍼(123)의 데이터 래치를 리셋할 수 있을 것이다.
이상에서는 MLC 데이터를 독출하는 과정에서 적어도 하나의 SLC 페이지 데이터를 백업하는 기능을 구비한 페이지 버퍼 회로(123a)의 기능이 설명되었다. 하지만, 본 발명의 SLC 데이터(S_Data)를 백업 및 출력하는 방식은 도시된 방식에만 국한되지는 않는다. 예를 들면, 어느 하나의 SLC 페이지만이 백업되는 것으로 설명되었으나, 2회의 센싱을 통해서 래치된 2개 SLC 페이지가 백업될 수도 있음은 잘 이해될 것이다.
도 11은 본 발명의 불휘발성 메모리 장치(120)의 데이터 읽기 방법을 간략히 보여주는 순서도이다. 도 11을 참조하면, 본 발명의 불휘발성 메모리 장치(120)는 외부에서 제공되는 읽기 명령어 또는 읽기 모드에 따라 MLC 데이터를 센싱하여 출력하거나, 또는 센싱 절차없이 백업된 SLC 데이터를 출력할 수 있다. 외부에서 읽기 명령(R_CMD)이 입력되면 본 발명의 불휘발성 메모리 장치(120)의 읽기 동작 또는 백업된 SLC 데이터(S_Data)의 출력 동작이 시작된다.
S110 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 입력되는 읽기 명령어(R_CMD) 및 어드레스를 수신한다. 읽기 명령어(R_CMD)에는 어드레스(Address)에 의해서 선택된 메모리 셀들에 대한 읽기 모드(Read Mode)가 포함될 수 있다.
S120 단계에서, 불휘발성 메모리 장치(120)는 읽기 모드(Read Mode)에 따른 동작 분기를 실시한다. 만일, 메모리 컨트롤러(110)에서 요청한 읽기 모드(Read Mode)가 MLC 모드인 경우, 절차는 S130 단계로 이동한다. 반면, 메모리 컨트롤러(110)에서 요청한 읽기 모드(Read Mode)가 SLC 모드인 경우, 절차는 S170 단계로 이동한다. SLC 읽기 모드는 메모리 컨트롤러(110)에서 정정이 불가한 에러가 검출되는 경우에 불휘발성 메모리 장치(120)에 제공되는 모드이다.
S130 단계에서, 불휘발성 메모리 장치(120)는 어드레스(Address)에 의해서 선택된 메모리 셀들에 대한 센싱을 수행한다. 즉, 불휘발성 메모리 장치(120)는 복수의 노말 읽기 전압들(RVi)을 사용하여 복수의 SLC 읽기 동작을 수행할 것이다.
S140 단계에서, 불휘발성 메모리 장치(120)는 복수의 노말 읽기 전압들(RVi)에 의한 센싱된 데이터를 데이터 래치에 저장할 것이다. 만일, 어느 하나의 노말 읽기 전압에 의해서 센싱된 데이터를 페이지 버퍼(123) 외부에 구비되는 백업 래치에 저장할 수도 있을 것이다.
S150 단계에서, 불휘발성 메모리 장치(120)는 복수의 노말 읽기 전압들(RVi)에 의한 센싱된 데이터를 하나의 페이지 단위로 머지하기 위한 쿠킹을 수행한다. 이러한 쿠킹의 예는 앞서 도 9에서 간략히 설명되었다.
S160 단계에서, 쿠킹에 의해서 하나의 페이지 단위로 조합된 MLC 데이터는 페이지 버퍼 회로들 각각의 캐시 래치(CL)로 덤프되고, 외부로 출력될 것이다.
S170 단계에서, 불휘발성 메모리 장치(120)는 어드레스(Address)에 의해서 선택된 메모리 셀들에 대한 센싱 절차없이 백업된 SLC 데이터(S_Data)를 외부로 출력할 것이다. 즉, 불휘발성 메모리 장치(120)는 복수의 노말 읽기 전압들(RVi)을 사용하여 래치 또는 백업된 복수의 SLC 페이지들 중 어느 하나의 페이지를 메모리 컨트롤러(110)에 전달할 것이다.
이상에서 외부로부터 제공되는 읽기 모드(Read Mode)에 따라 본 발명의 불휘발성 메모리 장치(120)는 메모리 셀에 대한 센싱 동작을 수반하는 MLC 데이터 또는 센싱 절차가 배제된 백업된 SLC 데이터(S_Data)를 출력할 수 있다. 여기서, 백업된 SLC 데이터(S_Data)는 현재 입력된 읽기 명령어(R_CMD)의 이전에 수행된 MLC 읽기 동작에서 백업된 데이터일 것이다. 따라서, 산포골을 검출하기 위한 SLC 데이터(S_Data)를 요청하는 경우, 본 발명의 불휘발성 메모리 장치(120)는 상대적으로 긴 시간이 소요되는 센싱 과정을 생략하고, 이미 데이터 래치나 백업 래치에 저장된 SLC 데이터를 출력할 수 있다.
도 12는 본 발명의 메모리 컨트롤러(110)에서 수행되는 불휘발성 메모리 장치(120)의 제어 방법을 보여주는 순서도이다. 도 12를 참조하면, 메모리 컨트롤러(110)는 선택된 메모리 영역에 저장된 데이터를 읽기 위한 불휘발성 메모리 장치(120)로의 접근, 에러 검출 및 정정, 그리고 산포골 검출 연산 및 재독출 동작을 포함할 수 있다.
S210 단계에서, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로 읽기 명령어(R_CMD)를 전달한다. 이때, 읽기 명령어(R_CMD)에 포함되는 읽기 모드는 MLC 읽기 모드일 것이다. 그러면, 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 센싱을 수행하여 MLC 데이터를 출력할 것이다.
S220 단계에서, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에서 출력하는 MLC 데이터를 수신한다. 이때, 수신된 MLC 데이터는 하나의 페이지 단위라 가정하기로 한다.
S230 단계에서, 메모리 컨트롤러(110)는 수신된 MLC 데이터에 대한 에러 검출 및 정정을 수행할 것이다. 만일, 수신된 MLC 데이터에 에러가 존재하지 않거나 정정 가능한 정도의 에러가 존재한다면(Yes 방향), 선택된 메모리 영역에 대한 제반 읽기 동작은 종료된다. 반면, 수신된 MLC 데이터에 정정 불가한 에러가 검출되면(No 방향), 절차는 S240 단계로 이동한다.
S240 단계에서, 메모리 컨트롤러(110)는 산포골 검출을 위한 SLC 데이터를 불휘발성 메모리 장치(120)에 요청할 것이다. 즉, 메모리 컨트롤러(110)는 백업된 SLC 데이터(S_Data)를 출력하도록 불휘발성 메모리 장치(120)에 명령어를 전달한다.
S250 단계에서, 메모리 컨트롤러(110)는 산포골을 검출하기 위한 연산을 수행하다. 즉, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터 제공된 SLC 데이터(S_Data)에 포함되는 논리 '1'이나 논리 '0'의 증감을 검출한다. 그리고 메모리 컨트롤러(110)는 검출된 증감의 크기에 따라 산포골의 이동 크기를 추정하고, 추정된 크기를 참조하여 읽기 전압을 조정할 것이다.
S260 단계에서, 메모리 컨트롤러(110)는 조정된 읽기 전압으로 선택된 메모리 셀들을 센싱하고 데이터를 출력하도록 재독출 명령을 불휘발성 메모리 장치(120)에 전달할 것이다.
이상에서 설명된 불휘발성 메모리 장치(120) 및 메모리 컨트롤러(110)의 동작에 따라 정정 불가 에러(Un-correctable Error)가 발생하는 경우에도, 메모리 셀에 대한 추가적인 접근 없이도 산포골 검출이 가능하다. 따라서, 에러가 빈번히 발생하는 경우에도 불휘발성 메모리 장치(120)의 읽기 속도의 저하가 최소화될 수 있다.
도 13은 본 발명의 실시 예에 따른 저장 장치의 동작을 보여주는 도면이다. 도 13을 참조하면, 메모리 컨트롤러(110)와 불휘발성 메모리 장치(120) 상호 간의 동작이 간략히 도시된다.
먼저, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로 읽기 명령어(R_CMD)를 전달할 것이다. 여기서, 읽기 명령어(R_CMD)는 선택된 메모리 셀들에 저장된 복수의 페이지 데이터 중 어느 하나의 페이지일 수 있다. 즉, 읽기 명령어(R_CMD)에는 읽기 모드(MLC 모드) 정보를 포함할 것이다.
읽기 명령어(R_CMD)에 응답하여 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 읽기 동작을 수행할 것이다. 즉, 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 MLC 읽기를 수행한다. 여기서, 불휘발성 메모리 장치(120)는 선택된 메모리 셀들에 대한 SLC 읽기 동작을 수행할 것이다. 그리고 SLC 읽기 결과로 생성되는 데이터를 백업할 것이다. 더불어, 불휘발성 메모리 장치(120)는 적어도 2회의 SLC 읽기의 결과에 따라 래치된 데이터를 쿠킹하여 하나의 페이지 단위로 머징한다. 그리고 쿠킹을 통해서 머지된 데이터가 독출 데이터(R_Data)로써 메모리 컨트롤러(110)에 전달될 것이다.
독출 데이터(R_Data)를 수신한 메모리 컨트롤러(110)는 에러 검출 및 정정 연산을 수행한다. 만일, 에러가 검출되지 않거나 검출된 에러 비트의 수가 정정 가능한 경우, 선택된 메모리 셀들에 대한 읽기 절차는 종료된다(Yes 방향). 반면, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable error)가 검출되면(No 방향), 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 백업된 SLC 데이터를 요청할 것이다.
그러면 불휘발성 메모리 장치(120)는 메모리 셀들에 대한 센싱 절차 없이 이미 래치에 백업된 SLC 데이터(S_Data)를 메모리 컨트롤러(110)에 전달할 것이다. 메모리 컨트롤러(110)는 전달되는 SLC 데이터(S_Data)에 포함되는 논리 '1'의 수의 증감 또는 비율을 참조하여 산포골의 이동 크기를 결정할 것이다. 도시되지는 않았지만, 메모리 컨트롤러(110)는 산포골의 위치를 추정하여 불휘발성 메모리 장치(120)에 대한 재독출 동작을 수행할 것이다.
이상에서는 노말 읽기 동작시에 페이지 버퍼(123)나 별도의 래치에 읽기 동작에서 생성되는 SLC 데이터(S_Data)를 백업하는 불휘발성 메모리 장치(120)의 기능이 설명되었다. 더불어, 백업된 SLC 데이터(S_Data)를 사용하여 산포골의 위치를 추정하고 읽기 전압의 크기를 조정하는 메모리 컨트롤러(110)의 기능이 설명되었다. 이러한 메모리 컨트롤러(110)와 불휘발성 메모리 장치(120)의 상호 작용에 의해서 데이터 읽기 속도를 높일 수 있다.
도 14는 본 발명의 다양한 실시 예를 설명하기 위한 도면이다. 도 14를 참조하면, 하나의 메모리 셀에 3-비트를 저장하는 메모리 셀들(이하, TLC)을 구비하는 불휘발성 메모리 장치(120)의 노말 읽기 전압들이 도시되어 있다.
LSB 페이지에 대응하는 제 1 페이지(1ST Page)를 읽기 위해서는 읽기 전압(R1, R5)가 선택된 메모리 셀들의 워드 라인에 제공될 것이다. 그리고 CSB 페이지에 대응하는 제 2 페이지(2ND Page)를 읽기 위해서 선택된 메모리 셀들의 워드 라인으로는 읽기 전압들(R2, R4, R6)이 제공될 수 있다. 그리고 MSB 페이지에 대응하는 제 3 페이지(3RD Page)를 읽기 위해서 선택된 메모리 셀들의 워드 라인으로는 읽기 전압들(R3, R7)이 제공될 수 있다.
불휘발성 메모리 장치(120)는 선택된 메모리 셀에 페이지 읽기 동작시에 읽기 전압들에 의한 복수의 SLC 읽기 결과를 보관 및 유지할 수 있다. 즉, 불휘발성 메모리 장치(120)는 제 2 페이지(2ND Page)에 대한 읽기 명령어(R_CMD)를 제공받으면, 읽기 전압들(RV2, RV4, RV6) 각각을 적용한 SLC 읽기 동작을 수행할 것이다. 그리고 각각의 SLC 읽기 동작에 따른 SLC 데이터들 중 적어도 하나는 래치에 백업할 것이다. 적어도 하나의 SLC 데이터가 백업된 상태에서 읽기 요청된 MLC 데이터는 쿠킹을 통해서 구성되고, 불휘발성 메모리 장치(120)의 외부로 출력될 것이다. 이러한 SLC 데이터에 대한 백업 동작은 LSB 페이지에 대한 읽기 동작에서도 동일하게 적용될 것이다.
도 15는 본 발명의 다른 실시 예에 따른 저장 장치(200)를 보여주는 블록도이다. 도 15를 참조하면, 본 발명의 불휘발성 메모리 장치(220)는 MLC 읽기 동작시에 동반하는 SLC 데이터(S_Data)를 백업할 수 있다. 그리고 메모리 컨트롤러(210)의 요청에 따라 백업된 SLC 데이터(S_Data)에 포함되는 논리 '1'의 비트 수 정보(Yi)를 제공할 수 있다.
메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)에 읽기 명령어(R_CMD)를 전달할 수 있다. 메모리 컨트롤러(210)는 선택된 메모리 영역으로부터 독출된 데이터(R_Data)에 대한 에러 검출 및 정정을 수행한다. 메모리 컨트롤러(210)는 정정 불가한 에러가 발생하는 경우, 불휘발성 메모리 장치(220)에 SLC 데이터에 포함되는 온셀의 수 또는 오프 셀의 수를 요청할 수 있다. 즉, 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)에 백업된 SLC 데이터(S_Data)에 포함되는 논리 '1' 또는 논리 '0'의 수(Bit count)를 요청할 수 있다. 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)로부터 제공되는 비트 카운트(Yi)를 참조하여 산포골의 이동 크기를 추정하고 최적 읽기 전압을 결정할 수 있다.
불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)로부터의 읽기 명령어(R_CMD)에 응답하여 선택된 셀 영역을 센싱할 것이다. 그리고 불휘발성 메모리 장치(120)는 센싱된 데이터를 래치하여 독출 데이터(R_Data)로 출력할 것이다. 더불어, 불휘발성 메모리 장치(120)는 독출 데이터(R_Data)의 독출 과정에서 수행된 복수의 싱글 레벨 셀(SLC) 데이터 중 적어도 어느 하나의 데이터를 백업할 것이다. 더불어 불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)가 요청하면 백업된 SLC 데이터(S_Data)에 포함되는 논리 '1' 또는 논리 '0'의 비트 수를 카운트한다. 불휘발성 메모리 장치(220)는 SLC 데이터에 포함되는 논리 '1' 또는 논리 '0'의 수를 카운트하는 비트 카운터(227)를 포함할 수 있다.
메모리 컨트롤러(210)는 정정 불가한 에러(Un-correctable Error)가 검출되면, 불휘발성 메모리 장치(120)에 백업된 SLC 데이터(S_Data)에 포함되는 논리 '1' 또는 논리 '0'의 비트 수(이하, 비트 카운트)를 요청한다. 그러면, 불휘발성 메모리 장치(220)는 별도의 추가적인 센싱 동작없이 래치된 SLC 데이터(S_Data)로부터 논리 '1'이나 논리 '0'의 수를 카운트할 것이다. 논리 '1'이나 논리 '0'의 비트 수의 카운트된 비트 카운트(Yi)는 메모리 컨트롤러(210)에서 산포골의 변화를 추정하는 연산에 사용된다. 메모리 컨트롤러(210)는 산포골의 위치를 추정하고 추정된 위치에 대응하는 최적 읽기 전압을 결정할 수 있다. 이러한 논리 '0' 또는 논리 '1'의 상대적인 크기를 참조하여 산포골의 이동 크기를 맵핑하기 위한 테이블(215)이 메모리 컨트롤러(210)에서 구성될 것이다.
본 발명의 실시 예에 따르면, 선택 영역에 대한 별도의 센싱 동작 없이 불휘발성 메모리 장치(220)의 메모리 셀들에 대한 최적의 읽기 전압이 제공될 수 있다. 따라서, 읽기 전압을 결정하기 위한 소요 시간을 최소화할 수 있어 메모리 시스템의 성능을 높일 수 있다.
도 16은 도 15의 불휘발성 메모리 장치의 구성을 간략히 보여주는 블록도이다. 도 16을 참조하면, 불휘발성 메모리 장치(220)는 셀 어레이(221), 행 디코더(222), 페이지 버퍼(223), 입출력 버퍼(224), 제어 로직(225), 전압 발생기(226), 그리고 비트 카운터(227)를 포함한다. 불휘발성 메모리 장치(220)는 비트 카운터(227)의 구성을 제외하고는 도 2의 구성들과 동일하다. 따라서, 셀 어레이(221), 행 디코더(222), 페이지 버퍼(223), 입출력 버퍼(224), 제어 로직(225), 전압 발생기(226)에 대한 설명은 생략하기로 한다.
불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)에 의해서 선택된 메모리 셀들로부터 MLC 읽기 동작을 수행할 것이다. MLC 읽기 동작 시에 페이지 버퍼(223)는 SLC 데이터(S_Data)를 특정 래치에 백업하거나 유지할 것이다. MLC 읽기 동작에 의해서 데이터 래치에 저장된 데이터는 쿠킹을 통해서 머지되고, 머지된 데이터는 입출력 버퍼(224)를 통해서 외부로 출력될 것이다.
불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)로부터 비트 카운트(Yi)를 출력하도록 요청받으면, 비트 카운터(227)로 백업된 SLC 데이터(S_Data)를 제공할 것이다. 비트 카운터(227)는 제공된 SLC 데이터에 포함되는 논리 '1'이나 논리 '0'의 비트 수를 카운트하고, 카운트된 값을 비트 카운트(Yi)로 출력할 것이다. 그러면 입출력 버퍼(224)는 비트 카운트(Yi) 값을 이진 값으로 메모리 컨트롤러(210)에 전달할 것이다.
도 17은 본 발명의 다른 실시 예에 따른 저장 장치의 동작을 보여주는 도면이다. 도 17을 참조하면, 메모리 컨트롤러(210, 도 15 참조)와 불휘발성 메모리 장치(220, 도 15 참조) 상호 간의 동작이 간략히 도시된다.
먼저, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(220)로 읽기 명령어(R_CMD)를 전달할 것이다. 여기서, 읽기 명령어(R_CMD)는 선택된 메모리 셀들에 저장된 복수의 페이지 데이터 중 어느 하나의 페이지일 수 있다. 즉, 읽기 명령어(R_CMD)에는 읽기 모드(MLC 모드) 정보를 포함할 것이다.
읽기 명령어(R_CMD)에 응답하여 불휘발성 메모리 장치(220)는 선택된 메모리 셀들에 대한 읽기 동작을 수행할 것이다. 즉, 불휘발성 메모리 장치(220)는 선택된 메모리 셀들에 대한 MLC 읽기를 수행한다. 여기서, 불휘발성 메모리 장치(220)는 선택된 메모리 셀들에 대한 SLC 읽기 동작을 수행할 것이다. 그리고 SLC 읽기 결과로 생성되는 데이터를 백업할 것이다. 더불어, 불휘발성 메모리 장치(220)는 적어도 2회의 SLC 읽기의 결과에 따라 래치된 데이터를 쿠킹하여 하나의 페이지 단위로 구성한다. 그리고 쿠킹을 통해서 구성된 데이터가 독출 데이터(R_Data)로써 메모리 컨트롤러(210)에 전달될 것이다.
독출 데이터(R_Data)를 수신한 메모리 컨트롤러(210)는 에러 검출 및 정정 연산을 수행한다. 만일, 에러가 검출되지 않거나 검출된 에러 비트의 수가 정정 가능한 경우, 선택된 메모리 셀들에 대한 읽기 절차는 종료된다(Yes 방향). 반면, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable error)가 검출되면(No 방향), 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)에 온셀 카운트(또는 오프셀 카운트)를 요청할 것이다.
그러면 불휘발성 메모리 장치(220)는 메모리 셀들에 대한 센싱 절차 없이 이미 래치에 백업된 SLC 데이터(S_Data)에 포함되는 논리 '1'의 비트 수를 카운트할 것이다. 그리고 논리 '1'의 비트 수(Yi)는 메모리 컨트롤러(210)로 제공된다.
이상에서는 노말 읽기 동작시에 페이지 버퍼(223)나 별도의 래치에 읽기 동작에서 생성되는 SLC 데이터(S_Data)를 백업하는 불휘발성 메모리 장치(220)의 기능이 설명되었다. 더불어, 불휘발성 메모리 장치(220)는 백업된 SLC 데이터(S_Data)로부터 논리 '1'의 비트 수를 카운트하여 메모리 컨트롤러(210)로 제공할 수 있다. 메모리 컨트롤러(210)는 온셀 카운트에 대응하는 산포골의 이동 크기를 추정할 수 있다. 이때, 메모리 컨트롤러(210)는 산포골 검출 테이블(215)을 사용할 수 있을 것이다. 이러한 메모리 컨트롤러(210)와 불휘발성 메모리 장치(220)의 상호 작용에 의해서 저장 장치(200)의 데이터 읽기 속도를 높일 수 있다.
도 18은 본 발명의 이점을 적용할 수 있는 다양한 멀티 레벨 셀들에 대한 문턱 전압 산포를 보여주는 도면들이다. 도 18을 참조하면, (I)은 2-비트 MLC의 문턱 전압 산포를 보여주고 (Ⅱ)는 4-비트 MLC의 문턱 전압 산포를 보여준다.
(I)에 도시된 2-비트 MLC의 문턱 전압 산포에서 읽기 전압(RV1, RV3)은 MSB 페이지에 대한 읽기 전압을 보여준다. 그리고 (Ⅱ)에 도시된 4-비트 MLC의 문턱 전압 산포에서 읽기 전압들(RV2, RV7, RV13)은 MSB 페이지를 읽기 위한 읽기 전압들을 나타낸다. 이러한 읽기 전압들은 MLC 읽기를 위한 읽기 전압들을 나타내며, 본 발명의 불휘발성 메모리 장치에서는 MLC 읽기 과정에서 생성되는 SLC 데이터들이 별도로 구비되는 래치나 페이지 버퍼의 데이터 래치에 백업될 수 있다.
그리고 산포골 검출을 위한 연산을 위해서 메모리 컨트롤러에서 SLC 데이터를 요청하는 경우, 불휘발성 메모리 장치는 별도의 센싱 절차없이 백업된 SLC 데이터(S_Data)를 출력할 수 있을 것이다.
도 19는 본 발명의 또 다른 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 19를 참조하면, 저장 장치(300)는 메모리 컨트롤러(310) 및 불휘발성 메모리 장치(320)를 포함할 수 있다. 메모리 컨트롤러(310)는 읽기 동작시 선택된 메모리 셀에 대한 추가적인 읽기 동작 없이 독출된 데이터를 참조하여 선택된 영역에 대한 읽기 전압을 최적화할 수 있다. 좀더 구체적으로 설명하면 다음과 같다.
메모리 컨트롤러(310)는 호스트(Host)의 요청에 응답하여 불휘발성 메모리 장치(320)를 제어한다. 메모리 컨트롤러(310)는 호스트(Host)로부터 읽기 요청이 전달되면 해당 위치의 데이터를 센싱 및 출력하도록 불휘발성 메모리 장치(320)를 제어할 것이다. 즉, 메모리 컨트롤러(310)는 선택된 메모리 셀들에 대한 읽기 명령어(R_CMD)를 제공할 것이다.
메모리 컨트롤러(310)는 선택된 메모리 영역으로부터 읽기 명령어(R_CMD)에 응답하여 제공된 독출 데이터(R_Data)를 산포골 검출에 사용할 수 있다. 즉, 불휘발성 메모리(320)는 읽기 명령어(R_CMD)에 따라 선택된 셀 영역을 센싱할 것이다. 그리고 불휘발성 메모리 장치(320)는 센싱된 데이터를 래치하여 독출 데이터(R_Data)로 출력할 것이다. 나아가, 불휘발성 메모리 장치(320)는 독출 데이터(R_Data)의 독출 과정에서 수행된 적어도 하나의 싱글 레벨 셀 읽기(SLC read)의 결과 데이터를 특정 래치에 백업할 필요가 없다.
메모리 컨트롤러(310)는 독출 데이터(R_Data)에 대한 에러 검출 및 정정을 수행한다. 만일, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable Error)가 존재하는 경우, 메모리 컨트롤러(310)는 독출 데이터(R_Data)에 포함되는 논리 '0'과 논리 '1'의 수를 참조하여 산포골의 이동 크기를 추정한다. 즉, 산포골을 검출하기 위한 SLC 데이터(S_Data)를 얻기 위한 불휘발성 메모리 장치(320)로의 어떠한 접근도 필요치 않다. 단지 메모리 컨트롤러(310)는 산포골의 검출을 위해 독출 데이터(R_Data)에 포함되는 논리 '1' 또는 논리 '0'의 상대적인 차이나 비율, 또는 논리 '1'이나 논리 '0'의 기준 비트 수에 대한 변화량 등을 검출할 것이다.
이어서, 메모리 컨트롤러(310)는 독출 데이터(R_Data)에 포함되는 논리 '1'이나 논리 '0'의 수를 이용하여 산포골 검출 테이블(315)에 맵핑 정보를 검색할 것이다. 산포골 검출 테이블(315)에는 독출 데이터(R_Data)에 균일하게 분포하는 논리 '1'과 논리 '0'의 상대적 비율의 변화, 적대적인 비트 수의 변화 등을 검출하여 메모리 셀의 산포골 이동을 검출할 것이다. 여기서, 산포골 검출 테이블(315)은 다양한 기준에 따라 구성될 수 있다.
여기서, 산포골 검출 테이블(315)은 다양한 기준에 따라 산포골의 이동 크기를 추정할 수 있다. 예를 들면, 산포골 검출 테이블(315)은 독출 데이터(R_Data)에 포함되는 논리 '1'과 논리 '0'의 개수 차이값에 따라 산포골의 이동 크기(ΔV)를 맵핑할 수 있다. 또는, 산포골 검출 테이블(315)은 독출 데이터(R_Data)에 포함되는 논리 '1'과 논리 '0'의 상대적인 비율에 따라 산포골의 이동 크기(ΔV)를 맵핑할 수 있다. 산포골 검출 테이블(315)은 독출 데이터(R_Data)에 포함되는 논리 '1'의 개수와 기준값의 차이값에 따라 산포골의 이동 크기(ΔV)를 맵핑할 수 있다. 또는, 산포골 검출 테이블(315)은 독출 데이터(R_Data)에 포함되는 논리 '0'의 개수와 기준값의 차이값에 따라 산포골의 이동 크기(ΔV)를 맵핑할 수 있다.
게다가, 산포골 검출 테이블(315)은 상술한 독출 데이터(R_Data)에 포함되는 논리 '1' 또는 논리 '0'의 수나 비율의 기준을 메모리 셀의 열화 정도, 블록이나 워드 라인에 따라, 또는 프로그램 모드(SLC/MLC/TLC/QLC)에 차별적으로 적용할 수 있을 것이다. 또는, 산포골 검출 테이블(315)은 메모리 셀의 열화 정도, 블록이나 워드 라인에 따라, 또는 프로그램 모드(SLC/MLC/TLC/QLC)에 따라 산포골의 이동 크기(ΔV)에 대응하는 읽기 전압 오프셋을 다르게 맵핑할 수 있을 것이다.
불휘발성 메모리 장치(320)는 하나 또는 그보다 많은 메모리 장치들로 구성될 수 있다. 불휘발성 메모리 장치(320)는 메모리 컨트롤러(310)의 읽기 명령(R_CMD)에 응답하여 선택된 메모리 셀들을 센싱하고 쿠킹을 수행하여 독출 데이터(R_Data)로 출력할 것이다. 더불어, 불휘발성 메모리 장치(320)는 노말 읽기 동작중에 페이지 버퍼나 특정 래치에 SLC 데이터를 백업하지 않을 것이다.
본 발명의 실시 예에 따르면, 저장 장치(300)는 정정 불가한 에러를 포함하는 데이터가 존재하는 경우, 불휘발성 메모리 장치(320)로의 접근없이 산포골의 이동이나 리텐션의 크기를 추정할 수 있다. 즉, 에러가 발생한 독출 데이터 자체의 논리 '1'이나 논리 '0'의 수 또는 비율을 참조하여 산포골의 이동 크기를 계산할 수 있다. 따라서, 저장 장치(300)는 정정 불가한 에러가 존재하는 불휘발성 메모리 장치(320)를 포함함에도 고속의 읽기 성능을 제공할 수 있다.
도 20은 도 19의 불휘발성 메모리 장치를 보여주는 블록도이다. 도 20을 참조하면, 불휘발성 메모리 장치(320)는 셀 어레이(321), 행 디코더(322), 페이지 버퍼(323), 입출력 버퍼(324), 제어 로직(325) 그리고 전압 발생기(326)를 포함한다. 여기서, 셀 어레이(321), 행 디코더(322), 입출력 버퍼(324), 제어 로직(325) 그리고 전압 발생기(326)의 구성 및 기능은 도 4의 그것들과 실질적으로 동일하다. 따라서, 이것들에 대한 구체적인 설명은 생략될 것이다.
하지만, 불휘발성 메모리 장치(320)는 도 4의 불휘발성 메모리 장치(120)와 달리 SLC 데이터(S_Data)를 백업하거나 래치에 유지할 필요가 없다. 왜냐하면, 메모리 컨트롤러(310)에서 산포골을 검출하기 위해서 사용되는 데이터는 적어도 2회의 SLC 읽기 후 페이지 버퍼(323)에서 쿠킹된 데이터이기 때문이다.
도 21은 본 발명의 실시 예에 따른 저장 장치(300)의 동작을 보여주는 도면이다. 도 21을 참조하면, 메모리 컨트롤러(310)와 불휘발성 메모리 장치(320) 상호 간의 동작이 간략히 도시되어 있다.
먼저, 메모리 컨트롤러(310)는 불휘발성 메모리 장치(320)로 읽기 명령어(R_CMD)를 전달할 것이다. 여기서, 읽기 명령어(R_CMD)는 선택된 메모리 셀들에 저장된 복수의 페이지 데이터 중 어느 하나의 페이지일 수 있다.
읽기 명령어(R_CMD)에 응답하여 불휘발성 메모리 장치(320)는 선택된 메모리 셀들에 대한 읽기 동작을 수행할 것이다. 즉, 불휘발성 메모리 장치(320)는 선택된 메모리 셀들에 대한 MLC 데이터의 읽기를 수행한다. 여기서, 불휘발성 메모리 장치(320)는 선택된 메모리 셀들에 대한 MLC 데이터를 센싱하기 위하여 복수의 읽기 전압을 사용할 수 있다. 그리고 복수의 읽기 전압을 사용한 센싱 결과는 페이지 버퍼(323)의 데이터 래치에 저장되고 출력될 것이다. 하지만, 여기서 복수의 읽기 전압들 중 어느 하나에 의해서 센싱된 SLC 데이터를 개별적으로 백업할 필요는 없다. 즉, 불휘발성 메모리 장치(320)는 센싱 및 래치된 데이터를 쿠킹하여 하나의 페이지 단위로 구성한 후에 독출 데이터(R_Data)로 출력할 것이다.
독출 데이터(R_Data)를 수신한 메모리 컨트롤러(310)는 에러 검출 및 정정 연산을 수행한다. 만일, 에러가 검출되지 않거나 검출된 에러 비트의 수가 정정 가능한 경우, 선택된 메모리 셀들에 대한 읽기 절차는 종료된다(Yes 방향). 반면, 독출 데이터(R_Data)에 정정 불가한 에러(Un-correctable Error)가 검출되면(No 방향), 메모리 컨트롤러(310)는 독출 데이터(R_Data)만을 사용하여 산포골의 이동 크기를 검출한다. 즉, 메모리 컨트롤러(310)는 정정 불가한 에러가 존재하는 독출 데이터(R_Data)에 포함되는 논리 '1' 또는 논리 '0'의 증감 또는 상대적인 비율을 참조하여 산포골의 이동 크기를 결정할 것이다.
정상적인 랜덤화 연산에 의해서 처리된 데이터라면, 독출 데이터(R_Data)에 포함되는 논리 '0'과 논리 '1'의 수는 동일하거나 비슷하게 유지될 것이다. 또한, 논리 '1' 또는 논리 '0'의 수와 독출 데이터(R_Data)의 전체 비트 수에 대한 비율은 이상적인 경우에 1/2을 유지할 것이다. 하지만, 다양한 요인으로 인한 문턱 전압 산포의 퍼짐과 처짐으로 인해서 산포골이 이동하면, 이러한 균형은 깨지게 된다. 메모리 컨트롤러(310)는 독출 데이터(R_Data)의 논리 '1' 또는 논리 '0'의 수나 비율의 증감을 산포골의 이동의 크기(ΔV)와 맵핑한 산포골 검출 테이블(315)을 사용하여 읽기 전압을 선택할 것이다.
메모리 컨트롤러(310)는 선택된 읽기 전압에 따라 선택된 메모리 셀들을 독출하도록 불휘발성 메모리 장치(320)에 재독출 요청을 전송할 것이다. 그러면, 불휘발성 메모리 장치(320)는 조정된 읽기 전압을 사용하여 센싱 및 래치한 재독출 데이터(RR_Data)를 메모리 컨트롤러(310)로 전달할 것이다.
본 발명의 저장 장치(300)에 따르면, 산포골의 검출 연산을 위해서 추가적인 불휘발성 메모리 장치(320)로의 접근이 불필요하다. 즉, 산포골의 검출 연산이 에러가 존재하는 독출 데이터(R_Data)를 사용하여 수행되기 때문에, 신속한 읽기 전압의 조정이 가능하다. 따라서, 본 발명의 저장 장치(300)에 따르면 독출 데이터(R_Data)에 에러가 존재하는 경우에도 산포골의 검출 연산을 위한 불휘발성 메모리 장치(320)로의 접근 절차가 불필요하기 때문에 높은 읽기 성능을 유지할 수 있다.
도 22는 도 19에 도시된 산포골 검출 테이블(315)의 일 예를 보여주는 표이다. 도 22를 참조하면, 산포골 검출 테이블(315)에는 논리 '1'의 증감에 따른 산포골의 이동 크기가 맵핑되어 있다.
메모리 컨트롤러(310)는 독출 데이터(R_Data)에 대한 에러 검출 및 정정을 수행한다. 독출 데이터(R_Data)에 정정 불가한 에러가 존재하는 것으로 검출되면, 메모리 컨트롤러(310)는 독출 데이터(R_Data)에 포함되는 논리 '1'이나 논리 '0'의 증감을 검출할 것이다. 설명의 편의를 위하여 표에서는 논리 '1'의 수를 예시적으로 검출하는 것으로 한다.
메모리 컨트롤러(310)는 독출 데이터(R_Data)로부터 논리 '1'의 증감을 검출할 것이다. 예를 들면, 독출 데이터(R_Data)에 포함되는 논리 '1'의 기준 수(Rn)에 비해서 1개 내지 5개 증가한 것으로 검출되면, 메모리 컨트롤러(310)는 산포골의 위치가 α만큼 증가한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 α만큼 높게 조정할 것이다. 여기서 하나의 읽기 전압(RV)에 대해서 설명하고 있으나, 복수의 읽기 전압들에 대한 조정치를 α 또는 산포의 위치에 따른 오프셋을 적용하여 조정할 수 있을 것이다.
만일, 독출 데이터(R_Data)에 포함되는 논리 '1'의 기준 수(Rn)에 비해서 1개 내지 4개 감소한 것으로 검출되면, 메모리 컨트롤러(310)는 산포골의 위치가 변하지 않은 것으로 판단할 수 있을 것이다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 조정하지 않을 수도 있다.
독출 데이터(R_Data)에 포함되는 논리 '1'의 기준 수(Rn)에 비해서 5개 내지 9개 감소한 것으로 검출되면, 메모리 컨트롤러(310)는 산포골의 위치가 α만큼 감소한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 α만큼 낮게 조정할 것이다.
독출 데이터(R_Data)에 포함되는 논리 '1'의 기준 수(Rn)에 비해서 10개 내지 19개 감소한 것으로 검출되면, 메모리 컨트롤러(310)는 산포골의 위치가 β만큼 감소한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 β만큼 낮게 조정할 것이다.
독출 데이터(R_Data)에 포함되는 논리 '1'의 기준 수(Rn)에 비해서 20개 내지 29개 감소한 것으로 검출되면, 메모리 컨트롤러(310)는 산포골의 위치가 γ만큼 감소한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 γ만큼 낮게 조정할 것이다.
이러한 방식으로 산포골 검출 테이블(315)을 사용하여 메모리 컨트롤러(310)는 산포골의 이동 크기를 논리 '1'의 증감을 참조하여 판단할 수 있다. 여기서, 논리 '1'의 증감으로 산포골의 이동을 판단하는 것으로 예시적으로 설명되었으나, 본 발명은 여기에 국한되지 않는다.
도 23은 도 19에 도시된 산포골 검출 테이블(315)의 다른 예를 보여주는 표이다. 도 23을 참조하면, 산포골 검출 테이블(315)에는 독출 데이터(R_Data)의 전체 비트 수에 대한 논리 '0'의 비율(RZ)에 따른 산포골의 이동 크기가 맵핑되어 있다. 여기서, 논리 '1'의 비율에 따라 산포골의 이동 크기가 맵핑될 수도 있음은 잘 이해될 것이다.
메모리 컨트롤러(310)는 독출 데이터(R_Data)로부터 논리 '0'의 비율(RZ)을 검출할 것이다. 독출 데이터(R_Data)에 포함되는 논리 '0'의 비율(RZ)이 11/20 이상이고 12/20 미만인 경우, 메모리 컨트롤러(310)는 산포골의 위치가 β만큼 증가한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 β만큼 높게 조정할 것이다.
만일, 독출 데이터(R_Data)에 포함되는 논리 '0'의 비율(RZ)이 10/20 이상이고 11/20 미만인 경우, 메모리 컨트롤러(310)는 산포골의 위치가 α만큼 증가한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 α만큼 높게 조정할 것이다.
독출 데이터(R_Data)에 포함되는 논리 '0'의 비율(RZ)이 9/20 이상이고 10/20 미만인 경우, 메모리 컨트롤러(310)는 산포골의 위치가 변하지 않은 것으로 판단할 수 있을 것이다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 조정하지 않을 수도 있다.
독출 데이터(R_Data)에 포함되는 논리 '0'의 비율(RZ)이 8/20 이상이고 9/20 미만인 경우, 메모리 컨트롤러(310)는 산포골의 위치가 α만큼 감소한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 α만큼 낮게 조정할 것이다.
독출 데이터(R_Data)에 포함되는 논리 '0'의 비율(RZ)이 7/20 이상이고 8/20 미만인 경우, 메모리 컨트롤러(310)는 산포골의 위치가 β만큼 감소한 것으로 결정할 수 있다. 따라서, 메모리 컨트롤러(310)는 산포골 검출 테이블(315)의 맵핑을 참조하여 읽기 전압을 β만큼 낮게 조정할 것이다.
이러한 방식으로 산포골 검출 테이블(315)을 사용하여 메모리 컨트롤러(310)는 산포골의 이동 크기를 논리 '0' 또는 논리 '1'의 비율 변화를 참조하여 판단할 수 있다.
도 24는 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 24를 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 산포골 검출 테이블(1215)를 구성한다. 그리고 SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)로부터 독출 데이터에 정정 불가한 에러가 검출되면, 불휘발성 메모리 장치(1230)에 대한 추가적인 접근없이 산포골의 이동을 추정하고 읽기 전압을 조정할 수 있다. 또는, 불휘발성 메모리 장치(1230)는 일반적인 MLC 읽기 동작시에 SLC 데이터를 백업하는 기능을 구비할 수도 있을 것이다. 따라서, 독출 데이터에 정정 불가한 에러가 존재하더라도 불휘발성 메모리 장치(1230)의 메모리 셀에 대한 접근 접근없이 산포골의 이동의 크기가 계산될 수 있다.
호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 수직 구조 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치는 실질적으로 도 1에서 설명된 것과 동일하게 구성될 수 있다.
도 25는 본 발명의 다른 실시 예에 따른 메모리 카드(2000)를 예시적으로 보여주는 블록도이다. 도 25를 참조하면, 본 발명에 따른 메모리 카드(2000)는 플래시 메모리(2100)와 플래시 컨트롤러(2200)를 포함할 수 있다. 플래시 컨트롤러(2200)는 메모리 카드(2000)의 외부로부터 수신된 제어 신호들에 기초하여 플래시 메모리(2100)를 제어할 수 있다.
상술한 메모리 카드(2000)에서, 플래시 메모리(2100)는 도 4, 도 14, 그리고 도 20의 불휘발성 메모리 장치들 중 적어도 하나와 실질적으로 동일하게 동작할 수 있다. 즉, 플래시 메모리(2100)는 선택된 메모리 셀들에 대해 서로 다른 읽기 전압들로 독출하여 플래시 컨트롤러(2200)에 제공할 수 있다.
플래시 컨트롤러(2200)는 산포골 검출 테이블(2250)을 구성할 수 있다. 그리고 플래시 컨트롤러(2200)는 플래시 메모리(2100)로부터 독출 데이터에 정정 불가한 에러가 검출되면, 플래시 메모리(2100)에 대한 추가적인 접근없이 산포골의 이동을 추정하고 읽기 전압을 조정할 수 있다. 또는, 플래시 메모리(2100)는 일반적인 MLC 읽기 동작시에 SLC 데이터를 백업하는 기능을 구비할 수도 있을 것이다. 따라서, 독출 데이터에 정정 불가한 에러가 존재하더라도 플래시 메모리(2100)의 메모리 셀에 대한 접근 접근없이 산포골의 이동의 크기가 계산될 수 있다.
본 발명의 메모리 카드(2000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 카드, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 메모리 카드(2000)는 디지털, 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 산업 표준을 만족하는 카드를 구성할 수 있다.
도 26은 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도이다. 도 26을 참조하면, 본 발명에 따른 컴퓨팅 시스템(3000)은 시스템 버스(3700)에 전기적으로 연결되는 네트워크 어댑터(3100), 중앙처리장치(3200), 대용량 저장 장치(3300), 램(3400), 롬(3500) 그리고 사용자 인터페이스(3600)를 포함한다.
네트워크 어댑터(3100)는 컴퓨팅 시스템(3000)과 외부의 네트워크(4000) 간의 인터페이싱을 제공한다. 중앙처리장치(3200)는 램(3400)에 상주하는 운영 체제(Operating System)나 응용 프로그램(Application Program)을 구동하기 위한 제반 연산처리를 수행한다. 대용량 저장 장치(3300)는 컴퓨팅 시스템(3000)에서 필요한 제반 데이터를 저장한다. 예를 들면, 대용량 저장 장치(3300)에는 컴퓨팅 시스템(3000)을 구동하기 위한 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module), 프로그램 데이터(Program data) 그리고 유저 데이터(User data) 등이 저장된다.
램(3400)은 컴퓨팅 시스템(3000)의 워킹 메모리로 사용될 수 있다. 부팅시에 램(3400)에는 대용량 저장 장치(3300)로부터 읽혀진 운영 체제(Operating System), 응용 프로그램(Application Program), 다양한 프로그램 모듈(Program Module)과 프로그램들의 구동에 소요되는 프로그램 데이터(Program data)가 로드된다. 롬(3500)에는 부팅시 운영 체제(Operating System)가 구동되기 이전부터 활성화되는 기본적인 입출력 시스템인 바이오스(BIOS: Basic Input/Output System)가 저장된다. 유저 인터페이스(3600)를 통해서 컴퓨팅 시스템(3000)과 사용자 사이의 정보 교환이 이루어진다.
이외에도, 컴퓨팅 시스템(3000)은 배터리(Battery)나 모뎀(Modem) 등을 더 포함할 수 있다. 또한, 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
대용량 저장 장치(3300)는 SSD(Solid State Drive), MMC 카드(Multimedia Card), SD 카드(Secure Digital Card), 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card) 등으로 구성될 수 있다. 본 발명의 대용량 저장 장치(3300)는 쓰기 요청되는 데이터의 사이즈 또는 버퍼 영역의 상태에 따라서 의사 프로그램 동작을 수행할 수 있다. 본 발명의 대용량 저장 장치(3300)는 정정 불가한 에러가 발생하는 경우, 메모리 셀에 대한 재접근 없이 읽기 전압을 조정할 수 있다.
비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩세트(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
본 발명에 따른 반도체 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 반도체 그리고/또는 컨트롤러는 PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline), TQFP(Thin Quad Flatpack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 불휘발성 메모리 장치의 읽기 방법에 있어서:
    제 1 읽기 전압에 따라 상기 불휘발성 메모리 장치의 선택된 메모리 영역의 데이터를 독출하는 단계;
    상기 독출된 데이터의 에러를 검출 및 정정하는 단계; 그리고
    상기 독출된 데이터의 에러 정정이 불가한 경우, 상기 독출된 데이터에 포함되는 논리 '0' 또는 논리 '1'의 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 단계를 포함하는 읽기 방법.
  2. 제 1 항에 있어서,
    상기 메모리 영역에 저장된 데이터는 랜덤화 연산에 따라 논리 '1' 및 논리 '0'의 비율이 특정 비율을 유지하도록 인코딩된 읽기 방법.
  3. 제 1 항에 있어서,
    상기 논리 '0' 또는 논리 '1'의 수나 비율에 따라 상기 제 1 읽기 전압에 차감 또는 증가시킬 조정치의 크기를 산포골 검출 테이블을 통해서 검색하는 단계를 더 포함하는 읽기 방법.
  4. 제 3 항에 있어서,
    상기 산포골 검출 테이블은 상기 선택된 메모리 영역의 특성을 참조하여 상기 조정치의 크기를 다르게 제공하는 읽기 방법.
  5. 제 4 항에 있어서,
    상기 선택된 메모리 영역의 특성에는 웨어 레벨링, 셀당 저장되는 비트 수, 블록이나 워드 라인의 위치 중 적어도 하나를 포함하는 읽기 방법.
  6. 제 3 항에 있어서,
    상기 조정치의 크기는 복수의 문턱 전압 산포들의 위치에 따라 다르게 적용하는 읽기 방법.
  7. 제 1 항에 있어서,
    상기 제 2 읽기 전압을 결정하는 단계는, 상기 논리 '0' 또는 논리 '1'의 수나 비율을 특정 기준치와 비교하여 판단하는 단계를 더 포함하는 읽기 방법.
  8. 읽기 명령에 응답하여 선택된 메모리 셀들로부터 데이터를 독출하는 불휘발성 메모리 장치; 그리고
    상기 독출된 데이터에 정정 불가한 에러가 존재하는 경우에, 상기 불휘발성 메모리 장치로의 접근없이 상기 독출 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 메모리 컨트롤러를 포함하는 저장 장치.
  9. 제 8 항에 있어서,
    상기 메모리 컨트롤러에는 상기 독출 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율에 따라 읽기 전압을 조정하기 위한 조정치의 크기를 맵핑하기 위한 산포골 검출 테이블이 구성되는 저장 장치.
  10. 제 9 항에 있어서,
    상기 조정치는 상기 선택된 메모리 셀들의 어드레스, 웨어 레벨링, 셀당 저장되는 데이터 비트 수, 프로그램 시점으로부터의 경과 시간 등에 따라 다르게 적용되는 저장 장치.
  11. 제 8 항에 있어서,
    상기 선택된 메모리 셀들은 전하 트랩형 플래시 메모리로 형성되는 저장 장치.
  12. 불휘발성 메모리 장치의 읽기 방법에 있어서:
    상기 불휘발성 메모리 장치의 선택된 메모리 영역을 하나 이상의 읽기 전압으로 센싱하여 페이지 단위로 래치하는 단계;
    상기 래치된 데이터 중에서 어느 하나의 페이지 데이터를 백업하는 단계;
    상기 페이지 단위로 래치된 데이터를 조합하여 하나의 페이지 단위에 대응하는 독출 데이터로 출력하는 단계;
    상기 독출 데이터의 에러 정정이 불가한 경우, 상기 불휘발성 메모리 장치에 상기 백업된 어느 하나의 페이지 데이터를 요청하는 단계; 그리고
    상기 선택된 메모리 영역으로의 접근없이 상기 백업된 어느 하나의 페이지 데이터를 상기 하나 이상의 읽기 전압을 조정하기 위한 데이터로 출력하는 단계를 포함하는 읽기 방법.
  13. 제 12 항에 있어서,
    상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 수나 비율을 참조하여 재독출을 위한 읽기 전압을 결정하는 단계를 더 포함하는 읽기 방법.
  14. 제 12 항에 있어서,
    상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 수를 카운트하는 단계를 더 포함하되, 상기 불휘발성 메모리 장치는 상기 카운트된 값을 출력하는 읽기 방법.
  15. 읽기 명령에 응답하여 선택된 메모리 영역을 하나 이상의 제 1 읽기 전압으로 센싱하여 페이지 단위로 래치하고, 상기 페이지 단위로 래치된 데이터를 조합하여 하나의 페이지 단위에 대응하는 독출 데이터로 출력하되, 상기 래치된 데이터 중에서 어느 하나의 페이지 데이터를 백업 또는 유지하는 불휘발성 메모리 장치; 그리고
    상기 독출된 데이터에 정정 불가한 에러가 존재하는 경우에, 백업 또는 유지되는 어느 하나의 페이지 데이터를 제공받고, 상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율을 참조하여 상기 선택된 메모리 영역을 독출하기 위한 제 2 읽기 전압을 결정하는 메모리 컨트롤러를 포함하는 저장 장치.
  16. 제 15 항에 있어서,
    상기 메모리 컨트롤러에는 상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율에 따라 읽기 전압을 조정하기 위한 조정치의 크기를 맵핑하기 위한 산포골 검출 테이블이 구성되는 저장 장치.
  17. 제 16 항에 있어서,
    상기 조정치는 상기 선택된 메모리 셀들의 어드레스, 웨어 레벨링, 셀당 저장되는 데이터 비트 수, 프로그램 시점으로부터의 경과 시간 등에 따라 다르게 적용되는 저장 장치.
  18. 제 15 항에 있어서,
    상기 불휘발성 메모리 장치는:
    복수의 전하 트랩형 플래시 메모리 셀들을 포함하는 셀 어레이;
    상기 셀 어레이에 비트 라인들로 연결되며, 선택된 메모리 셀들에 저장된 데이터를 센싱 및 래치하는 페이지 버퍼;
    상기 제 1 읽기 전압 또는 제 2 읽기 전압을 상기 선택된 메모리 셀들의 워드 라인으로 제공하는 전압 발생기; 그리고
    상기 메모리 컨트롤러의 요청에 따라 상기 선택된 메모리 셀들에 저장된 데이터를 센싱 및 래치하고 출력하도록 상기 페이지 버퍼 및 전압 발생기를 제어하는 제어 로직을 포함하되,
    상기 페이지 버퍼는 상기 어느 하나의 페이지 데이터를 백업 또는 유지하기 위한 데이터 래치를 포함하는 저장 장치.
  19. 제 18 항에 있어서,
    상기 불휘발성 메모리 장치는 상기 메모리 컨트롤러로부터 상기 어느 하나의 페이지 데이터를 출력하기 위한 명령어를 수신하면, 상기 선택된 메모리 셀들에 대한 센싱 및 래치 절차 없이 상기 데이터 래치에 백업 또는 유지되는 상기 어느 하나의 페이지 데이터를 출력하는 저장 장치.
  20. 제 18 항에 있어서,
    상기 불휘발성 메모리 장치는 상기 어느 하나의 페이지 데이터에 포함되는 논리 '0' 또는 논리 '1'의 상대적인 수나 비율을 카운트하기 위한 비트 카운터를 포함하는 저장 장치.
KR1020140057304A 2014-05-13 2014-05-13 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법 KR102174030B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140057304A KR102174030B1 (ko) 2014-05-13 2014-05-13 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US14/692,494 US10490285B2 (en) 2014-05-13 2015-04-21 Storage device including nonvolatile memory device and read method thereof
CN201510239393.6A CN105097028B (zh) 2014-05-13 2015-05-12 包括非易失性存储器件的存储装置和该器件的读取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140057304A KR102174030B1 (ko) 2014-05-13 2014-05-13 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법

Publications (2)

Publication Number Publication Date
KR20150130633A true KR20150130633A (ko) 2015-11-24
KR102174030B1 KR102174030B1 (ko) 2020-11-05

Family

ID=54539062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140057304A KR102174030B1 (ko) 2014-05-13 2014-05-13 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법

Country Status (3)

Country Link
US (1) US10490285B2 (ko)
KR (1) KR102174030B1 (ko)
CN (1) CN105097028B (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170054634A (ko) * 2015-11-09 2017-05-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20170078407A (ko) * 2015-12-29 2017-07-07 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
KR20170086173A (ko) * 2016-01-15 2017-07-26 삼성전자주식회사 불휘발성 메모리 시스템
KR20190084779A (ko) * 2018-01-09 2019-07-17 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 스토리지 장치
WO2019173649A1 (en) * 2018-03-07 2019-09-12 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
US10437518B2 (en) 2017-08-18 2019-10-08 SK Hynix Inc. Memory system and method of operating the same
KR20200008889A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
WO2020092438A1 (en) * 2018-10-30 2020-05-07 Micron Technology, Inc. Relocating data to low latency memory
US10990476B2 (en) 2019-06-18 2021-04-27 SK Hynix Inc. Memory controller and method of operating the same
US11687249B2 (en) 2019-12-17 2023-06-27 SK Hynix Inc. Memory system and operation method thereof

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015037159A1 (ja) * 2013-09-13 2015-03-19 株式会社 東芝 半導体記憶装置及びメモリシステム
KR20160071054A (ko) * 2014-12-11 2016-06-21 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
CN107017026B (zh) * 2015-10-28 2020-04-28 威盛电子股份有限公司 非易失性存储器装置及其读取方法
KR102438988B1 (ko) * 2016-04-07 2022-09-02 삼성전자주식회사 랜덤화 연산을 수행하는 불휘발성 메모리 장치
KR20170120741A (ko) * 2016-04-21 2017-11-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP2017224370A (ja) * 2016-06-15 2017-12-21 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
TWI602115B (zh) * 2016-06-23 2017-10-11 慧榮科技股份有限公司 資料儲存裝置之資料儲存方法
TWI612525B (zh) * 2016-07-07 2018-01-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN107622783B (zh) * 2016-07-14 2020-06-09 群联电子股份有限公司 译码方法、存储器存储装置及存储器控制电路单元
CN106293539A (zh) * 2016-08-18 2017-01-04 华为技术有限公司 一种闪存设备的访问方法、装置和系统
KR20180040288A (ko) * 2016-10-12 2018-04-20 삼성전자주식회사 비휘발성 메모리 장치의 리클레임 제어 방법, 상기 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법 및 저장 장치
CN108241549B (zh) * 2016-12-27 2021-04-30 北京兆易创新科技股份有限公司 基于ECC的NAND数据Read Retry纠错方法和NAND控制器
US9811269B1 (en) * 2016-12-30 2017-11-07 Intel Corporation Achieving consistent read times in multi-level non-volatile memory
KR102663813B1 (ko) * 2017-01-13 2024-05-07 삼성전자주식회사 최적의 읽기 전압으로 독출하는 불휘발성 메모리 장치
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
KR102302187B1 (ko) * 2017-03-13 2021-09-14 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
KR20180131023A (ko) * 2017-05-31 2018-12-10 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그것의 동작 방법
CN109215717B (zh) * 2017-07-05 2020-12-04 北京兆易创新科技股份有限公司 Nand型浮栅存储器的读取方法及装置
KR102658792B1 (ko) * 2018-09-21 2024-04-18 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 동작 방법
KR102627873B1 (ko) * 2018-10-25 2024-01-23 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
KR102610821B1 (ko) * 2018-11-15 2023-12-06 삼성전자주식회사 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
KR102608958B1 (ko) 2018-11-19 2023-12-01 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
TWI690930B (zh) * 2019-01-09 2020-04-11 力晶積成電子製造股份有限公司 補償非易失性記憶元件在編程時電荷流失與源極線偏置的方法
KR20200098009A (ko) * 2019-02-11 2020-08-20 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
TWI774985B (zh) * 2019-09-09 2022-08-21 新唐科技股份有限公司 記憶體裝置、寫入方法以及讀取方法
KR20210048349A (ko) * 2019-10-23 2021-05-03 에스케이하이닉스 주식회사 메모리 시스템
KR20210092986A (ko) * 2020-01-17 2021-07-27 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 스토리지 시스템 및 스토리지 컨트롤러의 동작 방법
US11500719B1 (en) * 2020-03-31 2022-11-15 Amazon Technologies, Inc. Reliability improvements for memory technologies
US11081204B1 (en) 2020-06-22 2021-08-03 Micron Technology, Inc. Method for setting a reference voltage for read operations
KR20220003705A (ko) 2020-07-02 2022-01-11 삼성전자주식회사 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
KR20220045760A (ko) * 2020-10-06 2022-04-13 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20220107733A (ko) * 2021-01-26 2022-08-02 에스케이하이닉스 주식회사 보호모드를 지원하는 비휘발성 메모리 장치 및 그를 포함하는 메모리 시스템
DE102021129662A1 (de) 2021-03-24 2022-09-29 Samsung Electronics Co., Ltd. Betriebsverfahren eines speichercontrollers unter verwendudng eines zählwerts eines speicherdirektzugriffs, speichervorrichtung mit speichercontroller, und betriebsverfahren einer speichervorrichtung
KR20220140052A (ko) 2021-04-08 2022-10-18 삼성전자주식회사 히스토리 테이블을 사용하는 스토리지 컨트롤러의 동작 방법, 및 스토리지 컨트롤러를 포함하는 스토리지 장치
US11599300B2 (en) * 2021-04-19 2023-03-07 Micron Technology, Inc. Voltage threshold prediction-based memory management
CN116643915A (zh) * 2023-05-08 2023-08-25 西安秦派能智能科技有限公司 手机芯片数据恢复方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110004100A (ko) * 2009-07-07 2011-01-13 삼성전자주식회사 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템
US20120140560A1 (en) * 2010-12-07 2012-06-07 Tsung-Chieh Yang Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US20130070526A1 (en) * 2011-09-16 2013-03-21 Hee-seok Eun Flash memory and reading method of flash memory
KR20140006596A (ko) * 2012-07-06 2014-01-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257025B2 (en) 2004-12-09 2007-08-14 Saifun Semiconductors Ltd Method for reading non-volatile memory cells
US7447078B2 (en) * 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
JP2007207343A (ja) 2006-02-01 2007-08-16 Renesas Technology Corp 不揮発性半導体記憶装置
US7716538B2 (en) 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
JP5177991B2 (ja) * 2006-10-25 2013-04-10 株式会社東芝 不揮発性半導体記憶装置
US7941590B2 (en) 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US7903468B2 (en) 2007-04-23 2011-03-08 Ramot At Telaviv University Ltd. Adaptive dynamic reading of flash memories
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
KR100923820B1 (ko) * 2007-10-12 2009-10-27 주식회사 하이닉스반도체 페이지 버퍼, 이를 구비하는 메모리 소자 및 그 동작 방법
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
US8677221B2 (en) * 2008-01-02 2014-03-18 Apple Inc. Partial voltage read of memory
US8365039B2 (en) * 2008-05-21 2013-01-29 Intel Corporation Adjustable read reference for non-volatile memory
KR101423052B1 (ko) 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US8406048B2 (en) 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
KR101516577B1 (ko) * 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
KR101082650B1 (ko) 2009-01-21 2011-11-14 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
KR101044488B1 (ko) * 2009-01-21 2011-06-27 주식회사 하이닉스반도체 불휘발성 메모리 장치와 그를 이용한 불휘발성 메모리 장치의 프로그램 방법 및 검증 방법
US7848152B1 (en) 2009-05-12 2010-12-07 Skymedi Corporation Method and system for adaptively finding reference voltages for reading data from a MLC flash memory
KR101094605B1 (ko) 2009-06-29 2011-12-15 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 이의 독출 방법
CN101968970B (zh) * 2009-07-28 2014-10-08 慧国(上海)软件科技有限公司 资料读取的方法及资料储存装置
KR101603099B1 (ko) * 2009-10-01 2016-03-28 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
KR20110078727A (ko) 2009-12-31 2011-07-07 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
US8515183B2 (en) 2010-12-21 2013-08-20 Microsoft Corporation Utilizing images as online identifiers to link behaviors together
US8099652B1 (en) * 2010-12-23 2012-01-17 Sandisk Corporation Non-volatile memory and methods with reading soft bits in non uniform schemes
KR101212387B1 (ko) 2011-01-03 2012-12-13 에스케이하이닉스 주식회사 반도체 메모리 소자의 독출 방법
JP2012203957A (ja) 2011-03-25 2012-10-22 Toshiba Corp メモリシステム
KR101824068B1 (ko) * 2011-07-28 2018-03-15 삼성전자주식회사 메모리 컨트롤러 구동방법, 및 메모리 컨트롤러를 포함하는 메모리 시스템, 메모리 카드 및 휴대용 전자장치
US9047210B2 (en) * 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
KR20130034522A (ko) 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
KR101775660B1 (ko) * 2011-09-29 2017-09-07 삼성전자주식회사 워드 라인 전압의 변화없이 상이한 문턱 전압들을 갖는 메모리 셀들을 읽는 방법 및 그것을 이용한 불 휘발성 메모리 장치
US8811081B2 (en) * 2011-12-09 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages in a memory
JP2013122804A (ja) 2011-12-12 2013-06-20 Toshiba Corp 半導体記憶装置
KR20130084492A (ko) 2012-01-17 2013-07-25 삼성전자주식회사 비휘발성 메모리 시스템
KR20130087092A (ko) 2012-01-27 2013-08-06 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
US8839073B2 (en) * 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
US8811076B2 (en) * 2012-07-30 2014-08-19 Sandisk Technologies Inc. Systems and methods of updating read voltages
US9036417B2 (en) * 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US9299459B2 (en) * 2012-09-07 2016-03-29 Macronix International Co., Ltd. Method and apparatus of measuring error correction data for memory
KR20140045168A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
KR102038408B1 (ko) * 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR102083491B1 (ko) * 2012-12-05 2020-03-02 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 이의 동작 방법
US9135109B2 (en) * 2013-03-11 2015-09-15 Seagate Technology Llc Determination of optimum threshold voltage to read data values in memory cells
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
KR102140784B1 (ko) * 2013-12-03 2020-08-03 삼성전자주식회사 비휘발성 메모리 장치의 데이터 기록 방법
US9685242B2 (en) * 2014-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory system
US9928920B2 (en) * 2015-09-10 2018-03-27 Toshiba Memory Corporation Memory controller, storage device, and read retry method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110004100A (ko) * 2009-07-07 2011-01-13 삼성전자주식회사 불휘발성 메모리 장치의 읽기 방법 및 그것을 포함하는 메모리 시스템
US20120140560A1 (en) * 2010-12-07 2012-06-07 Tsung-Chieh Yang Method and memory controller for reading data stored in flash memory by referring to binary digit distribution characteristics of bit sequences read from flash memory
US20130070526A1 (en) * 2011-09-16 2013-03-21 Hee-seok Eun Flash memory and reading method of flash memory
KR20140006596A (ko) * 2012-07-06 2014-01-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170054634A (ko) * 2015-11-09 2017-05-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20170078407A (ko) * 2015-12-29 2017-07-07 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
KR20170086173A (ko) * 2016-01-15 2017-07-26 삼성전자주식회사 불휘발성 메모리 시스템
US10437518B2 (en) 2017-08-18 2019-10-08 SK Hynix Inc. Memory system and method of operating the same
KR20190084779A (ko) * 2018-01-09 2019-07-17 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 스토리지 장치
US11231995B2 (en) 2018-03-07 2022-01-25 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
US10540228B2 (en) 2018-03-07 2020-01-21 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
WO2019173649A1 (en) * 2018-03-07 2019-09-12 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
US11714710B2 (en) 2018-03-07 2023-08-01 Micron Technology, Inc. Providing data of a memory system based on an adjustable error rate
KR20200008889A (ko) * 2018-07-17 2020-01-29 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US10796769B2 (en) 2018-07-17 2020-10-06 SK Hynix Inc. Memory device and memory system having the same
WO2020092438A1 (en) * 2018-10-30 2020-05-07 Micron Technology, Inc. Relocating data to low latency memory
US11169747B2 (en) 2018-10-30 2021-11-09 Micron Technology, Inc. Relocating data to low latency memory
US11836392B2 (en) 2018-10-30 2023-12-05 Micron Technology, Inc. Relocating data to low latency memory
US10990476B2 (en) 2019-06-18 2021-04-27 SK Hynix Inc. Memory controller and method of operating the same
US11687249B2 (en) 2019-12-17 2023-06-27 SK Hynix Inc. Memory system and operation method thereof

Also Published As

Publication number Publication date
CN105097028B (zh) 2021-07-23
US10490285B2 (en) 2019-11-26
CN105097028A (zh) 2015-11-25
US20150332777A1 (en) 2015-11-19
KR102174030B1 (ko) 2020-11-05

Similar Documents

Publication Publication Date Title
KR102174030B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
KR102302187B1 (ko) 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
US9087608B2 (en) Method of programming non-volatile memory device and non-volatile memory device using the same
US9224483B2 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
US8386860B2 (en) Methods of calculating compensation voltage and adjusting threshold voltage and memory apparatus and controller
US8270227B2 (en) Nonvolatile memory device and method of reading same
KR102461447B1 (ko) 불휘발성 메모리 시스템
US9343158B2 (en) Methods of programming multi-level cell nonvolatile memory devices and devices so operating
US9281068B2 (en) Nonvolatile memory and related reprogramming method
KR102005888B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR20190079327A (ko) 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR101716716B1 (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
KR20140099999A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR20150107405A (ko) 불휘발성 메모리 시스템 및 그것의 동작 방법
KR102089570B1 (ko) 저장 장치 및 그것의 데이터 처리 방법
KR20100055906A (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
KR102530500B1 (ko) 메모리 시스템 및 그것의 동작 방법
KR20160052277A (ko) 반도체 장치 및 이의 동작 방법
KR102421103B1 (ko) 컨트롤러, 이를 포함하는 메모리 시스템 및 그것들의 동작 방법
KR101642930B1 (ko) 더미 셀을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법
CN113066517A (zh) 存储器系统及其操作方法
US11726871B2 (en) Storage controller for selecting a gear level of a storage device and storage system including the same
KR20160052278A (ko) 반도체 장치 및 이의 동작 방법
KR20230036351A (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
GRNT Written decision to grant