KR20110103388A - 에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템 - Google Patents

에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템 Download PDF

Info

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
Application number
KR1020117009393A
Other languages
English (en)
Other versions
KR101687038B1 (ko
Inventor
피터 길링햄
Original Assignee
모사이드 테크놀로지스 인코퍼레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/418,892 external-priority patent/US8880970B2/en
Application filed by 모사이드 테크놀로지스 인코퍼레이티드 filed Critical 모사이드 테크놀로지스 인코퍼레이티드
Publication of KR20110103388A publication Critical patent/KR20110103388A/ko
Application granted granted Critical
Publication of KR101687038B1 publication Critical patent/KR101687038B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Abstract

하나 이상의 메모리 장치를 포함하는 시스템 및 에러 검출 및 정정 방법이 제시된다. 시스템의 메모리 장치는 패킷을 수신하기 위한 입력을 포함한다. 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하며, 패킷의 제2 부분은 커맨드 에러 검출을 촉진하기 위한 패리티 비트를 포함할 수 있다. 메모리 장치는 패리티 비트를 기초로 적어도 하나의 커맨드 바이트내에 에러가 존재하는지를 검출하도록 구성된 에러 매니저 및 패킷을 에러 매니저에게 제공하도록 구성된 회로를 포함할 수 있다.

Description

에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템{ERROR DETECTION METHOD AND A SYSTEM INCLUDING ONE OR MORE MEMORY DEVICES}
[관련 출원에 대한 상호 참조]
본 출원은 2008년 12월 18일 출원된 미국 특허 가출원 61/138,575, 2008년 12월 23일 출원된 미국 특허 가출원 61/140,147 및 2009년 4월 6일 출원된 미국 특허 출원 12/418,892에 대한 우선권을 주장하며, 이들 출원 전부는 그 전체가 본 명세서에 참조로 포함된다.
컴퓨터 및 다른 정보 기술 시스템은 메모리와 같은 반도체 장치를 일반적으로 포함한다. 반도체 장치는 제어기에 의해 제어되며, 컴퓨터의 중앙 처리 유닛(CPU)의 일부를 형성하거나 또는 그와는 별개일 수 있다. 제어기는 반도체 장치와 정보를 송수신하기 위한 인터페이스를 갖는다. 송수신된 정보에 대해 다양한 이유로 에러가 종종 발생할 수 있으며, 많은 공지된 시스템은 에러를 정정할 능력이 결여되거나 또는 많은 에러를 정정할 만족할 만한 능력이 적어도 결여된다는 점이 알려져 있다.
본 발명의 목적은 하나 이상의 메모리 장치를 포함하는 개선된 시스템을 제공하는 것이다.
본 발명의 일 측면에 따르면, 메모리 장치로서, 패킷을 수신하기 위한 입력으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 적어도 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 입력을 포함하는 메모리 장치가 제공된다. 에러 매니저는 상기 패리티 비트를 기초로 에러가 적어도 하나의 커맨드 바이트내에 존재하는지 여부를 검출하도록 구성된다.
본 발명의 다른 측면에 따르면, 시스템으로서, 복수개의 반도체 메모리 장치; 및 상기 장치와 통신하기 위한 제어 장치를 포함하는 시스템이 제공된다. 상기 제어 장치는 메모리 장치로 가는 패킷을 생성하기 위한 커맨드 엔진을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함한다. 상기 제어기의 출력은 상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력할 수 있다. 상기 시스템의 상기 제어기와 상기 반도체 메모리 장치 사이에 직렬-상호 연결 구조가 존재하여, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는다.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 입력을 갖는 메모리 장치내에서 실행되는 방법이 제공된다. 상기 방법은 패킷을 수신하는 단계로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는 단계를 포함한다. 상기 방법은 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하는 단계를 포함한다.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단을 포함하는 장치가 제공된다. 상기 장치는 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단을 포함한다. 상기 장치는 또한 상기 패킷을 에러 매니저에게 제공하기 위한 수단을 포함한다.
본 발명의 다른 측면에 따르면, 복수개의 반도체 메모리 장치 및 상기 장치와 통신하기 위한 제어기 수단을 포함하는 시스템이 제공된다. 상기 제어기 수단은 메모리 장치로 가는 패킷을 생성하기 위한 수단을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함한다. 상기 제어기 수단은 또한 상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력하기 위한 수단을 포함한다. 상기 시스템의 반도체 메모리 장치들 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는다.
본 발명의 다른 측면에 따르면, 패킷을 수신하기 위한 입력 수단을 갖는 메모리 장치가 제공된다. 상기 메모리 장치는 또한 패킷을 수신하기 위한 수단을 포함한다. 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함한다. 상기 메모리 장치는 또한 상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단을 포함한다.
그러므로, 하나 이상의 메모리 장치를 포함하는 개선된 시스템이 제시되었다.
예로서 첨부된 도면이 참조된다.
도 1a는 병렬 클럭 신호를 수신하는 예시적 시스템의 블럭도이다.
도 1b는 소스 동기 클럭 신호를 수신하는 시스템 예의 블럭도이다.
도 2a는 도 1a의 시스템과 유사하나 보다 특정 시스템 예인 시스템 예의 블럭도이다.
도 3은 메모리 장치 예의 도면이다.
도 4는 메모리 제어기 예의 도면이다.
도 5는 실시예에 따른 패리티 비트 계산을 도시한다.
도 6은 실시예에 따른 에러를 처리하는 방법을 흐름도 형태로 도시한다.
도 7은 실시예에 따른 브로드캐스트 상태 판독 커맨드를 도시하는 타이밍도이다.
도면에 도시된 예의 유사한 특징을 나타내기 위하여 상이한 도면에 동일 또는 유사한 참조 번호가 사용되었다.
링형 토폴로지를 갖는 시스템 예가 미국 특허 공개 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"에 기재되어 있다. 이하 상세한 설명에서는 다양한 관점에서 특정 예의 커맨드, 어드레스 및 데이터 포맷, 프로토콜, 내장 장치 구조, 버스 트랜잭션 등이 참조되며, 당업자라면 상술한 특허 문헌을 참조로 다른 예의 상세가 취득될 수 있음을 이해할 것이다.
도 1a 및 1b를 참조한다. 일부 실시예에 따르면, 커맨드 패킷은 제어기로부터 오고, 포인트-투-포인트 방식으로 각각의 메모리 장치를 통해 링 주위를 통과하여, 돌아가서 제어기에서 종료한다. 도 1a를 참조하면, 병렬 클럭 신호를 수신하는 시스템 예의 블럭도이며, 도 1b는 소스 동기 클럭 신호를 수신하는 도 1a의 동일한 시스템의 블럭도이다. 클럭 신호는 단일 종료 클럭 신호 또는 차동 클럭 쌍일 수 있다.
도 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"를 참조.
하나의 메모리 장치의 데이터 입력이 이전 메모리 장치의 데이터 출력에 연결되므로, 메모리 장치(24 내지 30)(도 1a)는 직렬 연결된 것으로 간주되어, 체인 형태의 제1 및 최후 메모리 장치를 예외로 하고, 직렬 연결 시스템 구조를 형성하게 된다. 메모리 제어기(22)의 채널은 도전선에 연결된 개별 핀 또는 동일 핀에 의해 제공되는 데이터, 어드레스 및 제어 정보를 포함한다. 도 1a의 예는 하나의 채널을 포함하며, 여기서 하나의 채널은 Sout 및 대응하는 Sin 포트를 포함한다. 그러나, 메모리 제어기(22)는 개별 메모리 장치 체인을 수용하기 위한 적절한 수의 채널을 포함할 수 있다. 도 1a의 예에서, 메모리 제어기(22)는 클럭 신호(CK)를 제공하며, 이는 전체 메모리 장치에 병렬로 연결된다.
일반적인 동작에서, 메모리 제어기(22)는 그 Sout 포트를 통해 커맨드를 발급하고, 이는 동작 코드(op 코드), 장치 어드레스, 판독 또는 프로그래밍을 위한 동작 어드레스 정보, 및 레지스터 프로그래밍을 위한 선택적 데이터를 포함한다. 명령은 직렬 비트스트림 명령 패킷으로서 발급될 수 있으며, 여기서 패킷은 소정 크기의 세그먼트로 논리적으로 세분될 수 있다. 각각의 세그먼트는 예를 들면 크기가 1 바이트일 수 있다. 비트스트림은 순서 또는 시간에 걸쳐 제공되는 일련의 비트이다. 커맨드는 그 입력 포트(Sin)를 통해, 장치 어드레스를 그 할당된 어드레스와 비교하는, 제1 메모리 장치(24)에 의해 수신된다. 어드레스가 일치하는 경우, 메모리 장치(24)는 커맨드를 실행한다. 커맨드는 그 자신의 출력 포트(Sout)를 통해 다음 메모리 장치(26)로 통과하고, 동일한 절차가 반복된다. 결과적으로, 선택된 메모리 장치라 칭하는 일치하는 메모리 어드레스를 갖는 메모리 장치는 커맨드에 의해 규정된 동작을 수행할 것이다. 커맨드가 판독 데이터 커맨드인 경우, 선택된 메모리 장치는 메모리 제어기(22)의 Sin 포트에 도달할 때까지 중간의 메모리 장치를 직렬로 통과된 그 출력 포트 Sout(라벨 없음)를 통해 판독된 데이터를 출력할 것이다. 커맨드 및 데이터가 직렬 비트스트림으로 제공되므로, 직렬 비트를 클럭 인 및 클럭 아웃하기 위하여 및 내부 메모리 장치 동작을 동기화하기 위하여, 각각의 메모리 장치에는 클럭이 이용된다. 이 클럭은 시스템(20)내의 전체 메모리 장치에 의해 이용된다.
도 1a에 따른 시스템에서 사용되는 클럭 주파수가 상대적으로 낮으므로, 강한 데이터 통신을 제공하기 위해서 중단되지 않는 풀 스윙(full swing) CMOS 신호 레벨이 이용될 수 있다. 이는 또한, 당업자에게는 공지된 것이지만, 저 전압 트랜지스터 트랜지스터 로직(LVTTL) 시그널링으로 칭한다.
도 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 시그널링 포맷 둘다는 당업자에는 공지되어 있다.
도 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)로 제공한다.
메모리 제어기(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)로부터 제공된 판독 데이터의 범위를 제한하기 위한 펄스 지속 기간을 가져서, 메모리 제어기는 판독 트랜잭션에서의 데이터의 량을 제어할 수 있다.
도 2a의 현재 설명된 실시예가 고속 동작을 고려한 것이므로, 예를 들면 HSTL 시그널링 포맷과 같은 고속 시그널링 포맷이 이용된다. 따라서, Sin, CSI 및 DSI 입력 포트에서 수신된 신호의 로직 레벨을 결정하기 위하여 각각의 메모리 장치에 의해 사용되는 기준 전압(VREF)이 각각의 메모리 장치에 제공된다. 기준 전압(VREF)이 예를 들면 인쇄 회로 기판 상의 다른 회로에 의해 생성될 수 있으며, HSTL 신호의 전압 스윙 중간 포인트를 기초로 소정 전압 레벨로 설정된다.
도 2a의 실시예에서, 각각의 메모리 장치는 인쇄 회로 기판 상에 위치 지정되어, 한 장치 상의 Sout 출력 포트 핀과 링 상의 다음 장치의 Sin 입력 포트 핀 사이의 거리 및 신호 트랙 길이는 최소화된다. 다르게는, 4개의 메모리 장치는 신호 트랙 길이를 더욱 최소화하는 시스템 인 패키지(SIP) 모듈내에 모집될 수 있다. 메모리 제어기(102) 및 메모리 장치(104 내지 110)는 링 토폴로지를 형성하기 위하여 직렬로 연결되는데, 이는 최후 메모리 장치(110)가 그 출력을 다시 메모리 제어기(102)에 제공한다는 것을 의미한다. 그러므로, 당업자라면 메모리 장치(110)와 메모리 제어기(102) 사이의 거리는 용이하게 최소화될 것임을 이해할 것이다.
도 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로 설정될 수 있다.
실시예에 따르면, 도 2a의 메모리 장치(104, 106, 108 및 110) 및 도 2b의 메모리 장치(154, 156, 158 및 160)는 다른 메모리 장치와의 직렬 상호 결선을 위해 설계된 입력/출력 인터페이스를 갖는 임의 유형의 메모리 장치일 수 있다. 본 실시예에 따르면, 도 2a 및 2b의 메모리 장치는 동일할 수 있으며, 따라서 이들이 LVTTL 입력 신호 또는 HSTL 입력 신호와 동작할 수 있는 입력 및 출력 버퍼 회로를 가지므로, 두 시스템 모두에서 동작 가능하다. 당업자라면 메모리 장치가 이들 LVTTL 또는 HSTL 신호 이의의 다른 유형의 신호 포맷으로 동작하기 위한 입력 및 출력 버퍼 회로를 포함할 수 있음을 이해할 것이다.
상술한 것처럼, 이전 도면들에 도시된 각각의 시스템은 하나 이상의 메모리 장치를 포함하고, 실시예에 따르면, 도 3은 이전 설명된 시스템 중 임의의 하나 내에 제공될 수 있는 메모리 장치(200)의 예에 대한 도면이다. 신규한 메모리 장치(200)는 메모리 뱅크(202)를 가지며, 여기서 적어도 일부의 예에서는 복수개(n)의 소거 가능한 블럭을 갖는 NAND 플래시 셀 어레이 구조이다. 소거 가능한 블럭의 각각은 복수개(m)의 프로그램 가능한 페이지로 분할된다. 각각의 페이지는 (j+k) 바이트로 구성된다. 페이지는 데이터가 저장되는 j-바이트 데이터 저장 영역 및 일반적으로 에러 관리 기능을 위해 이용되는 별개의 k-바이트 영역으로 분리된다. 각각의 페이지는 예를 들면 2,112 바이트로서 이중 2,048 바이트는 데이터 저장을 위해 이용되고, 64 바이트는 에러관리기능을 위해 이용될 것이다. 상술한 메모리 뱅크(202)는 페이지에 의해 억세스된다. 도 3이 단일 메모리 뱅크(202)를 도시하지만, 메모리 장치(200)는 하나 이상의 메모리 뱅크(202)를 가질 수 있다.
메모리 뱅크(202)에 억세스하기 위한 커맨드는 제어기로부터 I/O(입력/출력) 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신된다. 수신된 커맨드는 커맨드 레지스터(214)에 진입하고, 거기에서 실행시까지 유지한다. 제어 로직(216)은 커맨드를 메모리 뱅크(202)에 반대해서 실행될 수 있는 형태로 변환한다. 일반적으로 커맨드는 칩의 외장 패키지 상의 상이한 핀들의 어설션(assertion)을 통해 메모리 장치(200)로 진입하며, 여기서 상이한 핀들은 상이한 커맨드를 나타내는데 이용될 수 있다. 예를 들면, 커맨드는 판독, 프로그램, 소거, 레지스터 판독, 및 레지스터 기록을 포함할 수 있다. 레지스터 기록에 대해, 예를 들면 메모리 장치(200)는 ID 당 하나의 바이트를 포함하는 5-바이트 - 1 바이트는 커맨드용이고, 나머지 바이트는 페이로드임 - 레지스터 기록 커맨드 패킷을 처리할 수 있다.
판독 및 프로그램 커맨드는 페이지 단위로 실행되고, 소거 커맨드는 블럭 단위로 실행된다. 또한, 메모리 장치(200)의 수개의 예에서, 장치의 다양한 핀 각각이 스트로브 포트 중 하나, 데이터 포트 중 하나 또는 도 2a 및 2b 와 결부하여 전술한 것과 같은 다른 포트와 관련된다. 여기서 I/O 회로(213)는 데이터 핀과 메모리 장치(200)의 내부 부품들 사이에 도시되고, 칩 인터페이스 회로(215)는 다른 핀과 메모리 장치(200)의 내부 부품들 사이에 도시된다.
판독 또는 프로그램 커맨드가 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 버퍼 및 래치, 다음으로 출력 드라이버)에 제공된다.
어드레스 버퍼 및 래치(218)는 어드레스가 위치하는 페이지를 결정하고, 페이지에 대응하는 행 어드레스를 행 디코더(208)에 제공한다. 대응하는 행은 액티베이트된다. 데이터 레지스터 및 S/A(204)는 페이지를 감지하고, 데이터를 페이지로부터 데이터 레지스터(204)로 전송한다. 전체 페이지로부터의 데이터가 데이터 레지스터로 전송된 경우, 데이터는 장치로부터 I/O 회로(213)를 통하여 순차적으로 판독된다.
프로그램 커맨드는 또한 페이지 단위로 처리된다. 프로그램 커맨드는 I/O 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신되고, 첨부된 어드레스는 I/O 회로(213)를 통해 어드레스 버퍼(218)에 의해 수신된다. 입력 데이터는 I/O 회로(213)에 의해 수신되어 데이터 레지스터(204)로 전송된다. 일단 전체 입력 데이터가 데이터 레지스터(204)내에 있는 경우, 입력 데이터가 저장될 페이지는 입력 데이터로 프로그램된다.
소거 커맨드는 블럭 단위로 처리된다. 소거 커맨드는 I/O 회로(213)를 통해 커맨드 레지스터(214)에 의해 수신되고, 블럭 어드레스는 I/O 회로(213)를 통해 어드레스 버퍼(218)에 의해 수신된다.
도시된 메모리 장치(200)는 ECC 매니저(217)를 또한 선택적으로 포함한다. ECC 매니저(217)는 실시예에 따른 에러 검출 및 정정을 가능하게 하며, 이는 다음에 보다 상세히 설명된다. 도시된 ECC 매니저는 제어 로직(216)과 통신하는 것으로 도시되나, 별도의 예에서는 ECC 매니저는 예를 들면 하나 이상의 어드레스 버퍼 및 래치(218) 및 커맨드 레지스터(214)와 같은 다른 도시된 부품에 대해 직접 동작하는 것을 허용하는 회로 및 로직을 포함할 수 있다. 당업자라면 패킷이 메모리 장치(200)의 입력으로부터 ECC 매니저(217)에 제공될 수 있는 공지된 다양한 회로가 존재할 수 있음을 이해할 것이다.
도시된 메모리 장치(200)는 또한 하나 이상의 상태 레지스터(249)(많은 유형의 종래 기술의 상태 레지스터가 당업자에게 알려져 있음)를 포함한다. 제어 로직(216)으로부터의 제어하에, 상태 레지스터는 시스템의 제어를 의도한 상태 유형 정보를 제공할 수 있으며, 일반적으로는 I/O 회로(213)를 통해 통신하는 다른 정보 및 데이터와 간섭하지 않는 방식으로 이 정보를 제공한다. 예를 들면, 상태 레지스터(249)내에 저장된 정보는 메모리 장치 상의 하나 이상의 전용 핀을 통해 구체적으로 외부로 전달될 수 있다. 이와 관련하여, 선택적 ECC 발생기(251)는 이 처리를 촉진하기 위하여 상태 레지스터(249)와 I/O 회로(213) 사이에 제공될 수 있다.
상술한 것처럼, 도 1a, 1b, 2a 및 2b에 도시된 시스템 각각은 메모리 제어기를 포함하며, 적절한 메모리 제어기(310)의 예의 블럭도가 도 4에 도시된다.
도 4를 참조하면, 도시된 신규한 플래시 제어기(310)는 중앙 처리 유닛(CPU)(312); 및 예를 들면 랜덤 억세스 메모리(RAM)(316) 및 리드 온리 메모리(ROM)(318)를 갖는 메모리(314)를 포함한다. 당업자라면, 플래시 제어기(310)가 시스템 온 칩, 시스템 인 패키지 또는 멀티플 칩으로서 구성될 수 있음을 이해할 것이다. 또한, 도시된 플래시 제어기(310)는 플래시 커맨드 엔진(322), 에러 정정 코드(ECC) 매니저(324) 및 플래시 장치 인터페이스(326)를 포함한다. 수개의 예에서, 플래시 장치 인터페이스는 도 2a에 도시된 메모리 제어기 포트 또는 도 2b에 도시된 메모리 제어기 포트를 포함할 수 있으며, (메모리 장치와의 관계에서 유사하게 설명되었으므로) 이들의 각각은 메모리 제어기(310)의 각각의 핀과 관련될 수 있다. 도시를 간편하게 하기 위하여, 도 4에 명백하게 도시하는 것처럼 플래시 제어기(310)의 전체 핀 대신에, 라벨된 플래시 장치 인터페이스(326)로 표시된다.
도 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 매니저는 다음에 보다 상세히 설명되는 실시예에 따라 에러 검출 및 정정을 가능하게 한다.
전송 에러가 커맨드 패킷에서 발생하는 경우, 이 에러를 처리하는 한 방법은 제어기(310)가 수신된 패킷을 본래 전송한 패킷과 비교함에 의해 에러를 검출하는 것이다. 메모리 장치가 커맨드를 적절히 수신한지 여부를 제어기가 검출하는 내재된 메카니즘이 없는 버스 토폴로지와 비교할 때 링 토폴로지의 유용한 특징이다. 그러나, 링 토폴로지의 이러한 에러 검출 방법으로도, 에러를 검출할 때까지 에러를 정정하는 것은 너무 느릴 수 있다. 예를 들면, 커맨드 패킷이 프로그램 또는 소거 커맨드이고, 에러가 어드레스 비트 중 하나(장치 어드레스, 블럭 어드레스 또는 페이지 어드레스 중 임의의 하나)에서 발생하는 경우, 프로그램 또는 소거 동작은 제어기가 에러를 검출할 때까지 이미 시작했을 수 있고, 틀린 어드레스가 겹쳐쓰이거나 또는 소거되는 경우에 데이터는 불가피하게 소실될 수 있다. 비-프로그램 또는 비-소거 커맨드가 에러로 프로그램 또는 소거 커맨드로 수신되는 경우, 다른 잠재적인 회복불가능한 에러가 발생한다. 일반적으로, 제어기는 쉽게 다른 판독 동작을 요청할 수 있고 원치않는 데이터는 폐기하므로, 에러 판독 커맨드는 문제가 아니다.
일반적으로, 메모리 어레이에 기록된 또는 메모리 어레이로부터 판독된 데이터 보다는 커맨드의 에러에 대해 보다 많은 우려가 있다. 데이터내에 에러 검출 및 정정 코드를 임베딩하는 많은 방식이 있다. 일부 데이터는 더 중요하며, 고도의 오버헤드 및 더 큰 성능 임팩트를 갖는 보다 강한 에러 방식을 가질 수 있다. 시스템 설계자는 필요한 강함(robustness)의 레벨을 결정할 수 있다. 적어도 일부 실시예에서 다뤄지는 문제점은 커맨드, 어드레스 및 레지스터 기록 필드에서의 에러에 관한 것이다. 이들 에러는 판독 및 기록 데이터내의 에러 검출 및 정정 코드로 해결될 수 없다. 발생할 수 있는 많은 형태의 커맨드, 어드레스, 및 레지스터 기록 에러가 존재한다. 일반적으로, 비의도된 판독은 데이터가 무시될 수 있고 제어기(310)가 커맨드를 재발급할 수 있으므로, 문제가 아니다. 사용중인 메모리 뱅크에 판독시킨 페이지는 단순히 무시될 것이다. 에러는 타겟 장치 이전에 또는 장치 이후에 링내의 어딘가에서 발생할 수 있다.
[표 1] : 가능성 있는 치명적 단일 비트 에러 시나리오.
Figure pct00001
도 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-바이트 커맨드 패킷의 예의 비트를 상세히 제시한다.
[표 2] : 추가 에러 코드 바이트를 갖는 7-바이트 커맨드 패킷의 예.
Figure pct00002
D0-D62 - 데이터 페이로드 비트
P0-P64 - 패리티 비트
단일 비트 에러의 위치는 공지되므로, 단일 비트 에러는 정정될 수 있다. 또한, 2 비트 에러는 검출될 수 있지만, 정정될 수 없다. 이러한 유형의 코드는 SECDED 코드(Single Error Correction, Double Error Detection)로 공지된다.
그러므로, 해밍 코드는 단일 비트 에러 정정 및 2 비트 에러 검출을 제공한다. 표 2에 도시된 7 바이트 페이로드는 전술한 미국 특허 공개 번호 제2008/0049505 A1 및 2008/0052449 A1에서 개시된 전체 지시를 포괄한다. 그러나, 8-비트 해밍 코드는 15 바이트 페이로드를 덮는데 충분하여, 큰 가능한 커맨드 셋으로의 향후의 연장을 허용한다. 7 바이트 미만의 커맨드 패킷에 대해, 비존재 데이터 비트는 0으로 간주될 수 있다. 패리티 비트는 도 5에서 도시된 것처럼 계산된다.
수신된 데이터 페이로드 비트 상에서 계산된 패리티 비트가 수신된 패리티 비트와는 상이한 경우, 차이는 에러인 데이터 비트를 암시한다. 예를 들면, 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와 동일하고 적어도 다른 패리티의 적어도 하나가 상이하다면, 정정될 수 없는 패킷내의 이중 에러가 존재한다.
일부 실시예에 따르면, 상태 레지스터(249)(도 3)는 커맨드 패킷 불량이 발생함을 나타내는 추가 비트를 포함한다.
일 예에서, 포인트-투-포인트 링 토폴로지를 갖는 시스템의 하나 이상의 메모리 장치의 각각은 4개의 뱅크를 포함하는 메모리 장치이다. 그러한 예에서, 각각의 메모리 뱅크에 대해 대기/사용중 플래그 및 통과/불량 플래그를 포함하는 상태 레지스터의 완전 점유된 바이트일 수 있다. 그러므로, 추가 바이트는 아래의 표 3에 도시된 것처럼 추가되어야 한다.
[표 3] : 실시예에 따른 상태 레지스터 정의, 및 커맨드 패킷 불량 플래그를 지지하는 상태 레지스터 정의
Figure pct00003
R/Bn - 메모리 뱅크 n에 대한 대기/사용중 플래그 ('0' - 대기, '1' - 사용중)
P/Fn - 메모리 뱅크 n에 대한 통과/불량 플래그 ('0' - 통과, '1' - 불량)
ERR - 커맨드 패킷 에러 플래그 ('0' - 에러 없음, '1' - 에러 검출 및 커맨드 비실행)
상술한 실시예에 대한 ERR 플래그는 지속적이다. 이는 판독 상태 레지스터 커맨드가 이후에 수신될 때까지 '1'을 유지하고, 그 이후에 클리어될 것이다.
장치가 단일 비트 에러 정정을 지원하는 경우, 아래의 표 4에 도시된 상태 레지스터 포맷이 이용될 수 있다.
[표 4]: 다른 실시예에 따른 상태 레지스터 정의, 상태 레지스터 정의는 커맨드 패킷 불량 플래그 및 단일 비트 에러 정정을 지원.
Figure pct00004
R/Bn - 메모리 뱅크 n에 대한 대기/사용중 플래그 ('0' - 대기, '1' - 사용중)
P/Fn - 메모리 뱅크 n에 대한 통과/불량 플래그 ('0' - 통과, '1' - 불량)
ERR1 - 커맨드 패킷 단일 비트 에러 플래그 ('0' - 에러 없음, '1' - 단일 비트 에러 검출 및 정정)
ERR2 - 커맨드 패킷 투 비트 에러 플래그 ( '0' - 에러 없거나 단일 비트 에러, '1' - 투 비트 에러 검출 및 커맨드 비실행)
상술한 상태 레지스터 이행 상세는 상이한 메모리 예에서 다를 것으로 이해된다. 예를 들면, 4개가 안되는 메모리 뱅크를 갖는 메모리에 대해, 단일 바이트 상태 레지스터를 사용하는 것에 대한 가능성이 고려된다. 또한, 2 보다 큰 바이트 상태 레지스터의 사용이 고려된다. 또한, 상태 비트는 상태 판독 커맨드가 수신될 때까지 지속적이거나 또는 다음의 임의의 유효 커맨드 수신시 클리어될 수 있다.
적어도 하나의 실시예에 따르면, 제어기(310)(도 4)는 메모리 장치내에 있는 패리티 비트를 재계산함에 의해 또는 전송된 커맨드 패킷의 각각의 워드와 수신된 패킷을 간단히 비교함에 의해 커맨드 패킷 에러가 발생하였음을 결정할 수 있다. 후자의 접근법과 전자 사이의 차이는 후자의 접근법은 멀티-비트 에러를 식별할 수 있다는 점이다. 에러가 검출되는 경우, 제어기(310)는 상태 레지스터(249)를 판독하기 위하여 타겟 장치(200)에 상태 레지스터 판독 커맨드를 발급해야 한다. 다르게는, 장치 어드레스 필드 에러의 경우, 제어기(310)는 에러 플래그의 상태를 결정하기 위한 커맨드 패킷의 의도된 수신자인 것으로 틀리게 생각하는 장치(이하, 에러로 어드레스된 장치)에 상태 레지스터 판독 커맨드를 발급해야 한다.
도 6은 실시예에 따른 방법(500)의 흐름도 형태를 도시한다. 먼저 단계 501에서, 제어기는 링 둘레를 순환한 이후에 커맨드 패킷을 수신하고, 제어기는 단계 503에서 에러를 검사한다. 에러가 없다면, 도시된 방법과 관련된 추가 동작이 없지만, 적어도 하나의 에러가 존재하는 경우, 단계 504로 진행한다.
단계 504에서, ID 필드내에서 에러가 발생한지 여부에 대해 결정이 이뤄진다. 에러가 ID 필드내에 발생하지 않는 경우, 단계 509로 진행한다(단계 509는 본 명세서에서 후술함). 에러가 ID 필드내에서 발생하는 경우, 단계 506으로 진행한다. 단계 506에서, 제어기(310)(도 4)는 상태 판독 커맨드를 에러로 어드레스된 장치에 발급하고, 적절한 때에 에러로 어드레스된 장치의 상태 레지스터가 판독되도록 하고, 상태 레지스터를 나타내는 지속적인 에러 비트를 클리어할 것이다. 다음으로, 제어기는 단계 507에서 에러로 어드레스된 장치 바이트를 수신한다.
단계 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)의 지시하에 커맨드의 재발급을 초래할 수 있다.
일부 실시예에서, 링 내의 모든 장치는 커맨드 패킷을 에러에 대해 검사하고, 에러 플래그를 적절히 설정한다. 제어기(310)(도 4)는 어떤 지점에 에러가 발생하였고, 타겟 장치가 커맨드를 수신하고 실행하는지 여부를 결정하기 위하여 링내의 전체 장치의 상태 레지스터(249)(도 3)를 검사할 수 있다. 링내의 각각의 장치에 개별 상태 레지스터 커맨드를 전송하기 보다는, 다른 접근법은 방송 상태 판독 명령을 이용하는 것일 것이다. 전술한 미국 특허 공개 공보 제2008/0049505 A1와 일관되게, 방송 장치 어드레스(Broadcast Device Address)로 인식되는, 예를 들면 "11111111"과 같은 특수 장치 어드레스가 존재할 수 있다. 로컬 장치 ID와의 일반적 비교는 방송 장치 어드레스의 경우에는 무시된다.
도 7은 실시예에 따른 방송 상태 판독 커맨드의 동작을 도시하는 타이밍도이다. 타이밍도에서, 링 내의 하나 이상의 장치를 통해 통신되는 방송 상태 판독 커맨드의 속성과 관련하여 명백한 도식적 상세를 제공하기 위하여 예를 들면 D0, Q0/D1, Q1/D2에 대한 신호 도식에 의해 복수의 장치가 표시된다.
도 7의 도식적 실시예에 따르면, 장치 0는 CSI0 신호에 의해 표시되는 D0 상의 2-바이트 방송 판독 상태 커맨드를 수신한다. 수 클럭 사이클 후에, 상태 레지스터의 콘텐츠가 Q0 상에서 출력되어야 함을 나타내는 데이터 스트로브 신호 DSI0를 수신한다. 장치 0은 일 클럭 사이클에 의해 출력 데이터 스트로브 DSO0를 연장하고, DSO0 스트로브의 연장된 부분에 의해 표시되는 타임슬롯내의 Q0 상의 2 바이트 상태 레지스터 데이터를 출력한다. 이러한 방식으로, 데이터 스트로브 펄스의 길이는 링 상의 각각의 장치와 함께 증가하여 링 상의 모든 장치로부터의 상태 정보의 폭발(burst)을 제공한다. 이 커맨드는 전체 장치가 에러에 대한 커맨드 패킷을 검사하는 경우에 링내의 어디에 커맨드 패킷 에러가 발생하는지를 결정하는데 유용하다. 이는 또한 상이한 메모리 장치에서 동시에 발생하는 다중 판독, 프로그램, 및 소거 동작의 상태를 검사하기 위한 일반 동작에서 유용하다.
모든 장치가 동일한 길이 2-바이트 상태 레지스터를 갖는 방송 상태 판독 동작이 설명되었다. 이 기술은 상이한 상태 레지스터 길이를 갖는 장치에 대해서도 적용할 수 있다. 링 초기화에 대해, 제어기는 각각의 장치의 장치 정보 레지스터를 판독하고, 각각의 장치의 상태 레지스터의 길이를 결정한다. 방송 레지스터 판독 동작 동안, 각각의 장치는 그 상태 레지스터 정보를 길이와 상관없이 버스트로 첨부하고, 출력 데이터 스트로브를 이러한 첨부된 정보를 포괄하도록 연장한다. 상태 정보의 전체 버스트를 수신하면, 제어기는 각각의 장치로부터 기대되는 바이트의 수를 인지하고, 이 정보를 분리할 수 있다.
상술한 에러 검출 및/또는 정정을 지원하는 메모리 장치는 에러 검출 및/또는 정정이 디스에이블되도록 프로그램될 수 있다. 예를 들면, 리셋시 메모리 장치는 에러 검출 및 정정을 디스에이블이 되도록 할 수 있다. 제어기가 에러 검출 및/또는 정정을 채용하기를 원하는 경우, 예를 들면 이들 기능을 인에이블하기 위하여 각각의 메모리 장치내의 제어 레지스터내에 하나 이상의 비트를 기록할 수 있다. 제어기가 이들 기능을 디스에이블하는 경우, 각각의 커맨드 패킷의 끝에서의 추가 패리티 비트가 하나의 버스 타임슬롯을 세이브하기 위하여 제거되거나 또는 메모리 장치에 의해 무시될 널 데이터로 로딩될 수 있다. 이러한 방식으로, 저가 시스템은 에러 정정 및/또는 검출을 지원할 필요가 없으나, 공통 메모리 장치는 이러한 커맨드 패킷 에러 검출 및/또는 정정을 필요로 하는 경우 외에 저가 시스템에 제공될 수 있다.
일부 예에서, 이전에 설명된 방식과 유사한 에러 검출 및 정정 방식이 제공되며, 판독 및 기록 데이터에 적용된다. 이러한 추가 방식의 특정 이행에서, 커맨드 패킷에 대해 채용되는 것과 동일한 패리티 검사 로직 회로가 칩 면적 및 복잡성을 줄이기 위해 활용될 수 있다. 이하의 표 5는 커맨드 패리티 바이트 및 데이터 패리티 바이트를 갖는 기록 데이터 패킷의 예를 설명한다.
[표 5] : 커맨드 패리티 바이트 및 데이터 패리티 바이트를 갖는 기록 데이터 패킷의 예
Figure pct00005
표 5의 예에서, 바이트 0 내지 4는 전술한 것처럼 커맨드 부분과 기능을 포함한다. 전체 페이지 크기까지의 기록 데이터 바이트의 임의 수가 커맨드 부분 다음에 온다. 패킷내의 마지막 바이트는 기록 데이터 바이트 상에서 계산된 기록 데이터 패리티 바이트이다. 전술한 동일한 SECDED 해밍 코드가 사용되는 경우, 15바이트까지의 단일 에러 정정 커버리지만을 제공할 것이다. 15 바이트 이후로는 패리티 등식은 간단히 랩 어라운드(wrap-around)하며, 단일 비트 에러 정정은 더이상 이행되지 않는다. 다르게는, 큰 데이터 패킷에 대한 우수한 에러 커버리지를 갖는 보다 강한 CRC 코드가 선택될 수 있다. 커맨드 및 데이터에 대한 개별 에러 검출 비트가 상태 레지스터내에 제공될 수 있다.
판독 데이터 패리티에 대해, 유사한 방식으로 달성될 수 있다. 내부 메모리 어레이로부터 데이터를 판독하면, 메모리 장치는 판독 데이터 패킷의 끝에 첨부하기 위하여 패리티 바이트를 계산할 것이다. 제어기는 데이터 스트로브 신호의 길이를 제어함에 의해 판독될 바이트의 수를 결정한다. 메모리 장치가 판독 데이터 버스트를 종료하는 데이터 스트로브 신호의 하강 에지를 검출하는 경우, 메모리 장치는 누적 패리티 바이트를 출력한다. 판독 데이터를 수신하면, 제어기는 동일한 패리티 계산을 수행하고, 그 결과를 비트 에러가 존재하는지 여부를 결정하기 위하여 판독 데이터의 끝에 첨부된 수신된 패리티 바이트와 비교한다. 사용자가 에러 정정 코드를 레지스터 데이터에 중첩할 수 있는 방법이 없으므로, 이는 상태 레지스터 판독 커맨드와 같은 레지스터 판독 커맨드를 위해 특히 유용하다. 메모리 어레이로 및 로부터의 통상의 판독 및 기록 데이터로, 사용자는 데이터를 저장하기 위하여 적절한 에러 검출 코드를 선택할 수 있다.
일부 실시예가 포인트-투-포인트 링 토폴로지를 갖는 시스템과 관련하여 도시되고 설명되었지만, 시스템의 제어기 장치와 시스템의 복수의 반도체 메모리 장치 사이에 존재하는 직렬 연결 구성이 있으므로, 예를 들면 멀티-드롭 시스템으로 표현될 수 있는 다른 유형의 시스템과 관련된 일부 다른 실시예가 이해될 것이다.
다른 변형예도 가능하다. 예를 들면, 표 3 및 4와 관련하여 전술한 4-뱅크 메모리 장치 예와 유사한 다른 예에서, 포인트-투-포인트 링 토폴로지를 갖는 시스템의 하나 또는 그 이상의 메모리 장치 각각은 브리징 장치 및 4개의 이산 메모리 장치를 포함하는 복합 메모리이다. (고려된 복합 메모리에 관한 추가 상세에 대해서는, 미국 특허 출원 번호 12/401,963 "A Composite Memory Having a Bridging Device for Connecting Discrete Memory Devices to a System"을 참조로 하고, 그 전체 내용이 참조로 포함된다.) 그러한 예에서, 상태 레지스터는 브리징 장치에 존재할 수 있다.
다수개의 실시예가 예를 들면 NAND 플래시 EEPROM 장치(들), NOR 플래시 EEPROM 장치(들), AND 플래시 EEPROM 장치(들), DiNOR 플래시 EEPROM 장치(들), 직렬 플래시 EEPROM 장치(들), DRAM 장치(들), SRAM 장치(들), Ferro RAM 장치(들), Magnetic RAM 장치(들), 상변화 RAM 장치(들), 또는 이 장치들의 적절한 조합과 같은 적합한 고상 메모리 시스템에 적용될 수 있다. 이 기술은 단일 버스 마스터 및 다중 슬레이브 또는 다중 버스 마스터 구성으로 조직된지 여부를 링 또는 다른 상호결선 토폴로지를 통해 통신하는 메모리 및 비메모리 장치 모두에 적용가능하다.
소자가 다른 소자에 "연결(connected)" 또는 "결합(coupled)"되는 것으로 칭하는 경우, 이는 다른 소자에 직접 연결 또는 결합되거나 또는 중간 소자가 존재할 수 있다. 대조적으로, 소자가 여기서 다른 소자에 "직접적으로 연결(directly connected)" 또는 "직접적으로 결합(directly copuled)"이라 칭하는 경우, 중간 소자가 존재하지 않는다. 소자들 사이의 관계를 기술하는데 사용되는 다른 용어는 유사한 방식(즉, "사이(between)"와 "사이에 직접(directly between)", "인접(adjacent)"과 "직접 인접(directly adjacent)" 등)으로 해석되어야 할 것이다.
설명된 실시예에 대해 일정한 변형 및 개조가 가능하다. 그러므로, 상술한 실시예는 설명에 도움이 되기 위한 것이며 제한적이지 않은 것으로 이해될 것이다.

Claims (41)

  1. 메모리 장치로서,
    패킷을 수신하기 위한 입력으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 입력;
    상기 패리티 비트를 기초로 에러가 상기 적어도 하나의 커맨드 바이트내에 존재하는지 여부를 검출하도록 구성된 에러 매니저; 및
    상기 에러 매니저에 상기 패킷을 제공하도록 구성된 회로
    를 포함하는, 메모리 장치.
  2. 청구항 1에 있어서, 상기 에러 매니저는 또한, 상기 메모리 장치가 에러를 정정할 수 있는지 여부를 결정하도록 구성되는, 메모리 장치.
  3. 청구항 2에 있어서, 상기 에러 매니저는 또한, 상기 에러가 정정될 수 있는 경우 상기 에러를 정정하도록 구성되는, 메모리 장치.
  4. 청구항 1에 있어서, 상기 에러 매니저는 또한, 상기 에러가 정정될 수 없는 메모리 동작을 초래하는 에러인지 여부를 식별하도록 구성되는, 메모리 장치.
  5. 청구항 4에 있어서, 상기 메모리 장치는 플래시 메모리 장치이며, 상기 메모리 동작은 프로그램 동작 및 소거 동작 중 선택된 하나로 구성된, 메모리 장치.
  6. 청구항 4에 있어서, 상기 에러 매니저는 또한, 상기 에러가 정정될 수 없는 메모리 동작을 초래하는 에러임의 표시를, 그러한 에러의 포지티브 식별시, 제공하도록 구성되는, 메모리 장치.
  7. 청구항 1 내지 6 중 어느 한 항에 있어서, 상기 에러 매니저는 선택적으로 디스에이블될수 있는, 메모리 장치.
  8. 청구항 7에 있어서, 다수의 비트의 정보 및 상기 에러 매니저가 디스에이블되는지 여부를 표시하는 적어도 하나의 비트를 저장하도록 구성되는 제어 레지스터를 더 포함하는, 메모리 장치.
  9. 청구항 1 내지 6 중 어느 한 항에 있어서, 상기 메모리 장치는 비휘발성 메모리 장치인, 메모리 장치.
  10. 청구항 9에 있어서, 상기 비휘발성 메모리 장치는 NAND 플래시 메모리 장치인, 메모리 장치.
  11. 청구항 1 내지 6 중 어느 한 항에 있어서, 상기 패리티 비트는 해밍(Hamming) 코드 에러 검출 방식에 따라 커맨드 에러 검출을 가능하게 하는, 메모리 장치.
  12. 시스템으로서,
    복수개의 반도체 메모리 장치; 및
    상기 장치와 통신하기 위한 제어기 장치를 포함하며, 상기 제어기 장치는:
    메모리 장치로 가는 패킷을 생성하기 위한 커맨드 엔진으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하는 패리티 비트를 포함하는, 커맨드 엔진; 및
    상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력할 수 있는 출력을 포함하며,
    상기 시스템의 상기 제어기 장치와 상기 반도체 메모리 장치 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는, 시스템.
  13. 청구항 12에 있어서, 상기 제어기 장치는 에러 매니저를 더 포함하는, 시스템.
  14. 청구항 13에 있어서, 상기 복수의 반도체 메모리 장치의 각각은 에러 매니저를 포함하는, 시스템.
  15. 청구항 13에 있어서, 상기 제어기 장치는 에러로 어드레스된 장치 에러 바이트를 수신하도록 구성되고, 상기 에러 매니저는 의도된 타겟 장치 이전의 장치가 에러로 어드레스되었는지 여부를 결정하기 위하여 상기 에러로 어드레스된 장치 에러 바이트를 처리하도록 구성되는, 시스템.
  16. 청구항 12 내지 15 중 어느 한 항에 있어서, 상기 커맨드 엔진은 상기 의도된 타겟 장치 이전의 상기 장치가 에러로 어드레스된 경우 커맨드의 재발급을 초래하도록 구성되는, 시스템.
  17. 청구항 12에 있어서, 상기 복수개의 반도체 메모리 장치 각각의 상태 레지스터 각각의 정보가 순차적인 방식으로 상기 제어기 장치에 제공될 수 있도록, 상기 커맨드 엔진은 상기 복수개의 반도체 메모리 장치 각각에 의해 수신될 수 있는 브로드캐스트 커맨드를 생성할 수 있는, 시스템.
  18. 청구항 17에 있어서, 상기 제어기 장치는 링 토폴로지내의 어떤 포인트에서 에러가 발생했는지를 결정하고, 상기 브로드캐스트 커맨드 이전에 상기 제어기 장치에 의해 발급된 커맨드를 타겟 장치가 수신 및 실행했는지 여부를 결정하기 위하여 정보를 처리하도록 구성되는 에러 매니저를 더 포함하는, 시스템.
  19. 청구항 12 내지 15 및 17 내지 18 중 어느 한 항에 있어서, 상기 패리티 비트는 해밍 코드 에러 검출 방식에 따라 커맨드 에러 검출을 가능하게 하는, 시스템.
  20. 청구항 12 내지 15 및 17 내지 18 중 어느 한 항에 있어서, 상기 복수개의 반도체 메모리 장치는 비휘발성 메모리 장치인, 시스템.
  21. 청구항 20에 있어서, 상기 비휘발성 메모리 장치는 NAND 플래시 메모리 장치인, 시스템.
  22. 패킷을 수신하기 위한 입력을 갖는 메모리 장치내에서 실행되는 방법으로서,
    패킷을 수신하는 단계 - 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함함 - ; 및
    상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하는 단계
    를 포함하는, 방법.
  23. 청구항 22에 있어서, 상기 메모리 장치가 에러를 정정할 수 있는지 여부를 결정하는 단계를 더 포함하는, 방법.
  24. 청구항 23에 있어서, 상기 에러가 정정될 수 있다면 에러를 정정하는 단계를 더 포함하는, 방법.
  25. 청구항 22에 있어서, 상기 에러가 정정될 수 없는 메모리 동작을 초래하는 에러인지 여부를 식별하는 단계를 더 포함하는, 방법.
  26. 청구항 25에 있어서, 상기 메모리 동작은 프로그램 동작 및 소거 동작 중 선택된 하나로 구성되는, 방법.
  27. 청구항 25에 있어서, 상기 에러가 정정될 수 없는 메모리 동작을 초래하는 에러임의 장치 내부 표시를, 그러한 에러의 포지티브 식별시, 생성하는 단계를 더 포함하는, 방법.
  28. 청구항 22 내지 27 중 어느 한 항에 있어서, 상기 패리티 비트는 해밍 코드 에러 검출 방식에 따라 커맨드 에러 검출을 가능하게 하는, 방법.
  29. 장치로서,
    패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단;
    상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단; 및
    상기 패킷을 에러 매니저에게 제공하기 위한 수단
    을 포함하는, 장치.
  30. 청구항 29에 있어서, 상기 검출 수단은 상기 장치가 상기 에러를 정정할 수 있는지 여부를 결정하도록 구성되는, 장치.
  31. 청구항 30에 있어서, 상기 검출 수단은 또한, 상기 에러가 정정될 수 있는 경우, 상기 에러를 정정하도록 구성되는, 장치.
  32. 청구항 29에 있어서, 상기 검출 수단은 또한, 상기 에러가 정정될 수 없는 메모리 동작을 초래하는 에러인지 여부를 식별하도록 구성되는, 장치.
  33. 청구항 32에 있어서, 상기 검출 수단은 또한, 상기 에러가 정정될 수 없는 상기 메모리 동작을 초래하는 에러임의 표시를, 그러한 에러의 포지티브 식별시, 제공하도록 구성되는, 장치.
  34. 청구항 29 내지 33 중 어느 한 항에 있어서, 상기 검출 수단은 선택적으로 디스에이블될 수 있는, 장치.
  35. 시스템으로서,
    복수개의 반도체 메모리 장치; 및
    상기 장치와 통신하기 위한 제어기 수단을 포함하며, 상기 제어기 수단은:
    메모리 장치로 가는 패킷을 생성하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단; 및
    상기 패킷을 상기 복수개의 반도체 메모리 장치 중 제1 장치에 출력하기 위한 수단을 포함하며,
    상기 시스템의 반도체 메모리 장치들 사이에 직렬-상호 연결 구조가 존재하며, 상기 시스템은 포인트-투-포인트 링 토폴로지를 갖는, 시스템.
  36. 청구항 35에 있어서, 상기 제어기 수단은 에러 매니저를 더 포함하는, 시스템.
  37. 청구항 36에 있어서, 상기 복수개의 반도체 메모리 장치 각각은 에러 매니저를 포함하는, 시스템.
  38. 청구항 36에 있어서, 상기 제어기 수단은 에러로 어드레스된 장치 에러 바이트를 수신하도록 구성되고, 상기 에러 매니저는 의도된 타겟 장치 이전의 장치가 에러로 어드레스되었는지 여부를 결정하기 위하여 상기 에러로 어드레스된 장치 에러 바이트를 처리하도록 구성되는, 시스템.
  39. 청구항 35 내지 38 중 어느 한 항에 있어서, 상기 생성 수단은 상기 의도된 타겟 장치 이전의 상기 장치가 에러로 어드레스된 경우 커맨드의 재발급을 초래하도록 구성되는, 시스템.
  40. 청구항 35에 있어서, 상기 복수개의 반도체 메모리 장치 각각의 레지스터 수단 각각의 정보가 순차적인 방식으로 상기 제어기 수단에 제공될 수 있도록, 상기 생성 수단은 상기 복수개의 반도체 메모리 장치 각각에 의해 수신될 수 있는 브로드캐스트 커맨드를 생성할 수 있는, 시스템.
  41. 메모리 장치로서,
    패킷을 수신하기 위한 수단으로서, 상기 패킷의 제1 부분은 적어도 하나의 커맨드 바이트를 포함하고, 상기 패킷의 제2 부분은 커맨드 에러 검출을 가능하게 하기 위한 패리티 비트를 포함하는, 수단;
    상기 패리티 비트를 기초로 상기 적어도 하나의 커맨드 바이트내에 에러가 존재하는지 여부를 검출하기 위한 수단
    을 포함하는, 메모리 장치.
KR1020117009393A 2008-12-18 2009-12-10 에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템 KR101687038B1 (ko)

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 2009-04-06
US12/418,892 US8880970B2 (en) 2008-12-23 2009-04-06 Error detection method and a system including one or more memory devices
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 (ko) 2011-09-20
KR101687038B1 KR101687038B1 (ko) 2016-12-15

Family

ID=42268218

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009393A KR101687038B1 (ko) 2008-12-18 2009-12-10 에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템

Country Status (6)

Country Link
EP (1) EP2359372B1 (ko)
JP (2) JP5753988B2 (ko)
KR (1) KR101687038B1 (ko)
CN (1) CN102257573B (ko)
TW (1) TWI517174B (ko)
WO (1) WO2010069045A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2901457A4 (en) * 2012-09-28 2016-04-13 Hewlett Packard Development Co DYNAMIC SELECTION BETWEEN MEMORY ERROR RECOGNITIONS AND MEMORY ERROR CORRECTIONS
KR20170086345A (ko) * 2016-01-18 2017-07-26 에스케이하이닉스 주식회사 메모리 칩 및 메모리 컨트롤러를 포함하는 메모리 시스템
CN107239363B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息上报方法及系统
CN107134294B (zh) * 2017-05-27 2020-04-24 北京东土军悦科技有限公司 一种ecc信息获取方法及系统
KR102433098B1 (ko) 2018-02-26 2022-08-18 에스케이하이닉스 주식회사 어드레스 생성회로, 어드레스 및 커맨드 생성회로 및 반도체 시스템
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations 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
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
KR20210093610A (ko) 2020-01-20 2021-07-28 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR20220139199A (ko) * 2021-04-07 2022-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US11822793B2 (en) * 2022-04-04 2023-11-21 Western Digital Technologies, Inc. Complete and fast protection against CID conflict

Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 (de) * 2003-08-06 2006-02-16 Infineon Technologies Ag Hub-Baustein zum Anschließen von einem oder mehreren Speicherbausteinen
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
DE102004004796B4 (de) * 2004-01-30 2007-11-29 Infineon Technologies Ag Vorrichtung zur Datenübertragung zwischen Speichern
US8375146B2 (en) * 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
JP2006065697A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
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
CN102760476A (zh) * 2006-08-22 2012-10-31 莫塞德技术公司 可扩缩的存储器系统
US7904639B2 (en) 2006-08-22 2011-03-08 Mosaid Technologies Incorporated Modular command structure for memory and 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 (ko) * 2007-02-08 2013-09-12 삼성전자주식회사 메모리 시스템, 이 시스템을 위한 메모리, 및 이 메모리를위한 명령 디코딩 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
CN102257573B (zh) 2014-11-05
TW201106369A (en) 2011-02-16
EP2359372A4 (en) 2017-06-21
JP2015099598A (ja) 2015-05-28
CN102257573A (zh) 2011-11-23
JP2012512467A (ja) 2012-05-31
TWI517174B (zh) 2016-01-11
WO2010069045A1 (en) 2010-06-24
EP2359372B1 (en) 2020-04-08
JP5753988B2 (ja) 2015-07-22
KR101687038B1 (ko) 2016-12-15
EP2359372A1 (en) 2011-08-24

Similar Documents

Publication Publication Date Title
KR101687038B1 (ko) 에러 검출 방법 및 하나 이상의 메모리 장치를 포함하는 시스템
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
US7624225B2 (en) System and method for providing synchronous dynamic random access memory (SDRAM) mode register shadowing in a memory system
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 (zh) 具有分離循環冗餘碼訊框之有效率帶內可靠性技術的方法、積體電路與系統以及動態隨機存取記憶體裝置
US8843692B2 (en) System of interconnected nonvolatile memories having automatic status packet
US20090187794A1 (en) System and method for providing a memory device having a shared error feedback pin
US9852811B2 (en) Device and method for detecting controller signal errors in flash memory
US20240079079A1 (en) Buffer circuit with adaptive repair capability
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

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