KR20210087350A - 저장 장치 및 이의 동작 방법 - Google Patents

저장 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20210087350A
KR20210087350A KR1020200000484A KR20200000484A KR20210087350A KR 20210087350 A KR20210087350 A KR 20210087350A KR 1020200000484 A KR1020200000484 A KR 1020200000484A KR 20200000484 A KR20200000484 A KR 20200000484A KR 20210087350 A KR20210087350 A KR 20210087350A
Authority
KR
South Korea
Prior art keywords
data
controller
memory device
read
command
Prior art date
Application number
KR1020200000484A
Other languages
English (en)
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 KR1020200000484A priority Critical patent/KR20210087350A/ko
Priority to US17/067,698 priority patent/US20210208815A1/en
Priority to EP20217748.1A priority patent/EP3846170A1/en
Priority to CN202011620407.6A priority patent/CN113064840A/zh
Publication of KR20210087350A publication Critical patent/KR20210087350A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4243Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)

Abstract

본 개시의 기술적 사상에 따른 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작을 제어하는 컨트롤러를 포함하는 저장 장치의 동작 방법은, 상기 컨트롤러가 상기 비휘발성 메모리 장치로 제1 명령을 발행하는 단계, 상기 비휘발성 메모리 장치가, 상기 제1 명령에 응답하여, 메모리 셀 어레이로부터 제1 데이터를 독출하는 단계, 상기 비휘발성 메모리 장치의 페이지 버퍼가 상기 제1 데이터를 버퍼링하는 단계, 상기 컨트롤러가 상기 비휘발성 메모리 장치로 제2 명령을 발행하는 단계 및 상기 비휘발성 메모리 장치가, 상기 제2 명령에 응답하여, 상기 제1 명령에 따른 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터가 버퍼링된 제2 데이터를 상기 컨트롤러로 출력하는 단계를 포함할 수 있다.

Description

저장 장치 및 이의 동작 방법{STORAGE DEVICE AND OPERATING METHOD THEREOF}
본 개시의 기술적 사상은 저장 장치에 관한 것이며, 더욱 상세하게는, 비휘발성 메모리 장치와 컨트롤러를 포함하는 저장 장치 및 이의 동작 방법에 관한 것이다.
최근 SSD(Solid State Drive)와 같은 저장 장치가 널리 사용되고 있다. 저장 장치는 예를 들어, 플래시 메모리와 같은 비휘발성 메모리 장치와 비휘발성 메모리 장치를 제어하는 컨트롤러를 포함하는 메모리 시스템에 대응될 수 있다. 저장 장치의 고성능화에 따라 저장 장치 내에서 비휘발성 메모리 장치와 컨트롤러 사이의 데이터 입출력 속도도 고속화되고 있다. 이에 따라, 데이터는 컨트롤러와 비휘발성 메모리 장치 사이에서 고속으로 송수신될 수 있다. 명령(Command)이 미리 정의된 고정된 시간 값을 갖는 타이밍 파라미터에 따라 컨트롤러에서 비휘발성 메모리 장치로 전송될 경우, 데이터 입출력 속도의 증가에도 불구하고 입출력 효율(efficiency)이 오히려 감소할 수 있다.
본 개시의 기술적 사상은, 컨트롤러와 비휘발성 메모리 장치 간의 입출력 효율을 향상 또는 유지시킬 수 있는 비휘발성 메모리 장치, 컨트롤러를 포함하는 저장 장치 및 그의 동작 방법을 제안한다.
본 개시의 기술적 사상에 따른 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작을 제어하는 컨트롤러를 포함하는 저장 장치의 동작 방법은, 상기 컨트롤러가 상기 비휘발성 메모리 장치로 제1 명령을 발행하는 단계, 상기 비휘발성 메모리 장치가, 상기 제1 명령에 응답하여, 메모리 셀 어레이로부터 제1 데이터를 독출하는 단계, 상기 비휘발성 메모리 장치의 페이지 버퍼가 상기 제1 데이터를 버퍼링하는 단계, 상기 컨트롤러가 상기 비휘발성 메모리 장치로 제2 명령을 발행하는 단계 및 상기 비휘발성 메모리 장치가, 상기 제2 명령에 응답하여, 상기 제1 명령에 따른 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터가 버퍼링된 제2 데이터를 상기 컨트롤러로 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따른 저장 장치는 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치를 제어하고, 복수의 명령들을 발행하도록 구성되는 컨트롤러를 포함하고, 상기 비휘발성 메모리 장치는, 복수의 메모리 셀을 포함하고, 제1 명령에 응답하여 제1 데이터를 독출하도록 구성된 메모리 셀 어레이, 상기 복수의 명령들에 기초하여, 상기 메모리 셀 어레이의 독출 동작을 제어하도록 구성된 컨트롤 로직, 상기 제1 데이터를 버퍼링하도록 구성된 페이지 버퍼, 제2 명령에 응답하여, 상기 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터가 버퍼링된 제2 데이터를 상기 컨트롤러에 출력하도록 구성된 입출력 인터페이스를 포함할 수 있다.
본 개시의 기술적 사상에 따른 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작을 제어하는 컨트롤러를 포함하는 저장 장치의 동작 방법은 상기 컨트롤러가 상기 비휘발성 메모리 장치로 제1 명령을 발행하는 단계, 상기 비휘발성 메모리 장치가 상기 제1 명령에 응답하여, 메모리 셀 어레이로부터 제1 데이터를 독출하는 단계, 제1 리드 모드에서, 상기 컨트롤러가 상기 제1 명령에 따른 상기 메모리 셀 어레이의 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터를 전송하도록 하는 제2 명령을 발행하는 단계, 및 비휘발성 메모리 장치가 상기 제2 명령에 응답하여, 상기 제1 데이터를 상기 컨트롤러로 전송하되, 비지 상태일 경우, 제1 시간만큼 지연 출력하는 단계를 포함할 수 있다.
본 개시의 기술적 사상에 따르면, 비휘발성 메모리 장치(100)는 상태 정보(Status) 및 독출 데이터(Data) 모두를 컨트롤러(200)에 전송함으로써, 컨트롤러(200)는 비휘발성 메모리 장치(100)의 상태를 즉시 확인 가능하여, 명령(CMD) 발행을 위해 대기하는 시간을 감축시킬 수 있다. 본 개시의 기술적 사상에 따르면, 비휘발성 메모리 장치(100)와 컨트롤러(200) 사이의 입출력 효율이 향상될 수 있다.
도 1은 본 개시의 일 실시예에 따른 저장 장치를 도시하는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 저장 장치에서 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다.
도 3은 본 개시의 일 실시예에 따른 비휘발성 메모리 장치를 도시하는 도면이다.
도 4는 본 개시의 일 실시예에 따른 컨트롤러를 도시하는 블록도이다.
도 5는 본 개시의 일 실시예에 따른 컨트롤러를 보다 구체적으로 도시하는 블록도이다.
도 6은 본 개시의 다른 실시예에 따른 컨트롤러를 보다 구체적으로 도시하는 블록도이다.
도 7은 본 개시의 일 실시예에 따른 제1 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다.
도 8은 본 개시의 일 실시예에 따른 제2 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다.
도 9는 본 개시의 다른 실시예에 따른 제2 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다.
도 10은 비휘발성 메모리 장치에서 생성되는 데이터 스트림을 도시하는 도면이다.
도 11 및 도 12는 본 개시의 일 실시예에 따른 모드 별로 발행되는 명령들 및 신호들을 분류하는 테이블이다.
도 13은 본 개시의 일 실시예에 따른 컨트롤러의 동작 방법을 도시하는 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 컨트롤러와 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법을 보다 상세히 도시하는 흐름도이다.
도 15는 본 개시의 일 실시예에 따른 컨트롤러와 비휘발성 메모리 장치를 포함하는 저장 장치을 도시하는 블록도이다.
이하, 첨부한 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 개시의 일 실시예에 따른 저장 장치를 도시하는 블록도이다. 도 1을 참조하면, 저장 장치(10)는 비휘발성 메모리 장치(Non-volatile Memory Device;이하, NVM)(100) 및 컨트롤러(200)를 포함할 수 있다.
본 개시의 기술적 사상에 따르면, 컨트롤러(200)는 비휘발성 메모리 장치(100)가 상태 정보(Status) 및 독출 데이터(Data)를 모두 전송하도록 하는 제2 리드아웃 명령(CMD)을 발행하고, 비휘발성 메모리 장치(100)는 제2 리드아웃 명령(CMD)에 응답하여, 상태 정보(Status) 및 독출 데이터(Data) 모두를 컨트롤러(200)로 전송할 수 있다. 상태 정보(Status)란 비휘발성 메모리 장치(100)가 독출을 지시하는 리드 명령(CMD)에 따라 메모리 셀 어레이(130)로부터의 독출 동작이 완료되었는지 여부를 나타내는 신호 또는 데이터 일 수 있다. 상태 정보(Status)는 메모리 셀 어레이(130)로부터의 독출 동작을 완료한 상태인 레디 상태(READY)와, 메모리 셀 어레이(130)로부터의 독출 동작을 완료하지 못한 상태인 비지 상태(BUSY)를 포함할 수 있다.
일 실시예에 따르면, 저장 장치(10)는 솔리드-스테이트 드라이브(Solid-State Drive; 이하, SSD)와 같은 저장 장치로 구현될 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 저장 장치(10)는 임베디드 멀티미디어 카드(embedded multimedia card, eMMC), 유니버셜 플래시 스토리지(universal flash storage, UFS), 또는 CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 또는 메모리 스틱(Memory Stick) 등 다양한 종류의 장치로 구현될 수 있다.
저장 장치(10)는 다양한 인터페이스를 통하여 호스트(HOST)와 통신할 수 있다. 호스트(HOST)는 저장 장치(10)의 데이터 처리 동작, 예를 들어, 데이터 독출 동작 또는 데이터 기입 동작 등을 요청할 수 있다. 일 실시예에서, 호스트(HOST)는 CPU, 프로세서, 마이크로프로세서 또는 어플리케이션 프로세서(Application Processor, AP) 등에 해당할 수 있다. 일 실시예에 따라, 호스트(HOST)는 시스템 온 칩(System-On-a-Chip, SoC)으로 구현될 수 있다.
저장 장치(10)와 호스트(HOST) 사이의 통신을 위한 인터페이스의 일 예로서, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI-Express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(Multi Media Card), eMMC(embedded Multi Media Card), CF(Compact Flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식이 적용될 수 있다.
비휘발성 메모리 장치(100)는 호스트(HOST)의 요청(request)에 따라 컨트롤러가 생성한 명령(CMD) 및 독출 인에이블 신호(Read Enable Bar; 이하, REB)를 수신할 수 있다. 비휘발성 메모리 장치(100)는 컨트롤 로직(110), 메모리 셀 어레이(130), 페이지 버퍼(150) 및 입출력 인터페이스(170)를 포함할 수 있다.
컨트롤 로직(110)은 비휘발성 메모리 장치(100)의 동작 전반을 제어할 수 있다. 컨트롤 로직(110)은 컨트롤러(200)로부터 수신된 명령(CMD)을 기초로 비휘발성 메모리 장치(100)에 포함된 복수의 메모리 셀들에 대한 동작을 제어할 수 있다. 이외에도, 컨트롤 로직(110)은 어드레스를 수신할 수 있고, 명령(CMD) 및 어드레스에 기초하여 복수의 메모리 셀들을 제어할 수 있다.
컨트롤 로직(110)은 명령(CMD) 및/또는 어드레스가 버퍼링된 커맨드 버퍼, 또는 입출력 인터페이스(Input/Output Interface)(170)로부터 명령(CMD)을 수신할 수 있다. 이 경우, 커맨드 버퍼 또는 입출력 인터페이스(170)는 비휘발성 메모리 장치(100)와 컨트롤러(200) 사이의 데이터 입출력 속도에 대응하는 제1 동작 속도로 동작할 수 있고, 컨트롤 로직(110)은 제1 동작 속도보다 낮은 제2 동작 속도로 동작할 수 있다. 즉, 비휘발성 메모리 장치(100)의 내부 동작 속도는 제2 동작 속도와 대응될 수 있다. 다만 도 1에서는 설명의 편의를 위해 별도의 입출력 인터페이스와 같은 구성을 생략하였다.
컨트롤 로직(110)은 컨트롤러(200)로부터 독출 인에이블 신호(REB)를 수신할 수 있다. 일 실시예에서, 독출 인에이블 신호(REB)는 메모리 셀 어레이(130)의 독출 동작 시 컨트롤러(200)에 의해 인에이블(즉, 토글링 또는 상태 천이)되는 신호일 수 있다. 또한, 독출 인에이블 신호(REB)는 독출 데이터를 전송하기 위한 신호(예를 들어, 데이터 스트로브 신호)를 동기화하기 위한 신호일 수 있다. 여기에서 신호를 인에이블하는 동작은 신호의 레벨이 로직-하이(logic-high) 또는 로직-로우(logic-low) 로 천이 되는 동작을 의미할 수 있으며, 따라서 신호의 위상이 0도에서 180도로, 또는 180도에서 0도로 바뀌어도 무방할 수 있다.
컨트롤 로직(110)은 메모리 셀 어레이(130)에 대한 프로그램, 독출 및 소거 동작을 제어할 수 있다. 컨트롤 로직(110)에 대하여는 도 3에서 보다 상세히 설명하기로 한다.
메모리 셀 어레이(130)는 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 정보를 기입하고 독출할 수 있는 단위 저장 소자로서 기능할 수 있다. 복수의 메모리 셀들 중 소정의 메모리 셀들이 그룹화된 논리적 파티션인 메모리 뱅크가 존재할 수 있다. 메모리 셀 어레이(130)는 메모리 뱅크 단위로 데이터 기입 및 독출이 이루어 질 수 있으나, 이에 제한되지는 않는다.
일 실시예에서, 복수의 메모리 셀들은 복수의 플래쉬 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 플래쉬 메모리 셀들은 낸드(NAND) 플래쉬 메모리 셀들일 수 있다. 그러나, 본 발명은 이에 한정되지 않고, 복수의 메모리 셀들은 ReRAM(resistive RAM), PRAM(phase change RAM), MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.
메모리 셀 어레이(130)는 컨트롤 로직(110)의 제어에 기초하여 복수의 메모리 셀들 중 선택된 메모리 셀들에 데이터를 기입하거나, 기입된 데이터를 독출할 수 있다. 독출 데이터(Data)는 페이지 버퍼(150)로 출력될 수 있고, 출력된 독출 데이터(Data)는 페이지 버퍼(150)에서 버퍼링될 수 있다.
페이지 버퍼(150)는 수신된 독출 데이터(Data)를 버퍼링할 수 있다. 페이지 버퍼(150)는 수신된 데이터를 임시적으로 저장할 수 있으며 하나 이상의 레지스터로 구성될 수 있다. 일 실시예에서, 페이지 버퍼(150)는 복수개의 페이지 버퍼 그룹들을 이용하여 데이터를 순차적으로 버퍼링할 수 있다. 페이지 버퍼(150)에 관하여는 도 3을 통하여 보다 상세히 설명하도록 한다.
입출력 인터페이스(170)는 컨트롤 로직(110)으로부터 상태 정보(Status)를 수신할 수 있고, 페이지 버퍼(150)로부터 독출 데이터(Data)를 수신할 수 있다. 본 개시의 기술적 사상에 따르면, 입출력 인터페이스(170)는 컨트롤러(200)로부터의 제2 리드아웃 명령에 응답하여, 상태 정보(Status) 및 독출 데이터(Data)를 컨트롤러(200)로 전송할 수 있다. 실시예에 있어서, 입출력 인터페이스(170)는 상태 정보(Status)를 독출 데이터(Data)보다 시간적으로 앞서서 컨트롤러(200)에 전송할 수 있다.
입출력 인터페이스(170)는 컨트롤러(200)와 입출력 채널을 통해 전기적으로 연결될 수 있다. 다시 말해, 상태 정보(Status) 및 독출 데이터(Data)는 데이터 입출력 속도에 따라 컨트롤러(200)로 전송될 수 있다.
컨트롤러(200)는 비휘발성 메모리 장치(100)로부터 상태 정보(Status) 및 독출 데이터(Data)를 수신할 수 있다. 실시예에 따라, 컨트롤러(200)는 메모리 컨트롤러(또는 스토리지 컨트롤러)로 지칭될 수도 있다.
컨트롤러(200)는 호스트(HOST)로부터의 요청(request), 또는 미리 정해진 독출/기입(Read/Write) 신호에 응답하여 비휘발성 메모리 장치(100)에 저장된 데이터를 독출하도록 또는 비휘발성 메모리 장치(100)에 데이터를 기입(즉, 프로그램)하도록 비휘발성 메모리 장치(100)를 제어할 수 있다. 일 실시예에서, 컨트롤러(200)는 비휘발성 메모리 장치(100)에 명령(CMD)을 제공함으로써, 비휘발성 메모리 장치(100)에 대한 프로그램, 독출 및 소거 동작을 제어할 수 있다. 또한, 프로그램하기 위한 데이터(Data)와 독출된 데이터(Data)가 컨트롤러(200)와 비휘발성 메모리 장치(100) 사이에서 송수신될 수 있다. 예를 들어, 명령(CMD)은 기입 명령, 독출 명령, 소거 명령 등을 포함할 수 있다. 독출 명령은 리드 명령(CMD_R), 상태 리드 명령(CMD_SR), 제1 리드아웃 명령(CMD_O1)을 포함할 수 있으며, 제2 리드아웃 명령(CMD_O2)을 추가적으로 포함할 수 있다. 제2 리드아웃 명령(CMD_O2)은 컨트롤러(200)가 상태 정보(Status)와 독출 데이터(Data) 모두를 수신하기 위해 발행되는 점에서 스마트 리드아웃 명령(Smart Readout CMD)으로 지칭될 수도 있다.
본 개시의 기술적 사상에 따른 컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 발행함에 따라 상태 정보(Status) 및 독출 데이터(Data) 모두를 수신할 수 있고, 컨트롤러(200)는 수신된 상태 정보(Status)에 기초하여 비휘발성 메모리 장치(100)로부터의 데이터 수신을 계속하거나, 데이터 수신을 중단할 수 있다.
일 실시예에서, 컨트롤러(200)는 설정된 리드 모드에 기초하여, 리드 명령(CMD_R)을 발행한 후, 소정의 시간 경과 후 제2 리드아웃 명령(CMD_O2)을 발행하는 제1 리드 모드로 동작할 수 있고, 또는 리드 명령(CMD_R)을 발행한 후, 소정의 시간 경과 후 상태 리드 명령(CMD_SR)을 발행하는 제2 리드 모드로 동작 할 수 있다. 제2 리드 모드의 경우, 비휘발성 메모리 장치(100)는 상태 리드 명령(CMD_SR)에 응답하여 상태 정보(Status)를 독출 데이터(Data)와 별도로 컨트롤러(200)에 전송할 수 있으며, 컨트롤러(200)는 수신된 상태 정보(Status)에 기초하여 제1 리드아웃 명령(CMD_O1)을 추가로 발행하거나 상태 리드 명령(CMD_SR)을 재 발행할 수 있다. 독출 명령에 따른 컨트롤러(200) 및 비휘발성 메모리 장치(100)를 포함하는 저장 장치(10)에 관하여는 도 7 내지 도 12에서 보다 상세히 설명하도록 한다. 실시예에 있어서, 리드 모드는 외부 장치, 예컨대 호스트(HOST)로부터 수신되는 모드 신호에 기초하여 설정될 수 있다. 그러나, 이에 제한되는 것은 아니며, 리드 모드는 저장 장치(100)의 제조 단계에서 미리 설정될수도 있다.
컨트롤러(200)는 독출 인에이블 신호(REB)를 생성하고 비휘발성 메모리 장치(100)에 출력할 수 있다. 독출 인에이블 신호(REB)는 독출 데이터(Data)를 전송하기 위한 신호(예를 들어, 데이터 스트로브 신호)를 동기화하기 위한 신호일 수 있다. 여기에서 데이터 스트로브 신호(DQS)는 독출 인에이블 신호(REB)에 응답하여 비휘발성 메모리 장치(100)에서 생성되는 신호일 수 있다. 일 실시예에서, 데이터 스트로브 신호(DQS)는 비휘발성 메모리 장치(100)의 데이터 출력을 위한 클럭 신호로 기능할 수 있다. 다시 말해, 독출 인에이블 신호(REB)는 독출 데이터(Data) 및 상태 정보(Status)를 출력하기 위한 클럭 신호의 구동과 관련된 신호일 수 있다.
비휘발성 메모리 장치(100) 및 컨트롤러(200)는 각각에 포함된 입출력 인터페이스들을 통해 전기적으로 연결될 수 있고, 각각의 입출력 인터페이스들 서로는 핀으로 연결되어 있을 수 있다. 즉, 비휘발성 메모리 장치(100) 및 컨트롤러(200) 각각은 복수의 입출력과 관련된 핀들(DQ)을 포함할 수 있다.
일 실시예에 따르면, 비휘발성 메모리 장치(100) 및 컨트롤러(200) 각각에 포함된 복수의 입출력과 관련된 핀들(DQ) 중 제1 핀은 입출력 핀, 제2 핀은 클럭 핀, 제3 핀은 커맨드 래치 인에이블 신호(Command Latch Enable), 제4 핀은 어드레스 래치 인에이블 신호(Address Latch Enable)일 수 있다. 또한, 독출 데이터(Data)의 출력과 관련된 데이터 스트로브 신호(DQS)를 위한 별도의 핀이 포함될 수 있다. 그러나 이에 한정되지 않고, 복수의 핀들(DQ) 중 적어도 하나는 데이터가 전송되는 데이터 핀으로 이용될 수 있고, 복수의 핀들(DQ) 모두가 데이터가 전송되는 데이터 핀으로 이용될 수 있다.
명령(CMD)은 미리 정의된 고정된 시간 값을 가지므로, 데이터 입출력 속도가 증가할 수록 전체 데이터 처리 시간에서 차지하는 비율은 점차 높아지고, 그에 따라 입출력 효율은 감소 할 수 있다. 본 개시의 기술적 사상에 따르면, 비휘발성 메모리 장치(100)는 상태 정보(Status) 및 독출 데이터(Data) 모두를 컨트롤러(200)에 전송함으로써, 컨트롤러(200)는 비휘발성 메모리 장치(100)의 상태를 즉시 확인 가능하여, 명령(CMD) 발행을 위해 대기하는 시간을 감축시킬 수 있다. 여기서 상태 정보(Status)와 독출 데이터(Data)가 모두 전송된다는 것의 의미는 시간적으로 동시의 의미가 아니고, 상태 정보(Status) 및 독출 데이터(Data) 모두가 같은 채널을 통해 전송됨을 의미할 수 있다. 즉, 상태 정보(Status)와 독출 데이터(Data) 는 컨트롤러(200)로부터 수신되는 동일한 제2 리드아웃 명령(CMD)에 응답하여 전송될 수 있다. 따라서, 비휘발성 메모리 장치(100)와 컨트롤러(200) 사이의 입출력 효율이 향상될 수 있다.
저장 장치(10) 및 호스트(HOST)는 저장 시스템을 구성할 수 있고, 저장 시스템은 예를 들어, PC(personal computer), 데이터 서버, 네트워크-결합 저장, IoT(Internet of Things) 장치, 또는 휴대용 전자 기기로 구현될 수 있다. 휴대용 전자 기기는, 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라, 디지털 비디오 카메라, 오디오 장치, PMP(portable multimedia player), PND(personal navigation device), MP3 플레이어, 휴대용 게임 콘솔(handheld game console), e-북(e-book), 웨어러블 기기 등일 수 있다.
도 2는 본 개시의 일 실시예에 따른 저장 장치에서 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다. 도 2의 타이밍도에서, 가로 축은 시간을 나타내고, 세로 축은 신호의 레벨의 하이(high)(또는 데이터 "1")/로우(low) (또는 데이터 "0")을 의미할 수 있다.
도 1 및 도 2를 함께 참조하면, 컨트롤러(200)는 리드 명령(CMD_R), 상태 리드 명령(CMD_SR), 제1 리드아웃 명령(CMD_O1) 및 제2 리드아웃 명령(CMD_O2)을 발행하고, 발행된 명령(CMD)을 저장 장치(10)에 포함된 비휘발성 메모리 장치(100)에 전송할 수 있다. 비휘발성 메모리 장치(100)는 상태 리드 명령(CMD_SR) 또는 제2 리드아웃 명령(CMD_O2)에 응답하여 비휘발성 메모리 장치(100)의 상태 정보(Status)(예를 들어, 독출이 완료된 경우인 레디(Ready) 또는 독출이 완료되지 않은 경우인 비지(Busy))를 컨트롤러(200)에 전송할 수 있다. 다시 말해, 레디(Ready) 상태는 컨트롤러(200)의 요청에 응답하여 이에 대응하는 동작을 수행할 준비가 완료된 비휘발성 메모리 장치(100)의 상태를 의미할 수 있다. 비지 상태(BUSY)는, 메모리 셀이 동작 중인 상태로서, 예를 들어 컨트롤러(200)의 요청에도 이에 대응하는 동작을 할 수 없는 상태를 의미할 수 있다.
컨트롤러(200)는 상태 정보(Status)에 기초하여, 독출 인에이블 신호(REB) 및 기입 인에이블 신호(Write Enable Bar; 이하, WEB)를 생성할 수 있다. 기입 인에이블 신호(WEB)는 메모리 셀 어레이(130)의 기입 동작 시 인에이블되는 신호일 수 있고, 기입 인에이블 신호(WEB)는 데이터를 기입하기 위해 데이터 스트로브 신호(DQS)와 동기화하기 위한 신호일 수 있다.
본 개시의 기술적 사상에 따르면, 컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 발행하고, 비휘발성 메모리 장치(100)에 전송할 수 있다. 제2 리드아웃 명령(CMD_O2)은 메모리 셀 어레이(130)에서 독출된 독출 데이터(Data)와 메모리 셀 어레이(130)의 상태 정보(Status)를 함께 전송하도록 하는 명령일 수 있다. 컨트롤러(200)는 비휘발성 메모리 장치(100)에 전송되는 기입 인에이블 신호(WEB)를 천이시킬 수 있고, 기입 인에이블 신호(WEB)가 천이되는 타이밍에 명령(CMD)을 기입할 수 있다. 예를 들어, 제2 리드아웃 명령(CMD_O2)은 기입 인에이블 신호(WEB)의 라이징 엣지(rising edge)에 동기화될 수 있고, 도 2에는 라이징 엣지에 동기화된 명령(CMD)이 도시되어 있으나, 이에 제한되지 않고, 명령(CMD)은 기입 인에이블 신호(WEB)의 폴링 에지(falling edge)에 동기화될 수도 있다.
비휘발성 메모리 장치(100)는 입력된 제2 리드아웃 명령(CMD_O2)을 페치(fetch)하고, 상태 정보(Status)를 생성할 수 있다. 비휘발성 메모리 장치(100)는 준비 상태(Ready)라면 데이터를 독출하여 독출 데이터(Data)를 생성할 수 있고, 준비 상태가 아니(Busy)라면 아니라면 메모리 셀 어레이의 전력 정보 또는 불량 정보를 포함하는 기타 정보(INFO)를 생성할 수 있고, 상태 정보(Status) 및 독출 데이터(Data), 또는 상태 정보(Status) 및 기타 정보(INFO)를 포함하는 데이터 스트림을 컨트롤러(200)에 전송할 수 있다.
컨트롤러(200)는 상태 정보(Status)를 수신함으로써 비휘발성 메모리 장치(100)의 준비 여부를 확인할 수 있다. 컨트롤러(200)는 상태 정보(Status)가 준비 상태(Ready)임을 확인하고, 독출 인에이블 신호(REB)의 토글링을 시작할 수 있다. 독출 인에이블 신호(REB)의 토글링이 시작되는 시점은 기입 인에이블 신호(WEB)가 로직 하이로 천이되는 시점에서 소정의 시간이 경과하여 이루어질 수 있다. 다시 말해, 인에이블 신호(REB)의 토글링은 기입 인에이블 신호(WEB)가 로직 하이로 천이되는 시점으로부터 비휘발성 메모리 장치(100)의 상태 정보(Status) 수신 절차에 상응하는 시간 후에 시작될 수 있다.
비휘발성 메모리 장치(100)는 수신된 독출 인에이블 신호(REB)의 토글링에 응답하여, 데이터 스트로브 신호(DQS)의 토글링을 시작할 수 있다. 데이터 스트로브 신호(DQS)는 비휘발성 메모리 장치(100)의 데이터 출력을 위한 클럭 신호로 기능할 수 있다. 즉, 비휘발성 메모리 장치(100)에서 독출된 독출 데이터(Data)는 데이터 스트로브 신호(DQS)의 토글링에 동기화되어 컨트롤러(200)로 출력될 수 있다. 일 실시예에서, 독출 데이터(Data) 및 상태 신호(Status)를 데이터 스트로브 신호(DQS)의 폴링 에지(falling edge)에 동기화될 수 있다. 일 실시예에서, 독출 데이터(Data) 및 상태 신호(Status)를 데이터 스트로브 신호(DQS)의 라이징 에지 및 폴링 에지에 동기화될 수 있고, 다시 말해, DDR(Double Data Rate) 모드로 비휘발성 메모리 장치(100)에 송신될 수 있다. 이에 따라, 독출 데이터(Data), 상태 신호(Status) 뿐만 아니라 명령(CMD) 및 어드레스의 전송 속도도 향상될 수 있다.
비휘발성 메모리 장치(100)의 입출력 인터페이스(170)는 상태 정보(Status) 및 독출 데이터(Data)를 컨트롤러(200)에 전송할 수 있다. 상태 정보(Status) 및 독출 데이터(Data)를 포함하는 데이터 스트림은 입출력 인터페이스(170)의 복수의 핀들(DQ)을 통해 컨트롤러(200)로 전송될 수 있고, 구체적으로 컨트롤러(200)는 입출력 인터페이스(170)의 복수의 핀들(DQ)에 대응되는 입출력 인터페이스의 복수의 핀들을 통해 데이터 스트림을 수신할 수 있다.
입출력 인터페이스(170)의 복수의 핀들(DQ)을 통해, 상태 신호(Status)가 첫 번째 엣지(edge)에 동기화되어 출력될 수 있다. 일 실시예에서, 비휘발성 메모리 장치(100)의 독출 가능 정보인 레디(READY) 신호가 복수의 핀들(DQ)을 통해 컨트롤러(200)에 전송될 수 있다. 연속적으로, 복수의 핀들(DQ)을 통해, 독출 데이터(Data)가 두 번째 엣지에 동기화되어 컨트롤러로 전송될 수 있다(D0). 연속적으로, 복수의 핀들(DQ)을 통해, 독출 데이터(Data)가 세 번째 엣지에 동기화되어 컨트롤러로 전송될 수 있다(D1). 같은 방법으로, 복수의 핀들(DQ)을 통해, 독출 데이터(Data)가 N+2 번째 엣지에 동기화되어 컨트롤러로 전송될 수 있다(DN).(N은 1 이상의 자연수)
도 3은 본 개시의 일 실시예에 따른 비휘발성 메모리 장치를 도시하는 도면이다.
도 1, 및 도 3을 함께 참조한다. 비휘발성 메모리 장치(100)는 컨트롤 로직(110), 로우 디코더(120), 메모리 셀 어레이(130), 전압 생성기(140), 페이지 버퍼(150) 및 입출력 인터페이스(170)를 포함할 수 있고, 페이지 버퍼(150)는 복수의 페이지 버퍼 셀(PB1-PBn)(151-15n)을 더 포함할 수 있다. 본 실시예에 따른 비휘발성 메모리 장치(100)는 도 1의 저장 장치(10)의 일 구현예에 대응할 수 있고, 도 1 및 도 2에서 상술된 내용은 본 실시예에 대해서도 적용될 수 있다. 도 1 및 도 2와 중복되는 설명은 생략한다.
컨트롤 로직(110)은 컨트롤러(200)로부터 명령(CMD), 독출 인에이블 신호(REB) 및 기입 인에이블 신호(WEB)를 수신할수 있다. 도 3에서, 설명의 편의를 위해 컨트롤 로직(110)은 명령(CMD), 독출 인에이블 신호(REB) 및 기입 인에이블 신호(WEB)를 직접 수신하는 것으로 도시되었으나, 이에 국한되지 않고, 별도의 입/출력 인터페이스(Input/Output Interface)등 상이한 채널을 통해 수신할 수도 있다.
컨트롤 로직(110)은 전원 공급을 제어하기 위한 전압 제어 신호를 생성할 수 있고, 메모리 셀 어레이(130)를 스트링 선택 라인(String Select Line; 이하, SSL) 및 워드 라인(Word Line; 이하, WL) 별로 제어하기 위한 로우 어드레스 신호(X-ADDR) 및 페이지 버퍼(150)의 버퍼링을 비트 라인(Bit Line; 이하, BL) 별로 제어하는 컬럼 어드레스 신호(Y-ADDR)를 생성할 수 있다. 이로써, 컨트롤 로직(110)은 비휘발성 메모리 장치(100) 내의 다양한 동작을 전반적으로 제어할 수 있다.
로우 디코더(120)는 로우 어드레스 신호(X-ADDR)를 기초로, 복수의 워드 라인(WL)들 중 일부 워드 라인을 선택하고, 선택된 워드 라인(WL) 을 활성화할 수 있다. 로우 디코더(120)는 선택된 메모리 셀 또는 메모리 블록의 워드 라인(WL)에 동작 모드에 대응하는 워드라인 전압(V_WL)을 인가할 수 있다. 프로그램 동작시, 로우 디코더(120)는 선택된 워드 라인(WL)에 프로그램 전압(Vpgm)과 프로그램 검증 전압(Vpgm_vfy)을, 비선택된 워드라인에는 프로그램 패스 전압(Vpgm_pass)을 인가할 수 있다. 소거 동작시, 로우 디코더(120)는 선택된 워드 라인(WL)에 소거 전압(Vera)과 소거 검증 전압(Vera_vfy)을, 비선택 워드라인에는 소거 패스 전압(Vera_pass)을 인가할 수 있다. 리드 동작시, 로우 디코더(120)는 선택된 워드라인(WL)에 리드 전압(Vr)을, 비선택 워드 라인에는 리드 패스 전압(Vr_pass)을 전달한다. 상술한 설명에서, 리드 전압(Vr)이 제공되어 리드 동작이 수행되는 것으로 기술되어 있으나, 이에 국한되지 않고, 본 발명의 리드 동작은, 리드 전압(Vr)에 의한 리드 동작뿐만 아니라, 프로그램 동작 시의 프로그램 검증 전압(Vpgm_vfy) 및 소거 동작 시의 소거 검증 전압(Vera_pass)에 의해서도 수행되는 것으로 이해될 수 있다.
 메모리 셀 어레이(130)는 복수의 메모리 셀들을 포함할 수 있고, 복수의 메모리 셀들 각각은 복수의 메모리 페이지들 또는 복수의 메모리 뱅크들을 구성할 수 있다. 메모리 셀 어레이(130)는 워드 라인(WL), 선택 라인(SSL, GSL)을 통해 로우 디코더(120)에 연결될 수 있고, 비트라인(BL)들을 통해서 페이지 버퍼(150)에 연결될 수 있다. 복수의 메모리 셀들 각각은 복수의 워드라인들과 복수의 비트라인들이 교차하는 영역들에 배치되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀들은 비트라인(BL), 워드라인(WL)으로 제공되는 전압에 의해서 프로그램, 소거, 및 리드될 수 있다.
일 실시예에서, 메모리 셀 어레이(130)는 3차원 메모리 셀 어레이를 포함할 수 있고, 3차원 메모리 셀 어레이는 복수의 낸드 스트링들을 포함할 수 있으며, 각 낸드 스트링은 기판 위에 수직으로 적층된 워드 라인들에 각각 연결된 메모리 셀들을 포함할 수 있다. 미국 특허공개공보 제7,679,133호, 미국 특허공개공보 제8,553,466호, 미국 특허공개공보 제8,654,587호, 미국 특허공개공보 제8,559,235호, 및 미국 특허출원공개공보 제2011/0233648호는 본 명세서에 인용 형식으로 결합된다. 일부 실시예에서, 메모리 셀 어레이(130)는 2차원 메모리 셀 어레이를 포함할 수 있고, 2차원 메모리 셀 어레이는 행 및 열 방향을 따라 배치된 복수의 낸드 스트링들을 포함할 수 있다.
전압 생성기(140)는 컨트롤 로직(110)으로부터 수신한 제어 신호들에 기초하여 복수의 워드 라인(WL)들을 구동하기 위한 워드라인 전압(V_WL)을 생성할 수 있다. 워드라인 전압(V_WL)은 프로그램 전압, 리드 전압, 소거 전압 또는 패스 전압을 포함할 수 있다. 생성된 워드라인 전압(V_WL)은 로우 디코더(120)로 인가되어, 일부 워드 라인을 선택하고, 선택된 워드 라인(WL)을 활성화할 수 있다.
페이지 버퍼(150)는 복수의 페이지 버퍼 셀들(PB1-PBn)(151-15n)(n은 2이상의 자연수)을 포함할수 있다. 페이지 버퍼(150)는 메모리 셀 어레이(130)에 기록될 데이터 또는 메모리 셀 어레이(130)로부터 리드된 데이터를 저장할 수 있다. 페이지 버퍼(150)는 복수의 페이지 버퍼 그룹들을 포함할 수 있고, 복수의 페이지 버퍼 그룹들 각각은 페이지 버퍼 셀들(PB1-PBn)(151-15n)을 포함할 수 있다. 일 실시예에서, 페이지 버퍼 그룹들의 수는 메모리 페이지들 또는 메모리 뱅크들의 수에 대응할 수 있고, 페이지 버퍼 그룹들 각각에 구비되는 복수의 페이지 버퍼 셀들(PB1-PBn)(151-15n)의 수는 복수의 메모리 페이지들 또는 복수의 메모리 뱅크들 각각에 포함되는 복수의 비트 라인(BL)들의 수에 대응할 수 있다.
페이지 버퍼(150)는 메모리 장치(20)에 대한 리드 동작이 수행되는 경우, 선택된 메모리 셀들의 워드라인으로 제공되는 리드 신호에 따라, 메모리 셀 어레이(130)에 포함된 복수의 메모리 셀들 중 선택된 일부 메모리 셀들의 데이터들을 저장할 수 있다. 일 예로, 복수의 페이지 버퍼들 각각은 적어도 하나의 래치를 포함하고, 적어도 하나의 래치에 래치 신호가 제공되어, 메모리 셀들의 데이터를 래치할 수 있다.
페이지 버퍼(150)는 컬럼 어드레스 신호(Y-ADDR)에 응답하여 비트 라인들(BLs) 중 일부 비트 라인(BL)을 선택할 수 있다. 구체적으로, 페이지 버퍼(150)는 동작 모드에 따라 기입 드라이버 또는 감지 증폭기로서 동작할 수 있다. 예를 들어, 독출 동작 시에, 페이지 버퍼(150)는 감지 증폭기로 동작하여 메모리 셀 어레이(130)에 저장된 데이터를 출력할 수 있고, 프로그램 동작시에, 페이지 버퍼(150)는 기입 드라이버로 동작하여, 메모리 셀 어레이(130)에 저장하고자 하는 데이터를 입력시킬 수 있다.
일 실시예에서, 페이지 버퍼(150)는 복수의 페이지 버퍼 그룹들을 포함할 수 있고, 복수의 페이지 버퍼 그룹들 각각은 복수의 페이지 버퍼 셀들(PB1-PBn)을 포함할 수 있다. 예를 들어, 복수의 페이지 버퍼 그룹들의 수는 메모리 셀 어레이의 메모리 페이지 또는 메모리 뱅크의 수와 대응될 수 있다.
입출력 인터페이스(170)는 컨트롤 로직(110)으로부터 상태 정보(Status)를 수신할 수 있고, 페이지 버퍼(150)로부터 독출 데이터(Data)를 수신할 수 있다. 본 개시의 기술적 사상에 따르면, 입출력 인터페이스(170)는 컨트롤러(200)로부터의 제2 리드아웃 명령(CMD_O2)에 응답하여, 상태 정보(Status) 및 독출 데이터(Data)를 컨트롤러(200)로 전송할 수 있다. 실시예에 있어서, 입출력 인터페이스(170)는 상태 정보(Status)를 독출 데이터(Data)보다 시간적으로 앞서서 컨트롤러(200)에 전송할 수 있다.
도 4는 본 개시의 일 실시예에 따른 컨트롤러를 도시하는 블록도이다.
컨트롤러(200)는 호스트 인터페이스(Host Inferface)(Host I/F)(210), 중앙 처리 장치(CPU)(220), RAM(Ramdom Access Memory)(230), ROM(Read Only Memory)(240), 버퍼(250), 및 메모리 인터페이스(NVM I/F)(260) 를 포함할 수 있고, 각각의 구성요소는 버스(bus)를 통해 통신할 수 있다.
컨트롤러(200)는 비휘발성 메모리 장치(100) 의 동작, 예를 들면 프로그램(program) 동작, 독출(read) 동작, 또는 소거(erase) 동작을 제어하기 위한 어드레스와 명령(CMD)(예를 들면, 프로그램 명령, 독출 명령 또는 소거 명령)을 생성할 수 있다. 프로그램 동작과 상기 독출 동작은 페이지(page) 단위로 수행되고, 상기 소거 동작은 블록(block) 단위로 수행될 수 있으나, 이에 한정되지는 않는다.
컨트롤러(200)는 비휘발성 메모리 장치(100)로부터 상태 정보(Status) 및 독출 데이터(Data)를 수신할 수 있다. 컨트롤러(200)는 비휘발성 메모리 장치(100)에 명령(CMD)을 제공함으로써, 비휘발성 메모리 장치(100)에 대한 프로그램, 독출 및 소거 동작을 제어할 수 있다. 본 개시의 기술적 사상에 따른 컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 발행함에 따라 상태 정보(Status) 및 독출 데이터(Data) 모두를 수신할 수 있고, 컨트롤러(200)는 수신된 상태 정보(Status)에 기초하여 비휘발성 메모리 장치(100)로부터의 데이터 수신을 계속하거나, 데이터 수신을 중단할 수 있다.
메모리 컨트롤러(200)는 비휘발성 메모리 장치(100)의 동작을 제어하기 위한 명령(CMD)을 비휘발성 메모리 장치(200)로 출력한다. 비휘발성 메모리 장치(100)와 메모리 컨트롤러(200)는 입출력과 관련된 복수의 핀들(DQ)을 통해 전기적으로연결될 수 있고, 복수의 핀들(DQ)을 통해 명령(CMD), 데이터(Data), 어드레스 신호, 상태 정보(Status) 등이 송수신될 수 있다. 이하에서는 설명의 편의를 위하여 본 발명의 실시예로서 독출 동작을 위주로 설명한다.
CPU(220)는 버스를 통하여 호스트 인터페이스(210), RAM(230), ROM(240), 버퍼, 메모리 인터페이스(260) 사이에서 데이터의 교환을 제어할 수 있다. CPU(220)는 비휘발성 메모리 장치(도 1의 100)에 데이터를 프로그램하거나, 비휘발성 메모리 장치로부터 데이터를 독출하거나 소거하기 위한 명령(CMD)을 생성할 수 있다. 또한, CPU(220)는 프로그램 명령, 리드 명령 및 소거 명령을 생성할 수 있다.
RAM(230)은 CPU(220)의 동작 메모리(operation memory)로서 사용될 수 있고, DRAM(Dynamic RAM) 또는 SRAM(Static RAM)으로 구현될 수 있다. ROM(240)은 컨트롤러(200)의 동작에 필요한 프로그램 코드를 저장할 수 있다. 프로그램 코드는 펌웨어(firmware)의 형태로 ROM(240)에 저장될 수 있다. 버퍼(250)는 DRAM(dynamic random access memory), SRAM(static random access memory), 또는 듀얼-포트(dual-port) SRAM와 같은 휘발성(volatile) 메모리로 구현될 수 있다.
호스트 인터페이스(210)를 통하여 호스트(HOST)와 컨트롤러(200)간의 통신이 이루어질 수 있다. 일 실시예에서, 호스트(HOST)는 프로그램 요구(Program Request)에 따라 비휘발성 메모리 장치(100)에 프로그램될 데이터를 호스트 인터페이스(210)를 통하여 컨트롤러(20)로 전송할 수 있고, 컨트롤러(200)는 프로그램 요구(program request)에 따라 데이터가 저장될 비휘발성 메모리 장치(100)의 페이지의 페이지 어드레스 및/또는 상기 페이지에 상응하는 워드 라인 어드레스를 생성할 수 있다. 일 실시예에서, 호스트(HOST)는 독출 요구(Read Request)에 따라 비휘발성 메모리 장치(100)에서 독출할 데이터의 논리 영역을 호스트 인터페이스(210)를 통하여 컨트롤러(20)로 전송할 수 있고, 컨트롤러(200)는 논리 영역에 대응하는 물리 영역에 대한 페이지 어드레스를 생성할 수 있다.
메모리 인터페이스(260)를 통하여 컨트롤러(200)와 비휘발성 메모리 장치(100)는 서로 통신할 수 있다. 메모리 인터페이스(260)는 도 1에서 전술한 입출력 인터페이스(170)와 대응될 수 있고, 복수의 핀들(DQ)을 통해 메모리 인터페이스(260)와 입출력 인터페이스(170)가 서로 전기적으로 연결될 수 있다.
도 5는 본 개시의 일 실시예에 따른 컨트롤러를 보다 구체적으로 도시하는 블록도이다. 도 1, 도 3 및 도 4를 함께 참조한다.
컨트롤러(200a)는 명령 생성기(270a) 및 신호 생성기(280a)를 포함할 수 있다. 명령 생성기(270a) 및 신호 생성기(280a)는 도 4에서 도시된 메모리 인터페이스(260)를 구성할 수 있다. 그러나, 이에 제한되는 것은 아니며, 예를 들어, 명령 생성기(270a) 및 신호 생성기(280a)는 소프트웨어(또는 펌웨어)로 구현되어, CPU(220)에 의해 실행될 수 있다.
컨트롤러(200a)는 호스트 인터페이스(210)를 통해 독출 요청(Read Request)를수신할 수 있고, 메모리 인터페이스(260)를 통해 상태 정보(Status) 및 독출 데이터(Data)를 수신할 수 있다.
명령 생성기(270a)는 호스트의 독출 요청(Read Request)에 응답하여, 리드 명령(CMD_R)을 발행할 수 있다. 또한, 명령 생성기(270a)는 리드 명령(CMD_R)을 생성하고, 제1 시간을 대기한 뒤, 제2 리드아웃 명령(CMD_O2)을 발행할 수 있다. 리드 명령(CMD_R)이란, 비휘발성 메모리 장치(100)가 메모리 셀 어레이에 기입된 데이터를 독출하도록 발행된 명령일 수 있고, 제2 리드아웃 명령(CMD_O2)이란, 비휘발성 메모리 장치(100)가 독출 동작을 완료했는지를 나타내는 상태 정보(Status) 및 독출된 데이터(Data)를 컨트롤러(200)로 출력하도록 발행된 명령일 수 있다. 상태 정보(Status)는 비휘발성 메모리 장치(100)의 독출 동작이 완료되었음을 의미하는 레디 상태(READY)와, 비휘발성 메모리 장치(100)의 독출 동작이 완료되지 않았음을 의미하는 비지 상태(BUSY)를 포함할 수 있다.
본 개시의 기술적 사상에 따르면, 명령 생성기(270a)가 생성한 제2 리드아웃 명령(CMD_O2)은 비휘발성 메모리 장치(100)로 출력되고, 비휘발성 메모리 장치(100)제2 리드아웃 명령(CMD_O2)에 응답하여 비휘발성 메모리 장치(100)의 상태 정보(Status) 및 독출 데이터(Data) 모두를 컨트롤러(200)에 출력할 수 있다.
신호 생성기(280a)는 호스트의 독출 요청(Read Request)에 응답하여, 독출 인에이블 신호(REB) 및 기입 인에이블 신호(WEB)를 생성할 수 있고, 메모리 인터페이스(260)를 통하여 비휘발성 메모리 장치(100)에 출력할 수 있다.
본 개시의 일 실시예에 따르면, 기입 인에이블 신호(WEB)는 복수의 명령들(CMD)을 발행하기 위해 토글링될 수 있다. 또한, 독출 인에이블 신호(REB)는 비휘발성 메모리 장치(100)의 데이터를 출력하는 기준 클럭으로 기능할 수 있는 데이터 스트로브 신호(DQS)와 동기화된 신호일 수 있다. 다시 말해, 독출 인에이블 신호(REB)는 비휘발성 메모리 장치(100)의 데이터를 출력시키기 위해 생성되는 신호일 수 있다.
본 개시의 일 실시예에 따르면, 컨트롤러(200a)는 상태 정보(Status)에 기초하여, 데이터를 수신하거나, 수신을 중단할 수 있다. 구체적으로, 컨트롤러(200a)는 레디 상태(READY)를 수신함에 따라, 독출 데이터(Data)의 수신을 계속할 수 있고, 비지 상태(BUSY)를 수신함에 따라, 데이터의 수신을 중단할 수 있다. 비지 상태(BUSY)의 경우, 컨트롤러(200a)가 비지 상태(BUSY)임을 확인하기 전까지 수신된 독출 데이터(Data)는 버려질 수 있다. 일 실시예에 따라, 비지 상태(BUSY)의 경우, 컨트롤러(200a)에 수신된 데이터는 비휘발성 메모리 장치(100)의 독출 데이터(Data)가 아닌, 비휘발성 메모리 장치(100)의 전력 정보 또는 불량 메모리 셀의 어드레스 정보를 수신함으로서, 수신된 데이터를 활용할 수 있다.
본 개시의 일 실시예에서, 명령(CMD)은 데이터(Data)와 동일한 입출력 채널을 이용하여 컨트롤러(200)에서 비휘발성 메모리 장치(100)로 송신될 수 있다. 예를 들어, 컨트롤러(200)는 입출력 채널을 통해 비휘발성 메모리 장치(100)에 명령(CMD)을 송신하고, 이어서, 입출력 채널을 통해 프로그램 하기 위한 데이터(DATA)를 비휘발성 메모리 장치(100)에 송신하거나 독출된 데이터(DATA)를 비휘발성 메모리 장치(100)로부터 수신할 수 있다. 그러나, 본 발명은 이에 한정되지 않으며, 일부 실시예들에서, 명령(CMD)이 전송되는 채널과 데이터(DATA)가 송수신되는 채널은 분리될 수도 있다. 도 1 및 도 5에서는 설명의 편의를 위해 입출력 인터페이스를 통해서 전송되는 채널을 도시하였다.
도 6은 본 개시의 다른 실시예에 따른 컨트롤러를 도시하는 블록도이다. 도 1, 도 3 및 도 4를 함께 참조한다.
컨트롤러(200b)는 명령 생성기(270b) 및 신호 생성기(280b)를 포함할 수 있고, 모드 선택기(290b)를 더 포함할 수 있다. 명령 생성기(270b) 및 신호 생성기(280b)는 도 5의 명령 생성기(270a) 및 신호 생성기(280a)의 구성과 기능이 유사한 바, 중복되는 설명은 생략한다.
컨트롤러(200b)는 호스트 인터페이스(210)를 통해 독출 요청(Read Request) 및 리드 모드를 수신할 수 있다. 리드 모드는 제1 리드 모드 및 제2 리드 모드를 포함할 수 있다.
모드 선택기(290b)는 수신된 리드 모드에 따라, 명령 생성기(270b) 및 신호 생성기(280b)에 모드 신호(MODE)를 인가할 수 있다. 명령 생성기(270b) 및 신호 생성기(280b)는 모드 신호(MODE)에 기초하여, 비휘발성 메모리 장치(100)가 제1 리드 모드 또는 제2 모드로 동작하도록 제어할 수 있다.
명령 생성기(270b)는 전술한 리드 명령(CMD_R) 및 제2 리드아웃 명령(CMD_O2) 외에도, 상태 리드 명령(CMD_SR) 및 제1 리드아웃 명령(CMD_O1)을 더 발행할 수 있다. 상태 리드 명령(CMD_SR)은 리드 명령(CMD_R) 후, 비휘발성 메모리 장치(100)가, 독출 동작이 완료되었는지를 나타내는 상태 정보(Status)를 출력하도록 발행한 명령일 수 있다. 제1 리드아웃 명령(CMD_O1)은 비휘발성 메모리 장치(100)의 독출 동작이 완료된 레디 상태(READY)일 때, 비휘발성 메모리 장치(100)가 독출 데이터(Data)를 출력하도록 발행된 명령일 수 있다.
일 실시예에 따라, 컨트롤러(290b)는 제1 리드 모드에서 리드 명령(CMD_R), 상태 리드 명령(CMD_SR) 및 제1 리드아웃 명령(CMD_O1)을 발행할 수 있고, 제2 리드 모드에서 리드 명령(CMD_R) 및 제2 리드아웃 명령(CMD_O2)을 발행할 수 있다. 다만, 이에 국한되지 않고, 리드 모드는 다양한 명령(CMD)의 조합으로 이루어질 수 있다.
호스트(HOST)는 사용자의 입력에 응답하여 리드 모드를 요청할 수 있고, 또는 미리 결정된 기준에 따라 리드 모드를 결정하고, 제1 리드 모드 또는 제2 리드 모드로 저장 장치(10)가 동작하도록 리드 모드를 요청할 수 있다.
도 7 내지 도 9는 리드 모드에 따라 생성 되는 신호 및 명령이 도시된 타이밍도이다. 도 7 내지 도 9의 타이밍도에서, 가로 축은 시간 단위 이고, 세로 축은 신호의 레벨의 하이(high)(또는 데이터 "1")/로우(low) (또는 데이터 "0")을 의미할 수 있다. 본 실시예에 따른 저장 장치(10)는 도 1의 저장 장치(10)의 일 구현예에 대응할 수 있고, 도 1, 도 3, 도 5 및 도 6에서 상술된 내용은 본 실시예에 대해서도 적용될 수 있다. 도 1, 도 3, 도 5 및 도 6과 중복되는 설명은 생략한다.
도 7은 본 개시의 일 실시예에 따른 제1 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다.
커맨드 래치 인에이블 신호(Command Latch Enable; 이하, CLE)는 컨트롤러(200)에서 비휘발성 메모리 장치(100)로 송신될 수 있다. 동일한 입출력과 관련된 핀들(DQ)을 통해 명령 생성기(270a, 270b)에서 생성된 명령(CMD) 및 신호 생성기(280a, 280b)에서 생성된 신호들과, 비휘발성 메모리 장치(100)에서 독출된 데이터(Data) 또는 기타 정보(INFO)가 송수신 될 수 있음은 전술한 바와 같다. 컨트롤러(200)는 커맨드 래치 인에이블 신호(CLE)를 이용하여 동일한 입출력 핀들(DQ)을 통해 송수신 되는 데이터들, 예를 들어 명령(CMD), 신호들, 데이터(Data), 및 기타 정보(INFO)를 구분할 수 있다.
컨트롤러(200)는 시점 t1에서, 독출 동작을 위해 커맨드 래치 인에이블 신호(CLE)를 토글링할 수 있다. 소정의 시간이 경과한 후, 컨트롤러(200)는 기입 인에이블 신호(WEB)를 토글링할 수 있고, 기입 인에이블 신호(WEB)의 천이 시점(예를 들어, 라이징 엣지 또는 폴링 엣지)인 시점 t2에서, 리드 명령(CMD_R)이 발행되어 비휘발성 메모리 장치(100)에 전송될 수 있다. 도 7에서, 리드 명령(CMD_R)은 기입 인에이블 신호(WEB)의 첫번째 라이징 엣지(t2)에 동기화되어 발행되는 것으로 도시되었으나, 이에 제한되지 않고, 기입 인에이블의 폴링 엣지에 동기화되어 발행될 수도 있다.
비휘발성 메모리 장치(100)는 리드 명령(CMD_R)에 응답하여, 메모리 셀 어레이(130)로부터 데이터를 독출할 수 있다. 기입된 데이터가 독출되는 데에는 소정의 시간이 소요될 수 있다.
리드 명령(CMD_R)이 발행되고 제1 시간(Ta)을 대기한 후인 시점 t3에서, 컨트롤러(200)는 상태 리드 명령(CMD_SR)을 발행할 수 있다. 상태 리드 명령(CMD_SR)은 기입 인에이블 신호(WEB)의 두 번째 라이징 엣지에서 발행될 수 있다. 여기서 제1 시간은 비휘발성 메모리 장치(100)에 기입된 데이터가 독출되기 위해 소요되는 것으로 예상되는 시간과 대응될 수 있다.
비휘발성 메모리 장치(100)는 상태 리드 명령(CMD_SR)에 응답하여, 메모리 셀 어레이의 독출 동작이 완료되었는지를 나타내는 상태 신호(Status)를 컨트롤러(200)에 출력할 수 있다.
이하에서, 상태 정보(Status)가 비지 상태(BUSY)인 것을 전제한다.
컨트롤러(200)는 상태 신호(Status)를 수신하기 위해 독출 인에이블 신호(REB)의 레벨을 천이할 수 있다. 이에 따라, 컨트롤러(200)는 독출 인에이블 신호(REB)의 라이징 엣지 시점에서, 비지 상태(BUSY)를 수신할 수 있다(시점 t4).
컨트롤러(200)는 비휘발성 메모리 장치(100)의 독출 동작이 완료되지 않은 것을 확인 후, 제2 시간을 대기한 후인 시점 t5에서, 상태 리드 명령(CMD_SR)을 재 발행할 수 있다. 여기서 제2 시간은 비휘발성 메모리 장치(100)에 기입된 데이터가 독출되기 위해 소요되는 것으로 예상되는 시간에서, 리드 명령(CMD_R)을 발행한 시점에서 비지 상태(BUSY)를 확인한 시점까지의 시간을 차분한 시간(Tb)과 대응될 수 있다.
비휘발성 메모리 장치(100)는 다시 수신된 상태 리드 명령(CMD_SR)에 응답하여, 메모리 셀 어레이의 독출 동작이 완료되었는지를 나타내는 상태 신호(Status)를 컨트롤러(200)에 출력할 수 있고, 메모리 셀 어레이(130)가 독출 완료되었음을 의미하는 준비 상태(READY)를 컨트롤러(200)에 출력할 수 있다.
시점 t6에서, 컨트롤러(200)는 비휘발성 메모리 장치(100)의 독출이 완료되었음을 확인할 수 있고, 컨트롤러(200)는 시점 t7에서, 독출 데이터(Data)를 수신하기 위해 제1 리드아웃 명령(CMD_O1)을 발행할 수 있다. 컨트롤러(200)는 제1 리드아웃 명령(CMD_O1)이 발행됨에 따라, 독출 인에이블 신호(REB)를 토글링할 수 있다.
비휘발성 메모리 장치(100)는 제1 리드아웃 명령(CMD_O1)에 응답하여 독출 데이터(Data)를 컨트롤러(200)에 출력할 수 있다. 비휘발성 메모리 장치(100)는 독출 인에이블 신호(REB)와 동기화된 데이터 스트로브 신호(DQS)의 라이징 엣지 및/또는 폴링 엣지에 따라 독출 데이터(Data)를 출력할 수 있다. 필요한 명령(CMD)이 모두 발행되었으므로, 기입 인에이블 신호(WEB)는 새로운 독출 동작 또는 기입 동작 전 까지 레벨이 천이되지 않을 수 있다.
이상, 상태 정보(Status)가 비지 상태(BUSY)인 것이 전제된 저장 장치(10)의 동작이 설명되었다.
상태 정보(Status)가 레디 상태(READY)인 경우, 전술 중 시점 t4 및 시점 t5의 단계는 생략될 수 있다. 예를 들어, 시점 t3에서 상태 리드 명령(CMD_SR)이 발행된 이후, 컨트롤러(200)에 수신된 상태 정보(Status)가 레디 상태(READY)로 확인되면, 컨트롤러(200)는 상태 리드 명령(CMD_SR)이 아닌 제1 리드아웃 명령(CMD_O1)를 발행할 수 있다.
도 8은 본 개시의 일 실시예에 따른 제2 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다. 커맨드 래치 인에이블 신호(CLE), 기입 인에이블 신호(WEB)에 관하여 도 7과 중복되는 설명은 생략한다. 또한, 메모리 셀 어레이가 독출 동작 하도록 하는 리드 명령(CMD_R)은 이미 발행되었다고 전제한다.
컨트롤러(200)는 제2 리드아웃 신호(CMD_O2)를 발행하고, 비휘발성 메모리 장치(100)에 전송할 수 있다. 컨트롤러(200)는 제2 리드아웃 신호(CMD_O2)를 발행하기 위해 기입 인에이블 신호(WEB)의 레벨을 천이할 수 있다. 제2 리드아웃 신호(CMD_O2)는 기입 인에이블 신호(WEB)의 첫번째 라이징 엣지에 발행될 수 있다(시점 t1).
컨트롤러(200)는 제2 리드아웃 신호(CMD_O2)를 발행함에 따라, 독출 인에이블 신호(REB)를 토글링할 수 있다.
컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)이 발행됨에 따라, 독출 인에이블 신호(REB)를 토글링할 수 있다. 비휘발성 메모리 장치(100)는 독출 인에이블 신호(REB)와 동기화된 데이터 스트로브 신호(DQS)의 라이징 엣지 및/또는 폴링 엣지에 따라 입출력과 관련된 핀들(DQ)를 통해 데이터 스트림을 출력할 수 있다(시점 t2).
예를 들어, 비휘발성 메모리 장치(100)는 제2 리드아웃 신호(CMD_O2)에 응답하여, 상태 정보(Status) 중 비지 상태(BUSY)를 출력할 수 있다. 비휘발성 메모리 장치(100)는 메모리 셀 어레이(130)의 독출 동작이 완료되지 않았을 경우, 비지 상태(Busy)를 나타내는 상태 정보(Status)와 함께 비휘발성 메모리 장치(100)에 대한 기타 정보(INFO, I0-I3)를 컨트롤러로 출력할 수 있다. 예를 들어, 기타 정보(INFO)는, 비휘발성 메모리 장치(100)의 전력 정보 또는 결함있는 메모리 셀의 어드레스 등을 포함할 수 있다. 이외에도 기타 정보(INFO)는, 기입된 데이터 외의 비휘발성 메모리 장치(100)의 상태를 나타내는 다양한 정보가 포함될 수 있다.
컨트롤러(200)는 t2 시점에 비지 상태(BUSY)를 나타내는 상태 정보(Status)를 수신하고, 이어서 기타 정보(INFO)를 수신할 수 있다. 컨트롤러(200)는 비지 상태(BUSY)를 확인한 후, 제3 시간(Tc)을 대기한 후인 시점 t3에서, 제2 리드아웃 명령(CMD_O2)을 재 발행할 수 있다. 제2 리드아웃 신호(CMD_O2)는 기입 인에이블 신호(WEB)의 두 번째 라이징 엣지에 발행될 수 있다(시점 t3).여기서 제3 시간(Tc)은 비휘발성 메모리 장치(100)에 기입된 데이터가 독출되기 위해 소요되는 것으로 예상되는 시간에서, 제2 리드아웃 명령(CMD_O2)의 첫 번째 발행 시점에서 두 번째 발행 시점까지의 시간을 차분한 시간과 대응될 수 있다.
컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 재 발행에 따라 독출 인에이블 신호(REB)를 다시 토글링할 수 있다. 비휘발성 메모리 장치(100)는 제2 리드아웃 명령(CMD_OO)에 응답하여 독출 데이터(Data) 및 상태 정보(Status)를 컨트롤러(200)에 출력할 수 있다.
일 실시예에서, 비휘발성 메모리 장치(100)는 독출 인에이블 신호(REB)와 동기화된 데이터 스트로브 신호(DQS)의 라이징 엣지 및/또는 폴링 엣지에 따라 독출 데이터(Data)를 출력할 수 있다. 컨트롤러(200)는 상태 정보(Status)가 레디 상태(READY)임을 확인하고, 데이터 스트림을 모두 수신할 수 있다. 일 실시예에서, 데이터 스트림에는 독출 데이터(Data) 및 상태 정보(Status)가 모두 포함되어 있고, 독출 데이터(Data)는 데이터 스트로브 신호(DQS)의 엣지마다 전송될수 있다. 독출 데이터(Data)는 비휘발성 메모리 장치(100)의 입출력 인터페이스(170)에 포함된 복수의 핀들(DQ)을 통해 출력될 수 있다. 도 8에 도시된 데이터(D0-D4) 각각은 복수의 핀들(DQ)을 통해 동시에 컨트롤러(200)로 전송되는 신호일 수 있다.
도 9는 본 개시의 다른 실시예에 따른 제2 리드 모드에 따라 생성되는 신호 및 발행되는 명령이 시간에 따라 배열된 타이밍도이다. 도 7 및 도 8과 중복되는 설명은 생략한다. 또한, 메모리 셀 어레이가 독출 동작 하도록 하는 리드 명령(CMD_R)은 이미 발행되었다고 전제한다. 시점 t2까지는 도 8과 동일하다.
도 9는 본 개시의 실시예에 따라 제2 리드 모드로 동작하는 저장 장치(10)의 동작을 설명한다. 제2 리드 모드에서, 비휘발성 메모리 장치(100)는 상태 정보(Status)를 생성하지만, 컨트롤러(200)에 출력하지 않고, 상태 정보(Status)를 이용하여 내부 신호를 제어할 수 있다. 즉, 상태 정보(Status)는 컨트롤 로직(110)에서 비휘발성 메모리 장치(100)의 독출이 완료되었는지 여부를 예측한 결과로서 생성되는 내부 신호일 수 있다.
시점 t2에서 제2 리드아웃 명령(CMD_O2)이 발행됨에 따라, 컨트롤러(200)는 독출 인에이블 신호(REB)가 토글링할 수 있다(시점 t3).
본 개시의 기술적 사상에 따르면, 비휘발성 메모리 장치(100)는 제2 리드아웃 명령(CMD_O2)에 응답하여 독출 데이터(Data)를 생성할 수 있다. 비휘발성 메모리 장치(100)는 비지 상태(BUSY)를 확인하고, 제4 시간(Td) 동안 데이터 스트로브 신호(DQS)의 토글링을 지연할 수 있다. 컨트롤러(200)는 상태 정보(Status)와 무관하게 독출 인에이블 신호(REB)의 토글링을 유지할 수 있다. 여기서, 제4 시간(Td)은 비휘발성 메모리 장치(100)에 기입된 데이터가 독출되기 위해 소요되는 것으로 예상되는 시간에서, 리드 명령(CMD_R)이 발행된 시점부터 독출 인에이블 신호(REB)가 토글링된 시점까지의 시간을 차분한 시간과 대응될 수 있다.
비휘발성 메모리 장치(100)는 제4 시간(Td) 동안 데이터 스트로브 신호(DQS)의 토글링을 지연한 후인 시점 t4에서 데이터 스트로브 신호(DQS)를 토글링할 수 있다. 컨트롤러(200)는 순차적으로 독출 데이터(Data)를 수신할 수 있다(D0-D4)
도 10은 비휘발성 메모리 장치에서 생성되는 데이터 스트림을 도시하는 도면이다. 도 1, 도 3, 도 5를 함께 참조한다.
비휘발성 메모리 장치(100)에서 입출력 인터페이스(170)를 통해 컨트롤러(200)로 출력되는 데이터 스트림은 상태 정보(Status)와 독출 데이터(Data)를 포함할 수 있다.
상태 정보(Status)는 메모리 셀 어레이(130)로부터의 독출 동작을 완료한 상태인 레디 상태(READY)와, 메모리 셀 어레이(130)로부터의 독출 동작을 완료하지 못한 상태인 비지 상태(BUSY)를 포함할 수 있다.
상태 정보(Status)는 입출력 인터페이스(170)의 적어도 하나의 핀(DQ)을 통해 컨트롤러(200)로 출력되는 신호일 수 있다. 상태 정보(Status)는 1비트(bit)거나 수 바이트(byte)일 수 있는 등 데이터의 크기는 제한되지 않는다.
독출 데이터(Data)는 메모리 셀 어레이(130)에 기입된 데이터가 독출되어, 입출력 인터페이스(170)의 복수의 핀들(DQ)을 통해 출력되는 신호일 수 있다. 독출 데이터(Data)는 복수의 데이터 셋을 포함할 수 있으며, 예를 들어, 복수의 핀들(DQ)을 통해 동시에 출력되는 신호들이 데이터 셋 각각을 구성할 수 있다.
독출 데이터(Data)는 제1 내지 제5 데이터 셋을 구성할 수 있다. 독출 데이터(Data)는 하나 이상의 워드 단위로 구분되어 출력됨으로서 하나의 데이터 셋을 구성할 수 있다. 예를 들어, 제1 내지 제5 데이터 셋 각각은 복수의 핀들(DQ)을 통해 동시에 출력되는 신호들일 수 있다.
실시예에 따라, 제1 데이터(Data0)는 독출 데이터(Data)가 아닌, 기타 정보(INFO)일 수 있다. 예를 들어, 비지 상태(BUSY)인 경우, 비휘발성 메모리 장치(100)는 자신의 전력 상태 또는 결함있는 메모리 셀의 어드레스를 포함하는 기타 정보(INFO)를 생성하고, 비지 상태(BUSY)를 나타내는 상태 정보(Status)를 컨트롤러(200)에 출력하고, 동시에 또는 그 이후에 기타 정보(INFO)를 컨트롤러(200)에 출력할 수 있다.
도 11 및 도 12는 본 개시의 일 실시예에 따른 모드 별로 발행되는 명령들 및 신호들을 분류하는 테이블이다.
도 11은 모드 별로 발행되는 명령들을 분류한 테이블(T1)이다.
도 11을 참조하면, 컨트롤러(200)는 제1 리드 모드에서, 리드 명령(CMD_R), 상태 리드 명령(CMD_SR) 및 제1 리드아웃 명령(CMD_O1)을 발행할 수 있다.
컨트롤러(200)는 제2 리드 모드에서, 리드 명령(CMD_R) 및 제2 리드아웃 명령(CMD_O2)을 발행할 수 있다.
다시 말해, 메모리 셀 어레이(130)에 기입된 데이터를 독출하기 위해, 컨트롤러(200)는 리드 모드와 상관 없이 리드 명령(CMD_R)을 발행할 수 있다. 또한, 컨트롤러(200)는 독출된 데이터의 리드아웃을 위해 독출 인에이블 신호(REB)를 생성할 수 있다.
도 12는 모드 별로 발행되는 명령들 및 신호들을 보다 상세히 분류한 테이블(T2)이다. 도 1 내지 11과 중복되는 설명은 생략한다. 또한, 리드 명령(CMD_R)은 이미 발행되었다고 전제한다. 도 1, 도 5 및 도 12를 함께 참조한다.
제1 리드 모드에서, 상태 리드 명령(CMD_SR)이 발행됨에 따라, 상태 정보(Status)가 확인될 수 있다. 상태 정보(Status)가 비지 상태(BUSY)라면, 상태 리드 명령(CMD_SR)이 재 발행될 수 있고, 이 때, 독출 인에이블 신호(REB)는 오프 상태(REB_off)(즉, 토글링되지 않는 상태)일 수 있다. 상태 정보(Status)가 레디 상태(READY)라면, 제1 리드아웃 명령(CMD_O1)이 발행될 수 있고, 이 때, 독출 인에이블 신호(REB)는 토글링될 수 있다.
제2 리드 모드에서, 제2 리드아웃 명령(CMD_O2)이 발행됨에 따라, 상태 정보(Status)가 확인될 수 있고, 독출 인에이블 신호(REB)는 토글링될 수 있다. 상태 정보(Status)가 비지 상태(BUSY)라면, 제2 리드아웃 명령(CMD_O2)이 재 발행될 수 있고, 이 때, 독출 인에이블 신호(REB)는 토글링을 중단할 수 있다. 상태 정보(Status)가 레디 상태(READY)라면, 추가적인 명령은 발행되지 않고, 독출 인에이블 신호(REB)의 토글링 역시 유지될 수 있다.
도 13은 본 개시의 일 실시예에 따른 컨트롤러의 동작 방법을 도시하는 흐름도이다. 도 1, 도 3, 도 5 및 도 8을 함께 참조한다.
컨트롤러(200)는 호스트로부터 독출 요청(Read Request)를 수신할 수 있다. 컨트롤러(200)는 독출 요청(Read Request)에 응답하여 리드 명령(CMD_R)을 발행할 수 있다(S10).
컨트롤러(200)는 메모리 셀 어레이(130)가 기입된 데이터의 독출 동작을 완료하기 위해 예상되는 제1 시간(t1)을 대기할 수 있다(S20).
컨트롤러(200)는 비휘발성 메모리 장치(100)가 상태 정보(Status) 및 독출 데이터(Data) 모두를 출력하도록 하는 제2 리드아웃 명령(CMD_O2)을 발행할 수 있다(S30). 컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 발행하며 독출 인에이블 신호(REB)를 토글링할 수 있다.
컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)에 응답하여, 비휘발성 메모리 장치(100)로부터 상태 정보(Status)를 수신할 수 있으며, 컨트롤러(200)는 수신된 상태 정보(Status)가 비지 상태(BUSY) 또는 레디 상태(READY)를 나타내는지 확인할 수 있다(S40). 한편, 비휘발성 메모리 장치(100)로부터 상태 정보(Status)와 함께 기타 정보(INFO) 또는 독출 데이터(DATA)가 수신될 수 있다.
컨트롤러(200)는 확인된 상태 정보(Status)가 비지 상태(BUSY)라면 독출 인에이블 신호(REB)의 토글링을 중단하고(S50), 독출 동작이 완료되는 시간에 대응하는 제2 시간(t2)을 대기할 수 있다(S60).
컨트롤러(200)는 확인된 상태 정보(Status)가 레디 상태(READY)라면 독출 데이터(Data)를 수신하고, 독출 데이터를 호스트(HOST)로 전송할 수 있다(S70).
도 14는 본 개시의 일 실시예에 따른 컨트롤러와 비휘발성 메모리 장치를 포함하는 저장 장치의 동작 방법을 보다 상세히 도시하는 흐름도이다. 도 1, 도 3, 도 5, 도 8 및 도 13을 함께 참조하고, 이와 중복되는 설명은 생략한다.
컨트롤러(200)는 호스트(HOST)로부터의 독출 요청(Read Request)에 응답하여 리드 명령(CMD_R)을 발행할 수 있고(S210), 리드 명령(CMD_R)은 비휘발성 메모리 장치(100)에 전송될 수 있다.
컨트롤러(200)는 메모리 셀 어레이(130)가 기입된 데이터의 독출 동작을 완료하기 위해 예상되는 제1 시간(t1)을 대기할 수 있다(S220). 비휘발성 메모리 장치(100)는 리드 명령(CMD_R)을 페치하고, 리드 명령(CMD_R)에 따라 독출될 메모리 셀의 어드레스를 복호화할 수 있다(S110). 비휘발성 메모리 장치(100)는 페이지 어드레스를 선택할 수 있고, 선택된 메모리 셀의 데이터를 메모리 셀 어레이(130)로부터 페이지 버퍼(150)로 출력할 수 있다(S120). 예를 들어, 단계 S120 는 제1 시간(t1) 동안 수행될 수 있다.
제1 시간이 경과한 후, 컨트롤러(200)는 비휘발성 메모리 장치(100)가 상태 정보(Status) 및 독출 데이터(Data) 모두를 출력하도록 하는 제2 리드아웃 명령(CMD_O2)을 발행할 수 있고(S230), 발행된 제2 리드아웃 명령(CMD_O2)은 비휘발성 메모리 장치(100)로 전송될 수 있다.
비휘발성 메모리 장치(100)는 제2 리드아웃 명령(CMD_O2)에 응답하여, 상태 정보(Status) 및 독출 데이터(Data)를 입출력 인터페이스(170)에 포함된 복수의 핀들(DQ)을 통하여 컨트롤러(200)에 전송되는 데이터 스트림을 생성할 수 있다(S130).
컨트롤러(200)는 제2 리드아웃 명령(CMD_O2)을 발행하며 독출 인에이블 신호(REB)를 토글링할 수 있고(S240), 상태 정보(Status)를 확인할 수 있다(S250).
컨트롤러(200)는 확인된 상태 정보(Status)가 비지 상태(BUSY)라면 독출 인에이블 신호(REB)의 토글링을 중단하고(S260), 독출 동작이 완료되는 시간에 대응하는 제2 시간(t2)을 대기할 수 있고(S270), 제2 시간을 대기한 컨트롤러는 제2 리드아웃 명령(CMD_O2)을 재 발행할 수 있다(to S230)
컨트롤러(200)는 확인된 상태 정보(Status)가 레디 상태(READY)라면 독출 데이터(Data)를 수신하고, 독출 데이터를 호스트(HOST)로 전송할 수 있다(S280).
도 15는 본 개시의 일 실시예에 따른 컨트롤러와 비휘발성 메모리 장치를 포함하는 저장 장치을 도시하는 블록도이다.
도 15을 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터를 통해 호스트(1100)와 신호(SIG)를 주고 받으며, 전원 커넥터를 통해 전원(PWR)을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1210), 보조 전원 장치(1220) 및 메모리 장치들(1230, 1240, 1250)을 포함할 수 있다. 메모리 장치들(1230, 1240, 1250)은 채널들(Ch1, Ch2, Chn)을 통해 SSD 컨트롤러(1210)에 각각 연결될 수 있다.
SSD 컨트롤러(1210)는 도 1 내지 도 14를 참조하여 상술된 컨트롤러들(200, 200a, 200b)을 이용하여 구현될 수 있다. 구체적으로, SSD 컨트롤러(1210)는 데이터와 동일한 입출력 채널을 통해 명령(CMD) 및 각종 신호를 출력할 수 있고, 커맨드를 기입 인에이블 신호(WEB)에 동기화하여 메모리 장치들(1230, 1240, 1250)에 전송할 수 있다. 예를 들어, SSD 컨트롤러(1210)는 메모리 장치들(1230, 1240, 1250)의 상태 정보(Status) 및 독출 데이터(Data)를 모두 전송하도록 하는 제2 리드아웃 명령(CMD)을 발행하고, 메모리 장치들(1230, 1240, 1250)은 제2 리드아웃 명령(CMD)에 응답하여, 상태 정보(Status) 및 독출 데이터(Data) 모두를 SSD 컨트롤러(1210)로 전송할 수 있다.
메모리 장치들(1230, 1240, 1250)은 도 1 내지 도 14를 참조하여 상술된 비휘발성 메모리 장치(100)를 이용하여 구현될 수 있다. 구체적으로, 각 메모리 장치(1230, 1240, 1250)는 데이터와 동일한 입출력 채널을 통해 SSD 컨트롤러(1210)로부터 명령(CMD)을 수신할 수 있다. 예를 들어, 메모리 장치들(1230, 1240, 1250)은 각각의 컨트롤 로직으로부터 상태 정보(Status)를 수신할 수 있고, 각각의 페이지 버퍼로부터 독출 데이터(Data)를 수신할 수 있다 메모리 장치들(1230, 1240, 1250)은 SSD 컨트롤러(1210)로부터의 제2 리드아웃 명령(CMD_O2)에 응답하여, 상태 정보(Status) 및 독출 데이터(Data)를 SSD 컨트롤러(1210)로 전송할 수 있다. 실시예에 있어서, 메모리 장치들(1230, 1240, 1250)은 상태 정보(Status)를 독출 데이터(Data)보다 시간적으로 앞서서 SSD 컨트롤러(1210)에 전송할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작을 제어하는 컨트롤러를 포함하는 저장 장치의 동작 방법에 있어서,
    상기 컨트롤러가 상기 비휘발성 메모리 장치로 제1 명령을 발행하는 단계;
    상기 비휘발성 메모리 장치가, 상기 제1 명령에 응답하여, 메모리 셀 어레이로부터 제1 데이터를 독출하는 단계;
    상기 비휘발성 메모리 장치의 페이지 버퍼가 상기 제1 데이터를 버퍼링하는 단계;
    상기 컨트롤러가 상기 비휘발성 메모리 장치로 제2 명령을 발행하는 단계; 및
    상기 비휘발성 메모리 장치가, 상기 제2 명령에 응답하여, 상기 제1 명령에 따른 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터가 버퍼링된 제2 데이터를 상기 컨트롤러로 출력하는 단계를 포함하는 저장 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 컨트롤러가, 수신된 상기 상태 정보가 상기 메모리 셀 어레이의 독출 동작이 완료된 준비 상태임을 나타내면, 상기 비휘발성 메모리 장치로부터 계속하여 데이터를 수신하는 단계; 및
    상기 컨트롤러가, 수신된 상기 상태 정보가 상기 메모리 셀 어레이의 독출 동작이 완료되지 않은 비지 상태를 나타내면, 상기 비휘발성 메모리 장치로부터의 데이터 수신을 중단하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 데이터의 수신을 중단하는 단계 이후,
    상기 컨트롤러가, 제1 시간을 대기한 후 상기 제2 명령을 재 발행하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
  4. 제1항에 있어서,
    상기 출력하는 단계는,
    상기 상태 정보를 출력한 후, 상기 제2 데이터를 출력하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
  5. 제1항에 있어서,
    상기 컨트롤러는, 제1 리드 모드로 설정된 경우, 상기 제1 명령 및 상기 제2 명령을 발행하고, 제2 리드 모드로 설정된 경우, 상기 제1 명령, 상기 상태 정보를 출력하도록 하는 제3 명령 및 상기 제2 데이터를 전송하도록 하는 제4 명령을 발행하는 것을 특징으로 하는 저장 장치의 동작 방법.
  6. 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치를 제어하고, 복수의 명령들을 발행하도록 구성되는 컨트롤러를 포함하고,
    상기 비휘발성 메모리 장치는,
    복수의 메모리 셀을 포함하고, 제1 명령에 응답하여 제1 데이터를 독출하도록 구성된 메모리 셀 어레이;
    상기 복수의 명령들에 기초하여, 상기 메모리 셀 어레이의 독출 동작을 제어하도록 구성된 컨트롤 로직;
    상기 제1 데이터를 버퍼링하도록 구성된 페이지 버퍼;
    제2 명령에 응답하여, 상기 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터가 버퍼링된 제2 데이터를 상기 컨트롤러에 출력하도록 구성된 입출력 인터페이스를 포함하는 저장 장치.
  7. 제6항에 있어서,
    상기 비휘발성 메모리 장치는,
    데이터 스트로브 신호에 동기하여 상기 상태 정보 및 상기 제1 데이터를 출력하며, 상기 데이터 스트로브 신호의 제1 엣지에 동기하여 상기 상태 정보를 출력하고, 상기 데이터 스트로브 신호의 제2 엣지에 동기하여 상기 제1 데이터를 출력하는 것을 특징으로 하는 저장 장치.
  8. 제6항에 있어서,
    상기 컨트롤러는,
    상기 비휘발성 메모리 장치에 독출 인에이블 신호를 출력하고, 상기 제2 명령을 발행함에 따라 상기 독출 인에이블의 토글링을 시작하고, 수신된 상기 상태 정보가 독출 동작이 완료되지 않은 비지 상태임을 나타내면 상기 토글링을 중단하는 것을 특징으로 하는 저장 장치.
  9. 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 동작을 제어하는 컨트롤러를 포함하는 저장 장치의 동작 방법에 있어서,
    상기 컨트롤러가 상기 비휘발성 메모리 장치로 제1 명령을 발행하는 단계;
    상기 비휘발성 메모리 장치가 상기 제1 명령에 응답하여, 메모리 셀 어레이로부터 제1 데이터를 독출하는 단계;
    제1 리드 모드에서, 상기 컨트롤러가 상기 제1 명령에 따른 상기 메모리 셀 어레이의 독출 동작이 완료되었는지 여부를 나타내는 상태 정보 및 상기 제1 데이터를 전송하도록 하는 제2 명령을 발행하는 단계; 및
    비휘발성 메모리 장치가 상기 제2 명령에 응답하여, 상기 제1 데이터를 상기 컨트롤러로 전송하되, 비지 상태일 경우, 제1 시간만큼 지연 출력하는 단계를 포함하는 저장 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 제2 명령을 발행하는 단계는 상기 제2 명령의 발행으로부터 제2 시간 후 상기 컨트롤러가 독출 인에이블 신호를 토글링하는 단계를 포함하고,
    상기 독출 인에이블 신호는 상기 제1 데이터를 전송하기 위한 데이터 스트로브 신호를 동기화하는 신호이고,
    상기 지연 출력하는 단계는,
    상기 비지 상태을 판단하는 단계; 및
    상기 데이터 스트로브 신호의 레벨을 상기 독출 인에이블 신호와 무관하게 일정한 레벨로 유지하는 단계를 포함하는 것을 특징으로 하는 저장 장치의 동작 방법.
KR1020200000484A 2020-01-02 2020-01-02 저장 장치 및 이의 동작 방법 KR20210087350A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020200000484A KR20210087350A (ko) 2020-01-02 2020-01-02 저장 장치 및 이의 동작 방법
US17/067,698 US20210208815A1 (en) 2020-01-02 2020-10-11 Storage device and operating method thereof
EP20217748.1A EP3846170A1 (en) 2020-01-02 2020-12-30 Storage device and operating method thereof
CN202011620407.6A CN113064840A (zh) 2020-01-02 2020-12-31 存储设备及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200000484A KR20210087350A (ko) 2020-01-02 2020-01-02 저장 장치 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210087350A true KR20210087350A (ko) 2021-07-12

Family

ID=74129944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200000484A KR20210087350A (ko) 2020-01-02 2020-01-02 저장 장치 및 이의 동작 방법

Country Status (4)

Country Link
US (1) US20210208815A1 (ko)
EP (1) EP3846170A1 (ko)
KR (1) KR20210087350A (ko)
CN (1) CN113064840A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220142660A (ko) * 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN115905032A (zh) * 2021-08-20 2023-04-04 深圳市江波龙电子股份有限公司 存储设备及其数据回收方法、控制设备及可读存储介质
US20240094948A1 (en) * 2022-06-29 2024-03-21 Western Digital Technologies, Inc. Transfer of internal device data over command response
EP4390927A1 (en) * 2022-12-23 2024-06-26 Samsung Electronics Co., Ltd. Memory controller and operation method thereof

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100762259B1 (ko) * 2005-09-12 2007-10-01 삼성전자주식회사 버스트 읽기 레이턴시 기능을 갖는 낸드 플래시 메모리장치
US20110264851A1 (en) * 2006-12-07 2011-10-27 Tae-Keun Jeon Memory system and data transmitting method thereof
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
KR20140093855A (ko) * 2013-01-18 2014-07-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 제어 방법
KR102143517B1 (ko) * 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9436397B2 (en) * 2014-09-23 2016-09-06 Sandisk Technologies Llc. Validating the status of memory operations
US10310942B2 (en) * 2016-09-20 2019-06-04 Toshiba Memory Corporation Memory system
JP2018163719A (ja) * 2017-03-24 2018-10-18 東芝メモリ株式会社 半導体デバイス
JP2019036375A (ja) * 2017-08-17 2019-03-07 東芝メモリ株式会社 半導体記憶装置
JP2019046254A (ja) * 2017-09-04 2019-03-22 東芝メモリ株式会社 半導体メモリ装置、方法及びプログラム
CN111448543B (zh) * 2017-12-07 2021-10-01 华为技术有限公司 内存访问技术及计算机***
JP2021022414A (ja) * 2019-07-29 2021-02-18 キオクシア株式会社 半導体記憶装置
KR20210038753A (ko) * 2019-09-30 2021-04-08 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US11221911B2 (en) * 2019-10-11 2022-01-11 International Business Machines Corporation Data recovery due to transient effects in NAND flash memories
KR20210077451A (ko) * 2019-12-17 2021-06-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법

Also Published As

Publication number Publication date
EP3846170A1 (en) 2021-07-07
CN113064840A (zh) 2021-07-02
US20210208815A1 (en) 2021-07-08

Similar Documents

Publication Publication Date Title
KR102149768B1 (ko) 불휘발성 메모리 시스템
TWI787388B (zh) 記憶體裝置以及記憶體裝置的操作方法
KR20210087350A (ko) 저장 장치 및 이의 동작 방법
US11416426B2 (en) Memory device and method of operating the same
US11200932B2 (en) Non-volatile memory device, controller and memory system
KR102375695B1 (ko) 데이터 전송 트레이닝 방법 및 이를 수행하는 데이터 저장 장치
US11698748B2 (en) Memory comprising memory controller configured to determine a logical address of a target zone system and method of operating the memory controller
US11442664B2 (en) Memory system and method of operating the same
US10902928B2 (en) Memory system, operation method thereof, and nonvolatile memory device
US11487474B2 (en) Memory system and method of operating a memory device included in the same
CN108962304B (zh) 存储装置及其操作方法
US9508400B1 (en) Storage device and operating method thereof
KR20210061174A (ko) 메모리 컨트롤러 및 그 동작 방법
US20190220220A1 (en) Data storage device, operating method thereof and nonvolatile memory device
KR20190125922A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20160077762A1 (en) Memory system, storage system
KR20220121098A (ko) 메모리 시스템 및 그 동작 방법
KR102473197B1 (ko) 읽기 데이터를 전송 단위로 전송하는 불휘발성 메모리 모듈, 스토리지 장치, 및 전자 장치
KR20230018873A (ko) 메모리 시스템 및 그 동작 방법
KR20210142477A (ko) 메모리 컨트롤러 및 그 동작 방법
US8971135B2 (en) Semiconductor memory device receiving data in response to data strobe signal, memory system including the same and operating method thereof
CN115206363A (zh) 存储装置及其操作方法

Legal Events

Date Code Title Description
A201 Request for examination