KR102452241B1 - 수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스 - Google Patents

수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스 Download PDF

Info

Publication number
KR102452241B1
KR102452241B1 KR1020227009290A KR20227009290A KR102452241B1 KR 102452241 B1 KR102452241 B1 KR 102452241B1 KR 1020227009290 A KR1020227009290 A KR 1020227009290A KR 20227009290 A KR20227009290 A KR 20227009290A KR 102452241 B1 KR102452241 B1 KR 102452241B1
Authority
KR
South Korea
Prior art keywords
memory
command
data
ecc
host device
Prior art date
Application number
KR1020227009290A
Other languages
English (en)
Other versions
KR20220041948A (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 마이크론 테크놀로지, 인크
Publication of KR20220041948A publication Critical patent/KR20220041948A/ko
Application granted granted Critical
Publication of KR102452241B1 publication Critical patent/KR102452241B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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
    • 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
    • G06F11/1052Bypassing or disabling error detection or correction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

메모리 디바이스, 메모리 디바이스를 포함하는 시스템, 및 메모리 디바이스를 동작하는 방법이 설명되며, 여기서 호스트 디바이스는 그렇지 않으면 메모리 디바이스의 ECC 기능을 위해 예약된 메모리 어레이의 일부에 직접 액세스할 수 있다. 메모리 어레이는 메모리 어드레스들의 세트에 대응할 수 있고, 세트의 각각의 메모리 어드레스는 메모리 어레이의 제1 부분(예를 들어, 사용자 데이터 평면) 및 메모리 어레이의 제2 부분(예를 들어, ECC 평면)에 대응한다. 제2 부분은 ECC 기능이 인에이블 또는 디스에이블되는지 여부에 기초하여 ECC 데이터 또는 제2 사용자 데이터 또는 메타데이터를 저장하도록 구성될 수 있다. 메모리 디바이스는 세트의 메모리 어드레스로 향하는 명령이 명령과 연관된 핀의 상태에 기초하여 제1 부분 또는 제2 부분에 액세스하도록 구성된 지를 결정할 수 있다.

Description

수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스
본 개시는 전반적으로 반도체 디바이스에 관한 것으로, 더 구체적으로 수정된 명령 및 관련 방법 및 시스템을 갖는 반도체 디바이스에 관한 것이다.
메모리 디바이스는 컴퓨터, 무선 통신 디바이스, 카메라, 디지털 디스플레이 등과 같은 다양한 전자 디바이스와 관련된 정보를 저장하기 위해 널리 사용된다. 메모리 디바이스는 컴퓨터 또는 기타 전자 디바이스에서 내부, 반도체, 집적 회로 및/또는 외부 제거 가능한 디바이스로 자주 제공된다. 휘발성 및 비휘발성 메모리를 포함하여 다양한 유형의 메모리가 있다. RAM(Random-Access Memory), SRAM(Static Random Access Memory), DRAM(Dynamic Random Access Memory), SDRAM(Synchronous Dynamic Random Access Memory)을 포함하는 휘발성 메모리는 데이터를 유지하기 위해 전원이 필요하다. 대조적으로 비휘발성 메모리는 외부 전원이 공급되지 않는 경우에도 저장된 데이터를 유지할 수 있다. 비휘발성 메모리는 플래시 메모리(예를 들어, NAND 및 NOR), 상변화 메모리(PCM), 강유전체 랜덤 액세스 메모리(FeRAM), 저항성 랜덤 액세스 메모리(RRAM) 및 자기 랜덤 액세스 메모리(MRAM) 등을 포함한 다양한 기술에서 사용할 수 있다. 메모리 디바이스를 개선하는 것은 일반적으로 다른 메트릭 중에서 메모리 셀 밀도 증가, 판독/기록 속도 증가 또는 동작 레이턴시 감소, 신뢰성 증가, 데이터 보유 증가, 전력 소비 감소 또는 제조 비용 감소를 포함할 수 있다.
도 1은 본 기술의 일 실시예에 따른 메모리 디바이스를 개략적으로 도시한 블록도이다.
도 2는 본 기술의 일 실시예에 따른 메모리 디바이스를 개략적으로 도시한 블록도이다.
도 3은 본 기술의 실시예에 따른 데이터 버스트 및 대응하는 비트 패턴을 개략적으로 도시한 블록도이다.
도 4는 본 기술의 실시예에 따른 메모리 디바이스를 동작시키는 방법의 전체 개요를 도시한 흐름도이다.
도 5는 본 기술의 일 실시예에 따른 메모리 시스템을 개략적으로 도시한 블록도이다.
도 6은 본 기술의 실시예에 따른 메모리 디바이스를 동작시키는 방법을 예시하는 흐름도이다.
메모리 디바이스는 신뢰할 수 있는 데이터를 생성하기 위한 오류 검사 및 정정(ECC) 기능 - 예를 들어, 온-다이 ECC 기능을 포함할 수 있다. ECC 기능을 수행하는 알고리즘, 프로그램 또는 회로부는 오류 정정 코드의 양태를 포함하거나 참조될 수 있다. 이러한 메모리 디바이스는 온-다이 ECC 기능을 지원하는 ECC 회로 및 메모리 셀 그룹(예를 들어, ECC 패러티 비트를 저장하도록 구성된 메모리 어레이의 일부이며, 이는 ECC 어레이, ECC 평면 또는 패러티 평면으로 다양하게 지칭될 수 있음)을 포함할 수 있다. 일부 실시예에서, 메모리 셀의 그룹은 ECC 데이터를 내부적으로 저장하기 위해 예약될 수 있고(예를 들어, 메모리 디바이스 내부에 있고 사용자가 액세스할 수 없음), 메모리 디바이스의 지정된 저장 용량은 ECC 어레이 용량을 포함하지 않을 수 있다. 일부 예들에서, ECC 어레이 용량은 메모리 디바이스의 전체 메모리 어레이 공간의 상당한 부분 - 예를 들어, 전체 메모리 어레이 공간의 대략 5 내지 10%를 차지할 수 있다.
이러한 메모리 디바이스와 결합된 호스트 디바이스를 포함하는 일부 메모리 시스템에서, 호스트 디바이스(또는 메모리 시스템)는 온-다이 ECC 기능에 전적으로 의존하지 않고 자체 ECC 기능을 수행할 수 있다. 예를 들어, 호스트 디바이스는 호스트 디바이스가 메모리 디바이스의 ECC 회로(또는 메모리 디바이스에서 제공된 ECC 알고리즘)에 의존하지 않고 ECC 데이터를 사용하여 ECC 기능을 수행할 수 있도록 메모리 셀 그룹으로부터 ECC 데이터에 직접 액세스하도록 구성될 수 있다. 다른 예들에서, 호스트 디바이스는 메모리 디바이스들의 ECC 데이터 또는 ECC 알고리즘에 독립적인 시스템 레벨 ECC 기능을 수행하도록 구성될 수 있다. 그 결과, 온-다이 ECC 기능은 일부 실시예에서 메모리 시스템(또는 호스트 디바이스)에 의해 요구되지 않을 수 있으며, 메모리 디바이스는 그렇지 않으면 사용할 수 없는 추가 기능 - 예를 들어, 메모리 디바이스의 사용자가 사용할 수 있는 것으로 표시된 지정된 저장 용량을 초과하는 추가 저장 용량을 제공하도록 구성될 수 있다.
본 기술의 몇몇 실시예는 호스트 디바이스가 메모리 디바이스의 ECC 기능을 위해 예약된 메모리 어레이의 일부에 직접 액세스할 수 있는 메모리 디바이스, 메모리 디바이스를 포함하는 시스템, 및 메모리 디바이스를 동작시키는 방법에 관한 것이다. 본 명세서에 기재된 바와 같이, 메모리 디바이스는 메모리 어드레스 세트에 대응하는 메모리 어레이를 포함할 수 있고, 여기서 메모리 어드레스 세트의 각각의 메모리 어드레스는 사용자 데이터를 저장하도록 구성된 메모리 어레이(예를 들어, 메인 어레이, 사용자 데이터 평면)의 제1 부분 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성된 메모리 어레이(예를 들어, ECC 어레이, ECC 평면, 패러티 평면)의 제2 부분에 대응한다. 추가적으로, 메모리 어레이의 제2 부분은 ECC 기능이 디스에이블될 때 메모리 디바이스와 연관된 제2 사용자 데이터(예를 들어, 추가 사용자 데이터) 또는 메타데이터, 또는 둘 모두를 저장하도록 구성될 수 있다.
메모리 디바이스의 메타데이터는 다른 데이터(예를 들어, 송신 또는 수신되는 데이터) 또는 동작 온도, 레이턴시 설정, 데이터 송신 파라미터와 같은 메모리 디바이스의 동작 양태와 관련된 다양한 데이터를 참조할 수 있다. 일부 실시예에서, 메모리 디바이스는 메모리 디바이스의 출력 회로가 액세스할 수 있는 하나 이상의 레지스터에 메타데이터를 저장할 수 있다. 일부 실시예들에서, 메모리 디바이스는 (ECC 기능이 디스에이블될 때 ECC 기능을 위해 예약된 메모리 셀들의 그룹을 포함하는) 메모리 어레이에 메타데이터를 저장할 수 있다. 메모리 디바이스가 메모리 어레이에 메타데이터를 저장한 후, 메타데이터는 향후 액세스를 위한 사용자 데이터의 일부로 간주될 수 있다. 이와 같이, 메모리 디바이스는 액세스 명령의 일부로서 (예를 들어, 판독 명령)로서 별도의 명령(예를 들어, 하나 이상의 레지스터에 저장된 메타데이터를 판독하기 위한 모드 레지스터 판독(MRR) 명령)을 사용하지 않고 메타데이터(메모리 어레이에 저장될 때)를 출력할 수 있다.
일 실시예에서, 호스트 디바이스는 액세스 명령과 연관된 하나 이상의 비트를 사용하여 표시(예를 들어, 플래그, 상태)를 포함하도록 액세스 명령(예를 들어, 판독 명령, 기록 명령)을 수정할 수 있다. 하나 이상의 비트는 액세스 명령에서 사용되지 않는 하나 이상의 핀(예를 들어, 명령 및 어드레스 핀, CA 핀)에 대응하는 비트를 포함할 수 있다. 그러나 하나 이상의 핀은 다른 명령(예를 들어, 비액세스 명령, ACT 또는 활성화 명령)에서 사용될 수 있다. 표시는 액세스 명령이 제1 부분(예를 들어, 사용자 데이터 평면) 또는 제2 부분(예를 들어, ECC 평면)으로 향하는지 여부를 나타낼 수 있다. 액세스 명령이 표시에 기초하여 메모리 어레이의 제2 부분으로 향한다고 결정할 때, 메모리 디바이스는 메모리 어레이의 제2 부분에 액세스(예를 들어, 판독 또는 기록)할 수 있다. 이러한 방식으로, 호스트 디바이스는 수정된 액세스 명령을 사용하여 메모리 어레이의 제2 부분에 직접 액세스할 수 있다 - 예를 들어, ECC 기능이 인에이블된 경우 ECC 데이터 검색, ECC 기능이 디스에이블된 경우 제2 사용자 데이터 또는 메타데이터 저장 또는 검색. 일부 실시예에서, 메모리 디바이스는 추가 사용자 액세스 가능 데이터(예를 들어, 사용자 데이터를 저장하도록 구성된 전체 메모리 어레이)를 저장하고 메타데이터를 다른 곳 - 예를 들어, 메모리 디바이스의 하나 이상의 레지스터에 저장하도록 메모리 셀의 제2 서브세트를 구성할 수 있다.
일부 실시예에서, 메모리 어레이의 제1 부분(예를 들어, 사용자 데이터 평면)은 디바이스의 버스트 길이(예를 들어, 버스트 길이 열여섯(16), BL16)의 지속기간 동안 데이터를 버스를 완전히 채우기에 충분한 데이터를 포함하도록 충분히 클 수 있다. 그러나 메모리 어레이의 제2 부분(예를 들어, ECC 평면)은 디바이스의 버스트 길이의 지속기간 동안 데이터 버스를 완전히 채우기에 충분한 데이터를 포함하지 않을 만큼 충분히 작을 수 있다(예를 들어, 버스트 길이 여덟(8), BL8)의 버스트 길이에 대한 데이터 버스만 완전히 채우는 데 충분한 비트 수를 포함할 수 있다. 일부 실시예에서, 호스트 디바이스와 메모리 디바이스 사이의 다양한 데이터 채널(예를 들어, 버스, 인터페이스)은 메모리 어레이에 액세스하기 위해 미리 결정된 버스트 길이(예를 들어, BL16)를 지원하도록 구성될 수 있다. 따라서, 액세스 명령이 제2 부분으로 향할 때, 메모리 디바이스(또는 호스트 디바이스)는 미리 결정된 버스트 길이를 최대한 활용하기 위해 미리 결정된 버스트 길이의 나머지 부분을 채우기 위한 옵션을 가질 수 있다(예를 들어, 열여섯(16)개 버스트 중 나머지 여덟(8)개 버스트 버스트).
일부 실시예에서, 메모리 디바이스(또는 호스트 디바이스)는 제1 데이터 세트(예를 들어, ECC 데이터, 제2 사용자 데이터, 또는 메타데이터)로부터 제2 데이터 세트를 생성하도록 구성되어 메모리 디바이스(또는 호스트 디바이스)는 미리 결정된 버스트 길이의 나머지 부분을 제2 데이터 세트로 채울 수 있다. 예를 들어, 제2 데이터 세트는 제1 데이터 세트의 복제 복사본일 수 있다. 또한, 제2 데이터 세트는 제1 데이터 세트에 송신 오류가 있는지 확인하도록 구성될 수 있다. 다른 실시예에서, 메모리 디바이스(또는 호스트 디바이스)는 제1 버스트 길이의 나머지 부분을 무시하도록 구성되어 전력 소비를 감소시킬 수 있다. 또한, 제2 데이터 세트는 제1 데이터 세트와 독립적일 수 있다. 예를 들어, 제2 데이터 세트는 메모리 디바이스의 하나 이상의 레지스터(예를 들어, 다목적 레지스터(MPR) 중 하나)로부터의 출력일 수 있다.
본 기술의 실시예를 지원하는 메모리 디바이스가 도 1을 참조하여 설명된다. 메모리 디바이스의 보다 상세한 설명은 도 2를 참조하여 제공된다. 도 3은 본 기술의 실시예에 따른 메모리 디바이스의 동작과 관련된 버스트 길이의 다양한 양태를 도시한다. 도 4는 본 기술의 실시예에 따른 메모리 디바이스의 전반적인 동작을 설명한다. 본 기술의 실시예를 지원하는 메모리 시스템이 도 5를 참조하여 설명된다. 메모리 디바이스를 동작시키는 방법을 예시하는 흐름도가 도 6을 참조하여 설명된다.
도 1은 본 기술의 일 실시예에 따른 메모리 디바이스(100)를 개략적으로 도시한 블록도이다. 메모리 디바이스(100)는 메모리 어레이(150)와 같은 메모리 셀의 어레이를 포함할 수 있다. 메모리 어레이(150)는 복수의 뱅크(예를 들어, 도 1의 예에서 뱅크 0-15)를 포함할 수 있고, 각각의 뱅크는 복수의 워드 라인(WL), 복수의 비트 라인(BL), 및 비트 라인(예를 들어, n개의 비트 라인, 이는 열로도 지칭될 수 있음)과 워드 라인(예를 들어, m개의 워드 라인, 행이라고도 함)의 교차점에 배열된 복수의 메모리 셀(예를 들어, mxn 메모리 셀)을 포함할 수 있다. 메모리 셀은 용량성, 자기 저항성, 강유전체, 위상 변화 등을 포함하는 다수의 상이한 메모리 매체 유형 중 임의의 하나를 포함할 수 있다. 일부 실시예에서, 메모리 어레이(150)의 일부는 ECC 패러티 비트(예를 들어, ECC 평면)를 저장하도록 구성가능할 수 있다. 즉, 메모리 어레이(150)는 사용자 데이터를 저장하도록 구성된 제1 부분 및 서로 다른 종류의 데이터 - 예를 들어, ECC 기능이 인에이블된 경우 ECC 데이터, ECC 기능이 디스에이블된 경우 비-ECC 데이터를 저장하도록 구성된 제2 부분(예를 들어, ECC 평면)을 포함할 수 있다. 워드 라인(WL)의 선택은 행 디코더(140)에 의해 수행될 수 있고, 비트 라인(BL)의 선택은 열 디코더(145)에 의해 수행될 수 있다. 감지 증폭기(SAMP)는 대응하는 비트 라인(BL)에 제공되고 적어도 하나의 각각의 로컬 I/O 라인 쌍(LIOT/B)에 연결될 수 있고, 이는 스위치로 기능할 수 있는 전송 게이트(TG)를 통해 적어도 하나의 각각의 메인 I/O 라인 쌍(MIOT/B)에 차례로 결합될 수 있다. 메모리 어레이(150)는 또한 플레이트 라인 및 그 동작을 관리하기 위한 대응하는 회로부를 포함할 수 있다.
일부 실시예에서, 메모리 어레이(150)는 메모리 어드레스 세트에 대응하며, 여기서 어드레스 세트의 각 메모리 어드레스는 메모리 어레이(150)의 제1 부분 및 메모리 어레이(150)의 제2 부분에 대응한다. 따라서, 메모리 어드레스가 호스트 디바이스에 의해 제공될 때, 메모리 어드레스는 메모리 어레이(150)의 제1 부분 및 제2 부분을 동시에 식별할 수 있다. 제1 부분은 사용자 데이터를 저장하도록 구성될 수 있고, 제2 부분은 메모리 디바이스(100)의 ECC 기능이 인에이블 또는 디스에이블되는지 여부에 기초하여 상이한 종류의 데이터를 저장하도록 구성될 수 있다.예를 들어, ECC 기능이 인에이블될 때, 제2 부분은 제1 부분(예를 들어, ECC 평면)의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성될 수 있다. 이러한 방식으로, 제2 부분에 저장된 ECC 데이터는 메모리 디바이스의 ECC 기능의 효율적인 실행을 용이하게 하기 위해 제1 부분에 저장된 사용자 데이터와 연관(예를 들어, 링크됨)된다 - 예를 들어, 메모리 어드레스는 사용자 데이터 및 사용자 데이터와 링크된 ECC 데이터의 두 위치를 식별한다.
일부 실시예에서, 그러나, 메모리 디바이스(100)의 ECC 기능이 디스에이블될 때, 제2 부분은 다른 데이터(예를 들어, 제1 부분의 사용자 데이터와 연관된 ECC 데이터 이외의 데이터)를 저장하도록 구성될 수 있다. 예를 들어, 제2 부분은 제2 사용자 데이터(예를 들어, 호스트 디바이스를 위한 추가 저장 공간을 제공하기 위해), 메모리 디바이스(100)와 연관된 메타데이터, 또는 둘 모두를 저장하도록 구성될 수 있다. 일부 실시예에서, 메모리 디바이스(100)는 ECC 기능이 인에이블 또는 디스에이블되는지 여부를 나타내도록 구성된 레지스터(예를 들어, 모드 레지스터)를 포함할 수 있다.
일부 실시예에서, 호스트 디바이스는 ECC 기능이 인에이블되거나 디스에이블되는지 여부에 관계없이 메모리 어레이(150)의 제2 부분(예를 들어, ECC 평면)에 액세스할 수 있다. 예를 들어, 호스트 디바이스는 액세스 명령이 메모리 어레이(150)의 ECC 평면으로 향하는 것을 나타내기 위해 액세스 명령과 연관된 메모리 디바이스(100)의 하나 이상의 핀의 상태를 수정할 수 있다. 이어서, 메모리 디바이스(100)은 액세스 명령에 응답하여 그리고 하나 이상의 핀의 상태에 기초하여 ECC 평면으로부터 검색된 ECC 데이터를 호스트 디바이스에 제공할 수 있다. 일부 실시예에서, 호스트 디바이스는 메모리 디바이스(100)로부터의 ECC 데이터를 사용하여 자신의 ECC 기능을 수행하도록 선택할 수 있다. 온-다이 ECC 기능과 달리, 호스트 디바이스는 임의의 크기의 사용자 데이터에 대해 ECC 기능을 수행하도록 구성될 수 있다 (예를 들어, 사용자 데이터 크기의 세분성). 일부 실시예에서, 호스트 디바이스는 온-다이 ECC 기능에 포함된 알고리즘과 다른 ECC 알고리즘을 활용할 수 있다.
메모리 디바이스(100)는 명령 신호(CMD) 및 어드레스 신호(ADDR)를 각각 수신하기 위해 명령 버스 및 어드레스 버스에 결합된 명령 및 어드레스 단자를 포함하는 복수의 외부 단자를 채용할 수 있다. 메모리 디바이스는 칩 선택 신호 CS를 수신하는 칩 선택 단자, 클럭 신호 CK 및 CKF를 수신하는 클럭 단자, 데이터 클럭 신호 WCK 및 WCKF를 수신하는 데이터 클럭 단자, 데이터 단자 DQ, RDQS, DBI(데이터 버스 반전 기능용), DMI(데이터 마스크 반전 기능용), 전원 단자 VDD, VSS, VDDQ, VSSQ를 더 포함할 수 있다.
명령 단자 및 어드레스 단자에는 외부로부터 어드레스 신호 및 뱅크 어드레스 신호가 공급될 수 있다. 어드레스 단자에 공급된 어드레스 신호 및 뱅크 어드레스 신호는 명령/어드레스 입력 회로(105)를 통해 어드레스 디코더(110)로 전송될 수 있다. 어드레스 디코더(110)는 어드레스 신호를 수신하고 디코딩된 행 어드레스 신호(XADD)를 행 디코더(140)에, 디코딩된 열 어드레스 신호(YADD)를 열 디코더(145)에 공급할 수 있다. 어드레스 디코더(110)는 또한 ADDR 입력의 뱅크 어드레스 부분을 수신하고 디코딩된 뱅크 어드레스 신호(BADD)를 양쪽 행 디코더(140) 및 열 디코더(145)에 공급할 수 있다. 일부 실시예에서, 어드레스 디코더(110)(일부 경우에, 명령 디코더(115)와 함께)는 액세스 명령과 관련된 메모리 어드레스에 기초하여 제1 부분(예를 들어, 사용자 데이터 평면) 및 제2 부분(예를 들어, ECC 평면)을 식별한다. 예를 들어, 어드레스 디코더(110)는 메모리 어드레스에 기초하여 제1 부분(예를 들어, 사용자 데이터를 저장하기 위해 또는 사용자 데이터를 검색하기 위해) 및 메모리 디바이스(100)의 ECC 기능이 인에이블될 때 제2 부분(예를 들어, 사용자 데이터와 연관된 ECC 데이터를 저장하기 위해)을 식별할 수 있다. 경우에 따라, 행 디코더(140)는 어드레스 디코더(110)에 의해 제공되는 디코딩된 행 어드레스 신호(XADD)에 기초하여 제1 부분 및 제2 부분에 공통인 행(예를 들어, 행 0)을 활성화할 수 있다.
명령 및 어드레스 단자에는 메모리 컨트롤러로부터 명령 신호(CMD), 어드레스 신호(ADDR) 및 칩 선택 신호(CS)가 공급될 수 있다. 명령 신호는 메모리 컨트롤러로부터의 다양한 메모리 명령(예를 들어, 판독 명령 및 기록 명령을 포함할 수 있는 액세스 명령을 포함함)을 나타낼 수 있다. 칩 선택 신호(CS)는 명령 및 어드레스 단자에 제공되는 명령 및 어드레스에 응답하기 위해 메모리 디바이스(100)를 선택하는 데 사용될 수 있다. 활성화(CS) 신호가 메모리 디바이스(100)에 제공되면, 명령 및 어드레스가 디코딩될 수 있고 메모리 동작이 수행될 수 있다. 명령 신호들(CMD)은 명령/어드레스 입력 회로(105)를 통해 명령 디코더(115)에 내부 명령 신호들(ICMD)로서 제공될 수 있다.
명령 디코더(115)는 메모리 동작을 수행하기 위한 다양한 내부 신호 및 명령, 예를 들어, 워드 라인을 선택하기 위한 행 명령 신호 및 비트 라인을 선택하기 위한 열 명령 신호를 생성하기 위해 내부 명령 신호(ICMD)를 디코딩하기 위한 회로를 포함할 수 있다. 내부 명령 신호는 또한 클럭 명령 CMDCK(도 1에 도시되지 않음)와 같은 출력 및 입력 활성화 명령을 포함할 수 있다. 명령 디코더(115)는 일부 실시예에서 다양한 카운트 또는 값(예를 들어, 메모리 디바이스(100)에 의해 수신된 리프레시 명령의 카운트 또는 메모리 디바이스(100)에 의해 수행되는 셀프 리프레시 동작)을 추적하기 위한 하나 이상의 레지스터(118)를 더 포함할 수 있다. 일부 실시예에서, 레지스터(118)의 서브세트는 모드 레지스터로 지칭될 수 있고, 다양한 기능, 특징 및 모드(예를 들어, ECC 모드)를 수행함에 있어서 유연성을 제공하기 위해 사용자 정의 변수를 저장하도록 구성될 수 있다.
일부 실시예에서, 명령 디코더(115)는 메모리 어레이(150)의 메모리 어드레스를 포함하는 액세스 명령이 메모리 어레이(150)의 제1 부분(예를 들어, 사용자 데이터 평면) 또는 제2 부분(예를 들어, ECC 평면)에 액세스하도록 구성되는지 여부를 결정할 수 있다. 예를 들어, 명령 디코더(115)는 하나 이상의 핀(예를 들어, 명령 및 어드레스 핀, 액세스 명령과 관련된 명령 신호(CMD) 및 어드레스 신호(ADDR)를 수신하도록 지정된 핀 중 하나)의 상태에 기초하여 액세스 명령이 메모리 어레이(150)의 제2 부분으로 향한다고 결정할 수 있다. 액세스 명령의 상태가 할당된 하나 이상의 핀은 다른 액세스 명령(예를 들어, 판독 명령, 기록 명령)에서 사용되지 않을 수 있으므로 그러한 표시(예를 들어, 액세스 명령이 제1 부분 또는 제2 부분으로 향하는지 여부를 나타내는 상태)를 포함하도록 비트를 수정하는 것은 다른 액세스 명령에 대한 추가 수정을 초래하지 않을 수 있다. 일부 실시예에서, 메모리 디바이스(100)는 명령 디코더(115)와 결합될 수 있는 컴포넌트(119)를 포함할 수 있다. 컴포넌트(119)는 컴포넌트(119)가 활성화될 때 호스트 디바이스가 제2 부분(예를 들어, ECC 평면)에 액세스하는 것을 차단하도록 구성될 수 있다.
일부 실시예에서, 메모리 디바이스(100)는 메모리의 사용자 데이터를 저장하도록 구성된 메모리 어레이(150)의 제1 부분(예를 들어, 사용자 데이터 평면) 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성된 메모리 어레이(150)의 제2 부분(예를 들어, ECC 평면)에 각각 대응하는 메모리 어드레스 세트에 대응하는 메모리 어레이(150)로 향하는 명령을 호스트 디바이스로부터 수신할 수 있다. 메모리 디바이스(100)는 명령에 의해 지시되는 액세스 유형을 나타내는 메모리 디바이스(100)의 하나 이상의 핀(예를 들어, 명령 신호(CMD) 및 어드레스 신호(ADDR)를 각각 수신하도록 지정된 하나 이상의 핀)에 기초하여 그리고 호스트 디바이스로부터 수신된 명령에 응답하여 메모리 어레이(150)의 제2 부분(예를 들어, ECC 평면)에 액세스할 수 있다.
개방 행이 있는 뱅크에 판독 명령이 발행되고 판독 명령의 일부로 열 어드레스가 적시에 공급되면, 판독 데이터는 행 어드레스(개방 행을 식별하는 활성화 명령의 일부로서 제공될 수 있음) 및 열 어드레스에 의해 지정된 메모리 어레이(150)의 메모리 셀로부터 판독될 수 있다. 판독 명령은 명령 디코더(115)에 의해 수신될 수 있으며, 이는 RDQS 클럭 신호에 따라 판독/기록 증폭기(155) 및 입력/출력 회로(160)를 통해 데이터 단자 DQ, RDQS, DBI, 및 DMI로부터 판독 데이터가 출력될 수 있도록 입력/출력 회로(160)에 내부 명령을 제공할 수 있다. 판독 데이터는 메모리 디바이스(100), 예를 들어, 모드 레지스터(예를 들어, 레지스터(118))에 프로그래밍될 수 있는 판독 레이턴시 정보(RL)에 의해 정의된 시간에 제공될 수 있다. 판독 레이턴시 정보(RL)는 CK 클럭 신호의 클럭 사이클로 정의될 수 있다. 예를 들어, 판독 레이턴시 정보(RL)는 연관된 판독 데이터가 제공될 때 판독 명령이 메모리 디바이스(100)에 의해 수신된 후의 CK 신호의 클럭 사이클의 수일 수 있다.
개방 행이 있는 뱅크에 기록 명령이 발행되고 기록 명령의 일부로 열 어드레스가 적시에 공급되면 WCK 및 WCKF 클럭 신호에 따라 데이터 단자 DQ, DBI 및 DMI에 기록 데이터가 공급될 수 있다. 기록 명령은 명령 디코더(115)에 의해 수신될 수 있고, 기록 데이터가 입력/출력 회로(160)의 데이터 수신기에 의해 수신되고 입력/출력 회로(160) 및 판독/기록 증폭기(155)를 통해 메모리 어레이(150)에 공급될 수 있도록 내부 명령을 입력/출력 회로(160)에 입력한다. 기록 데이터는 행 어드레스 및 열 어드레스로 지정된 메모리 셀에 기록될 수 있다. 기록 데이터는 기록 레이턴시(WL) 정보에 의해 정의된 시간에 데이터 단자에 제공될 수 있다. 기록 레이턴시 WL 정보는 메모리 디바이스(100), 예를 들어 모드 레지스터(예를 들어, 레지스터(118))에 프로그래밍될 수 있다. 기록 레이턴시(WL) 정보는 CK 클럭 신호의 클럭 사이클로 정의될 수 있다. 예를 들어, 기록 레이턴시 정보(WL)는 연관된 기록 데이터가 수신될 때 기록 명령이 메모리 디바이스(100)에 의해 수신된 후의 CK 신호의 클럭 사이클의 수일 수 있다.
전원 단자에는 전원 전위 VDD 및 VSS가 공급될 수 있다. 이러한 전원 전위(VDD, VSS)는 내부 전압 생성기 회로(170)에 공급될 수 있다. 내부 전압 생성기 회로(170)는 전원 전위(VDD, VSS)에 기초하여 다양한 내부 전위(VPP, VOD, VARY, VPERI 등)를 생성할 수 있다. 내부 전위(VPP)는 행 디코더(140)에서 사용될 수 있고, 내부 전위(VOD 및 VARY)는 메모리 어레이(150)에 포함된 감지 증폭기에서 사용될 수 있으며, 내부 전위(VPERI)는 다른 많은 회로 블록에서 사용될 수 있다.
전원 단자에는 전원 전위(VDDQ)가 공급될 수도 있다. 전원 전위(VDDQ)는 전원 전위(VSS)와 함께 입력/출력 회로(160)에 공급될 수 있다. 전원 전위(VDDQ)는 본 기술의 실시예에서의 전원 전위(VDD)와 동일한 전위일 수 있다. 전원 전위(VDDQ)는 본 기술의 다른 실시예에서 전원 전위(VDD)와 다른 전위일 수 있다. 다만, 입력/출력 회로(160)에서 발생하는 전원 노이즈가 다른 회로 블록으로 전파되지 않도록 전용 전원 전위(VDDQ)가 입력/출력 회로(160)에 사용될 수 있다.
클럭 단자 및 데이터 클럭 단자에는 외부 클럭 신호 및 상보적 외부 클럭 신호가 공급될 수 있다. 외부 클럭 신호(CK, CKF, WCK, WCKF)는 클럭 입력 회로(120)에 공급될 수 있다. CK 및 CKF 신호는 상보적일 수 있고, WCK 및 WCKF 신호도 상보적일 수 있다. 상보적 클럭 신호는 반대 클럭 레벨을 가질 수 있고, 동시에 반대 클럭 레벨 사이에서 천이(transition)할 수 있다. 예를 들어, 클럭 신호가 로우 클럭 레벨에 있을 때 상보적 클럭 신호는 하이 레벨에 있고, 클럭 신호가 하이 클럭 레벨에 있을 때 상보적 클럭 신호가 로우 클럭 레벨에 있다. 또한, 클럭 신호가 로우 클럭 레벨에서 하이 클럭 레벨로 천이할 때, 상보적 클럭 신호는 하이 클럭 레벨에서 로우 클럭 레벨로 천이하고 클럭 신호가 하이 클럭 레벨에서 로우 클럭 레벨로 천이할 때 상보적 클럭 신호는 로우 클럭 레벨에서 하이 클럭 레벨로 천이한다.
클럭 입력 회로(120)에 포함된 입력 버퍼는 외부 클럭 신호를 수신할 수 있다. 예를 들어, 명령 디코더(115)로부터의 CKE 신호에 의해 인에이블될 때, 입력 버퍼는 CK 및 CKF 신호와 WCK 및 WCKF 신호를 수신할 수 있다. 클럭 입력 회로(120)는 외부 클럭 신호를 수신하여 내부 클럭 신호(ICLK)를 생성할 수 있다. 내부 클럭 신호(ICLK)는 내부 클럭 회로(130)에 공급될 수 있다. 내부 클럭 회로(130)는 명령 디코더(115)로부터 수신된 내부 클럭 신호(ICLK) 및 클럭 인에이블 신호(CKE)에 기초하여 다양한 위상 및 주파수 제어된 내부 클럭 신호를 제공할 수 있다. 예를 들어, 내부 클럭 회로(130)는 내부 클럭 신호(ICLK)를 수신하고 다양한 클럭 신호를 명령 디코더(115)에 제공하는 클럭 경로(도 1에 도시되지 않음)를 포함할 수 있다. 내부 클록 회로(130)는 입력/출력(IO) 클록 신호를 더 제공할 수 있다. IO 클럭 신호는 입력/출력 회로(160)에 공급될 수 있고, 판독 데이터의 출력 타이밍 및 기록 데이터의 입력 타이밍을 결정하기 위한 타이밍 신호로 사용될 수 있다. IO 클럭 신호는 다중 클럭 주파수로 제공되어 데이터가 서로 다른 데이터 레이트로 메모리 디바이스(100)로부터 출력 및 입력될 수 있다. 높은 메모리 속도가 필요한 경우 더 높은 클럭 주파수가 바람직할 수 있다. 더 낮은 전력 소비가 필요한 경우 더 낮은 클럭 주파수가 바람직할 수 있다. 내부 클럭 신호(ICLK)도 타이밍 생성기(135)에 공급되어 다양한 내부 클럭 신호를 생성할 수 있다.
메모리 디바이스(100)는 정보, 또는 그 컴포넌트의 일시적 또는 영구적 저장을 위해 메모리를 활용할 수 있는 다수의 전자 디바이스 중 임의의 하나에 연결될 수 있다. 예를 들어, 메모리 디바이스(100)의 호스트 디바이스는 데스크탑 또는 휴대용 컴퓨터, 서버, 핸드헬드 디바이스(예를 들어, 모바일 폰, 태블릿, 디지털 판독기, 디지털 미디어 플레이어)와 같은 컴퓨팅 디바이스일 수 있거나 또는 그 일부 컴포넌트(예를 들어, 중앙 처리 유닛, 코프로세서, 전용 메모리 컨트롤러 등)일 수 있다. 호스트 디바이스는 네트워킹 디바이스(예를 들어, 스위치, 라우터 등) 또는 디지털 이미지의 레코더, 오디오 및/또는 비디오, 차량, 가전제품, 장난감 또는 다른 여러 제품 중 하나일 수 있다. 일 실시예에서, 호스트 디바이스는 메모리 디바이스(100)에 직접 연결될 수 있지만, 다른 실시예에서 호스트 디바이스는 간접적으로 메모리 디바이스에 연결될 수 있다(예를 들어, 네트워크 연결을 통해 또는 중간 디바이스를 통해).
도 2는 본 기술의 일 실시예에 따른 메모리 디바이스(200)를 개략적으로 도시한 블록도이다. 메모리 디바이스(200)는 도 1을 참조하여 설명된 메모리 디바이스(100)의 일 예이거나 양태를 포함할 수 있다. 메모리 디바이스(200)는 주변 회로(270), 레지스터(275)(이는 레지스터(118)의 양태일 수 있거나 그 양태를 포함할 수 있음), 컴포넌트(276)(컴포넌트(119)의 양태일 수 있거나 그 양태를 포함할 수 있음), ECC 회로(280), 및 메모리 어레이(250)를 포함할 수 있다. 주변 회로(270)는 도 1을 참조하여 설명된 다양한 컴포넌트들의 양태들을 포함할 수 있다. 예를 들어, 주변 회로(270)는 다른 것들 중에서 명령/어드레스 입력 회로(105), 어드레스 디코더(110), 명령 디코더(115), 및 입력/출력 회로(160)의 양태들을 포함할 수 있다. 더욱이, 메모리 어레이(250)는 도 1을 참조하여 설명된 메모리 어레이(150)의 예일 수 있거나 양태를 포함할 수 있다.
메모리 어레이(250)는 사용자 데이터를 저장하도록 구성된 제1 부분(260)(예를 들어, 메인 어레이, 사용자 데이터 평면) 및 메모리 디바이스(200)의 ECC 기능이 인에이블될 때 제1 부분(260)의 사용자 데이터와 관련된 ECC 데이터를 저장하도록 구성된 제2 부분(265)(예를 들어, ECC 어레이, ECC 평면, 패러티 평면)을 포함할 수 있다. 일부 실시예에서, 메모리 어레이(250)는 메모리 어레이(250)의 제1 부분(260) 및 제2 부분(265)에 각각 대응하는 메모리 어드레스 세트에 대응할 수 있다. 더욱이, 메모리 디바이스의 ECC 기능이 디스에이블될 때, 제2 부분(265)은 제2 사용자 데이터(예를 들어, 호스트 디바이스에 이용 가능한 저장 공간을 증가시키기 위해), 메타데이터(예를 들어, 메타데이터를 저장하는 모드 레지스터를 판독 위한 별도의 명령을 발생시키지 않고 호스트 디바이스에 메타데이터를 제공하기 위해), 아니면 둘 모두를 저장하도록 구성될 수 있다. 메모리 디바이스의 메타데이터는 동작 온도, 레이턴시 설정, 데이터 송신 파라미터와 같은 메모리 디바이스의 동작 양태와 관련된 다양한 데이터를 참조할 수 있다. 본 명세서에 기재된 바와 같이, 메모리 디바이스(200)는 메모리 디바이스의 출력 회로가 액세스할 수 있는 하나 이상의 레지스터에 메타데이터를 저장할 수 있다 - 예를 들어, MRR 명령을 통해 하나 이상의 레지스터에서 직접 메타데이터를 판독. 추가적으로 또는 대안적으로, 메모리 디바이스(200)는 메타데이터를 메모리 어레이(250)(ECC 기능이 디스에이블될 때 제1 부분(260) 또는 제2 부분(265)에)에 저장할 수 있다.
일부 실시예에서, 제1 부분(260)은 메모리 어레이(250)의 저장 용량의 주요 부분 - 예를 들어, 저장 용량의 90% 초과를 차지할 수 있다. 또한, 제2 부분(265)은 메모리 어레이(250)의 저장 용량의 비교적 작지만 상당한 부분 - 예를 들어, 저장 용량의 대략 5 내지 10%를 차지할 수 있다. 다른 실시예에서, 제1 부분(260)은 용량의 90% 미만(예를 들어, 75%, 66%, 또는 심지어 50% 이하)을 가질 수 있는 반면, 제2 부분(265)은 상응하여 저장 용량의 5% 초과 내지 10%를 가질 수 있다. 따라서, 제1 부분(260)과 제2 부분(265) 사이의 상대적인 용량 할당은 단지 예시적인 목적이며 임의의 할당은 당업자가 고안할 수 있을 것이다. ECC 기능이 비활성화되고 제2 부분(265)이 추가 사용자 데이터(예를 들어, 제2 사용자 데이터)를 저장하도록 구성되는 경우, 메모리 디바이스(200)는 메모리 어레이(250)의 전체 저장 용량(즉, 제1 부분(260) 및 제2 부분(265)에 대응하는 전체 저장 용량)의 대략 100%를 호스트 디바이스에 제공할 수 있다. 즉, 메모리 디바이스(200)는 호스트 디바이스에 제1 부분(260)에 대응하는 저장 용량(이는 메모리 디바이스의 지정된 저장 용량으로 지칭될 수 있음)에 추가하여 추가 저장 용량(즉, 제2 부분(265)에 대응하는 용량)을 제공할 수 있다.
메모리 디바이스(200)의 ECC 기능이 인에이블될 때, 제2 부분(265)은 일부 실시예에서 호스트 디바이스에 의해 액세스 불가능할 수 있다. 이러한 실시예에서, 메모리 디바이스(200)는 메모리 디바이스(200)에 구현된 ECC 알고리즘에 따라 제2 부분(265)에 저장된 ECC 데이터를 이용하여 검사된 제1 부분(260)으로부터 사용자 데이터를 출력할 수 있다. 예를 들어, 메모리 디바이스(200)는 제2 부분(265)에 저장된 여덟(8)개의 패러티 비트를 사용하여 제1 부분(260)에 저장된 128비트 코드워드에 대해 ECC 기능을 수행할 수 있다 - 사용자 데이터 크기(예를 들어, 128비트)와 사용자 데이터와 관련된 ECC 패러티 비트 크기(예를 들어, 8비트) 간의 열여섯(16)의 비율. 이러한 방식으로, 호스트 디바이스는 제2 부분(265)에 저장된 ECC 데이터에 액세스하지 않고 ECC 기능(예를 들어, 메모리 디바이스(200)에서 구현된 ECC 알고리즘)에 의존할 수 있다. 일부 실시예에서, 비율(예를 들어, 제1 부분(260)과 제2 부분(265) 사이의 용량 할당)은 메모리 디바이스(200)의 원하는 ECC 기능(예를 들어, 코드워드에서 오류 비트의 제1 수량을 검출하고, 코드워드에서 오류 비트의 제2 수량을 정정함)에 기초하여 결정될 수 있다. 코드워드는 메모리 디바이스 및 시스템의 맥락에서 트랜잭션의 단위로서 가장 작은 크기의 데이터(예를 들어, 데이터 청크)를 참조할 수 있다.
다른 실시예에서, 제2 부분(265)은 ECC 기능이 인에이블 또는 디스에이블되었는지 여부에 관계없이 호스트 디바이스에 의해 액세스될 수 있다 - 예를 들어, ECC 기능이 인에이블될 때 호스트 디바이스에 ECC 데이터를 제공하고, ECC 기능이 디스에이블될 때 추가 저장 용량을 제공하기 위해(예를 들어, 제2 부분(265)으로 또는 그로부터 추가 사용자 데이터를 저장 또는 검색함으로써) 또는 호스트 디바이스에 메타데이터 저장을 제공하기 위해. 일부 실시예들에서, 호스트 디바이스는 메모리 디바이스(200)가 액세스 명령이 하나 이상의 핀의 상태에 기초하여 제2 부분(265)으로 향한다는 것을 결정할 수 있도록 메모리 어레이(250)의 메모리 어드레스로 향하는 액세스 명령(예를 들어, 판독 명령, 기록 명령)과 연관된 하나 이상의 핀들의 상태를 수정할 수 있다. 일부 실시예에서, 하나 이상의 핀은 다른 액세스 명령에 의해 사용되지 않는 명령 및 어드레스 핀 중 하나일 수 있다. 다른 실시예에서, 하나 이상의 핀은 메모리 디바이스(200)에 대한 추가 핀일 수 있다.
호스트 디바이스가 제2 부분(265)으로부터 ECC 데이터에 액세스할 때(예를 들어, 메모리 디바이스(200)의 ECC 기능이 인에이블될 때), 메모리 디바이스(200)는 제2 부분(265)으로부터 검색된 ECC 데이터를 호스트 디바이스에 제공할 수 있다. 일부 실시예에서, 호스트 디바이스는 ECC 데이터에 기초하여 자신의 ECC 기능을 수행하도록 선택할 수 있다. 온-다이 ECC 기능과 달리, 호스트 디바이스는 임의의 크기의 사용자 데이터(예를 들어, 사용자 데이터 크기의 세분성)에 대해 ECC 기능을 수행하도록 구성될 수 있다. 예를 들어, 호스트 디바이스는 제2 부분(265)으로부터 512비트의 ECC 데이터를 수신한 것에 기초하여 1킬로바이트(8,192비트)를 갖는 사용자 데이터에 대해 자체 ECC 기능을 수행할 수 있다. 다른 예에서, 호스트 디바이스는 제2 부분(265)에 저장된 8개의 패러티 비트를 사용하여 제1 부분(260)에 저장된 코드워드(예를 들어, 128비트 코드 워드)에 대해 ECC 기능을 수행할 수 있다. 또 다른 예에서, 호스트 디바이스는 제2 부분(265)에 저장된 대응하는 양의 패러티 비트(예를 들어, 16 패러티 비트, 24 패러티 비트)를 사용하여 제1 부분(260)에 저장된 임의의 수량의 코드워드(예를 들어, 두개(2) 코드워드, 세개(3)의 코드워드)에 ECC 기능을 수행할 수 있다.
호스트 디바이스가 제2 부분(265)으로부터 다른 데이터(예를 들어, 추가 사용자 데이터, 메타데이터, 또는 둘 모두)에 액세스할 때(예를 들어, 메모리 디바이스(200)의 ECC 기능이 디스에이블된 경우), 호스트 디바이스는 메모리 디바이스(200)에 구현된 ECC 알고리즘과 상이하거나 동일할 수 있는 사용자 데이터에 대해 자체 ECC 기능을 수행할 수 있다. 이와 같이, 사용자 데이터(예를 들어, 제1 부분(260)의 사용자 데이터, 제2 부분(265)의 추가(제2) 사용자 데이터)는 메모리 디바이스(200)의 ECC 기능에 의해 정정되지 않을 수 있다. 이러한 정정되지 않은 사용자 데이터는 오류 속성 및/또는 특성이 변경된 경우 호스트 디바이스가 ECC 알고리즘을 최적화 및/또는 수정할 수 있는 기회를 제공할 수 있다. 추가적으로 또는 대안적으로, 제2 부분(265)은 메모리 디바이스(200)의 ECC 기능이 디스에이블될 때 메모리 디바이스(200)의 동작 모드들과 관련된 정보, 예를 들어, 동작 온도, 액세스 명령과 관련된 레이턴시 설정, 데이터 송신을 위한 파라미터, 테스트 모드 또는 이들의 조합을 포함하는 메타데이터를 저장하도록 구성될 수 있다. 이러한 방식으로, 메모리 디바이스(200)는 그렇지 않으면 메모리 디바이스(200)의 다양한 레지스터(예를 들어, 모드 레지스터)에 저장될 수 있는 메타데이터를 검색하기 위해 별도의 명령(예를 들어, 모드 레지스터 판독(MRR) 명령)을 발생시킬 필요 없이 호스트 디바이스가 수정된 액세스 명령을 사용하여 제2 부분(265)을 액세스할 때 메타데이터를 제공할 수 있다.
일부 실시예에서, 제2 부분(265)은 제1 부분(260)에 물리적으로 인접하도록(또는 매우 근접하게) 구성되어 제1 부분(260) 및 제2 부분(265)을 지원하는 메모리 디바이스(200)의 특정 컴포넌트(예를 들어, 행 디코더(140), 열 디코더(145), 판독/기록 증폭기(155), 감지 증폭기(SAMP))는 공유되거나 효율적으로 레이아웃될 수 있다. 다른 실시예에서, 제2 부분(265)은 제1 부분(260)과 제2 부분(265)이 서로 상대적으로 독립적으로 동작할 수 있도록 제1 부분(260)과 분리되도록 구성될 수 있다 - 제1 부분 및 제2 부분은 별도의 전력 도메인, 제어 및/또는 데이터 경로의 별도 라우팅을 갖는다.
레지스터(275)(모드 레지스터로도 지칭될 수 있음)는 메모리 디바이스(200)의 ECC 기능(예를 들어, 온-다이 ECC 기능)이 인에이블 또는 디스에이블되는지 여부를 나타내도록 구성될 수 있다. 일부 실시예에서, 메모리 디바이스(200)와 결합된 호스트 디바이스는 메모리 디바이스(200)의 온-다이 ECC 기능에 의존하지 않고 ECC 기능을 수행할 수 있다. 이러한 경우에, 레지스터(275)는 온-다이 ECC 기능이 (예를 들어, 호스트 디바이스에 의해) 디스에이블되어 메모리 디바이스(200)가 호스트 디바이스에 추가적인 특징을 제공하기 위해 특정 동작 양태를 수정할 수 있음을 나타낼 수 있다.
컴포넌트(276)는 컴포넌트(276)가 활성화될 때 호스트 디바이스가 제2 부분(265)에 액세스하는 것을 차단하도록 구성될 수 있다. 일부 실시예에서, 컴포넌트(276)는 퓨즈(또는 퓨즈 어레이)를 포함할 수 있고 퓨즈를 활성화하는 것은 퓨즈가 전기적으로 개방(예를 들어, 프로그래밍됨)되도록 하기에 적절한 양의 전류를 흐르게 하는 것을 포함할 수 있다. 다른 실시예에서, 컴포넌트(276)는 호스트 디바이스가 제2 부분(265)에 액세스하는 것이 차단된다는 표시를 저장하도록 구성된 레지스터(예를 들어, 모드 레지스터)를 포함할 수 있다.
ECC 회로(280)는 ECC 기능이 인에이블될 때 메모리 디바이스(200)에 ECC 기능을 제공한다. ECC 회로는 제2 부분(265)과 결합되고 제2 부분(265)에 저장된 ECC 데이터를 사용하여 제1 부분(260)에 저장된 제1 사용자 액세스 가능 데이터에 대한 ECC 기능을 수행할 수 있다. 일부 실시예에서, ECC 회로(280)는 제1 부분(260)에서 2개 이상의 오류를 검출하고 및/또는 사용자 데이터의 하나 이상의 오류를 정정하도록 구성될 수 있다. 예를 들어, ECC 회로(280)는 2비트의 오류를 검출하고 1비트의 사용자 데이터를 정정할 수 있다. 일부 실시예에서, ECC 회로(280)는 사용자 데이터가 그 검출 및 정정 능력보다 더 많은 수량의 오류를 포함한다는 것을 나타내도록 구성될 수 있다.
주변 회로(270)는 제1 버스트 길이(예를 들어, BL16) 동안 호스트 디바이스와 통신하도록 구성될 수 있다. 제1 버스트 길이는 제1 부분(260)의 구성(예를 들어, 메모리 어레이(250)의 전체 아키텍처), 코드워드 크기(예를 들어, 128 비트), 또는 특히, 메모리 디바이스(200)와 호스트 디바이스 사이의 데이터 송신 채널 구성(예를 들어, x8 구성)에 기초하여 결정될 수 있다. 예를 들어, BL16은 병렬로 여덟(8)개의 데이터 핀(예를 들어, 여덟(8)개의 DQ 핀)을 통해 제1 부분(260)으로부터 128비트의 코드워드를 출력하는 데 사용될 수 있다. 일부 경우에, 제1 부분(260)은 제1 버스트 길이(예를 들어, BL16)와 호환되도록 구성될 수 있고 제2 부분(265)은 제1 버스트 길이보다 작은 제2 버스트 길이(예를 들어, BL8)와 호환 가능하도록 구성될 수 있다. 예를 들어, 호스트 디바이스가 메모리 어레이(250)의 제2 부분(265)에 액세스할 때, 메모리 디바이스(200)는 제2 버스트 길이(예를 들어, BL8)에 대응하는 데이터를 제2 부분(265)으로부터 검색할 수 있다. 따라서, 주변 회로(270)는 제1 부분(260)과 제2 부분(265) 사이의 버스트 길이의 차이를 수용하도록 구성될 수 있다 - 예를 들어, 데이터 세트가 위에서 설명된 요인에 기초하여 결정된 제1 버스트 길이와 호환될 수 있도록 호스트 디바이스가 제2 부분(265)에 액세스할 때 데이터 세트를 준비함으로써.
도 3은 본 기술의 실시예에 따른 데이터 버스트 및 대응하는 비트 패턴을 개략적으로 도시하는 블록도이다. 도 3은 제1 버스트 길이(예를 들어, BL16)에 대응하는 제1 데이터 버스트(301)를 예시한다. 일부 실시예에서, 제1 데이터 버스트(301)는 제2의 더 짧은 버스트 길이(예를 들어, BL8)를 채우기에 충분할 데이터를 각각 포함할 수 있는 제2 데이터 버스트(310, 315)의 2개의 인스턴스를 포함할 수 있다. 또한, 제2 데이터 버스트(310)의 제1 인스턴스 및 제2 데이터 버스트(315)의 제2 인스턴스는 일 실시예에서 연속적일 수 있다(예를 들어, 둘 사이에 간격 또는 갭이 없음). 도 3은 또한 비트 패턴(302, 303)을 도시한다.
비트 패턴(302)은 호스트 디바이스가 메모리 어레이(250)의 제1 부분(260)에 액세스할 때 데이터 핀(예를 들어, DQ 핀 중 하나)을 통해 송신되는 사용자 데이터(예를 들어, 16비트 데이터)의 예이거나 그 양태를 포함할 수 있다. 비트 패턴(302)은 제1 버스트 길이(예를 들어, BL16)에 대한 제1 데이터 버스트(301)에 대응할 수 있는 열여섯(16)비트의 데이터를 도시한다. 일부 실시예에서, 메모리 디바이스(200)와 호스트 디바이스 사이의 데이터 채널은 x8 구성을 갖도록 구성될수 있어서 여덟(8)개의 DQ 핀이 열여섯(16), BL16의 버스트 길이에 대응하는 기간 동안 128비트 코드워드를 집합적으로 전달할 수 있다. 예를 들어, 제1 비트 패턴(302)은 호스트 디바이스가 메모리 어레이(250)의 제1 부분(260)에 액세스(예를 들어, 기록 또는 판독)할 때, 제1 부분(260)으로 향하는 16비트 사용자 데이터(예를 들어, BL16에 대한 128비트 코드워드의 16비트 부분 1010101011001100)의 예일 수 있다.
비트 패턴(303)은 호스트 디바이스가 메모리 어레이(250)의 제2 부분에 액세스할 때, ECC 데이터, 사용자 데이터(예를 들어, 제2 사용자 데이터) 또는 데이터 핀(예를 들어, DQ 핀 중 하나)을 통해 송신된 메타데이터의 양태이거나 이를 포함할 수 있다. 일부 비트 패턴(303)은 제1 버스트 길이(예를 들어, BL16)에 대한 제1 데이터 버스트(301)에 대응하는 열여섯(16)비트의 데이터를 포함할 수 있다. 일부 실시예에서, 비트 패턴(303)은 비트 패턴(320)의 제1 인스턴스(예를 들어, 비트 패턴의 제1 인스턴스(320-a 내지 320-d)) 및 비트 패턴(325)의 제2 인스턴스(예를 들어, 비트 패턴의 제2 인스턴스(325-a 내지 325-d))를 포함할 수 있다. 예를 들어, 비트 패턴(303-a)은 비트 패턴의 제1 인스턴스(320-a)와 비트 패턴의 제2 인스턴스(325-a)를 포함하고, 비트 패턴(303-b)은 비트 패턴의 제1 인스턴스(320-b)와 비트 패턴의 제2 인스턴스(325-b)를 포함한다. 비트 패턴(320)의 제1 인스턴스는 제2 데이터 버스트(310)의 제1 인스턴스에 대응할 수 있고, 비트 패턴(325)의 제2 인스턴스는 제2 데이터 버스트(315)의 제2 인스턴스에 대응할 수 있다.
본 명세서에 설명된 바와 같이, 메모리 어레이(250)의 제2 부분(265)은 제1 버스트 길이(예를 들어, BL16)보다 작은 제2 버스트 길이(예를 들어, BL8)와 호환되도록 구성될 수 있다. 따라서, 제2 부분(265)은 비트 패턴(320)의 제1 인스턴스를 지원할 수 있지만 비트 패턴(325)의 제2 인스턴스(또는 그 반대)는 지원하지 않을 수 있는 반면, 메모리 디바이스(200)와 호스트 디바이스 사이의 데이터 채널은 제1 버스트 길이(예를 들어, BL16)에 대해 구성될 수 있다. 따라서, 일부 실시예들에서, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴(320)의 제1 인스턴스(예를 들어, 비트 패턴의 제1 인스턴스(320-a), 비트 패턴의 제1 인스턴스(320-b))로부터 비트 패턴(325)의 제2 인스턴스(예를 들어, 비트 패턴의 제2 인스턴스(325-a), 비트 패턴의 제2 인스턴스(325-b))를 생성할 수 있다. 예를 들어, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴(320-a)의 제1 인스턴스(예를 들어, 10011001)의 복제 사본인 비트 패턴(325-a)의 제2 인스턴스(예를 들어, 10011001)를 생성할 수 있다 - 예를 들어, 비트 패턴(320)의 제1 인스턴스는 비트 패턴(325)의 제2 인스턴스와 동일할 수 있다. 대안적으로, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴의 제1 인스턴스(320-b)(예를 들어, 10011001)의 각 비트를 반전시켜 비트 패턴의 제2 인스턴스(325-b)(예를 들어, 01100110)를 생성할 수 있다. 이러한 실시예에서, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴(320)의 제1 인스턴스와 비트 패턴(325)의 제2 인스턴스를 비교함으로써 송신 오류를 확인할 수 있으며, 여기서 비트 패턴(320)의 제1 인스턴스와 연관된 사용자 데이터가 데이터 채널을 통해 송신되는 동안 송신 오류가 발생할 수 있다.
일부 실시예에서, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴(320)의 제1 인스턴스로부터 비트 패턴(325)의 제2 인스턴스를 생성하지 않도록 구성될 수 있다. 이러한 실시예에서, 비트 패턴의 제2 인스턴스(예를 들어, 비트 패턴의 제2 인스턴스(325-d))는 어떠한 데이터도 포함하지 않을 수 있고 메모리 디바이스(200)(또는 호스트 디바이스)는 전력 소비를 감소시킬 수 있다. 다시 말해, 메모리 디바이스(200)(또는 호스트 디바이스)는 비트 패턴(325)의 제2 인스턴스에 대응하는 제2 데이터 버스트(315)의 제2 인스턴스를 무시하고 비트 패턴(320)의 제1 인스턴스에 대응하는 제2 데이터 버스트(310)의 제1 인스턴스 동안 메모리 어레이(250)의 제2 부분(265)으로 향하는 데이터(예를 들어, ECC 데이터, 제2 사용자 데이터, 메타데이터)를 통신할 수 있다. 더욱이, 일부 실시예에서, 메모리 디바이스(200)는 제2 데이터 버스트(310)의 제1 인스턴스에 추가하여 제2 데이터 버스트(315)의 제2 인스턴스 동안 메타데이터의 다른 세트(예를 들어, 제2 메타데이터)를 송신하도록 구성될 수 있다. 예를 들어, 메모리 디바이스(200)는 비트 패턴(303-d)에 도시된 제2 데이터 버스트(310)의 제1 인스턴스 동안 비트 패턴의 제1 인스턴스(예를 들어, 비트 패턴의 제1 인스턴스(320-d))를 송신할 수 있고 제2 데이터 버스트(315)의 제2 인스턴스 동안 비트 패턴의 제2 인스턴스(예를 들어, 제2 메타데이터를 포함하는 비트 패턴의 제2 인스턴스(325-d))를 송신할 수 있다.
전술한 예시적인 실시예에서, BL8의 2개의 연속적인 제2 데이터 버스트를 포함하는 BL16을 갖는 제1 데이터 버스트 및 열여섯(16)비트 또는 여덟(8)비트를 포함하는 대응하는 비트 패턴이 설명되고 예시되었지만, 다른 실시예에서는, BL16 이외의 버스트 길이를 갖는 제1 데이터 버스트, BL8 이외의 버스트 길이를 갖는 제2 데이터 버스트, 및 대응하는 비트 패턴을 갖는 상이한 구성이 이용될 수 있다. 예를 들어, 제1 데이터 버스트는 BL24, BL32 등을 가질 수 있으며, 각각은 다양한 수량의 제2 데이터 버스트를 포함할 수 있다 - 예를 들어, BL24의 제1 데이터 버스트를 만들기 위한 BL8의 세(3)개의 제2 데이터 버스트, BL24의 제1 데이터 버스트를 만들기 위한 BL4의 여섯(6)개의 제2 데이터 버스트, BL32의 제1 데이터 버스트를 만들기 위한 BL16의 둘(2)개의 제2 데이터 버스트 등. 따라서, 데이터 버스트에 대응하는 비트 패턴도 전술한 예와 다를 수 있다. 더욱이, 비트 패턴의 제1 인스턴스와 제2 인스턴스 사이의 시퀀스는 상호 교환가능할 수 있다. 예를 들어, 비트 패턴의 제1 인스턴스로부터 생성된 비트 패턴의 제2 인스턴스는 비트 패턴의 제1 인스턴스에 선행할 수 있다.
도 4는 본 기술의 실시예에 따른 메모리 디바이스를 동작시키는 방법의 전체 개요를 도시하는 흐름도(400)이다. 흐름도(400)는 메모리 디바이스(200)(또는 메모리 디바이스(200)의 주변 회로(270))가 수행할 수 있는 방법의 예이거나 그 방법의 양태들을 포함할 수 있다. 이러한 메모리 디바이스(예를 들어, 메모리 디바이스(100 또는 200))는 메모리 어드레스 세트에 대응하는 메모리 어레이를 포함할 수 있으며, 여기서 세트의 각 메모리 어드레스는 사용자 데이터를 저장하도록 구성된 메모리 어레이의 제1 부분(예를 들어, 제1 부분(260)) 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성된 메모리 어레이의 제2 부분(예를 들어, 제2 부분(265))에 대응한다. 또한, 메모리 어레이의 제2 부분은 메모리 디바이스의 ECC 기능이 디스에이블될 때 제2 사용자 데이터, 메타데이터, 또는 둘 모두를 저장하도록 구성될 수 있다. 메모리 디바이스는 컴포넌트가 활성화될 때 호스트 디바이스가 제2 부분에 액세스하는 것을 차단하도록 구성된 컴포넌트(예를 들어, 컴포넌트(276))를 포함할 수 있다. 추가적으로 또는 대안적으로, 메모리 디바이스는 ECC 기능이 인에이블 또는 디스에이블되는지 여부를 나타내도록 구성된 레지스터(예를 들어, 레지스터(275))를 포함할 수 있다.
단계(405)에서, 메모리 디바이스(예를 들어, 메모리 디바이스(200)의 주변 회로(270))는 후속 액세스 동작을 위해 특정 뱅크(예를 들어, 도 1의 예에서 뱅크 0-15)에 행을 개방(예를 들어, 활성화) 위해 메모리 어레이(예를 들어, 메모리 어레이(250))의 행을 활성화할 수 있다. 일부 실시예에서, 주변 회로(270)는 어드레스 디코더(110) 및/또는 행 디코더(140)와 함께 행을 활성화할 수 있다.
단계(410)에서, 메모리 디바이스는 호스트 디바이스로부터 액세스 명령을 수신할 수 있다. 액세스 명령은 기록 명령 또는 판독 명령일 수 있다. 일부 실시예에서, 주변 회로(270)는 명령/어드레스 입력 회로(105)와 함께 액세스 명령을 수신할 수 있다. 또한, 메모리 디바이스는 명령 및 명령과 연관된 어드레스 핀의 상태에 기초하여 세트의 메모리 어드레스로 향하는 액세스 명령이 제1 부분 또는 제2 부분 에 액세스하도록 구성되는지 여부를 결정할 수 있다. 예를 들어, 명령 및 어드레스 핀의 상태(예를 들어, CA 상태)는 액세스 명령이 메모리 어레이의 제1 부분(예를 들어, 제1 부분(260))으로 향하는 것을 나타내는 논리 레벨 "0"에 대응할 수 있다. 또한, 명령 및 어드레스 핀의 상태(예를 들어, CA 상태)는 액세스 명령이 메모리 어레이의 제2 부분(예를 들어, 제2 부분(265))으로 향하는 것을 나타내는 논리 레벨 "1"에 대응할 수 있다.
단계(415)에서, 메모리 디바이스는 액세스 명령이 제1 부분(예를 들어, 논리 레벨 "0"에 대응하는 CA 상태)으로 향한다는 결정에 기초하여 메모리 어레이의 제1 부분(예를 들어, 제1 부분(260))에 액세스할 수 있다. 액세스 명령이 판독 명령일 때, 메모리 디바이스는 메모리 어레이의 제1 부분으로부터 사용자 데이터(예를 들어, 비트 패턴(302)를 포함하는 사용자 데이터)를 검색하고, 제1 버스트 길이(예를 들어, BL16) 동안 호스트 디바이스로 사용자 데이터(예를 들어, 제1 데이터 버스트(301))를 송신할 수 있다. 액세스 명령이 기록 명령일 때, 메모리 디바이스는 제1 버스트 길이 동안 호스트 디바이스로부터 사용자 데이터를 수신하고 메모리 어레이의 제1 부분에 사용자 데이터를 저장할 수 있다.
대안적으로, 단계(420)에서, 메모리 디바이스는 액세스 명령이 제2 부분(예를 들어, 논리 레벨 "1"에 대응하는 CA 상태) 제2 부분으로 향한다는 결정에 기초하여 메모리 어레이의 제2 부분(예를 들어, 제2 부분(265))에 액세스할 수 있다. 액세스 명령이 판독 명령일 때, 메모리 디바이스는 ECC 데이터, 사용자 데이터(예를 들어, 제2 사용자 데이터), 메타데이터, 또는 이들의 임의의 조합을 포함하는 제1 데이터 세트를 메모리 어레이의 제2 부분으로부터 검색할 수 있다. 일부 실시예에서, 메모리 디바이스는 메타데이터를 저장하도록 구성된 하나 이상의 레지스터 또는 내부의 다른 컴포넌트로부터 메타데이터를 검색할 수 있다. 일부 실시예에서, 제1 데이터 세트는 비트 패턴의 제1 인스턴스(예를 들어, 비트 패턴(320)의 제1 인스턴스)를 포함할 수 있다. 또한, 메모리 디바이스는 제1 데이터 세트로부터 제2 데이터 세트를 생성할 수 있다. 일부 실시예에서, 제2 데이터 세트는 도 3을 참조하여 설명된 바와 같이 비트 패턴(320)의 제1 인스턴스로부터의 비트 패턴의 제2 인스턴스(예를 들어, 비트 패턴(325)의 제2 인스턴스)를 포함할 수 있다.
계속 단계(420)를 참조하면, 메모리 디바이스는 제1 버스트 길이(예를 들어, BL16)의 제1 부분(예를 들어, BL8)동안 제1 데이터 세트(예를 들어, 제2 데이터 버스트(310)의 제1 인스턴스)를 호스트 디바이스로 송신할 수 있다. 이어서, 메모리 디바이스는 제1 버스트 길이(예를 들어, BL16)의 제2 부분(예를 들어, BL8)동안 제2 데이터 세트(예를 들어, 제2 데이터 버스트(315)의 제2 인스턴스)를 호스트 디바이스로 송신할 수 있다. 일부 실시예에서, 제2 데이터 세트는 제1 데이터 세트 직후에 송신될 수 있어서 - 예를 들어, 제1 데이터 세트와 제2 데이터 세트를 송신하는 사이에 간격 또는 갭이 없음 - 제1 데이터 세트 및 제2 데이터 세트는 제1 버스트 길이(예를 들어, BL16)동안 송신될 수 있다. 일부 실시예들에서, 메모리 디바이스는 제1 버스트 길이(예를 들어, BL16)의 제1 부분(예를 들어, BL8) 동안 제1 데이터 세트(예를 들어, 제2 데이터 버스트(310)의 제1 인스턴스)를 송신한 후 제1 버스트 길이(예를 들어, BL16)의 제2 부분(예를 들어, BL8)동안 메타데이터(예를 들어, 제2 메타데이터)를 송신할 수 있다. 메타데이터(예를 들어, 제2 메타데이터)는 메모리 디바이스의 다른 레지스터 또는 컴포넌트(예를 들어, 레지스터(275) 이외의 레지스터, 컴포넌트(276) 이외의 컴포넌트)로부터 검색되었을 수 있다.
액세스 명령이 기록 명령인 경우, 메모리 디바이스는 호스트 디바이스로부터 사용자 데이터(예를 들어, 제2 사용자 데이터)를 포함하는 데이터 버스트(예를 들어, 제1 데이터 버스트(301))를 수신할 수 있다. 일부 실시예에서, 사용자 데이터는 데이터 버스트의 제1 부분(예를 들어, 제2 데이터 버스트(310)의 제1 인스턴스)에 대응할 수 있다. 다른 실시예에서, 사용자 데이터는 데이터 버스트의 제2 부분(예를 들어, 제2 데이터 버스트(315)의 제2 인스턴스)에 대응할 수 있다. 일부 실시예에서, 메모리 디바이스는 제2 데이터 버스트(310)의 제1 인스턴스에 포함된 비트 패턴의 제1 인스턴스(예를 들어, 비트 패턴(320)의 제1 인스턴스)를 제2 데이터 버스트(315)의 제2 인스턴스에 포함된 비트 패턴(예를 들어, 비트 패턴(325)의 제2 인스턴스)의 인스턴스를 비교함으로써 사용자 데이터와 연관된 송신 오류를 확인할 수 있다. 이어서, 메모리 디바이스는 사용자 데이터(예를 들어, 제2 사용자 데이터)를 메모리 어레이의 제2 부분(예를 들어, 제2 부분(265))에 저장할 수 있다. 일부 실시예에서, 액세스 명령이 기록 명령인 경우, 메모리 디바이스는 호스트 디바이스에 이전에 송신된 메타데이터를 포함하는 데이터 버스트를 수신할 수 있다. 일부 실시예에서, 메모리 디바이스는 메타데이터(예를 들어, 하나 이상의 레지스터에 저장된 메타데이터)를 검색하고 검색된 메타데이터를 메모리 어레이에 저장하도록 표시하는 기록 명령을 호스트 디바이스로부터 수신할 수 있다. 그러한 실시예에서, 호스트 디바이스는 그러한 표시에 대한 기록 명령과 연관된 메모리 디바이스의 하나 이상의 핀(예를 들어, 명령 및 어드레스 핀, CA 핀)의 상태를 설정할 수 있다.
일부 실시예들에서, 메모리 디바이스는, 제2 부분에 액세스하기 전에, 호스트 디바이스가 메모리 디바이스의 컴포넌트(예를 들어, 컴포넌트(276))의 상태에 기초하여 제2 부분에 액세스할 수 있다고 결정할 수 있고, 여기서 컴포넌트는 컴포넌트가 활성화될 때 호스트 디바이스가 제2 부분에 액세스하는 것을 차단하도록 구성될 수 있다. 일부 실시예에서, 컴포넌트는 퓨즈(예를 들어, 퓨즈 어레이)를 포함할 수 있다. 추가적으로 또는 대안적으로, 컴포넌트는 (예를 들어, 레지스터(275) 이외의) 다른 레지스터를 포함할 수 있다.
단계 (425)에서, 메모리 디바이스(예를 들어, 메모리 디바이스(200)의 주변 회로(270))는 메모리 어레이(예를 들어, 메모리 어레이(250))의 행을 프리차지하여 특정 뱅크의 개방 행을(또는 모든 뱅크에서 개방 행) 비활성화시킨다. 따라서, 뱅크(들)는 후속 행 활성화(예를 들어, 다른 액세스 명령이 발행될 수 있음)를 위해 사용 가능하게 된다(예를 들어, 유휴 상태에서). 일부 실시예에서, 주변 회로(270)는 어드레스 디코더(110) 및/또는 행 디코더(140)와 함께 행을 프리차지할 수 있다.
도 5는 본 기술의 실시예에 따라 구성된 메모리 디바이스(500)를 갖는 시스템(501)의 블록도이다. 메모리 디바이스(500)는 도 1 및 2를 참조하여 설명된 메모리 디바이스들(100 또는 200)의 예일 수 있거나 그 양태들을 포함할 수 있다. 도시된, 메모리 디바이스(500)는 메인 메모리(502)(예를 들어, DRAM, NAND 플래시, NOR 플래시, FeRAM, PCM 등) 및 호스트 디바이스(508)(예를 들어, 업스트림 중앙 프로세서(CPU))에 동작 가능하게 결합된 제어 회로부(506)를 포함한다. 메인 메모리(502)는 도 1 및 2를 참조하여 설명된 메모리 어레이(150 또는 250)의 예일 수 있거나 그 양태를 포함할 수 있다. 또한, 제어 회로부(506)는 도2를 참조하여 설명된 주변 회로(270)의 예일 수 있거나 그 양태를 포함할 수 있다. 메인 메모리(502)는 각각 복수의 메모리 셀을 포함하는 복수의 메모리 유닛(520)을 포함한다. 메모리 유닛(520)은 개별 메모리 다이, 단일 메모리 다이의 메모리 평면, TSV(through-silicon vias)와 수직으로 연결된 메모리 다이 스택 등일 수 있다. 예를 들어, 일 실시예에서, 메모리 유닛들(520) 각각은 반도체 다이로 형성될 수 있고 단일 디바이스 패키지에서 다른 메모리 유닛 다이들과 함께 배열될 수 있다. 다른 실시예에서, 다수의 메모리 유닛(520)은 단일 다이 상에 공동 배치될 수 있고/있거나 다수의 디바이스 패키지에 걸쳐 분산될 수 있다. 일부 실시예에서 메모리 유닛(520)은 또한 메모리 영역(528)(예를 들어, 뱅크, 랭크, 채널, 블록, 페이지 등)으로 세분될 수 있다.
메모리 셀은 예를 들어, 플로팅 게이트, 전하 트랩, 위상 변화, 용량성, 강유전성, 자기 저항, 및/또는 데이터를 지속적으로 또는 반영구적으로 저장하도록 구성된 다른 적절한 저장 요소를 포함할 수 있다. 메인 메모리(502) 및/또는 개별 메모리 유닛(520)은 또한 정보 처리 및/또는 제어 회로부(506) 또는 호스트 디바이스(508)와 통신하기 위한 것과 같은 메모리 셀 및 기타 기능을 액세스 및/또는 프로그래밍(예를 들어, 기록) 하기 위한 멀티플렉서, 디코더, 버퍼, 판독/기록 드라이버, 어드레스 레지스터, 레지스터의 데이터 출력/데이터 등과 같은 다른 회로 컴포넌트를 포함할 수 있다. 예시의 목적으로 특정 수의 메모리 셀, 행, 열, 영역 및 메모리 유닛을 갖는 예시된 실시예에 도시되어 있지만, 메모리 셀, 행, 열, 영역 및 메모리 유닛의 수는 다양할 수 있으며, 다른 실시예에서는 예시된 예에 도시된 것보다 규모가 크거나 작을 수 있다. 예를 들어, 일부 실시예에서 메모리 디바이스(500)는 하나의 메모리 유닛(520)만을 포함할 수 있다. 대안적으로, 메모리 디바이스(500)는 2개, 3개, 4개, 8개, 10개 또는 그 이상(예를 들어, 16, 32, 64개 또는 그 이상)의 메모리 유닛(520)을 포함할 수 있다. 메모리 유닛들(520)이 도 5에 각각 4개의 메모리 영역들(528)을 포함하는 것으로 도시되어 있지만, 다른 실시예들에서, 각각의 메모리 유닛(520)은 1개, 2개, 3개, 8개, 또는 그 이상(예를 들어, 16, 32, 64, 100, 128, 256 또는 그 이상) 메모리 영역을 포함할 수 있다.
일 실시예에서, 제어 회로부(506)는 메인 메모리(502)와 동일한 다이 상에 제공될 수 있다(예를 들어, 명령/어드레스/클럭 입력 회로부, 디코더, 전압 및 타이밍 생성기, 입력/출력 회로부 등을 포함함). 다른 실시예에서, 제어 회로부(506)는 마이크로컨트롤러, 특수 목적 논리 회로부(예를 들어, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 메모리 다이 상의 제어 회로부 등), 또는 다른 적절한 프로세서일 수 있다. 일 실시예에서, 제어 회로부(506)는 메인 메모리(502)를 관리하고 메모리 디바이스(500)와 호스트 디바이스(508)간의 통신을 처리하는 것을 포함하여 메모리 디바이스(500)의 동작을 제어하기 위한 다양한 프로세스, 논리 흐름, 및 루틴을 수행하기 위해 메모리에 저장된 명령을 실행하도록 구성된 프로세서를 포함할 수 있다. 일부 실시예에서, 제어 회로부(506)는 예를 들어 행 카운터, 뱅크 카운터, 메모리 포인터, 페치된 데이터 등을 저장하기 위한 메모리 레지스터를 갖는 임베디드 메모리를 포함할 수 있다. 본 기술의 다른 실시예에서, 메모리 디바이스(500)는 제어 회로부를 포함하지 않을 수 있고, 대신 외부 제어(예를 들어, 호스트 디바이스(508)에 의해, 또는 메모리 디바이스(500)와 별개의 프로세서 또는 컨트롤러에 의해 제공됨)에 의존할 수 있다.
호스트 디바이스(508)는 정보의 일시적 또는 영구적 저장을 위해 메모리를 사용할 수 있는 다수의 전자 디바이스 또는 그 컴포넌트 중 임의의 하나일 수 있다. 예를 들어, 호스트 디바이스(508)는 데스크탑 또는 휴대용 컴퓨터, 서버, 핸드헬드 디바이스(예를 들어, 이동 전화, 태블릿, 디지털 판독기, 디지털 미디어 플레이어), 또는 일부 컴포넌트(예를 들어, 중앙 처리 유닛, 코프로세서, 전용 메모리 컨트롤러 등)와 같은 컴퓨팅 디바이스일 수 있다. 호스트 디바이스(508)는 네트워킹 디바이스(예를 들어, 스위치, 라우터 등) 또는 디지털 이미지의 레코더, 오디오 및/또는 비디오, 차량, 가전제품, 장난감, 또는 다수의 다른 제품들 중 어느 하나일 수 있다. 일 실시예에서, 호스트 디바이스(508)는 메모리 디바이스(500)에 직접 연결될 수 있지만, 다른 실시예에서, 호스트 디바이스(508)는 간접적으로 메모리 디바이스에 연결될 수 있다(예를 들어, 네트워크 연결을 통해 또는 중간 디바이스를 통해).
동작시, 제어 회로부(506)는 메인 메모리(502)의 다양한 메모리 영역에 직접 기록하거나 프로그래밍(예를 들어, 소거)할 수 있다. 제어 회로부(506)는 호스트-디바이스 버스 또는 인터페이스(510)를 통해 호스트 디바이스(508)와 통신한다. 일부 실시예에서, 호스트-디바이스 버스 또는 인터페이스(510)는 미리 결정된 버스트 길이를 갖는 데이터 버스트를 운반하도록 구성될 수 있다. 예를 들어, 호스트-디바이스 버스 또는 인터페이스(510)는 제1 버스트 길이(예를 들어, BL16)를 갖는 데이터 버스트를 전달할 수 있다. 일부 실시예에서, 호스트 디바이스(508) 및 제어 회로부(506)는 전용 메모리 버스(예를 들어, DRAM 버스)를 통해 통신할 수 있다. 다른 실시예에서, 호스트 디바이스(508) 및 제어 회로부(506)는 직렬 인터페이스 예컨대, SAS(Serial Attached SCSI), SATA(Serial AT Attachment) 인터페이스, PCIe(Peripheral Component Interconnect Express) 또는 기타 적절한 인터페이스(예를 들어, 병렬 인터페이스)를 통해 통신할 수 있다. 호스트 디바이스(508)는 다양한 요청(예를 들어, 패킷 또는 패킷 스트림의 형태로)을 제어 회로부(506)에 보낼 수 있다. 요청은 정보를 판독하고, 기록하고, 소거하고, 정보를 반환하고, 및/또는 특정 동작(예를 들어, 리프레시 동작, TRIM 동작, 프리차지 동작, 활성화 동작, 웨어 레벨링 동작, 가비지 컬렉션 동작 등)을 수행하기 위한 명령을 포함할 수 있다.
일부 실시예에서, 제어 회로부(506)는 필요에 따라 리프레시 동작을 수행하는 것을 용이하게 하기 위해 다수의 메모리 유닛(520)에 메인 메모리(502)에서(예를 들어, 제어 회로부(506)의 임베디드 메모리에 레지스터 또는 테이블에서 수행된) 동작(예를 들어, 판독 동작, 기록 동작, 소거 동작, 활성화 동작 등)을 추적하도록 구성될 수 있다. 이와 관련하여, 제어 회로부(506)는 상이한 메모리 유닛(520)에 의해 경험되는 동작의 수 또는 레이트를 비교하고 및 메모리 유닛(520)에 의해 경험되는 동작의 수 또는 레이트 사이의 비교에 기초하여 메모리 유닛(520)에 대한 리프레시 동작을 수행하거나 스케줄링하도록 구성될 수 있다. 대안적으로, 제어 회로부(506)는 각각의 메모리 유닛(520)과 하나 이상의 미리 결정된 임계값(예를 들어, 동작의 임계값 수, 동작의 임계 레이트 등)의 비교에 기초하여 메모리 유닛(520)에 대한 리프레시 동작을 수행하거나 스케줄링하도록 구성될 수 있다. 따라서, 임계 수 또는 레이트를 초과하는 동작의 대상인 메모리 유닛(520)은 다른 유닛(520)이 비순차적 리프레시 동작을 겪을 수 있는 자유로 인해 다른 유닛(520)보다 더 자주 리프레시될 수 있다.
일부 실시예에서, 메모리 디바이스(500)는 메모리 어드레스 세트에 대응하는 메모리 어레이를 포함할 수 있으며, 여기서 세트의 각각의 메모리 어드레스는 사용자 데이터를 저장하도록 구성된 메모리 어레이의 제1 부분 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하고, 메모리 디바이스의 ECC 기능이 디스에이블될 때 제2 사용자 데이터, 메모리 디바이스와 연관된 메타데이터, 또는 둘 모두를 저장하도록 구성된 제2 부분에 대응한다. 일부 실시예에서, 호스트 디바이스(508)는 메모리 어드레스 세트의 메모리 어드레스로 어드레싱된 명령의 액세스 유형을 나타내는 메모리 디바이스의 하나 이상의 핀(예를 들어, 도 1을 참조하여 설명된 액세스 명령과 연관된 명령 신호(CMD) 및 어드레스 신호(ADDR)를 수신하도록 지정된 하나 이상의 핀)의 상태를 설정하도록 구성될 수 있다. 일부 실시예에서, 메모리 디바이스(500)는 호스트 디바이스로부터 메모리 어드레스로 어드레싱된 명령을 수신하고, 호스트 디바이스로부터 수신된 명령에 응답하여 메모리 어레이의 제2 부분에 액세스하고, 하나 이상의 핀의 상태에 기초하여, 명령에 응답하여 메모리 어레이의 제2 부분으로 또는 제2 부분으로부터 호스트 디바이스 데이터와 통신하도록 구성될 수 있다.
일부 실시예에서, 명령은 판독 명령일 수 있고 메모리 디바이스(500)는 버스트 길이(예를 들어, BL16)동안 ECC 데이터, 제2 사용자 데이터, 메타데이터, 또는 이들의 임의의 조합을 포함하는 데이터 세트를 송신할 수 있고, 호스트 디바이스는 데이터 세트의 제1 부분과 데이터 세트의 제2 부분을 비교함으로써 송신 오류를 검사하도록 추가로 구성될 수 있다. 일부 실시예에서, 명령은 기록 명령일 수 있고, 호스트 디바이스는 버스트 길이 동안 제2 사용자 데이터를 포함하는 데이터 세트를 송신할 수 있고, 메모리 디바이스는 데이터 세트의 제1 부분과 데이터 세트의 제2 부분을 비교함으로써 송신 오류를 검사하도록 더 구성될 수 있다. 일부 실시예에서, 데이터 세트의 제1 부분은 버스트 길이의 전반부에 대응할 수 있고 데이터 세트의 제2 부분은 버스트 길이의 후반부에 대응할 수 있다.
도 6은 본 기술의 실시예에 따른 메모리 디바이스를 동작시키는 방법을 예시하는 흐름도(600)이다. 흐름도(600)는 도 2 및 도 3을 참조하여 설명된 메모리 디바이스(200)(또는 메모리 디바이스(200)의 주변 회로(270))가 수행할 수 있는 방법의 예이거나 그 방법의 양태들을 포함할 수 있다. 이러한 메모리 디바이스(메모리 디바이스(100 또는 200))는 메모리 어드레스 세트에 대응하는 메모리 어레이를 포함할 수 있으며, 여기서 세트의 각각의 메모리 어드레스는 사용자 데이터를 저장하도록 구성된 메모리 어레이의 제1 부분(예를 들어, 제1 부분(260)) 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성된 메모리 어레이의 제2 부분(예를 들어, 제2 부분(265))에 대응한다. 또한, 메모리 어레이의 제2 부분은 메모리 디바이스의 ECC 기능이 디스에이블될 때 제2 사용자 데이터, 메타데이터, 또는 둘 모두를 저장하도록 구성될 수 있다. 메모리 디바이스는 컴포넌트가 활성화될 때 호스트 디바이스가 제2 부분에 액세스하는 것을 차단하도록 구성된 컴포넌트(예를 들어, 컴포넌트(276))를 포함할 수 있다.
방법은 사용자 데이터를 저장하도록 구성된 메모리 어레이의 제1 부분 및 메모리 디바이스의 ECC 기능이 인에이블될 때 제1 부분의 사용자 데이터와 연관된 ECC 데이터를 저장하도록 구성된 메모리 어레이의 제2 부분에 각각 대응하는 메모리 어드레스 세트에 대응하는 메모리 어레이를 포함하는 메모리 디바이스에서 호스트 디바이스로부터 명령을 수신하는 단계를 포함한다 (박스 610). 본 기술의 일 양태에 따르면, 박스(610)의 수신 특징은 도 1을 참조하여 설명된 명령/어드레스 입력 회로(105)와 함께 주변 회로(예를 들어, 도 2의 주변 회로(270)) 또는 제어 회로부(예를 들어, 도 5의 제어 회로부(506))에 의해 수행될 수 있다.
방법은 호스트 디바이스로부터 수신된 명령에 응답하여 그리고 명령에 의해 지시된 액세스 유형을 나타내는 메모리 디바이스의 하나 이상의 핀의 상태에 기초하여 메모리 어레이의 제2 부분에 액세스하는 단계를 더 포함한다(박스 615). 본 기술의 일 양태에 따르면, 박스(615)의 액세스 특징은 도 1을 참조하여 설명된 행 디코더(140) 및 열 디코더(145)와 함께 주변 회로(예를 들어, 도 2의 주변 회로(270)) 또는 제어 회로부(예를 들어, 도 5의 제어 회로부(506))에 의해 수행될 수 있다.
방법은 명령에 응답하여 메모리 어레이의 제2 부분으로 또는 제2 부분으로부터 호스트 디바이스 데이터와 통신하는 단계를 더 포함한다(박스 620). 본 기술의 일 양태에 따르면, 박스(620)의 통신 특징은 도 1을 참조하여 설명된 입력/출력 회로(160)와 함께 주변 회로(예를 들어, 도 2의 주변 회로(270)) 또는 제어 회로부(예를 들어, 도 5의 제어 회로부(506))에 의해 수행될 수 있다.
방법은 제2 부분에 액세스하기 전에, 메모리 디바이스의 컴포넌트(예를 들어, 컴포넌트(276))의 상태에 기초하여 호스트 디바이스에 의해 제2 부분이 액세스가능하다고 결정하는 단계를 더 포함할 수 있으며, 여기서 컴포넌트가 활성화될 때 컴포넌트는 호스트 디바이스가 제2 부분에 액세스하는 것을 차단하도록 구성된다(박스 625). 본 기술의 일 양태에 따르면, 박스(625)의 결정 특징은 주변 회로(예를 들어, 도 2의 주변 회로(270)) 또는 제어 회로(예를 들어, 도 4의 제어 회로(406))에 의해 수행될 수 있다.
위에서 설명된 방법은 가능한 구현을 설명하고 동작 및 단계가 재배열되거나 달리 수정될 수 있고 다른 구현이 가능하다는 점에 유의해야 하다. 또한, 둘 이상의 방법으로부터의 실시예가 조합될 수 있다.
본 명세서에 기술된 정보 및 신호는 다양한 상이한 기술 및 기술 중 임의의 것을 사용하여 표현될 수 있다. 예를 들어, 위의 설명 전체에서 참조될 수 있는 데이터, 명령, 지침, 정보, 신호, 비트, 심벌 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학 필드 또는 입자, 또는 임의의 이들의 조합에 의해 표현될 수 있다. 일부 도면은 신호를 단일 신호로 나타낼 수 있다; 그러나, 당업자는 신호가 신호의 버스를 나타낼 수 있고, 여기서 버스는 다양한 비트 폭을 가질 수 있음을 이해할 것이다.
메모리 디바이스를 포함하여 본 명세서에서 논의된 디바이스는 실리콘, 게르마늄, 실리콘-게르마늄 합금, 갈륨 비소, 갈륨 질화물 등과 같은 반도체 기판 또는 다이 상에 형성될 수 있다. 일부 경우에, 기판은 반도체 웨이퍼이다. 다른 경우에, 기판은 SOG(silicon-on-glass) 또는 SOP(silicon-on-sapphire)와 같은 SOI(silicon-on-insulator) 기판, 또는 다른 기판 상의 반도체 재료의 에피택셜 층일 수 있다. 기판의 전도도, 또는 기판의 하위 영역은 인, 붕소 또는 비소를 포함하지만 이에 제한되지 않는 다양한 화학종을 사용하여 도핑을 통해 제어될 수 있다. 도핑은 기판의 초기 형성 또는 성장 동안, 이온 주입에 의해, 또는 임의의 다른 도핑 수단에 의해 수행될 수 있다.
본원에 설명된 기능은 하드웨어, 프로세서에 의해 실행되는 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 다른 예 및 구현은 본 개시 및 첨부된 청구범위의 범위 내에 있다. 기능을 구현하는 특징은 또한 기능의 일부가 다른 물리적 위치에서 구현되도록 분산되는 것을 포함하여 다양한 위치에 물리적으로 위치할 수 있다.
청구범위를 포함하여 본 명세서에 사용된, 항목의 목록에서 사용된 "또는"(예를 들어, "~의 적어도 하나" 또는 "하나 이상의"와 같은 문구가 앞에 오는 항목의 목록)은 예를 들어, A, B 또는 C 중 적어도 하나의 목록이 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C)를 의미하는 포괄적 목록을 나타낸다. 또한, 본 명세서에 사용된, "~에 기초한"이라는 문구는 폐쇄된 조건 세트에 대한 참조로 해석되어서는 안 된다. 예를 들어, "조건 A 기반"으로 설명된 예시적인 단계는 본 개시의 범위를 벗어나지 않고 조건 A 및 조건 B 둘 모두를 기반으로 할 수 있다. 다시 말해서, 본 명세서에서 사용되는 "~에 기초한"이라는 문구는 "적어도 부분적으로 ~에 기초한"이라는 문구와 동일한 방식으로 해석되어야 하다.
전술한 내용으로부터, 본 발명의 특정 실시예가 예시의 목적으로 여기에 설명되었지만, 본 발명의 범위를 벗어나지 않고 다양한 수정이 이루어질 수 있음을 이해할 것이다. 오히려, 전술한 설명에서, 본 기술의 실시예에 대한 철저하고 가능한 설명을 제공하기 위해 다수의 특정 세부사항이 논의된다. 그러나, 관련 기술분야의 숙련자는 본 개시내용이 하나 이상의 특정 세부사항 없이 실시될 수 있음을 인식할 것이다. 다른 예에서, 메모리 시스템 및 디바이스와 자주 관련된 잘 알려진 구조 또는 동작은 기술의 다른 측면을 모호하게 하는 것을 피하기 위해 도시되지 않거나 상세하게 설명되지 않는다. 일반적으로, 본원에 개시된 특정 실시예 외에 다양한 다른 디바이스, 시스템 및 방법이 본 기술의 범위 내에 있을 수 있음을 이해해야 한다.

Claims (20)

  1. 장치에 있어서,
    메모리 어레이로서, 제1 사용자 데이터를 저장하도록 구성된 상기 메모리 어레이의 제1 부분 및 1) 상기 장치의 오류 정정 코드(ECC) 기능이 인에이블될 때 상기 제1 사용자 데이터와 연관된 ECC 데이터를 저장하고 및 2) 상기 ECC 기능이 디스에이블 될 때 제2 사용자 데이터 또는 상기 장치와 연관된 메타데이터 또는 둘 모두를 저장하도록 구성된 상기 메모리 어레이의 제2 부분에 각각 대응하는 복수의 메모리 어드레스에 대응하는, 상기 메모리 어레이; 및
    회로부(circuitry)로서,
    호스트 디바이스로부터 상기 메모리 어레이로 향하는 명령을 수신하고; 상기 명령은 상기 명령이 상기 메모리 어레이의 상기 제1 부분 또는 상기 제2 부분으로 향하는지 여부를 나타내는 적어도 하나의 비트를 포함하고;
    상기 호스트 디바이스로부터 수신된 명령에 응답하여 상기 메모리 어레이의 제2 부분에 액세스하고; 및
    상기 명령에 응답하여 상기 메모리 어레이의 상기 제2 부분으로 또는 상기 제2 부분으로부터 상기 ECC 데이터, 상기 제2 사용자 데이터 또는 상기 메타데이터 중 적어도 하나를 상기 호스트 디바이스와 통신하도록 구성된, 상기 회로부를 포함하는, 장치.
  2. 청구항 1에 있어서,
    상기 ECC 기능이 인에이블(enable) 또는 디스에이블(disable)되었는지 여부를 나타내도록 구성된 레지스터를 더 포함하는, 장치.
  3. 청구항 1에 있어서,
    컴포넌트가 활성화될 때 상기 호스트 디바이스가 상기 제2 부분에 액세스하는 것을 차단하도록 구성된 상기 컴포넌트를 더 포함하는, 장치.
  4. 청구항 3에 있어서, 상기 컴포넌트가 활성화될 때 상기 컴포넌트는 프로그래밍되도록 구성된 퓨즈를 포함하는, 장치.
  5. 청구항 1에 있어서, 상기 회로부는 상기 명령이 상기 제1 부분에 액세스하도록 구성된 경우 제1 버스트 길이 동안 상기 호스트 디바이스와 통신하고, 상기 명령이 제2 부분에 액세스하도록 구성된 경우 상기 제1 버스트 길이보다 짧은 제2 버스트 길이 동안 상기 호스트 디바이스와 통신하도록 구성된, 장치.
  6. 청구항 1에 있어서, 상기 회로부는 상기 제2 부분으로부터 검색된 제1 데이터 세트로부터 제2 데이터 세트를 생성하도록 더 구성되고, 상기 제1 데이터 세트는 상기 ECC 데이터, 상기 제2 사용자 데이터, 또는 상기 메타데이터 중 적어도 하나를 포함하는, 장치.
  7. 청구항 6에 있어서, 상기 제2 데이터 세트는 상기 제1 데이터 세트의 송신 오류를 검사하도록 구성된, 장치.
  8. 방법으로서,
    제1 사용자 데이터를 저장하도록 구성된 메모리 어레이의 제1 부분 및 1) 메모리 디바이스의 오류 정정 코드(ECC) 기능이 인에이블될 때 상기 제1 사용자 데이터와 연관된 ECC 데이터를 저장하고, 및 2) 상기 ECC 기능이 디스에이블 될 때 제2 사용자 데이터 또는 상기 메모리 디바이스와 연관된 메타데이터 또는 둘 모두를 저장하도록 구성된 상기 메모리 어레이의 제2 부분에 각각 대응하는 복수의 메모리 어드레스에 대응하는 메모리 어레이를 포함하는 상기 메모리 디바이스에서 명령을 호스트 디바이스로부터 수신하는 단계로서, 상기 명령은 상기 명령이 상기 메모리 어레이의 상기 제1 부분 또는 상기 제2 부분으로 향하는지 여부를 나타내는 적어도 하나의 비트를 포함하는, 상기 수신하는 단계;
    상기 호스트 디바이스로부터 수신된 명령에 응답하여 상기 메모리 어레이의 상기 제2 부분에 액세스하는 단계; 및
    상기 명령에 응답하여 상기 메모리 어레이의 상기 제2 부분으로 또는 상기 제2 부분으로부터 상기 ECC 데이터, 상기 제2 사용자 데이터 또는 상기 메타데이터 중 적어도 하나를 상기 호스트 디바이스와 통신하는 단계를 포함하는, 방법.
  9. 청구항 8에 있어서,
    상기 제2 부분에 액세스하기 전에, 상기 메모리 디바이스의 컴포넌트의 상태에 기초하여 상기 호스트 디바이스에 의해 상기 제2 부분이 액세스 가능하다고 결정하는 단계를 더 포함하고, 상기 컴포넌트가 활성화될 때 상기 컴포넌트는 상기 호스트 디바이스가 상기 제2 부분에 액세스하는 것을 차단하도록 구성된, 방법.
  10. 청구항 8에 있어서,
    상기 제2 부분으로부터 상기 ECC 데이터, 제2 사용자 데이터, 또는 상기 메타데이터 중 적어도 하나를 검색하는 단계를 더 포함하고, 상기 호스트 디바이스로부터 수신된 명령은 판독 명령을 포함하는, 방법.
  11. 청구항 10에 있어서,
    제1 버스트 길이의 일부 동안 상기 ECC 데이터, 상기 제2 사용자 데이터, 또는 메타데이터 중 적어도 하나를 송신하는 단계를 더 포함하고, 상기 메모리 디바이스는 상기 명령이 상기 메모리 어레이의 상기 제1 부분에 액세스하도록 구성될 때 상기 제1 버스트 길이 동안 상기 호스트 디바이스와 통신하도록 구성된, 방법.
  12. 청구항 10에 있어서,
    제1 버스트 길이 보다 작은 제2 버스트 길이 동안 상기 ECC 데이터, 상기 제2 사용자 데이터, 또는 상기 메타데이터 중 적어도 하나를 송신하는 단계를 더 포함하고, 상기 메모리 디바이스는 상기 명령이 상기 메모리 어레이의 상기 제1 부분에 액세스하도록 구성될 때 상기 제1 버스트 길이 동안 상기 호스트 디바이스와 통신하고, 상기 명령이 상기 메모리 어레이의 상기 제2 부분을 액세스하도록 구성될 때 상기 제2 버스트 길이 동안 상기 호스트 디바이스와 통신하도록 구성된, 방법.
  13. 청구항 8에 있어서,
    상기 메모리 어레이의 상기 제2 부분으로부터 제1 데이터 세트를 검색하는 단계 - 상기 제1 데이터 세트는 상기 ECC 데이터, 상기 제2 사용자 데이터, 또는 상기 메타데이터 중 적어도 하나를 포함하고, 상기 명령은 판독 명령을 포함함 -; 및
    상기 제1 데이터 세트로부터 제2 데이터 세트를 생성하는 단계를 더 포함하고, 상기 제2 데이터 세트는 상기 제1 데이터 세트의 송신 오류를 검사하도록 구성된, 방법.
  14. 청구항 13에 있어서,
    제1 버스트 길이 동안 상기 제1 데이터 세트 및 상기 제2 데이터 세트를 송신하는 단계를 더 포함하고, 상기 메모리 디바이스는 상기 명령이 상기 메모리 어레이의 상기 제1 부분에 액세스하도록 구성될 때 상기 제1 버스트 길이 동안 상기 호스트 디바이스와 통신하도록 구성된, 방법.
  15. 청구항 8에 있어서,
    기록 명령과 연관된 상기 제2 사용자 데이터를 상기 메모리 어레이의 상기 제2 부분에 저장하는 단계를 더 포함하고, 상기 명령은 상기 기록 명령을 포함하는, 방법.
  16. 메모리 시스템에 있어서,
    호스트 디바이스; 및
    메모리 디바이스를 포함하며, 상기 메모리 디바이스는,
    메모리 어레이로서, 제1 사용자 데이터를 저장하도록 구성된 상기 메모리 어레이의 제1 부분 및 1) 상기 메모리 디바이스의 오류 정정 코드(ECC) 기능이 인에이블될 때 상기 제1 사용자 데이터와 연관된 ECC 데이터를 저장하고 그리고 2) 상기 메모리 디바이스의 ECC 기능이 디스에이블될 때 제2 사용자 데이터 또는 상기 메모리 디바이스와 연관된 메타데이터, 또는 둘 모두를 저장하도록 구성된 상기 메모리 어레이의 제2 부분에 각각 대응하는 복수의 메모리 어드레스에 대응하는, 상기 메모리 어레이를 포함하고,
    상기 호스트 디바이스는 상기 복수의 메모리 어드레스에 어드레싱된 명령에 적어도 하나의 비트를 포함하도록 구성되고, 상기 적어도 하나의 비트는 상기 명령이 상기 메모리 어레이의 상기 제1 부분 또는 상기 제2 부분으로 향하는 지 여부를 나타내는, 및
    상기 메모리 디바이스는,
    상기 호스트 디바이스로부터 상기 명령을 수신하고;
    상기 호스트 디바이스로부터 수신된 명령에 응답하여 상기 메모리 어레이의 상기 제2 부분에 액세스하고; 및
    상기 명령에 응답하여 상기 메모리 어레이의 상기 제2 부분으로 또는 상기 제2 부분으로부터 상기 ECC 데이터, 상기 제2 사용자 데이터 또는 상기 메타데이터 중 적어도 하나를 상기 호스트 디바이스와 통신하도록 구성된, 메모리 시스템.
  17. 청구항 16에 있어서, 상기 명령은 판독 명령이고, 상기 메모리 디바이스는 상기 ECC 데이터, 상기 제2 사용자 데이터, 또는 상기 메타데이터 중 적어도 하나를 포함하는 데이터 세트를 송신하고, 상기 호스트 디바이스는 상기 데이터 세트의 제1 부분과 상기 데이터 세트의 제2 부분을 비교함으로써 송신 오류를 검사하도록 추가로 구성되는, 메모리 시스템.
  18. 청구항 16에 있어서, 상기 명령은 기록 명령이고, 상기 호스트 디바이스는 상기 제2 사용자 데이터를 포함하는 데이터 세트를 송신하고, 상기 메모리 디바이스는 상기 데이터 세트의 제1 부분과 상기 데이터 세트의 제2 부분을 비교함으로써 송신 오류를 검사하도록 추가로 구성되는, 메모리 시스템.
  19. 제18항에 있어서, 상기 호스트 디바이스는 버스트 길이 동안 상기 데이터 세트를 송신하고, 상기 데이터 세트의 상기 제1 부분은 상기 버스트 길이의 전반부(first one half)에 대응하고, 상기 데이터 세트의 상기 제2 부분은 상기 버스트 길이의 후반부(second one half)에 대응하는, 메모리 시스템.
  20. 삭제
KR1020227009290A 2019-08-29 2020-07-31 수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스 KR102452241B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/554,931 US11200118B2 (en) 2019-08-29 2019-08-29 Semiconductor device with modified command and associated methods and systems
US16/554,931 2019-08-29
PCT/US2020/044654 WO2021040964A1 (en) 2019-08-29 2020-07-31 Semiconductor device with modified command and associated methods and systems

Publications (2)

Publication Number Publication Date
KR20220041948A KR20220041948A (ko) 2022-04-01
KR102452241B1 true KR102452241B1 (ko) 2022-10-07

Family

ID=74679799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227009290A KR102452241B1 (ko) 2019-08-29 2020-07-31 수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스

Country Status (5)

Country Link
US (2) US11200118B2 (ko)
EP (1) EP4022620A4 (ko)
KR (1) KR102452241B1 (ko)
CN (1) CN114341813B (ko)
WO (1) WO2021040964A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11728003B2 (en) * 2020-05-12 2023-08-15 Qualcomm Incorporated System and memory with configurable error-correction code (ECC) data protection and related methods
KR20220037142A (ko) * 2020-09-17 2022-03-24 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 시스템
US11658685B2 (en) * 2021-10-05 2023-05-23 Macronix International Co., Ltd. Memory with multi-mode ECC engine
CN114780457A (zh) * 2022-03-16 2022-07-22 长江存储科技有限责任公司 存储器及其操作方法、存储器系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130179752A1 (en) 2012-01-09 2013-07-11 Hojun Shim Storage device and nonvolatile memory device and operating method thereof
US20140229655A1 (en) 2013-02-08 2014-08-14 Seagate Technology Llc Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure
US20150033096A1 (en) 2011-08-12 2015-01-29 Micron Technology, Inc. Memory devices and configuration methods for a memory device
US20190250985A1 (en) 2018-02-13 2019-08-15 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US6212631B1 (en) 1999-01-15 2001-04-03 Dell Usa, L.P. Method and apparatus for automatic L2 cache ECC configuration in a computer system
JP3595495B2 (ja) 2000-07-27 2004-12-02 Necマイクロシステム株式会社 半導体記憶装置
US7444581B2 (en) 2003-11-04 2008-10-28 Texas Instruments Incorporated Error handling of storage device data in real time systems
US7398348B2 (en) 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US20060218467A1 (en) 2005-03-24 2006-09-28 Sibigtroth James M Memory having a portion that can be switched between use as data and use as error correction code (ECC)
US7757061B2 (en) * 2005-05-03 2010-07-13 Micron Technology, Inc. System and method for decoding commands based on command signals and operating state
US7624329B2 (en) 2006-08-30 2009-11-24 Freescale Semiconductor, Inc. Programming a memory device having error correction logic
US8102710B2 (en) 2007-10-17 2012-01-24 Micron Technology, Inc. System and method for setting access and modification for synchronous serial interface NAND
US8239732B2 (en) 2007-10-30 2012-08-07 Spansion Llc Error correction coding in flash memory devices
WO2010069045A1 (en) 2008-12-18 2010-06-24 Mosaid Technologies Incorporated Error detection method and a system including one or more memory devices
US8495467B1 (en) 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
US8738995B2 (en) * 2009-09-10 2014-05-27 Hewlett-Packard Development Company, L.P. Memory subsystem having a first portion to store data with error correction code information and a second portion to store data without error correction code information
US8437183B2 (en) * 2009-12-16 2013-05-07 Sandisk Il Ltd. Auxiliary parity bits for data written in multi-level cells
EP2633409A4 (en) 2010-10-27 2014-07-23 Lsi Corp ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9690650B2 (en) 2013-03-11 2017-06-27 Macronix International Co., Ltd. Storage scheme for built-in ECC operations
US9367391B2 (en) 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9146809B2 (en) 2013-10-07 2015-09-29 Macronix International Co., Ltd. ECC method for double pattern flash memory
US20150169406A1 (en) 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
US9535785B2 (en) 2014-01-17 2017-01-03 Macronix International Co., Ltd. ECC method for flash memory
US9904596B2 (en) 2014-05-15 2018-02-27 Integrated Silicon Solution, Inc. Serial bus event notification in a memory device
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
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
JP6542076B2 (ja) * 2015-08-28 2019-07-10 東芝メモリ株式会社 メモリシステム
US11216323B2 (en) 2015-09-16 2022-01-04 Samsung Electronics Co., Ltd. Solid state memory system with low power error correction mechanism and method of operation thereof
US10503435B2 (en) * 2016-12-01 2019-12-10 Qualcomm Incorporated Providing extended dynamic random access memory (DRAM) burst lengths in processor-based systems
CN107039087A (zh) 2017-05-17 2017-08-11 西安紫光国芯半导体有限公司 用于dram的ecc编码方法以及dram
CN107039086A (zh) 2017-05-17 2017-08-11 西安紫光国芯半导体有限公司 具有兼容不同数据长度的纠错功能的存储器和纠错方法
CN107025948B (zh) 2017-05-17 2023-08-15 西安紫光国芯半导体有限公司 具有标志位指示数据长度的纠错功能的存储器和纠错方法
KR102362229B1 (ko) 2017-08-10 2022-02-11 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
KR102453437B1 (ko) 2018-01-25 2022-10-12 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102410566B1 (ko) * 2018-02-05 2022-06-17 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102511903B1 (ko) * 2018-02-26 2023-03-21 에스케이하이닉스 주식회사 고정된 에러정정능력의 에러정정코드 엔진을 이용하여 재구성할 수 있는 에러정정동작을 수행하는 메모리 시스템
KR102553780B1 (ko) * 2018-05-10 2023-07-10 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR102629405B1 (ko) 2018-11-09 2024-01-25 삼성전자주식회사 반도체 메모리 장치, 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
US11258539B2 (en) 2020-05-06 2022-02-22 Intel Corporation Technologies for performing encoding of data symbols for column read operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150033096A1 (en) 2011-08-12 2015-01-29 Micron Technology, Inc. Memory devices and configuration methods for a memory device
US20130179752A1 (en) 2012-01-09 2013-07-11 Hojun Shim Storage device and nonvolatile memory device and operating method thereof
US20140229655A1 (en) 2013-02-08 2014-08-14 Seagate Technology Llc Storing Error Correction Code (ECC) Data In a Multi-Tier Memory Structure
US20190250985A1 (en) 2018-02-13 2019-08-15 Samsung Electronics Co., Ltd. Semiconductor memory devices, memory systems and methods of operating semiconductor memory devices

Also Published As

Publication number Publication date
US20210064467A1 (en) 2021-03-04
CN114341813B (zh) 2022-11-08
WO2021040964A1 (en) 2021-03-04
US11200118B2 (en) 2021-12-14
CN114341813A (zh) 2022-04-12
KR20220041948A (ko) 2022-04-01
US20220091938A1 (en) 2022-03-24
US11755412B2 (en) 2023-09-12
EP4022620A4 (en) 2023-08-23
EP4022620A1 (en) 2022-07-06

Similar Documents

Publication Publication Date Title
KR102452241B1 (ko) 수정된 명령과 관련 방법 및 시스템을 갖는 반도체 디바이스
CN111433850A (zh) 用于独立存储器库维护的方法和采用所述方法的存储器装置和系统
US11687406B2 (en) Semiconductor device with user defined operations and associated methods and systems
US11687403B2 (en) Semiconductor device with modified access and associated methods and systems
US20220382628A1 (en) Semiconductor device with power-saving mode and associated methods and systems
US11468939B2 (en) Conditional row activation and access during refresh for memory devices and associated methods and systems
US11881251B2 (en) Row clear features for memory devices and associated methods and systems
US20230119341A1 (en) Error correcting code poisoning for memory devices and associated methods and systems
US11990195B2 (en) Semiconductor device with selective command delay and associated methods and systems

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant