KR20090046944A - Modular command structure for memory and memory system - Google Patents

Modular command structure for memory and memory system Download PDF

Info

Publication number
KR20090046944A
KR20090046944A KR1020097005563A KR20097005563A KR20090046944A KR 20090046944 A KR20090046944 A KR 20090046944A KR 1020097005563 A KR1020097005563 A KR 1020097005563A KR 20097005563 A KR20097005563 A KR 20097005563A KR 20090046944 A KR20090046944 A KR 20090046944A
Authority
KR
South Korea
Prior art keywords
memory
command
address
identifier
memory device
Prior art date
Application number
KR1020097005563A
Other languages
Korean (ko)
Other versions
KR101397229B1 (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 모사이드 테크놀로지스 인코퍼레이티드
Publication of KR20090046944A publication Critical patent/KR20090046944A/en
Application granted granted Critical
Publication of KR101397229B1 publication Critical patent/KR101397229B1/en

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/20Memory cell initialisation circuits, e.g. when powering up or down, memory clear, latent image memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/06Address interface arrangements, e.g. address buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

메모리 시스템과 메모리 제어기를 포함하는 시스템이 호스트 시스템에 연결된다. 메모리 시스템은 데이터를 저장하는 적어도 하나의 메모리 장치를 갖는다. 제어기는 호스트 시스템으로부터의 요청을 적어도 하나의 메모리 장치에 의해 해석될 수 있는 하나 이상의 분리 가능한 커맨드로 번역한다. 각 커맨드는, 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자와 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처(modular structure)를 갖는다. 적어도 하나의 메모리 장치와 제어기는 통신을 위한 직렬-연결 구성으로 되어 있음으로써, 하나의 메모리 소자만이 메모리 시스템 내부로의 입력을 위한 제어기와 통신된다. 메모리 시스템은 공통 버스에 연결된 복수의 메모리 장치를 포함할 수 있다.

Figure P1020097005563

A system including a memory system and a memory controller is coupled to the host system. The memory system has at least one memory device for storing data. The controller translates the request from the host system into one or more separable commands that can be interpreted by the at least one memory device. Each command has a modular structure that includes an address identifier for one of the at least one memory device and a command identifier that represents an operation to be executed by one of the at least one memory device. . The at least one memory device and the controller are in a series-connected configuration for communication, such that only one memory element is in communication with the controller for input into the memory system. The memory system may include a plurality of memory devices connected to a common bus.

Figure P1020097005563

Description

메모리 시스템 및 메모리를 위한 모듈러 커맨드 스트럭처 {MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM}Modular command structure for memory system and memory {MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM}

본 출원은 미국 특허 가출원 제60/839,329호(2006년 8월 22일 출원), 미국 특허 가출원 제60/902,003호(2007년 2월 16일 출원), 및 미국 특허 가출원 제60/892,705호(2007년 3월 2일 출원)의 우선권의 이익을 청구한다.This application claims U.S. Provisional Application No. 60 / 839,329, filed Aug. 22, 2006, U.S. Provisional Application No. 60 / 902,003, filed Feb. 16, 2007, and U.S. Provisional Application No. 60 / 892,705 (2007). Claim the benefit of priority).

본 발명은 일반적으로 반도체 메모리 장치에 관한 것으로, 특히, 메모리 장치용 커맨드 스트럭처(command structure)와 다중 상호 연결된 반도체 메모리 장치를 갖는 시스템에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to semiconductor memory devices and, more particularly, to systems having multiple interconnected semiconductor memory devices with command structures for memory devices.

반도체 메모리 장치는 많은 산업 및 가전제품에서 일반적으로 발견된다. 더 높은 메모리 용량에 대한 증가되고 있는 요구와 더불어 더 작은 크기에 대한 요구는 달성하기 어려운 밀도를 가진 메모리에 대한 욕구를 초래한다. 그 결과로, 다중 메모리 장치는 종종 큰 메모리 요구를 만족시키기 위해 함께 연결된다. 그러한 다중-장치 메모리 시스템은 단일 패키지(즉, 다중 칩 시스템)로 함께 구현되거나, 인쇄 회로 기판상에서 함께 그룹화된 다수의 메모리 장치 패키지들로 구현될 수 있다.Semiconductor memory devices are commonly found in many industrial and consumer electronics. Increasing demands for higher memory capacities, along with increasing demands for smaller sizes, lead to a desire for memory with densities that are difficult to achieve. As a result, multiple memory devices are often connected together to meet large memory requirements. Such multi-device memory systems may be implemented together in a single package (ie, multi-chip system) or in multiple memory device packages grouped together on a printed circuit board.

다중 반도체 메모리 장치들이 단일 시스템으로서 기능하도록 상호 연결되는 경우에, 제어기는, 개개의 메모리 장치와, 시스템에 있어서 데이터를 저장하고 데이터를 액세스하며 데이터를 처리하기 위한 요청을 제공하는 외부 인터페이스 사이의 데이터 흐름을 관리한다. 커맨드 스트럭처는, 데이터를 포함하고 있는 개개의 메모리 장치들에 그 요청들을 제공하기 위해 제어기에 의해 사용된다. 커맨드 스트럭처는 상호 연결된 메모리 장치들의 구조에 좌우될 수 있고 시스템의 성능에 나쁜 영향을 줄 수 있다. 예를 들어, 개개의 메모리 장치들이 공통의 버스를 통해 제어기와 통신되는 경우에는, 개개의 메모리 장치들 중 오직 하나만이 임의의 부여된 시간에 주장될 수 있다. 만약, 개개의 메모리 장치들이, 오직 하나의 메모리 장치가 제어기에 연결되는 사슬 구조로 직렬 상호 연결되어 있다면, 사슬에서 더 뒤에 위치되는 메모리 장치들에 대한 커맨드들은, 인터럽트될 수 없는 커맨드를 실행하고 있는 더 앞의 메모리 장치들에 의해, 현저히 지연될 수 있다. 직렬 연결된 메모리 장치들의 구조에 있어서, 하나의 장치에서의 커맨드의 처리가 그 뒤의 메모리 장치들로의 커맨드의 전송을 모두 정지시키며, 시스템에 있어서 여느 추가적인 처리의 중지를 초래한다.In the case where multiple semiconductor memory devices are interconnected to function as a single system, the controller includes data between the individual memory devices and an external interface that provides a request to store data, access data, and process the data in the system. Manage the flow The command structure is used by the controller to provide the requests to the individual memory devices containing the data. The command structure may depend on the structure of interconnected memory devices and adversely affect the performance of the system. For example, if individual memory devices are communicated with a controller via a common bus, only one of the individual memory devices may be asserted at any given time. If individual memory devices are serially interconnected in a chain structure in which only one memory device is connected to the controller, the commands for the memory devices located later in the chain are executing commands that cannot be interrupted. By earlier memory devices, there may be a significant delay. In the structure of serially connected memory devices, the processing of a command in one device stops all subsequent transmission of the command to the memory devices, resulting in the suspension of any further processing in the system.

본 발명의 일 양태에 따르면, 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함하는 모듈러 커맨드 스트럭처가 제공된다.According to an aspect of the present invention, a device identifier includes an address for one memory device of a plurality of memory devices and a bank address for one memory bank of a plurality of memory banks in one of the plurality of memory devices. ; And a command identifier including an operation code representing an operation to be executed by one of the plurality of memory devices.

본 발명의 다른 양태에 따르면, 복수의 메모리 장치 중 하나의 메모리 장치에 액세스하기 위한 프로세서로부터의 요청을 표현하는 복수의 분리 가능한 커맨드를 포함하며; 상기 복수의 분리 커맨드의 각각은, 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함하는, 모듈러 커맨드 세트가 제공된다.According to another aspect of the invention, there is provided a plurality of separable commands representing a request from a processor for accessing one of the plurality of memory devices; Each of the plurality of separation commands includes an address for one of the plurality of memory devices and a bank address for one of the plurality of memory banks in one of the plurality of memory devices. Identifier; And a command identifier comprising an operation code representing an operation to be executed by one of the plurality of memory devices.

본 발명의 다른 양태에 따르면, 데이터를 저장하기 위한 적어도 하나의 메모리 장치를 포함하는 메모리 시스템; 상기 메모리 시스템에 액세스하기 위한 요청을 관리하기 위한 프로세서; 및 상기 프로세서로부터의 요청을 상기 적어도 하나의 메모리 장치에 의해 해석될 수 있는 하나 이상의 분리 가능한 커맨드로 번역하기 위한 제어기로서, 각 커맨드는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자와 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 제어기를 포함하며; 상기 적어도 하나의 메모리 장치와 상기 제어기는 통신을 위해 직렬 연결된, 시스템이 제공된다.According to another aspect of the invention, a memory system including at least one memory device for storing data; A processor for managing a request to access the memory system; And a controller for translating a request from the processor into one or more separable commands that can be interpreted by the at least one memory device, wherein each command is associated with an address identifier for one of the at least one memory device. A controller having a modular structure that includes a command identifier representing an operation to be executed by one of the at least one memory device; The system is provided with the at least one memory device and the controller connected in series for communication.

본 발명의 다른 양태에 따르면, 데이터를 저장하기 위한 복수의 메모리 장치를 갖는 시스템용 제어기로서, 상기 제어기는 상기 복수의 메모리 장치와의 통신을 위해 직렬 구성으로 되어 있으며, 상기 제어기는, 상기 복수의 메모리 장치에 액세스하기 위한 프로세서로부터의 요청을 수신하기 위한 제1 연결부; 상기 프로세서로부터의 요청을 상기 복수의 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위한 번역기로서, 각 커맨드는 상기 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해서 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 번역기; 및 상기 복수의 분리 가능한 커맨드를 발행하기 위한 상기 복수의 메모리 장치 중 하나의 메모리 장치와 직렬 통신되는 제2 연결부를 포함하는, 시스템용 제어기가 제공된다.According to another aspect of the present invention, there is provided a controller for a system having a plurality of memory devices for storing data, the controller being in a serial configuration for communication with the plurality of memory devices, wherein the controller is configured for the plurality of memory devices. A first connector for receiving a request from a processor to access a memory device; A translator for translating a request from the processor into a plurality of separable commands that can be interpreted by the plurality of memory devices, each command comprising an address identifier and a plurality of address identifiers for one of the plurality of memory devices; A translator having a modular structure including a command identifier representing an operation to be executed by one of the memory devices; And a second connection in serial communication with one of the plurality of memory devices for issuing the plurality of separable commands.

본 발명의 다른 양태에 따르면, 적어도 하나의 메모리 장치에 대한 어드레스를 포함하는 어드레스를 판정하는 단계; 상기 적어도 하나의 메모리 장치에 액세스하기 위한 요청을 합동하여 실행하는 복수의 동작을 식별하는 단계; 및 상기 적어도 하나의 메모리 장치에 복수의 분리 가능한 커맨드를 제공하는 단계로서, 상기 커맨드의 각각은 어드레스를 포함하는 장치 식별자 및 상기 복수의 동작 중 하나의 동작을 포함하는 커맨드 식별자를 포함하며, 상기 커맨드 식별자는 상기 메모리 장치에 의해 해석될 수 있는 단계를 포함하는, 적어도 하나의 메모리 장치에 대한 액세스를 요청하는 방법이 제공된다.According to another aspect of the invention, there is provided a method comprising determining an address comprising an address for at least one memory device; Identifying a plurality of operations to jointly execute a request to access the at least one memory device; And providing a plurality of separable commands to the at least one memory device, each command including a device identifier comprising an address and a command identifier comprising one of the plurality of operations, wherein the command A method is provided for requesting access to at least one memory device, wherein the identifier can be interpreted by the memory device.

본 발명의 일 실시예에 따르면, 복수의 메모리 장치 중 하나의 메모리 장치에 액세스하기 위한 요청을 표현하는 복수의 분리 가능한 커맨드를 포함하는 커맨드 스트럭처가 제공된다. 상기 복수의 분리 커맨드의 각각은 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함한다.According to one embodiment of the invention, a command structure is provided that includes a plurality of separable commands that represent a request to access one of the plurality of memory devices. Each of the plurality of disconnect commands includes an address for one of the plurality of memory devices and a bank address for one of the plurality of memory banks in one of the plurality of memory devices. ; And a command identifier including an operation code representing an operation to be executed by one of the plurality of memory devices.

본 발명의 다른 실시예에 따르면, 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함하는, 모듈러 커맨드 스트럭처가 제공된다.According to another embodiment of the present invention, an apparatus comprising an address for one memory device of a plurality of memory devices and a bank address for one memory bank of a plurality of memory banks in one of the plurality of memory devices Identifier; And a command identifier comprising an operation code representing an operation to be executed by one of the plurality of memory devices.

본 발명의 다른 실시예에 따르면, 데이터를 저장하기 위한 적어도 하나의 메모리 장치를 포함하는 메모리 시스템; 상기 메모리 시스템에 액세스하기 위한 요청을 관리하기 위한 프로세서; 및 상기 프로세서로부터의 요청을 상기 적어도 하나의 메모리 장치에 의해 해석될 수 있는 하나 이상의 분리 가능한 커맨드로 번역하기 위한 제어기로서, 각 커맨드는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자와 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 제어기를 포함하며; 상기 적어도 하나의 메모리 장치와 상기 제어기는 통신을 위해 직렬 연결된, 시스템이 제공된다.According to another embodiment of the invention, a memory system including at least one memory device for storing data; A processor for managing a request to access the memory system; And a controller for translating a request from the processor into one or more separable commands that can be interpreted by the at least one memory device, wherein each command is associated with an address identifier for one of the at least one memory device. A controller having a modular structure that includes a command identifier representing an operation to be executed by one of the at least one memory device; The system is provided with the at least one memory device and the controller connected in series for communication.

예를 들어, 적어도 하나의 메모리 장치는 적어도 하나의 메모리 뱅크를 포함한다. 어드레스 식별자는 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 장치 어드레스와 상기 적어도 하나의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함할 수 있다. 예를 들어, 메모리 장치는, NAND-타입 플래시 메모리 장치와 같은, 플래시 장치이다. For example, at least one memory device includes at least one memory bank. The address identifier may include a device address for one of the at least one memory device and a bank address for one of the at least one memory bank. For example, the memory device is a flash device, such as a NAND-type flash memory device.

메모리 시스템이 복수의 메모리 장치를 포함하는 경우에, 장치는 직렬 연결되거나 공통의 버스에 연결될 수 있다. If the memory system includes a plurality of memory devices, the devices can be connected in series or on a common bus.

본 발명의 다른 실시예에 따르면, 데이터를 저장하기 위한 복수의 메모리 장치를 갖는 시스템용 제어기가 제공되며, 상기 제어기는 상기 복수의 메모리 장치와의 통신을 위해 직렬 상호 연결 구성으로 되어 있다. 상기 제어기는, 상기 복수의 메모리 장치에 액세스하기 위한 요청을 수신하기 위한 제1 연결부; 상기 요청을 상기 복수의 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위한 번역기로서, 각 커맨드는 상기 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해서 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 번역기; 및 상기 복수의 분리 가능한 커맨드를 발행하기 위한 상기 복수의 메모리 장치 중 하나의 메모리 장치와의 통신을 위한 제2 연결부를 포함한다.According to another embodiment of the present invention, a controller for a system having a plurality of memory devices for storing data is provided, the controller being in a serial interconnect configuration for communication with the plurality of memory devices. The controller may include a first connection unit for receiving a request to access the plurality of memory devices; A translator for translating the request into a plurality of separable commands that can be interpreted by the plurality of memory devices, each command being an address identifier for one of the plurality of memory devices and one of the plurality of memory devices; A translator having a modular structure including a command identifier representing an operation to be executed by one memory device; And a second connection for communicating with one of the plurality of memory devices for issuing the plurality of separable commands.

본 발명의 다른 실시예에 따르면, 메모리 장치 어드레스를 포함하는 어드레스를 판정하는 단계; 메모리에 액세스하기 위한 요청을 실행하는 복수의 동작을 식별하는 단계; 및 상기 메모리에 대한 복수의 분리 가능한 커맨드를 제공하는 단계로서, 상기 커맨드의 각각은 메모리 장치 어드레스를 갖는 장치 식별자 및 상기 복수의 동작 중 하나의 동작을 갖는 커맨드 식별자를 포함하는 단계를 포함하는 방법이 제공된다.According to another embodiment of the invention, determining an address including a memory device address; Identifying a plurality of operations to execute a request to access a memory; And providing a plurality of separable commands for the memory, each command including a device identifier having a memory device address and a command identifier having one of the plurality of operations. Is provided.

유리하게, 상기 방법은 메모리 장치에 액세스하기 위한 요청을 상기 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위해 사용된다. 상기 방법은 메모리 장치에 액세스하기 위한 요청을 상기 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위해 사용될 수 있다.Advantageously, the method is used to translate a request to access a memory device into a plurality of separable commands that can be interpreted by the memory device. The method can be used to translate a request to access a memory device into a plurality of separable commands that can be interpreted by the memory device.

본 발명의 다른 양태 및 특징은, 첨부 도면과 함께 본 발명의 특정 실시예들의 후술되는 상세한 설명의 검토시에 당업자들에게 명백해질 것이다.Other aspects and features of the present invention will become apparent to those skilled in the art upon examination of the following detailed description of specific embodiments of the present invention in conjunction with the accompanying drawings.

본 발명의 실시예들이 이제, 첨부된 도면들을 참조하여, 단지 예시로서, 기술될 것이다.Embodiments of the present invention will now be described, by way of example only, with reference to the accompanying drawings.

도 1은 본 발명의 실시예들이 적용될 수 있는, 메모리 시스템과 메모리 제어기를 가진 시스템 및 호스트 시스템을 예시한다.1 illustrates a system and host system having a memory system and a memory controller to which embodiments of the present invention may be applied.

도 2는 본 발명의 실시예들이 적용될 수 있는, 공통의 버스를 통해 메모리 시스템에 연결되는 제어기와 복수의 메모리 장치를 포함하는 메모리 시스템을 예시하는 블록도이다.FIG. 2 is a block diagram illustrating a memory system including a controller and a plurality of memory devices connected to the memory system through a common bus to which embodiments of the present invention may be applied.

도 3은 본 발명의 실시예들이 적용될 수 있는, 메모리 장치에 연결된 제어기 및 직렬 상호 연결된 복수의 메모리 장치를 가진 메모리 시스템을 예시하는 블록도이다.3 is a block diagram illustrating a memory system having a controller coupled to a memory device and a plurality of serially interconnected memory devices to which embodiments of the present invention may be applied.

도 4는 본 발명의 실시예들이 적용될 수 있는, 플래시 메모리 장치의 일반적 인 구성의 예를 예시하는 블록도이다.4 is a block diagram illustrating an example of a general configuration of a flash memory device to which embodiments of the present invention may be applied.

도 5A, 5B 및 5C는 본 발명의 실시예들이 적용될 수 있는, NAND 플래시 메모리와 사용하기 위한 모듈러 커맨드 스트럭처의 예들을 예시한다.5A, 5B and 5C illustrate examples of modular command structures for use with NAND flash memory, to which embodiments of the present invention may be applied.

도 6A는 본 발명의 실시예들이 적용될 수 있는 플래시 제어기의 구성을 예시하는 블록도이다.6A is a block diagram illustrating a configuration of a flash controller to which embodiments of the present invention can be applied.

도 6B는 도 6A에 도시된 플래시 커맨드 엔진의 기능적 구성 요소들을 예시하는 블록도이다.FIG. 6B is a block diagram illustrating the functional components of the flash command engine shown in FIG. 6A.

도 7은 모듈러 커맨드 스트럭처를 사용하는, 제어기로부터의 페이지 읽기(Page Read) 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.FIG. 7 is a flowchart illustrating a process performed by a page read command from a controller, using a modular command structure.

도 8은 모듈러 커맨드 스트럭처를 사용하는, 플래시 메모리로부터의 세트 웨이트(set wait) 기간이 있는 페이지 읽기 동작의 타이밍을 예시한다.8 illustrates the timing of a page read operation with a set wait period from flash memory using a modular command structure.

도 9는 모듈러 커맨드 스트럭처를 사용하는, 상태 요청이 있는 플래시 메모리 장치로부터의 페이지 읽기 동작의 타이밍을 예시한다.9 illustrates the timing of a page read operation from a flash memory device with a status request, using a modular command structure.

도 10은 모듈러 커맨드 스트럭처를 사용하는, 제어기로부터의 페이지 프로그램 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.10 is a flowchart illustrating a process performed by a page program command from a controller, using a modular command structure.

도 11은 모듈러 커맨드 스트럭처를 사용하는, 단일 데이터 입력에 의한 플래시 메모리 장치로부터의 페이지 프로그램 동작의 타이밍을 예시한다.11 illustrates the timing of a page program operation from a flash memory device with a single data input, using a modular command structure.

도 12는 모듈러 커맨드 스트럭처를 사용하는, 2개의 데이터 입력이 있는 플래시 메모리 장치로부터의 페이지 프로그램 동작의 타이밍을 예시한다.12 illustrates the timing of a page program operation from a flash memory device with two data inputs using a modular command structure.

도 13은 모듈러 커맨드 스트럭처를 사용하는, 제어기로부터의 블록 삭제 커 맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.13 is a flowchart illustrating a process performed by a block erase command from a controller using a modular command structure.

도 14는 모듈러 커맨드 스트럭처를 사용하는, 플래시 메모리 장치로부터 삭제하는 단일 블록 어드레스가 있는 블록 삭제 동작의 타이밍을 예시한다.Figure 14 illustrates the timing of a block erase operation with a single block address for erasing from a flash memory device using a modular command structure.

도 15는 모듈러 커맨드 스트럭처를 사용하는, 플래시 메모리 장치로부터 삭제하는 2개의 블록 어드레스가 있는 블록 삭제 동작의 타이밍을 예시한다.Figure 15 illustrates the timing of a block erase operation with two block addresses to delete from a flash memory device using a modular command structure.

도 16은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 제어기로부터의 동시 페이지 읽기 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.16 is a flowchart illustrating a process performed by a simultaneous page read command from a controller for two memory banks of the same flash memory device using a modular command structure.

도 17은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 동시 페이지 읽기 동작의 플래시 메모리로부터의 타이밍을 예시한다.FIG. 17 illustrates the timing from flash memory of a concurrent page read operation for two memory banks of the same flash memory device using a modular command structure.

도 18은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 제어기로부터의 동시 페이지 프로그램 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.18 is a flowchart illustrating a process performed by concurrent page program commands from a controller for two memory banks of the same flash memory device using a modular command structure.

도 19는 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 동시 페이지 프로그램 동작의 플래시 메모리로부터의 타이밍을 예시한다.19 illustrates the timing from flash memory of a concurrent page program operation for two memory banks of the same flash memory device using a modular command structure.

도 20은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 제어기로부터의 동시 블록 삭제 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.20 is a flowchart illustrating a process performed by a concurrent block erase command from a controller for two memory banks of the same flash memory device using a modular command structure.

도 21은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 동시 블록 삭제 동작의 플래시 메모리로부터의 타이밍을 예시한다.Figure 21 illustrates the timing from flash memory of a concurrent block erase operation for two memory banks of the same flash memory device using a modular command structure.

도 22는 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 제어기로부터의 인터리브(interleave)된 페이지 읽기와 페이지 프로그램 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.FIG. 22 is a flowchart illustrating a process performed by interleaved page reads and page program commands from a controller for two memory banks of the same flash memory device using a modular command structure.

도 23은 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 인터리브된 페이지 읽기와 페이지 프로그램 동작의 플래시 메모리로부터의 타이밍을 예시한다.FIG. 23 illustrates the timing from flash memory of interleaved page read and page program operations for two memory banks of the same flash memory device using a modular command structure.

도 24는 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 제어기로부터의 중지된 그리고 재개된 페이지 읽기와 페이지 프로그램 커맨드에 의해 수행되는 프로세스를 예시하는 플로우차트이다.FIG. 24 is a flowchart illustrating a process performed by a paused and resumed page read and page program commands from a controller for two memory banks of the same flash memory device using a modular command structure.

도 25는 모듈러 커맨드 스트럭처를 사용하는, 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 대한 중지된 그리고 재개된 페이지 읽기와 페이지 프로그램 동작의 플래시 메모리로부터의 타이밍을 예시한다.FIG. 25 illustrates timing from flash memory of paused and resumed page read and page program operations for two memory banks of the same flash memory device using a modular command structure.

도 26은 각기 다중 메모리 뱅크를 갖는, 다중 플래시 메모리 장치에 대한 인터리브된 그리고 동시의 페이지 읽기, 블록 삭제, 페이지 프로그램 및 페이지-쌍 삭제 커맨드/동작의 예를 예시한다.FIG. 26 illustrates an example of interleaved and concurrent page read, block delete, page program and page-pair erase commands / operations for multiple flash memory devices, each having multiple memory banks.

도 27은 각기 다중 메모리 뱅크를 갖는, 다중 플래시 메모리 장치에 대한 인터리브된 그리고 동시의 페이지 읽기 커맨드/동작의 예를 예시한다.27 illustrates an example of interleaved and concurrent page read commands / operations for multiple flash memory devices, each having multiple memory banks.

도 28은 각기 다중 메모리 뱅크를 갖는, 다중 플래시 메모리 장치에 대한 인터리브된 그리고 동시에 중지되고 재개된 페이지 읽기, 블록 삭제, 페이지 프로그램 및 커맨드/동작의 예를 예시한다.FIG. 28 illustrates an example of interleaved and simultaneously suspended and resumed page reads, block erases, page programs and commands / operations for multiple flash memory devices, each having multiple memory banks.

견본 실시예들의 하기의 상세한 설명에서는, 이 명세서의 일부를 형성하고 특정 견본 실시예들이 예시되는 첨부 도면에 대해 언급된다. 이들 실시예들은 당업자가 본 발명을 실시할 수 있도록 충분히 상세하게 기술되었고, 본 발명의 권리범위로부터 벗어남 없이 논리적, 구조적, 전기적 그리고 다른 변형들이 만들어 질 수 있으며 다른 실시예들이 사용될 수 있다는 것이 이해된다. 따라서, 하기의 상세한 설명은 한정의 의미를 갖지 않는다.In the following detailed description of the example embodiments, reference is made to the accompanying drawings which form a part hereof and in which particular example embodiments are illustrated. These embodiments have been described in sufficient detail to enable those skilled in the art to practice the invention, and it is understood that logical, structural, electrical and other modifications can be made and other embodiments may be used without departing from the scope of the invention. . The following detailed description, therefore, is not to be taken in a limiting sense.

반도체 메모리 장치들은 종종 대용량 메모리 시스템을 형성하기 위해 상호 연결된다. 도 1은 본 발명의 실시예들이 적용될 수 있는 시스템을 예시한다. 도 1을 참조하여 보면, 그 내부에 프로세서(103)를 가진 호스트 시스템(102)은, 메모리 시스템을 제어하기 위한 메모리 시스템(106)과 제어기(104)를 포함하는 시스템에 연결된다. 메모리 시스템(106)은 적어도 하나의 메모리 장치(예컨대, 2개의 플래시 메모리 장치(107-0, 107-1)를 포함한다. 제어기(104)는 호스트 시스템(102)으로부터 요청을 수신하여 요청을 메모리 시스템(106)에 의해 해석될 수 있는 커맨드로 번역한다. 제어기(104)는 또한 호스트 시스템(102)에 의해 사용되는 메모리 시스템(106)에 대한 논리적 어드레스들을 메모리 시스템(106)의 물리적 어드레스로 번역한다. 제어기(104)는 메모리 시스템(106)에 저장될 데이터가 메모리 장 치(107-0, 107-1)간에 분배되는 것을 보장한다. 커맨드의 실행에 있어서의 에러를 체크하기 위해 에러 정정 코드(error correcting code; “ECC”)가 또한 제어기(104)에 의해 생성된다.Semiconductor memory devices are often interconnected to form a large memory system. 1 illustrates a system to which embodiments of the present invention may be applied. Referring to FIG. 1, a host system 102 having a processor 103 therein is connected to a system including a memory system 106 and a controller 104 for controlling the memory system. The memory system 106 includes at least one memory device (eg, two flash memory devices 107-0, 107-1.) The controller 104 receives a request from the host system 102 to store the request. Translate into commands that can be interpreted by the system 106. The controller 104 also translates logical addresses for the memory system 106 used by the host system 102 into physical addresses of the memory system 106. The controller 104 ensures that data to be stored in the memory system 106 is distributed among the memory devices 107-0 and 107-1.Error correction code to check for errors in the execution of the command. (error correcting code; “ECC”) is also generated by the controller 104.

도 2는 본 발명의 실시예들이 적용될 수 있는 시스템 구성의 예를 도시한다. 도 2를 참조하여 보면, 제어기(112)는 공통의 버스(114)를 통해 복수의 메모리 장치(예컨대, 4개의 플래시 메모리 장치(108-0 내지 108-3))를 포함하는 메모리 시스템과 통신한다. 제어기(112)는 공통의 버스(114)를 사용하여 메모리 장치(108-0 내지 108-3)의 내부로 그리고 메모리 장치(108-0 내지 108-3)의 외부로 데이터를 전송한다. 지정된 플래시 메모리 장치만이 칩 인에이블 신호(chip enable signal)를 주장하는 것에 의해 이 구성에 있어서 동시에 주장된다.2 shows an example of a system configuration to which embodiments of the present invention can be applied. Referring to FIG. 2, the controller 112 communicates with a memory system including a plurality of memory devices (eg, four flash memory devices 108-0 through 108-3) over a common bus 114. . The controller 112 uses a common bus 114 to transfer data into and out of the memory devices 108-0 through 108-3. Only the designated flash memory device is asserted simultaneously in this configuration by asserting a chip enable signal.

도 3은 본 발명의 실시예들이 적용될 수 있는 시스템 구성의 다른 예를 도시한다. 메모리 시스템은 직렬 연결된 메모리 장치들을 포함한다. 도 3을 참조하여 보면, 제어기(116)와 복수의 메모리 장치(예컨대, 4개의 플래시 메모리 장치(109-0 내지 109-3)를 포함하는 메모리 시스템이 루프(loop) 구조로 상호 연결된다. 메모리 장치(109-0 내지 109-3)가 직렬로 상호 연결되므로, 하나의 장치만이 제어기(116)를 통해 메모리 시스템에 도입되는 데이터와 메시지를 수신한다. 각각의 메모리 장치(109-0 내지 109-3)는 많아야 2개의 다른 메모리 장치(즉, 앞과 뒤의 장치들)에 연결된다. 상기와 같이, 메모리 시스템에 도입되는 데이터와 메시지는 다른 모든 메모리 장치를 통과해서 직렬 연결에 있어서의 최종 장치(109-3)에 도달한다.3 shows another example of a system configuration to which embodiments of the present invention can be applied. The memory system includes memory devices connected in series. Referring to FIG. 3, a memory system including a controller 116 and a plurality of memory devices (eg, four flash memory devices 109-0 to 109-3) are interconnected in a loop structure. Since devices 109-0 through 109-3 are interconnected in series, only one device receives data and messages that are introduced into the memory system through controller 116. Each memory device 109-0 through 109 -3) is connected to at most two different memory devices (ie, front and back devices) As described above, data and messages introduced into the memory system pass through all other memory devices and end up in a serial connection. Reach the device 109-3.

플래시 메모리 장치는 어떠한 타입의 플래시 메모리도 될 수 있다, 예컨대, NAND-, NOR-, AND-타입 플래시 메모리일 수 있다. 또한, 메모리 장치는 랜덤 액세스 메모리일 수 있다.The flash memory device may be any type of flash memory, for example NAND-, NOR-, AND-type flash memory. Also, the memory device may be a random access memory.

NAND 플래시 메모리 장치는 저비용, 고밀도 메모리를 제공하기 위해 일반적으로 상호 연결된다. 도 4는 NAND 플래시 장치(400)의 기능적 구성 요소들을 예시한다. NAND 플래시 장치(400)에 있어서, 커맨드, 어드레스, 및 데이터가 장치의 칩내의 공통 I/O 핀을 통해 다중화된다. NAND 플래시 장치(400)는 복수(n)의 삭제 가능 블록들을 가진 셀 어레이 스트럭처인 메모리 뱅크(402)를 갖는다. 각각의 삭제 가능 블록들은 복수(m)의 프로그램 가능 페이지들로 분할된다. 각각의 페이지들은 (j+K) 바이트로 이루어진다. 페이지들은, 일반적으로 에러 관리 기능을 위해 사용되는 분리된 k-바이트 및 데이터가 저장된 j-바이트 데이터 저장 영역으로 더 분할된다. 각 페이지는 일반적으로 2,112바이트를 포함하며, 그 중 2,048 바이트가 데이터 저장에 사용되고 64바이트가 에러 관리 기능을 위해 사용된다. 메모리 뱅크(402)는 페이지들에 의해 액세스된다. 도 4가 단일 메모리 뱅크(402)를 도시하지만, NAND 플래시 장치(400)는 하나 이상의 메모리 뱅크(402)를 가질 수 있다. 각각의 상기 메모리 뱅크(402)는 동시의 페이지 읽기, 페이지 프로그램, 페이지 삭제 및 블록 삭제 동작을 실행할 수도 있다.NAND flash memory devices are generally interconnected to provide low cost, high density memory. 4 illustrates the functional components of a NAND flash device 400. In NAND flash device 400, commands, addresses, and data are multiplexed through common I / O pins in the chip of the device. NAND flash device 400 has a memory bank 402 which is a cell array structure having a plurality (n) of erasable blocks. Each erasable block is divided into a plurality (m) of programmable pages. Each page consists of (j + K) bytes. The pages are further divided into j-byte data storage areas where separate k-bytes and data are typically used for error management functions. Each page typically contains 2,112 bytes, of which 2,048 bytes are used for data storage and 64 bytes are used for error management. The memory bank 402 is accessed by pages. Although FIG. 4 shows a single memory bank 402, the NAND flash device 400 may have one or more memory banks 402. Each of the memory banks 402 may execute simultaneous page read, page program, page erase and block erase operations.

메모리 뱅크(402)를 액세스하기 위한 커맨드는 제어기(예컨대, 도 3에 도시된 제어기(116))로부터 커맨드 레지스터(414)와 제어 로직부(416)에 의해 수신된다. 수신된 커맨드는 커맨드 레지스터(414)에 입력되어 실행까지 그곳에 남는다. 제어 로직부(416)는 커맨드를 메모리 뱅크(402)에 대하여 실행될 수 있는 형태로 변환한다. 커맨드는 일반적으로 칩의 외부 패키징상의, 상이한 커맨드를 표현하는데 사용될 수 있는, 상이한 핀들의 주장을 통해 NAND 플래시 장치(400)에 들어간다. 예를 들어, 커맨드는 칩 인에이블, 읽기 인에이블, 쓰기 인에이블, 및 쓰기 보호를 포함할 수 있다. 삭제 커맨드가 블록을 기초로 하여 실행되는 동안, 읽기 및 쓰기 커맨드가 페이지를 기초로 하여 실행된다.Commands for accessing the memory bank 402 are received by the command register 414 and the control logic section 416 from a controller (eg, the controller 116 shown in FIG. 3). The received command is entered into the command register 414 and remains there until execution. The control logic section 416 converts the command into a form that can be executed on the memory bank 402. Commands generally enter NAND flash device 400 through the assertion of different pins, which can be used to represent different commands on the chip's external packaging. For example, the command may include chip enable, read enable, write enable, and write protection. While the delete command is executed based on the block, the read and write commands are executed based on the page.

커맨드가 커맨드 레지스터(414)와 제어 로직부(416)에 의해 수신되면, 커맨드가 속하는 메모리 뱅크(402)의 페이지에 대한 어드레스가 출력 드라이버(output driver)(412)에 의해 수신된다. 어드레스는, 어드레스 버퍼 및 래치부(latch)(418)에 제공된 다음, 어드레스에 의해 지시되는 페이지를 액세스하기 위해 제어 및 프리디코더(predecoder)(406), 검출 증폭기(S/A) 및 데이터 레지스터(404)와, 로우 디코더(row decoder)(408)에 제공된다. 데이터 레지스터(404)는, NAND 플래시 장치(400)로부터의 출력을 위해, 그 다음에 I/O(입/출력) 버퍼 및 래치(410)에 제공되고 그 다음에 출력 드라이버(414)에 제공되는, 완전한 페이지를 수신한다.When the command is received by the command register 414 and the control logic section 416, the address for the page of the memory bank 402 to which the command belongs is received by the output driver 412. The address is provided to the address buffer and latch 418, and then controlled and predecoder 406, detection amplifier (S / A) and data register (to access the page indicated by the address). 404 and a row decoder 408. The data register 404 is then provided to an I / O (in / out) buffer and latch 410 and then to an output driver 414 for output from the NAND flash device 400. Receive a complete page.

예를 들어, 읽기 커맨드는 커맨드 레지스터(414)와 제어 로직부(416)에 의해 수신되며 동반하는 어드레스는 어드레스 버퍼 및 래치(418)에 의해 수신된다. 어드레스 버퍼 및 래치(418)는 어드레스가 위치된 페이지를 판정하여 페이지에 대응하는 로우 어드레스(들)를 로우 디코더(408)에 제공한다. 대응하는 로우가 활성화된다. 데이터 레지스터 및 S/A(404)는 페이지를 검출하여 페이지로부터의 데이터 를 데이터 레지스터(404)내로 전송한다. 일단 전체 페이지로부터의 데이터가 데이터 레지스터에 전송되고 나면, I/O 버퍼 및 래치(410)와 출력 드라이버(412)를 통해 장치로부터 데이터가 순차적으로 읽힌다.For example, a read command is received by command register 414 and control logic 416 and the accompanying address is received by address buffer and latch 418. The address buffer and latch 418 determine the page on which the address is located and provides the row decoder 408 with the row address (s) corresponding to the page. The corresponding row is activated. The data register and S / A 404 detect the page and transfer the data from the page into the data register 404. Once the data from the entire page has been transferred to the data register, the data is read sequentially from the device via the I / O buffer and latch 410 and output driver 412.

프로그램 커맨드도 페이지를 기초로 하여 처리된다. 프로그램 커맨드는 커맨드 레지스터(414)와 제어 로직부(416)에 의해 수신되고, 동반하는 어드레스는 어드레스 버퍼(418)에 의해 수신되며, 입력 데이터는 출력 드라이버(412)에 의해 수신된다. 입력 데이터는 I/O 버퍼 및 래치(410)를 통해 데이터 레지스터(404)에 전송된다. 일단 모든 입력 데이터가 데이터 레지스터(404)에 있으면, 입력 데이터가 저장될 페이지가 입력 데이터와 프로그램된다.Program commands are also processed based on the page. The program command is received by the command register 414 and the control logic section 416, the accompanying address is received by the address buffer 418, and the input data is received by the output driver 412. Input data is transferred to data register 404 via I / O buffer and latch 410. Once all input data is in the data register 404, the page in which the input data is to be stored is programmed with the input data.

삭제 커맨드가 블록을 기초로 하여 처리된다. 삭제 커맨드는 커맨드 레지스터(414)와 제어 로직부(416)에 의해 수신되며, 블록 어드레스는 어드레스 버퍼(418)에 의해 수신된다.The delete command is processed based on the block. The delete command is received by the command register 414 and the control logic section 416, and the block address is received by the address buffer 418.

전형적인 NAND 플래시 메모리 커맨드는 2 사이클의 커맨드를 사용하여 커맨드의 로딩(loading)을 완료한다. 표 1은 예시의 NAND 플래시 메모리의 커맨드 세트를 도시한다.A typical NAND flash memory command uses two cycles of commands to complete loading of the command. Table 1 shows a command set of example NAND flash memories.

기능function 1번째 사이클1st cycle 2번째 사이클2nd cycle 읽기read 00h00h 30h30h 카피 백(Copy Back)용 읽기Read for Copy Back 00h00h 35h35h ID 읽기ID read 90h90h -- 리셋reset FFhFFh -- 페이지 프로그램Page programs 80h80h 10h10h 캐시(Cache) 프로그램Cache program 80h80h 15h15h 카피 백 프로그램Copyback program 85h85h 10h10h 블록 삭제Delete block 60h60h D0hD0h 랜덤 데이터 입력Random data input 85h85h -- 랜덤 데이터 출력Random data output 05h05h E0hE0h 상태 읽기Read status 70h70h

표 1: NAND 플래시의 커맨드 세트Table 1: Command Sets for NAND Flash

2개의 커맨드 사이클에 있어서 NAND 플래시 메모리에 발행되는 많은 커맨드들은 하나의 프로시져(procedure)로서, 그리고 파기되거나 인터럽트되거나 중지되거나 재개될 수 없는 것으로서 간주된다. NAND 플래시 메모리가 이들 2개의 커맨드 사이클을 수신하는 경우에, 그것은 리셋 및 읽기 상태 커맨드외의 어떠한 추가적인 커맨드도 받아들일 수 없다. 다중 메모리 뱅크를 가진 플래시 메모리 장치에 있어서, 이 커맨드 스트럭처는, 다른 뱅크가 커맨드를 처리하는 동안 하나의 뱅크가 비활동인 채로 남아있으므로, 뱅크의 사용을 제한한다. 긴 내부 핵심 동작을 갖는 커맨드가 실행되고 있는 경우에, 낮은 입/출력 이용을 초래한다(예컨대, 20㎲의 페이지 읽기, 200㎲의 페이지 프로그램 및 1.5ms의 블록 삭제). 직렬 상호 연결된 다중 플래시 메모리를 가진 시스템에 있어서, 이 커맨드 스트럭처는, 커맨드를 처리하고 있는 플래시 메모리 장치가 그 처리가 완료될 때까지 다음의 플래시 메모리에 다른 커맨드를 전하지 못하므로, 전체 시스템의 처리 속도를 감소시킬 수 있다.Many commands issued to NAND flash memory in two command cycles are considered as one procedure and as being unable to be discarded, interrupted, stopped or resumed. If the NAND flash memory receives these two command cycles, it cannot accept any additional commands other than reset and read status commands. In a flash memory device having multiple memory banks, this command structure limits the use of banks because one bank remains inactive while another bank processes the command. If a command with a long internal key operation is being executed, it results in low input / output usage (eg, 20 ms page read, 200 ms page program, and 1.5 ms block erase). In a system with multiple flash memories interconnected in series, this command structure speeds up the entire system because the flash memory device that is processing the command does not pass other commands to the next flash memory until the processing is completed. Can be reduced.

본 발명의 실시예에 따른 시스템에 적용될 수 있는 커맨드 스트럭처의 예는, 바이트(들)를 갖는 커맨드 필드(command field)를 포함한다. 예를 들어, 커맨드 필드는 장치와 뱅크 어드레스에 대한 1번째의 바이트 및 동작 코드에 대한 2번째의 바이트를 갖는다.An example of a command structure that can be applied to a system according to an embodiment of the present invention includes a command field with byte (s). For example, the command field has a first byte for the device and a bank address and a second byte for the operation code.

도 5A는 NAND 플래시 메모리와 사용하기 위한 모듈러 커맨드 스트럭처의 예를 도시한다. 이 특정 예에 있어서, 모듈러 커맨드 스트럭처는 바이트 기초이다. 도 5A를 참조하여 보면, 모듈러 커맨드 스트럭처(500)는, 각기 복수의 비트(bit)를 갖는, 제1 및 2번째 바이트(byte)(502, 508)(바이트 1 및 바이트 2)를 포함한다. 이 특정 예에 있어서, 커맨드 스트럭처의 제1 및 2번째 바이트(502, 508)는 8-비트 어드레스와 8-비트 동작 코드를 각각 포함한다. 1번째 바이트(502)는 목적지의 메모리 장치에 대한 6-비트 어드레스(504)를 갖는다. 6-비트 어드레스(504)는, 시스템이 복수의 메모리 장치를 포함하는 메모리 장치들 사이를 구별하는데 사용된다. 1번째 바이트(502)는 또한, 복수의 메모리 뱅크를 갖는 메모리 장치와 사용하기 위한 메모리 장치의 메모리 뱅크용의 2-비트 어드레스(506)를 포함한다. 커맨드 스트럭처의 2번째 바이트(508)는 메모리 장치에 의해 실행될 커맨드를 지시하는 8-비트 동작 코드(510)를 포함한다. 표 2는 동작 코드의 예를 예시한다.5A shows an example of a modular command structure for use with a NAND flash memory. In this particular example, the modular command structure is byte based. Referring to FIG. 5A, the modular command structure 500 includes first and second bytes 502, 508 (byte 1 and byte 2), each having a plurality of bits. In this particular example, the first and second bytes 502, 508 of the command structure include an 8-bit address and an 8-bit operation code, respectively. The first byte 502 has a six-bit address 504 for the memory device of the destination. The six-bit address 504 is used by the system to distinguish between memory devices that include a plurality of memory devices. The first byte 502 also includes a 2-bit address 506 for the memory bank of the memory device for use with the memory device having a plurality of memory banks. The second byte 508 of the command structure includes an 8-bit operation code 510 that indicates the command to be executed by the memory device. Table 2 illustrates an example of operation codes.

2번째 바이트 (OP7-OP0)2nd byte (OP7-OP0) 커맨드Command 어드레스 입력Address input 00 00 00 00 00 00 00 00 페이지 읽기(00h)Page read (00h) 로우low 00 00 00 00 00 00 1One 1One 버스트(Burst) 데이터 읽기(03h)Burst data read (03h) 칼럼column 00 00 00 00 00 1One 00 1One 카피용 페이지 읽기(05h)Read copy page (05h) 로우low 00 00 00 00 1One 00 00 1One 버스트 데이터 로드 시작(09h)Start Burst Data Load (09h) 칼럼column 00 00 00 00 1One 00 1One 00 버스트 데이터 로드(0Ah)Burst Data Load (0Ah) 칼럼column 00 00 00 00 1One 1One 1One 1One 페이지 프로그램(0Fh)Page program (0Fh) 로우low 00 00 00 1One 00 00 1One 00 블록 삭제를 위한 어드레스 입력(12h)Address input for block deletion (12h) 로우low 00 00 00 1One 00 1One 1One 1One 블록 삭제(17h)Delete block (17h) 없음none 00 00 00 1One 00 1One 00 00 페이지-쌍 삭제를 위한 어드레스 입력(14h)Address input for page-pair deletion (14h) 로우low 00 00 00 1One 1One 1One 1One 00 페이지-쌍 삭제(1Eh)Delete page-pair (1Eh) 없음none 00 00 1One 1One 00 00 1One 1One 장치 상태 읽기(33h)Read device status (33h) 없음none 00 00 1One 1One 00 1One 00 1One 장치 ID 읽기(35h)Read device ID (35h) 없음none 00 00 1One 1One 1One 00 00 1One 장치 어드레스 쓰기(39h)Write device address (39h) 없음none 00 00 1One 1One 1One 00 1One 00 구성 레지스터 쓰기(3Ah)Write Configuration Register (3Ah) 없음none 00 00 1One 1One 1One 1One 1One 1One 리셋(3Fh)Reset (3Fh) 없음none

표 2: 2번째 바이트에 대한 동작 코드의 예Table 2: Example of Action Codes for the 2nd Byte

커맨드 스트럭처는 많은 변형들을 갖는다. 2-바이트 커맨드 스트럭처의 다른 예는, 1번째 바이트가 8-비트 장치 어드레스(DA)를 갖고 2번째 바이트가 4-비트 OP 코드 및 4-비트 뱅크 어드레스(BA)를 갖는 것이다.The command structure has many variations. Another example of a two-byte command structure is that the first byte has an 8-bit device address (DA) and the second byte has a 4-bit OP code and a 4-bit bank address (BA).

도 5B는 NAND 플래시 메모리와 사용하기 위한 모듈러 커맨드 스트럭처의 다른 예를 도시한다. 도 5B를 참조하여 보면, 커맨드 스트럭처(520)는 복수의 바이트를 포함한다. 예시된 예에 있어서, 커맨드 스트럭처(520)는 2-바이트 모듈러 커맨드 스트럭처(바이트 1 및 2)와 더불어 3-바이트 로우 어드레스(522)(바이트 3 내지 5)를 갖는다. 도 5B에 있어서의 2-바이트 모듈러 커맨드의 일부의 스트럭처는 도 5A에 도시된 2-바이트 모듈러 커맨드 스트럭처와 일치한다. 1번째 바이트(502)는 목적지의 메모리 장치용의 6-비트 어드레스(504)와 메모리 뱅크용의 2-비트 어드레스(506)를 갖는다. 2번째 바이트(508)는 8-비트 동작 코드(510)를 갖는다. 3-바이트 로우 어드레스(522)는 1번째 바이트(502)에서의 표시된 메모리 뱅크에서의 로우(들)에 대한 24-비트 어드레스(524)를 제공한다. 24-비트(즉, 3-바이트) 로우 어드레스(524)는, 커맨드가 실행될 로우 위치를 지정하는데 로우 어드레스가 요구되는 커맨드를 위해서 사용된다.5B shows another example of a modular command structure for use with a NAND flash memory. Referring to FIG. 5B, the command structure 520 includes a plurality of bytes. In the illustrated example, the command structure 520 has a 3-byte row address 522 (bytes 3 to 5) in addition to the 2-byte modular command structures (bytes 1 and 2). The structure of a part of the 2-byte modular command in FIG. 5B coincides with the 2-byte modular command structure shown in FIG. 5A. The first byte 502 has a six-bit address 504 for the destination memory device and a two-bit address 506 for the memory bank. The second byte 508 has an 8-bit operation code 510. 3-byte row address 522 provides a 24-bit address 524 for the row (s) in the indicated memory bank at first byte 502. The 24-bit (ie 3-byte) row address 524 is used for commands where a row address is required to specify the row position where the command is to be executed.

도 5C는 NAND 플래시 메모리와 사용하기 위한 모듈러 커맨드 스트럭처의 다른 예를 도시한다. 도 5C를 참조하여 보면, 커맨드 스트럭처(540)는 복수의 바이트를 포함한다. 예시된 예에 있어서, 커맨드 스트럭처(540)는 2-바이트 모듈러 커맨드 스트럭처(바이트 1 및 2)와 더불어 2-바이트 칼럼 어드레스(542)(바이트 3 내지 4)를 갖는다. 도 5C에 있어서의 2-바이트 모듈러 커맨드의 일부의 스트럭처는, 목적지의 메모리 장치용의 6-비트 어드레스(504)와 메모리 뱅크용의 2-비트 어드레스(506)를 갖는 1번째 바이트(502)가 있는 도 5B에 있어서의 2-바이트 모듈러 커맨 드와 일치한다. 2번째 바이트(508)는 8-비트 동작 코드(510)를 갖는다. 2-바이트 어드레스(542)는 1번째 바이트(502)에서의 표시된 메모리 뱅크에서의 칼럼(column)(들)에 대한 16-비트 어드레스(544)를 제공한다. 16-비트(즉, 2-바이트) 칼럼 어드레스(544)는, 커맨드가 실행될 칼럼 위치를 지정하는데 칼럼 어드레스가 요구되는 커맨드를 위해서 사용된다.5C shows another example of a modular command structure for use with a NAND flash memory. Referring to FIG. 5C, the command structure 540 includes a plurality of bytes. In the illustrated example, command structure 540 has a two-byte modular command structure (bytes 1 and 2) as well as a two-byte column address 542 (bytes 3-4). Some of the structures of the 2-byte modular command in FIG. 5C include a first byte 502 having a 6-bit address 504 for the destination memory device and a 2-bit address 506 for the memory bank. This corresponds to the two-byte modular command in FIG. 5B. The second byte 508 has an 8-bit operation code 510. The 2-byte address 542 provides the 16-bit address 544 for the column (s) in the indicated memory bank at the first byte 502. A 16-bit (ie 2-byte) column address 544 is used for commands where a column address is required to specify the column location where the command is to be executed.

커맨드 스트럭처(500, 520, 540)는 메모리 장치에 송신되는 커맨드에 좌우된다. 표 2에 지시된 바와 같이, 일부의 커맨드는, 커맨드와 공급될 추가적인 어드레스들(즉, 로우 또는 칼럼 어드레스들)을 요구한다. 따라서, 커맨드 스트럭처(500, 520, 540)는 2번째 바이트(508)내의 동작 코드에 좌우된다.The command structures 500, 520, and 540 depend on the commands sent to the memory device. As indicated in Table 2, some commands require additional addresses (i.e. row or column addresses) to be supplied with the command. Thus, command structures 500, 520, and 540 depend on the operation code in second byte 508.

도 1 및 5A-5C를 참조하여 보면, 제어기(104)는 호스트 시스템(102)으로부터의 요청을, 그 후에 플래시 메모리 장치에 의해 해석될 수 있는 커맨드 스트럭처(500, 520, 540) 중 하나로 번역한다. 동작 코드(510)에 의거하여, 제어기(104)는 로우 어드레스, 칼럼 어드레스, 또는 무(無) 어드레스가 메모리 장치에 공급될지의 여부를 판정한다. 제어기(104)는 동작을 실행하기 위해 메모리 장치(107-0, 107-1)에 의해 사용되는 커맨드를 형성한다.1 and 5A-5C, the controller 104 translates a request from the host system 102 into one of the command structures 500, 520, and 540 that can then be interpreted by the flash memory device. . Based on the operation code 510, the controller 104 determines whether a row address, column address, or no address is supplied to the memory device. The controller 104 forms the commands used by the memory devices 107-0 and 107-1 to perform operations.

각각의 커맨드 스트럭처(500, 520, 540)는 메모리 장치 어드레스(504)와 뱅크 어드레스(506)의 양쪽을 포함한다. 따라서, 커맨드의 처리는 상이한 메모리 장치들에 의해 파기되고 중지될 수 있다. 또한, 1번째 바이트(502)가 모든 어드레싱(addressing) 정보를 포함하므로, 각 메모리 장치는, 2번째 바이트(508)에서의 표시된 커맨드가 그들을 향한 것인지 또는 다음 메모리 장치로 통과될 것인지의 여 부를 매우 신속하게 평가할 수 있다.Each command structure 500, 520, 540 includes both a memory device address 504 and a bank address 506. Thus, the processing of the command can be discarded and stopped by different memory devices. In addition, since the first byte 502 contains all addressing information, each memory device can determine whether the indicated command at the second byte 508 is directed to them or passed to the next memory device. Can be evaluated quickly.

모듈러 커맨드 스트럭처(500, 520, 540)가 NAND 플래시 메모리 장치에 사용될 수 있지만, 하기의 예들은, 예로서 HLNAND™ (HyperLink NAND) 플래시 장치를 사용하는, 모듈러 커맨드 스트럭처(500, 520, 540)에서의 다양한 커맨드의 처리를 기술한다. HLNAND™ 플래시 장치는 미국 특허 가출원 제60/839,329호(2006년 8월 22일 출원)에 상세히 기술되어 있다.Although modular command structures 500, 520, 540 can be used in NAND flash memory devices, the following examples are used in modular command structures 500, 520, 540, using, for example, HLNAND ™ (HyperLink NAND) flash devices. Describes the processing of various commands. HLNAND ™ flash devices are described in detail in US Provisional Application No. 60 / 839,329, filed Aug. 22, 2006.

HLNAND™ 플래시 장치를 위한, 동작 코드에서의 특정 커맨드에 따른 모듈러 커맨드 스트럭처(500, 520, 540)의 모범적인 입력 순서는 표 3에 도시된다. 모든 커맨드, 어드레스, 및 데이터는, 가장 중요한 비트(most significant bit; “MSB”)와 시작하여, 장치 내부로 그리고 장치 외부로 시프트(shift)된다. HLNAND™ 플래시 장치에 있어서, 직렬 데이터 입력(SDn)은, 직렬 데이터 입력 인에이블(SDE)이 “하이(high)”인 동안 정극성 또는 부극성 클럭 에지에서 샘플(sample)된다. 표 3에 도시된 특정 예에 있어서, 각 커맨드는, 도 5A 내지 5C에 도시된 커맨드 스트럭처(500, 520, 540)마다 “TDA”(1번째 바이트)만큼 표현되는 1-바이트 목표 어드레스 및 표현되는 1-바이트 동작 코드(2번째 바이트)를 포함한다. 일단 SCE가 논리“하이”로 진행하면, 1-바이트 어드레스가 시프트되고 뒤 이어서 1-바이트 동작 코드가 시프트된다. 1번째 바이트가 입력되는 쓰기 장치 어드레스가 페이지 읽기 커맨드인 것은 예외이다. 커맨드에 따라서, 3-바이트 로우 어드레스가 표 3에서의 “R”로서 표현되거나 2-바이트 칼럼 어드레스가 표 3에서의 “C”로서 표현되거나 둘 중에 하나이다(3번째 내지 5번째 바이트). 만약, 데이터가 플래시 장치 에 제공되면, 데이터는 (적절하게) 어떤 로우나 칼럼 어드레스의 후의 장치내로 입력되고 표 3에서의 “D”로 표현된다.For HLNAND ™ flash devices, an exemplary input order of modular command structures 500, 520, 540 according to specific commands in the operation code is shown in Table 3. All commands, addresses, and data are shifted into and out of the device, starting with the most significant bit (“MSB”). In HLNAND ™ flash devices, the serial data input (SDn) is sampled at the positive or negative clock edge while the serial data input enable (SDE) is “high”. In the specific example shown in Table 3, each command is represented by a one-byte target address expressed by “TDA” (first byte) and represented by the command structures 500, 520, and 540 shown in Figs. 5A to 5C. Contains a one-byte action code (second byte). Once the SCE advances to a logic "high", the one-byte address is shifted followed by the one-byte operation code. The exception is that the write device address to which the first byte is input is a page read command. Depending on the command, the three-byte row address is represented as "R" in Table 3 or the two-byte column address is represented as "C" in Table 3, or either (third to fifth bytes). If data is provided to a flash device, the data is (appropriately) entered into the device after any row or column address and represented by “D” in Table 3.

커맨드Command 입력 바이트 넘버Input byte number 1st 1 st 2nd 2 nd 3rd 3 rd 4th 4 th 5th 5 th 6th 6 th 7th 7 th 2115th 2115 th 2116th 2116 th 페이지 읽기Read page TDATDA 00h00h RR RR RR -- -- -- -- -- 버스트 데이터 읽기Read burst data TDATDA 03h03h CC CC -- -- -- -- -- -- 카피용 페이지 읽기Read copy page TDATDA 05h05h RR RR RR -- -- -- -- -- 버스트 데이터 로드 시작Start to load burst data TDATDA 09h09h CC CC DD DD DD DD DD 버스트 데이터 로드Burst Data Load TDATDA 0Ah0Ah CC CC DD DD DD DD DD 페이지 프로그램Page programs TDATDA 0Fh0Fh RR RR RR -- -- -- -- -- 블록 삭제용 어드레스 입력Address input for block deletion TDATDA 12h12h RR RR RR -- -- -- -- -- 블록 삭제Delete block TDATDA 17h17h -- -- -- -- -- -- -- -- 페이지-쌍 삭제용 어드레스 입력Input address for page-pair deletion TDATDA 14h14h RR RR RR -- -- -- -- -- 페이지-쌍 삭제Delete page-pair TDATDA 1Eh1Eh -- -- -- -- -- -- -- -- 장치 상태 읽기 Read device status TDATDA 33h33h -- -- -- -- -- -- -- -- 장치 ID 읽기 Read device ID TDATDA 35h35h -- -- -- -- -- -- -- -- 장치 어드레스 쓰기 Write device address 00h00h 39h39h -- -- -- -- -- -- -- -- 구성 레지스터 쓰기 Write configuration register TDATDA 3Ah3Ah DD -- -- -- -- -- -- -- 리셋reset TDATDA 3Fh3Fh -- -- -- -- -- -- -- --

표 3: 모듈러 커맨드 입력 순서Table 3: Modular Command Input Order

다양한 동작들에 대한 모듈러 커맨드 스트럭처(500, 520, 540)를 사용하는 HLNAND™ 플래시 장치의 동작예가 아래에 기술된다. 하기의 예는 메모리 장치들(예컨대, 도 1 내지 3에 도시된 메모리 장치들)을 처리하는 것을 예시하는 타이밍도를 포함한다. 타이밍도의 신호들은, 예로서, HLNAND™ 플래시 장치용으로 도시된다. 칩 인에이블(CE#) 신호는, 이 신호가 “로(low)”일 때 메모리 장치가 인에이블되는 것을 나타낸다. 직렬 데이터 입력(SDn) 신호는 커맨드, 어드레스, 및 입력 데이터를 나타낸다. 직렬 데이터 출력(SQn) 신호는 읽기 동작 동안의 출력 데이터의 전송을 나타낸다. 직렬 데이터 입력 인에이블(SDE) 신호는, 이 신호가 “하이”일 때, 커맨드 어드레스와 입력 데이터(SDn)가 장치내로 래치되도록, 데이터 입력을 제어한다. 직렬 데이터 출력 인에이블 신호(SDE)는, 이 신호가 “하이”일 때 출력(SQn)을 인에이블시킨다.An example of operation of an HLNAND ™ flash device using modular command structures 500, 520, 540 for various operations is described below. The following example includes a timing diagram illustrating processing memory devices (eg, the memory devices shown in FIGS. 1-3). The signals in the timing diagram are shown, for example, for an HLNAND ™ flash device. The chip enable (CE #) signal indicates that the memory device is enabled when this signal is " low. &Quot; Serial data input (SDn) signals represent commands, addresses, and input data. The serial data output (SQn) signal represents the transfer of output data during a read operation. The serial data input enable (SDE) signal controls the data input such that when this signal is "high", the command address and input data SDn are latched into the device. The serial data output enable signal SDE enables the output SQn when this signal is “high”.

장치 어드레스들이 시스템 동작의 시작시에 직렬 연결된 장치들(예컨대, 도 3에 도시된 구성)의 모두에 할당된 경우에, 커맨드의 1번째 바이트는 쓰기 장치 어드레스를 필요로 하지 않는다. 순차적 장치 어드레스의 할당은 미국 특허 가출원 제60/787,710호(2006년 3월 28일 출원), 미국 특허 가출원 제60/802,645호(2006년 3월 23일 출원)에 개시되어 있다.When device addresses are assigned to all of the serially connected devices (eg, the configuration shown in FIG. 3) at the start of system operation, the first byte of the command does not require a write device address. Assignment of sequential device addresses is disclosed in U.S. Provisional Application No. 60 / 787,710, filed Mar. 28, 2006, and U.S. Provisional Application No. 60 / 802,645, filed March 23, 2006.

도 6A는 본 발명의 실시예들이 적용될 수 있는 플래시 제어기의 예를 도시한다. 플래시 제어기는 도 1, 2, 및 3에 도시된 제어기들(104, 112, 116)에 대응한다.6A shows an example of a flash controller to which embodiments of the present invention can be applied. The flash controller corresponds to the controllers 104, 112, 116 shown in FIGS. 1, 2, and 3.

도 6A를 참조하여 보면, 플래시 제어기(310)는 중앙 처리 장치(CPU)(312)를 포함하며; 메모리(314)는 랜덤 액세스 메모리(RAM)(316)와 읽기 전용 메모리(ROM)(318)를 갖는다. 또한, 플래시 제어기(310)는 플래시 커맨드 엔진(322), 에러 정정 코드(ECC) 관리기(324) 및 플래시 인터페이스(326)를 포함한다. 게다가, 플래시 제어기(310)는 호스트 인터페이스 제어기(332)와 호스트 인터페이스(334)를 포함한다. CPU(312), 메모리(314), 플래시 커맨드 엔진(322) 및 호스트 인터페이스 제어기(332)는 공통의 버스(330)를 통해 연결된다. 호스트 인터페이스(334)는 버스나, 연결 링크(link), 또는 인터페이스 등(예컨대, ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), USB(Universal Serial Bus))을 통한 외부 장치로의 연결을 위한 것이다. 호스트 인터페이스(334)는 호스트 인터페이스 제어기(332)에 의해 제어된다. CPU(312)는 ROM(318)에 저장 된 명령들과 RAM(316)에 저장된 처리된 데이터와 동작한다. 플래시 커맨드 엔진(322)은 커맨드를 해석하고 플래시 제어기(310)는 플래시 장치 인터페이스(326)를 통해 플래시 장치의 동작을 제어한다. ECC 관리기(324)가 ECC를 생성하고, ECC 검증이 수행된다. 에러의 경우에, 에러 메시지가 생성된다. 플래시 제어기(310)는 칩상의 시스템(system on chip), 패키지내의 시스템(system in package) 또는 다중 칩으로서 구성될 수 있다.Referring to FIG. 6A, the flash controller 310 includes a central processing unit (CPU) 312; Memory 314 has random access memory (RAM) 316 and read-only memory (ROM) 318. The flash controller 310 also includes a flash command engine 322, an error correction code (ECC) manager 324, and a flash interface 326. In addition, the flash controller 310 includes a host interface controller 332 and a host interface 334. CPU 312, memory 314, flash command engine 322, and host interface controller 332 are connected via a common bus 330. The host interface 334 may be externally connected via a bus, a connection link, or an interface (eg, Advanced Technology Attachment (ATA), Parallel ATA (PATA), Serial ATA (SATA), or Universal Serial Bus (USB)). For connection to the device. The host interface 334 is controlled by the host interface controller 332. The CPU 312 operates with instructions stored in the ROM 318 and processed data stored in the RAM 316. The flash command engine 322 interprets the commands and the flash controller 310 controls the operation of the flash device via the flash device interface 326. ECC manager 324 generates ECC, and ECC verification is performed. In case of an error, an error message is generated. The flash controller 310 may be configured as a system on chip, a system in package, or multiple chips.

도 6B는 플래시 장치에 커맨드를 발행할 때, 도 6A의 플래시 커맨드 엔진(322)의 기능적 구성 요소의 예를 도시한다. 도 1, 6A 및 6B를 참조하여 보면, 플래시 커맨드 엔진(322)은 호스트 시스템(102)으로부터의 요청을 플래시 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 해석한다. 따라서, 플래시 제어기(310)는 플래시 메모리 장치에 액세스하기 위한 요청을 도 5A 내지 5C에 도시된 모듈러 커맨드 스트럭처를 사용하는 적어도 하나의 커맨드로 번역한다. 플래시 제어기(310)는 호스트 인터페이스 제어기(332)에 연결된 버스(330)와의 연결을 포함한다. 상기 연결은 플래시 메모리 장치에 액세스하기 위한 호스트 시스템(102)의 프로세서(103)로부터의 요청을 수신하기 위한 호스트 시스템(102)과의 통신을 가능케 한다. 플래시 제어기(310)는 플래시 메모리 장치와 통신되는 플래시 장치 인터페이스(326)도 포함한다. 플래시 장치 인터페이스(326)는 메모리 시스템의 플래시 메모리 장치에 커맨드를 발행하기 위한 다른 연결부로서 기능한다.6B shows an example of the functional components of the flash command engine 322 of FIG. 6A when issuing a command to the flash device. 1, 6A and 6B, the flash command engine 322 interprets a request from the host system 102 into a plurality of separable commands that can be interpreted by the flash memory device. Thus, the flash controller 310 translates the request to access the flash memory device into at least one command using the modular command structure shown in FIGS. 5A-5C. Flash controller 310 includes a connection with bus 330 connected to host interface controller 332. The connection enables communication with the host system 102 to receive a request from the processor 103 of the host system 102 to access the flash memory device. The flash controller 310 also includes a flash device interface 326 in communication with the flash memory device. The flash device interface 326 functions as another connection for issuing commands to the flash memory device of the memory system.

플래시 메모리 엔진(322)은 커맨드 스트럭처 메커니즘(558), 뱅크 인터리브 메커니즘(560), 장치 인터리브 메커니즘(562), 어드레스 식별 메커니즘(564), 커맨 드 식별 메커니즘(566), 로우 어드레스 식별 메커니즘(568), 및 칼럼 어드레스 식별 메커니즘(570)을 포함한다. 커맨드 스트럭처 메커니즘(558)은 메모리 장치에 의해 사용될 모듈러 커맨드 스트럭처(예컨대, 도 5A 내지 5C에 도시된 모듈러 커맨드 스트럭처)를 처리한다. 어드레스 식별 메커니즘(564)과 커맨드 식별 메커니즘(566)은 호스트 시스템(102)으로부터의 요청을 분석하여 그로부터 메모리 장치 및/또는 뱅크 어드레스와 커맨드를 각각 추출한다. 커맨드 식별 메커니즘(566)은 요청을 이행하는데 다중 커맨드가 사용될 것인가를 판정한다. 각각의 커맨드는 분리가능하며 공동으로 호스트 시스템(102)으로부터의 요청을 실행한다. 커맨드 식별 메커니즘(566)은, 어드레스 식별 메커니즘(564)으로부터의 어드레스를 포함하여, 커맨드를 형식으로 나타내기 위해 정보를 수집한다. 요청을 이루는 커맨드들 중 어느 하나가 로우 또는 칼럼 어드레스에 관한 것이면, 커맨드 식별 메커니즘(566)은 각기 로우 어드레스 식별 메커니즘(568) 또는 칼럼 어드레스 식별 메커니즘(570)의 사용의 협력을 구하여 상기 커맨드의 일부를 이루는 로우 또는 칼럼 어드레스를 획득한다.The flash memory engine 322 includes a command structure mechanism 558, a bank interleaving mechanism 560, a device interleaving mechanism 562, an address identification mechanism 564, a command identification mechanism 566, a row address identification mechanism 568. , And column address identification mechanism 570. The command structure mechanism 558 processes the modular command structure (eg, the modular command structure shown in FIGS. 5A-5C) to be used by the memory device. The address identification mechanism 564 and the command identification mechanism 566 analyze the request from the host system 102 and extract the memory device and / or bank address and command therefrom, respectively. The command identification mechanism 566 determines whether multiple commands will be used to fulfill the request. Each command is detachable and jointly executes a request from the host system 102. The command identification mechanism 566 collects information to format the command, including the address from the address identification mechanism 564. If either of the commands making a request relates to a row or a column address, the command identification mechanism 566 obtains the cooperation of the use of the row address identification mechanism 568 or the column address identification mechanism 570, respectively, to form part of the command. Acquire a row or column address.

뱅크 인터리브 메커니즘(560)과 장치 인터리브 메커니즘(562)은 다중 커맨드가 장치 인터페이스(326)를 통해 다중 메모리 뱅크 또는 메모리 장치에 각각 송신되도록 명령한다. 모듈러 커맨드 스트럭처는, 다중 메모리 뱅크를 가진 플래시 메모리 장치가 각각의 메모리 뱅크를 동시에 처리시킬 수 있도록 구성된다. 마찬가지로, 모듈러 커맨드 스트럭처는, 직렬 연결된 메모리 장치가 동시에 처리될 수 있도록 구성된다. 뱅크 인터리브 메커니즘(560)은 동일 메모리 장치내의 상이한 메 모리 뱅크에 대해 커맨드를 인터리브한다(다중 메모리 뱅크의 동시 동작의 예에 대해서 도 16 내지 21을 참조). 장치 인터리브 메커니즘(562)은 동일 메모리 시스템내의 상이한 메모리 장치에 대해 커맨드를 인터리브 한다(도 22 내지 28 참조).Bank interleave mechanism 560 and device interleave mechanism 562 instruct multiple commands to be sent to multiple memory banks or memory devices, respectively, via device interface 326. The modular command structure is configured such that a flash memory device having multiple memory banks can process each memory bank simultaneously. Similarly, the modular command structure is configured such that serially connected memory devices can be processed simultaneously. The bank interleave mechanism 560 interleaves commands for different memory banks in the same memory device (see FIGS. 16-21 for examples of simultaneous operation of multiple memory banks). Device interleave mechanism 562 interleaves commands for different memory devices in the same memory system (see FIGS. 22-28).

ECC 관리기(324)는, 특정 커맨드가 성공적으로 그리고 완전하게 실행되었는가를 검증하기 위해 에러 정정 코드(ECC)를 생성한다.The ECC manager 324 generates an error correction code (ECC) to verify that the particular command was executed successfully and completely.

도 6B는 플래시 커맨드 엔진(322)의 기능적 구성 요소들을 예시하며 당업자에 의해 인지될 다수의 구성들로서 실현될 수 있다.6B illustrates the functional components of flash command engine 322 and may be realized as a number of configurations that will be appreciated by those skilled in the art.

모듈러 커맨드는 페이지 읽기 커맨드를 포함할 수 있다. 커맨드 스트럭처에 있어서, 1번째 사이클의 페이지 읽기 커맨드의 입력되고 뒤 이어서 목표 페이지 어드레스에 있어서의 시작 칼럼 어드레스에 대한 칼럼 어드레스와 목표 페이지 어드레스에 대한 로우 어드레스가 입력된다. 2번째 사이클의 페이지 읽기 커맨드가 입력되고 그 후에 장치는 내부 페이지 읽기 동작을 완료하기 위한 기간(예컨대, 20㎲)동안 비지(busy)하다. 상기 기다린 기간 후에, 버스트 데이터 읽기 동작이 실행되어 장치의 버퍼로부터 데이터를 검색한다. 그 시간으로부터 버스트 데이터 읽기가 종료될 때까지 이 동작이 시작하여, 장치는 여느 다른 동작들을 실행할 수 없다.The modular command may include a page read command. In the command structure, the first cycle of page read command is input followed by the column address for the start column address in the target page address and the row address for the target page address. The page read command of the second cycle is input and thereafter the device is busy for a period of time (eg, 20 ms) to complete the internal page read operation. After the waiting period, a burst data read operation is performed to retrieve data from the device's buffer. This operation starts until the burst data reading ends from that time, and the device cannot execute any other operations.

도 7은 페이지 읽기 커맨드의 흐름을 도시한다. 시스템용 제어기는 단계(602)에서, 목적지의 플래시 장치 어드레스, 메모리 뱅크 어드레스, 페이지 읽기 동작 코드, 및 읽힐 페이지를 규정하는 로우(들)에 대한 3-바이트 로우 어드레스를 포함하는 페이지 읽기 커맨드를 생성한다. 페이지 읽기 커맨드는, 목적지의 플래 시 장치 어드레스가 페이지 읽기 커맨드를 수신하는 플래시 장치에 매치(match)할 때까지, 시스템을 이루는 플래시 장치들을 통과한다. 로우 어드레스(들)를 포함하는 페이지 읽기 커맨드는 목적지의 플래시 장치에 의해 수신된다. 페이지 읽기 커맨드는, 그 후 어드레스 래치 사이클이 3-바이트의 로우 어드레스를 입력하기 위해 시작되는, 목적지 플래시의 커맨드 레지스터에 제공된다. 일단 어드레스 래치 사이클이 종료되면, 페이지 읽기 동작이 플래시 장치 내에서 시작되고 선택된 페이지의 데이터가 검출되어 시간 tR(메모리 뱅크로부터 데이터 레지스터로의 전송 시간, 예컨대, 20㎲)미만으로 데이터 레지스터에 전송된다.7 shows the flow of the page read command. The controller for the system, in step 602, generates a page read command that includes a flash device address of the destination, a memory bank address, a page read operation code, and a 3-byte row address for the row (s) defining the page to be read. do. The page read command passes through the flash devices that make up the system until the flash device address of the destination matches the flash device that receives the page read command. The page read command containing the row address (es) is received by the flash device of the destination. The page read command is then provided to the command register of the destination flash, where an address latch cycle begins to input a 3-byte row address. Once the address latch cycle ends, a page read operation is initiated within the flash device and data on the selected page is detected and transferred to the data register in less than time t R (transfer time from the memory bank to the data register, e.g. 20ms). do.

제어기는 페이지로부터 데이터를 수집하기 위해 tR 동안 기다리거나, 제어기는 페이지가 액세스되었을 시에 통지를 수신하기 위해 장치 상태 질문을 생성하여 플래시 장치에 송신한다. 제어기가 장치 상태 커맨드를 생성하는 경우에, 커맨드는 단계(604)에서 플래시 장치에 송신된다. 플래시 장치는 이 요청에 대해 페이지가 액세스될 때까지 연속 비지 표시(continuous busy indication)로 응답할 것이고, 페이지가 액세스될 시에 플래시 장치는 메모리 뱅크가 준비되었고 더 이상 비지하지 않다는 것을 나타낸다. 제어기는 단계(606)에서 메모리 뱅크가 준비되었는지의 여부를 판정하도록 계속해서 체크한다.The controller waits for t R to collect data from the page, or the controller generates and sends a device status question to the flash device to receive a notification when the page is accessed. If the controller generates a device status command, the command is sent to the flash device at step 604. The flash device will respond to this request with a continuous busy indication until the page is accessed, and when the page is accessed, the flash device indicates that the memory bank is ready and no longer busy. The controller continues to check at step 606 to determine if the memory bank is ready.

일단 메모리 뱅크가 준비되거나, 제어기가 tR 동안 기다리는 경우에는, 장치 어드레스와 칼럼 어드레스를 가진 버스트 데이터 읽기 커맨드가 단계(608)에서 발행된다. 만약, 제어기가 장치 상태 질문을 송신하지 않고 대신에 tR 동안 기다리 면, 단계(604) 및 단계(606)는 실행되지 않는다. 일단 장치가 버스트 데이터 읽기를 수신하면 SQE 신호가 인에이블되고, 데이터 레지스터내의 페이지 데이터는, 커맨드와 더불어 부여된 칼럼 어드레스로부터 시작하여, 단계(610)에서 판독된다. 이러한 읽기는 SQn을 통해 SQE가 로(low)로 진행할 때까지 계속된다.Once the memory bank is ready or the controller waits for t R , a burst data read command with device address and column address is issued in step 608. If the controller does not send a device status query and instead waits for t R , steps 604 and 606 are not executed. Once the device receives the burst data read, the SQE signal is enabled, and the page data in the data register is read at step 610, starting from the column address given with the command. This read continues through SQn until SQE goes low.

에러 정정 코드(ECC)는 단계(612)에서 제어기에 의해 생성되며 단계(614)에서 검증된다. 만약, ECC가 검증되지 않으면, 단계(616)에서 에러 메시지가 발행된다. 만약, ECC가 검증되면, 페이지 읽기 동작은 성공적이고 그 동작은 단계(618)에서 완료된다. 예를 들어, 플래시 장치 제어기는, 페이지 당 2048 바이트 입력 데이터용 ECC 패리티 비트(parity bit)를 생성한다. 따라서, ECC 패리티 비트를 가진 2048 바이트 데이터가 프로그램된다(일반적으로, 페이지내에서 512 바이트 당 1-바이트 ECC, 2048 바이트 당 총 4 바이트 ECC). ECC 패리티 비트는 페이지내에서 64 바이트 스페어 필드(spare field)내로 프로그램된다. 페이지 읽기 동안에, 플래시 장치 제어기는 ECC 패리티 정보를 가진 2048 바이트 데이터를 읽는다. 플래시 장치 제어기는 4 바이트 ECC 정보를 가진 2048 데이터를 검증한다. 따라서, ECC 처리는 플래시 장치 제어기에 의해 실행되며 플래시 메모리 장치는 ECC 패리티 정보만을 저장한다.The error correction code (ECC) is generated by the controller in step 612 and verified in step 614. If the ECC is not verified, an error message is issued at step 616. If the ECC is verified, the page read operation is successful and the operation is completed at step 618. For example, the flash device controller generates an ECC parity bit for 2048 bytes of input data per page. Thus, 2048 byte data with ECC parity bits are programmed (generally 1-byte ECC per 512 bytes, 4 bytes ECC total per 2048 bytes) in the page. The ECC parity bits are programmed into a 64 byte spare field in the page. During the page read, the flash device controller reads 2048 byte data with ECC parity information. The flash device controller verifies 2048 data with 4-byte ECC information. Thus, ECC processing is executed by the flash device controller and the flash memory device stores only ECC parity information.

도 8은, 제어기가 요청된 데이터를 획득하기 위해 tR의 만기 동안 기다리는, 플래시 장치의 견지에서의 페이지 읽기 동작에 대한 타이밍도를 예시한다. 만약, 뱅크 비지 기간 tR 동안 버스트 데이터 읽기 커맨드가 통지되고 SQE가 인에이블된다 면, 모든 출력 데이터가 무효로 될 것이다.8 illustrates a timing diagram for a page read operation in terms of a flash device, in which the controller waits for the expiration of t R to obtain the requested data. If a burst data read command is notified and SQE is enabled during the bank busy period t R , all output data will be invalidated.

도 9는 플래시 장치의 견지에서 제어기로부터의 장치 상태에 의한 페이지 읽기 동작에 대한 타이밍도를 예시한다.9 illustrates a timing diagram for a page read operation by device state from a controller in terms of a flash device.

모듈러 커맨드는 페이지 프로그램 커맨드를 포함할 수 있다. 커맨드 스트럭처에 있어서, 1번째 사이클의 페이지 프로그램 커맨드가 입력되고 뒤 이어서 목표 페이지 어드레스에 있어서의 시작 칼럼 어드레스에 대한 칼럼 어드레스와 목표 페이지 어드레스에 대한 로우 어드레스가 입력된다. 입력 데이터가 로드(load)되고 뒤 이어서 2번째 사이클의 페이트(pate) 프로그램 커맨드가 로드된다. 장치는, 내부 페이지 프로그램 동작의 완료 동안, 2번째 사이클 후의 기간(예컨대, 200㎲)동안 비지하다. 이들 단계들은 모두, 페이지 프로그램 동작이 완료되면, 인터럽트(interrupt)될 수 없는 하나의 프로시져로서 간주된다.The modular command may include a page program command. In the command structure, a first cycle page program command is input followed by a column address for the start column address in the target page address and a row address for the target page address. The input data is loaded followed by the second program's fat program command. The device busy during the period after the second cycle (eg, 200 ms) during the completion of the internal page program operation. These steps are all considered as one procedure that cannot be interrupted once the page program operation is complete.

도 10은 플래시 장치 제어기로부터의 페이지 프로그램 커맨드의 흐름을 예시한다. 시스템용 제어기는 단계(902)에서, 목적지의 플래시 장치 어드레스, 메모리 뱅크 어드레스, 버스트 데이터 로드 시작 코드, 및 프로그램될 칼럼(들)에 대한 2-바이트 칼럼 어드레스를 포함하는 버스트 데이터 로드 시작 커맨드를 생성한다. 버스트 데이터 로드 시작 커맨드는, 목적지의 플래시 장치 어드레스가 버스트 데이터 로드 시작 커맨드를 수신하는 플래시 장치에 매치할 때까지, 시스템을 이루는 플래시 장치들을 통과한다. 버스트 데이터 로드 시작 커맨드는, 단계(904)에서의 2-바이트 칼럼 어드레스와 함께, 그리고 그 후에 단계(906)에서의 입력 데이터와 함께 목적지의 플래시 장치의 커맨드 레지스터에 제공된다. 버스트 데이터 로드 시작 커맨드는 목적지의 플래시 장치내의 모든 데이터 레지스터들을 리셋시킨다. 만약, 버스트 데이터 로드 시작 동작이 플래시 장치내로 모든 데이터를 입력하지 않으면, 그 다음의 버스트 데이터 로드 커맨드가 모든 데이터를 장치 내에 위치시키도록 사용될 수 있다.10 illustrates the flow of a page program command from a flash device controller. The controller for the system, in step 902, generates a burst data load start command that includes a flash device address of the destination, a memory bank address, a burst data load start code, and a 2-byte column address for the column (s) to be programmed. do. The burst data load start command passes through the flash devices that make up the system until the flash device address of the destination matches the flash device that receives the burst data load start command. The burst data load start command is provided to the command register of the destination flash device along with the two-byte column address in step 904 and then with the input data in step 906. The burst data load start command resets all data registers in the flash device of the destination. If the burst data load start operation does not enter all the data into the flash device, the next burst data load command can be used to locate all the data in the device.

플래시 장치 제어기는, 단계(908)에서, 목적지의 장치 어드레스와 메모리 뱅크 어드레스와 더불어 페이지 프로그램 동작 코드 및 페이지 프로그램 동작에 있어서 기입될 로우를 지정하는 로우 어드레스(들)를 다시 지정하는 페이지 프로그램 커맨드를 생성한다. 버스트 데이터 로드 시작 커맨드로부터 플래시 장치 내로 데이터가 로드된 시간 tDDE 후에 제어기에 의해 페이지 프로그램 커맨드가 생성된다. 이것은 선택된 페이지 위치내로 로드된 데이터를 프로그램할 것이다.The flash device controller, at step 908, issues a page program command that again specifies the row address (s) specifying the page program operation code and the row to be written in the page program operation, along with the device address and memory bank address of the destination. Create The page program command is generated by the controller after the time t DDE at which data is loaded into the flash device from the burst data load start command. This will program the loaded data into the selected page location.

제어기는 단계(910)에서 발생된 장치 상태 커맨드를 사용하여 페이지 프로그램 동작의 상태를 감시한다. 플래시 장치는 이 요청에 대해 페이지가 액세스될 때까지 연속 비지 표시로 응답할 것이고, 페이지가 액세스될 시에 플래시 장치는 메모리 뱅크가 준비되었고 더 이상 비지하지 않다는 것을 나타낸다. 제어기는 단계(912)에서 메모리 뱅크가 준비되었는지의 여부를 판정하도록 계속해서 체크한다. 일단 메모리 뱅크가 준비되면, 제어기는 페이지 프로그램 동작이 성공적인지를 확인하도록 체크한다. 만약 그렇지 않으면, 단계(916)에서 에러 메시지가 발행되며, 그게 아니면, 페이지 프로그램 동작이 단계(918)에서 완료된다.The controller monitors the state of the page program operation using the device status command generated at step 910. The flash device will respond to this request with a continuous busy indication until the page is accessed, and when the page is accessed, the flash device indicates that the memory bank is ready and no longer busy. The controller continues to check at step 912 to determine whether the memory bank is ready. Once the memory bank is ready, the controller checks to see if the page program operation is successful. If not, an error message is issued at step 916, otherwise the page program operation is completed at step 918.

도 11은, 버스트 데이터 로드 시작이 장치 내로 모든 데이터를 로드하기에 충분한, 플래시 장치의 견지에서 페이지 프로그램 동작에 대한 타이밍도를 예시한다. 도 12는, 모든 데이터를 장치내로 로드하기 위해서 버스트 데이터 로드 시작 동작 후에 버스트 데이터 로드 동작이 요구되는, 페이지 프로그램 동작에 대한 타이밍도를 예시한다.FIG. 11 illustrates a timing diagram for page program operation in terms of a flash device, where the start of burst data loading is sufficient to load all data into the device. 12 illustrates a timing diagram for a page program operation in which a burst data load operation is required after a burst data load start operation to load all data into the device.

모듈러 커맨드는 블록 삭제 커맨드를 포함할 수 있다. 커맨드 스트럭처에 있어서, 1번째 사이클의 블록 삭제 커맨드가 입력되고 뒤 이어서 목표 블록 어드레스에 대한 로우 어드레스가 입력된다. 내부 블록 삭제 동작을 완료하기 위해 장치가 1.5ms 동안 비지한 후에, 2번째 사이클의 블록 삭제 커맨드가 입력된다.The modular command may include a block delete command. In the command structure, a block erase command of the first cycle is input followed by a row address for the target block address. After the device has been busy for 1.5 ms to complete the internal block erase operation, a second cycle of block erase command is input.

도 13은 제어기로부터 블록 삭제 동작의 흐름이다. 시스템용 플래시 장치 제어기는, 단계(1204)에서의 장치 어드레스, 메모리 뱅크 어드레스, 동작 코드, 및 3-바이트 로우 어드레스를 포함해서, 단계(1202)에서의 블록 삭제 커맨드에 대한 어드레스 입력을 생성한다. 만약, 단계(1206)에서 하나 이상의 블록이 동시에 삭제되면, 이들 추가적인 블록들을 지정하기 위해 블록 삭제 커맨드에 대한 추가적인 어드레스 입력이 제어기에 의해 생성된다. 모든 블록이 지정되면, 단계(1208)에서 제어기는, 플래시 장치에게 선택된 블록에 대한 블록 삭제 동작의 실행을 시작시키기 위해, 블록 삭제 커맨드를 생성한다. 제어기에 의해 생성되는 블록 삭제 커맨드는, 장치 어드레스, 메모리 뱅크 어드레스, 및 동작 코드를 포함한다.13 is a flow of block erase operation from a controller. The flash device controller for the system generates an address input for the block erase command in step 1202, including the device address, memory bank address, operation code, and 3-byte row address in step 1204. If, at step 1206, one or more blocks are deleted at the same time, an additional address input for the block delete command is generated by the controller to specify these additional blocks. If all blocks are specified, then at step 1208 the controller generates a block delete command to start the flash device to execute the block delete operation for the selected block. The block erase command generated by the controller includes a device address, a memory bank address, and an operation code.

제어기는 단계(1210)에서, 메모리 뱅크가 사용 가능하고 블록 삭제 동작이 완료되는 시간을 판정하는데 사용되는 상태 커맨드를 발행한다. 제어기는 단계(1212)에서, 메모리 뱅크가 사용 가능할 때까지 장치 상태를 계속해서 체크한다. 블록 삭제 동작이 완료되면, 제어기는 단계(1214)에서 동작이 성공적이었는지를 확인하도록 체크한다. 동작이 성공적이지 않았으면, 단계(1216)에서 에러가 발행되고, 그게 아니면, 블록 삭제 동작은 단계(1218)에서 완료된다.The controller issues, at step 1210, a status command used to determine when the memory bank is available and the block erase operation is complete. The controller continues to check the device state at step 1212 until the memory bank is available. When the block erase operation is complete, the controller checks in step 1214 to verify that the operation was successful. If the operation was not successful, an error is issued at step 1216, otherwise the block erase operation is completed at step 1218.

도 14는, 단일 블록만이 삭제되는 플래시 장치의 견지에서의 블록 삭제 동작에 대한 타이밍도를 예시한다. 도 15는 다중 블록이 삭제되는 블록 삭제 동작에 대한 타이밍도를 예시한다.14 illustrates a timing diagram for a block erase operation in terms of a flash device where only a single block is deleted. 15 illustrates a timing diagram for a block erase operation in which multiple blocks are deleted.

도 5A 내지 5C에 예시된 모듈러 커맨드 스트럭처는 장치 어드레스와 함께 1번째 바이트로 제공될 메모리 뱅크 어드레스를 제공한다. 이것은, 플래시 메모리 장치가 하나 이상의 메모리 뱅크를 가진 경우에, 커맨드가 지향되는 메모리 뱅크를 지정하는데 사용된다. 모듈러 커맨드 스트럭처를 갖는 커맨드가 커맨드내의 메모리 뱅크 어드레스를 지정하기 때문에, 각 메모리 뱅크가 독립적으로 동작하는 구성을 갖는 플래시 장치는 플래시 장치내의 하나 이상의 메모리 뱅크상에서 동작을 동시에 실행시킬 수 있을 것이다. HLNAND™ 플래시 장치는 상기 하나의 플래시 메모리의 예이다.The modular command structure illustrated in FIGS. 5A-5C provides the memory bank address to be provided in the first byte along with the device address. This is used to specify the memory bank to which the command is directed when the flash memory device has more than one memory bank. Since a command with a modular command structure designates a memory bank address in the command, a flash device having a configuration in which each memory bank operates independently may be able to simultaneously execute operations on one or more memory banks in the flash device. The HLNAND ™ flash device is an example of one such flash memory.

상부 레벨에서 종속 접속되는 다중 HLNAND™ 플래시 장치의 핀 구성은 단일 장치들 중 하나와 일치할 수 있다. 직렬 상호 연결 구성에 있어서, 각 장치는, 예컨대, 종속 접속 경로상에 추가적인 하프 클럭 사이클 레이턴시(half clock cycle latency)를 도입한다. 상기와 같이, 다수의 종속 접속된 장치들은 직렬 상호 연결 구성의 동작의 총 클럭 레이턴시를 판정한다. 상호 연결된 다중 메모리 뱅크를 가진 다중 장치들 구성에 있어서, 제어기는, 커맨드를 인터리브하는 것에 의해 핵심 동작을 액세스하는 시간을 소비하는 많은 상이한 프로시져들을 효과적으로 스케쥴(schedule)할 수 있다.The pin configuration of multiple HLNAND ™ flash devices cascaded at the top level can match one of the single devices. In a serial interconnect configuration, each device introduces additional half clock cycle latency, for example on a cascaded path. As noted above, multiple cascaded devices determine the total clock latency of the operation of the serial interconnect configuration. In a multiple devices configuration with multiple memory banks interconnected, the controller can effectively schedule many different procedures that consume time to access key operations by interleaving the commands.

도 16 내지 21은 단일 플래시 메모리 장치내의 2개의 메모리 뱅크상에서 실행되는 동시 동작을 예시한다.16-21 illustrate simultaneous operations executed on two memory banks within a single flash memory device.

도 16은 동일 플래시 메모리 장치내의 2개의 메모리 뱅크로부터의 동시 페이지 읽기 동작에 대한 흐름을 예시한다. 페이지 읽기 커맨드는 단계(1502)에서 메모리 뱅크 0에 부여된다. 그 후, 메모리 뱅크 0은 요청된 페이지를 액세스하는 것에 의해 요청을 처리하도록 진행한다. 메모리 뱅크 0이 페이지 읽기 커맨드를 처리하는 동안에, 제2 페이지 읽기 커맨드가 단계(1504)에서 메모리 뱅크 1에 부여된다. 그 후, 메모리 뱅크 1은, 메모리 뱅크 0이 그 자신의 요청을 동시에 처리하는 동안, 요청된 페이지를 액세스하는 것에 의해 요청을 처리하도록 진행한다. 단계(1502)에서 발행된 페이지 읽기 커맨드로부터 초래되는 데이터를 액세스하기 위해, 단계(1506)에서 페이지 읽기 요청이 메모리 뱅크 0에 부여된 후의 시간 tR1이, 단계(1508)에서 버스트 데이터 읽기 커맨드가 메모리 뱅크 0에 부여되기 전까지 경과되도록 허용된다. 단계(1504)에서 발행된 페이지 읽기 커맨드로부터 초래되는 데이터를 액세스하기 위해, 단계(1510)에서 페이지 읽기 요청이 메모리 뱅크 1에 부여된 후의 시간 tR2이, 단계(1512)에서 버스트 데이터 읽기 커맨드가 메모리 뱅크 1에 부여되기 전까지 경과되도록 허용된다.16 illustrates a flow for a simultaneous page read operation from two memory banks within the same flash memory device. The page read command is given to memory bank 0 in step 1502. Memory bank 0 then proceeds to process the request by accessing the requested page. While memory bank 0 processes the page read command, a second page read command is given to memory bank 1 in step 1504. Memory bank 1 then proceeds to process the request by accessing the requested page, while memory bank 0 simultaneously processes its own request. In order to access the data resulting from the page read command issued in step 1502, the time t R1 after the page read request is granted to memory bank 0 in step 1506, the burst data read command is entered in step 1508. It is allowed to elapse before being assigned to memory bank 0. In order to access the data resulting from the page read command issued in step 1504, the time t R2 after the page read request is granted to memory bank 1 in step 1510 is the burst data read command in step 1512. It is allowed to elapse before being assigned to memory bank 1.

도 17은 도 16에 예시된 동시 페이지 읽기 동작의 타이밍을 예시한다.FIG. 17 illustrates the timing of the simultaneous page read operation illustrated in FIG. 16.

도 18은 동일 플래시 메모리 장치의 2개의 메모리 뱅크에서의 동시 페이지 프로그램 동작에 대한 흐름을 예시한다. 단계(1702)에서, 버스트 데이터 로드 시작 커맨드가 메모리 뱅크 0내로 프로그램될 데이터와 함께 메모리 뱅크 0에 부여된다. 단계(1704)에서, 버스트 데이터 로드 시작 커맨드가 메모리 뱅크 1내로 프로그램될 데이터와 함께 메모리 뱅크 1에 부여된다. 단계(1706)에서 페이지 프로그램 커맨드가 메모리 뱅크 0에 부여되고 단계(1708)에서 페이지 프로그램 커맨드가 메모리 뱅크 1에 부여된다. 상태 읽기 커맨드가 단계(1710)에서 메모리 뱅크 0에 부여되고 단계(1712)에서 메모리 뱅크 1에 부여되어 페이지 프로그램 동작을 완료할 시에 각 메모리 뱅크의 진행을 감시한다. 상태가 각 메모리 뱅크에 대해 통과(pass)를 회신하면, 페이지 프로그램 동작이 완료되고 다른 동작이 메모리 뱅크에 의해 실행될 수 있다.18 illustrates a flow for simultaneous page program operation in two memory banks of the same flash memory device. In step 1702, a burst data load start command is given to memory bank 0 along with the data to be programmed into memory bank 0. In step 1704, a burst data load start command is given to memory bank 1 along with the data to be programmed into memory bank 1. In step 1706 a page program command is given to memory bank 0 and in step 1708 a page program command is given to memory bank 1. A read status command is given to memory bank 0 in step 1710 and to memory bank 1 in step 1712 to monitor the progress of each memory bank when completing the page program operation. If the status returns a pass for each memory bank, the page program operation is complete and other operations can be executed by the memory bank.

도 18은 각 뱅크에 제공된 페이지 프로그램 커맨드 전에 각 메모리 뱅크에 부여되는 버스트 데이터 로드 시작 커맨드를 도시한다. 버스트 데이터 로드 시작 및 페이지 프로그램 커맨드는 양쪽이, 커맨드들 중 어느 하나가 메모리 뱅크 1에 부여되기 전에, 메모리 뱅크 0에 부여될 수 있다. 도 19는 버스트 데이터 로드 시작 및 페이지 프로그램 커맨드가, 커맨드들 중 어느 하나가 메모리 뱅크 1에 부여되기 전에, 메모리 뱅크 0에 부여되는 동시 페이지 프로그램 동작의 타이밍을 예시한다.18 shows a burst data load start command given to each memory bank before the page program command provided to each bank. The burst data load start and page program commands can both be given to memory bank 0 before any of the commands are given to memory bank 1. 19 illustrates the timing of a concurrent page program operation in which a burst data load start and page program command is given to memory bank 0 before any one of the commands is given to memory bank 1.

도 20은 동일 플래시 메모리 장치의 2개의 메모리 뱅크의 동시 블록 삭제 동작에 대한 흐름을 예시한다. 단계(1902)에서, 블록 삭제 커맨드에 대한 어드레스 입력이 삭제될 블록의 어드레스와 함께 메모리 뱅크 0에 부여된다. 단계(1904)에서, 블록 삭제 커맨드에 대한 어드레스 입력이 삭제될 블록의 어드레스와 함께 메모리 뱅크 1에 부여된다. 단계(1902)에서 수신된 블록 삭제 커맨드에 대한 어드레스 입력내에 표시된 블록이 삭제되었다는 것의 수신시에, 단계(1906)에서, 블록 삭제 커맨드가 메모리 뱅크 0에 제공된다. 단계(1904)에서 수신된 블록 삭제 커맨드에 대한 어드레스 입력내에 표시된 블록이 삭제되었다는 것의 수신시에, 단계(1908)에서, 블록 삭제 커맨드가 메모리 뱅크 1에 제공된다. 상태 읽기 커맨드가 단계(1910)에서 메모리 뱅크 0에 부여되고 또한 단계(1912)에서 메모리 뱅크 1에 부여되어 블록 삭제 동작의 진행을 감시한다. 상태가 각 메모리 뱅크에 대해 통과를 회신하면, 블록 삭제 동작이 완료되고 다른 동작이 메모리 뱅크에 의해 실행될 수 있다.20 illustrates a flow for a simultaneous block erase operation of two memory banks of the same flash memory device. In step 1902, an address input for the block erase command is given to memory bank 0 along with the address of the block to be deleted. In step 1904, an address input for a block erase command is given to memory bank 1 along with the address of the block to be deleted. Upon receiving that the block indicated in the address input for the block delete command received at step 1902 has been deleted, at step 1906 a block delete command is provided to memory bank 0. Upon receiving that the block indicated in the address input for the block delete command received at step 1904 has been deleted, at step 1908, a block delete command is provided to memory bank 1. A read status command is given to memory bank 0 in step 1910 and also to memory bank 1 in step 1912 to monitor the progress of the block erase operation. If the status returns a pass for each memory bank, the block erase operation is completed and other operations can be executed by the memory bank.

도 20은 각 뱅크에 제공된 블록 삭제 커맨드 전에 각 메모리 뱅크에 부여되는 블록 삭제 커맨드에 대한 어드레스 입력을 도시한다. 블록 삭제 및 블록 삭제 커맨드는 양쪽이, 커맨드들 중 어느 하나가 메모리 뱅크 1에 부여되기 전에, 메모리 뱅크 0에 부여될 수 있다. 도 21은 블록 삭제 및 블록 삭제 커맨드가, 커맨드들 중 어느 하나가 메모리 뱅크 1에 부여되기 전에, 메모리 뱅크 0에 부여되는 동시 블록 삭제 동작의 타이밍을 예시한다.20 shows an address input for a block erase command given to each memory bank before a block erase command provided to each bank. Both the block erase and block erase commands may be given to memory bank 0 before any one of the commands is given to memory bank 1. 21 illustrates the timing of a concurrent block erase operation in which block erase and block erase commands are given to memory bank 0 before any one of the commands is given to memory bank 1.

메모리 뱅크들에 의해 동시에 실행되는 동작들은 반드시 동일 동작은 아니다. 도 22 내지 25는 동일 플래시 메모리 장치의 2개의 메모리 뱅크에 의해 동시에 실행되는 상이한 동작들을 예시한다.Operations executed simultaneously by the memory banks are not necessarily the same operation. 22-25 illustrate different operations executed simultaneously by two memory banks of the same flash memory device.

도 22는 동일 플래시 메모리 장치의 2개의 메모리 뱅크내의 동시 페이지 읽기 및 페이지 프로그램 동작에 대한 흐름을 예시한다. 페이지 읽기 커맨드가 단계(2102)에서 메모리 뱅크 0에 부여된다. 메모리 뱅크 0이 페이지 읽기 커맨드내에 표시된 페이지를 액세스하는 동안, 단계(2104)에서, 버스트 데이터 로드 시작 커맨드가 메모리 뱅크 1내로 프로그램될 데이터와 함께 메모리 뱅크 1에 부여된다. 단계(2106)에서, 페이지 프로그램 커맨드가 메모리 뱅크 1내로의 데이터의 프로그래밍을 시작하도록 메모리 뱅크 1에 부여된다. 메모리 뱅크 0이 요청된 데이터를 검색할 수 있게 하도록 단계(2102)에서 페이지 읽기 커맨드가 부여된 후, 페이지 읽기 동작으로부터 검색되는 데이터를 액세스하도록 메모리 뱅크 0에 단계(2110)에서 버스트 데이터 읽기 커맨드가 부여되기 전, 단계(2108)에서 시간 tR이 경과되도록 허용된다. 페이지 프로그램 동작의 진행을 감시하도록 단계(2112)에서 메모리 뱅크 1에 상태 읽기 커맨드가 부여된다. 상태가 메모리 뱅크 1에 대해 통과를 회신하면, 페이지 프로그램 동작이 완료되고 다른 동작이 메모리 뱅크 1에 의해 실행될 수 있다.22 illustrates a flow for simultaneous page read and page program operations in two memory banks of the same flash memory device. A page read command is given to memory bank 0 in step 2102. While memory bank 0 accesses the page indicated in the page read command, in step 2104, a burst data load start command is given to memory bank 1 along with the data to be programmed into memory bank 1. In step 2106, a page program command is given to memory bank 1 to begin programming of data into memory bank 1. After a page read command is given in step 2102 to allow memory bank 0 to retrieve the requested data, a burst data read command in step 2110 is issued to memory bank 0 to access the data retrieved from the page read operation. Before being granted, time t R is allowed to elapse in step 2108. In step 2112 a read status command is given to memory bank 1 to monitor the progress of the page program operation. If the status returns a pass for memory bank 1, the page program operation is complete and other operations can be executed by memory bank 1.

도 23은 도 22로부터의 동시 페이지 읽기 및 페이지 프로그램 동작의 타이밍을 예시한다.FIG. 23 illustrates the timing of simultaneous page read and page program operations from FIG. 22.

도 24는, 페이지 읽기 동작이 메모리 뱅크 0에서 실행되고 페이지 프로그램 동작이 메모리 뱅크 1에서 실행되는, 동일 플랫 메모리 장치의 2개의 메모리 뱅크에서 실행되는 중지 및 재개 동작에 대한 흐름을 예시한다. 단계(2302)에서, 메모 리 뱅크 1내로 프로그램되는 데이터와 함께 버스트 데이터 로드 시작이 메모리 뱅크 1에 부여된다. 버스트 데이터 로드 시작 동작에 있어서의 모든 데이터가 메모리 뱅크 1내로 로드되기 전, 단계(2306)에서 메모리 뱅크 0에 페이지 읽기 커맨드가 부여된 때에 이 동작은 중지된다. 페이지 읽기 커맨드가 메모리 뱅크 0에 의해 완전하게 수신된 후 그리고 메모리 뱅크 0이 요청된 페이지를 액세스하고 있는 동안, 나머지 데이터와 더불어 버스트 데이터 로드 동작을 사용해서 단계(2308)에서 메모리 뱅크 1상의 동작이 재개된다. 일단 데이터가 메모리 뱅크 1에 제공되면, 그 내부의 데이터의 프로그래밍을 시작하도록 페이지 프로그램 커맨드가 단계(2310)에서 메모리 뱅크 1에 부여된다. 페이지 읽기 커맨드가 단계(2306)에서 메모리 뱅크 1에 부여된 후에 단계(2312)에서 시간 tR이 경과되도록 허용된다. 일단 tR이 경과되면, 메모리 뱅크 0으로부터 요청된 데이터의 추출을 시작하도록 단계(2314)에서 메모리 뱅크 0에 버스트 데이터 읽기 커맨드가 부여된다. 메모리 뱅크의 상태를 감시하도록 상태 읽기 커맨드가 단계(2318)에서 메모리 뱅크 1에 부여될 때, 단계(2316)에서 버스트 데이터 읽기 커맨드가 중지된다. 일단 상태 읽기 커맨드가 수신되면, 버스트 데이터 읽기 커맨드가 단계(2320)에서 재개된다. 페이지 프로그램 동작이 완료될 때 메모리 뱅크 1이 상태 읽기 커맨드에 대하여 통과를 회신하고 다른 동작이 메모리 뱅크 1에 의해 실행될 수 있다.FIG. 24 illustrates a flow for a suspend and resume operation executed in two memory banks of the same flat memory device, in which a page read operation is executed in memory bank 0 and a page program operation is executed in memory bank 1. FIG. In step 2302, a burst data load start is given to memory bank 1 along with the data programmed into memory bank 1. This operation is stopped when a page read command is given to memory bank 0 in step 2306 before all data in the burst data load start operation is loaded into memory bank 1. After the page read command has been completely received by memory bank 0 and while memory bank 0 is accessing the requested page, the operation on memory bank 1 may be terminated at step 2308 using a burst data load operation with the remaining data. Resumed. Once the data is provided to memory bank 1, a page program command is given to memory bank 1 at step 2310 to begin programming of the data therein. The time t R is allowed to elapse in step 2312 after the page read command is granted to memory bank 1 in step 2306. Once t R has elapsed, a burst data read command is given to memory bank 0 in step 2314 to begin extraction of the requested data from memory bank 0. When a read state command is given to memory bank 1 in step 2318 to monitor the state of the memory bank, in step 2316 the burst data read command is stopped. Once the read status command is received, the burst data read command is resumed at step 2320. When the page program operation is complete, memory bank 1 returns a pass for the read status command and another operation may be executed by memory bank 1.

도 25는 도 24로부터의 중지 및 재개된 페이지 읽기 및 페이지 프로그램 동작을 예시한다.FIG. 25 illustrates paused and resumed page read and page program operations from FIG. 24.

도 26 내지 28은 다중 장치들 사이의 동작의 인터리빙(interleaving)을 도시한다. 도 25는 플래시 장치 0 및 플래시 장치 1의 메모리 뱅크 0 및 메모리 뱅크 1의 양쪽에서의 페이지 읽기 동작, 플래시 장치 2의 메모리 뱅크 0에서의 블록 삭제 동작, 플래시 장치 2의 메모리 뱅크 1에서의 그리고 플래시 장치 3의 메모리 뱅크 0에서의 페이지 프로그램 동작, 및 플래시 장치 3의 메모리 뱅크 1에서의 쌍-쌍 삭제 동작을 도시한다. 도 26은 플래시 장치 0, 1, 2 및 3의 메모리 뱅크 0 및 1에서의 페이지 읽기 동작을 도시한다. 도 28은 플래시 장치 0의 메모리 뱅크 0에서의 페이지 프로그램 동작을 도시하고 뒤 이어서 페이지 읽기 동작을 도시하며, 페이지 읽기 동작에 뒤 이어서 플래시 장치 0의 메모리 뱅크 1에서의 블록 삭제 동작, 플래시 장치 1 및 3의 메모리 뱅크 0에서의 그리고 플래시 장치 2 및 3의 메모리 뱅크 1에서의 블록 삭제 동작, 플래시 장치 1의 메모리 뱅크 1에서의 페이지 프로그램 동작을 도시하고, 페이지 읽기 동작에 뒤 이어서 플래시 장치 2의 메모리 뱅크 0에서의 페이지 프로그램 동작을 도시한다.26-28 illustrate interleaving of operations between multiple devices. 25 shows a page read operation in both flash device 0 and memory bank 0 and memory bank 1 of flash device 1, a block erase operation in memory bank 0 of flash device 2, and flash in memory bank 1 of flash device 2; A page program operation in memory bank 0 of device 3 and a pair-pair erase operation in memory bank 1 of flash device 3 are shown. 26 shows page read operations in memory banks 0 and 1 of flash devices 0, 1, 2, and 3. FIG. 28 shows a page program operation in memory bank 0 of flash device 0 followed by a page read operation, and a block erase operation in memory bank 1 of flash device 0 following the page read operation, flash device 1 and Block erase operation in memory bank 0 of 3 and in memory bank 1 of flash devices 2 and 3, page program operation in memory bank 1 of flash device 1, and following the page read operation followed by memory of flash device 2 The page program operation in bank 0 is shown.

상기 실시예들에 있어서, 메모리 장치가 플래시 메모리 장치로서 기술되었다. 당업자에게는 메모리 장치가 랜덤 액세스 메모리 장치: 예컨대, 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM), 자기저항(magnetoresistive) 랜덤 액세스 메모리(MRAM)일 수 있다는 것이 명백할 것이다. 또한, 메모리 시스템에 포함되는 복수의 메모리 장치는 동일한 장치 타입이거나 혼합된 장치 타입을 갖는 장치들일 수 있다. 혼합된 타입의 직렬 연결된 다중 장치들의 구성은 미국 특허 가출원 제60/868,773호(2006년 12월 6일 출원)에 개시되어 있다.In the above embodiments, the memory device has been described as a flash memory device. It will be apparent to those skilled in the art that the memory device may be a random access memory device: for example, dynamic random access memory (DRAM), static random access memory (SRAM), magnetoresistive random access memory (MRAM). Also, the plurality of memory devices included in the memory system may be devices having the same device type or mixed device types. The construction of a serially connected multiple devices of mixed type is disclosed in US Provisional Application No. 60 / 868,773 filed December 6, 2006.

상기한 실시예들에 있어서, 장치 소자들과 회로들이 간략화를 목적으로 도면들에 도시된 바와 같이 서로 연결되어 있다. 실제 적용에 있어서 이들 장치들, 소자 회로들 등은, 서로 직접 연결되거나 다른 장치들, 소자들, 회로들 등을 통해 간접적으로 연결될 수 있다. 따라서, 실제 구성에 있어서는, 소자들, 회로들, 및 장치들이 서로 직접적으로 또는 간접적으로 연결된다. In the above embodiments, device elements and circuits are connected to each other as shown in the figures for the purpose of simplicity. In practical applications, these devices, device circuits, and the like may be directly connected to each other or indirectly through other devices, devices, circuits, and the like. Thus, in an actual configuration, elements, circuits, and devices are connected directly or indirectly to each other.

본 발명의 상기한 실시예들은 예시만을 의도하였다. 변경, 변형, 변화들이, 오로지 이 명세서에 첨부된 청구범위에 의해서만 규정되는 본 발명의 권리범위로부터 벗어남 없이, 당업자에 의해 특정 실시예들에 실행될 수 있다.The above embodiments of the present invention are intended for illustration only. Modifications, variations, and changes may be made to the specific embodiments by those skilled in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.

Claims (35)

복수의 메모리 장치 중 하나의 메모리 장치에 액세스하기 위한 요청을 표현하는 복수의 분리 가능한 커맨드를 포함하는 커맨드 스트럭처로서, A command structure comprising a plurality of separable commands representing a request to access one of the plurality of memory devices, the command structure comprising: 상기 복수의 분리 커맨드의 각각은,Each of the plurality of separation commands, 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및A device identifier comprising an address for one of the plurality of memory devices and a bank address for one of the plurality of memory banks in one of the plurality of memory devices; And 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함하는, 커맨드 스트럭처. And a command identifier comprising an operation code representing an operation to be executed by one of the plurality of memory devices. 청구항 1에 있어서, 상기 하나의 메모리 장치는 적어도 하나의 메모리 뱅크를 포함하며, 어드레스 식별자는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 장치 어드레스 및 상기 적어도 하나의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는, 커맨드 스트럭처.The memory device of claim 1, wherein the one memory device includes at least one memory bank, and an address identifier is a device address of one of the at least one memory devices and a memory bank of the at least one memory bank. A command structure comprising a bank address for. 청구항 2에 있어서, 상기 어드레스 식별자는 m-바이트 식별자를 포함하고, m은 정수인, 커맨드 스트럭처.The command structure of claim 2, wherein the address identifier comprises an m-byte identifier and m is an integer. 청구항 3에 있어서, 상기 장치 어드레스는 n-비트 어드레스를 포함하고, 상 기 뱅크 어드레스는 p-비트 어드레스를 포함하며, n과 p의 각각은 정수인, 커맨드 스트럭처.4. The command structure of claim 3, wherein the device address comprises an n-bit address, the bank address comprises a p-bit address, and each of n and p is an integer. 청구항 1에 있어서, 상기 커맨드 식별자는 q-바이트 커맨드 식별자를 포함하고, q는 정수인, 커맨드 스트럭처.The command structure of claim 1, wherein the command identifier comprises a q-byte command identifier and q is an integer. 청구항 1에 있어서, 모듈러 스트럭처는, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 로우를 지정하는 로우 어드레스를 더 포함하는, 커맨드 스트럭처.The command structure of claim 1, wherein the modular structure further comprises a row address specifying a row in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied. 청구항 1에 있어서, 모듈러 스트럭처는, 동작이 결정된 타입의 것일 경우에, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 로우를 지정하는 로우 어드레스를 더 포함하는, 커맨드 스트럭처.The command structure of claim 1, wherein the modular structure further comprises a row address specifying a row in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied when the operation is of a determined type. 청구항 6에 있어서, 상기 로우 어드레스는 r-바이트 어드레스를 포함하고, r은 정수인, 커맨드 스트럭처. 7. The command structure of claim 6, wherein the row address comprises an r-byte address and r is an integer. 청구항 1에 있어서, 모듈러 스트럭처는, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 칼럼을 지정하는 칼럼 어드레스를 더 포함하는, 커맨드 스트럭처.The command structure of claim 1, wherein the modular structure further comprises a column address specifying a column in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied. 청구항 1에 있어서, 모듈러 스트럭처는, 동작이 결정된 타입의 것일 경우에, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 칼럼을 지정하는 칼럼 어드레스를 더 포함하는, 커맨드 스트럭처.The command structure of claim 1, wherein the modular structure further comprises a column address specifying a column in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied when the operation is of a determined type. 청구항 9에 있어서, 상기 칼럼 어드레스는 s-바이트 어드레스를 포함하고, s는 정수인, 커맨드 스트럭처.The command structure of claim 9, wherein the column address comprises an s-byte address and s is an integer. 청구항 11에 있어서, 상기 하나의 메모리 장치는 적어도 하나의 메모리 뱅크를 포함하며, 어드레스 식별자는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 장치 어드레스 및 상기 적어도 하나의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는, 모듈러 커맨드 스트럭처.12. The memory device of claim 11, wherein the one memory device comprises at least one memory bank, wherein an address identifier is a device address for one of the at least one memory devices and a memory bank of the at least one memory bank. A modular command structure containing a bank address for. 청구항 12에 있어서, 상기 커맨드 식별자는 q-바이트 식별자를 포함하고, q는 정수인, 모듈러 커맨드 스트럭처.The modular command structure of claim 12, wherein the command identifier comprises a q-byte identifier and q is an integer. 청구항 12에 있어서, 상기 모듈러 스트럭처는, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 로우를 지정하는 로우 어드레스를 더 포함하는, 모듈러 커맨드 스트럭처.The modular command structure of claim 12, wherein the modular structure further comprises a row address specifying a row in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied. 청구항 12에 있어서, 상기 모듈러 스트럭처는, 동작이 결정된 타입의 것일 경우에, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 로우를 지정하는 로우 어드레스를 더 포함하는, 모듈러 커맨드 스트럭처.The modular command structure of claim 12, wherein the modular structure further comprises a row address specifying a row in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied when the operation is of a determined type. . 청구항 15에 있어서, 상기 로우 어드레스는 r-바이트 어드레스를 포함하고, r은 정수인, 모듈러 커맨드 스트럭처.The modular command structure of claim 15, wherein the row address comprises an r-byte address and r is an integer. 청구항 12에 있어서, 상기 모듈러 스트럭처는, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 칼럼을 지정하는 칼럼 어드레스를 더 포함하는, 모듈러 커맨드 스트럭처.The modular command structure of claim 12, wherein the modular structure further comprises a column address specifying a column in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied. 청구항 12에 있어서, 상기 모듈러 스트럭처는, 동작이 결정된 타입의 것일 경우에, 상기 커맨드 식별자의 동작이 적용될 상기 적어도 하나의 메모리 장치의 메모리 뱅크내의 칼럼을 지정하는 칼럼 어드레스를 더 포함하는, 모듈러 커맨드 스트럭처.The modular command structure of claim 12, wherein the modular structure further includes a column address specifying a column in a memory bank of the at least one memory device to which the operation of the command identifier is to be applied when the operation is of a determined type. . 청구항 4에 있어서, The method according to claim 4, 상기 m-바이트 식별자는 1-바이트 식별자를 포함하고; The m-byte identifier comprises a one-byte identifier; 상기 n-비트 어드레스는 6-비트 어드레스를 포함하며; The n-bit address comprises a 6-bit address; 상기 p-비트 어드레스는 2-비트 어드레스를 포함하는, 커맨드 스트럭처.And the p-bit address comprises a 2-bit address. 청구항 8에 있어서, 상기 r-바이트 로우 어드레스는 3-바이트 어드레스를 포함하는, 커맨드 스트럭처.The command structure of claim 8, wherein the r-byte row address comprises a 3-byte address. 청구항 5에 있어서, 상기 q-바이트 커맨드 식별자는 1-바이트 동작 코드를 포함하는, 커맨드 스트럭처. 6. The command structure of claim 5, wherein the q-byte command identifier comprises a 1-byte operation code. 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 및 상기 복수의 메모리 장치 중 하나의 메모리 장치내의 복수의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는 장치 식별자; 및A device identifier comprising an address for one of the plurality of memory devices and a bank address for one of the plurality of memory banks in one of the plurality of memory devices; And 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 동작 코드를 포함하는 커맨드 식별자를 포함하는, 모듈러 커맨드 스트럭처.And a command identifier comprising an operation code representing an operation to be executed by one of the plurality of memory devices. 데이터를 저장하기 위한 적어도 하나의 메모리 장치를 포함하는 메모리 시스템;A memory system including at least one memory device for storing data; 상기 메모리 시스템에 액세스하기 위한 요청을 관리하기 위한 프로세서; 및A processor for managing a request to access the memory system; And 상기 프로세서로부터의 요청을 상기 적어도 하나의 메모리 장치에 의해 해석될 수 있는 하나 이상의 분리 가능한 커맨드로 번역하기 위한 제어기로서, 각 커맨드는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식 별자와 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 의해 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 제어기를 포함하며; 상기 적어도 하나의 메모리 장치와 상기 제어기는 통신을 위해 직렬 연결된, 시스템.A controller for translating a request from the processor into one or more separable commands that can be interpreted by the at least one memory device, each command being an address identifier for one of the at least one memory device. A controller having a modular structure that includes a command identifier representing an operation to be executed by one of the at least one memory device; And the at least one memory device and the controller are serially connected for communication. 청구항 23에 있어서, 상기 적어도 하나의 메모리 장치는 적어도 하나의 메모리 뱅크를 포함하며, 상기 어드레스 식별자는 상기 적어도 하나의 메모리 장치 중 하나의 메모리 장치에 대한 장치 어드레스 및 상기 적어도 하나의 메모리 뱅크 중 하나의 메모리 뱅크에 대한 뱅크 어드레스를 포함하는, 시스템.24. The apparatus of claim 23, wherein the at least one memory device comprises at least one memory bank, and wherein the address identifier is a device address for one of the at least one memory device and one of the at least one memory bank. A bank address for a memory bank. 청구항 24에 있어서, 상기 제어기는 상이한 메모리 장치들에 대한 하나 이상의 분리 가능한 커맨드를 생성하고 상이한 메모리 장치들에 대한 이들 하나 이상의 분리 가능한 커맨드의 발행을 인터리브(interleave)하는, 시스템.The system of claim 24, wherein the controller generates one or more separable commands for different memory devices and interleaves the issuance of these one or more separable commands for different memory devices. 청구항 25에 있어서, 상기 적어도 하나의 메모리 장치는 적어도 2개의 메모리 뱅크를 포함하고, 상기 제어기는 상기 적어도 2개의 메모리 뱅크의 각각에 대한 하나 이상의 분리 가능한 커맨드를 생성하고 상기 적어도 2개의 메모리 뱅크가 상기 발행된 하나 이상의 분리 가능한 커맨드를 동시에 처리하도록 이들 하나 이상의 분리 가능한 커맨드의 발행을 인터리브하는, 시스템.26. The device of claim 25, wherein the at least one memory device comprises at least two memory banks, and wherein the controller generates one or more separable commands for each of the at least two memory banks, Interleaving the issuance of these one or more separable commands to simultaneously process the issued one or more separable commands. 청구항 23에 있어서, 상기 메모리 시스템의 상기 메모리 장치는 공통의 버스에 연결되는, 시스템.The system of claim 23, wherein the memory device of the memory system is connected to a common bus. 청구항 23에 있어서, 상기 메모리 시스템의 상기 메모리 장치는 직렬 연결되는, 시스템.The system of claim 23, wherein the memory device of the memory system is connected in series. 청구항 23에 있어서, 상기 메모리 장치는 NAND 플래시 메모리 장치를 포함하는, 시스템.The system of claim 23, wherein the memory device comprises a NAND flash memory device. 데이터를 저장하기 위한 복수의 메모리 장치를 갖는 시스템용 제어기로서, 상기 제어기는 상기 복수의 메모리 장치와의 통신을 위해 직렬 상호 연결 구성으로 되어 있으며, 상기 제어기는,A controller for a system having a plurality of memory devices for storing data, wherein the controller is in a serial interconnect configuration for communication with the plurality of memory devices, wherein the controller comprises: 상기 복수의 메모리 장치에 액세스하기 위한 요청을 수신하기 위한 제1 연결부;A first connector for receiving a request to access the plurality of memory devices; 상기 요청을 상기 복수의 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위한 번역기로서, 각 커맨드는 상기 복수의 메모리 장치 중 하나의 메모리 장치에 대한 어드레스 식별자 및 상기 복수의 메모리 장치 중 하나의 메모리 장치에 의해서 실행될 동작을 표현하는 커맨드 식별자를 포함하는 모듈러 스트럭처를 갖는, 번역기; 및A translator for translating the request into a plurality of separable commands that can be interpreted by the plurality of memory devices, each command being an address identifier for one of the plurality of memory devices and one of the plurality of memory devices; A translator having a modular structure including a command identifier representing an operation to be executed by one memory device; And 상기 복수의 분리 가능한 커맨드를 발행하기 위한 상기 복수의 메모리 장치 중 하나의 메모리 장치와의 통신을 위한 제2 연결부를 포함하는, 시스템용 제어기.And a second connection for communicating with one of said plurality of memory devices for issuing said plurality of separable commands. 메모리 장치 어드레스를 포함하는 어드레스를 판정하는 단계;Determining an address comprising a memory device address; 메모리에 액세스하기 위한 요청을 실행하는 복수의 동작을 식별하는 단계; 및Identifying a plurality of operations to execute a request to access a memory; And 상기 메모리에 복수의 분리 가능한 커맨드를 제공하는 단계로서, 상기 커맨드의 각각은 메모리 장치 어드레스를 갖는 장치 식별자 및 상기 복수의 동작 중 하나의 동작을 갖는 커맨드 식별자를 포함하는 단계를 포함하는 방법.Providing a plurality of separable commands to the memory, each of the commands comprising a device identifier having a memory device address and a command identifier having one of the plurality of operations. 청구항 31에 있어서, 상기 방법은, 메모리 장치에 액세스하기 위한 요청을 상기 메모리 장치에 의해 해석될 수 있는 복수의 분리 가능한 커맨드로 번역하기 위한 것이며, The method of claim 31, wherein the method is for translating a request to access a memory device into a plurality of separable commands that can be interpreted by the memory device, 상기 판정 단계는 상기 메모리 장치에 대한 어드레스 및 상기 메모리 장치의 메모리 뱅크에 대한 어드레스를 판정하는 단계를 포함하고;The determining step includes determining an address for the memory device and an address for a memory bank of the memory device; 상기 식별 단계는 합동으로 상기 요청을 실행하는 복수의 동작을 식별하는 단계를 포함하며;The identifying step includes identifying a plurality of operations of jointly executing the request; 상기 제공 단계는, 각각의 커맨드가 상기 메모리 장치 어드레스와 메모리 뱅크 어드레스를 포함하는 장치 식별자 및 상기 복수의 동작 중 하나의 동작을 포함하는 커맨드 식별자를 포함하는 상기 복수의 분리 가능한 커맨드를 제공하는 단계로서, 상기 커맨드 식별자는 상기 메모리 장치에 의해 해석될 수 있고, 상기 복수 의 분리 가능한 커맨드는 상기 메모리 장치에 발행되는 단계를 포함하는, 방법.The providing step includes providing the plurality of separable commands, each command including a device identifier comprising the memory device address and a memory bank address, and a command identifier comprising one of the plurality of operations. And the command identifier may be interpreted by the memory device, and wherein the plurality of separable commands are issued to the memory device. 청구항 31에 있어서,The method according to claim 31, 상기 제공 단계는,The providing step, m이 정수인 m-바이트 장치 식별자를 생성하는 단계;generating an m-byte device identifier in which m is an integer; n과 p의 각각이 정수인 n-비트 메모리 장치 어드레스 및 p-비트 메모리 뱅크 어드레스를 생성하는 단계; 및generating an n-bit memory device address and a p-bit memory bank address, wherein each of n and p is an integer; And q가 정수인 q-바이트 커맨드 식별자를 생성하는 단계를 더 포함하며,generating a q-byte command identifier wherein q is an integer, 상이한 장치 식별자를 갖는 상기 복수의 분리 가능한 커맨드의 각각의 발행을 인터리브하는 단계를 더 포함하는, 방법.Interleaving each issue of the plurality of separable commands having a different device identifier. 청구항 31에 있어서, 상기 메모리 장치는 적어도 2개의 메모리 뱅크를 포함하고, 상기 방법은 상기 적어도 2개의 메모리 뱅크를 동시에 제어하며,32. The method of claim 31, wherein the memory device comprises at least two memory banks, and the method controls the at least two memory banks simultaneously, 상기 판정 단계는 상기 메모리 장치에 대한 어드레스 및 상기 적어도 2개의 메모리 뱅크의 각각에 대한 어드레스를 판정하는 단계를 포함하고;The determining step includes determining an address for the memory device and an address for each of the at least two memory banks; 상기 식별 단계는 합동으로 상기 적어도 2개의 메모리 뱅크의 각각에 액세스 하기 위한 요청을 실행하는 복수의 동작을 식별하는 단계를 포함하며;The identifying step includes identifying a plurality of operations that jointly execute a request to access each of the at least two memory banks; 상기 제공 단계는, 상기 적어도 2개의 메모리 뱅크의 각각에 대한 상기 복수의 분리 가능한 커맨드를 생성하는 단계로서, 상기 복수의 분리 가능한 커맨드의 각각은 상기 메모리 장치에 발행되는 단계를 포함하는, 방법.The providing step includes generating the plurality of separable commands for each of the at least two memory banks, wherein each of the plurality of separable commands is issued to the memory device. 청구항 31에 있어서, 상기 방법은, 복수의 메모리 장치에 액세스하기 위한 요청을 인터리브하기 위한 것이고,The method of claim 31, wherein the method is for interleaving a request to access a plurality of memory devices, 상기 판정 단계는 상기 복수의 메모리 장치의 각각에 대한 어드레스를 포함하고; The determining step includes an address for each of the plurality of memory devices; 상기 식별 단계는 합동으로 각 요청을 실행하는 복수의 동작을 식별하는 단계를 포함하며;The identifying step includes identifying a plurality of operations of executing each request jointly; 상기 제공 단계는, 각각의 커맨드가 상기 메모리 장치 어드레스를 갖는 장치 식별자 및 상기 복수의 동작 중 하나의 동작을 갖는 커맨드 식별자를 포함하는 상기 복수의 메모리 장치의 각각에 대한 각 요청에 대한 복수의 분리 가능한 커맨드를 생성하는 단계로서, 상기 커맨드 식별자는 상기 메모리 장치에 의해 해석될 수 있고, 상기 복수의 분리 가능한 커맨드의 각각은 상기 메모리 장치에 발행되는 단계를 포함하는, 방법.The providing step includes a plurality of separable for each request for each of the plurality of memory devices, each command including a device identifier having the memory device address and a command identifier having one of the plurality of operations. Generating a command, wherein the command identifier can be interpreted by the memory device, wherein each of the plurality of separable commands is issued to the memory device.
KR1020097005563A 2006-08-22 2007-08-20 Modular command structure for memory and memory system KR101397229B1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US83932906P 2006-08-22 2006-08-22
US60/839,329 2006-08-22
US90200307P 2007-02-16 2007-02-16
US60/902,003 2007-02-16
US89270507P 2007-03-02 2007-03-02
US60/892,705 2007-03-02
PCT/CA2007/001428 WO2008022434A1 (en) 2006-08-22 2007-08-20 Modular command structure for memory and memory system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020137030396A Division KR101514171B1 (en) 2006-08-22 2007-08-20 Modular command structure for memory and memory system

Publications (2)

Publication Number Publication Date
KR20090046944A true KR20090046944A (en) 2009-05-11
KR101397229B1 KR101397229B1 (en) 2014-05-20

Family

ID=39106428

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137030396A KR101514171B1 (en) 2006-08-22 2007-08-20 Modular command structure for memory and memory system
KR1020097005563A KR101397229B1 (en) 2006-08-22 2007-08-20 Modular command structure for memory and memory system

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020137030396A KR101514171B1 (en) 2006-08-22 2007-08-20 Modular command structure for memory and memory system

Country Status (5)

Country Link
EP (1) EP2074623A4 (en)
JP (1) JP2010501915A (en)
KR (2) KR101514171B1 (en)
TW (1) TW200826104A (en)
WO (1) WO2008022434A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146480B2 (en) 2016-03-25 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and memory system
JP5385156B2 (en) 2007-02-16 2014-01-08 モサイド・テクノロジーズ・インコーポレーテッド Method for reducing power consumption in a system having a semiconductor device and a plurality of interconnect devices
US7957173B2 (en) 2008-10-14 2011-06-07 Mosaid Technologies Incorporated Composite memory having a bridging device for connecting discrete memory devices to a system
US8194481B2 (en) 2008-12-18 2012-06-05 Mosaid Technologies Incorporated Semiconductor device with main memory unit and auxiliary memory unit requiring preset operation
US8037235B2 (en) 2008-12-18 2011-10-11 Mosaid Technologies Incorporated Device and method for transferring data to a non-volatile memory device
EP2359369B1 (en) 2008-12-18 2015-01-21 Conversant Intellectual Property Management Inc. Semiconductor device with main memory unit and auxiliary memory unit requiring preset operation
US20110258366A1 (en) * 2010-04-19 2011-10-20 Mosaid Technologies Incorporated Status indication in a system having a plurality of memory devices
TWI477966B (en) 2012-05-31 2015-03-21 Silicon Motion Inc Data storage device and operating method for flash memory
JP6541998B2 (en) * 2015-03-24 2019-07-10 東芝メモリ株式会社 Memory device, semiconductor device, and information processing apparatus
KR102651425B1 (en) 2016-06-30 2024-03-28 에스케이하이닉스 주식회사 Memory system and operating method of memory system
JP7458740B2 (en) 2019-10-21 2024-04-01 キオクシア株式会社 Memory system and control method
US11822793B2 (en) 2022-04-04 2023-11-21 Western Digital Technologies, Inc. Complete and fast protection against CID conflict

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729683A (en) * 1995-05-18 1998-03-17 Compaq Computer Corporation Programming memory devices through the parallel port of a computer system
US6453365B1 (en) * 1998-02-11 2002-09-17 Globespanvirata, Inc. Direct memory access controller having decode circuit for compact instruction format
US7130958B2 (en) * 2003-12-02 2006-10-31 Super Talent Electronics, Inc. Serial interface to flash-memory chip using PCI-express-like packets and packed data for partial-page writes
US7356639B2 (en) * 2000-01-05 2008-04-08 Rambus Inc. Configurable width buffered module having a bypass circuit
JP3973337B2 (en) * 2000-02-08 2007-09-12 株式会社日立製作所 Storage element and storage device using the same
US20020161941A1 (en) * 2001-04-30 2002-10-31 Sony Corporation And Electronics, Inc System and method for efficiently performing a data transfer operation
US7308524B2 (en) * 2003-01-13 2007-12-11 Silicon Pipe, Inc Memory chain
US7073010B2 (en) * 2003-12-02 2006-07-04 Super Talent Electronics, Inc. USB smart switch with packet re-ordering for interleaving among multiple flash-memory endpoints aggregated as a single virtual USB endpoint
DE102005015828A1 (en) * 2004-06-11 2006-01-05 Samsung Electronics Co., Ltd., Suwon Hub for memory module e.g. fully buffered dual-in-line memory module, has controller which ignores memory identification information in response to southbound packet from memory controller when writing packet data during test mode
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146480B2 (en) 2016-03-25 2018-12-04 SK Hynix Inc. Memory system and operating method of memory system

Also Published As

Publication number Publication date
TW200826104A (en) 2008-06-16
KR101397229B1 (en) 2014-05-20
EP2074623A1 (en) 2009-07-01
KR101514171B1 (en) 2015-04-21
JP2010501915A (en) 2010-01-21
WO2008022434A1 (en) 2008-02-28
KR20130136004A (en) 2013-12-11
EP2074623A4 (en) 2010-01-06

Similar Documents

Publication Publication Date Title
KR101397229B1 (en) Modular command structure for memory and memory system
US7904639B2 (en) Modular command structure for memory and memory system
EP2487794A2 (en) Modular command structure for memory and memory system
KR101154148B1 (en) Multiple independent serial link memory
US10445228B2 (en) Methods and apparatuses for requesting ready status information from a memory
US9971647B2 (en) Apparatus and method for programming ECC-enabled NAND flash memory
US8370603B2 (en) Architecture for address mapping of managed non-volatile memory
US8429334B2 (en) Method for preventing data loss during solder reflow process and memory device using the same
KR101260632B1 (en) Memory with output control
US10049005B2 (en) Flash memory control apparatus utilizing buffer to temporarily storing valid data stored in storage plane, and control system and control method thereof
KR101507194B1 (en) Serial interface nand
US6507881B1 (en) Method and system for programming a peripheral flash memory via an IDE bus
US20080256352A1 (en) Methods and systems of booting of an intelligent non-volatile memory microcontroller from various sources
US20180307496A1 (en) Methods for gc (garbage collection) por (power off recovery) and apparatuses using the same
US8086785B2 (en) System and method of page buffer operation for memory devices
JP3310011B2 (en) Semiconductor memory and semiconductor memory board using the same
JPH06202942A (en) Flash memory circuit and operation method
WO2002075745A1 (en) Storage device, storage device controlling method, and program
US20190384730A1 (en) System And Method For Direct Memory Access In A Flash Storage
US20100030976A1 (en) Control device
US9292429B1 (en) Off-chip non-volatile memory access
CN108538332B (en) Reading method of NAND gate flash memory
KR20240015369A (en) Memory controller, memory device and storage device including the same

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee