KR20170038816A - 크로스바 메모리 어레이 상의 데이터 인코딩에 리던던시 할당 - Google Patents

크로스바 메모리 어레이 상의 데이터 인코딩에 리던던시 할당 Download PDF

Info

Publication number
KR20170038816A
KR20170038816A KR1020177002713A KR20177002713A KR20170038816A KR 20170038816 A KR20170038816 A KR 20170038816A KR 1020177002713 A KR1020177002713 A KR 1020177002713A KR 20177002713 A KR20177002713 A KR 20177002713A KR 20170038816 A KR20170038816 A KR 20170038816A
Authority
KR
South Korea
Prior art keywords
data
cells
crossbar memory
cell
memory arrays
Prior art date
Application number
KR1020177002713A
Other languages
English (en)
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 KR20170038816A publication Critical patent/KR20170038816A/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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/702Masking faults in memories by using spares or by reconfiguring by replacing auxiliary circuits, e.g. spare voltage generators, decoders or sense amplifiers, to be used instead of defective ones
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6566Implementations concerning memory access contentions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Abstract

예에 따르면, 크로스바 메모리 어레이 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 방법이 제공되고, 상기 크로스바 메모리 어레이의 각각은 셀을 포함한다. 데이터는 다수의 크로스바 메모리 어레이 내의 셀의 서브세트에 할당될 수 있다. 이어서, 데이터가 할당되는 다수의 크로스바 메모리 어레이 내의 셀의 서브세트의 좌표에 기초하여 데이터에 대한 리던던시가 할당될 수 있다.

Description

크로스바 메모리 어레이 상의 데이터 인코딩에 리던던시 할당{ASSIGNING REDUNDANCY IN ENCODING DATA ONTO CROSSBAR MEMORY ARRAYS}
전자 데이터는 통상적으로 2진수 시스템을 사용하여 표현된다. 2진수 시스템은, 값이 통상적으로 논리 "1" 및 "0"에 의해 표현되는 2개의 상태 중 하나를 취할 수 있는 시스템이다. 논리 "1" 또는 "0"으로서 단일 비트를 저장하는 소형 프로그램가능 디바이스를 포함하는 다양한 유형의 메모리 시스템이 개발되어 왔다. 온(ON) 상태는 논리 "1"을 표현하는데 사용될 수 있고, 반면에 오프(OFF) 상태는 논리 "0"을 표현하는데 사용될 수 있다. 일 유형의 메모리 아키텍처는 크로스바 메모리 아키텍처이다. 크로스바 메모리 아키텍처는 2개의 세트의 상호접속 도전체 세그먼트를 포함하고, 메모리 소자는 상호접속 도전체 세그먼트 사이에 다수의 교차점에 배치된다.
본 발명의 특징은 유사한 도면 부호가 유사한 요소를 지시하고 있는 이하의 도면에 예시로서 도시되어 있지만 이에 한정되는 것은 아니다.
도 1은 본 발명의 예에 따른, 메모리 소자의 크로스바 어레이를 포함하는 데이터 저장 장치의 개략도를 도시하고 있고;
도 2는 본 발명의 예에 따른, 크로스바 메모리 어레이의 도면을 도시하고 있고;
도 3은 본 발명의 예에 따른 크로스바 메모리 어레이 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 방법의 흐름도를 도시하고 있고;
도 4는 본 발명의 예에 따른 다수의 크로스바 메모리 어레이 내의 유사한 좌표를 갖는 셀에 할당되는 데이터를 위한 리던던시를 결정하기 위한 방법의 흐름도를 도시하고 있고;
도 5는 본 발명의 예에 따른 다수의 크로스바 메모리 어레이 내에 유사한 좌표를 갖는 셀의 서브세트를 도시하고 있고;
도 6은 본 발명의 예에 따른, 다수의 크로스바 메모리 어레이 내에 유사한 좌표를 갖는 복수의 셀을 미사용되는 것으로 할당하기 위한 방법의 흐름도를 도시하고 있고;
도 7은 본 발명의 예에 따른, 크로스바 메모리 어레이 내에 다양한 비트 에러율을 갖는 셀에 데이터를 할당하기 위한 방법의 흐름도를 도시하고 있고;
도 8은 본 발명의 예에 따른 다수의 크로스바 메모리 어레이 내에 상이한 좌표를 갖는 셀을 도시하고 있고;
도 9는 본 발명의 예에 따른 컴퓨터 시스템을 도시하고 있다.
간단화 및 예시의 목적으로, 본 발명은 그 예를 주로 참조하여 설명된다. 이하의 설명에서, 수많은 특정 상세는 본 발명의 철저한 이해를 제공하기 위해 설명된다. 그러나, 본 발명은 이들 특정 상세에 한정 없이 실시될 수 있다는 것이 명백할 것이다. 다른 경우에, 몇몇 방법 및 구조체는 본 발명을 불필요하게 불명료하게 하지 않기 위해 상세히 설명되지 않는다. 본 명세서에 사용될 때, 단수 형태의 용어는 특정 요소의 적어도 하나를 나타내도록 의도되고, 용어 "포함한다"는 '포함하지만 이에 한정되는 것은 아니다'를 의미하고, 용어 "포함하는"은 '포함하지만 이에 한정되는 것은 아닌'을 의미하고, 용어 "기초하는"은 '적어도 부분적으로 기초하는'을 의미한다.
크로스바 메모리 어레이 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 방법의 예가 본 명세서에 개시된다. 통상적으로, 데이터 워드로서 크로스바 메모리 어레이 상에 인코딩될 수 있는 데이터를 위한 에러 검출 및 보정이 데이터 워드에 리던던시(즉, 잉여의 비트)를 추가함으로써 성취될 수 있다. 데이터 워드와 리던던시의 조합은 에러 보정 메모리 코드워드라 칭할 수 있다. 이와 관련하여, 리던던시는 데이터 워드의 일관성을 점검하고 오손된 것으로 판정된 데이터 워드로부터 비트를 복구하는데 사용될 수 있다. 그러나, 특정 데이터 워드를 위해 필요한 리던던시의 양은 다수의 크로스바 메모리 어레이 내에 데이터 워드의 비트를 저장하는 셀의 위치(또는 좌표)에 기인하여 변동할 수 있다.
개시된 방법은 다수의 크로스바 메모리 어레이 내의 위치 종속 에러율을 갖는 비트 에러를 보정하기 위해 리던던시 오버헤드를 감소시키도록 구현될 수 있다. 비트 에러는 노이즈, 간섭, 또는 왜곡에 기인하여 변경되어 있는 비트를 포함할 수 있다. 개시된 방법에 따르면, 데이터, 또는 등가적으로 데이터 워드 또는 에러 보정 메모리 코드워드는 다수의 크로스바 메모리 어레이 내의 셀의 서브세트에 할당될 수 있다. 데이터에 대한 리던던시는 데이터가 할당되는 다수의 크로스바 메모리 어레이 내의 셀의 서브세트의 좌표에 기초하여 할당될 수 있다. 방법을 구현하기 위한 컴퓨팅 디바이스 및 하드웨어 메모리 제어 회로 및 방법을 구현하는 머신 판독가능 명령어가 저장되어 있는 비일시적 컴퓨터 판독가능 매체가 또한 본 명세서에 개시된다.
예에 따르면, 데이터는 다수의 크로스바 메모리 어레이 내에 유사한 좌표를 갖는 셀에 할당될 수 있다. 본 예에서, 데이터는 전압 소스로부터 사전결정된 거리를 초과하여 위치되어 있는 다수의 크로스바 메모리 어레이의 셀에 할당되면 제 1 리던던시 레벨로 인코딩될 수 있다. 대안적으로, 데이터가 전압 소스로부터 사전결정된 거리 미만에 위치되어 있는 다수의 크로스바 메모리 어레이의 셀에 할당되면, 데이터는 제 2 리던던시 레벨로 인코딩될 수 있다. 예에 따르면, 제 1 리던던시 레벨은 제 2 리던던시 레벨보다 높다.
다른 예에 따르면, 다수의 크로스바 메모리 어레이 내에 유사한 좌표를 갖는 복수의 셀은 이용불가능한 것으로 지정될 수 있다. 예를 들어, 복수의 셀을 이용불가능한 것으로 지정하는 것은 복수의 셀 중 하나의 셀이 사전결정된 비트 에러율 임계치를 초과하는지 여부를 판정하는 것을 포함할 수 있다. 셀이 사전결정된 비트 에러율 임계치를 초과하면, 복수의 셀이 이용불가능한 것으로 지정될 수 있다. 즉, 복수의 셀은 데이터의 할당을 위해 이용불가능할 수 있다. 대안적으로, 셀이 사전결정된 비트 에러율 임계치 이하에 있으면, 복수의 셀은 데이터의 할당을 위해 이용가능할 수 있다.
본 명세서에 설명된 바와 같이, 크로스바 메모리 어레이 내의 셀은 각각의 크로스바 메모리 어레이 내의 셀의 위치에 따라 변하는 비트 에러율을 가질 수 있다. 예에 따르면, 데이터의 제 1 부분은 제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트에 할당될 수 있고, 데이터의 제 2 부분은 제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트에 할당될 수 있다. 제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트의 좌표는 예를 들어, 제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트의 각각의 좌표와 상이할 수 있다. 예에 따르면, 데이터의 각각의 비트는 개별 크로스바 메모리 어레이 내에 저장될 수 있다. 데이터의 제 1 부분 및 데이터의 제 2 부분은 할당된 셀의 비트 에러율의 평균이 사전결정된 비트 에러율 미만으로 강하하도록 셀에 할당될 수 있다.
통상의 바이트 어드레스가능 메모리에서, 데이터 워드(예를 들어, 512 비트인 캐시라인 또는 8 킬로바이트인 페이지)는 액세스 지연시간을 감소시키고(비트를 병렬로 판독/기록함으로써) 비용을 감소시키기 위해(각각의 서브어레이 출력은 실제 캐시라인 크기보다 작을 것임) 다수의 크로스바 메모리 어레이 또는 서브어레이를 가로질러 분산될 수 있다. 서브어레이는 셀의 다수의 어레이를 포함하는 빌딩 블록이고, 서브어레이의 세트는 메모리 뱅크를 구성한다. 액세스 에너지가 비교적 높을 수 있는 비휘발성 메모리 기술에서, 다수의 다이를 가로지르는 인터리빙은 다이당 최고 에너지 요구를 감소시킬 수 있다. 또한, 각각의 다이는 다수의 크로스바 메모리 어레이를 포함할 수 있다. 그러나, 크로스바 메모리 어레이 내에 다른 메모리 기술에 사용된 일반적인 인터리빙 방안을 채택하는 것은 높은 에러 보정율(error-correction code: ECC) 오버헤드 또는 더 많은 판독 또는 기록 실패를 유도할 수 있다.
특히, 이하에 더 설명되는 바와 같이, 크로스바 메모리 어레이 내의 셀의 위치는 판독 또는 기록 실패의 가능성(예를 들어, 비트 에러)에 상당히 영향을 미칠 수 있다. 예를 들어, 전압 소스가 제 1 행 및 제 1 열 부근에 있는 m×n 메모리 어레이에서, m번째 행 및 n번째 열에서의 셀은 스니크(sneak) 또는 누설 전류에 기인하여 최대 영향(즉, 행을 가로지르는 최대 전압 강하 및 셀을 가로지르는 최소 전압 강하)을 경험할 수 있다. 그러나, 제 1 행 및 제 1 열에서의 셀은 스니크 또는 누설 전류에 기인하여 최소 영향(즉, 행을 가로지르는 최소 전압 강하 및 셀을 가로지르는 최대 전압 강하)을 경험할 수 있다. 이에 따라, 인터리빙 방안은 캐시라인을 형성하기 위해 다수의 크로스바 메모리 어레이 내의 "양호한" 셀 및 상이한 캐시라인을 형성하기 위해 다수의 크로스바 메모리 어레이 내에 덜 바람직하게 위치된 셀을 그룹화하는 것으로 종료할 수 있다. 그 결과, 몇몇 캐시라인은 다른 것보다 더 많은 에러를 경험할 수 있는데, 이는 모든 캐시 라인에 대한 증가된 ECC 오버헤드(최악의 경우 ECC 프로비저닝을 가정함) 또는 더 많은 판독/기록 실패를 야기할 수 있다.
일 관점에서, 개시된 방법은 다수의 크로스바 메모리 어레이 내의 위치 종속 에러율을 갖는 비트 에러를 보정하기 위해 리던던시 오버헤드를 감소시키도록 구현될 수 있다. 예를 들어, 개시된 방법은 다수의 크로스바 메모리 어레이 내에 데이터 워드의 비트를 저장하는 셀의 서브세트의 위치에 기초하여 특정 데이터 워드를 위해 필요한 최적의 양의 리던던시를 제공할 수 있다. 더욱이, 개시된 방법은 비트 에러율 임계치를 초과하는 다수의 크로스바 메모리 어레이 내의 특정 서브세트 셀을 사용하지 않을 수 있다. 또한, 다른 개시된 예는 다수의 크로스바 메모리 어레이 내의 모든 캐시라인 내의 실패 확률을 균형화할 수 있다.
도 1은 예에 따른, 메모리 제어 모듈(103)을 포함하는 데이터 저장 장치(100)의 개략도를 도시하고 있다. 메모리 제어 모듈(103)은 멤리스터 디바이스, 멤리스터 등일 수 있는 셀(102)의 m×n 메모리 어레이(101A 내지 101L)에 데이터를 저장하고 그로부터 데이터를 검색하는 동작을 제어할 수 있다. 장치(100)는 데이터를 인코딩하기 위한 것인 인코더 모듈(104) 및 데이터를 디코딩하기 위한 것인 디코더 모듈(105)을 포함하는 것으로서 도시되어 있다. 장치(100)는 메모리 어레이(101A 내지 101L)로부터 데이터를 판독하는 동작 및 메모리 어레이(101A 내지 101L)에 데이터를 기록하는 동작을 제어하기 위한 것인 판독/기록 제어 모듈(106)을 포함하는 것으로서 또한 도시되어 있고, 여기서 크로스바 어레이(101A 내지 101L)의 수는 1 초과이다. 또한, 장치(100)는 메모리 어레이(101A 내지 101L)의 셀(102) 내에 저장된 데이터에 대한 리던던시를 할당하기 위한 것인 리던던시 모듈(113)을 포함하는 것으로 도시되어 있다. 메모리 제어 모듈(103)은 입력 데이터(107)를 인코딩하고 인코딩된 데이터를 메모리 어레이(101A 내지 101L) 내에 저장할 수 있다. 메모리 제어 모듈(103)은 또한 메모리 어레이(101A 내지 101L) 내에 저장된 인코딩된 데이터를 판독하고, 입력 데이터(107) 내의 원본 비트를 복구하기 위해 데이터를 디코딩하고, 출력 데이터(108)로서 디코딩된 데이터를 전송할 수 있다.
예에 따르면, 메모리 어레이(101A 내지 101L)는 장치(100)의 부분이다. 다른 예에서, 메모리 어레이(101A 내지 101L)는 장치(100)로부터 분리된다. 어느 관점에서든, 메모리 어레이(101A 내지 101L)는 m개 및 n개의 도전체, 예를 들어 와이어의 제 1 및 제 2 세트를 각각 포함할 수 있다. 제 1 세트 내의 m개의 도전체의 각각은 제 2 세트 내의 n개의 도전체의 각각을 교차하여 교차점에 위치된 셀(102) 중 하나에 어드레스할 수 있다. 메모리 어레이(101A 내지 101L)의 설명을 용이하게 하기 위해, 제 1 및 제 2 세트 내의 도전체는 메모리 어레이(101A 내지 101L)의 행(즉, 워드라인) 및 열(즉, 비트라인)이라 각각 칭할 수 있다. 메모리 어레이(101A 내지 101L)는 원형 평면 내에 m개의 행 도전체(109) 및 n 열 도전체(110)를 각각 포함할 수 있다. 행 도전체(109) 및 열 도전체(110)의 교차점 총 m×n개의 셀을 형성할 수 있다. 셀(102)에 대한 데이터의 개별 비트의 판독 및 기록은 행 드라이버(111) 및 열 드라이버(112)에 의한 전압의 인가를 수반한다. 도전체(109, 110) 및 셀(102)은 상이한 원형 평면에 형성될 수 있다. 더욱이, 도전체(109, 110)는 필요한 또는 원하는 바에 따라 다양한 형성으로 형성될 수 있고, 마찬가지로 다양한 형상의 그리드를 형성할 수 있다. 또한, 메모리 어레이(101A 내지 101L)는 서로에 관해 동일한 또는 상이한 수의 셀(102)을 가질 수 있다.
도 2는 본 발명의 예에 따른 크로스바 메모리 어레이(200)의 사시도를 도시하는 도면이다. 예에 따르면, 크로스바 메모리 어레이(200)는 서로에 관해 일반적으로 평행한 것으로서 도시되어 있는 수평 도전체(202)의 세트를 포함한다. 부가적으로, 수직 도전체(204)의 세트는 수평 도전체(202)에 일반적으로 수직이고 교차한 것으로서 도시되어 있다. 프로그램가능 셀(102)은 또한 수평 도전체(208)와 수직 도전체(210) 사이의 교차점(206)에 배치된 것으로서 도시되어 있다.
전술된 바와 같이, 셀(102)은 멤리스터 또는 등가적으로 멤리스터 디바이스일 수 있다. 멤리스터는 과거 전기 조건의 "메모리"를 나타낸다. 예를 들어, 멤리스터는 멤리스터의 전기 동작을 동적으로 변경하기 위해 매트릭스 재료 내에서 이동될 수 있는 모바일 도펀트를 포함하는 매트릭스 재료를 포함할 수 있다.
도펀트의 모션은 멤리스티브 매트릭스 재료를 가로질러 인가된 전압과 같은 프로그래밍 조건의 인가에 의해 유도될 수 있다. 구체적으로, 프로그래밍 전압은 멤리스티브 매트릭스 재료를 통해 비교적 높은 전기장을 발생하고, 도펀트의 분배를 변경한다. 전기장의 제거 후에, 도펀트의 위치 및 특성은 다른 프로그래밍 전기장의 인가까지 안정하게 유지된다. 예를 들어, 멤리스티브 매트릭스 재료 내의 도펀트 구성을 변경함으로써, 멤리스터의 전기 저항이 변경될 수 있다. 멤리스터의 상태는 멤리스터의 내부 전기 저항이 감지되게 하지만 상당한 도펀트 모션을 유발하기 위해 충분히 높은 전기장을 발생하지 않는 낮은 판독 전압을 멤리스티브 매트릭스 재료를 가로질러 인가함으로써 판독될 수 있다. 따라서, 멤리스터의 상태는 장시간 기간에 걸쳐 다수의 판독 사이클을 통해 안정하게 유지될 수 있다.
예에 따르면, 크로스바 메모리 어레이(200)는 비휘발성 메모리 어레이를 형성하는데 사용될 수 있다. 본 예에서, 교차점(206)에서 각각의 셀은 데이터의 비트를 표현하는데 사용될 수 있다. 도 2의 개별 도전체(208, 210)는 직사각형 단면을 갖고 도시되어 있지만, 크로스바 메모리 어레이(200)는 또한 정사각형, 원형, 타원형, 또는 더 복잡한 단면을 가질 수 있다. 도전체는 서로에 관하여 다수의 상이한 폭, 직경, 형상비 및/또는 편심도를 또한 가질 수 있다. 도전체(208, 210)는 나노와이어, 서브-마이크로스케일 와이어, 마이크로스케일 와이어, 또는 더 큰 직경을 갖는 와이어일 수 있다.
다양한 예에 따르면, 크로스바 메모리 어레이(200)는 상보형 금속 산화물 반도체(Complimentary Metal-Oxide-Semiconductor: CMOS) 회로 또는 다른 종래의 컴퓨터 회로 내에 통합될 수 있다. 각각의 개별 도전체는 비아(212)에 의해 CMOS 회로에 접속될 수 있다. 비아(212)는 크로스바 아키텍처를 제조하는데 사용되는 다양한 기판 재료를 통한 전기 도전성 경로일 수 있다. 이 CMOS 회로는 입출력 기능, 버퍼링, 로직, 구성, 또는 다른 기능성과 같은 부가의 기능성을 멤리스터에 제공할 수 있다. 다수의 크로스바 메모리 어레이는 다층 회로를 생성하도록 CMOS 회로 위에 형성될 수 있다.
데이터 저장 장치(100)는 예를 들어, 이어서 다수의 멤리스터 다이를 각각 포함하는, 다수의 멤리스터 멀티칩 패키지를 포함하는 듀얼 인라인 메모리 모듈(dual in-line memory modules: DIMM)을 수반할 수 있다. 멤리스터는 다수의 크로스바 메모리 어레이 내에 배열될 수 있다. 따라서, 데이터 저장 장치(100)는 동일한 다이 내에 그리고 다수의 다이, 다수의 패키지, 및 다수의 모듈을 가로질러 다수의 크로스바 메모리 어레이를 포함할 수 있다. 동적 랜덤 액세스 메모리(dynamic random-access memory: DRAM) 교체 용례에서, 데이터 저장 장치(100) 내의 데이터는 에러 보정을 위한 몇몇 중복 비트(즉, 메모리 코드워드)와 함께 512 비트의 캐시라인 사이즈 청크에 액세스될(기록 및/또는 판독될) 수 있다. 최저 지연시간 성능을 위해, 메모리 코드워드 내의 각각의 비트는 상이한 크로스바 메모리 어레이 내에 저장될 수 있고, 그 각각은 단일의 메모리 판독/기록 동작의 타임스팬에서 병렬로 판독 및 기록될 수 있다.
개별 비트의 판독 및 기록은 기록되거나 판독될 비트에 대응하는 선택된 셀에서 교차하는 행 및 열 도전체(109, 110)로의 적합한 전압의 행 및 열 드라이버(111, 112)에 의한 인가를 수반한다. 판독의 경우에, 선택된 셀의 열 도전체(110)를 통해 흐르는 전류는 셀이 저저항 상태(즉, 온 또는 논리 "1") 또는 고저항 상태(즉, 오프 또는 논리 "0")에 있는지 여부를 판정하도록 감지된다. 선택된 셀과 동일한 행 및 열 내의 셀은 절반 선택된 셀이라 칭할 수 있고, 크로스바 메모리 어레이(101) 내의 모든 다른 셀은 미선택 셀이라 칭할 수 있다.
크로스바 메모리 어레이(101)는 판독 또는 기록 프로세스 중에 행 및 열 도전체를 따라 기생 전압 강하를 경험할 수 있다. 크로스바 어레이 내의 임의의 주어진 선택된 셀에서 이 전압 강하의 크기는 선택된 셀의 위치 및 남아 있는 미선택 셀, 및 특히 절반 선택된 셀을 통해 누설하는 전류의 양에 의존할 수 있다. 예를 들어, 셀이 행 및 열 드라이버(111, 112)(즉, 전압 소스)로부터 더 멀수록, 셀이 선택될 때 도전체를 가로지르는 전압 강하가 더 크다. 주어진 선택된 셀에서의 기생 전압 강하는 공급 전압에 대해 셀을 가로지르는 실제 전압 강하를 감소시켜, 온 및 오프 저항 상태를 위한 전류 사이의 감소된 차이와 기록 또는 스위칭 실패의 증가된 가능성을 야기한다. 공급 전압은 전압 강하를 부분적으로 보상하도록 증가될 수 있지만, 이는 공급 전압에 더 근접한 선택된 셀 상의 판독 또는 기록 교란을 유도할 수 있다. 이는 또한 절반 선택된 및 미선택 셀을 통한 증가된 스니크 또는 누설 전류를 유도할 수 있고, 따라서 전압 소스로부터 더 멀리 있는 셀을 가로지르는 전압 강하를 예측된 정도로 증가시키지 않을 수 있다. 이 관점에서, 위치 종속성 전압 강하 및 기록/판독 교란의 가능성의 결과는 판독/기록 실패에 기인하는 다수의 크로스바 메모리 어레이를 가로지르는 위치 종속성 비트 에러율이다.
도 3, 도 4, 도 6 및 도 7은 본 발명의 예에 따른, 크로스바 메모리 어레이 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 방법(300, 400, 600, 700)의 흐름도를 각각 도시하고 있다. 방법(300, 400, 600, 700)은 일반화된 예시를 표현하고 있고, 방법(300, 400, 600, 700)의 범주로부터 벗어나지 않고, 다른 동작이 추가될 수 있고 또는 기존의 동작이 제거되고, 수정되거나 또는 재배열될 수 있다는 것이 당 기술 분야의 숙련자들에게 명백할 것이다. 방법(400, 600, 700)이 방법(300) 내에 포함된 것들에 추가하여 동작을 포함하는 점에서, 방법(400, 600, 700)은 방법(300)에 관련된다. 따라서, 방법(400, 600, 700)은 방법(300)에 관하여 설명된 모든 특징을 포함하는 것으로서 해석될 수 있다. 방법(300, 400, 600, 700)은 예를 들어, 이하에 도 9에 도시된 바와 같이 컴퓨팅 디바이스(900)의 프로세서(902)에 의해 각각 구현될 수 있다. 부가적으로, 방법은 이하에 설명된 메모리 제어 회로와 같이, 하드웨어로 구현될 수 있다.
도 3의 방법(300)을 먼저 참조하면, 리던던시 모듈(113)은 예를 들어, 최악의 경우 셀의 서브세트(즉, 최고 에러율을 갖는 셀의 서브세트)에 대한 비트 에러를 보정하고 다수의 크로스바 메모리 어레이 내의 셀의 서브세트를 위한 최종 코드를 사용하도록 충분한 리던던시를 할당할 수 있다. 달리 말하면, 단일 메모리 코드워드를 저장하도록 함께 그룹화되는 셀의 서브세트는 이들의 각각의 크로스바 메모리 어레이 내의 동일한 대응 위치를 모두 가질 수 있다. 그러나, 최악의 경우 리던던시는 더 양호하게 거동하는 셀의 서브세트를 위해 필요하지 않을 수 있고, 오버헤드 및 비용 관점으로부터 낭비적일 것이다.
따라서, 비트 에러를 보정하기 위한 리던던시 오버헤드를 감소시키기 위해, 리던던시 모듈(113)은 예를 들어, 블록 310에 도시된 바와 같이 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 셀(102)의 서브세트에 데이터를 할당할 수 있다. 예에 따르면, 데이터는 도 4에 관하여 이하에 더 설명되는 바와 같이, 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 유사한 좌표를 갖는 셀(102)에 할당될 수 있다. 대안적으로, 데이터는 도 7에 관하여 이하에 더 설명되는 바와 같이, 각각의 크로스바 메모리 어레이 내의 셀의 위치에 종속하여 다양한 비트 에러율을 갖는 크로스바 메모리 어레이(101A 내지 101L) 내의 셀(102)에 할당될 수 있다. 다른 예에 따르면, 데이터는 도 6에 관하여 이하에 더 설명되는 바와 같이, 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 복수의 셀(102)에 할당되지 않을 수도 있다.
블록 320에서, 리던던시 모듈(113)은 예를 들어, 데이터가 할당되는 크로스바 메모리 어레이(101A 내지 101L)의 각각 내의 셀(102)의 서브세트의 좌표에 기초하여 데이터를 위한 리던던시를 할당할 수 있다. 전술된 바와 같이, 셀(102)이 행 및 열 드라이버(111, 112)(즉, 전압 소스)로부터 더 멀수록, 셀(102)이 선택될 때 도전체(109, 110)를 가로지르는 전압 강하가 더 크다. 주어진 선택된 셀(102)에서의 기생 전압 강하는 공급 전압에 대해 셀(102)을 가로지르는 실제 전압 강하를 감소시킬 수 있어, 온 및 오프 저항 상태를 위한 전류 사이의 감소된 차이와 기록 또는 스위칭 실패의 증가된 가능성을 야기한다.
예에 따르면, 데이터가 다수의 크로스바 메모리 어레이(101A 내지 101L) 내에 유사한 좌표를 갖는 셀(102)에 할당되면, 리던던시 모듈(113)은 도 4에 관하여 이하에 더 설명되는 바와 같이 유사한 좌표의 위치에 기초하여 할당하기 위해 최적의 양의 리던던시를 결정할 수 있다. 다른 예에 따르면, 데이터가 다수의 크로스바 메모리 어레이(101A 내지 101L) 내에 다양한 좌표를 갖는 셀(102)에 할당되면, 리던던시 모듈(113)은 데이터에 동일한 양의 리던던시를 할당할 수 있다. 동일한 양의 리던던시는 도 7에 관하여 이하에 더 설명된 바와 같이, 복수의 크로스바 메모리 어레이의 각각 내에 상이한 좌표를 갖는 균등하게 분포된 셀의 서브세트로부터 계산되는 허용가능한 평균 비트 에러율에 기초할 수 있다. 다른 예에 따르면, 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 셀의 서브세트의 위치는, 도 6에 관하여 이하에 더 설명되는 바와 같이, 셀(102)의 서브세트가 데이터를 저장하는데 사용될 수 있는지 여부를 또한 판정할 수 있다.
이제, 도 4의 방법(400)을 참조하면, 블록 410에서, 리던던시 모듈(113)은 예를 들어, 다수의 크로스바 메모리 어레이(101A 내지 101L) 내에 유사한 좌표를 갖는 셀(102)에 데이터를 할당할 수 있다. 전술된 바와 같이, 크로스바 메모리 어레이(101A 내지 101L) 내의 셀(102)은 각각의 크로스바 메모리 어레이(101A 내지 101L) 내의 셀의 위치에 따라 변하는 비트 에러율을 갖는다. 이 관점에서, 데이터는 다수의 크로스바 메모리 어레이(101A 내지 101L) 내 동일한 위치를 갖는 셀(102)의 서브세트에 할당될 수 있지만, 리던던시 모듈(113)은 방법(400)에 따라 데이터에 위치 종속 양의 리던던시를 할당할 수 있다. 도 5는 다수의 크로스바 메모리 어레이(510a, 510b, 510n)의 예를 도시하고 있다. 도 5에 도시된 바와 같이, 셀(520a, 520b, 520n)은 다수의 크로스바 메모리 어레이(510a, 510b, 510n) 내에서 유사한 좌표를 갖는다. 메모리 제어 모듈(103)은 예를 들어, 어떻게 데이터를 인코딩하고 디코딩하는지 및 데이터를 저장하는 셀의 유사한 좌표에 기초하여 얼마나 많은 부가의 리던던시가 판독 또는 기록되는지를 결정할 수 있다.
예에 따르면, 예를 들어, 도 4에 블록 420에 도시된 바와 같이, 데이터가 할당되는 셀(102)이 전압 소스로부터 사전결정된 거리를 초과하여 위치되는지 여부에 대한 판정이 리던던시 모듈(113)에 의해 이루어질 수 있다. 사전결정된 거리는 예를 들어, 셀의 좌표의 합, 좌표의 제곱의 합 등일 수 있다.
데이터가 전압 소스로부터 사전결정된 거리를 초과하여 위치되어 있는 다수의 크로스바 메모리 어레이(510a 내지 510n)의 셀(102) 내에 할당되면, 블록 430에 도시된 바와 같이, 데이터는 제 1 리던던시 레벨로 인코딩될 수 있다. 대안적으로, 데이터가 전압 소스로부터 사전결정된 거리 미만에 위치되어 있는 다수의 크로스바 메모리 어레이(510a 내지 510n)의 셀(102) 내에 할당되면, 블록 440에 도시된 바와 같이, 데이터는 제 2 리던던시 레벨로 인코딩될 수 있다. 예에 따르면, 제 1 리던던시 레벨은 제 2 리던던시 레벨보다 높다. 부가적으로 또는 대안적으로, 적합한 리던던시 및 인코딩은 크로스바 특징화 절차 후에 오프라인으로 결정될 수 있다.
방법(400)은 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 유사한 위치에 위치되어 있는 데이터 저장 장치(100) 내의 모든 셀(102)을 함께 그룹화할 수 있고, 그룹 내의 셀(102)의 위치에 종속하는 리던던시의 양을 갖는 복수의 독립적으로 액세스가능한 메모리 코드워드로 각각의 그룹을 분할할 수 있다. 예에 따르면, 메모리 제어 모듈(103)로의 인터페이스는 모든 가능한 길이의 메모리 코드워드로의 낮은 지연시간 액세스를 지원할 수 있다.
이제, 도 6의 방법(600)을 참조하면, 블록 610에서, 리던던시 모듈(113)은 예를 들어 다수의 크로스바 메모리 어레이(101A 내지 101L) 내에 유사한 좌표를 갖는 셀(102)의 그룹을 식별할 수 있다. 블록 620에서, 셀의 그룹으로부터의 셀(102)이 사전결정된 비트 에러율 임계치를 초과하는지 여부에 대한 판정이 이루어질 수 있다. 사전결정된 비트 에러율 임계치는 위치 종속성 비트 에러율의 오프라인, 실험 또는 시뮬레이션 기반 특징화에 기초할 수 있다. 일 비한정적인 예에 따르면, 사전결정된 비트 에러율 임계치는 데이터를 인코딩하는데 사용된 리던던시를 포함하는 잉여의 셀을 갖는 이용불가능한 셀의 수를 최적하게 절충하도록 결정될 수 있다.
셀(102)이 사전결정된 비트 에러율 임계치를 초과하면, 블록 630에 도시된 바와 같이, 셀의 그룹은 이용불가능한 것으로 지정될 수 있다. 달리 말하면, 비트 에러 임계치 초과의 비트 에러율을 갖는 셀(102)의 그룹은 데이터의 할당을 위해 이용불가능한 것으로서 식별될 수 있다. 따라서, 셀의 미사용 그룹은 스니크 또는 누설 전류를 더 감소시키기 위해 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 데이터로 파퓰레이팅되지 않을 수 있다. 대안적으로, 셀의 그룹이 성형 프로세스를 요구하고 미성형될 때 매우 높은 저항 상태에 있으면, 셀의 미사용 그룹은 본 발명의 예에 따라 형성되지 않을 수 있다.
셀(102)이 사전결정된 비트 에러율 임계치 이하이면, 블록 640에 도시된 바와 같이, 셀의 그룹은 데이터의 할당을 위해 이용가능하게 될 수 있다. 예에 따르면, 데이터의 할당을 위해 이용가능해지는 셀(102)의 그룹은 최악의 경우 비트 에러율을 핸들링하기 위해 충분한 리던던시를 갖는 대응 메모리 코드워드로 그룹화될 수 있다. 또한, 데이터의 할당을 위해 이용가능해지는 셀(102)의 그룹에 할당된 데이터는 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 다른 데이터와 동일한 리던던시를 갖고 인코딩될 수 있다.
방법(600)에 따르면, 데이터는 이들의 각각의 크로스바 메모리 어레이(101A 내지 101L) 내의 유사한 위치를 갖는 셀(102)의 그룹에 할당될 수 있다. 부가적으로, 모든 데이터는 동일한 리던던시를 가질 수 있고, 동일한 코드에 기초할 수 있지만, 다수의 크로스바 메모리 어레이(101A 내지 101L) 내의 유사한 위치 또는 좌표에서 셀(102)의 그룹은 간단히 사용되지 않을 수 있다. 이 관점에서, 사용된 셀 및 미사용 셀의 더 작은 할당된 리던던시의 조합된 오버헤드는 최소화될 수 있다.
이제, 도 7의 방법(700)을 참조하면, 동일한 리던던시 및 길이는 모든 메모리 코드워드를 위해 사용될 수 있다. 블록 710에서, 리던던시 모듈(113)은 예를 들어, 제 1 크로스바 메모리 어레이(101A) 내의 셀(102)의 제 1 서브세트에 데이터의 제 1 부분을 할당할 수 있다. 블록 720에서, 리던던시 모듈(113)은 예를 들어, 제 2 크로스바 메모리 어레이(101B) 내의 셀(102)의 제 2 서브세트에 데이터의 제 2 부분을 할당할 수 있고, 여기서 제 1 크로스바아 메모리 어레이(101A) 내의 셀(102)의 제 1 서브세트의 좌표는 제 2 크로스바 메모리 어레이(101B) 내의 셀(102)의 제 2 서브세트의 각각의 좌표와 상이하다. 예에 따르면, 셀(102)의 각각의 서브세트를 위한 상이한 좌표는 데이터에 할당된 각각의 셀(102)의 좌표가 다수의 크로스바 메모리 어레이(101A 내지 101L)를 가로질러 균등하게 또는 거의 균등하게 분배되도록 선택되고 그룹화될 수 있다.
예를 들어, 리던던시 모듈(113)은 몇몇 쌍의 오프셋(a, b)에 대해, 위치 (i, j), (i+a, j+b), (i+2a, j+2b), (i+3a, j+3b) 등을 갖는 셀(102)의 서브세트를 선택할 수 있고, 여기서 가산은 N×N 어레이를 위한 모듈로(modulo) N이다. 도 8에 도시된 바와 같이, 다수의 크로스바 메모리 어레이(810a 내지 810c)의 셀(820a 내지 820c)은 i=6, j=1, 및 a=-1, b=2를 갖는 예에 대응한다(좌하측 셀은 좌표(1, 1)을 갖는 것으로 가정함). 이에 따라, 크로스바 메모리 어레이가 N×N이면, 이 선택 프로세스는 N개의 단계 후에 반복하지만, 실제로 a 및 b가 적절하게 선택되면 N개의 단계를 취할 수 있다.
데이터가 다수의 크로스바 메모리 어레이(101A 내지 101L) 내에 다양한 좌표를 갖는 셀(102)의 서브세트에 균등하게 분배된 후에, 리던던시 모듈(113)은 예를 들어, 블록 730에 도시된 바와 같이, 할당된 셀의 비트 에러율의 평균이 사전결정된 비트 에러율 미만으로 강하하도록 데이터의 제 1 부분 및 데이터의 제 2 부분을 셀(102)에 할당할 수 있다. 이 관점에서, 모든 데이터를 위한 리던던시는 셀(102)의 균등하게 분배된 서브세트의 평균 비트 에러율에 기초하여 할당될 수 있다.
이에 따라, 방법(700)에 따라 할당된 모든 메모리 코드워드는 동일한 길이 및 리던던시를 가질 수 있지만, 각각의 메모리 코드워드는 이들의 각각의 크로스바 메모리 어레이(101A 내지 101L) 내의 상이한 좌표로부터 셀(102)의 서브세트를 포함할 수 있다. 따라서, 방법(700)은 "양호한" 셀(102)과 "불량" 셀(102)을 함께 조합하여 각각의 메모리 코드워드 내의 셀(102)을 가로질러 허용가능한 평균 비트 에러율에 도달할 수 있다.
도 9는 본 명세서에 설명된 예와 함께 사용될 수 있는 컴퓨터 시스템(900)을 도시하고 있다. 컴퓨터 시스템(900)은 서버 또는 다른 컴퓨터 시스템 내에 있을 수 있는 구성요소를 포함하는 일반 플랫폼을 표현한다. 컴퓨터 시스템(900)은 데이터 저장 장치(100)를 위한 플랫폼으로서 사용될 수 있다. 컴퓨터 시스템(900)은 프로세서(902) 또는 본 명세서에 설명된 다른 하드웨어 프로세싱 회로, 방법, 기능 및 다른 프로세스에 의해 실행될 수 있다. 이들 방법, 기능 및 다른 프로세스는 하드웨어 저장 디바이스(예를 들어, RAM(random access memory), ROM(read only memory), EPROM(erasable, programmable ROM), EEPROM(electrically erasable, programmable ROM), 하드 드라이브, 및 플래시 메모리)와 같은 비일시적일 수 있는 컴퓨터 판독가능 매체 상에 저장된 머신 판독가능 명령어로서 구체화될 수 있다.
컴퓨터 시스템(900)은 본 명세서에 설명된 방법, 기능 및 다른 프로세스의 일부 또는 모두를 수행하는 머신 판독가능 명령어를 구현하거나 실행할 수 있는 프로세서(902)를 포함한다. 프로세서(902)로부터의 명령 및 데이터는 통신 버스(912)를 통해 통신된다. 컴퓨터 시스템(900)은 프로세서(902)를 위한 머신 판독가능 명령어 및 데이터가 실행시간 중에 상주할 수 있는 랜덤 액세스 메모리(RAM)와 같은 메인 메모리(910), 및 비휘발성일 수 있고 머신 판독가능 명령어 및 데이터를 저장하는 2차 데이터 저장 장치(904)를 또한 포함한다. 메모리(910) 및 2차 데이터 저장 장치(904)는 컴퓨터 판독가능 매체의 예이다. 메모리(910)는 실행시간 중에 메모리(910) 내에 상주하고 프로세서(902)에 의해 실행되는 머신 판독가능 명령어를 포함하는 모듈(914)을 포함할 수 있다. 모듈(914)은 도 1에 도시된 장치(100)의 모듈(103, 104, 105, 106, 113)을 포함할 수 있다.
컴퓨터 시스템(900)은 키보드, 마우스, 디스플레이 등과 같은 I/O 디바이스(906)를 포함할 수 있다. 컴퓨터 시스템(900)은 네트워크에 접속을 위한 네트워크 인터페이스(908)를 포함할 수 있다. 다른 공지의 전자 구성요소가 컴퓨터 시스템(900) 내에 추가되거나 대체될 수 있다.
모듈(103, 104, 105, 106, 113)은 또한 인코더 모듈(104), 디코더 모듈(105), 판독/기록 제어 모듈(106), 및 리던던시 모듈(113)의 기능성을 포함하는 메모리 제어 회로와 같은 하드웨어에 구현될 수 있다.
본 명세서에 설명되고 도시된 것은 몇몇 변형예와 함께 본 발명의 예이다. 본 명세서에 사용된 용어, 설명 및 도면은 단지 예시로서 설명된 것이고, 한정으로서 의도된 것은 아니다. 모든 용어가 달리 지시되지 않으면 이들의 가장 광범위한 적당한 의미로 의도되는, 이하의 청구범위 - 및 이들의 등가물 - 에 의해 규정되도록 의도된 다수의 변형이 본 발명의 범주 내에서 가능하다.

Claims (15)

  1. 크로스바 메모리 어레이 - 상기 크로스바 메모리 어레이의 각각은 셀을 포함함 - 상에 데이터를 인코딩하는데 있어서 리던던시(redundancy)를 할당하기 위한 방법으로서,
    프로세서에 의해, 다수의 크로스바 메모리 어레이 내의 셀의 서브세트에 데이터를 할당하는 단계와,
    상기 데이터가 할당되는 상기 다수의 크로스바 메모리 어레이 내의 셀의 서브세트의 좌표에 기초하여 상기 데이터에 대한 리던던시를 할당하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 데이터를 할당하는 단계는
    상기 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 셀에 데이터를 할당하는 단계를 더 포함하고, 상기 크로스바 메모리 어레이 내의 셀은 각각의 크로스바 메모리 어레이 내의 셀의 위치에 따라 변하는 비트 에러율을 갖는
    방법.
  3. 제 2 항에 있어서,
    상기 데이터에 대한 리던던시를 할당하는 단계는
    상기 데이터가 전압 소스로부터 사전결정된 거리를 초과하여 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀에 할당되는 것에 응답하여, 상기 데이터를 제 1 리던던시 레벨로 인코딩하는 단계와,
    상기 데이터가 상기 전압 소스로부터 사전결정된 거리 미만에 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀에 할당되는 것에 응답하여, 상기 데이터를 제 2 리던던시 레벨로 인코딩하는 단계 - 상기 제 1 리던던시 레벨은 상기 제 2 리던던시 레벨보다 높음 - 를 더 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 데이터를 할당하는 단계는
    상기 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 복수의 셀을 이용불가능한 것으로 지정하는 단계를 더 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 데이터를 할당하는 단계는
    상기 복수의 셀 중 하나의 셀이 사전결정된 비트 에러율 임계치를 초과하는지 여부를 판정하는 단계와,
    상기 셀이 상기 비트 에러율 임계치를 초과하는 것에 응답하여, 상기 복수의 셀을 이용불가능한 것으로 지정하는 단계 - 상기 복수의 셀은 데이터의 할당을 위해 이용불가능함 - 와,
    상기 셀이 상기 비트 에러율 임계치 이하인 것에 응답하여, 상기 복수의 셀을 데이터의 할당을 위해 이용가능한 것으로서 지정하는 단계를 더 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 크로스바 메모리 어레이 내의 셀은 각각의 크로스바 메모리 어레이 내의 셀의 위치에 따라 변하는 비트 에러율을 갖고, 상기 데이터를 할당하는 단계는
    제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트에 데이터의 제 1 부분을 할당하는 단계와,
    제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트에 데이터의 제 2 부분을 할당하는 단계 - 상기 제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트의 좌표는 상기 제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트의 각각의 좌표와 상이함 - 를 더 포함하는
    방법.
  7. 제 6 항에 있어서,
    상기 데이터의 제 1 부분 및 상기 데이터의 제 2 부분을 할당하는 단계는
    할당된 셀의 비트 에러율의 평균이 사전결정된 비트 에러율 미만으로 강하하도록 상기 데이터의 제 1 부분 및 상기 데이터의 제 2 부분을 셀에 할당하는 단계를 더 포함하는
    방법.
  8. 크로스바 메모리 어레이 - 상기 크로스바 메모리 어레이의 각각은 셀을 포함함 - 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 데이터 저장 장치로서,
    다수의 크로스바 메모리 어레이를 가로질러 셀의 서브세트에 데이터를 분배 - 상기 데이터는 상기 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 셀 및 상기 다수의 크로스바 메모리 어레이 내 상이한 좌표를 갖는 셀 중 하나에 분배됨 - 하고,
    상기 데이터가 분배되는 상기 다수의 크로스바 메모리 어레이 내의 셀의 서브세트의 좌표에 기초하여 상기 데이터에 대한 리던던시를 할당하기 위한
    메모리 제어 회로를 포함하는
    데이터 저장 장치.
  9. 제 8 항에 있어서,
    상기 유사한 좌표를 갖는 셀에 데이터를 분배하기 위해, 상기 메모리 제어 회로는
    상기 데이터가 전압 소스로부터 사전결정된 거리를 초과하여 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀 내에 분배되는 것에 응답하여 제 1 리던던시 레벨로 데이터를 인코딩하고,
    상기 데이터가 상기 전압 소스로부터 사전결정된 거리 미만에 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀 내에 분배되는 것에 응답하여 제 2 리던던시 레벨로 데이터를 인코딩 - 상기 제 1 리던던시 레벨은 상기 제 2 리던던시 레벨보다 높음 - 하는
    데이터 저장 장치.
  10. 제 8 항에 있어서,
    상기 크로스바 메모리 어레이 내 상이한 좌표를 갖는 셀은 각각의 크로스바 메모리 어레이 내의 셀의 위치에 따라 변하는 비트 에러율을 갖고, 상이한 좌표를 갖는 셀에 데이터를 분배하기 위해, 상기 메모리 제어 회로는
    제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트에 데이터의 제 1 부분을 분배하고,
    제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트에 데이터의 제 2 부분을 분배 - 상기 제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트의 좌표는 상기 제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트의 각각의 좌표와 상이함 - 하고,
    분배된 셀의 비트 에러율의 평균이 사전결정된 비트 에러율 미만으로 강하하도록 상기 데이터의 제 1 부분 및 상기 데이터의 제 2 부분을 셀에 분배하는
    데이터 저장 장치.
  11. 제 8 항에 있어서,
    상기 셀의 서브세트에 데이터를 분배하기 위해, 상기 메모리 제어 회로는 상기 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 복수의 셀을 이용불가능한 것으로 지정하는
    데이터 저장 장치.
  12. 제 11 항에 있어서,
    상기 셀에 데이터를 분배하기 위해, 상기 메모리 제어 회로는
    상기 복수의 셀 중 하나의 셀이 사전결정된 비트 에러율 임계치를 초과하는지 여부를 판정하고,
    상기 셀이 상기 비트 에러율 임계치를 초과하는 것에 응답하여, 상기 복수의 셀을 이용불가능한 것으로 지정 - 상기 복수의 셀은 데이터의 할당을 위해 이용불가능함 - 하고,
    상기 셀이 상기 비트 에러율 임계치 이하인 것에 응답하여, 상기 복수의 셀을 데이터의 할당을 위해 이용가능한 것으로서 지정하는
    데이터 저장 장치.
  13. 크로스바 메모리 어레이 - 상기 크로스바 메모리 어레이의 각각은 셀을 포함함 - 상에 데이터를 인코딩하는데 있어서 리던던시를 할당하기 위한 비일시적 컴퓨터 판독가능 매체로서,
    다수의 크로스바 메모리 어레이를 가로질러 사용가능한 상태로 할당되어 있는 셀의 그룹을 식별하고,
    셀의 그룹에 데이터를 할당 - 상기 데이터는 상기 다수의 크로스바 메모리 어레이 내 유사한 좌표를 갖는 셀 및 상기 다수의 크로스바 메모리 어레이 내 상이한 좌표를 갖는 셀 중 하나에 할당될 수 있음 - 하고,
    상기 데이터가 할당되는 상기 다수의 크로스바 메모리 어레이 내의 셀의 그룹의 좌표에 기초하여 상기 데이터에 대한 리던던시를 할당하도록
    프로세서에 의해 실행가능한 머신 판독가능 명령어를 포함하는
    비일시적 컴퓨터 판독가능 매체.
  14. 제 13 항에 있어서,
    상기 유사한 좌표를 갖는 셀에 데이터를 할당하기 위해, 상기 머신 판독가능 명령어는
    상기 데이터가 전압 소스로부터 사전결정된 거리를 초과하여 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀 내에 할당되는 것에 응답하여 제 1 리던던시 레벨로 데이터를 인코딩하고,
    상기 데이터가 상기 전압 소스로부터 사전결정된 거리 미만에 위치되어 있는 상기 다수의 크로스바 메모리 어레이의 셀 내에 할당되는 것에 응답하여 제 2 리던던시 레벨로 데이터를 인코딩 - 상기 제 1 리던던시 레벨은 상기 제 2 리던던시 레벨보다 높음 - 하도록 상기 프로세서에 의해 실행가능한
    비일시적 컴퓨터 판독가능 매체.
  15. 제 13 항에 있어서,
    상기 크로스바 메모리 어레이 내 상이한 좌표를 갖는 셀은 각각의 크로스바 메모리 어레이 내의 셀의 위치에 따라 변하는 비트 에러율을 갖고, 상이한 좌표를 갖는 셀에 데이터를 할당하기 위해, 상기 머신 판독가능 명령어는
    제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트에 데이터의 제 1 부분을 할당하고,
    제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트에 데이터의 제 2 부분을 할당 - 상기 제 1 크로스바 메모리 어레이 내의 셀의 제 1 서브세트의 좌표는 상기 제 2 크로스바 메모리 어레이 내의 셀의 제 2 서브세트의 각각의 좌표와 상이함 - 하고,
    할당된 셀의 비트 에러율의 평균이 사전결정된 비트 에러율 미만으로 강하하도록 상기 데이터의 제 1 부분 및 상기 데이터의 제 2 부분을 셀에 할당하도록 상기 프로세서에 의해 실행가능한
    비일시적 컴퓨터 판독가능 매체.
KR1020177002713A 2014-07-31 2014-07-31 크로스바 메모리 어레이 상의 데이터 인코딩에 리던던시 할당 KR20170038816A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/049259 WO2016018397A1 (en) 2014-07-31 2014-07-31 Assigning redundancy in encoding data onto crossbar memory arrays

Publications (1)

Publication Number Publication Date
KR20170038816A true KR20170038816A (ko) 2017-04-07

Family

ID=55218111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177002713A KR20170038816A (ko) 2014-07-31 2014-07-31 크로스바 메모리 어레이 상의 데이터 인코딩에 리던던시 할당

Country Status (3)

Country Link
US (1) US10146619B2 (ko)
KR (1) KR20170038816A (ko)
WO (1) WO2016018397A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3265907B1 (en) 2016-03-31 2019-08-21 Hewlett-Packard Enterprise Development LP Data processing using resistive memory arrays
US10649663B2 (en) * 2017-07-31 2020-05-12 National Technology & Engineering Solutions Of Sandia, Llc Memory access system
US10725857B2 (en) * 2018-02-27 2020-07-28 Western Digital Technologies, Inc. Data storage system for improving data throughput and decode capabilities
CN111971662A (zh) 2018-04-30 2020-11-20 慧与发展有限责任合伙企业 电阻及数字处理核心
DE102018124296A1 (de) * 2018-10-02 2020-04-02 Infineon Technologies Ag Kompensation von lesefehlern
US10908996B2 (en) * 2019-02-22 2021-02-02 Intel Corporation Distribution of a codeword across individual storage units to reduce the bit error rate

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4679036B2 (ja) 2002-09-12 2011-04-27 ルネサスエレクトロニクス株式会社 記憶装置
US7330370B2 (en) * 2004-07-20 2008-02-12 Unity Semiconductor Corporation Enhanced functionality in a two-terminal memory array
JP4890016B2 (ja) 2005-03-16 2012-03-07 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
US7142471B2 (en) * 2005-03-31 2006-11-28 Sandisk 3D Llc Method and apparatus for incorporating block redundancy in a memory array
US8143653B2 (en) 2005-08-10 2012-03-27 Samsung Electronics Co., Ltd. Variable resistance memory device and system thereof
US7362644B2 (en) * 2005-12-20 2008-04-22 Magic Technologies, Inc. Configurable MRAM and method of configuration
US7778061B2 (en) * 2006-10-16 2010-08-17 Hewlett-Packard Development Company, L.P. Crossbar-memory systems and methods for writing to and reading from crossbar memory junctions of crossbar-memory systems
KR100819005B1 (ko) 2007-02-16 2008-04-03 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치
US7684265B2 (en) 2007-02-27 2010-03-23 Analog Devices, Inc. Redundant cross point switching system and method
US7876599B2 (en) 2008-10-31 2011-01-25 Seagate Technology Llc Spatial correlation of reference cells in resistive memory array
US9058857B2 (en) 2011-10-10 2015-06-16 Micron Technology, Inc. Cross-point memory compensation
KR102005226B1 (ko) 2012-10-29 2019-07-30 삼성전자 주식회사 저항체를 이용한 비휘발성 메모리 장치 및 그 구동 방법

Also Published As

Publication number Publication date
US10146619B2 (en) 2018-12-04
US20170199786A1 (en) 2017-07-13
WO2016018397A1 (en) 2016-02-04

Similar Documents

Publication Publication Date Title
US10146619B2 (en) Assigning redundancy in encoding data onto crossbar memory arrays
CN105702286B (zh) 电阻式存储器装置和系统,以及操作该系统的方法
JP6129328B2 (ja) データストレージシステムのための適応誤り訂正符号
CN110580926A (zh) 均衡存储器件的误码率的方法
US9098445B2 (en) Selection of redundant storage configuration based on available memory space
US20200402605A1 (en) Two-Layer Code with Low Parity Cost for Memory Sub-Systems
US10191683B2 (en) One-pass programming in a multi-level nonvolatile memory device with improved write amplification
US10175906B2 (en) Encoding data within a crossbar memory array
KR20140113100A (ko) 레퍼런스 셀을 포함하는 불휘발성 메모리 장치 및 그것의 데이터 관리 방법 및
EP3422353B1 (en) Stacked memory chip device with enhanced data protection capability
US9588888B2 (en) Memory device and method for altering performance characteristic based on bandwidth demand
CN103065673A (zh) 组合存储模块和具有组合存储模块的数据处理系统
US10559354B2 (en) Memory system
KR20180083023A (ko) 메모리 시스템의 어드레스 맵핑 방법
US8405530B2 (en) Encoding data based on weight constraints
EP3855303B1 (en) Techniques to access non-volatile memory using deck offset
US20220043588A1 (en) Localized memory traffic control for high-speed memory devices
TW201839765A (zh) 分配記憶體裝置中的位址以減輕寫入干擾的裝置和方法
CN108053857B (zh) Nand flash的cg分组方法和cg分组装置
WO2023047149A1 (en) Improved ecc configuration in memories
JP2014120184A (ja) 不揮発性半導体記憶装置
KR101679495B1 (ko) 프로그램 상태들과 데이터 패턴들 사이의 매핑
US11875867B2 (en) Weighted wear leveling for improving uniformity
CN112231252B (zh) 用于存储器子系统的内部管理业务调节
KR20190036381A (ko) 스페어 컬럼 리맵 스토리지를 갖는 메모리 장치 및 그 메모리 장치의 컬럼 어드레스 리맵핑 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination