KR102142602B1 - 신규 메모리 디바이스 - Google Patents

신규 메모리 디바이스 Download PDF

Info

Publication number
KR102142602B1
KR102142602B1 KR1020180150998A KR20180150998A KR102142602B1 KR 102142602 B1 KR102142602 B1 KR 102142602B1 KR 1020180150998 A KR1020180150998 A KR 1020180150998A KR 20180150998 A KR20180150998 A KR 20180150998A KR 102142602 B1 KR102142602 B1 KR 102142602B1
Authority
KR
South Korea
Prior art keywords
group
word
groups
bits
data bits
Prior art date
Application number
KR1020180150998A
Other languages
English (en)
Other versions
KR20190063448A (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 KR20190063448A publication Critical patent/KR20190063448A/ko
Application granted granted Critical
Publication of KR102142602B1 publication Critical patent/KR102142602B1/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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/1056Updating check bits on partial write, i.e. read/modify/write
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

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)
  • Detection And Correction Of Errors (AREA)
  • Computer Hardware Design (AREA)

Abstract

방법은, 복수의 데이터 비트들 및 제1 워드에 대응하는 복수의 패리티 비트들을 포함하는 제1 워드를 리트리브하는 단계 - 복수의 데이터 비트들은 N-1개의 그룹들을 형성하고 복수의 패리티 비트들은 N-1개의 그룹들과 상이한 제1 그룹을 형성하며, N은 2 보다 큰 양의 정수임 -; N-1개의 그룹들 중 첫번째 그룹의 각각의 데이터 비트들을 갱신하기 위한 요청을 수신하는 단계; 및 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들 및 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하는 제2 워드를 제공하는 단계를 포함하고, 복수의 갱신된 패리티 비트들은 N-1개의 그룹들 중 첫번째 그룹과 동일한 그룹 인덱스를 갖는 제2 그룹을 형성한다.

Description

신규 메모리 디바이스{NOVEL MEMORY DEVICE}
본 출원은 2017년 12월 29일자로 출원된 미국 가특허 출원 번호 제62/592,189호의 우선권을 주장하는 출원으로서, 그 전체 내용이 본 명세서에 참고로 인용된다.
오류 정정 코드(Error Correction Code, ECC) 가능 메모리 디바이스는 일반적으로 실제 데이터 비트들에 추가하여 메모리 디바이스에 저장되는 ECC(Error Correction Code) 비트들(일반적으로 "패리티 비트들(parity bits)"이라고 칭함)이라고 불리는 추가의 정보를 포함하는 메모리 디바이스로 지칭된다. 이러한 패리티 비트들은 데이터 비트들이 메모리 디바이스로부터 판독될 때 데이터 비트들의 일관성을 검사하는데 사용된다. 일반적으로, 패리티 비트들을 사용하여, 데이터 비트들의 손상(예를 들어, 오류들)이 검출될 수 있고, 손상된 데이터 비트들이 정정될 수 있다.
이러한 오류 정정 코드(ECC) 가능 메모리 디바이스에서, 패리티 비트들은 일반적으로 ECC 엔진을 통해 생성되어 대응하는 데이터 비트들과 연관된다. 예를 들어, N 개의 데이터 비트들을 갖는 데이터 워드의 오류를 검출하거나 정정하기 위해, M 비트의 패리티 비트들은 N 개의 데이터 비트들과 연관되도록 생성된다. 이와 같이, N 개의 데이터 비트들을 저장하는데 사용되는 메모리 디바이스 내의 셀들의 수는 N+M 비트들이다. ECC 가능 메모리 디바이스에 대한 기록 액세스(즉, 복수의 데이터 비트들을 메모리 디바이스에 기록함)에 응답하여, 대응하는 패리티 비트들이 계산되어 복수의 데이터 비트들과 함께 메모리 디바이스에 기록될 것이다. 복수의 데이터 비트들이 판독될 때, 대응하는 패리티 비트들을 사용하여 데이터 비트들의 일관성이 검사되고, 오류가 존재하는 경우 임의의 데이터 오류가 그에 따라 정정될 수 있다.
다양한 응용들에서, N 개의 데이터 비트들을 갱신하는 동안, 모든 N 개의 비트들을 갱신하는 대신에, 전체 N 개의 데이터 비트들을 갱신하기 위해 N 개의 데이터 비트들의 대응하는 서브세트를 갱신하도록 각각 구성되는 복수 회의 부분 기록 사이클들이 수행될 수 있다. 전술한 데이터 워드가 64 개의 데이터 비트들(N = 64)을 갖는 예시에서, 총 64 개의 데이터 비트들을 갱신하기 위해 총 4 회의 부분 기록 사이클들이 수행될 수 있다. 부분 기록 사이클이 수행될 때마다, 데이터 비트들의 대응하는 서브세트를 갱신하고, 대응하는 패리티 비트들의 세트가 생성된다(예를 들어, 갱신된다). 4 회의 부분 기록 사이클들에 따라, 대응하는 패리티 비트들의 세트들이 메모리 디바이스의 동일한 셀들에 반복적으로 기록되며, 이는 패리티 비트들을 나타내는 셀들의 각각의 지속성에 불리하게 영향을 미친다. 따라서, ECC 가능 메모리 디바이스에서 부분 기록 사이클들을 수행하기 위한 기존 기술들은 완전히 만족스럽지는 못하였다.
본 개시의 양태들은 첨부된 도면들과 함께 판독할 때 다음의 상세한 설명으로부터 가장 잘 이해된다. 다양한 피처들은 일정한 축척에 따라 반드시 그려진 것이 아니라는 점을 알 수 있다. 실제로, 다양한 피처들의 치수들은 논의의 명확성을 위해 임의로 늘리거나 또는 줄일 수 있다.
도 1은 일부 실시예들에 따른 메모리 디바이스의 블록도를 도시한다.
도 2는 일부 실시예들에 따라 메모리 디바이스를 동작시키는 예시적인 방법의 흐름도를 도시한다.
도 3a, 도 3b, 도 3c, 도 3d, 도 3e, 및 도 3f는 일부 실시예들에 따라 도 2의 방법을 사용하여 부분적으로 갱신되는 워드들의 기호도들을 각각 도시한다.
도 4는 일부 실시예들에 따른 다양한 부분적인 갱신 단계들에서의 워드의 각각의 기호도들을 도시한다.
도 5는 일부 실시예들에 따라 도 2의 방법을 수행하기 위한 컴퓨터 시스템의 블록도를 도시한다.
다음의 개시는 본 발명의 상이한 피처들을 구현하기 위한 다양한 예시적인 실시예들을 설명한다. 본 개시를 간단히 하기 위해 구성 요소들 및 배치들(arrangements)의 특정 예시들이 아래에 설명된다. 이들은 물론 단지 예시들이며 제한하고자 의도되는 것은 아니다. 예를 들어, 하나의 소자가 다른 소자에 "접속된" 또는 "결합된"것으로 언급될 때, 그 구성 소자는 다른 구성 소자에 직접 접속되거나 결합될 수 있거나 하나 이상의 개재 구성 소자들이 존재할 수 있음을 이해할 것이다.
본 개시는 각각의 부분 기록 사이클 동안 패리티 비트들을 나타내기 위해 메모리 디바이스의 각각의 셀들을 동적으로 변화시키도록 구성된 제어 로직 회로를 포함하는 ECC 가능 메모리 디바이스의 다양한 실시예들을 제공한다. 일부 실시예들에서, 제어 로직 회로는 제2 데이터 워드를 제공함으로써 메모리 디바이스에 존재하는 제1 데이터 워드의 서브세트를 갱신하도록 구성된다. 보다 구체적으로, 제1 및 제2 데이터 워드들의 각각은 복수의 데이터 비트들 및 패리티 비트들의 적어도 하나의 대응하는 서브세트를 각각 갖는 복수의 서브세트들을 갖는다. 일부 실시예들에서, 제어 로직 회로는 제2 데이터 워드의 패리티 비트들의 서브세트의 그룹 인덱스를 제1 데이터 워드의 갱신될 서브세트의 그룹 인덱스로서 할당하고, 갱신된 비트들을 포함하는 제2 데이터 워드의 서브세트의 그룹 인덱스를 제1 데이터 워드의 패리티 비트들의 서브세트의 그룹 인덱스로서 할당하도록 구성된다. 이와 같이, 복수의 부분 기록 사이클에 걸쳐서, 패리티 비트들로 기록될 셀들이 변경될 수 있고, 이는 그러한 셀들의 각각의 내구성들을 유리하게 증가시킨다.
도 1은 본 개시의 다양한 실시예들에 따른 메모리 디바이스(100)의 예시적인 블록도를 도시한다. 메모리 디바이스(100)는 메모리 어레이(102), 입/출력(I/O) 회로(104), 제어 로직 회로(106) 및 오류 정정 코드(ECC) 회로(108)를 포함한다. 일부 실시예들에서, 메모리 디바이스(100)(예를 들어, 메모리 어레이(102), I/O 회로(104), 제어 로직 회로(106), ECC 회로(108) 등)의 구성 요소들은 서로 결합된다.
일부 실시예들에서, 메모리 어레이(102)는 하나의 어레이로서 배열된 복수의 메모리 셀들 또는 셀들을 포함하며, 셀들은 각각 예를 들어, 강유전성 랜덤 액세스 메모리(FRAM) 셀, 저항성 RAM(RRAM) 셀, 자기 저항성 RAM(MRAM) 셀 등과 같은 비휘발성 메모리(NVM) 셀일 수 있다. 일부 실시예들에서, 복수의 메모리 셀들의 각각은 기록 및 판독되도록 구성되며, 이는 이하에서 더 상세히 논의될 것이다. 복수의 드라이버들(예를 들어, 워드 라인 드라이버들, 비트 라인 드라이버들 등), 감지 회로들(예를 들어, 감지 증폭기들 등), 및 다른 로직 회로들(예를 들어, 전송 게이트들, 스위치들, 멀티플렉서들 등)을 포함하는 I/O 회로(104)는 메모리 어레이(102)의 복수의 메모리 셀들을 액세스하도록 구성된다. 제어 로직 회로(106)는 메모리 어레이(102)의 각각의 셀들에 데이터 비트들을 기록하고 메모리 어레이(102)의 각각의 셀들에 의해 존재하는 데이터 비트들을 판독하도록 I/O 회로(104)를 제어하도록 구성된다. ECC 회로(108)는 메모리 어레이(102)에 기록될 데이터 비트들에 기초하여 메모리 어레이(102)로부터 데이터 비트들을 판독할 때 데이터 비트들의 에러(들)를 검출하고 필요하다면 그러한 에러(들)를 추가로 정정하기 위해 그러한 ECC를 사용하는 다양한 ECC(예를 들어, 해밍 코드들(Hamming codes), 시아오 코드들(Hsiao codes), 리드-솔로몬 코드들(Reed-Solomon codes), 보스-샤우드후리-호크켐 코드들(Bose-Chaudhuri-Hocquenghem codes), 터보 코드들(Turbo codes), 저밀도 패리티 체크 코드들(Low-Density-Parity Check codes)) 중 하나를 생성하도록 구성된다.
도 2는 다양한 실시예들에 따라 메모리 디바이스(100)를 동작시키는 예시적인 방법(200)의 흐름도를 도시한다. 다양한 실시예들에서, 방법(200)의 동작들은 도 1에 도시된 각각의 구성 요소들에 의해 수행된다. 논의의 목적으로, 방법(200)의 다음의 실시예는 전술한 도 1 및 다음의 도 3a, 도 3b, 도 3c, 도 3d, 도 3e, 및 도 3f와 관련하여 설명될 것이며, 이는 방법(200)의 다양한 동작 단계들에서 워드들을 각각 기호적으로 도시한다. 방법(200)의 도시된 실시예는 단지 예시일 뿐이다. 따라서, 방법(200)의 다양한 동작들 중 임의의 동작은 생략될 수 있고, 재배열되고 및/또는 추가될 수 있으며 본 개시의 범위 내에서 유지된다.
방법(200)은 (N-1) 개의 데이터 비트들의 그룹들 및 1 개의 패리티 비트들의 그룹을 포함하는 제1 워드에 대해 수행될 기록 요청이 수신되는 동작 202에서 시작한다. 일부 실시예들에서, (N-1) 개의 데이터 비트들의 그룹들은 각각 데이터 워드의 균등하게 분할된 수의 데이터 비트들을 가지며, 패리티 비트들의 그룹은 또한 동일한 수의 패리티 비트들을 갖는다. 예를 들어, 데이터 워드가 64 데이터 비트들을 갖는 경우, 데이터 비트의 4 개의 그룹이 존재할 수 있고, 각각의 데이터 비트는 16 데이터 비트들을 가지며, 64 데이터 비트들을 갖는 데이터 워드에 대응하여, 16 패리티 비트들을 갖는 1 개의 추가의 그룹이 있을 수 있고, 이들은 80 개의 데이터 또는 패리티 비트들을 갖는 제1 워드를 집합적으로 형성한다. 일부 다른 실시예들에서, (N-1) 개의 그룹들의 데이터 비트들의 각각의 수는 본 개시의 범위 내에서 유지하는 동안 서로 상이할 수 있다. 설명의 명확성을 위해, (N-1) 개의 데이터 비트들의 그룹들 및 1 개의 패리티 비트의 그룹의 각각은 본 명세서에서 각각 "데이터 그룹" 및 "패리티 그룹"으로 지칭된다.
일부 실시예들에서, 16 개의 패리티 비트들은 데이터 워드에 기초하여 전술한 다양한 ECC 코드들 중 하나로서 ECC 회로(108)에 의해 생성된다. 전술한 예시를 계속하면, 4 개의 데이터 그룹들 및 패리티 그룹(도 3a 내지 도 3f에 기호적으로 도시됨)을 포함하는 이러한 제1 워드는 메모리 어레이(102)의 각각의 셀들에 의해 존재할 수 있고(예를 들어, 미리 기록됨), 일부 실시예들에 따라 제1 워드를 갱신하기 위한 기록 요청이 제어 로직 회로(106)에 의해 수신될 수 있다.
방법(200)은 부분 기록 요청이 있는지 여부에 따라 기록 요청이 결정되는 동작 204로 계속된다. 만일 204의 동작이 "아니오"인 경우(즉, 기록 요청이 부분 기록 요청이 아닌 경우), 방법(200)은 제1 워드의 모든 데이터 비트들이 갱신될 동작 206으로 진행하고; 204의 동작이 "예"인 경우(즉, 기록 요청이 부분 기록 요청인 경우), 방법(200)은 후술될 제1 워드의 데이터 비트들을 부분적으로 갱신하기 위해 다음의 동작들 208 내지 222로 진행한다. 일부 실시예들에 따르면, 동작 206에서, 제어 로직 회로(106)는 먼저 I/O 회로(104)가 메모리 어레이(102)의 각각의 셀들로부터 제1 워드를 판독하고, ECC 회로(108)를 통해 제1 워드를 디코딩하여 제1 워드의 정정되거나 정정된 데이터 비트를 리트리브(retrieve)하고 모든 정정된 데이터 비트들을 갱신하며, I/O 회로(104)가 메모리 어레이(102)의 각각의 셀들에 정정된 데이터 비트들을 기록하게 한다.
한편, 방법(200)은 제1 워드가 메모리 어레이로부터 판독되는 동작 208로 계속된다. 일부 실시예들에서, 제어 로직 회로(106)는 I/O 회로(104)로 하여금 메모리 어레이(102)로부터 제1 워드를 판독하게 할 수 있다. 예를 들어, 제어 로직 회로(106)는 I/O 회로(104)의 판독 드라이버로 하여금 셀들이 제1 워드를 제시(예를 들어 저장)하는 WL을 어서트시키고 셀들에 각각 결합된 I/O 회로(104)의 감지 증폭기들이 제1 워드를 판독하게 할 수 있다. 명확함을 위해, 전술한 판독 드라이버, WL, 및 감지 증폭기들은 본 개시의 도면들에 도시되지 않았다.
도 3a를 참조하면, 방법(200)의 동작 208에 대응하는 제1 워드의 기호도가 일 예시로서 제공된다. 도시된 바와 같이, 제1 워드는 4 개의 데이터 그룹들: 302, 304, 306, 308과, 1 개의 패리티 그룹: 310을 포함하고, 데이터/패리티 그룹들의 각각은 그룹 인덱스와 연관되며, 이는 방법(200)의 동작 210과 관련하여 이하에서 더 상세히 설명될 것이다. 일부 실시예들에서, 데이터 그룹들(302, 304, 306, 308)의 각각은 복수의 데이터 비트들을 포함하고, 유사하게, 패리티 그룹(310)은 복수의 패리티 비트들을 포함한다. 또한, 데이터 그룹(302, 304, 306, 308)의 각각에는 대응하는 데이터 태그가 연관되고, 대응하는 패리티 태그는 패리티 그룹(310)과 연관된다.
예를 들어, 데이터 그룹(302)은 도 3a에서 집합적으로 "d[31:16]"으로 도시된 16 개의 데이터 비트들을 포함하고, 데이터 그룹(302)은 도 3a에서 "0010"으로 도시된 4 비트들을 갖는 데이터 태그와 관련되고; 데이터 그룹(304)은 도 3a에서 집합적으로 "d[15:0]"으로 도시된 16 개의 데이터 비트들을 포함하고, 데이터 그룹(304)은 도 3a에서 "0001"로 도시된 4 비트들을 갖는 데이터 태그와 관련되며; 데이터 그룹(306)은 도 3a에서 집합적으로 "d[47:32]"로 도시된 16 개의 데이터 비트들을 포함하고, 데이터 그룹(306)은 도 3a에서 "0100"으로 도시된 4 비트들을 갖는 데이터 태그와 관련되고; 데이터 그룹(308)은 도 3a에서 집합적으로 "d[63:48]"로 도시된 16 개의 데이터 비트들을 포함하고, 데이터 그룹(308)은 도 3a에서 "1000"으로 도시된 4 비트들을 갖는 데이터 태그와 관련되며; 패리티 그룹(310)은 도 3a에서 집합적으로 "p[15:0]"으로 도시된 16 개의 패리티 비트들을 포함하고, 패리티 그룹(310)은 도 3a에서 "1111"로 도시된 4 비트들을 갖는 패리티 태그와 관련된다.
일부 실시예들에서, 데이터 그룹들의 데이터 비트들의 각 비트, 패리티 그룹의 패리티 비트들, 데이터 태그, 및 패리티 태그는 메모리 어레이(102)의 대응하는 셀에 의해 제공하도록 구성된다. 일부 실시예들에서, 데이터 태그 및 패리티 태그는 각각 제어 로직 회로(106)가 데이터 태그(들)로부터 패리티 태그를 차별화할 수 있게 하는 상이한 "비트 구조들"을 갖는다. 보다 구체적으로, 데이터 태그들 0010, 0001, 0100, 및 1000의 4 비트들에 걸쳐, 각각의 데이터 태그는 많아야 하나의 로직 1을 가지며; 반면에, 패리티 태그(1111)의 4 비트들에 대해, 패리티 태그는 1보다 큰 로직 1에 허용된 최대 오류 비트들을 플러스한 로직 1을 갖는다. 예를 들어, 최대 허용 오류 비트들이 2인 경우, 패리티 태그(1111)는 3보다 큰(즉, 1 + 2) 로직 1의 수를 갖도록 구성된다. 이와 같이, 패리티 태그가 2 개의 오류 비트들, 예컨대 1100을 가지더라도, 제어 로직 회로(106)는 데이터 태그들이 하나 이상의 로직 1을 가질 수 없기 때문에 패리티 태그를 다른 모든 데이터 태그들과 여전히 구별할 수 있다.
방법(200)은 갱신되도록 구성되는 패리티 그룹 및 데이터 그룹의 각각의 그룹 인덱스들이 각각 "A" 및 "B"로 식별되는 동작 210으로 계속된다. 전술한 바와 같이, 일부 실시예들에서, 데이터/패리티 그룹들의 각각은 그룹 인덱스와 연관된다. 도 3a를 다시 참조하면, 제1 워드가 메모리 어레이(102)로부터 판독될 때, 제1 워드의 데이터/패리티 그룹들(302-310)은 도시된 바와 같이 배열된다. 일부 실시예들에서, 제어 로직 회로(106)는 이 제어 로직 회로(106)에 의해 미리 정의되거나 할당될 수 있는 데이터 그룹(302, 304, 306, 308)/패리티 그룹(310)의 각각의 그룹 인덱스들을 기록할 수 있다. 예를 들어, 데이터 그룹(302)은 그룹 인덱스 0과 관련되고; 데이터 그룹(304)은 그룹 인덱스 1과 관련되며; 데이터 그룹(306)은 그룹 인덱스 2와 관련되고; 패리티 그룹(310)은 그룹 인덱스 3과 관련되며; 데이터 그룹(308)은 그룹 인덱스 4와 관련된다. 제어 로직 회로(106)는 제1 워드의 데이터/패리티 그룹(302 내지 310)의 이러한 그룹 인덱스들을 기록할 수 있다.
제어 로직 회로(106)가 데이터 그룹(304)의 데이터 비트들(즉, d[15:0])을 갱신하도록 구성된 예시에서, 제어 로직 회로(106)는 "B"의 값을 1로 기록할 수 있다(데이터 그룹(304)의 그룹 인덱스는 1이기 때문에). 패리티 그룹(310)은 전술한 바와 같이 그 패리티 태그들에 의해 구별할 수 있는 그룹 인덱스 3과 관련되기 때문에, 제어 로직 회로(106)는 "A"의 값을 3으로 기록할 수 있다. 일부 실시예들에서, 제어 로직 회로(106)는 메모리 어레이(102)의 셀들을 변경하여 갱신된 패리티 비트들을 제공하기 위해 A 및 B의 이러한 값들을 사용할 수 있으며, 이는 이하에서 설명될 것이다.
방법(200)은 패리티 그룹의 태그가 제거되고 제1 워드의 N 개의 그룹들이 재배열되는 동작 212으로 계속된다. 도 3b를 참조하면, 방법(200)의 동작(212)에 대응하는 제1 워드의 기호도가 일 예시로서 제공된다. 도시된 바와 같이, 패리티 그룹(310)의 패리티 태그 "1111"이 제거되고, (N-1) 개의 데이터 그룹들(302 내지 308) 및 패리티 그룹(310)(즉, 제1 워드의 N 개의 그룹들)이 재배열된다.
방법(200)은 제1 워드와 연관된 ECC를 사용하여, 필요하다면 제1 워드의 데이터 비트가 정정되는 동작 214로 계속된다. 일부 실시예들에서, 제어 로직 회로(106)가 메모리 어레이(102)로부터 제1 워드를 판독하고 재배열(도 3b에 도시된 바와 같이)한 후에, 제어 로직 회로(106)는 패리티 비트들의 패리티 그룹(310)(즉, 제1 워드와 연관된 ECC)을 사용함으로써 판독/재배열된 제1 워드(즉, 데이터 비트들의 (N-1) 개의 데이터 그룹(302 내지 308))에 존재하는 임의의 오류 데이터 비트가 존재하는지의 여부를 검사하기 위해 재배열된 제1 워드를 ECC 회로(108)에 제공할 수 있다. 만약 그렇다면, ECC 회로(108)는 이러한 오류 데이터 비트(들)을 정정하고 제1 워드의 정정된 데이터 비트들을 제어 로직 회로(106)에 제공할 수 있고; 만약 그렇지 않다면, ECC 회로(108)는 수신된 데이터 비트들을 제어 로직 회로(106)에 제공할 수 있으며, 그 중 어느 것이 도 3c의 "검사된" 데이터 비트 또는 "정정된" 데이터 비트로서 상징적으로 도시된다.
방법(200)은 그룹 인덱스 B와 연관된 데이터 그룹을 제거하고 갱신된 데이터 비트들을 그룹 인덱스 A와 연관된 데이터 그룹에 삽입함으로써 중간 데이터 비트들을 생성하도록 정정된 데이터 비트가 변경되는 동작 216으로 계속된다. A 및 B의 값들이 제어 로직 회로(106)에 의해 각각 3 및 1로 기록되는 전술한 예시를 계속하면, 방법(200)의 동작 216에 대응하는 그러한 중간 데이터 비트들의 기호도가 도 3d의 예시로서 제공된다. 도시된 바와 같이, 중간 데이터 비트들은 그룹 인덱스 1(점선으로 도시됨)과 연관된 데이터 그룹, 즉 "구형(old)" 데이터 비트들을 포함하는 데이터 그룹(304)을 포함하지 않는다. 그러나, 중간 데이터 비트들은 그룹 인덱스 3(대각선 스트라이프로 채워짐)과 연관된 그룹에 삽입되는 데이터 그룹(304)의 구 데이터 비트들로부터 갱신된 데이터 비트들을 포함한다. 보다 구체적으로, 일부 실시예들에서, 제어 로직 회로(106)는 정정된 데이터 비트들(도 3c)로부터 그룹 인덱스 1(그룹 304)을 갖는 그룹의 데이터 비트들을 제거하고, 그룹 304의 데이터 비트들을 갱신한 다음 중간 데이터 비트들을 제공하기 위해 갱신된 그룹(304')을 3의 그룹 인덱스를 갖는 위치에 삽입한다.
방법(200)은 갱신된 패리티 비트들이 제공되는 동작(218)으로 계속된다. 일부 실시예들에서, 제어 로직 회로(106)가 중간 데이터 비트들(도 3d)을 리트리브한 후에, 제어 로직 회로(106)는 갱신된 데이터 비트들(그룹(304')의 데이터 비트들)을 포함하는 중간 데이터 비트들과 관련된 갱신된 패리티 비트들(즉, 갱신된 ECC 코드)을 생성하기 위해 중간 데이터 비트들을 ECC 회로(108)에 제공할 수 있다. 이러한 갱신된 패리티 비트들은 도 3e에 기호적으로 도시된 바와 같이 패리티 그룹(310')을 형성할 수 있다. 전술한 바와 같이, 갱신된 패리티 비트들은 대응하는 데이터 비트들, 즉 해밍 코드들, 시아오 코드들(Hsiao codes), 리드-솔로몬 코드들(Reed-Solomon codes), Bose-Chaudhuri-Hocquenghem 코드들, 터보 코드들(Turbo codes) 및 저밀도 패리티 검사 코드들(Low-Density-Parity Check codes) 중 하나일 수 있는 중간 데이터 비트들에 기초하여 생성된다.
방법(200)은 제2 워드(또는 부분적으로 갱신된 제1 워드)를 생성하기 위해 갱신된 패리티 비트들이 그룹 인덱스 B와 연관된 중간 데이터 비트들의 그룹에 삽입되는 동작 220으로 계속된다. 전술한 예시를 계속하면, 제어 로직 회로(106)는 그룹 B의 값을 1로 기록하고(동작 210), 그룹(310')을 형성하는 갱신된 패리티 비트들은 제어 로직 회로(106)에 의해 도 3f에 기호적으로 도시된 바와 같이 제2 워드를 생성하기 위해 1의 그룹 인덱스를 갖는 그룹에 삽입된다.
방법(200)은 제2 워드가 메모리 어레이에 부분적으로 다시 기록되는 동작 222로 계속된다. 전술한 바와 같이, 갱신되도록 구성되는 제1 워드의 데이터 비트들(즉, 데이터 그룹들(302-308)) 및 패리티 비트들(즉, 패리티 그룹(310))은 메모리 어레이(102)의 각각의 셀들로부터 판독된다(도 3a ). 일부 실시예들에서, 제어 로직 회로(106)가 제2 워드(도 3f)를 생성한 후에, 제어 로직 회로(106)는 갱신된 데이터 비트들을 포함하는 그룹 및 갱신된 패리티 비트들을 포함하는 그룹을 메모리 어레이(102)의 셀들에 다시 기록하기 위해 제2 워드의 데이터 구조를 따를 수 있다.
특히, 도 3a를 다시 참조하여, 제1 워드를 부분적으로 갱신하기 위한 요청을 수신하면, 데이터 그룹(302)의 데이터 비트들은 메모리 어레이(102)의 제1 복수의 셀들로부터 판독되고; 데이터 그룹(304)의 데이터 비트들은 메모리 어레이(102)의 제2 복수의 셀들로부터 판독되고; 데이터 그룹(306)의 데이터 비트들은 메모리 어레이(102)의 제3 복수의 셀들로부터 판독되고; 패리티 그룹(310)의 패리티 비트들은 메모리 어레이(102)의 제4 복수의 셀들로부터 판독되고; 데이터 그룹(308)의 데이터 비트들은 메모리 어레이(102)의 제5 복수의 셀들로부터 판독된다. 도 3f를 다시 참조하여, 제2 워드(부분적으로 갱신된 제1 워드)를 메모리 어레이(102)에 다시 부분적으로 기록할 때, 패리티 그룹(310')에 포함된 갱신된 패리티 비트들만이 메모리 어레이(102)의 제2 복수의 셀들(이는 원래 갱신되는 데이터 비트들을 제공한다)에 다시 기록되고; 데이터 그룹(304')에 포함된 갱신된 데이터 비트들만이 메모리 어레이(102)의 제4 복수의 셀들(이는 원래 사전 갱신되는 패리티 비트들을 제공한다)에 다시 기록된다. 이와 같이, 부분 기록 사이클이 수행될 때마다(즉, 워드의 하나의 그룹이 갱신될 때마다), 갱신된 패리티 비트들을 제공하도록 구성된 셀들은 갱신될 데이터 비트들을 나타내는 셀들을 사전 갱신된 패리티 비트들을 나타내는 셀들과 교환함으로써 동적으로 변경될 수 있다. 따라서, 복수의 부분 기록 사이클들을 수행하는 경우, 셀들의 기록 횟수를 보다 균일하게 분산시킬 수 있어 셀들의 각각의 내구성을 향상시키는 데 유리할 수 있다.
도 4는 일부 실시예들에 따라 다양한 부분 갱신 단계들에서 워드(400)의 각각의 기호도들을 도시한다. 워드(400)가 메모리 어레이(도 4에서 "As-read"로 도시됨)로부터 판독될 때, 워드(400)는 패리티 그룹(401), 제1 데이터 그룹(402), 제2 데이터 그룹(404), 제3 데이터 그룹(406), 및 제4 데이터 그룹(408)을 포함하고, 데이터/패리티 그룹(401-408)의 데이터/패리티 비트들은 메모리 어레이의 각각의 셀들에 의해 존재한다. 예를 들어, 패리티 그룹(401)의 패리티 비트들은 제1 복수의 셀들에 의해 제공되고; 데이터 그룹(402)의 데이터 비트들은 제2 복수의 셀들에 의해 제공되고; 데이터 그룹(404)의 데이터 비트들은 제3 복수의 셀들에 의해 제공되고; 데이터 그룹(406)의 데이터 비트들은 제4 복수의 셀들에 의해 제공되고; 데이터 그룹(408)의 데이터 비트들은 제5 복수의 셀들에 의해 제공된다.
전술한 동작 원리에 따라, 워드(400)(예를 들어, 워드(400)의 데이터 비트들의 그룹(402)만이 갱신된다)에 대해 제1 부분 기록 사이클(즉, 제1 부분 갱신)이 수행될 때, 갱신된 데이터 비트들인 데이터 그룹(402')을 포함하는 그룹의 위치가 패리티 그룹(401)의 위치로 스와핑되고, 갱신된 패리티 비트들인 패리티 그룹(401')을 포함하는 그룹의 위치가 갱신되도록 구성되는 데이터 그룹(402)의 위치로 스와핑된다. 달리 말하면, 각각의 그룹 인덱스들은 스와핑된다. 이와 같이, 그룹(402')에 포함된 갱신된 데이터 비트들은 그에 따라 제1 복수의 셀들(데이터 그룹(402)의 데이터 비트들이 판독되는 제2 복수의 셀들 대신에)에 기록될 수 있고, 패리티 그룹(401')에 포함된 갱신된 패리티 비트들은 그에 따라 제2 복수의 셀들(패리티 그룹(401)의 패리티 비트들이 판독되는 제1 복수의 셀들 대신에)에 기록될 수 있다.
유사하게, 워드(400)(예를 들어, 워드(400)의 데이터 비트들의 그룹(404)만이 갱신된다)에 대해 제2 부분 기록 사이클이 후속해서 수행될 때, 데이터 그룹(404')에 포함된 갱신된 데이터 비트들은 그에 따라 제2 복수의 셀들(데이터 그룹(404)의 데이터 비트들이 판독되는 제3 복수의 셀들 대신에)에 기록될 수 있고, 그룹(401'')에 포함된 대응하는 갱신된 패리티 비트들은 그에 따라 제3 복수의 셀들(패리티 그룹(401')의 패리티 비트들이 판독되는 제2 복수의 셀들 대신에)에 기록될 수 있다. 워드(400)(예를 들어, 워드(400)의 데이터 그룹(406)의 데이터 비트들만이 갱신된다)에 대해 제3 부분 기록 사이클이 후속해서 수행될 때, 데이터 그룹(406')에 포함된 갱신된 데이터 비트들은 그에 따라 제3 복수의 셀들(데이터 그룹(404)의 데이터 비트들이 판독되는 제4 복수의 셀들 대신에)에 기록될 수 있고, 패리티 그룹(401''')에 포함된 대응하는 갱신된 패리티 비트들은 그에 따라 제4 복수의 셀들(패리티 그룹(401'')의 패리티 비트들이 판독되는 제3 복수의 셀들 대신에)에 기록될 수 있다. 워드(400)(예를 들어, 워드(400)의 데이터 그룹(408)에 포함된 데이터 비트들만이 갱신된다)에 대해 제4 부분 기록 사이클이 후속해서 수행될 때, 데이터 그룹(408')에 포함된 갱신된 데이터 비트들은 그에 따라 제4 복수의 셀들(데이터 그룹(408)의 데이터 비트들이 판독되는 제5 복수의 셀들 대신에)에 기록될 수 있고, 패리티 그룹(401'''')에 포함된 대응하는 갱신된 패리티 비트들은 그에 따라 제5 복수의 셀들(패리티 그룹(401''')의 패리티 비트들이 판독되는 제4 복수의 셀들 대신에)에 기록될 수 있다. 이와 같이, 제1, 제2, 제3, 제4, 및 제5 복수의 셀들의 각각은 4 개의 부분 기록 사이클들에 걸쳐 2 회 균등하게 기록된다.
도 5는 일부 실시예들에 따른 컴퓨터 시스템(500)의 블록도이다. 도 1 내지 도 4와 관련하여 기술된 하나 이상의 툴들 및/또는 엔진들 및/또는 시스템들 및/또는 동작들은 도 5의 하나 이상의 컴퓨터 시스템들(500)에 의해 일부 실시예들에서 실현된다. 컴퓨터 시스템(500)은, 버스(504) 또는 다른 상호 접속 통신 메커니즘을 통해 통신 가능하게 결합된 적어도 하나의 프로세서(501), 메모리(502), 네트워크 인터페이스(I/F)(506), 입출력(I/O) 디바이스(508), 및 저장 장치(510)를 포함한다.
일부 실시예들에서, 메모리(502)는 프로세서(501)에 의해 실행될 데이터 및/또는 명령들을 저장하기 위해 버스(504)에 결합된 랜덤 액세스 메모리(RAM) 및/또는 다른 동적 저장 디바이스 및/또는 판독 전용 메모리(ROM) 및/또는 다른 정적 저장 디바이스를 포함한다. 메모리(502)는 사용자 공간(512), 커널(514), 커널 및/또는 사용자 공간의 부분, 및 이들의 조합을 더 포함할 수 있다. 일부 실시예들에서, 메모리(502)는 또한 프로세서(501)에 의해 실행될 명령들의 실행 중에 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용된다. 다양한 실시예들에서, 메모리(502)는 단일 집적 회로 내에 포함되거나 서로 동작 가능하게 결합된 복수의 개별 메모리 디바이스들을 포함할 수 있다.
일부 실시예들에서, 자기 디스크 또는 광 디스크와 같은 저장 장치(510)는 데이터 및/또는 명령들을 저장하기 위해 버스(504)에 결합된다. I/O 디바이스(508)는 컴퓨터 시스템(500)과의 사용자 상호 작용을 가능하게 하는 입력 디바이스, 출력 디바이스 및/또는 결합된 입력/출력 디바이스를 포함한다. 입력 디바이스는 정보 및 명령을 프로세서(501)에 전달하기 위해 예를 들어 키보드, 키패드, 마우스, 트랙볼, 트랙 패드, 및/또는 커서 방향 키들을 포함한다. 출력 디바이스는 사용자에게 정보를 전달하기 위해 예를 들어 디스플레이, 프린터, 음성 합성기 등을 포함한다.
일부 실시예들에서, 도 1 내지 도 4와 관련하여 기술된 툴들 및/또는 엔진들 및/또는 시스템들의 하나 이상의 동작들 및/또는 기능성은 그러한 동작들 및/또는 기능을 수행하도록 프로그램된 프로세서(501)에 의해 실현된다. 일부 실시예들에서, 프로세서(501)는 특별히 구성된 하드웨어(예를 들어, 하나 이상의 주문형 집적 회로(ASICs))로서 구성된다. 다양한 실시예들에 따라, 프로세서(501)는 단일 집적 회로(IC) 내에 또는 다수의 통신 가능하게 결합된 IC 및/또는 개별 회로로 구현될 수 있다. 프로세서(501)는 다양한 공지된 기술들에 따라 구현될 수 있다. 일 실시예에서, 프로세서(501)는, 예를 들어, 관련 메모리에 저장된 명령들을 실행함으로써 여기에 설명된 하나 이상의 기능들 또는 프로세스들을 수행하도록 구성 가능한 하나 이상의 회로들 또는 유닛들을 포함한다. 다른 실시예들에서, 프로세서(501)는 여기에 설명된 하나 이상의 기능들 또는 프로세스들을 수행하도록 구성된 펌웨어(예컨대, 이산 로직 구성 요소들)로서 구현될 수 있다. 예를 들어, 다양한 실시예들에 따르면, 프로세서(501)는 여기에 설명된 기능들을 수행하기 위해 하나 이상의 제어기들, 마이크로프로세서들, 마이크로 제어기들, 주문형 집적 회로들(ASICs), 디지털 신호 프로세서들, 프로그램 가능한 로직 디바이스들, 필드 프로그래머블 게이트 어레이들, 이들 디바이스들 또는 구조들의 임의의 조합, 또는 다른 공지된 디바이스들 및 구조들을 포함할 수 있다.
메모리(502), 네트워크 I/F(506), 저장 장치(510), I/O 디바이스(508), 및 버스(504) 중 하나 이상은 명령들, 데이터, 설계 제약들, 설계 규칙들, 넷리스트들, 레이아웃들, 모델들 및/또는 프로세서(501)에 의한 처리를 위한 다른 파라미터들을 수신하도록 동작 가능하다.
일부 실시예들에서, 동작 및/또는 기능성은 비일시적인 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램의 기능으로서 실현된다. 적어도 하나의 실시예에서, 동작들 및/또는 기능성은 메모리(502)에 저장된 실행 가능한 명령들의 세트와 같은 프로그램의 기능으로서 실현된다. 비일시적인 컴퓨터 판독 가능한 기록 매체의 예시들은 외부/착탈식 및/또는 내부/내장형 저장 또는 메모리 유닛, 예를 들어 DVD와 같은 하나 이상의 광학 디스크, 하드 디스크와 같은 자기 디스크, ROM, RAM, 메모리 카드 등과 같은 반도체 메모리를 포함하지만, 이들로 제한되지는 않는다.
일 실시예에서, 방법은, 제1 워드를 리트리브하는(retrieving) 단계 ― 제1 워드는 제1 워드에 대응하는 복수의 패리티 비트들 및 복수의 데이터 비트들을 포함하고, 복수의 데이터 비트들은 N-1개의 그룹들을 형성하고 복수의 패리티 비트들은 N-1개의 그룹들과 상이한 제1 그룹을 형성하며, N은 2 보다 큰 양의 정수임 ― ; N-1개의 그룹들 중 첫번째 그룹의 각각의 데이터 비트들을 갱신하기 위한 요청을 수신하는 단계; 및 제2 워드를 제공하는 단계 ― 제2 워드는 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들 및 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 복수의 갱신된 패리티 비트들은 N-1개의 그룹들 중 첫번째 그룹과 동일한 그룹 인덱스를 갖는 제2 그룹을 형성함 ― 를 포함한다.
다른 실시예에서, 방법은, 메모리 어레이로부터 제1 워드를 판독하는 단계 ― 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 제1 워드에 대응하고 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 패리티 비트들의 제1 그룹 및 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수임 ― ; N-1개의 그룹들 중 첫번째 그룹의 데이터 비트들을 갱신하기 위한 부분 기록 요청을 수신하는 단계; 제2 워드를 제공하는 단계 ― 제2 워드는 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 복수의 갱신된 패리티 비트들은 패리티 비트들의 제1 그룹의 그룹 인덱스 및 N-1개의 그룹들 중 첫번째 그룹의 그룹 인덱스에 각각 N-1개의 그룹들 중 두번째 그룹의 그룹 인덱스 및 제2 그룹의 그룹 인덱스를 대응시키는 것에 의해 제2 그룹을 형성함 ― ; 및 제2 워드의 일부분을 상기 메모리 어레이에 기록하는 단계를 포함한다.
또 다른 실시예에서, 메모리 디바이스는, 제1 워드를 제공(present)하도록 구성되는 복수의 메모리 셀들; 및 복수의 메모리 셀들에 결합된 제어 로직 회로를 포함하고, 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 제1 워드에 대응하고 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 패리티 비트들의 제1 그룹 및 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수이고; 제어 로직 회로는, N-1개의 그룹들 중 첫번째 그룹의 데이터 비트들을 갱신하기 위한 요청에 응답하여, N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 복수의 갱신된 패리티 비트들을 포함하는 제2 워드를 제공하고 ― 복수의 갱신된 패리티 비트들은 제2 그룹을 형성하며 제2 워드에 대응하고, N-1개의 그룹들 중 첫번째 그룹 및 갱신된 패리티 비트들의 제2 그룹의 각각의 그룹 인덱스는 동일함 ― ; 제2 워드를 사용하여 상기 제1 워드의 일부를 갱신하도록 구성된다.
전술한 내용은 당업자가 본 개시의 양태들을 더 잘 이해할 수 있도록 몇개의 실시예들의 피처들을 개략적으로 설명한다. 당업자는 본 명세서에서 소개된 실시예들의 동일한 목적들을 수행하고 및/또는 동일한 이점들을 달성하기 위한 다른 프로세스들 및 구조물들을 설계 또는 변경하기 위한 기초로서 본 개시를 용이하게 사용할 수 있음을 이해할 수 있을 것이다. 또한, 당업자는 이러한 균등한 구성들이 본 개시의 사상 및 범위를 벗어나지 않고, 본 개시의 사상 및 범위를 벗어나지 않으면서 다양한 변경, 대체 및 변형을 가할 수 있음을 알아야 한다.
실시예들
실시예 1. 방법에 있어서,
제1 워드를 리트리브하는(retrieving) 단계 ― 상기 제1 워드는 상기 제1 워드에 대응하는 복수의 패리티 비트들 및 복수의 데이터 비트들을 포함하고, 상기 복수의 데이터 비트들은 N-1개의 그룹들을 형성하고 상기 복수의 패리티 비트들은 상기 N-1개의 그룹들과 상이한 제1 그룹을 형성하며, N은 2 보다 큰 양의 정수임 ― ;
상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 데이터 비트들을 갱신하기 위한 요청을 수신하는 단계; 및
제2 워드를 제공하는 단계 ― 상기 제2 워드는 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들 및 상기 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 상기 복수의 갱신된 패리티 비트들은 상기 N-1개의 그룹들 중 첫번째 그룹과 동일한 그룹 인덱스를 갖는 제2 그룹을 형성함 ―
를 포함하는, 방법.
실시예 2. 실시예 1에 있어서,
상기 제1 그룹 및 상기 N-1개의 그룹들 중 두번째 그룹은 동일한 그룹 인덱스를 갖는 것인, 방법.
실시예 3. 실시예 1에 있어서,
메모리 어레이로부터 상기 제1 워드를 판독하는 단계;
상기 제1 그룹 및 상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 그룹 인덱스들을 식별하는 단계; 및
상기 제1 워드의 복수의 데이터 비트들로부터 복수의 정정된 데이터 비트들을 리트리브하는 단계
를 더 포함하는, 방법.
실시예 4. 실시예 3에 있어서,
상기 제1 그룹 및 상기 N-1개의 그룹들의 각각의 태그들을 사용하여 상기 제1 그룹을 상기 N-1개의 그룹들과 구별하는 단계를 더 포함하는, 방법.
실시예 5. 실시예 4에 있어서,
상기 태그들 각각은 각각의 상기 N-1개의 그룹들의 각각의 복수의 데이터 비트들 또는 상기 제1 그룹의 상기 복수의 패리티 비트들에 부착된 복수의 비트들을 갖는 것인, 방법.
실시예 6. 실시예 5에 있어서,
상기 복수의 정정된 데이터 비트들을 리트리브하기 전에, 상기 제1 그룹의 복수의 패리티 비트들에 첨부된 태그를 제거하고 상기 제1 그룹 및 N-1개의 그룹들을 재배열하는 단계를 더 포함하는, 방법.
실시예 7. 실시예 3에 있어서,
상기 복수의 정정된 데이터 비트들로부터 상기 N-1개의 그룹들 중 첫번째 그룹의 정정된 데이터 비트들을 제거하는 단계; 및
복수의 중간 데이터 비트들을 제공하기 위해 상기 갱신된 데이터 비트들을 상기 N-1개의 그룹들 중 두번째 그룹에 삽입하는 단계
를 더 포함하는, 방법.
실시예 8. 실시예 7에 있어서,
상기 복수의 중간 데이터 비트들에 기초하여, 상기 갱신된 패리티 비트들을 제공하는 단계; 및
상기 제2 워드를 제공하기 위해 상기 갱신된 패리티 비트들을 상기 N-1개의 그룹들 중 첫번째 그룹에 삽입하는 단계
를 더 포함하는, 방법.
실시예 9. 실시예 3에 있어서,
상기 제2 그룹 및 상기 N-1개의 그룹들 중 두번째 그룹을 포함하는 상기 제2 워드의 일부를 상기 메모리 어레이에 기록하는 단계를 더 포함하는, 방법.
실시예 10. 방법에 있어서,
메모리 어레이로부터 제1 워드를 판독하는 단계 ― 상기 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 상기 제1 워드에 대응하고 상기 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 상기 패리티 비트들의 제1 그룹 및 상기 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수임 ― ;
상기 N-1개의 그룹들 중 첫번째 그룹의 상기 데이터 비트들을 갱신하기 위한 부분 기록 요청을 수신하는 단계;
제2 워드를 제공하는 단계 ― 상기 제2 워드는 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 상기 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 상기 복수의 갱신된 패리티 비트들은 상기 패리티 비트들의 제1 그룹의 그룹 인덱스 및 상기 N-1개의 그룹들 중 첫번째 그룹의 그룹 인덱스에 각각 상기 N-1개의 그룹들 중 두번째 그룹의 그룹 인덱스 및 제2 그룹의 그룹 인덱스를 대응시키는 것에 의해 상기 제2 그룹을 형성함 ― ; 및
상기 제2 워드의 일부분을 상기 메모리 어레이에 기록하는 단계
를 포함하는, 방법.
실시예 11. 실시예 10에 있어서,
상기 제1 그룹 및 상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 그룹 인덱스들을 식별하는 단계; 및
필요하다면 상기 제1 워드의 복수의 데이터 비트들로부터 정정되는 복수의 검사된 데이터 비트들을 리트리브하는 단계
를 더 포함하는, 방법.
실시예 12. 실시예 11에 있어서,
상기 제1 그룹 및 상기 N-1개의 그룹들의 각각의 태그들을 판독하여 상기 제1 그룹 및 상기 N-1개의 그룹들 중 첫번째 그룹의 적어도 각각의 그룹 인덱스들을 식별하는 단계를 더 포함하는, 방법.
실시예 13. 실시예 12에 있어서,
상기 태그들은 각각의 상기 N-1개의 그룹들의 각각의 복수의 데이터 비트들 또는 상기 제1 그룹의 상기 복수의 패리티 비트들에 부착된 복수의 비트들을 각각 갖는 것인, 방법.
실시예 14. 실시예 13에 있어서,
상기 복수의 검사된 데이터 비트들을 리트리브하기 전에, 상기 제1 그룹의 복수의 패리티 비트들에 부착된 태그를 제거하고 상기 제1 그룹 및 N-1개의 그룹들을 재배열하는 단계를 더 포함하는, 방법.
실시예 15. 실시예 11에 있어서,
상기 복수의 검사된 데이터 비트들로부터 상기 N-1개의 그룹들 중 첫번째 그룹의 검사된 데이터 비트들을 제거하는 단계; 및
복수의 중간 데이터 비트들을 제공하기 위해 상기 갱신된 데이터 비트들을 상기 N-1개의 그룹들 중 두번째 그룹에 삽입하는 단계
를 더 포함하는, 방법.
실시예 16. 실시예 15에 있어서,
상기 복수의 중간 데이터 비트들에 기초하여, 상기 갱신된 패리티 비트들을 제공하는 단계; 및
상기 제2 워드를 제공하기 위해 상기 갱신된 패리티 비트들을 상기 N-1개의 그룹들 중 첫번째 그룹에 삽입하는 단계
를 더 포함하는, 방법.
실시예 17. 메모리 디바이스에 있어서,
제1 워드를 제공(present)하도록 구성되는 복수의 메모리 셀들; 및
상기 복수의 메모리 셀들에 결합된 제어 로직 회로
를 포함하고,
상기 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 상기 제1 워드에 대응하고 상기 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 상기 패리티 비트들의 제1 그룹 및 상기 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수이고;
상기 제어 로직 회로는,
상기 N-1개의 그룹들 중 첫번째 그룹의 데이터 비트들을 갱신하기 위한 요청에 응답하여, 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 복수의 갱신된 패리티 비트들을 포함하는 제2 워드를 제공하고 ― 상기 복수의 갱신된 패리티 비트들은 제2 그룹을 형성하며 상기 제2 워드에 대응하고, 상기 N-1개의 그룹들 중 첫번째 그룹 및 상기 갱신된 패리티 비트들의 제2 그룹의 각각의 그룹 인덱스는 동일함 ― ;
상기 제2 워드를 사용하여 상기 제1 워드의 일부를 갱신하도록
구성되는 것인, 메모리 디바이스.
실시예 18. 실시예 17에 있어서,
상기 패리티 비트들의 제1 그룹 및 상기 N-1개의 그룹들 중 두번째 그룹의 각각의 그룹 인덱스는 동일한 것인, 메모리 디바이스.
실시예 19. 실시예 17에 있어서,
상기 제어 로직 회로는 또한,
상기 제1 그룹 및 상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 그룹 인덱스를 식별하고;
필요하다면, 상기 제1 워드의 복수의 데이터 비트들로부터 정정되는 복수의 검사된 데이터 비트들을 리트리브하고;
상기 복수의 검사된 데이터 비트들로부터 N-1개의 그룹들 중 첫번째 그룹의 검사된 데이터 비트들을 제거하고;
복수의 중간 데이터 비트들을 제공하기 위해 상기 갱신된 데이터 비트들을 상기 N-1개의 그룹들 중 두번째 그룹에 삽입하도록
구성되는 것인, 메모리 디바이스.
실시예 20. 실시예 19에 있어서,
상기 제어 로직 회로는 또한,
상기 복수의 중간 데이터 비트들에 기초하여, 상기 갱신된 패리티 비트들을 제공하고;
상기 제2 워드를 제공하기 위해 상기 갱신된 패리티 비트들을 상기 N-1개의 그룹들 중 첫번째 그룹에 삽입하도록
구성되는 것인, 메모리 디바이스.

Claims (10)

  1. 방법에 있어서,
    제1 워드를 리트리브하는(retrieving) 단계 ― 상기 제1 워드는 상기 제1 워드에 대응하는 복수의 패리티 비트들 및 복수의 데이터 비트들을 포함하고, 상기 복수의 데이터 비트들은 N-1개의 그룹들을 형성하고 상기 복수의 패리티 비트들은 상기 N-1개의 그룹들과 상이한 제1 그룹을 형성하며, N은 2 보다 큰 양의 정수임 ― ;
    상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 데이터 비트들을 갱신하기 위한 요청을 수신하는 단계; 및
    제2 워드를 제공하는 단계 ― 상기 제2 워드는 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들 및 상기 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 상기 복수의 갱신된 패리티 비트들은 상기 N-1개의 그룹들 중 첫번째 그룹과 동일한 그룹 인덱스를 갖는 제2 그룹을 형성함 ―
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 그룹 및 상기 N-1개의 그룹들 중 두번째 그룹은 동일한 그룹 인덱스를 갖는 것인, 방법.
  3. 제1항에 있어서,
    상기 요청을 수신하는 단계 이후에,
    메모리 어레이로부터 상기 제1 워드를 판독하는 단계;
    상기 제1 그룹 및 상기 N-1개의 그룹들 중 첫번째 그룹의 각각의 그룹 인덱스들을 식별하는 단계; 및
    상기 제1 워드의 복수의 데이터 비트들로부터 복수의 정정된 데이터 비트들을 리트리브하는 단계
    를 더 포함하는, 방법.
  4. 제3항에 있어서,
    상기 판독하는 단계는 상기 제1 그룹 및 상기 N-1개의 그룹들의 각각의 태그들을 사용하여 상기 제1 그룹을 상기 N-1개의 그룹들과 구별하는 단계를 포함하는 것인, 방법.
  5. 제4항에 있어서,
    상기 태그들 각각은 각각의 상기 N-1개의 그룹들의 각각의 복수의 데이터 비트들 또는 상기 제1 그룹의 상기 복수의 패리티 비트들에 부착된 복수의 비트들을 갖는 것인, 방법.
  6. 제3항에 있어서,
    상기 복수의 정정된 데이터 비트들로부터 상기 N-1개의 그룹들 중 첫번째 그룹의 정정된 데이터 비트들을 제거하는 단계; 및
    복수의 중간 데이터 비트들을 제공하기 위해 상기 갱신된 데이터 비트들을 상기 N-1개의 그룹들 중 두번째 그룹에 삽입하는 단계
    를 더 포함하는, 방법.
  7. 제6항에 있어서,
    상기 복수의 중간 데이터 비트들에 기초하여, 상기 갱신된 패리티 비트들을 제공하는 단계; 및
    상기 제2 워드를 제공하기 위해 상기 갱신된 패리티 비트들을 상기 N-1개의 그룹들 중 첫번째 그룹에 삽입하는 단계
    를 더 포함하는, 방법.
  8. 제3항에 있어서,
    상기 제2 워드를 제공하는 단계 이후에,
    상기 제2 그룹 및 상기 N-1개의 그룹들 중 두번째 그룹을 포함하는 상기 제2 워드의 일부를 상기 메모리 어레이에 기록하는 단계를 더 포함하는, 방법.
  9. 방법에 있어서,
    메모리 어레이로부터 제1 워드를 판독하는 단계 ― 상기 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 상기 제1 워드에 대응하고 상기 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 상기 패리티 비트들의 제1 그룹 및 상기 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수임 ― ;
    상기 N-1개의 그룹들 중 첫번째 그룹의 상기 데이터 비트들을 갱신하기 위한 부분 기록 요청을 수신하는 단계;
    제2 워드를 제공하는 단계 ― 상기 제2 워드는 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 상기 제2 워드에 대응하는 복수의 갱신된 패리티 비트들을 포함하고, 상기 복수의 갱신된 패리티 비트들은 상기 패리티 비트들의 제1 그룹의 그룹 인덱스 및 상기 N-1개의 그룹들 중 첫번째 그룹의 그룹 인덱스에 각각 상기 N-1개의 그룹들 중 두번째 그룹의 그룹 인덱스 및 제2 그룹의 그룹 인덱스를 대응시키는 것에 의해 상기 제2 그룹을 형성함 ― ; 및
    상기 제2 워드의 일부분을 상기 메모리 어레이에 기록하는 단계
    를 포함하는, 방법.
  10. 메모리 디바이스에 있어서,
    제1 워드를 제공(present)하도록 구성되는 복수의 메모리 셀들; 및
    상기 복수의 메모리 셀들에 결합된 제어 로직 회로
    를 포함하고,
    상기 제1 워드는 N-1개의 그룹들을 형성하는 복수의 데이터 비트들, 및 상기 제1 워드에 대응하고 상기 N-1개의 그룹들에 부착된 제1 그룹을 형성하는 복수의 패리티 비트들을 포함하고, 상기 패리티 비트들의 제1 그룹 및 상기 데이터 비트들의 N-1개의 그룹들은 각각 그룹 인덱스와 연관되며, N은 2 보다 큰 양의 정수이고;
    상기 제어 로직 회로는,
    상기 N-1개의 그룹들 중 첫번째 그룹의 데이터 비트들을 갱신하기 위한 요청에 응답하여, 상기 N-1개의 그룹들 중 두번째 그룹을 형성하는 갱신된 데이터 비트들, 및 복수의 갱신된 패리티 비트들을 포함하는 제2 워드를 제공하고 ― 상기 복수의 갱신된 패리티 비트들은 제2 그룹을 형성하며 상기 제2 워드에 대응하고, 상기 N-1개의 그룹들 중 첫번째 그룹 및 상기 갱신된 패리티 비트들의 제2 그룹의 각각의 그룹 인덱스는 동일함 ― ;
    상기 제2 워드를 사용하여 상기 제1 워드의 일부를 갱신하도록
    구성되는 것인, 메모리 디바이스.
KR1020180150998A 2017-11-29 2018-11-29 신규 메모리 디바이스 KR102142602B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762592189P 2017-11-29 2017-11-29
US62/592,189 2017-11-29
US15/965,883 2018-04-28
US15/965,883 US10599517B2 (en) 2017-11-29 2018-04-28 Memory device

Publications (2)

Publication Number Publication Date
KR20190063448A KR20190063448A (ko) 2019-06-07
KR102142602B1 true KR102142602B1 (ko) 2020-08-10

Family

ID=66442146

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180150998A KR102142602B1 (ko) 2017-11-29 2018-11-29 신규 메모리 디바이스

Country Status (5)

Country Link
US (3) US10599517B2 (ko)
KR (1) KR102142602B1 (ko)
CN (1) CN109840162B (ko)
DE (1) DE102018124836A1 (ko)
TW (1) TWI677877B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10599517B2 (en) * 2017-11-29 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Memory device
JP2021047527A (ja) * 2019-09-17 2021-03-25 キオクシア株式会社 メモリシステム
TWI738390B (zh) * 2020-06-19 2021-09-01 群聯電子股份有限公司 資料保護方法、記憶體儲存裝置及記憶體控制電路單元
US11681578B2 (en) * 2021-02-16 2023-06-20 Micron Technology, Inc. Apparatuses, systems, and methods for multi-pump error correction

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160162359A1 (en) 2014-12-09 2016-06-09 Marvell Israel (M.I.S.L) Ltd. System and method for performing simultaneous read and write operations in a memory
US20170131907A1 (en) 2014-01-14 2017-05-11 Dell International L.L.C. I/o handling between virtualization and raid storage
US20170286216A1 (en) 2016-04-01 2017-10-05 Intel Corporation Energy efficient read/write support for a protected memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0763283B1 (en) * 1995-04-03 2002-10-02 Matsushita Electric Industrial Co., Ltd. Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code
TWI277869B (en) 2005-08-23 2007-04-01 Via Tech Inc Architecture and method for storing data
US7876516B2 (en) * 2009-01-09 2011-01-25 International Business Machines Corporation Rewrite-efficient ECC/interleaving for multi-track recording on magnetic tape
KR101854954B1 (ko) * 2011-07-29 2018-05-04 샌디스크 테크놀로지스 엘엘씨 치환 소행렬의 합을 사용하는 체크섬
WO2014205590A1 (en) * 2013-06-24 2014-12-31 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors
WO2015046645A1 (en) 2013-09-27 2015-04-02 Inha-Industry Partnership Institute Deduplication of parity data in ssd based raid systems
US10599517B2 (en) * 2017-11-29 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170131907A1 (en) 2014-01-14 2017-05-11 Dell International L.L.C. I/o handling between virtualization and raid storage
US20160162359A1 (en) 2014-12-09 2016-06-09 Marvell Israel (M.I.S.L) Ltd. System and method for performing simultaneous read and write operations in a memory
US20170286216A1 (en) 2016-04-01 2017-10-05 Intel Corporation Energy efficient read/write support for a protected memory

Also Published As

Publication number Publication date
US20210224154A1 (en) 2021-07-22
US20200151057A1 (en) 2020-05-14
CN109840162B (zh) 2022-08-09
CN109840162A (zh) 2019-06-04
US10599517B2 (en) 2020-03-24
US11556414B2 (en) 2023-01-17
US10970167B2 (en) 2021-04-06
KR20190063448A (ko) 2019-06-07
DE102018124836A1 (de) 2019-05-29
TWI677877B (zh) 2019-11-21
TW201926357A (zh) 2019-07-01
US20190163568A1 (en) 2019-05-30

Similar Documents

Publication Publication Date Title
KR102142602B1 (ko) 신규 메모리 디바이스
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
JP5984989B2 (ja) オンチップのnand型フラッシュメモリおよびその不良ブロック管理方法
CN108694017B (zh) 存储器***及其操作方法
JP5658128B2 (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US9223648B2 (en) Memory storage device, memory controller thereof, and method for processing data thereof
CN109799950B (zh) 用于中间存储的适应性管理的存储设备和方法
CN101937373A (zh) 比特错误阈值和重映射存储装置
KR20120114366A (ko) 비트 값들의 저장된 총계를 이용하여 데이터 에러들을 보정하는 시스템 및 방법
KR20170059219A (ko) 메모리 장치, 메모리 시스템 및 메모리 장치의 복구 검증 방법
KR20130027138A (ko) 에러 정정 방법 및 이를 이용하는 메모리 장치
US10861572B2 (en) Memory device
CN110727398B (zh) 存储器***及其操作方法
US9437327B2 (en) Combined rank and linear address incrementing utility for computer memory test operations
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
US20200364118A1 (en) Optimized neural network data organization
JP2018163707A (ja) 半導体記憶装置及びそのリード制御方法
KR20210014564A (ko) 비휘발성 메모리에서 에러 정정을 위한 패스트 페일 지원
US11264109B2 (en) Memory device
US11216338B2 (en) Storage device that performs state shaping of data
CN104681095A (zh) 储存装置及其操作方法
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN112216328A (zh) 具有低复杂度解码的存储器***及其操作方法
CN111128289A (zh) 扫描链技术以及利用扫描链结构的方法
CN115248748A (zh) 执行元数据管理的存储装置及操作该存储装置的方法

Legal Events

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