KR101620761B1 - 멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템 - Google Patents

멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템 Download PDF

Info

Publication number
KR101620761B1
KR101620761B1 KR1020147002360A KR20147002360A KR101620761B1 KR 101620761 B1 KR101620761 B1 KR 101620761B1 KR 1020147002360 A KR1020147002360 A KR 1020147002360A KR 20147002360 A KR20147002360 A KR 20147002360A KR 101620761 B1 KR101620761 B1 KR 101620761B1
Authority
KR
South Korea
Prior art keywords
write
data
switching
write request
data storage
Prior art date
Application number
KR1020147002360A
Other languages
English (en)
Other versions
KR20140033215A (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 KR20140033215A publication Critical patent/KR20140033215A/ko
Application granted granted Critical
Publication of KR101620761B1 publication Critical patent/KR101620761B1/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • 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
    • 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
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0061Timing circuits or methods
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0064Verifying circuits or methods
    • 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
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5624Concurrent multilevel programming and programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Semiconductor Memories (AREA)

Abstract

본원에 개시된 일 예는 하나 이상의 어레이의 메모리 소자를 포함하는 전자 데이터 저장 장치이다. 데이터 저장 장치는 또한 수신된 데이터를 인코딩하는 오류 제어 코딩 인코더와, 최대 허용 개수의 기입 요청(write request)가 기입 요청 버퍼에 큐잉될 때까지, 또는 피드백 신호가 기입 동작이 완료됨을 지시할 때까지, 또는 스위칭 유도 힘 또는 그래디언트(gradient)가 최대 인가 시간동안 인가될 때까지, 하나 이상의 어레이의 메모리 소자에 스위칭 유도 힘 또는 그래디언트를 인가함으로써, 오류 제어 코딩 인코더로부터 수신된 인코딩된 데이터를 다소의 메모리 소자에 기입하는 판독/기입 제어기를 포함한다.

Description

멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템{METHOD AND SYSTEM FOR REDUCING WRITE-BUFFER CAPACITIES WITHIN MEMRISTOR-BASED DATA-STORAGE DEVICES}
본원은 예컨대 멤리스티브 비트 저장 매체(memristive bit-storage media)같은 비선형 비트 저장 매체(non-linear bit-storage media)에 데이터를 저장하는 장치에 관한 것으로, 특히 저장 이전에 데이터를 인코딩함으로써 기입 버퍼 용량(write-buffer capacities)을 감소시키는 방법 및 시스템에 관한 것이다.
전자 회로 소자의 디멘전은 반세기동안 급격하게 축소되었다. 한때 수작업으로 납땜되는 대규모 장치였던 저항, 캐패시터, 인덕터, 다이오드 및 트랜지스터 등의 친숙한 회로 소자들이 이제는 집적 회로내에 마이크로 이하 규모의 디멘전으로 조립된다. 포토리소그래피 기반 반도체 제조 기법은 1 평방 센티미터당 수 천만개의 회로 소자를 갖는 집적 회로를 만들 수 있다. 회로 소자의 꾸준한 크기 감소와 집적 회로의 컴포넌트 밀도 증가는 집적 회로가 동작되는 클록 속도의 급속한 증가를 가능하게 했을 뿐만 아니라 집적 회로 및 집적 회로 기반 전자 장치의 동작과 관련해 기능, 전산 대역폭, 데이터 저장 용량 및 효율에서도 엄청난 증가를 가능하게 했다.
유감스럽게도, 포토리소그래피법을 이용해 제조된 집적 회로의 컴포넌트의 밀도를 증가시키는 것과 관련한 물리적 제약은 그 해결책을 찾고 있는 중이다. 근본적으로, 포토리소그래피법은 포토레지스트를 고정 및 에칭하기 위해 포토리소그래피 마스크를 통과하는 방사선의 파장에 의해 제약을 받으며, 회로 배선과 컴포넌트의 디멘전이 나노 스케일 디멘전으로 감소됨에 따라, 터널링을 통한 전류 누설과 나노 스케일 컴포넌트의 비교적 고 높은 저항으로 인한 전력 손실은 전통적인 집적 회로 제조 및 설계 방법으로 컴포넌트 크기를 더 감소시키면서 컴포넌트 밀도는 증가시키는 것과 관련하여 난항을 겪고 있다. 이러한 난항들은 나노 스케일 회로와 회로 소자의 설계 및 제조에 대해 완전히 새로운 해결책을 만들었다. 현재는 나노 스케일 컴포넌트의 자기 정렬(self-assembly), 나노 스케일 임프린팅(imprinting) 및 다른 비교적 새로운 방법을 통해 초고밀도 나노 스케일 전자 회로를 생성하려는 연구 및 개발 노력으로 확대되고 있다. 또한, 쌍안정 나노 스케일 메모리 소자(bistable nanoscale memory elements)로 활용될 수 있는 멤리스티브 스위칭 물질을 포함하여 나노 스케일 디멘전에서 동작하는 새로운 유형의 회로 소자들이 개발되었다. 유감스럽게도, 인가되는 전압과 온도에 대해, 그리고 물질의 상태를 변화시키기 위해 인가되는 다른 힘과 그래디언트(gradient)에 대해 비선형 응답 특징을 나타내는 멤리스티브 스위칭 물질과 그 밖의 다른 가능성있는 쌍안정 메모리 소자 물질은 종종 비교적 넓게 분포된 비대칭 확률 밀도 함수(asymmetrical PDF;asymmetrical probability density functions)를 나타내는데, 여기서 PDF는 스위칭 힘 또는 그래디언트가 인가되는 상이한 시간들에 대해 메모리 소자가 스위칭할 확률을 나타낸다. 비대칭 PDF는 스위칭을 위한 평균 시간보다 비교적 긴 후미부(tail)를 나타낼 수 있으며, 이러한 비교적 긴 후미부는 스위칭을 보장하기 위해 힘이나 그래디언트가 상당히 오랜 시간동안 인가되어야 함을 나타내는 것이다. 선택적으로, PDF는 긴 후미를 갖는 대량의 메모리 소자의 스위칭 반응 특성을 나타내며, 이 긴 후미는 대량의 메모리 소자 중 소수의 일부 소자가 대량의 메모리 소자의 대다수보다 힘이나 그래디언트가 훨씬 더 긴 시간 동안 인가될 때 스위칭하는 것에 해당한다. 결과적으로, 최대 허용 가능한 비트 오류율(maximum tolerable bit error rate)에 대응하는 확률까지 스위칭하는 것을 보장하기 위해 힘이나 그래디언트가 인가되어야 하는 시간은 스위칭이 생성하는 평균 인가 시간보다 그리 길지 않기 때문에, 이러한 사실은 좁게 분포된 대칭형 PDF를 갖는 이론상의 장치에 대하여 상당히 감소된 동작 대역폭 및/신뢰성을 수반한다. 예컨대 멤리스티브 물질처럼 비선형 데이터 저장 물질에 기반한 메모리 장치 및 다른 데이터 저장 장치에 관한 이론가, 설계자 및 개발자는 이들 장치 중 일부의 비대칭이면서 광범위하게 분포된 스위칭 시간 특성을 개선하는 방법과 장치 아키텍처를 계속해서 연구하고 있다.
도 1a 및 도 1b는 두 개의 안정한 전자 상태(two stable electronic states)를 특징으로 하는 예시의 나노 스케일 단일 비트 데이터 저장 장치를 예시한다.
도 2는 도 1a 및 도 1b에 예시된 쌍안정 나노 스케일 전자 장치의 전류 대 전압 반응을 도시한다.
도 3a는 로그 정규 확률 밀도 함수(log-normal probability density functions)(PDF)를 예시한다.
도 3b는 도 3a에 도시된 로그 정규 분포 PDF에 대한 대응하는 누적 분포 함수(CDF;cumulative distribution function)를 도시한다.
도 4는 멤리스티브 메모리 소자 및 다른 비선형 데이터 저장 물질의 로그 정규 분포 스위칭 시간의 영향을 개선하는 두 가지 방법 중 첫 번째 방법을 예시한다.
도 5는 멤리스티브 메모리 소자 및 다른 쌍안정 데이터 저장 물질에 대한 로그 정규 분포 스위칭 시간의 영향을 개선하는 두 번째 방법을 예시한다.
도 6a 및 도 6b는 멤리스티브 메모리 소자 혹은 다른 비선형 데이터 저장 물질에 대한 스위칭 펄스 인가를 예시한다.
도 7a 내지 도 7f는 로그 정규 분포 스위칭 시간의 특징을 나타내는 메모리 소자를 포함하는 메모리 장치에 데이터를 기입하는 6개의 상이한 데이터 기입 방법을 예시한다.
도 8은 2-펄스 기입 법에서 제 1 펄스의 길이 T1에 대한 기입 전압 Tavg의 인가의 총 예상 시간(total expected time)의 의존도를 예시한다.
도 9는 연속 기입 법과 관련해 최대 인가 시간 Tmax에 대한 기입 전압 Tavg의 인가의 예상 누적 시간(expected cumulative time)의 의존도를 예시한다.
도 10은 로그 정규 분포 스위칭 시간의 특징을 나타내는 메모리 소자를 포함하는 메모리에 데이터를 기입하는 다수의 상이한 기입 방법을 비교한 비교표를 제공한다.
도 11은 도 10에 제공된 표의 첫 번째 가로 섹션의 데이터를 그래프로 예시한다.
도 12는 여러 가지 상이한 τ의 비율인 숙고중인 판독 시간들에 대해 원하는 스위칭-실패 확률(switching-failure probability)을 달성하는 다중 펄스 기입 방법과 관련한 최대 펄스 개수 및 평균 펄스 개수를 기재한 표를 제공한다.
도 13은 비코드화(uncoded) 2-펄스 기입 방법 및 코드화(coded) 2-펄스 기입 방법과 관련한 기입 도착 간격 시간(inter-arrival times)에 대한 예상 대기 시간의 그래프를 도시한다.
도 14는 피드백 신호 및 ECC 인코딩을 모두 포함하는 데이터 저장 장치를 예시한다.
도 15는 기입-버퍼링 컴포넌트(도 14의 도면부호(1434))의 동작에 대한 제어 흐름도를 도시한다.
도 16은 "입력" 루틴(routine)(도 15의 도면부호(1506))에 대한 흐름 제어도를 제공한다.
도 17은 "출력" 루틴(도 15의 도면부호(1508))에 대한 흐름 제어도를 제공한다.
도 18은 판독/기입 제어기(도 14의 도면부호(1430))의 동작을 예시하는 흐름 제어도를 제공한다.
도 19는 "기입" 루틴(도 18의 도면부호(1806))에 대한 흐름 제어도를 제공한다.
본 출원은 비교적 넓은 및/또는 비대칭인 스위칭 시간 확률 밀도 함수의 특징을 나타내는 메모리 소자에 데이터를 저장하는 전자적인 데이터 저장 장치를 다룬다. 멤리스티브 물질을 포함한 이런 유형의 메모리 소자는 대부분이 비선형 쌍안정 물질이고, 또한 평균 스위칭 시간보다 훨씬 더 큰 최악의 스위칭 시간(worst-case switching times)을 나타낼 수도 있다. 확률 분포는 첫 번째 쌍안정 상태에서 두 번째 쌍안정 상태로 메모리 소자가 반복적으로 스위칭될 때 관측되는 스위칭 시간을 반영한다. 확률 분포는 또한 스위칭 전압, 전류 혹은 다른 힘이나 그래디언트가 대량의 메모리 소자에 인가될 때 이 대량의 각각의 메모리 소자의 관측되는 스위칭 시간을 반영한다. 종래의 데이터 저장 장치의 경우, 잠재적으로 긴 스위칭 시간은 비교적 긴 스위칭 사이클을 초래하고, 그에 따라서 낮은 데이터 저장 입력 대역폭을 초래한다.
전류 인가가 지정된 전자적 데이터 저장 장치는 다음의 6가지 서브섹션(subsections)으로 나뉘어 논의되는데, 즉, (1) 비대칭적으로 분포된 스위칭 시간을 갖는 메모리 소자의 개요; (2) 오류 제어코딩; (3) 가상 기입 방법; (4) 다양한 기입 방법의 해석; (5) 다양한 기입 방법들의 해석의 결과; (6) 전류 인가가 지시된 전자 데이터 저장 장치의 예들로 논의된다.
비대칭적으로 분포된 스위칭 시간을 갖는 메모리 소자의 개요
도 1a 및 도 1b는 두 개의 안정한 전자 상태를 특징으로 하는 예시적인 나노 스케일의 단일 비트 데이터 저장 장치를 예시한다. 도 1a는 비교적 높은 저항 상태의 장치를 도시하고, 도 1b는 비교적 낮은 저항 상태의 장치를 도시한다. 전극 사이의 유전체의 저항은 전기적으로 감지되고, 따라서 도 1a 및 도 1b에 도시된 두 개의 상이한 저항 상태는 단일의 정보 비트를 저장하는데 이용될 수 있다.
도 1a 및 도 1b는 둘다 동일한 예시 기준에 따른다. 도 1a에서, 유전체(102)는 두 개의 도전성 전극(104, 106) 사이에 끼워져 있다. 쌍안전 유전체(102)의 상부 전극 부분과 하부 전극 부분이 도 1a에 도시된다. 일반적으로, 이 전극들은 나노 스케일 전자 장치를 다른 나노 스케일 전자 장치, 나노 스케일 회로 및 극초미세 및 초대규모 회로와 전기적으로 상호 연결하는 나노와이어(nanowires) 혹은 다른 도전성 소자일 것이다. 도 1에서, 유전체(102)는 두 개의 상이한 부분, 즉, (1) 저 저항 부분(108)과 고 저항 부분(110)을 갖는 것으로 도시된다. 저 저항 부분은 일 예로서, 전류 도전을 도와주는 산소 원자 결함(oxygen vacancies)을 포함하는 공핍 영역(depletion region)이다. 유전체의 고 저항 부분(110)은 이러한 산소 원자 결함이 없으므로, 도핑되지 않은 반도체나 유전체의 컨덕턴스(conductance)를 갖는다. 도 1a 및 도 1b에서, 충분히 큰 전압이 수직 상승 방향 혹은 z 방향으로 유전체 양단에 인가될 때, 산소 원자 결함은 도 1b에 도시된 것처럼 두 개의 전극 사이의 유전체 내부에 재분산된다. 산소 원자 결함의 재분산은 유전체가 전체적으로 비교적 낮은 저항을 갖게 한다. 도 1에서 충분히 큰 전압을 반대 방향으로 인가하거나 혹은 수직 상승 방향으로 음의 전압을 인가하면, 도 1a에 도시된 것처럼 하부 전극에 근접하여 산소 원자 결함이 분포되게 된다.
도 2는 도 1a 및 도 1b에 예시된 쌍안정 나노 스케일 전자 장치의 전류 대 전압 반응을 도시한다. 비교적 큰 기울기(202)를 갖는 I-V 곡선 부분은 도 1b에 도시된 나노 스케일 전자 장치의 저 저항 상태에 대응하는 I-V 곡선 부분이다. 이 곡선의 기울기는 두 전극 사이의 유전체의 도전율(conductivity)에 비례하고 저항률(resistivity)에는 반비례한다. 기울기가 작은 I-V 곡선 부분(204)은 도 1a에 도시된 나노 스케일 전자 장치의 고 저항 상태에 대응한다. 나노 스케일 전자 장치가 도 1a에 도시된 고 저항 상태라고 가정하고 전압 축(208)과 전류 축(210)의 원점(206)에서 시작해서, 하부 전극에서 상부 전극으로 인가되는 양 전압(positive voltage)을 증가시키면, I-V 곡선의 우측 부분(204)에 표시된 것처럼, 인가된 양 전압이 전압 Vw +(212)의 부근에 도달할 때까지 유전체 양단의 전류는 조금씩 증가하게 되는데, 이 전압 Vw +(212)의 위치에서 산소 원자 결함은 유전체 혹은 반도체 전체로 신속히 재분산되며, 그 결과로, I-V 곡선의 거의 수직 부분(214)으로 표시된 것처럼, 저 저항 상태를 나타내는 I-V 곡선의 부분이 지점(216)에 도달할 때까지 전류는 급속히 증가하게 된다. 양 전압을 계속 증가시키면, 저 저항 상태 I-V 곡선(220)의 멀리 우측 부분을 따라 전압 VD +(222)에 도달할 때까지 비교적 큰 대응하는 전류 증가가 유도되는데, 이 전압 VD +(222)의 지점에서 장치는 고 전류가 장치를 관통함으로써 저항성 발열로 인해 과도한 열이 생성하여 작동하지 않게 된다. 일단 지점(216)에서 저 저항 상태에 도달하면, 전극 양단에 인가된 전압은 감소되고, 저 저항 상태 I-V 곡선(202)은 좌측 방향으로 감소하여 다시 원점(206)으로 되돌아가며, 전압이 점점 더 큰 음 전압(negative voltage)으로 더욱 감소될수록, 전류는 방향을 바꾸어 지점(224)까지 점점 더 크기가 커지는데, 이 지점(224)에서는 도 1a에 도시된 것처럼 산소 원자 결함이 다시 하부 전극 근처의 조밀한 층으로 다시 재분산되어, 장치를 관통하여 흐르는 전류의 크기가 급속히 감소되어 지점(226)에서 고 저항 상태로 복귀된다. 장치의 양단에 인가되는 음 전압의 크기를 더 증가시키면, 마침내 전압 VD -(230)에 도달하는데, 이 지점(230)에서는 장치가 다시 저항성 발열로 인해 동작하지 않게 된다.
나노 스케일 전자 장치가 저 저항 상태에서 고 저항 상태로 천이하는 전압은 Vw -(232)로 부른다. 고 저항 상태를 불리언 값(Boolean value) "0"으로 표시하고, 저 저항 상태를 불리언 값 "1"로 표현하면, 양 전압 Vw +의 인가는 기입-1 동작으로 간주될 수 있고, 음 전압 Vw -의 인가는 기입-0 동작으로 간주될 수 있다. 중간 크기 전압 VR(236)의 인가는 나노 스케일 전자 장치에 현재 저장된 값을 질의(interrogate)하는데 이용될 수 있다. 전압 VR이 장치에 인가될 때, 그리고 그 결과로 비교적 큰 크기의 전류가 장치에 흐를 때 이 장치는 저 저항 상태이거나 혹은 블리언 1 상태이지만, 비교적 작은 전류가 장치에 흐른다면 이 장치는 불리언 0 상태이다. 따라서, 도 1a, 도 1b 및 도 2에 도시된 나노 스케일 전자 장치는 나노 스케일 메모리 소자로 작동할 수 있고, 이러한 장치의 2차원 혹은 3차원 어레이는 2차원 및 3차원 메모리 어레이로 채용될 수 있다.
비록 이 예와 이후의 예가 장치에 인가된 전압의 이력(history)에 따라 두 개의 다른 안정한 전자 상태중 하나일 수 있는 쌍안정 물질을 특징으로 하더라도, 3개 이상의 안정한 상태를 갖는 장치가 다양한 응용에서 이용될 수 있다. 예를 들어, 3개의 안정 상태를 갖는 장치는 기수-3의 수 체계(base-3 number system)의 3개의 다른 값 "0", "1" 또는 "2" 중 하나를 저장할 수 있고, 또는 3상태 장치의 세 개의 안정 상태중 두 개는 추후에 정보 저장 상태들로 분리되는 비배정 상태를 갖는 비트 값을 저장하는데 이용될 수 있다. 많은 경우, 전압은 쌍안정 메모리 소자의 상태를 바꾸기 위해 인가된다. 그러나, 상 변화 물질 기반 장치(phase-change-material-based device)에 대해서는 온도인 경우를 포함하여, 다른 유형의 쌍안정 물질은 다른 힘 및/또는 그래디언트의 인가에 의해 전환될 수도 있다. 다른 유형의 장치는 전기 저항 상태 이외의 상태 유형을 특징으로 할 수도 있다.
전술한 도 2는 이상적인 멤리스터 스위칭을 설명하는 것이다. 그러나 멤리스터 메모리 소자와 그리고 인가된 전압이나 다른 힘 또는 그래디언트에 대해 비선형 특성을 나타내는 다른 유형의 메모리 소자는 시간에 대해 하나의 쌍안정 상태에서 다른 상태로 균일하게 스위칭하지 않고, 대신에 많은 다른 물리적 현상으로 인해 확률적으로 분산된 스위칭 시간을 나타낸다. 일 예로, 특정 멤리스티브 메모리 소자는 로그 정규 확률 분포로 모델링될 수 있는 스위칭 시간을 나타낸다. 도 3a는 로그 정규 확률 밀도 함수(PDF)를 예시한다. 도 3a에서, 수직축(302)은 힘 또는 그래디언트가 인가되는 경우 특정 멤리스티브 메모리 소자가 시작 시간에 대해 시간 t에서 스위칭하는 확률 밀도를 나타내는데, 다시 말해서 시간 t는 멤리시티브 메모리 소자를 저 1 상태에서 제 2 상태로 스위칭하는데 이용되는 힘 또는 그래디언트의 인가하는 동안에 장치에 대한 스위칭 시간 tsw에 해당한다. 도 3a에서, 수평축(304)은 시간 t를 나타내는데, 힘 또는 그래디언트의 인가가 개시되는 시간 t=0에 해당하는 원점에서 시작한다.
도 3a에 도시된 가상 로그 정규 분포(hypothetical log-normal distribution)인 경우, 평균 스위칭 시간 t는 1.0인데, 여기서 예컨대 나노 초(ns), 마이크로 초(μs) 또는 밀리 초(ms) 등의 시간 단위는 특정 멤리시티브 물질에 좌우되며 현재 논의에서는 중요하지 않다. 정규 확률 분포 혹은 가우시안 분포(Gaussian distribution)에서, 확률 밀도 함수의 정점(peak)은 확률 변수(random variable)의 평균값과 일치한다. 그러나, 도 3a에서 알 수 있듯이, 로그 정규 분포에 대한 확률 밀도 함수의 정점(306)은 독립 변수(independent variable) t에 대한 평균값의 좌측으로 이동되어 있다. PDF는 정규 혹은 가우시안 PDF와 달리 비대칭이며, 확장된 우측 후미(308)를 특징으로 하는데, 이것은 전압이나 다른 힘 또는 그래디언트가 인가되는 특정 멤리스티브 메모리 소자의 실제 스위칭 시간이 평균 스위칭 시간(average or mean switching time)보다 훨씬 더 큰 시간에서 생성할 가능성이 상당히 크다는 것을 의미한다.
메모리를 포함한 많은 유형의 전자 장치의 경우, 상업적인 응용은 극히 낮은 오류율을 요청한다. 그 결과로, 메모리에 기입 전압을 특히 인가하는 동안 기입된 메모리 소자의 상당 부분이 확실히 스위칭하는 것을 보장하기 위해서, 기입 전압은 메모리 소자의 평균 스위칭 시간의 몇 배에 해당하는 지속 기간동안 메모리에 인가되는 것이 필요할 수도 있는데, 이것은 다시 말하면, 정규화된 PDF(normalized PDF)인 경우에 0과 인가 시간 사이에 PDF의 영역은 1.0에 근접하고 인가 지속 기간의 우측에 대한 PDF의 영역은 0에 근접하게 할 정도의 지속 기간동안 인가되는 것이 필요할 수도 있다. 도 3b는 도 3a에 도시된 로그 정규 분포 PDF에 대한 대응하는 누적 분포 함수(CDF)를 도시한다. 수직축(314)은 멤리스티브 메모리 소자의 스위칭 시간 tsw이 시간 t 이하일 확률을 나타내고, 수평축은 시간 t를 나타낸다. CDF는 PDF의 확장된 우측 후미에 대응하는 1.0의 확률을 나타내는 수편 점선에 비교적 넓고 고르게 접근하는 모양(310)을 나타낸다.
멤리스티브 메모리 소자에 대한 PDF를 모델링하기 위한 적합한 표현은 다음과 같다.
Figure 112014008723188-pct00001
멤리스티브 메모리 소자에 대한 CDF를 모델링하기 위한 적합한 표현은 다음과 같다.
Figure 112014008723188-pct00002
위의 수식에서, 함수 erfc는 여오차함수(complementary error function)를 표시한다. PDF와 CDF는 t/τ의 분포에 대한 수식으로 보여질 수 있는데, 여기서
Figure 112014008723188-pct00003
의 중간값(median value)은 0이고
Figure 112014008723188-pct00004
은 가우시안 분포된다. t/τ의 비율은 중간 스위칭 시간 τ에 의해 정규화된 스위칭 시간을 나타낸다. 파라미터 τ는 다음의 수식에 의해 멤리스티브 메모리 소자의 특정 유형으로 모델링된다.
Figure 112014008723188-pct00005
Figure 112014008723188-pct00006
은 멤리스티브 메모리 소자를 ON 혹은 "1" 상태로 스위칭하는 양의 인가 전압에 대한 τ 파라미터이고,
Figure 112014008723188-pct00007
는 멤리스티브 메모리 소자를 ON 혹은 "1" 상태로부터 "0" 혹은 OFF 상태로 스위칭하는 음의 인가 전압에 대한 τ 파라미터이다. 상수들
Figure 112014008723188-pct00008
Figure 112014008723188-pct00009
는 경험적으로 결정되는 양의 실상수(positive real constants)이고,
Figure 112014008723188-pct00010
는 인가된 스위칭 전압이다.
바람직한 데이터 입력 대역폭을 가지면서 로그 정규적 및/또는 넓게 분산된 스위칭 시간 PDF로 특징되는 메모리 소자를 이용하는 비용 효율이 높은 메모리 및 다른 데이터 저장 장치를 설계 및 생산하기 위해 다양한 예에서 활용되는 두 개의 해법이 존재한다. 이 두 해법은 각각 따로따로 이용되거나 조합되어 이용될 수 있다. 도 4는 멤리스티브 메모리 소자 및 다른 비선형 데이터 저장 물질에 의해 나타나는 로그 정규 분포 스위칭 시간의 영향을 개선하는 두 가지 방법 중 첫 번째 방법을 예시한다. 도 4는 메모리 소자로 전달되는 판독 전압 및 기입 전압이 인가되는 두 개의 도전체(404, 406) 사이에 개재하는 단일 1-비트 메모리 소자(402)를 도시한다. 또한, 메모리 소자는 회로 소자(408)와 연관되어 있는데, 이 회로 소자는 도 4에서 두 개의 입력 신호(412, 414) 사이의 전압차에 따라 피드백 신호(410)를 출력하는 회로 소자로 모델링되어 있다. 이 모델에서, 예컨대, 양의 기입 전압이 도전체(404, 406)를 통해 인가되고 메모리 소자(402)가 두 개의 쌍안정 저항 상태중 제 1 상태에 있을 때, 피드백 신호는 하나의 전압값을 가질 수 있고, 기입 전압이 도전체(404, 406)를 통해 인가되고 메모리 소자(402)가 두 개의 쌍안정 저항 상태중 제 2 상태에 있을 때, 이 피드백 신호는 다른 전압값을 가질 수 있다. 그러므로, 피드백 신호(410)는 기입 제어기 또는 다른 메모리 회로에게 메모리 소자의 전류 상태를 통지한다. 이것은, 일 예로서, 메모리 소자를 제 1 상태에서 제 2 상태로 스위칭하는데 필요한 동안에 기입 전압이 메모리 소자에 인가되는 것을 허용한다. 그러므로, 일 예로서, 메모리 소자가 어느 정도 확실한 정도로 스위칭되는 것을 보장할 정도로 충분한 시간(여기서 충분한 시간이란 메모리 소자를 특성화하는 PDF로부터 계산된 시간임)동안 기입 전압을 인가하는 것이 아니라 기입 전압이 메모리 소자를 실제로 스위칭하기에 충분한 시간동안 인가된다. 도 3a를 참조하여 전술한 바와 같이, 고도의 확실한 스위칭을 보장하는데 필요한 기입 전압 인가 시간은 특정 멤리스티브 메모리 소자의 평균 스위칭 시간보다 몇 배 이상 더 길 수 있고, 따라서 피드백 신호는 일반적으로 상당히 더 짧은 평균 전압 인가 시간을 초래한다.
도 5는 멤리스티브 메모리 소자 및 다른 쌍안정 데이터 저장 물질에 대한 로그 정규 분포 스위칭 시간의 영향을 개선하는 두 번째 방법을 예시한다. 도 5에서, 긴 어레이의 비트값들(이 어레이의 각각의 셀은 단일 비트값을 저장함)로 표시된 이진 데이터(502)의 입력량은 길이 k를 갖는 다수의 서브어레이(subarrays)(504 내지 507)로 나뉜다. 이러한 k 어레이는 이후에 다양한 상이한 유형의 오류 제어 코드(ECC)중 하나를 이용하여 인코딩(encoded)되는데, ECC는 k 길이를 갖는 각각의 서브어레이에 r개의 리던던트 비트를 추가하게 된다(510). 인코딩된 서브어레이는 이후에 메모리(512)에 저장된다. 판독 동작(514)동안 메모리로부터 저장된 데이터가 검색될 때, 인코딩되어 저장된 정보는 디코드 로직(decode logic)(516)에 의해 디코딩되어, k-길이의 서브어레이(520 내지 523)가 만들어진다. 일반적으로, 이후의 서브섹션에서 논의되듯이, 각각의 k-길이 서브어레이에 r개의 리던던트 비트의 정보를 추가하는 것은 각각의 k-길이 서브어레이 내부의 몇 개의 부정확하게 저장된 비트 혹은 부정확하게 판독된 비트가 디코드 로직에 의해 오류 정정되는 것을 허용한다. 그러므로, 기입/판독 프로세스에서 몇 개의 비트 오류는 오류 데이터를 초래함이 없이 메모리에 의해 처리될 수도 있다. ECC를 이용하면, 일 예로서, 코드화되지 않은 정보를 판독 및 기입하지만 기입 전압을 더 오래 인가하여 얻는 것과 동일한 오류율을 달성하면서 기입 전압이 인가되는 시간의 길이는 상당히 단축시킬 수도 있다.
오류 제어 코드( Error Control Codes )
오류 제어 코딩에 대한 좋은 참조는 린(Lin) 및 코스텔로(Costello)가 편수한 교재 "Error Control Coding:Fundamentals and Applications"(Prentice-Hall Inc., New Jersey, 1983)과, 론 엠 로스(Ron M. Roth)가 편수한 "Introduction to Coding theory"(Cambridge University Press, 2006)이다. 오류 제어 코딩에 이용되는 오류 검출 및 오류 정정 기술의 간단한 설명은 다음에 제공된다. 추가적인 세부 사항은 전술한 참조 교대로부터 얻을 수 있거나 또는 이 분야의 많은 다른 교재, 논문 및 정기간행물 기사 등에서 얻을 수 있다.
오류 제어 인코딩 기술은 보충 비트(supplemental bit) 혹은 심볼을 평문 메시지(plain-text messages)에 체계적으로 도입하거나 또는 저장 혹은 전송시 생성한 오류가 감지되거나 어떤 경우에는 정정되도록 하는 정보를 인코딩된 메시지내에 제공하기 위해 절대적으로 필요한 것보다 더 큰 수의 비트 혹은 심볼을 이용하여 평문 메시지를 인코딩한다. 보충 비트 혹은 절대적으로 필요한 것보다 많은 비트나 심볼의 한 가지 효과는 코드워드가 벡터 공간에서 벡터로 보여지고 코드워드 사이의 간격이 코드워드의 벡터 뺄셈에서 유도되는 메트릭일 때, 유효 코드워드 사이의 간격을 증가시키는 것이다.
오류 검출 및 정정을 설명함에 있어서, 하나 이상의 메시지로서 전송, 저장 및 검색될 데이터를 설명하는 것이 유용한데, 여기서 메시지
Figure 112014008723188-pct00011
는 필드(field) F의 원소인 심볼들의 순서화된 시퀀스
Figure 112014008723188-pct00012
를 포함한다. 메시지
Figure 112014008723188-pct00013
는 다음과 같이 표현될 수 있다.
Figure 112014008723188-pct00014
여기서
Figure 112014008723188-pct00015
이다.
필드 F는 곱셈과 덧셈하에서 닫혀진(closed) 집합으로, 곱셈 역원(multiplicative inverse)과 덧셈 역원(additive inverse)을 포함하는 집합이다. 컴퓨터를 사용한 오류 검출 및 정정에서, 차수 m의 GF(p)에 대한 기약 다항식(irreducible polynomial)을 덧셈 및 곱셈 모듈로(modulo)로 정의하는 덧셈 및 곱셈 연산자를 가지면서, 소수(prime number) p의 m 거듭제곱과 동일한 크기를 갖는 정수 부분 집합을 포함하는 유한 필드를 이용하는 것이 일반적이다. 실제로, 이진 필드 GF(2) 혹은 이진 확대 필드(binary extension field) GF(2m)가 일반적으로 이용되며, 이후의 논의는 필드 GF(2)가 채용되는 것을 가정한다. 흔히, 원본 메시지는 필드 GF(2)의 원소들의 순서화된 시퀀스를 포함하는 메시지 c로 인코딩되며, 다음과 같이 표현된다.
Figure 112014008723188-pct00016
여기서
Figure 112014008723188-pct00017
이다.
블록 인코딩 기술은 데이터를 블록으로 인코딩한다. 이 논의에서, 블록은 n 개 심볼의 순서화된 시퀀스를 포함하는 메시지 c로 인코딩되는 고정된 수의 심볼 k를 포함하는 메시지
Figure 112014008723188-pct00018
로 관찰될 수 있다. 인코딩된 메시지 c는 일반적으로 원본 메시지
Figure 112014008723188-pct00019
보다 더 큰 수의 심볼을 포함하고, 따라서 n은 k보다 더 크다. 인코딩된 메시지내의 r개의 여분 심볼(여기서 r은 n-k이다)은 리던던트 검사 정보를 운반하는데 이용되어, 전송, 저장 및 검색동안 생성한 오류가 극도로 높은 검출 확률로 검출될 수 있게 하고, 어떤 경우에는 정정될 수 있게 한다.
선형 블록 코드에서, 2k 코드워드는 GF(2) 위에서 모든 n-튜플(tuples)의 벡터 공간의 k-차원 부분 공간(subspace)을 형성한다. 코드워드의 해밍 웨이트(hamming weight)는 코드워드내의 0이 아닌 원소의 개수이고, 두 개의 코드워드 사이의 해밍 거리(hamming distance)는 두 개의 코드워드가 상이한 원소의 개수이다. 예를 들어, 이진 필드로부터 원소들을 가정하고 다음의 두 코드워드 a 및 b를 고려하자.
Figure 112014008723188-pct00020
코드워드 a는 3의 해밍 웨이트를 갖고, 코드워드 b는 2의 해밍 웨이트를 가지며, 코드워드 a와 b는 4번째 원소가 다르므로 코드워드 a와 b 사이의 해밍 거리는 1이다. 선형 블록 코드는 종종 3원소 튜플 [n, k, d]로 설계되는데, 여기서 n은 코드워드 길이이고, k는 메시지 길이이거나 또는 코드워드의 개수의 기수-2 로그(base-2 logarithm)와 등가이며, d는 상이한 코드워드 사이의 최소 해밍 거리로서, 코드내의 최소 해밍 웨이트를 갖는 0이 아닌 코드워드이다.
데이터의 전송, 저장 및 검색 동안 오류가 생성하지 않을 때 전송, 저장 및 검색을 위한 데이터의 인코딩과, 그 이후에 일어나는 인코딩된 데이터의 디코딩은 다음과 같이 표기될 수 있다.
Figure 112014008723188-pct00021
여기서 c(s)는 전송 이전에 인코딩된 메시지이고, c(r)은 초기에 검색되거나 수신된 메시지이다. 그러므로, 초기 메시지
Figure 112014008723188-pct00022
는 인코딩되어 인코딩된 메시지 c(s)를 생성하고, 이 인코딩된 메시지는 이후에 전송되거나, 저장되거나, 혹은 전송되어 저장되며, 그 이후에 초기에 수신된 메시지 c(r)로서 검색되거나 수신된다. 오류가 생기지 않았을 때, 초기에 수신된 메시지 c(r)는 나중에 디코딩되어, 원본 메시지
Figure 112014008723188-pct00023
를 생성한다. 위에서 지적한 바와 같이, 오류가 생성하지 않을 때, 원래의 인코딩된 메시지 c(s)는 초기에 수신된 메시지 c(r)과 동일하고, 이 초기에 수신된 메시지 c(r)는 오류 정정없이 곧장 원본 메시지
Figure 112014008723188-pct00024
로 디코딩된다.
인코딩된 데이터의 전송, 저장 또는 검색 동안에 오류가 생성하면, 메시지 인코딩 및 디코딩은 다음과 같이 표현될 수 있다.
Figure 112014008723188-pct00025
따라서, 전술한 것처럼, 원본 메시지
Figure 112014008723188-pct00026
를 인코딩하고 최종 수신된 메시지
Figure 112014008723188-pct00027
를 생성하기 위해 초기에 수신된 메시지 c(r)를 디코딩 또는 재구성하는데 이용되는 오류 검출 및 오류 정정 기술의 정확도에 따라서 최종 메시지
Figure 112014008723188-pct00028
은 초기 메시지
Figure 112014008723188-pct00029
와 동일할 수도 있고 동일하지 않을 수도 있다. 오류 검출은 다음을 결정하는 프로세스이다.
Figure 112014008723188-pct00030
오류 정정은 오류가 생긴 초기에 수신된 메시지로부터 초기 인코딩된 메시지를 재구성하는 프로세스이다.
Figure 112014008723188-pct00031
인코딩 프로세스는
Figure 112014008723188-pct00032
로 코드화된 메시지를 인코딩된 메시지 c로 변환하는 프로세스이다. 선택적으로, 메시지
Figure 112014008723188-pct00033
는 F의 원소들를 이루는 알파벳으로부터 선택된 순서화된 심볼 집합을 포함하는 워드로 간주될 수 있고, 인코딩된 메시지 c는 마찬가지로 F의 원소들의 알파벳으로부터 선택된 순서화된 심볼 집합을 포함하는 코드워드로 간주될 수 있다. 워드
Figure 112014008723188-pct00034
는 F의 원소들로부터 선택된 k개 심볼의 임의의 순서화된 조합일 수 있는 반면에, 코드워드 c는 다음의 인코딩 프로세스를 통해 F의 원소들로부터 선택된 n개의 심볼들의 순서화된 시퀀스로서 정의된다.
Figure 112014008723188-pct00035
선형 블록 인코딩 기술은, 워드
Figure 112014008723188-pct00036
가 k-차원 벡터 공간의 벡터인 것을 간주하고 이 벡터
Figure 112014008723188-pct00037
를 다음과 같은 생성 행렬(generator matrix)로 곱함으로써 길이 k의 워드를 인코딩한다.
Figure 112014008723188-pct00038
전술한 식의 심볼을 표기법상으로 확장하면 다음의 다른 표현들 중 하나가 만들어진다.
Figure 112014008723188-pct00039
Figure 112014008723188-pct00040
여기서
Figure 112014008723188-pct00041
이다.
선형 블록 코드에 대한 생성 행렬 G은 다음의 형태를 가질 수 있다.
Figure 112014008723188-pct00042
혹은 선택적을 다음과 같을 수도 있다.
Figure 112014008723188-pct00043
그러므로, 생성 행렬 G는 k×k 단위 행렬(identity matrix) Ik ,k로 증가된 행렬 P의 형태로 대체될 수 있다. 선택적으로, 생성 행렬 G은 다음의 형태를 가질 수 있다.
Figure 112014008723188-pct00044
이러한 형태로 생성 행렬에 의해 생성된 코드는 "조직적 코드(systematic code)"로 불린다. 전술한 첫 번째 형태를 갖는 생성 행렬이 워드
Figure 112014008723188-pct00045
에 적용될 때, 최종 코드워드 c는 다음의 형태를 갖는다.
Figure 112014008723188-pct00046
여기서
Figure 112014008723188-pct00047
이다. 두 번째 형태의 생성 행렬을 이용하면, 코드워드는 트레일링 패리티 검사 비트(trailing parity check bit)와 함께 생성된다. 그러므로, 조직적 선형 블록 코드에서, 코드워드는 r개의 패리티 검사 심볼 ci와 그에 후속하는 원본 워드
Figure 112014008723188-pct00048
를 포함하는 k개의 심볼을 포함하거나, 또는 원본
Figure 112014008723188-pct00049
를 포함하는 k개의 심볼과 그에 후속하는 r개 패리키 검사 심볼을 포함한다. 오류가 생성하지 않을 때, 원본 워드 혹은 메시지
Figure 112014008723188-pct00050
는 평문 형태로 생성하고, 대응하는 코드워드로부터 용이하게 추출된다. 패리티 검사 심볼은 원본 메시지 혹은 워드
Figure 112014008723188-pct00051
의 심볼들의 선형 조합으로 된다.
두 번째의 유용한 행렬 중 한 가지 형태는 다음과 같이 정의되는 패리티 검사 행렬 Hr ,n이다.
Figure 112014008723188-pct00052
혹은 이것은 다음과 등가이다.
Figure 112014008723188-pct00053
패리티 검사 행렬은 조직적인 오류 검출 및 오류 정정을 위해 이용될 수 있다. 오류 검출 및 정정은 초기에 수신된 혹은 검색된 메시지 c(r)로부터 다음과 같은 신드롬(syndrome) S를 계산하는 것을 수반한다.
Figure 112014008723188-pct00054
여기서 HT는 다음으로 표현되는 패리티 검사 행렬 Hr ,n의 전치행렬(transpose)이다.
Figure 112014008723188-pct00055
2진 필드가 활용될 때, x=-x이고, HT에서 전술한 "-" 기호는 일반적으로 도시되지 않음을 유의하라.
신드롬 S는 오류 검출 및 오류 정정에 이용된다. 신드롬 S가 모드 0-벡터일 때, 코드워드에는 오류가 검출되지 않는다. 신드롬이 "1"의 값을 갖는 비트를 포함하면, 오류를 나타낸다. 신드롬과 코드워드로부터 추정 오류 벡터(estimated error vector)
Figure 112014008723188-pct00056
를 계산하는 기술이 존재하는데, 이것은 코드워드에 대해 모듈로-2 덧셈으로 더해질 때, 원본 메시지
Figure 112014008723188-pct00057
의 가장 양호한 추정이 이루어진다. 오류 벡터
Figure 112014008723188-pct00058
를 생성하는 세부 사항은 전술한 교재들에 제공되어 있다. 오류의 일부 최개 개수까지 검출될 수 있고, 검출될 수 있는 이 최대 개수의 오류보다 적은 오류가 정정될 수 있음을 유의하라.
가상 기입 방법( Hypothetical Write Methods )
도 6a 및 도 6b는 멤리스티브 메모리 소자 혹은 다른 비선형 데이터 저장 물질에 스위칭 펄스를 인가하는 것을 예시한다. 다음 논의중 대부분에서 하나의 스위칭 펄스 또는 다중 스위칭 펄스를 인가하는 것이 고려된다. 스위칭 펄스는 지속 시간 t(604) 동안 양 전압 vON(602)을 인가하던가 혹은 지속 시간 t(608) 동안 음 전압 vOFF(606)를 인가할 수 있을 것이다. 어느 경우든, 펄스의 지속 기간 T가 결정될 수 있는 적절한 로그 정규 스위칭 시간 PDF와 그에 대응하는 CDF를 계산하기 위해 적정한 τ파라미터가 τON과 τOFF로부터 선택되는데, 이때 T는 평균 스위칭 시간의 몇 배인 단위이며, 메모리 소자가 가장 바람직한 비트 오류율(BER)에 대응하는 특정 최소 스위칭 확률을 넘어서 스위칭할 확률을 제공한다.
소정의 메모리 소자에 대한 스위칭 실패 확률 Pb(T) 또는 다중 메모리 소자 장치에 대한 비트 오류율은 다음과 같이 전술한 로그 정규 CDF로부터 게산된다.
Figure 112014008723188-pct00059
여기서
Figure 112014008723188-pct00060
는 전술한 CDF이다. 다음의 논의에서, 단순화하기 위해, 성공적으로 인가된 기입 동작이 메모리 소자의 상태를 변화시키지 않은 경우처럼 온-스위칭과 오프-스위칭 사이의 비대칭성은 무시되며, 따라서 기입 동작의 실패는 메모리 소자의 상태를 변경시키지 않는다. 이러한 경우들을 무시하는 것이 이후에 논의되는 다양한 방법들 사이의 비교를 바꾸지는 않는다. 이후의 논의에서, 멤리스티브 메모리 소자 및 다른 비선형 데이터 저장 물질의 스위칭 실패는 2진 대칭 잡음 채널(binary symmetric noisy channel)로 모델링된다.
다음 논의에서, ECC가 이용될 때, 코드 C는 [n,k,d] 코드이고 따라서 각각의 코드워드를 기입 및/또는 판독시 최대 (d-1)/2 비트 오류까지 정정될 수 있음이 가정된다. 물론, 비트 오류를 복구하는 능력은 길이 k의 2진 정보 비트의 각 그룹에 부가되는 리던던트 비트 r의 댓가이며, 다음과 같이 정의되는 정보율(information rate) R을 초래한다.
Figure 112014008723188-pct00061
전술한 바와 같이, 코드화되지 않은 정보는 메모리에 대해 저장 및 검색될 때, 저장된 정보의 판독 동안에는 오류가 생성하지 않는다는 가정하에, 메모리로부터 검색된 정보내의 오류 생성 비트의 비율은 스위칭 실패의 확률 Pb 즉 BER이다. 코드화된 정보가 메모리에 저장되었다가 나중에 오류 정정 디코더에 의해 검색 및 처리될 때, BER
Figure 112014008723188-pct00062
은 다음과 같다.
Figure 112014008723188-pct00063
여기서
Figure 112014008723188-pct00064
=코드 C에 의해 정정 가능한 최대 비트 개수이며, 코드 C는 [n,k,d] 코드이다.
이 수식에서, ECC에 의해 정정될 수 있는 최대 개수의 오류를 초과하는 많은 오류를 포함하는 모든 오류 패턴의 확률들은 서로 더해져서 코드워드의 길이 n으로 나누어진다.
다음, 도 4 및 도 5를 참조하여 전술한 피드백 신호와 ECC 중 하나 혹은 둘 모두를 채용하는 다수의 상이한 데이터 기입 방법들이 고려된다. 먼저, 이들 논의에서 이용되는 다양한 표기법의 개요가 서술된다.
단일 펄스 방법의 경우, 기입 전압 혹은 메모리 소자를 스위칭하는데 이용되는 다른 힘이나 그래디언트의 총 인가 시간
Figure 112014008723188-pct00065
은 단일 펄스의 지속 기간인 T이다. 다중 펄스 방법의 경우, T1은 다중 펄스의 함과 동일하다.
Figure 112014008723188-pct00066
평균 전압 인가 시간 Tavg는 예상된 총 인가 시간이다.
Figure 112014008723188-pct00067
단일 펄스 방법인 경우,
Figure 112014008723188-pct00068
이다. ECC를 이용하는 방법인 경우, 비트당 평균 전압 인가 시간은 다음과 같다.
Figure 112014008723188-pct00069
즉, 리던던트 비트를 기입하기 위한 추가 시간을 고려한다. 마지막으로, 특정 데이터 기입 방법에 대한 정보 비트당 이득 G 또는 에너지 소비나 메모리 대역폭에서의 예상 절약 w는 다음과 같다.
Figure 112014008723188-pct00070
여기서 G는 dB로 표시되고,
Figure 112014008723188-pct00071
는 이후에 논의되는 코드화되지 않은 하나의 펄스 방식에 대한 예상 펄스 길이이며,
Figure 112014008723188-pct00072
는 특정 데이터 기입 방법에 대한 비트당 평균 펄스 시간이다.
따라서, 다음의 비교들, 즉, 비코드화된 BER
Figure 112014008723188-pct00073
, 코드화된 BER
Figure 112014008723188-pct00074
, 전압의 총 인가 시간 혹은 데이터를 기입하는데 이용되는 다른 힘 및/또는 그래디언트의 총 인가 시간
Figure 112014008723188-pct00075
, 다중 펄스 방법에 대한 평균 인가 시간
Figure 112014008723188-pct00076
, 비트 당 평균 펄스 시간
Figure 112014008723188-pct00077
및 이득 G가 상이한 데이터 기입 방법들의 비교를 용이하게 하기 위해 평가된다.
Figure 112014008723188-pct00078
가 상이한 기입 방법들 사이의 에너지 소비와 메모리 대역폭를 비교할 때 이용하기 유리한 적당한 특징인 반면,
Figure 112014008723188-pct00079
Figure 112014008723188-pct00080
는 장치의 감손(wear) 및 최악의 경우의 대기시간(latency) 사안들을 반영한다.
전술한 바와 같이, 로그 정규 분포의 스위칭 시간을 나타내는 메모리 소자를 갖는 장치에 높은 신뢰도로 데이터를 저장하는 것을 보장하는데 필요한 잠재적으로 긴 기입-전압 인가 시간을 개선하는 한 가지 방법은 메모리 제어기로하여금 선택된 시점에 특정 메모리 소자가 스위칭되었는지를 결정하게 하는 피드백 신호를 이용하는 것이다. 기입 전압의 평균 인가 지속 기간을 감소시키는 이러한 피드백 신호 기반 방법은 추가 회로 및 회로 소자의 측면에서 상당한 비용을 생성시킴을 유의해야 한다. 마찬가지로, 전술한 바와 같이, ECC의 이용으로 제공되는 오류 정정 능력은 메모리 장치에 대한 정보율을 감소시키는 추가의 리던던트 비트의 저장을 수반한다.
다음의 논의에서는, 다양한 단순화가 행해진다. 예를 들면,
Figure 112014008723188-pct00081
와 관련한 전술한 수식에서, 코드워드의 s개 비트 이상이 오류가 생성될 때, 디코더는 항상 실패하는 것으로 가정되는데, 다시 말해서 디코딩은 항상 정정될 수 없는 오류 패턴을 검출할 수 있다고 가정된다. 디코더가 정정 불가능한 오류 패턴을 검출하면, 디코더는 코드워드를 디코딩하는 것을 중단하여 추가 오류를 도입하지 않는다. 실제로, 이것은 항상 있는 경우가 아니다. 디코더가 정정 불가능 오류 패턴에 대해 부정확하게 디코딩된 코드워드를 생성할 확률은 작다. 이러한 가정은 이런 확률이 무시되는 것으로, 이 가정이 전체 BER 계산 결과에 크게 영향을 미치지않으므로 실제로는 합리적이다.
로그 정규 분포 스위칭 시간을 갖는 메모리 소자를 특징으로 하는 장치에 대해 최적화될 수 있는 많은 상이한 파라미터가 존재한다. 예를 들면, 기입 전압이나 다른 힘 또는 그래디언트가 인가되는 동안의 길이 T와 펄스 개수를 변경하는 것과 함께, 특정 BER을 달성하는데 필요한 평균 펄스 시간을 일반적으로 감소시키지만 정보를 저장하는 메모리 혹은 다른 데이터 저장 장치에 의해 소비되는 에너지는 증가시키는 높은 전압을 갖도록 전압 그 자체가 변경될 수도 있다. 그러나, 많은 경우에, 인가될 수 있는 기입 전압의 범위내에는 최적의 기입 전압이 존재하지 않고, 대신에 더 큰 크기의 기입 전압을 이용하는 것이 일반적으로 에너지를 덜 소비하는 것으로 드러났다. 다시 말해서, 메모리 소자에 인가되는 기입 전압이 더 클수록, 인가될 필요가 있는 기입 전압은 더 작아지고, 메모리 소자를 스위칭하는데 더 적은 총 에너지가 소비된다. 물론, 어떤 점에서, 기입 전압의 증가가 장치의 실패를 유도하고, 장치의 수명(longevity) 역시 높은 기입 전압의 이용에 의해 부정적인 영향을 받을 수도 있다. 다른 예로서, 위에 제공된 PDF와 CDF 수식에 의해 전술된 것처럼 모델링된 스위칭 시간의 자연 로그의 변화량(variance) σ는 인가 기입 전압에 따라 좌우된다. 그러나 이러한 의존성은 약하고, 따라서 최적화를 위한 좋은 후보 파라미터(기입 전압)으로 여겨지지 않는다.
다음의 논의에서, 전술한 바와 같이, 인가 시간은 τ의 단위로 기록되고, 다시 말해서 임의 변수는 t/τ이다. 그러므로, 다음의 논의에서, 그 결과는 시간 척도 의존적 방식(time-scale-independent fashion)으로 제공된다. 다양한 정보 기입 방법에 대한 다음의 다양한 파라미터의 계산에서, 2진 BCH(Bose, Ray-Chaudhuri, hocquenghem) ECC 코드 C가 이용된다. 이 코드는
Figure 112014008723188-pct00082
를 갖는 [4304,4096,33] ECC 인데, 이것은 4096 비트 코드 블록당 최대 16개의 임의 오류를 정정할 수 있다. 비록 실제 메모리 시스템에서는 코드를 선택하는 추가적인 사안들로서 코드의 실패 모드 유형과, 다양한 유형의 상관된 다중 비트 오류를 적절히 다루는 코드의 능력을 포함하더라도, 이러한 특별한 코드는 다음 논의에서 스위칭 실패 오류를 정정함에 있어 좋은 성능을 위해 이용된다. 다음의 해석에서, 두 개의 상이한 목표 BER 레벨이 고려되는데, 즉, (1)
Figure 112014008723188-pct00083
, 이것은 현재 저장 장치를 위한 BER 레벨의 하부 종점(lower end)을 나타내며, 예상되는 오류없이 2시간 짜리 고 해상도 영화를 저장하는데 대응하며, (2)
Figure 112014008723188-pct00084
, 이것은 장래의 원하는 BER 레벨을 나타낸다.
도 7a 내지 도 7f는 로그 정규 분포 스위칭 시간의 특징을 나타내는 메모리 소자를 포함하는 메모리 장치에 데이터를 기입하는 6개의 상이한 데이터 기입 방법을 예시한다. 이들 방법들은 6개의 상이한 데이터 기입 방법을 위한 다양한 파라미터들은 메모리에 데이터를 우선 기입한 다음에 이 데이터를 메모리로부터 다시 판독함으로써 결정되는 가상 실험들로 이루어진다. 이후에 논의되는 것처럼, 파라미터들은 다른 가정 및 고려 사항들과 함께 로그 정규 분포 PDF 및 CDF에 기반한 이러한 가상 실험에 대해 추정될 수 있다.
"1-펄스 비코드화 기입 방법(one-pulse-uncoded write method)"으로 불리는 도 7a에 도시된 제 1 방법에서, 단계(702)에서 길이 T의 단일 펄스를 이용하여 데이터가 메모리에 기입되고, 단계(703)에서 메모리로부터 다시 판독되며, 단계(704)에서 1-펄스 비코드화 기입 방법에 대한 BER을 결정하기 위해 메모리로부터 다시 판독된 데이터가 초기에 메모리에 기입된 데이터와 비교된다. 물론, 통계적으로 의미있는 결과를 얻기 위해 이 실험은 여러 번 반복될 수 있거나 많은 메모리 소자에 대해 테스트될 수도 있으며, 이 두 가지 모두가 해당될 수도 있다. 1-펄스 비코드화 기입 방법은 이후에 하나 이상의 ECC와 피드백 신호를 이용하는 추가적인 방법들이 비교되는 기준점을 나타낸다. 도 7b에 도시된 1-펄스 코드화 방법(one-pulse-coded method)에서, 단계(706)에서 데이터는 먼저 코드워드로 인코딩된 다음, 단계(707)에서 길이 T의 단일 기입 펄스를 이용하여 메모리에 기입된다. 단계(708)에서, 데이터는 메모리로부터 판독되어 단계(709)에서 디코딩되며, 그 후에 단계(710)에서 디코딩된 이 데이터는 원래 메모리에 저장된 데이터와 비교되어, 1-펄스 코드화 방법에 대한 BER을 획득한다. 도 7c에 도시된 다중 펄스 비코드화 방법(multi-pulse, uncoded method)에서는, 데이터가 다중 펄스로 기입된다. 단계(712-716)의 for-루프(for-loop)에서, 펄스의 시퀀스는 메모리에 데이터를 기입하려고 시도하는데 이용된다. for-루프의 각각의 반복에서, 데이터는 길이 Ti의 다음 펄스를 이용하여 기입되도록 시도되는데, 여기서 i는 현재 반복의 회수 혹은 지수(index)를 나타내는 반복 변수(iteration variable)이다. 다음, 단계(714)에서, 피드백 가능형 메모리 소자로부터 제공된 피드백 신호가 데이터가 메모리에 정확히 기입되었는지 결정하기 위해 고려된다. 선택적으로, 메모리 소자는 스위칭이 생성했는지를 검증하기 위해 판독될 수도 있다. 단계(715)에서 결정되는 것처럼, 데이터가 정확하게 메모리에 기입되지 않았을 때, 그리고 현재 반복 지수 i가 반복 종료값 num보다 작을 때, for-루프의 다음 반복이 수행된다. 만약 그렇지 않다면, 단계(717)에서 데이터는 메모리로부터 판독되고, 다중 위상 비코드화 방법으로부터 BER을 결정하기 위해 메모리에 기입된 데이터와 비교된다. 위에서 논의된 것처럼 펄스 시간의 합 T0+...+Tt는 총 펄스 시간 Tt와 동일하고, 따라서 특정 최대 전압 인가 지속 기간 Tmax보다 작거나 같다. 이것과 그 관련 방법을 모델링하기 위해서, 스위칭 확률은 기입 동작에서 메모리 소자에 인가되는 하나 이상의 펄스에 대한 전압 인가의 총 누적 시간과 관계있다고 가정된다. 다시 말해서, 3개의 1초 펄스로 기입 전압을 인가하는 것은 단일의 3초 펄스로 기입 전압을 인가하는 것가 등가이다. 도 7d에 도시된 다중 펄스 코드화 방법은 도 7c를 참조하여 전술한 다중 펄스 비코드화 방법과 유사한데, 단계(720)에서 ECC를 이용하여 데이터가 먼저 인코딩되는 것과 그 이후에 단계(722)에서 디코딩되는 것만 다르다.
도 7e는 연속 비코드화 방법(continuous uncoded method)을 도시한다. 연속 비코드화 방법은 다중 펄스 비코드화 방법을 최대한 늘인 것과 등가임에, 여기서 펄스 시간 T1은 최대 전압 인가 시간 Tmax까지 추가하여 극소의 주기로 단축시킨 것이다. 단계(724)에서, 기입 전압이 메모리 장치에 인가되어 장치내부의 메모리 소자에 데이터 기입을 시작한다. 다음, 단계(725-726)의 while-루프(while-loop)에서, 메모리 소자로부터의 피드백 신호가 연속적으로 모니터되어, 기입 전압의 인가에 의해 메모리 소자가 스위칭될려고 하는 때, 즉, 실제로 원하는 상태로 스위칭되는 때를 결정한다. 이것이 생성하면, while-루프는 종료되고, 데이터는 단계(727)에서 메모리로부터 판독되며, 단계(728)에서 원래 기입된 데이터와 비교되어 연속 비코드화 방법에 대한 BER을 결정하게 된다. 도 7f에 도시된 연속 코드화 방법(continuous coded method)은 연속 비코드화 방법과 유사한데, 데이터가 단계(730)에서 먼저 ECC를 이용하여 인코딩된 다음, 메모리로부터 판독된 후 단계(732)에서 디코딩되는 것만 다른다.
도 7a 내지 도 7f에 예시된 모든 방법들은 1-펄스 비코드화 방법인 경우에는 피드백도 ECC도 이용하지 않거나 피드백과 ECC중 하나 혹은 둘다를 이용하는 가상 데이터 저장 방법을 나타낸다. 피드백은 다중 펄스 코드화 방법에서 이용되며, 연속 비코드화 방법 및 연속 코드화 방법에서도 이용된다. ECC는 1-펄스 코드화 방법, 다중 펄스 코드화 방법 및 연속 코드화 방법에서 이용된다. 1-펄스 방법의 경우, Tavg=Tmax=T이다. 1-펄스 코드화 방법의 경우,
Figure 112014008723188-pct00085
이다. 1-펄스 비코드화 방법의 경우,
Figure 112014008723188-pct00086
이다.
다양한 기입 방법의 해석
이 섹션에서는, 도 7a 내지 도 7f를 참조하여 설명한 다양한 기입 방법을 해석하는 방법이 논의된다. 이 해석은 전술한
Figure 112014008723188-pct00087
및 G를 포함해서 다양한 파라미터의 추정을 제공한다. 다양한 해석의 결과는 다음의 서브섹션에 논의된다.
1-펄스 방법에서, T의 선택은 코드화 방법에서 C로 인코딩된 것으로 가정되는 저장된 데이터의 입력 BER
Figure 112014008723188-pct00088
을 결정한다. 코드화 방법의 출력 BER은 이후에 전술한 BCH 코드의 파라미터
Figure 112014008723188-pct00089
Figure 112014008723188-pct00090
을 이용하여 추정된다.
두 개의 펄스를 이용하는 다중 펄스 기입 방법은 피드백을 갖는 가장 간단한 데이터 기입 방법이다. 지속 기간 T1의 초기 펄스가 인가되고, 장치의 상태가 감지된다. 장치가 원하는 목표 상태로 스위칭된 것이 발견되면, 기입 동작이 완료된 것으로 간주된다. 장치가 스위칭하지 않았다면, 지속 기간
Figure 112014008723188-pct00091
의 추가 펄스가 인가되고, 여기서
Figure 112014008723188-pct00092
이다. 비록 시간 T1에서 동작을 중단시키는 것이 평균 총 펄스 시간을 감소시키더라도, 스위칭 실패 확률은 여전히
Figure 112014008723188-pct00093
에 의해 결정되고, 그 결과로
Figure 112014008723188-pct00094
임을 유의하자. 예상 총 펄스 지속 기간은 다음과 같다.
Figure 112014008723188-pct00095
Figure 112014008723188-pct00096
의 목표값이 주어지면, Tavg를 최소화시키는 T1의 값이 계산될 수 있다. 실제로,
Figure 112014008723188-pct00097
이고 T1, Tavg의 함수로서 간격(0, Tmax)에서 분명한 최소를 가짐이 쉽게 증명된다. 도 8은 2-펄스 기입 법에서 제 1 펄스의 길이 T1에 대한 기입 전압 Tavg의 인가의 총 예상 시간(total expected time)의 의존도를 예시한다. Tavg를 최소화하는 T1의 값을 찾기 위해, 전술한 수식의 우측항은 위에 제시된 것처럼
Figure 112014008723188-pct00098
에 대한 완전한 수식으로 대체한 후 미분되고,
Figure 112014008723188-pct00099
로 표시되는 0의 도함수에 대해 수치적으로 풀린다. 최적의 예상 총 펄스 길이는
Figure 112014008723188-pct00100
으로 주어진다.
2진 대칭 잡음 채널의 경우, 2-펄스 방법은 1-펄스 방법과 동일한데, 예상에서 훨씬 더 짧은 펄스와 그에 따라 훨씬 더 적은 에너지가 동일한 BER를 획득하는데 이용되는 것만 다르다. 최악의 경우의 펄스 지속 기간은 1-펄스 경우와 동일하다. 1-펄스 경우에서 처럼, ECC를 이용하는 것은 예상 펄스 길이와 에너지 소비량을 더 감소시키지만, 추가적으로 최악의 경우 평균 펄스 길이 비율까지 대폭적인 감소를 초래한다.
3-펄스 기입 방법은 2-펄스 기입 방법과 유사한 방식으로 해석되는데, 메모리 소자의 상태를 감지하는 것이 이산적인 시간 T1 및 T2에서 허용된다는 것만이 다르고, 이때
Figure 112014008723188-pct00101
이다. 예상 총 펄스 길이는 다음의 공식에 의해 제공된다.
Figure 112014008723188-pct00102
Figure 112014008723188-pct00103
의 목표값에 대응하는 주어진 Tmax의 값에 대해, Tavg는 T1 및 T2에서 심각한 전반적인 최소화를 나타내는데, 이것은 T1 및 T2와 관련하여 편도함수(partial derivatives)를 취하고, 수치적 방법으로 최종 방정식 체계를 풀이함으로써 쉽게 발견된다.
연속 피드백 기입 방법에서, 최대 지속 기간 Tmax의 펄스가 이용되면서 스위칭이 생성한 직후에 인가 전압을 제거한 상태로 장치의 상태가 연속적으로 모니터된다. 연속 피드백 기입 방법에 대한 예상 펄스 기간은 다음으로 주어진다.
Figure 112014008723188-pct00104
이때 Tmax는 무한대를 향할 때, 전술한 수식은 예상대로 로그 정규 밀도
Figure 112014008723188-pct00105
의 평균인
Figure 112014008723188-pct00106
이 된다. 실제로, 이 제한은 Tmax/τ>1일 때 급속히 근접된다. 도 9는 연속 기입 법과 관련해 최대 인가 시간 Tmax에 대한 기입 전압 Tavg의 인가의 예상 누적 시간(expected cumulative time)의 의존도를 예시한다.
피드백은 기입 동작의 에상 지속 기간에 상당한 이득을 제공한다. 이러한 이득은 예상 에너지 소비를 줄이고 장치에 대한 감손을 줄이는 것으로 곧장 해석된다. ECC의 이용은 또한 때대로 상당한 이득폭만큼 이러한 이득을 보강한다. 또한, 최소한 Tmax가 시간 단위로 분리되어 생성하도록 기입 요청이 제한되는 경우일지라도, 코딩으로 인한 꽤 큰 Tmax의 감소는 시스템 처리량에서 대응하는 이득을 유발한다. Tavg 감소로부터의 처리량을 이득보고 Tmax 제한 이상으로 동작율을 증가시키기 위해, 일부 동작들이 시간 Tmax가 소요되므로 기입 동작에 대한 큐잉잉(queueing)이나 버퍼링(buffering) 메커니즘이 구현될 수도 있으며, 더 빠른 속도로 도착하는 기입 요청들은 이들 동작이 완료될 때까지 큐잉에 저장되어 대기하게 될 것이다. 이러한 시스템의 버퍼링 요건과 신뢰도는 큐잉잉 이론의 수단을 이용하여 해석될 수 있다.
파라미터 t1, Tmax 및 Tavg를 갖는 2-펄스 방법을 고려하자. 단순화를 위해 기입 요청은 A의 시간 단위의 도착 간격을 갖고 정해진 속도로 도착한다고 가정하자. 만약 A≥Tmax이면, 큐잉잉은 필요하지 않으므로, A<Tmax가 가정된다. 분명히, 유계의 나머지 것에 대한 기회를 갖기 위한 큐잉의 경우는, A>Tmax이다(사실 이것은 큐잉잉 이론에서 잘 알려진 결과이고, 이후의 해석으로부터 알려지듯이,
Figure 112014008723188-pct00107
이다). 더 단순화한 가정은 비율
Figure 112014008723188-pct00108
가 정수인 것이다. 비율 Tmax/Tavg는 크기 때문에, 특정값의 Tmax으로 달성되는 목표 BER을 고려하면 이것은 매우 제한적인 가정이 아니다. 대부분의 경우, Tmax는 d를 정수로 만들도록 살짝 증가될 수 있다. 이러한 가정으로, 큐잉에서 대기하는 시간에 대한 해석은 간단한 정수값 랜덤 워크(integer-valued random walk)를 검토하는 것으로 축소된다.
wi이 i번째 기입 요청에 대한 큐잉 속에서의 대기 시간(실제 대기 시간은
Figure 112014008723188-pct00109
이다)을 나타내는 정수의 임의 변수를 나타낸다고 하고, 여기서 ti는 i번째 기입의 실제 총 펄스 길이로, i번째 기입 요청에 대한 서비스 시간이다.
Figure 112014008723188-pct00110
는 a>b일 때 a-b를 표시하고, 그렇지 않을 때는 0을 표시하는 것으로 한다. 다음, 초기 조건으로서, w0=0을 취하면,
Figure 112014008723188-pct00111
여기서,
Figure 112014008723188-pct00112
는 {1, -d}의 값을 추정하는 임의 변수이고,
Figure 112014008723188-pct00113
이고,
Figure 112014008723188-pct00114
이다. 이전의 가정하에, 이 확률들은 i에 독립적이다. 랜덤 워크
Figure 112014008723188-pct00115
는 마르코프 연쇄(Markov chain)로, 충분히 큰 p인 경우에 끊임없이 지속되어
Figure 112014008723188-pct00116
상태로 종종 무한 복귀된다. 이러한 가정하에, 연쇄는 정상 분포(stationary distribution)를 갖는다.
Figure 112014008723188-pct00117
분명히, 범위
Figure 112014008723188-pct00118
내의 상태
Figure 112014008723188-pct00119
Figure 112014008723188-pct00120
이므로
Figure 112014008723188-pct00121
로부터 도달될 수 있다. 그러므로 다음과 같다.
Figure 112014008723188-pct00122
여기서
Figure 112014008723188-pct00123
이다. 한편, 상태
Figure 112014008723188-pct00124
는 다시 한 번 더
Figure 112014008723188-pct00125
일때
Figure 112014008723188-pct00126
또는
Figure 112014008723188-pct00127
로부터 도달될 수 있다. 따라서,
Figure 112014008723188-pct00128
이다. P0에 대해 풀면 다음과 같다.
Figure 112014008723188-pct00129
마지막으로, w≥d에 대해
Figure 112014008723188-pct00130
일 때 상태 w는 w+1로부터 도달될 수 있거나 또는
Figure 112014008723188-pct00131
일 때 w-d로부터 도달되어 다음의 재귀함수(recursion)를 산출한다.
Figure 112014008723188-pct00132
함수를 생성하는 명백한 수식은 전술한 수식으로부터 다음과 같이 얻을 수 있다.
Figure 112014008723188-pct00133
이로부터, 대기 시간의 예상이 다음과 같이 유도된다.
Figure 112014008723188-pct00134
Figure 112014008723188-pct00135
이라고 하고, 시간 단위로 다시 해석하면 다음과 같다.
Figure 112014008723188-pct00136
예상대로, A가 Tmax에 근접할 때 E[W]는 0에 근접하고(
Figure 112014008723188-pct00137
일때 큐잉은 필요치 않다), A가 Tavg에 근접할 때 E[W]는 무한에 근접한다. 리틀의 법칙(Little's theorem) [3]에 의해, 큐잉 사이즈에 대한 예상은 다음과 같이 주어진다.
Figure 112014008723188-pct00138
위에 제공된 수식으로부터 변수 u가 모든 확률 Pw를 증가시키는 것은 분명하다. 다음을 고려하자.
Figure 112014008723188-pct00139
여기서,
Figure 112014008723188-pct00140
이고,
Figure 112014008723188-pct00141
이다.
Figure 112014008723188-pct00142
에 대한 명백한 수식이 곧장 다음과 같이 산출된다.
Figure 112014008723188-pct00143
G1(z)의 경우, G1(z)와 전술한 재귀함수에 대해 수식을 적용하고
Figure 112014008723188-pct00144
인 것을 회상하면, 다음의 수식이 얻어진다.
Figure 112014008723188-pct00145
Figure 112014008723188-pct00146
용어들을 재배열하고, 일부 대수학적 처리(algebraic manipulations)를 하면 다음의 수식이 얻어진다.
Figure 112014008723188-pct00147
여기서 정수
Figure 112014008723188-pct00148
에 대해
Figure 112014008723188-pct00149
은 G1(z)에 대한 수식의 분자(numerator)와 분모(denominator)로부터 공통 인수 (1-z)를 제거한다. 전술한 수식은 u의 최대 인수까지 G(z)를 결정한다. G(1)=1로 설정하면, 다음의 수식이 얻어진다.
Figure 112014008723188-pct00150
이것은 G(z)의 결정을 완성한다. w의 예상은 다음에 의해 제공된다.
Figure 112014008723188-pct00151
이것은 E[w]에 대해 첫 번째 제공된 수식을 산출한다. 위에 제시된 E[w]에 대한 두 번째 수식은 첫 번째 제공된 수식에
Figure 112014008723188-pct00152
을 대입하고, 시간 스케일 A-T1을 곱하고
Figure 112014008723188-pct00153
소환한다. u가 양인 경우,
Figure 112014008723188-pct00154
Figure 112014008723188-pct00155
로 이어진다.
펄스의 개수에 대한 명확한 한도를 도입하는 것이 아니라 스위칭을 증명하기 위해 판독이 개재하는 이산 펄싱 기입 방법을 고려하고, 대신에 증명/판독 동작에 패널티를 제기하는 것을 고려하고, 이러한 패널티를 경험하는 최적 펄싱 방법을 결정하자.
Figure 112014008723188-pct00156
는 최종 펄스가 Tmax에서 종료하는 것만 빼면 판독과 일치하는 시간에 종료하는 펄스의 시퀀스를 표시하고, 이때 후속 판독을 없는 것으로 하자. 그러므로, 첫 번째 펄스는 T1의 지속 기간을 갖고, 두 번째 펄스는 T2-T1의 지속 기간을 갖는 식이다. 전술한 것처럼 일부 원하는 원시 비트 오류율
Figure 112014008723188-pct00157
에 대해
Figure 112014008723188-pct00158
를 통해서 Tmax가 결정된다. 또한 판독 동작이 시간 tr이 걸리는 것으로 가정하자. 그러므로 펄싱과 판독을 위한 총 예상 시간 패널티는 다음과 같이 표현될 수 있다.
Figure 112014008723188-pct00159
여기서 T0=0이고, Tsw는 스위칭하는데 이용되는 종합적인 펄스 지속 기간의 임의량이다. 다음을 고려하자.
Figure 112014008723188-pct00160
최소 평균 펄스 및 모든 가능한 펄스 종료 시간과 펄스 개수에 대한 증명 시간을 고려하자.
Figure 112014008723188-pct00161
이므로
Figure 112014008723188-pct00162
은 작은 시간 간격의 일부 양의 정수배인 것으로 제한되고,
Figure 112014008723188-pct00163
에 대해 최적화된다. 펄스의 최대 개수는
Figure 112014008723188-pct00164
이다.
Figure 112014008723188-pct00165
는 펄스 종료 시간에 대한 이러한 제약하에서 최종의 최적 Tavg를 표시하는 것이라고 하자. 분명히
Figure 112014008723188-pct00166
이고, 다음과 같이 표시할 수 있다.
Figure 112014008723188-pct00167
펄스 종료 시간의 비한정 집합(unconstrained set)
Figure 112014008723188-pct00168
가 주어지면,
Figure 112014008723188-pct00169
는 정량화된 종료 시간(quantized end times)의 집합이라 하고,
Figure 112014008723188-pct00170
는 Tmax보다 더 작은 T의 원소들이라 한다. 이 구성은 다음을 의미한다.
Figure 112014008723188-pct00171
Figure 112014008723188-pct00172
Figure 112014008723188-pct00173
를 비교하면,
Figure 112014008723188-pct00174
는 임의 변수 f(Tsw)의 예상으로서 해석될 수 있고, 여기서 f(x)는 다음과 같다.
Figure 112014008723188-pct00175
그리고 마찬가지로
Figure 112014008723188-pct00176
는 임의 변수 g(Tsw)의 예상으로서 해석될 수 있고, 여기서 f(x)는 다음과 같다.
Figure 112014008723188-pct00177
임의의
Figure 112014008723188-pct00178
에 대해, g(x)<f(x)+t이고, 이것은 예상을 해석하는 수단으로서
Figure 112014008723188-pct00179
를 설립하기에 충분하다.
Figure 112014008723188-pct00180
라고 가정하면,
Figure 112014008723188-pct00181
이다.
Figure 112014008723188-pct00182
이 되게 하는 i가 존재할 것이고, 여기서
Figure 112014008723188-pct00183
이고
Figure 112014008723188-pct00184
이다. 그러므로,
Figure 112014008723188-pct00185
이고, 이것은 i>j-1 혹은 i≥j인 i>j를 의미하는
Figure 112014008723188-pct00186
로부터 비롯된다. 또한,
Figure 112014008723188-pct00187
인 경우인데, 그렇지 않으면
Figure 112014008723188-pct00188
는 위에서 정의된 정량화된 종료 시간 T의 집합내에 있지 않기 때문이다. 이러한 두 개의 사실을 함께 묶으면 다음과 같다.
Figure 112014008723188-pct00189
이것은 실제로
Figure 112014008723188-pct00190
에 대해 g(x)<f(x)+t를 설립한다. 거의 동일한 인수(argument)가
Figure 112014008723188-pct00191
에 대해 적용될 수 있다.
따라서, 목표는 다음을 계산하는 것이다.
Figure 112014008723188-pct00192
이 계산에 대한 표준 방법은 동적 프로그래밍이다. 임의의
Figure 112014008723188-pct00193
Figure 112014008723188-pct00194
에 대해, 다음을 정의한다.
Figure 112014008723188-pct00195
이것은 평균 나머지 기입 시간에 대응하는데, 이때 후속 펄스 종료 시간 {m,t}를 가지면서 mt에서 새로운 펄스가 시작하는 것을 가정하고, 시간 mt 이전에는 스위칭이 생성되지 않음을 가정한다. 펄스가 mt에서 시작함을 가정하면 펄스 mt에 후속하는 가장 좋은 펄스 종료 시간의 선택으로서 다음을 정의한다.
Figure 112014008723188-pct00196
분명히
Figure 112014008723188-pct00197
이다. 동적 프로그래밍은
Figure 112014008723188-pct00198
에 대해
Figure 112014008723188-pct00199
를 기반으로
Figure 112014008723188-pct00200
을 재귀적으로 계산하는 것을 수반한다.
Figure 112014008723188-pct00201
에 대해 정확히 하나의 가능한 펄스 종료 시간이 존재하며, 다시 말해서 mmaxt에서의 한 번의 종료가 존재하므로 다음과 같음에 유의하라.
Figure 112014008723188-pct00202
m<mmax-1에 대해, mmaxt에서 종료하는 단일 펄스를 이용할 수 있고, 이 경우에는 다음과 같다.
Figure 112014008723188-pct00203
또는 중간 시간에서 종료하는 n≥2 펄스를 이용할 수 있다. 이 경우에 다음이 판명된다.
Figure 112014008723188-pct00204
이것은 다음처럼 보여진다.
Figure 112014008723188-pct00205
Figure 112014008723188-pct00206
Figure 112014008723188-pct00207
에 대해
Figure 112014008723188-pct00208
와 처음에 제공된 수식을 조합하면, 다음이 주어진다.
Figure 112014008723188-pct00209
그러므로, m=0에 이르기까지
Figure 112014008723188-pct00210
에 대해
Figure 112014008723188-pct00211
로부터
Figure 112014008723188-pct00212
를 계산할 수 있다. 펄스 종료 시간을 최적화하는 것은 각각의 m에 대해 mt를 최적화하는 것을 게속 추적함으로써 발견될 수 있고, 여기서 만약에 Tmax에서 종료하는 하나의 펄스에 대응하는 첫 번째 항목에 의해 외곽 최소치가 달성된다면, m1을 최적화하는 것은 mmax이도록 선택될 수 있다.
알고리즘의 복잡성은
Figure 112014008723188-pct00213
동작보다 더 나쁜 것은 없다는 것이 쉽게 보여진다. 전역 검색과 비교하여 m1에 대한 최소화의 계산을 극적으로 빠르게 하는 간단한 방법은 m1=m+1에서 시작하여 m1의 각각의 연속적으로 큰 값에 대해 최소 실행을 계산하고,
Figure 112014008723188-pct00214
이 최소 실행을 초과하게 하는 m1인 검색은 무시하는 것이다. m1에서
Figure 112014008723188-pct00215
은 증가하고 비용의 다른 컴포넌트들은 항상 비음수(non-negative)이므로, 이런 방식으로 무시하는 것은 최적성을 보존한다.
다양한 기입 방법들의 해석 결과
도 10은 로그 정규 분포 스위칭 시간의 특징을 나타내는 메모리 소자를 포함하는 메모리에 데이터를 기입하는 다수의 상이한 기입 방법을 비교한 비교표를 제공한다. 이 표는 두 개의 수평 섹션(1002, 1004)으로 수평 분할되어 있는데, 수평 섹션(1002)은 메모리 소자로부터의 피드백 신호를 모니터링하는 것을 포함하는 방법에 대한 판독 비용이 고려되지 않은 다양한 기입 방법에 대해 계산된 특징들을 보여주고, 수평 섹션(1004)은 그 판독 비용이 추정되어 다양한 기입 방법의 특성 계산에 포함된 다중 펄스 기입 방법에 대한 계산된 특징을 보여준다. 도 10에 도시된 표는 수직적으로 두 개의 수직 섹션으로 분할되는데, 제 1 수직 섹션(1006)은 스위칭 실패 확률
Figure 112014008723188-pct00216
를 보장하도록 특성이 계산된 것이고, 제 2 수직 섹션(1008)은 스위칭 실패 확률
Figure 112014008723188-pct00217
을 보장하도록 특성이 계산된 것이다. 각각의 수편 섹션의 각각의 수직 섹션에서, 혹은 다시 말해서 표의 각각의 사분면에서,
Figure 112014008723188-pct00218
및 이득이 고려된 기입 방법의 각각에 대해 도시되어 있는데, 코드화 방법에 대해 명확히 보여지는
Figure 112014008723188-pct00219
를 갖는다. 제 2 수평 섹션(1004)은 다중 펄스에 대해 획득되는 특성을 보여주는데, 지정된 Tmax를 갖고 τ의 다양한 비율과 일치하는 펄스 사이의 판독 비용을 갖는다.
도 10에 도시된 표에 보여진 데이터의 해석으로 알 수 있듯이, 코드화된 기입 방법에 대한 이득은 일반적으로 비코드화된 기입 방법에 대한 것보다 더 크고, 평균 혹은 예상 펄스 시간 Tavg는 일반적으로 비코드화된 방법보다 코드화된 방법에 대해 더 작다. 코드화된 방법에 대한 Tmax 전압-인가 시간은 모든 경우에 비코드화된 방법에 대한 Tmax보다 상당히 작다. 비코드화된 방법에 비해 코드화된 방법에 대한 Tmax에서의 감소는 판독 비용이 계산에 고려된 경우라도 생성한다. 더 나아가, 피드백을 이용하는 다중 펄스 방법에 대한 이득은 1-펄스 코드화 방법에 대한 것보다 훨씬 더 크다.
도 11은 도 10에 제공된 표의 첫 번째 가로 섹션의 데이터를 그래프로 예시한다. 도 11에서, 스위칭 실패 확률은 수직축(1102)에 대해 그려지며, 비트당 예상 펄스 시간 Tavg이 수평축(1104)에 대해 그려진다. 예컨대 곡선(1106)처럼 각각의 곡선은 8개의 상이한 기입 방법의 각각에 대해 스위칭 실패 확률과 Tavg 사이의 함수 관계를 예시한다. Tavg는 이용되는 펄스의 개수가 증가할수록 상당히 감소되는 것을 알 수 있고, 코드화 방법에 대한 Tavg 값은 일반적으로 비코드화된 방법에 대한 것보다 더 작다.
Figure 112014008723188-pct00220
에서, 코드화 2-펄스 방법은 비코드화 2-펄스 방법보다 3dB의 추가 이득을 제공하고, 특히 코딩은 최악의 경우 대 평균의 비율을 약 50:1에서 3:1로 줄인다. 사실상, 2-펄스 비코드화 방법은 1-펄스 코드화 방법보다 정확히 1.8dB의 이득을 더 갖는다. 3-펄스 비코드화 및 코드화 방법을 비교할 때, 코딩은 예상 총 펄스 길이에 추가 이득을 제공하고(
Figure 112014008723188-pct00221
에서 1dB), 최악의 경우 대 평균의 비율을 더 개선한다. 실제로, 도 11에 도시된 것처럼, 관심있는 Pb의 범위에 대해서 3-펄스 비코드화 곡선은 2-펄스 코드화 곡선에 매우 근접한데, 2-펄스 코드화 방법의 경우 3:1의 비율인데 비해 3-펄스 비코드화 방법은
Figure 112014008723188-pct00222
에서 107:1의 최악 경우 대 평균 비율을 초래한다. 연속 기입 방법의 경우, 로그 정규 밀도의 평균에 대한 가장 빠른 수렴(convergence)의 효과가 도 11에 보여지는데, 여기서 연속 기입 방법의 곡선은 비코드화 경우에
Figure 112014008723188-pct00223
에서, 그리고 코드화 방법인 경우에는
Figure 112014008723188-pct00224
에서 사실상 수직 기울기로 떨어지는 것을 볼 수 있다(파라미터 예에서 이용되는
Figure 112014008723188-pct00225
에 대해
Figure 112014008723188-pct00226
임). 결과적으로, 평균 펄스 길이는 사실상 목표 BER과 무관하고, 이 경우에 비코드화 방법과 코드화 방법 사이의 코딩 이득의 차이는 비코드화에 유리하도록
Figure 112014008723188-pct00227
이다. 여전히 코드화된 방법은 최악 경우 대 평균 비율을 많이 개선하는데,
Figure 112014008723188-pct00228
에서 비코드화된 경우에 239:1에서 코드화된 경우에는 6.9;1로 개선한다.
연속 피드백을 이용하면, 3-펄스 코드화 방법보다 약 2.3dB의 추가적인 코딩 이득을 제공한다(평균 펄스 길이에서 1.7:1의 비율). 원칙적으로, 이러한 차이는 펄스 개수를 임의적으로 증가시킴으로써 이산적인 펄스 설정에서 줄여질 수 있다. 실제로, 연속 펄스 경우는 이산 펄스 경우의 한도처럼 펄스의 개수가 무한대인 것으로 보여질 수 있다.
종합하면, 특정 멤리스터 장치의 로그 정규 스위칭 동작으로 제기되는 문제점을 해결하려는 두 개의 메커니즘의 효과 및 상호 작용이 해석된다. 다양한 설정에서, 코딩의 이용은 평균 및 최악 스위칭 시간을 줄여줌으로써 시스템의 총 성능을 상당히 개선한다. 이러한 개선은 에너지 소비 및 장치 감손면에서 절약으로 해석되며, 기입 처리량면에서도 상당히 증가시킨다. 피드백 메커니즘과 오류 정정 코딩의 신중한 조합으로, 멤리스터의 로그 정규 스위칭 동작은 오늘날의 저장 시스템의 신뢰도 요건을 충족시키는데 장애물이 될 수 없다.
도 12는 여러 가지 상이한 τ의 비율인 고려중인 판독 시간들에 대해 원하는 스위칭-실패 확률을 달성하는 다중 펄스 기입 방법과 관련한 최대 펄스 개수 및 평균 펄스 개수를 기재한 표를 제공한다. 도 12에 제공된 표에서 알 수 있듯이, 펄스의 최대 개수는 비코드화 방법보다 코드화 방법의 경우에 더 작다.
도 13은 비코드화 2-펄스 기입 방법 및 코드화 2-펄스 기입 방법과 관련하여 기입 도착 간격 시간(inter-arrival times)에 대한 예상 대기 시간의 그래프를 도시한다. 도 13에서 알 수 있듯이, 모든 기입 도착 간격 시간에 대해 코드화 2-펄스 기입 방법에 대한 예상 대기 시간은 비코드화 2-펄스 방법에 대한 예상 대기 시간보다 훨씬 더 작다. 코딩 오버헤드(coding overhead)는 코드화 방법의 경우에
Figure 112014008723188-pct00229
에 포함되는 반면, 비코드화 방법의 경우에는
Figure 112014008723188-pct00230
에 포함되며, 이것은 두 가지 방법 사이의 공정한 비교를 허용하며, 시간 Tmax와 Tavg도 비슷하게 크기가 조정된다. 정보 기입 처리량은
Figure 112014008723188-pct00231
에 비례한다. 이러한 처리량에 대한 코딩의 긍정적 영향은 도면에서 명확한데, 큐잉잉 시스템은 없는 것과(
Figure 112014008723188-pct00232
) (
Figure 112014008723188-pct00233
이다. 큐잉잉이 이용될 때, 예상 E[Q]은 기입 요청에 대한 적절한 버퍼의 설계를 위해 안내(guidance)를 제공한다.
전류 인가가 지시된 전자 데이터 저장 장치의 예들
도 14는 피드백 신호 및 ECC 인코딩을 모두 포함하는 데이터 저장 장치를 예시한다. 피드백 신호를 이용하고 기입 전에 데이터를 인코딩함으로써, 도 10에 제공되고 도 11에 예시된 데이터에 의해 도시되어 전술된 것처럼 최대 기입 대기시간 Tmax는 ECC 인코딩이 이용되지 않을 때 필요한 Tmax에 비해 훨씬 더 감소된다. 최대 기입 대기시간의 감소와 Tavg의 감소는 데이터 저장 장치에 대해 더 짧은 평균 및 최대 기입 사이클을 유도하고, 그에 따라 더 높은 데이터 입력 대역폭을 유도한다. 피드백 신호는 모든 의도된 메모리 소자에 대한 스위칭이 완료되자마자 기입 전압 혹은 메모리내의 특정 메모리 소자를 스위칭하는데 필요한 다른 힘이나 그래디언트의 인가가 종료되게 하거나 혹은 단락되게 한다. ECC 인코딩의 이용은 기입 전압 인가와 관련한 최대 지속기간 또는 메모리 소자를 스위칭하기 위한 다른 힘이나 그래디언트의 인가와 관련한 지속기간이 상당히 감소되게 하면서도 데이터 저장 장치에 대해 원하는 비트 오류율을 제공하게 한다. Tmax를 단축시키는 것은 도 3a에서 PDF의 수평축을 따라서 Tmax를 좌측으로 이동시켜서, Tmax를 지나서 PDF의 후미에 더 많은 영역을 남겨두는데, 이것은 스위칭이 최대 Tmax까지의 지속 기간으로 기입 전압을 인가하는 동안에 생성하지 않을 확률에 대응한다. 그러나, ECC 인코딩의 이용은 스위칭 오류의 대부분이 이후에 정정되게 하여, 판독 동작 이후에 원하는 비트 오류율에 대응하는 레벨까지 후미 영역을 효과적으로 감소시킨다. 이후에 논의되듯이, ECC 인코딩과 피드백 신호의 모니터링을 모두 이용하면, 더 작은 버퍼가 착신 기입 요청에 대해 이용될 수 있게 하여, 데이터 저장 장치의 비용과 복잡도를 줄여준다.
일 예를 나타내는 정보 저장 장치는 1차원 혹은 2차원 이상의 메모리 소자 어레이(1402)를 포함한다. 도 14에서, 각각의 메모리 소자는 에컨대 디스크(1404)처럼 디스크로 표현된다. 메모리 소자는 열(rows) 및 행(columns)으로 배열되고, 열 내부의 메모리 소자는 수평 전극과 상호 연결되고, 각각의 행 내의 메모리 소자는 수직 전극 혹은 신호 라인과 상호 연결된다. 예를 들어, 도 14에서, 메모리 소자(1406-1413)는 수평 신호 라인(1414)에 의해 상호 연결된다. 메모리 소자(1413, 1416-1423)는 수평 신호 라인(1424)에 의해 상호 연결된다. 제 1 디멀티플렉서 혹은 다른 제어 소자(1426)는 수평 신호 라인에 인가되는 전압을 제어하고, 제 2 디멀티플렉서 혹은 다른 제어 소자(1428)는 수직 신호 라인에 인가되는 전압을 제어한다.
각각의 메모리 소자는 도 5를 참조하여 설명된 것처럼 피드백 신호를 생성하는데, 이 피드백 신호는 수평 및 수직 피드백 신호 라인의 출력이다. 도 14에서, 메모리 소자에 의해 생성된 피드백 신호는 예컨대 메모리 소자(1413)에서 나오는 대각선 세그먼트(1429)처럼 대각선 세그먼트(diagonal line segments)로 도시된다. 제 1 및 제 2 제어기(1426, 1428)는 판독/기입 제어기로 복귀되는 기입 완료 신호를 생성하기 위해 기입 동작동안 이러한 피드백 신호들을 모니터한다. 데이터 저장 장치에 기입될 데이터의 데이터 저장 소자 유닛의 값(worth)과 함께 판독/기입 제어기(1430)에 의해 제 1 및 제 2 제어 소자(1426, 1428)로 데이터 저장 유닛 어드레스가 공급될 때, 제 1 및 제 2 제어 소자(1426, 1428)는 어드레스 데이터 저장 유닛에 대응하는 메모리 소자를 데이터 저장 장치로 기입될 데이터 내부의 비트값에 대응하는 상태로 하기 위해 특정 신호 라인으로 적절한 전압을 인가한다. 기입을 위한 정보 저장 장치에 대한 데이터 입력(1432)은 입력 데이터를 원형 버퍼(circular buffer)(1436)에 버퍼시키는 WERITE 버퍼링 컴포넌트(1434)에 의해 버퍼된다. WERITE 버퍼링 컴포넌트는 전체 시간에 대해 정보 저장 장치에 의해 수용될 수 있는 것보다 빠른 속도로 짧은 버스트 간격(short burst intervals) 동안 기입 동작이 정보 저장 장치에 의해 수신되게 한다. WERITE의 버스트는 원형 버퍼 내부에 저장되게 되고, 버스트의 최종 기입 동작이 수신된 이후에, 기입 동작이 판독/기입 제어기에 의해 가능한 한 빠르게 처리되어, 마침내 원형 큐잉은 비게 된다. 판독/기입 제어기는 기입 버퍼링 컴포넌트로부터 기입 동작 가용 신호(1438) 를 수신하여 판독/기입 제어기가 기입 버퍼링 컴포넌트와 협력하게 함으로써, 원형 큐잉로부터 기입 동작을 큐잉잉 해제(dequeue)시켜서 ECC 인코더(1440)에 입력한다. 장치에 기입될 데이터는 먼저 ECC 인코더(1440)로 공급하는데, 이 인코더는 전술한 것처럼 데이터를 일련의 코드워드로 인코딩하여 판독/기입 제어기(1430)로 전송한다. 판독/기입 제어기는 제 1 및 제 2 제어기(1426, 1428)를 제어하여 데이터가 데이터 저장 장치에 기입되게 하고, 더불어 제 1 및 제 2 제어기(1426, 1428)를 제어하여 데이터 저장 장치로부터 데이터를 판독하여 이 판독된 데이터를 ECC 디코더(1442)로 전송되게 하며, ECC 디코더는 데이터 저장 장치로부터 판독된 코드워드를 디코딩하여 비코드화 데이터(1444)를 출력한다. 판독/기입 제어기(1430)는 데이터(1446)를 수신하여 데이터(1448)를 출력하며, 제어 신호(1450)을 수신하여 비 데이터 정보(non-data information)(1452)를 출력하며, 데이터 및 제어 신호(1454, 1456)를 제 1 및 제 2 제어기(1426, 1428)에 각각 출력하며, 데이터 및 제어 신호(1458, 1460)를 제 1 및 제 2 제어기(1426, 1428)로부터 각각 수신한다.
대안적인 예로서, ECC 인코더는 이전에 설명된 예에서는 큐잉잉되는 비코드화 데이터가 아니라 내부 기입 동작을 위해 큐잉잉된 인코딩된 데이터를 이용해 기입 버퍼링으로부터 입력 시퀀스 업스트림을 생성한다. 다른 대안적인 예로, ECC 인코더는 판독/기입 제어기에 병합될 수도 있고, 혹은 제 1 및 제 2 제어기 이전의 입력 시퀀스 내부의 다른 위치에 존재할 수도 있다.
대안적인 예에서, 제 1 제어기와 제 2 제어기 중 하나 혹은 판독/기입 제어기는 전술한 다중 펄스 방법을 이용하여 메모리 소자에 데이터를 반복적으로 기입하고, 이 데이터를 다시 판독하여 기입이 성공했는지를 결정한다. 이 대안적인 예에서, 메모리 소자는 피드백 신호를 생성하지 않는다. 실제로, 제 1 및 제 2 제어기(1426, 1428)는 다중 기입 펄스를 메모리 소자에 인가하고, 각각의 펄스 이후에 펄스가 인가된 그 메모리 소자의 내용을 판독하여, 데이터가 정확히 기입되었는지 결정한다. 다중 펄스 기입과 정확한 데이터 저장을 검증하는데 이용되는 중간의 판독 동작에 기반하여, 메모리 소자의 상태가 연속적으로 모니터되는 첫 번째 설명된 예에서 처럼, 제 1 및 제 2 제어기는 판독/기입 제어기로 복귀되는 기입 완료 신호를 생성한다.
다음의 논의에서, 기입 동작은 제 1 및 제 2 제어기에 의해 하나 이상의 메모리 소자 어레이에 대해 내부 기입 동작에서 기입 가능한 일부 최대량의 데이터를 함유하는 것으로 가정된다. 그러므로, 기입 동작과 연관된 데이터는 ECC 인코딩된 다음, 하나 이상의 어레이의 메모리 소자에 기입을 위해 제 1 및 제 2 제어기로 보내진다. 하나 이상의 어레이의 메모리 소자에 의해 제공되는 피드백 신호는 전체적인 내부 기입이 성공했는지 여부를 나타낸다. 제 1 및 제 2 제어기는 개별 메모리 어레이에 대해 상이한 시간 주기 동안 기입 전압을 인가할 수도 있고, 또는 내부 기입 동작 동안 개별 메모리 어레이에 상이한 개수의 펄스를 인가할 수도 있다. 선택적으로, 더 복잡한 버퍼링 메커니즘이 단일 내부 기입 동작에서 기입 가능한 데이터 분량보다 더 많은 분량과 연관된 수신된 기입 동작을 저장하고 그리고 방대한 분량의 데이터와 연관된 수신된 기입 동작에 대한 다중 내부 기입 동작을 생성하는데 이용될 수도 있다. 제 1 및 제 2 제어기는 일반적으로 내부 기입 동작 동안에 다중 메모리 소자에 대한 저장을 동시에 제어한다.
도 15는 기입-버퍼링 컴포넌트(도 14의 도면부호(1434))의 동작에 대한 제어 흐름도를 도시한다. 단계(1502)에서, 다수의 변수들이 초기화된다. 변수 "inPtr"는 원형 버퍼내부의 제 1 데이터 저장 유닛을 지시하거나 제 1 데이터 저장 유닛의 어드레스를 포함하도록 설정된다. 변수 "outPtr"는 변수 "inPtr"와 동일하게 설정된다. 변수 "full"은 False로 설정된다. 이 변수는 원형 버퍼가 거의 채워졌을 때를 나타내기 위해 기입 버퍼링 컴포넌트에 의해 판독/기입 제어기로 전송된 신호에 대응한다. 변수 "avail"는 FALSE로 설정된다. 이 변수는 기입 동작이 판독/기입 제어기로의 배달이 유효한 때를 나타내기 위해 기입 버퍼링 컴포넌트에 의해 판독/기입 제어기로 전송된 신호에 대응한다. 변수 "newWrite"는 FALSE로 설정되고, 변수 "writeDQ"도 FALSE로 설정된다. 변수 "newWrite"는 외부 장치로부터 전송되는 신호로, 기입 동작이 요청됨을 나타내며, 변수 "writeDQ"는 판독/기입 제어기에 의해 기입 버퍼링 컴포넌트로 전송되는 신호로, 판독/기입 제어기가 원형 버퍼로부터 다음 판독 동작을 판독했음을 나타낸다.
다음, 단계(1504-1508)의 연속 루프에서, 단계(1505)에서 기입 버퍼링 컴포넌트는 임의의 새로운 기입 동작이 외부 장치에 의해 요청되었는지를 결정하고, 단계(1506)에서 루틴 "입력"을 호출함으로써 기입 동작을 처리한다. 기입 버퍼링 컴포넌트는 단계(1507)에서 "writeDQ" 신호를 계속 모니터하고, 판독/기입 제어기가 다음 기입 동작을 처리할 때, 단계(1508)에서 루틴 "ouput"을 호출함으로써 원형 큐잉을 조정한다.
도 16은 "입력" 루틴(routine)(도 15의 도면부호(1506))에 대한 흐름 제어도를 제공한다. 단계(1602)에서, 루틴 "입력"은 원형 큐잉이 가득 찼는지 여부를 결정한다. 변수 "outPtr"에 저장된 값이 1씩 증가되는 변수 "inPtr"에 저장된 값과 동일할 때, 또는 outPtr이 버퍼내의 최종 데이터 저장 유닛을 지시하고 inPtr이 버퍼내의 첫 번째 데이터 저장 유닛을 지시할 때, 원형 큐잉은 채워진다. 이것은 절대로 일어나지 않아야 한다. 그러나 이 상황은 정보 저장 장치가 단순히 수신된 기입 동작을 누락할 때 생성하는 것인데, 그 이유는 방대한 수의 이전에 수신된 기입 동작이 현재 원형 버퍼에 저장되어 있어서 수신된 기입 동작을 처리할 방법이 없기 때문이다. 다음, 단계(1604)에서, 루틴 "입력"은 기입 동작을 변수 "inPtr"가 지정하는 원형 큐잉의 슬롯에 저장한 다음, 변수 "inPtr"를 후속 버퍼 슬롯을 지정하도록 조정한다. 모듈러 연산(modular arithmetic)이 선형 버퍼를 원형으로 만들기 위해 이용된다. 다음, 단계(1605)에서, 루틴 "입력"은 변수 "avail"을 TRUE로 설정하여, 다음 기입 동작이 유효함을 나타내는 판독/기입 제어기로의 신호를 생성한다. 단계(1606)에서 결정된 것처럼 원형 버퍼내에 남아있는 두 개 혹은 그 미만의 자유(즉, 미사용중)인 슬롯이 존재할 때, 단계(1608)에서 루틴 "입력"은 변수 "full"을 TRUE로 설정하여, 후속하여 수신된 기입 동작의 누락을 막기 위해 가능한 빨리 원형 버퍼가 비워졌음을 나타내는 판독/기입 제어기로의 신호를 생성한다. 마지막으로, 단계(1610)에서, 변수 "newWrite"는 FALSE로 설정되어, 외부 장치로부터 수신된 다음 기입 동작이 후속하여 검출될 수 있다.
도 17은 "출력" 루틴(도 15의 도면부호(1508))에 대한 흐름 제어도를 제공한다. 단계(1702)에서, 변수 "outPtr"은, 원형 버퍼 슬롯의 비움(emptying)이 단계(1704)에서 결정된 것처럼 자유 원형 버퍼 슬롯의 개수를 3개 이상으로 증가시킬 때, 판독/기입 제어기가 기입 동작을 수신한 원형 버퍼 슬롯 다음의 원형 버퍼 슬롯을 지시하도록 모듈로 연산에 의해 조정되고, 그 다음 단계(1706)에서 변수 "full"은 FALSE로 설정되어, 가능한 빨리 원형 버퍼를 비우는 것을 필요로 하는 판독/기입 제어기로 신호를 보내는 것을 중단한다. 단계(1708)에서, 변수 "writeDQ"는 FALSE로 설정되어, 원형 큐잉이 기입 버퍼링 컴포넌트로부터 판독/기입 제어기로의 다음 기입 동작의 다음 전송을 조정했음을 판독/기입 제어기에게 신호한다. 단계(1710)에서, 기입 버퍼링 컴포넌트는 원형 버퍼가 이제 비워진 상태인지를 결정한다. 만약 그렇다면, 단계(1712)에서 변수 "avail"는 FALSE로 설정되어, 판독/기입 제어기에게 현재 유효한 기입 동작이 존재하지 않음을 지시한다.
도 18은 판독/기입 제어기(도 14의 도면부호(1430))의 동작을 예시하는 흐름 제어도를 제공한다. 단계(1802)에서, 판독/기입 제어기는 파워-업 또는 리셋 즉시 초기화된다. 다음, 단계(1804-1808)의 연속 루프에서, 판독/기입 제어기는 변수 "avail"로 표시되는 신호와 외부 공급원으로부터의 판독 요청을 모니터하여, 기입 요청이 기입 버퍼링 컴포넌트로부터 유효할 때 루틴 "기입"을 호출하고(1806), 신규 판독 요청이 수신된 때에는 루틴 "판독"을 호출한다(1808).
도 19는 "기입" 루틴(도 18의 도면부호(1806))에 대한 흐름 제어도를 제공한다. 루틴 "기입"은 단계(1902-1911)로 이루어진 외부 연속 루프를 포함하고, 이 외부 연속 루프는 단계(1906-1909)로 이루어진 내부 루프를 포함한다. "avail" 신호가 다루어질 기입 요청이 존재함을 나타내는 동안, 루틴 "기입"는 다음 기입 요청을 원형 버퍼로부터 수신하여, 단계(1903)에서 기입 요청과 연관된 데이터를 ECC를 이용해 인코딩한다. 다음, 단계(1904)에서, 루틴 "기입"는 변수 "writeDQ"를 TRUE로 설정하여, 기입 버퍼링 컴포넌트에게 다음 기입 요청이 판독/기입 제어기에 의해 수신되었음을 신호함으로써, 기입 버퍼링 컴포넌트가 기입 요청을 위해 큐잉잉 해제 프로세스를 완료할 수 있게 한다. 단계(1905)에서, 타이머 t는 초기화되고, 판독/기입 제어기는 기입 요청과 연관된 데이터를 메모리에 기입하기 시작한다. 데이터가 기입되는 동안, 루틴 "기입"는 기입 동작 종료가 지시될 때마다 기입 동작을 종료하기 위해 변수 "full"에 대응하는 신호, 제 1 및 제 2 제어기(도 14의 도면부호(1426, 1428))로부터의 피드백 지시 및 타이머 t를 모니터한다. 변수 "full"에 대응하는 신호가 표명될 때, 단계(1907)에서 결정되는 바와 같이, 원형 큐잉로부터의 추가의 기입 요청을 처리 및 제거하기 위해 판독/기입 제어기는 시도된 기입를 즉시 종료하여, 착신 기입 요청이 기입 버퍼링 컴포넌트에 큐잉잉될 수 있게 한다. 기입 동작의 조기 종료는 하나 이상의 메모리 소자가 스위칭에 실패하는 것을 초래할 수 있다. 전술한 바와 같이, 판독/기입 제어기는 ECC 인코딩에 의지하여, 데이터가 메모리로부터 판독될 때 이러한 유형의 데이터 오류를 이후에 정정한다. 단계(1908)에서 결정되듯이, 제 1 및 제 2 제어기(도 14의 도면부호(1426, 1428))로부터의 피드백 지시가 기입이 성공했음을 나타내면, 기입은 종료된다. 그렇지 않다면, 단계(1909)에서 결정되는 바와 같이, 타이머가 기입이 Tmax와 같거나 큰 시간동안 수행되었음을 지시할 때, 기입이 종료된다. 단계(1910)에서, 판독/기입 제어기는 기입 동작을 종료하고, 단계(1911)에서 결정되듯이, 처리될 기입 요청이 여전히 존재할 때, 단계(1903)으로 제어를 복귀시킨다. 그렇지 않다면, "기입" 루틴을 복귀시킨다. 도 19에서, 기입 요청에 대한 데이터는 제 1 및 제 2 제어기에 의해 대응하는 메모리 소자에 동시에 기입된다. 특정 예에서, 기입 요청은 단일 병렬 기입 동작에서 기입 가능한 것보다 더 많은 양의 데이터를 포함할 수 있고, 이런 경우에 도 16에서 추가적인 재귀 루프에 대응하는 추가 로직이 단일 기입 요청과 연관된 모든 데이터를 대응하는 메모리 소자에 기입하는데 필요한 두 개 이상의 기입 동작을 수행하도록 이용될 것이다. 특히, 선택적인 예에서, 메모리 셀은 동시가 아니라 순차적으로 기입될 수도 있다.
전술한 루틴에서, "기입" 루틴에 의해 하나 이상의 어레이의 메모리 소자에 기입 동작에 대응하는 데이터를 기입하는 것은 "기입 버퍼링" 루틴에 의해 수신된 기입 동작을 버퍼링하는 것보다 훨씬 더 오래 걸린다는 것이 가정되었고, 따라서 단계(1904)에서 루틴 "기입"에 의해 writeDQ가 TRUE로 설정될 때, 루틴 "기입 버퍼링"은 다음 기입 동작을 버퍼할 수 있고, "기입" 루틴이 현재 내부 기입 동작을 종료하고 다른 동작에 착수하기 전에, 루틴 "출력"을 호출함으로써 writeDQ를 FALSE로 설정함과 함께 버퍼 포인터의 조정을 처리할 수 있다. 이 가정이 만들어질 수 없다면, 추가 테스트와 단계들이 두 개의 루틴의 동작을 적절히 동기화시키는데 이용되고/되거나 추가 동기화 신호가 두 개의 루틴의 동작을 동기화시키 것이다. 물론, 일반적으로 루틴은 로직 회로와 구현될 수 있는 하드웨어 장치의 동작을 설명하기 위해 이용되며, 여기서 장치의 동작은 하위 구현 레벨에서 동기화된다.
도 19는 메모리 소자의 상태가 계속 모니터되는 연속 기입 방법의 일반적인 설명을 제공한다. 다중 펄스 기입 방법이 채용되는 전술한 선택적인 예에서, 단계(1906-1909)로 이루어진 내부 루프는 기입의 성공 여부와 무관하게 기입 종료 신호가 판독/기입 제어기로부터 수신될 때까지, 혹은 full 플래그나 신호가 설정될 때까지 반복된다.
따라서, 제 1 및 제 2 제어기로부터의 피드백 신호를 모니터링하는 것과 함깨 ECC를 이용함으로써, ECC없이 이용되는 원형 버퍼보다 더 소형의 원형 버퍼가 이용될 수 있다. 다시 말해서, 버퍼 사이즈는 특정 백분율의 기입 동작의 조기 종료를 초래하는 사이즈로까지 감소될 수 있어서, 기입 동작 동안에 대량의 스위칭 오류가 수용될 수 있을 것이다. 그러나, 이러한 대량의 스위칭 오류는 메모리로부터 데이터가 판독될 때 ECC 디코더의 오류 정정 능력에 의해 이후에 감소된다.
비록 본 개시물이 특정 예들을 들어 설명되었더라도, 본 개시물이 이러한 예들로 제한되는 것으로 의도되지는 않았다. 수정안들이 당업자에게는 명확할 것이다. 예를 들어, 피드백 신호와 ECC 인코딩을 둘 다 이용하는 것은 예컨대 멤리스티브 메모리 소자, 상변화 메모리 소자 및 기타의 유형의 메모리 소자를 포함하여 비대칭 스위칭 시간 PDF를 갖는 메모리 소자를 포함하는 다양한 상이한 방식의 정보 저장 장치에서 이용될 수 있다. 정보 저장 장치내에서 이용되는 특정 Tmax의 값과 이용되는 특정 ECC 코드는, 정보 저장 장치에 대한 비트 오류율이 특정의 최대 비트 오류율을 충족시키거나 초과하는 것을 보장하기 위해 다양한 상이한 코드와 계산된 값들로 설정될 수 있다. 특정 유형의 정보 저장 장치에서, 최대 기입 전압 인가 시간 Tmax와 인코딩에 이용되는 ECC 코드는, 동적 BER 요건, 정보 저장 장치의 수명, 특히 메모리 소자의 수명, 정보 저장 장치에서 수행되는 판독/기입 사이클의 총 개수 및 기타 이러한 특징과 파라미터에 따라 동적으로 제어되거나 리셋될 수 있다.
개시된 예들의 전술한 설명은 당업자가 본 개시물을 제작하거나 이용할 수 있게 하기 위해 제공된 것임을 인지해야 한다. 이러한 예들에 대한 다양한 수정은 당업자에게 쉽게 명확할 것이고, 본원에 정의된 일반적인 원리들은 본 개시물의 사상이나 범주를 벗어나지 않고 다른 예들에도 적용될 수 있을 것이다. 따라서, 본 개시물은 본원에 도시된 예들로만 한정되도록 의도된 것이 아니며, 본원에 개시된 원리와 신규한 특징들과 일치하는 가장 넓은 범주에 부합되도록 의도된 것이다.

Claims (15)

  1. 메모리 소자의 하나 이상의 어레이―상기 메모리 소자의 각각은 스위칭 유도 힘 또는 그래디언트(a switching-inducing force or gradient)의 인가에 의하여 적어도 두 개의 상이한 상태 사이에서 스위칭하는 물질과, 피드백 신호를 포함함―와,
    수신된 기입 요청(write request)을 버퍼하는 기입 요청 버퍼(a write-request buffer)와,
    상기 기입 요청과 연관된 데이터를 인코딩하는 오류 제어 코딩 인코더(an error-control-coding encoder)와,
    최대 허용 개수보다 많은 기입 요청이 상기 기입 요청 버퍼에 큐잉(queued)될 때까지, 또는 피드백 신호가 기입 동작이 완료됨을 표시할 때까지, 또는 상기 스위칭 유도 힘 또는 그래디언트가 최대 인가 시간 동안 인가될 때까지, 상기 메모리 소자의 하나 이상의 어레이에 상기 스위칭 유도 힘 또는 그래디언트를 인가함으로써, 상기 기입 요청 버퍼로부터 수신된 상기 기입 요청과 연관되고 상기 오류 제어 코딩 인코더에 의해 인코딩된 데이터를 다수의 메모리 소자에 기입하는 판독/기입 제어기(a READ/WRITE controller)를 포함하는
    데이터 저장 장치.
  2. 제1항에 있어서,
    상기 메모리 소자는 로그 정규 분포 스위칭 시간(log-normally-distributed switching times)에 의해 특징지워지는
    데이터 저장 장치.
  3. 제1항에 있어서,
    상기 최대 인가 시간은, 비코드화 기입 동작(uncoded write operations)에 대해 특정의 비트 오류율을 제공하는 시간보다 더 짧은
    데이터 저장 장치.
  4. 제3항에 있어서,
    상기 판독/기입 제어기에 의해 상기 메모리 소자의 하나 이상의 어레이로부터 판독된 데이터를 디코딩하는 오류 제어 코딩 디코더를 더 포함하는
    데이터 저장 장치.
  5. 제1항에 있어서,
    상기 기입 요청 버퍼의 크기(size)는, 성공적 완료(successful completion) 이전에 또는 상기 스위칭 유도 힘 또는 그래디언트의 최대 인가 시간 동안의 인가(application) 이전에 기수신된(already-received) 기입 요청에 대응하는 임의의 기입 동작이 종료되지 않도록 보장하는 기입 요청 버퍼 사이즈보다 더 작은
    데이터 저장 장치.
  6. 제5항에 있어서,
    디코딩 프로세스 시에, 성공적 완료 이전에 또는 상기 스위칭 유도 힘 또는 그래디언트의 최대 인가 시간 동안의 인가(application) 이전에 종료되는 기수신된 기입 요청에 대응하는 기입 동작의 종료 결과로서 발생되는 스위칭 오류에도 불구하고 특정의 비트 오류율을 제공하도록 충분한 개수의 오류 생성 비트값을 정정하여, 상기 판독/기입 제어기에 의해 메모리 소자의 하나 이상의 어레이로부터 판독된 데이터를 디코딩하는 오류 제어 코딩 디코더를 더 포함하는
    데이터 저장 장치.
  7. 제1항에 있어서,
    상기 데이터 저장 장치는 스위칭 유도 전압이 상기 데이터 저장 장치에 인가될 때 제 1 저항성 상태와 제 2 저항성 상태 사이를 스위칭하는 멤리스티브 물질(memristive material)인
    데이터 저장 장치.
  8. 메모리 소자의 하나 이상의 어레이―상기 메모리 소자의 각각은 스위칭 유도 힘 또는 그래디언트의 인가에 의하여 적어도 두 개의 상이한 상태 사이에서 스위칭되는 물질과 피드백 신호를 포함함―를 포함하는 데이터 저장 장치에 데이터를 기입하는 방법에 있어서,
    오류 제어 코딩 인코더에 의해, 수신된 기입 요청과 연관된 데이터를 인코딩하는 단계와,
    상기 기입 요청을 기입 요청 버퍼에 큐잉(queuing)하는 단계와,
    최대 허용 개수보다 많은 기입 요청이 상기 기입 요청 버퍼에 큐잉될 때까지, 또는 피드백 신호가 기입 동작이 완료됨을 표시할 때까지, 또는 상기 스위칭 유도 힘 또는 그래디언트가 최대 인가 시간 동안 인가될 때까지, 상기 메모리 소자의 하나 이상의 어레이에 상기 스위칭 유도 힘 또는 그래디언트를 인가함으로써, 상기 인코딩된 데이터를 다수의 메모리 소자에 기입하는 단계를 포함하는
    데이터 기입 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 어레이에 비코드화 데이터를 기입하기 위한 특정의 비트 오류율을 보장하도록 계산된 최소 인가 시간보다 짧지만, 이후에 상기 하나 이상의 어레이로부터 데이터가 판독되어 상기 하나 이상의 어레이로부터 판독된 데이터 내의 특정 수까지의 비트 오류를 정정하는 오류 제어 코딩 디코더에 의해 디코딩될 때, 상기 데이터 저장 장치에 대한 데이터 기입 및 데이터 판독과 관련한 총 비트 오류율이 상기 특정의 비트 오류율보다 작거나 같을 정도로, 충분히 길게 상기 최대 인가 시간을 선택하는 단계를 더 포함하는
    데이터 기입 방법.
  10. 제8항에 있어서,
    기수신된 기입 요청에 대응하는 임의의 기입 동작이 성공적 완료 이전에 또는 상기 스위칭 유도 힘 또는 그래디언트의 최대 인가 시간 동안의 인가 이전에 종료되지 않도록 보장하는 기입 요청 버퍼 사이즈보다 작지만, 상기 하나 이상의 어레이로부터 데이터가 이후에 판독되어 상기 하나 이상의 어레이로부터 판독된 데이터 내의 특정 수의 비트 오류를 정정하는 오류 제어 코딩 디코더에 의해 디코딩될 때, 상기 데이터 저장 장치에 대한 데이터 기입 및 데이터 판독과 관련한 총 비트 오류율이 특정의 비트 오류율보다 작거나 같을 정도로 충분히 크게, 상기 기입 요청 버퍼의 사이즈를 선택하는 단계를 더 포함하는
    데이터 기입 방법.
  11. 제8항에 있어서,
    상기 데이터 저장 장치는 스위칭 유도 전압이 상기 데이터 저장 장치에 인가될 때 제 1 저항성 상태와 제 2 저항성 상태 사이를 스위칭하는 멤리스티브 물질인
    데이터 기입 방법.
  12. 제8항에 있어서,
    상기 메모리 소자는 로그 정규 분포 스위칭 시간에 의해 특징지워지는
    데이터 기입 방법.
  13. 제8항에 있어서,
    상기 피드백 신호가 연속적으로 모니터되는 동안, 상기 스위칭 유도 힘 또는 그래디언트는 상기 메모리 소자의 하나 이상의 어레이에 연속적으로 인가되는
    데이터 기입 방법.
  14. 제8항에 있어서,
    상기 스위칭 유도 힘 또는 그래디언트는 상기 메모리 소자의 하나 이상의 어레이에 이산적인 간격(discrete intervals)동안 인가되되, 상기 이산적인 간격 사이에 상기 피드백 신호는 데이터가 성공적으로 기입되었는지 여부를 결정하는데 이용되는
    데이터 기입 방법.
  15. 메모리 소자의 하나 이상의 어레이―상기 메모리 소자의 각각은 스위칭 유도 힘 또는 그래디언트의 인가에 의하여 적어도 두 개의 상이한 상태 사이에서 스위칭되는 데이터 저장 매체를 포함함―와,
    기입 요청 버퍼와,
    수신된 데이터를 인코딩하는 오류 제어 코딩 인코더와,
    최대 허용 개수보다 많은 기입 요청이 상기 기입 요청 버퍼에 큐잉될 때까지, 또는 기입 동작이 완료될 때까지, 또는 최대 개수의 펄스가 인가될 때까지, 각각의 펄스 이후에 상기 기입 동작이 판독 동작에 후속됨을 확인하면서 다수의 펄스 내에서 상기 메모리 소자의 하나 이상의 어레이에 상기 스위칭 유도 힘 또는 그래디언트를 인가함으로써, 상기 오류 제어 코딩 인코더에 의해 인코딩된 데이터를 다수의 메모리 소자에 기입하는 판독/기입 제어기를 포함하는
    데이터 저장 장치.
KR1020147002360A 2011-07-27 2011-07-27 멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템 KR101620761B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/045529 WO2013015803A1 (en) 2011-07-27 2011-07-27 Method and system for reducing write-buffer capacities within memristor-based data-storage devices

Publications (2)

Publication Number Publication Date
KR20140033215A KR20140033215A (ko) 2014-03-17
KR101620761B1 true KR101620761B1 (ko) 2016-05-23

Family

ID=47601411

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147002360A KR101620761B1 (ko) 2011-07-27 2011-07-27 멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템

Country Status (6)

Country Link
US (1) US9405614B2 (ko)
EP (1) EP2737482A4 (ko)
KR (1) KR101620761B1 (ko)
CN (1) CN104025193A (ko)
TW (1) TWI520149B (ko)
WO (1) WO2013015803A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014108215A1 (en) * 2013-01-14 2014-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Asymmetrical memristor
US9269432B2 (en) * 2014-01-09 2016-02-23 Micron Technology, Inc. Memory systems and memory programming methods
US10157668B2 (en) 2015-05-29 2018-12-18 Hewlett Packard Enterprise Development Lp Memristance feedback tuning
WO2017010991A1 (en) 2015-07-14 2017-01-19 Hewlett Packard Enterprise Development Lp Determining first write strength
GB2562915B (en) * 2016-03-11 2021-04-07 Halliburton Energy Services Inc Bit-scrambling in differential pulse position modulation
CN105976023B (zh) * 2016-04-29 2018-03-20 华中科技大学 一种基于忆阻器的情景记忆电路及其操作方法
CN105976861B (zh) * 2016-05-17 2018-10-09 华南理工大学 一种利用spwm控制实现的大功率忆阻器电路
RU169207U1 (ru) * 2016-11-17 2017-03-09 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением ошибок
RU175054U1 (ru) * 2017-06-20 2017-11-16 Межрегиональное общественное учреждение "Институт инженерной физики" Устройство хранения и передачи данных с обнаружением одиночных и двойных ошибок
CN108427843A (zh) * 2018-03-14 2018-08-21 常州大学 一种具有隐藏共存非对称行为的三维忆阻Hindmarsh-Rose模型电路
US11244720B2 (en) 2020-01-09 2022-02-08 Kookmin University Industry Academy Cooperation Foundation Electronic device and operating method of electronic device
CN112489717B (zh) * 2020-11-06 2023-09-01 苏州大学 基于蕴含逻辑的自容错忆阻存储器单元纠错方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060044878A1 (en) 2004-09-02 2006-03-02 Perner Frederick A Programming of programmable resistive memory devices
US20100235714A1 (en) 2009-03-13 2010-09-16 Kabushiki Kaisha Toshiba Resistance change memory device
US20110069529A1 (en) 2009-09-22 2011-03-24 Bhaskar Srinivasan Methods Of Reading And Using Memory Cells

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4694040B2 (ja) * 2001-05-29 2011-06-01 ルネサスエレクトロニクス株式会社 半導体記憶装置
US7430701B2 (en) * 2005-06-16 2008-09-30 Mediatek Incorporation Methods and systems for generating error correction codes
CN101501779B (zh) * 2006-05-12 2013-09-11 苹果公司 具有自适应容量的存储设备
KR100843209B1 (ko) 2006-11-02 2008-07-02 삼성전자주식회사 버퍼 메모리를 포함하는 저항형 메모리 장치, 저항형메모리 장치를 포함하는 메모리 시스템, 및 저항형 메모리장치의 데이터 기입/독출 방법
US8139432B2 (en) 2006-12-27 2012-03-20 Samsung Electronics Co., Ltd. Variable resistance memory device and system thereof
KR100855585B1 (ko) 2007-01-23 2008-09-01 삼성전자주식회사 소오스 라인 공유구조를 갖는 저항성 랜덤 억세스 메모리및 그에 따른 데이터 억세스 방법
EP1947652A1 (en) * 2007-09-13 2008-07-23 STMicroelectronics S.r.l. Phase-change memory device with error correction capability
JP2010146654A (ja) 2008-12-19 2010-07-01 Toshiba Corp メモリ装置
US8510631B2 (en) * 2009-11-24 2013-08-13 Mediatek Inc. Multi-channel memory apparatus and method thereof
CN101916211B (zh) * 2010-07-16 2012-06-27 中国人民解放军国防科学技术大学 一种基于反馈的动态分级数据存储设备可靠性保证方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060044878A1 (en) 2004-09-02 2006-03-02 Perner Frederick A Programming of programmable resistive memory devices
US20100235714A1 (en) 2009-03-13 2010-09-16 Kabushiki Kaisha Toshiba Resistance change memory device
US20110069529A1 (en) 2009-09-22 2011-03-24 Bhaskar Srinivasan Methods Of Reading And Using Memory Cells

Also Published As

Publication number Publication date
US9405614B2 (en) 2016-08-02
TW201320097A (zh) 2013-05-16
US20140149824A1 (en) 2014-05-29
TWI520149B (zh) 2016-02-01
KR20140033215A (ko) 2014-03-17
CN104025193A (zh) 2014-09-03
WO2013015803A1 (en) 2013-01-31
EP2737482A1 (en) 2014-06-04
EP2737482A4 (en) 2015-05-06

Similar Documents

Publication Publication Date Title
KR101620761B1 (ko) 멤리스터 기반 데이터 저장 장치 내부의 기입 버퍼 용량을 감소시키는 방법 및 시스템
US8510628B2 (en) Method and apparatuses for customizable error correction of memory
EP2780810B1 (en) Systems, methods, and devices for multi-tiered error correction
EP2780809B1 (en) Systems and methods for decoding codewords having multiple parity segments
EP2780808B1 (en) Data encoder and decoder using memory-specific parity-check matrix
US8553474B2 (en) Increased capacity heterogeneous storage elements
US9385754B2 (en) Controller, information processing system, method of controlling controller, and program
WO2017112229A1 (en) Predictive memory maintenance
US8966339B1 (en) Decoder supporting multiple code rates and code lengths for data storage systems
CN105869669B (zh) 电阻式随机存取记忆体与其控制方法
JP2010518523A (ja) 動的ecc符号化率調節方法、装置、およびシステム
EP2791942A1 (en) Read bias management to reduce read errors for phase change memory
KR101574912B1 (ko) 잠재적으로 큰 스위칭 지연시간에 의해 특징지워지는 메모리 요소를 포함하는 효율적인 데이터 저장장치
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
WO2017074648A1 (en) Temperature dependent multiple mode error correction
KR20200110624A (ko) 메모리 시스템, 및 메모리 컨트롤러의 동작 방법
CN108268338B (zh) 逐渐缩减大小的可变节点存储器
KR101913900B1 (ko) 조기 디코딩 종료 검출을 갖는 디코더
US8938575B2 (en) Minimized half-select current in multi-state memories
US9838033B1 (en) Encoder supporting multiple code rates and code lengths
US9619317B1 (en) Decoder having early decoding termination detection
Chen et al. Channel Models and Coding Solutions for 1S1R Crossbar Resistive Memory with High Line Resistance
TWI829252B (zh) 低密度奇偶校檢碼的解碼方法及電腦程式產品及裝置
KR20240045899A (ko) 단일 패리티 체크 코드와 상이한 코드를 포함하는 저밀도 패리티 체크 코드의 디코딩 장치 및 이의 동작 방법
Patsei et al. Method and apparatus for encoding/decoding with usage of variable low density parity check codes

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
FPAY Annual fee payment

Payment date: 20190430

Year of fee payment: 4