KR20210055793A - 에러 정정 방법 및 디바이스 - Google Patents

에러 정정 방법 및 디바이스 Download PDF

Info

Publication number
KR20210055793A
KR20210055793A KR1020217013535A KR20217013535A KR20210055793A KR 20210055793 A KR20210055793 A KR 20210055793A KR 1020217013535 A KR1020217013535 A KR 1020217013535A KR 20217013535 A KR20217013535 A KR 20217013535A KR 20210055793 A KR20210055793 A KR 20210055793A
Authority
KR
South Korea
Prior art keywords
data
codeword
data set
memory device
channel
Prior art date
Application number
KR1020217013535A
Other languages
English (en)
Other versions
KR102627211B1 (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
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Priority to KR1020247001590A priority Critical patent/KR20240010108A/ko
Publication of KR20210055793A publication Critical patent/KR20210055793A/ko
Application granted granted Critical
Publication of KR102627211B1 publication Critical patent/KR102627211B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0096Channel splitting in point-to-point links

Abstract

코드워드를 사용하여 데이터(예를 들어, 메모리 디바이스에 저장된 데이터)에서 에러를 검출하거나 정정하는 방법, 시스템 및 디바이스가 본 명세서에 설명된다. 호스트 디바이스는 상기 메모리 디바이스에 저장될 데이터와 연관된 하나 이상의 코드워드를 생성할 수 있다. 일부 경우에, 상기 호스트 디바이스는 (예를 들어, 상기 호스트 디바이스에 의해 상기 메모리 디바이스로 송신된 데이터에 대응하는) 에러를 검출하고 정정하기 위한 하나 이상의 코드워드를 생성할 수 있다. 일부 경우에, 상기 호스트 디바이스는 상기 하나 이상의 코드워드가 상기 데이터와 함께 상기 버스트에 포함될 수 있도록 확장된 (예를 들어, 조정 가능한) 버스트 길이를 사용하여 상기 코드워드 및 연관된 데이터를 송신할 수 있다. 추가적으로 또는 대안적으로, 상기 호스트 디바이스는 상기 데이터를 송신하는 데 사용된 하나 이상의 채널과 다른 하나 이상의 채널을 통해 하나 이상의 코드워드를 송신할 수 있다.

Description

에러 정정 방법 및 디바이스
상호 참조
본 특허 출원은 미국 특허 출원 번호 16/579,219(발명자: Schaefer 등, 발명의 명칭: "METHODS AND DEVICES FOR ERROR CORRECTION", 출원일: 2019년 9월 23일), 및 미국 가특허 출원 번호 62/746,316(발명자: Schaefer 등, 발명의 명칭: "METHODS AND DEVICES FOR ERROR CORRECTION", 출원일: 2018년 10월 16일)의 우선권을 주장하며, 이들 선출원 각각은 양수인에게 양도되고 이들 각각은 전체 내용이 본 명세서에 병합된다.
이하는 일반적으로, 메모리 시스템에 관한 것이고, 보다 상세하게는, 에러 정정 방법 및 디바이스에 관한 것이다.
메모리 디바이스는 컴퓨터, 무선 통신 디바이스, 카메라, 디지털 디스플레이 등과 같은 다양한 전자 디바이스에서 정보를 저장하는 데 널리 사용된다. 정보는 메모리 디바이스의 상이한 상태를 프로그래밍함으로써 저장된다. 예를 들어, 이진 디바이스는 매우 흔히 종종 논리 1 또는 논리 0으로 표시된 2개의 상태 중 하나를 저장한다. 다른 디바이스에서, 2개를 초과하는 상태가 저장될 수 있다. 저장된 정보에 액세스하기 위해, 디바이스의 구성 요소는 메모리 디바이스에서 적어도 하나의 저장된 상태를 판독하거나 감지할 수 있다. 정보를 저장하기 위해, 디바이스의 구성 요소는 메모리 디바이스에 상태를 기입하거나 프로그래밍할 수 있다.
자기 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 RAM(DRAM), 동기식 동적 RAM(SDRAM), 강유전성 RAM(FeRAM), 자기 RAM(MRAM), 저항성 RAM(RRAM), 플래시 메모리, 위상 변화 메모리(PCM) 등을 포함하는 다양한 유형의 메모리 디바이스가 존재한다. 메모리 디바이스는 휘발성이거나 비휘발성일 수 있다. 비휘발성 메모리, 예를 들어, FeRAM은 심지어 외부 전력 소스가 없는 경우에도 확장된 시간 기간 동안 저장된 논리 상태를 유지할 수 있다. 휘발성 메모리 디바이스, 예를 들어, DRAM은 외부 전력 소스에 의해 주기적으로 리프레시(refresh)되지 않는 한, 시간이 지남에 따라 저장된 상태를 상실할 수 있다.
일부 경우에, 메모리 디바이스(예를 들어, DRAM 디바이스)는 외부 제어기(예를 들어, 호스트 디바이스)로부터 커맨드 또는 데이터를 수신할 수 있다. 일부 경우에, 송신 동안 또는 메모리 디바이스에 저장된 동안 외부 제어기로부터 수신된 데이터에 에러가 발생할 수 있다(예를 들어, 전자기 간섭(EMI)으로 인해 데이터가 시간이 지남에 따라 손상될 수 있음). 메모리 디바이스를 개선하는 것은 일반적으로 다른 것 중에서도 특히 메모리 셀 밀도의 증가, 판독/기입 속도의 증가, 신뢰성의 증가, 데이터 보존력의 증가, 전력 소비의 감소 또는 제조 비용의 감소를 포함할 수 있다.
도 1은 본 명세서에 개시된 하나 이상의 메모리 디바이스를 이용하는 시스템의 일례를 도시한다.
도 2는 본 명세서에 개시된 메모리 다이의 일례를 도시한다.
도 3a 내지 도 3c는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 데이터 세트의 일례를 도시한다.
도 4a 내지 도 4c는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 데이터 세트의 일례를 도시한다.
도 5a 내지 도 5c는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 데이터 세트의 일례를 도시한다.
도 6a 내지 도 6c는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 데이터 세트의 일례를 도시한다.
도 7a 및 도 7b는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 시스템의 일례를 도시한다.
도 8a 및 도 8b는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 데이터 세트의 일례를 도시한다.
도 9는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 호스트 디바이스 관리자의 블록도를 도시한다.
도 10은 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 메모리 디바이스 관리자의 블록도를 도시한다.
도 11 내지 도 14는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 방법 또는 방법들을 예시하는 흐름도를 도시한다.
메모리 디바이스는 개인용 컴퓨터, 무선 통신 디바이스, 서버, 사물 인터넷(IoT) 디바이스, 자동차의 전자 부품 등과 같은 전자 장치의 일부로서 다양한 조건 하에서 동작할 수 있다. 일부 경우에, 특정 구현을 위한 적용(예를 들어, 일부 경우에 자율 또는 반 자율 주행 기능이 있는 자동차)을 지원하는 메모리 디바이스는 신뢰성 증가 제약을 받을 수 있다. 따라서 일부 적용을 위한 메모리 디바이스(예를 들어, DRAM)는 상대적으로 더 높은 산업 사양을 받는 신뢰성(예를 들어, 더 높은 신뢰성 제약)으로 동작할 것으로 예상될 수 있다.
일부 메모리 디바이스는 외부 제어기(예를 들어, 호스트 디바이스)로부터 커맨드를 수신할 수 있다. 커맨드는 외부 제어기와 메모리 디바이스 사이의 데이터 전송을 나타낼 수 있다. 예를 들어, 판독 동작에서 데이터는 메모리 디바이스로부터 외부 제어기로 전송될 수 있는 반면, 기입 동작에서 데이터는 외부 제어기로부터 메모리 디바이스로 전송될 수 있다. 외부 제어기와 메모리 디바이스 사이의 버스는 메모리 디바이스의 데이터 핀에 결합된 데이터 채널 세트를 포함할 수 있다.
액세스 동작을 위한 데이터와 연관된 에러 정정 코딩(ECC) 정보는 데이터 채널 세트 중 하나 이상을 사용하여 전달될 수 있다. ECC 정보는 연관된 데이터에서 에러를 검출하거나 정정하기 위한 코드워드를 포함할 수 있다. 일부 예에서, ECC 코드워드는 데이터 채널을 통해 전달될 수 있다. 이러한 ECC 정보는 일부 경우에, 인라인 또는 랭크 ECC 정보라고 지칭될 수 있다. 이러한 경우에, 호스트 디바이스 및/또는 메모리 디바이스는 액세스 동작과 연관된 데이터 및 이 데이터와 연관된 ECC 코드워드를 모두 포함하도록 데이터 버스트(burst)의 버스트 길이를 조정할 수 있다. ECC 코드워드는 연관된 데이터와 함께 메모리 디바이스에 저장될 수 있다. 이러한 예에서, ECC 코드워드는 메모리 디바이스에 데이터를 저장함으로써 발생하는 에러(예를 들어, 데이터 손상으로부터 발생하는 에러)를 검출하거나 정정하도록 구성될 수 있다.
일부 예에서, ECC 코드워드는 측대역(sideband)을 통해 전달될 수 있다. 그리고 일부 경우에, 이러한 측대역 ECC 코드워드는 송신 에러를 검출하거나 정정하는 데 사용될 수 있으며, 데이터를 메모리 디바이스에 저장함으로써 발생하는 에러(예를 들어, 데이터 손상으로부터 발생하는 에러)를 나중에 검출하거나 정정하기 위해 메모리 디바이스에 저장될 수 있다. 이러한 ECC 정보는 일부 경우에 링크 ECC 정보라고 지칭될 수 있다.
ECC 정보(예를 들어, 메모리 디바이스에 저장된 ECC 코드워드)는 판독 커맨드의 일부로서 외부 제어기 또는 호스트 디바이스로 다시 송신될 수 있고, 여기서 연관된 데이터가 검색된다. 이것은 송신 에러 또는 메모리 디바이스에 데이터를 저장하는 것으로부터 발생하는 에러 또는 에러들(예를 들어, 데이터 손상으로부터 발생하는 에러)을 외부 제어기 또는 호스트 디바이스가 검출하거나 정정하는 것을 지원할 수 있다.
본 발명의 특징은 처음에 도 1 및 도 2를 참조하여 설명된 메모리 시스템의 맥락에서 설명된다. 본 발명의 특징은 도 3 내지 도 8b를 참조하여 설명된 데이터 세트 및 장치 다이어그램의 맥락에서 설명된다. 본 발명의 이들 및 다른 특징은 도 9 내지 도 14를 참조하여 설명된 에러 정정 방법 및 디바이스에 관한 장치 다이어그램 및 흐름도를 참조하여 추가적으로 예시되고 설명된다.
도 1은 본 명세서에 개시된 양태에 따라 하나 이상의 메모리 디바이스를 사용하는 시스템(100)의 일례를 도시한다. 시스템(100)은 외부 메모리 제어기(105), 메모리 디바이스(110), 및 이 외부 메모리 제어기(105)와 메모리 디바이스(110)를 결합시키는 복수의 채널(115)을 포함할 수 있다. 시스템(100)은 하나 이상의 메모리 디바이스를 포함할 수 있지만, 설명의 용이함을 위해, 하나 이상의 메모리 디바이스는 단일 메모리 디바이스(110)로서 설명될 수 있다.
시스템(100)은 컴퓨팅 디바이스, 모바일 컴퓨팅 디바이스, 무선 디바이스, 또는 그래픽 처리 디바이스와 같은 전자 디바이스의 양태를 포함할 수 있다. 시스템(100)은 휴대용 전자 디바이스의 일례일 수 있다. 시스템(100)은 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 휴대폰, 착용 가능한 디바이스, 인터넷 연결 디바이스 등의 일례일 수 있다. 메모리 디바이스(110)는 시스템(100)의 하나 이상의 다른 구성 요소에 대한 데이터를 저장하도록 구성된 시스템의 구성 요소일 수 있다. 일부 예에서, 시스템(100)은 메모리 디바이스 또는 액세스 포인트를 사용하여 다른 시스템 또는 디바이스와 양방향 무선 통신을 하도록 구성된다. 일부 예에서, 시스템(100)은 기계 유형 통신(MTC), 기계 대 기계(M2M) 통신, 또는 디바이스 대 디바이스(D2D) 통신을 할 수 있다.
시스템(100)의 적어도 일부는 호스트 디바이스의 일례일 수 있다. 이러한 호스트 디바이스는 컴퓨팅 디바이스, 모바일 컴퓨팅 디바이스, 무선 디바이스, 그래픽 처리 디바이스, 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트폰, 휴대폰, 착용 가능한 디바이스, 인터넷 연결 디바이스, 일부 다른 고정식 또는 휴대용 전자 디바이스 등과 같은 프로세스를 실행하기 위해 메모리를 사용하는 디바이스의 일례일 수 있다. 일부 경우에, 호스트 디바이스는 외부 메모리 제어기(105)의 기능을 구현하는 하드웨어, 펌웨어, 소프트웨어, 또는 이들의 조합을 언급할 수 있다. 일부 경우에, 외부 메모리 제어기(105)는 호스트 또는 호스트 디바이스로서 언급될 수 있다. 일부 예에서, 시스템(100)은 그래픽 카드이다. 일부 경우에 호스트 디바이스는 그래픽 처리 유닛(GPU)을 포함할 수 있다.
일부 경우에, 메모리 디바이스(110)는 시스템(100)의 다른 구성 요소와 통신하고 시스템(100)에 의해 사용되거나 참조될 수 있는 물리적 메모리 어드레스/공간을 제공하도록 구성된 독립형 디바이스 또는 구성 요소일 수 있다. 일부 예에서, 메모리 디바이스(110)는 적어도 하나의 또는 복수의 상이한 유형의 시스템(100)과 함께 작동하도록 구성될 수 있다. 시스템(100)의 구성 요소와 메모리 디바이스(110) 사이의 신호화는 신호를 변조하기 위한 변조 방식, 신호를 전달하기 위한 상이한 핀 설계, 시스템(100) 및 메모리 디바이스(110)의 별개의 패키징, 시스템(100)과 메모리 디바이스(110) 사이의 클록 신호화 및 동기화, 타이밍 규정, 및/또는 다른 인자를 지원하도록 동작 가능할 수 있다.
메모리 디바이스(110)는 시스템(100)의 구성 요소에 대한 데이터를 저장하도록 구성될 수 있다. 일부 경우에, 메모리 디바이스(110)는 (예를 들어, 외부 메모리 제어기(105)를 통해 시스템(100)에 의해 제공된 커맨드에 응답하고 커맨드를 실행하는) 시스템(100)에 대해 슬레이브형 디바이스로 작용할 수 있다. 이러한 커맨드는 기입 동작을 위한 기입 커맨드, 판독 동작을 위한 판독 커맨드, 리프레시 동작을 위한 리프레시 커맨드, 또는 다른 커맨드와 같은, 액세스 동작을 위한 액세스 커맨드를 포함할 수 있다. 메모리 디바이스(110)는 데이터 저장을 위해 원하는 또는 지정된 용량을 지원하기 위해 2개 이상의 메모리 다이(160)(예를 들어, 메모리 칩)를 포함할 수 있다. 2개 이상의 메모리 다이를 포함하는 메모리 디바이스(110)는 다중 다이 메모리 또는 패키지라고 지칭될 수 있다(다중 칩 메모리 또는 패키지라고도 지칭됨).
시스템(100)은 프로세서(120), 기본 입력/출력 시스템(BIOS) 구성 요소(125), 하나 이상의 주변 구성 요소(130), 및 입력/출력(I/O) 제어기(135)를 더 포함할 수 있다. 시스템(100)의 구성 요소는 버스(140)를 사용하여 서로 전자 통신할 수 있다.
프로세서(120)는 시스템(100)의 적어도 일부를 제어하도록 구성될 수 있다. 프로세서(120)는 범용 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 전계 프로그래밍 가능한 게이트 어레이(FPGA) 또는 다른 프로그래밍 가능한 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 회로, 이산 하드웨어 구성 요소일 수 있고, 또는 프로세서는 이 유형의 구성 요소의 조합일 수 있다. 이러한 경우에, 프로세서(120)는 다른 예 중에서도 특히 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 범용 GPU(GPGPU), 또는 시스템 온 칩(system on a chip: SoC)의 일례일 수 있다.
BIOS 구성 요소(125)는 시스템(100)의 다양한 하드웨어 구성 요소를 초기화하고 실행할 수 있는 펌웨어로서 동작하는 BIOS를 포함하는 소프트웨어 구성 요소일 수 있다. BIOS 구성 요소(125)는 또한, 프로세서(120)와 시스템(100)의 다양한 구성 요소, 예를 들어, 주변 구성 요소(130), I/O 제어기(135) 등 사이의 데이터 흐름을 관리할 수 있다. BIOS 구성 요소(125)는 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 비휘발성 메모리에 저장된 프로그램 또는 소프트웨어를 포함할 수 있다.
주변 구성 요소(들)(130)는 시스템(100)에 또는 시스템과 통합될 수 있는 임의의 입력 디바이스 또는 출력 디바이스, 또는 이러한 디바이스를 위한 인터페이스일 수 있다. 예는 디스크 제어기, 사운드 제어기, 그래픽 제어기, 이더넷 제어기, 모뎀, 범용 직렬 버스(USB) 제어기, 직렬 또는 병렬 포트, 또는 주변 구성 요소 상호 연결부(PCI) 또는 가속 그래픽 포트(AGP) 슬롯과 같은 주변 카드 슬롯을 포함할 수 있다. 주변 구성 요소(들)(130)는 이 기술 분야에 통상의 지식을 가진 자라면 주변 장치로서 이해하는 다른 구성 요소일 수 있다.
I/O 제어기(135)는 프로세서(120)와 주변 구성 요소(들)(130), 입력 디바이스(145), 또는 출력 디바이스(150) 사이의 데이터 통신을 관리할 수 있다. I/O 제어기(135)는 시스템(100)에 또는 시스템과 통합되지 않은 주변 장치를 관리할 수 있다. 일부 경우에, I/O 제어기(135)는 외부 주변 구성 요소에 대한 물리적 연결부 또는 포트를 표현할 수 있다.
입력 디바이스(145)는 시스템(100) 또는 시스템의 구성 요소에 정보, 신호, 또는 데이터를 제공하는 시스템(100) 외부의 디바이스 또는 신호를 표현할 수 있다. 이것은 사용자 인터페이스를 포함하거나 또는 다른 디바이스와의 또는 다른 디바이스들 사이의 인터페이스를 포함할 수 있다. 일부 경우에, 입력 디바이스(145)는 하나 이상의 주변 구성 요소(130)를 통해 시스템(100)과 인터페이싱하는 주변 장치이거나 또는 I/O 제어기(135)에 의해 관리될 수 있다.
출력 디바이스(150)는 시스템(100)으로부터 또는 시스템의 구성 요소 중 임의의 것으로부터 출력을 수신하도록 구성된 시스템(100) 외부의 디바이스 또는 신호를 표현할 수 있다. 출력 디바이스(150)의 예는 디스플레이, 오디오 스피커, 인쇄 디바이스, 또는 인쇄 회로 기판의 다른 프로세서 등을 포함할 수 있다. 일부 경우에, 출력 디바이스(150)는 하나 이상의 주변 구성 요소(130)를 통해 시스템(100)과 인터페이싱하는 주변 장치이거나 또는 I/O 제어기(135)에 의해 관리될 수 있다.
시스템(100)의 구성 요소는 그 기능을 수행하도록 설계된 범용 또는 특수 목적 회로부로 구성될 수 있다. 이것은 본 명세서에서 설명된 기능을 수행하도록 구성된 다양한 회로 요소, 예를 들어, 전도성 라인, 트랜지스터, 커패시터, 인덕터, 저항기, 증폭기, 또는 다른 능동 또는 수동 요소를 포함할 수 있다.
메모리 디바이스(110)는 디바이스 메모리 제어기(155) 및 하나 이상의 메모리 다이(160)를 포함할 수 있다. 각각의 메모리 다이(160)는 로컬 메모리 제어기(165)(예를 들어, 로컬 메모리 제어기(165-a), 로컬 메모리 제어기(165-b), 및/또는 로컬 메모리 제어기(165-N)) 및 메모리 어레이(170)(예를 들어, 메모리 어레이(170-a), 메모리 어레이(170-b) 및/또는 메모리 어레이(170-N))를 포함할 수 있다. 메모리 어레이(170)는 메모리 셀의 집합(예를 들어, 그리드)일 수 있으며, 각각의 메모리 셀은 적어도 1 비트의 디지털 데이터를 저장하도록 구성된다. 메모리 어레이(170) 및/또는 메모리 셀의 특징은 도 2를 참조하여 보다 상세히 설명된다.
메모리 디바이스(110)는 메모리 셀의 2차원(2D) 어레이의 일례이거나 또는 메모리 셀의 3차원(3D) 어레이의 일례일 수 있다. 예를 들어, 2D 메모리 디바이스는 단일 메모리 다이(160)를 포함할 수 있다. 3D 메모리 디바이스는 2개 이상의 메모리 다이(160)(예를 들어, 메모리 다이(160-a), 메모리 다이(160-b), 및/또는 임의의 수량의 메모리 다이(160-N))를 포함할 수 있다. 3D 메모리 디바이스에서, 복수의 메모리 다이(160-N)는 서로 상하로 적층될 수 있다. 일부 경우에, 3D 메모리 디바이스의 메모리 다이(160-N)는 데크(deck), 레벨, 층 또는 다이로서 언급될 수 있다. 3D 메모리 디바이스는 임의의 수량의 적층된 메모리 다이(160-N)(예를 들어, 2개의 높이, 3개의 높이, 4개의 높이, 5개의 높이, 6개의 높이, 7개의 높이, 8개의 높이)를 포함할 수 있다. 이것은 단일 2D 메모리 디바이스에 비해 기판 상에 위치될 수 있는 메모리 셀의 수량을 증가시킬 수 있으며, 이는 결과적으로 생산 비용을 감소시키거나, 또는 메모리 어레이의 성능을 증가시키거나, 이 둘 모두를 수행할 수 있다. 일부 3D 메모리 디바이스에서, 상이한 데크는 일부 데크가 워드 라인, 디지트 라인 및/또는 플레이트 라인 중 적어도 하나를 공유할 수 있도록 적어도 하나의 공통 액세스 라인을 공유할 수 있다.
디바이스 메모리 제어기(155)는 메모리 디바이스(110)의 동작을 제어하도록 구성된 회로 또는 구성 요소를 포함할 수 있다. 이와 같이, 디바이스 메모리 제어기(155)는 메모리 디바이스(110)가 커맨드를 수행하는 것을 가능하게 하는 하드웨어, 펌웨어, 및 소프트웨어를 포함할 수 있고, 메모리 디바이스(110)와 관련된 커맨드, 데이터, 또는 제어 정보를 수신, 송신, 또는 실행하도록 구성될 수 있다. 디바이스 메모리 제어기(155)는 외부 메모리 제어기(105), 하나 이상의 메모리 다이(160), 또는 프로세서(120)와 통신하도록 구성될 수 있다. 일부 경우에, 메모리 디바이스(110)는 외부 메모리 제어기(105)로부터 데이터 및/또는 커맨드를 수신할 수 있다. 예를 들어, 메모리 디바이스(110)는 메모리 디바이스(110)가 시스템(100)의 구성 요소(예를 들어, 프로세서(120))를 대신하여 특정 데이터를 저장하는 것을 나타내는 기입 커맨드를 수신하거나, 또는 메모리 디바이스(110)가 메모리 다이(160)에 저장된 특정 데이터를 시스템(100)의 구성 요소(예를 들어, 프로세서(120))에 제공하는 것을 나타내는 판독 커맨드를 수신할 수 있다. 일부 경우에, 디바이스 메모리 제어기(155)는 메모리 다이(160)의 로컬 메모리 제어기(165)와 결부하여 본 명세서에 설명된 메모리 디바이스(110)의 동작을 제어할 수 있다. 디바이스 메모리 제어기(155) 및/또는 로컬 메모리 제어기(165)에 포함된 구성 요소의 예는 외부 메모리 제어기(105)로부터 수신된 신호를 복조하기 위한 수신기, 신호를 변조하고 외부 메모리 제어기(105)로 송신하기 위한 디코더, 논리 회로, 디코더, 증폭기, 필터 등을 포함할 수 있다.
로컬 메모리 제어기(165)(예를 들어, 메모리 다이(160)에 로컬임)는 메모리 다이(160)의 동작을 제어하도록 구성될 수 있다. 또한, 로컬 메모리 제어기(165)는 디바이스 메모리 제어기(155)와 통신하도록(예를 들어, 데이터 및/또는 커맨드를 수신하고 송신하도록) 구성될 수 있다. 로컬 메모리 제어기(165)는 본 명세서에서 설명된 메모리 디바이스(110)의 동작을 제어하기 위해 디바이스 메모리 제어기(155)를 지원할 수 있다. 일부 경우에, 메모리 디바이스(110)는 디바이스 메모리 제어기(155)를 포함하지 않으며, 로컬 메모리 제어기(165) 또는 외부 메모리 제어기(105)는 본 명세서에서 설명된 다양한 기능을 수행할 수 있다. 이와 같이, 로컬 메모리 제어기(165)는 디바이스 메모리 제어기(155)와 통신하거나, 다른 로컬 메모리 제어기(165)와 통신하거나, 또는 직접 외부 메모리 제어기(105) 또는 프로세서(120)와 통신하도록 구성될 수 있다.
외부 메모리 제어기(105)는 시스템(100)의 구성 요소(예를 들어, 프로세서(120))와 메모리 디바이스(110) 간에 정보, 데이터, 및/또는 커맨드의 전달을 가능하게 하도록 구성될 수 있다. 외부 메모리 제어기(105)는 시스템(100)의 구성 요소가 메모리 디바이스의 동작의 상세를 알 필요가 없을 수 있도록 시스템(100)의 구성 요소와 메모리 디바이스(110) 사이의 연락자(liaison)로 작용할 수 있다. 시스템(100)의 구성 요소는 외부 메모리 제어기(105)가 만족하는 요청(예를 들어, 판독 커맨드 또는 기입 커맨드)을 외부 메모리 제어기(105)에 제공할 수 있다. 외부 메모리 제어기(105)는 시스템(100)의 구성 요소와 메모리 디바이스(110) 사이에서 교환된 통신을 변환 또는 전환할 수 있다. 일부 경우에, 외부 메모리 제어기(105)는 공통 (소스) 시스템 클록 신호를 생성하는 시스템 클록을 포함할 수 있다. 일부 경우에, 외부 메모리 제어기(105)는 공통 (소스) 데이터 클록 신호를 생성하는 공통 데이터 클록을 포함할 수 있다.
일부 경우에, 본 명세서에서 설명된 외부 메모리 제어기(105) 또는 시스템(100)의 다른 구성 요소, 또는 그 기능은 프로세서(120)에 의해 구현될 수 있다. 예를 들어, 외부 메모리 제어기(105)는 시스템(100)의 프로세서(120) 또는 다른 구성 요소에 의해 구현된 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 일부 조합일 수 있다. 외부 메모리 제어기(105)가 메모리 디바이스(110) 외부에 있는 것으로서 도시되었지만, 일부 경우에, 본 명세서에서 설명된 외부 메모리 제어기(105) 또는 그 기능은 메모리 디바이스(110)에 의해 구현될 수 있다. 예를 들어, 외부 메모리 제어기(105)는 디바이스 메모리 제어기(155) 또는 하나 이상의 로컬 메모리 제어기(165)에 의해 구현된 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 일부 조합일 수 있다. 일부 경우에, 외부 메모리 제어기(105)는 외부 메모리 제어기(105)의 부분이 프로세서(120)에 의해 구현되고 다른 부분이 디바이스 메모리 제어기(155) 또는 로컬 메모리 제어기(165)에 의해 구현되도록 프로세서(120)와 메모리 디바이스(110)에 걸쳐 분산될 수 있다. 마찬가지로, 일부 경우에, 본 명세서에서 디바이스 메모리 제어기(155) 또는 로컬 메모리 제어기(165)에 속하는 하나 이상의 기능은 일부 경우에 (프로세서(120)와 별개이거나 프로세서에 포함된) 외부 메모리 제어기(105)에 의해 수행될 수 있다.
시스템(100)의 구성 요소는 복수의 채널(115)을 사용하여 메모리 디바이스(110)와 정보를 교환할 수 있다. 일부 예에서, 채널(115)은 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이의 통신을 가능하게 할 수 있다. 각각의 채널(115)은 시스템(100)의 구성 요소와 연관된 단자 사이의 하나 이상의 신호 경로 또는 송신 매체(예를 들어, 전도체)를 포함할 수 있다. 예를 들어, 채널(115)은 외부 메모리 제어기(105)에 있는 하나 이상의 핀 또는 패드, 및 메모리 디바이스(110)에 있는 하나 이상의 핀 또는 패드를 포함하는 제1 단자를 포함할 수 있다. 핀은 시스템(100)의 디바이스의 전도성 입력 또는 출력 포인트의 일례일 수 있고, 핀은 채널의 일부로 작용하도록 구성될 수 있다.
일부 경우에, 단자의 핀 또는 패드는 채널(115)의 신호 경로의 일부일 수 있다. 추가적인 신호 경로는 시스템(100)의 구성 요소 내에서 신호를 라우팅하기 위한 채널의 단자와 결합될 수 있다. 예를 들어, 메모리 디바이스(110)는 채널(115)의 단자로부터 메모리 디바이스(110)의 다양한 구성 요소(예를 들어, 디바이스 메모리 제어기(155), 메모리 다이(160), 로컬 메모리 제어기(165), 메모리 어레이(170))로 신호를 라우팅하는 신호 경로(예를 들어, 메모리 디바이스(110) 또는 그 구성 요소 내부로의 신호 경로, 예를 들어, 메모리 다이(160) 내부로의 신호 경로)를 포함할 수 있다.
채널(115)(및 연관된 신호 경로 및 단자)은 특정 유형의 정보를 전달하는데 전용될 수 있다. 일부 경우에, 채널(115)은 취합된 채널일 수 있고, 따라서, 다수의 개별적인 채널을 포함할 수 있다. 예를 들어, 데이터 채널(190)은 x4(예를 들어, 4개의 신호 경로를 포함함), x8(예를 들어, 8개의 신호 경로를 포함함), x16(16개의 신호 경로를 포함함) 등일 수 있다.
일부 경우에, 채널(115)은 하나 이상의 커맨드 및 어드레스(CA) 채널(186)을 포함할 수 있다. CA 채널(186)은 커맨드(예를 들어, 어드레스 정보)와 연관된 제어 정보를 포함하는 커맨드를 메모리 디바이스(110)와 외부 메모리 제어기(105) 사이에 전달하도록 구성될 수 있다. 예를 들어, CA 채널(186)은 원하는 데이터의 어드레스를 갖는 판독 커맨드를 포함할 수 있다. 일부 경우에, CA 채널(186)은 상승 클록 신호 에지 및/또는 하강 클록 신호 에지에 등록될 수 있다. 일부 경우에, CA 채널(186)은 8개 또는 9개의 신호 경로를 포함할 수 있다.
일부 경우에, 채널(115)은 하나 이상의 클록 신호(CK) 채널(188)을 포함할 수 있다. CK 채널(188)은 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이에 하나 이상의 공통 클록 신호를 전달하도록 구성될 수 있다. 각각의 클록 신호는 하이 상태와 로우 상태 사이에서 발진하고, 외부 메모리 제어기(105) 및 메모리 디바이스(110)의 동작을 조정하도록 구성될 수 있다. 일부 경우에, 클록 신호는 차동 출력(예를 들어, CK_t 신호 및 CK_c 신호)일 수 있고, CK 채널(188)의 신호 경로는 이에 따라 구성될 수 있다. 일부 경우에, 클록 신호는 단일 종단일 수 있다. 일부 경우에, 클록 신호는 1.5GHz 신호일 수 있다. CK 채널(188)은 임의의 수량의 신호 경로를 포함할 수 있다. 일부 경우에, 클록 신호(CK)(예를 들어, CK_t 신호 및 CK_c 신호)는 메모리 디바이스(110)에 대한 커맨드 및 어드레스 지정 동작, 또는 메모리 디바이스(110)에 대한 다른 시스템 전반의 동작에 대한 타이밍 참조(reference)를 제공할 수 있다. 클록 신호(CK)는 따라서, 제어 클록 신호(CK), 커맨드 클록 신호(CK) 또는 시스템 클록 신호(CK)라고 다양하게 지칭될 수 있다. 시스템 클록 신호(CK)는 하나 이상의 하드웨어 구성 요소(예를 들어, 발진기, 크리스탈, 논리 게이트, 트랜지스터 등)를 포함할 수 있는 시스템 클록에 의해 생성될 수 있다.
일부 경우에, 채널(115)은 하나 이상의 데이터(DQ) 채널(190)을 포함할 수 있다. 데이터 채널(190)은 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이에 데이터 및/또는 제어 정보를 전달하도록 구성될 수 있다. 예를 들어, 데이터 채널(190)은 메모리 디바이스(110)에 기입될 정보(예를 들어, 양방향)를 전달하거나 또는 메모리 디바이스(110)로부터 판독된 정보를 전달할 수 있다. 데이터 채널(190)은 다양한 상이한 변조 방식(예를 들어, NRZ, PAM4)을 사용하여 변조될 수 있는 신호를 전달할 수 있다.
일부 경우에, 액세스 동작의 데이터와 연관된 ECC는 채널(115) 중 하나 이상을 사용하여 전달될 수 있다. ECC 정보는 연관된 데이터에서 에러를 검출하거나 정정하기 위한 코드워드를 포함할 수 있다. 일부 예에서, ECC 코드워드는 데이터 채널(190)을 통해 전달될 수 있다. 이러한 경우에, 호스트 디바이스 및/또는 메모리 디바이스는 액세스 동작과 연관된 데이터 및 이 데이터와 연관된 코드워드를 모두 포함하도록 데이터 버스트의 버스트 길이를 조정할 수 있다.
일부 경우에, 채널(115)은 다른 목적에 전용될 수 있는 하나 이상의 다른 채널(192)을 포함할 수 있다. 이 다른 채널(192)은 임의의 수량의 신호 경로를 포함할 수 있다. 일부 예에서, 다른 채널(192) 중 적어도 하나는 하나 이상의 ECC 채널일 수 있다. 하나 이상의 ECC 채널은 데이터 채널(190)을 사용하여 전달되는 데이터와 연관된 ECC 코드워드를 전달하도록 구성될 수 있다. 이러한 경우에, 데이터는 데이터 채널(190)을 통해 전달될 수 있고, ECC 코드워드는 동일한 버스트 기간 동안 ECC 채널(예를 들어, 다른 채널(192))을 통해 전달될 수 있다. 일부 경우에 ECC 채널은 링크 ECC 채널의 일례일 수 있다.
일부 경우에, 다른 채널(192)은 하나 이상의 기입 클록 신호(WCK) 채널을 포함할 수 있다. WCK에서 'W'가 명목상 "기입"을 나타낼 수 있지만, 기입 클록 신호(WCK)(예를 들어, WCK_t 신호 및 WCK_c 신호)는 일반적으로 메모리 디바이스(110)에 액세스 동작을 위한 타이밍 참조(예를 들어, 판독 및 기입 동작 모두를 위한 타이밍 참조)를 제공할 수 있다. 이에 따라, 기입 클록 신호(WCK)는 데이터 클록 신호(WCK)라고도 지칭될 수 있다. WCK 채널은 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이에 공통 데이터 클록 신호를 전달하도록 구성될 수 있다. 데이터 클록 신호는 외부 메모리 제어기(105) 및 메모리 디바이스(110)의 액세스 동작(예를 들어, 기입 동작 또는 판독 동작)을 조정하도록 구성될 수 있다. 일부 경우에, 기입 클록 신호는 차동 출력(예를 들어, WCK_t 신호 및 WCK_c 신호)일 수 있고, WCK 채널의 신호 경로는 이에 따라 구성될 수 있다. WCK 채널은 임의의 수량의 신호 경로를 포함할 수 있다. 데이터 클록 신호(WCK)는 하나 이상의 하드웨어 구성 요소(예를 들어, 발진기, 크리스탈, 논리 게이트, 트랜지스터, 등)를 포함할 수 있는 데이터 클록에 의해 생성될 수 있다.
일부 경우에, 다른 채널(192)은 하나 이상의 에러 검출 코드(EDC) 채널 또는 ECC 채널을 포함할 수 있다. EDC 채널은 시스템 신뢰성을 개선하기 위해 체크섬(checksum)과 같은 에러 검출 신호를 전달하도록 구성될 수 있다. EDC 채널은 임의의 수량의 신호 경로를 포함할 수 있다.
채널(115)은 다양한 상이한 아키텍처를 사용하여 외부 메모리 제어기(105)를 메모리 장치(110)와 결합할 수 있다. 다양한 아키텍처의 예는 버스, 포인트-투-포인트 연결, 크로스바, 실리콘 인터포저와 같은 고밀도 인터포저, 또는 유기 기판에 형성된 채널, 또는 이들의 일부 조합을 포함할 수 있다. 예를 들어, 일부 경우에, 신호 경로는 실리콘 인터포저 또는 유리 인터포저와 같은 고밀도 인터포저를 적어도 부분적으로 포함할 수 있다.
채널(115)을 통해 전달되는 신호는 다양한 상이한 변조 방식을 사용하여 변조될 수 있다. 일부 경우에, 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이에 전달되는 신호를 변조하기 위해 이진 심볼(또는 이진 레벨) 변조 방식이 사용될 수 있다. 이진 심볼 변조 방식은 M진 변조 방식의 일례일 수 있다(여기서, M은 2임). 이진 심볼 변조 방식의 각각의 심볼은 1 비트의 디지털 데이터를 표현하도록 구성될 수 있다(예를 들어, 심볼은 논리 1 또는 논리 0을 표현할 수 있다). 이진 심볼 변조 방식의 예는 비 제로 복귀(non-return-to-zero: NRZ), 유니폴라 인코딩, 바이폴라 인코딩, 맨체스터 인코딩, 2개의 심볼을 가지는 펄스 진폭 변조(PAM)(예를 들어, PAM2) 및/또는 등을 포함하지만, 이들로 제한되지 않는다.
일부 경우에, 다중 심볼(또는 다중 레벨) 변조 방식은 외부 메모리 제어기(105)와 메모리 디바이스(110) 사이에 전달되는 신호를 변조하기 위해 사용될 수 있다. 다중 심볼 변조 방식은 M진 변조 방식의 일례일 수 있다(여기서 M은 3 이상임). 다중 심볼 변조 방식의 각각의 심볼은 1 비트보다 많은 디지털 데이터를 표현하도록 구성될 수 있다(예를 들어, 심볼은 논리 00, 논리 01, 논리 10 또는 논리 11을 표현할 수 있다). 다중 심볼 변조 방식의 예는 PAM4, PAM8, 등, 직교 진폭 변조(QAM), 직교 위상 편이 변조(QPSK), 및/또는 등을 포함하지만, 이들로 제한되지 않는다. 다중 심볼 신호 또는 PAM4 신호는 1 비트보다 많은 정보를 인코딩하기 위해 적어도 3개의 레벨을 포함하는 변조 방식을 사용하여 변조되는 신호일 수 있다. 다중 심볼 변조 방식 및 심볼은 대안적으로 비 이진, 다중 비트, 또는 고차 변조 방식 및 심볼로 언급될 수 있다.
도 2는 본 발명의 다양한 예에 따른 메모리 다이(200)의 일례를 도시한다. 메모리 다이(200)는 도 1을 참조하여 설명된 메모리 다이(160)의 일례일 수 있다. 일부 경우에, 메모리 다이(200)는 메모리 칩, 메모리 디바이스, 또는 전자 메모리 장치라고 언급될 수 있다. 메모리 다이(200)는 상이한 논리 상태를 저장하도록 프로그래밍 가능한 하나 이상의 메모리 셀(205)을 포함할 수 있다. 각각의 메모리 셀(205)은 2개 이상의 상태를 저장하도록 프로그래밍될 수 있다. 예를 들어, 메모리 셀(205)은 한 번에 1 비트의 디지털 논리(예를 들어, 논리 0 및 논리 1)를 저장하도록 구성될 수 있다. 일부 경우에, 단일 메모리 셀(205)(예를 들어, 다중 레벨 메모리 셀)은 한 번에 1비트보다 많은 디지털 논리(예를 들어, 논리 00, 논리 01, 논리 10 또는 논리 11)를 저장하도록 구성될 수 있다.
메모리 셀(205)은 커패시터에 프로그램 가능한 상태를 나타내는 전하를 저장할 수 있다. DRAM 아키텍처는 프로그래밍 가능한 상태를 나타내는 전하를 저장하기 위해 유전체 재료를 포함하는 커패시터를 포함할 수 있다. 다른 메모리 아키텍처에서, 다른 저장 디바이스 및 구성 요소도 가능하다. 예를 들어, 비선형 유전체 재료도 이용될 수 있다.
판독 및 기입과 같은 동작은 워드 라인(210) 및/또는 디지트 라인(215)과 같은 액세스 라인을 활성화하거나 선택함으로써 메모리 셀(205)에 수행될 수 있다. 일부 경우에, 디지트 라인(215)은 비트 라인으로도 언급될 수 있다. 액세스 라인, 워드 라인 및 디지트 라인이라는 용어 또는 그 유사어는 이해 또는 동작의 손실 없이 상호 교환 가능하다. 워드 라인(210) 또는 디지트 라인(215)을 활성화하거나 선택하는 것은 각각의 라인에 전압을 인가하는 것을 포함할 수 있다.
메모리 다이(200)는 그리드형 패턴으로 배열된 액세스 라인(예를 들어, 워드 라인(210) 및 디지트 라인(215))을 포함할 수 있다. 메모리 셀(205)은 워드 라인(210)과 디지트 라인(215)의 교차점에 위치될 수 있다. 워드 라인(210) 및 디지트 라인(215)을 바이어싱함으로써(예를 들어, 워드 라인(210) 또는 디지트 라인(215)에 전압을 인가함으로써), 단일 메모리 셀(205)이 그 교차점에서 액세스될 수 있다.
메모리 셀(205)에 액세스하는 것은 행 디코더(220) 또는 열 디코더(225)를 통해 제어될 수 있다. 예를 들어, 행 디코더(220)는 로컬 메모리 제어기(260)로부터 행 어드레스를 수신하고, 수신된 행 어드레스에 기초하여 워드 라인(210)을 활성화시킬 수 있다. 열 디코더(225)는 로컬 메모리 제어기(260)로부터 열 어드레스를 수신할 수 있고, 수신된 열 어드레스에 기초하여 디지트 라인(215)을 활성화시킬 수 있다. 예를 들어, 메모리 다이(200)는 WL_1 내지 WL_M으로 명명된 다수의 워드 라인(210), 및 DL_1 내지 DL_N으로 명명된 다수의 디지트 라인(215)을 포함할 수 있으며, 여기서 M 및 N은 메모리 어레이의 크기에 의존한다. 따라서, 워드 라인(210) 및 디지트 라인(215), 예를 들어, WL_1 및 DL_3을 활성화함으로써, 그 교차점에 있는 메모리 셀(205)이 액세스될 수 있다. 2차원 또는 3차원 구성에서, 워드 라인(210)과 디지트 라인(215)의 교차점은 메모리 셀(205)의 어드레스로 언급될 수 있다.
메모리 셀(205)은 커패시터(230)와 같은 논리 저장 구성 요소 및 스위칭 구성 요소(235)를 포함할 수 있다. 커패시터(230)는 유전체 커패시터 또는 강유전체 커패시터의 일례일 수 있다. 커패시터(230)의 제1 노드는 스위칭 구성 요소(235)와 결합될 수 있고, 커패시터(230)의 제2 노드는 전압 소스(240)와 결합될 수 있다. 일부 경우에, 전압 소스(240)는 Vpl과 같은 셀 플레이트 참조 전압일 수 있고, 또는 Vss와 같은 접지일 수 있다. 일부 경우에, 전압 소스(240)는 플레이트 라인 구동기와 결합된 플레이트 라인의 일례일 수 있다. 스위칭 구성 요소(235)는 2개의 구성 요소 사이의 전자 통신을 선택적으로 수립하거나 수립 해제하는 트랜지스터 또는 임의의 다른 유형의 스위치 디바이스의 일례일 수 있다.
메모리 셀(205)을 선택하거나 선택 해제하는 것은 스위칭 구성 요소(235)를 활성화하거나 비활성화함으로써 달성될 수 있다. 커패시터(230)는 스위칭 구성 요소(235)를 사용하여 디지트 라인(215)과 전자 통신할 수 있다. 예를 들어, 커패시터(230)는 스위칭 구성 요소(235)가 비활성화될 때 디지트 라인(215)으로부터 분리될 수 있고, 커패시터(230)는 스위칭 구성 요소(235)가 활성화될 때 디지트 라인(215)과 결합될 수 있다. 일부 경우에, 스위칭 구성 요소(235)는 트랜지스터이고 그 동작은 트랜지스터 게이트에 전압을 인가함으로써 제어될 수 있으며, 여기서 트랜지스터 게이트와 트랜지스터 소스 사이의 전압 차이는 트랜지스터의 임계 전압보다 크거나 미만일 수 있다. 일부 경우에, 스위칭 구성 요소(235)는 p형 트랜지스터 또는 n형 트랜지스터일 수 있다. 워드 라인(210)은 스위칭 구성 요소(235)의 게이트와 전자 통신할 수 있고, 워드 라인(210)에 인가되는 전압에 기초하여 스위칭 구성 요소(235)를 활성화/비활성화할 수 있다.
워드 라인(210)은 메모리 셀(205)에 액세스 동작을 수행하는 데 사용되는 메모리 셀(205)과 전자 통신하는 전도성 라인일 수 있다. 일부 아키텍처에서, 워드 라인(210)은 메모리 셀(205)의 스위칭 구성 요소(235)의 게이트와 전자 통신할 수 있고, 메모리 셀의 스위칭 구성 요소(235)를 제어하도록 구성될 수 있다. 일부 아키텍처에서, 워드 라인(210)은 메모리 셀(205)의 커패시터의 노드와 전자 통신할 수 있고, 메모리 셀(205)은 스위칭 구성 요소를 포함하지 않을 수 있다.
디지트 라인(215)은 메모리 셀(205)을 감지 구성 요소(245)와 연결하는 전도성 라인일 수 있다. 일부 아키텍처에서, 메모리 셀(205)은 액세스 동작의 일부 동안 디지트 라인(215)과 선택적으로 결합될 수 있다. 예를 들어, 메모리 셀(205)의 스위칭 구성 요소(235) 및 워드 라인(210)은 디지트 라인(215) 및 메모리 셀(205)의 커패시터(230)를 결합하고/하거나 분리하도록 구성될 수 있다. 일부 아키텍처에서, 메모리 셀(205)은 디지트 라인(215)과 (예를 들어, 일정하게) 전자 통신할 수 있다.
감지 구성 요소(245)는 메모리 셀(205)의 커패시터(230)에 저장된 상태(예를 들어, 전하)를 검출하고, 저장된 상태에 기초하여 메모리 셀(205)의 논리 상태를 결정하도록 구성될 수 있다. 메모리 셀(205)에 저장된 전하는 일부 경우에 극히 작을 수 있다. 이와 같이, 감지 구성 요소(245)는 메모리 셀(205)에 의해 출력된 신호를 증폭하기 위해 하나 이상의 감지 증폭기를 포함할 수 있다. 감지 증폭기는 판독 동작 동안 디지트 라인(215)의 전하의 작은 변화를 검출할 수 있고, 검출된 전하에 기초하여 논리 상태(0) 또는 논리 상태(1)에 대응하는 신호를 생성할 수 있다. 판독 동작 동안, 메모리 셀(205)의 커패시터(230)는 신호를 그 대응하는 디지트 라인(215)에 출력할 수 있다(예를 들어, 전하를 방전시킬 수 있다). 신호는 디지트 라인(215)의 전압을 변화시킬 수 있다. 감지 구성 요소(245)는 디지트 라인(215)에 걸쳐 메모리 셀(205)로부터 수신된 신호를 참조 신호(250)(예를 들어, 참조 전압)와 비교하도록 구성될 수 있다. 감지 구성 요소(245)는 비교에 기초하여 메모리 셀(205)에 저장된 상태를 결정할 수 있다. 예를 들어, 이진 신호화에서, 디지트 라인(215)이 참조 신호(250)보다 높은 전압을 갖는 경우에, 감지 구성 요소(245)는 메모리 셀(205)의 저장된 상태가 논리 1이라고 결정할 수 있고, 디지트 라인(215)이 참조 신호(250)보다 낮은 전압을 갖는 경우에, 감지 구성 요소(245)는 메모리 셀(205)의 저장된 상태가 논리 0이라고 결정할 수 있다. 감지 구성 요소(245)는 신호의 차를 검출하고 증폭하기 위해 다양한 트랜지스터 또는 증폭기를 포함할 수 있다. 메모리 셀(205)의 검출된 논리 상태는 출력(255)으로서 열 디코더(225)를 통해 출력될 수 있다. 일부 경우에, 감지 구성 요소(245)는 다른 구성 요소(예를 들어, 열 디코더(225), 행 디코더(220))의 부분일 수 있다. 일부 경우에, 감지 구성 요소(245)는 행 디코더(220) 또는 열 디코더(225)와 전자 통신할 수 있다.
로컬 메모리 제어기(260)는 다양한 구성 요소(예를 들어, 행 디코더(220), 열 디코더(225), 및 감지 구성 요소(245))를 통해 메모리 셀(205)의 동작을 제어할 수 있다. 로컬 메모리 제어기(260)는 도 1을 참조하여 설명된 로컬 메모리 제어기(165)의 일례일 수 있다. 일부 경우에, 행 디코더(220), 열 디코더(225), 및 감지 구성 요소(245) 중 하나 이상은 로컬 메모리 제어기(260)와 함께 위치될 수 있다. 로컬 메모리 제어기(260)는 외부 메모리 제어기(105)(또는 도 1을 참조하여 설명된 디바이스 메모리 제어기(155))로부터 커맨드 및/또는 데이터를 수신하고, 커맨드 및/또는 데이터를 메모리 다이(200)에 의해 사용될 수 있는 정보로 전환하고, 메모리 다이(200)에 하나 이상의 동작을 수행하며, 하나 이상의 동작을 수행한 것에 응답하여 메모리 다이(200)로부터 외부 메모리 제어기(105)(또는 디바이스 메모리 제어기(155))로 데이터를 전달하도록 구성될 수 있다. 로컬 메모리 제어기(260)는 타깃 워드 라인(210) 및 타깃 디지트 라인(215)을 활성화하기 위해 행 및 열 어드레스 신호를 생성할 수 있다. 로컬 메모리 제어기(260)는 또한, 메모리 다이(200)의 동작 동안 사용된 다양한 전압 또는 전류를 생성하고 제어할 수 있다. 일반적으로, 본 명세서에서 논의된 인가된 전압 또는 전류의 진폭, 형상, 또는 지속 시간은 조정되거나 달라질 수 있고, 메모리 다이(200)를 동작시킬 때 논의된 다양한 동작마다 상이할 수 있다.
일부 경우에, 로컬 메모리 제어기(260)는 메모리 다이(200)의 하나 이상의 메모리 셀(205)에 기입 동작(예를 들어, 프로그래밍 동작)을 수행하도록 구성될 수 있다. 기입 동작 동안, 메모리 다이(200)의 메모리 셀(205)은 원하는 논리 상태를 저장하도록 프로그래밍될 수 있다. 일부 경우에, 복수의 메모리 셀(205)은 단일 기입 동작 동안 프로그래밍될 수 있다. 로컬 메모리 제어기(260)는 기입 동작을 수행할 타깃 메모리 셀(205)을 식별할 수 있다. 로컬 메모리 제어기(260)는 타깃 메모리 셀(205)과 전자 통신하는 타깃 워드 라인(210) 및 타깃 디지트 라인(215)(예를 들어, 타깃 메모리 셀(205)의 어드레스)을 식별할 수 있다. 로컬 메모리 제어기(260)는 타깃 메모리 셀(205)에 액세스하기 위해 타깃 워드 라인(210) 및 타깃 디지트 라인(215)을 활성화시킬 수 있다(예를 들어, 워드 라인(210) 또는 디지트 라인(215)에 전압을 인가할 수 있다). 로컬 메모리 제어기(260)는 메모리 셀(205)의 커패시터(230)에 특정 상태(예를 들어, 전하)를 저장하기 위해 기입 동작 동안 디지트 라인(215)에 특정 신호(예를 들어, 전압)를 인가할 수 있고, 특정 상태(예를 들어, 전하)는 원하는 논리 상태를 나타낼 수 있다. 일부 경우에, 호스트 디바이스는 기입 동작의 일부로서 메모리 다이(200)에 저장될 데이터와 함께 ECC 코드워드를 송신할 수 있다. ECC 코드워드는 메모리 다이(200)에 저장될 수 있다. 기입 동작과 연관된 데이터와 함께 ECC 코드워드를 메모리 다이에 저장함으로써, ECC 코드워드는 데이터가 메모리 다이에 저장될 때 또는 메모리 다이(200)에 저장된 데이터가 메모리 다이에 의해 액세스될 때 데이터가 손상되었는지 여부를 식별하도록 구성될 수 있다.
일부 경우에, 로컬 메모리 제어기(260)는 메모리 다이(200)의 하나 이상의 메모리 셀(205)에 판독 동작(예를 들어, 감지 동작)을 수행하도록 구성될 수 있다. 판독 동작 동안, 메모리 다이(200)의 메모리 셀(205)에 저장된 논리 상태가 결정될 수 있다. 일부 경우에, 복수의 메모리 셀(205)은 단일 판독 동작 동안 감지될 수 있다. 로컬 메모리 제어기(260)는 판독 동작을 수행할 타깃 메모리 셀(205)을 식별할 수 있다. 로컬 메모리 제어기(260)는 타깃 메모리 셀(205)과 전자 통신하는 타깃 워드 라인(210) 및 타깃 디지트 라인(215)(예를 들어, 타깃 메모리 셀(205)의 어드레스)을 식별할 수 있다. 로컬 메모리 제어기(260)는 타깃 메모리 셀(205)에 액세스하기 위해 타깃 워드 라인(210) 및 타깃 디지트 라인(215)을 활성화시킬 수 있다(예를 들어, 워드 라인(210) 또는 디지트 라인(215)에 전압을 인가할 수 있다). 타깃 메모리 셀(205)은 액세스 라인을 바이어싱한 것에 응답하여 신호를 감지 구성 요소(245)로 전송할 수 있다. 감지 구성 요소(245)는 신호를 증폭할 수 있다. 로컬 메모리 제어기(260)는 감지 구성 요소(245)를 실행하고(예를 들어, 감지 구성 요소를 래치하고), 이에 의해, 메모리 셀(205)로부터 수신된 신호를 참조 신호(250)와 비교할 수 있다. 이 비교에 기초하여, 감지 구성 요소(245)는 메모리 셀(205)에 저장된 논리 상태를 결정할 수 있다. 로컬 메모리 제어기(260)는 메모리 셀(205)에 저장된 논리 상태를 판독 동작의 일부로서 외부 메모리 제어기(105)(또는 디바이스 메모리 제어기(155))에 전달할 수 있다. 메모리 다이(200)에 저장된 데이터와 연관된 ECC 코드워드는 또한 메모리 다이(200)에 저장될 수 있다. 이러한 경우에, 메모리 다이(200)는 데이터가 판독 동작의 일부로서 검색될 때 연관된 ECC 코드워드를 검색할 수 있다. 메모리 다이(200)는 판독 동작의 일부로서 호스트 디바이스에 ECC 코드워드를 송신할 수 있으며, 여기서 호스트 디바이스는 데이터에 에러가 존재하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 다이(200)는 데이터가 호스트 디바이스로 송신되기 전에 데이터가 하나 이상의 에러를 포함하는지 여부를 결정할 수 있다. 이러한 경우에, 메모리 다이(200)는 데이터 및 하나 이상의 ECC 코드워드를 호스트 디바이스로 송신하기 전에 에러를 정정할 수 있다.
일부 메모리 아키텍처에서, 메모리 셀(205)에 액세스하는 것은 메모리 셀(205)에 저장된 논리 상태를 저하시키거나 파괴할 수 있다. 예를 들어, DRAM 아키텍처에서 수행된 판독 동작은 타깃 메모리 셀의 커패시터를 부분적으로 또는 완전히 방전시킬 수 있다. 로컬 메모리 제어기(260)는 메모리 셀을 원래의 논리 상태로 되돌리기 위해 재기입 동작 또는 리프레시 동작을 수행할 수 있다. 로컬 메모리 제어기(260)는 판독 동작 후에 논리 상태를 타깃 메모리 셀에 재기입할 수 있다. 일부 경우에, 재기입 동작은 판독 동작의 일부로 고려될 수 있다. 추가적으로, 워드 라인(210)과 같은 단일 액세스 라인을 활성화하면 이 액세스 라인과 전자 통신하는 일부 메모리 셀에 저장된 상태를 교란시킬 수 있다. 따라서, 재기입 동작 또는 리프레시 동작은 액세스되지 않았을 수 있는 하나 이상의 메모리 셀에 수행될 수 있다.
도 3a는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(300-a)의 일례를 예시한다. 데이터 세트(300-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(300-a)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(300-a)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(300-a)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(310-a)을 가질 수 있다. 예를 들어 채널은 16핀 폭일 수 있다. 다른 예에서, 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(305-a)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(300-a)는 액세스 동작과 연관된 데이터(315-a), 및 이 데이터(315-a)의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(320-a)를 포함할 수 있다.
데이터가 호스트 디바이스와 메모리 디바이스 사이에서 전달되거나 데이터가 메모리 디바이스에 저장될 때 데이터가 손상될 수 있다. 데이터에 에러가 발생하면 호스트 디바이스에서 수행되는 프로세스가 실패하거나 문제가 발생할 수 있다. 에러 정정 코드는 이러한 에러 중 일부를 검출하고/하거나 정정하기 위해 일부 상황에서 사용될 수 있다. 예를 들어, 링크 ECC는 채널을 통해 데이터를 송신하는 동안 발생하는 에러를 검출하거나 정정하는 데 사용될 수 있다. 에러 정정 코드 또는 ECC 코드워드를 사용하여 발생할 수 있는 에러를 검출하거나 정정하는 것이 바람직할 수 있다.
메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 ECC 코드워드를 사용하는 방법, 시스템 및 디바이스가 본 명세서에 설명된다. 호스트 디바이스는 메모리 디바이스에 저장될 데이터와 연관된 하나 이상의 ECC 코드워드를 생성할 수 있다. 일부 경우에, 호스트 디바이스는 메모리 디바이스로 송신되는 전체 데이터 버스트에 대해 하나 이상의 코드워드를 생성할 수 있다. 다른 경우에, 호스트 디바이스는 메모리 디바이스로 송신되는 데이터 버스트의 일부에 대해 하나 이상의 코드워드를 생성할 수 있다. 호스트 디바이스에 의해 생성된 ECC 코드워드는 다양한 다른 방식으로 메모리 디바이스에 송신될 수 있다. 일부 경우에, 복수의 데이터 버스트에 대한 ECC 코드워드는 데이터 채널을 통해 그 데이터 버스트를 사용하여 취합되고 송신될 수 있다. 다른 경우에, 데이터 채널을 통해 송신되는 버스트 데이터가 데이터 및 하나 이상의 ECC 코드워드를 포함할 수 있도록 데이터 버스트 길이가 확장될 수 있다. 다른 경우에, ECC 코드워드는 하나 이상의 다른 채널(예를 들어, 데이터 채널이 아님)을 통해 송신될 수 있다. 이들 다른 경우 중 일부에서, ECC 코드워드는 데이터가 하나 이상의 데이터 채널을 통해 송신된 것과 동일한 버스트 간격 동안 하나 이상의 다른 채널을 통해 송신될 수 있다.
데이터 세트(300-a)는 단일 버스트에서 채널(예를 들어, 데이터 채널)을 통해 데이터(315-a) 및 적어도 하나의 ECC 코드워드(320-a)를 송신하는 일례를 예시한다. 이러한 예에서, ECC 코드워드(320-a)가 버스트에 포함될 수 있도록 버스트 길이가 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(310-a)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(300-a)를 식별할 수 있다. 데이터 세트(300-a)는 또한 단위 간격(305-a)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(300-a)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 채널을 통해 데이터(315-a)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스 또는 메모리 디바이스가 데이터(315-a)를 송신한 것과 동일한 채널을 통해 ECC 코드워드(320-a)를 송신할 수 있다. ECC 코드워드(320-a)를 송신하기 전에, 호스트 디바이스는 데이터(315-a)에 기초하여 ECC 코드워드(320-a)를 생성할 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(315-a) 및 대응하는 ECC 코드워드(320-a)를 포함하는 데이터 세트(300-a)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(320-a)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(300-a)는 단일 버스트(예를 들어, 데이터(315-a) 및 ECC 코드워드(320-a)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(300-a)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(320-a)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(320-a)는 단일 비트 에러 정정(SEC) ECC 또는 단일 비트 에러 정정, 이중 비트 에러 검출(SECDED) ECC, 또는 이 둘 모두를 포함할 수 있다. 이러한 경우에, ECC 코드워드(320-a)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장된 데이터 세트(300-a)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 데이터(315-a)에 기초하여 에러를 정정하거나 검출하기 위해 복수의 ECC 코드워드(320-a)가 생성될 수 있다. 예를 들어, 데이터(315-a)는 복수의 부분으로 분할될 수 있고, 데이터(315-a)의 각 부분은 ECC 코드워드(320-a)와 연관될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성하면 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, ECC 코드워드(320-a)는 모든 데이터(315-a)와 연관될 수 있다. 예를 들어, 데이터(315-a)는 256 비트의 데이터를 포함할 수 있고, ECC 코드워드(320-a)는 256 비트의 데이터(예를 들어, 데이터(315-a))와 연관된 10 비트 코드워드일 수 있다. 다른 예에서, 데이터(315-a) 및 ECC 코드워드(320-a)는 임의의 비트 크기일 수 있다.
일부 경우에, 데이터 세트(300-a)의 버스트 길이(예를 들어, 채널을 통한 단일 버스트와 연관된 단위 간격(305-a)의 수량)는 동일한 데이터 세트(300-a)에 ECC 코드워드(320-a) 및 데이터(315-a)를 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(300-a)의 단위 간격(305-a)은 데이터(315-a)와 동일한 데이터 세트(300-a)에 ECC 코드워드(320-a)를 포함하도록 2개의 단위 간격(305-a)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(300-a)는 미사용 데이터 비트를 포함할 수 있다. 버스트 길이를 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
버스트 길이는 호스트 디바이스와 메모리 디바이스 사이의 신호화 방식에 따라 구성될 수 있다. 예를 들어, 호스트 디바이스는 데이터 세트(300-a)와 연관된 버스트 길이를 나타낼 수 있는 메시지를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 호스트 디바이스는 버스트 길이에 기초하여 ECC 코드워드(320-a)를 생성할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 표시된 버스트 길이에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 데이터 세트(300-a)를 수신할 수 있다. 다른 예에서, 호스트 디바이스는 하나 이상의 ECC 코드워드(320-a)가 데이터 채널을 통해 송신되는 데이터 버스트에 존재할 수 있음을 나타내는 메시지를 메모리 디바이스로 송신할 수 있다. 이러한 예에서, 호스트 디바이스 또는 메모리 디바이스는 ECC 코드워드(320-a)가 데이터 세트(300-a)에 존재할 수 있다는 표시에 적어도 부분적으로 기초하여 새로운 버스트 길이를 식별할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(300-a)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(300-a)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다.
메모리 디바이스는 데이터 세트(300-a)를 수신하고, 데이터 세트(300-a)에 포함된 ECC 코드워드(320-a)를 식별할 수 있다. ECC 코드워드(320-a)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(320-a)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(315-a)는 메모리 디바이스로부터 검색될 수 있고, ECC 코드워드(320-a)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(315-a) 및 ECC 코드워드(320-a)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 호스트 디바이스는 데이터 세트(300-a)와 동일한 버스트 길이를 갖는 다른 데이터 세트를 수신할 수 있다. 호스트 디바이스는 데이터 세트(300-a)와 동일한 버스트 길이에 기초하여 상이한 데이터 세트에서 ECC 코드워드를 식별할 수 있다. 일부 예에서, 호스트 디바이스는 식별된 ECC 코드워드에 기초하여 상이한 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 호스트 디바이스는 다른 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 호스트 디바이스는 상이한 데이터 세트에서 에러를 식별하고 에러를 정정할 수 있다. 이러한 경우에, 호스트 디바이스는 에러가 정정된 데이터 세트에 기초하여 다른 데이터 세트를 생성할 수 있다.
도 3b는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(300-b)의 일례를 도시한다. 데이터 세트(300-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(300-b)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(300-b)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(300-b)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(310-b)을 가질 수 있다. 예를 들어, 채널은 16개의 핀 폭일 수 있다. 다른 예에서, 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(305-b)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(300-b)는 액세스 동작과 연관된 데이터(315-b 및 315-c)의 부분, 및 데이터(315-b 및 315-c)의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(320-b 및 320-c)를 각각 포함할 수 있다.
데이터 세트(300-b)는 버스트에 포함된 데이터의 2개 이상의 부분(예를 들어, 데이터(315-b 또는 315-c))과 연관된 ECC 코드워드(예를 들어, 코드워드(320-b 및 320-c))를 사용하는 일례를 예시한다. 이러한 예에서, 버스트 길이는 코드워드(320-b 및 320-c)가 버스트에 포함될 수 있도록 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(310-b)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(300-b)를 식별할 수 있다. 데이터 세트(300-b)는 또한 단위 간격(305-b)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(300-b)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(315-b 및 315-c)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스 또는 메모리 디바이스가 데이터(315-b 및 315-c)의 부분을 송신한 것과 동일한 채널을 통해 ECC 코드워드(320-b 및 320-c)를 송신할 수 있다. ECC 코드워드(320-b 및 320-c)를 송신하기 전에, 호스트 디바이스는 데이터(315-b 및 315-c)의 부분에 기초하여 ECC 코드워드(320-b 및 320-c)를 생성할 수 있다. 예를 들어, ECC 코드워드(320-b)는 데이터(315-b)의 부분과 연관될 수 있고, ECC 코드워드(320-c)는 데이터(315-c)의 부분과 연관될 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(315-b 및 315-c)의 부분 및 대응하는 ECC 코드워드(320-b 및 320-c)를 포함하는 데이터 세트(300-b)를 송신할 수 있다.
호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(320-b 및 320-c)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(300-b)가 에러를 포함하는지 여부를 결정하는 것은 ECC 코드워드(320-b 및 320-c)를 식별하는 것에 기초한다. 일부 예에서, 데이터 세트(300-b)는 단일 버스트로서 송신될 수 있다. 예를 들어, 단일 버스트는 ECC 코드워드(320-b) 및 데이터(315-b)의 부분 및 ECC 코드워드(320-c) 및 데이터(315-c)의 부분을 포함할 수 있다. 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(300-b)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(320-b 및 320-c)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(320-b 및 320-c)는 SEC ECC, SECDED ECC 또는 이 둘 모두를 포함할 수 있다. 이러한 경우에, ECC 코드워드(320-b 및 320-c)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장된 데이터 세트(300-b)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 데이터 세트(300-b)의 버스트 길이(예를 들어, 채널을 통한 단일 버스트와 연관된 단위 간격(305-b)의 수량)는 동일한 데이터 세트(300-b)에 ECC 코드워드(320-b 및 320-c)와 데이터 부분(315-b 및 315-c)을 포함하도록 확장될 수 있다. 예를 들어, 데이터 세트(300-b)는 2개의 데이터 부분(예를 들어, 데이터(315-b 및 315-c)의 부분)으로 분할될 수 있다. 일부 경우에, 2개의 데이터 부분은 동일한 크기(예를 들어, 데이터의 2개의 128 비트 부분)일 수 있다. 다른 경우에, 2개의 데이터 부분은 다른 크기일 수 있다. 데이터 세트(300-b)는 또한 2개의 코드워드(예를 들어, ECC 코드워드(320-b 및 320-c))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 9 비트 코드워드일 수 있다. 일부 특정 경우에, 하나의 9 비트 코드워드는 하나의 128 비트 데이터 부분과 연관될 수 있다. 일부 경우에, 데이터 세트(300-b)의 단위 간격(305-b)은 데이터(315-b 및 315-c)의 부분과 동일한 데이터 세트(300-b)에 ECC 코드워드(320-b 및 320-c)를 포함하도록 2개의 단위 간격(305-b)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(300-b)는 미사용 데이터 비트를 포함할 수 있다.
버스트 길이는 호스트 디바이스와 메모리 디바이스 간의 신호화 방식에 따라 구성될 수 있다. 예를 들어, 호스트 디바이스는 데이터 세트(300-b)와 연관된 버스트 길이를 나타낼 수 있는 메시지를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 호스트 디바이스는 버스트 길이에 기초하여 ECC 코드워드(320-b 및 320-c)를 생성할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 표시된 버스트 길이에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 데이터 세트(300-b)를 수신할 수 있다. 다른 예에서, 호스트 디바이스는 ECC 코드워드(320-b 및 320-c) 중 하나 이상이 데이터 채널을 통해 송신되는 데이터 버스트에 존재할 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 이러한 예에서, 호스트 디바이스 또는 메모리 디바이스는 ECC 코드워드(320-b 및 320-c)가 데이터 세트(300-b)에 존재할 수 있다는 표시에 적어도 부분적으로 기초하여 새로운 버스트 길이를 식별할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(300-b)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(300-b)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다.
메모리 디바이스는 데이터 세트(300-b)를 수신하고, 데이터 세트(300-b)에 포함된 ECC 코드워드(320-b 및 320-c)를 식별할 수 있다. ECC 코드워드(320-b 및 320-c)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(320-b 및 320-c)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(315-b 및 315-c)의 부분은 메모리 디바이스로부터 검색될 수 있고, ECC 코드워드(320-b 및 320-c)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(315-b 및 315-c)의 부분 및 ECC 코드워드(320-b 및 320-c)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
도 3c는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(300-c)의 일례를 도시한다. 데이터 세트(300-c)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(300-c)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(300-c)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(300-c)는 버스트에 포함된 데이터의 4개 이상의 부분(예를 들어, 데이터(315-d, 315-e, 315-f 및 315-g))과 연관된 ECC 코드워드(예를 들어, 코드워드(320-d, 320-e, 320-f 및 320-g))를 사용하는 일례를 예시한다. 이러한 예에서, 버스트 길이는 코드워드(320-d, 320-e, 320-f, 320-g)가 버스트에 포함될 수 있도록 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(310-c)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(300-c)를 식별할 수 있다. 데이터 세트(300-c)는 또한 단위 간격(305-c)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(300-c)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(315-d, 315-e, 315-f 및 315-g)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스 또는 메모리 디바이스가 데이터(315-d, 315-e, 315-f 및 315-g)의 부분을 송신한 것과 동일한 채널을 통해 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 송신할 수 있다. ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 송신하기 전에, 호스트 디바이스는 데이터(315-d, 315-e, 315-f 및 315-g)의 부분에 기초하여 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 생성할 수 있다. 예를 들어, ECC 코드워드(320-d)는 데이터(315-d)의 부분과 연관될 수 있고, ECC 코드워드(320-e)는 데이터(315-e)의 부분과 연관될 수 있다. ECC 코드워드(320-f)는 데이터(315-f)의 부분과 연관될 수 있고, ECC 코드워드(320-g)는 데이터(315-g)의 부분과 연관될 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(315-d, 315-e, 315-f 및 315-g)의 부분 및 대응하는 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 포함하는 데이터 세트(300-c)를 송신할 수 있다.
호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(300-c)는 단일 버스트로 송신될 수 있다. 예를 들어, 버스트는 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)와 데이터(315-d, 315-e, 315-f 및 315-g)의 부분을 포함할 수 있다. 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(300-c)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(320-d, 320-e, 320-f, 320-g)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(320-d, 320-e, 320-f 및 320-g)는 SEC ECC, SECDED ECC 또는 이 둘 모두를 포함할 수 있다. 이러한 경우에, ECC 코드워드(320-d, 320-e, 320-f 및 320-g)는 메모리 디바이스에 저장될 수 있으며, 메모리 디바이스에 저장된 데이터 세트(300-c)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 데이터 세트(300-c)의 버스트 길이(예를 들어, 채널을 통해 단일 버스트와 연관된 단위 간격(305-c)의 수량)는 동일한 데이터 세트(300-c)에 ECC 코드워드(320-d, 320-e, 320-f 및 320-g) 및 데이터(315-d, 315-e, 315-f 및 315-g)의 부분을 포함하도록 확장될 수 있다. 예를 들어, 데이터 세트(300-c)는 데이터의 4개 이상의 부분(예를 들어, 데이터(315-d, 315-e, 315-f 및 315-g)의 부분)으로 분할될 수 있다. 일부 경우에, 데이터의 4개의 부분은 동일한 크기(예를 들어, 데이터의 4개의 64 비트 부분)일 수 있다. 다른 일부에, 데이터의 4개의 부분은 다른 크기일 수 있다. 데이터 세트(300-c)는 또한 4개 이상의 코드워드(예를 들어, ECC 코드워드(320-d, 320-e, 320-f 및 320-g))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 8 비트 코드워드일 수 있다. 일부 특정 경우에 하나의 8 비트 코드워드는 하나의 64 비트 데이터 부분과 연관될 수 있다. 일부 경우에, 데이터 세트(300-c)의 단위 간격(305-c)은 데이터(315-d, 315-e, 315-f 및 315-g)의 부분과 동일한 데이터 세트(300-c)에 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 포함하도록 2개의 단위 간격(305-c)만큼 확장될 수 있다.
버스트 길이는 호스트 디바이스와 메모리 디바이스 사이의 신호화 방식에 따라 구성될 수 있다. 예를 들어, 호스트 디바이스는 데이터 세트(300-c)와 연관된 버스트 길이를 나타낼 수 있는 메시지를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 호스트 디바이스는 버스트 길이에 기초하여 ECC 코드워드(320-d, 320-e, 320-f, 320-g)를 생성할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 표시된 버스트 길이에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 데이터 세트(300-c)를 수신할 수 있다. 다른 예에서, 호스트 디바이스는 ECC 코드워드(320-d, 320-e, 320-f 및 320-g) 중 하나 이상이 데이터 채널을 통해 송신되는 데이터 버스트에 존재할 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 이러한 예에서, 호스트 디바이스 또는 메모리 디바이스는 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)가 데이터 세트(300-c)에 존재할 수 있다는 표시에 적어도 부분적으로 기초하여 새로운 버스트 길이를 식별할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(300-c)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(300-c)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다.
메모리 디바이스는 데이터 세트(300-c)를 수신하고, 데이터 세트(300-c)에 포함된 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 식별할 수 있다. ECC 코드워드(320-d, 320-e, 320-f 및 320-g)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(320-d, 320-e, 320-f 및 320-g)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(315-d, 315-e, 315-f 및 315-g)의 부분은 메모리 디바이스로부터 검색될 수 있으며, ECC 코드워드(320-d, 320-e, 320-f 및 320-g)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(315-d, 315-e, 315-f 및 315-g)의 부분 및 ECC 코드워드(320-d, 320-e, 320-f 및 320-g)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
도 4a는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(400-a)의 일례를 도시한다. 데이터 세트(400-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(400-a)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(400-a)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(400-a)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(410-a)을 가질 수 있다. 예를 들어, 채널은 16개의 핀 폭일 수 있다. 다른 예에서, 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(405-a)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(400-a)는 도 3을 참조하여 설명된 데이터(315)의 일례일 수 있는, 액세스 동작과 연관된 데이터(415-a)를 포함할 수 있다. 데이터 세트(400-a)는 또한 도 3을 참조하여 설명된 ECC 코드워드(320)의 일례일 수 있는 하나 이상의 ECC 코드워드(420-a)를 포함할 수 있다. 하나 이상의 ECC 코드워드(420-a)는 데이터(415-a)의 적어도 부분과 연관될 수 있다. 데이터 세트(400-a)는 또한 하나 이상의 내부 ECC 코드워드(425-a)를 포함할 수 있다. 내부 ECC 코드워드(425-a)는 데이터(415-a) 및 적어도 하나의 코드워드(420-a)를 모두 사용하여 호스트 디바이스 또는 메모리 디바이스에 의해 생성된 임의의 ECC 코드워드를 포함할 수 있다. 일부 경우에, 내부 ECC 코드워드(420-a)는 인라인 ECC 코드워드로 지칭될 수 있다.
데이터 세트(400-a)는 단일 버스트에서 채널(예를 들어, 데이터 채널)을 통해 데이터(415-a) 및 적어도 하나의 ECC 코드워드(420-a) 및 적어도 하나의 내부 ECC 코드워드(425-a)를 송신하는 일례를 예시한다. 이러한 예에서, ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)가 버스트에 포함될 수 있도록 버스트 길이가 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(410-a)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(400-a)를 식별할 수 있다. 데이터 세트(400-a)는 또한 단위 간격(405-a)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(400-a)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(415-a)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스가 데이터(415-a)를 송신한 것과 동일한 채널을 통해 ECC 코드워드(420-a)를 송신할 수 있다. ECC 코드워드(420-a)를 송신하기 전에, 호스트 디바이스는 데이터(415-a)에 기초하여 ECC 코드워드(420-a)를 생성할 수 있다. 일부 경우에, 내부 ECC 코드워드(425-a)는 데이터 세트에서 에러를 정정하기 위해, ECC 코드워드(420-a)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-a)는 데이터(415-a) 및 ECC 코드워드(420-a)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(415-a), ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)를 포함하는 데이터 세트(400-a)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(400-a)는 단일 버스트(예를 들어, 데이터(415-a), ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(400-a)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(420-a)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(420-a)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(420-a)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(400-a)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(425-a)는 데이터 세트에 저장된 데이터 또는 ECC 코드워드(420-a)에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(425-a)를 식별하고, 내부 ECC 코드워드(425-a)에 기초하여 데이터 세트 또는 ECC 코드워드(420-a)가 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(420-a)가 데이터(415-a)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(415-a)는 복수의 부분으로 분할될 수 있고, 각각의 데이터(415-a)의 부분은 ECC 코드워드(420-a)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성함으로써, 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, ECC 코드워드(420-a)는 모든 데이터(415-a)와 연관될 수 있다. 일부 예에서, 내부 ECC 코드워드(425-a)는 ECC 코드워드(420-a)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 각각의 ECC 코드워드(420-a)는 내부 ECC 코드워드(425-a)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-a)는 ECC 코드워드(420-a) 및 데이터(415-a)와 연관될 수 있다. 예를 들어, 데이터(415-a)는 256 비트의 데이터를 포함할 수 있고, ECC 코드워드(420-a)는 256 비트의 데이터(예를 들어, 데이터(415-a))와 연관된 10 비트 코드워드일 수 있으며, 내부 ECC 코드워드(425-a)는 10 비트 코드워드(예를 들어, ECC 코드워드(420-a))와 연관된 6 비트 코드워드일 수 있다. 다른 예에서, 데이터(415-a), ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)는 임의의 비트 크기일 수 있다.
일부 경우에, 데이터 세트(400-a)의 버스트 길이(예를 들어, 채널을 통한 단일 버스트와 연관된 단위 간격(405-a)의 수량)는 동일한 데이터 세트(400-a)에 ECC 코드워드(420-a), 내부 ECC 코드워드(425-a) 및 데이터(415-a)를 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(400-a)의 단위 간격(405-a)은 데이터(415-a)와 동일한 데이터 세트(400-a)에 ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)를 포함하도록 2개의 단위 간격(405-a)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(400-a)는 미사용 데이터 비트를 포함할 수 있다. 버스트 길이를 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있고, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
메모리 디바이스는 데이터 세트(400-a)를 수신하고, 데이터 세트(400-a)에 포함된 ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)를 식별할 수 있다. ECC 코드워드(420-a)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(420-a)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(425-a)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(425-a)는 제1 부분 및 제2 부분과 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(425-a)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(425-a)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 데이터(415-a), ECC 코드워드(420-a) 및 내부 ECC 코드워드(425-a)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(425-a)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(425-a)에 기초하여 에러를 정정할 수 있다.
도 4b는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(400-b)의 일례를 도시한다. 데이터 세트(400-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(400-b)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(400-b)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(400-b)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(410-b)을 가질 수 있다. 데이터 버스트는 또한 복수의 단위 간격(405-b)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 일부 경우에, 데이터 세트(400-b)는 도 3을 참조하여 설명된 데이터(315)의 일례일 수 있는, 액세스 동작과 연관된 데이터(415-b 및 415-c)의 부분을 포함할 수 있다. 데이터 세트(400-b)는 또한 도 3을 참조하여 설명된 ECC 코드워드(320)의 일례일 수 있는 하나 이상의 ECC 코드워드(420-b 및 420-c)를 포함할 수 있다. 하나 이상의 ECC 코드워드(420-b 및 415-c)는 데이터(415-b 및 415-c)의 적어도 부분과 연관될 수 있다. 데이터 세트(400-b)는 또한 하나 이상의 내부 ECC 코드워드(425-b 및 425-c)를 포함할 수 있다.
데이터 세트(400-b)는 버스트에 포함된 데이터의 2개 이상의 부분(예를 들어, 데이터(415-b 또는 415-c))과 연관된 ECC 코드워드(예를 들어, 코드워드(420-b 및 420-c))를 사용하는 일례를 예시한다. 이러한 예에서, 버스트 길이는 ECC 코드워드(420-b 및 420-c) 및 내부 ECC 코드워드(425-b 및 425-c)가 버스트에 포함될 수 있도록 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(410-b)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(400-b)를 식별할 수 있다. 데이터 세트(400-b)는 또한 단위 간격(405-b)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(400-b)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(415-b 및 415-c)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스가 데이터(415-b 및 415-c)의 부분을 송신한 것과 동일한 채널을 통해 ECC 코드워드(420-b 및 420-c)를 송신할 수 있다. ECC 코드워드(420-b 및 420-c)를 송신하기 전에, 호스트 디바이스는 데이터(415-b 및 415-c)의 부분에 기초하여 ECC 코드워드(420-b 및 420-c)를 생성할 수 있다. 예를 들어, ECC 코드워드(420-b)는 데이터(415-b)의 부분과 연관될 수 있고, ECC 코드워드(420-c)는 데이터(415-c)의 부분과 연관될 수 있다. 일부 경우에, 내부 ECC 코드워드(425-b 및 425-c)는 데이터 세트(400-b)에서 에러를 정정하기 위해, ECC 코드워드(420-b 및 420-c)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-b)는 데이터(415-b)의 부분 및 ECC 코드워드(420-b)에 기초하여 생성될 수 있다. 다른 예에서, 내부 ECC 코드워드(425-c)는 데이터(415-c)의 부분 및 ECC 코드워드(420-c)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(415-b 및 415-c)의 부분, ECC 코드워드(420-b 및 420-c) 및 내부 ECC 코드워드(425-b 및 425-c)를 포함하는 데이터 세트(400-b)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(420-b 및 420-c) 및 내부 ECC 코드워드(425-b 및 425-c)를 포함한다고 결정할 수 있다. 일부 경우에 데이터 세트(400-b)는 단일 버스트(예를 들어, 데이터(415-b 및 415-c)의 부분, ECC 코드워드(420-b 및 420-c), 및 내부 ECC 코드워드(425-b 및 425-c)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(400-b)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(420-b 및 420-c)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(420-b 및 420-c)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(420-b 및 420-c)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(400-a)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(425-b 및 425-c)는 데이터 세트(400-b)에 저장된 데이터 또는 ECC 코드워드(420-b 및 420-c)에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(425-b 및 425-c)를 식별하고, 내부 ECC 코드워드(425-b 및 425-c)에 기초하여 데이터 세트(400-b) 또는 ECC 코드워드(420-b 및 420-c)가 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(420-b 및 420-c)가 데이터(415-b 및 415-c)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(415-b)의 부분은 ECC 코드워드(420-b)와 함께 포함될 수 있고, 데이터(415-c)의 부분은 ECC 코드워드(420-c)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성함으로써, 더 많은 에러를 검출하고/하거나 정정할 수 있다.
일부 예에서, 내부 ECC 코드워드(425-b 및 425-c)는 ECC 코드워드(420-b 및 420-c)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, ECC 코드워드(420-b)는 내부 ECC 코드워드(425-b)와 함께 포함될 수 있고, ECC 코드워드(420-c)는 내부 ECC 코드워드(425-c)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-b 및 425-c)는 각각 ECC 코드워드(420-b 및 425-c)와 연관될 수 있다. 예를 들어, 데이터 세트(400-b)는 데이터의 2개의 부분(예를 들어, 데이터(415-b 및 415-c)의 부분)으로 분할될 수 있다. 일부 경우에, 데이터의 2개의 부분은 동일한 크기(예를 들어, 데이터의 2개의 128 비트 부분)일 수 있다. 다른 일부에, 데이터의 2개의 부분은 다른 크기일 수 있다. 데이터 세트(400-b)는 또한 2개의 코드워드(예를 들어, ECC 코드워드(420-b 및 420-c))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 9 비트 코드워드일 수 있다. 데이터 세트(400-b)는 또한 2개의 내부 코드워드(예를 들어, 내부 ECC 코드워드(425-b 및 425-c))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분 및 연관된 ECC 코드워드(420)에 대해 생성된다. 일부 경우에, 내부 ECC 코드워드는 6 비트 코드워드일 수 있다. 일부 경우에, 데이터 세트(400-b)는 미사용 데이터 비트를 포함할 수 있다.
일부 경우에, 데이터 세트(400-b)의 버스트 길이(예를 들어, 채널을 통한 단일 버스트와 연관된 단위 간격(405-b)의 수량)는 동일한 데이터 세트(400-b)에 ECC 코드워드(420-b 및 420-c), 내부 ECC 코드워드(425-b 및 425-c) 및 데이터(415-b 및 415-c)의 부분을 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(400-b)의 단위 간격(405-b)은 동일한 데이터 세트(400-b)에 ECC 코드워드(420-b 및 420-c), 내부 ECC 코드워드(425-b 및 425-c)를 포함하도록 2개의 단위 간격(405-b)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(400-b)는 미사용 데이터 비트를 포함할 수 있다. 버스트 길이를 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
메모리 디바이스는 데이터 세트(400-b)를 수신하고, 데이터 세트(400-b)에 포함된 ECC 코드워드(420-b 및 420-c) 및 내부 ECC 코드워드(425-b 및 425-c)를 식별할 수 있다. ECC 코드워드(420-b 및 420-c)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(420-b 및 420-c)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(425-b, 425-c)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(425-b, 425-c)는 제1 부분 및 제2 부분과 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(425-b 및 425-c)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(425-b 및 425-c)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다.
일부 경우에, 데이터(415-b 및 415-c)의 부분, ECC 코드워드(420-b 및 420-c) 및 내부 ECC 코드워드(425-b 및 425-c)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(425-b 및 425-c)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(425-b 및 425-c)에 기초하여 에러를 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
도 4c는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(400-c)의 일례를 도시한다. 데이터 세트(400-c)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(400-c)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(400-c)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(400-c)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(410-c)을 가질 수 있다. 데이터 버스트는 또한 복수의 단위 간격(405-c)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 일부 경우에, 데이터 세트(400-c)는 도 3을 참조하여 설명된 데이터(315)의 일례일 수 있는, 액세스 동작과 연관된 데이터(415-d, 415-e, 415-f 및 415-g)의 부분을 포함할 수 있다. 데이터 세트(400-c)는 또한 도 3을 참조하여 설명된 ECC 코드워드(320)의 일례일 수 있는 하나 이상의 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)를 포함할 수 있다. 하나 이상의 ECC 코드워드(420-b 및 415-c)는 데이터(415-d, 415-e, 415-f 및 415-g)의 적어도 부분과 연관될 수 있다. 데이터 세트(400-c)는 또한 하나 이상의 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 포함할 수 있다.
데이터 세트(400-c)는 버스트에 포함된 데이터의 4개 이상의 부분(예를 들어, 데이터(415-d, 415-e, 415-f 및 415-g))과 연관된 ECC 코드워드(예를 들어, 코드워드(420-d, 420-e, 420-f 및 420-g))를 사용하는 일례를 예시한다. 이러한 예에서, 버스트 길이는 ECC 코드워드(420-d, 420-e, 420-f 및 420-g) 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)가 버스트에 포함될 수 있도록 조정될 수 있다. 일부 경우에, 호스트 디바이스는 핀(410-c)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(400-c)를 식별할 수 있다. 데이터 세트(400-c)는 또한 단위 간격(405-c)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(400-c)의 크기와 연관될 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(415-d, 415-e, 415-f 및 415-g)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스가 데이터(415-d, 415-e, 415-f 및 415-g)의 부분을 송신한 것과 동일한 채널을 통해 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)를 송신할 수 있다. ECC 코드워드(420-d, 420-e, 420-f 및 420-g)를 송신하기 전에, 호스트 디바이스는 데이터(415-d, 415-e, 415-f 및 415-g)의 부분에 기초하여 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)를 생성할 수 있다. 예를 들어, ECC 코드워드(420-d)는 데이터(415-d)의 부분과 연관될 수 있고, ECC 코드워드(420-e)는 데이터(415-e)의 부분과 연관될 수 있다. 일부 경우에, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)는 데이터 세트(400-c)에서 에러를 정정하기 위해, ECC 코드워드(420-d, 420-e, 420-f 및 420-g)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-d)는 데이터(415-d)의 부분 및 ECC 코드워드(420-d)에 기초하여 생성될 수 있다. 다른 예에서, 내부 ECC 코드워드(425-e)는 데이터(415-e)의 부분 및 ECC 코드워드(420-e)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터 부분(415-d, 415-e, 415-f 및 415-g), ECC 코드워드(420-d, 420-e, 420-f 및 420-g), 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 포함하는 데이터 세트(400-c)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(420-d, 420-e, 420-f 및 420-g) 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(400-c)는 단일 버스트(예를 들어, 데이터(415-d, 415-e, 415-f 및 415-g)의 부분, ECC 코드워드(420-d, 420-e, 420-f 및 420-g), 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(400-c)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(420-d, 420-e, 420-f, 420-g)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(420-d, 420-e, 420-f, 420-g)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(420-d, 420-e, 420-f 및 420-g)는 메모리 디바이스에 저장될 수 있으며, 메모리 디바이스에 저장되는 데이터 세트(400-a)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)는 데이터 세트(400-c)에 저장된 데이터 또는 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)에서 에러를 검출하거나 정정하는 데 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 식별하고, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)에 기초하여 데이터 세트(400-c) 또는 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)가 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)는 데이터(415-d, 415-e, 415-f 및 415-g)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(415-d)의 부분은 ECC 코드워드(420-d)와 함께 포함될 수 있고, 데이터(415-e)의 부분은 ECC 코드워드(420-e)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성함으로써, 더 많은 에러를 검출하고/하거나 정정할 수 있다.
일부 예에서, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)는 ECC 코드워드(420-d, 420-e, 420-f 및 420-g)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, ECC 코드워드(420-d)는 내부 ECC 코드워드(425-d)와 함께 포함될 수 있고, ECC 코드워드(420-e)는 내부 ECC 코드워드(425-e)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)는 각각 ECC 코드워드(420-b 및 425-c)와 연관될 수 있다. 예를 들어, 데이터 세트(400-c)는 데이터의 4개 이상의 부분(예를 들어, 데이터(415-d, 415-e, 415-f 및 415-g의 부분))으로 분할될 수 있다. 일부 경우에, 데이터의 4개의 부분은 동일한 크기(예를 들어, 데이터의 4개의 64 비트 부분)일 수 있다. 다른 경우에, 데이터의 4개의 부분은 다른 크기일 수 있다. 데이터 세트(400-c)는 또한 4개 이상의 코드워드(예를 들어, ECC 코드워드(420-d, 420-e, 420-f 및 420-g))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 8 비트 코드워드일 수 있다. 데이터 세트(400-c)는 또한 4개 이상의 내부 코드워드(예를 들어, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분 및 연관된 코드워드(420)에 대해 생성된다. 일부 경우에, 내부 ECC 코드워드(425)는 5 비트 코드워드일 수 있다. 일부 경우에, 데이터 세트(400-c)는 미사용 데이터 비트를 포함할 수 있다.
일부 경우에, 데이터 세트(400-c)의 버스트 길이(예를 들어, 채널을 통한 단일 버스트와 연관된 단위 간격(405-c)의 수량)는 동일한 데이터 세트(400-c)에 ECC 코드워드(420-d, 420-e, 420-f 및 420-g), 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g) 및 데이터 부분(415-d, 415-e, 415-f 및 415-g)을 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(400-c)의 단위 간격(405-c)은 동일한 데이터 세트(400-c)에 ECC 코드워드(420-d, 420-e, 420-f, 420-g), 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 포함하도록 4개의 단위 간격(405-c)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(400-c)는 미사용 데이터 비트를 포함할 수 있다. 버스트 길이를 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
메모리 디바이스는 데이터 세트(400-c)를 수신하고, 데이터 세트(400-c)에 포함된 ECC 코드워드(420-d, 420-e, 420-f 및 420-g) 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 식별할 수 있다. ECC 코드워드(420-d, 420-e, 420-f 및 420-g)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(420-d, 420-e, 420-f 및 420-g)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(425-d, 425-e, 425-f, 425-g)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(425-d, 425-e, 425-f, 425-g)는 제1 부분 및 제2 부분과 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다.
일부 경우에, 데이터(415-d, 415-e, 415-f 및 415-g)의 부분, ECC 코드워드(420-d, 420-e, 420-f 및 420-g) 및 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(425-d, 425-e, 425-f 및 425-g)에 기초하여 에러를 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
도 5a는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(500-a)의 일례를 도시한다. 데이터 세트(500-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(500-a)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(500-a)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(500-a)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(510-a)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 제2 수량의 핀(511-a)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(505-a)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(500-a)는 액세스 동작과 연관된 데이터(515-a), 및 이 데이터(515-a)의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(520-a)를 포함할 수 있다.
데이터 세트(500-a)는 제1 채널(예를 들어, 데이터 채널)을 통해 데이터(515-a)를 송신하고, 제2 채널을 통해 적어도 하나의 ECC 코드워드(520-a)를 송신하는 일례를 예시한다. 일부 경우에, 데이터(515-a) 및 ECC 코드워드(520-a)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(510-a)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(515-a)를 식별할 수 있다. 호스트 디바이스는 또한 핀(511-a)의 수량에 대응하는 폭을 가진 제2 채널을 통해 전달하기 위해 데이터(515-a)와 연관된 하나 이상의 ECC 코드워드(520-a)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 제2 채널을 통해 데이터(515-a)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(515-a)를 송신한 것과 다른 채널을 통해 ECC 코드워드(520-a)를 송신할 수 있다. ECC 코드워드(520-a)를 송신하기 전에, 호스트 디바이스는 데이터(515-a)에 기초하여 ECC 코드워드(520-a)를 생성할 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 다른 채널을 통해 데이터(515-a) 및 대응하는 ECC 코드워드(520-a)를 송신할 수 있다. 예를 들어, ECC 코드워드(520-a)를 송신하기 위한 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위해 사용될 수 있다. 이러한 경우에 ECC 코드워드(520-a)를 송신하는 채널은 링크 ECC 채널일 수 있다.
ECC 코드워드(520-a)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(520-a)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(520-a)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(500-a)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(520-a)는 데이터(515-a)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(515-a)는 복수의 부분으로 분할될 수 있고, 데이터(515-a)의 각 부분은 ECC 코드워드(520-a)와 연관될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성하면 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, ECC 코드워드(520-a)는 모든 데이터(515-a)와 연관될 수 있다. 예를 들어, 데이터(515-a)는 256 비트의 데이터를 포함할 수 있고, ECC 코드워드(520-a)는 256 비트의 데이터(예를 들어, 데이터(515-a))와 연관된 10 비트 코드워드일 수 있다. 다른 예에서, 데이터(515-a) 및 ECC 코드워드(520-a)는 임의의 비트 크기일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(510-a)의 수량)은 동일한 데이터 세트(500-a)에 ECC 코드워드(520-a) 및 데이터(515-a)를 포함하도록 확장될 수 있다. 이러한 경우에, 핀(510-a)의 수량은 데이터(515-a)와 동일한 데이터 세트(500-a)에 ECC 코드워드(520-a)를 포함하도록 하나 이상의 핀만큼 확장될 수 있다. 일부 경우에, 데이터 세트(500-a)는 미사용 데이터 비트를 포함할 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 제2 채널과 연관된 채널 폭(예를 들어, 핀(511-a)의 수량)은 ECC 코드워드(520-a)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(511-a)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 간의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(520-a)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(515-a)를 수신하고, 제2 채널을 통해 하나 이상의 ECC 코드워드(520-a)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(500-a)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터(515-a)를 제1 채널을 통해 송신하고 하나 이상의 ECC 코드워드(520-a)를 제2 채널을 통해 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(515-a)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(520-a)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(520-a)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(515-a)는 메모리 디바이스로부터 검색될 수 있고, ECC 코드워드(520-a)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(515-a) 및 ECC 코드워드(520-a)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 호스트 디바이스는 다른 데이터 세트를 수신할 수 있다. 예를 들어, 호스트 디바이스는 제1 채널에서 상이한 데이터 세트를 수신하고, 제1 채널과 상이한 제2 채널에서 상이한 코드워드를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 제2 채널을 통한 상이한 ECC 코드워드에 기초하여 상이한 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 호스트 디바이스는 다른 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 호스트 디바이스는 상이한 데이터 세트에서 에러를 식별하고 에러를 정정할 수 있다. 이러한 경우에, 호스트 디바이스는 에러가 정정된 데이터 세트에 기초하여 다른 데이터 세트를 생성할 수 있다.
도 5b는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(500-b)의 일례를 도시한다. 데이터 세트(500-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(500-b)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(500-b)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(500-b)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(510-b)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 수량의 제2 핀(511-b)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(505-b)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(500-b)는 액세스 동작과 연관된 데이터(515-b 및 515-c)의 부분, 및 이 데이터(515-b 및 515-c)의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(520-b 및 520-c)를 포함할 수 있다.
데이터 세트(500-b)는 채널(예를 들어, 데이터 채널)을 통해 데이터(515-b 및 515-c)의 부분을 송신하고 제2 채널을 통해 적어도 하나의 ECC 코드워드(520-b 및 520-c)를 송신하는 일례를 예시한다. 일부 경우에, 데이터(515-b 및 515-c)의 부분 및 ECC 코드워드(520-b 및 520-c)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(510-b)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(515-b)를 식별할 수 있다. 호스트 디바이스는 또한 핀(511-b)의 수량에 대응하는 폭을 가진 제2 채널을 통해 전달하기 위해 데이터(515-b)와 연관된 하나 이상의 ECC 코드워드(520-b)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 제2 채널을 통해 데이터(500-b)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(515-b 및 515-c)의 부분을 송신한 것과 다른 채널을 통해 각각의 ECC 코드워드(520-b 및 520-c)를 송신할 수 있다. ECC 코드워드(520-b 및 520-c)를 송신하기 전에, 호스트 디바이스는 데이터(515-b 및 515-c)의 부분에 기초하여 ECC 코드워드(520-b 및 520-c)를 생성할 수 있다. 예를 들어, ECC 코드워드(520-b)는 데이터(515-b)의 부분에 기초하여 생성될 수 있고, ECC 코드워드(520-c)는 데이터(515-c)의 부분에 기초하여 생성될 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(515-b 및 515-c)의 부분 및 대응하는 ECC 코드워드(520-b 및 520-c)를 다른 채널로 송신할 수 있다. 예를 들어, ECC 코드워드(520-b 및 520-c)를 송신하기 위한 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위해 사용될 수 있다. 이 경우에, ECC 코드워드(520-b, 520-c)를 송신하는 채널은 링크 ECC 채널일 수 있다.
ECC 코드워드(520-b 및 520-c)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(520-b 및 520-c)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(520-b 및 520-c)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(500-b)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(520-b 및 520-c)는 데이터(515-b 및 515-c)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터는 복수의 부분으로 분할될 수 있고, 데이터(515-b 및 515-c)의 부분의 각 부분은 하나 이상의 ECC 코드워드(520-b 및 520-c)와 연관될 수 있다. 예를 들어, ECC 코드워드(520-b)는 데이터(515-b)의 부분과 연관될 수 있고, ECC 코드워드(520-c)는 데이터(515-c)의 부분과 연관될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성하면 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, 데이터는 데이터의 2개의 부분 및 데이터의 각 부분(예를 들어, 데이터(515-b 및 515-c)의 부분)과 연관된 2개의 코드워드를 포함할 수 있다. 일부 경우에 데이터의 2개의 부분은 동일한 크기(예를 들어, 데이터의 2개의 128 비트 부분)일 수 있다. 다른 경우에, 데이터의 2개의 부분은 다른 크기일 수 있다. 데이터 세트(500-b)는 또한 2개의 코드워드(예를 들어, ECC 코드워드(520-b 및 520-c))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 9 비트 코드워드일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(510-b)의 수량)은 동일한 데이터 세트(500-b)에 ECC 코드워드(520-b, 520-c) 및 데이터(515-b, 515-c)를 포함하도록 확장될 수 있다. 이러한 경우에, 핀(510-b)의 수량은 데이터(515-b, 515-c)와 동일한 데이터 세트(500-b)에 ECC 코드워드(520-b, 520-c)를 포함하도록 하나 이상의 핀만큼 확장될 수 있다. 일부 경우에, 데이터 세트(500-b)는 미사용 데이터 비트를 포함할 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 제2 채널과 연관된 채널 폭(예를 들어, 핀(511-b)의 수량)은 ECC 코드워드(520-b 및 520-c)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(511-b)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 사이의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(520-b 및 520-c)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(515-b 및 515-c)를 수신하고 제2 채널을 통해 하나 이상의 ECC 코드워드(520-b 및 520-c)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(500-b)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터(515-b 및 515-c)를 제1 채널을 통해 송신하고 하나 이상의 ECC 코드워드(520-b 및 520-c)를 제2 채널을 통해 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(515-b 및 515-c)의 부분은 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(520-b 및 520-c)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(520-b 및 520-c)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(515-b 및 515-c)의 부분은 메모리 디바이스로부터 검색될 수 있고, ECC 코드워드(520-b 및 520-c)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(515-b 및 515-c)의 부분 및 ECC 코드워드(520-b 및 520-c)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 호스트 디바이스는 다른 데이터 세트를 수신할 수 있다. 예를 들어, 호스트 디바이스는 제1 채널에서 상이한 데이터 세트를 수신하고, 제1 채널과 상이한 제2 채널에서 상이한 코드워드를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 제2 채널을 통한 상이한 ECC 코드워드에 기초하여 상이한 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 호스트 디바이스는 다른 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 호스트 디바이스는 상이한 데이터 세트에서 에러를 식별하고 에러를 정정할 수 있다. 이러한 경우에, 호스트 디바이스는 에러가 정정된 데이터 세트에 기초하여 다른 데이터 세트를 생성할 수 있다.
도 5c는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(500-c)의 일례를 도시한다. 데이터 세트(500-c)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(500-c)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(500-c)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(500-c)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(510-c)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 제2 수량의 핀(511-c)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(505-c)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(500-c)는 액세스 동작과 연관된 데이터(515-d, 515-e, 515-f 및 515-g)의 부분, 및 이 데이터(515-d, 515-e, 515-f 및 515-g)의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 포함할 수 있다.
데이터 세트(500-c)는 채널(예를 들어, 데이터 채널)을 통해 데이터(515-d, 515-e, 515-f 및 515-g)의 부분을 송신하고 제2 채널을 통해 적어도 하나의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 송신하는 일례를 예시한다. 일부 경우에, 데이터 부분(515-d, 515-e, 515-f 및 515-g) 및 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(510-c)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(515-c)를 식별할 수 있다. 호스트 디바이스는 또한 핀(511-c)의 수량에 대응하는 폭을 가진 제2 채널을 통해 전달하기 위해 데이터(515-c)와 연관된 하나 이상의 ECC 코드워드(520-c)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 제2 채널을 통해 데이터(500-c)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(515-d, 515-e, 515-f 및 515-g)의 부분을 송신한 것과 다른 채널을 통해 각각의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 송신할 수 있다. ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 송신하기 전에, 호스트 디바이스는 데이터(515-d, 515-e, 515-f 및 515-g)의 부분을 기초하여 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 생성할 수 있다. 예를 들어, ECC 코드워드(520-d)는 데이터(515-d)의 부분에 기초하여 생성될 수 있고, ECC 코드워드(520-e)는 데이터(515-e)의 부분에 기초하여 생성될 수 있다. 이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(515-d, 515-e, 515-f, 515-g)의 부분 및 대응하는 ECC 코드워드(520-d, 520-e, 520-f, 520-g)를 다른 채널을 통해 송신할 수 있다. 예를 들어, ECC 코드워드(520-d, 520-e, 520-f, 520-g)를 송신하는 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하는 데 사용될 수 있다. 이러한 경우에, ECC 코드워드(520-d, 520-e, 520-f, 520-g)를 송신하는 채널은 링크 ECC 채널일 수 있다.
ECC 코드워드(520-d, 520-e, 520-f, 520-g)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(520-d, 520-e, 520-f, 520-g)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 메모리 디바이스에 저장될 수 있으며, 메모리 디바이스에 저장되는 데이터 세트(500-c)와 연관된 에러를 검출하거나 정정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 데이터(515-d, 515-e, 515-f 및 515-g)의 복수의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터는 복수의 부분으로 분할될 수 있으며, 데이터(515-d, 515-e, 515-f 및 515-g)의 부분의 각 부분은 하나 이상의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)와 연관될 수 있다. 예를 들어, ECC 코드워드(520-d)는 데이터(515-d)의 부분과 연관될 수 있고, ECC 코드워드(520-e)는 데이터(515-e)의 부분과 연관될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성하면 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, 데이터 부분은 데이터의 4개 부분, 및 데이터 부분(예를 들어, 데이터(515-d, 515-e, 515-f 및 515-g)의 부분) 각각과 연관된 4개의 코드워드를 포함할 수 있다. 일부 경우에, 데이터의 4개 이상의 부분은 동일한 크기(예를 들어, 데이터의 4개의 64 비트 부분)일 수 있다. 다른 경우에, 데이터의 4개 이상의 부분은 다른 크기일 수 있다. 데이터 세트(500-c)는 또한 4개 이상의 코드워드(예를 들어, ECC 코드워드(520-d, 520-e, 520-f 및 520-g))를 포함할 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 8 비트 코드워드일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(510-c)의 수량)은 동일한 데이터 세트(500-c)에 ECC 코드워드(520-d, 520-e, 520-f, 520-g) 및 데이터(515-d, 515-e, 515-f, 515-g)를 포함하도록 확장될 수 있다. 이러한 경우에, 핀(510-c)의 수량은 데이터(515-b)와 동일한 데이터 세트(500-b)에 ECC 코드워드(520-d, 520-e, 520-f, 520-g)를 포함하도록 하나 이상의 핀만큼 확장될 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 제2 채널과 연관된 채널 폭(예를 들어, 핀(511-c)의 수량)은 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(511-b)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 간의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(515-d, 515-e, 515-f 및 515-g)를 수신하고 제2 채널을 통해 하나 이상의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(500-c)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 제1 채널을 통해 데이터(515-d, 515-e, 515-f 및 515-g)를 송신하고 제2 채널을 통해 하나 이상의 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(515-d, 515-e, 515-f 및 515-g)의 부분은 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 일부 경우에, 데이터(515-d, 515-e, 515-f 및 515-g)의 부분은 메모리 디바이스로부터 검색될 수 있으며, ECC 코드워드(520-d, 520-e, 520-f 및 520-g)는 메모리 디바이스로부터 검색될 수 있다. 일부 경우에, 데이터(515-d, 515-e, 515-f 및 515-g)의 부분 및 ECC 코드워드(520-d, 520-e, 520-f 및 520-g)를 검색하는 것은 메모리 디바이스에서 판독 커맨드를 수신하는 것에 기초할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 호스트 디바이스는 다른 데이터 세트를 수신할 수 있다. 예를 들어, 호스트 디바이스는 제1 채널에서 상이한 데이터 세트를 수신하고, 제1 채널과 상이한 제2 채널에서 상이한 코드워드를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 제2 채널을 통한 상이한 ECC 코드워드에 기초하여 상이한 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 호스트 디바이스가 다른 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 호스트 디바이스는 상이한 데이터 세트에서 에러를 식별하고 에러를 정정할 수 있다. 이러한 경우에, 호스트 디바이스는 에러가 정정된 데이터 세트에 기초하여 다른 데이터 세트를 생성할 수 있다.
도 6a는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(600-a)의 일례를 도시한다. 데이터 세트(600-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(600-a)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(600-a)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(600-a)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(610-a)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 제2 수량의 핀(611-a)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(605-a)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(600-a)는 액세스 동작과 연관된 데이터(615-a)를 포함할 수 있다. 데이터 세트(600-a)는 또한 하나 이상의 ECC 코드워드(620-a)를 포함할 수 있다. 하나 이상의 ECC 코드워드(620-a)는 데이터(615-a)의 적어도 부분과 연관될 수 있다. 데이터 세트(600-a)는 또한 하나 이상의 내부 ECC 코드워드(625-a)를 포함할 수 있다.
데이터 세트(600-a)는 제1 채널(예를 들어, 데이터 채널)을 통해 데이터(615-a)를 송신하고, 하나 이상의 다른 채널을 통해 적어도 하나의 ECC 코드워드(620-a) 및/또는 적어도 하나의 내부 ECC 코드워드(625-a)를 송신하는 일례를 예시한다. 일부 경우에, 데이터(615-a), ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(610-a)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(615-a)를 식별할 수 있다. 호스트 디바이스는 또한 핀(511-a)의 수량에 대응하는 폭을 가진 하나 이상의 다른 채널을 통해 전달하기 위해 데이터(615-a)와 연관된 하나 이상의 ECC 코드워드(620-a) 및/또는 내부 ECC 코드워드(625-a)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 제2 채널을 통해 데이터(615-a)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(615-a)를 송신한 것과 다른 채널을 통해 ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 송신할 수 있다. ECC 코드워드(620-a)를 송신하기 전에, 호스트 디바이스는 데이터(615-a)에 기초하여 ECC 코드워드(620-a)를 생성할 수 있다. ECC 코드워드(620-a)를 송신하기 위한 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위해 사용될 수 있다. 이러한 경우에, ECC 코드워드(620-a)를 송신하기 위한 채널은 링크 ECC 채널일 수 있다. 일부 경우에, 내부 ECC 코드워드(625-a)는 데이터 세트에서 에러를 정정하기 위해, ECC 코드워드(620-a)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-a)는 데이터(615-a) 및 ECC 코드워드(620-a)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(615-a), ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 포함하는 데이터 세트(600-a)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(600-a)는 단일 버스트(예를 들어, 데이터(615-a), ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(600-a)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-a)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(620-a)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(620-a)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(600-a)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(625-a)는 데이터 세트에 저장된 데이터 또는 ECC 코드워드(620-a)에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(625-a)를 식별하고, 내부 ECC 코드워드(625-a)에 기초하여 데이터 세트 또는 ECC 코드워드(620-a)가 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(620-a)는 데이터(615-b 및 615-c)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(615-b 및 615-c)의 부분은 복수의 부분으로 분할될 수 있고, 데이터(615-b 및 615-c)의 각 부분은 ECC 코드워드(620-a)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성하면 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 경우에, ECC 코드워드(620-a)는 데이터(615-b 및 615-c)의 모든 부분과 연관될 수 있다. 일부 예에서, 내부 ECC 코드워드(625-a)는 ECC 코드워드(620-a) 및/또는 데이터(615-a)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 각 ECC 코드워드(620-a)는 내부 ECC 코드워드(625-a)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-a)는 ECC 코드워드(620-a) 및 데이터(615-a)와 연관될 수 있다. 예를 들어, 데이터(615-a)는 256 비트의 데이터를 포함할 수 있고, ECC 코드워드(620-a)는 256 비트의 데이터(와 연관된 10 비트 코드워드일 수 있으며, 내부 ECC 코드워드(625-a)는 10 비트 코드워드(예를 들어, ECC 코드워드(620-a)) 및/또는 256 비트 데이터(예를 들어, 데이터(615-a))와 연관된 6 비트 코드워드일 수 있다. 다른 예에서, 데이터(615-a), ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)는 임의의 비트 크기일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(610-a)의 수량)은 데이터(615-a)와 동일한 데이터 세트(600-a)에 ECC 코드워드(620-a) 및/또는 내부 ECC 코드워드(625-a)를 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(600-a)의 핀(610-a)의 수량은 데이터(615-b 및 615-c)의 부분과 동일한 데이터 세트(600-a)에 ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 포함하도록 2개의 핀(610-a)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(600-a)는 미사용 데이터 비트를 포함할 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 제2 채널과 연관된 채널 폭(예를 들어, 핀(611-a)의 수량)은 ECC 코드워드(620-a)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(611-a)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 간의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(615-a)를 수신하고, 하나 이상의 다른 채널을 통해 하나 이상의 ECC 코드워드(620-a) 및 하나 이상의 내부 ECC 코드워드(625-a)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(600-a)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(600-a)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(615-b 및 615-c)의 부분은 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-a)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(620-a)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(625-a)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(625-a)는 제1 부분 및 제2 부분과 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(625-a)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(625-a)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 데이터(615-b 및 615-c)의 부분, ECC 코드워드(620-a) 및 내부 ECC 코드워드(625-a)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(625-a)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(625-a)에 기초하여 에러를 정정할 수 있다.
도 6b는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(600-b)의 일례를 도시한다. 데이터 세트(600-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(600-b)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(600-b)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(600-b)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(610-b)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 제2 수량의 핀(611-b)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(605-b)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(600-b)는 액세스 동작과 연관된 데이터(615-b 및 615-c)의 부분을 포함할 수 있다. 데이터 세트(600-b)는 또한 하나 이상의 ECC 코드워드(620-b 및 620-c)를 포함할 수 있다. 하나 이상의 ECC 코드워드(620-b 및 620-c)는 각각 데이터(615-b 및 615-c)의 적어도 부분과 연관될 수 있다. 데이터 세트(600-a)는 또한 하나 이상의 내부 ECC 코드워드(625-b 및 625-c)를 포함할 수 있다.
데이터 세트(600-b)는 제1 채널(예를 들어, 데이터 채널)을 통해 데이터(615-b 및 615-c)를 송신하고, 하나 이상의 다른 채널을 통해 적어도 하나의 ECC 코드워드(620-b, 620-c) 및/또는 적어도 하나의 내부 ECC 코드워드(625-b, 625-c)를 송신하는 일례를 예시한다. 일부 경우에, 데이터(615-b, 615-c), ECC 코드워드(620-b, 620-c) 및 내부 ECC 코드워드(625-b, 625-c)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(610-b)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(615-b, 615-c)를 식별할 수 있다. 호스트 디바이스는 또한 핀(611-b)의 수량에 대응하는 폭을 가진 하나 이상의 다른 채널을 통해 전달하기 위해 데이터(615-b, 615-c)와 연관된 하나 이상의 ECC 코드워드(620-b, 620-c) 및/또는 내부 ECC 코드워드(625-b, 625-c)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 하나 이상의 다른 채널을 통해 데이터(615-b 및 615-c)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(615-b 및 615-c)의 부분을 송신한 것과 다른 채널을 통해 ECC 코드워드(620-b 및 620-c)와 내부 ECC 코드워드(625-b 및 625-c)를 송신할 수 있다. ECC 코드워드(620-b 및 620-c)를 송신하기 전에, 호스트 디바이스는 데이터(615-b 및 615-c)의 부분에 기초하여 ECC 코드워드(620-b 및 620-c)를 생성할 수 있다. 예를 들어, ECC 코드워드(620-b)는 데이터(615-b)의 부분에 기초하여 생성될 수 있고, ECC 코드워드(620-c)는 데이터(615-c)의 부분에 기초하여 생성될 수 있다.
ECC 코드워드(620-b 및 620-c)를 송신하기 위한 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위해 사용될 수 있다. 이 경우에, ECC 코드워드(620-b 및 620-c)를 송신하기 위한 채널은 링크 ECC 채널일 수 있다. 일부 경우에, 내부 ECC 코드워드(625-b 및 625-c)는 데이터 세트에서 에러를 정정하기 위해, ECC 코드워드(620-b 및 620-c)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-b 및 625-c)는 데이터(615-b 및 615-c)의 부분 및 ECC 코드워드(620-b 및 620-c)에 기초하여 생성될 수 있다. 예를 들어, 내부 ECC 코드워드(625-b)는 ECC 코드워드(620-b)에 기초하여 생성될 수 있고, 내부 ECC 코드워드(625-c)는 ECC 코드워드(620-c)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(615-b 및 615-c)의 부분, ECC 코드워드(620-b 및 620-c) 및 내부 ECC 코드워드(625-b 및 625-c)를 포함하는 데이터 세트(600-b)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(620-b 및 620-c) 및 내부 ECC 코드워드(625-b 및 625-c)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(600-b)는 단일 버스트(예를 들어, 데이터(615-b 및 615-c)의 부분, ECC 코드워드(620-b 및 620-c), 및 내부 ECC 코드워드(625-b 및 625-c)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(600-b)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-b 및 620-c)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(620-b 및 620-c)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(620-b 및 620-c)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(600-b)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(625-b 및 625-c)는 데이터 세트에 저장된 데이터 또는 ECC 코드워드(620-b 및 620-c)에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(625-b 및 625-c)를 식별하고, 내부 ECC 코드워드(625-b 및 625-c)에 기초하여 데이터 세트 또는 ECC 코드워드(620-b 및 620-c)가 각각 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 데이터(615-b 및 615-c)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 복수의 ECC 코드워드(620-b 및 620-c)가 생성될 수 있다. 예를 들어, 데이터(615-b)의 부분은 ECC 코드워드(620-b) 및 내부 ECC 코드워드(625-b)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성함으로써 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 예에서, 내부 ECC 코드워드(625-b 및 625-c)는 ECC 코드워드(620-b 및 620-c) 및/또는 데이터(615-b, 615-c)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, ECC 코드워드(620-b)는 내부 ECC 코드워드(625-b)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-b 및 625-c)는 ECC 코드워드(620-b 및 620-c) 및 데이터(615-b 및 615-c)의 부분과 각각 연관될 수 있다. 예를 들어, 데이터는 데이터의 2개의 부분을 포함할 수 있다. 일부 경우에, 데이터의 2개의 부분은 동일한 크기(예를 들어, 데이터의 2개의 128 비트 부분)일 수 있다. 다른 경우에, 데이터의 2개의 부분은 다른 크기일 수 있다. ECC 코드워드는 데이터의 2개의 부분(예를 들어, 데이터 부분(615-b 및 615-c)) 각각과 연관된 2개의 코드워드일 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 9 비트 코드워드일 수 있다. 내부 ECC 코드워드는 2개의 코드워드(예를 들어, ECC 코드워드(620-b 및 620-c)) 및/또는 데이터의 2개의 부분(예를 들어, 데이터(615-b, 615-c))과 연관된 2개의 코드워드일 수 있다. 일부 경우에, 내부 ECC 코드워드는 6 비트 코드워드일 수 있다. 다른 예에서, 데이터(615-b, 615-c), ECC 코드워드(620-b, 620-c) 및 내부 ECC 코드워드(625-b, 625-c)는 임의의 비트 크기일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(610-b)의 수량)은 동일한 데이터 세트(600-b)에 ECC 코드워드(620-b 및 620-c) 및/또는 내부 ECC 코드워드(625-b 및 625-c), 및 데이터(615-b 및 615-c)의 부분을 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(600-b)의 핀(610-b)의 수량은 데이터(615-b 및 615-c)의 부분과 동일한 데이터 세트(600-b)에 ECC 코드워드(620-b 및 620-c) 및 내부 ECC 코드워드(625-b 및 625-c)를 포함하도록 2개의 핀(610-b)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(600-b)는 미사용 데이터 비트를 포함할 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 하나 이상의 다른 채널과 연관된 채널 폭(예를 들어, 핀(611-b)의 수량)은 ECC 코드워드(620-b, 620-c) 및/또는 내부 ECC 코드워드(625-b, 625-c)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(611-b)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 간의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(620-b 및 620-c) 및 내부 ECC 코드워드(625-b 및 625-c)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(615-b, 615-c)를 수신하고, 하나 이상의 다른 채널을 통해 하나 이상의 ECC 코드워드(620-b, 620-c) 및 하나 이상의 내부 ECC 코드워드(625-b, 625-c)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(600-b)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(600-b)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(615-b 및 615-c)의 부분은 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-b 및 620-c)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(620-b 및 620-c)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(625-b 및 625-c)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(625-b 및 625-c)는 제1 부분 및 제2 부분과 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(625-b 및 625-c)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(625-b 및 625-c)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 데이터(615-b 및 615-c)의 부분, ECC 코드워드(620-b 및 620-c) 및 내부 ECC 코드워드(625-b 및 625-c)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(625-b 및 625-c)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(625-b 및 625-c)에 기초하여 에러를 정정할 수 있다.
도 6c는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(600-c)의 일례를 도시한다. 데이터 세트(600-c)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(600-c)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(600-c)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(600-c)는 2개 이상의 상이한 채널(예를 들어, 데이터 채널(190) 및/또는 ECC 채널과 같은 다른 채널(192))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 제1 채널은 제1 채널의 폭을 정하는 제1 수량의 핀(610-c)을 가질 수 있다. 제2 채널은 제2 채널의 폭을 정하는 제2 수량의 핀(611-c)을 가질 수 있다. 예를 들어, 제1 채널은 16개의 핀 폭일 수 있고, 제2 채널은 2개의 핀 폭일 수 있다. 다른 예에서, 제1 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있고, 제2 채널은 2개 미만의 핀 폭이거나 2개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(605-c)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 이중 데이터 속도를 사용하는 시스템에서는 매 클록 에지마다 단위 간격이 발생할 수 있다. 다른 시스템에서는 매 클록 사이클마다 단위 간격이 발생할 수 있다. 일부 경우에, 데이터 세트(600-c)는 액세스 동작과 연관된 데이터(615-d, 615-e, 615-f 및 615-g)의 부분을 포함할 수 있다. 데이터 세트(600-c)는 또한 하나 이상의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)를 포함할 수 있다. 하나 이상의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)는 각각 데이터(615-d, 615-e, 615-f 및 615-g)의 적어도 부분과 연관될 수 있다. 데이터 세트(600-a)는 또한 하나 이상의 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 포함할 수 있다.
데이터 세트(600-c)는 제1 채널(예를 들어, 데이터 채널)을 통해 데이터(615-d, 615-e, 615-f 및 615-g)를 송신하고, 하나 이상의 다른 채널을 통해 적어도 하나의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및/또는 적어도 하나의 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 송신하는 일례를 예시한다. 일부 경우에, 데이터(615-d, 615-e, 615-f 및 615-g), ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 동일한 버스트 간격 동안 송신될 수 있다. 일부 경우에, 호스트 디바이스는 핀(610-c)의 수량에 대응하는 폭을 가진 제1 채널을 통해 전달하기 위해 데이터(615-d, 615-e, 615-f 및 615-g)를 식별할 수 있다. 호스트 디바이스는 또한 핀(611-c)의 수량에 대응하는 폭을 가진 하나 이상의 다른 채널을 통해 전달하기 위해 데이터(615-d, 615-e, 615-f 및 615g)와 연관된 하나 이상의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및/또는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 식별할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 액세스 동작(예를 들어, 판독 동작 또는 기입 동작)의 부분으로서 제1 채널 및/또는 하나 이상의 다른 채널을 통해 데이터(615-d, 615-e, 615-f 및 615-g)의 부분을 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 호스트 디바이스 또는 메모리 디바이스가 데이터(615-d, 615-e, 615-f 및 615-g)의 부분을 송신한 것과 다른 채널을 통해 ECC 코드워드(620-d, 620-e, 620-f, 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 송신할 수 있다. ECC 코드워드(620-d, 620-e, 620-f 및 620-g)를 송신하기 전에, 호스트 디바이스는 데이터(615-d, 615-e, 615-f 및 615-g)의 부분에 기초하여 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)를 생성할 수 있다. 예를 들어, ECC 코드워드(620-d)는 데이터(615-d)의 부분에 기초하여 생성될 수 있고, ECC 코드워드(620-e)는 데이터(615-e)의 부분에 기초하여 생성될 수 있다.
ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)를 송신하기 위한 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위해 사용될 수 있다. 이러한 경우에, ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)를 송신하는 채널은 링크 ECC 채널일 수 있다. 일부 경우에, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 데이터 세트에서 에러를 정정하기 위해, ECC 코드워드(620-d, 620-e, 620-f 및 620-g)에서 에러를 정정하기 위해, 또는 이 둘 모두를 위해 생성될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 데이터(615-d, 615-e, 615-f 및 615-g)의 부분과 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)에 기초하여 생성될 수 있다. 예를 들어, 내부 ECC 코드워드(625-d)는 ECC 코드워드(620-d)에 기초하여 생성될 수 있고, 내부 ECC 코드워드(625-e)는 ECC 코드워드(620-e)에 기초하여 생성될 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터(615-d, 615-e, 615-f 및 615-g)의 부분, ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 포함하는 데이터 세트(600-c)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(600-c)는 단일 버스트(예를 들어, 데이터(615-d, 615-e, 615-f 및 615-g)의 부분, ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(600-c)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(620-d, 620-e, 620-f 및 620-g)는 메모리 디바이스에 저장되고, 메모리 디바이스에 저장되는 데이터 세트(600-c)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 데이터 세트에 저장된 데이터 또는 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)에서 에러를 검출하거나 정정하는 데 사용될 수 있다. 예를 들어, 호스트 디바이스는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 식별하고, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)에 기초하여 데이터 세트 또는 ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)가 각각 에러를 포함하는지 여부를 결정할 수 있다.
일부 경우에, 복수의 ECC 코드워드(620-d, 620-e, 620-f, 및 620-g)는 데이터(615-d, 615-e, 615-f 및 615-g)의 부분에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, 데이터(615-d)의 부분은 ECC 코드워드(620-d) 및 내부 ECC 코드워드(625-d)와 함께 포함될 수 있다. 더 작은 데이터 부분에 대해 ECC 코드워드를 생성함으로써 더 많은 에러를 검출하고/하거나 정정할 수 있다. 일부 예에서, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및/또는 데이터(615-d, 615-e, 615-f 및 615-g)에 기초하여 에러를 정정하거나 검출하기 위해 생성될 수 있다. 예를 들어, ECC 코드워드(620-d)는 내부 ECC 코드워드(625-d)와 함께 포함될 수 있다. 이러한 경우에, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 데이터(615-d, 615-e, 615-f 및 615-g)의 부분과 각각 연관될 수 있다. 예를 들어, 데이터는 데이터의 4개 이상의 부분을 포함할 수 있다. 일부 경우에, 데이터의 4개 이상의 부분은 동일한 크기(예를 들어, 데이터의 4개의 64 비트 부분)일 수 있다. 다른 일부에, 데이터의 4개 이상의 부분은 다른 크기일 수 있다. ECC 코드워드는 데이터의 4개 이상의 부분(예를 들어, 데이터(615-d, 615-e, 615-f 및 615-g)의 부분) 각각과 연관된 4개 이상의 코드워드일 수 있으며, 하나의 코드워드는 데이터의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 8 비트 코드워드일 수 있다. 내부 ECC 코드워드는 4개 이상의 코드워드(예를 들어, ECC 코드워드(620-d, 620-e, 620-f 및 620-g)) 및/또는 4개 이상의 데이터(예를 들어, 데이터(615-d, 615-e, 615-f 및 615-g))의 부분과 연관된 4개 이상의 코드워드일 수 있다. 일부 경우에, 내부 ECC 코드워드는 4 비트 코드워드일 수 있다. 다른 예에서, 데이터(615-d, 615-e, 615-f 및 615-g), ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 임의의 비트 크기일 수 있다.
일부 경우에, 제1 채널과 연관된 채널 폭(예를 들어, 핀(610-c)의 수량)은 동일한 데이터 세트(600-c)에 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및/또는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g) 및 데이터(615-d, 615-e, 615-f 및 615-g)의 부분을 포함하도록 확장될 수 있다. 이러한 경우에, 데이터 세트(600-c)의 핀(610-c)의 수량은 데이터(615-d, 615-e, 615-f 및 615-g)의 부분과 동일한 데이터 세트(600-c)에 ECC 코드워드(620-d, 620-e, 620-f 및 620-g)와 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 포함하도록 3개의 핀(610-c)만큼 확장될 수 있다. 일부 경우에, 데이터 세트(600-c)는 미사용 데이터 비트를 포함할 수 있다. 채널 폭을 확장하면 시스템에 저장되고 전달되는 데이터의 정확도를 향상시킬 수 있으며, 일부 경우에, 호스트 디바이스 및 메모리 디바이스를 포함하는 시스템의 채널 대역폭 성능을 향상시킬 수 있다.
일부 경우에, 하나 이상의 다른 채널과 연관된 채널 폭(예를 들어, 핀(611-c)의 수량)은 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및/또는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)에 기초하여 확장될 수 있다. 이러한 경우에, 핀(611-c)의 수량은 하나 이상만큼 확장될 수 있다.
채널 폭은 호스트 디바이스와 메모리 디바이스 사이의 신호화 방식에 따라 구성될 수 있다. 일부 경우에, 호스트 디바이스는 송신이 하나 이상의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 메시지에 기초하여 수신기 또는 드라이버 또는 이 둘 모두를 구성할 수 있다. 이러한 경우에, 메모리 디바이스는 수신기를 구성한 후 제1 채널을 통해 데이터(615-d, 615-e, 615, f 및 615-g)를 수신하고, 하나 이상의 다른 채널을 통해 하나 이상의 ECC 코드워드(620-d, 620-e, 620-f 및 620-g) 및 하나 이상의 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 수신할 수 있다. 일부 예에서, 호스트 디바이스는 판독 커맨드를 송신할 수 있다. 일부 경우에, 호스트 디바이스는 데이터 세트(600-c)와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있다. 이러한 경우에, 데이터 세트(600-c)를 메모리 디바이스로 송신하는 것은 기입 커맨드에 기초할 수 있다. 기입 커맨드는 액세스 동작과 연관된 커맨드 및 어드레스를 전달하기 위해 채널을 통해 송신될 수 있다. 일부 경우에, 데이터(615-d, 615-e, 615-f 및 615-g)의 부분은 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
ECC 코드워드(620-d, 620-e, 620-f 및 620-g)는 제2 데이터 세트에서 에러를 정정하기 위해 이용될 수 있다. 이러한 경우에, 제2 데이터 세트는 메모리 디바이스의 제1 부분에 저장될 수 있고, ECC 코드워드(620-d, 620-e, 620-f 및 620-g)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장될 수 있다. 내부 ECC 코드워드(625-d, 625-e, 625-f, 및 625-g)는 메모리 디바이스에 저장될 수 있다. 예를 들어, 내부 ECC 코드워드(625-d, 625-e, 625-f, 및 625-g)는 제1 부분 및 제2 부분과는 다른 메모리 디바이스의 제3 부분에 저장될 수 있다. 일부 경우에, 호스트 디바이스보다는 메모리 디바이스는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)를 생성할 수 있다. 이러한 경우에, 메모리 디바이스는 내부 ECC 코드워드(625-d, 625-e, 625-f, 및 625-g)를 저장할 수 있다. 호스트 디바이스는 메모리 디바이스로부터 수신된 하나 이상의 내부 ECC 코드워드를 사용하여 메모리 디바이스로부터 수신된 데이터에서, 메모리 디바이스로부터 수신된 ECC 코드워드에서, 또는 이 둘 모두에서 에러를 검출하거나 정정할 수 있다. 메모리 디바이스는 데이터 및 코드워드를 수신하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 저장하도록 구성될 수 있다. 메모리 디바이스는 데이터 및 코드워드를 검색하고, 그 동작의 일부로서 임의의 순서로 데이터 및 코드워드를 송신하도록 구성될 수 있다.
일부 경우에, 데이터(615-d, 615-e, 615-f 및 615-g)의 부분, ECC 코드워드(620-d, 620-e, 620-f 및 620-g), 및 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)는 메모리 디바이스로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스는 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)에 기초하여 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 경우에, 메모리 디바이스는 데이터 세트에 에러가 없다고 결정할 수 있다. 다른 예에서, 메모리 디바이스는 데이터 세트에서 에러를 식별하고, 내부 ECC 코드워드(625-d, 625-e, 625-f 및 625-g)에 기초하여 에러를 정정할 수 있다.
도 7a는 에러 정정 방법 및 디바이스를 지원하는 예시적인 시스템(700-a)을 도시한다. 시스템(700-a)은 제어기(705-a)(예를 들어, 호스트 디바이스의 적어도 일부) 및 메모리 디바이스(710-a)의 수신 구성 요소(711)를 포함할 수 있다. 메모리 디바이스(710-a)는 또한 역직렬화기(715), ECC 구성 요소(720), DMI-ECC 생성기(725) 및 DBI 디코더(730)를 포함할 수 있다. 제어기(705-a)는 ECC 생성기, DBI/DMI 인코더, DMI-ECC 생성기 및 직렬화기를 포함할 수 있다.
도 3 내지 도 6을 참조하여 설명된 데이터 세트는, 제어기(705-a)에 의해 생성되고 송신될 수 있다. 제어기(705-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)뿐만 아니라 도 1 내지 도 6을 참조하여 설명된 호스트 디바이스의 일례일 수 있다. 일부 예에서, 도 3 내지 도 6을 참조하여 설명된 데이터 세트는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)뿐만 아니라 도 3 내지 도 6을 참조하여 설명된 메모리 디바이스의 일례일 수 있는 메모리 디바이스(710-a)에 수신되고 저장될 수 있다.
수신 구성 요소(711)는 제어기(705-a)와 메모리 디바이스(710-a) 사이에서 확장되는 하나 이상의 채널(735-a, 740-a 및 745-a)과 결합될 수 있다. 일부 경우에, 하나 이상의 채널(735-a)은 도 1을 참조하여 설명된 데이터 채널(190)의 일례일 수 있다. 하나 이상의 채널(735-a)은 데이터 및/또는 ECC 코드워드를 전달하도록 구성될 수 있다. 하나 이상의 채널(740-a)은 도 1을 참조하여 설명된 ECC 채널(192)과 같은 다른 채널(192)의 일례일 수 있다. 하나 이상의 채널(740-a)은 ECC 코드워드를 전달하도록 구성될 수 있다. 일부 경우에, 수신 구성 요소는 하나 이상의 채널(740)을 포함하지 않을 수 있다. 일부 경우에, 하나 이상의 채널(740-a) 중 적어도 하나의 채널은 링크 ECC 채널의 일례일 수 있다. 하나 이상의 채널(745-a)은 차동 메모리 인터페이스(differential memory interface: DMI) 채널의 일례일 수 있다.
정보는 하나 이상의 버스트를 사용하여 하나 이상의 채널(735-a, 740-a 및 745-a)을 통해 전달될 수 있다. 역직렬화기(715)는 하나 이상의 채널(735-a, 740-a 및 745-a)을 통해 수신된 정보를 역직렬화하도록 구성될 수 있다. ECC 구성 요소(720)는 하나 이상의 채널(735-a, 740-a, 745-a)을 통해 전달되는 정보에서 발견된 에러를 검출하고/하거나 정정하기 위해 ECC 코드워드를 사용하도록 구성될 수 있다. DMI-ECC 생성기(725)는 하나 이상의 채널(735-a, 740-a 및 745-a)을 통해 전달되는 정보에 기초하여 ECC 정보 및/또는 DMI 정보를 생성하도록 구성될 수 있다. 데이터 버스 반전(data bus inversion: DBI) 디코더(730)는 데이터 버스 반전과 관련된 동작을 수행하도록 구성될 수 있다.
일부 경우에, 수신 구성 요소(711)는 채널(735-a, 710-a 및 745-a)을 통해 수신된 ECC 코드워드를 메모리 디바이스(710-a)의 메모리 셀의 어레이로 전달하도록 구성된 전도성 라인(741)을 포함할 수 있다. 전도성 라인(741)은 역직렬화기(715)와 결합될 수 있다. 이러한 경우에, 호스트 디바이스 또는 제어기(705-a)에 의해 생성 및 송신된 ECC 코드워드는 메모리 셀의 어레이에 저장될 수 있고, 그리하여 채널(735-a)을 통해 전달되는 데이터를 저장하는 맥락에서 발생하는 에러를 검출하거나 정정하도록 구성될 수 있다.
도 7b는 에러 정정 방법 및 디바이스를 지원하는 예시적인 시스템(700-b)을 도시한다. 시스템(700-b)은 제어기(705-b)(예를 들어, 호스트 디바이스의 적어도 일부) 및 메모리 디바이스(710-b)의 송신 구성 요소(712)를 포함할 수 있다. 메모리 디바이스(710-b)는 또한 DBI 인코더(750) 및 직렬화기(755), 다중화기(760-a 및 760-b)를 포함할 수 있다. 제어기(705-b)는 역직렬화기, ECC 검사 및 정정 구성 요소, DBI 디코더 및 직렬화기를 포함할 수 있다.
도 3 내지 도 6을 참조하여 설명된 데이터 세트는 제어기(705-b)에 의해 생성되고 송신될 수 있다. 제어기(705-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)뿐만 아니라 도 1 내지 도 6을 참조하여 설명된 호스트 디바이스의 일례일 수 있다. 일부 예에서, 도 3 내지 도 6을 참조하여 설명된 데이터 세트는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)뿐만 아니라 도 3 내지 도 6을 참조하여 설명된 메모리 디바이스의 일례일 수 있는 메모리 디바이스(710-b)에 수신되어 저장될 수 있다.
송신 구성 요소(712)는 제어기(705-b)와 메모리 디바이스(710-b) 사이에서 확장되는 하나 이상의 채널(735-b, 740-b 및 745-b)과 결합될 수 있다. 일부 경우에, 하나 이상의 채널(735-b)은 도 1을 참조하여 설명된 데이터 채널(190)의 일례일 수 있다. 하나 이상의 채널(735-b)은 데이터 및/또는 ECC 코드워드를 전달하도록 구성될 수 있다. 하나 이상의 채널(740-b)은 도 1을 참조하여 설명된 ECC 채널(192)과 같은 다른 채널(192)의 일례일 수 있다. 하나 이상의 채널(740-b)은 ECC 코드워드를 전달하도록 구성될 수 있다. 일부 경우에, 수신 구성 요소는 하나 이상의 채널(740)을 포함하지 않을 수 있다. 일부 경우에, 하나 이상의 채널(740-b) 중 적어도 하나의 채널은 링크 ECC 채널의 일례일 수 있다. 하나 이상의 채널(745-b)은 DMI 채널의 일례일 수 있다.
정보는 하나 이상의 버스트를 사용하여 하나 이상의 채널(735-b, 740-b 및 745-b)을 통해 전달될 수 있다. 직렬화기(755)는 하나 이상의 채널(735-b, 740-b, 745-b)을 통해 제어기(705-b)로 송신하기 위해 메모리 셀의 어레이 및 메모리 디바이스(710-b)의 다른 구성 요소로부터 수신된 정보를 직렬화하도록 구성될 수 있다. DBI 인코더(750)는 데이터 버스 반전과 관련된 동작을 수행하도록 구성될 수 있다.
일부 경우에, 송신 구성 요소(712)는 채널(735-b, 710-b 및 745-b)을 통해 제어기(705-b)로 송신하기 위해 메모리 디바이스(710-b)의 메모리 셀의 어레이로부터 검색된 ECC 코드워드를 전달하도록 구성된 전도성 라인(742)을 포함할 수 있다. 전도성 라인(742)은 직렬화기(755) 및/또는 다중화기(760-a 또는 760-b)들 중 하나와 결합될 수 있다. 이러한 경우에, 호스트 디바이스로부터 수신된 ECC 코드워드는 메모리 셀의 어레이의 저장 위치로부터 검색되어 판독 동작의 일부로서 호스트 디바이스로 다시 송신될 수 있다. 코드워드는 채널(735-b)을 통해 전달되는 데이터를 저장하는 맥락에서 발생하는 에러를 검출하거나 정정하도록 구성될 수 있다.
도 8a는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(800-a)의 일례를 도시한다. 데이터 세트(800-a)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(800-a)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(800-a)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(800-a)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(810-a)을 가질 수 있다. 예를 들어, 채널은 16개의 핀 폭일 수 있다. 다른 예에서, 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(805-a)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 일부 경우에, 데이터 세트(800-a)는 액세스 동작과 연관된 데이터(815-a)를 포함할 수 있다. 일부 예에서, 데이터(815-a)는 256 비트의 데이터를 포함할 수 있다. 데이터 세트(800-a)는 단일 버스트에서 채널(예를 들어, 데이터 채널)을 통해 데이터(815-a)를 송신하는 일례를 예시한다. 예를 들어, 호스트 디바이스 또는 메모리 어레이는 연속적인 단일 버스트에서 데이터(815-a)를 송신할 수 있다. 이러한 예에서, 호스트 디바이스 또는 메모리 어레이는 24개의 버스트에서 데이터(815-a)를 송신할 수 있다.
일부 경우에, 호스트 디바이스는 핀(810-a)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(800-a)를 식별할 수 있다. 데이터 세트(800-a)는 또한 단위 간격(805-a)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 DQ 채널의 폭 및 데이터 세트(800-a)의 크기와 연관될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다. 일부 예에서, 데이터 세트(800-a)는 기입 동작의 일부로서 메모리 디바이스에 저장될 수 있다.
일부 경우에, 호스트 디바이스는 데이터(815-a)에 도입될 수 있는 에러를 검출하고/하거나 정정하기 위해 하나 이상의 ECC 코드워드(예를 들어, ECC 코드워드(820))를 생성할 수 있다. 그러나, 데이터(815-a)와 연관된 버스트는 EEC 코드워드를 포함하지 못할 수 있다. 일부 구현예에서, ECC 코드워드는 데이터 채널을 통해 다른 버스트에서 송신될 수 있다.
도 8b는 에러 정정 방법 및 디바이스를 지원하는 데이터 세트(800-b)의 일례를 도시한다. 데이터 세트(800-b)는 도 1을 참조하여 설명된 외부 메모리 제어기(105)의 일례일 수 있는, 도 1 및 도 2를 참조하여 설명된 호스트 디바이스에 의해 생성되고 송신될 수 있다. 일부 예에서, 데이터 세트(800-b)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160) 또는 메모리 다이(200)의 일례일 수 있는 메모리 디바이스에 수신되고 저장될 수 있다. 일부 예에서, 메모리 디바이스는 데이터 세트(800-b)를 검색하고 호스트 디바이스로 송신할 수 있다.
데이터 세트(800-b)는 채널(예를 들어, 데이터 채널(190))을 통해 전달되는 데이터 버스트의 일례일 수 있다. 채널은 채널의 폭을 정하는 수량의 핀(810-b)을 가질 수 있다. 예를 들어, 채널은 16개의 핀 폭일 수 있다. 다른 예에서, 채널은 16개 미만의 핀 폭이거나 16개 초과의 핀 폭일 수 있다. 데이터 버스트는 또한 복수의 단위 간격(805-b)을 가지거나 또는 적어도 하나의 데이터 심볼(예를 들어, 비트)을 전달하기 위한 시간 자원을 가질 수 있다. 일부 경우에, 호스트 디바이스는 핀(810-b)의 수량에 대응하는 폭을 가진 채널을 통해 전달하기 위해 데이터 세트(800-b)를 식별할 수 있다. 데이터 세트(800-b)는 또한 단위 간격(805-b)의 수량과 동등한 버스트 길이를 포함할 수 있다. 일부 예에서, 버스트 길이는 데이터 채널의 폭 및 데이터 세트(800-b)의 크기와 연관될 수 있다.
일부 경우에, 데이터 세트(800-b)는 데이터의 적어도 부분과 연관된 하나 이상의 ECC 코드워드(820-a 내지 820-x)를 포함할 수 있다. 각각의 ECC 코드워드는 데이터(815-a)의 다른 버스트와 연관될 수 있다. 이러한 예에서, 데이터(815-a)의 다중 버스트의 ECC 코드워드는 데이터 채널을 통해 단일 버스트에서 취합되고 전달될 수 있다. 데이터 세트(800-a)는 단일 버스트에서 채널(예를 들어, 데이터 채널)을 통해 데이터 및 적어도 하나의 ECC 코드워드(820-a 내지 820-x)를 송신하는 일례를 예시한다. 이러한 예에서, 데이터는 연속적인 버스트로 송신될 수 있고, ECC 코드워드는 단일 버스트로 송신될 수 있다. 단일 버스트는 데이터를 송신하는 수량의 연속 버스트를 포함할 수 있다.
호스트 디바이스 또는 메모리 디바이스는 채널을 통해 데이터(815-a)를 송신할 수 있다. 호스트 디바이스 또는 메모리 디바이스는 또한 호스트 디바이스 또는 메모리 디바이스가 데이터(815-a)를 송신한 것과 동일한 채널을 통해 데이터 세트(800-b)(예를 들어, ECC 코드워드(820-a 내지 820-x)를 포함함)를 별도의 버스트로 송신할 수 있다. 데이터 세트(800-b)를 송신하기 전에, 호스트 디바이스는 데이터에 기초하여 ECC 코드워드(820-a 내지 820-x)를 생성할 수 있다. 예를 들어, 호스트 디바이스는 데이터의 각 부분에 대해 ECC 코드워드를 생성할 수 있다.
이러한 경우에, 호스트 디바이스 또는 메모리 디바이스는 데이터 세트(800-b)를 송신할 수 있다. 호스트 디바이스는 또한 데이터 송신이 ECC 코드워드(820-a 내지 820-x)를 포함한다고 결정할 수 있다. 일부 경우에, 데이터 세트(800-b)는 단일 버스트(예를 들어, ECC 코드워드(820-a 내지 820-x)를 포함함)로서 송신될 수 있다. 단일 버스트는 액세스 커맨드와 연관될 수 있다.
ECC 코드워드(820-a 내지 820-x)는 메모리 디바이스에 저장된 데이터에서 에러를 검출하거나 정정하기 위해 사용될 수 있다. 일부 경우에, ECC 코드워드(820-a 내지 820-x)는 SEC ECC 또는 SECDED ECC를 포함할 수 있다. 이러한 경우에, ECC 코드워드(320-a)는 메모리 디바이스에 저장될 수 있고, 메모리 디바이스에 저장되는 데이터 세트(300-a)와 연관된 에러를 검출하거나 정정할 수 있다. 일부 경우에, 데이터에 기초하여 에러를 정정하거나 검출하기 위해 복수의 ECC 코드워드(820-a 내지 820-x)가 생성될 수 있다. 일부 경우에, 데이터 세트(800-b)는 24개의 10 비트 코드워드(예를 들어, ECC 코드워드(820-a 내지 820-x))를 포함할 수 있다.
도 9는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 호스트 디바이스 관리자(905)의 블록도(900)를 도시한다. 호스트 디바이스 관리자(905)는 도 1을 참조하여 설명된 호스트 디바이스 또는 외부 메모리 제어기(105)의 일례일 수 있다. 호스트 디바이스 관리자(905)는 데이터 관리자(910), 코드워드 생성기(915), 데이터 송신기(920), 메시지 송신기(925), 커맨드 송신기(930), 에러 검출기(935), 코드워드 식별자(940), 코드워드 송신기(945), 데이터 수신기(950), 코드워드 수신기(955), 데이터 저장 구성 요소(960), 및 코드워드 저장 구성 요소(965)를 포함할 수 있다. 이들 모듈 각각은 직접 또는 간접 (예를 들어, 하나 이상의 버스를 통해) 서로 통신할 수 있다.
데이터 관리자(910)는 폭을 가진 채널을 통해 전달하기 위한 제1 데이터 세트를 식별할 수 있으며, 제1 데이터 세트는 제1 버스트 길이에 대응한다. 일부 예에서, 데이터 관리자(910)는 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 식별할 수 있다. 일부 예에서, 데이터 관리자(910)는 제1 데이터 세트를 부분 세트로 분할할 수 있다. 일부 예에서, 데이터 관리자(910)는 채널을 통해 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신할 수 있다. 일부 예에서, 데이터 관리자(910)는 제2 코드워드를 식별한 것에 기초하여 제4 데이터 세트가 제1 데이터 세트에 대응한다고 결정할 수 있다.
일부 예에서, 데이터 관리자(910)는 에러를 정정한 것에 기초하여 제4 데이터 세트로부터 제1 데이터 세트를 생성할 수 있다. 일부 예에서, 데이터 관리자(910)는 채널을 통해 단일 데이터 버스트로서 제2 데이터 세트를 송신할 수 있다. 일부 예에서, 데이터 관리자(910)는 제1 데이터 세트 및 코드워드에 기초하여 제2 데이터 세트를 생성할 수 있으며, 여기서 제2 데이터 세트를 송신하는 것은 제2 데이터 세트를 생성하는 것에 기초한다. 일부 예에서, 제1 데이터 세트를 부분 세트로 분할하고, 제1 채널을 통해 제1 데이터 세트를 송신하는 것은 제1 채널을 통해 부분 세트를 송신하는 것을 포함한다.
일부 예에서, 데이터 관리자(910)는 제2 코드워드를 수신한 것에 기초하여 제2 데이터 세트가 제1 데이터 세트라고 결정할 수 있다. 일부 예에서, 데이터 관리자(910)는 에러를 정정한 것에 기초하여 제2 데이터 세트로부터 제1 데이터 세트를 생성할 수 있다. 일부 경우에, 제1 데이터 세트는 액세스 커맨드와 연관된 단일 데이터 버스트를 포함한다. 일부 경우에, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관된다. 일부 경우에, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성된다. 일부 경우에, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것이다. 일부 경우에, 제2 채널은 링크 ECC 채널을 포함한다. 일부 경우에, 제1 데이터 세트는 액세스 동작과 연관된 단일 데이터 버스트를 포함한다. 일부 경우에, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성된다.
코드워드 생성기(915)는 제1 데이터 세트의 적어도 부분에 기초하여 에러 정정을 위한 코드워드를 생성할 수 있다. 일부 예에서, 코드워드 생성기(915)는, 제1 데이터 세트의 적어도 부분에 기초하여, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 생성할 수 있다. 일부 예에서, 코드워드 생성기(915)는 제1 데이터 세트의 적어도 부분 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성할 수 있으며, 여기서 제2 데이터 세트는 제2 코드워드를 포함한다. 일부 예에서, 코드워드 생성기(915)는 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성할 수 있고, 여기서 제2 데이터 세트는 코드워드 세트를 포함한다. 일부 예에서, 코드워드 생성기(915)는 제2 버스트 길이를 사용하여 채널을 통해 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제2 코드워드를 식별할 수 있다.
일부 예에서, 코드워드 생성기(915)는 제2 버스트 길이를 사용하여 채널을 통해 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제3 코드워드를 식별할 수 있다. 일부 예에서, 코드워드 생성기(915)는 제3 데이터 세트에서 코드워드 세트를 식별할 수 있으며, 세트의 각 코드워드는 제4 데이터 세트의 적어도 부분과 연관되며, 여기서 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 식별하는 것에 기초한다. 일부 예에서, 코드워드 생성기(915)는 제1 데이터 세트의 적어도 부분 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성할 수 있다.
일부 예에서, 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성하고, 여기서 제2 채널을 통해 코드워드를 송신하는 것은 제2 채널을 통해 코드워드 세트를 송신하는 것을 포함한다. 일부 경우에, 코드워드 세트의 단일 코드워드가 부분 세트의 각 부분에 대해 생성된다. 일부 경우에, 코드워드는 모든 제1 데이터 세트와 연관된다. 일부 경우에, 코드워드 세트의 단일 코드워드는 부분 세트의 각 부분에 대해 생성된다.
데이터 송신기(920)는 채널을 통해 제1 버스트 길이보다 큰 제2 버스트 길이를 사용하여 제1 데이터 세트 및 코드워드를 포함하는 제2 데이터 세트를 송신할 수 있다. 일부 예에서, 데이터 송신기(920)는 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 제1 데이터 세트를 송신할 수 있다.
메시지 송신기(925)는 채널을 통해 전달되는 데이터의 송신과 연관된 버스트 길이를 나타내는 메시지를 메모리 디바이스에 송신할 수 있으며, 여기서 메시지는 제2 버스트 길이를 나타내고, 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초한다. 일부 예에서, 메시지 송신기(925)는 채널을 통해 전달된 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함함을 나타내는 메시지를 메모리 디바이스로 송신할 수 있으며, 여기서 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초한다. 일부 예에서, 메시지 송신기(925)는 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 갖는다는 것을 나타내는 메시지를 메모리 디바이스로 송신할 수 있으며, 여기서 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초한다.
커맨드 송신기(930)는 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있으며, 여기서 제2 데이터 세트를 송신하는 것은 기입 커맨드를 송신하는 것에 기초한다. 일부 예에서, 커맨드 송신기(930)는 판독 커맨드를 메모리 디바이스에 송신할 수 있으며, 여기서 제3 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초한다. 일부 예에서, 커맨드 송신기(930)는 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스로 송신할 수 있으며, 여기서 제1 데이터 세트를 송신하고 코드워드를 송신하는 것은 기입 커맨드를 송신하는 것에 기초한다.
일부 예에서, 커맨드 송신기(930)는 판독 커맨드를 메모리 디바이스에 송신할 수 있으며, 여기서 제2 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초한다. 일부 경우에, 기입 커맨드는 액세스 동작과 연관된 커맨드 또는 어드레스를 전달하기 위해 제3 채널을 통해 송신된다.
에러 검출기(935)는 제2 코드워드를 식별한 것에 기초하여 제3 데이터 세트에 포함된 제4 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 예에서, 에러 검출기(935)는 제3 코드워드를 식별한 것에 기초하여 제4 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정할 수 있다. 일부 예에서, 에러 검출기(935)는 제4 데이터 세트가 에러를 포함한다고 결정한 것에 기초하여 제4 데이터 세트에서 에러를 정정할 수 있다.
일부 예에서, 에러 검출기(935)는 제2 코드워드에 기초하여 제2 데이터 세트가 에러를 포함하는지 여부를 결정할 수 있다. 일부 예에서, 에러 검출기(935)는 제3 코드워드를 수신한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정할 수 있다. 일부 예에서, 에러 검출기(935)는 제2 데이터 세트가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트에서 에러를 정정할 수 있다.
코드워드 식별자(940)는 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함한다고 결정할 수 있으며, 여기서 코드워드를 생성하는 것은 채널을 통한 송신이 하나 이상의 코드워드를 포함한다고 결정하는 것에 기초한다. 일부 경우에, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 경우에, 코드워드는 메모리 디바이스에 저장되도록 구성된다. 일부 경우에, 코드워드는 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성된다. 일부 경우에, 코드워드는 모든 제1 데이터 세트와 연관된다.
코드워드 송신기(945)는 제1 데이터 세트와 연관된 코드워드를 제2 채널을 통해 송신할 수 있다. 일부 예에서, 코드워드 송신기(945)는 제2 채널을 통해 제2 코드워드를 송신할 수 있다. 일부 경우에, 코드워드는 제1 채널을 통해 제1 데이터 세트를 송신하는 것과 연관된 에러를 검출하거나 정정하도록 구성된다.
데이터 수신기(950)는 제1 채널을 통해 제2 데이터 세트를 수신할 수 있다.
코드워드 수신기(955)는 제2 채널을 통해 제2 코드워드를 수신할 수 있다. 일부 예에서, 코드워드 수신기(955)는 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 제2 채널을 통해 수신할 수 있다. 일부 예에서, 코드워드 수신기(955)는 제2 채널을 통해 코드워드 세트를 수신할 수 있으며, 세트의 각 코드워드는 제1 채널을 통해 수신된 제2 데이터 세트의 적어도 부분과 연관되며, 여기서 제2 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 수신하는 것에 기초한다. 일부 경우에, 코드워드는 메모리 디바이스에 저장되도록 구성된다.
도 10은 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 메모리 디바이스 관리자(1005)의 블록도(1000)를 도시한다. 메모리 디바이스 관리자(1005)는 도 1 및 도 2를 참조하여 설명된 메모리 디바이스(110), 메모리 다이(160, 200), 디바이스 메모리 제어기(155), 로컬 메모리 제어기(165, 260) 또는 이들의 조합의 일례일 수 있다. 메모리 디바이스 관리자(1005)는 데이터 수신기(1010), 코드워드 식별자(1015), 데이터 저장 구성 요소(1020), 코드워드 저장 구성 요소(1025), 코드워드 생성기(1030), 메시지 수신기(1035), 데이터 관리자(1040), 커맨드 수신기(1045), 데이터 송신기(1050), 에러 검출기(1055), 코드워드 수신기(1060) 및 코드워드 송신기(1065)를 포함할 수 있다. 이들 모듈 각각은 직접 또는 간접 (예를 들어, 하나 이상의 버스를 통해) 서로 통신할 수 있다.
데이터 수신기(1010)는 폭을 가진 채널을 통해 제1 버스트 길이를 사용하여 제1 데이터 세트를 수신할 수 있다. 일부 예에서, 데이터 수신기(1010)는 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 수신할 수 있다. 일부 예에서, 데이터 수신기(1010)는 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신할 수 있다.
코드워드 식별자(1015)는 제1 데이터 세트에 포함된 제2 데이터 세트에서 에러 정정을 위한 코드워드를 제1 데이터 세트에서 식별할 수 있으며, 제2 데이터 세트는 채널을 통한 제2 버스트 길이에 대응한다. 일부 예에서, 코드워드 식별자(1015)는 제2 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제1 데이터 세트에서 식별할 수 있다.
일부 예에서, 제1 데이터 세트에서 코드워드 세트를 식별하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되며, 여기서 메모리 디바이스의 제2 부분에 코드워드를 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 것을 더 포함한다. 일부 예에서, 코드워드 식별자(1015)는 메모리 디바이스의 제2 부분으로부터 코드워드를 검색할 수 있다.
일부 예에서, 코드워드 식별자(1015)는 메모리 디바이스로부터 제2 코드워드를 검색할 수 있으며, 여기서 제3 데이터 세트는 제2 코드워드를 포함한다. 일부 예에서, 코드워드 식별자(1015)는 메모리 디바이스로부터 제2 코드워드를 수신할 수 있고, 제2 코드워드는 제2 데이터 세트 또는 코드워드에서 에러 정정을 위한 것이다.
일부 예에서, 코드워드 식별자(1015)는 메모리 디바이스로부터 코드워드 세트를 검색할 수 있으며, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되며, 여기서 제3 데이터 세트는 제2 데이터 세트의 부분 세트 및 코드워드 세트를 포함한다. 일부 예에서, 제1 데이터 세트에서 코드워드 세트를 식별하고, 세트의 각 코드워드는 제1 데이터 세트의 적어도 부분과 연관되며, 여기서 메모리 디바이스의 제2 부분에 코드워드를 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 것을 더 포함한다.
일부 예에서, 코드워드 식별자(1015)는 메모리 디바이스의 제2 부분으로부터 제2 데이터 세트에서 에러 정정을 위한 제2 코드워드를 검색할 수 있다. 일부 예에서, 코드워드 식별자(1015)는 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 메모리 디바이스로부터 검색할 수 있다. 일부 예에서, 메모리 디바이스로부터 코드워드 세트를 검색하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제2 코드워드를 송신하는 것은 제2 채널을 통해 코드워드 세트를 송신하는 것을 더 포함한다.
일부 예에서, 코드워드 식별자(1015)는 제2 채널을 통해 단일 데이터 버스트로서 코드워드를 수신할 수 있다. 일부 경우에, 코드워드는 모든 제1 데이터 세트와 연관된다. 일부 경우에, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 경우에, 코드워드는 메모리 디바이스에 저장될 때 제2 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성된다. 일부 경우에, 코드워드는 제1 채널을 통해 제1 데이터 세트를 수신하는 것과 연관된 에러를 검출하거나 정정하도록 구성된다. 일부 경우에, 코드워드는 모든 제1 데이터 세트와 연관된다.
데이터 저장 구성 요소(1020)는 메모리 디바이스의 제1 부분에 제2 데이터 세트를 저장할 수 있다. 일부 예에서, 데이터 저장 구성 요소(1020)는 메모리 디바이스의 제1 부분에 제1 데이터 세트를 저장할 수 있다. 일부 경우에, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성된다.
코드워드 저장 구성 요소(1025)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 코드워드를 저장할 수 있다. 일부 예에서, 코드워드 저장 구성 요소(1025)는 제1 부분과 다른 메모리 디바이스의 제2 부분에 코드워드를 저장할 수 있다. 일부 예에서, 코드워드 저장 구성 요소(1025)는 메모리 디바이스에 제2 코드워드를 저장할 수 있다.
일부 예에서, 코드워드 저장 구성 요소(1025)는 제1 부분 또는 제2 부분과 다른 메모리 디바이스의 제3 부분에 제2 코드워드를 저장할 수 있다. 일부 예에서, 코드워드 저장 구성 요소(1025)는 메모리 디바이스에 제2 코드워드를 저장할 수 있다. 일부 예에서, 코드워드 저장 구성 요소(1025)는 제1 부분 또는 제2 부분과 상이한 메모리 디바이스의 제3 부분에 제2 코드워드를 저장할 수 있다. 일부 경우에, 코드워드는 메모리 디바이스에 저장되도록 구성된다. 일부 경우에, 코드워드는 메모리 디바이스에 저장되도록 구성된다.
코드워드 생성기(1030)는 제1 데이터 세트 및 코드워드에 기초하여 에러 정정을 위한 제2 코드워드를 생성할 수 있다. 일부 예에서, 코드워드 생성기(1030)는 제1 데이터 세트 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성할 수 있다.
메시지 수신기(1035)는 채널을 통한 데이터 송신과 연관된 버스트 길이를 나타내는 메시지를 호스트 디바이스로부터 수신할 수 있으며, 여기서 메시지는 제1 버스트 길이를 나타내고, 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초한다. 일부 예에서, 메시지 수신기(1035)는 메시지에 표시된 버스트 길이에 기초하여 채널과 결합된 메모리 디바이스의 수신기를 구성할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 수신기를 구성하는 것에 기초한다.
일부 예에서, 메시지 수신기(1035)는 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함함을 나타내는 메시지를 호스트 디바이스로부터 수신할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초한다. 일부 예에서, 메시지 수신기(1035)는 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 갖는다는 것을 나타내는 메시지를 호스트 디바이스로부터 수신할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초한다.
일부 예에서, 메시지 수신기(1035)는 메시지를 수신하는 것에 기초하여 메모리 디바이스의 수신기를 구성할 수 있으며, 여기서 제1 데이터 세트를 수신하거나 코드워드를 수신하는 것은 수신기를 구성하는 것에 기초한다.
데이터 관리자(1040)는 메시지를 수신하는 것에 적어도 부분적으로 기초하여 제1 버스트 길이를 결정할 수 있으며, 여기서 코드워드를 식별하는 것은 제1 버스트 길이를 결정하는 것에 기초한다. 일부 예에서, 데이터 관리자(1040)는 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색할 수 있다. 일부 예에서, 데이터 관리자(1040)는 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색할 수 있다.
일부 예에서, 데이터 관리자(1040)는 제2 데이터 세트를 검색하고 코드워드를 검색한 것에 기초하여 제3 데이터 세트를 생성할 수 있으며, 여기서 제3 데이터 세트를 송신하는 것은 제3 데이터 세트를 생성하는 것에 기초한다. 일부 예에서, 데이터 관리자(1040)는 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색할 수 있다.
일부 예에서, 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색하고, 제2 데이터 세트를 송신하는 것은 제1 채널을 통해 부분 세트를 송신하는 것을 더 포함한다. 일부 예에서, 데이터 관리자(1040)는 제1 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신할 수 있다. 일부 경우에, 제2 데이터 세트는 액세스 커맨드와 연관된 단일 데이터 버스트를 포함한다. 일부 경우에, 제2 버스트 길이는 제1 버스트 길이보다 작다. 일부 경우에, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관된다. 일부 경우에, 제2 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성된다. 일부 경우에, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것이다. 일부 경우에, 제2 채널은 링크 ECC 채널을 포함한다.
커맨드 수신기(1045)는 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 기입 커맨드를 수신하는 것에 기초한다. 일부 예에서, 커맨드 수신기(1045)는 호스트 디바이스로부터 판독 커맨드를 수신할 수 있으며, 여기서 제2 데이터 세트를 검색하고 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초한다.
일부 예에서, 커맨드 수신기(1045)는 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신할 수 있으며, 여기서 제1 데이터 세트를 수신하거나, 코드워드를 수신하거나, 둘 모두를 수행하는 것은 기입 커맨드를 수신하는 것에 기초한다. 일부 예에서, 커맨드 수신기(1045)는 호스트 디바이스로부터 판독 커맨드를 수신할 수 있으며, 여기서 제2 데이터 세트를 검색하고 제2 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초한다.
데이터 송신기(1050)는 채널을 통해 제1 버스트 길이를 사용하여 제2 데이터 세트 및 코드워드를 포함하는 제3 데이터 세트를 송신할 수 있다. 일부 예에서, 데이터 송신기(1050)는 제1 채널을 통해 제2 데이터 세트를 호스트 디바이스로 송신할 수 있다.
에러 검출기(1055)는 제2 데이터 세트 또는 코드워드가 에러를 포함하는지 여부를 결정할 수 있으며, 여기서 제3 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정하는 것에 기초한다. 일부 예에서, 에러 검출기(1055)는 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정하는 것에 기초하여 제2 데이터 세트 또는 코드워드에서 에러를 정정할 수 있고, 여기서 제3 데이터 세트를 송신하는 것은 에러를 정정하는 것에 기초한다.
일부 예에서, 에러 검출기(1055)는 제2 데이터 세트 또는 제2 코드워드가 에러를 포함하는지 여부를 결정할 수 있으며, 여기서 제2 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정하는 것에 기초한다. 일부 예에서, 에러 검출기(1055)는 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드에서 에러를 정정할 수 있고, 여기서 제2 데이터 세트를 송신하는 것은 에러를 정정하는 것에 기초한다.
코드워드 수신기(1060)는 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제2 채널을 통해 수신할 수 있다. 일부 예에서, 코드워드 수신기(1060)는 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제2 채널을 통해 수신할 수 있다.
코드워드 송신기(1065)는 제2 채널을 통해 제2 코드워드를 호스트 디바이스로 송신할 수 있다. 일부 예에서, 코드워드 송신기(1065)는 제2 채널을 통해 제3 코드워드를 호스트 디바이스로 송신할 수 있다.
도 11은 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 방법(1100)을 예시하는 흐름도를 도시한다. 방법(1100)의 동작은 본 명세서에 설명된 호스트 디바이스 또는 그 구성 요소에 의해 구현될 수 있다. 예를 들어, 방법(1100)의 동작은 도 9를 참조하여 설명된 호스트 디바이스 관리자에 의해 수행될 수 있다. 일부 예에서, 호스트 디바이스는 아래에서 설명되는 기능을 수행하기 위해 호스트 디바이스의 기능적 요소를 제어하기 위해 명령어 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 호스트 디바이스는 특수 목적 하드웨어를 사용하여 아래에 설명된 기능의 양태를 수행할 수 있다.
1105에서, 호스트 디바이스는 폭을 가진 채널을 통해 전달하기 위한 제1 데이터 세트를 식별할 수 있으며, 제1 데이터 세트는 제1 버스트 길이에 대응한다. 1105의 동작은 도 3 및 도 4를 참조한 방법에 따라 수행될 수 있다. 일부 예에서, 1105의 동작의 양태는 도 9를 참조하여 설명된 데이터 관리자에 의해 수행될 수 있다.
1110에서, 호스트 디바이스는 제1 데이터 세트의 적어도 부분에 기초하여 에러 정정을 위한 코드워드를 생성할 수 있다. 1110의 동작은 도 3 및 도 4에 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1110의 동작의 양태는 도 9를 참조하여 설명된 코드워드 생성기에 의해 수행될 수 있다.
1115에서, 호스트 디바이스는 채널을 통해 제1 버스트 길이보다 큰 제2 버스트 길이를 사용하여 제1 데이터 세트 및 코드워드를 포함하는 제2 데이터 세트를 송신할 수 있다. 1115의 동작은 도 3 및 도 4에 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1115의 동작의 양태는 도 9를 참조하여 설명된 데이터 송신기에 의해 수행될 수 있다.
일부 예에서, 방법은 폭을 가진 채널을 통해 전달하기 위한 제1 데이터 세트를 식별하는 단계로서, 제1 데이터 세트는 제1 버스트 길이에 대응하는, 상기 제1 데이터 세트를 식별하는 단계, 제1 데이터 세트의 적어도 부분에 기초하여 에러 정정을 위한 코드워드를 생성하는 단계, 및 채널을 통해 제1 버스트 길이보다 큰 제2 버스트 길이를 사용하여, 제1 데이터 세트 및 코드워드를 포함하는 제2 데이터 세트를 송신하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제1 데이터 세트의 적어도 부분과 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하는 단계를 더 포함할 수 있고, 제2 데이터 세트는 제2 코드워드를 포함한다.
일부 예에서, 방법은 채널을 통해 전달되는 데이터의 송신과 연관된 버스트 길이를 나타내는 메시지를 메모리 디바이스에 송신하는 단계를 더 포함할 수 있으며, 여기서 메시지는 제2 버스트 길이를 나타내고, 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있다.
일부 예에서, 방법은 채널을 통해 전달된 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함함을 나타내는 메시지를 메모리 디바이스로 송신하는 단계를 더 포함할 수 있으며, 여기서 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있다. 일부 예에서, 방법은 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스로 송신하는 단계를 더 포함할 수 있으며, 여기서 제2 데이터 세트를 송신하는 것은 기입 커맨드를 송신하는 것에 기초할 수 있다.
일부 예에서, 방법은 제1 데이터 세트를 부분 세트로 분할하는 단계, 및 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성하는 단계를 더 포함할 수 있으며, 여기서 제2 데이터 세트는 코드워드 세트를 포함한다. 일부 예에서, 코드워드 세트의 단일 코드워드는 부분 세트의 각 부분에 대해 생성될 수 있다. 일부 예에서, 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
일부 예에서, 방법은 채널을 통해 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신하는 단계, 제2 버스트 길이를 사용하여 채널을 통해 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제2 코드워드를 식별하는 단계, 및 제2 코드워드를 식별한 것에 기초하여 제3 데이터 세트에 포함된 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는 단계를 더 포함할 수 있다.
일부 예에서, 방법은 제2 버스트 길이를 사용하여 채널을 통해 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제3 코드워드를 식별하는 단계, 및 제3 코드워드를 식별한 것에 기초하여 제4 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정하는 단계를 더 포함할 수 있다.
일부 예에서, 방법은 제2 코드워드를 식별한 것에 기초하여 제4 데이터 세트가 제1 데이터 세트에 대응한다고 결정하는 단계를 더 포함할 수 있다. 일부 예에서, 방법은 제4 데이터 세트가 에러를 포함한다고 결정한 것에 기초하여 제4 데이터 세트에서 에러를 정정하는 단계, 및 에러를 정정한 것에 기초하여 제4 데이터 세트로부터 제1 데이터 세트를 생성하는 단계를 더 포함할 수 있다.
일부 예에서, 방법은 제3 데이터 세트에서 코드워드 세트를 식별하는 단계를 더 포함할 수 있으며, 세트의 각 코드워드는 제4 데이터 세트의 적어도 부분과 연관되며, 여기서 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 식별하는 것에 기초할 수 있다.
일부 예에서, 방법은 판독 커맨드를 메모리 디바이스로 송신하는 단계를 더 포함할 수 있으며, 여기서 제3 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초할 수 있다. 방법의 일부 예에서, 채널을 통해 제2 데이터 세트를 송신하는 것은 채널을 통해 단일 데이터 버스트로서 제2 데이터 세트를 송신하는 것을 포함할 수 있다. 일부 예에서, 제1 데이터 세트는 액세스 커맨드와 연관된 단일 버스트 데이터를 포함한다.
일부 예에서, 방법은 제1 데이터 세트 및 코드워드에 기초하여 제2 데이터 세트를 생성하는 단계를 더 포함할 수 있으며, 여기서 제2 데이터 세트를 송신하는 것은 제2 데이터 세트를 생성하는 것에 기초할 수 있다. 일부 예에서, 방법은 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함한다고 결정하는 단계를 더 포함할 수 있으며, 여기서 코드워드를 생성하는 것은 채널을 통한 송신이 하나 이상의 코드워드를 포함한다고 결정하는 것에 기초할 수 있다.
일부 예에서, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관될 수 있다. 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
일부 예에서, 본 명세서에 설명된 장치 또는 장치들은 방법(1100)과 같은 방법 또는 방법들을 수행할 수 있다. 장치는 폭을 가진 채널을 통해 전달하기 위한 제1 데이터 세트를 식별하고, 제1 데이터 세트는 제1 버스트 길이에 대응하고, 제1 데이터 세트의 적어도 부분에 기초하여 에러 정정을 위한 코드워드를 생성하고, 채널을 통해 제1 버스트 길이보다 큰 제2 버스트 길이를 사용하여 제1 데이터 세트 및 코드워드를 포함하는 제2 데이터 세트를 송신하기 위한 특징부, 제어기, 회로, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비 일시적인 컴퓨터 판독 가능 매체)를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트의 적어도 부분 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하고, 제2 데이터 세트는 제2 코드워드를 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통해 전달되는 데이터의 송신과 연관된 버스트 길이를 나타내는 메시지를 메모리 디바이스에 송신하고, 메시지는 제2 버스트 길이를 나타내고, 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통해 전달된 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함함을 나타내는 메시지를 메모리 디바이스에 송신하고, 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비 일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스에 송신하고, 제2 데이터 세트를 송신하는 것은 기입 커맨드를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트를 부분 세트로 분할하고, 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성하고, 제2 데이터 세트는 코드워드 세트를 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드 세트의 단일 코드워드는 부분 세트의 각 부분에 대해 생성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통해 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신하고, 채널을 통해 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제2 코드워드를 식별하고, 제2 코드워드를 식별한 것에 기초하여 제3 데이터 세트에 포함된 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통해 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신한 것에 기초하여 제3 데이터 세트에서 제3 코드워드를 식별하고, 제3 코드워드를 식별한 것에 기초하여 제4 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 코드워드를 식별한 것에 기초하여 제4 데이터 세트가 제1 데이터 세트에 대응한다고 결정하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제4 데이터 세트가 에러를 포함한다고 결정하는 것에 기초하여 제4 데이터 세트에서 에러를 정정하고, 에러를 정정한 것에 기초하여 제4 데이터 세트로부터 제1 데이터 세트를 생성하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제3 데이터 세트에서 코드워드 세트를 식별하고, 세트의 각 코드워드는 제4 데이터 세트의 적어도 부분과 연관되고, 여기서 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 식별하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스에 판독 커맨드를 송신하고, 제3 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 채널을 통해 제2 데이터 세트를 송신하는 것은 채널을 통해 단일 데이터 버스트로서 제2 데이터 세트를 송신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 포함할 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 데이터 세트는 액세스 커맨드와 연관된 단일 버스트 데이터를 포함한다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트 및 코드워드에 기초하여 제2 데이터 세트를 생성하고, 제2 데이터 세트를 송신하는 것은 제2 데이터 세트를 생성하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함한다고 결정하고, 코드워드를 생성하는 것은 채널을 통한 송신이 하나 이상의 코드워드를 포함한다고 결정하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
도 12는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 방법(1200)을 예시하는 흐름도를 도시한다. 방법(1200)의 동작은 본 명세서에 설명된 메모리 디바이스 또는 그 구성 요소에 의해 구현될 수 있다. 예를 들어, 방법(1200)의 동작은 도 10을 참조하여 설명된 메모리 디바이스 관리자에 의해 수행될 수 있다. 일부 예에서, 메모리 디바이스는 아래에서 설명된 기능을 수행하기 위해 메모리 디바이스의 기능적 요소를 제어하기 위해 명령어 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 메모리 디바이스는 특수 목적 하드웨어를 사용하여 아래에 설명된 기능의 양태를 수행할 수 있다.
1205에서, 메모리 디바이스는 폭을 가진 채널을 통해 제1 데이터 세트를 수신할 수 있으며, 제1 데이터 세트는 제1 버스트 길이에 대응한다. 1205의 동작은 도 3 및 도 4에 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1205의 동작의 양태는 도 10을 참조하여 설명된 데이터 수신기에 의해 수행될 수 있다.
1210에서, 메모리 디바이스는 제1 데이터 세트에 포함된 제2 데이터 세트에서 에러 정정을 위한 코드워드를 제1 데이터 세트에서 식별할 수 있으며, 제2 데이터 세트는 채널을 통한 제2 버스트 길이에 대응한다. 1210의 동작은 도 3 및 도 4에서 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1210의 동작의 양태는 도 10을 참조하여 설명된 코드워드 식별자에 의해 수행될 수 있다.
1215에서, 메모리 디바이스는 코드워드를 식별하는 것에 적어도 부분적으로 기초하여 메모리 디바이스의 제1 부분에 제2 데이터 세트를 저장할 수 있다. 1215의 동작은 도 3 및 도 4에 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1215의 동작의 양태는 도 10을 참조하여 설명된 데이터 저장 구성 요소에 의해 수행될 수 있다.
1220에서, 메모리 디바이스는 제1 부분과 다른 메모리 디바이스의 제2 부분에 코드워드를 저장할 수 있다. 1220의 동작은 도 3 및 도 4에 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1220의 동작의 양태는 도 10을 참조하여 설명된 코드워드 저장 구성 요소에 의해 수행될 수 있다.
일부 예에서, 방법은 폭을 가진 채널을 통해 제1 버스트 길이를 사용하여 제1 데이터 세트를 수신하는 단계, 제1 데이터 세트에 포함된 제2 데이터 세트에서 에러 정정을 위한 코드워드를 제1 데이터 세트에서 식별하는 단계로서, 제2 데이터 세트는 채널을 통한 제2 버스트 길이에 대응하는, 상기 코드워드를 식별하는 단계, 메모리 디바이스의 제1 부분에 제2 데이터 세트를 저장하는 단계, 및 코드워드를 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제2 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제1 데이터 세트에서 식별하는 단계, 및 제2 코드워드를 메모리 디바이스에 저장하는 단계를 더 포함할 수 있다. 일부 예에서, 방법은 제1 부분 또는 제2 부분과 상이한 메모리 디바이스의 제3 부분에 제2 코드워드를 저장하는 단계를 더 포함할 수 있다.
일부 예에서, 방법은 제1 데이터 세트 및 코드워드에 기초하여 에러 정정을 위한 제2 코드워드를 생성하는 단계, 및 메모리 디바이스에 제2 코드워드를 저장하는 단계를 더 포함할 수 있다. 일부 예에서, 방법은 채널을 통한 데이터의 송신과 연관된 버스트 길이를 나타내는 메시지를 호스트 디바이스로부터 수신하는 단계를 더 포함할 수 있으며, 여기서 메시지는 제1 버스트 길이를 나타내고, 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 메시지에 표시된 버스트 길이에 기초하여 채널과 결합된 메모리 디바이스의 수신기를 구성하는 단계를 더 포함할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 수신기를 구성하는 것에 기초할 수 있다. 일부 예에서, 방법은 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함함을 나타내는 메시지를 호스트 디바이스로부터 수신하는 단계를 더 포함할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 메시지를 수신한 것에 적어도 부분적으로 기초하여 제1 버스트 길이를 결정하는 단계를 더 포함할 수 있으며, 여기서 코드워드를 식별하는 것은 제1 버스트 길이를 결정하는 것에 기초할 수 있다. 일부 예에서, 방법은 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신하는 단계를 더 포함할 수 있으며, 여기서 제1 데이터 세트를 수신하는 것은 기입 커맨드를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 제1 데이터 세트에서 코드워드 세트를 식별하는 단계를 더 포함할 수 있으며, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되며, 여기서 메모리 디바이스의 제2 부분에 코드워드를 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 단계를 더 포함한다. 일부 예에서, 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
일부 예에서, 방법은 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색하는 단계, 메모리 디바이스의 제2 부분으로부터 코드워드를 검색하는 단계, 및 채널을 통해 제1 버스트 길이를 사용하여, 제2 데이터 세트 및 코드워드를 포함하는 제3 데이터 세트를 송신하는 단계를 더 포함할 수 있다. 일부 예에서, 방법은 메모리 디바이스로부터 제2 코드워드를 검색하는 단계를 더 포함할 수 있으며, 여기서 제3 데이터 세트는 제2 코드워드를 포함한다.
일부 예에서, 방법은 메모리 디바이스로부터 제2 코드워드를 검색하는 단계로서, 제2 데이터 세트 또는 코드워드에서 에러 정정을 위한 제2 코드워드를 검색하는 단계, 및 제2 데이터 세트 또는 코드워드가 에러를 포함하는지 여부를 결정하는 단계를 더 포함할 수 있고, 여기서 제3 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정하는 것에 기초할 수 있다.
일부 예에서, 방법은 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트 또는 코드워드에서 에러를 정정하는 단계를 더 포함할 수 있고, 여기서 제3 데이터 세트를 송신하는 것은 에러를 정정하는 것에 기초할 수 있다.
일부 예에서, 방법은 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색하는 단계, 및 메모리 디바이스로부터 코드워드 세트를 검색하는 단계를 더 포함할 수 있으며, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제3 데이터 세트는 제2 데이터 세트의 부분 세트 및 코드워드 세트를 포함한다. 일부 예에서, 방법은 호스트 디바이스로부터 판독 커맨드를 수신하는 단계를 더 포함할 수 있으며, 여기서 제2 데이터 세트를 검색하고 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 제2 데이터 세트를 검색하고 코드워드를 검색한 것에 기초하여 제3 데이터 세트를 생성하는 단계를 더 포함할 수 있으며, 여기서 제3 데이터 세트를 송신하는 것은 제3 데이터 세트를 생성하는 것에 기초할 수 있다. 일부 예에서, 채널을 통해 제1 데이터 세트를 수신하는 것은 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신하는 것을 포함할 수 있다. 일부 예에서, 제2 데이터 세트는 액세스 커맨드와 연관된 단일 버스트 데이터를 포함한다. 일부 예에서, 제2 버스트 길이는 제1 버스트 길이보다 작을 수 있다. 일부 예에서, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관될 수 있다.
일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 예에서, 제2 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장될 때 제2 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
일부 예에서, 본 명세서에 설명된 장치 또는 장치들은 방법(1200)과 같은 방법 또는 방법들을 수행할 수 있다. 장치는 폭을 가진 채널을 통해 제1 버스트 길이를 사용하여 제1 데이터 세트를 수신하고, 제1 데이터 세트에 포함된 제2 데이터 세트에서 에러 정정을 위한 코드워드를 제1 데이터 세트에서 식별하고, 제2 데이터 세트는 채널을 통한 제2 버스트 길이에 대응하고, 메모리 디바이스의 제1 부분에 제2 데이터 세트를 저장하고, 코드워드를 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장하기 위한 특징부, 제어기, 회로, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비-일시적인 컴퓨터 판독 가능 매체)를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제1 데이터 세트에서 식별하고, 제2 코드워드를 메모리 디바이스에 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 코드워드를 저장하는 것은 제1 부분 또는 제2 부분과 다른 메모리 디바이스의 제3 부분에 제2 코드워드를 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 커맨드를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트 및 코드워드에 기초하여 에러 정정을 위한 제2 코드워드를 생성하고, 메모리 디바이스에 제2 코드워드를 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통한 데이터 송신과 연관된 버스트 길이를 나타내는 메시지를 호스트 디바이스로부터 수신하고, 메시지는 제1 버스트 길이를 나타내고, 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메시지에 표시된 버스트 길이에 기초하여 채널과 결합된 메모리 디바이스의 수신기를 구성하고, 제1 데이터 세트를 수신하는 것은 수신기를 구성하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 채널을 통한 송신이 에러 정정을 위한 하나 이상의 코드워드를 포함한다는 것을 나타내는 메시지를 호스트 디바이스로부터 수신하고, 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메시지를 수신하는 것에 적어도 부분적으로 기초하여 제1 버스트 길이를 결정하고, 여기서 코드워드를 식별하는 것은 제1 버스트 길이를 결정하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치, 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신하고, 제1 데이터 세트를 수신하는 것은 기입 커맨드를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트에서 코드워드 세트를 식별하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 메모리 디바이스의 제2 부분에 코드워드를 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 것을 더 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색하고, 메모리 디바이스의 제2 부분으로부터 코드워드를 검색하고, 채널을 통해 제1 버스트 길이를 사용하여 제2 데이터 세트 및 코드워드를 포함하는 제3 데이터 세트를 송신하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스로부터 제2 코드워드를 검색하고, 제3 데이터 세트는 제2 코드워드를 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스로부터 제2 코드워드로서, 제2 데이터 세트 또는 코드워드에서 에러 정정을 위한 제2 코드워드를 검색하고, 제2 데이터 세트 또는 코드워드가 에러를 포함하는지 여부를 결정하고, 여기서 제3 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트 또는 코드워드가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트 또는 코드워드에서 에러를 정정하고, 제3 데이터 세트를 송신하는 것은 에러를 정정하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색하고, 메모리 디바이스로부터 코드워드 세트를 검색하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제3 데이터 세트는 제2 데이터 세트의 부분 세트 및 코드워드 세트를 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 호스트 디바이스로부터 판독 커맨드를 수신하고, 제2 데이터 세트를 검색하고 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트를 검색하고 코드워드를 검색한 것에 기초하여 제3 데이터 세트를 생성하고, 제3 데이터 세트를 송신하는 것은 제3 데이터 세트를 생성하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 채널을 통해 제1 데이터 세트를 수신하는 것은 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 포함할 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 데이터 세트는 액세스 커맨드와 연관된 단일 버스트 데이터를 포함한다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 버스트 길이는 제1 버스트 길이보다 작을 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 버스트 길이는 채널의 폭 및 제1 데이터 세트의 크기와 연관될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장될 때 제2 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
도 13은 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 방법(1300)을 예시하는 흐름도를 도시한다. 방법(1300)의 동작은 본 명세서에 설명된 호스트 디바이스 또는 그 구성 요소에 의해 구현될 수 있다. 예를 들어, 방법(1300)의 동작은 도 9를 참조하여 설명된 호스트 디바이스 관리자에 의해 수행될 수 있다. 일부 예에서, 호스트 디바이스는 아래에서 설명되는 기능을 수행하기 위해 호스트 디바이스의 기능적 요소를 제어하기 위해 명령어 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 호스트 디바이스는 특수 목적 하드웨어를 사용하여 아래에 설명된 기능의 양태를 수행할 수 있다.
1305에서, 호스트 디바이스는, 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트의 적어도 부분에 기초하여, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 생성할 수 있다. 1305의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1305의 동작의 양태는 도 9를 참조하여 설명된 코드워드 생성기에 의해 수행될 수 있다.
1310에서, 호스트 디바이스는 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 제1 데이터 세트를 송신할 수 있다. 1310의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1310의 동작의 양태는 도 9를 참조하여 설명된 데이터 송신기에 의해 수행될 수 있다.
1315에서, 호스트 디바이스는 제2 채널을 통해 제1 데이터 세트와 연관된 코드워드를 송신할 수 있다. 1315의 동작은 도 5 및 도 6에서 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1315의 동작의 양태는 도 9를 참조하여 설명된 코드워드 송신기에 의해 수행될 수 있다.
일부 예에서, 방법은 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 식별하는 단계, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제1 데이터 세트의 적어도 부분에 기초하여 생성하는 단계, 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 제1 데이터 세트를 송신하는 단계, 및 제1 데이터 세트와 연관된 코드워드를 제2 채널을 통해 송신하는 단계를 포함할 수 있다.
일부 예에서, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것일 수 있다. 일부 예에서, 제2 채널은 ECC 채널을 포함한다. 일부 예에서, 코드워드는 제1 채널을 통해 제1 데이터 세트를 송신하는 것과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
일부 예에서, 방법은 제1 데이터 세트의 적어도 부분 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하는 단계, 및 제2 채널을 통해 제2 코드워드를 송신하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신하는 것을 포함할 수 있으며, 여기서 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있다.
일부 예에서, 방법은 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스로 송신하는 단계를 포함할 수 있으며, 여기서 제1 데이터 세트를 송신하고 코드워드를 송신하는 것은 기입 커맨드를 송신하는 것에 기초할 수 있다. 일부 예에서, 기입 커맨드는 액세스 동작과 연관된 커맨드 또는 어드레스를 전달하기 위해 제3 채널을 통해 송신될 수 있다.
일부 예에서, 방법은 제1 데이터 세트를 부분 세트로 분할하는 단계로서, 여기서 제1 채널을 통해 제1 데이터 세트를 송신하는 것은 제1 채널을 통해 부분 세트를 송신하는 것을 포함하는, 상기 분할하는 단계, 및 상기 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성하는 단계로서, 여기서 제2 채널을 통해 코드워드를 송신하는 것은 제2 채널을 통해 코드워드 세트를 송신하는 것을 포함하는, 상기 생성하는 단계를 포함할 수 있다. 일부 예에서, 코드워드 세트의 단일 코드워드는 부분 세트의 각 부분에 대해 생성될 수 있다. 일부 예에서, 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
일부 예에서, 방법은 제1 채널을 통해 제2 데이터 세트를 수신하는 단계, 제2 채널을 통해 제2 코드워드를 수신하는 단계, 및 제2 코드워드에 기초하여 제2 데이터 세트가 에러를 포함하는지 여부를 결정하는 단계를 포함할 수 있다. 일부 예에서, 방법은 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 제2 채널을 통해 수신하는 단계, 및 제3 코드워드를 수신한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제2 코드워드를 수신한 것에 기초하여 제2 데이터 세트가 제1 데이터 세트일 수 있다고 결정하는 단계를 포함할 수 있다. 일부 예에서, 방법은 제2 데이터 세트가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트에서 에러를 정정하는 단계, 및 에러를 정정한 것에 기초하여 제2 데이터 세트로부터 제1 데이터 세트를 생성하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제2 채널을 통해 코드워드 세트를 수신하는 단계를 포함할 수 있으며, 세트의 각 코드워드는 제1 채널을 통해 수신된 제2 데이터 세트의 적어도 부분과 연관되며, 여기서 제2 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 수신하는 것에 기초할 수 있다. 일부 예에서, 방법은 판독 커맨드를 메모리 디바이스에 송신하는 단계를 포함할 수 있으며, 여기서 제2 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초할 수 있다.
일부 예에서, 제1 데이터 세트는 액세스 동작과 연관된 단일 버스트 데이터를 포함한다. 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다.
일부 예에서, 본 명세서에 설명된 장치 또는 장치들은 방법(1300)과 같은 방법 또는 방법들을 수행할 수 있다. 장치는 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 식별하고, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제1 데이터 세트의 적어도 부분에 기초하여 생성하고, 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 제1 데이터 세트를 송신하고, 제1 데이터 세트와 연관된 코드워드를 제2 채널을 통해 송신하기 위한 특징부, 제어기, 회로, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비-일시적인 컴퓨터 판독 가능 매체)를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것일 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 채널은 ECC 채널을 포함한다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 제1 채널을 통해 제1 데이터 세트를 송신하는 것과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트의 적어도 부분 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하고, 제2 채널을 통해 제2 코드워드를 송신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 가질 수 있음을 나타내는 메시지를 메모리 디바이스에 송신하고, 코드워드를 생성하는 것은 메시지를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트와 연관된 기입 커맨드를 메모리 디바이스로 송신하고, 여기서 제1 데이터 세트를 송신하고 코드워드를 송신하는 것은 기입 커맨드를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 기입 커맨드는 액세스 동작과 연관된 커맨드 또는 어드레스를 전달하기 위한 제3 채널을 통해 송신될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트를 부분 세트로 분할하고, 여기서 제1 채널을 통해 제1 데이터 세트를 송신하는 것은 제1 채널을 통해 부분 세트를 송신하고, 부분 세트에 기초하여 에러 정정을 위한 코드워드 세트를 생성하는 것을 포함하고, 여기서 제2 채널을 통해 코드워드를 송신하는 것은 제2 채널을 통해 코드워드 세트를 송신하는 것을 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드 세트의 단일 코드워드는 부분 세트의 각 부분에 대해 생성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 제1 데이터 세트 모두와 연관될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 채널을 통해 제2 데이터 세트를 수신하고, 제2 채널을 통해 제2 코드워드를 수신하고, 제2 코드워드에 기초하여 제2 데이터 세트가 에러를 포함하는지 여부를 결정하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 제2 채널을 통해 수신하고, 제3 코드워드를 수신한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드가 제2 에러를 포함하는지 여부를 결정하기 위한, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 코드워드를 수신한 것에 기초하여 제2 데이터 세트가 제1 데이터 세트일 수 있다고 결정하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트에서 에러를 정정하고, 에러를 정정한 것에 기초하여 제2 데이터 세트로부터 제1 데이터 세트를 생성하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 채널을 통해 코드워드 세트를 수신하고, 세트의 각 코드워드는 제1 채널을 통해 수신된 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제2 데이터 세트가 에러를 포함하는지 여부를 결정하는 것은 코드워드 세트를 수신한 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스에 판독 커맨드를 송신하고, 제2 데이터 세트를 수신하는 것은 판독 커맨드를 송신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 데이터 세트는 액세스 동작과 연관된 단일 버스트 데이터를 포함한다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다.
도 14는 본 명세서에 개시된 에러 정정 방법 및 디바이스를 지원하는 방법(1400)을 예시하는 흐름도를 도시한다. 방법(1400)의 동작은 본 명세서에 설명된 메모리 디바이스 또는 그 구성 요소에 의해 구현될 수 있다. 예를 들어, 방법(1400)의 동작은 도 10을 참조하여 설명된 메모리 디바이스 관리자에 의해 수행될 수 있다. 일부 예에서, 메모리 디바이스는 후술되는 기능을 수행하기 위해 메모리 디바이스의 기능적 요소를 제어하기 위해 명령어 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 메모리 디바이스는 특수 목적 하드웨어를 사용하여 아래에 설명된 기능의 양태를 수행할 수 있다.
1405에서, 메모리 디바이스는 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 수신할 수 있다. 1405의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1405의 동작의 양태는 도 10을 참조하여 설명된 데이터 수신기에 의해 수행될 수 있다.
1410에서, 메모리 디바이스는 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제2 채널을 통해 수신할 수 있다. 1410의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1410의 동작의 양태는 도 10을 참조하여 설명된 코드워드 수신기에 의해 수행될 수 있다.
1415에서, 메모리 디바이스는 메모리 디바이스의 제1 부분에 제1 데이터 세트를 저장할 수 있다. 1415의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1415의 동작의 양태는 도 10을 참조하여 설명된 데이터 저장 구성 요소에 의해 수행될 수 있다.
1420에서, 메모리 디바이스는 제1 부분과 메모리 디바이스의 다른 제2 부분에 코드워드를 저장할 수 있다. 1420의 동작은 도 5 및 도 6을 참조하여 설명된 방법에 따라 수행될 수 있다. 일부 예에서, 1420의 동작의 양태는 도 10을 참조하여 설명된 코드워드 저장 구성 요소에 의해 수행될 수 있다.
일부 예에서, 방법은 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 수신하는 단계, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제2 채널을 통해 수신하는 단계, 메모리 디바이스의 제1 부분에 제1 데이터 세트를 저장하는 단계, 및 코드워드를 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장하는 단계를 포함할 수 있다.
일부 예에서, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것일 수 있다. 일부 예에서, 제2 채널은 링크 ECC 채널을 포함한다. 일부 예에서, 코드워드는 제1 채널을 통해 제1 데이터 세트를 수신하는 것과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
일부 예에서, 방법은 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제2 채널을 통해 수신하는 단계, 및 제2 코드워드를 메모리 디바이스에 저장하는 단계를 포함할 수 있다. 일부 예에서, 방법은 제1 부분 또는 제2 부분과 상이한 메모리 디바이스의 제3 부분에 제2 코드워드를 저장하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제1 데이터 세트 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하는 단계, 및 제2 코드워드를 메모리 디바이스에 저장하는 단계를 포함할 수 있다. 일부 예에서, 방법은 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 가질 수 있음을 나타내는 메시지를 호스트 디바이스로부터 수신하는 단계를 포함할 수 있고, 여기서 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 메시지를 수신하는 것에 기초하여 메모리 디바이스의 수신기를 구성하는 단계를 포함할 수 있으며, 여기서 제1 데이터 세트를 수신하거나 코드워드를 수신하는 것은 수신기를 구성하는 것에 기초할 수 있다. 일부 예에서, 방법은 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신하는 단계를 포함할 수 있으며, 여기서 제1 데이터 세트를 수신하거나 코드워드를 수신하거나 이 둘 모두를 수행하는 것은 기입 커맨드를 수신하는 것에 기초할 수 있다.
일부 예에서, 방법은 제1 데이터 세트에서 코드워드 세트를 식별하는 단계를 포함할 수 있으며, 세트의 각 코드워드는 제1 데이터 세트의 적어도 부분과 연관되며, 여기서 코드워드를 메모리 디바이스의 제2 부분에 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 것을 더 포함한다.
일부 예에서, 코드워드는 모든 제1 데이터 세트와 연관될 수 있다. 일부 예에서, 방법은 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색하는 단계, 메모리 디바이스의 제2 부분으로부터 제2 데이터 세트에서 에러 정정을 위한 제2 코드워드를 검색하는 단계, 제1 채널을 통해 제2 데이터 세트를 호스트 디바이스로 송신하는 단계, 및 제2 채널을 통해 제2 코드워드를 호스트 디바이스로 송신하는 단계를 포함할 수 있다. 일부 예에서, 방법은 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 메모리 디바이스로부터 검색하는 단계, 및 제2 채널을 통해 제3 코드워드를 호스트 디바이스로 송신하는 단계를 포함할 수 있다.
일부 예에서, 방법은 제2 데이터 세트에서, 또는 제2 코드워드에서 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 메모리 디바이스로부터 검색하는 단계, 및 제2 데이터 세트 또는 제2 코드워드가 에러를 포함하는지 여부를 결정하는 단계를 포함할 수 있고, 여기서 제2 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정하는 것에 기초할 수 있다.
일부 예에서, 방법은 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드에서 에러를 정정하는 단계를 포함할 수 있고, 여기서 제2 데이터 세트를 송신하는 것은 에러를 정정한 것에 기초할 수 있다. 일부 예에서, 방법은 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색하는 단계를 포함할 수 있고, 여기서 제2 데이터 세트를 송신하는 단계는 제1 채널을 통해 부분 세트를 송신하는 단계, 및 메모리 디바이스로부터 코드워드 세트를 검색하는 단계를 더 포함하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제2 코드워드를 송신하는 단계는 제2 채널을 통해 코드워드 세트를 송신하는 단계를 더 포함한다.
일부 예에서, 방법은 호스트 디바이스로부터 판독 커맨드를 수신하는 단계를 포함할 수 있으며, 여기서 제2 데이터 세트를 검색하고 제2 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초할 수 있다. 일부 예에서, 제1 채널을 통해 제1 데이터 세트를 수신하는 것은 제1 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신하는 것을 포함할 수 있다. 일부 예에서, 제2 채널을 통해 코드워드를 수신하는 것은 제2 채널을 통해 단일 데이터 버스트로서 코드워드를 수신하는 것을 포함할 수 있다.
일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다.
일부 예에서, 본 명세서에 설명된 장치 또는 장치들은 방법(1400)과 같은 방법 또는 방법들을 수행할 수 있다. 장치는 메모리 디바이스의 액세스 동작과 연관된 데이터를 전달하기 위한 제1 채널을 통해 메모리 디바이스의 액세스 동작과 연관된 제1 데이터 세트를 수신하고, 메모리 디바이스에 저장될 때 제1 데이터 세트의 손상과 연관된 에러를 검출하거나 정정하기 위한 코드워드를 제2 채널을 통해 수신하고, 제1 데이터 세트를 메모리 디바이스의 제1 부분에 저장하고, 코드워드를 제1 부분과 다른 메모리 디바이스의 제2 부분에 저장하기 위한 특징, 제어기, 회로, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비-일시적인 컴퓨터 판독 가능 매체)를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 채널은 메모리 디바이스의 액세스 동작과 연관된 에러 정정 정보를 전달하기 위한 것일 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 채널은 링크 ECC 채널을 포함한다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 제1 채널을 통해 제1 데이터 세트를 수신하는 것과 연관된 에러를 검출하거나 정정하도록 구성될 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 제2 채널을 통해 수신하고, 제2 코드워드를 메모리 디바이스에 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 코드워드를 저장하는 것은 제1 부분 또는 제2 부분과 상이한 메모리 디바이스의 제3 부분에 제2 코드워드를 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트 및 코드워드에 기초하여 제1 데이터 세트에서, 또는 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하고, 제2 코드워드를 메모리 디바이스에 저장하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 채널을 통해 전달된 송신이 제2 채널을 통해 전달된 에러 정정을 위한 하나 이상의 코드워드를 가질 수 있음을 나타내는 메시지를 호스트 디바이스로부터 수신하고, 여기서 제1 데이터 세트를 수신하는 것은 메시지를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메시지를 수신한 것에 기초하여 메모리 디바이스의 수신기를 구성하고, 여기서 제1 데이터 세트를 수신하거나 코드워드를 수신하는 것은 수신기를 구성하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 호스트 디바이스로부터 제1 데이터 세트와 연관된 기입 커맨드를 수신하고, 여기서, 제1 데이터 세트를 수신하거나, 코드워드를 수신하거나, 또는 이 둘 모두를 수행하는 것은 기입 커맨드를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제1 데이터 세트에서 코드워드 세트를 식별하고, 세트의 각 코드워드는 제1 데이터 세트의 적어도 부분과 연관되고, 여기서 메모리 디바이스의 제2 부분에 코드워드를 저장하는 것은 메모리 디바이스의 제2 부분에 코드워드 세트를 저장하는 것을 더 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 모든 제1 데이터 세트와 연관될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는, 메모리 디바이스의 제1 부분으로부터 제2 데이터 세트를 검색하고, 메모리 디바이스의 제2 부분으로부터 제2 데이터 세트에서 에러 정정을 위한 제2 코드워드를 검색하고, 제1 채널을 통해 제2 데이터 세트를 호스트 디바이스로 송신하고, 제2 채널을 통해 제2 코드워드를 호스트 디바이스로 송신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 메모리 디바이스로부터 검색하고, 제2 채널을 통해 제3 코드워드를 호스트 디바이스로 송신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트에서, 또는 제2 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제3 코드워드를 메모리 디바이스로부터 검색하고, 제2 데이터 세트 또는 제2 코드워드가 에러를 포함하는지 여부를 결정하고, 여기서 제2 데이터 세트를 송신하는 것은 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정하는 것에 기초할 수 있는 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 제2 데이터 세트 또는 제2 코드워드가 에러를 포함한다고 결정한 것에 기초하여 제2 데이터 세트 또는 제2 코드워드에서 에러를 정정하고, 여기서 제2 데이터 세트를 송신하는 것은 에러를 정정하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 메모리 디바이스로부터 제2 데이터 세트의 부분 세트를 검색하고, 여기서 제2 데이터 세트를 송신하는 것은 제1 채널을 통해 부분 세트를 송신하는 것, 및 메모리 디바이스로부터 코드워드 세트를 검색하는 것을 더 포함하고, 세트의 각 코드워드는 제2 데이터 세트의 적어도 부분과 연관되고, 여기서 제2 코드워드를 송신하는 것은 제2 채널을 통해 코드워드 세트를 송신하는 것을 더 포함하는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예는 호스트 디바이스로부터 판독 커맨드를 수신하고, 여기서 제2 데이터 세트를 검색하고 제2 코드워드를 검색하는 것은 판독 커맨드를 수신하는 것에 기초할 수 있는, 동작, 특징, 제어기, 회로, 수단 또는 명령어를 더 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 채널을 통해 제1 데이터 세트를 수신하는 것은 제1 채널을 통해 단일 데이터 버스트로서 제1 데이터 세트를 수신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제2 채널을 통해 코드워드를 수신하는 것은 제2 채널을 통해 단일 데이터 버스트로서 코드워드를 수신하기 위한 동작, 특징, 제어기, 회로, 수단 또는 명령어를 포함할 수 있다.
본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 SEC ECC 또는 SECDED ECC를 포함한다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 제1 데이터 세트는 기입 동작의 일부로서 메모리 디바이스에 저장되도록 구성될 수 있다. 본 명세서에 설명된 방법, 장치 및 비-일시적인 컴퓨터 판독 가능 매체의 일부 예에서, 코드워드는 메모리 디바이스에 저장되도록 구성될 수 있다.
본 명세서에 설명된 방법은 가능한 구현을 설명하고, 동작 및 단계가 재배열되거나 그렇지 않으면 수정될 수 있고, 다른 구현도 가능하다는 것을 주목해야 한다. 또한, 2개 이상의 방법의 양태들이 결합될 수 있다.
일부 예에서, 장치 또는 디바이스는 범용 또는 특수 목적 하드웨어를 사용하여 본 명세서에 설명된 기능의 양태를 수행할 수 있다. 장치 또는 디바이스는 호스트 디바이스, 이 호스트 디바이스와 연관된 데이터 및 에러 검출 또는 정정을 위한 하나 이상의 코드워드를 저장하기 위한 메모리 셀의 어레이를 포함하는 메모리 디바이스, 및 호스트 디바이스와 메모리 디바이스 사이에서 데이터 및 하나 이상의 코드워드를 전달하기 위한 하나 이상의 채널을 포함할 수 있다.
일부 예에서, 하나 이상의 코드워드 및 데이터는 하나 이상의 채널 중 제1 채널을 통해 전달될 수 있다. 일부 예에서, 하나 이상의 코드워드 및 데이터는 제1 버스트 길이를 갖는 단일 버스트에서 제1 채널을 통해 송신될 수 있다. 일부 예에서, 단일 버스트의 제1 버스트 길이는 데이터에 대응하는 제2 버스트 길이보다 클 수 있다.
일부 예에서, 데이터는 하나 이상의 채널 중 제1 채널을 통해 전달될 수 있고, 하나 이상의 코드워드는 제1 채널과 상이한 하나 이상의 채널 중 제2 채널을 통해 전달될 수 있다. 일부 예에서, 제2 채널은 링크 ECC 채널일 수 있다.
일부 예에서, 데이터는 제2 채널을 통해 하나 이상의 코드워드를 전달하는 데 사용된 것과 동일한 버스트 간격 동안 제1 채널을 통해 전달될 수 있다. 일부 예에서, 장치 또는 디바이스는, 데이터 및 하나 이상의 코드워드를 수신하도록 구성되고 하나 이상의 코드워드를 메모리 셀의 어레이로 송신하도록 구성된 수신 구성 요소를 포함할 수 있다.
일부 예에서, 장치 또는 디바이스는 수신 구성 요소와 메모리 셀의 어레이 사이에서 하나 이상의 코드워드를 전달하기 위한 전도성 라인을 포함할 수 있고, 여기서 하나 이상의 코드워드는 메모리 셀의 어레이에 저장될 수 있다. 일부 예에서, 메모리 디바이스의 수신 구성 요소는 하나 이상의 채널과 결합된 역직렬화기를 포함한다.
일부 예에서, 장치 또는 디바이스는 하나 이상의 코드워드를 수신한 것에 기초하여 에러를 검출하거나 정정하기 위한 구성 요소를 포함할 수 있다. 일부 예에서, 장치 또는 디바이스는 데이터 버스 반전 데이터를 디코딩하기 위한 구성 요소를 포함할 수 있다. 일부 예에서, 장치 또는 디바이스는 메모리 셀의 어레이에 저장된 데이터 및 하나 이상의 코드워드를 호스트 디바이스로 송신하도록 구성된 송신 구성 요소를 포함할 수 있다.
일부 예에서, 장치 또는 디바이스는 송신 구성 요소와 메모리 셀의 어레이 사이에서 하나 이상의 코드워드를 전달하기 위한 전도성 라인을 포함할 수 있고, 여기서 하나 이상의 코드워드는 메모리 셀의 어레이로부터 검색될 수 있다. 일부 예에서, 메모리 디바이스의 송신 구성 요소는 하나 이상의 채널과 결합된 직렬화기를 포함한다. 일부 예에서, 장치 또는 디바이스는 데이터 버스 반전 데이터를 인코딩하기 위한 구성 요소를 포함할 수 있다.
일부 예에서, 장치 또는 디바이스는 범용 또는 특수 목적 하드웨어를 사용하여 본 명세서에 설명된 기능의 양태를 수행할 수 있다. 장치 또는 디바이스는 데이터 및 이 데이터와 연관된 에러를 검출하거나 정정하기 위한 하나 이상의 코드워드를 저장하기 위한 메모리 셀의 어레이, 이 데이터 및 하나 이상의 코드워드를 수신하도록 구성되고 하나 이상의 코드워드를 메모리 셀의 어레이로 송신하도록 구성된 수신 구성 요소, 및 수신 구성 요소와 메모리 셀의 어레이 사이에서 하나 이상의 코드워드를 전달하기 위한 전도성 라인을 포함할 수 있다.
일부 예에서, 수신 구성 요소는 하나 이상의 채널과 결합된 역직렬화기를 포함한다. 일부 예에서, 장치 또는 디바이스는 하나 이상의 코드워드를 수신한 것에 기초하여 에러를 검출하거나 정정하기 위한 구성 요소를 포함할 수 있다. 일부 예에서, 장치 또는 디바이스는 데이터 버스 반전 데이터를 디코딩하기 위한 구성 요소를 포함할 수 있다.
일부 예에서, 장치 또는 디바이스는 데이터 버스 반전 데이터를 인코딩하기 위한 구성 요소를 포함할 수 있다. 일부 예에서, 장치 또는 디바이스는 메모리 셀의 어레이에 저장된 데이터 및 하나 이상의 코드워드를 호스트 디바이스로 송신하도록 구성된 송신 구성 요소를 포함할 수 있다.
일부 예에서, 장치 또는 디바이스는 송신 구성 요소와 메모리 셀의 어레이 사이에서 하나 이상의 코드워드를 전달하기 위한 제2 전도성 라인을 포함할 수 있으며, 여기서 하나 이상의 코드워드는 메모리 셀의 어레이로부터 검색될 수 있다. 일부 예에서, 송신 구성 요소는 하나 이상의 채널과 결합된 직렬화기를 포함한다.
본 명세서에서 설명된 정보 및 신호는 다양한 상이한 기술 및 기법 중 임의의 것을 사용하여 표현될 수 있다. 예를 들어, 상기 설명에 걸쳐 언급될 수 있는 데이터, 명령어, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학장 또는 입자, 또는 이들의 임의의 조합으로 표현될 수 있다. 일부 도면은 신호를 단일 신호로서 도시할 수 있으나, 신호는 신호의 버스를 표현할 수 있고, 여기서 버스는 다양한 비트 폭을 가질 수 있다는 것을 이 기술 분야에 통상의 지식을 가진 자라면 이해할 수 있을 것이다.
"전자 통신", "전도성 접촉", "연결된", 및 "결합된"이라는 용어는 구성 요소들 간에 신호의 흐름을 지원하는 구성 요소들 사이의 관계를 지칭할 수 있다. 구성 요소들 사이의 신호의 흐름을 언제든지 지원할 수 있는 구성 요소들 사이에 임의의 전도성 경로가 존재하는 경우 구성 요소들은 서로 전자 통신하는 (또는 전도성 접촉하거나 연결되거나 결합된) 것으로 고려된다. 임의의 주어진 시간에, 서로 전자 통신하는 (또는 전도성 접촉하거나 연결되거나 결합된) 구성 요소들 사이의 전도성 경로는 연결된 구성 요소를 포함하는 디바이스의 동작에 기초한 개방된 회로 또는 폐쇄된 회로일 수 있다. 연결된 구성 요소들 사이의 전도성 경로는 구성 요소들 사이의 직접 전도성 경로일 수 있고, 또는 연결된 구성 요소들 사이의 전도성 경로는 스위치, 트랜지스터, 또는 다른 구성 요소와 같은 중간 구성 요소를 포함할 수 있는 간접 전도성 경로일 수 있다. 일부 경우에, 연결된 구성 요소들 사이의 신호의 흐름은 예를 들어, 스위치 또는 트랜지스터와 같은 하나 이상의 중간 구성 요소를 사용하여 잠시 동안 중단될 수 있다.
"결합"이라는 용어는 전도성 경로를 통해 구성 요소들 사이에 현재 신호를 전달할 수 없는 구성 요소들 간의 개방된 회로 관계로부터, 전도성 경로를 통해 구성 요소들 사이에 신호를 전달할 수 있는 구성 요소들 간의 폐쇄된 회로 관계로 이동한 상태를 지칭한다. 제어기와 같은 구성 요소가 다른 구성 요소들을 함께 결합시킬 때, 이 구성 요소는 이전에 신호가 흐르는 것을 허용하지 않은 전도성 경로를 통해 다른 구성 요소들 사이에 신호가 흐르는 것을 허용하는 변경을 개시한다.
"분리된"이라는 용어는 구성 요소들 사이에 현재 신호가 흐를 수 없는 구성 요소들 사이의 관계를 지칭한다. 구성 요소들 사이에 개방 회로가 존재하면 구성 요소들은 서로 분리되어 있다. 예를 들어, 구성 요소들 사이에 위치된 스위치에 의해 분리된 2개의 구성 요소는 스위치가 개방될 때 서로 분리된다. 제어기가 2개의 구성 요소를 분리할 때, 제어기는 이전에 신호 흐름이 허용된 전도성 경로를 사용하여 구성 요소들 사이에 신호가 흐르는 것을 방지하는 변경을 수행한다.
본 명세서에 사용된 "층"이라는 용어는 기하학적 구조의 층 또는 시트를 지칭하고, 각각의 층은 3차원(예를 들어, 높이, 폭 및 깊이)을 가질 수 있으며 표면의 적어도 일부를 덮을 수 있다. 예를 들어, 층은 2차원이 제3 차원보다 큰 3차원 구조, 예를 들어, 박막일 수 있다. 층은 다른 요소, 구성 요소 및/또는 재료를 포함할 수 있다. 일부 경우에, 하나의 층은 2개 이상의 하위 층으로 구성될 수 있다. 일부 첨부된 도면에서, 3차원 층의 2차원은 예시의 목적으로 묘사된다. 그러나, 이 기술 분야에 통상의 지식을 가진 자라면 층은 본질적으로 3차원이라는 것을 인식할 수 있을 것이다.
메모리 어레이를 포함하여 본 명세서에 논의된 디바이스는 실리콘, 게르마늄, 실리콘 게르마늄 합금, 갈륨 비소, 질화 갈륨, 등과 같은 반도체 기판에 형성될 수 있다. 일부 경우에, 기판은 반도체 웨이퍼이다. 다른 경우에, 기판은 실리콘 온 글래스(SOG) 또는 실리콘 온 사파이어(SOP)와 같은 실리콘 온 절연체(SOI) 기판, 또는 또 다른 기판 위의 반도체 재료의 에피택셜 층일 수 있다. 기판 또는 기판의 하위 영역의 전도율은 인, 붕소, 또는 비소를 포함하지만 이들로 제한되지 않는 다양한 화학 종을 사용하여 도핑을 통해 제어될 수 있다. 도핑은 기판의 초기 형성 또는 성장 동안, 이온 주입에 의해, 또는 임의의 다른 도핑 수단에 의해 수행될 수 있다.
본 명세서에서 논의된 스위칭 구성 요소 또는 트랜지스터는 전계 효과 트랜지스터(FET)를 표현하고, 소스, 드레인, 및 게이트를 포함하는 3 단자 디바이스를 포함할 수 있다. 단자는 전도성 재료, 예를 들어, 금속을 통해 다른 전자 요소에 연결될 수 있다. 소스 및 드레인은 전도성일 수 있으며, 고농도로 도핑된, 예를 들어, 축퇴된 반도체 영역을 포함할 수 있다. 소스 및 드레인은 저농도로 도핑된 반도체 영역 또는 채널에 의해 분리될 수 있다. 채널이 n형(즉, 다수 캐리어가 신호임)이면, FET는 n형 FET로서 언급될 수 있다. 채널이 p형(즉, 다수 캐리어가 정공임)이면, FET는 p형 FET로서 언급될 수 있다. 채널은 절연 게이트 산화물에 의해 캡핑(capping)될 수 있다. 채널의 전도율은 게이트에 전압을 인가함으로써 제어될 수 있다. 예를 들어, n형 FET 또는 p형 FET에 양의 전압 또는 음의 전압을 각각 인가하면 채널이 전도성이 될 수 있다. 트랜지스터의 임계 전압보다 크거나 같은 전압이 트랜지스터 게이트에 인가될 때 트랜지스터는 "온" 또는 "활성화"될 수 있다. 트랜지스터의 임계 전압 미만의 전압이 트랜지스터 게이트에 인가될 때 트랜지스터는 "오프" 또는 "비활성화"될 수 있다.
첨부된 도면과 관련하여 본 명세서에 제시된 설명은 예시적인 구성을 설명하며, 구현될 수 있거나 본 청구범위 내에 있는 모든 예를 표현하는 것은 아니다. 본 명세서에서 사용된 "예시적인"이라는 용어는 "일례, 사례, 또는 예시로 기능하는 것"을 의미하고, "선호하는 것" 또는 "또 다른 예에 비해 유리한 것"을 의미하는 것은 아니다. 상세한 설명은 설명된 기법을 이해하기 위한 특정 상세를 포함한다. 그러나, 이 기법은 이 특정 상세 없이 실시될 수 있다. 일부 사례에서, 잘 알려진 구조 및 디바이스는 설명된 예의 개념을 모호하게 하는 것을 회피하기 위해 블록도 형태로 도시된다.
첨부된 도면에서, 유사한 구성 요소 또는 특징은 동일한 참조 라벨을 가질 수 있다. 게다가, 동일한 유형의 다양한 구성 요소는 참조 라벨 후에 대시 그리고 유사한 구성 요소 사이를 구별하는 제2 라벨을 따르는 것에 의해 구별될 수 있다. 본 명세서에서 제1 참조 라벨만이 사용되면, 본 설명은 제2 참조 라벨에 관계 없이 동일한 제1 참조 라벨을 가지는 유사한 구성 요소 중 임의의 것에 적용 가능하다.
본 명세서에서 설명된 정보 및 신호는 다양한 상이한 기술 및 기법 중 임의의 것을 사용하여 표현될 수 있다. 예를 들어, 상기 설명에 걸쳐 언급될 수 있는 데이터, 명령어, 커맨드, 정보, 신호, 비트, 심볼, 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학장 또는 입자, 또는 이들의 임의의 조합으로 표현될 수 있다.
본 발명과 관련하여 본 명세서에 설명된 다양한 예시적인 블록 및 모듈은 범용 프로세서, DSP, ASIC, FPGA 또는 다른 프로그래밍 가능한 논리 디바이스, 이산 게이트 또는 트랜지스터 논리 회로, 이산 하드웨어 구성 요소, 또는 본 명세서에서 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계일 수 있다. 프로세서는 또한, 컴퓨팅 디바이스의 조합(예를 들어, DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서, DSP 코어와 결부된 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성)으로서 구현될 수 있다.
본 명세서에서 설명된 기능은 하드웨어, 프로세서에 의해 실행된 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 프로세서에 의해 실행된 소프트웨어로 구현되면, 기능은 컴퓨터 판독 가능한 매체 상의 하나 이상의 명령어 또는 코드에 저장되거나 하나 이상의 명령어 또는 코드로서 송신될 수 있다. 다른 예 및 구현은 본 발명 및 첨부된 청구범위 내에 있다. 예를 들어, 소프트웨어의 특성으로 인해, 상기 설명된 기능은 프로세서, 하드웨어, 펌웨어, 배선, 또는 이들 중 임의의 것의 조합으로 실행된 소프트웨어를 사용하여 구현될 수 있다. 기능을 구현하는 특징은 또한, 기능의 일부가 상이한 물리적 위치에서 구현되도록 분산되는 것을 포함하여 다양한 위치에 물리적으로 위치될 수 있다. 또한, 청구범위를 포함하여 본 명세서에서 사용된 바와 같이, 항목의 목록(예를 들어, "~ 중 적어도 하나" 또는 "~ 중 하나 이상"과 같은 어구가 앞에 있는 항목의 목록)에서 사용된 "또는"은 예를 들어, A, B, 또는 C 중 적어도 하나의 목록이 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C)를 의미하도록 포괄적 목록을 나타낸다. 또한, 본 명세서에 사용된 "~에 기초하여"라는 어구는 폐쇄된 조건 세트를 언급하는 것으로서 해석되어서는 안 된다. 예를 들어, "조건(A)에 기초하여"로 설명되는 예시적인 단계는 본 발명의 범위를 벗어남이 없이 조건(A) 및 조건(B)에 모두 기초할 수 있다. 즉, 본 명세서에서 사용된 "~에 기초하여"라는 어구는 "~에 적어도 부분적으로 기초하여"라는 어구와 동일한 방식으로 해석되어야 한다.
컴퓨터 판독 가능한 매체는 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 비-일시적인 컴퓨터 저장 매체를 모두 포함한다. 비-일시적인 저장 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 예로서, 비제한적으로, 비-일시적인 컴퓨터 판독 가능한 매체는 RAM, ROM, 전기 소거 가능한 프로그래밍 가능한 판독 전용 메모리(EEPROM), 콤팩트 디스크(CD) ROM 또는 다른 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 다른 자기 저장 디바이스, 또는 원하는 프로그램 코드 수단을 명령어 또는 데이터 구조의 형태로 운반하거나 저장하기 위해 사용될 수 있고, 범용 또는 특수 목적 컴퓨터, 또는 범용 또는 특수 목적 프로세서에 의해 액세스될 수 있는 임의의 다른 비-일시적인 매체를 포함할 수 있다. 또한, 임의의 연결은 컴퓨터 판독 가능한 매체라고 적절하게 명명된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스트 페어(twisted pair), 디지털 가입자 회선(DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술을 사용하여 웹사이트, 서버, 또는 다른 원격 소스로부터 송신되는 경우에, 동축 케이블, 광섬유 케이블, 트위스트 페어, 디지털 가입자 회선(DSL), 또는 적외선, 무선, 및 마이크로파와 같은 무선 기술이 매체의 정의에 포함된다. 본 명세서에서 사용된 디스크(disk) 및 디스크(disc)는 CD, 레이저 디스크, 광학 디스크, 디지털 다기능 디스크(DVD), 플로피 디스크 및 블루레이 디스크를 포함하고, 여기서, 디스크(disk)는 일반적으로, 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 레이저를 사용하여 데이터를 광학적으로 재생한다. 상기 언급한 것의 조합은 또한, 컴퓨터 판독 가능한 매체의 범위 내에 포함된다.
본 명세서의 설명은 이 기술 분야에 통상의 지식을 가진 자가 본 발명을 제조하거나 사용하는 것을 가능하게 하기 위해 제공된다. 본 발명에 대한 다양한 수정은 이 기술 분야에 통상의 지식을 가진 자에게 용이하게 명백할 것이며, 본 명세서에서 정의된 일반적인 원리는 본 발명의 범위를 벗어남이 없이 다른 변형에 적용될 수 있다. 따라서, 본 발명은 본 명세서에서 설명된 예 및 설계로 제한되지 않고, 본 명세서에 개시된 원리 및 신규 특징에 부합하는 가장 넓은 범위에 따른다.

Claims (25)

  1. 방법으로서,
    폭을 가진 채널을 통해 전달하기 위한 제1 데이터 세트를 식별하는 단계로서, 제1 버스트 길이에 대응하는 상기 제1 데이터 세트를 식별하는 단계;
    상기 제1 데이터 세트의 적어도 일부에 적어도 부분적으로 기초하여 에러 정정을 위한 코드워드를 생성하는 단계; 및
    상기 채널을 통해 상기 제1 버스트 길이보다 긴 제2 버스트 길이를 사용하여 상기 제1 데이터 세트 및 상기 코드워드를 포함하는 제2 데이터 세트를 송신하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 데이터 세트의 적어도 일부 및 상기 코드워드에 적어도 부분적으로 기초하여 상기 제1 데이터 세트에서, 또는 상기 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 생성하는 단계를 더 포함하고, 상기 제2 데이터 세트는 상기 제2 코드워드를 포함하는, 방법.
  3. 제1항에 있어서,
    상기 채널을 통해 전달된 데이터의 송신과 연관된 버스트 길이를 나타내는 메시지를 메모리 디바이스로 송신하는 단계를 더 포함하고, 상기 메시지는 상기 제2 버스트 길이를 나타내고, 상기 코드워드를 생성하는 것은 상기 메시지를 송신하는 것에 적어도 부분적으로 기초하는, 방법.
  4. 제1항에 있어서,
    상기 제1 데이터 세트를 복수의 부분으로 분할하는 단계; 및
    상기 복수의 부분에 적어도 부분적으로 기초하여 에러 정정을 위한 복수의 코드워드를 생성하는 단계를 더 포함하고, 상기 제2 데이터 세트는 상기 복수의 코드워드를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 채널을 통해 상기 제2 버스트 길이를 사용하여 제3 데이터 세트를 수신하는 단계;
    상기 제2 버스트 길이를 사용하여 상기 채널을 통해 상기 제3 데이터 세트를 수신하는 것에 적어도 부분적으로 기초하여 상기 제3 데이터 세트에서 제2 코드워드를 식별하는 단계; 및
    상기 제2 코드워드를 식별하는 것에 적어도 부분적으로 기초하여 상기 제3 데이터 세트에 포함된 제4 데이터 세트가 에러를 포함하는지 여부를 결정하는 단계를 더 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제2 버스트 길이를 사용하여 상기 채널을 통해 상기 제3 데이터 세트를 수신하는 것에 적어도 부분적으로 기초하여 상기 제3 데이터 세트에서 제3 코드워드를 식별하는 단계;
    상기 제3 코드워드를 식별하는 것에 적어도 부분적으로 기초하여 상기 제4 데이터 세트 또는 상기 제2 코드워드가 제2 에러를 포함하는지 여부를 결정하는 단계;
    상기 제4 데이터 세트가 상기 제2 에러를 포함한다고 결정하는 것에 적어도 부분적으로 기초하여 상기 제4 데이터 세트에서 상기 제2 에러를 정정하는 단계; 및
    상기 제2 에러를 정정하는 것에 적어도 부분적으로 기초하여 상기 제4 데이터 세트로부터 상기 제1 데이터 세트를 생성하는 단계를 더 포함하는, 방법.
  7. 제5항에 있어서,
    상기 제2 코드워드를 식별하는 것에 적어도 부분적으로 기초하여 상기 제4 데이터 세트가 상기 제1 데이터 세트에 대응한다고 결정하는 단계를 더 포함하는, 방법.
  8. 제1항에 있어서, 상기 제1 버스트 길이는 상기 채널의 폭 및 상기 제1 데이터 세트의 크기와 연관되는, 방법.
  9. 방법으로서,
    폭을 가진 채널을 통해 제1 데이터 세트를 수신하는 단계로서, 제1 버스트 길이에 대응하는 상기 제1 데이터 세트를 수신하는 단계;
    상기 제1 데이터 세트에 포함된 제2 데이터 세트에서 에러 정정을 위한 코드워드를 상기 제1 데이터 세트에서 식별하는 단계로서, 상기 제2 데이터 세트는 상기 채널을 통한 제2 버스트 길이에 대응하는, 상기 코드워드를 식별하는 단계;
    상기 코드워드를 식별하는 것에 적어도 부분적으로 기초하여 상기 제2 데이터 세트를 메모리 디바이스의 제1 부분에 저장하는 단계; 및
    상기 제1 부분과 다른 상기 메모리 디바이스의 제2 부분에 상기 코드워드를 저장하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 제2 데이터 세트에서, 또는 상기 코드워드에서, 또는 이 둘 모두에서 에러 정정을 위한 제2 코드워드를 상기 제1 데이터 세트에서 식별하는 단계; 및
    상기 메모리 디바이스에 상기 제2 코드워드를 저장하는 단계를 더 포함하는, 방법.
  11. 제10항에 있어서, 상기 제2 코드워드를 저장하는 단계는,
    상기 제1 부분 또는 상기 제2 부분과 다른 상기 메모리 디바이스의 제3 부분에 상기 제2 코드워드를 저장하는 단계를 포함하는, 방법.
  12. 제9항에 있어서,
    상기 제1 데이터 세트 및 상기 코드워드에 적어도 부분적으로 기초하여 에러 정정을 위한 제2 코드워드를 생성하는 단계; 및
    상기 메모리 디바이스에 상기 제2 코드워드를 저장하는 단계를 더 포함하는, 방법.
  13. 제9항에 있어서,
    상기 채널을 통한 데이터 송신과 연관된 버스트 길이를 나타내는 메시지를 호스트 디바이스로부터 수신하는 단계를 더 포함하고, 상기 메시지는 상기 제1 버스트 길이를 나타내고, 상기 제1 데이터 세트를 수신하는 것은 상기 메시지를 수신하는 것에 적어도 부분적으로 기초하는, 방법.
  14. 제9항에 있어서,
    상기 제1 데이터 세트에서 복수의 코드워드를 식별하는 단계를 더 포함하고, 상기 복수의 코드워드 각각은 상기 제2 데이터 세트의 적어도 부분과 연관되며, 상기 메모리 디바이스의 상기 제2 부분에 상기 코드워드를 저장하는 것은 상기 메모리 디바이스의 상기 제2 부분에 상기 복수의 코드워드를 저장하는 것을 더 포함하는, 방법.
  15. 제9항에 있어서,
    상기 메모리 디바이스의 상기 제1 부분으로부터 상기 제2 데이터 세트를 검색하는 단계;
    상기 메모리 디바이스의 상기 제2 부분으로부터 상기 코드워드를 검색하는 단계; 및
    상기 채널을 통해 상기 제1 버스트 길이를 사용하여 상기 제2 데이터 세트 및 상기 코드워드를 포함하는 제3 데이터 세트를 송신하는 단계를 더 포함하는, 방법.
  16. 제15항에 있어서,
    상기 메모리 디바이스로부터 제2 코드워드를 검색하는 단계로서, 상기 제2 데이터 세트 또는 상기 코드워드에서 에러 정정을 위한 상기 제2 코드워드를 검색하는 단계;
    상기 제2 데이터 세트 또는 상기 코드워드가 에러를 포함하는지 여부를 결정하는 단계로서, 상기 제3 데이터 세트를 송신하는 것은 상기 제2 데이터 세트 또는 상기 코드워드가 에러를 포함한다고 결정하는 것에 적어도 부분적으로 기초하는, 상기 제2 데이터 세트 또는 상기 코드워드가 에러를 포함하는지 여부를 결정하는 단계; 및
    상기 제2 데이터 세트 또는 상기 코드워드가 에러를 포함한다고 결정하는 것에 적어도 부분적으로 기초하여 상기 제2 데이터 세트 또는 상기 코드워드에서 에러를 정정하는 단계를 더 포함하고, 상기 제3 데이터 세트를 송신하는 것은 상기 에러를 정정하는 것에 적어도 부분적으로 기초하는, 방법.
  17. 시스템으로서,
    호스트 디바이스;
    상기 호스트 디바이스와 연관된 데이터를 저장하고, 메모리 셀의 어레이에 저장된 상기 데이터에서 에러를 검출하거나 정정하기 위한 하나 이상의 코드워드를 저장하기 위한 상기 메모리 셀의 어레이를 포함하는 메모리 디바이스; 및
    상기 호스트 디바이스와 상기 메모리 디바이스 간에 상기 데이터 및 상기 하나 이상의 코드워드를 전달하기 위한 하나 이상의 채널을 포함하는, 시스템.
  18. 제17항에 있어서, 상기 하나 이상의 코드워드 및 상기 데이터는 상기 하나 이상의 채널 중 제1 채널을 통해 전달되는, 시스템.
  19. 제17항에 있어서, 상기 하나 이상의 코드워드 및 상기 데이터는 제1 버스트 길이를 갖는 단일 버스트에서 제1 채널을 통해 송신되는, 시스템.
  20. 제19항에 있어서, 상기 단일 버스트의 상기 제1 버스트 길이는 상기 데이터에 대응하는 제2 버스트 길이보다 큰, 시스템.
  21. 장치로서,
    데이터, 및 상기 데이터와 연관된 에러를 검출하거나 정정하기 위한 하나 이상의 코드워드를 저장하기 위한 메모리 셀의 어레이;
    상기 데이터 및 상기 하나 이상의 코드워드를 수신하도록 구성되고 상기 하나 이상의 코드워드를 상기 메모리 셀의 어레이로 송신하도록 구성된 수신 구성 요소; 및
    상기 수신 구성 요소와 상기 메모리 셀의 어레이 간에 상기 하나 이상의 코드워드를 전달하기 위한 전도성 라인을 포함하는, 장치.
  22. 제21항에 있어서, 상기 수신 구성 요소는 하나 이상의 채널과 결합된 역직렬화기를 포함하는, 장치.
  23. 제21항에 있어서,
    상기 하나 이상의 코드워드를 수신하는 것에 적어도 부분적으로 기초하여 에러를 검출하거나 정정하기 위한 구성 요소를 더 포함하는, 장치.
  24. 제21항에 있어서,
    데이터 버스 반전 데이터를 디코딩하기 위한 구성 요소; 및
    데이터 버스 반전 데이터를 인코딩하는 구성 요소를 더 포함하는, 장치.
  25. 제21항에 있어서,
    상기 메모리 셀의 어레이에 저장된 상기 데이터 및 상기 하나 이상의 코드워드를 호스트 디바이스로 송신하도록 구성된 송신 구성 요소를 더 포함하고, 상기 송신 구성 요소는 하나 이상의 채널과 결합된 직렬화기를 포함하는, 장치.
KR1020217013535A 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스 KR102627211B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247001590A KR20240010108A (ko) 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862746316P 2018-10-16 2018-10-16
US62/746,316 2018-10-16
US16/579,219 2019-09-23
US16/579,219 US11216333B2 (en) 2018-10-16 2019-09-23 Methods and devices for error correction
PCT/US2019/054325 WO2020081238A1 (en) 2018-10-16 2019-10-02 Methods and devices for error correction

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247001590A Division KR20240010108A (ko) 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스

Publications (2)

Publication Number Publication Date
KR20210055793A true KR20210055793A (ko) 2021-05-17
KR102627211B1 KR102627211B1 (ko) 2024-01-19

Family

ID=70160013

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020217013535A KR102627211B1 (ko) 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스
KR1020247001590A KR20240010108A (ko) 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020247001590A KR20240010108A (ko) 2018-10-16 2019-10-02 에러 정정 방법 및 디바이스

Country Status (5)

Country Link
US (2) US11216333B2 (ko)
EP (1) EP3867761A4 (ko)
KR (2) KR102627211B1 (ko)
CN (1) CN112997158A (ko)
WO (1) WO2020081238A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023106434A1 (ko) * 2021-12-06 2023-06-15 주식회사 딥아이 Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220140234A (ko) * 2021-04-09 2022-10-18 삼성전자주식회사 멀티 레벨 신호 시스템에서 최적 전이 코드를 생성하기 위한 신호 처리 방법 및 반도체 장치
TWI792732B (zh) * 2021-11-30 2023-02-11 慧榮科技股份有限公司 介面電路、記憶體控制器與用以校正介面電路內之訊號處理裝置之校正方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US20140122974A1 (en) * 2012-11-01 2014-05-01 Eun-Jin Yun Memory module, memory system having the same, and methods of reading therefrom and writing thereto
WO2015016879A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Operating a memory unit
US9710324B2 (en) * 2015-02-03 2017-07-18 Qualcomm Incorporated Dual in-line memory modules (DIMMs) supporting storage of a data indicator(s) in an error correcting code (ECC) storage unit dedicated to storing an ECC
US20180046541A1 (en) * 2016-08-15 2018-02-15 Samsung Electronics Co., Ltd. Dram assist error correction mechanism for ddr sdram interface
US20180137067A1 (en) * 2016-11-16 2018-05-17 Rambus Inc. Multi-Mode Memory Module and Memory Component

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0857400B1 (en) * 1995-10-24 2005-04-13 General Instrument Corporation Variable length burst transmission over the physical layer of a multilayer transmission format
US7149824B2 (en) * 2002-07-10 2006-12-12 Micron Technology, Inc. Dynamically setting burst length of memory device by applying signal to at least one external pin during a read or write transaction
US8055976B2 (en) * 2007-08-13 2011-11-08 International Business Machines Corporation System and method for providing error correction and detection in a memory system
JP4564520B2 (ja) * 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4538034B2 (ja) * 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
JP5628670B2 (ja) * 2008-06-30 2014-11-19 国立大学法人愛媛大学 復号化装置、垂直磁気記録再生装置、受信装置、および、復号化方法
JP4660632B2 (ja) * 2010-07-29 2011-03-30 株式会社東芝 半導体記憶装置
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
KR102164019B1 (ko) * 2014-01-27 2020-10-12 에스케이하이닉스 주식회사 버스트 랭스 제어 장치 및 이를 포함하는 반도체 장치
US10141039B2 (en) * 2014-03-10 2018-11-27 Everspin Technologies, Inc. Burst length defined page size
US8942028B1 (en) * 2014-06-16 2015-01-27 Sandisk Technologies Inc. Data reprogramming for a data storage device
US9442801B2 (en) * 2014-09-26 2016-09-13 Hewlett Packard Enterprise Development Lp Platform error correction
KR102238706B1 (ko) 2014-11-28 2021-04-09 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US9766976B2 (en) * 2015-06-08 2017-09-19 Sandisk Technologies Llc Data storage device and method for storing multiple codewords and redundancy information at a word line
KR102324769B1 (ko) * 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
KR20170002053U (ko) 2015-12-02 2017-06-12 대우조선해양 주식회사 선박용 배기구의 연소가스 배출구조
EP3453022B1 (en) * 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10606692B2 (en) * 2017-12-20 2020-03-31 International Business Machines Corporation Error correction potency improvement via added burst beats in a dram access cycle
US10671497B2 (en) * 2018-01-19 2020-06-02 International Business Machines Corporation Efficient and selective sparing of bits in memory systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7558887B2 (en) * 2007-09-05 2009-07-07 International Business Machines Corporation Method for supporting partial cache line read and write operations to a memory module to reduce read and write data traffic on a memory channel
US20140122974A1 (en) * 2012-11-01 2014-05-01 Eun-Jin Yun Memory module, memory system having the same, and methods of reading therefrom and writing thereto
WO2015016879A1 (en) * 2013-07-31 2015-02-05 Hewlett-Packard Development Company, L.P. Operating a memory unit
US9710324B2 (en) * 2015-02-03 2017-07-18 Qualcomm Incorporated Dual in-line memory modules (DIMMs) supporting storage of a data indicator(s) in an error correcting code (ECC) storage unit dedicated to storing an ECC
US20180046541A1 (en) * 2016-08-15 2018-02-15 Samsung Electronics Co., Ltd. Dram assist error correction mechanism for ddr sdram interface
US20180137067A1 (en) * 2016-11-16 2018-05-17 Rambus Inc. Multi-Mode Memory Module and Memory Component

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023106434A1 (ko) * 2021-12-06 2023-06-15 주식회사 딥아이 Ddr sdram 인터페이스를 이용한 dram 지원 에러 정정 방법

Also Published As

Publication number Publication date
KR20240010108A (ko) 2024-01-23
EP3867761A1 (en) 2021-08-25
CN112997158A (zh) 2021-06-18
EP3867761A4 (en) 2022-06-15
US20200117537A1 (en) 2020-04-16
WO2020081238A1 (en) 2020-04-23
US20220188186A1 (en) 2022-06-16
US11216333B2 (en) 2022-01-04
KR102627211B1 (ko) 2024-01-19
US11907061B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
US10832768B2 (en) Data storage based on data polarity
US11748021B2 (en) Scrub rate control for a memory device
US11437086B2 (en) Phase clock correction
US11663075B2 (en) Memory device with configurable error correction modes
US11061771B2 (en) Extended error detection for a memory device
KR20210061454A (ko) 메모리 장치에 대한 오류 정정 관리
US11907061B2 (en) Methods and devices for error correction
CN114097038B (zh) 具有用于错误校正的状态反馈的存储器装置
US11100972B2 (en) Refresh rate control for a memory device
CN112306739A (zh) 多存储器裸片技术
EP3895166A1 (en) Feedback for multi-level signaling in a memory device
US20240095119A1 (en) Transmission failure feedback schemes for reducing crosstalk
EP3864653B1 (en) Adapting channel current

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant