KR101591694B1 - 가변 저항 메모리 셀들을 위한 ecc 관리 - Google Patents

가변 저항 메모리 셀들을 위한 ecc 관리 Download PDF

Info

Publication number
KR101591694B1
KR101591694B1 KR1020140021730A KR20140021730A KR101591694B1 KR 101591694 B1 KR101591694 B1 KR 101591694B1 KR 1020140021730 A KR1020140021730 A KR 1020140021730A KR 20140021730 A KR20140021730 A KR 20140021730A KR 101591694 B1 KR101591694 B1 KR 101591694B1
Authority
KR
South Korea
Prior art keywords
ecc
memory cell
level
memory cells
resistance
Prior art date
Application number
KR1020140021730A
Other languages
English (en)
Other versions
KR20140107133A (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 KR20140107133A publication Critical patent/KR20140107133A/ko
Application granted granted Critical
Publication of KR101591694B1 publication Critical patent/KR101591694B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • G11C17/165Memory cells which are electrically programmed to cause a change in resistance, e.g. to permit multiple resistance steps to be programmed rather than conduct to or from non-conduct change of fuses and antifuses

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Semiconductor Memories (AREA)

Abstract

데이터 저장 디바이스는 적어도 한 가변 저항 메모리 셀에서 소정의 임계값으로부터 변동을 확인하고 적어도 한 가변 저항 메모리 셀에 대한 제 1 오류정정 코드(ECC) 레벨을 제 2 ECC 레벨로 업그레이드하게 구성된 적어도 제어기와 함께 구축되어 동작될 수 있다.

Description

가변 저항 메모리 셀들을 위한 ECC 관리{ECC MANAGEMENT FOR VARIABLE RESISTANCE MEMORY CELLS}
US 2012-0144270 A1
여러 실시예들은 일반적으로 가변 저항 메모리 셀들을 갖는 데이터 저장 디바이스의 관리에 관한 것일 수 있다.
일부 실시예들에 따라, 데이터 저장 디바이스는 적어도 한 가변 저항 메모리 셀에서 소정의 임계값으로부터 변동을 확인하고 적어도 한 가변 저항 메모리 셀에 대한 제 1 오류정정 코드(ECC) 레벨을 제 2 ECC 레벨로 업그레이드하게 구성된 제어기를 적어도 가질 수 있다.
도 1은 여러 실시예들에 따라 구축되어 동작되는 데이터 저장 디바이스의 블록도이다.
도 2는 도 1의 데이터 저장 디바이스에서 사용될 수 있는 메모리 어레이의 부분의 블록도이다.
도 3은 일부 실시예들에 따라 구축되어 동작되는 데이터 저장 디바이스의 예시적인 부분의 블록도이다.
도 4는 예시적 메모리 셀에 대한 다수의 프로그램된 상태 분포들을 그래픽적으로 나타낸 것이다.
도 5는 여러 실시예들에 따라 구축된 데이터 저장 디바이스의 예시적 제어회로부의 블록도이다.
도 6은 일부 실시예들에 따라 동작되는 예시적 제어회로의 블록도이다.
도 7은 여러 실시예들에 따라 구축되어 동작되는 예시적 제어회로의 블록도이다.
도 8은 일부 실시예들에 따라 수행되는 예시적 사전 대비적 메모리 셀 관리 루틴을 도시한 것이다.
저장된 데이터를 더 정확하게 그리고 신속하게 액세스할 수 있는 감소된 폼 팩터들(form factor) 및 증가된 데이터 저장 용량을 가진 데이터 저장 디바이스들에의 부단한 산업 역점은 데이터 기입 및 판독 동안에 자기 차폐 같은 다양한 회전형 데이터 저장 환경들의 물질 및 동작 특징들을 한계에 이르게 하였다. 고체-상태 메모리 셀들의 급증은 더 큰 데이터 저장이 모바일 및 하이브리드 데이터 저장 디바이스들에서 이용될 수 있게 하기 위해 감소된 파워 소비, 크기, 열 발생, 및 진동 민감도를 제공할 수 있었다. 데이터 저장 디바이스가 회전형 데이터 저장에의 스트레스들을 최소화하기 위해 하나 이상의 고체-상태 메모리 셀들을 포함할 수 있지만, 고체-상태 메모리는 저장된 데이터의 정확성 및 액세스 속도들을 위태롭게 하는 동작 상황들이 일어날 수 있다.
한 이러한 상황은 서로 다른 저항 상태들로서 데이터를 저장하는 메모리 셀들에서 저항 변화들(variation)일 수 있다. 소정의 임계값들로부터 저항의 일탈(deviation)은 저장된 논리 값의 확정없이 메모리 셀들이 반복적으로 판독됨에 따라 데이터 오류들 및 데이터 액세스 시간들이 증가되게 할 수 있다. 테스트, 오류 검출, 및 오류정정 코드들(ECC)이 이를테면 리드-솔로몬, 체크섬, 리드-뮬러, 패리티, 콘볼루션, 및 바이너리 골레이와 같은 다양한 형태들로 제안되어 있지만, 이러한 행위들은 처리 오버헤드 및 일시적 메모리 셀 비활성화 면에서 비용이 들 수 있다. 따라서, 의도하지 않은 저항 변화들로부터 기인하는 것들같은 데이터 저장 디바이스들에서 현존하는 오류 및 미래에 오류들을 더 효율적으로 관리하는 것에 연관된 계속되는 산업 목적이 있다.
따라서, 여러 실시예들은 일반적으로, 적어도 한 가변 저항 메모리 셀에서 소정의 임계값으로부터 변동을 확인하고 적어도 한 가변 저항 메모리 셀에 대한 제 1 오류정정 코드(ECC) 레벨을 제 2 ECC 레벨로 업그레이드하게 구성된 적어도 제어기와 함께 구축된 데이터 저장 디바이스들에 관한 것일 수 있다. 소정의 저항 임계값의 확인은 데이터 액세스 신뢰성 또는 속도에 악영향을 미침이 없이 저장 디바이스의 처리 용량들을 최적화하여 사용할 수 있게 하는 사전 대비적(proactive) 또는 반응적(reactive) 방식으로 행해질 수 있다. 데이터 가용성, 액세스 속도들, 및 시스템 처리 오버헤드에 악영향을 미침이 없이 점진적으로 더 확고한 ECC 레벨들을 효율적으로 관리하는 능력은 일탈된 동작 특징들을 가진 메모리 셀들이 존재함에도 불구하고 한결같은 수행을 제공할 수 있다.
가변 저항 고체-상태 메모리 셀에는 다양한 비제한적 데이터 저장 환경들에서 많은 서로 다른 ECC 수법들 중 하나가 이용되고 할당될 수 있다. 도 1은 여러 실시예들이 실시될 수 있는 예시적 데이터 저장 디바이스(100)의 블록도이다. 일부 실시예들에서 고체-상태 드라이브(SSD)로서 구성되는 디바이스(100)는 배선, 인터페이스들, 버스들, 및 멀티플렉서들같은 비제한적인 다양한 전기적 상호연결들을 통해 연결될 수 있는 상위 레벨 제어기(102) 및 비휘발성 데이터 저장 어레이(104)를 갖는다. 제어기(102)는 저장 어레이(104)와 저장 디바이스(100) 내부 또는 외부에 있는 호스트 디바이스 간에 사용자 데이터가 전송될 수 있게 하기 위해 사용될 수 있다.
일부 실시예들에서, 제어기(102)는 적어도 한 인터페이스 회로에서 데이터를 버퍼하여 어레이(104)와 호스트 디바이스 간에 전송을 미룰 수 있는 프로그램가능 마이크로제어기이다. 저장 디바이스(100)의 각종의 동작 측면들을 동시에 제어하지만 저장 디바이스(100) 요소의 임의의 부분은 물리적으로 또는 논리적으로 없을 수도 있기 때문에 제어기(102) 및 저장 어레이(104)의 위치는 도 1에 도시된 동시적인 존재로 제한되지 않는다. 즉, 어느 한 요소가 저장 어레이(104) 내에서 예정 및 비-예정된 동작들을 가능하게 하면서도 이를테면 적합한 프로토콜로 액세스되는 네트워크를 경유하여 저장 디바이스(100) 외부에 위치될 수 있기 때문에, 제어기(102) 및 저장 어레이(104)가 물리적으로 존재할 필요는 없다. 유사하게, 예정되고 요망될 때 선택적으로 이용되게 추가의 외부 제어기들 및 저장 어레이들이 저장 디바이스(100) 내부 또는 외부에 있을 수 있다.
도 2는 일반적으로, 도 1에 디바이스(100)같은 데이터 저장 디바이스에서 사용될 수 있는 예시적인 비휘발성 저장 어레이(120)의 부분의 블록도이다. 교차점 어레이로서 특징지워질 수 있는 방위로 전기적 경로들(124, 126), 이를테면 비트 라인 및 소스 라인의 중첩에 대응하는 행들 및 컬럼들로 다수의 비휘발성 메모리 셀들(122)이 배열된다. 하나 이상의 쓰기/판독 회로들(128, 130)은 섹터들(132), 페이지들(134), 블록들, 및 가비지 수거(garbage collection) 유닛들로 배열되는 선택된 메모리 셀들(122)에 및 이로부터 데이터가 기입되고 판독되는 것을 개별적으로 혹은 동시에 제어할 수 있다. 이러한 제어는 데이터 액세스들을 신속히 처리하기 위해 복수의 셀들, 이를테면 전체 행, 페이지, 및 블록에 관하여 행해질 수 있다.
복수의 메모리 셀들(122)은 제어 라인들(126)을 통해 X(행) 쓰기/판독 회로(128)에 그리고 제어 라인들(124)을 통해 Y(컬럼) 쓰기/판독 회로(130)에 결합되어 소정 수의 메모리 셀들(122)에 기입, 재기입, 및 판독 동작들이 개별적으로 또는 일괄하여 수행될 수 있게 된다. 쓰기/판독 회로들(128, 130)은 일부 실시예들에서 하나 이상의 유형의 고체-상태 메모리 셀에 맞춘 전압들, 저항들, 및 펄스폭들과 같은 기준 파라미터들을 제공하게 구성될 수 있다. 즉, 서로 다른 섹션들의 메모리, 이를테면 서로 다른 페이지들(134) 또는 블록들의 메모리는, 각각이 데이터를 저장하게 동작하지만 판독 또는 기입 출력을 논리 상태로 정확하게 전환하기 위해 쓰기/판독 회로들(128, 130)에 의해 제공되는 서로 다른 기준 파라미터들에 상응하는 서로 다른 유형들의 메모리 셀들을 갖게 물리적으로 및 논리적으로 구성될 수 있다.
비제한적인 예시적인 동작에서, 쓰기/판독 회로들(128, 130)은 예정 또는 비예정된 사용자 및 오버헤드 시스템 동작들을 위해 메모리 셀들의 페이지(134) 또는 유닛(132)에의 액세스를 동시에 제공할 수 있다. 하나 이상의 테스트 회로들(136, 138)은 평가 회로(140)에 의해 모니터, 기록, 및 평가되는 행 및 컬럼 테스트 능력들을 제공할 수 있다. 테스트 회로들(136, 138)은 셀 결함들의 하나 이상의 서로 다른 유형들, 동작 파라미터들, 및 메모리 유형들을 확인하고 구별하기 위해 하나 이상의 정동작 전류(quiescent current)를 선택된 메모리 셀들(122)에 통과시키는 것을 특징으로 하는 테스트 모드에서 사용자 액세스를 위해 온라인일 수 있거나 아닐 수 있는 하나 이상의 메모리 셀들(122) 및 페이지들(134)의 메모리를 소정의 상태들, 이를테면 공통의 논리 및 저항값에 놓이게 하도록 구성될 수 있다. 즉, 단일의 메모리 셀(122) 또는 더 많은 셀들이 동시에 또는 연속적으로 오프라인에서 취해지고, 평가 회로(140)에서 로그(log) 및 평가되는 다양한 이력(biographical), 동작, 및 결함 특징들을 판정하기 위해 복수의 테스트 전류들이 셀(들)(122)을 통과되게 하기 위해서 테스트 회로들(136, 138)에 의해 테스트 모드에 설정될 수 있다.
이에 따라, 평가 회로(140)는 메모리 셀들(122)이 데이터 저장 디바이스(120)에서 무엇을 그리고 어떻게 동작하는지를 판정하기 위해 쓰기/판독(128, 130) 회로들 뿐만 아니라 테스트 회로들(136, 138)의 동작을 지휘할 수 있다. 일부 실시예들에서, 평가 회로(140)는 사용자 데이터가 기입되기에 앞서, 메모리 셀들(122)의 일부 또는 전부의 평가 및 테스트를 행하여, 나중에 이용될 수 있는 기준선(baseline) 데이터를 제공할 수 있다. 또한, 여러 실시예들은 여러 메모리 셀들(122)의 동작 특징들의 테스트들 및 평가들을 주기적으로 그리고 산발적으로 행할 수 있다. 이러한 주기적 테스트는 저항 변동들같은 다양한 동작 상황들을 확인하기 위해 이를테면 낮은 시스템 처리 및 아이들 시간들과 같은 소정의 및 위급 시간들 동안에 행해질 수 있다.
여러 메모리 셀들(122) 및 그룹들의 셀들(132)을 테스트하는 능력을 갖고, 평가 회로(140)는 메모리 셀 수행에서 확인된 정적 및 동적 변화들에 적응할 수 있다. 그러나, ECC 할당을 통해 하나 이상의 메모리 셀들(122)을 테스트 및 정정하기 위해 시스템 자원들의 사용은 특히 초당 수 만 및 수 십만번 ECC를 액세스할 수 있는 최신의 데이터 저장 시스템들에서 상당량의 시스템 자원들을 차지할 수 있다. 또한, 메모리 셀(122) 변동들에 대해 정정하는 반응적인 특성은 높은 데이터 신뢰성 및 액세스 속도들을 보장할만큼 충분히 신속하게 행해지지 않을 수도 있다. 이에 따라, 평가 회로(140)는 메모리 셀들(122)을 확인된 임박한 변동들에 예측적으로 적응할 수 있게 하는 다양한 능력들을 갖고 구성될 수 있다.
도 3은 여러 실시예들에 따라 데이터 저장 디바이스의 예시적 제어부(150)의 블록도이다. 제어부(150)는 제어회로(158)를 통해 개별적으로 그리고 일괄적으로 동작되는 복수의 서로 다른 메모리 티어들(tier)(152, 154, 156)을 갖는다. 여러 실시예들에서, 여러 메모리 티어들은 서로 다른 메모리 셀 유형들에 대응한다. 제 1 메모리 티어(152)는 도시된 프로그램가능 금속화 셀(PMC) 요소(140) 중 어느 것으로 구축되어 동작될 수 있다. PMC 요소(160)는 상부 전극(162) 및 하부 전극(164), 금속층(166), 전해질층(168), 및 유전체층(170)으로 형성될 수 있다. 제어회로(158)는 제 1 전극(162)과 제 2 전극(164) 간에 상대적 전압 전위를 조절하여 PMC 요소(160)를 통해 기입 전류(172)가 통과하게 함으로써 셀의 저항을 고 저항에서 제 1 소정의 논리 상태, 이를테면 1에 대응할 수 있는 저 저항으로 변경하는 필라멘트(174)를 형성하기 위해 사용될 수 있다.
필라멘트(174)는 금속층(166)으로부터 이온들과 하부 전극(164)으로부터 전자들의 이주에 의해 금속층(166)과 하부 전극(164) 간에 전기적 도전성 경로를 확립한다. 유전체층(170)은 결과로 나타난 필라멘트(174)의 위치를 제어하기 위해 하부 전극(164)으로부터 전자 이주의 작은 영역을 집중시킨다. PMC 요소(160)를 통해 후속하여 반대되는 제 2 방향으로 기입 전류의 인가는 이온들 및 전자들을 각각의 전극들(162, 164)로 다시 이주하게 하여 PMC 요소(160)를 상이한 제 2 소정의 논리 상태, 이를테면 0에 대응하는 자신의 초기 고 전기적 저항으로 재설정한다. 대안적으로, 160으로 나타낸 것과 유사하게 구축된 PMC 요소들이 제어회로(158)에 의해 선택적으로 제공되는 서로 다른 크기들 및/또는 펄스폭들의 단극성(unipolar) 프로그래밍 전류들을 사용하여 프로그램될 수 있다.
여러 실시예들에 따라 데이터 저장 어레이에서 사용될 수 있는 또 다른 비배타적 유형의 고체-상태 메모리가 예시적 상변화 랜덤 액세스 메모리(PCRAM) 요소(180)에 의해 제공되는 것으로서 제 2 메모리 티어(154)가 도시되었다. 상변화 요소(180)는 상부 전극(184)과 하부 전극(186) 사이에 배치된 상변화층(182)을 갖는다. 요구되거나 제한하는 것은 아니지만, 일부 실시예들에서, 상변화층(182)은 Ge2Sb2Te5(GST) 또는 In-Ge-Te로 형성되나, 상변화층(182)은 주기율표의 VI족의 다결정 칼코게나이드 물질, 이를테면 텔루륨(Te) 및 셀레늄(Se)으로 형성될 수 있다.
층(182)을 비교적 고 저항 비정질상(amorphous phase)에 놓이게 하기 위해서, 층(182)을 이의 용융 온도 이상으로 가열하기 위해 전극들(184, 186)에 걸쳐 상당히 높은 전압 전위가 인가된다. 전압은 비교적 첨예한 냉각 천이를 제공하기 위해서 신속하게 제거되는데, 이것은 켄치 프로세스(quenching process)라 지칭될 수 있다. 이러한 경우에, 원자들은 어레이를 결정질 격자 구조로 완전히 완화(relax)시킬 만큼 충분한 시간을 갖지 않을 수 있고, 그럼으로써 준안정(metastable) 비정질상 및 고 저항으로 끝날 수 있다.
도시된 바와 같이, 상변화층(182)은 요소(180)를 통한 비교적 낮은 크기 및 더 긴 기간의 적합한 전류(188)의 통과에 의해 야기되는 주울 가열에 따라 결정화된 상(phase)으로 프로그램될 수 있다. 인가된 펄스는 층의 온도를 이의 유리 천이 온도 이상으로 그리고 이의 용융 온도 미만이 되게 높이고, 온도를 주변 레벨까지 다시 점차적으로 감소하게 구성된다. 이러한 온도 구배(gradient)는 일반적으로 물질이 결정화하기에 충분한 체류 시간을 제공할 것이다. PCRAM 요소(180)의 프로그래밍 동작에 있어서, 층(182)을 각각의 비정질상 및 결정질상에 놓이게 하기 위한 데이터 기입 전류들은 둘 다 공통의 방향(균일한 극성)(188)으로 인가될 수 있는데, 이것은 또한 일부 데이터 저장 어레이들에선 최적화된 데이터 프로그래밍 수행을 제공할 수 있다.
동일 유형들의 고체-상태 메모리가 복수의 서로 다른 메모리 티어들에서 사용될 수 있으나, 도 3에 도시된 비제한적 실시예는 제 3 메모리 티어(156)에서 단독으로 혹은 복수로 이용되는 저항성 랜덤 액세스 메모리(RRAM) 요소(190)를 갖는다. RRAM 요소(190)는 개재된 산화물층(196)에 의해 분리되는 서로 대향한 금속 또는 금속 합금 전극층들(192, 194)을 갖는다. 제 1의 고 저항으로 프로그램된 상태는 산화물층(196)의 명목 전기적 저항에 의해 확립된다. 요소(190)에 걸쳐 선택된 방향으로 적합한 기입 전압 전위 및/또는 기입 전류의 인가는 산화물층(196)을 통한 전극층(192)으로부터 금속 이주와 하나 이상의 전기적 도전성 금속화 필라멘트들(198)의 형성을 유발할 수 있다.
일부 실시예들에서, 산화물층(196)은 누설 전류 및 낮은 프로그래밍 전류를 완화시킬 수 있는 서로 다른 물질들의 적층으로서 구성된다. 비제한적 예로서, 비대칭 TaO2 -x 및 Ta2O5 -x은 서로 다른 두께들을 가지며 산화물 적층을 형성할 수 있다. 이러한 비대칭 산화물 적층은 최적화된 내구성, 데이터 유지(retention), 및 확장가능한(scalable) 액세스 속도를 나타낼 수 있고 무-트랜지스터(transistorless) 및 무-다이오드(diodeless) 교차점 어레이, 이를테면 도 2의 어레이(120)에서 액세스될 수 있다.
또한, 여러 실시예들은 고 및 저 저항성 상태들을 형성하기 위해 반 데르 발스 힘에 의해 이동되는 탄소 나노튜브들의 부직포 매트릭스를 채용하는 나노튜브 랜덤 액세스 메모리(NRAM)와 같은 다른 저항성 메모리 유형들을 사용할 수도 있다. NRAM의 크기 및 확장성(scalability)은 스위칭 디바이스 및 메모리 셀같은 다양한 서로 다른 메모리 어레이 응용들에서 메모리가 사용될 수 있게 한다. 또한, 데이터 판독 및 데이터 기입에 연관된 낮은 액세스 전류들은 NRAM이 개별적으로 혹은 그외 다른 저항성 메모리 유형들과 조합하여 이용될 수 있게 함으로써 제어부(150)의 각종의 메모리 티어들(152, 154, 156)에 대해 다양한 데이터 저장 능력들을 제공한다.
이러한 필라멘트들(198)은 일반적으로 요소(190)의 특징적 저항을 낮추고 서로 다른 논리 상태들에 대응할 수 있는 서로 다른 고 및 저 저항 상태들을 제공하게 동작한다. 요소(190)의 프로그램된 상태를 고 저항 상태로 되돌아가게 하기 위해서, 필라멘트(198)를 해체하는 방향으로 적합한 기입 전압 전위 및/또는 전류가 전극들(192, 194) 간에 인가된다. 필라멘트(198)의 생성 및 이후에 제거는 30㎂ 또는 미만의 기입 전류로선 10ns 미만일 수 있는데, 이것은 단독으로 혹은 그외 다른 유형들의 고체-상태 메모리와 조합하여 구현되고 요소(190)의 비교적 빠른 프로그래밍 시간 및 낮은 프로그래밍 전류를 최대화하는, 사용자 데이터, 메타데이터, 및 예비 셀들과 같은 동작 상황들에 할당됨으로써 데이터 저장 어레이 수행을 최적화할 수 있다.
복수의 서로 다른 메모리 티어들의 구성은, 각각의 메모리 티어들(152, 154, 156)이 RRAM, PCRAM, 및 PCM같은 서로 다른 메모리 유형들을 가지지만 제어회로(158)가 데이터 저장 수행을 최적화하기 위해 선택적으로 이용할 수 있는, 이를테면 메타데이터 그리고 사용자 데이터 저장과 같은, 유사한 메모리 셀 기능들을 갖는 정교한 데이터 관리 수법들을 제어회로(158)가 채용하게 할 수 있다. 예를 들면, 상변화 메모리 셀들로서 구축되는 제 1 메모리 티어(152)에 초기에 저장된 데이터는 용장도 또는 재배치를 위해 제 2 메모리 티어(154)의 RRAM 메모리 셀들에 옮겨질 수 있다.
또한, 저장될 고체-상태 메모리 셀 데이터의 유형을 제어하는 능력은 각종의 메모리 티어들이 저항 변화들과 같은, 반응적 및 사전 대비적으로 확인된 메모리 셀의 동작상의 일탈들에 맞추어 적응하여 사용될 수 있게 한다. 그러나, 서로 다른 유형들의 메모리 셀들의 사용은 추가적으로, 셀 저항들에 변동들에 대한 메모리 어레이의 적응성을 최대화하기 위해 적어도 제어회로(158)에 의해 동시에 관리되는 서로 다른 테스트들 및 예측 모델들에 대응하는 서로 다른 저항들, 판독, 및 기입 프로파일들을 셀들에 제공함에 유의한다.
도 4는 일부 실시예들에 따라 데이터 저장 어레이에서 이용되는 예시적 고체-상태 메모리 셀로부터의 동작 데이터를 작도한 것이다. 여러 저항 영역들(202, 204, 206, 208)은 논리 값들 11, 10, 01, 및 00에 프로그램된 복수의 메모리 셀들에 대한 저항 분포들에 각각 대응한다. 일부 실시예들에서, 데이터 저장 어레이의 하나 이상의 고체-상태 메모리 셀들은 복수-레벨 셀(MLC)로서 구성되는데, 이것은 도 4에 도시된 바와 같이, n개의 비트들을 동시에 2n 논리 비트 값들로서 저장함으로써, 단일 비트를 논리 값 0 또는 1로서 저장하는 단일 레벨 셀과는 대조를 이룬다.
임의의 수의 서로 다른 논리 값 지정들이 제약없이 이용될 수 있지만, 여러 실시예들에 따른 논리 값 관례는 11의 논리 값을 가장 낮은 저항에, 그리고 10, 01, 및 00의 논리 값들을 점진적으로 더 높은 저항들에 할당한다. 논리 값 지정들에 관계없이, 여러 메모리 셀 동작들은 구획화된 영역들(210, 212, 214)에 의해 도시된 바와 같이, 고체-상태 메모리 셀의 의도하지 않은 저항 이동(shift)에 기여할 수 있다. 예를 들면 그러나 결코 제한함이 없이, 메모리 셀의 저장된 저항을 증가 및 감소시키는 연속된 프로그래밍 사이클의 횟수, 고 저항 상태가 메모리 셀에 지속적으로 저장되었던 시간, 데이터 저장 어레이의 온도, 및 메모리 셀을 프로그램하기 위해 사용되는 프로그래밍 전류량은 모두가, 데이터의 정확한 프로그래밍 및 감지를 점점 더 복잡하게 하는, 단일 비트 혹은 복수-비트 메모리 셀을 위한 안정된 저항 상태들에 증가 또는 감소에 기여할 수 있다.
도 3의 요소들(160, 180, 190)과 같은 고체-상태 메모리 셀은 프로그래밍 전류에 기초하여 복수의 서로 구별되는 저항들을 반복적으로 제공하는데 도움이 되는 물질들, 층 두께들, 및 전체적 치수들을 갖고 구축될 수 있다. 이를테면 .3Ω 및 .6Ω과 같이, 논리 상태 임계값들을 건너 확장하는 영역들(210, 212, 214)에 의해 도시된 바와 같이 저장된 저항 범위들에 원치 않는 이동으로, 01같은 논리 상태가 00같은 상이한 상태로서 판독될 수 있기 때문에, 논리 상태 정확성은 손상될 수 있다. 저항 이동은 일부가 다양한 저항 이동도들을 가질 수 있는 많은 개별적 저항들을 내포하는 한 페이지 혹은 한 블록의 메모리 셀들의 동시적인 판독 동안에 저장된 논리 상태들 간을 구별하려고 시도함으로써 더욱 악화될 수 있다.
저항 이동에 대한 원인은 아직 완전히 이해되지 않기 때문에, 저항 이동의 방지는 ECC를 사용하더라도 신뢰할 수 없었다. 따라서, 여러 실시예들은 테스트 및 예측 회로같은 적합한 프로토콜로 유선 또는 무선 네트워크를 경유하여 테스트, 관찰, 및 평가를 통해 확인된 하나 이상의 메모리 셀들에서의 저항 이동에 대한 반응적 및 사전 대비적 ECC 관리에 관한 것이다.
도 5는 여러 실시예들에 따라 구성되어 동작되는 예시적 데이터 저장 디바이스의 사전 대비부(230)의 블록도이다. 평가 엔진(232)은 유선 또는 무선 네트워크를 경유하는 것처럼 별개일 수도 있고, 또는 도 2의 회로(140)처럼 평가 회로 내에 통합될 수 있다. 엔진(232)에 어디에 위치하든 상관없이, 복수의 서로 다른 유형들의 데이터는 별도로 기록되고 엔진(232)에 의해 평가되어 데이터를 처리하고 가망있는 및 임박한 메모리 셀 변화들, 이를테면 저항, 논리 상태, 및 액세스 시간 변화들을 확인할 수 있는 모델 발생기(234)에 보내질 수 있다. 예를 들면 그러나 제한함이 없이, 센서들, 처리 회로들, 및 타이머들은 데이터 저장 어레이가 어떻게 수행하고 있는지의 다양한 맵을 위해 평가 엔진(232)에 적어도 온도(236), 비트 오류율(238), 판독/기입 카운터(240), 데이터 경년(242), 및 블룸 필터(bloom filter)(244) 상황들을 제공할 수 있다.
하나 이상의 온도 센서들(236)은 메모리 셀, 한 페이지의 메모리, 및 한 다이(die)의 메모리 페이지들의 국부적인 온도뿐만 아니라 데이터 저장 디바이스의 외기 온도를 연속적으로 그리고 산발적으로 측정할 수 있다. 즉, 디바이스의 외기 온도는 특히 뜨거운 위치 혹은 차가운 위치를 검출하기 위해 개개의 메모리 영역들을 동시에 혹은 연속적으로 모니터하게 할 수 있다. 일부 실시예들에서, 임계값 온도, 이를테면 150℉가 설정되고 일단 임계값을 넘게 되면 메모리 어레이의 특정한 부분의 조사를 시작한다. 이러한 조사는 테스트하여 소정의 범위 밖에 온도들에 노출된 셀들의 논리 상태 저항들을 예측적으로 변경하기 위해 오프라인으로 하나 이상의 메모리 셀들을 취하는 것을 수반할 수 있다. 조사는 하나 이상의 메모리 셀들에 대한 판독 카운트(count)에 제공될 수 있는 추가적인 증분들을 초래할 수 있다.
데이터 신뢰성같은 소정의 파라미터들 밖에서 동작할 메모리 셀들의 물리적 및 논리적 확률을 예측하기 위해 하나 이상의 메모리 셀들에 대한 비트 오류율(BER)(238)이 평가 엔진(232)에 의해 모니터될 수도 있다. 예를 들면, 메모리 셀에 대한 고 비트 오류율은 연이은 데이터 액세스들을 통해 확인된 셀에 논리적으로 연결된 셀들 뿐만 아니라 확인된 셀에 물리적으로 이웃한 셀들의 추가의 조사 또는 조절을 시작할 수 있다. 비트 오류율은 메모리의 티어들에서, 이를테면 블록들 및 페이지들에 의해 모니터될 수 있는데, 이것은 상위에 티어들에서 더 큰 BER은 후속하여 하위에 메모리 티어들에서 몇몇 셀들의 분석에 대응할 수 있기 때문에 더 효율적인 분석이 되게 할 수 있다.
메모리의 여러 섹터들, 페이지들, 블록들, 및 다이들은 데이터 액세스들의 횟수의 판독/기입 카운터(240)를 평가 엔진(232)에 제공하기 위해, 연장된 시간, 이를테면 데이터 저장 디바이스에 대한 수명 내내, 그리고 짧은 시간들, 이를테면 이전의 한 시간 및 일주일 동안, 연속적으로 모니터될 수 있다. 일부 유형들의 메모리, 및 PCRAM 셀들이 심하게 액세스되는 것과 같은 동작 상황들은 쉽사리 저항이 이동되게 할 수 있는데, 이것은 미리 예측되어 보상될 수 있다. 카운터(240)는, 일부 실시예들에서, 여러 메모리 셀들이 얼마나 액세스되고 있는가에 대한 정보와 함께 데이터를 평가 엔진(232) 및 모델 발생기(234)에 제공하기 위해서 메모리 셀들을 통하는 전류량 뿐만 아니라 판독들, 기입들, 및 재기입들의 횟수같은 다수의 데이터 액세스들을 로그(log) 할 수 있다.
카운터들이 하나 이상의 메모리 셀들에의 액세스들을 모니터할 수 있는 반면, 경년 카운터(242)는 메모리 셀이 기입, 판독, 및 변경된 이후 지나간 전체 시간량을 기록하게 동작할 수 있다. 판독 교란(disturb) 및 발견되지 않은 국부적인 발열 및 트라우마(trauma)과 같은 다양한 환경 및 동작상의 메모리 셀 상황들을 통해, 데이터의 재배치는 데이터 저장의 정확성을 사전 대비적으로 개선할 수 있다. 경년 카운터(242)는, 언제 그리고 어느 메모리 셀들이 저항 상태들같은 소정의 동작 임계값들로부터 일탈할 것인지를 예측하는 장기적이고 정밀한 동작 모델들을 평가 엔진(232) 및 모델 발생기(234)가 생성할 수 있게 하는 포괄적인 메모리 셀 맵을 제공하기 위해, 측정 및 추정된 비트 오류율(258) 및 판독/기입 카운터(240)에 의해 보완될 수 있다.
온도(236), 판독/기입 카운터(240), 및 데이터 경년 카운터(242)로부터 데이터를 추적하기 위한 가중된 인수 접근법(weighted factor approach)을 제공하고 메모리 셀 동작 예측들을 구축하기 위해 모델 발생기(234)에 의해 효율적으로 이용될 수 있는 데이터를 평가 엔진(232)에 제공하기 위해 블룸 필터(244)가 사용될 수 있다. 일부 실시예들에서, 가중된 인수화는 다음과 같은 조절된 판독 카운트를 제공할 수 있다:
Count(Adj) = 실제 판독들 + K1(Temp) + K2(경년) + K3(Delta-V) (1)
여기에서, Count(Adj)는 조절된 카운트 값이며, 실제 판독들은 실제 판독 동작을 나타내고, Temp은 온도 판독/범위/구역이며, 경년은 블록의 경년을 나타내며, Delta-V는 데이터 액세스 동작 동안에 검출된 혹은 예측된 셀 저항 변화들을 나타낸다. 경년은 모듈(242)을 사용하여 다양한 방법들로, 이를테면 선택된 메모리 위치 상에서 기입들 및/또는 판독들의 총수에 관련하여 추적될 수 있다. Delta-V 값은 서로 다른 판독 전압 및 저항 임계값들의 인가에 응하여 이용될 수 있다. 이외 다른 인수들이 사용될 수 있음을 알 것이다.
모델 발생기(234)를 통한 정확한 동작 모델들의 생성은 데이터 저장 디바이스 수행을 최적화하기 위해 비제한적인 다양한 사전 대비적 측정들이 취해지게 할 수 있다. 한 이러한 사전 대비적 행위는 평가 엔진(232)으로부터의 테스트 데이터와 모델 발생기(234)로부터의 예측된 동작 데이터를 ECC 엔진(246)에 보내어 페이지, 블록, 다이, 및 단일의 메모리 셀에 대해 처리하는 복수의 서로 다른 ECC 레벨들 중 하나를 할당 및 엔코딩하는 것일 수 있다.
도 6은 일부 실시예들에 따라 데이터 저장 디바이스의 예시적 ECC부(280)의 블록도이다. 단독으로 작동할 수 있거나 도 5의 평가 엔진 및 모델 발생기에 의해 지휘될 수 있는 ECC 엔진(282)은 ECC의 적어도 4개의 서로 다른 레벨들을 엔코딩 및 디코딩할 수 있다. 결코 필요하거나 제한함이 없이, 제 1 ECC 레벨(284)은 상당량의 시스템 처리 시간을 들이지 않고 기본적인 오류 및 정정을 할 수 있게 하는, 체크섬 같은, 가장 간단하고 최소의 처리 집약적인 ECC 수법일 수 있다. 저항 이동같은 메모리 셀의 동작 일탈의 반응적 또는 사전 대비적 확인은 각각의 메모리 셀의 ECC 레벨을 제 2 ECC 레벨(286), 제 3 ECC 레벨(288), 및 제 4 ECC 레벨(290)의 더 높은, 더 정교한 ECC 수법으로 업그레이드하게 ECC 엔진(282)을 시작하게 할 수 있다.
여러 실시예들은 제 2 ECC 레벨(286)을 패리티 체크로서, 제 3 ECC 레벨(288)을 리드-솔로몬 코드로서, 그리고 제 4 ECC 레벨을 하이브리드 자동 반복-요청(HARQ) 코드로서 구성한다. ECC 엔진(282)은 언제 그리고 어떤 레벨로 ECC 업그레이드가 행해져야 할지를 판정하기 위해 처리 용량, 예정된 처리 행위들, 및 채널 품질같은 다양한 시스템 파라미터들을 연속적으로 그리고 산발적으로 모니터할 수 있다. 일부 형국에 있어서, ECC 업그레이드는 단일 레벨일 수 있고 반면 다른 형국에선 가장 높은 ECC 레벨로의 업그레이드는 추가된 ECC 크기와 처리 비용과 증가된 오류 보호 및 정정과의 절충에 따라 보장된다.
일부 실시예들에서, 하나 이상의 메모리 셀들 내 저항 이동을 예측하는 능력은 확인된 저항 이동된 셀에 논리적으로 또는 물리적으로 이웃한 다른 메모리 셀들을 사전 대비적으로 업그레이드하는 것에 대응할 수 있다. 즉, ECC 엔진(282)은 수신된 테스트 및 모델 데이터를 해석하여 확인된 일탈된 메모리 셀 뿐만 아니라 피해를 입은 메모리 셀과의 논리적 순서 내에 있거나 이에 물리적으로 가까이 있는 메모리 셀들을 업그레이드할 수 있다. 이러한 사전 대비적 ECC 업그레이드는 확인된 셀에 가까이 있는 메모리 셀들이 일탈된 셀에 먼쪽에 있는 셀들에 비해 이들보다 ECC 레벨이 더 크게 증가할 때 티어들 내에서 행해질 수 있다.
예측 업그레이드는 시간에 걸쳐 그리고 소정의 관찰된 동작 데이터에 응하여 ECC 엔진(282)에 의해 더욱 행해질 수 있다. 예를 들면, 확인된 메모리 셀에 가까이 있는 셀들의 사전 대비적 ECC 업그레이드는 즉시 행해지지 않을 수 있으나, 그러나 대신에 소정의 온도, BER, 또는 데이터 액세스 수가 관찰되었을 때 행해지게 예정될 수 있다. 이렇게 하여, ECC 엔진(282)은 예정된 사용자 데이터 기입들 동안 ECC 레벨들을 효율적으로 업그레이드하기 위해, 고 데이터 볼륨 및 감소된 시스템 자원들과 같은 데이터 저장 상황들을 변경하게 적응할 수 있다.
도 7의 논리 맵(300)에 제공된 바와 같이, ECC 엔진(282)은 소정의 저항 임계값들로부터 일탈한 것으로서 확인되었거나 확인되지 않은 메모리 셀들에 대한 ECC 레벨들을 업그레이드하기 위해 사용자 데이터 판독들을 평가하고 이용할 수도 있다. 예시적 논리 루프(300)는 데이터 저장 디바이스 내 하나 이상의 위치들에 저장된 데이터에 대한 판독 요청(302)으로 시작할 수 있다. 판독 요청(302)은 호스트를 사용자 데이터의 가장 최근의 버전에 향하게 하고 데이터가 정확함을 보증하기 위해, 다른 어떤 곳에 저장된 메타데이터 및 ECC 코드 뿐만 아니라 특정한 논리적 및 물리적 블록 어드레스(LBA 및 PBA)로부터 사용자 데이터의 인출에 대응할 수 있다.
단계(304)는 ECC 엔진, 평가 엔진, 및 모델 발생기에 의해, 요청된 사용자 데이터에 대응하게 예측된 ECC를 제공할 수 있다. ECC의 예측은 임의의 수의 동작 파라미터들의 함수일 수 있고, ECC 인출의 시간 및 처리 비용을 감소시키기 위해 관찰 및 테스트된 정보를 이용할 수 있다. 예를 들면, 빈번히 액세스되는 메모리 셀 또는 한 페이지의 메모리는 대응하는 ECC를, 신속히 데이터를 인출할 수 있게 하고 저장된 ECC가 다른 메모리 셀들에 대해 사용될 수 있게 하는 PCRAM같은 한 유형의 메모리에 캐시하는 것을 시작할 수 있다.
이어, 여러 메모리 셀들 및 및 그룹들의 메모리에 대한 BER의 모니터링은 예측된 ECC의 정확성을 체크하기 위해서 단계(306)에서 예측된 ECC 및 사용자 데이터에 대한 관찰된 BER와 비교될 수 있다. 예측된 ECC가 정확하고 인출된 데이터의 BER가 BER 벤치마크에 부합한다면, 루프(300)는 다음 판독 요청으로 진행할 수 있다. 그러나, 관찰된 BER과 벤치마크 BER 간에 불일치는 예측된 ECC 및 인출된 메모리 셀(들)의 ECC 레벨을 벤치마크 BER로부터 불일치의 크기에 상응하는 새로운 레벨로 단계(308)로 하여금 업그레이드하게 할 수 있다.
여러 판독 및 기입 동작들을 통해, 다양한 현존하는 및 예측된 동작 상황들에 대해 조절하기 위해 하나 이상의 메모리 셀들에 대한 ECC가 평가, 테스트, 및 예측될 수 있다. 효율적이고 정확한 데이터 프로그래밍 및 판독을 제공하기 위해 현존하는 및 예측된 ECC를 관리하기 위해서 평가 엔진, 모델 발생기, 및 ECC 엔진의 보완 동작이 이용될 수 있다. 예시적 ECC 관리 수법은 ECC 레벨이 각각의 집단들의 크기에 대응하는 집단적인 페이지들, 블록들, 및 다이들의 메모리 셀들에 대한 ECC의 계층을 생성하는 것으로 구성될 수 있다. 즉, 예측된 체크섬과 같은 낮은 ECC 레벨은 한 다이의 메모리 셀들에 데이터의 판독 및 기입을 위해 사용될 수 있고 반면에 리드-솔로몬 코드같은 강화된 ECC 레벨은 다이 내에 내포된 한 페이지의 메모리에 대해 사용될 수 있다.
메모리 어레이 유닛들의 크기에 기초하여 계층으로 ECC의 구성은 더 작은 페이지들 및 섹터들의 메모리에 대해 처리가 더 비용이 드는 ECC 레벨들이 이용되기 전에 초기엔 시스템 자원이 최소로 드는 ECC가 사용될 수 있게 한다. 이러한 ECC 계층은 데이터 액세스 시간이 정확한 데이터 판독 및 기입과 균형이 맞게 메모리 영역들의 일부 또는 전부에 ECC 레벨들을 업그레이드함으로써 다이, 블록, 페이지, 및 섹터의 메모리 내 내포된 하나 이상의 메모리 셀들 내 동작상의 일탈들을 예측하여 최적화될 수 있다. 도 8은 여러 실시예들에 따라 ECC 레벨들이 어떻게 할당되고 조절될 수 있는가를 도시한 예시적인 예측 ECC 관리 루틴(320)을 제공한다.
초기에, 루틴(320)은 평가 및 모델화가 행해진 다양한 처리된 데이터, 이를테면 온도, 비트 오류율, 및 데이터 액세스 카운터들로부터의 평가된 동작 상황들에 기초하여 단계(322)에서 저항 이동을 예측할 수 있다. 단계(322)는 현재 소정의 저항 임계값들로부터 일탈되지 않은 셀들에 대한 저항에 미래 일탈들을 확인하기 위해 하나 이상의 메모리 셀들에 관한 로그된 동작 및 테스트 데이터의 평가를 수반할 수 있다. 이러한 확인은 결함이 있는 셀들의 지난 평가들 및 테스트들에 기초할 수 있고, 혹은 메모리가 사용자 제어를 위해 활성화되기에 앞서 시사된 또는 최적화된 ECC 레벨들과의 비교에 기초하여 소정의 임계값으로부터 셀 일탈을 시사하는 확인된 경향들에 기초할 수 있다.
단계(322)로부터 예측된 저항 이동에 따라, 단계(324)는 이어서 기입 동작 또는 예정된 낮은 시스템 오버헤드 시간 동안 적어도 확인된 메모리 셀의 ECC 레벨을 업그레이드한다. 위에 논의된 바와 같이, 전체 섹터 및 페이지의 메모리와 같은 물리적 및 논리적으로 아주 가까운 메모리 셀들의 ECC 레벨은 일부 시나리오들에선 여러 ECC 레벨들에 사전 대비적으로 업그레이드될 수 있다. ECC 관리 루틴(230)은 지속된 기입 동작들에 따라 단계(322)와 단계(324) 간을 연속적으로 루프할 수 있는데, 그러나 판독 동작이 행해지는 임의의 시간에 현존하는 혹은 예측된 ECC을 제공하기 위해 단계(326)로 진행할 수도 있다.
이어서, 단계(326)로부터 이전에 저장되거나 사전 대비적으로 발생된 ECC의 생성은 정확성을 위해 판단단계(328)에서 평가된다. 일부 실시예들에서, 페이지 또는 블록의 메모리와 같은 복수의 메모리 셀들에 대한 ECC가 수집되고 판단단계(328)에 의해 동시에 평가된다. 판단단계(328)는 BER를 비교하는 것, 패리티 체크들을 행하는 것, 데이터 용장도 비교들과 같은, 비제한적인 다양한 확정적이고 실험에 의한 기술들을 통해 정확성을 위해 ECC 및 대응하는 사용자 데이터를 평가할 수도 있다. 제공된 ECC가 정확한지를 판단단계(328)가 어떻게 판정하든 관계없이, ECC 내 실패는 단계(330)로 진행하여 적어도 단일의 확인된 메모리 셀에 대한 ECC는 도 6에 도시된 바와 같이 더 높은 ECC 레벨에 연관된 더 확고한 ECC 수법로 업그레이드된다.
판단단계(328) 및 단계(330)는 처리 자원들 및 데이터 액세스 시간들에 악영향을 미침이 없이, 정확한 데이터 인출을 제공하기 위해 개개의 메모리 셀, 한 페이지의 메모리, 한 블록의 페이지들, 및 한 다이의 블록들의 ECC 레벨을 높이기 위해 임의의 횟수로 연속하여 다시 방문될 수도 있다. 단계(330)는 업그레이드된 ECC 레벨에 대응하는 사용자 데이터가 거주하는 특정 블록, 페이지, 또는 섹터에의 다음 기입 동작에 부합되게 하기 위해 ECC 레벨들을 업그레이드하는 것을 더욱 예정할 수 있다.
정확한 데이터 판독들을 충분히 제공하기 위해 데이터의 ECC 레벨을 업그레이드한 상태에서, 판단단계(328)는 판독 사용자 데이터에 연관된 메타데이터에 대한 업데이트가 예정되는 단계(332)로 진행한다. 업데이트된 메타데이터는 적어도 재배치 또는 용장도가 업그레이드된 ECC 레벨의 부분으로서 채용되었다면 사용자 데이터의 새로운 PBA 및 LBA 뿐만 아니라 임의의 새로운 ECC 데이터 및 순방향 포인터들의 위치를 포함할 수 있다. 결과적으로 초기의 ECC는 정확하며 단계(330)를 통해 어떠한 ECC 레벨 조절도 행해지지 않으며, 단계(332)는 메타데이터를 수정하는 대신에 평가 회로 및 엔진에서 동작 로그를 업데이트할 수 있다. ECC 관리 루틴(320)은 회전형 매체들 및 고체-상태 메모리 둘 다를 채용하는 하이브리드 데이터 저장 디바이스들과 같은 다양한 여러 가지의 데이터 저장 디바이스 동작들을 수용하기 위해 루틴(320)의 임의의 부분이 수정, 이동, 및 생략될 수 있기 때문에 도시된 단계들 및 판단단계로 제한되지 않음을 알 수 있다.
도 8에 도시된 바와 같이, 하나 이상의 메모리 셀들 내 저항 이동을 예측하는 것은 메모리 셀(들)의 동작 이력 및 예측된 동작 미래에 맞춘 ECC의 레벨을 제공하는 ECC 관리에 대응할 수 있다. 관찰된 상황들 및 경향들에 기초하여 ECC를 예측하는 능력은 시스템 수행을 지나치게 저하시킴이 없이 정확한 데이터 판독 및 기입을 보증하는 오류 검출 및 정정의 레벨을 제공하기 위해 ECC를 관리하기 위해서도 사용될 수 있다. 또한, 여러 ECC 및 사용자 데이터 저장을 위해 다수의 서로 다른 메모리 유형들을 이용하는 능력은 현전하는 및 예측된 ECC와 함께 메모리 셀들이 각 메모리 유형의 동작 잇점들에 따라 메모리 유형들에 저장될 수 있게 함으로써 메모리 셀 및 데이터 저장 어레이 수행을 최적화할 수 있다.
청구된 기술은 네트워크 및 모바일 데이터 저장 환경들을 포함하여 임의의 다수의 응용들에서 쉽게 이용될 수 있음을 알아야 한다. 여러 실시예들의 구조 및 기능의 상세와 더불어 본 발명의 여러 실시예들의 수많은 특징들이 전술한 설명에 개시되었을지라도, 이 상세한 설명은 단지 예시적이며, 첨부된 청구항들에 표현된 용어들의 넓은 일반적인 의미에 의해 지시된 최대 범위로 본 기술의 원리 내에서 특히 부분들의 구조 및 배열들에 관해서 상세히 변경들이 행해질 수 있음을 알아야 한다.

Claims (20)

  1. 장치로서,
    데이터 저장 매체 상에서 물리적으로 인접하고, 각각 제1 오류정정 코드(ECC)를 갖는 제1 및 제2 가변 저항 메모리 셀들; 및
    상기 제1 가변 저항 메모리 셀에서의 예상되는 저항 이동에 응답하여 상기 제2 가변 저항 메모리 셀의 상기 제1 ECC를 제2 ECC 레벨로 업그레이드하도록 구성된 제어기를 포함하는,
    장치.
  2. 제 1 항에 있어서,
    적어도 하나의 상기 가변 저항 메모리 셀은 고체-상태 메모리 어레이의 부분인,
    장치.
  3. 제 2 항에 있어서,
    상기 고체-상태 메모리 어레이는 복수의 상이한 유형들의 가변 저항 메모리 셀들을 갖는,
    장치.
  4. 제 3 항에 있어서,
    제 1 유형의 가변 저항 메모리 셀은 프로그램가능 금속화 셀을 포함하는,
    장치.
  5. 제 4 항에 있어서,
    제 2 유형의 가변 저항 메모리 셀은 상변화 랜덤 액세스 메모리 셀을 포함하는,
    장치.
  6. 제 5 항에 있어서,
    제 3 유형의 가변 저항 메모리 셀은 저항성 랜덤 액세스 메모리 셀을 포함하는,
    장치.
  7. 제 1 항에 있어서,
    상기 제어기는 상기 제1 가변 저항 메모리 셀에서의 상기 저항 이동을 예측하기 위해 복수의 상이한 메모리 셀 동작 상황들을 동시에 분석하게 구성된 평가 엔진을 포함하는,
    장치.
  8. 제 7 항에 있어서,
    상기 평가 엔진은 상기 제1 가변 저항 메모리 셀에서의 상기 저항 이동을 예측하기 위해 데이터를 모델 생성기에 제공하는,
    장치.
  9. 제 1 항에 있어서,
    상기 제1 가변 저항 메모리 셀에서의 예측되는 저항 이동은 상기 제2 가변 저항 메모리 셀에서의 어떠한 예측되는 저항 이동에도 대응하지 않는,
    장치.
  10. 방법으로서,
    제1 가변 저항 메모리 셀에서의 저항 이동을 예측하는 단계; 및
    제2 가변 저항 메모리 셀의 제 1 오류정정 코드(ECC) 레벨을 제 2 ECC 레벨로 업그레이드하는 단계를 포함하고,
    상기 제1 및 제2 가변 저항 메모리 셀들은 데이터 저장 매체 상에서 물리적으로 인접하고, 상기 제1 및 제2 가변 저항 메모리 셀들 각각은 상기 업그레이드하는 단계 이전에 제 1 ECC 레벨을 갖는,
    방법.
  11. 제 10 항에 있어서,
    상기 제 1 ECC 레벨은 체크섬을 포함하는,
    방법.
  12. 제 11 항에 있어서,
    상기 제 2 ECC 레벨은 패리티 체크를 포함하는,
    방법.
  13. 제 10 항에 있어서,
    상기 제 2 ECC 레벨은 상기 제 1 ECC 레벨과는 상이한 ECC 수법을 포함하는,
    방법.
  14. 제 10 항에 있어서,
    상기 예측하는 단계는 복수의 상이한 동작 파라미터들을 사용하여 제어기로 메모리 셀 저항들에서의 변화들의 예측된 모델을 생성하는 단계를 포함하는,
    방법.
  15. 제 14 항에 있어서,
    상기 예측된 모델은 소정의 메모리 셀들에 대한 ECC를 예측하기 위해 ECC 엔진에 의해 사용되는,
    방법.
  16. 제 10 항에 있어서,
    상기 제 1 ECC 레벨은 한 페이지의 가변 저항 메모리 셀들에 대응하며, 상기 제 2 ECC 레벨은 개개의 가변 저항 메모리 셀에 대응하는,
    방법.
  17. 방법으로서,
    제1 가변 저항 메모리 셀에서의 저항 이동을 예측하는 단계; 및
    상기 제1 가변 저항 메모리 셀의 제 1 오류정정 코드(ECC) 레벨을 제 2 ECC 레벨로 그리고 제2 가변 저항 메모리 셀의 상기 제 1 ECC 레벨을 제 3 ECC 레벨로 사전 대비적으로 업그레이드하는 단계를 포함하고,
    상기 제1 및 제2 가변 저항 메모리 셀들은 데이터 저장 매체 상에서 물리적으로 인접하고, 상기 제 1 ECC 레벨, 상기 제 2 ECC 레벨 및 상기 제 3 ECC 레벨은 서로 상이한,
    방법.
  18. 제 17 항에 있어서,
    상기 제1 가변 저항 메모리 셀에 논리적으로 근접한 비-확인된 가변 저항 메모리 셀은 상기 제 1 ECC 레벨에서 상기 제 2 ECC 레벨로 업그레이드되는,
    방법.
  19. 제 17 항에 있어서,
    상기 제 1 가변 저항 메모리 셀에 물리적으로 근접한 비-확인된 가변 저항 메모리 셀은 상기 제 1 ECC 레벨에서 상기 제 2 ECC 레벨로 업그레이드되는,
    방법.
  20. 제 17 항에 있어서,
    상기 제 1 ECC 레벨은 제어기의 평가 엔진 부분으로부터의 관찰된 동작 데이터에 응하여 예측되는,
    방법.
KR1020140021730A 2013-02-27 2014-02-25 가변 저항 메모리 셀들을 위한 ecc 관리 KR101591694B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/779,434 US9164832B2 (en) 2013-02-27 2013-02-27 ECC management for variable resistance memory cells
US13/779,434 2013-02-27

Publications (2)

Publication Number Publication Date
KR20140107133A KR20140107133A (ko) 2014-09-04
KR101591694B1 true KR101591694B1 (ko) 2016-02-04

Family

ID=51369397

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140021730A KR101591694B1 (ko) 2013-02-27 2014-02-25 가변 저항 메모리 셀들을 위한 ecc 관리

Country Status (4)

Country Link
US (1) US9164832B2 (ko)
JP (1) JP6313994B2 (ko)
KR (1) KR101591694B1 (ko)
CN (1) CN104008773B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119852B2 (en) 2017-03-09 2021-09-14 Research And Business Foundation Sungkyunkwan University Memory device having error correction function and error correction method for memory device

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
JP6486723B2 (ja) * 2015-01-21 2019-03-20 東芝メモリ株式会社 メモリシステムおよび処理装置
KR102298607B1 (ko) 2015-02-17 2021-09-06 삼성전자주식회사 저항성 메모리 시스템 및 저항성 메모리 시스템의 동작 방법
US9786386B2 (en) * 2015-02-27 2017-10-10 Microsoft Technology Licensing, Llc Dynamic approximate storage for custom applications
US9921754B2 (en) * 2015-07-28 2018-03-20 Futurewei Technologies, Inc. Dynamic coding algorithm for intelligent coded memory system
JP2017054248A (ja) * 2015-09-08 2017-03-16 ソニー株式会社 メモリコントローラ、メモリおよびメモリシステム
US20170126249A1 (en) * 2015-10-30 2017-05-04 Intel Corporation Temperature dependent multiple mode error correction
US11481126B2 (en) * 2016-05-24 2022-10-25 Micron Technology, Inc. Memory device error based adaptive refresh rate systems and methods
EP3276243B2 (de) 2016-07-28 2021-11-10 TI Automotive (Fuldabrück) GmbH Kraftfahrzeug-fluidleitung
US10275541B2 (en) * 2016-08-05 2019-04-30 Micron Technology, Inc. Proactive corrective actions in memory based on a probabilistic data structure
US10430085B2 (en) 2016-11-08 2019-10-01 Micron Technology, Inc. Memory operations on data
US10261876B2 (en) * 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10403377B2 (en) * 2017-06-26 2019-09-03 Western Digital Technologies, Inc. Non-volatile storage with adaptive redundancy
US10606694B2 (en) * 2018-04-20 2020-03-31 Micron Technology, Inc. Error correction using hierarchical decoders
FR3080703B1 (fr) 2018-04-27 2020-04-03 Commissariat A L'energie Atomique Et Aux Energies Alternatives Procede de programmation d'une memoire resistive
CN110473581B (zh) * 2018-05-09 2020-12-29 建兴储存科技(广州)有限公司 固态储存装置及其相关控制方法
US11481265B2 (en) * 2019-06-06 2022-10-25 Micron Technology, Inc. Persistent health monitoring for volatile memory systems
KR20210034711A (ko) 2019-09-20 2021-03-31 삼성전자주식회사 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법
KR20210074425A (ko) 2019-12-11 2021-06-22 삼성전자주식회사 에러를 정정하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법
US11907570B2 (en) 2020-02-25 2024-02-20 Micron Technology, Inc. Predictive media management for read disturb
DE102021103853A1 (de) * 2020-05-28 2021-12-02 Taiwan Semiconductor Manufacturing Co., Ltd. Speicherarray-testverfahren und -system
CN112732181B (zh) * 2020-12-29 2024-02-23 北京浪潮数据技术有限公司 一种ssd的数据迁移方法及相关装置
US11704027B2 (en) * 2021-11-12 2023-07-18 Western Digital Technologies, Inc. Optimizing recovery of recurrent blocks using bloom filter
CN114490172B (zh) * 2022-04-02 2022-07-12 武汉杰开科技有限公司 数据存储系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023928A1 (en) * 2001-07-25 2003-01-30 Jonathan Jedwab Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
US20120144270A1 (en) * 2007-09-06 2012-06-07 Western Digital Technologies, Inc. Storage subsystem capable of adjusting ecc settings based on monitored conditions

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030050932A1 (en) 2000-09-01 2003-03-13 Pace Charles P. System and method for transactional deployment of J2EE web components, enterprise java bean components, and application data over multi-tiered computer networks
CA2380762A1 (en) 2002-04-04 2003-10-04 Intrinsyc Software, Inc. Internet-enabled device provisioning, upgrade and recovery mechanism
US7506335B1 (en) 2003-11-29 2009-03-17 Cisco Technology, Inc. Method and apparatus for software loading and initialization in a distributed network
US7266732B2 (en) * 2003-12-22 2007-09-04 Samsung Electronics Co., Ltd. MRAM with controller
US7797525B2 (en) 2004-07-01 2010-09-14 Hewlett-Packard Development Company, L.P. Operating system installation
US7295462B2 (en) 2005-12-12 2007-11-13 Micron Technology, Inc. Method and apparatus processing variable resistance memory cell write operation
US7873059B2 (en) 2006-03-01 2011-01-18 Mitsubishi Electric Corporation Gateway device
US7747926B2 (en) * 2006-05-02 2010-06-29 Everspin Technologies, Inc. Methods and apparatus for a memory device with self-healing reference bits
US8255873B2 (en) 2006-11-20 2012-08-28 Microsoft Corporation Handling external content in web applications
US8028155B1 (en) 2007-06-06 2011-09-27 American Megatrends, Inc. Initiating an operating system boot from firmware
US8122322B2 (en) 2007-07-31 2012-02-21 Seagate Technology Llc System and method of storing reliability data
US20100023870A1 (en) 2008-04-28 2010-01-28 Baker Matthew R Apparatus and method for integrated management of clinical trials and studies at an irb
KR20100013645A (ko) 2008-07-31 2010-02-10 삼성전자주식회사 가변 저항 메모리 장치 및 그것의 쓰기 방법
KR101042197B1 (ko) * 2008-12-30 2011-06-20 (주)인디링스 메모리 컨트롤러 및 메모리 관리 방법
US8775865B2 (en) * 2009-06-24 2014-07-08 Headway Technologies, Inc. Method and apparatus for scrubbing accumulated disturb data errors in an array of SMT MRAM memory cells including rewriting reference bits
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
KR101094904B1 (ko) 2009-09-30 2011-12-15 주식회사 하이닉스반도체 기준전압 생성 회로 및 방법, 이를 이용한 상변화 메모리 장치 및 리드 방법
US8027207B2 (en) 2009-12-16 2011-09-27 International Business Machines Corporation Leakage compensated reference voltage generation system
KR20110088906A (ko) 2010-01-29 2011-08-04 삼성전자주식회사 가변 저항 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8467237B2 (en) * 2010-10-15 2013-06-18 Micron Technology, Inc. Read distribution management for phase change memory
US9606747B2 (en) 2011-05-04 2017-03-28 International Business Machines Corporation Importing pre-existing data of a prior storage solution into a storage pool for use with a new storage solution
CN102203740B (zh) * 2011-05-27 2013-06-05 华为技术有限公司 数据处理方法、装置及系统
US9009574B2 (en) * 2011-06-07 2015-04-14 Marvell World Trade Ltd. Identification and mitigation of hard errors in memory systems
US8640002B1 (en) * 2012-07-10 2014-01-28 Micron Technology, Inc. Resolving trapping sets
US9257203B2 (en) * 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030023928A1 (en) * 2001-07-25 2003-01-30 Jonathan Jedwab Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
US20120144270A1 (en) * 2007-09-06 2012-06-07 Western Digital Technologies, Inc. Storage subsystem capable of adjusting ecc settings based on monitored conditions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119852B2 (en) 2017-03-09 2021-09-14 Research And Business Foundation Sungkyunkwan University Memory device having error correction function and error correction method for memory device

Also Published As

Publication number Publication date
JP2014164794A (ja) 2014-09-08
CN104008773A (zh) 2014-08-27
KR20140107133A (ko) 2014-09-04
CN104008773B (zh) 2017-12-12
US20140245108A1 (en) 2014-08-28
US9164832B2 (en) 2015-10-20
JP6313994B2 (ja) 2018-04-18

Similar Documents

Publication Publication Date Title
KR101591694B1 (ko) 가변 저항 메모리 셀들을 위한 ecc 관리
KR101564573B1 (ko) 가변적 저항 메모리 셀들의 최적화
US9135993B2 (en) Temperature based logic profile for variable resistance memory cells
KR102009003B1 (ko) 다중 계층 메모리 구조에 에러 정정 코드(ecc) 데이터의 저장
US20210182166A1 (en) Zoned namespace management of non-volatile storage devices
JP6286228B2 (ja) 抵抗ベースのメモリの抵抗シフトおよび/またはノイズを予測するための転送機能を用いた方法および装置
JP5918284B2 (ja) メモリセルの抵抗偏移を逆転させるためのバイアス信号のメモリセルへの印加
US20140244897A1 (en) Metadata Update Management In a Multi-Tiered Memory
US9099185B2 (en) Using different programming modes to store data to a memory cell
US9411669B2 (en) Selective sampling of data stored in nonvolatile memory
US10592141B2 (en) Error characterization for control of non-volatile memory
KR20200055588A (ko) 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
JP6262025B2 (ja) 抵抗メモリ要素の特性化パラメータの形成のための方法および装置
JP2014164793A5 (ko)
US8879302B2 (en) Management of variable resistance data storage device
US9312029B2 (en) Memory device and associated controlling method
US20220406396A1 (en) Read destructive memory wear leveling system
US9299402B2 (en) Mobile personalized boot data
US11868621B2 (en) Data storage with multi-level read destructive memory
US11923026B2 (en) Data storage system with intelligent error management

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
LAPS Lapse due to unpaid annual fee