KR20210155228A - 메모리 장치 및 그 동작 방법 - Google Patents
메모리 장치 및 그 동작 방법 Download PDFInfo
- Publication number
- KR20210155228A KR20210155228A KR1020200072471A KR20200072471A KR20210155228A KR 20210155228 A KR20210155228 A KR 20210155228A KR 1020200072471 A KR1020200072471 A KR 1020200072471A KR 20200072471 A KR20200072471 A KR 20200072471A KR 20210155228 A KR20210155228 A KR 20210155228A
- Authority
- KR
- South Korea
- Prior art keywords
- unique address
- status
- memory
- memory device
- toggles
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
- G06F13/126—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06M—COUNTING MECHANISMS; COUNTING OF OBJECTS NOT OTHERWISE PROVIDED FOR
- G06M1/00—Design features of general application
- G06M1/27—Design features of general application for representing the result of count in the form of electric signals, e.g. by sensing markings on the counter drum
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Read Only Memory (AREA)
Abstract
본 기술은 메모리 장치에 관한 것으로, 상기 메모리 장치는, 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 입출력 회로; 상기 상태 리드 커맨드에 대한 응답으로, 메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 토글 카운터; 메모리 장치의 상태 정보를 저장하고, 상기 상태 정보를 상기 입출력 회로로 출력하는 상태 레지스터; 및 상기 토글 카운터에 의해 카운트된 상기 토글 횟수가 기준 토글 횟수와 대응하는지 여부를 판단하고, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 입출력 회로를 통해 상기 메모리 컨트롤러로 전송하는 상태 출력 제어기를 포함한다.
Description
본 발명은 메모리 장치에 관한 것으로, 보다 구체적으로는 메모리 장치 및 그 동작 방법에 관한 것이다.
저장 장치는 컴퓨터나 스마트폰 등과 같은 호스트 장치의 제어에 따라 데이터를 저장하는 장치이다. 저장 장치는 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 메모리 컨트롤러를 포함할 수 있다. 메모리 장치는 휘발성 메모리 장치 (Volatile Memory)와 비휘발성 메모리 장치 (Non Volatile Memory)로 구분된다.
휘발성 메모리 장치는 전원이 공급된 경우에만 데이터를 저장하고, 전원 공급이 차단되면 저장된 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 정적 랜덤 액세스 메모리 (Static Random Access Memory; SRAM), 동적 랜덤 액세스 메모리 (Dynamic Random Access Memory; DRAM) 등이 있다.
비휘발성 메모리 장치는 전원이 차단되어도 데이터가 소멸되지 않는 메모리 장치로서, 롬(Read Only Memory; ROM), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM) 및 플래시 메모리(Flash Memory) 등이 있다.
본 발명의 실시예는 다수의 메모리 칩에 대한 상태 리드를 효율적으로 수행할 수 있는 메모리 장치 및 그 동작 방법을 제공한다.
일 실시예에 따른 메모리 장치는, 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 입출력 회로; 상기 상태 리드 커맨드에 대한 응답으로, 메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 토글 카운터; 메모리 장치의 상태 정보를 저장하고, 상기 상태 정보를 상기 입출력 회로로 출력하는 상태 레지스터; 및 상기 토글 카운터에 의해 카운트된 상기 토글 횟수가 기준 토글 횟수와 대응하는지 여부를 판단하고, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 입출력 회로를 통해 상기 메모리 컨트롤러로 전송하는 상태 출력 제어기를 포함할 수 있다.
일 실시예에 따른 메모리 장치의 동작 방법은, 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 단계; 상기 상태 리드 커맨드에 대한 응답으로, 상기 메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 단계; 카운트된 상기 토글 횟수가 미리 설정된 기준 토글 횟수와 대응하는지 여부를 판단하는 단계; 및 상기 판단에 대한 응답으로, 상태 레지스터에 저장된 메모리 장치의 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계를 포함할 수 있다.
본 기술은 다수의 메모리 칩에 대한 상태 리드를 효율적으로 수행할 수 있는 메모리 장치 및 그 동작 방법을 제공할 수 있다.
도 1은 일 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1에 따른 메모리 컨트롤러와 메모리 장치 사이에 교환되는 신호들을 설명하기 위한 도면이다.
도 3은 도 1의 메모리 장치를 구체적으로 설명하기 위한 도면이다.
도 4는 도 3에 따른 제어 로직의 구성을 도시한 블록도이다.
도 5는 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 6은 도 5와 다른 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 7a 내지 도 7b는 도 6에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 8a 내지 도 8b는 도 7a 내지 도 7b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 9는 도 8a 내지 도 8b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 10은 일 실시예에 따른 메모리 장치의 동작 방법을 나타낸 예시 흐름도이다.
도 11은 도 10에 따른 동작 방법을 보충하는 예시 흐름도이다.
도 12는 도 1의 메모리 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 13은 도 1에 따른 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 2는 도 1에 따른 메모리 컨트롤러와 메모리 장치 사이에 교환되는 신호들을 설명하기 위한 도면이다.
도 3은 도 1의 메모리 장치를 구체적으로 설명하기 위한 도면이다.
도 4는 도 3에 따른 제어 로직의 구성을 도시한 블록도이다.
도 5는 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 6은 도 5와 다른 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 7a 내지 도 7b는 도 6에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 8a 내지 도 8b는 도 7a 내지 도 7b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 9는 도 8a 내지 도 8b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 10은 일 실시예에 따른 메모리 장치의 동작 방법을 나타낸 예시 흐름도이다.
도 11은 도 10에 따른 동작 방법을 보충하는 예시 흐름도이다.
도 12는 도 1의 메모리 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 13은 도 1에 따른 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
본 명세서 또는 출원에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서 또는 출원에 설명된 실시 예들에 한정되는 것으로 해석되어서는 아니 된다.
도 1은 일 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(1000)은 데이터가 저장되는 메모리 장치(Memory Device; 1100), 및/또는 호스트(Host; 2000)의 요청(request)에 따라 메모리 장치(1100)를 제어하는 메모리 컨트롤러(Memory Controller; 1200)를 포함할 수 있다.
호스트(2000)는 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) 등과 같은 다양한 통신 방법들 중 적어도 하나를 이용하여 메모리 시스템(1000)과 통신할 수 있다.
메모리 장치(1100)는 전원 공급이 차단되면 데이터가 소멸되는 휘발성 메모리 장치(Volatile Memory Device) 또는 전원 공급이 차단되더라도 데이터가 유지되는 비휘발성 메모리 장치(Non-volatile memory Device)로 구현될 수 있다. 메모리 장치(1100)는 메모리 컨트롤러(1200)의 제어에 따라 프로그램 동작, 리드 동작 또는 소거 동작을 수행할 수 있다. 예를 들면, 프로그램 동작 시, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 커맨드, 어드레스 및 데이터를 입력받고 프로그램 동작을 수행할 수 있다. 리드 동작 시, 메모리 장치(1100)는 메모리 컨트롤러(1200)로부터 커맨드 및 어드레스를 입력받고, 리드된 데이터를 메모리 컨트롤러(1200)로 출력할 수 있다. 메모리 장치(1100)는 소자 가공이 끝난 개개의 IC(Integrated Chip)로서 칩(chip) 또는 다이(die)로 지칭될 수도 있다.
메모리 시스템(1000)은 다수의 메모리 장치(1100)들이 그룹핑된 메모리 장치 그룹들(1300)을 포함할 수 있고, 메모리 장치 그룹들(1300) 각각에 속하는 메모리 장치(1100)들이 각각의 채널들(CH1~CHk)을 통해 메모리 컨트롤러(1200)와 통신할 수 있다. 이하에서는 설명의 편의를 위해 하나의 채널에 연결된 하나의 메모리 장치 그룹에 4개의 메모리 장치가 포함되어 있는 것을 전제로 설명하지만 이에 한정되는 것은 아니다.
메모리 컨트롤러(1200)는 메모리 시스템(1000)의 동작을 전반적으로 제어하며, 호스트(2000)와 메모리 장치(1100) 사이의 데이터 교환을 제어할 수 있다. 예를 들어, 메모리 컨트롤러(1200)는, 호스트(2000)로부터 커맨드가 수신되면, 수신된 커맨드에 따라 채널들(CH1~CHk) 각각에 연결된 메모리 장치(1100)들의 메모리 장치 그룹들(1300) 각각을 제어할 수 있다. 메모리 컨트롤러(1200)는 호스트(2000)의 요청에 따라 각 채널에 연결된 메모리 장치 그룹들(1300)에 포함되는 메모리 장치(1100)들을 제어하여 데이터를 프로그램(program), 리드(read) 또는 소거(erase)할 수 있다. 또한, 메모리 컨트롤러(1200)는 호스트(2000)로부터 데이터와 논리 어드레스(logical address)를 입력 받고, 논리 어드레스를 메모리 장치(1100) 내에 데이터가 실제 저장될 영역을 가리키는 물리 어드레스(physical address)로 변환할 수 있다. 또한 메모리 컨트롤러(1200)은 논리 어드레스와 물리 어드레스 간의 맵핑(mapping) 관계를 구성하는 논리-물리 어드레스 맵핑 테이블(logical-to-physical address mapping table)을 버퍼 메모리(미도시)에 저장할 수 있다.
메모리 컨트롤러(1200)는, 메모리 장치(1100)들에 대한 특정 동작(operation)을 제어하기 전이나 제어하는 도중에, 메모리 장치(1100)들 중 적어도 하나의 상태(status)를 파악하기 위한 상태 리드 동작을 수행할 수 있다. 예를 들어, 메모리 컨트롤러(1200)는, 메모리 장치(1100)들에 상태 리드 커맨드를 전송하고, 상태 리드 커맨드에 대한 응답으로, 메모리 장치(1100)들 중 적어도 하나는 상태 정보를 메모리 컨트롤러(1200)로 출력할 수 있다. 또한, 메모리 컨트롤러(1200)는, 선행하여 발행된 커맨드의 완료 여부를 모니티링하기 위하여 상태 리드 커맨드를 메모리 장치(1100)들에 전송할 수도 있다.
도 2는 도 1에 따른 메모리 컨트롤러와 메모리 장치 사이에 교환되는 신호들을 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 컨트롤러(1200)와 메모리 장치(1100)는 입출력 패드(DQ)를 통해 커맨드, 데이터 및/또는 어드레스를 서로 주고받을 수 있다. 예를 들어, 입출력 패드(DQ)는 8 비트(8bit)의 데이터를 송수신할 수 있도록, 8개의 라인들로 구성될 수 있고, 각 라인은 1 비트의 데이터를 송수신할 수 있다.
메모리 장치(1100)는 CE# 패드를 통해 칩 인에이블 신호를 수신하고, WE# 패드를 통해 라이트 인에이블 신호를 수신하고, RE# 패드를 통해 리드 인에이블 신호를 수신하고, ALE 패드를 통해 어드레스 래치 인에이블 신호를 수신하고, CLE 패드를 통해 커맨드 래치 인에이블 신호를 수신하고, WP# 패드를 통해 라이트 프로텍션 신호를 수신할 수 있다.
어드레드 래치 인에이블 신호는, 입출력 패드(DQ)를 통해 메모리 장치(1100)로 제공되는 어드레스를 메모리 장치(1100)가 어드레스 레지스터(address register)에 로드하도록 메모리 컨트롤러(1200)가 메모리 장치(1100)에 지시하는 신호일 수 있다. 칩 인에이블 신호는, 하나 이상의 메모리 장치들을 인에이블(enable) 또는 디스에이블(disable)하기 위해 메모리 컨트롤러(1200)가 메모리 장치(1100)에 지시하는 신호일 수 있다. 커맨드 래치 인에이블 신호는, 입출력 패드(DQ)를 통해 메모리 장치(1100)로 제공되는 커맨드를 메모리 장치(1100)가 커맨드 레지스터(command register)에 로드하도록 메모리 컨트롤러(1200)가 메모리 장치(1100)에 지시하는 신호일 수 있다. 리드 인에이블 신호는, 메모리 장치(1100)가 메모리 컨트롤러(1200)로 데이터를 전송하도록, 메모리 컨트롤러(1200)가 메모리 장치(1100)에 지시하는 신호일 수 있다. 라이트 인에이블 신호는, 커맨드와 어드레스 및 데이터가 전달되는 것을 알리는 신호일 수 있다.
메모리 장치(1100)는 RB 패드를 통해 레디비지 신호를 메모리 컨트롤러(1200)로 출력할 수 있다. 레디비지 신호는, 메모리 장치(1100)의 메모리 어레이가 활성(activity) 상태에 있는지를 지시할 수 있다.
도 2에서는 하나의 메모리 장치(1100)와 메모리 컨트롤러(1200) 사이의 연결 관계를 도시하였으나, 상기 입출력 패드(DQ), CE# 패드, WE# 패드, RE# 패드, ALE 패드, CLE 패드, WP# 패드들이 하나의 채널을 형성하고, 형성된 채널을 통해 메모리 컨트롤러(1200)와 메모리 장치 그룹들(1300) 중 하나가 연결될 수 있다. 예를 들어, CE# 패드에 메모리 장치 그룹들(1300) 중 하나가 연결될 수 있다.
따라서, 메모리 컨트롤러(1200)가 하나의 채널에 포함된 입출력 패드(DQ)를 통해 커맨드, 데이터 및/또는 어드레스를 전송하면, 해당 채널과 연결된 메모리 장치들(1100)이 모두 또는 해당 채널과 연결된 메모리 장치(1100)들 중 선택된 메모리 장치(1100)로 커맨드, 데이터 및/또는 어드레스를 수신할 수 있다. 예를 들어, 메모리 컨트롤러(1200)는 입출력 패드(DQ)를 통해 상태 리드 커맨드를 해당 입출력 패드(DQ)와 연결된 메모리 장치(1100)들로 전송할 수 있고, 상태 리드 커맨드에 대한 응답으로, 상태 리드 커맨드를 수신받은 메모리 장치(1100)들 중 적어도 하나는 상태 정보를 입출력 패드(DQ)로 전송할 수 있다.
도 3은 도 1의 메모리 장치를 구체적으로 설명하기 위한 도면이다.
도 3을 참조하면, 메모리 장치(1100)는 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있고, 도 3에는 비휘발성 메모리 장치가 실시예로써 도시되어 있으나, 본 실시예는 비휘발성 메모리 장치로 제한되지는 않는다.
메모리 장치(1100)는 데이터가 저장되는 메모리 셀 어레이(100)를 포함할 수 있다. 메모리 장치(1100)는 메모리 셀 어레이(100)에 데이터를 저장하기 위한 프로그램 동작(program operation), 저장된 데이터를 출력하기 위한 리드 동작(read operation) 및 저장된 데이터를 소거하기 위한 소거 동작(erase operation)을 수행하도록 구성된 주변 회로들(peripheral circuits; 200)을 포함할 수 있다. 메모리 장치(1100)는 메모리 컨트롤러(1200)의 제어에 따라 주변 회로들(200)을 제어하는 제어 로직(300)을 포함할 수 있다.
메모리 셀 어레이(100)는 데이터가 저장되는 다수의 메모리 셀들을 포함한다. 예를 들면, 메모리 셀 어레이(100)는 적어도 하나의 플레인(plane)을 포함할 수 있고, 플레인은 하나 이상의 메모리 블록들(memory blocks)을 포함할 수 있다. 실시 예에서, 플레인은 프로그램, 리드 또는 이레이즈 동작을 수행시에 엑세스되는 메모리 영역의 단위일 수 있다. 메모리 블록들 각각은 다수의 메모리 셀들을 포함할 수 있다. 다수의 플레인들이 포함된 구조를 멀티 플레인 구조로 지칭할 수 있다. 메모리 블록들에는 사용자 데이터(user data) 및 메모리 장치(1100)의 동작에 필요한 정보가 저장될 수 있다. 메모리 블록들은 2차원 또는 3차원 구조로 구현될 수 있다. 2차원 구조를 가지는 메모리 블록들은 기판에 평행하게 배열된 메모리 셀들을 포함할 수 있고, 3차원 구조를 가지는 메모리 블록들은 기판에 수직하게 적층된 메모리 셀들을 포함할 수 있다.
주변 회로들(200)은, 제어 로직(300)의 제어에 따라 프로그램, 리드 및 소거 동작을 수행하도록 구성될 수 있다. 예를 들면, 주변 회로들(200)은 전압 생성 회로(VOLTAGE GENERATION CIRCUIT; 210), 로우 디코더(ROW DECODER; 220), 페이지 버퍼 그룹(PAGE BUFFER GROUP; 230), 컬럼 디코더(COLUMN DECODER; 240), 입출력 회로(INPUT/OUTPUT CIRCUIT; 250) 및 전류 감지 회로(CURRENT SENSING CIRCUIT; 260)를 포함할 수 있다.
전압 생성 회로(210)는, 제어 로직(300)에서 출력되는 동작 신호(OP_CMD)에 응답하여 프로그램, 리드 및 소거 동작들에 사용되는 다양한 동작 전압들(Vop)을 생성할 수 있다. 예를 들면, 전압 생성 회로(210)는 제어 로직(300)의 제어에 따라, 프로그램 전압, 검증 전압, 패스 전압, 리드 전압, 소거 전압 등의 다양한 전압들을 생성할 수 있다.
로우 디코더(220)는, 제어 로직(300)으로부터 출력된 로우 어드레스(RADD)에 응답하여, 메모리 셀 어레이(100)의 메모리 블록들 중 선택된 메모리 블록에 연결된 로컬 라인들(local lines; LL)에 동작 전압들(Vop)을 공급할 수 있다. 로컬 라인들(LL)은 로컬 워드 라인들(local word lines), 로컬 드레인 셀렉트 라인들(local drain select lines), 및/또는 로컬 소스 셀렉트 라인들(local source select lines)을 포함할 수 있다. 이 외에도, 로컬 라인들(LL)은 소스 라인(source line)과 같이 메모리 블록에 연결된 다양한 라인들을 포함할 수 있다.
페이지 버퍼 그룹(230)은, 메모리 셀 어레이(100)의 메모리 블록들에 연결된 비트 라인들(BL1~BLI)에 연결될 수 있다. 페이지 버퍼 그룹(230)은 비트 라인들(BL1~BLI)에 연결된 다수의 페이지 버퍼들(PB1~PBI)을 포함할 수 있다. 페이지 버퍼들(PB1~PBI)은 제어 로직(300)으로부터 출력된 페이지 버퍼 제어 신호들(PBSIGNALS)에 응답하여 동작할 수 있다. 예를 들면, 페이지 버퍼들(PB1~PBI)은 비트 라인들(BL1~BLI)을 통해 수신된 데이터를 임시로 저장하거나, 리드 또는 검증 동작 시, 비트 라인들(BL1~BLI)의 전압 또는 전류를 센싱(sensing)할 수 있다.
컬럼 디코더(240)는, 제어 로직(300)으로부터 출력된 컬럼 어드레스(CADD)에 응답하여 입출력 회로(250)와 페이지 버퍼 그룹(230) 사이에서 데이터를 전달할 수 있다. 예를 들면, 컬럼 디코더(240)는 데이터 라인들(DL)을 통해 페이지 버퍼들(PB1~PBI)과 데이터를 주고받거나, 컬럼 라인들(CL)을 통해 입출력 회로(250)와 데이터를 주고받을 수 있다.
입출력 회로(250)는, 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로부터 커맨드(CMD), 어드레스(ADD) 및 데이터를 수신할 수 있고, 메모리 셀 어레이(100)에서 리드된 데이터를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다. 예를 들어, 입출력 회로(250)는 메모리 컨트롤러(1200)로부터 수신된 커맨드(CMD) 및 어드레스(ADD)를 제어 로직(300)에 전달하거나, 데이터(DATA)를 컬럼 디코더(240)와 주고받을 수 있다.
전류 감지 회로(260)는 리드 동작(read operation) 또는 검증 동작(verify operation)시, 허용 비트(VRY_BIT<#>)에 응답하여 기준 전류를 생성하고, 페이지 버퍼 그룹(230)으로부터 수신된 센싱 전압(VPB)과 기준 전류에 의해 생성된 기준 전압을 비교하여 패스 신호(PASS) 또는 페일 신호(FAIL)를 출력할 수 있다.
제어 로직(300)은 CE#, WE#, RE#, ALE, CLE 및 WP# 패드들을 통해 수신되는 신호들에 응답하여 커맨드(CMD) 및 어드레스(ADD)를 수신할 수 있다. 제어 로직(300)은 커맨드(CMD) 및 어드레스(ADD)를 수신한 것에 대한 응답으로, 주변 회로들(200)를 제어하기 위한 제어 신호들을 생성하고, 생성된 제어 신호들을 주변 회로들(200)로 출력할 수 있다. 예를 들어, 제어 신호들은, 동작 신호(OP_CMD), 로우 어드레스(RADD), 페이지 버퍼 제어 신호들(PBSIGNALS) 및 허용 비트(VRY_BIT<#>) 중 적어도 하나를 포함할 수 있다. 제어 로직(300)은, 동작 신호(OP_CMD)를 전압 생성 회로(210)로 출력하고, 로드 어드레스(RADD)를 로우 디코더(220)로 출력하고, 페이지 버퍼 제어 신호들(PBSIGNALS)를 페이지 버퍼 그룹(230)으로 출력하고, 허용 비트(VRY_BIT<#>)를 전류 감지 회로(260)로 출력할 수 있다. 또한, 제어 로직(300)은 패스 신호(PASS) 또는 페일 신호(FAIL)에 응답하여 검증 동작이 패스 또는 페일 되었는지를 판단할 수 있다.
예를 들어, 제어 로직(300)은, 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로부터 수신된 상태 리드 커맨드를 입출력 회로(250)로부터 전달받고, 상태 리드 커맨드에 대한 응답으로, RE# 패드를 통해 수신되는 리드 인에이블 신호의 토글(toggle) 횟수를 카운트할 수 있다. 또한, 제어 로직(300)은 카운트된 값이 미리 설정된 카운팅 넘버와 대응하는지 판단하고, 판단에 대한 응답으로 상태 레지스터(status register)에 저장된 상태 정보를 메모리 컨트롤러(1200)로 출력할 수 있다.
도 4는 도 3에 따른 제어 로직의 구성을 도시한 블록도이다.
도 4를 참조하면, 제어 로직(300)은 토글 카운터(310), 상태 출력 제어기(320), 및 상태 레지스터(330)를 포함할 수 있다.
토글 카운터(310)는, 메모리 컨트롤러(1200)와 연결된 패드를 통해 수신되는 신호의 토글(toggle) 횟수를 카운트할 수 있다. 예를 들어, 토글 카운터(310)는 메모리 컨트롤러(1200)와 연결된 RE# 패드를 통해 수신되는 리드 인에이블 신호의 토글 횟수를 카운트하고, 카운트된 토글 횟수(CTN)를 상태 출력 제어기(320)에 제공할 수 있다.
상태 레지스터(340)는, 제어 로직(300)에 의해 제어되는 메모리 장치(1100)의 상태 정보(SDATA)를 저장할 수 있다. 예를 들어, 상태 정보(SDATA)는, 메모리 장치(1100)의 쓰기 보호(write protection)가 활성화되었는지 여부, 메모리 장치(1100)의 레디-비지 여부(예를 들어, 새로운 커맨드, 어드레스 또는 데이터를 수신하여 처리할 수 있는지 여부), 메모리 장치(1100)에 포함된 플레인들 중 적어도 하나의 레디-비지 여부, 상태 리드 커맨드를 수신하기 전에 수신된 커맨드에 따른 동작의 실패 여부 중 적어도 하나를 포함할 수 있다. 예를 들어, 상태 레지스터(340)는, 입출력 패드(DQ)와 상응하는 8비트의 상태 정보를 저장할 수 있다.
설정 레지스터(330)는, 현재 메모리 장치(1100)에 대하여 할당된 설정 정보를 저장할 수 있다. 예를 들어, 설정 정보는, 하나의 채널에 연결된 메모리 장치 그룹 내에서 다른 메모리 장치와 구별될 수 있도록 메모리 장치에 대하여 부여된 고유 어드레스(LUN) 및/또는 상태 출력 조건을 포함할 수 있다. 여기서 상태 출력 조건은, 기준 토글 횟수를 포함할 수 있고, 기준 토글 횟수는 고유 어드레스(LUN)에 상응하는 횟수로 결정될 수 있다. 예를 들어, 고유 어드레스(LUN)가 하나의 채널에 연결된 메모리 장치들의 그룹 내에서 첫 번째 메모리 장치의 어드레스를 지시하면, 기준 토글 횟수는 1로 결정될 수 있고, 고유 어드레스(LUN)가 하나의 채널에 연결된 메모리 장치 그룹 내에서 두 번째 메모리 장치의 어드레스를 지시하면, 기준 토글 횟수는 2로 결정될 수 있다. 여기서, 기준 토글 횟수는 반드시 설정 레지스터(330)에 저장되어야 하는 것은 아니다. 예를 들어, 상태 출력 제어기(320)가 고유 어드레스(LUN)를 기초로 기준 토글 횟수를 결정할 수도 있다.
상태 출력 제어기(320)는, 입출력 회로(250)로부터 상태 리드 커맨드(RS_CMD)를 수신하면, 토글 카운터(310)에 토글 횟수를 카운트하도록 지시하는 트리거 신호(TS)를 전송하여 토글 카운터(310)를 동작시키고(또는 인에이블시키고), 토글 카운터(310)로부터 토글 횟수(CTN)를 수신할 수 있다. 또한, 상태 출력 제어기(320)는, 설정 레지스터(330)로부터 제공받은 설정 정보를 기초로 토글 카운터(310)로부터 출력된 토글 횟수(CTN)가 기준 토글 횟수와 대응하는지(또는 동일한지) 판단하고, 토글 횟수(CTN)가 기준 토글 횟수와 대응하면(또는 동일하면), 상태 레지스터(340)의 출력을 인에이블(enable)시킬 수 있다. 예를 들어, 상태 출력 제어기(320)는, 상태 레지스터(340)에 저장된 상태 정보를 출력하도록 지시하는 출력 인에이블 신호(OE)를 상태 레지스터(340)에 전송할 수 있고, 상태 레지스터(340)는 출력 인에이블 신호(OE)에 대한 응답으로, 상태 정보를 입출력 회로(250)로 전송하고, 입출력 회로(250)는 상태 정보를 메모리 컨트롤러(1200)로 전송할 수 있다. 다시 말하면, 상태 출력 제어기(320)는, 상태 레지스터(340)를 제어하여 상태 레지스터(340)에 저장된 상태 정보를 입출력 회로(250)를 통해 메모리 컨트롤러(1200)로 전송할 수 있다.
한편, 설정 레지스터(330)와 상태 레지스터(340)는 반드시 분리하여 구현되어야 하는 것은 아니며, 하나의 레지스터 형태로 통합될 수도 있다.
도 5는 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
메모리 컨트롤러(1200)에 연결되는 메모리 장치(1100)가 하나라면, 상태 리드 커맨드를 수신하는 것만으로 자신의 상태 정보를 반환하는 것이 가능할 수 있다. 그러나, 도 1에서와 같이 다수의 메모리 장치 그룹들(1300)이 메모리 컨트롤러(1200)에 연결되는 경우, 메모리 장치 그룹들(1300)에 포함된 메모리 장치(1100)를 중에서 상태 정보를 리드하고자 하는 메모리 장치(1100)를 선택하는 것이 요구된다.
이러한 메모리 장치(1100)의 선택을 회피할 수 있는 제1 상태 리드 커맨드(70h)로서, 단일한 메모리 장치(1100)에 대한 동작 커맨드 이후에 메모리 컨트롤러(1200)로부터 제1 상태 리드 커맨드(70h)가 발행될 수 있다. 예를 들어, 메모리 컨트롤러(1200)는, 페이지 리드 커맨드(00h)와 제1 메모리 장치의 고유 어드레스(LUN1)를 입출력 패드(DQ)를 통해 출력함으로써, 제1 메모리 장치에 대한 페이지 리드 동작을 수행하고, 페이지 리드 동작의 후속으로, 제1 상태 리드 커맨드(70h)를 입출력 패드(DQ)를 통해 출력할 수 있다. 이 경우, 해당 입출력 패드(DQ)와 연결되어 제1 상태 리드 커맨드(70h)를 수신하는 메모리 장치들 중에서, 앞선 페이지 리드 동작을 수행한 제1 메모리 장치(또는 제1 메모리 장치의 제어 로직)가 RE# 패드를 통해 수신되는 리드 인에이블 신호(예를 들어, 로우 신호일 수 있음)에 대한 응답으로, 제1 메모리 장치의 상태 정보(SDATA1)를 입출력 패드(DQ)로 출력할 수 있다.
도 6은 도 5와 다른 일 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 1에서와 같이 다수의 메모리 장치 그룹들(1300)이 메모리 컨트롤러(1200)에 연결되는 경우, 메모리 컨트롤러(1200)는, 메모리 장치 그룹들(1300)에 포함된 메모리 장치(1100)를 중에서 상태 정보를 리드하고자 하는 메모리 장치(1100)를 명시적으로 선택하여 상태 리드 커맨드를 발행할 수도 있다.
도 6을 참조하면, 메모리 컨트롤러(1200)는 입출력 패드(DQ)를 통해 제2 상태 리드 커맨드(78h)를 어드레스들(PADDR, BADDR, LUN1)과 함께 메모리 장치들로 전송할 수 있다. 예를 들어, 어드레스들은 제1 메모리 장치의 페이지 어드레스(PADDR), 제1 메모리 장치의 블록 어드레스(BADDR), 제1 메모리 장치의 고유 어드레스(LUN1)를 포함할 수 있다.
이 경우, 입출력 패드(DQ)와 연결된 다수의 메모리 장치들 중에서, 수신된 고유 어드레스(LUN1)와 대응하는 제1 메모리 장치가, RE# 패드를 통해 수신되는 리드 인에이블 신호(예를 들어, 로우 신호일 수 있음)에 대한 응답으로, 제1 메모리 장치의 상태 정보(SDATA1)를 입출력 패드(DQ)로 출력할 수 있다.
한편, 도 6에서와 같이 다수의 메모리 장치들 중 상태 정보를 리드하고자 하는 메모리 장치를 선택해서 상태 리드 커맨드를 발행하는 경우, 다수의 메모리 장치들의 상태 정보를 리드 하기 위해서 다수의 상태 리드 커맨드를 발행해야 되기 때문에 상태 정보를 리드하는 속도가 저하되는 문제가 있다.
특히, 특정 입출력 패드(DQ)와 연결된 메모리 장치들 모두에 대한 상태 정보를 리드하는 경우, 해당 메모리 장치들의 수에 상응하는 개수의 상태 리드 커맨드가 발행되어야 하므로 속도 저하가 가장 크게 나타날 수 있다. 따라서, 상술한 문제점을 보완하기 위하여 아래에서는 다른 실시예에 따른 상태 리드 커맨드들을 설명한다.
도 7a 내지 도 7b는 도 6에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 7a를 참조하면, 메모리 컨트롤러(1200)는 입출력 패드(DQ)를 통해 제3 상태 리드 커맨드(7Xh)를 발행할 수 있다. 입출력 패드(DQ)와 연결되어 제3 상태 리드 커맨드(7Xh)를 수신하는 다수의 메모리 장치들에 포함된 상태 출력 제어기들 각각은 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하기 시작할 수 있다. 또한, 카운트된 토글 횟수(CTN)가 기준 토글 횟수와 동일하면, 해당하는 메모리 장치는 자신의 상태 정보를 입출력 패드(DQ)로 출력할 수 있다.
예를 들어, 제1 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 1과 동일할 때, 제1 메모리 장치의 상태 레지스터에 저장된 상태 정보(SDATA1)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
마찬가지 방법으로, 제2 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 2와 동일할 때, 제2 메모리 장치의 상태 레지스터에 저장된 상태 정보(SDATA2)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다. 제3 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 3과 동일할 때, 제3 메모리 장치의 상태 레지스터에 저장된 상태 정보(SDATA3)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다. 제4 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 4와 동일할 때, 제4 메모리 장치의 상태 레지스터에 저장된 상태 정보(SDATA4)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
메모리 장치들은 상태 정보를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 때, 자신의 고유 어드레스(LUN1~LUN4)를 함께 출력할 수도 있다. 이 경우 메모리 컨트롤러(1200)는 고유 어드레스를 통해 어느 메모리 장치에 대한 상태 정보인지 더 쉽게 파악할 수 있는 장점이 있다.
예를 들어, 제1 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 1과 동일할 때, 제1 메모리 장치의 고유 어드레스(LUN1)를 출력하고, 카운트된 토글 횟수(CTN)가 2와 동일(또는 기준 토글 횟수보다 하나 증가)할 때, 상태 레지스터에 저장된 상태 정보(SDATA1)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
마찬가지로, 제2 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 3과 동일할 때, 제2 메모리 장치의 고유 어드레스(LUN2)를 출력하고, 카운트된 토글 횟수(CTN)가 4와 동일(또는 기준 토글 횟수보다 하나 증가)할 때, 상태 레지스터에 저장된 상태 정보(SDATA2)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다. 제3 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 5와 동일할 때, 제3 메모리 장치의 고유 어드레스(LUN3)를 출력하고, 카운트된 토글 횟수(CTN)가 6과 동일(또는 기준 토글 횟수보다 하나 증가)할 때, 상태 레지스터에 저장된 상태 정보(SDATA3)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다. 제4 메모리 장치의 상태 출력 제어기는, 카운트된 토글 횟수(CTN)가 기준 토글 횟수 7과 동일할 때, 제4 메모리 장치의 고유 어드레스(LUN4)를 출력하고, 카운트된 토글 횟수(CTN)가 8과 동일(또는 기준 토글 횟수보다 하나 증가)할 때, 상태 레지스터에 저장된 상태 정보(SDATA4)를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 출력할 수 있다.
상술한 도 7a 내지 도 7b에 따른 제3 상태 리드 커맨드(7Xh)를 이용하면, 하나의 상태 리드 커맨드가 입출력 패드(DQ)를 통해 발행되었을 때, 해당 입출력 패드(DQ)와 연결된 모든 메모리 장치들이 순차적으로 자신의 상태 정보를 입출력 패드(DQ)를 통해 메모리 컨트롤러(1200)로 제공한다. 따라서, 하나의 상태 리드 커맨드가 발행되는 것만으로 모든 메모리 장치들의 상태 정보를 리드할 수 있어 상태 정보를 리드하는 속도가 향상될 수 있다.
도 8a 내지 도 8b는 도 7a 내지 도 7b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 7a 내지 도 7b에 따른 제3 상태 리드 커맨드(7Xh)를 이용할 경우, 하나의 입출력 패드(DQ)와 연결된 모든 메모리 장치들의 상태 정보를 리드할 수 있으나, 일부 메모리 장치들의 상태 정보를 리드하기 어렵다.
도 8a 내지 도 8b에서 메모리 컨트롤러(1200)는 입출력 패드(DQ)를 통해 제4 상태 리드 커맨드(7Yh)를 입출력 패드(DQ)와 연결된 메모리 장치들 중 하나의 고유 어드레스와 함께 발행할 수 있다. 예를 들어, 메모리 컨트롤러(1200)는, 제4 상태 리드 커맨드(7Yh)와 제2 메모리 장치의 고유 어드레스(LUN2)를 입출력 패드(DQ)로 발행할 수 있다. 이때, 도 8a 내지 도 8b에서 각 메모리 장치들의 고유 어드레스는 제1 메모리 장치부터 제4 메모리 장치까지 점차 커지는 방향으로 할당되는 것으로 전제로 설명하지만 이에 한정되는 것은 아니다. 따라서, 이하에서 설명하는 고유 어드레스들 사이의 크기 비교는 예시적인 것으로 해석되어야 하며 구현례에 따라 달라질 수 있다.
입출력 패드(DQ)와 연결되어 제4 상태 리드 커맨드(7Yh)와 제2 메모리 장치의 고유 어드레스(LUN2)를 수신하는 다수의 메모리 장치들에 포함된 상태 출력 제어기들 각각은 입출력 패드(DQ)를 통해 수신한 고유 어드레스(LUN2)와 설정 레지스터를 통해 획득한 자신의 고유 어드레스를 서로 비교할 수 있다.
먼저 도 8a를 참조하면, 입출력 패드(DQ)를 통해 수신한 고유 어드레스와 설정 레지스터를 통해 획득한 자신의 고유 어드레스를 서로 비교한 결과, 제2 어드레스(LUN2)보다 자신의 고유 어드레스가 크거나 같으면, 그러한 고유 어드레스를 갖는 상태 출력 제어기들은 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하기 시작할 수 있다. 또한, 카운트된 토글 횟수(CTN)가 기준 토글 횟수와 동일하면, 해당하는 메모리 장치는 자신의 상태 정보를 입출력 패드(DQ)로 출력할 수 있다. 이때, 제2 어드레스(LUN2)보다 자신의 고유 어드레스가 작은 상태 출력 제어기들은 상태 정보 리드 동작을 수행하지 않을 수 있다.
예를 들어, 제1 메모리 장치의 상태 출력 제어기는, 설정 레지스터로부터 획득한 고유 어드레스(LUN1)가 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)보다 작으므로, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하거나 상태 정보를 출력하지 않고 상태 정보 리드 동작을 종료할 수 있다.
설정 레지스터로부터 획득한 고유 어드레스(LUN2)가 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)와 동일할 수 있다. 따라서, 제2 메모리 장치의 상태 출력 제어기는, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 토글 횟수(CTN)가 기준 토글 횟수인 2와 동일할 때, 자신의 상태 정보(SATA2)를 메모리 컨트롤러(1200)로 출력할 수 있다.
같은 방식으로, 제3 메모리 장치 내지 제4 메모리 장치의 고유 어드레스들(LUN3, LUN4)은 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)보다 클 수 있다. 따라서, 제3 메모리 장치의 상태 출력 제어기는 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 토글 횟수(CTN)가 기준 토글 횟수인 3과 동일할 때, 자신의 상태 정보(SATA3)를 메모리 컨트롤러(1200)로 출력할 수 있다. 또한, 제4 메모리 장치의 상태 출력 제어기는 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 토글 횟수(CTN)가 기준 토글 횟수인 4와 동일할 때, 자신의 상태 정보(SATA4)를 메모리 컨트롤러(1200)로 출력할 수 있다.
도 8a에서와 반대로 도 8b를 참조하면, 입출력 패드(DQ)를 통해 수신한 고유 어드레스와 설정 레지스터를 통해 획득한 자신의 고유 어드레스를 서로 비교한 결과, 제2 어드레스(LUN2)보다 자신의 고유 어드레스가 작거나 같으면, 그러한 고유 어드레스를 갖는 상태 출력 제어기들은 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하기 시작할 수 있다. 또한, 카운트된 토글 횟수(CTN)가 기준 토글 횟수와 동일하면, 해당하는 메모리 장치는 자신의 상태 정보를 입출력 패드(DQ)로 출력할 수 있다. 이때, 제2 어드레스(LUN2)보다 자신의 고유 어드레스가 큰 상태 출력 제어기들은 상태 정보 리드 동작을 수행하지 않을 수 있다.
예를 들어, 제1 메모리 장치의 상태 출력 제어기는, 설정 레지스터로부터 획득한 고유 어드레스(LUN1)가 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)보다 작으므로, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 카운트된 토글 횟수(CTN)가 기준 토글 횟수인 1과 동일하면, 제1 메모리 장치는 자신의 상태 정보(SDATA1)를 입출력 패드(DQ)로 출력할 수 있다.
설정 레지스터로부터 획득한 고유 어드레스(LUN2)가 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)와 동일하다. 따라서, 제2 메모리 장치의 상태 출력 제어기는, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 토글 횟수(CTN)가 기준 토글 횟수인 2와 동일할 때, 자신의 상태 정보(SATA2)를 메모리 컨트롤러(1200)로 출력할 수 있다.
같은 방식으로, 제3 메모리 장치 내지 제4 메모리 장치의 고유 어드레스들(LUN3, LUN4)은 입출력 패드(DQ)를 통해 수신한 제2 메모리 장치의 고유 어드레스(LUN2)보다 크다. 따라서, 제3 내지 제4 메모리 장치의 상태 출력 제어기들은 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하거나 상태 정보를 출력하지 않고 상태 정보 리드 동작을 종료할 수 있다.
상술한 제4 상태 리드 커맨드(7Yh)에 따르면, 하나의 상태 리드 커맨드와 고유 어드레스를 입출력 패드(DQ)로 발행하는 것만으로, 발행된 고유 어드레스보다 작거나 또는 큰 모든 메모리 장치들의 상태 정보가 순차적으로 리드될 수 있다. 따라서, 상태 정보를 리드하는 속도가 향상됨과 동시에 하나의 메모리 그룹 중 일부에 대한 메모리 장치의 상태 정보가 리드를 수행할 수 있다.
도 9는 도 8a 내지 도 8b에 따른 상태 리드 커맨드와 다른 실시예에 따른 상태 리드 커맨드를 설명하기 위하여 메모리 컨트롤러와 메모리 장치 사이의 동작을 나타낸 파형도이다.
도 9에서도 도 8a 내지 도 8b에서와 마찬가지로, 각 메모리 장치들의 고유 어드레스는 제1 메모리 장치부터 제4 메모리 장치까지 점차 커지는 방향으로 할당되는 것으로 전제로 설명하지만 이에 한정되는 것은 아니다.
도 9를 참조하면, 메모리 컨트롤러(1200)는 입출력 패드(DQ)를 통해 제4 상태 리드 커맨드(7Yh)를 입출력 패드(DQ)와 연결된 메모리 장치들 중 두 개의 고유 어드레스들과 함께 발행할 수 있다. 예를 들어, 메모리 컨트롤러(1200)는, 제4 상태 리드 커맨드(7Yh)를, 제2 메모리 장치의 고유 어드레스(LUN2) 및 제3 메모리 장치의 고유 어드레스(LUN3)와 함께, 입출력 패드(DQ)로 발행할 수 있다.
입출력 패드(DQ)와 연결되어 제4 상태 리드 커맨드(7Yh)를 두 개의 고유 어드레스들(LUN2, LUN3)와 함께 수신하는 다수의 메모리 장치들에 포함된 상태 출력 제어기들 각각은 입출력 패드(DQ)를 통해 수신한 두 개의 고유 어드레스들(LUN2, LUN3)을 설정 레지스터를 통해 획득한 자신의 고유 어드레스와 서로 비교할 수 있다.
입출력 패드(DQ)를 통해 수신한 2개의 고유 어드레스와 설정 레지스터를 통해 획득한 자신의 고유 어드레스를 서로 비교한 결과, 자신의 고유 어드레스가 2개의 고유 어드레스들 사이에 해당하는 어드레스인 경우, 그러한 고유 어드레스를 갖는 상태 출력 제어기들은 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하기 시작할 수 있다. 또한, 카운트된 토글 횟수(CTN)가 기준 토글 횟수와 동일하면, 해당하는 메모리 장치는 자신의 상태 정보를 입출력 패드(DQ)로 출력할 수 있다. 이때, 자신의 고유 어드레스가 2개의 고유 어드레스들 사이에 해당하지 않는 어드레스인 경우, 그러한 고유 어드레스를 갖는 상태 출력 제어기들은, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하거나 상태 정보를 출력하지 않고 상태 정보 리드 동작을 종료할 수 있다.
예를 들어, 제1 메모리 장치와 제4 메모리 장치의 상태 출력 제어기들은, 설정 레지스터로부터 획득한 고유 어드레스(LUN1 및 LUN4)가 입출력 패드(DQ)를 통해 수신한 2개의 고유 어드레스들(LUN2, LUN3) 사이에 해당하지 않으므로, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하거나 상태 정보를 출력하지 않고 상태 정보 리드 동작을 종료할 수 있다.
제2 내지 제3 메모리 장치의 상태 출력 제어기는, 설정 레지스터로부터 획득한 고유 어드레스(LUN2 또는 LUN3)가 입출력 패드(DQ)를 통해 수신한 2개의 고유 어드레스들(LUN2, LUN3) 사이에 해당하므로, 제2 메모리 장치의 상태 출력 제어기는, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 카운트된 토글 횟수(CTN)가 기준 토글 횟수인 2와 동일하면, 제2 메모리 장치는 자신의 상태 정보(SDATA2)를 입출력 패드(DQ)로 출력할 수 있다. 또한, 제3 메모리 장치의 상태 출력 제어기도, 리드 인에이블 신호의 토글 횟수(CTN)를 카운트하고, 카운트된 토글 횟수(CTN)가 기준 토글 횟수인 3과 동일하면, 제3 메모리 장치는 자신의 상태 정보(SDATA3)를 입출력 패드(DQ)로 출력할 수 있다.
도 9에 따른 제4 상태 리드 커맨드(7Yh)에 따르면, 하나의 상태 리드 커맨드와 두 개의 고유 어드레스를 입출력 패드(DQ)로 발행하는 것만으로, 발행된 두 개의 고유 어드레스들 사이에 해당하는 고유 어드레스를 갖는 모든 메모리 장치들의 상태 정보가 순차적으로 리드될 수 있다. 따라서, 상태 정보를 리드하는 속도가 향상됨과 동시에 하나의 메모리 그룹 중 일부에 대한 메모리 장치의 상태 정보가 리드를 수행할 수 있다.
도 10은 일 실시예에 따른 메모리 장치의 동작 방법을 나타낸 예시 흐름도이다. 도 11은 도 10에 따른 동작 방법을 보충하는 예시 흐름도이다.
도 10을 참조하면, 메모리 장치의 동작 방법은, 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 단계(S100); 상기 상태 리드 커맨드에 대한 응답으로, 상기 메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 단계(S110); 카운트된 상기 토글 횟수가 미리 설정된 기준 토글 횟수와 대응하는지 여부를 판단하는 단계(S120); 및 상기 판단에 대한 응답으로, 상태 레지스터에 저장된 메모리 장치의 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계(S130)를 포함할 수 있다.
상기 신호는, 상기 메모리 장치가 상기 메모리 컨트롤러로 데이터를 전송하도록 지시하는 리드 인에이블 신호일 수 있다.
상기 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계(S130)는, 상기 카운트된 상기 토글 횟수가 상기 기준 토글 횟수와 동일할 때, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 메모리 컨트롤러로 출력할 수 있다.
상기 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계(S130)는, 메모리 장치마다 개별적으로 할당되는 고유 어드레스를 상기 상태 정보와 함께 상기 메모리 컨트롤러로 출력할 수 있다.
상기 상태 리드 커맨드를 수신하는 단계(S100)는, 상기 상태 리드 커맨드를 적어도 하나의 고유 어드레스와 함께 수신할 수 있다.
한편, 도 11을 참조하면, 메모리 장치의 동작 방법은, 상기 상태 리드 커맨드를 수신하는 단계 이후에, 설정 레지스터에 저장된 고유 어드레스를 상기 적어도 하나의 고유 어드레스와 비교하는 단계(S102)를 더 포함할 수 있다.
비교하는 단계(S102)에 따른 비교 결과가 미리 설정된 상태 출력 조건에 해당하면(S104), 상기 판단하는 단계(S120)가 수행될 수 있다. 그러나, 비교하는 단계(S102)에 따른 비교 결과가 미리 설정된 상태 출력 조건에 해당하지 않으면(S104), 상기 판단하는 단계(S120) 및 상태 정보를 메모리 컨트롤러로 출력하는 단계(S130)를 수행하지 않을 수 있다.
미리 설정된 상태 출력 조건의 예를 들면 다음과 같다.
예를 들어, 상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스를 포함할 수 있다.
상기 판단하는 단계(S120)는, 상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스보다 크거나 같을 때 수행될 수 있다.
또는, 상기 판단하는 단계(S120)는, 상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스보다 작거나 같을 때 수행될 수 있다.
예를 들어, 상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스 및 제2 고유 어드레스를 포함할 수 있다.
상기 판단하는 단계(S120)는, 상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스와 상기 제2 고유 어드레스 사이에 해당하는 어드레스일 때 수행될 수 있다.
도 12는 도 1의 메모리 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 12를 참조하면, 메모리 컨트롤러(1200)는 내부 메모리(Internal Memory; 1210), 중앙 처리 장치(Central Processing Unit; CPU; 1220), 에러 정정 블록(Error Correction Block; 1230), 호스트 인터페이스(Host Interface; 1240), 버퍼 메모리 인터페이스(Buffer Memory Interface; 1250) 및 메모리 인터페이스(Memory Interface; 1260)를 포함할 수 있다.
내부 메모리(1210)는 메모리 컨트롤러(1200)의 동작에 필요한 다양한 정보들을 저장할 수 있다. 예를 들면, 내부 메모리(1210)는 논리적, 물리적(logical, physical) 어드레스 맵 테이블들(address map tables)을 포함할 수 있다. 내부 메모리(1210)는 RAM(random access memory), DRAM(dynamic RAM), SRAM(static RAM), 캐시(cache) 및 강하게 결합된 메모리(tightly coupled memory; TCM) 중 적어도 하나 이상으로 구성될 수 있다.
중앙 처리 장치(1220)는 메모리 장치(1100)를 제어하기 위한 각종 연산을 수행하거나, 다양한 커맨드들(commands)을 생성할 수 있다. 중앙 처리 장치(1220)는 호스트(2000)로부터 요청(request)을 수신하면, 수신된 요청에 따라 커맨드를 생성하고, 생성된 커맨드를 큐 컨트롤러(1230)로 전송할 수 있다.
에러 정정 블록(1230)은 에러 정정 코드(ECC, Error Correcting Code)를 이용하여 메모리 장치(1100)로부터 수신된 데이터의 에러를 검출하고, 정정하도록 구성된다. 중앙 처리 장치(1220)는 에러 정정 블록(1230)의 에러 검출 결과에 따라 읽기 전압을 조절하고, 재 읽기를 수행하도록 메모리 장치(1100)를 제어할 수 있다. 예시적인 실시 예로서, 에러 정정 블록은 메모리 컨트롤러(1200)의 구성 요소로서 제공될 수 있다.
호스트 인터페이스(1240)는 메모리 컨트롤러(1200)와 호스트(2000) 사이에서 커맨드, 어드레스 및 데이터 등을 주고받을 수 있다. 예를 들면, 호스트 인터페이스(1240)는 호스트(2000)로부터 요청(request), 어드레스 및 데이터 등을 수신할 수 있고, 메모리 장치(1100)로부터 리드된 데이터를 호스트(2000)로 출력할 수 있다. 호스트 인터페이스(1240)는 PCIe(Peripheral Component Interconnect Express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), SAS(serial attached SCSI) 또는 NVMe(Non-Volatile Memory Express)와 같은 프로토콜을 사용하여 호스트(2000)와 통신할 수 있다. 호스트 인터페이스(1240)는 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스들을 포함할 수 있다.
버퍼 메모리 인터페이스(1250)는 중앙 처리 장치(1220)와 메모리 시스템(1000)의 버퍼 메모리(미도시) 사이에서 데이터를 전송할 수 있다. 버퍼 메모리(미도시)는 메모리 컨트롤러(1200)의 동작 메모리 또는 캐시 메모리로 사용될 수 있으며, 상술한 정보 외에도 메모리 시스템(1000) 내에서 사용되는 시스템 데이터를 저장할 수 있다. 실시예에 따라, 버퍼 메모리(미도시)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), DDR4 SDRAM, LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR) 또는 RDRAM(Rambus Dynamic Random Access Memory)을 포함할 수 있다. 버퍼 메모리가 메모리 컨트롤러(1200) 내부에 포함되는 경우에는 버퍼 메모리 인터페이스(1250)는 생략될 수 있다.
메모리 인터페이스(1260)는 메모리 컨트롤러(1200)와 메모리 장치(1100) 사이에서 커맨드, 어드레스 및 데이터 등을 주고받을 수 있다. 예를 들면, 메모리 인터페이스(1260)는 채널(channel)을 통해 메모리 장치(1100)에 커맨드, 어드레스 및 데이터 등을 전송할 수 있고, 메모리 장치(1100)로부터 데이터 등을 수신할 수 있다.
도 13은 도 1에 따른 메모리 시스템의 다른 실시 예를 설명하기 위한 도면이다.
도 13을 참조하면, 메모리 시스템(Memory System)은 호스트(2000) 및 메모리 카드(Memory Card; 70000)를 포함할 수 있다.
메모리 카드(70000)는 스마트 카드(smart card)로 구현될 수 있다. 메모리 카드(70000)는 메모리 장치(1100), 메모리 컨트롤러(1200) 및 카드 인터페이스(Card Interface; 7100)를 포함할 수 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)와 카드 인터페이스(7100) 사이에서 데이터의 교환을 제어할 수 있다. 실시 예에 따라, 카드 인터페이스(7100)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 또한, 카드 인터페이스(7100)는 호스트(HOST; 2000)의 프로토콜에 따라 호스트(2000)와 메모리 컨트롤러(1200) 사이에서 데이터 교환을 인터페이스 할 수 있다. 실시 예에 따라 카드 인터페이스(7100)는 USB(Universal Serial Bus) 프로토콜, IC(InterChip)-USB 프로토콜을 지원할 수 있다. 여기서, 카드 인터페이스(7100)는 호스트(2000)가 사용하는 프로토콜을 지원할 수 있는 하드웨어, 상기 하드웨어에 탑재된 소프트웨어 또는 신호 전송 방법을 의미할 수 있다.
100: 메모리 셀 어레이
200: 주변 회로
210: 전압 생성 회로 220: 로우 디코더
230: 페이지 버퍼 그룹 240: 컬럼 디코더
250: 입출력 회로 260: 전류 감지 회로
1000: 메모리 시스템 1100: 메모리 장치
1200: 메모리 컨트롤러 1210: 내부 메모리
1220: 중앙 처리 장치 1230: 에러 정정 블록
1240: 호스트 인터페이스 1250: 버퍼 메모리 인터페이스
1260: 메모리 인터페이스 1300: 메모리 장치 그룹들
2000: 호스트
210: 전압 생성 회로 220: 로우 디코더
230: 페이지 버퍼 그룹 240: 컬럼 디코더
250: 입출력 회로 260: 전류 감지 회로
1000: 메모리 시스템 1100: 메모리 장치
1200: 메모리 컨트롤러 1210: 내부 메모리
1220: 중앙 처리 장치 1230: 에러 정정 블록
1240: 호스트 인터페이스 1250: 버퍼 메모리 인터페이스
1260: 메모리 인터페이스 1300: 메모리 장치 그룹들
2000: 호스트
Claims (20)
- 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 입출력 회로;
메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 토글 카운터;
메모리 장치의 상태 정보를 저장하고, 상기 상태 정보를 상기 입출력 회로로 출력하는 상태 레지스터; 및
상기 상태 리드 커맨드에 대한 응답으로, 상기 토글 카운터에 의해 카운트된 상기 토글 횟수가 기준 토글 횟수와 대응하는지 여부를 판단하고, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 입출력 회로를 통해 상기 메모리 컨트롤러로 전송하는 상태 출력 제어기를 포함하는, 메모리 장치. - 청구항 1에서,
상기 상태 정보는,
쓰기 보호가 활성화되었는지 여부, 레디-비지 여부, 상기 상태 리드 커맨드를 수신하기 전에 수신된 커맨드에 따른 동작의 실패 여부 중 적어도 하나를 포함하는, 메모리 장치. - 청구항 1에서,
상기 신호는,
상기 메모리 컨트롤러가 상기 메모리 장치에 대하여 데이터를 전송하도록 지시하는 리드 인에이블 신호인, 메모리 장치. - 청구항 1에서,
상기 상태 출력 제어기는,
상기 카운트된 상기 토글 횟수가 상기 기준 토글 횟수와 동일할 때, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 메모리 컨트롤러로 전송하는, 메모리 장치. - 청구항 1에서,
메모리 장치마다 개별적으로 할당되는 고유 어드레스를 저장하는 설정 레지스터를 더 포함하는, 메모리 장치. - 청구항 5에서,
상기 기준 토글 횟수는,
상기 고유 어드레스에 기초하여 결정되는, 메모리 장치. - 청구항 5에서,
상기 상태 출력 제어기는,
상기 고유 어드레스를 상기 상태 정보와 함께 상기 메모리 컨트롤러로 전송하는, 메모리 장치. - 청구항 5에서,
상기 입출력 회로는,
상기 상태 리드 커맨드를 적어도 하나의 고유 어드레스와 함께 수신하는, 메모리 장치. - 청구항 8에서,
상기 상태 출력 제어기는,
상기 설정 레지스터에 저장된 상기 고유 어드레스와 상기 적어도 하나의 고유 어드레스를 비교하고, 비교 결과에 따라 상기 토글 횟수가 상기 기준 토글 횟수와 대응하는지 여부를 판단하는, 메모리 장치. - 청구항 9에서,
상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스를 포함하고,
상기 상태 출력 제어기는,
상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스보다 크거나 같을 때, 상기 토글 횟수가 상기 기준 토글 횟수와 대응하는지 여부를 판단하는, 메모리 장치. - 청구항 9에서,
상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스를 포함하고,
상기 상태 출력 제어기는,
상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스보다 작거나 같을 때, 상기 토글 횟수가 상기 기준 토글 횟수와 대응하는지 여부를 판단하는, 메모리 장치. - 청구항 11에서,
상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스 및 제2 고유 어드레스를 포함하고,
상기 상태 출력 제어기는,
상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스와 상기 제2 고유 어드레스 사이에 해당하는 어드레스일 때, 상기 토글 횟수가 상기 기준 토글 횟수와 대응하는지 여부를 판단하는, 메모리 장치. - 메모리 컨트롤러로부터 상태 리드 커맨드를 수신하는 단계;
상기 상태 리드 커맨드에 대한 응답으로, 상기 메모리 컨트롤러로부터 수신되는 신호의 토글 횟수를 카운트하는 단계;
카운트된 상기 토글 횟수가 미리 설정된 기준 토글 횟수와 대응하는지 여부를 판단하는 단계; 및
상기 판단에 대한 응답으로, 상태 레지스터에 저장된 메모리 장치의 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계를 포함하는, 메모리 장치의 동작 방법. - 청구항 13에서,
상기 신호는,
상기 메모리 장치가 상기 메모리 컨트롤러로 데이터를 전송하도록 지시하는 리드 인에이블 신호인, 메모리 장치의 동작 방법. - 청구항 13에서,
상기 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계는,
상기 카운트된 상기 토글 횟수가 상기 기준 토글 횟수와 동일할 때, 상기 상태 레지스터를 제어하여 상기 상태 정보를 상기 메모리 컨트롤러로 출력하는, 메모리 장치의 동작 방법. - 청구항 13에서,
상기 상태 정보를 상기 메모리 컨트롤러로 출력하는 단계는,
메모리 장치마다 개별적으로 할당되는 고유 어드레스를 상기 상태 정보와 함께 상기 메모리 컨트롤러로 출력하는, 메모리 장치의 동작 방법. - 청구항 13에서,
상기 상태 리드 커맨드를 수신하는 단계는,
상기 상태 리드 커맨드를 적어도 하나의 고유 어드레스와 함께 수신하는, 메모리 장치의 동작 방법. - 청구항 17에서,
상기 상태 리드 커맨드를 수신하는 단계 이후에,
설정 레지스터에 저장된 고유 어드레스를 상기 적어도 하나의 고유 어드레스와 비교하는 단계를 더 포함하는, 메모리 장치의 동작 방법. - 청구항 18에서,
상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스를 포함하고,
상기 판단하는 단계는,
상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스보다 크거나 같을 때 수행되는, 메모리 장치의 동작 방법. - 청구항 18에서,
상기 적어도 하나의 고유 어드레스는, 제1 고유 어드레스 및 제2 고유 어드레스를 포함하고,
상기 판단하는 단계는,
상기 설정 레지스터에 저장된 상기 고유 어드레스가 상기 제1 고유 어드레스와 상기 제2 고유 어드레스 사이에 해당하는 어드레스일 때 수행되는, 메모리 장치의 동작 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200072471A KR20210155228A (ko) | 2020-06-15 | 2020-06-15 | 메모리 장치 및 그 동작 방법 |
US16/952,710 US11416426B2 (en) | 2020-06-15 | 2020-11-19 | Memory device and method of operating the same |
CN202110191207.1A CN113808649A (zh) | 2020-06-15 | 2021-02-20 | 存储器装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200072471A KR20210155228A (ko) | 2020-06-15 | 2020-06-15 | 메모리 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210155228A true KR20210155228A (ko) | 2021-12-22 |
Family
ID=78825461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200072471A KR20210155228A (ko) | 2020-06-15 | 2020-06-15 | 메모리 장치 및 그 동작 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11416426B2 (ko) |
KR (1) | KR20210155228A (ko) |
CN (1) | CN113808649A (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102021103872A1 (de) * | 2020-07-13 | 2022-01-13 | Samsung Electronics Co., Ltd. | Nichtflüchtige speichervorrichtung, die eine hocheffiziente e/a-schnittstelle unterstützt |
KR20220008428A (ko) * | 2020-07-13 | 2022-01-21 | 삼성전자주식회사 | 고효율 입출력 인터페이스를 지원하는 불휘발성 메모리 장치 |
US11977776B2 (en) | 2022-02-24 | 2024-05-07 | Silicon Motion, Inc. | Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes |
US11977752B2 (en) | 2022-02-24 | 2024-05-07 | Silicon Motion, Inc. | Flash memory controller and method capable of sending data toggle set-feature signal to enable, disable, or configure data toggle operation of flash memory device |
US11861212B2 (en) | 2022-02-24 | 2024-01-02 | Silicon Motion, Inc. | Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence |
US11935595B2 (en) | 2022-02-24 | 2024-03-19 | Silicon Motion, Inc. | Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence |
US11972146B2 (en) | 2022-02-24 | 2024-04-30 | Silicon Motion, Inc. | Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes |
CN116679887B (zh) * | 2023-07-24 | 2023-10-24 | 合肥奎芯集成电路设计有限公司 | 用于NAND Flash的通用控制模块及方法 |
CN116881090B (zh) * | 2023-09-06 | 2024-01-26 | 北京壁仞科技开发有限公司 | 计算装置以及控制计算装置中的计算核的能耗的方法 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1048525A (en) * | 1965-07-16 | 1966-11-16 | Ibm | Data processing system |
US5365485A (en) * | 1993-11-22 | 1994-11-15 | Texas Instruments Incorporated | Fifo with fast retransmit mode |
US6098139A (en) * | 1998-05-27 | 2000-08-01 | 3Com Corporation | Frequency independent asynchronous clock crossing FIFO |
DE102006010316A1 (de) * | 2006-03-07 | 2007-09-13 | Karl Storz Gmbh & Co. Kg | Kupplungsmechanismus |
US20080212983A1 (en) * | 2007-02-06 | 2008-09-04 | Sang Gyu Park | Image forming apparatus and control method thereof |
US8135975B2 (en) * | 2007-03-09 | 2012-03-13 | Analog Devices, Inc. | Software programmable timing architecture |
US8495438B2 (en) * | 2007-12-28 | 2013-07-23 | Texas Instruments Incorporated | Technique for memory imprint reliability improvement |
JP2010086415A (ja) * | 2008-10-01 | 2010-04-15 | Panasonic Corp | メモリインターフェース |
KR101098431B1 (ko) | 2009-12-31 | 2011-12-26 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 동작 방법 |
KR101780422B1 (ko) * | 2010-11-15 | 2017-09-22 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 읽기 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8607104B2 (en) * | 2010-12-20 | 2013-12-10 | Advanced Micro Devices, Inc. | Memory diagnostics system and method with hardware-based read/write patterns |
US8996782B2 (en) * | 2012-03-23 | 2015-03-31 | Kabushiki Kaisha Toshiba | Memory system and bank interleaving method |
KR102165736B1 (ko) * | 2013-12-18 | 2020-10-15 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작방법 |
US9368172B2 (en) * | 2014-02-03 | 2016-06-14 | Rambus Inc. | Read strobe gating mechanism |
KR20160030717A (ko) * | 2014-09-11 | 2016-03-21 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10599794B2 (en) * | 2014-10-06 | 2020-03-24 | Synopsys, Inc. | Efficient power analysis |
KR20160045461A (ko) * | 2014-10-17 | 2016-04-27 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그의 구동방법 |
US10114690B2 (en) * | 2015-02-13 | 2018-10-30 | Sandisk Technologies Llc | Multi-die status mode for non-volatile storage |
JP6547825B2 (ja) * | 2015-03-27 | 2019-07-24 | 株式会社大真空 | 圧電振動デバイス |
KR102319392B1 (ko) * | 2015-06-09 | 2021-11-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
KR102390917B1 (ko) * | 2015-10-16 | 2022-04-27 | 삼성전자주식회사 | 리드 인터페이스 장치의 클린 데이터 스트로브 신호 생성회로 |
KR20180025357A (ko) * | 2016-08-29 | 2018-03-09 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190018326A (ko) * | 2017-08-14 | 2019-02-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR20190029316A (ko) * | 2017-09-12 | 2019-03-20 | 에스케이하이닉스 주식회사 | 마이크로 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작방법 |
KR20190061957A (ko) * | 2017-11-28 | 2019-06-05 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이를 포함하는 시스템 |
KR20190066844A (ko) | 2017-12-06 | 2019-06-14 | 삼성전자주식회사 | 메모리 장치, 메모리 컨트롤러, 및 이들을 포함하는 스토리지 장치 |
KR102568896B1 (ko) * | 2018-04-19 | 2023-08-21 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR102508312B1 (ko) * | 2018-04-23 | 2023-03-10 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 이의 동작 방법 |
US10922017B2 (en) * | 2018-08-07 | 2021-02-16 | Micron Technology, Inc. | Memories for reading data corresponding to multiple addresses associated with a read command |
KR20200059774A (ko) * | 2018-11-21 | 2020-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
-
2020
- 2020-06-15 KR KR1020200072471A patent/KR20210155228A/ko active Search and Examination
- 2020-11-19 US US16/952,710 patent/US11416426B2/en active Active
-
2021
- 2021-02-20 CN CN202110191207.1A patent/CN113808649A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210390065A1 (en) | 2021-12-16 |
US11416426B2 (en) | 2022-08-16 |
CN113808649A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11416426B2 (en) | Memory device and method of operating the same | |
US10089257B2 (en) | Semiconductor storage device and control method thereof | |
US11861223B2 (en) | Memory controller and storage device for scheduling addresses | |
KR20200022641A (ko) | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 | |
US11487474B2 (en) | Memory system and method of operating a memory device included in the same | |
US11474939B2 (en) | Memory device for improving speed of cache read operation and method of operating the same | |
US11961561B2 (en) | Memory device and method of operating the same | |
CN114518843A (zh) | 存储控制器和包括存储控制器的存储设备 | |
US11461238B2 (en) | Storage device, memory controller, and method for fetching write commands from submission queues to perform full page writes | |
KR20190023196A (ko) | 데이터 저장 장치 | |
US11586379B2 (en) | Memory system and method of operating the same | |
US9728234B1 (en) | Operating method of semiconductor memory device | |
US11538518B2 (en) | Memory device to suspend ROM operation and a method of operating the memory device | |
KR102559537B1 (ko) | 메모리 컨트롤러, 이를 포함하는 데이터 저장 장치 및 스토리지 시스템 | |
KR20220045342A (ko) | 호스트 장치, 데이터 저장 장치, 데이터 처리 시스템 및 데이터 처리 방법 | |
KR20210133790A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN111143255A (zh) | 存储装置及其操作方法 | |
US11782644B2 (en) | Memory system and method of operating the same | |
US11755247B2 (en) | Storage device and operating method thereof | |
US12051470B2 (en) | Memory controller and operating method thereof | |
KR20220113164A (ko) | 저장 장치 및 그 동작 방법 | |
KR20230138805A (ko) | 저장 장치 및 이의 동작 방법 | |
CN114089910A (zh) | 储存装置及储存装置的操作方法 | |
KR20210083081A (ko) | 메모리 컨트롤러 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |