KR20210034088A - 향상된 비트 플립핑 방식 - Google Patents

향상된 비트 플립핑 방식 Download PDF

Info

Publication number
KR20210034088A
KR20210034088A KR1020217007264A KR20217007264A KR20210034088A KR 20210034088 A KR20210034088 A KR 20210034088A KR 1020217007264 A KR1020217007264 A KR 1020217007264A KR 20217007264 A KR20217007264 A KR 20217007264A KR 20210034088 A KR20210034088 A KR 20210034088A
Authority
KR
South Korea
Prior art keywords
bit
component
data
bits
flip
Prior art date
Application number
KR1020217007264A
Other languages
English (en)
Other versions
KR102270100B1 (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 KR20210034088A publication Critical patent/KR20210034088A/ko
Application granted granted Critical
Publication of KR102270100B1 publication Critical patent/KR102270100B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/43Majority logic or threshold decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

향상된 비트 플립핑 방식을 사용하여 메모리 셀(들)을 작동시키기 위한 방법, 시스템 및 디바이스가 설명된다. 향상된 비트 플립핑 방식은 대응하는 코드워드 내 데이터 비트가 플립핑되는지를 나타내는 플립 비트의 생성과 동시에 코드워드 내 데이터 비트의 오류 정정을 수행하고; 코드워드 내 반전 비트(들)의 오류 정정의 수행을 삼가고; 다수의 반전 비트를 사용하여 높은 신뢰성의 플립 비트를 생성하기 위한 방법, 시스템 및 디바이스를 포함할 수도 있다. 예를 들어, 훨씬 더 신뢰성 있는 플립 비트는 복수의, 다수의 또는 모든 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정함으로써 생성될 수도 있다.

Description

향상된 비트 플립핑 방식
상호 참조
본 특허 출원은 미국 특허 출원 제16/104,470호(발명자: FACKENTHAL, 발명의 명칭: "ENHANCED BIT FLIPPING SCHEME", 출원일: 2018년 8월 17일)의 우선권을 주장하고, 상기 기초출원은 본 출원의 양수인에게 양도되고 본 명세서에 전문이 참조에 의해 분명히 원용된다.
다음은 메모리 어레이를 작동시키는 것, 더 구체적으로, 향상된 비트 플립핑 방식에 관한 것이다.
메모리 디바이스는 정보를 다양한 전자 디바이스, 예컨대, 컴퓨터, 무선 통신 디바이스, 카메라, 디지털 디스플레이 등에 저장하도록 폭넓게 사용된다. 정보는 메모리 디바이스의 상이한 상태를 프로그래밍함으로써 저장된다. 예를 들어, 이원 디바이스는 종종 논리 "1" 또는 논리 "0"으로 표기되는, 2개의 상태를 갖는다. 다른 시스템에서, 2개 초과의 상태가 저장될 수도 있다. 저장된 정보에 액세스하기 위해서, 전자 디바이스의 컴포넌트는 메모리 디바이스 내의 저장된 상태를 판독 또는 감지할 수도 있다. 정보를 저장하기 위해서, 전자 디바이스의 컴포넌트는 메모리 디바이스 내의 상태를 기입 또는 프로그래밍할 수도 있다.
자기 하드 디스크, 랜덤 액세스 메모리(random access memory: RAM), 판독 전용 메모리(read only memory: ROM), 동적 RAM(dynamic RAM: DRAM), 동기식 동적 RAM(synchronous dynamic RAM: SDRAM), 강유전성 RAM(ferroelectric RAM: FeRAM), 자기 RAM(magnetic RAM: MRAM), 저항성 RAM(resistive RAM: RRAM), 플래시 메모리, 상변화 메모리(phase change memory: PCM), 및 다른 것들을 포함하는, 다양한 유형의 메모리 디바이스가 존재한다. 메모리 디바이스는 휘발성 또는 비휘발성일 수도 있다. 비휘발성 메모리(예를 들어, FeRAM, PCM, RRAM)는 외부 전력원의 부재 시에도 메모리의 저장된 논리 상태를 연장된 시간 기간 동안 유지할 수도 있다. 휘발성 메모리 디바이스(예를 들어, DRAM)는 휘발성 메모리 디바이스가 외부 전력원에 의해 주기적으로 리프레시되지 않는다면 디바이스의 저장된 상태를 시간에 걸쳐 손실할 수도 있다.
메모리 디바이스는 메모리 셀(들)에 저장된 데이터 비트를 (예를 들어, 신뢰성의 이유로) 반전시킬 수도 있다. 비트는 특정한 메모리 셀(들)에 저장된 논리 상태가 반전되는 것을 나타낼 수도 있다. 그러나, 반전과 관련된 비트에 대해 오류 정정을 수행하는 것은 액세스 작동을 지연시킬 수도 있고 이 지연은 판독 작동이 메모리의 섹션에 액세스할 때 전파 지연으로 인해 악화될 수도 있어서, 상당한 레이턴시를 메모리 시스템에 도입한다. 비트 플립핑 작동 및 오류 정정 작동과 관련된 향상된 방식이 요망된다.
도 1은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 지지하는 예시적인 메모리 어레이를 예시하는 도면.
도 2는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 지지하는 예시적인 판독 컴포넌트를 예시하는 도면.
도 3은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 사용하는 예시적인 메모리 작동의 양상을 예시하는 도면.
도 4는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 메모리 구성을 예시하는 도면.
도 5는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 플립 비트 생성기를 예시하는 도면.
도 6은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 강력한 감지 컴포넌트를 예시하는 도면.
도 7은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 보팅 회로(voting circuit)를 예시하는 도면.
도 8은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 지지하는 메모리 어레이의 블록도.
도 9는 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 지지하는 시스템을 예시하는 도면.
도 10 및 도 11은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 위한 방법 또는 방법들의 양상을 예시하는 도면.
메모리 디바이스는 메모리 셀(들)에 저장된 데이터 비트를 (예를 들어, 신뢰성의 이유로) 반전시킬 수도 있다. 특정한 메모리 셀(들)에 대한 하나 이상의 데이터 비트(들)를 반전시킨 후, 메모리 디바이스가 반전 비트를 설정할 수도 있어서 특정한 메모리 셀(들)에 저장된 논리 상태가 반전된 것을 나타낸다. 메모리로부터 데이터를 판독할 때, 메모리 디바이스는 데이터 및 반전 비트를 오류 정정할 수도 있고 어떤 데이터 비트가 대응하는 오류 정정된 반전 비트에 기초하여 반전되었는지를 결정할 수도 있다. 그러나, 반전 비트에 대해 오류 정정을 수행하는 것은 판독 작동을 지연시킬 수도 있다. 또한, 이 지연은 판독 작동이 메모리의 전체 섹션에 액세스할 때 전파 지연으로 인해 악화될 수도 있어서, 상당한 레이턴시를 메모리 시스템에 도입한다.
메모리 디바이스는 다수의 메모리 셀(예를 들어, 수백개)을 가진 메모리 어레이를 포함할 수도 있고 메모리 어레이는 별개의 부분으로 분할될 수도 있다. 예를 들어, 메모리 어레이는 메모리 섹션, 코드워드 및/또는 메모리 유닛으로 분할될 수도 있고, 메모리 섹션은 다수의 코드워드를 포함할 수도 있고, 코드워드는 다수의 메모리 유닛을 포함할 수도 있다. 일부 실시예에서, 메모리 섹션은 페이지 크기에 대응할 수도 있고, 코드워드는 프리페치 크기에 대응하고, 메모리 유닛은 결정된 수의 비트(예를 들어, 4개의 비트)에 대응할 수도 있다. 메모리 어레이의 물리적 구현에서, 메모리 섹션은 큰 물리적 거리(예를 들어, ~1㎜)에 걸치는 많은 메모리 셀(예를 들어, 수천개)을 포함할 수도 있다.
정보가 분할된 메모리 자원에 따라 메모리 어레이에 저장될 수도 있다. 예를 들어, 특정한 정보(예를 들어, 사용자 데이터)가 코드워드에 저장될 수도 있다. 코드워드는 데이터 비트를 포함하는 데이터 부분과 제어 비트, 예컨대, 리던던트, 오류 검출/정정("오류 정정"), 및/또는 반전 비트를 포함하는 제어 부분으로 분리될 수도 있다. 데이터 비트는 저장을 위해 메모리 어레이를 사용하는 적용에 대한 데이터를 나타낼 수도 있다. 리던던트 비트는 리던던시 교정으로서 알려진 작동 동안 특정한 데이터와 제어 비트를 교체하도록 사용될 수도 있다. 오류 정정 비트(들)(예를 들어, 패리티 비트)는 손상된 데이터 및 반전 비트를 식별하도록 사용될 수도 있다. 함께, 리던던트 및 오류 정정 비트는 데이터 비트에 액세스될 때 발생할 수도 있는 판독 오류의 수를 감소시킬 수도 있어서, 메모리 디바이스의 신뢰성을 증가시킨다. 반전 비트는 메모리의 제1 코드워드에 원래 저장된 데이터, 리던던트 및/또는 오류 정정 비트가 반전된 상태에 있는지-메모리 어레이에 저장된 비트가 신뢰성의 이유 등으로 전력을 저장하도록 반전될 수도 있는지-를 나타낼 수도 있다.
정보는 또한 분할된 메모리 자원에 따라 메모리 어레이로부터 판독될 수도 있다. 예를 들어, 코드워드에 저장된 데이터는 메모리 어레이로부터 요청될 수도 있고 요청 디바이스(예를 들어, 또 다른 메모리 컴포넌트 또는 외부 디바이스)로 전달될 수도 있다. 요청을 수신한 후, 하지만 코드워드에 포함된 데이터 비트를 요청 디바이스로 전달하기 전에, 메모리 어레이는 코드워드를 처리할 수도 있다-예를 들어, 오류를 교정하고, 코드워드에 저장된 비트를 플립핑한다-.
예를 들어, 판독 작동 동안, 다음과 같이 코드워드의 데이터 부분이 데이터 컴포넌트를 통해 처리될 수도 있고 코드워드의 제어 부분이 제어 컴포넌트를 통해 처리될 수도 있다. 우선, 리던던트 비트(들)는 특정한 데이터, 오류 정정 및/또는 반전 비트를 교체하도록 사용될 수도 있다. 다음에, 오류 정정 비트(들)는 코드워드 내 어떤 데이터 또는 반전 비트가 손상되었는지를 (예를 들어, 해밍 코드를 사용하여) 결정하고 이 결정에 기초하여 임의의 오류 및 코드워드 내 이러한 오류의 위치를 식별하는 신드롬 비트(들)를 생성하도록 사용될 수도 있다.
이어서 신드롬 비트가 데이터 및 제어 컴포넌트에 제공될 수도 있고(제공된, 전송된, 및 전달된이란 표현은 교체 가능하게 사용될 수도 있음) 데이터 또는 반전 비트 내 임의의 식별된 오류를 수정하도록 사용될 수도 있다. 일부 경우에, 오류 정정을 수행하기 전에 오류를 포함하는 비트의 부분은 원 비트 오류율(raw bit error rate: RBER)로서 지칭되고 오류 정정을 수행한 후에 오류를 포함하는 비트의 부분은 정정 불가능한 비트 오류율(uncorrectable bit error rate: UBER)로서 지칭된다.
신드롬 비트가 처리된 후, 오류 정정된 반전 비트-"플립 비트"로서 지칭될 수도 있음-는 데이터 컴포넌트 내 비트 플립핑 컴포넌트로 전송될 수도 있다. 플립 비트가 데이터 비트가 반전된 상태로 있다고 나타낸다면, 오류 정정된 데이터 비트가 플립핑될 수도 있다(예를 들어, 그래서 오류 정정된 데이터 비트가 요청 디바이스로 제공되기 전에 원래 저장된 값으로 복귀된다). 그렇지 않으면, 플립 비트가 데이터 비트가 원래의 상태로 있다(예를 들어, 현재 반전되지 않음)고 나타낸다면, 오류 정정된 데이터 비트는 플립핑 작동을 수행하는 일 없이 요청 디바이스로 직접적으로 제공될 수도 있다.
본 명세서에서 언급된 바와 같이, 코드워드 내 비트-반전 비트를 포함함-의 전부가 아닌 적어도 일부에서 오류 정정을 수행하는 것은 정확한 데이터 비트가 요청 디바이스로 전달될 가능성을 (예를 들어, 데이터 비트가 정확하고 실수로 플립핑되지 않은 것을 보장함으로써) 증가시킬 수도 있고, 이는 결국 메모리 디바이스의 신뢰성을 증가시킬 수도 있다. 그러나, 신드롬 비트가 처리된 후까지 플립 비트의 전송을 대기하는 것은 특정한 실시예에서 레이턴시를 메모리 시스템에 도입할 수도 있다.
일부 경우에, 메모리 섹션에 저장된 모든 데이터가 섹션의 코드워드에 위치된 데이터를 위한 요청에 응답하여 요청 디바이스로 제공될 수도 있고, 이는 전파 지연을 발생시킬 수도 있다. 본 명세서에서 논의된 바와 같이, 메모리 섹션은 큰 물리적 거리-예를 들어, 레이턴시를 전파 지연을 통해 메모리 시스템에 도입하기에 충분히 큰 거리-에 걸친 다수의 메모리 셀에 걸쳐 분포될 수도 있다. 일부 경우에, 메모리 섹션에 걸쳐, 제어 정보, 예컨대, 리던던트 비트, 오류 정정 비트, 신드롬 비트 및/또는 반전 비트를 분포시키는 것은 메모리 작동에 대한 증가된 레이턴시를 발생시킨다. 예를 들어, 메모리 시스템은 신드롬 비트가 메모리 섹션에 걸쳐 분포되는 것을 대기하는 동안 전파 지연을 발생시킬 수도 있다.
이러한 전파 지연은 직렬 제어 작동에 의해 악화될 수도 있다. 즉, 메모리 작동에 대한 총 전파 지연은 제어 정보가 메모리 섹션에 걸쳐 제공될 때마다 증가될 수도 있다. 예를 들어, 본 명세서에서 논의된 판독 작동은 신드롬 비트를 메모리 섹션에 걸쳐 분포시킬 때 제1 전파 지연을 발생시킬 수도 있다. 그리고 오류 정정된 반전 비트를 메모리 섹션에 걸쳐 분포시킬 때 또 다른 전파 지연을 발생시킬 수도 있다. 이러한 경우에, 플립핑 작동을 수행하기 전에 오류 정정을 반전 비트에서 수행하는 것은 전파 지연 둘 다의 합계에 의해 메모리 작동의 레이턴시를 증가시킬 수도 있어서, 메모리 디바이스의 처리량을 감소시킨다. 일부 경우에, 오류 정정을 메모리 섹션 내 반전 비트에서 수행하는 것은 1㎱ 지연을 발생시킨다.
일부 경우에, 메모리 작동의 특정한 단계가 생략될 수도 있고/있거나 다른 단계와 동시에 수행될 수도 있다. 이 방식으로, 특정한 단계에 대한 전파 지연은 레이턴시를 메모리 작동에 부가하지 않을 수도 있다.
예를 들어, 오류 정정은 코드워드와 연관된 반전 비트 및 반전 비트와 동일하거나 또는 반전 비트에 기초하여 결정되는 플립 비트에 대해 수행되지 않을 수도 있고, 반전 비트는 오류 정정 동안 생성된 신드롬 비트의 생성 또는 분포 전 또는 동시에 데이터 컴포넌트에 제공될 수도 있다. 이 방식으로, 메모리 섹션 내 모든 코드워드에 대한 반전 비트에 대응하는 신드롬 비트가 메모리 섹션에 걸쳐 전파된 후 플립 비트를 데이터 컴포넌트로 전송하는 것과 연관된 총 전파 지연이 방지될 수도 있다.
그렇긴 하지만, 오류 정정을 반전 비트에서 수행하는 것을 삼가는 것은 일부 실시예에서, 플립 비트의 신뢰성을 감소시킬 수도 있다. 따라서, 플립 비트를 비트 플립핑 컴포넌트로 직접적으로 전송하는 것은 메모리 시스템의 신뢰성을 감소시킬 수도 있다.
일부 경우에, 코드워드의 데이터 비트를 오류 정정하도록 사용되는 기법(예를 들어, 해밍 코드를 사용함)보다 대안적인 오류 정정 기법(예를 들어, 반복 코드를 사용함)이 코드워드에 대한 플립 비트의 신뢰성을 증가시키도록 사용될 수도 있다. 이 방식으로, 플립 비트의 신뢰성이 메모리 디바이스의 확장에 의해, 데이터 비트에 대해 사용되는 동일한 오류 정정 방식을 사용하여 플립 비트를 오류 정정함으로써 획득되는 신뢰성 레벨 이상의 레벨로 유지될 수도 있다. 또한, 대안적인 오류 정정 기법이 수행될 수도 있으면서 다른 오류 정정 기법이 데이터 비트에 대해 수행되어, 대응하는 신드롬 비트가 메모리 섹션에 걸쳐 분포된 후까지 메모리 섹션의 플립 비트를 비트 플립핑 컴포넌트로 전송하는 것을 대기하는 것과 연관된 총 전파 지연을 감소시킨다.
일부 실시예에서, 플립 비트의 신뢰성은 다수의 반전 비트를 코드워드에 포함함으로써 대안적인 오류 정정 기법을 사용하여 증가될 수도 있다. 예를 들어, 3개 이상의 반전 비트가 코드워드에 포함될 수도 있고 플립 비트의 값에서 "보팅"하도록 사용될 수도 있다(반복 방식으로서 또한 지칭될 수도 있음). 즉, 플립 비트는 코드워드 내 데이터 비트가 반전되는 것을 다수의 반전 비트가 나타내는지를 결정하는 것에 기초하여 생성될 수도 있다. 이 방식으로, 플립 비트 실패의 확률은 코드워드에 포함된 반전 비트의 수와 반전 비트의 RBER의 함수일 수도 있다. 예를 들어, 3개의 반전 비트를 사용하는 이러한 보팅 방식에 대해, 플립 비트의 UBER은 3-선택-2 곱하기 단일의 반전 비트의 RBER의 제곱-예를 들어,
Figure pct00001
-일 수도 있다. 또한, 보팅은 데이터 비트를 참조하는 일 없이, 따라서, 데이터 비트에 대한 신드롬 비트이 메모리 섹션 전반에 걸쳐 생성되고/되거나 분포되기 전 또는 동안 완료될 수도 있다.
또 다른 실시예에서, 플립 비트의 신뢰성은 다수의 반전 비트 및 더 강력한 감지 방식을 사용함으로써 오류 정정 없이 증가될 수도 있다. 예를 들어, 2개의 메모리 셀에 저장된 2개의 반전 비트는 차동 감지 방식을 사용하여 판독될 수도 있다. 그리고 코드워드를 처리하기 전에, 2개의 메모리 셀이 감지되어 단일의, 높은 신뢰성의 반전 비트를 생성할 수도 있고, 이 반전 비트는 이어서 플립 비트로서 그리고 플립 비트를 생성하도록 사용될 수도 있다. 일부 경우에, 차동 감지 방식에 기초하여 코드워드에 대해 생성된 플립 비트의 RBER은 코드워드에 대한 데이터 비트의 UBER 이상일 수도 있다.
일부 실시예에서, 플립 비트의 신뢰성은 오류 정정 없이 코드워드당 단일의 반전 비트 및 반전 비트에 대한 더 강력한 저장 방식을 사용함으로써-예를 들어, 반전 비트의 신뢰성을 증가시킴으로써- 증가될 수도 있다. 예를 들어, 반전 비트는 -예를 들어, 메모리 셀의 화학적 조성, 메모리 셀의 크기, 메모리 셀을 위해 사용되는 기술에 기인하여- 더 큰 감지 윈도우를 가진 메모리 셀에 저장될 수도 있다. 그리고 코드워드를 처리할 때, 메모리 셀이 감지되어 높은 신뢰성의 반전 비트를 생성할 수도 있고, 이 반전 비트는 이어서 플립 비트로서 그리고 플립 비트를 생성하도록 사용될 수도 있다. 일부 경우에, 강력한 저장 방식으로 저장된 반전 비트에 기초하여 코드워드에 대해 생성된 플립 비트의 RBER은 코드워드에 대한 데이터 비트의 UBER 이상일 수도 있다. 일부 실시예에서, 플립 비트의 신뢰성을 증가시키기 위한 기법은 다른 예 중에서, 다른 제어 비트, 예컨대, 오류 정정 또는 리던던트 비트, 또는 둘 다로 확장될 수도 있다.
위에서 소개된 개시내용의 특징은 메모리 시스템의 맥락에서 본 명세서에서 더 설명된다. 이어서 향상된 비트 플립핑 방식에 따라 코드워드를 판독하기 위한 디바이스 및 방법의 특정한 실시예가 설명된다. 본 개시내용의 이 특징 및 다른 특징은 향상된 비트 플립핑 방식과 관련되는 장치 도면, 시스템 도면 및 흐름도에 의해 더 예시되고 이 도면들을 참조하여 설명된다.
도 1은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 지지하는 예시적인 메모리 어레이를 예시한다. 메모리 어레이(100)는 디지털 정보(예를 들어, 이진 정보)를 저장하도록 사용될 수도 있고 또한 전자 메모리 장치로서 지칭될 수도 있다. 메모리 어레이(100)는 상이한 상태를 저장하도록 프로그래밍 가능한 메모리 셀(105)을 포함한다. 각각의 메모리 셀(105)은 논리 0 및 논리 1로 표기되는, 2가지 상태를 저장하도록 프로그래밍 가능할 수도 있다. 일부 경우에서, 메모리 셀(105)은 2개 초과의 논리 상태를 저장하도록 구성된다.
메모리 셀(105)은 프로그래밍 가능한 상태를 가진 메모리 소자를 포함할 수도 있다. DRAM 또는 FeRAM 아키텍처 내 메모리 셀(105)은 프로그래밍 가능한 상태를 나타내는 전하를 커패시터에 저장할 수도 있다; 예를 들어, 충전된 그리고 미충전된 커패시터는 2가지 논리 상태를 각각 나타낼 수도 있다. DRAM 아키텍처가 흔히 이러한 설계를 사용할 수도 있고 유전체 물질을 포함하고 메모리 소자로서 선형 전기 분극 특성을 가진 커패시터를 사용할 수도 있다. FeRAM 아키텍처가 또한 이러한 설계를 사용할 수도 있지만 메모리 소자로서 사용되는 커패시터는 비선형 분극 특성을 가진 강유전성 물질을 포함할 수도 있다. PCM 또는 분리 기반 메모리(segregation based memory: SBM) 아키텍처 내 메모리 셀(105)은 물질의 저항률(예를 들어, 저항 또는 문턱값 전압)을 변화시킬 수도 있고 상이한 저항률은 상이한 논리 상태를 나타낼 수도 있다. PCM 및/또는 SBM 아키텍처는 메모리 소자로서 전자적으로 프로그래밍 가능한 저항을 가진 칼코게나이드 물질을 사용할 수도 있다. 일부 경우에, PCM 아키텍처 내 메모리 셀(105)은 메모리 물질의 위상을 변화시킴으로써 프로그래밍된다. 일부 경우에, SBM 아키텍처 내 메모리 셀(105)은 메모리 물질 내 이온 이동을 유발함으로써 프로그래밍된다.
작동, 예컨대, 판독 및 기입은 적합한 액세스 라인(110) 및 디지트 라인(115)을 활성화하거나 또는 선택함으로써 메모리 셀(105)에서 수행될 수도 있다. 액세스 라인(110)은 또한 워드 라인(110)으로서 지칭될 수도 있고 그리고 디지트 라인(115)은 또한 비트 라인(115)으로서 지칭될 수도 있다. 워드 라인(110) 또는 디지트 라인(115)을 활성화 또는 선택하는 것은 전압을 각각의 라인에 인가하는 것을 포함할 수도 있다. 워드 라인(110)과 디지트 라인(115)은 전도성 물질로 이루어진다. 예를 들어, 워드 라인(110)과 디지트 라인(115)은 금속(예컨대, 구리, 알루미늄, 금, 텅스텐 등), 금속 합금, 다른 전도성 물질 등으로 이루어질 수도 있다. 도 1의 실시예에 따르면, 메모리 셀(105)의 각각의 행은 단일의 워드 라인(110)에 연결되고, 그리고 메모리 셀(105)의 각각의 열은 단일의 디지트 라인(115)에 연결된다. 하나의 워드 라인(110)과 하나의 디지트 라인(115)을 활성화(예를 들어, 전압을 워드 라인(110) 또는 디지트 라인(115)에 인가)시킴으로써, 단일의 메모리 셀(105)은 이들의 교차점에서 액세스될 수도 있다. 메모리 셀(105)에 액세스하는 것은 메모리 셀(105)을 판독 또는 기입하는 것을 포함할 수도 있다. 워드 라인(110)과 디지트 라인(115)의 교차점은 메모리 셀의 어드레스로서 지칭될 수도 있다.
일부 아키텍처에서, 셀의 논리 저장 디바이스, 예를 들어, 커패시터는 선택 컴포넌트에 의해 디지트 라인으로부터 전기적으로 절연될 수도 있다. 워드 라인(110)은 선택 컴포넌트에 연결될 수도 있고 그리고 선택 컴포넌트를 제어할 수도 있다. 예를 들어, 선택 컴포넌트는 트랜지스터일 수도 있고 그리고 워드 라인(110)은 트랜지스터의 게이트에 연결될 수도 있다. 워드 라인(110)을 활성화시키는 것은 메모리 셀(105)의 커패시터와 이에 대응하는 디지트 라인(115) 간의 전기적 연결 또는 폐회로를 발생시킨다. 이어서 디지트 라인은 메모리 셀(105)을 판독 또는 기입하도록 액세스될 수도 있다.
메모리 셀(105)에 액세스하는 것은 행 디코더(120) 및 열 디코더(130)를 통해 제어될 수도 있다. 일부 실시예에서, 행 디코더(120)는 행 어드레스를 메모리 제어기(140)로부터 수신하고 그리고 수신된 행 어드레스에 기초하여 적합한 워드 라인(110)을 활성화시킨다. 유사하게, 열 디코더(130)는 열 어드레스를 메모리 제어기(140)로부터 수신하고 그리고 적합한 디지트 라인(115)을 활성화시킨다. 예를 들어, 메모리 어레이(100)는 WL_1 내지 WL_M으로 표기된 다수의 워드 라인(110) 및 DL_1 내지 DL_N으로 표기된 다수의 디지트 라인(115)을 포함할 수도 있고, M 및 N은 어레이 크기에 의존한다. 따라서, 워드 라인(110) 및 디지트 라인(115), 예를 들어, WL_3 및 DL_N을 활성화시킴으로써, 이들의 교차점에서의 메모리 셀(105)에 액세스될 수도 있다.
액세스할 때, 메모리 셀(105)이 메모리 셀(105)의 저장된 상태를 결정하도록 감지 컴포넌트(125)에 의해 판독 또는 감지될 수도 있다. 예를 들어, 메모리 셀(105)에 액세스한 후에, 메모리 셀(105)의 커패시터는 그 대응하는 디지트 라인(115)에서 방전될 수도 있다. 커패시터를 방전시키는 것은 바이어싱, 또는 전압을 커패시터에 인가하는 것에 기초할 수도 있다. 방전은 디지트 라인(115)의 전압의 변화를 유발할 수도 있고, 이 감지 컴포넌트(125)는 메모리 셀(105)의 저장된 상태를 결정하도록 기준 전압(미도시)과 비교될 수도 있다. 예를 들어, 디지트 라인(115)이 기준 전압보다 더 높은 전압을 갖는다면, 그러면 감지 컴포넌트(125)는 메모리 셀(105)에 저장된 상태가 논리 1이라고 결정할 수도 있고 그 역도 가능하다.
감지 작동의 신뢰성은 메모리 셀(105)을 판독하는 것으로부터 발생되는 감지 윈도우에 의존적일 수도 있다. 예를 들어, 더 큰 감지 윈도우는 더 작은 감지 윈도우보다 더 적은 비트 오류와 연관될 수도 있다. 감지 윈도우는 논리 1을 저장할 때 메모리 셀(105)을 판독하는 것으로부터 발생되는 디지트 라인(115)의 전압과 논리 0을 저장할 때 메모리 셀을 판독하는 것으로부터 발생되는 디지트 라인(115)의 전압 간의 차로서 결정될 수도 있다. 감지 컴포넌트(125)는 래칭(latching)으로서 지칭될 수도 있는, 신호의 차를 검출하고 증폭시키도록 다양한 트랜지스터 또는 증폭기를 포함할 수도 있다. 이어서 메모리 셀(105)의 검출된 논리 상태는 출력(135)으로서 열 디코더(130)를 통해 출력될 수도 있다.
메모리 셀(105)은 관련된 워드 라인(110) 및 비트 라인(115)을 활성화시킴으로써, 설정 또는 기입될 수도 있다. 본 명세서에서 논의된 바와 같이, 워드 라인(110)을 활성화시키는 것은 메모리 셀(105)의 대응하는 행을 이들의 각각의 디지트 라인(115)에 전기적으로 연결시킨다. 워드 라인(110)이 활성화되는 동안 관련된 디지트 라인(115)을 제어함으로써, 메모리 셀(105)이 기입될 수도 있다-예를 들어, 논리값이 메모리 셀(105)에 저장될 수도 있다-. 열 디코더(130)는 메모리 셀(105)에 기입될, 데이터, 예를 들어, 입력(135)을 받아들일 수도 있다.
메모리 제어기(140)는 다양한 컴포넌트, 예컨대, 행 디코더(120), 열 디코더(130), 및 감지 컴포넌트(125)를 통해 메모리 셀(105)의 작동(예를 들어, 판독, 기입, 재기입, 리프레시 등)을 제어할 수도 있다. 메모리 제어기(140)는 목적하는 워드 라인(110) 및 디지트 라인(115)을 활성화시키도록 행 및 열 어드레스 신호를 생성할 수도 있다. 메모리 제어기(140)는 또한 메모리 어레이(100)의 작동 동안 사용되는 다양한 전압 전위를 생성 및 제어할 수도 있다. 일반적으로, 본 명세서에 논의된 인가된 전압의 크기, 형상, 또는 지속기간이 조정 또는 달라질 수도 있고 그리고 메모리 어레이(100)를 작동시키기 위한 다양한 작동에 대해 상이할 수도 있다. 게다가, 메모리 어레이(100) 내 하나, 다수의 또는 모든 메모리 셀(105)이 동시에 액세스될 수도 있고; 예를 들어, 메모리 어레이(100)의 다수의 또는 모든 셀이 모든 메모리 셀(105) 또는 메모리 셀(105)의 군이 단일의 논리 상태로 설정되는 재설정 작동 동안 동시에 액세스될 수도 있다.
일부 경우에, 메모리 어레이(100)는 메모리 셀(105)의 논리 상태를 플립핑할 수도 있다-예를 들어, 메모리 셀(105)에 저장된 논리값을 하나의 값(예를 들어, 논리 1)으로부터 또 다른 논리값(논리 0)으로 변화시킬 수도 있다-. 메모리 어레이(100)는 플립핑을 내부적으로 수행할 수도 있고 메모리 셀의 논리 상태가 플립핑되었다는 것을 다른 외부 디바이스 또는 컴포넌트에 알리지 않을 수도 있다. 메모리 어레이(100)가 메모리 셀을 플립핑할 수도 있어서 전력을 절약하고, 디바이스의 신뢰성을 증가시키고 등한다. 예를 들어, FeRAM에 대해, 강유전성 메모리 셀이 플립핑될 수도 있어서 시간에 걸쳐 메모리 셀의 신뢰성을 감소시킬 수도 있는 각인의 효과-예를 들어, 동일한 전하의 저장 또는 연장된 노출에 기인한 강유전성 영역의 이동-를 감소시킨다. 원래의 논리 상태와는 상이한 논리 상태-예를 들어, 외부 디바이스 또는 컴포넌트에 의해 메모리 셀에 저장되는 것으로 예상되는 논리 상태-를 저장하는 메모리 셀(105)은 반전된 상태로 있는 것으로서 언급될 수도 있다.
일부 경우에, 메모리 어레이(100)는 메모리 셀의 세트로 분할된다. 예를 들어, 메모리 어레이(100)는 수천개의 메모리 셀(105)을 포함할 수도 있는 메모리 섹션으로 분할될 수도 있다. 메모리 섹션은 수백개의 메모리 셀(105)을 포함할 수도 있는 코드워드로 더 분할될 수도 있다. 그리고 코드워드는 한 자릿수의 메모리 셀(105)을 포함할 수도 있는 메모리 유닛으로 분할될 수도 있다-예를 들어, 메모리 유닛은 4개의 메모리 셀(105)을 포함할 수도 있다-.
일부 실시예에서, 메모리 어레이(100)에 저장된 정보는 또 다른 디바이스(예를 들어, 메모리 컴포넌트, 예컨대, 버퍼 또는 외부 프로세서)에 의해 요청될 수도 있다. 메모리 어레이(100)는 메모리 어레이(100) 내 정보의 위치를 식별할 수도 있다. 일부 경우에, 메모리 어레이(100)는 정보가 메모리의 특정한 섹션 내에 위치되는 코드워드 내에 위치된다고 결정할 수도 있다. 일부 실시예에서, 메모리 어레이(100)는 메모리 섹션이 코드워드를 포함하는 것을 식별하는 것에 기초하여 전체 메모리 섹션에 액세스할 수도 있고 메모리 섹션에 저장된 모든 정보를 요청 디바이스에 제공할 수도 있다.
그러나, 메모리 섹션에 저장된 정보를 요청 디바이스에 제공하기 전에, 메모리 어레이(100)가 먼저 정보를 처리할 수도 있어서, 메모리 섹션에 저장된 정보 비트에 대한 리던던시 교정 및 오류 정정을 수행한다. 메모리 어레이(100)는 또한 메모리 섹션 내 어떤 코드워드가 반전된 상태로 있는지를 결정할 수도 있고 코드워드의 비트를 플립핑할 수도 있어서 데이터 비트를 요청 디바이스에 의해 예상된 저장된 상태로 복귀시킨다.
오류 정정 동안, 메모리 어레이(100)는 특정한 메모리 셀이 손상된 데이터를 저장하는지를 나타내도록 사용될 수도 있는 신드롬 비트를 생성할 수도 있고 손상된 메모리 셀에 저장된 데이터는 정확한 값으로 플립핑될 수도 있다. 일부 경우에, 오류가 오류 정정 동안 식별되지 않을 수도 있고 모든 생성된 신드롬 비트가 논리값 0을 갖는다. 일부 경우에, 메모리 섹션 전반에 걸친 신드롬 비트의 전달은 전파 지연-예를 들어, 메모리 섹션의 물리적 크기 및/또는 직렬 데이터 전달에 기인함-과 연관될 수도 있다. 코드워드의 비트를 플립핑하기 위해, 코드워드에 대한 반전/플립 비트는 코드워드의 데이터 비트를 플립핑할 수도 있는(예를 들어, 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타낸다면), 비트 플립핑 컴포넌트로 제공될 수도 있다. 일부 경우에, 반전 비트는 플립 비트와 동일할 수도 있거나 또는 플립 비트를 생성하도록 사용될 수도 있다.
일부 경우에, 메모리 어레이(100)는 대응하는 반전 비트를 포함하는 전체 코드워드에 대해 오류 정정을 수행할 수도 있다. 따라서, 메모리 어레이(100)는 신드롬 비트가 수신된 후까지 플립 비트를 비트 플립핑 컴포넌트에 제공하는 것을 대기할 수도 있다. 그러나, 신드롬 비트를 수신한 후까지 플립 비트의 전송을 대기하는 것은 메모리 시스템의 레이턴시를 증가시킬 수도 있다. 또한, 레이턴시는 플립 비트가 메모리 섹션 전반에 걸쳐 제공되고 전달되는 동안 더 증가될 수도 있다-예를 들어, 메모리 섹션에 저장된 정보가 전체 섹션이 완전히 처리된 후까지 요청 디바이스에 제공되지 않을 수도 있기 때문에-.
메모리 어레이(100)는 오류 정정을 코드워드에 대한 반전 비트에서 수행하는 것을 삼갈 수도 있고 플립 비트를 오류 정정과 동시에(즉, 적어도 부분적으로 중첩하여) 비트 플립핑 컴포넌트에 제공할 수도 있다. 일부 실시예에서, 메모리 어레이(100)는 코드워드 내 다수의 반전 비트를 포함할 수도 있고 반전 비트에 의해 저장된 값에 기초하여 플립 비트를 생성할 수도 있다.
메모리 어레이(100)는 또한 상이한 오류 정정 기법을 사용하는(예를 들어, 반복 코드를 사용하는) 플립 비트의 오류 정정/생성과 동시에 하나의 오류 정정 기법을 사용하는(예를 들어, 해밍 코드를 사용하는) 코드워드의 데이터 비트의 오류 정정을 수행할 수도 있다. 일부 경우에, 플립 비트의 생성/오류 정정은 데이터 비트의 오류 정정 동안 신드롬 비트의 생성 또는 분포-예를 들어, 메모리 섹션의 상이한 위치로 모든 신드롬 비트의 전송-와 중첩될 수도 있다. 플립 비트의 오류 정정/생성 후, 메모리 어레이(100)는 플립 비트를 데이터 비트가 플립 비트의 값에 기초하여 플립핑될 수도 있는 비트 플립핑 컴포넌트로 전달(예를 들어, 전송, 전달, 제공 등)할 수도 있다. 이 방식으로, 레이턴시가 감소될 수도 있고 메모리 어레이(100)에 대한 총 전파 지연의 효과가 감소될 수도 있다.
일부 경우에, 메모리 어레이(100)는 보팅 방식 및 다수의 반전 비트를 사용하여 플립 비트를 생성/오류 정정할 수도 있다. 보팅 방식은 오류 정정 방식의 하나의 유형일 수도 있다. 예를 들어, 메모리 어레이(100)는 다수의 반전 비트를 포함하는 코드워드에 대해 코드워드 내 데이터 비트가 반전된 상태로 있는 것을 다수의 반전 비트가 나타내는지를 결정할 수도 있다. 메모리 어레이(100)는 코드워드가 반전된 상태로 있는 것을 데이터 비트의 적어도 일부(예를 들어, 다수 또는 전부)가 나타내는지를 결정하는 것에 기초하여 플립 비트를 생성할 수도 있다-예를 들어, 메모리 어레이(100)는 다수의 데이터 비트가 코드워드가 반전된 상태로 있다고 나타낸다면 데이터 비트가 플립핑되는 것을 나타내는 플립 비트를 생성할 수도 있다. 이어서 메모리 어레이(100)는 플립 비트를 비트 플립핑 컴포넌트로 전송할 수도 있다. 플립 비트의 신뢰성은 코드워드의 반전 비트에 대해 데이터 비트와는 상이한 오류 정정 방식을 사용하여 증가될 수도 있다. 일부 경우에, 보팅 방식에 의해 출력된 플립 비트는 코드워드에 대한 데이터 비트의 오류 정정 동안 신드롬 비트의 생성 및/또는 분포와 동시에 생성될 수도 있고/있거나 비트 플립핑 컴포넌트에 제공될 수도 있다.
일부 경우에, 메모리 어레이(100)가 차동 감지 방식을 사용하여 코드워드에 대한 2개의 반전 비트를 저장하여 코드워드에 대한 플립 비트를 생성할 수도 있다. 차동 감지 방식은 메모리 어레이(100) 내 개별적인 반전 비트 및 정정된 정보 비트보다 더 높은 신뢰성을 가진 단일의 반전 비트를 생성하도록 사용될 수도 있다. 이어서 단일의 반전 비트는 플립 비트로서 사용될 수도 있거나 또는 플립 비트를 생성하도록 사용될 수도 있다. 이러한 방식은 플립 비트의 신뢰성을 반전/플립 비트의 오류 정정 없이 증가시킬 수도 있고 신드롬 비트의 생성 및/또는 분포와 동시에 플립 비트를 비트 플립핑 컴포넌트에 제공하도록 사용될 수도 있다.
일부 경우에, 메모리 어레이(100)는 메모리 어레이(100) 내 다른 메모리 셀보다 더 큰 감지 윈도우를 가진 메모리 셀에 코드워드에 대한 단일의 반전 비트를 저장할 수도 있다. 예를 들어, 반전 비트는 메모리 어레이 내 다른 메모리 셀과는 상이한 기술 등을 사용하는, 메모리 어레이(100) 내 다른 메모리 셀보다 더 큰 크기를 가진 메모리 셀에 저장될 수도 있다. 단일의 반전 비트는 메모리 어레이(100) 내 정정된 정보 비트보다 더 높은 신뢰성을 가질 수도 있고 플립 비트로서 사용될 수도 있거나 또는 플립 비트를 생성하도록 사용될 수도 있다. 이러한 방식은 반전/플립 비트의 오류 정정 없이 플립 비트의 신뢰성을 증가시킬 수도 있고 신드롬 비트의 생성 및/또는 분포와 동시에 플립 비트를 비트 플립핑 컴포넌트에 제공할 수도 있다.
도 2는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 지지하는 예시적인 판독 컴포넌트를 예시한다. 판독 컴포넌트(200)는 메모리 어레이에 저장된 정보를 처리하도록 사용될 수도 있다. 판독 컴포넌트(200)는 입력 라인(데이터 비트 라인(205), 리던던트 비트 라인(210), 오류 정정 비트 라인(215), 및 반전 비트 라인(220)), 데이터 컴포넌트(225), 제어 컴포넌트(230), 오류 식별 컴포넌트(235), 출력 라인(글로벌 데이터 라인(240)), 및 강력한 감지 컴포넌트(275)를 포함할 수도 있다.
데이터 비트 라인(205)은 하나 이상의 코드워드에 대한 데이터 비트를 데이터를 저장하는 메모리 셀과 데이터 컴포넌트(225) 간에 전달하도록 구성될 수도 있다. 데이터 비트는 사용자 애플리케이션에 대한 데이터를 나타낼 수도 있다. 리던던트 비트 라인(210)은 리던던트 비트를 리던던트 데이터 비트를 저장하는 메모리 셀과 데이터 컴포넌트(225) 간에 그리고 리던던트 데이터 제어 비트를 저장하는 메모리 셀과 제어 컴포넌트(230) 간에 전달하도록 사용될 수도 있다. 리던던트 비트는 특정한 데이터 및/또는 제어 비트에 대응할 수도 있고 특정한 데이터 및/또는 제어 비트를 교체하도록 사용될 수도 있다. 일부 경우에, 리던던트 비트는 다른 메모리 셀보다 더 높은 신뢰성을 가진 메모리 셀에 저장된다.
오류 정정 비트 라인(215)은 오류 정정 비트, 예컨대, 패리티 비트를 오류 정정 비트를 저장하는 메모리 셀과 제어 컴포넌트(230) 간에 전달하도록 사용될 수도 있다. 오류 정정 비트는 데이터 및/또는 제어 비트 내 오류를 식별하도록 사용될 수도 있다. 반전 비트 라인(220)은 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 반전 비트를 저장하는 메모리 셀과 제어 컴포넌트(230) 간에 전달하도록 사용될 수도 있다. 코드워드에 대한 반전 비트는 코드워드에 대한 대응하는 데이터 및/또는 제어 비트가 원래의/예상된 상태 또는 반전된 상태로 있는지를 나타내도록 사용될 수도 있다.
데이터 컴포넌트(225)는 하나 이상의 코드워드에 저장된 데이터 비트를 처리하고 처리된 데이터 비트를 요청 디바이스로 전달하도록 구성될 수도 있다. 데이터 컴포넌트(225)는 데이터 비트를 데이터 비트 라인(205)으로부터 수신할 수도 있다. 데이터 컴포넌트(225)는 제1 비트 교정 컴포넌트(245), 비트 정정 컴포넌트(250) 및 비트 플립핑 컴포넌트(255)를 포함할 수도 있다.
제1 비트 교정 컴포넌트(245)는 특정한 데이터 비트를 대응하는 리던던트 데이터 비트로 교체하도록 구성될 수도 있다. 제1 비트 교정 컴포넌트(245)는 데이터 비트 라인(205)으로부터 데이터 비트 그리고 리던던트 비트 라인(210)으로부터 리던던트 데이터 비트를 수신할 수도 있다. 제1 비트 교정 컴포넌트(245)는 리던던시 교정으로서 지칭될 수도 있는 과정 동안 수신된 데이터 비트 중 특정한 데이터 비트를 수신된 리던던트 비트 중 특정한 리던던트 데이터 비트로 교체할 수도 있다. 제1 비트 교정 컴포넌트(245)는 데이터 비트의 하위 세트를 교체하도록 구성된 제1 멀티플렉서 및 리던던시 교정된 데이터 비트를 저장하기 위한 래치를 포함할 수도 있다. 제1 멀티플렉서의 출력부는 비트 정정 컴포넌트(250) 및/또는 오류 식별 컴포넌트(235)와 결합될 수도 있다. 제1 비트 교정 컴포넌트(245)는 리던던시 교정된 데이터 비트를 비트 정정 컴포넌트(250) 및/또는 오류 식별 컴포넌트(235)로 전송할 수도 있다.
비트 정정 컴포넌트(250)는 손상된 것으로 식별되는 데이터 비트를 정정하도록 구성될 수도 있다. 비트 정정 컴포넌트(250)는 손상된 비트를 정정하기 위한 컴포넌트 및 신드롬 비트를 처리하기 위한 컴포넌트, 예컨대, 신드롬 디코더를 포함할 수도 있다. 비트 정정 컴포넌트(250)는 제1 비트 교정 컴포넌트(245)로부터 데이터 비트(예를 들어, 리던던시 교정된 데이터 비트)를 수신할 수도 있다.
비트 정정 컴포넌트(250)는 또한 오류 식별 컴포넌트(235)로부터 신드롬 비트를 수신할 수도 있다. 신드롬 비트는 실패된(예를 들어, 손상된) 리던던시 교정된 데이터 비트 중 데이터 비트를 식별할 수도 있다. 이어서 비트 정정 컴포넌트(250)는 신드롬 비트에 의해 식별된 데이터 비트 내 오류를 정정할 수도 있다. 일부 경우에, 비트 정정 컴포넌트(250)는 신드롬 비트에 기초하여 실패된(예를 들어, 손상된) 것으로 식별되는 특정한 데이터 비트를 식별하고 데이터 비트의 논리값을 (예를 들어, XOR 회로망을 사용하여) 플립핑한다. 일부 경우에, 비트 정정 컴포넌트(250)는 데이터 비트 중 어느 것도 신드롬 비트에 기초하여-예를 들어, 신드롬 비트가 전부 논리 0일 때- 손상되지 않는다고 결정한다. 신드롬 비트를 처리한 후, 비트 정정 컴포넌트(250)는 정정된 데이터 비트를 비트 플립핑 컴포넌트(255)로 전송할 수도 있다.
비트 플립핑 컴포넌트(255)는 수신된 플립 비트에 기초하여 정정된 데이터 비트를 반전된 상태로부터 원래의 상태로 플립핑하도록 구성될 수도 있다. 비트 플립핑 컴포넌트(255)는 비트 정정 컴포넌트(250)로부터 정정된 데이터 비트를 수신할 수도 있다. 비트 플립핑 컴포넌트(255)는 또한 플립 비트 생성기(270)로부터 플립 비트를 수신할 수도 있다. 비트 플립핑 컴포넌트(255)는 플립 비트의 값에 기초하여 정정된 데이터 비트를 반전된 상태로부터 플립핑할 수도 있다. 예를 들어, 플립 비트의 값이 논리 1이라면, 비트 플리퍼는 정정된 데이터 비트를 플립핑할 수도 있다. 정정된 데이터 비트를 플립핑하는 것은 데이터 비트의 값을 반대값으로((예를 들어, 논리 0으로부터 논리 1로) 변화시키는 XOR 컴포넌트를 통해 정정된 데이터 비트를 전송하는 것을 포함할 수도 있다.
메모리 셀에 저장된 데이터 비트가 데이터 컴포넌트(225)에 제공되기 전에 플립핑된(예를 들어, 신뢰성의 이유로 반전된 상태로 놓인)다면, 비트 플립핑 컴포넌트(255)는 정정된 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트(255)를 트리거링하는 플립 비트를 수신하는 것에 기초하여 정정된 데이터 비트를 플립핑할 수도 있다. 메모리 셀에 저장된 데이터 비트가 데이터 컴포넌트(225)에 제공되기 전에 플립핑되지 않는다면, 비트 플립핑 컴포넌트(255)는 정정된 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트(255)를 트리거링하지 않는 플립 비트를 수신하는 것에 기초하여 정정된 데이터 비트를 플립핑하는 것을 삼갈 수도 있다. 일부 경우에, 비트 플립핑 컴포넌트는 데이터 비트 내 오류가 정정된 후 데이터 비트를 플립핑하도록 구성될 수도 있다. 일부 경우에, 비트 플립핑 컴포넌트(255)는 플립 비트가 손상된다면 정정된 데이터 비트를 부적절하게 플립핑할 수도 있거나 또는 정정된 데이터 비트를 플립핑하는 데 실패할 수도 있다. 비트 플립핑 컴포넌트(255)는 글로벌 데이터 비트-판독 컴포넌트(200)에 의해 완전히 처리되고 요청 디바이스에 제공되는 데이터 비트를 나타내도록 사용될 수도 있음-를 생성할 수도 있고 글로벌 데이터 비트를 글로벌 데이터 라인(240)을 통해 요청 디바이스로 전송할 수도 있다.
제어 컴포넌트(230)는 하나 이상의 코드워드에 저장된 제어 비트를 처리하고 하나 이상의 코드워드에 대한 데이터 비트의 처리 시 데이터 컴포넌트(225)를 돕도록 구성될 수도 있다. 제어 컴포넌트(230)는 제2 비트 교정 컴포넌트(260), 제3 비트 교정 컴포넌트(265) 및 플립 비트 생성기(270)를 포함할 수도 있다.
제2 비트 교정 컴포넌트(260)는 제1 비트 교정 컴포넌트(245)와 유사하게 특정한 오류 정정 비트를 대응하는 리던던트 오류 정정 비트로 교체하도록 구성될 수도 있다. 제2 비트 교정 컴포넌트(260)는 오류 정정 비트 라인(215)으로부터 오류 정정 비트 그리고 리던던트 비트 라인(210)으로부터 리던던트 오류 정정 비트를 수신할 수도 있다. 일부 경우에, 제2 비트 교정 컴포넌트(260)는 리던던트 비트 라인(210)에서 임의의 리던던트 오류 정정 비트를 수신하지 못할 수도 있다. 제2 비트 교정 컴포넌트(260)는 오류 정정 비트의 하위 세트를 교체하도록 구성된 제2 멀티플렉서 및 리던던시 교정된 오류 정정 비트를 저장하기 위한 래치를 포함할 수도 있다. 제2 비트 교정 컴포넌트(260)는 리던던시 교정된 오류 정정 비트를 오류 식별 컴포넌트(235)로 전송할 수도 있다.
제3 비트 교정 컴포넌트(265)는 제1 비트 교정 컴포넌트(245) 및 제2 비트 교정 컴포넌트(260)와 유사하게 특정한 반전 비트(들)를 대응하는 리던던트 반전 비트로 교체하도록 구성될 수도 있다. 제3 비트 교정 컴포넌트(265)는 반전 비트 라인(220)으로부터 반전 비트(들) 그리고 리던던트 비트 라인(210)으로부터 리던던트 반전 비트(들)를 수신할 수도 있다. 일부 경우에, 제3 비트 교정 컴포넌트(265)는 리던던트 비트 라인(210)에서 임의의 리던던트 반전 비트를 수신하지 못할 수도 있다. 제3 비트 교정 컴포넌트(265)는 반전 비트(들)의 하위 세트를 교체하도록 구성된 제3 멀티플렉서 및 리던던시 교정된 반전 비트(들)를 저장하기 위한 래치를 포함할 수도 있다. 제3 비트 교정 컴포넌트(265)는 리던던시 교정된 반전 비트(들)를 오류 식별 컴포넌트(235)로 전송할 수도 있다. 일부 경우에, 제3 비트 교정 컴포넌트(265)는 다수의 반전 비트를 반전 비트 라인(220)를 통해 수신하고 다수의 리던던시 교정된 반전 비트를 플립 비트 생성기(270)로 전송한다. 일부 경우에, 제2 및 제3 멀티플렉서는 제어 비트의 하위 세트를 교체하도록 구성된 단일의 멀티플렉서로서 구현될 수도 있다.
플립 비트 생성기(270)는 데이터 비트가 반전된 상태로 있는지를 결정하고 코드워드의 데이터 비트가 요청 디바이스에 제공되기 전에 반전된 상태로부터 다시 원래의/예상된 상태로 플립핑되어야 하는지를 나타내는 코드워드에 대한 플립 비트를 생성하도록 구성될 수도 있다. 플립 비트 생성기(270)는 비트 교정 컴포넌트(265)로부터 수신된 리던던시 교정된 반전 비트(들)에 기초하여 플립 비트를 생성할 수도 있다. 일부 경우에, 플립 비트 생성기(270)는 오류 식별 컴포넌트(235)에 의해 구현되는 오류 정정 기법과는 상이한 대안적인 오류 정정 기법(예를 들어, 반복 코드, 예컨대, 보팅 방식을 사용함)을 구현할 수도 있다.
예를 들어, 다수의 반전 비트가 코드워드에 대해 사용될 때, 플립 비트 생성기(270)는 반전 비트의 적어도 일부(예를 들어, 다수 또는 전부)가 코드워드 내 대응하는 데이터 비트가 반전된 상태로 있다고 나타내는지 또는 대안적으로, 반전 비트가 코드워드 내 대응하는 데이터 비트가 반전된 상태로 있지 않다고 나타내는지를 결정하도록 사용될 수도 있는, 보팅 컴포넌트를 포함할 수도 있다.
예를 들어, 다수의 반전 비트가 대응하는 데이터 비트가 반전된 상태로 있다고 나타낸다면, 플립 비트 생성기(270)는 정정된 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트(255)를 트리거링하는 플립 비트를 생성할 수도 있다. 그렇지 않다면, 다수의 반전 비트가 대응하는 데이터 비트가 반전된 상태로 있지 않다고(예를 들어, 비반전된, 원래 저장된 상태로 있다고) 나타낸다면, 플립 비트 생성기(270)는 정정된 데이터 비트의 플립핑을 삼가도록 비트 플립핑 컴포넌트(255)를 지향시키는 플립 비트를 생성할 수도 있다. 일부 경우에, 보팅 컴포넌트는 다수의 반전 비트가 대응하는 데이터 비트가 오류 식별 컴포넌트(235)에 의해 데이터 비트 내 오류의 식별과 동시에 반전된 상태로 있다고 나타내는지를 결정할 수도 있다. 보팅 컴포넌트는 오류 식별 컴포넌트(235)로부터 전기적으로 절연될 수도 있다. 보팅 컴포넌트는 본 명세서에서 그리고 적어도 도 6 및 도 7을 참조하여 더 상세히 논의된다.
부가적으로 또는 대안적으로, 다수의 반전 비트가 코드워드에 대해 사용될 때, 강력한 감지 컴포넌트(275)는 코드워드가 데이터 컴포넌트(225) 또는 제어 컴포넌트(230)를 사용하여 처리되기 전에 그리고 반전 비트에 대한 오류 정정 기법을 채용하는 일 없이 코드워드의 다수의 반전 비트로부터 단일의, 높은 신뢰성의 반전/플립 비트를 생성하도록 사용될 수도 있다. 예를 들어, 강력한 감지 컴포넌트(275)는 차동 감지 컴포넌트일 수도 있다. 이러한 경우에, 2개의 메모리 셀에 저장된 코드워드의 2개의 반전 비트는 단일의 높은 신뢰성의 반전 비트-예를 들어, 메모리 시스템 내 정보 비트의 UBER 이상인 RBER을 가진 반전 비트-를 생성하도록 강력한 감지 컴포넌트(275)를 사용하여 함께 감지될 수도 있다. 차동 감지 컴포넌트는 본 명세서에서 그리고 적어도 도 5를 참조하여 더 상세히 논의된다. 이어서 높은 신뢰성의 반전 비트가 제3 비트 교정 컴포넌트(265)에 제공될 수도 있다. 강력한 감지 컴포넌트(275)가 사용될 때, 플립 비트 생성기(270)는 높은 신뢰성의 반전 비트를 비트 플립핑 컴포넌트(255)로 라우팅하는 스위치 또는 와이어를 포함할 수도 있다-예를 들어, 생성된 높은 신뢰성의 반전 비트는 플립 비트로서 사용될 수도 있다-.
단일의 반전 비트가 코드워드에 대해 사용될 때, 더 강력한 메모리 셀은 코드워드가 데이터 컴포넌트(225) 또는 제어 컴포넌트(230)를 사용하여 처리되기 전에 그리고 반전 비트에 대한 오류 정정 기법을 채용하는 일 없이 단일의, 높은 신뢰성의 반전/플립 비트를 생성하도록 사용될 수도 있다. 일부 경우에, 단일의 반전 비트는 메모리 어레이 내 다른 메모리 셀보다 잘못된 데이터(예를 들어, RBER <= 1e-18)를 생성할 가능성이 더 낮은 강력한 메모리 셀에 저장된다. 예를 들어, 메모리 셀은 다른 메모리 셀보다 더 큰 감지 윈도우를 갖도록 구성될 수도 있고, 상이한 메모리 기술(예를 들어, FeRAM 대신에 DRAM)을 사용할 수도 있고, 등이다. 단일의 메모리 셀(예를 들어, 강력한 메모리 셀)이 코드워드에 대한 반전 비트를 저장하도록 사용될 때, 플립 비트와 반전 비트는 동일할 수도 있고 플립 비트 생성기(270)는 반전/플립 비트를 비트 플립핑 컴포넌트(255)로 라우팅하는 스위치 또는 와이어를 포함할 수도 있다-예를 들어, 반전 비트는 일부 경우에 플립 비트로서 사용될 수도 있다-.
플립 비트 생성기(270)는 생성된 플립 비트를 비트 플립핑 컴포넌트(255)로 전송할 수도 있다. 플립 비트는 오류 식별 컴포넌트(235)가 신드롬 비트를 생성하고/하거나 전송하는 동안 비트 플립핑 컴포넌트(255)로 전송될 수도 있다-예를 들어, 비트 플립핑 컴포넌트(255)는 신드롬 비트가 비트 정정 컴포넌트(250)로 전송되기 전 또는 동안 플립 비트를 비트 플립핑 컴포넌트(255)로 전송할 수도 있다-. 일부 경우에, 플립 비트 생성기(270)는 오류 식별 컴포넌트(235)로부터 비트 플립핑 컴포넌트(255)를 통해 전자적으로 절연될 수도 있다. 즉, 오류 식별 컴포넌트(235)의 출력은 플립 비트 생성기(270)의 출력에 영향을 주지 않을 수도 있다-또는 플립 비트의 생성은 신드롬 비트의 생성과 관계 없이, 또는 이를 참조하는 일 없이 수행될 수도 있다-.
오류 식별 컴포넌트(235)는 제1 비트 교정 컴포넌트(245)로부터 수신된 데이터 비트 내 오류를 식별하도록 구성될 수도 있다. 일부 경우에, 오류 식별 컴포넌트(235)는 비트 교정 컴포넌트(260)로부터 수신된 오류 정정 비트에 기초하여(예를 들어, 해밍 코드를 사용하여) 데이터 비트 내 오류를 식별할 수도 있다. 오류 식별 컴포넌트(235)는 데이터 및 오류 정정 비트에 기초하여 신드롬 비트를 생성할 수도 있고 신드롬 비트를 비트 정정 컴포넌트(250)로 전송할 수도 있다. 오류 식별 컴포넌트(235)는 신드롬 비트를 비트 정정 컴포넌트(250)로 직렬 또는 병렬 방식으로 전송할 수도 있다. 전체 메모리 섹션에 대한 신드롬 비트를 비트 정정 컴포넌트(250)로 제공하는 것은 전파 지연과 연관될 수도 있다.
글로벌 데이터 라인(240)은 판독 컴포넌트(200)를 통해 처리되는 데이터 비트("글로벌 데이터 비트")를 요청 디바이스로 전송하도록 구성될 수도 있다.
일부 경우에, 제1 비트 교정 컴포넌트(245), 비트 정정 컴포넌트(250), 비트 플립핑 컴포넌트(255), 제2 비트 교정 컴포넌트(260), 비트 교정 컴포넌트(265) 및 플립 비트 생성기(270)는 각각 전체 메모리 섹션에 대한 단일의 컴포넌트로서 구현될 수도 있다. 다른 경우에, 제1 비트 교정 컴포넌트(245), 비트 정정 컴포넌트(250), 비트 플립핑 컴포넌트(255), 제2 비트 교정 컴포넌트(260), 비트 교정 컴포넌트(265) 및 플립 비트 생성기(270)는 각각 전체 메모리 섹션의 각각의 코드워드에 대한 다수의 컴포넌트로서 구현될 수도 있다. 예를 들어, 다수의 메모리 섹션을 포함하는 판독 컴포넌트(200)는 하나 이상의 제1 비트 교정 컴포넌트(245), 하나 이상의 비트 정정 컴포넌트(250), 하나 이상의 비트 플립핑 컴포넌트(255), 하나 이상의 제2 비트 교정 컴포넌트(260), 하나 이상의 비트 교정 컴포넌트(265) 및 하나 이상의 플립 비트 생성기(270)를 포함할 수도 있다.
도 3은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 사용하는 예시적인 메모리 작동의 양상을 예시한다. 흐름도(300)는 향상된 비트 플립핑 방식에 따라, 하나 이상의 메모리 컴포넌트, 예컨대, 하나의 실시예로서, 도 2의 판독 컴포넌트(200)를 작동시키는 양상을 예시한다.
본 명세서에서 설명된 바와 같이, 코드워드의 데이터 비트에 의존적인 코드워드의 반전 비트(들)에 대해 오류 정정을 수행하는 것은 레이턴시를 메모리 시스템에 도입할 수도 있다. 또한, 이 레이턴시는 전파 지연에 기인하여 전체 메모리 섹션으로부터 정보를 판독할 때 악화될 수도 있다. 이 레이턴시를 감소시키기 위해, 메모리 시스템은 코드워드의 반전 비트(들)에 대해 오류 정정을 수행하는 것을 삼갈 수도 있고 코드워드의 데이터 비트의 오류 정정과 동시에 플립 비트를 생성할 수도 있다. 레이턴시를 감소시키기 위한 실시예가 흐름도(300)의 맥락에서 논의될 수도 있다.
블록(305)에서, 메모리 시스템은 예를 들어, 사용자 애플리케이션을 위해, 정보 비트를 메모리 어레이에 저장할 수도 있다. 정보 비트를 저장하는 것은 데이터 비트 및 대응하는 제어 비트를 하나 이상의 메모리 섹션의 코드워드에 저장하는 것을 포함할 수도 있다. 일부 경우에, 제어 비트는 리던던트 비트, 오류 정정 비트(예를 들어, 패리티 비트) 및/또는 반전 비트를 포함할 수도 있다.
블록(310)에서, 메모리 시스템은 메모리 섹션의 하나 이상의 코드워드의 정보 비트를 -예를 들어, 신뢰성의 이유로- 플립핑할 수도 있다. 데이터 비트를 플립핑하는 것은 데이터 및 제어 비트를 원래 저장된 값(예를 들어, 블록(305)에 저장된 값)으로부터 상이한 값(예를 들어, 반대값-논리 0 내지 논리 1)으로 플립핑하는 것 또는 데이터 및 제어 비트를 상이한 값으로부터 다시 원래 저장된 값으로 플립핑하는 것을 포함할 수도 있다. 반대값을 저장하도록 플립핑되는 데이터 및 제어 비트는 반전된 상태로 있는 것으로 나타낼 수도 있다. 정보 비트를 플립핑한 후, 메모리 시스템은 코드워드의 데이터 및/또는 제어 비트가 반전된 상태로 있는지를 나타내는 코드워드에 대해 하나 이상의 반전 비트를 설정할 수도 있다.
예를 들어, 논리값 1을 가진 코드워드에 대한 반전 비트는 코드워드가 반전된 상태로 있다고 나타낼 수도 있고 논리값 0을 가진 코드워드에 대한 반전 비트는 코드워드가 원래의/예상된 상태로 있다고 나타낼 수도 있다. 일부 경우에, 플립핑은 메모리 시스템의 내부에서 수행될 수도 있고, 따라서, 사용자 애플리케이션 및 다른 메모리 컴포넌트는 코드워드에 저장된 정보가 원래 저장된 것으로부터 변화된 것을 알지 못할 수도 있다. 따라서, 메모리 시스템은 코드워드에 저장된 정보를 요청 디바이스로 전달하기 전에 어떤 전송된 데이터가 반전되었는지를 요청 디바이스에 나타낼 수도 있거나 또는 반전된 정보 비트를 그 원래의 상태로 복귀시킬 수도 있다.
블록(315)에서, 메모리 시스템은 하나 이상의 코드워드에 저장된 데이터에 대한 요청을 -예를 들어, 사용자 애플리케이션 또는 또 다른 메모리 컴포넌트로부터- 수신할 수도 있다. 데이터 요청에 응답하여, 메모리 시스템은 전체 메모리 섹션에 액세스할 수도 있다. 즉, 메모리 시스템은 메모리 섹션 내 각각의 메모리 셀에 저장된 논리 상태를 감지할 수도 있다. 이어서 감지된 논리 상태는 대응하는 정보 비트로서 정보 비트를 처리할 수도 잇는 판독 컴포넌트(200)로 전송될 수도 있다. 정보 비트는 하나 이상의 코드워드에 대한 데이터 및 제어 비트를 포함할 수도 있다. 본 명세서에서 논의된 바와 같이, 판독 컴포넌트(200)는 메모리 섹션의 각각의 코드워드에 대한 데이터 및 제어 비트를 별도로 처리할 수도 있다. 블록(320 내지 350)은 이러한 코드워드 처리의 양상을 예시한다.
블록(320)에서, 판독 컴포넌트(200)는 리던던시 교정으로서 지칭되는 과정 동안 특정한 데이터 및 제어 비트를 각각의 코드워드에 대한 리던던트 비트(예를 들어, 제1 비트 교정 컴포넌트(245), 제2 비트 교정 컴포넌트(260) 및 제3 비트 교정 컴포넌트(265)에서의)로 교체할 수도 있다. 교정된 데이터 비트는 오류 정정 회로망, 예컨대, 오류 식별 컴포넌트(235) 및 비트 정정 컴포넌트(250)로 전송될 수도 있다. 교정된 제어 비트는 오류 식별 컴포넌트(235) 및 플립 비트 생성기(270)로 전송될 수도 있다. 일부 경우에, 리던던시 교정의 지속기간은 리던던트 비트가 메모리 섹션에 걸쳐 전파되는 시간을 포함한다.
블록(325)에서, 오류 식별 컴포넌트(235)는 각각의 코드워드에 대해 오류 정정을 수행할 수도 있다. 오류 정정 동안, 오류 식별 컴포넌트(235)는 어떤 데이터 비트(만약에 있다면)가 손상되는지를 식별하는 코드워드의 데이터 비트에 대한 신드롬 비트를 생성할 수도 있다. 일부 경우에, 신드롬 비트는 데이터 비트, 오류 정정 비트, 및/또는 코드워드의 반전 비트(들)에 기초하여 생성된다. 비트 정정 컴포넌트(250)는 신드롬 비트를 수신할 수도 있고 손상된 것으로 식별되는 임의의 데이터 비트를 -예를 들어, 식별된 데이터 비트의 논리값을 플립핑함으로써- 정정할 수도 있다.
각각의 코드워드에 대한 신드롬 비트를 생성한 후, 오류 식별 컴포넌트(235)는 신드롬 비트를 데이터 컴포넌트(225)로 전송할 수도 있다. 메모리 섹션의 각각의 코드워드에 대한 신드롬 비트를 전송하는 것은 전파 지연(예를 들어, 메모리 섹션의 물리적 크기에 기인함) 및 처리 지연(예를 들어, 특히 신드롬 비트가 연속적으로 처리된다면)에 의해 느려질 수도 있다. 판독 컴포넌트(200)는 각각의 코드워드에 대한 신드롬 비트를 제어 컴포넌트(230)로 분포시키는 동안 발생된 전파 지연의 도입을 방지하도록 코드워드의 반전 비트(들)에 대한 신드롬 비트를 생성하는 것을 삼갈 수도 있다. 일부 경우에, 신드롬 비트는 코드워드에 대한 플립 비트를 생성하는 동안 또는 후에 코드워드의 데이터 비트에 대해 생성될 수도 있다. 일부 경우에, 오류 식별 컴포넌트(235)는 플립 비트가 비트 플립핑 컴포넌트(255)로 전송된 후 신드롬 비트를 비트 정정 컴포넌트(250)로 전송할 수도 있다.
블록(330)에서, 플립 비트 생성기(270)는 각각의 코드워드의 반전 비트(들)의 값에 기초하여 각각의 코드워드에 대한 플립 비트를 생성할 수도 있다. 일부 경우에, 플립 비트의 생성 및 블록(325)에서 논의된 오류 정정의 양상이 동시에 수행된다. 예를 들어, 플립 비트(들)는 신드롬 비트와 동시에 또는 신드롬 비트가 데이터 컴포넌트(225)로 전달되는 동안 생성될 수도 있다. 플립 비트 생성기(270)는 각각의 코드워드에 대한 플립 비트(들)를 비트 플립핑 컴포넌트(255)로 전송할 수도 있다. 일부 경우에, 플립 비트(들)는 신드롬 비트의 적어도 일부가 비트 정정 컴포넌트(250)로 전달되기 전에 비트 플립핑 컴포넌트(255)로 전송될 수도 있다. 일부 경우에, 플립 비트(들)는 정정된 데이터 비트의 적어도 일부가 비트 정정 컴포넌트(250)로부터 비트 플립핑 컴포넌트(255)로 전송되기 전에 비트 플립핑 컴포넌트(255)로 전송될 수도 있다. 이 방식으로, 신드롬 비트를 전송하는 것에 의해 발생된 전파 지연이 감소될 수도 있고 데이터 비트에 대한 처리 속도가 증가될 수도 있다-예를 들어, 블록(320 내지 350)에 대한 총 처리 시간은 5㎱로부터 4㎱로 감소될 수도 있다-.
블록(350)에서, 비트 플립핑 컴포넌트(255)는 하나 이상의 코드워드에 대한 정정된 데이터 비트 및 플립 비트(들)를 수신할 수도 있고 대응하는 플립 비트의 값에 기초하여 코드워드에 대한 정정된 데이터 비트의 값을 플립핑할 수도 있다. 예를 들어, 비트 플립핑 컴포넌트(255)는 코드워드에 저장된 데이터 비트가 반전된 상태로 있다고 -예를 들어, 플립 비트의 값이 논리 1이라고 결정하는 것에 기초하여- 나타내는 코드워드에 대한 정정된 데이터 비트 및 플립 비트를 수신할 수도 있다.
일부 경우에, 플립 비트는 코드워드에 대한 반전 비트의 적어도 일부(예를 들어, 다수 또는 전부)가 데이터 비트가 반전된 상태로 있다고 나타내는 것을 결정하는 플립 비트 생성기(270)에 기초하여 데이터 비트가 반전된 상태로 있다고 나타낼 수도 있다. 따라서, 비트 플립핑 컴포넌트(255)가 정정된 데이터 비트를 플립핑하여 데이터 비트를 그 원래 저장된 값으로 복귀시킬 수도 있다. 이어서 비트 플립핑 컴포넌트(255)는 플립핑된 데이터 비트(또는 "글로벌 데이터 비트")를 요청 디바이스, 예컨대, 메모리 버퍼로 전송할 수도 있다.
대안적으로, 비트 플립핑 컴포넌트(255)는 코드워드에 저장된 데이터 비트가 원래의 상태로 있다고 -예를 들어, 플립 비트의 값이 논리 0이라고 결정하는 것에 기초하여- 나타내는 코드워드에 대한 정정된 데이터 비트 및 플립 비트를 수신할 수도 있다. 일부 경우에, 플립 비트는 코드워드에 대한 복수(예를 들어, 소수)의 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타내는 것을 결정하는 플립 비트 생성기(270)에 기초하여 데이터 비트가 반전된 상태로 있지 않다고 나타낸다. 따라서, 비트 플립핑 컴포넌트(255)는 정정된 데이터 비트를 플립핑하는 일 없이 정정된 데이터 비트를 요청 디바이스로 직접적으로 전송할 수도 있다.
본 명세서에서 논의된 바와 같이, 오류 정정되지 않은 플립 비트를 사용하는 것은 의도하지 않은 플립핑 작동-예를 들어, 플립 비트를 생성하도록 손상된 반전 비트를 사용하는 것에 기인함-을 발생시킬 수도 있다. 여전히 레이턴시를 감소시키면서 플립 비트의 신뢰성을 증가시키기 위해, 메모리 시스템은 대안적인 오류 정정 기법 및/또는 오류 정정과는 다른 기법을 채용할 수도 있다. 신뢰성을 증가시키기 위한 실시예는 블록(350)의 맥락에서 논의될 수도 있다.
다수의 반전 비트가 코드워드에 대해 사용될 때, 플립 비트 생성기(270)는 다수의 반전 비트가 코드워드의 정보가 반전된 상태로 있다는 것을 나타내는지를 결정하도록, 도 6 및 도 7을 참조하여 더 상세히 논의되는 바와 같이, 보팅 회로를 채용함으로써 반전 비트의 대안적인 오류 정정을 수행할 수도 있다. 예를 들어, 플립 비트 생성기(270)는 코드워드의 다수의 반전 비트가 반전 비트의 각각에 의해 저장된 값을 비교함으로써 데이터 비트가 반전된 상태로 있다는 것을 나타내는 것을 결정함으로써 코드워드의 데이터 비트가 반전된 상태로 있다고 결정할 수도 있다. 또는 플립 비트 생성기(270)는 코드워드의 소수의 반전 비트가 반전 비트의 각각에 의해 저장된 값을 비교함으로써 데이터 비트가 반전된 상태로 있다는 것을 나타내는 것을 결정함으로써 코드워드의 데이터 비트가 원래의 상태로 있다고 결정할 수도 있다. 다수의 반전 비트를 사용하여 플립 비트를 생성하는 것은 사용되는 반전 비트의 수의 함수로서 플립 비트의 UBER을 증가시킬 수도 있다.
일부 실시예에서, 코드워드에 대한 플립 비트와 연관된 제1 오류율은 코드워드의 데이터 비트와 연관된 제2 오류율 이상일 수도 있다. 예를 들어, 보팅 방식을 사용하여 생성된 코드워드에 대한 플립 비트의 UBER은 코드워드의 데이터 비트의 UBER 이상일 수도 있다. 예를 들어, 3개의 반전 비트를 포함하는 코드워드에 대해, 플립 비트의 UBER은 3-선택-2 곱하기 메모리 시스템에 저장된 개별적인 정보 비트의 RBER2일 수도 있다-예를 들어, 단일의 비정정된 정보 비트의 RBER은 1e-10일 수도 있고 플립 비트의 UBER은 3e-20일 수도 있다-.
부가적으로 또는 대안적으로, 다수의 반전 비트가 코드워드에 대해 사용될 때, 판독 컴포넌트(200)는 반전 비트의 오류 정정을 수행하는 일 없이, 플립 비트로서 사용될 수도 있는, 단일의 높은 신뢰성의 반전 비트를 생성하도록 강력한 감지 방식을 채용할 수도 있다. 강력한 감지 방식에 의해 생성된 반전 비트의 신뢰성(예를 들어, 반전 비트의 RBER)은 메모리 디바이스 내 오류 정정된 정보 비트의 신뢰성(예를 들어, 오류 정정된 정보 비트의 UBER)보다 더 높을 수도 있다. 강력한 감지 방식은 도 5를 참조하여 더 상세히 논의된다.
단일의 반전 비트가 코드워드에 대해 사용될 때, 판독 컴포넌트(200)는 단일의 반전 비트를 강력한 메모리 셀에 저장할 수도 있고 반전 비트의 오류 정정을 수행하는 일 없이 플립 비트로서 단일의 높은 신뢰성의 반전 비트를 사용할 수도 있다. 일부 경우에, 반전 비트의 신뢰성(예를 들어, 반전 비트의 RBER)은 메모리 디바이스 내 오류 정정된 정보 비트의 신뢰성(예를 들어, 오류 정정된 정보 비트의 UBER)보다 더 높을 수도 있다. 위의 기법의 각각은 오류 정정 기법을 사용하여 플립 비트를 생성하는 것과 동등하거나 또는 그보다 더 우수한 신뢰성을 가진 플립 비트를 생성하도록 사용될 수도 있다.
단일의 반전 비트가 코드워드당 사용될 때, 코드워드에 대한 플립 비트를 생성하는 것은 반전 비트의 값을 복사하는 것 또는 반전 비트를 플립 비트 생성기(270)를 통해 전송하는 것을 포함할 수도 있다. 다수의 반전 비트가 코드워드당 사용될 때, 코드워드에 대한 플립 비트를 생성하는 것은 다수의 반전 비트의 값에 기초하여 플립 비트의 값을 계산하는 것을 포함할 수도 있다. 대안적으로, 다수의 반전 비트가 단일의 높은 신뢰성의 반전 비트를 생성하도록 코드워드당 사용될 때, 코드워드에 대한 플립 비트를 생성하는 것은 반전 비트의 값을 복사하는 것 또는 반전 비트를 플립 비트 생성기(270)를 통해 전송하는 것을 포함할 수도 있다.
일부 경우에, 메모리 시스템은 플립 비트(들)의 생성과 동시에 데이터 비트에 대한 오류 정정을 수행할 수도 있고 대안적인 오류 정정/다른 기법을 사용할 수도 있어서 플립 비트(들)의 신뢰성을 증가시킨다. 이 방식으로, 메모리 디바이스의 신뢰성이 유리하게 유지될 수도 있으면서 또한 메모리 디바이스의 처리량을 증가시킨다.
도 4는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 메모리 구성을 예시한다. 메모리 구성(400)은 디지털 정보를 저장하도록 사용될 수도 있다. 메모리 구성(400)은 메모리 섹션, 예컨대, 메모리 섹션(405), 코드워드, 예컨대, 코드워드(410), 및 메모리 유닛, 예컨대, 메모리 유닛(425)을 포함할 수도 있다.
메모리 섹션(405)은 수백개 또는 수천개의 메모리 셀에 저장된 정보를 포함할 수도 있다. 일부 경우에, 메모리 셀은 큰 물리적 거리(예를 들어, ~1㎜)에 걸칠 수도 있다. 일부 경우에, 메모리 섹션(405)은 메모리의 페이지(예를 들어, 1024비트)에 대응하고 코드워드(410)를 포함하는, 다수의 코드워드(예를 들어, 8개의 코드워드)를 포함한다.
코드워드(410)는 수백개의 메모리 셀을 포함할 수도 있다. 일부 경우에, 코드워드(410)는 프리-페치 크기(예를 들어, 128비트)에 대응하고 데이터 부분(415) 및 제어 부분(420)을 포함한다. 데이터 부분(415)은 데이터 비트, 예컨대, 애플리케이션 데이터를 저장할 수도 있다. 제어 부분(420)은 제어 비트, 예컨대, 리던던트 비트, 오류 정정 비트, 및 반전 비트를 저장할 수도 있다. 제어 비트는 처리를 용이하게 하고 데이터 부분(415)에 저장된 데이터 비트의 신뢰성을 증가시키도록 사용될 수도 있다. 데이터 부분(415) 및 제어 부분(420)은 메모리 유닛으로 더 분할될 수도 있다. 메모리 유닛, 예컨대, 메모리 유닛(425)은 적은 메모리 셀(예를 들어, 2, 4 또는 8개)을 포함할 수도 있다. 일부 경우에, 메모리 유닛(425)은 비트의 수에 대응할 수도 있다.
일부 경우에, 모든 메모리 섹션(405)은 코드워드(410)에 저장된 데이터가 또 다른 디바이스에 의해 요청될 때 액세스된다. 일부 경우에, 모든 메모리 섹션(405)에 액세스하는 것은 메모리 작동 동안 전파 지연-예를 들어, 메모리 섹션(405) 내 메모리 셀의 큰 물리적 거리에 기인함-을 발생시킨다.
본 명세서에서 논의된 바와 같이, 이 전파 지연은 작동의 처리 단계가 연속적으로 수행될 때 악화될 수도 있고, 전파 지연을 감소시키기 위해, 메모리 시스템은 특정한 단계, 예컨대, 코드워드에 대한 데이터 비트의 오류 정정 및 플립 비트 생성을 동시에 수행할 수도 있다.
본 명세서에서 또한 논의된 바와 같이, 대안적인 오류 정정 기법을 사용하여 생성된 플립 비트의 신뢰성을 증가시키기 위해, 메모리 시스템은 코드워드당 다수의 반전 비트를 활용할 수도 있다. 일부 실시예에서, 다수의 반전 비트는 제어 부분(420)에 저장될 수도 있다. 예를 들어, 3개의 반전 비트는 9개의 오류 정정 비트 및 12개의 리던던트 비트와 함께 제어 부분(420)에 저장될 수도 있다. 또 다른 실시예에서, 2개의 반전 비트는 9개의 오류 정정 비트, 12개의 리던던트 비트, 및 1개의 미사용된 비트와 함께 제어 부분(420)에 저장될 수도 있다.
도 5는 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 강력한 감지 컴포넌트를 예시한다. 강력한 감지 방식(500)은 다수의 반전 비트에 기초하여 단일의, 높은 신뢰성의 반전 비트를 생성하도록 사용될 수도 있고 도 2의 강력한 감지 컴포넌트(275)의 예일 수도 있다. 강력한 감지 방식(500)은 제1 입력 라인(505), 제2 입력 라인(510), 차동 감지 컴포넌트(515), 및 출력 라인(520)을 포함할 수도 있다.
제1 입력 라인(505)은 제1 메모리 셀에 저장된 논리 상태를 차동 감지 컴포넌트(515)로 전달하도록 사용될 수도 있다. 제1 입력 라인(505)은 전도성 트레이스 또는 무선 통신 경로일 수도 있다.
제2 입력 라인(510)은 제2 메모리 셀에 저장된 논리 상태를 차동 감지 컴포넌트(515)로 전달하도록 사용될 수도 있다. 제2 입력 라인(510)은 전도성 트레이스 또는 무선 통신 경로일 수도 있다.
차동 감지 컴포넌트(515)는 제1 및 제2 메모리 셀에 저장된 논리값으로부터 단일의, 높은 신뢰성의 비트를 생성하도록 사용될 수도 있다. 일부 경우에, 제1 메모리 셀은 코드워드에 대한 제1 반전 비트의 값을 저장하도록 사용될 수도 있고 제2 메모리 셀은 코드워드에 대한 제2 반전 비트의 값을 저장하도록 사용될 수도 있다. 제1 및 제2 반전 비트의 논리값은 동일할 수도 있다. 제1 메모리 셀은 제1 방향으로 분극화될 수도 있고 제2 메모리 셀은 제2 방향으로 분극화될 수도 있다. 이러한 방식은 집단 메모리 셀에 대한 감지 윈도우를 2배로 만들 수도 있고 기준 전압이 사용되지 않을 수도 있다. 감지될 때, 메모리 셀은 저장된 반전 비트에 기초하여 고 전압 및 저 전압을 생성할 수도 있고, 각각의 전압이 차동 증폭기에 인가될 수도 있어서, 단일의 더 높은 신뢰성의 반전 비트를 생성한다.
출력 라인(520)은 차동 감지 컴포넌트(515)에 의해 생성된 높은 신뢰성의 반전 비트를 판독 컴포넌트로 전달하도록 사용될 수도 있다. 일부 경우에, 높은 신뢰성의 반전 비트는 플립 비트를 생성하도록 또는 플립 비트로서 사용될 수도 있다. 출력 라인(520)은 전도성 트레이스 또는 무선 통신 경로일 수도 있다.
도 6은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 플립 비트 생성기를 예시한다. 플립 비트 생성기(600)는 다수의 반전 비트에 기초하여 플립 비트를 생성하도록 사용될 수도 있고 도 2의 플립 비트 생성기(270)의 예일 수도 있다. 플립 비트 생성기(600)는 입력 라인(605), 보팅 컴포넌트(610) 및 출력 라인(615)을 포함할 수도 있다.
입력 라인(605)은 코드워드의 다수의 반전 비트의 값을 보팅 컴포넌트(610)로 전달하도록 사용될 수도 있다. 입력 라인(605)은 전도성 트레이스 또는 무선 통신 경로일 수도 있다. 일부 경우에, 입력 라인(605)은 3개 이상의 입력 라인을 포함할 수도 있다. 일부 경우에, 입력 라인(605)은 단일의 입력 라인일 수도 있고 다수의 반전 비트를 보팅 컴포넌트(610)로 직렬 방식으로 전달할 수도 있다.
보팅 컴포넌트(610)는 오류-정정 방식을 구현하고 반전 비트의 적어도 일부(예를 들어, 다수 또는 전부)가 코드워드의 데이터 비트가 반전된 또는 원래의 상태로 있다는 것을 나타내는지를 결정하도록 사용될 수도 있다. 보팅 컴포넌트(610)는 또한 반전 비트의 수의 함수로서 플립 비트의 신뢰성을 증가시킬 수도 있다. 예를 들어, 3개의 반전 비트에 대해, 플립 비트의 신뢰성은 3-선택-2 곱하기 RBER2일 수도 있고, 4개의 반전 비트에 대해, 플립 비트의 신뢰성은 4-선택-3 곱하기 RBER3일 수도 있고, 5개의 반전 비트에 대해, 플립 비트의 신뢰성은 6-선택-3 곱하기 RBER3일 수도 있다.
일부 실시예에서, 보팅 컴포넌트(610)는 3개의 반전 비트 중 2개의 반전 비트가 코드워드의 데이터 비트가 반전된 상태로 있다는 것을 -예를 들어, 2개의 반전 비트의 각각의 값이 논리 1이라는 것에 기초하여- 나타낸다고 식별할 수도 있고 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트를 트리거링하는 플립 비트를 생성할 수도 있다-예를 들어, 보팅 컴포넌트(610)는 데이터 비트가 반전된 상태로 있다고 결정할 수도 있다-. 대안적으로, 보팅 컴포넌트(610)는 3개의 반전 비트 중 1개의 반전 비트가 코드워드의 데이터 비트가 반전된 상태로 있다는 것을 나타낸다고 식별할 수도 있고 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트를 트리거링하지 않는 플립 비트를 생성할 수도 있다-예를 들어, 보팅 컴포넌트(610)는 데이터 비트가 원래의 상태로 있다고 결정할 수도 있다-.
출력 라인(615)은 생성된 플립 비트를 비트 플립핑 컴포넌트, 예컨대, 도 2를 참조하여 논의된 바와 같은 비트 플립핑 컴포넌트(255)로 전달하도록 사용될 수도 있다. 출력 라인(615)은 전도성 트레이스 또는 무선 통신 경로일 수도 있다.
도 7은 본 개시내용의 다양한 양상에 따른, 향상된 비트 플립핑 방식을 위한 예시적인 보팅 회로를 예시한다. 보팅 회로(700)는 오류 정정 방식을 구현하도록 사용될 수도 있다. 일부 경우에, 보팅 회로(700)는 3개의 반전 비트를 사용하여 플립 비트를 생성하도록 사용될 수도 있고 도 6의 보팅 컴포넌트(610)의 예일 수도 있다. 보팅 회로(700)는 제1 전압원(705), 제2 전압원(710), 제3 전압원(715), 제4 전압원(720), 제5 전압원(740), 제6 전압원(745), 제7 전압원(750), 제8 전압원(755), 제1 입력 라인(725), 제2 입력 라인(730), 제3 입력 라인(735), 출력 라인(760), p-형 트랜지스터(765) 및 n-형 트랜지스터(770)를 포함할 수도 있다.
제1 전압원(705), 제2 전압원(710), 제3 전압원(715) 및 제4 전압원(720)은 보팅 회로(700)에 대해 높은 전압(예를 들어, 양의 전압)을 공급할 수도 있다. 일부 경우에, 제1 전압원(705), 제2 전압원(710), 제3 전압원(715) 및 제4 전압원(720)은 단일의 전압원을 사용하여 구현된다-예를 들어, 제1 전압원(705), 제2 전압원(710), 제3 전압원(715) 및 제4 전압원(720)의 각각은 고 공급 레일(예를 들어, 3.3V 레일)과 관련 있을 수도 있다-.
제5 전압원(740), 제6 전압원(745), 제7 전압원(750) 및 제8 전압원(755)은 보팅 회로(700)에 대해 저 전압(예를 들어, 가상 접지 또는 양의 전압)을 공급할 수도 있다. 일부 경우에, 제5 전압원(740), 제6 전압원(745), 제7 전압원(750) 및 제8 전압원(755)은 단일의 전압원을 사용하여 구현된다-예를 들어, 제5 전압원(740), 제6 전압원(745), 제7 전압원(750), 및 제8 전압원(755)의 각각은 가상 접지와 관련 있을 수도 있다-.
제1 입력 라인(725)은 제1 반전 비트의 값을 보팅 회로(700)로 전달하도록 사용될 수도 있다. 제1 입력 라인(725)은 다수의 p-형 트랜지스터(765) 및 다수의 n-형 트랜지스터(770)에 연결될 수도 있다.
제2 입력 라인(730)은 제2 반전 비트의 값을 보팅 회로(700)로 전달하도록 사용될 수도 있다. 제2 입력 라인(730)은 다수의 p-형 트랜지스터(765) 및 다수의 n-형 트랜지스터(770)에 연결될 수도 있다.
제3 입력 라인(735)은 제3 반전 비트의 값을 보팅 회로(700)로 전달하도록 사용될 수도 있다. 제3 입력 라인(735)은 다수의 p-형 트랜지스터(765) 및 다수의 n-형 트랜지스터(770)에 연결될 수도 있다.
보팅 회로(700)는 보팅 회로(700)에 제공된 다수의 반전 비트의 값에 대응하는 출력값을 생성할 수도 있다. 즉, 보팅 회로는 3개의 반전 비트 중 적어도 2개의 반전 비트에 의해 유지된 값과 동일한 값을 가진 출력을 생성할 수도 있다.
예를 들어, 제1 입력 라인(725)에 대응하는 제1 반전 비트가 논리값 1에 대응하는 고 전압(예를 들어, 3V)을 갖고, 제2 입력 라인(730)에 대응하는 제2 반전 비트가 논리값 0에 대응하는 저 전압을 갖고, 제3 입력 라인(735)에 대응하는 제3 반전 비트가 논리값 1에 대응하는 고 전압을 갖는다면, 보팅 회로(700)는 고 전압(예를 들어, 3.3V)을 가진 출력을 생성할 수도 있다. 또는, 제1 입력 라인(725)에 대응하는 제1 반전 비트가 논리값 0에 대응하는 저 전압(예를 들어, 0V)을 갖고, 제2 입력 라인(730)에 대응하는 제2 반전 비트가 논리값 0에 대응하는 저 전압을 갖고, 제3 입력 라인(735)에 대응하는 제3 반전 비트가 논리값 1에 대응하는 고 전압을 갖는다면, 보팅 회로(700)는 저 전압(예를 들어, 0V)을 가진 출력을 생성할 수도 있다.
출력 라인(760)은 보팅 회로(700)의 출력값을 또 다른 컴포넌트, 예컨대, 비트 플립핑 컴포넌트로 전달하도록 사용될 수도 있다. 일부 경우에, 보팅 회로(700)에 의해 생성된 출력값은 플립 비트와 동일할 수도 있다. 일부 경우에, 플립 비트에 대한 고 전압은 플립 비트에 대응하는 코드워드 내 데이터 비트를 플립핑하도록 비트 플립핑 컴포넌트를 트리거링한다. 그리고 플립 비트에 대한 저 전압은 비트 플립핑 컴포넌트로 하여금 플립핑 작동을 수행하는 일 없이 플립 비트에 대응하는 코드워드 내 데이터 비트를 전송하게 할 수도 있다.
도 8은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 지지하는 메모리 어레이의 블록도를 예시한다. 블록도(800)는 도 1을 참조하여 논의된 바와 같은 메모리 어레이(100)의 예일 수도 있는, 메모리 어레이(100-a)를 포함할 수도 있다. 메모리 어레이(100-a)는 전자 메모리 장치로서 지칭될 수도 있고 도 1을 참조하여 설명된 메모리 제어기(140), 워드 라인(110), 비트 라인(115), 감지 컴포넌트(125) 및 메모리 셀(들)(105)의 예일 수도 있는, 메모리 제어기(140-a), 워드 라인(110-a), 비트 라인(115-a), 감지 컴포넌트(125-a) 및 메모리 셀(들)(105-a)을 포함한다. 메모리 어레이(100-a)는 또한 기준 컴포넌트(820), 래치(825) 및 판독 컴포넌트(850)를 포함할 수도 있다. 메모리 어레이(100-a)의 컴포넌트는 서로 전자 통신할 수도 있고 도 1 내지 도 7을 참조하여 설명된 기능을 수행할 수도 있다.
메모리 제어기(140-a)는 다른 컴포넌트와 결합하여 메모리 어레이(100-a) 전반에 걸쳐 전압을 공급할 수도 있고, 데이터를 메모리 셀(105-a)에 기입할 수도 있고, 데이터를 메모리 셀(105-a)로부터 판독할 수도 있고, 일반적으로 도 1 내지 도 7에 설명된 바와 같이 메모리 어레이(100-a)를 작동시킬 수도 있다. 메모리 제어기(140-a)는 바이어싱 컴포넌트(810) 및 타이밍 컴포넌트(815)를 포함할 수도 있다. 일부 경우에, 메모리 제어기는 비트 플립핑 컴포넌트(845)를 포함할 수도 있다. 메모리 제어기(140-a)는 메모리 셀(들)(105-a), 감지 컴포넌트(125-a) 및 기준 컴포넌트(820)와 전자 통신할 수도 있다.
바이어싱 컴포넌트(810)는 전압을 이 다양한 노드에 인가함으로써 워드 라인(110-a) 또는 비트 라인(115-a)을 활성화시키도록 (예를 들어, 메모리 제어기(140-a)에 의해) 구성될 수도 있다. 예를 들어, 바이어싱 컴포넌트(810)는 본 명세서에서 설명된 바와 같이 전압을 인가하여 메모리 셀(105-a)을 판독하거나 또는 기입하도록 구성될 수도 있다. 일부 경우에서, 메모리 제어기(140-a)는 도 1을 참조하여 설명된 바와 같이, 행 디코더, 열 디코더 또는 둘 다를 포함할 수도 있다. 이것은 메모리 제어기(140-a)가 하나 이상의 메모리 셀(105)에 액세스하게 할 수도 있다. 바이어싱 컴포넌트(810)가 또한 전압 전위를 기준 컴포넌트(820)에 제공하여 감지 컴포넌트(125-a)에 대한 기준 신호를 생성할 수도 있다. 부가적으로, 바이어싱 컴포넌트(810)는 감지 컴포넌트(125-a)의 작동을 위해 전압 전위를 제공할 수도 있다.
타이밍 컴포넌트(815)는 본 명세서에서 논의되는, 판독 및 기입과 같은, 메모리 기능을 수행하도록 전환 및 전압 인가를 위한 타이밍을 포함하여, 다양한 워드 라인 선택 또는 플레이트 바이어싱의 타이밍을 제어하도록 구성될 수도 있다. 일부 경우에서, 타이밍 컴포넌트(815)는 바이어싱 컴포넌트(810)의 작동을 제어할 수도 있다.
기준 컴포넌트(820)는 감지 컴포넌트(125-a)를 위한 기준 신호를 생성하도록 다양한 컴포넌트를 포함할 수도 있다. 기준 컴포넌트(820)는 기준 신호를 생성하도록 구성된 회로망을 포함할 수도 있다.
감지 컴포넌트(125-a)는 메모리 셀(들)(105-a)로부터의 신호와 기준 컴포넌트(820)로부터의 기준 신호를 비교할 수도 있다. 논리 상태를 결정할 때, 이어서 감지 컴포넌트는 출력을 래치(825)에 저장할 수도 있고, 이것은 메모리 어레이(100-a)가 부품인 전자 디바이스의 작동에 따라 사용될 수도 있다. 일부 경우에, 기준 컴포넌트(820), 감지 컴포넌트(125-a) 및 래치(825)는 메모리 제어기(140-a)의 컴포넌트일 수도 있다.
비트 플립핑 컴포넌트(845)는 향상된 비트 플립핑 방식의 양상을 관리하도록 사용될 수도 있다. 예를 들어, 비트 플립핑 컴포넌트(845)는 비트 플립핑 작동을 위해 타이밍 정보를 바이어싱 컴포넌트(810) 및/또는 타이밍 컴포넌트(815)에 제공하도록 사용될 수도 있다. 비트 플립핑 컴포넌트(845)는 또한 플립 비트 생성 컴포넌트 및/또는 비트 플립핑 컴포넌트를 포함할 수도 있다.
판독 컴포넌트(850)는 래치(825)에 저장된 정보 비트를 처리하도록 사용될 수도 있다. 판독 컴포넌트(850)는 도 2를 참조하여 논의된 바와 같은 판독 컴포넌트(200)의 양상을 포함할 수도 있다.
일부 경우에, 메모리 제어기(140-a)는 판독 컴포넌트(850)와 결합하여, 데이터 비트 및 반전 비트를 포함하는 코드워드의 오류 정정을 수행할 수도 있고, 반전 비트는 데이터 비트가 반전된 상태로 있는지를 나타낸다. 일부 경우에, 코드워드의 데이터 및 반전 비트가 메모리 셀(105-a)에 저장되고 데이터 및 반전 비트의 값이 감지 컴포넌트(125-a)에 의해 감지된다. 메모리 제어기(140-a)는 또한 판독 컴포넌트(850)와 결합하여, 오류 정정과 동시에, 복수의 반전 비트에 의해 저장된 값에 적어도 부분적으로 기초하여 플립 비트를 생성할 수도 있고 플립 비트를 비트 플립핑 컴포넌트로 전송할 수도 있다. 일부 경우에, 비트 플립핑 컴포넌트는 판독 컴포넌트(850)에 포함된다.
일부 경우에, 메모리 제어기(140-a)는 판독 컴포넌트(850)와 결합하여, 데이터 비트 및 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 코드워드에 대해, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정할 수도 있다. 일부 경우에, 코드워드의 데이터 및 반전 비트가 메모리 셀(105-a)에 저장되고 데이터 및 반전 비트의 값이 감지 컴포넌트(125-a)에 의해 감지된다. 메모리 제어기(140-a)는 또한 판독 컴포넌트(850)와 결합하여, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정하는 것에 적어도 부분적으로 기초하여 플립 비트를 생성할 수도 있고 플립 비트를 비트 플립핑 컴포넌트로 전송할 수도 있다. 일부 경우에, 비트 플립핑 컴포넌트는 판독 컴포넌트(850)에 포함된다.
도 9는 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 지지하는 시스템을 예시한다. 시스템(900)은 다양한 컴포넌트를 연결시키거나 또는 물리적으로 지지하기 위한 인쇄 회로 기판일 수도 있거나 또는 인쇄 회로 기판을 포함할 수도 있는, 디바이스(905)를 포함한다. 디바이스(905)는 도 1 및 도 8을 참조하여 설명된 메모리 어레이(100)의 예일 수도 있는, 메모리 어레이(100-b)를 포함한다. 메모리 어레이(100-b)는 도 1 및 도 8을 참조하여 설명된 바와 같은 메모리 제어기(140) 및 메모리 셀(들)(105)의 예일 수도 있는, 메모리 제어기(140-b) 및 메모리 셀(들)(105-b)을 포함할 수도 있다. 디바이스(905)는 또한 프로세서(910), BIOS 컴포넌트(915), 주변 컴포넌트(들)(920) 및 입력/출력 제어 컴포넌트(925)를 포함할 수도 있다. 디바이스(905)의 컴포넌트는 버스(930)를 통해 서로 전자 통신할 수도 있다.
프로세서(910)는 메모리 제어기(140-b)를 통해 메모리 어레이(100-b)를 작동시키도록 구성될 수도 있다. 일부 경우에, 프로세서(910)는 도 1 및 도 8을 참조하여 설명된 메모리 제어기(140)의 기능을 수행할 수도 있다. 다른 경우에, 메모리 제어기(140-b)는 프로세서(910)에 통합될 수도 있다. 프로세서(910)는 범용 프로세서, 디지털 신호 프로세서(digital signal processor: DSP), 응용 주문형 집적 회로(application-specific integrated circuit: ASIC), 필드-프로그래밍 가능한 게이트 어레이(field-programmable gate array: FPGA) 또는 다른 프로그래밍 가능한 논리 디바이스, 이산형 게이트 또는 트랜지스터 논리, 이산형 하드웨어 컴포넌트일 수도 있거나 또는 프로세서는 이 유형의 컴포넌트의 조합일 수도 있고, 프로세서(910)는 본 명세서에서 설명된 다양한 기능을 수행할 수도 있다. 프로세서(910)는 예를 들어, 메모리 어레이(100-b)에 저장된 컴퓨터 판독 가능한 명령어를 실행시켜서 디바이스(905)가 다양한 기능 또는 태스크를 수행하게 하도록 구성될 수도 있다.
기본 입력/출력 시스템(basic input/output system: BIOS) 컴포넌트(915)는 시스템(900)의 다양한 하드웨어 컴포넌트를 초기화 및 실행할 수도 있는, 펌웨어로서 작동되는 BIOS를 포함하는 소프트웨어 컴포넌트일 수도 있다. BIOS 컴포넌트(915)는 또한 프로세서(910)와 다양한 다른 컴포넌트, 예를 들어, 주변 컴포넌트(920), 입력/출력 제어 컴포넌트(925) 등 간의 데이터 흐름을 관리할 수도 있다. BIOS 컴포넌트(915)는 판독-전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 비휘발성 메모리에 저장된 프로그램 또는 소프트웨어를 포함할 수도 있다.
주변 컴포넌트(들)(920)는 임의의 입력 또는 출력 디바이스, 또는 디바이스(905)에 통합되는, 이러한 디바이스를 위한 인터페이스일 수도 있다. 예는 디스크 제어기, 음향 제어기, 그래픽 제어기, 이더넷 제어기, 모뎀, 범용 직렬 버스(universal serial bus: USB) 제어기, 직렬 또는 병렬 포트, 또는 주변 카드 슬롯, 예컨대, 주변 컴포넌트 상호연결부(peripheral component interconnect: PCI) 또는 가속 그래픽 포트(accelerated graphics port: AGP) 슬롯을 포함할 수도 있다.
입력/출력 제어 컴포넌트(925)는 프로세서(910)와 주변 컴포넌트(들)(920), 입력 디바이스(935), 또는 출력 디바이스(940) 간의 데이터 통신을 관리할 수도 있다. 입력/출력 제어 컴포넌트(925)는 또한 디바이스(905)에 통합되지 않은 주변기기를 관리할 수도 있다. 일부 경우에, 입력/출력 제어 컴포넌트(925)는 외부 주변기기에 대한 물리적 연결부 또는 포트를 나타낼 수도 있다.
입력(935)은 입력을 디바이스(905) 또는 디바이스의 컴포넌트에 제공하는, 디바이스(905) 외부의 디바이스 또는 신호를 나타낼 수도 있다. 이것은 다른 디바이스와의 또는 다른 디바이스 간의 사용자 인터페이스 또는 인터페이스를 포함할 수도 있다. 일부 경우에, 입력(935)은 주변 컴포넌트(들)(920)를 통해 디바이스(905)와 인터페이싱하는 주변기기일 수도 있거나 또는 입력/출력 제어 컴포넌트(925)에 의해 관리될 수도 있다.
출력(940)은 출력을 디바이스(905) 또는 임의의 디바이스의 컴포넌트로부터 수신하도록 구성된 디바이스(905) 외부의 디바이스 또는 신호를 나타낼 수도 있다. 출력(940)의 예는 디스플레이, 오디오 스피커, 인쇄 디바이스, 또 다른 프로세서 또는 인쇄 회로 기판 등을 포함할 수도 있다. 일부 경우에서, 출력(940)은 주변 컴포넌트(들)(920)를 통해 디바이스(905)와 인터페이싱하는 주변기기일 수도 있거나 또는 입력/출력 제어 컴포넌트(925)에 의해 관리될 수도 있다.
메모리 제어기(140-b), 디바이스(905) 및 메모리 어레이(100-b)의 컴포넌트는 이들의 기능을 수행하도록 설계된 회로망으로 이루어질 수도 있다. 이것은 본 명세서에 설명된 기능을 수행하도록 구성된, 다양한 회로 소자, 예를 들어, 전도성 라인, 트랜지스터, 커패시터, 인덕터, 레지스터, 증폭기, 또는 다른 활성 또는 비활성 소자를 포함할 수도 있다.
도 10은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 위한 방법 또는 방법들의 양상을 예시한다. 방법(1000)은 판독 작동 동안 코드워드를 처리하는 양상을 예시할 수도 있다.
블록(1005)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 데이터 비트 및 반전 비트를 포함하는 코드워드의 오류 정정을 수행하는 단계를 포함할 수도 있고, 반전 비트는 데이터 비트가 반전된 상태로 있는지를 나타낸다. 특정한 실시예에서, 블록(1005)의 작동은 도 1, 도 2, 도 8 및 도 9를 참조하여 설명된 바와 같은, 오류 식별 컴포넌트 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
블록(1010)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 오류 정정과 동시에, 복수의 반전 비트에 의해 저장된 값에 적어도 부분적으로 기초하여 플립 비트를 생성하는 단계를 포함할 수도 있다. 특정한 실시예에서, 블록(1010)의 작동은 도 1, 도 2, 도 6 내지 도 8 및 도 9를 참조하여 설명된 바와 같은, 플립 비트 생성기 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
블록(1015)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 플립 비트를 비트 플립핑 컴포넌트로 전송하는 단계를 포함할 수도 있다. 특정한 실시예에서, 블록(1015)의 작동은 도 1, 도 2, 도 8 및 도 9를 참조하여 설명된 바와 같은, 비트 플립핑 컴포넌트 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
도 11은 본 개시내용의 다양한 실시형태에 따른, 향상된 비트 플립핑 방식을 위한 방법 또는 방법들의 흐름도를 예시한다. 방법(1100)은 판독 작동 동안 코드워드를 처리하는 양상을 예시할 수도 있다.
블록(1105)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 데이터 비트 및 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 코드워드에 대해, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정하는 단계를 포함할 수도 있다. 특정한 실시예에서, 블록(1105)의 작동은 도 1, 도 2, 도 6 내지 도 8 및 도 9를 참조하여 설명된 바와 같은, 플립 비트 생성기, 보팅 컴포넌트 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
블록(1110)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정하는 것에 적어도 부분적으로 기초하여 플립 비트를 생성하는 단계를 포함할 수도 있다. 특정한 실시예에서, 블록(1110)의 작동은 도 1, 도 2, 도 6 내지 도 8 및 도 9를 참조하여 설명된 바와 같은, 플립 비트 생성기 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
블록(1115)에서, 방법은 도 1 내지 도 7를 참조하여 설명된 바와 같이, 플립 비트를 비트 플립핑 컴포넌트로 전송하는 단계를 포함할 수도 있다. 특정한 실시예에서, 블록(1115)의 작동은 도 1, 도 2, 도 8 및 도 9를 참조하여 설명된 바와 같은, 비트 플립핑 컴포넌트 또는 메모리 제어기에 의해 수행될 수도 있거나 또는 용이해질 수도 있다.
일부 실시예에서, 본 명세서에서 설명된 바와 같은 장치는 방법 또는 방법들, 예컨대, 방법(1000)을 수행할 수도 있다. 장치는 데이터 비트 및 반전 비트(데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트)를 포함하는 코드워드의 오류 정정을 수행하고, 오류 정정과 동시에, 복수의 반전 비트에 의해 저장된 값에 기초하여 플립 비트를 생성하고, 플립 비트를 비트 플립핑 컴포넌트로 전송하기 위한 특징부, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비일시적인 컴퓨터 판독 가능한 매체)를 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 복수의 반전 비트의 각각에 의해 저장된 값에 기초하여 데이터 비트가 반전된 상태로 있을 수도 있는지를 결정하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있고, 플립 비트는 데이터 비트가 반전된 상태로 있을 수도 있는지를 결정하는 것에 기초하여 생성될 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 다수의 반전 비트가 복수의 반전 비트의 각각에 의해 저장된 값을 비교함으로써 데이터 비트가 반전된 상태로 있을 수도 있는 것을 나타낸다고 결정하고 다수의 반전 비트가 데이터 비트가 반전된 상태로 있을 수도 있는 것을 나타낸다고 결정하는 것에 기초하여 데이터 비트가 반전된 상태로 있을 수도 있다고 결정하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 데이터 비트가 반전된 상태로 있을 수도 있다고 결정하는 것에 기초하여 데이터 비트를 플립핑하고 데이터 비트가 플립핑된 후 데이터 비트를 메모리 버퍼로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 소수의 반전 비트가 복수의 반전 비트의 각각에 의해 저장된 값을 비교함으로써 데이터 비트가 반전된 상태로 있을 수도 있다고 결정하고, 소수의 반전 비트가 데이터 비트가 반전된 상태로 있을 수도 있는 것을 나타낸다고 결정하는 것에 기초하여 데이터 비트가 원래의 상태로 있을 수도 있다고 결정하고 데이터 비트를 메모리 버퍼로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예에서, 오류 정정을 수행하는 것은 플립 비트를 생성하는 동안 또는 후에 데이터 비트에 대한 신드롬 비트를 생성하기 위한 작동, 특징부, 수단 또는 명령어를 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 데이터 비트를 비트 플립핑 컴포넌트와 결합된 비트 정정 컴포넌트로 전송하고 플립 비트가 비트 플립핑 컴포넌트로 전송된 후 신드롬 비트를 비트 정정 컴포넌트로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 데이터 비트 중 하나의 데이터 비트가 오류 정정 동안 손상될 수도 있는지를 결정하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있고, 신드롬 비트는 데이터 비트 중 하나의 데이터 비트가 손상될 수도 있는지를 결정하는 것에 기초하여 생성될 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예에서, 플립 비트의 RBER 또는 UBER은 데이터 비트 중 하나의 데이터 비트의 UBER 이상일 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예에서, 메모리의 섹션은 각각의 코드워드에 대해, 오류 정정 작동을 수행하고, 각각의 코드워드에 대해 그리고 코드워드의 오류 정정과 관계 없이, 반전 비트에 기초하여 플립 비트의 값을 결정하고 각각의 코드워드에 대해, 플립 비트를 비트 플립핑 컴포넌트로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 포함할 수도 있다.
일부 실시예에서, 본 명세서에서 설명된 바와 같은 장치는 방법 또는 방법들, 예컨대, 방법(1100)을 수행할 수도 있다. 장치는 데이터 비트 및 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 코드워드에 대해, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타내는지를 결정하고, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타내는지를 결정하는 것에 기초하여 플립 비트를 생성하고, 플립 비트를 비트 플립핑 컴포넌트로 전송하기 위한 특징부, 수단 또는 명령어(예를 들어, 프로세서에 의해 실행 가능한 명령어를 저장하는 비일시적인 컴퓨터 판독 가능한 매체)를 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 코드워드의 오류 정정을 수행하고, 오류 정정에 기초하여 데이터 비트에 대한 신드롬 비트를 생성하고 플립 비트를 비트 플립핑 컴포넌트로 전송하는 것과 동시에, 신드롬 비트를 비트 플립핑 컴포넌트와 결합될 수도 있는 비트 정정 컴포넌트로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예는 코드워드의 오류 정정을 수행하고, 오류 정정에 기초하여 데이터 비트에 대한 신드롬 비트를 생성하고, 데이터 비트를 비트 플립핑 컴포넌트와 결합될 수도 있는 비트 정정 컴포넌트로 전송하고 플립 비트를 비트 플립핑 컴포넌트로 전송한 후 신드롬 비트를 비트 정정 컴포넌트로 전송하기 위한 작동, 특징부, 수단 또는 명령어를 더 포함할 수도 있다.
본 명세서에서 설명된 방법, 장치 및 비일시적인 컴퓨터 판독 가능한 매체의 일부 실시예에서, 플립 비트와 연관된 제1 오류율은 데이터 비트와 연관된 제2 오류율 이상일 수도 있다. 본 명세서에서 설명된 방법이 가능한 구현예를 설명하고, 작동 및 단계가 재배열될 수도 있거나 또는 그렇지 않으면 변경될 수도 있고 다른 구현예가 가능하다는 것을 유념해야 한다. 게다가, 방법 중 2개 이상의 방법으로부터의 실시형태가 결합될 수도 있다.
일부 실시예에서, 장치 또는 디바이스는 범용 또는 특수 목적 하드웨어를 사용하여 본 명세서에서 설명된 기능의 양상을 수행할 수도 있다. 예를 들어, 장치 또는 디바이스는 데이터 비트를 처리하도록 구성된 데이터 컴포넌트, 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 제어 비트를 처리하도록 구성된 제어 컴포넌트, 데이터 컴포넌트 및 제어 컴포넌트와 결합된 오류 식별 컴포넌트로서, 데이터 비트 내 오류를 식별하도록 구성된 오류 식별 컴포넌트, 및 다수의 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타내는지에 기초하여 데이터 비트가 반전된 상태로 있는지를 결정하도록 구성된 플립 비트 생성기를 포함할 수도 있다. 일부 경우에, 제어 비트는 오류 정정 비트 및 리던던트 비트를 포함한다.
장치 또는 디바이스의 일부 실시예에서, 플립 비트 생성기는 제어 컴포넌트에 포함되고 다수의 데이터 비트가 반전된 상태로 있는지에 적어도 부분적으로 기초하여 플립 비트를 생성하고 플립 비트를 데이터 컴포넌트로 전송하도록 구성된다. 일부 실시예에서, 플립 비트 생성기는 신드롬 비트가 데이터 컴포넌트로 전송되기 전 또는 동안 플립 비트를 데이터 컴포넌트로 전송하도록 구성된다. 일부 실시예에서, 플립 비트 생성기는 오류 식별 컴포넌트의 출력과 관계 없이 데이터 비트가 반전된 상태로 있는지를 결정하도록 구성된다.
장치 또는 디바이스의 일부 실시예에서, 오류 식별 컴포넌트는 데이터 비트에서 식별된 오류에 적어도 부분적으로 기초하여 신드롬 비트를 데이터 컴포넌트로 전송하도록 구성된다. 일부 경우에, 오류 식별 컴포넌트와 플립 비트 생성기는 서로 관계 없이 작동된다.
일부 실시예에서, 장치 또는 디바이스는 플립 비트에 적어도 부분적으로 기초하여 데이터 비트를 플립핑하도록 구성되는 비트 플립핑 컴포넌트를 포함한다. 일부 경우에, 데이터 컴포넌트는 비트 플립핑 컴포넌트를 포함한다. 일부 실시예에서, 장치 또는 디바이스는 데이터 컴포넌트, 제어 컴포넌트, 및 메모리 섹션을 포함하는 메모리 어레이를 포함하고, 각각의 메모리 섹션은 코드워드를 포함한다.
일부 실시예에서, 장치 또는 디바이스는 메모리 섹션 내 각각의 코드워드에 대해, 데이터 비트 내 오류를 식별하도록 구성된 하나 이상의 오류 식별 컴포넌트를 포함하고, 하나 이상의 오류 식별 컴포넌트는 오류 식별 컴포넌트를 포함한다.
일부 실시예에서, 장치 또는 디바이스는 메모리 섹션 내 각각의 코드워드에 대해, 데이터 비트가 반전된 상태로 있는지를 결정하도록 구성된 하나 이상의 플립 비트 생성기를 포함하고, 하나 이상의 플립 비트 생성기는 플립 비트 생성기를 포함하고, 하나 이상의 오류 식별 컴포넌트와 하나 이상의 플립 비트 생성기는 서로 관계 없이 작동된다.
다른 실시예에서, 장치 또는 디바이스는 데이터 비트를 저장하도록 구성된 제1 메모리 셀 및 반전 비트를 포함하는 제어 비트를 저장하도록 구성된 제2 메모리 셀을 포함하는 메모리 어레이, 메모리 어레이와 결합된 교정 컴포넌트로서, 데이터 비트의 하위 세트와 제어 비트의 하위 세트를 교체하도록 구성된 교정 컴포넌트, 교정 컴포넌트의 출력부와 결합된 오류 식별 컴포넌트로서, 데이터 비트의 하위 세트가 교체된 후 데이터 비트 내 오류를 식별하도록 구성된 오류 식별 컴포넌트, 및 교정 컴포넌트의 출력부와 결합된 보팅 컴포넌트로서, 오류 식별 컴포넌트에 의한 데이터 비트 내 오류의 식별과 동시에, 다수의 반전 비트가 데이터 비트가 반전된 상태로 있다고 나타내는지를 결정하도록 구성된 보팅 컴포넌트를 포함할 수도 있다.
장치 또는 디바이스의 일부 실시예에서, 보팅 컴포넌트는 오류 식별 컴포넌트로부터 전기적으로 절연된다. 장치 또는 디바이스의 일부 실시예에서, 교정 컴포넌트는 데이터 비트의 하위 세트를 교체하도록 구성된 제1 멀티플렉서 및 제어 비트의 하위 세트를 교체하도록 구성된 제2 멀티플렉서를 포함한다.
일부 실시예에서, 장치 또는 디바이스는 제1 멀티플렉서의 출력부 및 오류 식별 컴포넌트와 결합된 비트 정정 컴포넌트를 포함하고, 비트 정정 컴포넌트는 데이터 비트 내 오류를 정정하도록 구성된다. 일부 실시예에서, 장치 또는 디바이스는 보팅 컴포넌트 및 비트 정정 컴포넌트와 결합된 플립핑 컴포넌트를 포함하고, 플립핑 컴포넌트는 데이터 비트 내 오류가 정정된 후 데이터 비트를 플립핑하도록 구성된다.
다른 실시예에서, 장치 또는 디바이스는 데이터 비트 및 반전 비트를 포함하는 코드워드의 오류 정정을 수행하도록 구성된 오류 식별 컴포넌트(반전 비트는 데이터 비트가 반전된 상태로 있는지를 나타냄), 오류 식별 컴포넌트와 결합된 플립 비트 생성기로서, 반전 비트의 하위 세트에 의해 저장된 값에 적어도 부분적으로 기초하여 플립 비트를 생성하도록 구성된 플립 비트 생성기, 및 플립 비트 생성기와 결합된 비트 플립핑 컴포넌트로서, 플립 비트 생성기로부터 플립 비트를 수신하고 플립 비트의 값에 적어도 부분적으로 기초하여 데이터 비트를 플립핑하도록 구성된 비트 플립핑 컴포넌트를 포함할 수도 있다.
장치 또는 디바이스의 일부 실시예에서, 플립 비트 생성기는 보팅 컴포넌트를 포함하고, 보팅 컴포넌트는 다수의 반전 비트가 데이터 비트가 반전된 상태로 있는 것을 나타내는지를 결정하도록 구성된다. 일부 경우에, 플립 비트는 이 결정에 적어도 부분적으로 기초하여 생성된다.
일부 실시예에서, 장치 또는 디바이스는 오류 식별 컴포넌트 및 플립 비트 생성기와 결합된 비트 정정 컴포넌트를 포함한다. 일부 경우에, 비트 정정 컴포넌트는 데이터 비트 내 오류를 정정하도록 구성된다. 일부 경우에, 오류 식별 컴포넌트는 데이터 비트에 대한 신드롬 비트를 생성하고 신드롬 비트를 비트 정정 컴포넌트로 전송하도록 더 구성되고, 비트 정정 컴포넌트는 신드롬 비트에 적어도 부분적으로 기초하여 데이터 비트 내 오류를 정정하도록 구성된다. 일부 경우에, 플립 비트 생성기는 신드롬 비트가 비트 정정 컴포넌트로 전송되기 전 또는 동안 플립 비트를 비트 플립핑 컴포넌트로 전송하도록 구성된다.
본 명세서에서 사용될 때, 용어 "가상 접지"는 대략 0볼트(0V)의 전압으로 유지되지만 지면과 직접적으로 연결되지 않는 전기 회로의 노드를 나타낸다. 따라서, 가상 접지의 전압은 일시적으로 변동될 수도 있고 그리고 정상 상태에서 대략 0V로 복귀될 수도 있다. 가상 접지는 다양한 전자 회로 소자, 예컨대, 연산 증폭기와 레지스터로 이루어진 분압기를 사용하여 구현될 수도 있다. 다른 구현예가 또한 가능하다. "가상 접지" 또는 "가상으로 접지된"은 대략 0V에 연결된 것을 의미한다.
용어 "전자 통신" 및 "연결된"은 컴포넌트 간의 전자 흐름을 지지하는 컴포넌트 간의 관계를 나타낸다. 이것은 컴포넌트 간의 직접적인 연결을 포함할 수도 있거나 또는 중간의 컴포넌트를 포함할 수도 있다. 전자 통신 시 또는 서로 연결되는 컴포넌트는 전자 또는 신호를 (예를 들어, 전압-인가된 회로에서) 활발히 교환할 수도 있거나 또는 전자 또는 신호를 (예를 들어, 전압-비인가된 회로에서) 활발히 교환할 수도 없지만 회로에 전압-인가될 때 전자 또는 신호를 교환하도록 구성될 수도 있고 그리고 작동 가능할 수도 있다. 실시예로서, 스위치(예를 들어, 트랜지스터)를 통해 물리적으로 연결된 2개의 컴포넌트는 스위치의 상태(즉, 개방 또는 폐쇄)와 관계 없이 전자 통신하거나 또는 연결될 수도 있다.
용어 "절연된" 또는 "전기적으로 절연된"은 전자가 현재 컴포넌트 사이에서 흐를 수 없는 컴포넌트 간의 관계를 나타내고; 컴포넌트는 컴포넌트 사이에 개회로가 있다면 서로 절연된다. 예를 들어, 스위치에 의해 물리적으로 연결되는 2개의 컴포넌트는 스위치가 개방될 때 서로 절연될 수도 있다.
본 명세서에서 사용될 때, 용어 "실질적으로"는 수식된 특성(예를 들어, 용어 실질적으로에 의해 수식된 동사 또는 형용사)이 절대적일 필요는 없지만 특성의 이점을 얻을 수 있을 만큼 충분히 가깝다는 것을 의미한다.
메모리 어레이(100)를 포함하는, 본 명세서에서 논의되는 디바이스는 반도체 기판, 예컨대, 규소, 게르마늄, 규소-게르마늄 합금, 갈륨 비소, 질화갈륨 등 상에 형성될 수도 있다. 일부 경우에서, 기판은 반도체 웨이퍼이다. 다른 경우에서, 기판은 실리콘-온-절연체(silicon-on-insulator: SOI) 기판, 예컨대, 실리콘-온-유리(silicon-on-glass: SOG) 또는 실리콘-온-사파이어(silicon-on-sapphire: SOP), 또는 또 다른 기판 상의 반도체 물질의 에피택셜 층일 수도 있다. 기판 또는 기판의 하위 구역의 전도도는 인, 붕소 또는 비소를 포함하지만 이들로 제한되지 않는 다양한 화학종을 사용하는 도핑을 통해 제어될 수도 있다. 도핑은 이온-주입에 의해 또는 임의의 다른 도핑 수단에 의해, 기판의 초기 형성 또는 성장 동안 수행될 수도 있다.
본 명세서에서 논의되는 트랜지스터 또는 트랜지스터들은 전계-효과 트랜지스터(field-effect transistor: FET)를 나타낼 수도 있고 그리고 소스, 드레인 및 게이트를 포함하는 3단자 디바이스를 포함한다. 단자는 전도성 물질, 예를 들어, 금속을 통해 다른 전자 소자에 연결될 수도 있다. 소스와 드레인은 전도성일 수도 있고 그리고 고농도로 도핑된, 예를 들어, 변질된, 반도체 구역을 포함할 수도 있다. 소스와 드레인은 저농도로 도핑된 반도체 구역 또는 채널에 의해 이격될 수도 있다. 채널이 n-형(즉, 다수의 운반자가 전자)이라면, FET는 n-형 FET로서 지칭될 수도 있다. 채널이 p-형(즉, 다수의 운반자가 정공)이라면, FET는 p-형 FET로서 지칭될 수도 있다. 채널은 절연 게이트 산화물에 의해 캡핑될 수도 있다. 채널 전도도는 전압을 게이트에 인가함으로써 제어될 수도 있다. 예를 들어, 양의 전압 또는 음의 전압을 n-형 FET 또는 p-형 FET에 각각 인가하는 것은 채널이 전도성을 띄게 하는 것을 발생시킬 수도 있다. 트랜지스터는 트랜지스터의 문턱값 전압 이상의 전압이 트랜지스터 게이트에 인가될 때 "켜지거나" 또는 "활성화"될 수도 있다. 트랜지스터는 트랜지스터의 문턱값 전압 미만의 전압이 트랜지스터 게이트에 인가될 때 "꺼지거나" 또는 "비활성화"될 수도 있다.
첨부 도면과 연관되어 위에서 제시되는 상세한 설명은 예시적인 실시예를 설명하고 구현될 수도 있거나 또는 청구범위 내에 있는 실시예만을 나타내진 않는다. 이 설명에서 사용될 때 용어 "실시예" 및 "예시적인"은 "우선되는" 또는 "다른 실시예에 비해 유리한"이 아닌, "실시예, 예 또는 실례로서 기능하는"을 의미한다. 상세한 설명은 설명된 기법의 이해를 제공할 목적으로 구체적인 상세사항을 포함한다. 그러나, 이 기법은 이 구체적인 상세사항 없이 실행될 수도 있다. 일부 예에서, 잘 알려진 구조 및 장치는 설명된 실시예의 개념을 모호하게 하는 것을 방지하도록 블록도 형태로 도시된다.
정보 및 신호는 임의의 다양한 상이한 기술 및 기법을 사용하여 나타날 수도 있다. 예를 들어, 위의 설명 전반에 걸쳐 언급될 수도 있는 데이터, 명령어, 명령, 정보, 신호, 비트, 부호 및 칩은 전압, 전류, 전자기파, 자기장 또는 입자, 광학 필드 또는 입자, 또는 이들의 임의의 조합으로 나타날 수도 있다.
본 명세서의 개시내용과 관련되어 설명된 다양한 예시적인 블록 및 컴포넌트는 범용 프로세서, 디지털 신호 프로세서(DSP), ASIC, FPGA 또는 다른 프로그램 가능한 논리 디바이스, 이산형 게이트 또는 트랜지스터 논리, 이산형 하드웨어 컴포넌트, 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현 또는 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 기계일 수도 있다. 프로세서는 또한 컴퓨팅 디바이스의 조합, 예를 들어, DSP와 마이크로프로세서의 조합, 다수의 마이크로프로세서, DSP 코어와 함께 하나 이상의 마이크로프로세서, 또는 임의의 다른 이러한 구성으로서 구현될 수도 있다.
본 명세서에 설명된 기능은 하드웨어, 프로세서에 의해 실행되는 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 프로세서에 의해 실행되는 소프트웨어에서 구현된다면, 기능은 하나 이상의 명령어 또는 코드로서 컴퓨터-판독 가능한 매체에 저장 또는 전송될 수도 있다. 다른 실시예 및 구현예는 본 개시내용과 첨부된 청구항의 범위 및 정신 내에 있다. 예를 들어, 소프트웨어의 특징에 기인하여, 위에서 설명된 기능은 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 펌웨어, 하드와이어링, 또는 이들의 임의의 조합을 사용하여 구현될 수 있다. 기능을 구현하는 특징부는 또한 다양한 위치에 물리적으로 위치될 수도 있고, 기능의 일부가 상이한 물리적 위치에서 구현되도록 분산되는 것을 포함한다. 청구범위를 포함하여, 본 명세서에서 사용될 때, 용어 "및/또는"은 2개 이상의 항목의 목록에서 사용되는 경우에, 나열된 항목 중 임의의 항목이 자체적으로 채용될 수 있거나 또는 나열된 항목 중 2개 이상의 항목의 임의의 조합이 채용될 수 있다는 것을 의미한다. 예를 들어, 조성물이 컴포넌트 A, B 및/또는 C를 함유하는 것으로 설명된다면, 조성물은 A 단독; B 단독; C 단독; A와 B 조합; A와 C 조합; B와 C 조합; 또는 A, B 및 C 조합을 함유할 수 있다. 또한, 청구범위를 포함하여, 본 명세서에서 사용될 때, "또는"은 항목의 목록("~ 중 적어도 하나" 또는 "~중 하나 이상"과 같은 어구로 시작하는 항목의 목록)에서 사용될 때 예를 들어, "A, B, 또는 C 중 적어도 하나"의 목록이 A 또는 B 또는 C 또는 AB 또는 AC 또는 BC 또는 ABC(즉, A 및 B 및 C)를 의미하도록 택일적 목록을 나타낸다.
컴퓨터-판독 가능한 매체는 컴퓨터 저장 매체와 하나의 장소로부터 또 다른 장소로 컴퓨터 프로그램의 이동을 용이하게 하는 임의의 매체를 포함하는 통신 매체 둘 다를 포함한다. 저장 매체는 범용 또는 특수 목적의 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있다. 실시예로서 그리고 비제한적으로, 컴퓨터-판독 가능한 매체는 RAM, ROM, EEPROM, 플래시 메모리, CD-ROM 또는 다른 광 디스크 기억 장치, 자기 디스크 기억 장치 또는 다른 자기 저장 디바이스, 또는 범용 또는 특수-목적 컴퓨터, 또는 범용 또는 특수-목적 프로세서에 의해 액세스될 수 있는 명령어 또는 데이터 구조의 형태로 목적하는 프로그램 코드 수단을 운반 또는 저장하도록 사용될 수 있는 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 연결부는 적절하게는 컴퓨터-판독 가능한 매체로 불린다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스트 페어(twisted pair), 디지털 가입자 회선(digital subscriber line: DSL), 또는 무선 기술, 예컨대, 적외선, 방사선, 및 마이크로파를 사용하여 웹사이트, 서버 또는 다른 원격 공급원으로부터 전송된다면, 그러면 동축 케이블, 광섬유 케이블, 트위스트 페어, DSL, 또는 무선 기술, 예컨대, 적외선, 방사선, 및 마이크로파가 매체의 정의에 포함된다. 디스크(disk) 및 디스크(disc)는 본 명세서에서 사용될 때, 콤팩트 디스크(compact disc: CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크(digital versatile disc: DVD), 플로피 디스크 및 블루-레이 디스크를 포함하고 디스크(disk)는 보통 데이터를 자기적으로 재생하고, 반면에 디스크(disc)는 데이터를 레이저로 광학적으로 재생한다. 위의 조합은 또한 컴퓨터-판독 가능한 매체의 범위 내에 포함된다.
본 개시내용의 이전의 설명은 당업자가 본 개시내용을 행하거나 또는 사용하게 하도록 제공된다. 본 개시내용에 대한 다양한 변경이 당업자에게 손쉽게 분명해질 것이고, 그리고 본 명세서에 규정된 일반적인 원리는 본 개시내용의 범위로부터 벗어나는 일 없이 다른 변형에 적용될 수도 있다. 따라서, 본 개시내용은 본 명세서에 설명된 실시예 및 설계로 제한되지 않지만, 본 명세서에 개시된 원리 및 새로운 특징과 일치하는 가장 넓은 범위에 부합된다.

Claims (30)

  1. 방법으로서,
    데이터 비트 및 반전 비트를 포함하는 코드워드의 오류 정정을 수행하는 단계로서, 상기 반전 비트는 상기 데이터 비트가 반전된 상태로 있는지를 나타내는, 상기 코드워드의 오류 정정을 수행하는 단계;
    상기 오류 정정과 동시에, 복수의 반전 비트에 의해 저장된 값에 적어도 부분적으로 기초하여 플립 비트를 생성하는 단계; 및
    상기 플립 비트를 비트 플립핑 컴포넌트로 전송하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 복수의 반전 비트의 각각에 의해 저장된 값에 적어도 부분적으로 기초하여 상기 데이터 비트가 상기 반전된 상태로 있는지를 결정하는 단계를 더 포함하되, 상기 플립 비트는 상기 데이터 비트가 상기 반전된 상태로 있는지를 결정하는 것에 적어도 부분적으로 기초하여 생성되는, 방법.
  3. 제1항에 있어서,
    다수의 반전 비트가 상기 복수의 반전 비트의 각각에 의해 저장된 값을 비교함으로써 상기 데이터 비트가 상기 반전된 상태로 있는 것을 나타낸다고 결정하는 단계; 및
    상기 다수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있는 것을 나타낸다고 결정하는 것에 적어도 부분적으로 기초하여 상기 데이터 비트가 상기 반전된 상태로 있다고 결정하는 단계를 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 데이터 비트가 상기 반전된 상태로 있다고 결정하는 것에 적어도 부분적으로 기초하여 상기 데이터 비트를 플립핑하는 단계; 및
    상기 데이터 비트가 플립핑된 후 상기 데이터 비트를 메모리 버퍼로 전송하는 단계를 더 포함하는, 방법.
  5. 제1항에 있어서,
    소수의 반전 비트가 상기 복수의 반전 비트의 각각에 의해 저장된 값을 비교함으로써 상기 데이터 비트가 상기 반전된 상태로 있는 것을 나타낸다고 결정하는 단계;
    상기 소수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있는 것을 나타낸다고 결정하는 것에 적어도 부분적으로 기초하여 상기 데이터 비트가 원래의 상태로 있다고 결정하는 단계; 및
    상기 데이터 비트를 메모리 버퍼로 전송하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서, 상기 오류 정정을 수행하는 것은,
    상기 플립 비트를 생성하는 동안 후 상기 데이터 비트에 대한 신드롬 비트를 생성하는 것을 포함하는, 방법.
  7. 제6항에 있어서,
    상기 데이터 비트를 상기 비트 플립핑 컴포넌트와 결합된 비트 정정 컴포넌트로 전송하는 단계; 및
    상기 플립 비트가 상기 비트 플립핑 컴포넌트로 전송된 후 상기 신드롬 비트를 상기 비트 정정 컴포넌트로 전송하는 단계를 더 포함하는, 방법.
  8. 제6항에 있어서,
    상기 오류 정정 동안 상기 데이터 비트 중 하나의 데이터 비트가 손상되는지를 결정하는 단계를 더 포함하되, 상기 신드롬 비트는 상기 데이터 비트 중 하나의 데이터 비트가 손상되는지를 결정하는 것에 적어도 부분적으로 기초하여 생성되는, 방법.
  9. 제1항에 있어서, 상기 플립 비트의 원 비트 오류율(raw bit error rate: RBER) 또는 상기 플립 비트의 정정 불가능한 비트 오류율(uncorrectable bit error rate: UBER)은 상기 데이터 비트 중 하나의 데이터 비트의 UBER 이상인, 방법.
  10. 제1항에 있어서, 메모리의 섹션은 코드워드를 포함하는 코드워드들을 포함하고, 상기 코드워드들 중 각각의 코드워드는 데이터 비트 및 반전 비트를 포함하고, 상기 반전 비트는 상기 데이터 비트가 상기 반전된 상태로 있는지를 나타내고, 상기 방법은,
    각각의 코드워드에 대해, 오류 정정 작동을 수행하는 단계;
    각각의 코드워드에 대해 그리고 상기 코드워드의 오류 정정과 관계 없이, 반전 비트에 적어도 부분적으로 기초하여 플립 비트의 값을 결정하는 단계; 및
    각각의 코드워드에 대해, 상기 플립 비트를 하나 이상의 비트 플립핑 컴포넌트로 전송하는 단계를 포함하되, 상기 하나 이상의 비트 플립핑 컴포넌트는 상기 비트 플립핑 컴포넌트를 포함하는, 방법.
  11. 방법으로서,
    데이터 비트 및 상기 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 코드워드에 대해, 다수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있다고 나타내는지를 결정하는 단계;
    상기 다수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있다고 나타내는지를 결정하는 것에 적어도 부분적으로 기초하여 플립 비트를 생성하는 단계; 및
    상기 플립 비트를 비트 플립핑 컴포넌트로 전송하는 단계를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 코드워드의 오류 정정을 수행하는 단계;
    상기 오류 정정에 적어도 부분적으로 기초하여 상기 데이터 비트에 대한 신드롬 비트를 생성하는 단계; 및
    상기 플립 비트를 상기 비트 플립핑 컴포넌트로 전송하는 것과 동시에, 상기 신드롬 비트를 상기 비트 플립핑 컴포넌트와 결합되는 비트 정정 컴포넌트로 전송하는 단계를 더 포함하는, 방법.
  13. 제11항에 있어서,
    상기 코드워드의 오류 정정을 수행하는 단계;
    상기 오류 정정에 적어도 부분적으로 기초하여 상기 데이터 비트에 대한 신드롬 비트를 생성하는 단계;
    상기 데이터 비트를 상기 비트 플립핑 컴포넌트와 결합되는 비트 정정 컴포넌트로 전송하는 단계; 및
    상기 플립 비트를 상기 비트 플립핑 컴포넌트로 전송한 후 상기 신드롬 비트를 상기 비트 정정 컴포넌트로 전송하는 단계를 더 포함하는, 방법.
  14. 제11항에 있어서, 상기 플립 비트와 연관된 제1 오류율은 상기 데이터 비트와 연관된 제2 오류율 이상인, 방법.
  15. 장치로서,
    데이터 비트를 처리하도록 구성된 데이터 컴포넌트;
    상기 데이터 비트가 반전된 상태로 있는지를 나타내는 반전 비트를 포함하는 제어 비트를 처리하도록 구성된 제어 컴포넌트;
    상기 데이터 컴포넌트 및 상기 제어 컴포넌트와 결합된 오류 식별 컴포넌트로서, 상기 데이터 비트 내 오류를 식별하도록 구성된 상기 오류 식별 컴포넌트; 및
    다수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있다고 나타내는지에 기초하여 상기 데이터 비트가 상기 반전된 상태로 있는지를 결정하도록 구성된 플립 비트 생성기를 포함하는, 장치.
  16. 제15항에 있어서, 상기 오류 식별 컴포넌트와 상기 플립 비트 생성기는 서로 관계 없이 작동되고, 상기 제어 비트는 오류 정정 비트 및 리던던트 비트를 포함하는, 장치.
  17. 제15항에 있어서, 상기 플립 비트 생성기는 상기 제어 컴포넌트에 포함되고,
    상기 다수의 데이터 비트가 상기 반전된 상태로 있는지에 적어도 부분적으로 기초하여 플립 비트를 생성하고,
    상기 플립 비트를 상기 데이터 컴포넌트로 전송하도록 구성되는, 장치.
  18. 제17항에 있어서,
    상기 플립 비트에 적어도 부분적으로 기초하여 상기 데이터 비트를 플립핑하도록 구성된 비트 플립핑 컴포넌트를 더 포함하되, 상기 데이터 컴포넌트는 상기 비트 플립핑 컴포넌트를 포함하는, 장치.
  19. 제17항에 있어서, 상기 오류 식별 컴포넌트는 상기 데이터 비트에서 식별된 상기 오류에 적어도 부분적으로 기초하여 신드롬 비트를 상기 데이터 컴포넌트로 전송하도록 구성되고, 상기 플립 비트 생성기는 상기 신드롬 비트가 상기 데이터 컴포넌트로 전송되기 전 또는 동안 상기 플립 비트를 상기 데이터 컴포넌트로 전송하도록 구성되는, 장치.
  20. 제15항에 있어서, 상기 플립 비트 생성기는 상기 오류 식별 컴포넌트의 출력과 관계 없이 상기 데이터 비트가 상기 반전된 상태로 있는지를 결정하도록 구성되는, 장치.
  21. 제15항에 있어서,
    상기 데이터 컴포넌트, 상기 제어 컴포넌트, 및 메모리 섹션을 포함하는 메모리 어레이로서, 각각의 메모리 섹션이 코드워드를 포함하는, 상기 메모리 어레이;
    상기 메모리 섹션 내 각각의 코드워드에 대해, 상기 데이터 비트 내 오류를 식별하도록 구성된 하나 이상의 오류 식별 컴포넌트로서, 상기 오류 식별 컴포넌트를 포함하는, 상기 하나 이상의 오류 식별 컴포넌트; 및
    상기 메모리 섹션 내 각각의 코드워드에 대해, 상기 데이터 비트가 상기 반전된 상태로 있는지를 결정하도록 구성된 하나 이상의 플립 비트 생성기를 더 포함하되, 상기 하나 이상의 플립 비트 생성기는 상기 플립 비트 생성기를 포함하고, 상기 하나 이상의 오류 식별 컴포넌트와 상기 하나 이상의 플립 비트 생성기는 서로 관계 없이 작동되는, 장치.
  22. 장치로서,
    데이터 비트를 저장하도록 구성된 제1 메모리 셀 및 반전 비트를 포함하는 제어 비트를 저장하도록 구성된 제2 메모리 셀을 포함하는 메모리 어레이;
    상기 메모리 어레이와 결합된 교정 컴포넌트로서, 상기 데이터 비트의 하위 세트와 상기 제어 비트의 하위 세트를 교체하도록 구성된 상기 교정 컴포넌트,
    상기 교정 컴포넌트의 출력부와 결합된 오류 식별 컴포넌트로서, 상기 데이터 비트의 상기 하위 세트가 교체된 후 상기 데이터 비트 내 오류를 식별하도록 구성된 상기 오류 식별 컴포넌트; 및
    상기 교정 컴포넌트의 상기 출력부와 결합된 보팅 컴포넌트(voting component)로서, 상기 오류 식별 컴포넌트에 의한 상기 데이터 비트 내 오류의 식별과 동시에, 다수의 반전 비트가 상기 데이터 비트가 반전된 상태로 있는지를 결정하도록 구성된 상기 보팅 컴포넌트를 포함하는, 장치.
  23. 제22항에 있어서, 상기 보팅 컴포넌트는 상기 오류 식별 컴포넌트로부터 전기적으로 절연되는, 장치.
  24. 제22항에 있어서, 상기 교정 컴포넌트는,
    상기 데이터 비트의 상기 하위 세트를 교체하도록 구성된 제1 멀티플렉서; 및
    상기 제어 비트의 상기 하위 세트를 교체하도록 구성된 제2 멀티플렉서를 포함하는, 장치.
  25. 제24항에 있어서,
    상기 제1 멀티플렉서의 출력부 및 상기 오류 식별 컴포넌트와 결합된 비트 정정 컴포넌트를 더 포함하되, 상기 비트 정정 컴포넌트는 상기 데이터 비트 내 상기 오류를 정정하도록 구성되는, 장치.
  26. 제25항에 있어서,
    상기 보팅 컴포넌트 및 상기 비트 정정 컴포넌트와 결합된 비트 플립핑 컴포넌트를 더 포함하되, 상기 비트 플립핑 컴포넌트는 상기 데이터 비트 내 상기 오류가 정정된 후 상기 데이터 비트를 플립핑하도록 구성되는, 장치.
  27. 장치로서,
    데이터 비트 및 반전 비트를 포함하는 코드워드의 오류 정정을 수행하도록 구성된 오류 식별 컴포넌트로서, 상기 반전 비트는 상기 데이터 비트가 반전된 상태로 있는지를 나타내는, 상기 오류 식별 컴포넌트;
    상기 오류 식별 컴포넌트와 결합된 플립 비트 생성기로서, 상기 반전 비트의 하위 세트에 의해 저장된 값에 적어도 부분적으로 기초하여 플립 비트를 생성하도록 구성된 상기 플립 비트 생성기; 및
    상기 플립 비트 생성기와 결합된 비트 플립핑 컴포넌트로서, 상기 플립 비트 생성기로부터 상기 플립 비트를 수신하고 상기 플립 비트의 값에 적어도 부분적으로 기초하여 상기 데이터 비트를 플립핑하도록 구성된 상기 비트 플립핑 컴포넌트를 포함하는, 장치.
  28. 제27항에 있어서, 상기 플립 비트 생성기는 보팅 컴포넌트를 포함하고, 상기 보팅 컴포넌트는 다수의 반전 비트가 상기 데이터 비트가 상기 반전된 상태로 있는 것을 나타내는지를 결정하도록 구성되고, 상기 플립 비트는 이 결정에 적어도 부분적으로 기초하여 생성되는, 장치.
  29. 제27항에 있어서,
    상기 오류 식별 컴포넌트 및 상기 플립 비트 생성기와 결합된 비트 정정 컴포넌트를 더 포함하되, 상기 비트 정정 컴포넌트는 상기 데이터 비트 내 오류를 정정하도록 구성되고, 상기 오류 식별 컴포넌트는,
    상기 데이터 비트에 대한 신드롬 비트를 생성하고,
    상기 신드롬 비트를 상기 비트 정정 컴포넌트로 전송하도록 더 구성되고, 상기 비트 정정 컴포넌트는 상기 신드롬 비트에 적어도 부분적으로 기초하여 상기 데이터 비트 내 오류를 정정하도록 구성되는, 장치.
  30. 제29항에 있어서, 상기 플립 비트 생성기는 상기 신드롬 비트가 상기 비트 정정 컴포넌트로 전송되기 전 또는 동안 상기 플립 비트를 상기 비트 플립핑 컴포넌트로 전송하도록 구성되는, 장치.
KR1020217007264A 2018-08-17 2019-08-02 향상된 비트 플립핑 방식 KR102270100B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/104,470 2018-08-17
US16/104,470 US10802909B2 (en) 2018-08-17 2018-08-17 Enhanced bit flipping scheme
PCT/US2019/044874 WO2020036752A1 (en) 2018-08-17 2019-08-02 Enhanced bit flipping scheme

Publications (2)

Publication Number Publication Date
KR20210034088A true KR20210034088A (ko) 2021-03-29
KR102270100B1 KR102270100B1 (ko) 2021-06-29

Family

ID=69523562

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217007264A KR102270100B1 (ko) 2018-08-17 2019-08-02 향상된 비트 플립핑 방식

Country Status (7)

Country Link
US (3) US10802909B2 (ko)
EP (1) EP3837607A4 (ko)
JP (1) JP7053948B2 (ko)
KR (1) KR102270100B1 (ko)
CN (1) CN112543921B (ko)
TW (1) TWI709035B (ko)
WO (1) WO2020036752A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7096070B2 (ja) * 2018-05-29 2022-07-05 ラピスセミコンダクタ株式会社 多数決処理装置、半導体記憶装置及び情報データの多数決方法
US10802909B2 (en) * 2018-08-17 2020-10-13 Micron Technology, Inc. Enhanced bit flipping scheme
US10951232B2 (en) 2018-11-26 2021-03-16 Micron Technology, Inc. Error correction bit flipping scheme
CN113380303B (zh) * 2020-03-10 2024-06-11 华邦电子股份有限公司 内存存储装置及数据访问方法
US11567831B2 (en) * 2020-07-28 2023-01-31 Micron Technology, Inc. Generating a protected and balanced codeword
US11237906B1 (en) 2020-07-28 2022-02-01 Micron Technology, Inc. Generating a balanced codeword protected by an error correction code
US11494264B2 (en) * 2020-07-28 2022-11-08 Micron Technology, Inc. Generating a protected and balanced codeword
TWI737495B (zh) * 2020-09-17 2021-08-21 大陸商珠海南北極科技有限公司 記憶體裝置的控制方法
WO2022185090A1 (en) * 2021-03-02 2022-09-09 Micron Technology, Inc. Memory device having an improved ecc architecture
CN115878365A (zh) * 2021-09-27 2023-03-31 华为技术有限公司 内存纠错方法、装置及相关设备
US11860733B2 (en) * 2021-12-08 2024-01-02 Western Digital Technologies, Inc. Memory matched low density parity check coding schemes
CN117054750A (zh) * 2022-05-05 2023-11-14 华为技术有限公司 一种采样装置、相关设备和控制方法
US11934267B1 (en) 2022-08-28 2024-03-19 Micron Technology, Inc. Data inversion and unidirectional error detection

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030066005A1 (en) * 1999-09-30 2003-04-03 Iglesia Erik A. De La Bus power savings using selective inversion in an ECC system
US6563745B1 (en) * 2001-12-14 2003-05-13 Matrix Semiconductor, Inc. Memory device and method for dynamic bit inversion
US20130036341A1 (en) * 2005-02-09 2013-02-07 International Business Machines Corporation Collecting failure information on error correction code (ecc) protected data
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
KR20150106916A (ko) * 2013-03-11 2015-09-22 인텔 코포레이션 감소된 정정 불가능 메모리 오류
KR20160055936A (ko) * 2013-11-27 2016-05-18 인텔 코포레이션 메모리에서의 오류 정정
KR20170101368A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 에러 정정 회로 및 에러 정정 방법
KR20180013212A (ko) * 2016-07-29 2018-02-07 에스케이하이닉스 주식회사 데이터 비트 인버전 제어 장치 및 이를 포함하는 반도체 장치

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644583A (en) * 1992-09-22 1997-07-01 International Business Machines Corporation Soft error correction technique and system for odd weight row error correction codes
US6292868B1 (en) * 1996-10-15 2001-09-18 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
KR20030036227A (ko) * 2000-06-16 2003-05-09 어웨어, 인크. Ldpc 코드형 변조를 위한 시스템 및 방법
US6650158B2 (en) * 2001-02-21 2003-11-18 Ramtron International Corporation Ferroelectric non-volatile logic elements
US6996660B1 (en) * 2001-04-09 2006-02-07 Matrix Semiconductor, Inc. Memory device and method for storing and reading data in a write-once memory array
US7102544B1 (en) * 2005-05-31 2006-09-05 Altera Corporation Method and system for improving memory interface data integrity in PLDs
US8006166B2 (en) * 2007-06-12 2011-08-23 Micron Technology, Inc. Programming error correction code into a solid state memory device with varying bits per cell
US7925936B1 (en) * 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8064269B2 (en) * 2008-05-02 2011-11-22 Micron Technology, Inc. Apparatus and methods having majority bit detection
US9280466B2 (en) * 2008-09-09 2016-03-08 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
JP5303325B2 (ja) 2009-03-18 2013-10-02 ルネサスエレクトロニクス株式会社 データ処理装置
US9112536B2 (en) 2011-01-31 2015-08-18 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US9494647B1 (en) * 2013-12-31 2016-11-15 Gsi Technology, Inc. Systems and methods involving data inversion devices, circuitry, schemes and/or related aspects
US9319073B2 (en) * 2014-02-11 2016-04-19 Seagate Technology Llc Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
US20150261603A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and control method thereof
US9507662B2 (en) * 2014-09-24 2016-11-29 Everspin Technologies, Inc. Expanded error correction codes
DE102015113414B4 (de) * 2015-08-14 2023-02-23 Infineon Technologies Ag Fehlerkorrektur unter Verwendung von WOM-Codes
US9904594B2 (en) * 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US9715919B1 (en) * 2016-06-21 2017-07-25 Micron Technology, Inc. Array data bit inversion
TWI603190B (zh) * 2016-09-30 2017-10-21 旺宏電子股份有限公司 用以尋找一碼字中錯誤位置的方法及電子裝置
US10802909B2 (en) * 2018-08-17 2020-10-13 Micron Technology, Inc. Enhanced bit flipping scheme

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030066005A1 (en) * 1999-09-30 2003-04-03 Iglesia Erik A. De La Bus power savings using selective inversion in an ECC system
US6563745B1 (en) * 2001-12-14 2003-05-13 Matrix Semiconductor, Inc. Memory device and method for dynamic bit inversion
US20130036341A1 (en) * 2005-02-09 2013-02-07 International Business Machines Corporation Collecting failure information on error correction code (ecc) protected data
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
KR20150106916A (ko) * 2013-03-11 2015-09-22 인텔 코포레이션 감소된 정정 불가능 메모리 오류
KR20160055936A (ko) * 2013-11-27 2016-05-18 인텔 코포레이션 메모리에서의 오류 정정
KR20170101368A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 에러 정정 회로 및 에러 정정 방법
KR20180013212A (ko) * 2016-07-29 2018-02-07 에스케이하이닉스 주식회사 데이터 비트 인버전 제어 장치 및 이를 포함하는 반도체 장치

Also Published As

Publication number Publication date
US11256566B2 (en) 2022-02-22
US20220245027A1 (en) 2022-08-04
US20200059252A1 (en) 2020-02-20
JP2021524646A (ja) 2021-09-13
US20200409785A1 (en) 2020-12-31
WO2020036752A1 (en) 2020-02-20
CN112543921A (zh) 2021-03-23
TWI709035B (zh) 2020-11-01
TW202014891A (zh) 2020-04-16
CN112543921B (zh) 2022-06-21
KR102270100B1 (ko) 2021-06-29
EP3837607A1 (en) 2021-06-23
JP7053948B2 (ja) 2022-04-13
US11775383B2 (en) 2023-10-03
US10802909B2 (en) 2020-10-13
EP3837607A4 (en) 2022-04-20

Similar Documents

Publication Publication Date Title
KR102270100B1 (ko) 향상된 비트 플립핑 방식
EP3479242B1 (en) Error correction code event detection
US11799496B2 (en) Error correction bit flipping scheme
US11709731B2 (en) Direct-input redundancy scheme with adaptive syndrome decoder
US11740964B2 (en) Direct-input redundancy scheme with dedicated error correction code circuit
KR20210157438A (ko) 빠른 데이터 액세스를 갖는 오류 정정 메모리 디바이스

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
GRNT Written decision to grant