KR20200142091A - 코드 워드 포맷 및 구조 - Google Patents

코드 워드 포맷 및 구조 Download PDF

Info

Publication number
KR20200142091A
KR20200142091A KR1020207034880A KR20207034880A KR20200142091A KR 20200142091 A KR20200142091 A KR 20200142091A KR 1020207034880 A KR1020207034880 A KR 1020207034880A KR 20207034880 A KR20207034880 A KR 20207034880A KR 20200142091 A KR20200142091 A KR 20200142091A
Authority
KR
South Korea
Prior art keywords
code word
bits
channel
bit
channels
Prior art date
Application number
KR1020207034880A
Other languages
English (en)
Inventor
조셉 티. 파블롭스키
Original Assignee
마이크론 테크놀로지, 인크
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크 filed Critical 마이크론 테크놀로지, 인크
Publication of KR20200142091A publication Critical patent/KR20200142091A/ko

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/061Improving I/O performance
    • 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
    • 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
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 출원은 코드 워드 포맷 및 구조에 관한다. 코드 워드 포맷들 및 구조들을 위한 방법들, 시스템들 및 디바이스들이 설명된다. 코드 워드 포맷 및 구조는 메모리 매체와 연관된 액세스 동작 동안 사용자 데이터의 신뢰할 수 있는 트랜잭션을 가능하게 하는 다양한 필드를 포함할 수 있다. 예를 들어, 비트 필드들은 코드 워드 포맷 및 구조에 따라 구성된 코드 워드에 관해 포트 매니저가 수행할 에러 제어 동작에 관한 정보를 포함할 수 있다. 추가로, 코드 워드 포맷 및 구조는 액세스 동작 동안 사용자 데이터의 저레이턴시 동작 및 신뢰할 수 있는 트랜잭션을 위해 구성될 수 있다. 예를 들어, 포트 매니저는 코드 워드의 제1 부분을 수신하고 코드 워드의 추가 부분을 수신하는 것과 동시에 코드 워드의 제1 부분을 파싱할 수 있다.

Description

코드 워드 포맷 및 구조
상호 참조
본 특허 출원은 Pawlowski가 2019년 1월 16일자로 출원한 "Code Word Format and Structure(코드 워드 포맷 및 구조)"라는 명칭의 미국 특허 출원 제16/249,808호의 이익 및 우선권을 주장하며, 이는 Pawlowski가 2018년 5월 15일자로 출원한 "Code Word Format and Structure(코드 워드 포맷 및 구조)"라는 명칭의 미국 가 특허 출원 제62/671,920호의 이익 및 우선권을 주장하며, 이의 각각은 이의 양수인에 양도되고, 이의 각각은 명시적으로 여기에 그 전체가 참고로 통합된다.
기술분야
기술분야는 코드 워드 포맷 및 구조에 관한다.
이하는 개괄적으로 메모리 서브 시스템 또는 시스템을 동작시키는 것, 보다 구체적으로는 코드 워드 포맷 및 구조에 관한다.
컴퓨팅 시스템은 컴퓨터들, 무선 통신 디바이스들, 사물 인터넷, 카메라들, 디지털 디스플레이들 등과 같은 수많은 전자 디바이스에서 정보를 관리하기 위해 하나 이상의 버스와 연결되는 다양한 종류의 메모리 디바이스들 및 제어기들을 포함하는 메모리 서브 시스템 또는 시스템을 포함할 수 있다. 메모리 디바이스들은 그러한 전자 디바이스들에 정보를 저장하는 데 널리 사용된다. 정보는 메모리 디바이스의 상이한 상태들을 프로그램함으로써 저장된다. 예를 들어, 이진 디바이스들은 보통 논리 "1" 또는 논리 "0"으로 표기되는 두 개의 상태를 갖는다. 다른 시스템들에서는, 둘보다 많은 상태가 메모리 디바이스들에 저장될 수 있다. 저장된 정보에 액세스하기 위해, 전자 디바이스의 구성요소는 메모리 디바이스에 저장된 상태를 판독 또는 감지할 수 있다. 정보를 저장하기 위해, 전자 디바이스의 구성요소는 메모리 디바이스에 상태를 기록 또는 프로그램할 수 있다.
자기 하드 디스크들, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 강유전 RAM(FeRAM), 자기 RAM(MRAM), 저항 RAM(RRAM), 플래시 메모리, 부정곱(NAND) 메모리, 상 변화 메모리(PCM) 등을 비롯하여, 다양한 유형의 메모리 디바이스가 존재한다. 메모리 디바이스들은 휘발성 또는 비휘발성일 수 있다. 비휘발성 메모리 셀들은 외부 전원이 없을 때에도 장시간 그것들의 저장된 논리 상태를 유지할 수 있다. 휘발성 메모리 셀들(예를 들어, DRAM 셀들)은 그것들의 저장된 상태가 외부 전원에 의해 주기적으로 리프레시되지 않는 한 시간이 지남에 따라 손실될 수 있다.
컴퓨팅 시스템의 개선에는 다른 메트릭들 중에서도, 전력 소비 감소, 메모리 용량 증가, 판독/기록 속도 개선, 영구적인 메모리 매체 사용에 의한 비휘발성 제공 또는 특정 성능 지점에서 제조 비용 절감과 같은 메모리 서브 시스템의 성능 향상이 포함될 수 있다. 하나 이상의 액세스 동작 동안 레이턴시를 처리하기 위한 기술들이 바람직할 수 있다.
방법이 설명된다. 일부 예에서, 상기 방법은 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하는 단계로서, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는, 상기 제1 부분을 수신하는 단계, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하는 단계, 및 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 메모리 매체와 통신하는 단계를 포함할 수 있다.
장치가 설명된다. 일부 예에서, 상기 장치는 복수의 메모리 매체로서, 상기 복수의 메모리 매체 중 적어도 하나의 메모리 매체는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는 코드 워드를 생성하도록 구성된, 상기 복수의 메모리 매체, 호스트 디바이스로부터 액세스 명령을 수신하도록 구성된 적어도 하나의 호스트 인터페이스, 및 상기 적어도 하나의 호스트 인터페이스와 전자 통신하는 복수의 포트 매니저 및 상기 복수의 메모리 매체의 상이한 하나 이상의 메모리 매체와 전자 통신하는 각 포트 매니저를 포함할 수 있다. 일부 경우에, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 상기 액세스 명령을 수신하는 것에 기초하여 상기 코드 워드의 제1 부분을 수신하도록, 그리고 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 제2 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성될 수 있다.
장치가 설명된다. 일부 예에서, 상기 장치는 메모리 매체 및 상기 메모리 매체 및 호스트 디바이스와 전자 통신하는 제어기를 포함할 수 있다. 일부 경우에, 상기 제어기는 상기 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하도록 동작 가능할 수 있으며, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하고, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 동작 가능할 수 있으며, 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 메모리 매체 또는 상기 호스트 디바이스와 통신하도록 동작 가능할 수 있다.
도 1은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 컴퓨팅 시스템의 일례를 도시한다.
도 2는 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 컴퓨팅 시스템의 일례를 도시한다.
도 3은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조의 일례를 도시한다.
도 4는 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 디바이스의 블록도를 도시한다.
도 5 및 도 6은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 방법 또는 방법들을 도시한다.
컴퓨팅 시스템(예를 들어, 메모리 서브 시스템 또는 시스템을 포함하는 서버)의 성능은 저레이턴시(예를 들어, 부하 대 사용 레이턴시)로 컴퓨팅 시스템에 신뢰할 수 있는 정보를 공급하는 것과 같은 다양한 요인에 따라 달라질 수 있다. 메모리 서브 시스템 또는 시스템의 레이턴시는 데이터를 요청한 호스트 디바이스에서 데이터 유닛을 이용 가능하게 만드는 시간을 지칭할 수 있다. 컴퓨팅 시스템의 맥락에서, 데이터 유닛은 코드 워드로 지칭될 수 있다. 신뢰할 수 있는 코드 워드를 공급하는 것과 연관된 상대적으로 긴 레이턴시는 하나 이상의 액세스 동작 동안 호스트 디바이스와 메모리 서브 시스템 또는 시스템 간의 데이터 전달 속도에 영향을 미치는 것을 포함하여 컴퓨팅 시스템의 전체 성능에 악영향을 미칠 수 있다. 본 개시에서 설명되는 코드 워드 포맷들 및 구조들(이는 코드 워드 레이아웃이라고도 지칭될 수 있다)는 컴퓨팅 시스템의 전체 성능을 개선하기 위해 코드 워드와 연관된 저레이턴시 동작들을 가능하게 할 수 있다. 코드 워드 포맷 및 구조(예를 들어, 코드 워드 레이아웃)를 사용하는 시스템 또는 서브 시스템은 신뢰할 수 있는 정보를 호스트 디바이스에 저레이턴시로 공급하기 위해 호스트 디바이스로부터 액세스 명령을 수신하는 것에 응답하여 코드 워드와 연관된 다양한 동작을 병렬화할 수 있다.
일부 경우에, 코드 워드는 사용자 데이터의 양을 포함할 수 있다. 액세스 동작(예를 들어, 판독 동작, 기록 동작)과 관련된 사용자 데이터의 크기는 128 바이트(예를 들어, 1,024 비트)일 수 있지만, 코드 워드의 크기는 일부 경우에, 추가 비트들이 포함됨으로 인해 128 바이트보다 클 수 있다. 여기에 개시된 코드 워드 포맷은 (예를 들어, 제1 추가 비트 그룹으로부터의 정보를 사용한 에러 제어 동작을 통해) 액세스 동작과 연관된 트랜잭션 동안 신뢰할 수 있는 사용자 데이터를 생성하기 위해 코드 워드에 제1 추가 비트 그룹을 할당할 수 있다. 또한, 코드 워드 포맷은 코드 워드의 조건을 나타내기 위해 제2 추가 비트 그룹을 할당할 수 있다.
코드 워드 레이아웃이라고도 할 수 있는 코드 워드 포맷은 제2 추가 비트 그룹이 코드 워드의 제1 부분(예를 들어, 코드 워드의 제1 버스트)에 위치되도록 지정할 수 있다. 이러한 방식으로, 시스템 또는 서브 시스템은 코드 워드의 조건을 결정하는 것에 기초하여 일련의 동작을 개시할 수 있는 한편 시스템 또는 서브 시스템은 저레이턴시 동작을 가능하게 하기 위해 코드 워드의 제2 부분(예를 들어, 나머지 부분, 추가 부분)을 수신한다. 또한, 코드 워드 레이아웃은 코드 워드와 관련된 다양한 상태(예를 들어, 코드 워드와 연관된 일정량의 액세스 동작, 코드 워드의 무효한 부분)를 나타내기 위해 제3 추가 비트 그룹을 할당할 수 있다.
본 개시에 따라 구성된 시스템 또는 서브 시스템은 컴퓨팅 시스템의 고성능을 지원하기 위해 복수의 포트 매니저를 포함할 수 있다. 시스템 또는 서브 시스템은 하나 이상의 호스트 인터페이스를 통해 호스트 디바이스와 연결될 수 있다. 시스템 또는 서브 시스템은 호스트 인터페이스들을 통해 호스트 디바이스로부터 요청(예를 들어, 호스트 요청)을 수신할 수 있다. 복수의 포트 매니저의 개별 포트 매니저는 채널을 통해 메모리 매체와 연결될 수 있다. 일부 경우에 집합된 양 또는 세트의 데이터가 채널을 통해 교환될 수 있기 때문에 채널은 집합 채널이라고 할 수 있다. 메모리 매체는 하나 이상의 메모리 다이(예를 들어, 3DXP 다이로 지칭될 수 있는 3D XPointTM 메모리 다이)를 포함하도록 구성될 수 있다. 일부 경우에, 메모리 매체는 일정량의 메모리 다이(예를 들어, 열한(11) 개의 메모리 다이)를 병렬 구성으로 포함하도록 구성될 수 있다.
일부 경우에, 각 메모리 다이(예를 들어, 각 3DXP 메모리 다이)는 액세스 동작과 관련하여 일정량의 데이터(예를 들어, 128 비트의 데이터)를 메모리 다이로부터의 유닛으로서 생성할 수 있다. 일정량의 데이터(예를 들어, 128 비트의 데이터)는 일련의 버스트(예를 들어, 열여섯(16) 개의 버스트)를 포함할 수 있으며, 각 버스트는 메모리 다이로부터 버스(예를 들어, 8-비트 폭 버스)를 통해 송신되는 제2 양의 데이터(예를 들어, 여덟(8) 개의 비트의 데이터)를 포함한다.
일례로서, 메모리 매체가 병렬로 동작하는 열한(11) 개의 메모리 다이를 포함하고, 열한(11) 개의 메모리 다이의 각 메모리 다이가 주어진 버스트에 여덟(8) 개의 비트의 데이터를 생성할 때, 메모리는 매체는 주어진 버스트에 대한 유닛으로서 88 비트의 데이터를 생성할 수 있다. 열한(11) 개의 메모리 다이가 총 열여섯(16) 개의 버스트에 걸쳐 데이터를 생성할 수 있음에 따라, 각 버스트는 열한(11) 개의 메모리 다이로부터 88 비트의 데이터를 포함하며, 액세스 동작 동안 메모리 매체와 연관된 데이터의 유닛―예를 들어, 채널(예를 들어, 집합 채널)을 통해 송신되는 데이터의 유닛―은 1,408 비트를 포함할 수 있다. 이와 같이, 이러한 예에서, 메모리 매체와 연관된 코드 워드(예를 들어, 액세스 동작의 트랜잭션 동안의 데이터의 유닛)은 1,408 비트를 포함할 수 있다. 일부 경우에, 버스트를 채널 버스트라고 할 수 있다. 일부 경우에, 포트 매니저와 메모리 매체 간의 채널은 복수의 채널을 포함할 수 있으며, 여기서 복수의 채널의 각 채널은 메모리 매체의 메모리 다이와 연관될 수 있다.
본 개시에 따른 코드 워드 포맷 및 구조(예를 들어, 코드 워드 레이아웃)는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함할 수 있다. 포트 매니저는 코드 워드 포맷 및 구조를 사용하여 코드 워드(예를 들어, 1,408 비트의 코드 워드)를 구성하여 두 디바이스 간에서, 예를 들어 포트 매니저와 포트 매니저와 연결된 메모리 매체 간에서 하나 이상의 채널(예를 들어, 집합 채널)을 통해 교환되는 코드 워드와 연관된 저레이턴시 동작을 가능하게 할 수 있다. 코드 워드 레이아웃의 제1 채널 버스트에서의 비트 필드 세트(예를 들어, 비트 필드들)에는 코드 워드와 연관된 다양한 정보가 할당될 수 있다. 이와 같이, 포트 매니저는 제1 채널 버스트에서의 일정량의 필드를 수신하고 그 안의 일정량의 필드로부터 정보를 해석(예를 들어, 파싱)할 수 있다. 일부 예에서, 포트 매니저는 코드 워드의 추가 부분을 수신하는 것과 동시에 정보를 파싱하는 것에 기초하여 코드 워드를 재구성할 수 있으며, 이는 결과적인 레이턴시를 감소시킬 수 있다. 그에 따라, 본 개시에 따른 코드 워드 레이아웃은 포트 매니저가 코드 워드의 적어도 일 부분을 수신하는 것에 기초하여 다양한 메모리 동작을 개시하는 것을 가능하게 함으로써 하나 이상의 액세스 동작 동안 메모리 매체와 연관된 저레이턴시 동작들을 가능하게 할 수 있다.
여기서 소개된 본 개시의 특징들은 도 1의 맥락에서 대표적인 컴퓨팅 시스템 수준에서 더 후술된다. 그 다음, 컴퓨팅 시스템 및 코드 워드 레이아웃의 구체적인 예들이 도 2 내지 도 3의 맥락에서 설명된다. 또한 본 개시의 이러한 그리고 다른 특징들은 제어기와 관련된 다양한 구성요소를 설명하는 도 4 뿐만 아니라 코드 워드 레이아웃을 사용하는 동작들에 관한 도 5 및 도 6의 장치도에 의해 예시되고 이를 참조하여 설명된다. 이하의 예들 중 많은 예는 메모리 서브 시스템의 맥락에서 설명된다; 그리고 설명된 기능들은 다른 컴퓨팅 시스템들 및 서브 시스템들에 적용 가능하다.
도 1은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 컴퓨팅 시스템(100)의 일례를 도시한다. 컴퓨팅 시스템(100)은 호스트 인터페이스(115)(이는 호스트 링크로도 지칭될 수 있음)를 통해 디바이스(140)와 연결되는 호스트 디바이스(105)를 포함할 수 있다. 호스트 디바이스(105)는 다른 디바이스들 중에서도, 서버, 시스템 온 칩(SoC, system on a chip), 중앙 처리 장치(CPU, central processing unit) 또는 그래픽 처리 장치(GPU, graphics processing unit)이거나 이를 포함할 수 있다. 일부 예에서, 호스트 디바이스(105)는 호스트 인터페이스(115)를 통해 디바이스(140)에 위치되는 하나 이상의 메모리 매체(130)에 액세스(예를 들어, 그로부터 판독, 그에 기록)할 수 있다.
호스트 인터페이스(115)(예를 들어, 호스트 링크(115))는 호스트 디바이스(105)와 하나 이상의 메모리 매체(130) 간의 액세스 동작들을 가능하게 하기 위해 프로토콜(예를 들어, Gen-Z, CCIX(Cache Coherent Interconnect for Accelerators) 프로토콜)과 호환되거나 이를 채용할 수 있다. 호스트 인터페이스(115)는 적어도 한 방향(예를 들어, 송신 또는 수신)으로 제1 데이터 전송 속도(예를 들어, 25 기가바이트/초(GBps))로 데이터를 전달하도록 구성될 수 있다. 일부 예에서, 25 GBps 데이터 전달 속도는 트랜잭션이 64 바이트일 때 초당 대략 5억 8천 6백만 트랜잭션을 지원할 수 있다. 다른 예들에서, 25 GBps 데이터 전달 속도는 트랜잭션이 128 바이트일 때 초당 대략 3억 1천 2백 5십만 트랜잭션을 지원할 수 있다.
디바이스(140)는 일부 경우에 메모리 시스템 또는 서브 시스템, 또는 메모리 디바이스로 지칭될 수 있다. 디바이스(140)는 채널들(125)을 통해 하나 이상의 메모리 매체(130)와 연결될 수 있는 제어기(120)를 포함할 수 있다. 일부 경우에, 채널(125)은 도 2를 참조하여 설명된 바와 같이 복수의 다른 채널(예를 들어, 집합 채널(125)보다 더 작은 대역폭을 갖는 채널들)을 포함하는 집합 채널(125)로 지칭될 수 있다. 일부 예에서, 제어기(120) 및 하나 이상의 메모리 매체(130)는 보드(예를 들어, PCIe (peripheral component interconnect express) 보드)와 통합되거나, 접촉하거나, 또는 그 위에 배치될 수 있다.
제어기(120)는 하나 이상의 메모리 매체(130)와 관련하여 디바이스(140)의 동작들을 가능하게 하는 다양한 기능 블록을 포함할 수 있다. 일부 경우에, 제어기(120)는 호스트 인터페이스(115), 채널(125) 또는 양자와 연관된 상이한 사양들, 제약들 또는 특성들을 수용하기 위한 인터페이스 제어기의 양태들을 포함할 수 있다. 일부 예에서, 제어기(120)는 주문형 집적 회로(ASIC), 범용 프로세서, 다른 프로그램 가능 논리 디바이스, 개별 하드웨어 구성요소들(예를 들어, 칩렛)일 수 있거나, 또는 그것은 구성요소들의 조합일 수 있다.
일부 경우에, 제어부(120)는 채널(예를 들어, 채널(125-a), 통합 채널)에 걸친 복수의 채널 버스트의 코드 워드 포맷 및 구조에 따라 코드 워드를 구성할 수 있다. 일부 경우에, 코드 워드 레이아웃은 액세스 동작 동안 디바이스(140)의 저레이턴시 동작을 가능하게 할 수 있다. 추가로, 제어기(120)는 호스트 디바이스(105)로부터, 호스트 인터페이스(115)를 통해 호스트 요청(예를 들어, 하나 이상의 메모리 매체(130)에서의 메모리 셀들로부터 판독하거나 그것들에 기록하기 위한 액세스 명령)을 수신할 수 있다. 제어기(120)는 하나 이상의 메모리 매체(130)에서의 메모리 셀들을 판독하기 위한 호스트 요청을 수신하는 것에 기초하여 액세스 명령을 생성할 수 있다.
일부 경우에, 제어기(120)는 메모리 매체에서의 메모리 셀을 판독하기 위한 액세스 명령을 송신하는 것에 기초하여 메모리 매체(예를 들어, 메모리 매체(130-a))로부터 코드 워드의 제1 부분을 수신할 수 있다. 제어기(120)는 코드 워드의 추가 부분을 수신하는 것과 동시에 코드 워드의 제1 부분을 해석(예를 들어, 식별, 파싱 등)할 수 있다. 나아가, 제어기(120)는 코드 워드의 제1 부분을 파싱하는 것에 기초하여 메모리 매체와 통신할 수 있다. 일부 경우에, 제어기(120)는 코드 워드의 추가 부분을 수신하는 것과 동시에 코드 워드의 제1 부분을 파싱하는 것에 기초하여 코드 워드를 재구성할 수 있다. 나아가, 제어기(120)는 코드 워드를 재구성하는 것에 기초하여 메모리 매체와 통신할 수 있다.
일부 경우에, 제어기(120)는 다양한 동작(예를 들어, 메모리 셀들에 데이터를 기록, 메모리 셀들로부터 데이터를 판독, 코드 워드 포맷 및 구조에 따라 코드 워드를 배열)을 수행할 수 있는 로컬 제어기(예를 들어, 메모리 매체(130-a)에 로컬)와 함께 데이터를 메모리 매체(130)(예를 들어, 메모리 매체(130-a))로부터 판독하거나 그것에 기록할 수 있다. 일부 예에서, 로컬 제어기는 집합 채널의 일례일 수 있는 채널들(125) 중 하나를 통해 제어기(120)로 요청된 데이터를 전송할 수 있다.
각 메모리 매체(예를 들어, 메모리 매체(130-a))는 메모리 매체의 특정된 또는 원하는 메모리 용량을 얻기 위해 다수의 메모리 다이(예를 들어, 열여섯(16) 개의 메모리 다이)를 포함할 수 있다. 일부 예에서, 메모리 다이는 칼코게나이드를 포함하는 메모리 셀들(예를 들어, 3DXP 다이들)의 3-차원 교차점 어레이를 포함할 수 있다. 다른 예들에서, 메모리 다이들은 다른 종류들의 메모리 디바이스들(예를 들어, FeRAM 다이들, MRAM 다이들, PCM 다이들)을 포함할 수 있다. 일부 예에서, 코드 워드(예를 들어, 128 바이트의 사용자 데이터를 포함하는 코드 워드)는 메모리 매체(예를 들어, 메모리 매체(130-a)) 내의 다수의 메모리 다이에 걸쳐 분할될 수 있다.
채널들(125)은 제어기(120)와 하나 이상의 메모리 매체(130) 간에서 데이터(예를 들어, 코드 워드)를 전송하도록 구성될 수 있다. 채널들(125) 각각(예를 들어, 집합 채널의 일례일 수 있는 채널(125-a))은 데이터(예를 들어, 코드 워드)를 병렬로 전송하기 위한 복수의 다른 채널(예를 들어, 채널(125-a)보다 더 작은 대역폭을 갖는 채널들)을 포함할 수 있다. 일부 경우에, 코드 워드는 사용자 데이터(예를 들어, 코드 워드에서의 128 바이트의 사용자 데이터) 및 다른 데이터 세트(예를 들어, 코드 워드에서의 나머지 데이터)를 포함할 수 있다. 채널들(125) 각각(예를 들어, 집합 채널의 일례일 수 있는 채널(125-a))은 메타 데이터와 같은 다양한 보조 기능과 관련된 정보를 전달하기 위한 추가 채널들을 포함할 수 있다. 일부 경우에, 코드 워드 레이아웃은 채널(125)들 각각(예를 들어, 채널(125-a))이 제어기(120)와 하나 이상의 메모리 매체(130) 사간에서 데이터(예를 들어, 코드 워드)를 전송할 수 있는 방법을 정의할 수 있다.
일부 경우에, 디바이스 또는 시스템은 메모리 매체 및 메모리 매체 및 호스트 디바이스와 전자 통신하는 제어기를 포함할 수 있다. 제어기는 상기 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하도록 동작 가능할 수 있으며, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하고, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 동작 가능할 수 있으며, 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 메모리 매체 또는 상기 호스트 디바이스와 통신하도록 동작 가능할 수 있다.
도 2는 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 컴퓨팅 시스템(200)의 일례를 도시한다. 컴퓨팅 시스템(200)은 도 1을 참조하여 설명된 메모리 소자(100)의 일례일 수 있다. 컴퓨팅 시스템(200)은 적어도 하나의 호스트 인터페이스(예를 들어, 호스트 인터페이스(215-a))를 사용하여 메모리 서브 시스템 또는 시스템(220)과 연결되는 호스트 디바이스(205)를 포함할 수 있다. 일부 경우에, 호스트 인터페이스(215)는 호스트 링크 또는 호스트 링크들로 지칭될 수 있다. 호스트 디바이스(205)는 도 1을 참조하여 설명된 호스트 디바이스(105)의 일례일 수 있다. 호스트 인터페이스들(215)는 도 1을 참조하여 설명된 호스트 인터페이스(115)의 예들일 수 있다. 일부 예에서, 호스트 인터페이스들(215)은 제1 데이터 전달 속도(예를 들어, 50 GBps, 각 방향으로 25 GBps)로 데이터를 전달하도록 구성될 수 있다.
컴퓨팅 시스템(200)은 메모리 서브 시스템 또는 시스템(220)을 포함할 수 있다. 메모리 서브 시스템 또는 시스템(220)은 도 1을 참조하여 설명된 디바이스(140)의 일례일 수 있다. 메모리 서브 시스템 또는 시스템(220)은 메모리 디바이스 또는 메모리 디바이스들로 지칭될 수 있다. 메모리 서브 시스템 또는 시스템(220)은 제어기(230)를 포함할 수 있다. 제어기(230)는 도 1을 참조하여 설명된 제어기(120)의 일례일 수 있다. 제어기(230)는 인터페이스 구성요소(210) 및 복수의 포트 매니저(260)를 포함할 수 있다.
인터페이스 구성요소(210)는 호스트 인터페이스(215)를 통해 호스트 디바이스(205)와 메모리 서브 시스템 또는 시스템(220) 간의 데이터 교환을 가능하게 하도록 구성될 수 있다. 인터페이스 구성요소(210)는 복수의 포트 매니저(260)와 데이터를 교환하도록(예를 들어, 신호 경로들(250)을 사용하여) 구성될 수 있다. 신호 경로들(250)의 각 신호 경로는 호스트 인터페이스(215)의 제1 데이터 전달 속도와 상이한 속도(예를 들어, 12.8 GBps)로 데이터를 교환하도록 구성될 수 있다. 일부 경우에, 인터페이스 구성요소(210)는 하나보다 많은 호스트 인터페이스(예를 들어, 호스트 인터페이스(215-a) 및 호스트 인터페이스(215-b))가 복수의 포트 매니저(260)와 연관될 수 있게 하는 라우팅 네트워크 기능을 제공하도록 구성될 수 있다.
복수의 포트 매니저(260)의 각 포트 매니저(예를 들어, 포트 매니저(260-b))는 집합 채널(예를 들어, 집합 채널(290-b))을 통해 메모리 매체(예를 들어, 메모리 매체(295-b))와 연결될 수 있다. 일부 예에서, 복수의 포트 매니저(260)의 개별 포트 매니저(예를 들어, 포트 매니저(260-a))는 서로 별개로(예를 들어, 포트 매니저들(260-b, 260-c, 260-c)과) 동작할 수 있고 하나 이상의 메모리 매체(295)와 연관된 액세스 동작들을 지원할 수 있다. 하나 이상의 메모리 매체(295)는 도 1을 참조하여 설명된 하나 이상의 메모리 매체(130)의 예들일 수 있다. 일부 경우에, 하나 이상의 메모리 매체(295) 각각은 매체 포트로 지칭될 수 있다.
집합 채널들(290)의 각 집합 채널은 하나 이상의 채널(291)을 포함할 수 있다. 일부 경우에, 채널들(291)은 로직 채널들(291)로 지칭될 수 있다. 일부 예에서, 각 채널(291)은 메모리 매체(예를 들어, 메모리 매체(295-a))에서의 메모리 다이와 연관될 수 있고 집합 채널(예를 들어, 집합 채널(290-b))의 대역폭보다 더 작은 대역폭을 가질 수 있다. 일부 예에서, 집합 채널(예를 들어, 집합 채널(290-a))은 열한(11) 개의 채널(291)(예를 들어, 채널들(291-a 내지 291-k))을 포함할 수 있다. 해당 기술분야의 통상의 기술자가 이해할 수 있는 바와 같이, 하나 이상의 채널(291)(예를 들어, 채널들(291-a 내지 채널 291-k))은 집합 채널들(290) 중 하나(예를 들어, 집합 채널(290-a))를 나타내는 포트 매니저(260-a)에 대해 도시되어 있는 한편 다른 통합 채널들(290)(예를 들어, 통합 채널들(290-b, 290-c 및 290-d))은 각 집합 채널과 연관된 하나 이상의 채널(291)을 도시하지 않고 포트 매니저들(260-b, 260-c 및 260-d)에 대해 도시되어 있는데, 이는 도시된 특징부들의 가시성과 명확성을 증가시키기 위해 그렇게 도시된다.
하나 이상의 메모리 매체(295)의 개별 메모리 매체(예를 들어, 메모리 매체(295-a))는 하나 이상의 메모리 디바이스(예를 들어, 3DXP 다이)를 포함할 수 있다. 일부 경우에, 개별 메모리 매체의 메모리 디바이스들은 집합 채널(290) 중 하나를 통해 원하는 집합 대역폭을 얻기 위해 병렬로 동작하도록 구성될 수 있다. 3DXP 다이는 일례로서, 8-비트 폭 데이터 버스를 갖도록 구성될 수 있고 각 채널(291)이 8-비트 폭이 되게 만들어져 채널들(291) 각각(예를 들어, 채널(291-a))과 연관될 수 있다. 또한, 3DXP 다이는 일련의 열여섯(16) 개의 버스트 동안 128-비트 데이터를 생성하도록 구성될 수 있으며, 여기서 각 버스트는 채널(291)을 통해 8-비트 폭 데이터를 생성할 수 있다. 이와 같이, 128-비트 데이터는 각 3DXP 다이가 3DXP 다이 내의 메모리 셀들을 판독하는 액세스 명령에 기초하여 생성하는 단일 데이터 유닛으로 고려될 수 있다.
일부 경우에, 코드 워드는 복수의 채널(예를 들어, 각 채널 버스트당 88 비트의 데이터를 생성하는 열한(11) 개의 채널(291-a 내지 291-k))에 걸친 복수의 채널 버스트(예를 들어, 일련의 열여섯(16) 개의 버스트)의 비트 필드 세트(예를 들어, 레이아웃)를 포함하도록 구성될 수 있다. 이와 같이, 코드 워드는 일부 경우에 1,408 비트의 정보를 포함할 수 있다. 설명은 메모리 매체의 논리적 관점에서 이해될 수 있다. 논리적 3DXP 다이들의 양보다 다량의 물리적 3DXP 다이가 메모리 매체와 연관된 다양한 액세스 동작(예를 들어, 판독 동작, 기록 동작)과 관련된 오버헤드를 고려하여 메모리 매체에 존재할 수 있다. 메모리 매체 내에서, 코드 워드는 부분들로 구분되고 하나보다 많은 다이에 기록되거나 그로부터 판독될 수 있다(예를 들어, 128 바이트 사용자 데이터가 열 개의 3DXP 다이에 걸쳐 저장됨).
여기에 설명된 다양한 예는 3DXP 다이들을 사용하여 메모리 매체(295)가 본 개시의 코드 워드 포맷 및 구조를 지원하는 방법들, 디바이스들 및 시스템들에 따라 포트 매니저들(260)과 함께 구성되고 동작할 수 있는 방법을 설명한다. 일부 경우에, 메모리 매체(295)는 다른 것들 중에서도, FeRAM 기술, PCM 기술, MRAM 기술과 같은 3DXP 메모리 기술과 상이한 메모리 기술들을 채용하는 다른 유형들의 메모리 디바이스들을 포함할 수 있다. 이와 같이, 본 개시는 특정 메모리 기술(예를 들어, 3D XPointTM 메모리 기술)에 제한되지 않는다.
일부 경우에서, 디바이스 또는 시스템은 복수의 메모리 매체로서, 상기 복수의 메모리 매체 중 적어도 하나의 메모리 매체는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는 코드 워드를 생성하도록 구성될 수 있는, 상기 복수의 메모리 매체, 호스트 디바이스로부터 액세스 명령을 수신하도록 구성된 적어도 하나의 호스트 인터페이스, 및 상기 적어도 하나의 호스트 인터페이스와 전자 통신하는 복수의 포트 매니저 및 상기 복수의 메모리 매체의 상이한 하나 이상의 메모리 매체와 전자 통신하는 각 포트 매니저를 포함할 수 있다. 일부 경우에, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 액세스 명령을 수신하는 것에 기초하여 상기 코드 워드의 제1 부분을 수신하도록 구성될 수 있고 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 제2 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성될 수 있다.
디바이스 또는 시스템의 일부 예에서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트 중 제1 채널 버스트의 상기 복수의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정하도록 구성될 수 있다. 설명된 디바이스 또는 시스템의 일부 예에서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 상기 복수의 채널에 대해 상기 세트의 상기 비트 필드로부터 정보를 식별함으로써 상기 코드 워드 조건을 결정하도록 더 구성될 수 있으며, 상기 정보는 복수의 사전 구성된 코드 워드 조건으로부터 제1 코드 워드 조건을 나타낸다.
디바이스 또는 시스템의 일부 예에서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트에서의 제1 채널 버스트 내의 상기 복수의 채널에 대해 상기 세트의 비트 필드를 포함하는 스페어 비트들을 식별하도록, 그리고 상기 스페어 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성될 수 있다. 디바이스 또는 시스템의 일부 예에서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는 상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트에서의 제1 채널 버스트 내의 상기 복수의 채널에 대해 상기 세트의 비트 필드를 포함하는 순환 잉여 검사(CRC) 비트들을 식별하도록, 그리고 상기 CRC 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성될 수 있다.
디바이스 또는 시스템의 일부 예에서, 상기 복수의 메모리 매체 중 적어도 하나의 메모리 매체는 상 변화 메모리를 포함할 수 있다. 디바이스 또는 시스템의 일부 예에서, 상기 복수의 채널은 열한(11) 개의 채널을 포함할 수 있다. 디바이스 또는 시스템의 일부 예에서, 상기 복수의 채널 버스트는 열여섯(16) 개의 버스트를 포함할 수 있다.
도 3은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조(300)(이는 대안적으로 코드 워드 레이아웃(300)이라고 할 수 있다)의 일례를 도시한다. 코드 워드 레이아웃(300)은 전체 코드 워드에 대한 코드 워드 포맷 및 구조를 도시할 수 있다. 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함할 수 있다. 도 3은 또한 개별 채널(예를 들어, 도 2를 참조하여 설명된 채널(291-a))에 대한 레이아웃들의 다양한 구성을 도시하는 레이아웃들(301 내지 305)(포맷들이라고도 함)를 포함한다. 도 3은 또한 코드 워드의 일 부분(예를 들어, 복수의 채널에 걸친 제1 채널 버스트 동안 서브 비트 필드 세트)에 대응할 수 있는 레이아웃(306)을 도시한다. 코드 워드 포맷 및 구조의 일례로서, 코드 워드 레이아웃(300)은 액세스 명령에 응답하여 메모리 매체(예를 들어, 도 1 및 도 2를 참조하여 설명된 메모리 매체(130-a) 또는 메모리 매체(295-a))에 의해 생성될 수 있는 데이터(예를 들어, 1,408 비트의 데이터)의 일정량의 필드(예를 들어, 비트 필드)를 포함할 수 있다. 코드 워드는 액세스 명령의 대상이 될 수 있는 128 바이트(예를 들어, 1,024 비트)의 사용자 데이터를 포함할 수 있다. 코드 워드 내의 나머지 비트 필드(예를 들어, 384 비트의 데이터)는 액세스 동작 동안 정확한 사용자 데이터의 전달을 가능하게 하는 다양한 정보를 전달할 수 있다. 나아가, 다양한 정보를 전달하는 나머지 비트들은 액세스 동작 동안 코드 워드와 연관된 저레이턴시 동작들을 가능하게 하도록 구성될 수 있다.
코드 워드 레이아웃(300)은 복수의 채널(예를 들어, 채널들(310-a 내지 310-k))에 걸쳐 있을 수 있다. 일부 경우에, 복수의 채널(310)의 각 채널(예를 들어, 채널(310-a))은 3DXP 다이와 연관될 수 있으며, 이는 8-비트 폭 데이터 버스를 포함할 수 있다. 일례로서, 각 채널(예를 들어, 각 3DXP 다이)은 3DXP 다이에 대한 액세스 명령(예를 들어, 판독 명령)과 연관된 트랜잭션의 단일 객체로서 총 128 비트의 데이터를 생성할 수 있다. 나아가, 각 채널 버스트가 8-비트 폭 데이터 버스를 통해 여덟(8) 개의 비트의 데이터를 생성하도록 구성되는 일련의 열여섯(16) 개의 채널 버스트로서 128 비트의 데이터가 생성될 수 있다. 그로 인해, 코드 워드 레이아웃 내의 각 채널(예를 들어, 채널들(310-a 내지 310-k) 각각)은 열여섯(16) 개의 8-비트 데이터 그룹―예를 들어, 채널(310-g)의 경우 G7..G0), 여기서 G7..G0은 G7이 최상위 비트일 수 있고(예를 들어, 일련의 여덟(8) 개의 0과 1의 여덟 번째 비트) G0가 최하위 비트(예를 들어, 일련의 여덟(8) 개의 0과 1의 첫 번째 비트)일 수 있는 일련의 여덟(8) 개의 0과 1을 나타낼 수 있다―을 포함하는 128 비트의 데이터에 대응할 수 있으며, 여기서 열여섯(16) 개의 8-비트 데이터 그룹의 각 그룹은 열여섯(16) 개의 채널 버스트중 하나와 연관될 수 있다.
일례로, 코드 워드 레이아웃(300)은 열한(11) 개의 채널에 걸쳐 있을 수 있고 열한(11) 개의 채널의 각 채널은 각 채널 버스트에 8-비트의 데이터를 생성할 수 있으며, 그 다음 열한(11) 개의 채널에 걸쳐 각 채널 버스트(예를 들어, 88 비트 데이터의 제1 채널 버스트(320-1))에 총 88 비트의 데이터가 생성될 수 있다. 그에 따라, 코드 워드 레이아웃(300)은 1,408 비트의 데이터(예를 들어, 각 채널 버스트가 88 비트의 데이터를 생성하는 제1 채널 버스트(320-1) 내지 제16 채널 버스트(320-16))를 메모리 매체(예를 들어, 메모리 매체(130-a) 또는 메모리 매체(295-a))에 대한 액세스 명령(예를 들어, 판독 명령)과 연관된 트랜잭션의 단일 객체로서 포함할 수 있다. 코드 워드 레이아웃(300)은 액세스 명령(예를 들어, 판독 명령, 기록 명령)과 연관된 저레이턴시(예를 들어, 사용자 데이터를 생성하는 데 적은 양의 클록 에지)로 신뢰할 수 있는 트랜잭션(예를 들어, 사용자 데이터의 정확한 콘텐츠를 전달하는)을 지원할 수 있다.
코드 워드 내의 각 필드(예를 들어, 각 비트 필드) 또는 필드 세트(예를 들어, 비트 필드 세트)는 후술될 바와 같이 사용자 데이터의 저레이턴시의 신뢰할 수 있는 트랜잭션을 가능하게 하는 다양한 정보를 포함할 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 코드 워드 조건을 나타내도록 구성될 수 있다(예를 들어, CwCon 비트들을 사용하여). 일부 경우에, 코드 워드는 다수의 가능한 상태(예를 들어, 네 개의 상태) 중 하나로 구성될 수 있다. 일례로서, CwCon 비트들은 코드 워드가 정규 또는 포워딩된 코드 워드 중 하나임을 나타낼 수 있다. 정규 코드 워드는 일례로서 본 개시에서 설명되는 코드 워드 레이아웃(300)을 포함할 수 있다. 포워딩된 코드 워드는 코드 워드에 대한 유효한 대체 어드레스(예를 들어, 포워딩 어드레스)의 식별을 가능하게 할 수 있는 코드 워드 레이아웃을 포함할 수 있다. 일부 경우에, 포워딩된 코드 워드는 코드 워드와 연관된 유효한 어드레스의 적어도 하나의 카피를 포함할 수 있다. 나아가, CwCon 비트들이 추가적으로 또는 대안적으로 코드 워드가 반전되지 않은 코드 워드 또는 반전된 코드 워드 중 하나임을 나타낼 수 있다. 일부 경우에, 반전된 코드 워드 내의 비트들의 논리 상태들(예를 들어, 1들 및 0들)은 반전된 코드 워드의 정보가 해석(예를 들어, 파싱)될 수 있기 전에 반전(예를 들어, 플립, 역전)되어야 할 수 있지만, 반전되지 않은 코드 워드는 반전되지 않은 코드 워드의 정보를 해석(예를 들어, 파싱)하기 전에 반전될 필요가 없을 수 있따.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 코드 워드와 연관된 액세스 동작들(예를 들어, 판독 동작들, 기록 동작들)의 양을 나타내도록 구성될 수 있다(예를 들어, WrCnt 비트들). 일부 경우에, WrCnt 비트들은 WrCnt 비트들에 저장된 액세스 동작들의 양에 기초하여 코드 워드를 판독하기 위한 적절한 바이어싱 방식의 결정을 가능하게 할 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 코드 워드의 일 부분이 무효할 수 있음을 나타내도록 구성될 수 있다(예를 들어, 포이즌 비트들(poison bits)을 사용하여). 일부 경우에, 포이즌 비트들은 코드 워드의 일 부분이 무효함을 나타내는 플래그로서 사용될 수 있다. 일부 예에서, 포이즌 비트들(예를 들어, 플래그 비트들)은 사용자 데이터의 하반부(예를 들어, D511..D0 비트들, 여기서 D0가 사용자 데이터의 1,024 비트에서 최하위 비트를 나타냄)가 무효함을 나타낼 수 있다. 다른 예들에서, 포이즌 비트들(예를 들어, 플래그 비트들)은 사용자 데이터의 상반부(예를 들어, D1023..D512 비트들, 여기서 D1023가 사용자 데이터의 1,024 비트에서 최상위 비트를 나타냄)가 무효함을 나타낼 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 순환 잉여 검사(CRC, cyclic redundancy check) 비트들로서 구성될 수 있다. 일부 경우에, CRC 비트들은 코드 워드 내의 적어도 하나의 에러 비트의 존재를 검출함으로써 코드 워드 내의 데이터를 보호할 수 있다. 예를 들어, CRC 비트들은 사용자 데이터(예를 들어, 1,024 비트의 사용자 데이터), WrCnt 비트들 및 포이즌 비트들에 포함된 정보를 보호할 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 코드 워드 에러 제어 코드 비트들(예를 들어, CwECC 비트들)로서 구성될 수 있다. 일부 경우에, CwECC 비트들은 사용자 데이터(예를 들어, 1,024 비트의 사용자 데이터), WrCnt 비트들 및 포이즌 비트들에 포함된 정보를 커버하도록 구성될 수 있다. 예를 들어, CwECC 비트들은 에러 비트들의 양의 특정 한계 내에서 위에서 식별된 필드들에 존재하는 에러들의 검출 및 정정을 가능하게 할 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 복구 비트들로서 구성될 수 있다. 일부 경우에, 복구 비트들은 XOR/Sub 비트들로 지칭될 수 있다. 각각의 XOR/Sub 비트는 각각의 채널 버스트의 다른 채널들의 대응하는 비트들의 디지털 또는 부울 논리 배타적 OR(XOR) 곱을 포함할 수 있다. 예를 들어, 제2 채널 버스트(예를 들어, 제2 채널 버스트(320-2))의 K7 비트(예를 들어, 채널(310-k)에서의 8-비트 그룹의 최상위 비트)는 제2 채널 버스트 내 A7 비트(예를 들어, 채널(310-a)에서의 8-비트 그룹의 최상위 비트) 내지 J7 비트(예를 들어, 예를 들어, 채널(310-j)에서의 8-비트 그룹의 최상위 비트)의 배타적 OR(XOR) 곱을 포함할 수 있다. 이러한 방식으로, 제2 채널 버스트의 K7 비트는 비트(예를 들어, 제2 채널 버스트(320-2)의 G7 비트)가 불완전한 것으로 결정되는 경우 제2 채널 버스트 내 비트(예를 들어, 제2 채널 버스트(320-2)의 G7 비트)의 재구성을 가능하게 할 수 있다. 일부 경우에, 복구 비트(예를 들어, 제2 채널 버스트(320-2)의 K7 비트)는 불완전 비트(예를 들어, 제2 채널 버스트(320-2)의 G7 비트)에 반복적으로 불완전해질 때 불완전 비트를 대체할 수 있다.
코드 워드 레이아웃 내의 하나 이상의 필드(예를 들어, 비트 필드)는 스페어 비트들로서 구성될 수 있다. 일부 경우에, 스페어 비트들은 코드 워드에 대해 실패한 것으로 지정된 비트들을 대체하기 위해 스페어들로서 동작하도록 구성될 수 있다. 일부 경우에, 실패한 것으로 지정된 비트들은 3DXP 다이 내의 메모리 셀들과 연관될 수 있으며, 이는 불완전해질 수 있다. 스페어 비트들은 코드 워드 내 사용자 데이터의 신뢰할 수 있는 트랜잭션을 지원하는 데 실패한 것으로 지정된 비트들을 대체하도록 라우팅될 수 있다. 일부 경우에, CRC 비트들의 일부 필드들이 스페어 비트들로서 구성될 수 있다. 다른 경우들에서, 복구 비트들의 일부 필드(예를 들어, XOR/Sub 비트)가 스페어 비트들로서 구성될 수 있다. 다시 말해, 코드 워드 레이아웃 내의 일정량의 스페어 비트는 CRC 비트들 또는 복구 비트들에 대한 일정량의 필드와 교환 가능하도록 구성될 수 있다. 일부 경우에, 스페어 비트들의 양은 메모리 매체(예를 들어, 메모리 매체(130), 메모리 매체(295))를 구축하는 데 사용되는 메모리 기술(예를 들어, 3D XPointTM, FeRAM, MRAM 기술들)의 성숙도에 기초하여 결정될 수 있다.
계속해서 도 3을 참조하면, 코드 워드 레이아웃 내의 다양한 필드(예를 들어, 비트 필드)는 메모리 매체와 연관된 액세스 동작 동안 저레이턴시 동작을 지원하도록 구성(예를 들어, 배열)될 수 있다. 도 3은 개별 채널(예를 들어, 채널들(310-a 내지 310-k) 각각)에 대한 8-비트 그룹의 다양한 구성을 도시하는 레이아웃들(301 내지 305)을 포함한다. 예를 들어, 레이아웃들(301 내지 305)의 각 레이아웃은 메모리 매체(예를 들어, 메모리 매체(295-a)) 내의 메모리 디바이스(예를 들어, 3DXP 다이)가 주어진 채널 버스트에 생성할 수 있는 여덟(8) 개 비트 그룹을 포함한다.
레이아웃(301)은 CwCon 비트들의 하나 이상(예를 들어, 세 개)의 필드, CRC 비트들(이는 스페어 비트로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 필드, 및 XOR/Sub 비트들(예를 들어, 복구 비트들, 이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 세 개)의 비트를 포함할 수 있다. 레이아웃(302)은 CwCon 비트들의 하나 이상(예를 들어, 세 개)의 필드, CRC 비트들(이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 필드, 및 XOR/Sub 비트들(예를 들어, 복구 비트들, 이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 비트, 및 하나 이상의 WrCnt 비트(예를 들어, 카운터 비트)를 포함할 수 있다. 레이아웃(303)은 CwCon 비트들의 하나 이상(예를 들어, 세 개)의 필드, CRC 비트들(이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 필드, 및 WrCnt 비트들의 하나 이상(예를 들어, 세 개)의 필드를 포함할 수 있다. 레이아웃(304)은 CwCon 비트들의 하나 이상(예를 들어, 세 개)의 필드, CRC 비트들(이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 필드, WrCnt 비트들의 하나 이상의 필드, 및 포이즌 비트들(예를 들어, 플래그 비트들)의 하나 이상(예를 들어, 두 개)의 필드를 포함할 수 있다. 레이아웃(305)은 CwCon 비트들의 하나 이상(예를 들어, 세 개)의 필드, XOR/Sub 비트들(이는 옵션으로 스페어 비트들로서 구성될 수 있다)의 하나 이상(예를 들어, 두 개)의 필드, 및 XOR/Sub 비트들의 하나 이상(예를 들어, 세 개)의 필드를 포함할 수 있다.
저레이턴시 동작을 가능하게 하는 코드 워드 레이아웃의 일례로서, 제1 채널 버스트(예를 들어, 채널 버스트(320-1))에 대응하는 서브 비트 필드 세트는 레이아웃(306)에 도시된 바와 같이 구성될 수 있다. 레이아웃(306)에서, 채널(310-a)의 각 8-비트 그룹(예를 들어, A7..A0) 및 채널(310-b)의 각 8-비트 그룹(예를 들어, B7..B0)은 레이아웃(301)을 갖도록 구성될 수 있다. 또한, 채널(310-c)의 8-비트 그룹(예를 들어, C7..C0)은 레이아웃(302)을 갖도록 구성될 수 있다. 그렇지 않다면 적어도 일부 채널(310-d)의 각 8-비트 그룹(예를 들어, D7..D0) 내지 채널(310-i)의 각 8-비트 그룹(예를 들어, I7..I0)은 레이아웃(303)을 갖도록 구성될 수 있다. 채널(310-j)의 8-비트 그룹(예를 들어, J7..J0)은 레이아웃(304)을 갖도록 구성될 수 있다. 나아가, 채널(310-k)의 8-비트 그룹(예를 들어, K7..K0)은 레이아웃(305)을 갖도록 구성될 수 있다.
코드 워드 레이아웃(300)의 제1 채널 버스트(예를 들어, 제1 채널 버스트(320-1))에 대응하는 서브 비트 필드 세트(예를 들어, 열한(11) 개 채널의 각 채널로부터의 여덟(8) 개 비트를 포함하는 총 88 비트)를 구성한 결과, 88 비트(예를 들어, 레이아웃(306)의 88 비트)의 제1 채널 버스트는 코드 워드와 연관된 액세스 동작(예를 들어, 1,024 비트의 사용자 데이터를 판독하는)의 저레이턴시의 신뢰할 수 있는 트랜잭션을 가능하게 하기 위한 다양한 정보를 포함할 수 있다. 일부 경우에, 포트 매니저(예를 들어, 포트 매니저(260-a))는 메모리 매체와 연관된 코드 워드의 제1 부분(예를 들어, 제1 채널 버스트(320-1)에 대응하는 레이아웃(306)의 비트들)을 수신할 수 있다. 포트 매니저는 포트 매니저가 후속 채널 버스트들 동안 코드 워드의 추가 부분들(예를 들어, 제2 채널 버스트(320-2)에 대응하는 코드 Ÿd 레이아웃(300)의 비트들 등)을 수신하는 동안 코드 워드의 제1 부분을 파싱(예를 들어, CwCon 비트들로부터 정보를 식별, 스페어 비트들을 식별, 카운터 비트들을 식별)할 수 있다. 이와 같이, 포트 매니저는 저레이턴시로 호스트 디바이스에 신뢰할 수 있는 정보를 공급하기 위해 코드 워드와 연관된 다양한 동작을 병렬화할 수 있다.
코드 워드 레이아웃(300)은 또한 1,024 비트의 사용자 데이터 필드(예를 들어, 제2 채널 버스트(320-2) 내지 제16 채널 버스트(320-16)에 걸친 채널들(310-a 내지 310-h), 및 제2 채널 버스트(320-2) 내지 제5 채널 버스트(320-5)에 걸친 채널들(310-i 및 310-j)), CwECC 필드들(예를 들어, 제6 채널 버스트(320-6) 내지 제16 채널 버스트(320-16)에 걸친 채널들(310-i 및 310-j)), 및 XOR/Sub 필드들(예를 들어, 제2 채널 버스트(320-2) 내지 제16 채널 버스트(320-16)에 걸친 채널(310-k))을 도시할 수 있다.
제1 채널 버스트(예를 들어, 제1 채널 버스트(320-1)) 내에는 예를 들어, 전체 열한(11) 개 채널(예를 들어, 채널들(310-a 내지 310-k))에 걸쳐, 총 33개의 CwCon 비트 필드(각 채널당 세 개의 필드)가 있을 수 있다. CwCon 비트 필드들에 대한 총량(예를 들어, 총 33개 필드)은 복수의 코드 워드 상태(예를 들어, 코드 워드의 네 가지 상이한 상태) 중 하나를 나타낼 수 있다. CwCon 비트 필드들의 총량은 CwCon 필드에서의 일정량의 에러가 용인될 수 있도록 CwCon 비트들이 나타내도록 구성되는 정보(예를 들어, 네 가지 상이한 상태 중 하나)의 특정 리던던시를 제공하도록 결정될 수 있다. 일부 경우에, 코드 워드의 유효한 상태를 나타내는 데 33개의 CwCon 비트에서 최대 열한(11) 개의 에러가 용인될 수 있다. 또한, 일정량의 CwCon 필드는 전체 채널들에 걸쳐 거의 동일하게 분산된 CwCon 비트들과 연관된 에러들을 가질 개연성을 제공하기 위해 전체 채널들(예를 들어, 레이아웃(306)으로 도시된 바와 같이 열한(11) 개 채널)에 걸쳐 분산될 수 있다.
또한, 포트 매니저(예를 들어, 도 2를 참조하여 설명된 포트 매니저(260-a))가 메모리 매체(예를 들어, 메모리 매체(295-a))와 연관된 코드 워드의 제1 채널 버스트(예를 들어, 제1 채널 버스트(320-1))에 일정량의 CwCon 비트를 수신할 수 있음에 따라, 포트 매니저는 코드 워드의 추가 부분을 수신하는 것과 동시에 CwCon 비트들에서 정보를 해석(예를 들어, 파싱)할 수 있다. 그 결과, 포트 매니저는 코드 워드의 추가 부분 수신과 동시에 코드 워드 재구성을 개시할 수 있다. 예를 들어, 포트 매니저는 코드 워드가 반전된 코드 워드임을 나타 내기 위해 포트 매니저가 CwCon 비트들을 해석(예를 들어, 파싱)할 때 코드 워드의 적어도 하나의 비트 반전을 개시할 수 있다. 다른 예들에서, 포트 매니저는 포워딩된 코드 워드를 나타내는 코드 워드의 유형을 포함하는 코드 워드 조건을 결정하는 것에 기초하여 코드 워드와 연관된 포워딩 어드레스 결정을 개시할 수 있다. 이와 같이, 포트 매니저는 포트 매니저가 전체 코드 워드를 수신할 때까지 기다릴 필요 없이 코드 워드를 재구성하여 코드 워드와 연관된 저레이턴시 동작을 가능하게 할 수 있다.
제1 채널 버스트(예를 들어, 제1 채널 버스트(320-1)) 내에는 예를 들어, 전체 열한(11) 개 채널(예를 들어, 채널들(310-a 내지 310-k))에 걸쳐, 최대 총 22개의 스페어 비트 필드(각 채널당 두 개의 필드)가 있을 수 있다. 일부 경우에, 각 채널당 두 개의 스페어 비트는 채널 내의 불완전한 비트들을 대체하도록 스페어 비트들을 구현하는 것을 가능하게 할 수 있다. 여기에 설명된 바와 같이, 불완전한 비트들은 메모리 매체(예를 들어, 메모리 매체(295-a)) 내의 메모리 디바이스(예를 들어, 3DXP 다이)의 메모리 셀들과 연관될 수 있다.
또한, 포트 매니저(예를 들어, 포트 매니저(260-a))가 메모리 매체(예를 들어, 메모리 매체(295-a))와 연관된 코드 워드의 제1 채널 버스트에 스페어 비트들(예를 들어, 제1 채널 버스트(320-1)에 최대 22개의 스페어 비트)을 수신할 수 있음에 따라, 포트 매니저는 포트 매니저가 나중 채널 버스트에서 불완전한 비트들을 식별하자마자 불완전한 비트들을 대체하도록 스페어 비트들을 구현할 수 있다. 예를 들어, 포트 매니저가 제3 채널 버스트(320-3) 내 채널(310-d)의 D1 비트가 첫 번째 불완전한 비트일 수 있다고 결정할 때, 포트 매니저는 포트 매니저가 제3 채널 버스트(320-3)에 불완전한 D1 비트를 수신하자마자 제3 채널 버스트(320-3) 내 채널(310-d)의 D1 비트를 제1 스페어 비트(예를 들어, 제1 채널 버스트(320-1) 내 채널(310-a)의 스페어 비트(A4))로 대체할 수 있다. 이와 같이, 포트 매니저는 포트 매니저가 에러 제어 동작을 개시하기 위해 CwECC 필드들에서 이용 가능한 정보(예를 들어, 제6 채널 버스트(320-6)에서 이용 가능한 CwECC 비트들)를 적용하기 전에 실패한 비트들을 스페어 비트들로 대체할 충분한 시간을 가질 수 있다. 이러한 방식으로, 포트 매니저는 포트 매니저가 코드 워드와 연관된 저레이턴시 동작을 가능하게 하기 위해 코드 워드에 대한 에러 제어 동작을 개시할 수 있기 전에 스페어 비트들을 구현할 수 있다.
포트 매니저(예를 들어, 포트 매니저(260-a))는 포트 매니저가 채널 실패가 존재하고 그것의 실패 채널과 연관된 정보가 XOR/Sub 필드들에 저장된 정보에 기초하여 재구축될 수 있다고 결정할 때 포트 매니저가 데이터의 XOR 재구성을 수행할 수 있도록 주어진 채널 버스트에서 다른 코드 워드 정보와 병렬로 XOR/Sub 필드들을 수신할 수 있다. 이러한 방식으로, 포트 매니저는 포트 매니저가 코드 워드와 연관된 저레이턴시 동작을 가능하게 하기 위해 주어진 채널 버스트에 정보를 수신함에 따라 주어진 채널 버스트의 다른 채널에 대응하는 비트들을 재구성할 수 있다.
일부 경우에, CwECC 필드들은 마지막 몇 개의 채널 버스트(예를 들어, 채널 버스트들(320-14 내지 320-16))에 분산될 수 있고 포트 매니저(예를 들어, 포트 매니저(260-a))는 그것이 CwECC 필드들에서의 정보에 기초하여 에러 제어 동작을 개시하기 전에 거의 전체 코드 워드를 수신 할 때까지 기다려야 할 수 있다. 반대로, 포트 매니저는 코드 워드 레이아웃(300)에 도시된 바와 같이 제6 채널 버스트(예를 들어, 제6 채널 버스트(320-6) 등)에 일찍이 CwECC 필드들을 수신할 수 있다. 이러한 방식으로 포트 매니저는 코드 워드와 연관된 저레이턴시 동작을 가능하게 하기 위해 그것이 제6 채널 버스트(예를 들어, 제6 채널 버스트(320-6))에서 수신한 CwECC 필드에서의 정보에 기초하여 에러 제어 동작을 개시할 수 있다.
예시적인 코드 워드 레이아웃(300)에 도시된 바와 같이, 제1 채널 버스트(예를 들어, 제1 채널 버스트(320-1))는 다양한 정보를 포함하는 다양한 필드와 연관된 불규칙성을 포함할 수 있다. 반대로, 나머지 채널 버스트들(예를 들어, 제2 채널 버스트(320-2) 내지 제16 채널 버스트(320-16))는 사용자 데이터 필드들, XOR/Sub 필드들 및 CwECC 필드들과 연관된 규칙성을 포함할 수 있다. 코드 워드 레이아웃(300)에서의 그러한 규칙성은 규칙성에 기초하여 하드웨어 구성을 단순화함으로써 코드 워드와 연관된 저레이턴시 동작을 가능하게 할 수 있다.
도 4는 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 제어기(415)의 블록도(400)를 도시한다. 제어기(415)는 도 1 내지 도 2를 참조하여 설명된 제어기(120) 또는 제어기(230)의 양태들의 일례일 수 있다. 제어기(415)는 바이어싱 구성요소(420), 타이밍 구성요소(425), 채널 매니저(430) 및 코드 워드 매니저(435)를 포함할 수 있다. 이러한 모듈들 각각은 직접 또는 간접적으로, 서로 통신할 수 있다(예를 들어, 하나 이상의 버스를 통해).
채널 매니저(430)는 메모리 매체와 연관된 코드 워드의 제1 부분을 수신할 수 있되, 코드 워드는 채널 세트에 걸친 채널 버스트 세트를 나타내는 비트 필드 세트를 포함하고, 코드 워드의 제1 부분을 파싱하는 것에 기초하여 메모리 매체와 통신할 수 있고, 상기 제1 채널 버스트에서 상기 코드 워드의 상기 제1 부분을 수신한 후 제2 채널 버스트에서 상기 코드 워드의 제2 부분을 수신할 수 있으며, 여기서 제2 부분은 에러 정정 코드(ECC, error correction code) 동작과 연관된 비트들을 포함할 수 있다.
코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱할 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 걸쳐 적어도 하나의 플래그 비트를 식별할 수 있으며, 상기 적어도 하나의 플래그 비트는 상기 코드 워드의 일 부분의 무효를 나타내며, 여기서 상기 적어도 하나의 플래그 비트를 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
일부 경우에, 코드 워드 매니저(435)는 코드 워드 조건에 기초하여 코드 워드의 비트들 중 적어도 일부를 반전시킬 수 있으며, 여기서 코드 워드 조건은 코드 워드의 비트들의 반전 상태를 포함할 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드 조건에 기초하여 상기 코드 워드의 포워딩 어드레스를 결정할 수 있으며, 여기서 상기 코드 워드 조건은 상기 코드 워드와 연관된 유효 어드레스의 적어도 하나의 카피를 포함할 수 있는 포워딩된 코드 워드를 나타내는 상기 코드 워드의 유형을 포함할 수 있고, 여기서 상기 메모리 매체와 통신하는 것은 상기 코드 워드의 상기 포워딩 어드레스를 사용하여 상기 메모리 매체에 액세스 명령을 송신하는 것을 포함할 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 스페어 비트들을 식별할 수 있으며, 여기서 상기 스페어 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정할 수 있으며, 여기서 상기 코드 워드 조건에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분에서 순환 잉여 검사(CRC) 비트들을 식별할 수 있으며, 상기 CRC 비트들은 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드를 포함하고, 여기서 상기 CRC 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 복구 비트들을 식별할 수 있으며, 상기 복구 비트들은 상기 제1 채널 버스트의 다른 채널에서 대응하는 비트들을 재구성하기 위한 정보를 저장하고, 여기서 상기 복구 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수있다.
일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 코드 워드를 재구성할 수 있으며, 여기서 상기 메모리 매체와 통신하는 것은 상기 코드 워드를 재구성하는 것에 기초할 수 있다. 일부 경우에, 코드 워드 매니저(435)는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 카운터 비트들을 식별할 수 있으며, 상기 카운터 비트들은 상기 코드 워드와 연관된 액세스 동작들의 양을 나타낼 수 있고, 여기서 상기 카운터 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다. 일부 경우에, 코드 워드 매니저(435)는 에러 정정 코드 (ECC) 동작을 개시하기 전에, 에러 정정 코드 (ECC) 동작을 개시하기 전에 상기 스페어 비트들을 식별하는 것에 기초하여 상기 코드 워드의 비트 서브 세트를 상기 스페어 비트들로 대체할 수 있다.
일부 경우에, 코드 워드 조건을 결정하는 것은 상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 상기 채널 세트의 채널 서브 세트에서의 상기 세트의 상기 비트 필드에서 정보를 식별하는 것을 포함한다. 일부 경우에, 코드 워드 조건을 결정하는 것은 상기 코드 워드 조건을 사전 구성된 코드 워드 조건 세트로부터 제1 코드 워드 조건으로 결정하는 것을 포함한다. 일부 경우에, 상기 코드 워드 조건은 상기 코드 워드의 유형 또는 상기 코드 워드의 비트들의 반전 상태 중 적어도 하나, 또는 양자를 나타낸다. 일부 경우에, 상기 스페어 비트들의 하나 이상의 비트는 CRC 정보 또는 복구 정보 중 적어도 하나를 나타내도록 구성된다. 일부 경우에, 상기 복구 비트들의 각 비트는 각각의 채널 버스트의 다른 채널들의 대응하는 비트들의 배타적 OR(XOR) 곱을 저장하도록 구성된다.
장치가 설명된다. 일부 예에서, 상기 장치는 메모리 매체 및 상기 메모리 매체 및 호스트 디바이스와 전자 통신할 수 있다. 일부 경우에, 상기 장치는 상기 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하기 위한 수단으로서, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는, 상기 수신하기 위한 수단, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하기 위한 수단, 및 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 메모리 매체 또는 상기 호스트 디바이스와 통신하기 위한 수단을 포함할 수 있다.
도 5는 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 방법(500)을 도시하는 흐름도를 도시한다. 방법(500)의 동작들은 다른 디바이스들 중에서도, 여기에 설명된 바와 같은 메모리 제어기 또는 그것의 구성요소들에 의해 구현될 수 있다. 예를 들어, 방법(500)의 동작들은 도 1 내지 도 2를 참조하여 설명된 제어기(120) 또는 제어기(230)에 의해 수행될 수 있다. 일부 예에서, 제어기는 디바이스의 기능적 요소들을 제어하여 후술될 기능들을 수행하기 위한 코드 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 제어기는 전용 하드웨어를 사용하여 후술될 기능들의 양태들을 수행할 수 있다.
505에서, 제어기는 메모리 매체와 연관된 코드 워드의 제1 부분을 수신할 수 있으며, 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함한다. 505의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 505의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 채널 매니저에 의해 수행될 수 있다.
510에서, 제어기는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱할 수 있다. 510의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 510의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 코드 워드 매니저에 의해 수행될 수 있다.
515에서, 제어기는 코드 워드의 제1 부분을 파싱하는 것에 기초하여 메모리 매체와 통신할 수 있다. 515의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 515의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 채널 매니저에 의해 수행될 수 있다.
방법(500)을 수행하기 위한 장치가 설명된다. 상기 장치는 상기 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하기 위한 수단으로서, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는, 상기 수신하기 위한 수단, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하기 위한 수단, 및 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 메모리 매체와 통신하기 위한 수단을 포함할 수 있다.
방법(500)을 수행하기 위한 다른 장치가 설명된다. 상기 장치는 메모리 매체 및 상기 메모리 매체와 전자 통신하는 제어기를 포함할 수 있으며, 여기서 제어기는 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하도록 동작 가능할 수 있되, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하며, 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 동작 가능할 수 있으며, 코드 워드의 제1 부분을 파싱하는 것에 기초하여 메모리 매체와 통신하도록 동작 가능할 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 상기 코드 워드 조건에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예에서, 코드 워드 조건을 결정하는 것은 상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 상기 복수의 채널의 채널 서브 세트에서의 상기 세트의 상기 비트 필드에서 정보를 식별하는 것을 포함할 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예에서, 코드 워드 조건을 결정하는 것은 상기 코드 워드 조건을 복수의 사전 구성된 코드 워드 조건으로부터 제1 코드 워드 조건으로 결정하는 것을 포함할 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예에서, 상기 코드 워드 조건은 상기 코드 워드의 유형 또는 상기 코드 워드의 비트들의 반전 상태 중 적어도 하나, 또는 양자를 나타낸다. 여기에 설명된 방법(500) 및 장치의 일부 예는 코드 워드 조건에 기초하여 코드 워드의 적어도 하나의 비트를 반전시키기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 코드 워드 조건은 코드 워드의 비트들의 반전 상태를 포함할 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 코드 워드 조건에 기초하여 코드 워드의 포워딩 어드레스를 결정하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 상기 코드 워드 조건은 상기 코드 워드와 연관된 유효 어드레스의 적어도 하나의 카피를 포함할 수 있는 포워딩된 코드 워드를 나타내는 상기 코드 워드의 유형을 포함할 수 있고, 여기서 상기 메모리 매체와 통신하는 것은 상기 코드 워드의 상기 포워딩 어드레스를 사용하여 상기 메모리 매체에 액세스 명령을 송신하는 것을 포함할 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 스페어 비트들을 식별하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 상기 스페어 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 제1 채널 버스트에서 상기 코드 워드의 상기 제1 부분을 수신한 후 제2 채널 버스트에서 상기 코드 워드의 제2 부분을 수신하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 제2 부분은 에러 정정 코드(ECC, error correction code) 동작과 연관된 비트들을 포함할 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예는 에러 정정 코드(ECC) 동작을 개시하기 전에, 상기 스페어 비트들을 식별하는 것에 기초하여 상기 코드 워드의 비트 서브 세트를 상기 스페어 비트들로 대체하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예에서, 상기 스페어 비트들의 하나 이상의 비트는 순환 잉여 검사(CRC, cyclic redundancy check) 정보 또는 복구 정보 중 적어도 하나를 나타내도록 구성될 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분에서 순환 잉여 검사(CRC) 비트들을 식별하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 상기 CRC 비트들은 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드를 포함하고, 여기서 상기 CRC 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 복구 비트들을 식별하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 상기 복구 비트들은 상기 제1 채널 버스트의 다른 채널에서 대응하는 비트들을 재구성하기 위한 정보를 저장하고, 여기서 상기 복구 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수있다. 여기에 설명된 방법(500) 및 장치의 일부 예에서, 상기 복구 비트들의 각 비트는 각각의 채널 버스트의 다른 채널들의 대응하는 비트들의 배타적 OR(XOR) 곱을 저장하도록 구성될 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 기초하여 상기 코드 워드를 재구성하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 여기서 상기 메모리 매체와 통신하는 것은 상기 코드 워드를 재구성하는 것에 기초할 수 있다. 여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 카운터 비트들을 식별하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포하할 수 있으며, 상기 카운터 비트들은 상기 코드 워드와 연관된 액세스 동작들의 양을 나타내고, 여기서 상기 카운터 비트들을 식별하는 것에 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
여기에 설명된 방법(500) 및 장치의 일부 예는 상기 코드 워드의 상기 제1 부분을 수신하는 것에 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 걸쳐 적어도 하나의 플래그 비트를 식별하기 위한 프로세스들, 특징부들, 수단들 또는 지시들을 더 포함할 수 있으며, 상기 적어도 하나의 플래그 비트는 상기 코드 워드의 일 부분의 무효를 나타내며, 여기서 상기 적어도 하나의 플래그 비트를 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱될 수 있다.
도 6은 본 개시의 양태들에 따른 코드 워드 포맷 및 구조를 지원하는 방법(600)을 도시하는 흐름도를 도시한다. 방법(600)의 동작들은 다른 디바이스들 중에서도, 여기에 설명된 바와 같은 메모리 제어기 또는 그것의 구성요소들에 의해 구현될 수 있다. 예를 들어, 방법(600)의 동작들은 도 1 내지 도 2를 참조하여 설명된 제어기(120) 또는 제어기(230)에 의해 수행될 수 있다. 일부 예에서, 제어기는 디바이스의 기능적 요소들을 제어하여 후술될 기능들을 수행하기 위한 코드 세트를 실행할 수 있다. 추가적으로 또는 대안적으로, 제어기는 전용 하드웨어를 사용하여 후술될 기능들의 양태들을 수행할 수 있다.
605에서, 제어기는 메모리 매체와 연관된 코드 워드의 제1 부분을 수신할 수 있으며, 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함한다. 605의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 605의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 채널 매니저에 의해 수행될 수 있다.
610에서, 제어기는 상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정할 수 있다. 610의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 610의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 코드 워드 매니저에 의해 수행될 수 있다.
615에서, 제어기는 상기 코드 워드의 상기 제1 부분을 수신하고 코드 워드 조건을 결정하는 것에 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱할 수 있다. 615의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 615의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 코드 워드 매니저에 의해 수행될 수 있다.
620에서, 제어기는 코드 워드의 제1 부분을 파싱하는 것에 기초하여 메모리 매체와 통신할 수 있다. 620의 동작들은 도 2 내지 도 4를 참조하여 설명된 방법들에 따라 수행될 수 있다. 특정 예들에서, 620의 동작들의 양태들은 도 4를 참조하여 설명된 바와 같은 채널 매니저에 의해 수행될 수 있다.
여기에 설명된 방법들은 가능한 구현 예들을 설명한 것이고, 동작들 및 단계들이 재배열되거나 그 외 다르게 수정될 수 있으며, 다른 구현 예들이 가능하다는 점에 유의해야 한다. 나아가, 방법들 중 둘 이상으로부터의 예들이 조합될 수 있다.
여기에 설명된 정보 및 신호들은 다양한 상이한 기술 및 기법 중 임의의 기술및 기법을 사용하여 나타내어질 수 있다. 예를 들어, 상기한 설명 전반에 걸쳐 언급될 수 있는 데이터, 지시들, 명령들, 정보, 신호들, 비트들, 기호들 및 칩들은 전압, 전류, 전자기파, 자기장 또는 입자, 광학장 또는 입자 또는 이들의 임의의 조합으로 나타내어질 수 있다. 일부 도면은 신호들을 하나의 신호로서 도시할 수 있으나; 해당 기술분야의 통상의 기술자에 의해 신호가 신호들의 버스를 나타낼 수 있으며, 이때 버스는 다양한 비트 폭을 가질 수 있다는 것이 이해될 것이다.
"전자 통신" 및 "접속된"이라는 용어는 구성요소들 간 전자 흐름을 지원하는 구성요소들 간 관계를 지칭한다. 이는 구성요소들 간 직접 연결이 포함할 수도 있고 중간 구성요소들을 포함할 수도 있다. 서로 전자 통신하거나 접속되는 구성요소들은 전자들 또는 신호들을 능동적으로 교환할 수 있거나(예를 들어, 여자된 회로에서) 전자들 또는 신호들을 능동적으로 교환하지 않을 수 있지만(예를 들어, 여자되지 않은 회로에서) 회로가 여자될 시 전자들 또는 신호들을 교환하도록 구성되고 동작 가능할 수 있다. 예로서, 스위치(예를 들어, 트랜지스터)를 통해 물리적으로 연결된 두 개의 구성요소는 스위치의 상태 (즉, 개방 또는 폐쇄)에 관계없이 전자 통신하거나 접속될 수 있다.
칼코게나이드 물질들은 S, Se 및 Te 원소들 중 적어도 하나를 포함하는 물질들 또는 합금들일 수 있다. 여기서 논의되는 상 변화 물질들은 칼코게나이드 물질들일 수 있다. 칼코게나이드 물질들은 S, Se, Te, Ge, As, Al, Si, Sb, Au, 인듐(In), 갈륨(Ga), 주석(Sn), 비스무트(Bi), 팔라듐(Pd), 코발트(Co), 산소(O),은(Ag), 니켈(Ni), 백금(Pt)의 합금들을 포함할 수 있다. 예시적인 칼코게나이드 물질들 및 합금들은 Ge-Te, In-Se, Sb-Te, Ga-Sb, In-Sb, As-Te, Al-Te, Ge-Sb-Te, Te-Ge-As, In-Sb-Te, Te-Sn-Se, Ge-Se-Ga, Bi-Se-Sb, Ga-Se-Te, Sn-Sb-Te, In-Sb-Ge, Te-Ge-Sb-S, Te-Ge-Sn-O, Te-Ge-Sn-Au, Pd-Te-Ge-Sn, In-Se-Ti-Co, Ge-Sb-Te-Pd, Ge-Sb-Te-Co, Sb-Te-Bi-Se, Ag-In-Sb-Te, Ge-Sb-Se-Te, Ge-Sn-Sb-Te, Ge-Te-Sn-Ni, Ge-Te-Sn-Pd 또는 Ge-Te-Sn-P를 포함할 수 있나, 이에 제한되지는 않는다. 하이픈으로 연결된 화학 조성물 표기법은 여기서 사용될 때, 특정 화합물 또는 합금에 포함되는 원소들을 나타내고 표기된 원소들을 수반하는 모든 화학량론을 나타내는 것으로 의도된다. 예를 들어, Ge-Te은 GexTey(여기서 x 및 y는 임의의 양수일 수 있음)를 포함할 수 있다. 가변 저항 물질들의 다른 예들은 둘 이상의 금속, 예를 들어, 전이 금속, 알칼리 토금속 및/또는 희토류 금속을 포함하는 이원 금속 산화물 물질들 또는 혼합 원자가 산화물을 포함할 수 있다. 예들은 메모리 셀들의 메모리 요소들과 연관된 특정 가변 저항 물질 또는 물질들로 제한되지는 않는다. 예를 들어, 가변 저항 물질들의 다른 예들이 메모리 요소들을 형성하는데 사용될 수 있고 다른 것들 중에서도 칼코게나이드 물질들, 거대 자기 저항 물질들 또는 폴리머 기반 물질들을 포함할 수 있다.
메모리 매체(130)를 비롯하여 여기서 논의되는 디바이스들은 실리콘, 게르마늄, 실리콘-게르마늄 합금, 갈륨 비소, 질화 갈륨 등과 같은 반도체 기판 상에 형성될 수 있다. 일부 경우에, 기판은 반도체 웨이퍼이다. 다른 경우들에서, 기판은 실리콘-온-글래스(SOG) 또는 실리콘-온-사파이어(SOP)와 같은 실리콘-온-절연체(SOI) 기판, 또는 다른 기판 상 반도체 물질들의 에피택셜 층들일 수 있다. 기판, 또는 기판의 하위 영역들의 전도성은 이에 제한되지는 않지만 인, 붕소 또는 비소를 비롯한 다양한 화학 종을 사용하는 도핑을 통해 제어될 수 있다. 도핑은 기판의 초기 형성 또는 성장 동안, 이온 주입에 의해 또는 임의의 다른 도핑 수단들에 의해 수행될 수 있다.
첨부된 도면들과 관련하여, 여기에 제시된 설명은 예시적인 구성들을 설명하고 구현될 수 있거나 본 청구범위의 범위 내에 있는 모든 예를 나타내지는 않는다. 여기서 사용된 "대표적인"이라는 용어는 "예, 사례 또는 예시로서의 역할을 하는"을 의미하고 "바람직한" 또는 "다른 예들에 비해 유리한"을 의미하지는 않는다. 발명을 실시하기 위한 구체적인 내용은 설명된 기술들에 대한 이해를 제공하기 위해 구체적인 세부 사항들을 포함한다. 그러나, 이러한 기술들은 이러한 구체적인 세부 사항들 없이도 실시될 수 있다. 일부 사례에서, 주지된 구조들 및 디바이스들은 설명된 예들의 개념들을 모호하게 하는 것을 피하기 위해 블록도 형태로 도시된다.
첨부된 도면들에서, 유사한 구성요소들 또는 특징들은 동일한 참조 라벨을 가질 수 있다. 나아가, 동일한 유형의 다양한 구성요소는 참조 라벨 다음 유사한 구성요소들을 구별하는 대시 기호 및 제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 또는 다른 광학 디스크 저장 장치, 자기 디스크 저장 장치 또는 다른 자기 저장 디바이스들 또는 임의의 다른 비일시적인 매체를 포함할 수 있다. 또한, 임의의 연결은 적절하게 컴퓨터 판독 가능 매체로 칭해진다. 예를 들어, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선(DSL) 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 사용하여 웹 사이트, 서버 또는 그 외 다른 원격 소스에서 소프트웨어가 전송된다면, 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 회선 (DSL) 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다. 디스크(disk) 및 디스크(disc)는 여기서 사용될 때, CD, 레이저 디스크, 광 디스크, 디지털 다기능 디스크(DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며 이때 디스크들(disks)은 일반적으로 데이터를 자기적으로 재생하는 한편 디스크들(discs)은 데이터를 레이저로 광학적으로 재생한다. 상기의 조합들 또한 컴퓨터 판독 가능 매체의 범위 내에 포함된다.
여기서의 설명은 해당 기술분야의 통상의 기술자가 본 개시 내용을 제조 또는 사용할 수 있게 하기 위해 제공된다. 해당 기술분야의 통상의 기술자들에게 본 개시에 대한 다양한 변형이 쉽게 이해될 것이고, 여기에 정의된 일반적 원리들은 본 개시의 범위에서 벗어나지 않고 다른 변형들에 적용될 수 있다. 따라서, 본 개시는 여기서 설명된 예들 및 설계들로 제한되지 않고, 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위에 따라야 한다.

Claims (25)

  1. 방법으로서,
    메모리 매체와 연관된 코드 워드의 제1 부분을 수신하는 단계로서, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는, 상기 제1 부분을 수신하는 단계;
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하는 단계; 및
    상기 코드 워드의 상기 제1 부분을 파싱하는 것에 적어도 부분적으로 기초하여 상기 메모리 매체와 통신하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정하는 단계를 더 포함하며, 상기 코드 워드 조건에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  3. 청구항 2에 있어서, 상기 코드 워드 조건을 결정하는 단계는:
    상기 코드 워드의 상기 제1 부분의 상기 비트 필드 세트에서 상기 복수의 채널의 채널 서브 세트에서의 상기 세트의 상기 비트 필드에서 정보를 식별하는 단계를 포함하는, 방법.
  4. 청구항 2에 있어서, 상기 코드 워드 조건을 결정하는 단계는:
    상기 코드 워드 조건을 복수의 사전 구성된 코드 워드 조건으로부터 제1 코드 워드 조건으로 결정하는 단계를 포함하는, 방법.
  5. 청구항 4에 있어서,
    상기 코드 워드 조건은 상기 코드 워드의 유형 또는 상기 코드 워드의 비트들의 반전 상태 중 적어도 하나, 또는 양자를 나타내는, 방법.
  6. 청구항 2 있어서,
    상기 코드 워드 조건에 적어도 부분적으로 기초하여 상기 코드 워드의 적어도 하나의 비트를 반전시키는 단계를 더 포함하며, 상기 코드 워드 조건은 상기 코드 워드의 비트들의 반전 상태를 포함하는, 방법.
  7. 청구항 2 있어서,
    상기 코드 워드 조건에 적어도 부분적으로 기초하여 상기 코드 워드의 포워딩 어드레스를 결정하는 단계를 더 포함하며, 상기 코드 워드 조건은 상기 코드 워드와 연관된 유효 어드레스의 적어도 하나의 카피를 포함하는 포워딩된 코드 워드를 나타내는 상기 코드 워드의 유형을 포함하고, 상기 메모리 매체와 통신하는 단계는 상기 코드 워드의 상기 포워딩 어드레스를 사용하여 상기 메모리 매체에 액세스 명령을 송신하는 단계를 포함하는, 방법.
  8. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 스페어 비트들을 식별하는 단계를 더 포함하며, 상기 스페어 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  9. 청구항 8에 있어서,
    상기 제1 채널 버스트에서 상기 코드 워드의 상기 제1 부분을 수신한 후 제2 채널 버스트에서 상기 코드 워드의 제2 부분을 수신하는 단계를 더 포함하며, 상기 제2 부분은 에러 정정 코드(ECC, error correction code) 동작과 연관된 비트들을 포함하는, 방법.
  10. 청구항 8에 있어서,
    에러 정정 코드(ECC) 동작을 개시하기 전에, 상기 스페어 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 비트 서브 세트를 상기 스페어 비트들로 대체하는 단계를 더 포함하는, 방법.
  11. 청구항 8에 있어서,
    상기 스페어 비트들의 하나 이상의 비트는 순환 잉여 검사(CRC, cyclic redundancy check) 정보 또는 복구 정보 중 적어도 하나를 나타내도록 구성되는, 방법.
  12. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분에서 순환 잉여 검사(CRC) 비트들을 식별하는 단계로서, 상기 CRC 비트들은 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드를 포함하며, 상기 CRC 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  13. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 복구 비트들을 식별하는 단계를 더 포함하며, 상기 복구 비트들은 상기 제1 채널 버스트의 다른 채널에서 대응하는 비트들을 재구성하기 위한 정보를 저장하며, 상기 복구 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  14. 청구항 13에 있어서,
    상기 복구 비트들의 각 비트는 각각의 채널 버스트의 다른 채널들의 대응하는 비트들의 배타적 OR(XOR) 곱을 저장하도록 구성되는, 방법.
  15. 청구항 1에 있어서,
    상기 코드 워드의 상기 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하는 것에 적어도 부분적으로 기초하여 상기 코드 워드를 재구성하는 단계를 더 포함하며, 상기 메모리 매체와 통신하는 단계는 상기 코드 워드를 재구성하는 것에 적어도 부분적으로 기초하는, 방법.
  16. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 대해 상기 세트의 비트 필드에서 카운터 비트들을 식별하는 단계를 더 포함하며, 상기 카운터 비트들은 상기 코드 워드와 연관된 액세스 동작들의 양을 나타내며, 상기 카운터 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  17. 청구항 1에 있어서,
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 비트 필드 세트에서 제1 채널 버스트의 적어도 하나의 채널에 걸쳐 적어도 하나의 플래그 비트를 식별하는 단계를 더 포함하며, 상기 적어도 하나의 플래그 비트는 상기 코드 워드의 일 부분의 무효를 나타내며, 상기 적어도 하나의 플래그 비트를 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분이 파싱되는, 방법.
  18. 장치로서,
    복수의 메모리 매체로서, 상기 복수의 메모리 매체 중 적어도 하나의 메모리 매체는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하는 코드 워드를 생성하도록 구성된, 상기 복수의 메모리 매체;
    호스트 디바이스로부터 액세스 명령을 수신하도록 구성된 적어도 하나의 호스트 인터페이스; 및
    상기 적어도 하나의 호스트 인터페이스와 전자 통신하는 복수의 포트 매니저 및 상기 복수의 메모리 매체의 상이한 하나 이상의 메모리 매체와 전자 통신하는 각 포트 매니저를 포함하며, 상기 복수의 포트 매니저의 적어도 하나의 포트 매니저는:
    상기 액세스 명령을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 제1 부분을 수신하도록; 그리고
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 제2 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성되는, 장치.
  19. 청구항 18에 있어서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는:
    상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트 중 제1 채널 버스트의 상기 복수의 채널에 대해 상기 세트의 비트 필드에 나타나는 코드 워드 조건을 결정하는, 장치.
  20. 청구항 19에 있어서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는:
    상기 복수의 채널에 대해 상기 세트의 상기 비트 필드로부터 정보를 식별함으로써 상기 코드 워드 조건을 결정하며, 상기 정보는 복수의 사전 구성된 코드 워드 조건으로부터 제1 코드 워드 조건을 나타내는, 상기 장치.
  21. 청구항 18에 있어서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는:
    상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트에서의 제1 채널 버스트 내의 상기 복수의 채널에 대해 상기 세트의 비트 필드를 포함하는 스페어 비트들을 식별하도록; 그리고
    상기 스페어 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성되는, 장치.
  22. 청구항 18에 있어서, 상기 복수의 포트 매니저 중 상기 적어도 하나의 포트 매니저는:
    상기 코드 워드의 상기 비트 필드 세트에서 상기 복수의 채널 버스트에서의 제1 채널 버스트 내의 상기 복수의 채널에 대해 상기 세트의 비트 필드를 포함하는 순환 잉여 검사(CRC) 비트들을 식별하도록; 그리고
    상기 CRC 비트들을 식별하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성되는, 장치.
  23. 청구항 18에 있어서, 상기 복수의 메모리 매체 중 적어도 하나의 메모리 매체는 상 변화 메모리를 포함하는, 장치.
  24. 청구항 18에 있어서,
    상기 복수의 채널은 11개의 채널을 포함하고;
    상기 복수의 채널 버스트는 16개의 버스트를 포함하는, 장치.
  25. 장치로서,
    메모리 매체;
    상기 메모리 매체 및 호스트 디바이스와 전자 통신하는 제어기를 포함하며, 상기 제어기는:
    상기 메모리 매체와 연관된 코드 워드의 제1 부분을 수신하도록 구성되며, 상기 코드 워드는 복수의 채널에 걸친 복수의 채널 버스트를 나타내는 비트 필드 세트를 포함하고;
    상기 코드 워드의 상기 제1 부분을 수신하는 것에 적어도 부분적으로 기초하여 상기 코드 워드의 추가 부분을 수신하는 것과 동시에 상기 코드 워드의 상기 제1 부분을 파싱하도록 구성되며;
    상기 코드 워드의 상기 제1 부분을 파싱하는 것에 적어도 부분적으로 기초하여 상기 메모리 매체 또는 상기 호스트 디바이스와 통신하도록 구성되는, 장치.
KR1020207034880A 2018-05-15 2019-05-09 코드 워드 포맷 및 구조 KR20200142091A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862671920P 2018-05-15 2018-05-15
US62/671,920 2018-05-15
US16/249,808 2019-01-16
US16/249,808 US11003375B2 (en) 2018-05-15 2019-01-16 Code word format and structure
PCT/US2019/031463 WO2019222014A1 (en) 2018-05-15 2019-05-09 Code word format and structure

Publications (1)

Publication Number Publication Date
KR20200142091A true KR20200142091A (ko) 2020-12-21

Family

ID=68532579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207034880A KR20200142091A (ko) 2018-05-15 2019-05-09 코드 워드 포맷 및 구조

Country Status (5)

Country Link
US (4) US11003375B2 (ko)
EP (1) EP3794452A4 (ko)
KR (1) KR20200142091A (ko)
CN (1) CN110489266B (ko)
WO (1) WO2019222014A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11003375B2 (en) 2018-05-15 2021-05-11 Micron Technology, Inc. Code word format and structure
US10831653B2 (en) 2018-05-15 2020-11-10 Micron Technology, Inc. Forwarding code word address
US10990472B2 (en) * 2018-07-24 2021-04-27 Micron Technology, Inc. Spare substitution in memory system
TWI718858B (zh) 2020-02-03 2021-02-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11416331B2 (en) 2020-12-09 2022-08-16 Micron Technology, Inc. Modified checksum using a poison data pattern

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100378181B1 (ko) 2000-06-09 2003-03-29 삼성전자주식회사 Efm/efm+ 디코딩에 의해 검출된 에러위치를 이용한c1/pi 워드의 에러정정 방법 및 장치
US7050419B2 (en) 2001-02-23 2006-05-23 Terayon Communicaion Systems, Inc. Head end receiver for digital data delivery systems using mixed mode SCDMA and TDMA multiplexing
JP2003109328A (ja) * 2001-09-28 2003-04-11 Hitachi Ltd 記憶装置及びそのエラー訂正方法
US7548558B2 (en) 2002-11-15 2009-06-16 Terayon Communications Systems, Inc. Cable modem termination system with flexible addition of single upstreams or downstreams
US9372870B1 (en) * 2003-01-21 2016-06-21 Peer Fusion, Inc. Peer to peer code generator and decoder for digital systems and cluster storage system
JP4300462B2 (ja) 2003-04-23 2009-07-22 富士フイルム株式会社 情報記録再生方法及び装置
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
US9495241B2 (en) * 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8082482B2 (en) 2007-08-31 2011-12-20 International Business Machines Corporation System for performing error correction operations in a memory hub device of a memory module
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
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
KR101386489B1 (ko) 2008-01-14 2014-04-21 삼성전자주식회사 메모리 장치 및 멀티 비트 프로그래밍 방법
US9184874B2 (en) 2008-03-31 2015-11-10 Qualcomm Incorporated Storing log likelihood ratios in interleaved form to reduce hardware memory
US8321758B2 (en) * 2008-08-05 2012-11-27 Advanced Micro Devices, Inc. Data error correction device and methods thereof
US8004431B2 (en) 2008-12-09 2011-08-23 Qualcomm Incorporated Fast parsing of variable-to-fixed-length codes
US7881089B2 (en) 2009-02-24 2011-02-01 International Business Machines Corporation Coding techniques for improving the sense margin in content addressable memories
KR20100101449A (ko) 2009-03-09 2010-09-17 삼성전자주식회사 메모리 장치, 그것의 마스크 데이터 전송 방법 및 입력 데이터 정렬 방법
JP5503464B2 (ja) 2010-08-30 2014-05-28 沖電気工業株式会社 帯域割当装置、帯域割当方法、帯域割当プログラム、及び通信端末
US8677211B2 (en) * 2010-12-23 2014-03-18 International Business Machines Corporation Data bus inversion using spare error correction bits
EP2525496A1 (en) * 2011-05-18 2012-11-21 Panasonic Corporation Bit-interleaved coding and modulation (BICM) with quasi-cyclic LDPC codes
US9058275B2 (en) * 2011-06-10 2015-06-16 International Business Machines Corporation Data returned responsive to executing a start subchannel instruction
US9116788B2 (en) * 2011-06-10 2015-08-25 International Business Machines Corporation Using extended asynchronous data mover indirect data address words
KR102002925B1 (ko) 2012-11-01 2019-07-23 삼성전자주식회사 메모리 모듈, 그것을 포함하는 메모리 시스템, 그것의 구동 방법
US8935592B2 (en) 2012-11-20 2015-01-13 Arm Limited Apparatus and method for correcting errors in data accessed from a memory device
US8966348B2 (en) * 2012-11-30 2015-02-24 Hewlett-Packard Development Company, L.P. Memory error identification based on corrupted symbol patterns
US10201005B2 (en) 2013-03-13 2019-02-05 Lg Electronics Inc. Method for transmitting and receiving control channel and device therefor
CN104346234B (zh) 2013-08-09 2017-09-26 华为技术有限公司 一种内存访问的方法、设备及系统
US9633740B1 (en) 2016-02-11 2017-04-25 Seagate Technology Llc Read retry operations where likelihood value assignments change sign at different read voltages for each read retry
US9733847B2 (en) * 2014-06-02 2017-08-15 Micron Technology, Inc. Systems and methods for transmitting packets in a scalable memory system protocol
US9984768B2 (en) 2014-10-20 2018-05-29 Sandisk Technologies Llc Distributing storage of ECC code words
US9754684B2 (en) 2014-11-06 2017-09-05 Samsung Electronics Co., Ltd. Completely utilizing hamming distance for SECDED based ECC DIMMs
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
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
KR102392821B1 (ko) 2015-03-16 2022-05-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9858144B2 (en) 2015-08-20 2018-01-02 National Technology & Engineering Solutions Of Sandia, Llc Processor-in-memory-and-storage architecture
KR101860809B1 (ko) * 2015-09-30 2018-07-06 서울대학교산학협력단 메모리 시스템 및 메모리 에러 정정 방법
US10236917B2 (en) 2016-09-15 2019-03-19 Qualcomm Incorporated Providing memory bandwidth compression in chipkill-correct memory architectures
KR20180061870A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10678633B2 (en) * 2017-11-30 2020-06-09 SK Hynix Inc. Memory system and operating method thereof
US20190042358A1 (en) * 2018-02-06 2019-02-07 Intel Corporation Shared parity check for correcting memory errors
US10534565B1 (en) * 2018-04-11 2020-01-14 Cadence Design Systems, Inc. Programmable, area-optimized bank group rotation system for memory devices
US11003375B2 (en) 2018-05-15 2021-05-11 Micron Technology, Inc. Code word format and structure
US10831653B2 (en) 2018-05-15 2020-11-10 Micron Technology, Inc. Forwarding code word address

Also Published As

Publication number Publication date
WO2019222014A1 (en) 2019-11-21
US20230078205A1 (en) 2023-03-16
US11907560B2 (en) 2024-02-20
US20190377511A1 (en) 2019-12-12
CN110489266A (zh) 2019-11-22
CN110489266B (zh) 2023-10-20
EP3794452A4 (en) 2021-09-22
US11520513B2 (en) 2022-12-06
US20190354305A1 (en) 2019-11-21
EP3794452A1 (en) 2021-03-24
US20210103398A1 (en) 2021-04-08
US11003375B2 (en) 2021-05-11
US10831389B2 (en) 2020-11-10

Similar Documents

Publication Publication Date Title
CN110489266B (zh) 用于支持代码字格式及结构的方法和设备
KR102428688B1 (ko) 부호 워드 주소의 전달
WO2021041114A1 (en) Intra-code word wear leveling techniques
US11726866B2 (en) Spare substitution in memory system
WO2020023519A1 (en) Media scrubber in memory system
EP3827344A1 (en) Erroneous bit discovery in memory system

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right