KR102353363B1 - 메모리 시스템의 동작 방법 - Google Patents

메모리 시스템의 동작 방법 Download PDF

Info

Publication number
KR102353363B1
KR102353363B1 KR1020170103154A KR20170103154A KR102353363B1 KR 102353363 B1 KR102353363 B1 KR 102353363B1 KR 1020170103154 A KR1020170103154 A KR 1020170103154A KR 20170103154 A KR20170103154 A KR 20170103154A KR 102353363 B1 KR102353363 B1 KR 102353363B1
Authority
KR
South Korea
Prior art keywords
read
tag
command
data
error correction
Prior art date
Application number
KR1020170103154A
Other languages
English (en)
Other versions
KR20190018324A (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 KR1020170103154A priority Critical patent/KR102353363B1/ko
Priority to US15/926,074 priority patent/US10725858B2/en
Priority to CN201810329839.8A priority patent/CN109388514B/zh
Publication of KR20190018324A publication Critical patent/KR20190018324A/ko
Priority to US16/927,106 priority patent/US11397639B2/en
Application granted granted Critical
Publication of KR102353363B1 publication Critical patent/KR102353363B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • 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/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • 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
    • 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/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

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

Abstract

본 기술은 제1 태그에 대한 리드 동작을 수행하는 단계; 제2 태그에 대한 리드 동작을 수행하는 단계; 상기 제1 태그의 리드 레이턴시(read latency)를 감소시키기 위한 방어코드 동작을 수행하는 단계; 상기 제1 태그에 대한 상기 방어코드 동작에 의해 출력된 데이터에 대해 에러 정정 동작을 수행하는 단계; 및 상기 제2 태그에 대한 방어코드 동작을 수행하는 단계를 포함하고, 상기 제2 태그에 대한 상기 리드 동작은 상기 제1 태그에 대한 상기 에러 정정 동작 완료 전 시작되고, 상기 제2 태그에 대한 상기 방어코드 동작은 상기 제1 태그에 대한 상기 방어코드 동작의 결과를 이용하여 수행되는 메모리 시스템의 동작 방법을 포함한다.

Description

메모리 시스템의 동작 방법{Operating method of memory system}
본 발명은 메모리 시스템의 동작 방법에 관한 것으로, 보다 구체적으로는 리드 레이턴시(read latency)를 감소시키기 위한 방어코드(defense code) 동작 방법에 관한 것이다.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 분류된다. 휘발성 메모리 장치에서는 전원(power)이 제거될 때 데이터는 유지되지 않는다. 그러나, 비휘발성 메모리 장치에서는 전원이 제거되더라도 데이터는 유지된다. 비휘발성 메모리 장치의 예들로서 ROM(read only memory), 또는 EEPROM(Electrically Erasable Programmable Read-Only Memory) 등이 있다.
플래시(flash) EEPROM으로 소개된 플래시 메모리 장치의 구조와 동작은 종래의 EEPROM의 구조와 동작과 서로 다르다. 상기 플래시 메모리 장치는 블록(block) 단위로 전기적 소거(electric erase) 동작을 수행하고 비트 단위로 프로그램 동작을 수행할 수 있다.
플래시 메모리 장치에 포함된 프로그램된 다수개의 메모리 셀들의 문턱 전압들(threshold voltages)은 여러 가지 원인, 예컨대 플로팅 게이트 커플링 (floating gate coupling), 시간의 경과에 따른 전하 손실(chargeloss) 등에 따라 변할 수 있다.
다수의 메모리 셀들의 문턱 전압들의 변화는 리드 동작의 페일(fail)을 유발할 수 있다. 이러한 리드 동작의 페일을 복구하기 위하여 최적의 리드 전압을 검색하고, 검색된 최적의 리드 전압을 이용하여 리드 동작이 재시도 될 수 있다.
본 발명의 실시 예는 메모리 시스템의 리드 레이턴시를 개선할 수 있는 메모리 시스템의 동작 방법을 제공한다.
본 발명의 실시 예에 따른 메모리 시스템의 동작 방법은 제1 태그에 대한 리드 동작을 수행하는 단계; 제2 태그에 대한 리드 동작을 수행하는 단계와, 상기 제1 태그에 대한 방어코드 동작을 수행하는 단계와, 상기 제1 태그에 대한 상기 방어코드 동작에 의해 출력된 데이터에 대해 에러 정정 동작을 수행하는 단계, 및 상기 제2 태그에 대한 방어코드 동작을 수행하는 단계를 포함하고, 상기 제2 태그에 대한 상기 리드 동작은 상기 제1 태그에 대한 상기 에러 정정 동작 완료 전 시작되고, 상기 제2 태그에 대한 상기 방어코드 동작은 상기 제1 태그에 대한 상기 방어코드 동작의 결과를 이용하여 수행된다.
본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법은 제1 태그에 대한 리드 동작을 수행하는 단계와, 제2 태그에 대한 리드 재시도 동작을 수행하는 단계와, 상기 제2 태그에 대한 상기 리드 재시도 동작에 의해 출력된 데이터에 대해 에러 정정 동작을 수행하는 단계, 및 상기 제1 태그에 대한 리드 재시도 동작을 수행하는 단계를 포함하고, 상기 제1 태그에 대한 상기 리드 동작은 상기 제2 태그에 대한 상기 리드 재시도 동작 진입 전 시작되고, 상기 제1 태그에 대한 상기 리드 재시도 동작은 상기 제2 태그에 대한 상기 리드 재시도 동작의 전압 조건에 기초하여 수행된다.
본 발명의 또 다른 실시 예에 따른 메모리 시스템의 동작 방법은 제1 태그에 대한 리드 동작을 수행하는 단계와, 제2 태그에 대한 리드 동작을 수행하는 단계와, 상기 제1 태그에 대한 방어코드 동작을 수행하는 단계; 제3 태그에 대한 프로그램 동작을 수행하는 단계, 및 상기 제3 태그에 대한 상기 프로그램 동작 완료 후 상기 제2 태그에 대한 방어코드 동작을 수행하는 단계를 포함하고, 상기 제2 태그에 대한 상기 방어코드 동작은 상기 제1 태그에 대한 상기 방어코드 동작의 결과를 이용하여 수행된다.
본 기술은 앞서 수행된 태그(Tag)의 방어코드 동작 결과를 다음에 수행될 태그에 활용하여 메모리 시스템의 리드 레이턴시를 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 메모리 컨트롤러를 설명하기 위한 도면이다.
도 3은 도 1의 메모리 장치를 설명하기 위한 도면이다.
도 4는 도 3의 메모리 블록을 설명하기 위한 도면이다.
도 5는 3차원으로 구성된 메모리 블록의 실시 예를 설명하기 위한 도면이다.
도 6은 섹터를 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 멀티-비트 메모리 셀들의 문턱 전압 분포 및 리드 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 실시 예에 따른 방어코드 동작 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시 예에 따른 방어코드 동작 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 12는 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 13은 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 14는 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 15는 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 16은 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 17은 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설기 위한 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(Memory System; 1000)은 데이터가 저장되는 메모리 장치(Memory Device; 1100)와, 호스트(Host; 2000)의 제어에 따라 메모리 장치(1100)를 제어하는 메모리 컨트롤러(Memory Controller; 1200)를 포함할 수 있다.
호스트(2000)는 PCI-E(Peripheral Component Interconnect - Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(serial attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 시스템(1000)과 통신할 수 있다. 또한 호스트(2000)와 메모리 시스템(1000) 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나일 수 있다.
메모리 컨트롤러(1200)는 메모리 시스템(1000)의 동작을 전반적으로 제어하며, 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어할 수 있다. 메모리 컨트롤러(1200)는 호스트(2000)의 요청에 따라 메모리 장치(1100)를 제어하여 데이터를 프로그램(program)하거나 리드(read)할 수 있다. 또한, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 포함된 메인 메모리 블록들 및 서브 메모리 블록들의 정보를 저장하고, 프로그램 동작을 위해 로딩된 데이터 량에 따라 메인 메모리 블록 또는 서브 메모리 블록에 프로그램 동작이 수행되도록 메모리 장치(1100)를 선택할 수 있다. 실시 예에 따라, 메모리 장치(1100)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR), RDRAM(Rambus Dynamic Random Access Memory) 또는 플래시 메모리(FLASH Memory)를 포함할 수 있다.
메모리 장치(1100)는 메모리 컨트롤러(1200)의 제어에 따라 프로그램(program), 리드(read) 또는 소거(erase) 동작을 수행할 수 있다.
도 2는 도 1의 메모리 컨트롤러를 설명하기 위한 도면이다.
도 2를 참고하면, 메모리 컨트롤러(1200)는 프로세서부(Processor; 710), 메모리 버퍼부(Memory Buffer; 720), 에러 정정부(ECC; 730), 호스트 인터페이스(Host Interface; 740), 버퍼 제어부(Buffer Control Circuit; 750), 메모리 인터페이스(Memory Interface; 760) 그리고 버스(Bus; 780)를 포함할 수 있다.
버스(780)는 메모리 컨트롤러(1200)의 구성 요소들 사이에 채널(channel)을 제공하도록 구성될 수 있다.
프로세서부(710)는 메모리 컨트롤러(1200)의 제반 동작을 제어하고, 논리 연산을 수행할 수 있다. 프로세서부(710)는 호스트 인터페이스(740)를 통해 외부의 호스트(2000)와 통신하고, 메모리 인터페이스(760)를 통해 메모리 장치(1100)와 통신할 수 있다. 또한 프로세서부(710)는 버퍼 제어부(750)를 통해 메모리 버퍼부(720)와 통신할 수 있다. 프로세서부(710)는 메모리 버퍼부(720)를 동작 메모리, 캐시 메모리(cache memory) 또는 버퍼 메모리(buffer memory)로 사용하여 메모리 시스템(1000)의 동작을 제어할 수 있다.
프로세서부(710)은 호스트(2000)로부터 입력된 다수의 커맨드들을 큐잉(queuing)할 수 있다. 이러한 동작을 멀티-큐(multi-queue)라고 부른다. 이때 큐잉된 커맨드를 태그(Tag)라고 부를 수 있다. 프로세서부(710)은 큐잉된 다수의 태그들을 순차적으로 메모리 장치(1100)에 전달할 수 있다. 또한 프로세서부(710)은 큐잉된 다수의 태그들의 순서를 변경하여 메모리 장치(1100)에 전달할 수 있다. 다시 말해 프로세서부(710)은 큐잉된 다수의 태그들을 효율적으로 처리하기 위하여 우선 순위 부여 또는 상호 참조 등의 다양한 방법을 활용할 수 있다.
메모리 버퍼부(720)는 프로세서부(710)의 동작 메모리, 캐시 메모리 또는 버퍼 메모리로 사용될 수 있다. 메모리 버퍼부(720)는 프로세서부(710)가 실행하는 코드들 및 커맨드들을 저장할 수 있다. 메모리 버퍼부(720)는 프로세서부(710)에 의해 처리되는 데이터를 저장할 수 있다. 메모리 버퍼부(720)는 SRAM(Static RAM), 또는 DRAM(Dynamic RAM)을 포함할 수 있다.
에러 정정부(730)는 에러 정정을 수행할 수 있다. 에러 정정부(730)는 메모리 인터페이스(760)를 통해 메모리 장치(1100)에 기입될 데이터에 기반하여 에러 정정 인코딩(ECC encoding)을 수행할 수 있다. 에러 정정 인코딩 된 데이터는 메모리 인터페이스(760)를 통해 메모리 장치(1100)로 전달될 수 있다. 에러 정정부(730)는 메모리 장치(1100)로부터 메모리 인터페이스(760)를 통해 수신되는 데이터에 대해 에러 정정 디코딩(ECC decoding)을 수행할 수 있다. 예시적으로, 에러 정정부(730)는 메모리 인터페이스(760)의 구성 요소로서 메모리 인터페이스(760)에 포함될 수 있다.
호스트 인터페이스(740)는 프로세서부(710)의 제어에 따라, 외부의 호스트(2000)와 통신하도록 구성된다. 호스트 인터페이스(740)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식들 중 적어도 하나를 이용하여 통신하도록 구성될 수 있다.
버퍼 제어부(750)는 프로세서부(710)의 제어에 따라, 메모리 버퍼부(720)를 제어하도록 구성된다.
메모리 인터페이스(760)는 프로세서부(710)의 제어에 따라, 메모리 장치(1100)와 통신하도록 구성된다. 메모리 인터페이스(760)는 채널을 통해 커맨드, 어드레스 및 데이터를 메모리 장치(1100)와 통신할 수 있다.
예시적으로, 메모리 컨트롤러(1200)는 메모리 버퍼부(720) 및 버퍼 제어 회로(126)를 포함하지 않을 수 있다.
예시적으로, 프로세서부(710)는 코드들을 이용하여 메모리 컨트롤러(1200)의 동작을 제어할 수 있다. 프로세서부(710)는 메모리 컨트롤러(1200)의 내부에 제공되는 불휘발성 메모리 장치(예를 들어, Read Only Memory)로부터 코드들을 로드할 수 있다. 다른 예로서, 프로세서부(710)는 메모리 장치(1100)로부터 메모리 인터페이스(760)를 통해 코드들을 로드(load)할 수 있다.
데이터 랜더마이저(Data Randomizer; 770)는 데이터를 랜덤화(randomizing) 하거나 랜덤화 된 데이터를 디랜덤화(de-randomizing) 할 수 있다. 데이터 랜더마이저(770)는 메모리 인터페이스(760)를 통해 메모리 장치(1100)에 기입될 데이터에 대해 데이터 랜덤화 동작을 수행할 수 있다. 랜덤화 된 데이터는 메모리 인터페이스(760)를 통해 메모리 장치(1100)로 전달될 수 있다. 데이터 랜더마이저(770)는 메모리 장치(1100)로부터 메모리 인터페이스(760)를 통해 수신되는 데이터에 대해 데이터 디랜덤화 동작을 수행할 수 있다. 예시적으로, 데이터 랜더마이저(770)는 메모리 인터페이스(760)의 구성 요소로서 메모리 인터페이스(760)에 포함될 수 있다.
예시적으로, 메모리 컨트롤러(1200)의 버스(780)는 제어 버스(control bus) 및 데이터 버스(data bus)로 구분될 수 있다. 데이터 버스는 메모리 컨트롤러(1200) 내에서 데이터를 전송하고, 제어 버스는 메모리 컨트롤러(1200) 내에서 커맨드, 어드레스와 같은 제어 정보를 전송하도록 구성될 수 있다. 데이터 버스와 제어 버스는 서로 분리되며, 상호간에 간섭하거나 영향을 주지 않을 수 있다. 데이터 버스는 호스트 인터페이스(740), 버퍼 제어부(750), 에러 정정부(730) 및 메모리 인터페이스(760)에 연결될 수 있다. 제어 버스는 호스트 인터페이스(740), 프로세서부(710), 버퍼 제어부(750), 메모리 버퍼부(720) 및 메모리 인터페이스(760)에 연결될 수 있다.
도 3은 도 1의 메모리 장치를 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 장치(1100)는 데이터가 저장되는 메모리 셀 어레이(100)를 포함할 수 있다. 메모리 장치(1100)는 메모리 셀 어레이(100)에 데이터를 저장하기 위한 프로그램 동작(program operation), 저장된 데이터를 출력하기 위한 리드 동작(read operation) 및 저장된 데이터를 소거하기 위한 소거 동작(erase operation)을 수행하도록 구성된 주변 회로들(200)을 포함할 수 있다. 메모리 장치(1100)는 메모리 컨트롤러(도 1의 1200)의 제어에 따라 주변 회로들(200)을 제어하는 제어 로직(300)을 포함할 수 있다.
메모리 셀 어레이(100)는 다수의 메모리 블록들(MB1 내지 MBk; 110 (k는 양의 정수))을 포함할 수 있다. 각각의 메모리 블록들(MB1 내지 MBk; 110)에는 로컬 라인들(local lines; LL)과 비트 라인들(BL1 내지 BLn; n은 양의 정수)이 연결될 수 있다. 로컬 라인들(LL)은 제1 셀렉트 라인(first select line), 제2 셀렉트 라인(second select line), 상기 제1 및 제2 셀렉트 라인들 사이에 배열된 다수의 워드 라인들(word lines)을 포함할 수 있다. 또한, 로컬 라인들(LL)은 제1 셀렉트 라인과 워드 라인들 사이, 제2 셀렉트 라인과 워드 라인들 사이에 배열된 더미 라인들을 포함할 수 있다. 여기서, 제1 셀렉트 라인은 소스 셀렉트 라인일 수 있고, 제2 셀렉트 라인은 드레인 셀렉트 라인일 수 있다. 로컬 라인들(LL)은 워드 라인들, 드레인 및 소스 셀렉트 라인들 및 소스 라인들(source lines, SL)을 포함할 수 있다. 로컬 라인들(LL)은 더미 라인들(dummy lines)을 더 포함할 수 있다. 로컬 라인들(LL)은 파이프 라인들(pipe lines)을 더 포함할 수 있다. 로컬 라인들(LL)은 메모리 블록들(MB1 내지 MBk; 110)에 각각 연결될 수 있으며, 비트 라인들(BL1 내지 BLn)은 메모리 블록들(MB1 내지 MBk; 110)에 공통으로 연결될 수 있다. 메모리 블록들(MB1 내지 MBk; 110)은 2차원 또는 3차원 구조로 구현될 수 있다. 2차원 구조의 메모리 블록들(110)에서 메모리 셀들은 기판에 평행한 방향으로 배열될 수 있다. 3차원 구조의 메모리 블록들(110)에서 메모리 셀들은 기판에 수직 방향으로 적층될 수 있다.
주변 회로들(200)은 제어 로직(300)의 제어에 따라 선택된 메모리 블록(110)의 프로그램, 리드 및 소거 동작을 수행하도록 구성될 수 있다. 주변 회로들(200)은 제어 로직(300)의 제어에 따라 제1 셀렉트 라인, 제2 셀렉트 라인 및 워드 라인들에 검증 전압 및 패스 전압들을 공급하고, 제1 셀렉트 라인, 제2 셀렉트 라인 및 워드 라인들을 선택적으로 디스차지할 수 있고, 워드 라인들 중 선택된 워드 라인에 연결된 메모리 셀들을 검증할 수 있다. 주변 회로들(200)은 전압 생성 회로(volTage generating circuit; 210), 로우 디코더(row decoder; 220), 페이지 버퍼 그룹(page buffer group; 230), 컬럼 디코더(column decoder; 240), 입출력 회로(input/output circuit; 250) 및 센싱 회로(sensing circuit; 260)를 포함할 수 있다.
전압 생성 회로(210)는 동작 신호(OP_CMD)에 응답하여 프로그램, 리드 및 소거 동작들에 사용되는 다양한 동작 전압들(Vop)을 생성할 수 있다. 또한, 전압 생성 회로(210)는 동작 신호(OP_CMD)에 응답하여 로컬 라인들(LL)을 선택적으로 디스차지할 수 있다. 전압 생성 회로(210)는 제어 로직(300)의 제어에 따라 프로그램 전압, 검증 전압, 패스 전압들, 턴온 전압, 리드 전압, 소거 전압 및 소스 라인 전압 등을 생성할 수 있다.
로우 디코더(row decoder; 220)는 로우 어드레스(RADD)에 응답하여 동작 전압들(Vop)을 선택된 메모리 블록(110)에 연결된 로컬 라인들(LL)에 전달할 수 있다.
페이지 버퍼 그룹(230)은 비트 라인들(BL1 내지 BLn)에 연결된 다수의 페이지 버퍼들(PB1 내지 PBn; 231)을 포함할 수 있다. 페이지 버퍼들(PB1 내지 PBn; 231)은 페이지 버퍼 제어 신호들(PBSIGNALS)에 응답하여 동작할 수 있다. 페이지 버퍼들(PB1 내지 PBn; 231)은 비트 라인들(BL1 내지 BLn)을 통해 수신된 데이터를 임시로 저장하거나, 리드 또는 검증 동작 시, 비트 라인들(BL1 내지 BLn)의 전압 또는 전류를 센싱(sensing)할 수 있다.
컬럼 디코더(240)는 컬럼 어드레스(CADD)에 응답하여 입출력 회로(250)와 페이지 버퍼 그룹(230) 사이에서 데이터를 전달할 수 있다. 컬럼 디코더(240)는 데이터 라인들(DL)을 통해 페이지 버퍼들(231)과 데이터를 주고받거나, 컬럼 라인들(CL)을 통해 입출력 회로(250)와 데이터를 주고받을 수 있다.
입출력 회로(250)는 메모리 컨트롤러(도 1의 1200)로부터 전달받은 커맨드(CMD) 및 어드레스(ADD)를 제어 로직(300)에 전달하거나, 데이터(DATA)를 컬럼 디코더(240)와 주고받을 수 있다.
센싱 회로(260)는 리드 동작(read operation) 또는 검증 동작(verify operation)시, 허용 비트(VRY_BIT<#>)에 응답하여 기준 전류를 생성하고, 페이지 버퍼 그룹(230)으로부터 수신된 센싱 전압(VPB)과 기준 전류에 의해 생성된 기준 전압을 비교하여 패스 신호(PASS) 또는 페일 신호(FAIL)를 출력할 수 있다.
제어 로직(300)은 커맨드(CMD) 및 어드레스(ADD)에 응답하여 동작 신호(OP_CMD), 로우 어드레스(RADD), 페이지 버퍼 제어 신호들(PBSIGNALS) 및 허용 비트(VRY_BIT<#>)를 출력하여 주변 회로들(200)을 제어할 수 있다. 또한, 제어 로직(300)은 패스 또는 페일 신호(PASS 또는 FAIL)에 응답하여 검증 동작이 패스 또는 페일 되었는지를 판단할 수 있다.
도 4는 도 3의 메모리 블록을 설명하기 위한 도면이다.
도 4를 참조하면, 메모리 블록(110)은 제1 셀렉트 라인과 제2 셀렉트 라인 사이에 서로 평행하게 배열된 다수의 워드 라인들이 연결될 수 있다. 여기서, 제1 셀렉트 라인은 소스 셀렉트 라인(SSL)일 수 있고, 제2 셀렉트 라인은 드레인 셀렉트 라인(DSL)일 수 있다. 보다 구체적으로 설명하면, 메모리 블록(110)은 비트 라인들(BL1 내지 BLn)과 소스 라인(SL) 사이에 연결된 다수의 스트링들(strings; ST)을 포함할 수 있다. 비트 라인들(BL1 내지 BLn)은 스트링들(ST)에 각각 연결될 수 있고, 소스 라인(SL)은 스트링들(ST)에 공통으로 연결될 수 있다. 스트링들(ST)은 서로 동일하게 구성될 수 있으므로, 제1 비트 라인(BL1)에 연결된 스트링(ST)을 예를 들어 구체적으로 설명하도록 한다.
스트링(ST)은 소스 라인(SL)과 제1 비트 라인(BL1) 사이에서 서로 직렬로 연결된 소스 셀렉트 트랜지스터(SST), 다수의 메모리 셀들(F1 내지 F16) 및 드레인 셀렉트 트랜지스터(DST)를 포함할 수 있다. 하나의 스트링(ST)에는 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST)가 적어도 하나 이상씩 포함될 수 있으며, 메모리 셀들(F1 내지 F16) 또한 도면에 도시된 개수보다 더 많이 포함될 수 있다.
소스 셀렉트 트랜지스터(SST)의 소스(source)는 소스 라인(SL)에 연결될 수 있고, 드레인 셀렉트 트랜지스터(DST)의 드레인(drain)은 제1 비트 라인(BL1)에 연결될 수 있다. 메모리 셀들(F1 내지 F16)은 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST) 사이에서 직렬로 연결될 수 있다. 서로 다른 스트링들(ST)에 포함된 소스 셀렉트 트랜지스터들(SST)의 게이트들은 소스 셀렉트 라인(SSL)에 연결될 수 있고, 드레인 셀렉트 트랜지스터들(DST)의 게이트들은 드레인 셀렉트 라인(DSL)에 연결될 수 있고, 메모리 셀들(F1 내지 F16)의 게이트들은 다수의 워드 라인들(WL1 내지 WL16)에 연결될 수 있다. 서로 다른 스트링들(ST)에 포함된 메모리 셀들 중에서 동일한 워드 라인에 연결된 메모리 셀들의 그룹을 물리 페이지(physical page; PPG)라 할 수 있다. 따라서, 메모리 블록(110)에는 워드 라인들(WL1 내지 WL16)의 개수만큼의 물리 페이지들(PPG)이 포함될 수 있다.
하나의 메모리 셀(MC)은 1비트의 데이터를 저장할 수 있다. 이를 통상적으로 싱글 레벨 셀(single level cell; SLC)라고 부른다. 이 경우 하나의 물리 페이지(PPG)는 하나의 논리 페이지(logical page; LPG) 데이터를 저장할 수 있다. 하나의 논리 페이지(LPG) 데이터는 하나의 물리 페이지(PPG)에 포함된 셀 개수 만큼의 데이터 비트들을 포함할 수 있다. 또한 하나의 메모리 셀(MC)은 2 이상의 비트의 데이터를 저장할 수 있다. 이를 통상적으로 멀티 레벨 셀(multi-level cell; MLC)이라고 부른다. 이 경우 하나의 물리 페이지(PPG)는 2 이상의 논리 페이지(logical page; LPG) 데이터를 저장할 수 있다.
도 5는 3차원으로 구성된 메모리 블록의 실시 예를 설명하기 위한 도면이다.
도 5를 참조하면, 메모리 셀 어레이(100)는 다수의 메모리 블록들(MB1 내지 MBk; 110)을 포함할 수 있다. 메모리 블록(110)은 다수의 스트링들(ST11 내지 ST1m, ST21 내지 ST2m)을 포함할 수 있다. 실시 예로서, 다수의 스트링들(ST11 내지 ST1m, ST21 내지 ST2m) 각각은 'U'자형으로 형성될 수 있다. 제1 메모리 블록(MB1) 내에서, 행 방향(X 방향)으로 m개의 스트링들이 배열될 수 있다. 도 4에서, 열 방향(Y 방향)으로 2개의 스트링들이 배열되는 것으로 도시되었으나, 이는 설명의 편의를 위한 것으로서 열 방향(Y 방향)으로 3개 이상의 스트링들이 배열될 수 있다.
다수의 스트링들(ST11 내지 ST1m, ST21 내지 ST2m) 각각은 적어도 하나의 소스 셀렉트 트랜지스터(SST), 제1 내지 제n 메모리 셀들(MC1 내지 MCn), 파이프 트랜지스터(PT) 및 적어도 하나의 드레인 셀렉트 트랜지스터(DST)를 포함할 수 있다.
소스 및 드레인 셀렉트 트랜지스터들(SST 및 DST)과 메모리 셀들(MC1 내지 MCn)은 서로 유사한 구조를 가질 수 있다. 소스 및 드레인 셀렉트 트랜지스터들(SST 및 DST)과 메모리 셀들(MC1 내지 MCn) 각각은 채널막, 터널 절연막, 전하 트랩막 및 블로킹 절연막을 포함할 수 있다. 채널막을 제공하기 위한 필라(pillar)가 각 스트링에 제공될 수 있다. 채널막, 터널 절연막, 전하 트랩막 및 블로킹 절연막 중 적어도 하나를 제공하기 위한 필라가 각 스트링에 제공될 수 있다.
각 스트링의 소스 셀렉트 트랜지스터(SST)는 소스 라인(SL)과 메모리 셀들(MC1 내지 MCp) 사이에 연결될 수 있다.
실시 예로서, 동일한 행에 배열된 스트링들의 소스 셀렉트 트랜지스터들은 행 방향으로 연장되는 소스 셀렉트 라인에 연결될 수 있고, 상이한 행에 배열된 스트링들의 소스 셀렉트 트랜지스터들은 상이한 소스 셀렉트 라인들에 연결될 수 있다. 도 4에서, 제1 행의 스트링들(ST11 내지 ST1m)의 소스 셀렉트 트랜지스터들은 제1 소스 셀렉트 라인(SSL1)에 연결될 수 있다. 제2 행의 스트링들(ST21 내지 ST2m)의 소스 셀렉트 트랜지스터들은 제2 소스 셀렉트 라인(SSL2)에 연결될 수 있다.
다른 실시 예로서, 스트링들(ST11 내지 ST1m, ST21 내지 ST2m)의 소스 셀렉트 트랜지스터들은 하나의 소스 셀렉트 라인에 공통으로 연결될 수 있다.
각 스트링의 제1 내지 제n 메모리 셀들(MC1 내지 MCn)은 소스 셀렉트 트랜지스터(SST)와 드레인 셀렉트 트랜지스터(DST) 사이에 연결될 수 있다.
제1 내지 제n 메모리 셀들(MC1 내지 MCn)은 제1 내지 제p 메모리 셀들(MC1 내지 MCp)과 제p+1 내지 제n 메모리 셀들(MCp+1 내지 MCn)로 구분될 수 있다. 제1 내지 제p 메모리 셀들(MC1 내지 MCp)은 수직 방향(Z 방향)으로 순차적으로 배열될 수 있으며, 소스 셀렉트 트랜지스터(SST)와 파이프 트랜지스터(PT) 사이에서 서로 직렬로 연결될 수 있다. 제p+1 내지 제n 메모리 셀들(MCp+1 내지 MCn)은 수직 방향(Z 방향)으로 순차적으로 배열될 수 있으며, 파이프 트랜지스터(PT)와 드레인 셀렉트 트랜지스터(DST) 사이에서 서로 직렬로 연결될 수 있다. 제1 내지 제p 메모리 셀들(MC1 내지 MCp)과 제p+1 내지 제n 메모리 셀들(MCp+1 내지 MCn)은 파이프 트랜지스터(PT)를 통해 서로 연결될 수 있다. 각 스트링의 제1 내지 제n 메모리 셀들(MC1 내지 MCn)의 게이트들은 각각 제1 내지 제n 워드 라인들(WL1 내지 WLn)에 연결될 수 있다.
실시 예로서, 제1 내지 제n 메모리 셀들(MC1 내지 MCn) 중 적어도 하나는 더미 메모리 셀로서 이용될 수 있다. 더미 메모리 셀이 제공되는 경우, 해당 스트링의 전압 또는 전류는 안정적으로 제어될 수 있다. 각 스트링의 파이프 트랜지스터(PT)의 게이트는 파이프 라인(PL)에 연결될 수 있다.
각 스트링의 드레인 셀렉트 트랜지스터(DST)는 비트 라인과 메모리 셀들(MCp+1 내지 MCn) 사이에 연결될 수 있다. 행 방향으로 배열되는 스트링들은 행 방향으로 연장되는 드레인 셀렉트 라인에 연결될 수 있다. 제1 행의 스트링들(ST11 내지 ST1m)의 드레인 셀렉트 트랜지스터들은 제1 드레인 셀렉트 라인(DSL1)에 연결될 수 있다. 제2 행의 스트링들(ST21 내지 ST2m)의 드레인 셀렉트 트랜지스터들은 제2 드레인 셀렉트 라인(DSL2)에 연결될 수 있다.
열 방향으로 배열되는 스트링들은 열 방향으로 연장되는 비트 라인들에 연결될 수 있다. 도 4에서 제1 열의 스트링들(ST11, ST21)은 제1 비트 라인(BL1)에 연결될 수 있다. 제m 열의 스트링들(ST1m, ST2m)은 제m 비트 라인(BLm)에 연결될 수 있다.
행 방향으로 배열되는 스트링들 중에서 동일한 워드 라인에 연결되는 메모리 셀들은 하나의 페이지(page)를 구성할 수 있다. 제1 행의 스트링들(ST11 내지 ST1m) 중 제1 워드 라인(WL1)에 연결된 메모리 셀들은 하나의 페이지를 구성할 수 있다. 제2 행의 스트링들(ST21 내지 ST2m) 중 제1 워드 라인(WL1)에 연결된 메모리 셀들은 다른 하나의 페이지를 구성할 수 있다. 드레인 셀렉트 라인들(DSL1, DSL2) 중 어느 하나가 선택됨으로써 하나의 행 방향으로 배열되는 스트링들이 선택될 것이다. 워드 라인들(WL1 내지 WLn) 중 어느 하나가 선택됨으로써 선택된 스트링들 중 하나의 페이지가 선택될 것이다.
도 6은 섹터를 설명하기 위한 도면이다.
도 6을 참조하면, 하나의 논리 페이지(LPG) 데이터는 다수의 섹터들(Sectors)로 구성될 수 있다. 하나의 논리 페이지(LPG) 데이터는 메모리 장치(1100)에 수신 되기 전 에러 정정부(730)에 의해 에러 정정 인코딩이 수행될 수 있다. 에러 정정 인코딩 동작은 데이터에 패리티(Parity)를 부가하여 데이터와 패리티(Parity)를 함께 인코딩 함으로써 수행될 수 있다. 에러 정정 인코딩 된 데이터(Parity)는 패리티와 함께 물리 페이지(PPG)에 프로그램 될 수 있다.
에러 정정 인코딩 되어 패리티(Parity)와 함께 물리 페이지(PPG)에 프로그램 된 데이터는 리드 동작에 의해 메모리 장치(1100)로부터 독출되어 메모리 컨트롤러(1200)로 출력될 수 있다. 메모리 장치(1100)로부터 메모리 컨트롤러(1200)로 출력된 에러 정정 인코딩 데이터는 메모리 컨트롤러(1200)의 에러 정정부(730)에 의해 에러 정정 디코딩이 수행될 수 있다. 에러 정정 디코딩 동작은 패리티를 이용하여 데이터의 에러를 정정하는 동작일 수 있다.
하나의 논리 페이지(LPG) 데이터는 다수의 섹터들로 분할되고, 각각의 섹터 데이터는 에러 정정부(730)에 의해 독립적으로 에러 정정 인코딩이 수행될 수 있다. 다시 말해 각각의 섹터는 에러 정정 인코딩 된 데이터 및 패리티로 구성될 수 있다. 즉 섹터별로 패리티가 부과되어 에러 정정 인코딩이 수행될 수 있다. 예시적으로 하나의 논리 페이지(LPG) 데이터는 제1 내지 제4 섹터들(Sector-1 내지 Sector-4)로 구성되고, 제1 섹터(Sector-1) 데이터는 제1 데이터(Data-1)에 제1 패리티(Parity-1)가 부과되어 에러 정정 인코딩 된 데이터일 수 있다. 제2 섹터(Sector-2) 데이터는 제2 데이터(Data-2)에 제2 패리티(Parity-2)가 부과되어 에러 정정 인코딩 된 데이터일 수 있다. 마찬가지로 제3 섹터(Sector-3) 데이터는 제3 데이터(Data-3)에 제3 패리티(Parity-2)가 부과되어 에러 정정 인코딩 된 데이터일 수 있다. 그리고 제4 섹터(Sector-4) 데이터는 제4 데이터(Data-4)에 제4 패리티(Parity-4)가 부과되어 에러 정정 인코딩 된 데이터일 수 있다.
메모리 장치(1100)는 리드 커맨드가 수신된 때 하나의 논리 페이지(LPG) 데이터를 리드 하여 페이지 버퍼 그룹(230)에 저장할 수 있다. 또한 메모리 장치(1100)는 데이터 출력 커맨드에 응답하여 페이지 버퍼 그룹(230)에 저장된 논리 페이지 데이터를 출력할 수 있다. 이때 하나의 논리 페이지 데이터에 포함된 다수의 섹터들의 데이터 중 일부 섹터 데이터만 출력할 수 있다. 예시적으로 메모리 장치(1100)가 제1 섹터 데이터를 출력한 경우, 메모리 컨트롤러(1200)의 에러 정정부(730)는 제1 섹터 데이터에 포함된 제1 데이터 및 제1 패리티를 이용하여 에러 정정 디코딩을 수행할 수 있다. 그리고 나서 에러 정정된 제1 데이터는 호스트(2000)로 출력 될 수 있다. 다시 말해 메모리 장치(1100)의 리드 동작은 논리 페이지 단위로 수행될 수 있고, 데이터 출력 동작은 섹터 단위로 수행될 수 있다.
도 7은 본 발명의 실시 예에 따른 멀티-비트 메모리 셀들의 문턱 전압 분포 및 리드 동작을 설명하기 위한 도면이다.
도 7을 참조하면, 하나의 메모리 셀은 2비트 이상을 저장할 수 있다. 예시적으로 3비트의 데이터를 저장할 수 있고, 이 경우 하나의 물리 페이지(PPG)는 제1 내지 제3 페이지들(1st page, 2nd page 및 3rd page)의 3개의 논리 페이지(LPG) 데이터를 저장할 수 있다. 제1 내지 제3 페이지들에 저장된 3개의 논리 페이지 데이터들은 8개의 문턱 전압 분포를 형성할 수 있다. 다시 말해 제1 내지 제3 페이지들에 저장된 3개의 논리 페이지 데이터들은 소거 문턱 전압 분포(E)와 제1 내지 제7 프로그램 문턱 전압 분포들(P1 내지 P7)을 형성할 수 있다. 각각의 문턱 전압 분포는 3비트의 데이터에 대응할 수 있다. 예를 들어 소거 문턱 전압 분포(E)는 ‘111’에 대응하고, 제1 프로그램 문턱 전압 분포(P1)는 ‘110’에 대응할 수 있다. 이때 ‘110’은 순서대로 각각 제1 페이지 데이터 비트, 제2 페이지 데이터 비트 그리고 제3 페이지 데이터 비트이다. 제2 프로그램 문턱 전압 분포(P2)는 ‘100’, 제3 프로그램 문턱 전압 분포(P3)는 ‘000’, 제4 프로그램 문턱 전압 분포(P4)는 ‘010’, 제5 프로그램 문턱 전압 분포(P5)는 ‘011’, 제6 프로그램 문턱 전압 분포(P6)는 ‘001’ 그리고 제7 프로그램 문턱 전압 분포(P7)는 ‘101’에 각각 대응할 수 있다.
메모리 장치(1100)는 리드 커맨드와 제1 논리 페이지 데이터에 대응하는 리드 어드레스가 수신된 때, 제3 리드 전압(R3)과 제7 리드 전압(R7)을 이용하여 리드 동작을 수행할 수 있다. 또한 메모리 장치(1100)는 리드 커맨드와 제2 논리 페이지 데이터에 대응하는 리드 어드레스가 수신된 때, 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 리드 커맨드와 제3 논리 페이지 데이터에 대응하는 리드 어드레스가 수신된 때, 제1 리드 전압(R1)와 제5 리드 전압(R5)을 이용하여 리드 동작을 수행할 수 있다.
데이터는 메모리 컨트롤러(1200)의 데이터 랜더마이저(Data Randomizer; 770)에 의해 랜덤화 되어 물리 페이지에 프로그램 될 수 있다. 데이터가 랜덤화 될 경우 소거 문턱 전압 분포(E) 및 제1 내지 제7 프로그램 문턱 전압 분포들(P1 내지 P7) 각각에 포함되는 메모리 셀들의 개수는 서로 동일하거나 실질적으로 동일할 수 있다. 결과적으로 제1 리드 전압(R1)을 이용하여 리드 동작을 수행할 경우 온-셀(on-cell)의 개수와 오프-셀(off-cell)의 개수는 1:7의 비율을 형성할 수 있다. 다른 예시로서 제3 리드 전압(R3)을 이용하여 리드 동작을 수행할 경우 온-셀의 개수와 오프-셀의 개수는 3:4의 비율을 형성할 수 있다. 예를 들어 제3 리드 전압(R3)을 이용하여 리드 동작을 수행한 결과 온-셀과 오프-셀의 개수의 비율이 3.2:3.8인 경우, 다시 말해 기준치 대비 온-셀의 개수가 많아진 경우 문턱 전압 분포가 전체적으로 왼쪽으로 이동한 것으로 추측할 수 있다. 다시 말해 최적의 제3 리드 전압(R3)은 초기 설정된 제3 리드 전압(R3) 대비 더 작은 전압일 수 있다. 데이터가 프로그램 되고 시간이 흐른 후 문턱 전압 분포가 전체적으로 이동한 경우, 초기 설정된 제3 리드 전압으로 리드 동작 수행시 온-셀과 오프-셀의 비율은 3:4가 아닐 수 있다. 이러한 경우 최적의 제3 리드 전압은 온-셀과 오프-셀의 비율이 3:4인 리드 전압으로 설정될 수 있다.
다른 예시로서 제6 리드 전압(R6)을 이용하여 리드 동작을 수행할 경우 온-셀의 개수와 오프-셀의 개수는 6:2의 비율을 형성할 수 있다. 예를 들어 제6 리드 전압(R6)을 이용하여 리드 동작을 수행한 결과 온-셀과 오프-셀의 개수의 비율이 5.7:2.3인 경우 문턱 전압 분포가 전체적으로 오른쪽으로 이동한 것으로 추측할 수 있다. 다시 말해 최적의 제6 리드 전압은 초기 설정된 제6 리드 전압 대비 더 큰 전압일 수 있다.
도 8은 본 발명의 실시 예에 따른 방어코드 동작 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 프로그램 동작이 수행된 후 시간이 흐르면 메모리 셀들의 문턱 전압 분포는 프로그램 동작이 수행된 직후 대비 넓어질 수 있다. 그 결과 도 8과 같이 인접한 문턱 전압 분포 간에 서로 겹칠 수 있고, 그 결과 초기에 설정된 리드 전압들, 즉 제1 리드 전압 내지 제7 리드 전압(R1 내지 R7)을 이용하여 리드 동작이 수행될 경우 리드 데이터에 에러 비트가 다수 포함될 수 있다. 이러한 경우 메모리 컨트롤러(1200)의 에러 정정부(730)가 에러 정정 동작을 실패할 수 있다.
메모리 컨트롤러(1200)의 에러 정정부(730)가 에러 정정 동작을 실패한 경우, 메모리 장치(1100)는 초기 설정된 리드 전압들, 즉 제1 리드 전압 내지 제7 리드 전압(R1 내지 R7)에서 일정 오프셋 만큼 변경된 리드 전압들(R1’ 내지 R7’)를 이용하여 리드 재시도(read retry) 동작을 수행할 수 있다. 예시적으로 제2 논리 페이지 데이터 리드 동작의 경우, 먼저 메모리 장치(1100)는 먼저 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 리드 동작을 수행할 수 있다. 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 수행된 리드 동작에 의해 독출된 리드 데이터에 대해 메모리 컨트롤러(1200)의 에러 정정부(730)가 에러 정정 동작을 실패한 경우, 메모리 장치(1100)는 일정한 오프셋 만큼 변경된 제2 리드 전압(R2’), 제4 리드 전압(R4’) 및 제6 리드 전압(R6’)을 이용하여 리드 동작을 수행할 수 있다. 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)과 가변된 제2 리드 전압(R2’), 제4 리드 전압(R4’) 및 제6 리드 전압(R6’) 간의 오프셋 전압은 각각 상이할 수 있다. 또한 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)과 제2 리드 전압(R2’), 제4 리드 전압(R4’) 및 제6 리드 전압(R6’) 간의 오프셋 전압은 메모리 컨트롤러(1200)에 의해 디지털 코드 값의 형태로 입력될 수 있다. 초기 설정된 리드 전압들, 즉 제1 리드 전압 내지 제7 리드 전압(R1 내지 R7)을 이용하여 수행된 리드 동작의 리드 데이터에 대한 에러 정정이 실패한 경우, 이후 수행되는 변경된 바이어스 조건을 이용하는 리드 동작을 리드 재시도 동작(read retry)이라고 부른다.
변경된 제1 내지 제7 리드 전압(R1’ 내지 R7’)을 이용하여 수행된 리드 재시도 동작에 의해 출력된 데이터가 다시 에러 정정 실패한 경우, 메모리 장치(1100)는 리드 전압을 또 다시 변경하여, 즉 제1 내지 제7 리드 전압(R1’’ 내지 R7’’)을 이용하여 리드 재시도 동작을 수행할 수 있다.
다른 예시로서 제2 논리 페이지 데이터 리드 동작의 경우, 먼저 메모리 장치(1100)는 먼저 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 리드 동작을 수행할 수 있다. 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 수행된 리드 동작에 의해 독출된 데이터에 대해 메모리 컨트롤러(1200)의 에러 정정부(730)가 에러 정정 동작을 실패한 경우, 메모리 시스템(1000)은 최적 리드 전압 검색(optimum read voltage search) 동작을 시작할 수 있다. 도 6을 통해 설명한 바와 같이 데이터가 랜덤화 되어 메모리 셀들에 프로그램 된 경우, 최적 제2 리드 전압은 온-셀과 오프-셀의 비율이 2:6인 리드 전압일 수 있다. 이러한 특징을 이용하여 메모리 시스템(1000)은 상술한 최적 리드 전압 검색 동작을 수행할 수 있다. 다시 말해 제2 리드 전압(R2)를 조금씩 변경하면서 온-셀과 오프-셀의 비율이 2:6인 리드 전압을 찾아낸 경우, 이때의 리드 전압을 최적 제2 리드 전압으로 설정할 수 있다. 제4 리드 전압(R4)에 대해서도 제2 리드 전압과 동일한 동작을 수행하여 최적 제4 리드 전압을 검색할 수 있다. 다시 말해 온-셀과 오프-셀의 비율이 4:4인 리드 전압을 최적 제4 리드 전압으로 설정할 수 있다. 또한 제6 리드 전압(R6)에 대해서도 제2 리드 전압과 동일한 동작을 수행하여 최적 제6 리드 전압을 검색할 수 있다. 다시 말해 온-셀과 오프-셀의 비율이 6:2인 리드 전압을 최적 제6 리드 전압으로 설정할 수 있다. 이렇게 해서 설정된 최적 제2 리드 전압, 최적 제4 리드 전압 및 최적 제6 리드 전압을 이용하여 제2 페이지 데이터 리드 재시도 동작을 수행할 수 있다. 상술한 최적 리드 전압 검색 동작과 검색된 최적 리드 전압을 이용하여 수행되는 리드 재시도 동작을 포함하여 방어코드 동작(defense code operation)이라고 부를 수 있다.
상술한 바와 같이 방어코드 동작은 다수 번의 리드 동작을 필요로 할 수 있다. 그 결과 많은 시간이 소요되고 이는 리드 레이턴시(read latency)를 증가시키는 요인일 수 있다. 따라서 리드 회수를 감소시킬 수 있는 방어코드 동작 방법이 요구될 수 있다. 예시적으로 최적 제2 리드 전압을 결정함에 있어 초기에 설정된 제2 리드 전압을 이용하여 수행된 리드 동작 결과 온-셀과 오프-셀의 결과가 3:5가 나오고, 일정 오프셋만큼 가변된 제2 리드 전압을 이용하여 수행된 리드 동작 결과 온-셀과 오프-셀의 결과가 2.5:4.5가 나온 경우, 두 전압 간의 차이, 즉 오프셋과 두 리드 동작에 의한 온-셀과 오프-셀의 비율의 변화로부터 바로 최적 제2 리드 전압을 예측할 수 있다. 다시 말해 2회의 리드 동작 간의 리드 전압의 차와 메모리 셀들의 수의 변화, 즉 기울기로부터 최적의 리드 전압을 유추하여 최적 리드 전압 검색을 위한 리드 회수를 감소시킬 수 있다.
상술한 방어코드 동작에 의해 제2 논리 페이지 데이터에 대한 에러 정정이 성공된 경우, 동일한 물리 페이지의 제1 논리 페이지 데이터 리드 재시도 동작 또는 제3 논리 페이지 리드 재시도 동작시 제2 논리 페이지 데이터 리드에 대한 방어코드 동작의 결과가 이용될 수 있다. 예시적으로 제2 논리 페이지 데이터 리드에 대한 방어코드 동작시 검색된 최적 제2 리드 전압, 최적 제4 리드 전압 또는 최적 제6 리드 전압에 기초하여 제1 논리 페이지 데이터 리드 재시도 동작시의 리드 전압을 결정할 수 있다. 제1 논리 페이지 리드 동작은 제3 리드 전압(R3) 및 제7 리드 전압(R7)을 이용하여 수행될 수 있다. 이때 최적 제3 리드 전압과 초기 설정된 제3 리드 전압간의 전압차는 최적 제2 리드 전압과 초기 설정된 제2 리드 전압 간의 전압차, 최적 제4 리드 전압과 초기 설정된 제4 리드 전압 간의 전압차 또는 최적 제6 리드 전압과 초기 설정된 제6 리드 전압 간의 전압차와 유사할 수 있다. 따라서 제2 논리 페이지 데이터 리드 동작에 대해 수행된 방어코드 동작, 예를 들어 최적 제2 리드 전압, 최적 제4 리드 전압 또는 최적 제6 리드 전압 검색 결과를 최적 제3 리드 전압 또는 최적 제7 리드 전압을 검색하는 데 활용할 수 있다. 그 결과 최적 제3 리드 전압 또는 최적 제7 리드 전압을 검색하는 데 소요되는 시간을 감소시킬 수 있다.
상술한 방어코드 동작에 의해 제1 물리 페이지에 프로그램된 제2 논리 페이지 데이터에 대한 에러 정정 동작이 성공한 경우, 제1 물리 페이지와 상이한 제2 물리 페이지의 제1 내지 제3 논리 페이지 데이터 리드 동작시 상기의 제1 물리 페이지의 제2 논리 페이지 데이터 리드 동작에서의 방어코드 동작의 결과가 이용될 수 있다. 이때 제1 물리 페이지와 제2 물리 페이지는 동일한 메모리 블록(110)에 포함된 것일 수 있다. 하나의 메모리 블록(110)에 포함된 다수의 물리 페이지들에 저장된 데이터들은 서로 유사한 정도의 리드 디스터브(read disturb)를 받을 수 있다. 그 결과 하나의 메모리 블록(110)에 포함된 다수의 물리 페이지들에 저장된 데이터의 문턱 전압 분포들의 이동은 서로 유사할 수 있다. 따라서 제 상술한 방어코드 동작에 의해 제1 물리 페이지에 프로그램된 제2 논리 페이지 데이터에 대한 에러 정정 동작이 성공한 경우, 제1 물리 페이지와 상이한 제2 물리 페이지의 제1 내지 제3 논리 페이지 리드 동작시 상기의 제1 물리 페이지의 제2 논리 페이지 데이터 리드 동작에서의 방어코드 동작의 결과가 이용될 경우 제2 물리 페이지의 제1 내지 제3 논리 페이지 리드 동작시 이용되는 최적 리드 전압들을 빠르게 검색할 수 있다.
다른 예시로서 상술한 방어코드 동작에 의해 제2 논리 페이지 데이터 중 제1 섹터 데이터에 대한 에러 정정 동작이 성공한 경우, 동일한 논리 페이지, 즉 제2 논리 페이지 데이터 중 다른 섹터 데이터 리드 동작 또는 방어코드 동직시 제1 섹터 데이터 리드 동작에서의 방어코드 동작의 결과가 이용될 수 있다. 예시적으로 제2 페이지의 제1 섹터 데이터에 대한 방어코드 동작시 검색된 최적 제2 리드 전압, 최적 제4 리드 전압 또는 최적 제6 리드 전압을 제2 페이지의 제1 섹터 데이터 리드 동작 또는 리드 재시도 동작에 이용할 수 있다. 그 결과 제2 섹터 데이터에 대한 방어코드 동작시 소요 시간이 감소될 수 있어 리드 레이턴시가 감소될 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 방어코드 동작 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 방어코드 동작 중 최적 리드 전압을 빠르게 검색하기 위하여 어시스트 리드(assist read) 동작이 수행될 수 있다. 예를 들어 제2 리드 전압(R2), 제4 리드 전압(R4) 및 제6 리드 전압(R6)을 이용하여 제2 논리 페이지 데이터 리드 수행 시 제3 리드 전압(R3)을 이용한 제1 어스시트 리드(assist read-1) 및 제5 리드 전압(R5)을 이용한 제2 어시스트 리드(assist read-2)가 수행될 수 있다. 이러한 어시스트 리드 동작을 통해 최적 리드 전압 검색 동작을 보다 빠르게 수행할 수 있다.
예시적으로 R2, R4 및 R6를 이용한 제2 논리 페이지 데이터 리드 동작이 에러 정정 실패된 경우, R2’, R4’ 및 R6’을 이용한 리드 동작 및 R3 및 R5를 이용한 2회의 어시스트 리드 동작을 이용하여 방어코드 동작이 수행될 수 있다. R2’, R4’ 및 R6’를 이용하여 리드 동작 수행시 각 메모리 셀 당 ‘1’ 또는 ‘0’의 1비트의 데이터가 추출될 수 있다. 도 7을 참조하면, R2’, R4’ 및 R6’를 이용하여 리드 동작 수행시 메모리 셀로부터 독출된 1비트의 데이터 값이 ‘1’인 경우 메모리 셀은 소거 문턱 전압 분포(E) 내지 제1 프로그램 문턱 전압 분포(P1), 또는 제4 프로그램 문턱 전압 분포(P4) 내지 제5 프로그램 문턱 전압 분포(P5) 중 어느 하나에 포함될 수 있다. 이때 제1 어시스트 리드 동작의 결과가 온-셀로 판명된 메모리 셀의 경우 해당 메모리 셀은 소거 문턱 전압 분포(E) 내지 제1 프로그램 문턱 전압 분포(P1)에 포함된 메모리 셀로 판명될 수 있다. 반대로 제1 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀의 경우 메모리 셀은 제4 프로그램 문턱 전압 분포(P4) 내지 제5 프로그램 문턱 전압 분포(P5)에 포함된 메모리 셀로 판명될 수 있다. 다시 말해 R2’, R4’ 및 R6’를 이용하여 리드 동작 수행 결과가 ‘1’이고, 제1 어시스트 리드 동작의 결과가 온-셀로 판명된 메모리 셀은 소거 문턱 전압 분포(E) 내지 제1 프로그램 문턱 전압 분포(P1)에 포함된 메모리 셀로 판명될 수 있다. 이 경우 R2’, R4’ 및 R6’를 이용하여 리드 동작 수행 결과가 ‘1’이고, 제1 어시스트 리드 동작의 결과가 온-셀로 판명된 메모리 셀들의 수와 그렇지 않은 메모리 셀들의 수가 2:6인 제2 리드 전압이 최적 제2 리드 전압으로 설정될 수 있다. 만일 R2’, R4’ 및 R6’를 이용하여 수행된 리드 동작의 결과가 ‘1’이고, 제1 어시스트 리드 동작의 결과가 온-셀로 판명된 메모리 셀들의 수와 그렇지 않은 메모리 셀들의 수가 2.2:5.8인 경우 최적 제2 리드 전압은 R2’ 대비 더 작은 전압일 수 있다.
예시적으로 R2’, R4’ 및 R6’를 이용한 제2 논리 페이지 데이터 리드 동작 수행시 메모리 셀로부터 독출된 1비트의 데이터가 ‘1’인 경우 메모리 셀은 소거 문턱 전압 분포(E) 내지 제1 프로그램 문턱 전압 분포(P1), 또는 제4 프로그램 문턱 전압 분포(P4) 내지 제5 프로그램 문턱 전압 분포(P5) 중 어느 하나에 포함될 수 있다. 이때 제1 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀의 경우 메모리 셀은 제4 프로그램 문턱 전압 분포(P4) 내지 제5 프로그램 문턱 전압 분포(P5)에 포함된 메모리 셀로 판명될 수 있다. 다시 말해 R2’, R4’ 및 R6’를 이용하여 리드 동작을 수행 결과가 ‘1’이고, 제1 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀들의 수와 그렇지 않은 메모리 셀들의 수가 2:6인 제4 리드 전압이 최적 제4 리드 전압으로 설정될 수 있다.
예시적으로 R2’, R4’ 및 R6’를 이용한 제2 논리 페이지 데이터 리드 동작에서 메모리 셀로부터 독출된 1비트의 데이터가 ‘0’인 경우 메모리 셀은 제2 프로그램 문턱 전압 분포(P2) 내지 제3 프로그램 문턱 전압 분포(P3), 또는 제6 프로그램 문턱 전압 분포(P6) 내지 제7 프로그램 문턱 전압 분포(P7) 중 어느 하나에 포함될 수 있다. 이때 제5 리드 전압을 이용하여 수행되는 제2 어시스트 리드 동작의 결과가 온-셀로 판명된 메모리 셀의 경우 메모리 셀은 제2 프로그램 문턱 전압 분포(P2) 내지 제3 프로그램 문턱 전압 분포(P3)에 포함된 메모리 셀로 판명될 수 있다. 반대로 제2 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀의 경우 메모리 셀은 제6 프로그램 문턱 전압 분포(P6) 내지 제7 프로그램 문턱 전압 분포(P7)에 포함된 메모리 셀로 판명될 수 있다. 다시 말해 R2’, R4’ 및 R6’를 이용하여 리드 동작 수행 결과가 ‘0’이고, 제2 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀은 제6 프로그램 문턱 전압 분포(P6) 내지 제7 프로그램 문턱 전압 분포(P7)에 포함된 메모리 셀로 판명될 수 있다. 다시 말해 R2’, R4’ 및 R6’를 이용하여 리드 동작 수행 결과가 ‘0’이고, 제2 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀들의 수와 그렇지 않은 메모리 셀들의 수가 2:6인 제4 리드 전압이 최적 제4 리드 전압으로 설정될 수 있다. 만일 R2’, R4’ 및 R6’를 이용하여 리드 동작 수행 결과가 ‘0’이고, 제2 어시스트 리드 동작의 결과가 오프-셀로 판명된 메모리 셀들의 수와 그렇지 않은 메모리 셀들의 수가 2.2:5.8인 경우 최적 제6 리드 전압은 R6’ 대비 더 큰 전압일 수 있다.
상기와 같이 제1 내지 제2 어시스트 리드 동작들을 활용할 경우, 최적 제2 리드 전압, 최적 제4 리드 전압 내지 최적 제6 리드 전압 검색 동작시 최적 제2 리드 전압, 최적 제4 리드 전압 내지 최적 제6 리드 전압 각각에 대해 개별적으로 수행할 필요가 없다. 즉 제2 리드 전압, 제4 리드 전압 및 제6 리드 전압을 이용한 리드 동작을 한번에 수행해 메모리 셀 각각으로부터 1비트의 데이터를 독출하고, 이를 제1 내지 제2 어시스트 리드 동작 결과와 비교하여 최적 제2 리드 전압, 최적 제4 리드 전압 및 최적 제6 리드 전압을 검색할 수 있다.
다른 예시로서 제3 리드 전압 및 제 7 리드 전압을 이용하여 수행되는 제1 논리 페이지 데이터 리드 동작시 제5 리드 전압이 어시스트 리드 동작시 이용될 수 있다. 또한 제1 리드 전압 및 제5 리드 전압을 이용하여 수행되는 제3 논리 페이지 데이터 리드 동작시 제3 리드 전압이 어시스트 리드 동작시 이용될 수 있다.
상기의 동작을 통해 검색된 최적 리드 전압은 동일 논리 페이지의 다른 섹터 데이터 리드 동작, 동일 물리 페이지의 다른 논리 페이지 리드 동작 또는 동일 메모리 블록의 다른 물리 페이지에 프로그램된 논리 페이지들의 리드 동작시 활용될 수 있다. 또한 이러한 활용은 반드시 상기의 예시에 국한되지 않고, 보다 다양하게 이루어질 수 있다.
도 10은 본 발명의 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
메모리 컨트롤러(1200)는 호스트(2000)로부터 입력된 다수의 커맨드들을 큐잉(queuing)할 수 있다. 메모리 컨트롤러(1200)에 큐잉된 다수의 커맨드들 각각을 태그(Tag)라고 부를 수 있다. 메모리 컨트롤러(1200)에 큐잉된 태그들은 각각 프로그램 동작, 소거 동작 또는 리드 동작에 대응될 수 있다. 또한 메모리 컨트롤러(1200)에 큐잉된 태그들은 메모리 장치(1100)에 순차적으로 전달되어 수행될 수 있다. 메모리 장치(1100)에 먼저 입력된 태그에 대한 동작이 완료(completion) 되기 전에 다음 태그가 입력될 수 있다. 또한 메모리 컨트롤러(1200)에 큐잉된 태그들은 메모리 장치(1100)에 큐이 순서와 다른 순서로 전달되어 수행될 수 있다. 다시 말해 메모리 컨트롤러(1200)은 큐잉된 태그들에 대해 우선 순위 부여 등의 방법을 통해 처리 되는 순서를 가변할 수 있다.
도 10을 참조하면, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 먼저 태그-A 리드(Tag-A Read) 커맨드를 입력 받고, 이에 응답하여 태그-A에 대한 리드 동작을 수행할 수 있다. 태그-A 리드(Tag-A Read) 동작이 완료된 후 태그-A 리드(Tag-A Read) 동작을 통해 독출된 태그-A 데이터를 출력(Tag-A Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대한 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 리드(Tag-B Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 동작이 완료된 후 태그-B 리드(Tag-B Read) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 페일(Tag-B Fail) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 리드(Tag-C Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 동작이 완료된 후 태그-C 리드(Tag-C Read) 동작을 통해 독출된 태그-C 데이터를 출력(Tag-C Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행할 수 있다. 이때 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)은 페일(Tag-C Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터(Tag-C data)를 출력한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-A 리드를 위한 방어코드 동작에 진입한 것이다. 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 태그-A 리드(Tag-A Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-A 제1 리드 재시도(Tag-A Retry1) 동작이 완료된 후 태그-A 제1 리드 재시도(Tag-A Retry1) 동작을 통해 출력된 태그-A 데이터를 출력(Tag-A Data-out) 할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-B 리드를 위한 방어코드 동작에 진입한 것이다. 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 태그-B 리드(Tag-B Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-B 제1 리드 재시도(Tag-B Retry1) 동작이 완료된 후 태그-B 제1 리드 재시도(Tag-B Retry1) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 패스(Tag-B Pass) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-C 리드를 위한 방어코드 동작에 진입한 것이다. 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 태그-C 리드(Tag-C Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다. 태그-C 제1 리드 재시도(Tag-C Retry1) 동작이 완료된 후 태그-C 제1 리드 재시도(Tag-C Retry1) 동작을 통해 독출된 태그-C 데이터를 출력(Tag-C Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행할 수 있다. 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)은 페일(Tag-C Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터를 출력(Tag-C Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드에 대응하는 리드 재시도 동작을 수행할 수 있다. 태그-A 제2 리드 재시도(Tag-A Retry2) 동작은 태그-A 제1 리드 재시도(Tag-A Retry1) 동작과 상이한 전압 조건에서 수행될 수 있다. 메모리 장치(1100)는 태그-A 제2 리드 재시도(Tag-A Retry2) 동작이 완료된 후 태그-A 제2 리드 재시도(Tag-A Retry2) 동작을 통해 독출된 태그-A 데이터를 출력(Tag-A Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 이때 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터를 출력(Tag-C Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-D 리드(Tag-D read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-D 리드(Tag-D read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 태그-D 리드(Tag-D read) 동작은 초기 설정된 리드 전압을 이용하여 수행될 수 있다. 다른 예시로서 태그-D 리드(Tag-D read) 동작은 에러 정정 패스된 태그-B에 대한 방어코드 동작 결과를 이용하여 수행될 수 있다. 다시 말해 태그-D 리드(Tag-D read) 동작은 태그-B에 대한 방어코드 동작 결과 새롭게 설정된 리드 전압에 기초하여 변경된 리드 전압을 이용하여 수행될 수 있다. 상세한 동작은 도 9를 통해 설명한 바와 같다. 태그-A 내지 태그-C에 대한 리드 동작이 시작된 이후에 메모리 컨트롤러(1200)는 호스트(2000)로부터 태그-D에 대한 커맨드를 입력 받아 큐잉할 수 있다.
태그-B에 대한 방어코드 동작 결과 새롭게 설정된 리드 전압에 기초하여 수행된 태그-D 리드(Tag-D read) 동작을 통해 독출된 태그-D 데이터가 메모리 장치(1100)로부터 메모리 컨트롤러(1200)로 출력(Tag-D Data-out)될 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)은 태그-D 데이터(Tag-D data)에 대해 에러 정정 동작(Tag-D ECC)을 수행하고, 그 결과 에러 정정 동작(Tag-D ECC)은 패스(Tag-D Pass) 될 수 있다.
그리고 나서 태그-C 제2 리드 재시도(Tag-C Retry2) 동작, 데이터 출력(Tag-C Data-out) 및 에러 정정(Tag-C ECC) 동작이 수행될 수 있다. 그 결과 에러 정정 패스(Tag-C Pass) 될 수 있다. 태그-C 제2 리드 재시도(Tag-C Retry2) 동작은 태그-C 제1 리드 재시도(Tag-C Retry1) 동작과 상이한 전압 조건에서 수행될 수 있다. 다시 말해서 태그-C 제2 리드 재시도(Tag-C Retry2) 동작은 태그-C 제1 리드 재시도(Tag-C Retry1) 대비 보다 최적의 리드 전압을 이용하여 수행될 수 있다.
또한 태그-A 제3 리드 재시도(Tag-C Retry3) 동작, 데이터 출력(Tag-A Data-out) 및 에러 정정(Tag-A ECC) 동작이 수행될 수 있다. 그 결과 에러 정정 패스(Tag-A Pass) 될 수 있다. 태그-A 제3 리드 재시도(Tag-A Retry3) 동작은 태그-A 제2 리드 재시도(Tag-A Retry2) 동작과 상이한 전압 조건에서 수행될 수 있다. 다시 말해서 태그-A 제3 리드 재시도(Tag-A Retry3) 동작은 태그-A 제2 리드 재시도(Tag-A Retry2) 대비 보다 최적의 리드 전압을 이용하여 수행될 수 있다.
태그-A 리드 동작 또는 리드 재시도 동작, 태그-B 리드 동작 또는 리드 재시도 동작, 태그-C 리드 동작 또는 리드 재시도 동작 또는 태그-D 리드 동작 또는 리드 재시도 동작은 서로 동일한 물리 페이지의 상이한 논리 페이지 데이터를 리드 하기 위한 동작일 수 있다. 다른 예시로서 태그-A 리드 동작 또는 리드 재시도 동작, 태그-B 리드 동작 또는 리드 재시도 동작, 태그-C 리드 동작 또는 리드 재시도 동작 또는 태그-D 리드 동작 또는 리드 재시도 동작은 동일한 메모리 블록(110)에 포함된 서로 상이한 물리 페이지의 논리 페이지 데이터를 리드 하기 위한 동작일 수 있다. 또 다른 예시로서 태그-A 리드 동작 또는 리드 재시도 동작, 태그-B 리드 동작 또는 리드 재시도 동작, 태그-C 리드 동작 또는 리드 재시도 동작 또는 태그-D 리드 동작 또는 리드 재시도 동작은 서로 동일한 논리 페이지의 상이한 섹터 데이터를 리드 하기 위한 동작일 수 있다.
도 11은 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 11을 참조하면, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 먼저 태그-A 리드(Tag-A Read) 커맨드를 입력 받고, 이에 응답하여 태그-A에 대한 리드 동작을 수행할 수 있다. 태그-A 리드(Tag-A Read) 동작이 완료된 후 태그-A 리드(Tag-A Read) 동작을 통해 독출된 태그-A 데이터를 출력(Tag-A Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대한 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 리드(Tag-B Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 동작이 완료된 후 태그-B 리드(Tag-B Read) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 페일(Tag-B Fail) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 리드(Tag-C Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 동작이 완료된 후 태그-C 리드(Tag-C Read) 동작을 통해 독출된 태그-C 데이터를 출력(Tag-C Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행할 수 있다. 이때 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)은 페일(Tag-C Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터(Tag-C data)를 출력한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-A 리드를 위한 방어코드 동작에 진입한 것이다. 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 태그-A 리드(Tag-A Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-A 제1 리드 재시도(Tag-A Retry1) 동작이 완료된 후 태그-A 제1 리드 재시도(Tag-A Retry1) 동작을 통해 출력된 태그-A 데이터를 출력(Tag-A Data-out) 할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-B 리드를 위한 방어코드 동작에 진입한 것이다. 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 태그-B 리드(Tag-B Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-B 제1 리드 재시도(Tag-B Retry1) 동작이 완료된 후 태그-B 제1 리드 재시도(Tag-B Retry1) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 패스(Tag-B Pass) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-C 리드를 위한 방어코드 동작에 진입한 것이다. 이때 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 앞서 수행된 제1 태그-B 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 앞서 수행된 제1 태그-B 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보에 기초하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-C 제1 리드 재시도(Tag-C Retry1) 동작을 통해 독출되어 출력된 데이터(Tag-C Data-out)는 바로 에러 정정(Tag-C ECC) 동작이 패스(Tag-C Pass)될 수 있다.
도 11을 통해 설명한 실시 예는 도 10을 통해 설명한 실시 예와 달리 제1 태그에 대한 방어코드 동작 결과 검색된 리드 전압 정보를 이미 방어코드 동작에 진입한 제2 태그에 대해서도 적용할 수 있다. 다시 말해 제1 태그에 대한 방어코드 동작 결과에 의한 리드 재시도 동작이 에러 정정 패스된 시점에 제2 태그에 대한 방어코드 동작이 이미 진입한 경우에도 도 10을 통해 설명한 실시 예와 달리 제2 태그에 대한 리드 재시도시 제1 태그에 대한 방어코드 동작 결과를 이용할 수 있는 것이다. 그 결과 리드 레이턴시가 감소될 수 있다.
마찬가지로 태그-A 리드 제2 재시도(Tag-A Retry2) 동작 역시 앞서 수행된 태그-B 리드 재시도 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-A 리드 제2 재시도(Tag-A Retry2) 동작은 앞서 수행된 태그-B 리드 재시도 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보를 이용하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-A 리드 제2 재시도(Tag-A Retry2) 동작에 기초하여 출력된 데이터(Tag-A Data-out)은 바로 에러 정정(Tag-A ECC) 동작이 패스(Tag-A Pass)될 수 있다.
도 12는 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 12를 참조하면, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 먼저 태그-A 리드(Tag-A Read) 커맨드를 입력 받고, 이에 응답하여 리드 동작을 수행할 수 있다. 태그-A 리드(Tag-A Read) 동작이 완료된 후 태그-A 리드(Tag-A Read) 동작을 통해 독출된 태그-A 데이터를 출력(Tag-A Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 리드(Tag-B Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 태그-B 리드(Tag-B Read) 동작이 완료된 후 태그-B 리드(Tag-B Read) 동작을 통해 독출된 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 페일(Tag-B Fail) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 리드(Tag-C Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 동작이 완료된 후 태그-C 리드(Tag-C Read) 동작을 통해 독출된 태그-C 데이터를 출력(Tag-C Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행할 수 있다. 이때 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)은 페일(Tag-C Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터(Tag-C data)를 출력한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-A 리드를 위한 방어코드 동작에 진입한 것이다. 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 태그-A 리드(Tag-A Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-A 제1 리드 재시도(Tag-A Retry1) 동작이 완료된 후 태그-A 제1 리드 재시도(Tag-A Retry1) 동작을 통해 출력된 태그-A 데이터를 출력(Tag-A Data-out) 할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 이때 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-B 리드를 위한 방어코드 동작에 진입한 것이다. 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 태그-B 리드(Tag-B Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-B 리드 재시도(Tag-B Retry) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-B 제1 리드 재시도(Tag-B Retry1) 동작이 완료된 후 태그-B 제1 리드 재시도(Tag-B Retry1) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 패스(Tag-B Pass) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-C 리드를 위한 방어코드 동작에 진입한 것이다. 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행이 완료되기 전 진입할 수 있다. 그 결과 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 동작시 태그-B 리드 제1 재시도 동작(Tag-B Retry1)에서의 방어코드 동작 결과를 이용하지 않고, 태그-C 제1 리드 재시도(Tag-C Retry1) 동작 자체적으로 방어코드 동작을 수행할 수 있다. 태그-C 제1 리드 재시도(Tag-C Retry1) 동작을 통해 독출된 태그-C 데이터가 출력(Tag-C Data-out)되고, 출력된 데이터에 대해 에러 정정(Tag-C ECC) 동작이 수행될 수 있다. 태그-C 데이터에 대한 에러 정정(Tag-C ECC) 동작은 페일(Tag-C Fail)될 수 있다.
메모리 장치(1100)가 태그-C 데이터를 출력(Tag-C Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드에 대응하는 리드 재시도 동작을 수행할 수 있다. 이때 태그-A 제2 리드 재시도(Tag-A Retry2) 동작은 앞서 수행된 태그-B 리드 제1 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-A 제2 리드 재시도(Tag-A Retry2) 동작은 앞서 수행된 태그-B 리드 제1 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보에 기초하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-A 제2 리드 재시도(Tag-A Retry2) 동작에 기초하여 출력된 데이터(Tag-A Data-out)은 바로 에러 정정(Tag-A ECC) 동작이 패스(Tag-A Pass)될 수 있다.
메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 제2 리드 재시도(Tag-C Retry2) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 제2 리드 재시도(Tag-C Retry2) 커맨드에 대응하는 리드 재시도 동작을 수행할 수 있다. 이때 태그-C 제2 리드 재시도(Tag-C Retry2) 동작은 앞서 수행된 태그-B 리드 제1 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-C 제2 리드 재시도(Tag-C Retry2) 동작은 앞서 수행된 태그-B 리드 제1 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보를 이용하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-C 제2 리드 재시도(Tag-C Retry2) 동작에 기초하여 출력된 데이터(Tag-A Data-out)은 바로 에러 정정(Tag-A ECC) 동작이 패스(Tag-A Pass)될 수 있다.
다시 말해 메모리 장치(1100)는 제1 태그에 대해 방어코드 동작을 수행한 후, 제1 태그에 대한 방어코그 동작을 통해 독출된 제1 태그 데이터에 대한 에러 정정 동작이 완료 되기 전 제2 태그에 대한 방어코드 동작에 진입할 수 있다. 이러한 경우 메모리 장치(1100)는 제2 태그에 대한 방어코드 동작시 제1 태그에 대한 방어코드 동작 수행 결과를 이용하지 않을 수 있다. 다시 말해 제1 태그 데이터에 대한 에러 정정 수행 결과가 패스로 판명된 이후 진입 되는 다른 태그에 대해 제1 태그의 방어코드 동작 결과가 이용될 수 있다.
다른 예시로서 메모리 장치(1100)는 제1 태그에 대해 방어코드 동작을 수행한 후, 제1 태그에 대한 방어코그 동작을 통해 독출된 제1 태그 데이터에 대한 에러 정정 동작이 완료 되기 전 제2 태그에 대한 방어코드 동작에 진입할 수 있다. 이러한 경우 메모리 장치(1100)는 제2 태그에 대한 방어코드 동작시 제1 태그에 대한 방어코드 동작 수행 결과를 이용하여 수행될 수 있다. 다시 말해 제1 태그 데이터에 대한 에러 정정 수행 결과가 패스로 판명된 이전에 진입된 다른 태그에 대해서도 제1 태그의 방어코드 동작 결과가 이용될 수 있다.
도 13은 본 발명의 다른 실시 예에 따른 다수의 태그들(Tags)간의 방어코드 동작 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 먼저 태그-A 리드(Tag-A Read) 커맨드를 입력 받고, 이에 응답하여 태그-A에 대한 리드 동작을 수행할 수 있다. 태그-A 리드(Tag-A Read) 동작이 완료된 후 태그-A 리드(Tag-A Read) 동작을 통해 독출된 태그-A 데이터를 출력(Tag-A Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대한 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 리드(Tag-B Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-B 리드(Tag-B Read) 동작이 완료된 후 태그-B 리드(Tag-B Read) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 페일(Tag-B Fail) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 리드(Tag-C Read) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 커맨드에 대응하는 리드 동작을 수행할 수 있다. 메모리 장치(1100)는 태그-C 리드(Tag-C Read) 동작이 완료된 후 태그-C 리드(Tag-C Read) 동작을 통해 독출된 태그-C 데이터를 출력(Tag-C Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행할 수 있다. 이때 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)은 페일(Tag-C Fail) 될 수 있다.
메모리 장치(1100)가 태그-C 데이터(Tag-C data)를 출력한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제1 리드 재시도(Tag-A Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-A 리드를 위한 방어코드 동작에 진입한 것이다. 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 태그-A 리드(Tag-A Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-A 제1 리드 재시도(Tag-A Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-A 제1 리드 재시도(Tag-A Retry1) 동작이 완료된 후 태그-A 제1 리드 재시도(Tag-A Retry1) 동작을 통해 출력된 태그-A 데이터를 출력(Tag-A Data-out) 할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행할 수 있다. 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)은 페일(Tag-A Fail) 될 수 있다. 메모리 장치(1100)가 태그-A 데이터를 출력(Tag-A Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-A 데이터(Tag-A data)에 대해 에러 정정 동작(Tag-A ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-B 제1 리드 재시도(Tag-B Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)는 태그-B 리드를 위한 방어코드 동작에 진입한 것이다. 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 태그-B 리드(Tag-B Read)와 상이한 전압 조건에서 수행될 수 있다. 다시 말해 태그-B 제1 리드 재시도(Tag-B Retry1) 동작은 도 9를 통해 설명한 새로운 리드 전압에 의한 리드 재시도 동작 또는 최적 리드 전압 검색 동작 및 이를 이용한 리드 재시도 동작, 즉 방어코드 동작을 통해 수행될 수 있다.
태그-B 제1 리드 재시도(Tag-B Retry1) 동작이 완료된 후 태그-B 제1 리드 재시도(Tag-B Retry1) 동작을 통해 독출된 태그-B 데이터를 출력(Tag-B Data-out)할 수 있다. 메모리 컨트롤러(1200)의 에러 정정부(730)는 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)을 수행할 수 있다. 이때 태그-B 데이터(Tag-B data)에 대해 에러 정정 동작(Tag-B ECC)은 패스(Tag-B Pass) 될 수 있다.
메모리 장치(1100)가 태그-B 데이터를 출력(Tag-B Data-out)한 후 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-D 프로그램(Tag-D program) 커맨드를 입력하고, 메모리 장치(1100)는 태그-D 프로그램(Tag-D program) 커맨드에 대응하는 프로그램 동작을 수행할 수 있다.
태그-D 프로그램(Tag-D program) 커맨드에 대응하는 프로그램 동작이 종료된 후, 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드를 입력하고, 메모리 장치(1100)는 태그-C 제1 리드 재시도(Tag-C Retry1) 커맨드에 대응하는 리드 재시도 동작, 다시 말해 방어코드 동작을 수행할 수 있다. 다시 말해 메모리 장치(1100)가 태그-C에 대한 방어코드 동작에 진입한 것이다. 이때 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 앞서 수행된 태그-B 제1 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-C 제1 리드 재시도(Tag-C Retry1) 동작은 앞서 수행된 태그-B 제1 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보를 이용하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-C 제1 리드 재시도(Tag-C Retry1) 동작에 기초하여 출력된 데이터(Tag-C Data-out)은 바로 에러 정정(Tag-C ECC) 동작이 패스(Tag-C Pass)될 수 있다.
도 13을 통해 설명한 실시 예는 도 10 내지 도 12를 통해 설명한 실시 예와 달리 제1 태그에 대한 방어코드 동작 결과 검색된 리드 전압 정보를 아직 방어코드 동작에 진입하지 않고, 새롭게 방어코드 동작에 진입하는 제2 태그에 대해서도 적용할 수 있다. 다시 말해 제1 태그에 대한 방어코드 동작 결과에 의한 리드 재시도 동작이 에러 정정 패스된 시점에 아직 제2 태그에 대한 방어코드 동작이 진입하지 않은 경우에도 도 10 내지 도 12를 통해 설명한 실시 예와 달리 제2 태그에 대한 리드 재시도시 제1 태그에 대한 방어코드 동작 결과를 이용할 수 있는 것이다. 그 결과 리드 레이턴시가 감소할 수 있다.
메모리 장치(1100)가 태그-C 데이터를 출력(Tag-C Data-out)한 후 메모리 컨트롤러(1200)의 에러 정정부(730)가 태그-C 데이터(Tag-C data)에 대해 에러 정정 동작(Tag-C ECC)을 수행하는 동안 메모리 컨트롤러(1200)는 메모리 장치(1100)에 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드를 입력하고, 메모리 장치(1100)는 태그-A 제2 리드 재시도(Tag-A Retry2) 커맨드에 대응하는 리드 재시도 동작을 수행할 수 있다. 이때 태그-A 제2 리드 재시도(Tag-A Retry2) 동작은 앞서 수행된 태그-B 제1 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과를 이용할 수 있다. 다시 말해 태그-A 제2 리드 재시도(Tag-A Retry2) 동작은 앞서 수행된 태그-B 제1 리드 재시도(Tag-B Retry1) 동작에서의 방어코드 동작 결과 검색된 보다 최적 리드 전압에 가까운 리드 전압 정보를 이용하여 변경된 리드 전압을 이용하여 수행될 수 있다. 그 결과 태그-A 제2 리드 재시도(Tag-A Retry2) 동작에 기초하여 출력된 데이터(Tag-A Data-out)은 바로 에러 정정(Tag-A ECC) 동작이 패스(Tag-A Pass)될 수 있다.
도 14는 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 14를 참조하면, 메모리 시스템(Memory System; 30000)은 이동 전화기(cellular phone), 스마트폰(smart phone), 태블릿(tablet) PC, PDA(personal digital assistant) 또는 무선 통신 장치로 구현될 수 있다. 메모리 시스템(30000)은 메모리 장치(1100)와 상기 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함할 수 있다. 메모리 컨트롤러(1200)는 프로세서(Processor; 3100)의 제어에 따라 메모리 장치(1100)의 데이터 액세스 동작, 예컨대 프로그램(program) 동작, 소거(erase) 동작 또는 리드(read) 동작을 제어할 수 있다.
메모리 장치(1100)에 프로그램된 데이터는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(Display; 3200)를 통하여 출력될 수 있다.
무선 송수신기(RADIO TRANSCEIVER; 3300)는 안테나(ANT)를 통하여 무선 신호를 주고받을 수 있다. 예컨대, 무선 송수신기(3300)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(3100)에서 처리(process)될 수 있는 신호로 변경할 수 있다. 따라서, 프로세서(3100)는 무선 송수신기(3300)로부터 출력된 신호를 처리(process)하고 처리(process)된 신호를 메모리 컨트롤러(1200) 또는 디스플레이(3200)로 전송할 수 있다. 메모리 컨트롤러(1200)는 프로세서(3100)에 의하여 처리(process)된 신호를 반도체 메모리 장치(1100)에 프로그램할 수 있다. 또한, 무선 송수신기(3300)는 프로세서(3100)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(ANT)를 통하여 외부 장치로 출력할 수 있다. 입력 장치(Input Device; 3400)는 프로세서(3100)의 동작을 제어하기 위한 제어 신호 또는 프로세서(3100)에 의하여 처리(process)될 데이터를 입력할 수 있는 장치로서, 터치 패드(touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad) 또는 키보드로 구현될 수 있다. 프로세서(3100)는 메모리 컨트롤러(1200)로부터 출력된 데이터, 무선 송수신기(3300)로부터 출력된 데이터, 또는 입력 장치(3400)로부터 출력된 데이터가 디스플레이(3200)를 통하여 출력될 수 있도록 디스플레이(3200)의 동작을 제어할 수 있다.
실시 예에 따라, 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(3100)의 일부로서 구현될 수 있고 또한 프로세서(3100)와 별도의 칩으로 구현될 수 있다.
도 15는 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 15를 참조하면, 메모리 시스템(Memory System; 40000)은 PC(personal computer), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
메모리 시스템(40000)은 메모리 장치(Memory Device; 1100)와 상기 메모리 장치(1100)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(memory Controller; 1200)를 포함할 수 있다.
프로세서(Processor; 4100)는 입력 장치(Input Device; 4200)를 통하여 입력된 데이터에 따라 메모리 장치(1100)에 저장된 데이터를 디스플레이(Display; 4300)를 통하여 출력할 수 있다. 예컨대, 입력 장치(4200)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
프로세서(4100)는 메모리 시스템(40000)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(1200)의 동작을 제어할 수 있다. 실시 예에 따라 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(4100)의 일부로서 구현되거나, 프로세서(4100)와 별도의 칩으로 구현될 수 있다.
도 16은 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 16을 참조하면, 메모리 시스템(50000)은 이미지 처리 장치, 예컨대 디지털 카메라, 디지털 카메라가 부착된 이동 전화기, 디지털 카메라가 부착된 스마트 폰, 또는 디지털 카메라가 부착된 태블릿 PC로 구현될 수 있다.
메모리 시스템(50000)은 메모리 장치(Memory Device; 1100)와 상기 메모리 장치(1100)의 데이터 처리 동작, 예컨대 프로그램 동작, 소거 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(1200)를 포함한다.
메모리 시스템(50000)의 이미지 센서(Image Sensor; 5200)는 광학 이미지를 디지털 신호들로 변환할 수 있고, 변환된 디지털 신호들은 프로세서(Processor; 5100) 또는 메모리 컨트롤러(1200)로 전송될 수 있다. 프로세서(5100)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(Display; 5300)를 통하여 출력되거나 메모리 컨트롤러(1200)를 통하여 반도체 메모리 장치(1100)에 저장될 수 있다. 또한, 메모리 장치(1100)에 저장된 데이터는 프로세서(5100) 또는 메모리 컨트롤러(1200)의 제어에 따라 디스플레이(5300)를 통하여 출력될 수 있다.
실시 예에 따라 메모리 장치(1100)의 동작을 제어할 수 있는 메모리 컨트롤러(1200)는 프로세서(5100)의 일부로서 구현되거나 프로세서(5100)와 별개의 칩으로 구현될 수 있다.
도 17은 도 2에 도시된 메모리 컨트롤러 내지 도 3에 도시된 메모리 장치를 포함하는 메모리 시스템의 다른 실시 예를 설기 위한 도면이다.
도 17을 참조하면, 메모리 시스템(Memory System; 70000)은 메모리 카드(memory card) 또는 스마트 카드(smart card)로 구현될 수 있다. 메모리 시스템(70000)은 메모리 장치(Memory Device; 1100), 메모리 컨트롤러(Memory Controller; 1200) 및 카드 인터페이스(Card Interface; 7100)를 포함할 수 있다.
메모리 컨트롤러(1200)는 반도체 메모리 장치(1100)와 카드 인터페이스(7100) 사이에서 데이터의 교환을 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(7100)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다.
카드 인터페이스(7100)는 호스트(2000)의 프로토콜에 따라 호스트(2000)와 메모리 컨트롤러(1200) 사이에서 데이터 교환을 인터페이스할 수 있다. 실시 예에 따라 카드 인터페이스(7100)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스는 호스트(60000)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방식을 의미할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 다양한 변경이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 메모리 시스템 1100: 메모리 장치
1200: 메모리 컨트롤러 100: 메모리 셀 어레이
200: 주변 회로들 300: 제어 로직

Claims (20)

  1. 호스트로부터 입력된 제1 커맨드에 대한 리드 동작을 수행하는 단계;
    상기 호스트로부터 입력된 제2 커맨드에 대한 리드 동작을 수행하는 단계;
    상기 제1 커맨드에 대한 방어코드 동작을 수행하는 단계;
    상기 제1 커맨드에 대한 방어코드 동작에 의해 획득된 데이터에 대해 에러 정정 동작을 수행하는 단계; 및
    상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계를 포함하고,
    상기 제2 커맨드에 대한 리드 동작을 수행하는 단계는,
    상기 제1 커맨드에 대한 상기 방어코드 동작에 의해 획득된 데이터에 대해 수행된 상기 에러 정정 동작이 완료되기 전에 시작되고,
    상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계는,
    상기 제1 커맨드에 대해 수행된 방어코드 동작의 결과를 이용하여 수행되고,
    상기 제1 커맨드에 대한 방어코드 동작은,
    상기 제1 커맨드와 연관된 최적 리드 전압을 검색하고, 검색된 최적 리드 전압을 이용하여 리드 동작을 수행하는 동작이고,
    상기 제2 커맨드에 대한 방어코드 동작은,
    상기 제2 커맨드와 연관된 최적 리드 전압을 검색하고, 검색된 최적 리드 전압을 이용하여 리드 동작을 수행하는 동작인 메모리 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 제1 커맨드에 대한 방어코드 동작을 수행하는 단계는,
    상기 제1 커맨드에 대한 리드 동작에서 사용된 리드 전압과 다른 리드 전압을 결정하는 단계; 및
    상기 다른 리드 전압을 이용하여 상기 제1 커맨드에 대한 리드 재시도 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작 방법.
  3. 제2항에 있어서,
    상기 다른 리드 전압을 결정하는 단계는,
    하나 이상의 리드 전압을 이용하여 수행되는 리드 동작에 의한 온-셀의 수와 오프-셀의 수의 비율에 기초하여 수행되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  4. 제3항에 있어서,
    상기 제1 커맨드에 대한 상기 리드 동작은 제1 물리 페이지에 대해 수행되고,
    상기 제1 물리 페이지에 프로그램 된 데이터는 랜덤화된 데이터인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  5. 제2항에 있어서,
    상기 제1 커맨드에 대한 리드 동작을 수행하는 단계는,
    하나의 물리 페이지에 저장된 다수의 논리 페이지들 중 어느 하나의 논리 페이지의 데이터를 리드 하는 제1 리드 동작을 수행하는 단계를 포함하고,
    상기 다른 리드 전압을 결정하는 단계는,
    상기 물리 페이지에 저장된 상기 다수의 논리 페이지들 중 상기 어느 하나의 논리 페이지와 다른 논리 페이지의 데이터를 리드 하기 위한 리드 전압에 기초하여 수행되는 제2 리드 동작을 수행하는 메모리 시스템의 동작 방법.
  6. 제5항에 있어서,
    상기 다른 리드 전압을 결정하는 단계는,
    상기 제1 리드 동작의 결과와 상기 제2 리드 동작의 결과를 연산하는 메모리 시스템의 동작 방법.
  7. 제2항에 있어서,
    상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계는,
    상기 제1 커맨드에 대한 리드 재시도 동작에 의해 획득된 데이터에 대해 수행된 에러 정정 동작이 패스된 것에 응답하여 수행되는 메모리 시스템의 동작 방법.
  8. 제1항에 있어서,
    상기 제1 커맨드에 대한 리드 동작은 제1 물리 페이지에 대해 수행되고,
    상기 제2 커맨드에 대한 리드 동작은 제2 물리 페이지에 대해 수행되고,
    상기 제1 물리 페이지와 상기 제2 물리 페이지는 동일한 메모리 블록에 포함되는 메모리 시스템의 동작 방법.
  9. 제1항에 있어서,
    상기 제1 커맨드에 대한 상기 리드 동작은 제1 물리 페이지의 제1 논리 페이지에 대해 수행되고,
    상기 제2 커맨드에 대한 상기 리드 동작은 상기 제1 물리 페이지의 제2 논리페이지에 대해 수행되는 메모리 시스템의 동작 방법.
  10. 제1항에 있어서, 상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계 전에,
    상기 제2 커맨드에 대한 리드 동작에 의해 획득된 데이터에 대해 에러 정정 동작을 수행하는 단계를 더 포함하고,
    상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계는,
    상기 제2 커맨드에 대한 리드 동작에 의해 획득된 데이터에 대해 수행된 에러 정정 동작이 실패한 때 수행되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  11. 제2항에 있어서, 상기 제1 커맨드와 연관된 최적 리드 전압을 검색하고, 상기 최적 리드 전압을 이용하여 리드 동작을 수행하는 방어코드 동작을 수행하는 단계 이전에,
    상기 제1 커맨드에 대한 리드 동작에 의해 획득된 데이터에 대해 에러 정정 동작을 수행하는 단계를 더 포함하고,
    상기 호스트로부터 입력된 제2 커맨드에 대한 리드 동작을 수행하는 단계는,
    상기 제1 커맨드에 대한 리드 동작에 의해 획득된 데이터에 대해 수행되는 에러 정정 동작이 완료 되기 전에 수행되는 메모리 시스템의 동작 방법.
  12. 제1항에 있어서,
    상기 제1 커맨드를 큐잉하는 단계; 및
    상기 제2 커맨드를 큐잉하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
  13. 제1 커맨드에 대한 리드 동작을 수행하는 단계;
    제2 커맨드에 대한 리드 재시도 동작을 수행하는 단계;
    상기 제2 커맨드에 대한 리드 재시도 동작에 의해 획득된 데이터에 대해 에러 정정 동작을 수행하는 단계; 및
    상기 제1 커맨드에 대한 리드 재시도 동작을 수행하는 단계를 포함하고,
    상기 제1 커맨드에 대한 리드 동작을 수행하는 단계는,
    상기 제2 커맨드에 대한 리드 재시도 동작을 수행하는 단계의 수행 전에 시작되고,
    상기 제1 커맨드에 대한 리드 재시도 동작은 상기 제2 커맨드에 대한 리드 재시도 동작에 의해 결정된 전압에 기초하여 수행되는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  14. 제13항에 있어서,
    상기 제1 커맨드에 대한 리드 동작을 수행하는 단계는,
    제1 리드 전압을 이용하여 수행되고,
    상기 제1 커맨드에 대한 리드 재시도 동작을 수행하는 단계는,
    상기 제1 리드 전압과 다른 제2 리드 전압을 이용하여 수행되고,
    상기 제2 리드 전압은 상기 제1 커맨드에 대한 리드 재시도 동작시 이용된 리드 전압에 기초하여 결정되는 메모리 시스템의 동작 방법.
  15. 제13항에 있어서,
    상기 제2 커맨드에 대한 리드 재시도 동작에 의해 제1 물리 페이지에 저장된 제1 논리 페이지 데이터 중 제1 섹터 데이터가 획득되고,
    상기 제1 커맨드에 대한 리드 재시도 동작에 의해 상기 제1 물리 페이지에 저장된 제1 논리 페이지 데이터 중 제2 섹터 데이터가 획득되는 메모리 시스템의 동작 방법.
  16. 제13항에 있어서,
    상기 제2 커맨드에 대한 리드 재시도 동작을 수행하는 단계는,
    하나 이상의 리드 동작 및 상기 하나 이상의 리드 동작에 의해 독출된 데이터 중 '1' 또는 '0'의 개수를 카운트 하는 동작을 포함하는 메모리 시스템의 동작 방법.
  17. 제1 커맨드에 대한 리드 동작을 수행하는 단계;
    제2 커맨드에 대한 리드 동작을 수행하는 단계;
    상기 제1 커맨드에 대한 방어코드 동작을 수행하는 단계;
    제3 커맨드에 대한 프로그램 동작을 수행하는 단계; 및
    상기 프로그램 동작 완료 후 상기 제2 커맨드에 대한 방어코드 동작을 수행하는 단계를 포함하고,
    상기 제2 커맨드에 대한 상기 방어코드 동작은 상기 제1 커맨드에 대한 상기 방어코드 동작의 결과를 이용하여 수행되고,
    상기 제1 커맨드에 대한 방어코드 동작은,
    상기 제1 커맨드와 연관된 최적 리드 전압을 검색하고, 검색된 최적 리드 전압을 이용하여 리드 동작을 수행하는 동작이고,
    상기 제2 커맨드에 대한 방어코드 동작은,
    상기 제2 커맨드와 연관된 최적 리드 전압을 검색하고, 검색된 최적 리드 전압을 이용하여 리드 동작을 수행하는 동작인 메모리 시스템의 동작 방법.
  18. 제17항에 있어서,
    상기 제1 커맨드와 상기 제2 커맨드는 동일한 메모리 블록에 대해 수행되는 메모리 시스템의 동작 방법.
  19. 제17항에 있어서,
    상기 제1 커맨드에 대한 상기 방어코드 동작을 수행하는 단계는,
    제1 리드 동작을 수행하는 단계; 및
    상기 제1 리드 동작에 의해 독출된 데이터 중 '1'의 수와 '0'의 수의 비율에 기초하여 새로운 리드 전압을 결정하는 단계를 포함하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  20. 제19항에 있어서,
    상기 제1 커맨드에 의한 리드 동작은 제1 논리 페이지 데이터를 독출하는 동작을 포함하고,
    상기 제1 커맨드에 대한 방어코드 동작은 제2 논리 페이지 데이터를 독출하기 위해 이용되는 다수의 리드 전압들 중 하나 이상을 이용하여 수행되는 메모리 시스템의 동작 방법.
KR1020170103154A 2017-08-14 2017-08-14 메모리 시스템의 동작 방법 KR102353363B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170103154A KR102353363B1 (ko) 2017-08-14 2017-08-14 메모리 시스템의 동작 방법
US15/926,074 US10725858B2 (en) 2017-08-14 2018-03-20 Memory system and operating method thereof
CN201810329839.8A CN109388514B (zh) 2017-08-14 2018-04-13 存储器系统及其操作方法
US16/927,106 US11397639B2 (en) 2017-08-14 2020-07-13 Memory system and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103154A KR102353363B1 (ko) 2017-08-14 2017-08-14 메모리 시스템의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190018324A KR20190018324A (ko) 2019-02-22
KR102353363B1 true KR102353363B1 (ko) 2022-01-20

Family

ID=65275027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103154A KR102353363B1 (ko) 2017-08-14 2017-08-14 메모리 시스템의 동작 방법

Country Status (3)

Country Link
US (2) US10725858B2 (ko)
KR (1) KR102353363B1 (ko)
CN (1) CN109388514B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190122422A (ko) * 2018-04-20 2019-10-30 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
KR20200127516A (ko) * 2019-05-02 2020-11-11 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
KR20210026487A (ko) 2019-08-30 2021-03-10 삼성전자주식회사 휘발성 메모리 장치의 리페어 제어 방법 및 이를 수행하는 스토리지 장치
KR20220118011A (ko) 2021-02-18 2022-08-25 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120236656A1 (en) 2010-07-09 2012-09-20 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US20140101519A1 (en) 2012-10-08 2014-04-10 Samsung Electronics Co., Ltd. Non-volatile memory device having adjustable read voltage, memory system comprising same, and method of operating same
US20150287453A1 (en) 2012-05-04 2015-10-08 Seagate Technology Llc Optimization of read thresholds for non-volatile memory

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US20080320366A1 (en) * 2007-06-25 2008-12-25 Lin Jason T Methods of reading nonvolatile memory
KR101727704B1 (ko) 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
KR101892038B1 (ko) * 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
KR101967368B1 (ko) * 2012-08-29 2019-04-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
KR20160005264A (ko) * 2014-07-04 2016-01-14 삼성전자주식회사 저장 장치 및 그것의 읽기 방법들
KR102422478B1 (ko) * 2016-05-10 2022-07-19 삼성전자주식회사 불휘발성 메모리 장치의 독출 방법
KR102641107B1 (ko) * 2016-07-29 2024-02-27 삼성전자주식회사 스토리지 장치, 이를 포함하는 시스템 및 그 동작 방법
JP6674361B2 (ja) * 2016-09-29 2020-04-01 キオクシア株式会社 メモリシステム
TWI601060B (zh) * 2017-01-17 2017-10-01 群聯電子股份有限公司 資料傳輸方法、記憶體儲存裝置及記憶體控制電路單元

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120236656A1 (en) 2010-07-09 2012-09-20 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US20150287453A1 (en) 2012-05-04 2015-10-08 Seagate Technology Llc Optimization of read thresholds for non-volatile memory
US20140101519A1 (en) 2012-10-08 2014-04-10 Samsung Electronics Co., Ltd. Non-volatile memory device having adjustable read voltage, memory system comprising same, and method of operating same

Also Published As

Publication number Publication date
US20200341842A1 (en) 2020-10-29
US11397639B2 (en) 2022-07-26
US10725858B2 (en) 2020-07-28
CN109388514A (zh) 2019-02-26
KR20190018324A (ko) 2019-02-22
CN109388514B (zh) 2022-10-28
US20190050286A1 (en) 2019-02-14

Similar Documents

Publication Publication Date Title
US11334448B2 (en) Memory system and operating method thereof
CN111009275B (zh) 存储器装置和存储器装置的操作方法
CN109493890B (zh) 存储器装置及其操作方法
US10726932B2 (en) Storage device and method of operating the same
CN109308931B (zh) 存储装置及其操作方法
US11397639B2 (en) Memory system and operating method thereof
CN111258793B (zh) 存储器控制器及其操作方法
US10755785B2 (en) Memory system and method of operating the same
CN110413535B (zh) 存储器控制器及存储器控制器的操作方法
US20190121727A1 (en) Memory system and method for operating the same
US20170162267A1 (en) Data Storage Device and Data Maintenance Method
US10621036B2 (en) Memory system and operation method thereof
US10998065B2 (en) Memory device and operating method thereof
CN110277126B (zh) 存储器装置和具有存储器装置的存储器系统
KR20120046846A (ko) 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법
US11061757B2 (en) Storage device and method of operating the same
CN110729016B (zh) 存储器装置、存储器系统及操作该存储器装置的方法
US20200176048A1 (en) Controller, memory system including the same, and method of operating the memory system
US11093325B2 (en) Controller, memory system including the same, and method of operating memory system
US10930356B2 (en) Memory controller and method of operating the same
US20150049544A1 (en) Semiconductor memory device
KR20210066551A (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