KR20110103388A - Error detection method and a system including one or more memory devices - Google Patents
Error detection method and a system including one or more memory devices Download PDFInfo
- Publication number
- KR20110103388A KR20110103388A KR1020117009393A KR20117009393A KR20110103388A KR 20110103388 A KR20110103388 A KR 20110103388A KR 1020117009393 A KR1020117009393 A KR 1020117009393A KR 20117009393 A KR20117009393 A KR 20117009393A KR 20110103388 A KR20110103388 A KR 20110103388A
- Authority
- KR
- South Korea
- Prior art keywords
- error
- command
- memory device
- packet
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- Memory System (AREA)
Abstract
하나 이상의 메모리 장치를 포함하는 시스템 및 에러 검출 및 정정 방법이 제시된다. 시스템의 메모리 장치는 패킷을 수신하기 위한 입력을 포함한다. 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하며, 패킷의 제2 부분은 커맨드 에러 검출을 촉진하기 위한 패리티 비트를 포함할 수 있다. 메모리 장치는 패리티 비트를 기초로 적어도 하나의 커맨드 바이트내에 에러가 존재하는지를 검출하도록 구성된 에러 매니저 및 패킷을 에러 매니저에게 제공하도록 구성된 회로를 포함할 수 있다.A system including at least one memory device and an error detection and correction method is presented. The memory device of the system includes an input for receiving a packet. The first portion of the packet may include at least one command byte, and the second portion of the packet may include parity bits to facilitate command error detection. The memory device may include an error manager configured to detect whether an error exists in the at least one command byte based on the parity bits and circuitry configured to provide the packet to the error manager.
Description
[관련 출원에 대한 상호 참조][Cross reference to related application]
본 출원은 2008년 12월 18일 출원된 미국 특허 가출원 61/138,575, 2008년 12월 23일 출원된 미국 특허 가출원 61/140,147 및 2009년 4월 6일 출원된 미국 특허 출원 12/418,892에 대한 우선권을 주장하며, 이들 출원 전부는 그 전체가 본 명세서에 참조로 포함된다.This application claims priority to US patent provisional application 61 / 138,575, filed December 18, 2008, US patent provisional application 61 / 140,147, filed December 23, 2008, and US patent application 12 / 418,892, filed April 6, 2009. All of which are incorporated herein by reference in their entirety.
컴퓨터 및 다른 정보 기술 시스템은 메모리와 같은 반도체 장치를 일반적으로 포함한다. 반도체 장치는 제어기에 의해 제어되며, 컴퓨터의 중앙 처리 유닛(CPU)의 일부를 형성하거나 또는 그와는 별개일 수 있다. 제어기는 반도체 장치와 정보를 송수신하기 위한 인터페이스를 갖는다. 송수신된 정보에 대해 다양한 이유로 에러가 종종 발생할 수 있으며, 많은 공지된 시스템은 에러를 정정할 능력이 결여되거나 또는 많은 에러를 정정할 만족할 만한 능력이 적어도 결여된다는 점이 알려져 있다.Computers and other information technology systems generally include semiconductor devices such as memories. The semiconductor device is controlled by a controller and may form part of or separate from a central processing unit (CPU) of a computer. The controller has an interface for transmitting and receiving information with the semiconductor device. Errors can often occur for a variety of reasons for the transmitted and received information, and it is known that many known systems lack the ability to correct errors or at least lack a satisfactory ability to correct many errors.
본 발명의 목적은 하나 이상의 메모리 장치를 포함하는 개선된 시스템을 제공하는 것이다.It is an object of the present invention to provide an improved system comprising one or more memory devices.
본 발명의 일 측면에 따르면, 메모리 장치로서, 패킷을 수신하기 위한 입력으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 적어도 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 입력을 포함하는 메모리 장치가 제공된다. 에러 매니저는 상기 패리티 비트를 기초로 에러가 적어도 하나의 커맨드 바이트내에 존재하는지 여부를 검출하도록 구성된다.According to an aspect of the invention, there is provided a memory device, comprising: as input for receiving a packet, a first portion of the packet includes at least one command byte, and a second portion of the packet enables at least command error detection A memory device is provided that includes an input, the parity bit being included. The error manager is configured to detect whether an error exists in at least one command byte based on the parity bit.
본 발명의 다른 측면에 따르면, 시스템으로서, 복수개의 반도체 메모리 장치; 및 상기 장치와 통신하기 위한 제어 장치를 포함하는 시스템이 제공된다. 상기 제어 장치는 메모리 장치로 가는 패킷을 생성하기 위한 커맨드 엔진을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함한다. 상기 제어기의 출력은 상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력할 수 있다. 상기 시스템의 상기 제어기와 상기 반도체 메모리 장치 사이에 직렬-상호 연결 구조가 존재하여, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는다.According to another aspect of the invention, a system comprising: a plurality of semiconductor memory devices; And a control device for communicating with the device. The control device includes a command engine for generating a packet destined for the memory device. The first portion of the packet includes at least one command byte and the second portion of the packet includes parity bits to enable command error detection. The output of the controller may output the packet to a first device of the plurality of semiconductor memory devices. A series-interconnect structure exists between the controller of the system and the semiconductor memory device, so that the system has a point-to-point ring topology.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 입력을 갖는 메모리 장치내에서 실행되는 방법이 제공된다. 상기 방법은 패킷을 수신하는 단계로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는 단계를 포함한다. 상기 방법은 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하는 단계를 포함한다.According to another aspect of the invention, a method is provided that is executed in a memory device having an input for receiving a packet. The method comprises receiving a packet, wherein the first portion of the packet includes at least one command byte and the second portion of the packet includes parity bits to enable command error detection. . The method also includes detecting whether there is an error in the at least one command byte based on the parity bit.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단을 포함하는 장치가 제공된다. 상기 장치는 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단을 포함한다. 상기 장치는 또한 상기 패킷을 에러 매니저에게 제공하기 위한 수단을 포함한다.According to another aspect of the present invention, there is provided a means for receiving a packet, wherein the first portion of the packet comprises at least one command byte, and the second portion of the packet contains a parity bit to enable command error detection. Including, there is provided an apparatus comprising the means. The apparatus also includes means for detecting whether there is an error in the at least one command byte based on the parity bits. The apparatus also includes means for providing the packet to an error manager.
본 발명의 다른 측면에 따르면, 복수개의 반도체 메모리 장치 및 상기 장치와 통신하기 위한 제어기 수단을 포함하는 시스템이 제공된다. 상기 제어기 수단은 메모리 장치로 가는 패킷을 생성하기 위한 수단을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함한다. 상기 제어기 수단은 또한 상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력하기 위한 수단을 포함한다. 상기 시스템의 반도체 메모리 장치들 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는다.According to another aspect of the invention, a system is provided comprising a plurality of semiconductor memory devices and controller means for communicating with the devices. The controller means includes means for generating a packet destined for a memory device. The first portion of the packet includes at least one command byte and the second portion of the packet includes parity bits to enable command error detection. The controller means also includes means for outputting the packet to a first of the plurality of semiconductor memory devices. A series-interconnect structure exists between the semiconductor memory devices of the system, and the system has a point-to-point ring topology.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 입력 수단을 갖는 메모리 장치가 제공된다. 상기 메모리 장치는 또한 패킷을 수신하기 위한 수단을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함한다. 상기 메모리 장치는 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단을 포함한다.According to another aspect of the present invention, a memory device having an input means for receiving a packet is provided. The memory device also includes means for receiving a packet. The first portion of the packet includes at least one command byte and the second portion of the packet includes parity bits for enabling command error detection. The memory device also includes means for detecting whether there is an error in the at least one command byte based on the parity bits.
그러므로, 하나 이상의 메모리 장치를 포함하는 개선된 시스템이 제시되었다.Therefore, an improved system has been proposed that includes one or more memory devices.
예로서 첨부된 도면이 참조된다.Reference is made to the accompanying drawings by way of example.
도 1a는 병렬 클럭 신호를 수신하는 예시적 시스템의 블럭도이다.
도 1b는 소스 동기 클럭 신호를 수신하는 시스템 예의 블럭도이다.
도 2a는 도 1a의 시스템과 유사하나 보다 특정 시스템 예인 시스템 예의 블럭도이다.
도 3은 메모리 장치 예의 도면이다.
도 4는 메모리 제어기 예의 도면이다.
도 5는 실시예에 따른 패리티 비트 계산을 도시한다.
도 6은 실시예에 따른 에러를 처리하는 방법을 흐름도 형태로 도시한다.
도 7은 실시예에 따른 브로드캐스트 상태 판독 커맨드를 도시하는 타이밍도이다.1A is a block diagram of an example system for receiving parallel clock signals.
1B is a block diagram of an example system for receiving a source synchronous clock signal.
FIG. 2A is a block diagram of a system example that is similar to the system of FIG. 1A but is a more specific system example.
3 is a diagram of an example memory device.
4 is a diagram of an example memory controller.
5 illustrates parity bit calculation according to an embodiment.
6 is a flowchart illustrating a method of processing an error according to an exemplary embodiment.
7 is a timing diagram illustrating a broadcast status read command according to the embodiment.
도면에 도시된 예의 유사한 특징을 나타내기 위하여 상이한 도면에 동일 또는 유사한 참조 번호가 사용되었다.The same or similar reference numerals are used in different drawings to indicate similar features of the examples shown in the drawings.
링형 토폴로지를 갖는 시스템 예가 미국 특허 공개 2008/0201548 A1, 2008년 8월 21일 공개, "SYSTEM HAVING ONE OR MORE MEMORY DEVICES" , 미국 공개 2008/0049505 Al, 2008년 2월 28일 공개, "SCALABLE MEMORY SYSTEM", 및 미국 공개 2008/0052449 Al, 2008년 2월 28일 공개, "MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM"에 기재되어 있다. 이하 상세한 설명에서는 다양한 관점에서 특정 예의 커맨드, 어드레스 및 데이터 포맷, 프로토콜, 내장 장치 구조, 버스 트랜잭션 등이 참조되며, 당업자라면 상술한 특허 문헌을 참조로 다른 예의 상세가 취득될 수 있음을 이해할 것이다.Examples of systems with ring topologies are disclosed in US Patent Publication 2008/0201548 A1, published August 21, 2008, "SYSTEM HAVING ONE OR MORE MEMORY DEVICES", US Publication 2008/0049505 Al, published February 28, 2008, "SCALABLE MEMORY" SYSTEM ", and US Publication 2008/0052449 Al, published February 28, 2008," MODULAR COMMAND STRUCTURE FOR MEMORY AND MEMORY SYSTEM. " In the following detailed description, reference is made to various examples of commands, addresses and data formats, protocols, embedded device structures, bus transactions, and the like, and those skilled in the art will understand that details of other examples may be obtained by reference to the above-mentioned patent documents.
도 1a 및 1b를 참조한다. 일부 실시예에 따르면, 커맨드 패킷은 제어기로부터 오고, 포인트-투-포인트 방식으로 각각의 메모리 장치를 통해 링 주위를 통과하여, 돌아가서 제어기에서 종료한다. 도 1a를 참조하면, 병렬 클럭 신호를 수신하는 시스템 예의 블럭도이며, 도 1b는 소스 동기 클럭 신호를 수신하는 도 1a의 동일한 시스템의 블럭도이다. 클럭 신호는 단일 종료 클럭 신호 또는 차동 클럭 쌍일 수 있다.See FIGS. 1A and 1B. According to some embodiments, the command packet comes from the controller, passes around the ring through each memory device in a point-to-point manner, goes back and ends at the controller. 1A is a block diagram of an example system for receiving parallel clock signals, and FIG. 1B is a block diagram of the same system of FIG. 1A for receiving a source synchronous clock signal. The clock signal may be a single end clock signal or a differential clock pair.
도 1a에서, 시스템(20)은 출력 포트(Sout)과 입력 포트(Sin) 중 적어도 하나를 갖는 메모리 제어기(22) 및 직렬로 연결된 메모리 장치(24, 26, 28 및 30)를 포함하여, 시스템의 제어기 장치와 메모리 장치 사이에 직렬-상호 결선 구조가 존재한다. 도 1a에 명백하게 분류한 건 아니지만, 각 메모리 장치는 Sin 입력 포트 및 Sout 출력 포트를 갖는다. 입력 및 출력 포트는 메모리 장치를 시스템에 인터페이스시키는 하나 이상의 물리적 핀 또는 연결로 구성된다. 일부 예에서, 메모리 장치는 플래시 메모리 장치이다. 도 1a의 현재 예는 4개의 메모리 장치를 포함하지만, 다른 예에서는 단일 메모리 장치 또는 임의의 적절한 수의 메모리 장치를 포함할 수 있다. 따라서, 메모리 장치(24)가 메모리 제어기(22)의 Sout에 연결되어 있으므로, 시스템(20)의 제1 장치라면, 메모리 장치(30)는 메모리 제어기(22)의 Sin에 연결되어 있으므로, 시스템(20)의 N번째 또는 최후 장치로서, N은 0 보다 큰 정수이다. 메모리 장치(26 내지 28)는 제1과 최후 메모리 장치 사이의 중간의 직렬 연결된 메모리 장치이다. 각각의 메모리 장치는 시스템의 초기화 가동시 별개의 식별(ID) 번호 또는 장치 어드레스(DA)를 취할 수 있어서, 개별적으로 어드레스 가능하다. 수개의 공유의 미국 특허 출원은 시스템의 직렬 연결된 메모리 장치에 대한 장치 어드레스를 발생 및 할당하기 위한 방법을 설명한다. 예를 들면, 미국 특허 공개 2007/0233917 Al "APPARATUS AND METHOD FOR ESTABLISHING DEVICE IDENTIFIERS FOR SERIALLY INTERCONNECTED DEVICES" 및 미국 특허 공개 2008/0080492 AI "PACKET BASED IDGENERATION FOR SERIALLY INTERCONNECTED DEVICES"를 참조.In FIG. 1A, the
하나의 메모리 장치의 데이터 입력이 이전 메모리 장치의 데이터 출력에 연결되므로, 메모리 장치(24 내지 30)(도 1a)는 직렬 연결된 것으로 간주되어, 체인 형태의 제1 및 최후 메모리 장치를 예외로 하고, 직렬 연결 시스템 구조를 형성하게 된다. 메모리 제어기(22)의 채널은 도전선에 연결된 개별 핀 또는 동일 핀에 의해 제공되는 데이터, 어드레스 및 제어 정보를 포함한다. 도 1a의 예는 하나의 채널을 포함하며, 여기서 하나의 채널은 Sout 및 대응하는 Sin 포트를 포함한다. 그러나, 메모리 제어기(22)는 개별 메모리 장치 체인을 수용하기 위한 적절한 수의 채널을 포함할 수 있다. 도 1a의 예에서, 메모리 제어기(22)는 클럭 신호(CK)를 제공하며, 이는 전체 메모리 장치에 병렬로 연결된다.Since the data input of one memory device is connected to the data output of the previous memory device,
일반적인 동작에서, 메모리 제어기(22)는 그 Sout 포트를 통해 커맨드를 발급하고, 이는 동작 코드(op 코드), 장치 어드레스, 판독 또는 프로그래밍을 위한 동작 어드레스 정보, 및 레지스터 프로그래밍을 위한 선택적 데이터를 포함한다. 명령은 직렬 비트스트림 명령 패킷으로서 발급될 수 있으며, 여기서 패킷은 소정 크기의 세그먼트로 논리적으로 세분될 수 있다. 각각의 세그먼트는 예를 들면 크기가 1 바이트일 수 있다. 비트스트림은 순서 또는 시간에 걸쳐 제공되는 일련의 비트이다. 커맨드는 그 입력 포트(Sin)를 통해, 장치 어드레스를 그 할당된 어드레스와 비교하는, 제1 메모리 장치(24)에 의해 수신된다. 어드레스가 일치하는 경우, 메모리 장치(24)는 커맨드를 실행한다. 커맨드는 그 자신의 출력 포트(Sout)를 통해 다음 메모리 장치(26)로 통과하고, 동일한 절차가 반복된다. 결과적으로, 선택된 메모리 장치라 칭하는 일치하는 메모리 어드레스를 갖는 메모리 장치는 커맨드에 의해 규정된 동작을 수행할 것이다. 커맨드가 판독 데이터 커맨드인 경우, 선택된 메모리 장치는 메모리 제어기(22)의 Sin 포트에 도달할 때까지 중간의 메모리 장치를 직렬로 통과된 그 출력 포트 Sout(라벨 없음)를 통해 판독된 데이터를 출력할 것이다. 커맨드 및 데이터가 직렬 비트스트림으로 제공되므로, 직렬 비트를 클럭 인 및 클럭 아웃하기 위하여 및 내부 메모리 장치 동작을 동기화하기 위하여, 각각의 메모리 장치에는 클럭이 이용된다. 이 클럭은 시스템(20)내의 전체 메모리 장치에 의해 이용된다.In normal operation,
도 1a에 따른 시스템에서 사용되는 클럭 주파수가 상대적으로 낮으므로, 강한 데이터 통신을 제공하기 위해서 중단되지 않는 풀 스윙(full swing) CMOS 신호 레벨이 이용될 수 있다. 이는 또한, 당업자에게는 공지된 것이지만, 저 전압 트랜지스터 트랜지스터 로직(LVTTL) 시그널링으로 칭한다. Since the clock frequency used in the system according to FIG. 1A is relatively low, an uninterrupted full swing CMOS signal level can be used to provide strong data communication. This is also known to those skilled in the art, but referred to as low voltage transistor transistor logic (LVTTL) signaling.
도 1a의 시스템(20)에 대한 추가 성능 개선은 도 1b의 시스템에 의해 얻어질 수 있다. 도 1b의 시스템(40)은 클럭 신호(CK)가 반드시 메모리 제어기(42)로부터가 아니라 이전 장치로부터 각각의 메모리 장치에 직렬로 제공된다는 점을 제외하고는 도 1a의 시스템(20)과 유사하다. 각각의 메모리 장치(44, 46, 48 및 50)는 클럭 입력 포트에서 소스 동기 클럭을 수신하고, 이를 그 클럭 출력 포트를 통해 시스템내의 다음 장치로 포워드한다. 시스템(40)의 일부 예에서, 클럭 신호(CK)는 하나의 메모리 장치로부터 짧은 신호선을 통해 다른 장치로 통과된다. 그러한 환경에서, 병렬 클럭 분포 방식(멀티플 장치에 의한 로딩과 같은)과 관련된 클럭 성능 문제가 존재하지 않고, CK는 고 주파수에서 동작할 수 있다. 따라서, 시스템(40)은 도 1a의 시스템(20) 보다 더 빠른 속도로 동작할 수 있다. 예를 들면, HSTL(High Speed Transceiver Logic) 시그널링이 고성능 데이터 통신을 제공하기 위해서 사용될 수 있다. HSTL 시그널링 포맷에서, 각각의 메모리 장치는 입력 데이터 신호의 로직 상태를 결정하는데 사용되는 기준 전압을 수신할 수 있다. 다른 유사한 시그널링 포맷은 SSTL(Stub Series Terminated Logic) 시그널링 포맷이 있다. 따라서, 시스템(20 및 40)의 메모리 장치내의 데이터 및 클럭 입력 회로는 서로와는 구조적으로 상이하다. HSTL 및 SSTL 시그널링 포맷 둘다는 당업자에는 공지되어 있다.Further performance improvements to the
도 1b에 도시된 유형의 시스템의 보다 구체적인 예를 제공하기 위하여, 도 2a가 참조된다. 도 2a에서, 시스템(100)은 메모리 제어기(102) 및 4개의 메모리 장치(104, 106, 108 및 110)를 포함한다. 메모리 제어기(102)는 메모리 장치와 병렬로 제어 신호를 제공한다. 이들은 칩 인에이블 신호(CE#) 및 리셋 신호(RST#)를 포함한다. CE#의 예시적 사용에서, 장치는 CE#가 로 로직 레벨인 경우에 인에이블된다. 이전에 고려된 다수의 장치에서, 플래시 메모리 장치가 프로그램 또는 소거 동작을 시작한다면, CE#는 디어서트되거나 또는 하이 로직 레벨로 구동될 수 있다. 그러나, 일 실시예에서, CE#의 디어서트는 디스에이블된 직렬 메모리 장치의 Sin에서 Sout으로의 통신을 디스에이블하는 효과를 갖는다. 직렬 메모리 장치가 링 형태로 연결되므로, 임의의 장치에 대한 디스에이블링은 링 주위의 통신을 파괴하고, 메모리 제어기는 메모리 시스템내의 전체 메모리 장치와의 전체 통신이 불가능하게 된다. 결과적으로, CE#는 전체 직렬 메모리 장치에 공통인 신호이고, 전체 메모리를 저 전력 상태가 되도록 하는데 이용된다. RST#를 사용하는 일 예에서, 메모리 장치는 RST#가 로 로직 레벨인 경우에 리셋 모드로 설정된다. 리셋 모드에서, 전력은 안정화되고, 장치는 전체 유산 상태 머신을 초기화하고 설정 및 상태 레지스터를 그들의 디폴트 상태로 리셋함에 의해 동작에 대해 스스로 대비한다. 메모리 제어기(102)는 상보 클럭 신호(CK 및 CK#)를 제공하기 위한 클럭 출력 포트(CKO# 및 CKO) 및 시스템의 최후 메모리 장치로부터 상보 클럭 신호를 수신하기 위한 클럭 입력 포트(CKI# 및 CKI)를 포함한다. 각각의 메모리 장치는 수신된 클럭의 위상을 발생하기 위한 DLL 또는 PLL과 같은 클럭 합성기를 포함한다. 신뢰할 만한 동작을 보장하기 위하여 입력 데이터 유효 윈도우내에 내부적으로 클럭 에지를 중심에 위치시키기 위하여 특정 위상이 사용될 수 있다. 도 2a의 각각의 메모리 장치는 상보 클럭 신호를 다음 메모리 장치의 클럭 입력 포트에 통과시키기 위한 클럭 출력 포트(CKO# 및 CKO)를 갖는다. 최후 메모리 장치(110)는 클럭 신호를 다시 메모리 제어기(102)로 제공한다. Reference is made to FIG. 2A to provide a more specific example of a system of the type shown in FIG. 1B. In FIG. 2A,
메모리 제어기(102)의 채널은 데이터 출력 포트(Sout), 데이터 입력 포트(Sin), 커맨드 스트로브 입력(CSI), 커맨드 스트로브 출력(CSO), 데이터 스트로브 입력(DSI), 및 데이터 스트로브 출력(DSO)을 포함한다. 출력 포트(Sout) 및 입력 포트(Sin)는 1 비트 폭 또는 n 비트 폭일 수 있으며, n은 메모리 제어기의 특성에 따른 양의 정수이다. 예를 들면, n이 1이면, 1 바이트의 데이터가 클럭의 8개의 데이터 래칭 에지 이후에 수신된다. 데이터 래칭 클럭 에지는 싱글 데이터 레이트(SDR) 동작에서 예를 들면 상승 클럭 에지이거나 또는 더블 데이터 레이트(DDR) 동작에서 예를 들면 상승 및 하강 클럭 에지 모두일 수 있다. n이 2 인 경우, 1 바이트의 데이터가 클럭의 4개의 래칭 에지 이후에 수신된다. n이 4인 경우, 1 바이트의 데이터가 클럭의 2개의 래칭 에지 이후에 수신된다. 메모리 장치는 임의 폭의 Sout 및 Sin에 대해 정적으로 구성되거나 또는 동적으로 구성될 수 있다. 따라서, n이 1 보다 큰 구조에서, 메모리 제어기는 데이터를 병렬 비트스트림으로 제공한다. CSI는 입력 포트(Sin)에 나타나는 래칭 커맨드 데이터를 제어하거나 또는 인에이블링하는데 이용되며, 커맨드가 데이터 입력 포트(Sin)에 존재하는 경우에 시간의 범위를 정하기 위한 펄스 지속 기간을 갖는다. 보다 상세하게는, 커맨드 데이터는 다수의 클럭 사이클에 의해 측정되는 지속 기간을 가질 것이며, CSI 신호의 펄스 지속 기간은 대응하는 지속 기간을 가질 것이다. DSI는 판독 데이터를 출력하기 위하여 선택된 메모리 장치의 출력 포트(Sout) 버퍼를 인에이블링하는데 이용되며, 메모리 장치의 데이터 출력 포트(Sout)로부터 제공된 판독 데이터의 범위를 제한하기 위한 펄스 지속 기간을 가져서, 메모리 제어기는 판독 트랜잭션에서의 데이터의 량을 제어할 수 있다.The channels of the
도 2a의 현재 설명된 실시예가 고속 동작을 고려한 것이므로, 예를 들면 HSTL 시그널링 포맷과 같은 고속 시그널링 포맷이 이용된다. 따라서, Sin, CSI 및 DSI 입력 포트에서 수신된 신호의 로직 레벨을 결정하기 위하여 각각의 메모리 장치에 의해 사용되는 기준 전압(VREF)이 각각의 메모리 장치에 제공된다. 기준 전압(VREF)이 예를 들면 인쇄 회로 기판 상의 다른 회로에 의해 생성될 수 있으며, HSTL 신호의 전압 스윙 중간 포인트를 기초로 소정 전압 레벨로 설정된다.Since the presently described embodiment of FIG. 2A takes into account high speed operation, a fast signaling format such as, for example, the HSTL signaling format is used. Thus, each memory device is provided with a reference voltage VREF used by each memory device to determine the logic level of the signal received at the Sin, CSI and DSI input ports. The reference voltage VREF can be generated, for example, by another circuit on the printed circuit board and is set to a predetermined voltage level based on the voltage swing midpoint of the HSTL signal.
도 2a의 실시예에서, 각각의 메모리 장치는 인쇄 회로 기판 상에 위치 지정되어, 한 장치 상의 Sout 출력 포트 핀과 링 상의 다음 장치의 Sin 입력 포트 핀 사이의 거리 및 신호 트랙 길이는 최소화된다. 다르게는, 4개의 메모리 장치는 신호 트랙 길이를 더욱 최소화하는 시스템 인 패키지(SIP) 모듈내에 모집될 수 있다. 메모리 제어기(102) 및 메모리 장치(104 내지 110)는 링 토폴로지를 형성하기 위하여 직렬로 연결되는데, 이는 최후 메모리 장치(110)가 그 출력을 다시 메모리 제어기(102)에 제공한다는 것을 의미한다. 그러므로, 당업자라면 메모리 장치(110)와 메모리 제어기(102) 사이의 거리는 용이하게 최소화될 것임을 이해할 것이다.In the embodiment of FIG. 2A, each memory device is positioned on a printed circuit board such that the distance between the Sout output port pin on one device and the Sin input port pin of the next device on the ring is minimized. Alternatively, four memory devices can be recruited in a system-in-package (SIP) module that further minimizes the signal track length. The
도 2b에서, 시스템(150)은 메모리 제어기(152) 및 메모리 장치(154, 156, 158 및 160)를 포함한다. 메모리 제어기(152)는 클럭 신호가 병렬로 제공되어서, 각각의 메모리 장치의 클럭 출력 포트(CKO# 및 CKO)가 존재하지 않거나 단선된다는 점을 제외하고는 도 2a에 도시된 메모리 제어기(102)의 것과 기능적인 유사함을 제공하도록 설계될 수 있다. 더욱이, 도 2a의 시스템과 비교할 때 도 2b의 시스템에 대해, 데이터 및 스트로브 신호에 대한 시그널링 포맷은 상이하다. 예를 들면, 도 2b의 시스템에 대한 시그널링 포맷은 풀 스윙 비종료 LVTTL 신호 포맷일 수 있다. 낮은 클럭 주파수와 결부하여 이용되는 LVTTL 시그널링은 기준 전압(VREF)을 사용하지 않는다. 도 2b의 시스템에서만 이용되는 메모리 장치는 VREF 입력을 필요로 하지 않는다. 그러한 경우, VREF는 시그널링 중간 포인트를 제외한 전압 레벨로 설정되거나 또는 사용되는 LVTTL 시그널링을 표시하도록 설정된다. 예를 들면, 그러한 장치에 대해, 도2a에 따른 HSTL 시그널링 및 네트워크 구조와 반대로 도 2b에 따른 LVTTL 시그널링 및 네트워크 구성을 나타내기 위하여, VREF는 VDD 또는 VSS로 설정될 수 있다.In FIG. 2B,
실시예에 따르면, 도 2a의 메모리 장치(104, 106, 108 및 110) 및 도 2b의 메모리 장치(154, 156, 158 및 160)는 다른 메모리 장치와의 직렬 상호 결선을 위해 설계된 입력/출력 인터페이스를 갖는 임의 유형의 메모리 장치일 수 있다. 본 실시예에 따르면, 도 2a 및 2b의 메모리 장치는 동일할 수 있으며, 따라서 이들이 LVTTL 입력 신호 또는 HSTL 입력 신호와 동작할 수 있는 입력 및 출력 버퍼 회로를 가지므로, 두 시스템 모두에서 동작 가능하다. 당업자라면 메모리 장치가 이들 LVTTL 또는 HSTL 신호 이의의 다른 유형의 신호 포맷으로 동작하기 위한 입력 및 출력 버퍼 회로를 포함할 수 있음을 이해할 것이다.According to an embodiment, the
상술한 것처럼, 이전 도면들에 도시된 각각의 시스템은 하나 이상의 메모리 장치를 포함하고, 실시예에 따르면, 도 3은 이전 설명된 시스템 중 임의의 하나 내에 제공될 수 있는 메모리 장치(200)의 예에 대한 도면이다. 신규한 메모리 장치(200)는 메모리 뱅크(202)를 가지며, 여기서 적어도 일부의 예에서는 복수개(n)의 소거 가능한 블럭을 갖는 NAND 플래시 셀 어레이 구조이다. 소거 가능한 블럭의 각각은 복수개(m)의 프로그램 가능한 페이지로 분할된다. 각각의 페이지는 (j+k) 바이트로 구성된다. 페이지는 데이터가 저장되는 j-바이트 데이터 저장 영역 및 일반적으로 에러 관리 기능을 위해 이용되는 별개의 k-바이트 영역으로 분리된다. 각각의 페이지는 예를 들면 2,112 바이트로서 이중 2,048 바이트는 데이터 저장을 위해 이용되고, 64 바이트는 에러관리기능을 위해 이용될 것이다. 상술한 메모리 뱅크(202)는 페이지에 의해 억세스된다. 도 3이 단일 메모리 뱅크(202)를 도시하지만, 메모리 장치(200)는 하나 이상의 메모리 뱅크(202)를 가질 수 있다.As mentioned above, each system shown in the previous figures includes one or more memory devices, and in accordance with an embodiment, FIG. 3 is an example of a
메모리 뱅크(202)에 억세스하기 위한 커맨드는 제어기로부터 I/O(입력/출력) 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신된다. 수신된 커맨드는 커맨드 레지스터(214)에 진입하고, 거기에서 실행시까지 유지한다. 제어 로직(216)은 커맨드를 메모리 뱅크(202)에 반대해서 실행될 수 있는 형태로 변환한다. 일반적으로 커맨드는 칩의 외장 패키지 상의 상이한 핀들의 어설션(assertion)을 통해 메모리 장치(200)로 진입하며, 여기서 상이한 핀들은 상이한 커맨드를 나타내는데 이용될 수 있다. 예를 들면, 커맨드는 판독, 프로그램, 소거, 레지스터 판독, 및 레지스터 기록을 포함할 수 있다. 레지스터 기록에 대해, 예를 들면 메모리 장치(200)는 ID 당 하나의 바이트를 포함하는 5-바이트 - 1 바이트는 커맨드용이고, 나머지 바이트는 페이로드임 - 레지스터 기록 커맨드 패킷을 처리할 수 있다. The command for accessing the memory bank 202 is received by the
판독 및 프로그램 커맨드는 페이지 단위로 실행되고, 소거 커맨드는 블럭 단위로 실행된다. 또한, 메모리 장치(200)의 수개의 예에서, 장치의 다양한 핀 각각이 스트로브 포트 중 하나, 데이터 포트 중 하나 또는 도 2a 및 2b 와 결부하여 전술한 것과 같은 다른 포트와 관련된다. 여기서 I/O 회로(213)는 데이터 핀과 메모리 장치(200)의 내부 부품들 사이에 도시되고, 칩 인터페이스 회로(215)는 다른 핀과 메모리 장치(200)의 내부 부품들 사이에 도시된다.Read and program commands are executed in units of pages, and erase commands are executed in units of blocks. Also, in some examples of
판독 또는 프로그램 커맨드가 I/O 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신되는 경우, 커맨드가 관련되는 메모리 뱅크(200)내의 페이지에 대한 어드레스는 I/O 회로(213)에 의해 어드레스 버퍼 및 래치(218)에 제공된다. 어드레스 버퍼 및 래치(218)로부터, 어드레스 정보는 다음으로 제어 및 프리디코더(206), 센스 증폭기(S/A) 및 데이터 레지스터(204) 및 어드레스에 의해 표시된 페이지를 억세스하기 위한 행 디코더(208)에 제공된다. 판독 동작에 대해서, 데이터 레지스터(204)는 완전한 페이지를 수신하고, 이는 다음으로 메모리 장치(200)로부터의 출력을 위하여, I/O 회로(213)(보다 상세하게는 명백하게 도시되지는 않았지만 I/O 회로(213)의 이하의 하부 부품에 제공됨: I/O 버퍼 및 래치, 다음으로 출력 드라이버)에 제공된다.When a read or program command is received by the
어드레스 버퍼 및 래치(218)는 어드레스가 위치하는 페이지를 결정하고, 페이지에 대응하는 행 어드레스를 행 디코더(208)에 제공한다. 대응하는 행은 액티베이트된다. 데이터 레지스터 및 S/A(204)는 페이지를 감지하고, 데이터를 페이지로부터 데이터 레지스터(204)로 전송한다. 전체 페이지로부터의 데이터가 데이터 레지스터로 전송된 경우, 데이터는 장치로부터 I/O 회로(213)를 통하여 순차적으로 판독된다.The address buffer and latch 218 determine the page where the address is located and provide the
프로그램 커맨드는 또한 페이지 단위로 처리된다. 프로그램 커맨드는 I/O 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신되고, 첨부된 어드레스는 I/O 회로(213)를 통해 어드레스 버퍼(218)에 의해 수신된다. 입력 데이터는 I/O 회로(213)에 의해 수신되어 데이터 레지스터(204)로 전송된다. 일단 전체 입력 데이터가 데이터 레지스터(204)내에 있는 경우, 입력 데이터가 저장될 페이지는 입력 데이터로 프로그램된다.Program commands are also processed page by page. The program command is received by the
소거 커맨드는 블럭 단위로 처리된다. 소거 커맨드는 I/O 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신되고, 블럭 어드레스는 I/O 회로(213)를 통해 어드레스 버퍼(218)에 의해 수신된다.The erase command is processed in blocks. The erase command is received by the
도시된 메모리 장치(200)는 ECC 매니저(217)를 또한 선택적으로 포함한다. ECC 매니저(217)는 실시예에 따른 에러 검출 및 정정을 가능하게 하며, 이는 다음에 보다 상세히 설명된다. 도시된 ECC 매니저는 제어 로직(216)과 통신하는 것으로 도시되나, 별도의 예에서는 ECC 매니저는 예를 들면 하나 이상의 어드레스 버퍼 및 래치(218) 및 커맨드 레지스터(214)와 같은 다른 도시된 부품에 대해 직접 동작하는 것을 허용하는 회로 및 로직을 포함할 수 있다. 당업자라면 패킷이 메모리 장치(200)의 입력으로부터 ECC 매니저(217)에 제공될 수 있는 공지된 다양한 회로가 존재할 수 있음을 이해할 것이다.The illustrated
도시된 메모리 장치(200)는 또한 하나 이상의 상태 레지스터(249)(많은 유형의 종래 기술의 상태 레지스터가 당업자에게 알려져 있음)를 포함한다. 제어 로직(216)으로부터의 제어하에, 상태 레지스터는 시스템의 제어를 의도한 상태 유형 정보를 제공할 수 있으며, 일반적으로는 I/O 회로(213)를 통해 통신하는 다른 정보 및 데이터와 간섭하지 않는 방식으로 이 정보를 제공한다. 예를 들면, 상태 레지스터(249)내에 저장된 정보는 메모리 장치 상의 하나 이상의 전용 핀을 통해 구체적으로 외부로 전달될 수 있다. 이와 관련하여, 선택적 ECC 발생기(251)는 이 처리를 촉진하기 위하여 상태 레지스터(249)와 I/O 회로(213) 사이에 제공될 수 있다.The illustrated
상술한 것처럼, 도 1a, 1b, 2a 및 2b에 도시된 시스템 각각은 메모리 제어기를 포함하며, 적절한 메모리 제어기(310)의 예의 블럭도가 도 4에 도시된다.As mentioned above, each of the systems shown in FIGS. 1A, 1B, 2A, and 2B includes a memory controller, and a block diagram of an example of a
도 4를 참조하면, 도시된 신규한 플래시 제어기(310)는 중앙 처리 유닛(CPU)(312); 및 예를 들면 랜덤 억세스 메모리(RAM)(316) 및 리드 온리 메모리(ROM)(318)를 갖는 메모리(314)를 포함한다. 당업자라면, 플래시 제어기(310)가 시스템 온 칩, 시스템 인 패키지 또는 멀티플 칩으로서 구성될 수 있음을 이해할 것이다. 또한, 도시된 플래시 제어기(310)는 플래시 커맨드 엔진(322), 에러 정정 코드(ECC) 매니저(324) 및 플래시 장치 인터페이스(326)를 포함한다. 수개의 예에서, 플래시 장치 인터페이스는 도 2a에 도시된 메모리 제어기 포트 또는 도 2b에 도시된 메모리 제어기 포트를 포함할 수 있으며, (메모리 장치와의 관계에서 유사하게 설명되었으므로) 이들의 각각은 메모리 제어기(310)의 각각의 핀과 관련될 수 있다. 도시를 간편하게 하기 위하여, 도 4에 명백하게 도시하는 것처럼 플래시 제어기(310)의 전체 핀 대신에, 라벨된 플래시 장치 인터페이스(326)로 표시된다.4, the
도 4를 참조로, 도시된 플래시 제어기(310)는 호스트 인터페이스 제어기(332) 및 호스트 인터페이스(334)를 포함한다. CPU(312), 메모리(314), 플래시 커맨드 엔진(322) 및 호스트 인터페이스 제어기(332)는 공통 버스(330)를 통해 연결된다. 호스트 인터페이스(334)는 버스, 연결 링크, 인터페이스 등(예를 들면, ATA(Advanced Technology Attachment), PATA(Parallel ATA), SATA(Serial ATA), USB(universal serial bus), 또는 PCIe(PCI Express)를 통해 외부 장치로 연결하기 위한 것이다. 호스트 인터페이스(334)는 호스트 인터페이스 제어기(332)에 의해 제어된다. 도시된 예의 CPU(312)는 ROM(318)내에 저장된 명령으로 동작하며, 처리된 데이터는 RAM(316)내에 저장된다. 플래시 커맨드 엔진(322)은 커맨드를 해석(interpret)하고, 플래시 제어기(310)는 플래시 장치 인터페이스(326)를 통해 플래시 장치의 동작을 제어한다. 또한, 일부 예에서, 플래시 커맨드 엔진(322)은 메모리 장치-지정(device-destined) 패킷을 생성한다. 프로그램 데이터 에러 코드 생성, 판독 데이터 에러 코드 체킹 및 판독 데이터 정정과 같은 다른 가능한 기능들 중에서, ECC 매니저(324)는 특정 커맨드가 성공적으로 및 완전하게 수행되는 것을 보장하기 위하여 에러 정정 코드(ECC)를 생성한다. ECC 매니저는 다음에 보다 상세히 설명되는 실시예에 따라 에러 검출 및 정정을 가능하게 한다.Referring to FIG. 4, the illustrated
전송 에러가 커맨드 패킷에서 발생하는 경우, 이 에러를 처리하는 한 방법은 제어기(310)가 수신된 패킷을 본래 전송한 패킷과 비교함에 의해 에러를 검출하는 것이다. 메모리 장치가 커맨드를 적절히 수신한지 여부를 제어기가 검출하는 내재된 메카니즘이 없는 버스 토폴로지와 비교할 때 링 토폴로지의 유용한 특징이다. 그러나, 링 토폴로지의 이러한 에러 검출 방법으로도, 에러를 검출할 때까지 에러를 정정하는 것은 너무 느릴 수 있다. 예를 들면, 커맨드 패킷이 프로그램 또는 소거 커맨드이고, 에러가 어드레스 비트 중 하나(장치 어드레스, 블럭 어드레스 또는 페이지 어드레스 중 임의의 하나)에서 발생하는 경우, 프로그램 또는 소거 동작은 제어기가 에러를 검출할 때까지 이미 시작했을 수 있고, 틀린 어드레스가 겹쳐쓰이거나 또는 소거되는 경우에 데이터는 불가피하게 소실될 수 있다. 비-프로그램 또는 비-소거 커맨드가 에러로 프로그램 또는 소거 커맨드로 수신되는 경우, 다른 잠재적인 회복불가능한 에러가 발생한다. 일반적으로, 제어기는 쉽게 다른 판독 동작을 요청할 수 있고 원치않는 데이터는 폐기하므로, 에러 판독 커맨드는 문제가 아니다.If a transmission error occurs in the command packet, one way to handle this error is to detect the error by comparing the received packet with the packet originally sent by the
일반적으로, 메모리 어레이에 기록된 또는 메모리 어레이로부터 판독된 데이터 보다는 커맨드의 에러에 대해 보다 많은 우려가 있다. 데이터내에 에러 검출 및 정정 코드를 임베딩하는 많은 방식이 있다. 일부 데이터는 더 중요하며, 고도의 오버헤드 및 더 큰 성능 임팩트를 갖는 보다 강한 에러 방식을 가질 수 있다. 시스템 설계자는 필요한 강함(robustness)의 레벨을 결정할 수 있다. 적어도 일부 실시예에서 다뤄지는 문제점은 커맨드, 어드레스 및 레지스터 기록 필드에서의 에러에 관한 것이다. 이들 에러는 판독 및 기록 데이터내의 에러 검출 및 정정 코드로 해결될 수 없다. 발생할 수 있는 많은 형태의 커맨드, 어드레스, 및 레지스터 기록 에러가 존재한다. 일반적으로, 비의도된 판독은 데이터가 무시될 수 있고 제어기(310)가 커맨드를 재발급할 수 있으므로, 문제가 아니다. 사용중인 메모리 뱅크에 판독시킨 페이지는 단순히 무시될 것이다. 에러는 타겟 장치 이전에 또는 장치 이후에 링내의 어딘가에서 발생할 수 있다. In general, there is more concern about errors in commands than data written to or read from a memory array. There are many ways to embed error detection and correction codes in the data. Some data is more important and may have a stronger error scheme with high overhead and greater performance impact. The system designer can determine the level of robustness required. The problem addressed in at least some embodiments relates to errors in the command, address and register write fields. These errors cannot be solved with error detection and correction codes in the read and write data. There are many types of commands, addresses, and register write errors that can occur. In general, unintentional reads are not a problem because the data can be ignored and the
[표 1] : 가능성 있는 치명적 단일 비트 에러 시나리오. Table 1: Possible fatal single bit error scenarios.
도 3 및 4를 참조하면, 타겟 장치(200)는 에러에 대해 검사되고, 에러가 검출되면, 커맨드는 취소된다. 적어도 하나의 실시예에 따르면, 플래시 커맨드 엔진(322)에 의해 생성될 수 있는 각각의 메모리 장치-지정 커맨드 패킷에 추가 에러 코드 바이트가 첨부된다. 일부 실시예에서, 패킷은 링내의 전력을 절약하기 위하여 타겟 장치에 의해 절단될 수 있다. 판독 패킷 또는 결합된 커맨드 및 프로그램 데이터 패킷 중 데이터 부분을 절단하는데는 문제가 없다. 그러나, 패킷의 커맨드 부분 더하기 이 추가 에러 코드 바이트는 링내의 장치에 의해 절단되어서는 안되며, 제어기(310)는 에러에 대한 전체 패킷을 검사할 수 있다. 에러가 검출되는 경우, 제어기(310)는 링내의 장치가 에러를 검출하는지 여부 및 커맨드가 실제로 실행되는지 여부를 결정하기 위하여 메모리 장치의 장치 상태 레지스터(249)를 판독할 수 있다. 일부 예에 따르면, 패킷의 제1 바이트내의 장치 ID 필드에 대응하는 장치(200)인, 타겟 장치는 수신된 커맨드 바이트를 기초로 에러 코드를 계산하고, 그 결과를 수신된 에러 코드 바이트와 비교한다. 차이가 있다면, 커맨드는 실행되지 않고, 전송 에러 플래그는 상태 레지스터(249)내에서 설정될 것이다. 다르게는, 에러 코드가 에러 정정을 지원하는 경우, 장치(200)는 에러를 정정하고 커맨드를 실행할 수 있다. 예를 들면 Cyclic Redundancy Code(CRC), Bose-Chaudhuri-Hocquenghem(BCH) code, Reed-Solomon(RS) code와 같은 에러 검출 코드에 대해 많은 고려된 가능성이 있지만; 적어도 하나의 실시예에 따르면, 단일 비트 에러의 위치가 식별되도록 하고, 전체 이중 비트 에러를 검출할 수 있도록 하는 해밍 코드가 이용된다. 아래의 표 2는 추가 에러 코드 바이트를 갖는 7-바이트 커맨드 패킷의 예의 비트를 상세히 제시한다. 3 and 4, the
[표 2] : 추가 에러 코드 바이트를 갖는 7-바이트 커맨드 패킷의 예.TABLE 2 Example of 7-byte command packet with additional error code bytes.
D0-D62 - 데이터 페이로드 비트D0-D62-Data Payload Bits
P0-P64 - 패리티 비트P0-P64-Parity Bit
단일 비트 에러의 위치는 공지되므로, 단일 비트 에러는 정정될 수 있다. 또한, 2 비트 에러는 검출될 수 있지만, 정정될 수 없다. 이러한 유형의 코드는 SECDED 코드(Single Error Correction, Double Error Detection)로 공지된다.Since the location of a single bit error is known, the single bit error can be corrected. Also, a two bit error can be detected but not corrected. This type of code is known as SECDED code (Single Error Correction, Double Error Detection).
그러므로, 해밍 코드는 단일 비트 에러 정정 및 2 비트 에러 검출을 제공한다. 표 2에 도시된 7 바이트 페이로드는 전술한 미국 특허 공개 번호 제2008/0049505 A1 및 2008/0052449 A1에서 개시된 전체 지시를 포괄한다. 그러나, 8-비트 해밍 코드는 15 바이트 페이로드를 덮는데 충분하여, 큰 가능한 커맨드 셋으로의 향후의 연장을 허용한다. 7 바이트 미만의 커맨드 패킷에 대해, 비존재 데이터 비트는 0으로 간주될 수 있다. 패리티 비트는 도 5에서 도시된 것처럼 계산된다.Therefore, the Hamming code provides single bit error correction and two bit error detection. The 7 byte payload shown in Table 2 encompasses the entire indication disclosed in the aforementioned US Patent Publication Nos. 2008/0049505 A1 and 2008/0052449 A1. However, the 8-bit Hamming code is sufficient to cover the 15 byte payload, allowing future extension to a large possible command set. For command packets of less than 7 bytes, non-existent data bits may be considered zero. The parity bit is calculated as shown in FIG.
수신된 데이터 페이로드 비트 상에서 계산된 패리티 비트가 수신된 패리티 비트와는 상이한 경우, 차이는 에러인 데이터 비트를 암시한다. 예를 들면, D3가 에러로 수신된 경우, 계산된 패리티 비트 P0, P1 및 P2는 수신된 패리티 비트와는 상이하다. 각 패리티 비트 P64, P32, P16, P8, P4, P2, P1가 상이한 '1' 및 이들이 동일한 '0'을 갖는 7-비트 바이너리 워드, 즉 0,0,0,0,0,1,1는 단일 비트 에러가 발생한 D3를 암시한다. 페이로드 내에 단일 에러가 존재하는 경우 P0는 항상 상이하다. 워드내에 단일 '1'이 존재하는 경우(즉, 하나의 계산된 패리티 비트만이 수신된 패리티 비트와 상이함), 이는 패리티 비트의 에러를 표시한다. 계산된 패리티 비트 P0가 수신된 P0와 동일하고 적어도 다른 패리티의 적어도 하나가 상이하다면, 정정될 수 없는 패킷내의 이중 에러가 존재한다.If the parity bits calculated on the received data payload bits are different from the received parity bits, the difference implies the data bits being an error. For example, if D3 is received in error, the calculated parity bits P0, P1 and P2 are different from the received parity bits. Each parity bit P64, P32, P16, P8, P4, P2, P1 has a different '1' and they are the 7-bit binary words with the same '0', i.e. 0,0,0,0,0,1,1 This implies D3 where a single bit error occurred. P0 is always different when there is a single error in the payload. If there is a single '1' in the word (ie, only one calculated parity bit is different from the received parity bit), this indicates an error of the parity bit. If the calculated parity bit P0 is the same as the received P0 and at least one of the other parity is different, then there is a double error in the packet that cannot be corrected.
일부 실시예에 따르면, 상태 레지스터(249)(도 3)는 커맨드 패킷 불량이 발생함을 나타내는 추가 비트를 포함한다.According to some embodiments, status register 249 (FIG. 3) includes additional bits indicating that a command packet failure has occurred.
일 예에서, 포인트-투-포인트 링 토폴로지를 갖는 시스템의 하나 이상의 메모리 장치의 각각은 4개의 뱅크를 포함하는 메모리 장치이다. 그러한 예에서, 각각의 메모리 뱅크에 대해 대기/사용중 플래그 및 통과/불량 플래그를 포함하는 상태 레지스터의 완전 점유된 바이트일 수 있다. 그러므로, 추가 바이트는 아래의 표 3에 도시된 것처럼 추가되어야 한다.In one example, each of one or more memory devices in a system having a point-to-point ring topology is a memory device that includes four banks. In such an example, it may be a fully occupied byte of a status register containing a wait / busy flag and a pass / bad flag for each memory bank. Therefore, additional bytes should be added as shown in Table 3 below.
[표 3] : 실시예에 따른 상태 레지스터 정의, 및 커맨드 패킷 불량 플래그를 지지하는 상태 레지스터 정의Table 3: Status Register Definitions and Status Register Definitions Supporting Command Packet Bad Flags
R/Bn - 메모리 뱅크 n에 대한 대기/사용중 플래그 ('0' - 대기, '1' - 사용중)R / Bn-Wait / busy flag for memory bank n ('0'-standby, '1'-busy)
P/Fn - 메모리 뱅크 n에 대한 통과/불량 플래그 ('0' - 통과, '1' - 불량)P / Fn-pass / bad flag for memory bank n ('0'-pass, '1'-bad)
ERR - 커맨드 패킷 에러 플래그 ('0' - 에러 없음, '1' - 에러 검출 및 커맨드 비실행)ERR-command packet error flag ('0'-no error, '1'-error detection and command execution)
상술한 실시예에 대한 ERR 플래그는 지속적이다. 이는 판독 상태 레지스터 커맨드가 이후에 수신될 때까지 '1'을 유지하고, 그 이후에 클리어될 것이다.The ERR flag for the embodiment described above is persistent. This will keep '1' until a read status register command is subsequently received and will be cleared thereafter.
장치가 단일 비트 에러 정정을 지원하는 경우, 아래의 표 4에 도시된 상태 레지스터 포맷이 이용될 수 있다.If the device supports single bit error correction, the status register format shown in Table 4 below may be used.
[표 4]: 다른 실시예에 따른 상태 레지스터 정의, 상태 레지스터 정의는 커맨드 패킷 불량 플래그 및 단일 비트 에러 정정을 지원.[Table 4]: Status register definition, status register definition according to another embodiment supports command packet bad flag and single bit error correction.
R/Bn - 메모리 뱅크 n에 대한 대기/사용중 플래그 ('0' - 대기, '1' - 사용중)R / Bn-Wait / busy flag for memory bank n ('0'-standby, '1'-busy)
P/Fn - 메모리 뱅크 n에 대한 통과/불량 플래그 ('0' - 통과, '1' - 불량)P / Fn-pass / bad flag for memory bank n ('0'-pass, '1'-bad)
ERR1 - 커맨드 패킷 단일 비트 에러 플래그 ('0' - 에러 없음, '1' - 단일 비트 에러 검출 및 정정)ERR1-Command Packet Single Bit Error Flag ('0'-No Error, '1'-Single Bit Error Detection and Correction)
ERR2 - 커맨드 패킷 투 비트 에러 플래그 ( '0' - 에러 없거나 단일 비트 에러, '1' - 투 비트 에러 검출 및 커맨드 비실행)ERR2-Command packet to bit error flag ('0'-no error or single bit error, '1'-two bit error detected and command not executed)
상술한 상태 레지스터 이행 상세는 상이한 메모리 예에서 다를 것으로 이해된다. 예를 들면, 4개가 안되는 메모리 뱅크를 갖는 메모리에 대해, 단일 바이트 상태 레지스터를 사용하는 것에 대한 가능성이 고려된다. 또한, 2 보다 큰 바이트 상태 레지스터의 사용이 고려된다. 또한, 상태 비트는 상태 판독 커맨드가 수신될 때까지 지속적이거나 또는 다음의 임의의 유효 커맨드 수신시 클리어될 수 있다.It is understood that the above state register transition details are different in different memory examples. For example, for memory having fewer than four memory banks, the possibility of using a single byte status register is considered. Also, the use of byte status registers greater than two is contemplated. In addition, the status bit may be persistent until a status read command is received or cleared upon receipt of any next valid command.
적어도 하나의 실시예에 따르면, 제어기(310)(도 4)는 메모리 장치내에 있는 패리티 비트를 재계산함에 의해 또는 전송된 커맨드 패킷의 각각의 워드와 수신된 패킷을 간단히 비교함에 의해 커맨드 패킷 에러가 발생하였음을 결정할 수 있다. 후자의 접근법과 전자 사이의 차이는 후자의 접근법은 멀티-비트 에러를 식별할 수 있다는 점이다. 에러가 검출되는 경우, 제어기(310)는 상태 레지스터(249)를 판독하기 위하여 타겟 장치(200)에 상태 레지스터 판독 커맨드를 발급해야 한다. 다르게는, 장치 어드레스 필드 에러의 경우, 제어기(310)는 에러 플래그의 상태를 결정하기 위한 커맨드 패킷의 의도된 수신자인 것으로 틀리게 생각하는 장치(이하, 에러로 어드레스된 장치)에 상태 레지스터 판독 커맨드를 발급해야 한다.According to at least one embodiment, the controller 310 (FIG. 4) may generate a command packet error by recalculating the parity bits in the memory device or by simply comparing the received packet with each word of the transmitted command packet. It can be determined that it has occurred. The difference between the latter approach and the former is that the latter approach can identify multi-bit errors. If an error is detected, the
도 6은 실시예에 따른 방법(500)의 흐름도 형태를 도시한다. 먼저 단계 501에서, 제어기는 링 둘레를 순환한 이후에 커맨드 패킷을 수신하고, 제어기는 단계 503에서 에러를 검사한다. 에러가 없다면, 도시된 방법과 관련된 추가 동작이 없지만, 적어도 하나의 에러가 존재하는 경우, 단계 504로 진행한다.6 shows a flowchart form of a
단계 504에서, ID 필드내에서 에러가 발생한지 여부에 대해 결정이 이뤄진다. 에러가 ID 필드내에 발생하지 않는 경우, 단계 509로 진행한다(단계 509는 본 명세서에서 후술함). 에러가 ID 필드내에서 발생하는 경우, 단계 506으로 진행한다. 단계 506에서, 제어기(310)(도 4)는 상태 판독 커맨드를 에러로 어드레스된 장치에 발급하고, 적절한 때에 에러로 어드레스된 장치의 상태 레지스터가 판독되도록 하고, 상태 레지스터를 나타내는 지속적인 에러 비트를 클리어할 것이다. 다음으로, 제어기는 단계 507에서 에러로 어드레스된 장치 바이트를 수신한다.In
단계 509가 단계 507 다음에 온다. 단계 509에서, 타겟 장치의 레지스터가 판독되고, 다음 단계 510에 도시된 것처럼, 제어기(310)(도 4)는 링의 최후 장치로부터 타겟 장치의 에러 바이트(예를 들면, 앞의 표 3에 도시된 "Byte 1")를 수신한다. 이 단계는 타겟 장치에서의 지속적인 에러 비트 표시를 클리어할 것이다. 일부 예에서, 이러한 에러 바이트는 플래시 장치 인터페이스(326)를 통해 ECC 매니저(324)에 제공된다. 다음으로 단계 520에서, ECC 매니저(324)는 에러 바이트의 ERR 비트가 '0' 또는 '1'인지 여부를 결정할 수 있다. ERR 비트가 '0'인 경우, 이는 커맨드가 타겟 장치에서 적절히 수신되고, 타겟 장치 이후의 링의 어딘가에서 에러가 발생한 것을 의미한다. 그러한 경우에, 커맨드는 재발급될 필요가 없다. ERRo 비트가 '1'인 경우, 이는 타겟 장치 전의 어딘가에서 에러가 발생한 것을 의미한다. 그러한 경우, 커맨드는 재발급(단계 530)된다. 당업자에게 널리 알려진 것처럼, 커맨드 엔진(322)은 CPU(312)의 지시하에 커맨드의 재발급을 초래할 수 있다.Step 509 follows
일부 실시예에서, 링 내의 모든 장치는 커맨드 패킷을 에러에 대해 검사하고, 에러 플래그를 적절히 설정한다. 제어기(310)(도 4)는 어떤 지점에 에러가 발생하였고, 타겟 장치가 커맨드를 수신하고 실행하는지 여부를 결정하기 위하여 링내의 전체 장치의 상태 레지스터(249)(도 3)를 검사할 수 있다. 링내의 각각의 장치에 개별 상태 레지스터 커맨드를 전송하기 보다는, 다른 접근법은 방송 상태 판독 명령을 이용하는 것일 것이다. 전술한 미국 특허 공개 공보 제2008/0049505 A1와 일관되게, 방송 장치 어드레스(Broadcast Device Address)로 인식되는, 예를 들면 "11111111"과 같은 특수 장치 어드레스가 존재할 수 있다. 로컬 장치 ID와의 일반적 비교는 방송 장치 어드레스의 경우에는 무시된다.In some embodiments, every device in the ring checks the command packet for errors and sets the error flag appropriately. The controller 310 (FIG. 4) may check the status register 249 (FIG. 3) of the entire device in the ring to determine whether an error has occurred and at which point the target device receives and executes the command. . Rather than sending a separate status register command to each device in the ring, another approach would be to use a broadcast status read command. Consistent with the aforementioned U.S. Patent Publication No. 2008/0049505 A1, there may be a special device address, for example, "11111111", which is recognized as a Broadcast Device Address. The general comparison with the local device ID is ignored for the broadcast device address.
도 7은 실시예에 따른 방송 상태 판독 커맨드의 동작을 도시하는 타이밍도이다. 타이밍도에서, 링 내의 하나 이상의 장치를 통해 통신되는 방송 상태 판독 커맨드의 속성과 관련하여 명백한 도식적 상세를 제공하기 위하여 예를 들면 D0, Q0/D1, Q1/D2에 대한 신호 도식에 의해 복수의 장치가 표시된다.7 is a timing diagram illustrating an operation of a broadcast status read command according to the embodiment. In the timing diagram, a plurality of devices may be provided, for example, by signal diagrams for D0, Q0 / D1, Q1 / D2 to provide clear schematic details with respect to the attributes of the broadcast status read command communicated via one or more devices in the ring. Is displayed.
도 7의 도식적 실시예에 따르면, 장치 0는 CSI0 신호에 의해 표시되는 D0 상의 2-바이트 방송 판독 상태 커맨드를 수신한다. 수 클럭 사이클 후에, 상태 레지스터의 콘텐츠가 Q0 상에서 출력되어야 함을 나타내는 데이터 스트로브 신호 DSI0를 수신한다. 장치 0은 일 클럭 사이클에 의해 출력 데이터 스트로브 DSO0를 연장하고, DSO0 스트로브의 연장된 부분에 의해 표시되는 타임슬롯내의 Q0 상의 2 바이트 상태 레지스터 데이터를 출력한다. 이러한 방식으로, 데이터 스트로브 펄스의 길이는 링 상의 각각의 장치와 함께 증가하여 링 상의 모든 장치로부터의 상태 정보의 폭발(burst)을 제공한다. 이 커맨드는 전체 장치가 에러에 대한 커맨드 패킷을 검사하는 경우에 링내의 어디에 커맨드 패킷 에러가 발생하는지를 결정하는데 유용하다. 이는 또한 상이한 메모리 장치에서 동시에 발생하는 다중 판독, 프로그램, 및 소거 동작의 상태를 검사하기 위한 일반 동작에서 유용하다.According to the schematic embodiment of FIG. 7,
모든 장치가 동일한 길이 2-바이트 상태 레지스터를 갖는 방송 상태 판독 동작이 설명되었다. 이 기술은 상이한 상태 레지스터 길이를 갖는 장치에 대해서도 적용할 수 있다. 링 초기화에 대해, 제어기는 각각의 장치의 장치 정보 레지스터를 판독하고, 각각의 장치의 상태 레지스터의 길이를 결정한다. 방송 레지스터 판독 동작 동안, 각각의 장치는 그 상태 레지스터 정보를 길이와 상관없이 버스트로 첨부하고, 출력 데이터 스트로브를 이러한 첨부된 정보를 포괄하도록 연장한다. 상태 정보의 전체 버스트를 수신하면, 제어기는 각각의 장치로부터 기대되는 바이트의 수를 인지하고, 이 정보를 분리할 수 있다.A broadcast status read operation has been described in which all devices have the same length 2-byte status register. This technique is also applicable to devices with different status register lengths. For ring initialization, the controller reads the device information register of each device and determines the length of the status register of each device. During a broadcast register read operation, each device appends its status register information in bursts of any length and extends the output data strobes to encompass this attached information. Upon receiving the full burst of status information, the controller knows the number of bytes expected from each device and can separate this information.
상술한 에러 검출 및/또는 정정을 지원하는 메모리 장치는 에러 검출 및/또는 정정이 디스에이블되도록 프로그램될 수 있다. 예를 들면, 리셋시 메모리 장치는 에러 검출 및 정정을 디스에이블이 되도록 할 수 있다. 제어기가 에러 검출 및/또는 정정을 채용하기를 원하는 경우, 예를 들면 이들 기능을 인에이블하기 위하여 각각의 메모리 장치내의 제어 레지스터내에 하나 이상의 비트를 기록할 수 있다. 제어기가 이들 기능을 디스에이블하는 경우, 각각의 커맨드 패킷의 끝에서의 추가 패리티 비트가 하나의 버스 타임슬롯을 세이브하기 위하여 제거되거나 또는 메모리 장치에 의해 무시될 널 데이터로 로딩될 수 있다. 이러한 방식으로, 저가 시스템은 에러 정정 및/또는 검출을 지원할 필요가 없으나, 공통 메모리 장치는 이러한 커맨드 패킷 에러 검출 및/또는 정정을 필요로 하는 경우 외에 저가 시스템에 제공될 수 있다.Memory devices that support the error detection and / or correction described above can be programmed to disable error detection and / or correction. For example, upon reset, the memory device may disable error detection and correction. If the controller wants to employ error detection and / or correction, it may write one or more bits in a control register in each memory device, for example, to enable these functions. When the controller disables these functions, an additional parity bit at the end of each command packet can be removed to save one bus timeslot or loaded with null data to be ignored by the memory device. In this way, a low cost system does not need to support error correction and / or detection, but a common memory device can be provided to a low cost system in addition to those requiring such command packet error detection and / or correction.
일부 예에서, 이전에 설명된 방식과 유사한 에러 검출 및 정정 방식이 제공되며, 판독 및 기록 데이터에 적용된다. 이러한 추가 방식의 특정 이행에서, 커맨드 패킷에 대해 채용되는 것과 동일한 패리티 검사 로직 회로가 칩 면적 및 복잡성을 줄이기 위해 활용될 수 있다. 이하의 표 5는 커맨드 패리티 바이트 및 데이터 패리티 바이트를 갖는 기록 데이터 패킷의 예를 설명한다.In some examples, error detection and correction schemes similar to those described previously are provided and applied to read and write data. In certain implementations of this additional approach, the same parity check logic circuitry employed for the command packets can be utilized to reduce chip area and complexity. Table 5 below describes an example of a write data packet having a command parity byte and a data parity byte.
[표 5] : 커맨드 패리티 바이트 및 데이터 패리티 바이트를 갖는 기록 데이터 패킷의 예[Table 5]: Example of a write data packet having a command parity byte and a data parity byte
표 5의 예에서, 바이트 0 내지 4는 전술한 것처럼 커맨드 부분과 기능을 포함한다. 전체 페이지 크기까지의 기록 데이터 바이트의 임의 수가 커맨드 부분 다음에 온다. 패킷내의 마지막 바이트는 기록 데이터 바이트 상에서 계산된 기록 데이터 패리티 바이트이다. 전술한 동일한 SECDED 해밍 코드가 사용되는 경우, 15바이트까지의 단일 에러 정정 커버리지만을 제공할 것이다. 15 바이트 이후로는 패리티 등식은 간단히 랩 어라운드(wrap-around)하며, 단일 비트 에러 정정은 더이상 이행되지 않는다. 다르게는, 큰 데이터 패킷에 대한 우수한 에러 커버리지를 갖는 보다 강한 CRC 코드가 선택될 수 있다. 커맨드 및 데이터에 대한 개별 에러 검출 비트가 상태 레지스터내에 제공될 수 있다.In the example of Table 5, bytes 0-4 contain command portions and functions as described above. Any number of write data bytes up to the full page size follows the command portion. The last byte in the packet is the write data parity byte calculated on the write data byte. If the same SECDED Hamming code described above is used, it will only provide a single error correction coverage of up to 15 bytes. After 15 bytes, the parity equation simply wraps around, and single bit error correction is no longer implemented. Alternatively, a stronger CRC code may be selected with good error coverage for large data packets. Separate error detection bits for commands and data may be provided in the status register.
판독 데이터 패리티에 대해, 유사한 방식으로 달성될 수 있다. 내부 메모리 어레이로부터 데이터를 판독하면, 메모리 장치는 판독 데이터 패킷의 끝에 첨부하기 위하여 패리티 바이트를 계산할 것이다. 제어기는 데이터 스트로브 신호의 길이를 제어함에 의해 판독될 바이트의 수를 결정한다. 메모리 장치가 판독 데이터 버스트를 종료하는 데이터 스트로브 신호의 하강 에지를 검출하는 경우, 메모리 장치는 누적 패리티 바이트를 출력한다. 판독 데이터를 수신하면, 제어기는 동일한 패리티 계산을 수행하고, 그 결과를 비트 에러가 존재하는지 여부를 결정하기 위하여 판독 데이터의 끝에 첨부된 수신된 패리티 바이트와 비교한다. 사용자가 에러 정정 코드를 레지스터 데이터에 중첩할 수 있는 방법이 없으므로, 이는 상태 레지스터 판독 커맨드와 같은 레지스터 판독 커맨드를 위해 특히 유용하다. 메모리 어레이로 및 로부터의 통상의 판독 및 기록 데이터로, 사용자는 데이터를 저장하기 위하여 적절한 에러 검출 코드를 선택할 수 있다.For read data parity, it can be achieved in a similar manner. Reading data from the internal memory array, the memory device will calculate a parity byte to append to the end of the read data packet. The controller determines the number of bytes to be read by controlling the length of the data strobe signal. When the memory device detects the falling edge of the data strobe signal that terminates the read data burst, the memory device outputs a cumulative parity byte. Upon receiving the read data, the controller performs the same parity calculation and compares the result with the received parity byte appended to the end of the read data to determine if a bit error exists. This is particularly useful for register read commands, such as status register read commands, since there is no way for a user to superimpose error correction codes on register data. With normal read and write data to and from the memory array, the user can select an appropriate error detection code to store the data.
일부 실시예가 포인트-투-포인트 링 토폴로지를 갖는 시스템과 관련하여 도시되고 설명되었지만, 시스템의 제어기 장치와 시스템의 복수의 반도체 메모리 장치 사이에 존재하는 직렬 연결 구성이 있으므로, 예를 들면 멀티-드롭 시스템으로 표현될 수 있는 다른 유형의 시스템과 관련된 일부 다른 실시예가 이해될 것이다.Although some embodiments have been shown and described with respect to a system having a point-to-point ring topology, there are, for example, multi-drop systems because there is a series connection configuration existing between the controller device of the system and the plurality of semiconductor memory devices of the system. Some other embodiments related to other types of systems that can be represented by will be understood.
다른 변형예도 가능하다. 예를 들면, 표 3 및 4와 관련하여 전술한 4-뱅크 메모리 장치 예와 유사한 다른 예에서, 포인트-투-포인트 링 토폴로지를 갖는 시스템의 하나 또는 그 이상의 메모리 장치 각각은 브리징 장치 및 4개의 이산 메모리 장치를 포함하는 복합 메모리이다. (고려된 복합 메모리에 관한 추가 상세에 대해서는, 미국 특허 출원 번호 12/401,963 "A Composite Memory Having a Bridging Device for Connecting Discrete Memory Devices to a System"을 참조로 하고, 그 전체 내용이 참조로 포함된다.) 그러한 예에서, 상태 레지스터는 브리징 장치에 존재할 수 있다.Other variations are also possible. For example, in another example similar to the four-bank memory device example described above with respect to Tables 3 and 4, each of one or more memory devices of a system having a point-to-point ring topology is a bridging device and four discrete devices. It is a compound memory including a memory device. (For further details regarding the composite memory considered, see US Patent Application No. 12 / 401,963 "A Composite Memory Having a Bridging Device for Connecting Discrete Memory Devices to a System", the entire contents of which are incorporated by reference. In such an example, the status register may be present in the bridging device.
다수개의 실시예가 예를 들면 NAND 플래시 EEPROM 장치(들), NOR 플래시 EEPROM 장치(들), AND 플래시 EEPROM 장치(들), DiNOR 플래시 EEPROM 장치(들), 직렬 플래시 EEPROM 장치(들), DRAM 장치(들), SRAM 장치(들), Ferro RAM 장치(들), Magnetic RAM 장치(들), 상변화 RAM 장치(들), 또는 이 장치들의 적절한 조합과 같은 적합한 고상 메모리 시스템에 적용될 수 있다. 이 기술은 단일 버스 마스터 및 다중 슬레이브 또는 다중 버스 마스터 구성으로 조직된지 여부를 링 또는 다른 상호결선 토폴로지를 통해 통신하는 메모리 및 비메모리 장치 모두에 적용가능하다. Multiple embodiments include, for example, NAND flash EEPROM device (s), NOR flash EEPROM device (s), AND flash EEPROM device (s), DiNOR flash EEPROM device (s), serial flash EEPROM device (s), DRAM device (s). S), SRAM device (s), Ferro RAM device (s), Magnetic RAM device (s), phase change RAM device (s), or any suitable combination of these devices. This technique is applicable to both memory and non-memory devices that communicate over a ring or other interconnection topology whether organized in a single bus master and multiple slave or multiple bus master configurations.
소자가 다른 소자에 "연결(connected)" 또는 "결합(coupled)"되는 것으로 칭하는 경우, 이는 다른 소자에 직접 연결 또는 결합되거나 또는 중간 소자가 존재할 수 있다. 대조적으로, 소자가 여기서 다른 소자에 "직접적으로 연결(directly connected)" 또는 "직접적으로 결합(directly copuled)"이라 칭하는 경우, 중간 소자가 존재하지 않는다. 소자들 사이의 관계를 기술하는데 사용되는 다른 용어는 유사한 방식(즉, "사이(between)"와 "사이에 직접(directly between)", "인접(adjacent)"과 "직접 인접(directly adjacent)" 등)으로 해석되어야 할 것이다.When an element is referred to as being "connected" or "coupled" to another element, it may be directly connected or coupled to another element or an intermediate element may be present. In contrast, when an element is referred to herein as "directly connected" or "directly copuled" to another element, there is no intermediate element. Other terms used to describe the relationships between devices are similar in nature (ie, "between" and "directly between", "adjacent" and "directly adjacent"). Etc.).
설명된 실시예에 대해 일정한 변형 및 개조가 가능하다. 그러므로, 상술한 실시예는 설명에 도움이 되기 위한 것이며 제한적이지 않은 것으로 이해될 것이다.
Certain modifications and variations are possible to the described embodiment. Therefore, it is to be understood that the foregoing embodiments are intended to be illustrative, and not restrictive.
Claims (41)
패킷을 수신하기 위한 입력으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 입력;
상기 패리티 비트를 기초로 에러가 상기 적어도 하나의 커맨드 바이트내에 존재하는지 여부를 검출하도록 구성된 에러 매니저; 및
상기 에러 매니저에 상기 패킷을 제공하도록 구성된 회로
를 포함하는, 메모리 장치.As a memory device,
An input for receiving a packet, wherein the first portion of the packet includes at least one command byte and the second portion of the packet includes a parity bit to enable command error detection;
An error manager configured to detect whether an error exists in the at least one command byte based on the parity bit; And
Circuitry configured to provide the packet to the error manager
Including, the memory device.
복수개의 반도체 메모리 장치; 및
상기 장치와 통신하기 위한 제어기 장치를 포함하며, 상기 제어기 장치는:
메모리 장치로 가는 패킷을 생성하기 위한 커맨드 엔진으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함하는, 커맨드 엔진; 및
상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력할 수 있는 출력을 포함하며,
상기 시스템의 상기 제어기 장치와 상기 반도체 메모리 장치 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는, 시스템.As a system,
A plurality of semiconductor memory devices; And
A controller device for communicating with the device, the controller device comprising:
A command engine for generating a packet destined for a memory device, the first portion of the packet including at least one command byte and the second portion of the packet including parity bits to enable command error detection. engine; And
An output capable of outputting the packet to a first device of the plurality of semiconductor memory devices,
And there is a series-interconnect structure between said controller device and said semiconductor memory device of said system, said system having a point-to-point ring topology.
패킷을 수신하는 단계 - 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함함 - ; 및
상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하는 단계
를 포함하는, 방법.A method executed in a memory device having an input for receiving a packet, the method comprising:
Receiving a packet, wherein the first portion of the packet includes at least one command byte and the second portion of the packet includes parity bits to enable command error detection; And
Detecting whether there is an error in the at least one command byte based on the parity bits
Including, the method.
패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단;
상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단; 및
상기 패킷을 에러 매니저에게 제공하기 위한 수단
을 포함하는, 장치.As a device,
Means for receiving a packet, wherein the first portion of the packet comprises at least one command byte and the second portion of the packet includes parity bits for enabling command error detection;
Means for detecting whether an error exists in the at least one command byte based on the parity bit; And
Means for providing the packet to an error manager
Including, the device.
복수개의 반도체 메모리 장치; 및
상기 장치와 통신하기 위한 제어기 수단을 포함하며, 상기 제어기 수단은:
메모리 장치로 가는 패킷을 생성하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단; 및
상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력하기 위한 수단을 포함하며,
상기 시스템의 반도체 메모리 장치들 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는, 시스템.As a system,
A plurality of semiconductor memory devices; And
Controller means for communicating with the apparatus, the controller means being:
Means for generating a packet destined for a memory device, wherein the first portion of the packet comprises at least one command byte and the second portion of the packet includes parity bits for enabling command error detection. ; And
Means for outputting the packet to a first one of the plurality of semiconductor memory devices,
And a series-interconnect structure between the semiconductor memory devices of said system, said system having a point-to-point ring topology.
패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단;
상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단
을 포함하는, 메모리 장치.
As a memory device,
Means for receiving a packet, wherein the first portion of the packet comprises at least one command byte and the second portion of the packet includes parity bits for enabling command error detection;
Means for detecting whether an error exists in the at least one command byte based on the parity bit
Including, a memory device.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13857508P | 2008-12-18 | 2008-12-18 | |
US61/138,575 | 2008-12-18 | ||
US14014708P | 2008-12-23 | 2008-12-23 | |
US61/140,147 | 2008-12-23 | ||
US12/418,892 US8880970B2 (en) | 2008-12-23 | 2009-04-06 | Error detection method and a system including one or more memory devices |
US12/418,892 | 2009-04-06 | ||
PCT/CA2009/001777 WO2010069045A1 (en) | 2008-12-18 | 2009-12-10 | Error detection method and a system including one or more memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110103388A true KR20110103388A (en) | 2011-09-20 |
KR101687038B1 KR101687038B1 (en) | 2016-12-15 |
Family
ID=42268218
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117009393A KR101687038B1 (en) | 2008-12-18 | 2009-12-10 | Error detection method and a system including one or more memory devices |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP2359372B1 (en) |
JP (2) | JP5753988B2 (en) |
KR (1) | KR101687038B1 (en) |
CN (1) | CN102257573B (en) |
TW (1) | TWI517174B (en) |
WO (1) | WO2010069045A1 (en) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2901457A4 (en) * | 2012-09-28 | 2016-04-13 | Hewlett Packard Development Co | Dynamically selecting between memory error detection and memory error correction |
KR20170086345A (en) * | 2016-01-18 | 2017-07-26 | 에스케이하이닉스 주식회사 | Memory system having memory chip and memory controller |
CN107134294B (en) * | 2017-05-27 | 2020-04-24 | 北京东土军悦科技有限公司 | ECC information acquisition method and system |
CN107239363B (en) * | 2017-05-27 | 2020-04-24 | 北京东土军悦科技有限公司 | ECC information reporting method and system |
KR102433098B1 (en) | 2018-02-26 | 2022-08-18 | 에스케이하이닉스 주식회사 | Address generting circuit, address and command generating circuit and semiconductor system |
US11200118B2 (en) | 2019-08-29 | 2021-12-14 | Micron Technology, Inc. | Semiconductor device with modified command and associated methods and systems |
US11042436B2 (en) | 2019-08-29 | 2021-06-22 | Micron Technology, Inc. | Semiconductor device with modified access and associated methods and systems |
US10963336B2 (en) * | 2019-08-29 | 2021-03-30 | Micron Technology, Inc. | Semiconductor device with user defined operations and associated methods and systems |
KR20210093610A (en) | 2020-01-20 | 2021-07-28 | 에스케이하이닉스 주식회사 | Nonvolatile memory device and memory system including the same |
KR20220139199A (en) * | 2021-04-07 | 2022-10-14 | 삼성전자주식회사 | Semiconductor memory devices and memory systems including the same |
US11822793B2 (en) | 2022-04-04 | 2023-11-21 | Western Digital Technologies, Inc. | Complete and fast protection against CID conflict |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148482A1 (en) * | 2003-01-13 | 2004-07-29 | Grundy Kevin P. | Memory chain |
US20070162824A1 (en) * | 2004-01-30 | 2007-07-12 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5826068A (en) * | 1994-11-09 | 1998-10-20 | Adaptec, Inc. | Integrated circuit with a serial port having only one pin |
US5938742A (en) * | 1995-08-18 | 1999-08-17 | General Magic, Inc. | Method for configuring an intelligent low power serial bus |
US6691257B1 (en) * | 2000-04-13 | 2004-02-10 | Stratus Technologies Bermuda Ltd. | Fault-tolerant maintenance bus protocol and method for using the same |
US7234099B2 (en) * | 2003-04-14 | 2007-06-19 | International Business Machines Corporation | High reliability memory module with a fault tolerant address and command bus |
US20040237001A1 (en) * | 2003-05-21 | 2004-11-25 | Sun Microsystems, Inc. | Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals |
DE10335978B4 (en) * | 2003-08-06 | 2006-02-16 | Infineon Technologies Ag | Hub module for connecting one or more memory modules |
US7143207B2 (en) * | 2003-11-14 | 2006-11-28 | Intel Corporation | Data accumulation between data path having redrive circuit and memory device |
DE102004004796B4 (en) * | 2004-01-30 | 2007-11-29 | Infineon Technologies Ag | Device for data transmission between memories |
US8375146B2 (en) * | 2004-08-09 | 2013-02-12 | SanDisk Technologies, Inc. | Ring bus structure and its use in flash memory systems |
JP2006065697A (en) * | 2004-08-27 | 2006-03-09 | Hitachi Ltd | Storage device control apparatus |
US20070165457A1 (en) * | 2005-09-30 | 2007-07-19 | Jin-Ki Kim | Nonvolatile memory system |
US8335868B2 (en) | 2006-03-28 | 2012-12-18 | Mosaid Technologies Incorporated | Apparatus and method for establishing device identifiers for serially interconnected devices |
US20070271495A1 (en) * | 2006-05-18 | 2007-11-22 | Ian Shaeffer | System to detect and identify errors in control information, read data and/or write data |
EP2487794A3 (en) | 2006-08-22 | 2013-02-13 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
US7904639B2 (en) * | 2006-08-22 | 2011-03-08 | Mosaid Technologies Incorporated | Modular command structure for memory and memory system |
CN101506895B (en) * | 2006-08-22 | 2012-06-27 | 莫塞德技术公司 | Scalable memory system |
US8407395B2 (en) * | 2006-08-22 | 2013-03-26 | Mosaid Technologies Incorporated | Scalable memory system |
US8700818B2 (en) | 2006-09-29 | 2014-04-15 | Mosaid Technologies Incorporated | Packet based ID generation for serially interconnected devices |
US7937641B2 (en) * | 2006-12-21 | 2011-05-03 | Smart Modular Technologies, Inc. | Memory modules with error detection and correction |
KR101308047B1 (en) * | 2007-02-08 | 2013-09-12 | 삼성전자주식회사 | Memory system, memory for the same, and command decoding method of the memory |
-
2009
- 2009-12-10 TW TW098142289A patent/TWI517174B/en not_active IP Right Cessation
- 2009-12-10 WO PCT/CA2009/001777 patent/WO2010069045A1/en active Application Filing
- 2009-12-10 CN CN200980151271.4A patent/CN102257573B/en not_active Expired - Fee Related
- 2009-12-10 KR KR1020117009393A patent/KR101687038B1/en active IP Right Grant
- 2009-12-10 EP EP09832759.6A patent/EP2359372B1/en active Active
- 2009-12-10 JP JP2011541038A patent/JP5753988B2/en not_active Expired - Fee Related
-
2014
- 2014-12-19 JP JP2014257755A patent/JP2015099598A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040148482A1 (en) * | 2003-01-13 | 2004-07-29 | Grundy Kevin P. | Memory chain |
US20070162824A1 (en) * | 2004-01-30 | 2007-07-12 | Micron Technology, Inc. | Error detection and correction scheme for a memory device |
Also Published As
Publication number | Publication date |
---|---|
EP2359372A4 (en) | 2017-06-21 |
TWI517174B (en) | 2016-01-11 |
CN102257573A (en) | 2011-11-23 |
JP2015099598A (en) | 2015-05-28 |
EP2359372A1 (en) | 2011-08-24 |
KR101687038B1 (en) | 2016-12-15 |
JP2012512467A (en) | 2012-05-31 |
CN102257573B (en) | 2014-11-05 |
EP2359372B1 (en) | 2020-04-08 |
WO2010069045A1 (en) | 2010-06-24 |
JP5753988B2 (en) | 2015-07-22 |
TW201106369A (en) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101687038B1 (en) | Error detection method and a system including one or more memory devices | |
US8880970B2 (en) | Error detection method and a system including one or more memory devices | |
US7475174B2 (en) | Flash / phase-change memory in multi-ring topology using serial-link packet interface | |
US8327105B2 (en) | Providing frame start indication in a memory system having indeterminate read data latency | |
US8352833B2 (en) | System and method for data read of a synchronous serial interface NAND | |
US8255783B2 (en) | Apparatus, system and method for providing error protection for data-masking bits | |
US8392796B2 (en) | Reliability, availability, and serviceability solution for memory technology | |
TWI430085B (en) | Method, integrated circuit, and system for efficient in-band reliability with separate cyclic redundancy code frames and dynamic random access memory device | |
US8843692B2 (en) | System of interconnected nonvolatile memories having automatic status packet | |
US20080235444A1 (en) | System and method for providing synchronous dynamic random access memory (sdram) mode register shadowing in a memory system | |
US9852811B2 (en) | Device and method for detecting controller signal errors in flash memory | |
US11403172B2 (en) | Methods for error detection and correction and corresponding systems and devices for the same | |
US7624244B2 (en) | System for providing a slow command decode over an untrained high-speed interface | |
US20170287571A1 (en) | Buffer circuit with adaptive repair capability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20191202 Year of fee payment: 4 |