KR20170096152A - 비 휘발성 메모리 크로스바 어레이 - Google Patents

비 휘발성 메모리 크로스바 어레이 Download PDF

Info

Publication number
KR20170096152A
KR20170096152A KR1020177019732A KR20177019732A KR20170096152A KR 20170096152 A KR20170096152 A KR 20170096152A KR 1020177019732 A KR1020177019732 A KR 1020177019732A KR 20177019732 A KR20177019732 A KR 20177019732A KR 20170096152 A KR20170096152 A KR 20170096152A
Authority
KR
South Korea
Prior art keywords
controls
junctions
memory element
row lines
matrix
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020177019732A
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 KR20170096152A publication Critical patent/KR20170096152A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/004Reading or sensing 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/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
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06GANALOGUE COMPUTERS
    • G06G7/00Devices in which the computing operation is performed by varying electric or magnetic quantities
    • G06G7/12Arrangements for performing computing operations, e.g. operational amplifiers specially adapted therefor
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers specially adapted therefor for multiplication or division
    • 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/004Reading or sensing circuits or methods
    • G11C2013/0057Read done in two steps, e.g. wherein the cell is read twice and one of the two read values serving as a reference value
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/79Array wherein the access device being a transistor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Memories (AREA)

Abstract

일례로 비 휘발성 메모리 크로스바 어레이가 제공된다. 어레이는, 복수의 열 라인과 교차하는 복수의 행 라인에 의해 형성되는 복수의 접합부와, 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에 있는 제 1 세트의 컨트롤과, 제 2 세트의 행 라인과 열 제 2 세트의 라인 사이를 연결하는 제 2 세트의 접합부에 있는 제 2 세트의 컨트롤, 및 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤로부터 각자의 열 라인을 통해 전류를 수집하고 제 1 내적 및 제 2 내적의 합에 대응하는 결과 전류를 출력하는 전류 수집 라인을 포함한다.

Description

비 휘발성 메모리 크로스바 어레이{NONVOLATILE MEMORY CROSS-BAR ARRAY}
흔히 멤리스터(memristors)로 지칭되는 저항성 메모리 소자는 멤리스터에 전압 또는 전류를 인가함으로써 상이한 저항 상태로 프로그램될 수 있는 디바이스이다.  멤리스터의 상태를 프로그래밍한 후, 멤리스터가 판독될 수 있다. 멤리스터의 상태는 장치를 비 휘발성으로 간주할 만큼 충분히 긴 지정된 시간동안 안정성을 유지한다. 복수의 멤리스터가 크로스바 어레이 내에 포함될 수 있는데, 크로스바 어레이에는 복수의 열 라인이 복수의 행 라인과 접합부(junctions)에서 교차하고, 멤리스터가 접합부에서 열 라인 및 행 라인에 결합된다.
도면은 비 휘발성 메모리 크로스바 어레이와 관련하여, 본 출원의 개시 내용에(이하에서는, 달리 명시하지 않는 한, 간단히 "본 명세서에서"라고 함) 기재된 발명의 대상의 다양한 예를 설명하기 위해 제공되며 발명의 대상의 범위를 제한하지 않는다. 도면은 반드시 축약대로 나타내지는 않는다.
도 1은 본 명세서에 기술된 바와 같이 내적 계산에 포함된 동작을 수행하는 시스템의 일례를 나타내는 개략도이다.
도 2는 본 명세서에 기술된 멀티플렉스 모드 내적 엔진("DPE")의 일 실시예로 사용되는 비 휘발성 메모리 크로스바 어레이의 일례를 도시하는 개략도이다.
도 3은 본 명세서에 설명된 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이의 일례를 나타내는 개략적인 회로도이다.
도 4는 본 명세서에 설명된 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이에 의해 수행되는 하나의 방법에 관련된 프로세스를 나타내는 흐름도이다. 
이하에서는 복수의 내적(dot product)의 합을 결정하기 위한 크로스바 어레이, 특히 비 휘발성 메모리 크로스바 어레이와 관련된 다양한 예에 대해 더 상세히 설명된다. 본 명세서에 설명된 다양한 예는 다양한 방식으로 구현될 수 있다.
일 측면으로서 제공되는 예는 비 휘발성 메모리 크로스바 어레이(nonvolatile memory cross-bar array)이며, 이는 복수의 열 라인과 교차하는 복수의 행 라인에 의해 형성된 복수의 접합부(junctions)와, 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에 있는 제 1 세트의 컨트롤 - 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 과, 제 2 세트의 행 라인과 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에 있는 제 2 세트의 컨트롤 - 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하고, 각자의 열 라인은 2 개의 상이한 행 라인 내의 제 1 세트의 접합부와 제 2 세트의 접합부를 포함함 -과, 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 각자의 열 라인을 통해 전류를 수집하고, 제 1 세트 컨트롤 및 제 2 세트의 컨트롤로부터 수집된 전류에 각각 대응하는 제 1 내적 및 제 2 내적의 합에 대응하는 결과 전류를 출력하는 전류 수집 라인(current collection line)을 포함한다.
다른 측면으로서 제공되는 예는 시스템이며, 이는 프로세서와, 프로세서에 결합된 비 휘발성 메모리 크로스바 어레이를 포함하되, 멤리스터 크로스바 어레이는, 복수의 열 라인과 교차하는 복수의 행 라인에 의해 형성된 복수의 접합부와, 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에서의 제 1 세트의 컨트롤 - 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 과, 제 2 세트의 행 라인과 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에서의 제 2 세트의 컨트롤 -제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하고, 각자의 열 라인은 2 개의 다른 행 라인 내에 제 1 세트의 접합부와 제 2 세트의 접합부를 포함함 - 를 포함하고, 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤은 독립적으로, 각각의 컨트롤에서 복수의 행렬 값을 정의하는 복수의 프로그래밍 신호를 수신하고, 각각의 컨트롤에 인가될 복수의 벡터 값을 정의하는 복수의 벡터 신호를 각각의 컨트롤에서 수신하며, 각자의 행렬 값 및 벡터 값에 대응하여 제 1 세트 컨트롤 및 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 제 1 내적 및 제 2 내적의 합이 계산된다.
다른 측면으로서 제공되는 예는 계산 방법이며, 이는 비 휘발성 메모리 크로스바 어레이 내의 제 1 세트의 행 라인에 제 1 세트의 전압을 인가하여, 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이의 제 1 세트의 접합부에 위치한 대응하는 제 1 세트의 컨트롤의 저항 값을 변경 - 제 1 세트의 전압은 제 1 행렬 내의 대응하는 개수의 값을 정의하고, 상기 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 하는 단계와,  비 휘발성 메모리 크로스바 어레이 내의 제 2 세트의 행 라인에 제 2 세트의 전압을 인가하여, 상기 제 2 세트의 행 라인과 제 2 세트의 열 라인 사이의 제 2 세트의 접합부에 위치하는 대응하는 제 2 세트의 컨트롤의 저항 값을 변경 - 제 2 세트의 전압은 제 2 행렬 내의 대응하는 개수의 값을 정의하고, 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하며, 각자의 열 라인은 2 개의 다른 행 라인 내에 제 1 세트의 접합부와 제 2 세트의 접합부를 포함함 - 하는 단계와, 제 1 세트 및 제 2 세트의 행 라인에 각각 제 3 세트의 전압 및 제 4 세트의 전압을 인가 - 제 3 세트의 전압 및 제 4 세트의 전압은 각각 제 1 행렬 및 제 2 행렬에 적용되는 대응하는 개수의 벡터 값을 정의함 - 하는 단계와, 제 1 행렬 및 제 2 행렬의 각자의 행렬 값 및 벡터 값에 대응하는 제 1 세트 컨트롤 및 제 2 세트의 컨트롤의 각자의 열 라인을 통해 전류를 수집하는 단계와, 각자의 행렬 값 및 벡터 값에 대응하는 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 제 1 내적 및 제 2 내적의 합을 계산하는 단계를 포함한다.
저항성 랜덤 액세스 메모리
본 명세서에서 용어 "멤리스턴스(memristance)"는 전하가 회로를 통해 한 방향으로 흐를 때 회로의 구성 요소의 저항이 증가하는 현상을 지칭할 수 있으며, 회로에서 반대 방향으로 전하가 흐를 때 저항은 감소할 것이다. 인가된 전압을 차단함으로써 전하의 흐름이 중단되는 경우, 구성 요소는 마지막 저항을 "기억"할 것이며, 전하의 흐름이 다시 시작될 때 회로의 저항은 마지막으로 활성화되었을 때의 저항이 될 것이다. 일 예시에서, 저항성 메모리 소자(resistance memory element)는 저항이 변경될 수 있는 저항기 소자이다.
본 명세서에서 "저항성 메모리 소자"라는 용어는 프로그램 가능한 비 휘발성 메모리를 나타낼 수 있으며, 프로그램 가능한 비 휘발성 메모리에서는 스위칭 메카니즘이 이온 운동을 수반하고, 이온 운동은 밸런스 변경 메모리(valance change memory), 전기 화학적 금속화 메모리(electrochemical metallization memory) 등을 포함한다. 저항성 메모리 소자는 비 휘발성 고체 메모리, 프로그램 가능 로직, 신호 처리, 컨트롤 시스템, 패턴 인식 및 기타 애플리케이션을 포함하는 다양한 애플리케이션에 사용될 수 있다. 저항성 메모리 소자의 일례는 저항성 랜덤 액세스 메모리("ReRAM")이다. ReRAM은 멤리스터를 포함할 수 있는 유전체 고체 물질 전반의 전기 저항을 변경함으로써 작동한다. ReRAM의 예로는 멤리스터, 상 변화 메모리(phase change memory), 전도성 브리징 RAM(conductive-bridging RAM) 및 스핀 전달 토크 RAM이 포함된다. 단지 설명을 용이하게 하고 편의를 위해, 본 명세서에서는 멤리스터가 ReRAM을 설명하는 데 사용되나, 본 설명이 다른 타입의 ReRAM에도 적용될 수 있다는 점을 이해할 것이다.
멤리스티브(Memristive) 장치, 예컨대 멤리스터 등과 같은 ReRAM은 메모리, 스위치 및 논리 회로 및 시스템과 같은 광범위한 전자 회로의 구성 요소로 사용될 수 있는 장치이다. ReRAM의 컨덕턴스 채널은 각 ReRAM에 형성될 수 있으며 각 ReRAM은 비트로 개별적으로 주소가 지정될 수 있다. ReRAM은 마이크로 또는 나노 스케일로 제작될 수 있다. 메모리의 기초로 사용될 때, ReRAM은 1 또는 0의 정보 비트를 저장하기 위해 사용될 수 있다. 논리 회로로 사용될 때, ReRAM은 필드 프로그래머블 게이트 어레이의 비트를 유선 로직 프로그래머블 로직 어레이 기반으로, 또는 본 명세서에 기술된 바와 같이, 내적 엔진("DPE")으로 나타내기 위해 사용될 수 있다. ReRAM은 예를 들어, 화학 기상 증착, 스퍼터링, 에칭, 리소그래피 또는 다른 멤리스터 형성 방법과 같은 임의의 합리적으로 적합한 제조 공정을 거쳐 제조될 수 있다.
메모리 구조에서 (본 명세서에서 간단히 언급하기 위해) MCA(Memristive Cross-Bar Array)와 같은 ReRAM의 비 휘발성 메모리 크로스바 어레이(예를 들어, 멤리스터)가 사용될 수 있다. 일례에서, 크로스바 어레이는 병렬 와이어의 한 세트의 각 와이어를 그러한 제 1 세트와 교차하는 제 2 세트의 병렬 와이어의 모든 멤버(예를 들어 열 라인과 교차하는 행 라인의 모든 멤버)에 연결하는 스위치의 어레이이다. 예를 들어, 메모리의 기초로 사용되는 경우, 정보 비트를 1 또는 0의 형태로 저장하는 데 ReRAM이 사용될 수 있고, 정보 비트 1 또는 0은 멤리스터가 높은 또는 낮은 저항 상태에 있는지(또는 그 반대인지)에 대응한다. 로직 회로로서 사용될 때, ReRAM은 필드 프로그래머블 게이트 어레이와 유사한 논리 회로에서 구성 비트 및 스위치로서 사용될 수 있거나, 또는 유선 로직 프로그래머블 로직 어레이의 기초가 될 수 있다. 이러한 응용 프로그램 및 다른 응용 프로그램에 대해 다중 상태 또는 아날로그 동작이 가능한 ReRAM을 사용하는 것이 가능할 수도 있다.
스위치로서 사용되는 경우, ReRAM(예컨대, 멤리스터)은 크로스 포인트 메모리에서 저 저항(폐쇄) 상태 또는 고 저항(개방) 상태 중 하나일 수 있다. ReRAM의 저항은 ReRAM을 통해 전압 또는 전류와 같은 전기 자극을 인가하여 변경될 수 있다. 일반적으로, 두 상태 간에 스위칭될 수 있는 적어도 하나의 채널이 형성될 수 있으며, 하나의 상태에서는 채널이 전기적으로 도전성인 경로("ON")를 형성하고 다른 하나의 상태에서는 채널이 도전성이 아닌 경로("OFF")를 형성한다. 다른 경우에는, 전도성 경로가 "OFF"를 나타내고 전도성이 아닌 경로가 "ON"을 나타낸다.
비 휘발성 메모리 크로스바 어레이
비 휘발성 고체 상태 메모리, 프로그램 가능 로직, 신호 처리, 컨트롤 시스템, 패턴 인식 및 다른 응용예를 포함하는 다양한 응용예에 비 휘발성 메모리 크로스바 어레이(ReRAM의 멤리스터가 하나의 예이다)가 사용될 수 있다.  비 휘발성 메모리 크로스바 어레이는 내적(dot product)과 관련된 계산을 수행하기 위해 사용될 수 있다. 각각의 내적은 복수의 입력 행렬 값 및 복수의 입력 벡터 값을 포함할 수 있다. 일례에서, 본 명세서의 비 휘발성 메모리 크로스바 어레이는 복수의 내적의 합을 계산하는데 이용된다. 내적의 합산을 포함하는 내적의 계산은 저장 요소를 사용하지 않고 본 명세서에 설명된 비 휘발성 메모리 크로스바 어레이를 사용하여 동시에 수행될 수 있다. 용어 "내적"은 스칼라를 형성하기 위한 두 벡터의 곱(product)(이의 값은 벡터의 크기와 이들 사이의 각의 코사인의 곱임)을 지칭할 수 있다. 벡터는 내적을 얻기 위해 곱해질 수 있는 행렬로서 표현될 수 있다. 내적에 대한 다른 기존 명칭에는 "스칼라 곱"과 "내부 곱"이 있다.
본 명세서에 기재된 비 휘발성 메모리 크로스바 어레이(또는 간단히 "어레이")는 복수의 적절한 컴포넌트를 포함할 수 있다. 본 명세서의 "복수의" 또는 유사한 표현의 용어는 1에서 무한대까지의 임의의 양의 수(positive number)를 나타낼 수 있다. 어레이는 복수의 행 라인 및 행 라인을 교차하는 복수의 열 라인을 포함하여 복수의 접합부를 형성할 수 있다. 어레이는 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에 제 1 세트의 컨트롤을 포함할 수 있고, 제 2 세트의 행 라인 및 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에 제 2 세트의 컨트롤을 포함할 수 있다. 본 명세서에서 "연결(커플링)"이라는 용어는 전기적 연결을 지칭할 수 있다. "제 1", "제 2", "제 3" 등의 용어는 본 명세서에서 이들이 각각 기술하는 객체가 개별 엔티티임을 나타내려는 것이며, 달리 명시적으로 언급되지 않는 한 임의의 시간적 순서를 나타내려는 것은 아니다. 응용 프로그램에 따라 다른 컨트롤을 임의의 적합한 방식으로 어레이 내에 배열할 수 있다. 일 실시예에서, 각자의 열 라인은 2 개의 상이한 행 라인에 제 1 세트의 접합부와 제 2 세트의 접합부를 포함한다. 상이한 행 라인은 서로 인접하거나 또는 서로 인접하지 않을 수 있다. 
제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함할 수 있다. 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함할 수 있다. 트랜지스터는 컨트롤 내의 저항성 메모리 소자와 직렬로 배치될 수 있다. 상이한 컨트롤의 트랜지스터는 서로 동일하거나 상이할 수 있다. 본 명세서에서 트랜지스터는 전자 신호 및/또는 전력을 증폭 및/또는 스위칭하는 데 사용될 수 있는 임의의 적절한 반도체 디바이스일 수 있다. 예를 들어, 트랜지스터는 상보적인 금속 산화물 반도체("CMOS") 전계 효과 트랜지스터("FET")이며 이는 스위치로서 동작할 수 있다. 일 실시 예에서, 트랜지스터는 게이트, 채널, p-웰(p-well)로 도핑된 n-소스/드레인 등을 포함하는 n-타입 MOSFET이다. 트랜지스터는 공핍 모드(depletion mode)로 동작할 수 있다. 일 예시에서, 트랜지스터 온 저항("Ron")은 기생 저항에 기여하지만, 저항성 메모리 소자의 가변 저항 변화에는 기여하지 않는다.
본 명세서에서 저항성 메모리 소자는 멤리스터와 같은 임의의 타입의 ReRAM일 수 있다. 상이한 컨트롤의 저항성 메모리 소자는 서로 동일하거나 상이할 수 있다. 일 예시에서, 상이한 세트의 저항성 메모리 소자는 (상이한 세트에 대해) 서로 다르다. 차이점은 소자의 재료, 디자인, 속성 등과 관련될 수 있다. 일례에서, 상이한 세트의 상이한 저항성 메모리 소자들은 서로 상이한 프리셋 전도도 값(preset conductance value)을 갖는다.
또한 본 명세서에서 설명된 어레이는 열 라인으로부터 전류를 수집하기 위한 전류 수집 라인을 포함할 수 있다. 일례에서, 전류 수집 라인은 각자의 열 라인을 통해 상이한 세트(예를 들어, 제 1, 제 2 등)의 컨트롤로부터 전류를 수집하고 결과 전류를 출력한다. 컨트롤의 여러 세트에서 수집된 전류는 복수의 내적에 해당할 수 있다. 일례에서, 각 세트의 컨트롤로부터 수집된 전류는 행렬 값과 벡터 값의 내적(dot product)과 동일하다. 일례에서, 결과 전류는 복수의 세트의 각각의 컨트롤로부터 수집된 전류에 각각 대응하는 복수의 내적의 합에 대응한다. 일례에서, 전류 수집 라인은 또한 제 1 내적 및 제 2 내적의 합에 대응하는 결과 전류를 출력하는 데 사용된다. 전압 및 전류가 열 라인의 말단(end)에서 수집되고 수집 라인을 사용하여 추가로 수집되는 것으로 본 명세서에 설명되었지만, 임의의 회로 토폴로지 또는 디자인이 전압 값, 전류 값 또는 다른 회로 파라미터와 같은 원하는 출력을 얻기 위해 사용될 수 있다.
본 명세서에 설명된 어레이의 상이한 세트의 컨트롤은 (상이한 세트에 대해) 독립적으로 각자의 동작/명령어를 수행할 수 있다. 예를 들어, 제 1 세트의 모든 컨트롤은 특정 세트의 동작을 수행할 수 있으며 이들은 제 2 세트의 컨트롤과는 독립적으로 수행되고, 상이한 세트의 명령어를 수행한다. 동작은 응용 프로그램에 따라 임의의 적절한 동작을 포함할 수 있다. 예를 들어, 동작은 내적(dot product)의 계산을 실행하는 것을 포함할 수 있다. 저항성 메모리 소자를 포함하는 각각의 컨트롤은 복수의 프로그래밍 신호를 수신할 수 있다. 프로그래밍 신호는 행렬 내의 복수의 값을 정의할 수 있다. 저항성 메모리 소자를 포함하는 각각의 컨트롤은 또한 컨트롤(특히 저항성 메모리 소자)에서 복수의 벡터 신호를 수신할 수 있다. 벡터 신호는 컨트롤(특히 저항성 메모리 소자)에 인가될 복수의 벡터 값을 나타낼 수 있다.
도 1은 일례의 시스템(100)의 개략도를 제공한다.  이 시스템은 컴퓨팅 시스템일 수 있다. 시스템(100)은 전자 장치에서 구현된다. 전자 장치의 예로는 다른 것들 중에서도 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 개인용 정보 단말기(PDA), 모바일 장치, 스마트 폰, 게임 시스템 및 태블릿이 포함된다.
시스템(100)은 컴퓨팅 네트워크를 통해 독립형 하드웨어, 모바일 애플리케이션 등을 포함하는 임의의 데이터 처리 시나리오에서 사용될 수 있다. 또한, 시스템(100)은 컴퓨팅 네트워크, 퍼블릭 클라우드 네트워크, 사설 클라우드 네트워크, 하이브리드 클라우드 네트워크, 다른 형태의 네트워크, 또는 이들의 조합에 채용될 수 있다. 일례에서, 시스템(100)에 의해 제공되는 방법은 예를 들어 제 3 자에 의한 네트워크를 통한 서비스로서 제공된다. 이 예에서 서비스는 예를 들어 복수의 애플리케이션을 호스팅하는 "SaaS(Software as a Service)", 컴퓨팅 플랫폼(예를 들어, 다른 것들 중에서도 운영 체제, 하드웨어 및 스토리지를 포함함)을 호스팅하는 "PaaS(Platform as a Service)", 예를 들어, 다른 것들 중에서도 서버, 스토리지 구성요소, 네트워크 및 구성 요소와 같은 장비를 호스팅하는 "laaS(Infrastructure as a Service)", "APIaaS (application program interface ("API") as a service)", 다른 형태의 네트워크 서비스, 또는 이들의 조합을 포함한다. 본 발명의 시스템은 하나 또는 복수의 하드웨어 플랫폼 상에 구현될 수 있으며, 여기서 시스템 내의 모듈은 하나의 플랫폼상에서 또는 복수의 플랫폼 상에서 실행될 수 있다. 그러한 모듈은 다양한 형태의 클라우드 기술 및 하이브리드 클라우드 기술에서 실행되거나 클라우드에서 또는 클라우드 밖에서 구현될 수 있는 "SaaS(Software as a service)"로 제공될 수 있다. 다른 예에서, 시스템(100)에 의해 제공되는 방법은 로컬 관리자에 의해 실행된다.
바람직한 동작을 달성하기 위해, 시스템(100)은 다양한 하드웨어 구성 요소를 포함할 수 있다. 이러한 하드웨어 구성 요소의 예는 복수의 프로세서(101), 복수의 데이터 저장 장치(102), 복수의 주변 장치 어댑터(103) 및 복수의 네트워크 어댑터(104)를 포함할 수 있다. 이러한 하드웨어 구성 요소는 여러 버스 및/또는 네트워크 연결을 사용하여 상호 연결할 수 있다. 일 실시예에서, 프로세서(101), 데이터 저장 장치(102), 주변 장치 어댑터(103), 멀티플렉스 내적 엔진 비 휘발성 메모리 어레이(the multiplex Dot Product Engine nonvolatile memory array)(110) 및 네트워크 어댑터(104)의 임의의 조합은 버스(105)를 사용하여 통신 가능하게 연결될 수 있다.
데이터 저장 장치(102)는 프로세서(101) 또는 다른 처리 장치에 의해 실행될 수 있는 머신 판독 가능 명령어(예를 들어, 컴퓨터 코드)와 같은 데이터를 저장할 수 있다. 예를 들어, 데이터 저장 장치(102)는 프로세서(101)가 적어도 본 명세서에서 설명된 동작을 구현하기 위해 실행할 수 있은 복수의 애플리케이션에 대한 머신 판독 가능 명령어를 구체적으로 저장할 수 있다.
데이터 저장 장치(102)는 휘발성 및 비 휘발성 메모리를 포함하는 다양한 유형의 메모리 모듈을 포함할 수 있다. 예를 들어, 데이터 저장 장치(102)는 랜덤 액세스 메모리("RAM")(106), 읽기 전용 메모리("ROM")(107) 및 하드 디스크 드라이브("HDD") 메모리(108)를 포함할 수 있다.  다른 적합한 유형의 메모리가 사용될 수도 있다. 일례에서, 데이터 저장 장치(102) 내의 상이한 유형의 메모리는 서로 다른 데이터 저장 요구를 위해 사용된다. 예를 들어, 프로세서(101)는 ROM(107)으로부터 부팅될 수 있고, 하드 디스크 드라이브("HDD") 메모리(108)에 비 휘발성 저장소를 유지하고, RAM(106)에 저장된 머신 판독 가능 명령어를 실행할 수 있다.
데이터 저장 장치(102)는 컴퓨터 판독 가능 저장 매체, 비 일시적 컴퓨터 판독 가능 매체 등과 같은 머신 판독 가능 매체를 포함할 수 있다. 예를 들어, 데이터 저장 장치(102)는 전기, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장비 또는 장치, 또는 전술한 것의 임의의 적절한 조합일 수 있다. 컴퓨터 판독 가능 저장 매체의 일부 예는 복수의 와이어, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), EPROM(erasable programmable read-only memory) 또는 플래시 메모리, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 장치, 자기 저장 장치 또는 이들의 임의의 적절한 조합일 수 있다. 본 명세서에서 컴퓨터 판독 가능 저장 매체는 명령어 실행 시스템, 장비 또는 장치에 의해 또는 그와 관련하여 사용하기 위한 기계 판독 가능 명령어(예를 들어, 컴퓨터 사용 가능한 프로그램 코드)를 포함하거나 저장할 수 있는 임의의 비 일시적 유형의 매체를 지칭할 수 있다.
시스템(100) 내의 주변 장치 어댑터(103) 및 네트워크 어댑터(104)를 포함하는 하드웨어 어댑터는 프로세서(101)가 시스템(100)의 외부 및 내부의 다양한 다른 하드웨어 요소와 인터페이스하는 것을 용이하게 한다. 예를 들어, 주변 장치 어댑터(103)는 예를 들어, 디스플레이 장치(109), 마우스 또는 키보드와 같은 입/출력 장치에 인터페이스를 제공할 수 있다. 주변 장치 어댑터(103)는 또한 외부 저장 장치, 복수의 네트워크 장치(예를 들어 서버, 스위치 및 라우터 등), 클라이언트 장치, 다른 유형의 컴퓨팅 장치 및 이들의 조합에 대한 액세스를 제공할 수 있다.
디스플레이 장치(109)가 제공되어 시스템(100)의 사용자가 시스템(100)과 상호 작용하고 시스템(100)의 동작을 구현할 수 있도록 한다. 주변 장치 어댑터(103)는 또한 프로세서(101)와 디스플레이 장치(109), 프린터 또는 다른 미디어 출력 장치 사이의 인터페이스를 생성할 수 있다. 네트워크 어댑터(104)는 예를 들어, 네트워크 내의 다른 컴퓨팅 장치에 인터페이스를 제공하여, 시스템(100)과 네트워크 내에 위치한 다른 장치 간의 데이터 전송을 용이하게 할 수 있다.
시스템(100)은 프로세서(101)에 의해 실행될 때, 데이터 저장 장치(102)에 저장된 애플리케이션의 수를 나타내는 실행 가능한 머신 판독 가능 명령어(예를 들어, 프로그램 코드)와 연관된 디스플레이 장치(109) 상에 복수의 그래픽 사용자 인터페이스("GUIs")를 디스플레이할 수 있다. GUI는, 이하에 보다 상세하게 설명된 것과 같이, 예를 들어 사용자가 시스템(100)과 상호 작용하여 멀티플렉스 내적 엔진("DPE") 비 휘발성 메모리 어레이(110)와 연관된 행렬 및 벡터 값을 입력할 수 있게 하는 대화식 스크린샷을 디스플레이할 수 있다. 또한, 디스플레이 장치(109)의 GUI 상에 복수의 대화식 제스처를 생성함으로써, 사용자는 입력 데이터에 기초하여 내적 계산으로부터 값을 얻을 수 있다. 디스플레이 장치(109)의 예는 다른 디스플레이 장치들 중에서 컴퓨터 스크린, 랩톱 스크린, 모바일 장치 스크린, PDA(personal digital assistant) 스크린 및 태블릿 스크린을 포함한다.
시스템(100)은 멀티플렉스 모드 내적 엔진("DPE") 비 휘발성 메모리 어레이(110)를 포함할 수 있다. 이 어레이는 프로세서에 전기적으로 결합될 수 있다. 아래에서 보다 상세히 설명되는 바와 같이, 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 복수의 입력들의 가중 합을 수행하기 위해 어레이 내에서 함께 동작하는 복수의 ReRAM(예를 들어, 멤리스터)을 포함하는 복수의 소자들을 포함할 수 있다. 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 임의의 적절한 애플리케이션에 사용될 수 있다. 예를 들어, 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 출력을 임계값과 비교하기 위해 행렬 곱(matrix product)을 수행하기 위해 임계 논리 게이트("TLG")로서 사용될 수 있다. 출력은 예를 들어, 복수의 내적의 합일 수 있다(따라서, 본 명세서에서는 "멀티플렉스 모드" DPE라는 용어를 사용함). 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)가 더 범용인 처리 장치에서 실행되는 소프트웨어에서 가능한 것보다 더 많은 기능을 신속하게 수행하는 가속기로서 사용될 수 있다. 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 이 예에서 시스템(100)의 내부 디바이스인 것으로 도시되어 있지만, 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 시스템(100)에 결합된 주변 디바이스이거나 또는 시스템(100)에 결합된 주변 장치 내에 포함될 수 있다.
시스템(100)은 본 명세서에 설명된 시스템 및 방법의 구현에 사용되는 복수의 모듈을 포함할 수 있다. 시스템(100) 내의 다양한 모듈은 개별적으로 실행될 수 있는 실행 가능 프로그램 코드와 같은 머신 판독 가능 명령어를 포함한다. 다양한 모듈은 별개의 컴퓨터 프로그램 제품으로서 저장될 수 있다. 시스템(100) 내의 다양한 모듈은 또한 복수의 컴퓨터 프로그램 제품 내에서 결합될 수 있고, 각각의 컴퓨터 프로그램 제품은 복수의 모듈을 포함한다. 
시스템(100)은 프로세서(101)에 의해 실행될 때 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)의 동작에 참여하기 위해 내적 엔진 모듈(111)을 포함할 수 있다. 예를 들어, 내적 엔진 모듈(111)은 내적의 수리적 계산에서 처리될 행렬을 정의하는 복수의 입력 값을 수신할 수 있다. 내적 엔진 모듈(111)은 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110) 내에서 저항성 메모리 소자를 포함하는 복수의 컨트롤에 프로그래밍 신호로서 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)에 입력 값을 전송하여 저항성 메모리 소자, 트랜지스터 또는 컨트롤 중 임의의 것을 전체로서 프로그래밍할 수 있다. 내적 엔진 모듈(111)은 또한 컨트롤에 프로그래밍된 행렬과 관련하여 처리될 벡터 입력을 수신할 수 있다. 내적 엔진 모듈(111)은 내적을 나타내는 값 또는 복수의 내적을 합한 값을 더 획득할 수 있으며, 분석이나 추가 프로세싱을 위한 데이터로서 시스템(100) 또는 다른 컴퓨팅 디바이스에게 그러한 값을 전달한다.
도 2는 도 1 의 시스템(100)의 멀티플렉스 모드 내적 엔진("DPE") 비 휘발성 메모리 어레이(110) 내에 사용되는 것과 같은 비 휘발성 메모리 크로스바 어레이(200)의 일례를 도시하는 개략도이다. 비 휘발성 메모리 크로스바 어레이(200)는 복수의 전기 전도성 행 라인(201) 및 복수의 전기 전도성 열 라인(202)을 포함할 수 있다. 비록 3 개의 행 라인(201) 및 4 개의 열 라인(202)이 도 2에 도시되어 있지만, 임의의 수의 행 라인(201) 및 열 라인(202)은 본 명세서에 설명된 비 휘발성 메모리 크로스바 어레이(200)에 존재할 수 있다. 행 라인(201) 및 열 라인(202)은 점선(207)으로 표시된 접합부에서 교차한다. 도 2에서, 행 라인(201)과 열 라인(202)은 서로에 대해 수직인 것으로 도시되어 있지만, 행 라인(201)과 열 라인(202)은 임의의 각도로 교차할 수 있다. 복수의 컨트롤(203)이 접합부(207)에 배치될 수 있고 행 라인(201)을 열 라인(202)에 전기적으로 결합시킬 수 있다. 본 명세서에서 컨트롤(203)은 아래에 설명된 바와 같이 임의의 적절한 수의 구성 요소를 포함할 수 있다. 예를 들어, 컨트롤은 트랜지스터 및 저항성 메모리 소자를 포함할 수 있다. 저항성 메모리 소자는 멤리스터와 같은 ReRAM일 수 있다.
도 2의 비 휘발성 메모리 크로스바 어레이(200)는 V1, V2 및 V3로 표시된 복수의 입력 값(205)을 더 포함할 수 있다. 입력 값(205)은 크로스바 어레이의 각 접합부에서 각자의 개별 컨트롤(203)의 저항성 메모리 소자에서 저항 값을 변경하여 수학적 행렬의 표현(예를 들어, 매핑)을 생성하는데 사용되는 프로그램 신호일 수 있으며, 각 접합부의 각 값은 행렬 내의 값을 나타낸다. 컨트롤(203)의 저항성 멤리스티브 요소들 사이의 이러한 저항 변화는 로우 투 하이 값에서 하이 투 로우 값으로의 아날로그 변화일 수 있다. 일 예에서, 저항성 메모리 소자는 그들이 가지고 있는 마지막 저항(예, ReRAM)을 "기억"한다는 점에서 "메모리 저항"이다.
또한 입력 값(205)은 크로스바 어레이의 각 접합부에서 행렬 값을 계산에 포함된 각 컨트롤의 벡터 값과 곱하는 방식으로, 컨트롤 디바이스(203)의 각자의 개별 저항성 메모리 소자에서의 저항 값을 판독하는 데 사용되는 판독 신호일 수 있다. 본 명세서에서 벡터 신호로 지칭되는 판독 신호는 제 2 입력 값(205)으로서 비 휘발성 메모리 크로스바 어레이(200)의 행 라인(201)에 인가될 수 있다. 벡터 신호는 프로그램 신호에 의해 표현된 행렬에 곱해질 벡터를 나타낼 수 있다. 일례에서, 벡터 신호는 컨트롤(203)을 프로그래밍하는 데 사용된 제 1 전압보다 낮은 전압 값을 가지므로, 벡터 신호에 의해 인가되는 전압 레벨은 제 1 전압에 의해 프로그래밍된 바와 같이 컨트롤(203)의 저항 값을 변화시키지 않는다. 이러한 예에서, 벡터 신호는 컨트롤(203) 내의 저항성 메모리 소자의 저항 값을 변경하지 않음으로써 이러한 방식으로 판독 신호로서 동작한다.
벡터 신호는 컨트롤의 각각의 접합부(207)에서 그 컨트롤(203) 내의 저항성 메모리 소자와 상호 작용하고, 결과 전류는 각 열 라인(202)의 단부에서 수집된다(206). 각 열 라인(202)의 합은 도 2에 나타낸 것과 같이
Figure pct00001
Figure pct00002
로 표현되며, 여기서,
Figure pct00003
는 저항성 메모리 소자의 전기 전도도(명세서에서 축약하여 "컨덕턴스(conductance)"라고 함) 값이다. 컨턱턴스는 저항의 역(inverse)이다.
전압 값으로부터 얻어진 합은 열 벡터 또는 열 벡터의 서브 세트의 값을 나타낸다. 각 열 라인(202)의 이러한 합은 또한 도 3에 나타낸
Figure pct00004
의 단일 값을 얻기 위해 변환 회로(313)를 통해 전류 수집 라인(311)에서 합산될 수 있으며, 이하에 보다 상세하게 설명될 것이다. 구성에 따라,
Figure pct00005
의 단일 값은 여러 개의 내적의 합을 나타낼 수 있고, 각각은 서로 다른 컨트롤 세트의 신호로부터 얻은 결과이다. 일례에서, 컨트롤의 저항, 특히 그 저항성 메모리 소자를 공지된 사전 지정된 값으로 설정하기 위해 프로그램 신호 및 벡터 신호의 인가 전에 컨트롤 또는 컨트롤 세트에 초기 신호가 인가된다.
내적 엔진(" DPE ")
일반적으로, 어레이는 DPE 애플리케이션에서 단일 행렬로 나타낼 수 있으며, 각각의 내적 연산은 새로운 입력 벡터를 필요로 한다. 수학식에서 이는
Figure pct00006
로 나타낼 수 있으며, Vin_x는 입력 전압 세트 x이고, M1은 다중 레벨의 사전 설정된 아날로그 저항이다. 여러 결과의 합(예, 내적 계산)이 계산될 때 다음 방정식이 사용된다.
Figure pct00007
여기서 Vin_x 및 Vin_y는 서로 다른 입력 전압이며, M1과 M2는 x와 y에 대응하는 서로 다른 두 어레이 세트이다. 기존의 방법은 하나의 어레이를 여러 번 사용한 다음 각 시간의 값을 메모리에 저장하여, 메모리에 저장된 값을 더하여 합계를 수행하는 것이다. 본 명세서에 기술된 멀티플렉스 내적 생성 엔진은 본 명세서에 기술된 비 휘발성 메모리 크로스바 어레이의 구성에 의해 반영되는 바와 같이, 복수의 행렬의 합산을 효율적으로 수행하는 데 적합하다. 예를 들어, 본 명세서에서 설명된 어레이에 의해 수행된 합산은 후속 합산 계산을 위해 메모리에 결과를 저장할 필요 없이 하나의 단일 어레이에서 수행될 수 있다. 일 실시예에서, 멀티플렉스 내적 엔진은 중간 값을 저장 유닛(예를 들어, 저장 메모리 회로)에 저장하지 않고 내적(dot product)의 계산과 동시에 복수의 내적(dot product)의 합산을 수행한다. 이는 저장 메모리 회로를 갖지 않는 하드웨어 시스템의 형태를 취할 수도 있고, 하드웨어 시스템에 저장 메모리 회로가 존재하는 경우에도 이를 사용하지 않아도 될 수도 있다.
도 3은 도 1 및 도 2에 도시된 어레이(110)와 같은 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이의 일례의 개략적인 회로도이다. 도 3의 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 도시된 회로 레이아웃을 갖는 것으로 나타내었지만, 임의의 수의 회로 레이아웃이 본 명세서에 설명된 시스템 및 방법의 기능을 얻기 위해 사용될 수 있다. 도 3에 나타낸 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 도 2에 도시된 특징과 대응하는 것과 같은 행 라인(311, 312), 열 라인(313) 및 컨트롤(331)을 포함한다. 전술한 바와 같이, 임의의 수의 행 라인 및 열 라인이 타원(31, 32)으로 표시된 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이 내에 포함될 수 있다. 일 예시에서, 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이 내에 포함된 행 라인 및 열 라인의 수는 본 명세서에 기술된 시스템 및 방법을 사용하여 계산될 내적의 행렬의 사이즈와 동일하거나 더 클 수 있다.
도 3에 도시된 바와 같이, 어레이는 아래 첨자 "x"로 표시되는 세트 X와 아래 첨자 "y"로 표시되는 세트 Y를 갖는 2 세트의 서브 행렬(X 및 Y)을 갖는다. 2 개의 서브 행렬 세트가 도 3에 도시되어 있지만, 2 세트 이상이 가능하다. 컨트롤(331, 332)에 반영된 행렬의 각 세트는 one-transistor-one-resistor("1T1R") 회로 아키텍처에 기초하여 입력과 연관된다. 전술한 바와 같이, 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤의 저항기는 ReRAM과 같은 저항성 메모리 소자일 수 있다. 각 서브 행렬은 컨트롤 신호의 세트에 의해 제어된다. 이 예에서, 2 개의 컨트롤 신호를 턴온함으로써, 2 개의 내적의 합산 동작이 수행될 수 있다. 2 세트 이상의 서브 행렬의 경우에, 상응하는 개수의 컨트롤 신호가 합산 연산을 위해 사용된다. 단일 행렬 내적이 계산되는 일례에서, X 및 Y 세트 중 하나만이 턴온된다.
도 3에 도시된 구성에서, 어레이는 제 1 세트의 행 라인(311)(또는 아래 첨자 "x"로 표시된 세트)과 제 1 세트의 열 라인(311) 사이를 연결하는 제 1 세트의 접합부에 있는 제 1 세트의 컨트롤(331), 그리고 제 2 세트의 행 라인(312) (또는 아래 첨자 "y"로 표시된 세트)과 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에 있는 제 2 세트의 컨트롤(332)을 포함한다. 일 예시에서, 각 열 라인은 도 3에 도시된 바와 같이, 두 개의 상이한 행 라인에서의 제 1 세트의 접합부와 제 2 세트의 접합부를 포함하며, 다시 설명하면, 제 1 세트의 열 라인은 이 예에서 제 2 세트의 열 라인과 동일하다. 제 1 세트의 컨트롤 각각은 트랜지스터(341) 및 저항성 메모리 소자(351)를 포함하고, 제 2 세트의 컨트롤 각각은 트랜지스터(342)와 저항성 메모리 소자(352)를 포함한다. 두 세트(Vin_x_1, Vin_y_1, Vin_x_2, Vin_y_2, ... Vin_x_n, Vin_y_n)에 대해 한 쌍의 입력 전압을 적용하여 2 개의 서브 행렬 X 및 Y에 대한 내적 값을 구할 수 있다.
연산 증폭기(OP amp)는 DPE 비 휘발성 메모리 어레이(110)를 멀티플렉스 모드 DPE 비 휘발성 메모리 어레이로 만들기 위해 멀티플렉스 증폭기로서 사용될 수 있다. 연산 증폭기의 한 예가 전류 증폭기(310)이다. 일 예시에서, DPE 비 휘발성 메모리 어레이(110)의 각 서브 행렬의 출력에 대해, 다음의 관계가 존재한다.
Figure pct00008
여기서 R f는 출력에서의 연산 증폭기의 피드백 저항이며, Ri는 내적 계산 전에 사전 정의된 저항성 메모리 소자의 다중 레벨 아날로그 저항이다. 다른 유형의 관계도 존재할 수 있으며 사용될 수 있다.
멀티플렉스 모드 DPE 비 휘발성 메모리 어레이(110)는 제 1 세트(331) 및 제 2 세트(332)의 컨트롤로부터 수신된 전류를 각자의 열 라인(313)을 따라 각자의 출력 전압(Vout1, Vout2 ... Voutm)으로 변환하기 위한 복수의 전류 증폭기(310)를 더 포함할 수 있다. 일 예시에서, 전류 증폭기(310)는 트랜스임피던스 증폭기("TIA")이다. 일례에서, TIA는 도 3에 도시된 바와 같은 연산 증폭기를 사용하여 구현되는 전류-전압 변환기이다. TIA는 차동 모드 DPE 비 휘발성 메모리 어레이(110)의 전류 출력을 사용 가능한 전압으로 증폭하는데 이용될 수 있다. 본 명세서에 설명된 바와 같이 본 시스템 및 방법의 기능을 얻기 위해 임의의 추가적인 개수의 회로 레이아웃이 사용될 수 있음에 주의해야 한다.
열 라인(313)으로부터의 전류는 도 3에 도시된 바와 같이 수집 라인(311)을 사용하여 집합적으로 수집될 수 있다. 이 예에서 수집된 전류
Figure pct00009
는 각각의 행렬 값과 어레이의 제 1 및 제 2 서브 행렬의 벡터 값에 대응하는 2 개의 내적의 합을 나타낸다. 이전에 언급했듯이, 두 개 이상의 내적이 계산에 포함될 수 있다. 또한, 도 3에 도시된 바와 같이, 전류 증폭기(310)와 수집 라인(311) 사이에 변환 회로(314)가 배치될 수 있다. 일 실시예에서, 전류 증폭기(310)로부터 출력된 전압이 수집될 때, 모든 전압은 키르히호프(Kirchhoffs) 전압 법칙 하에서 동등하게 되고, 내적에 대한 값은 손실된다. 따라서, 컨트롤(331, 332)로부터 얻어진 전류가 합산된다. 일 예시에서, 전류 증폭기(310)는 전류 증폭기(310)에 의해 출력된 전압과는 대조적으로 전류의 수집을 허용하도록 제거될 수 있다. 다른 예에서 및 도 3에 도시된 바와 같이, 변환 회로(314)는 개별적인 전류 증폭기(310)로부터 출력된 전압을 수집하고, 전압을 전류로 변환하고, 상이한 컨트롤 세트에 대한 전류를 합산한다. 그러나, 임의의 회로 설계가 내적 및 그 합을 얻기 위해 컨트롤로부터의 전류의 합을 얻도록 채용될 수 있다.
전술한 바와 같이, 본 명세서에서 설명된 어레이는 2 세트 이상의 컨트롤을 포함할 수 있으며, 따라서 2 이상의 내적(dot product)의 합을 계산할 수 있다. 예를 들어, 어레이는 제 3 세트의 접합부에서 제 3 세트의 컨트롤을 포함할 수 있으며, 제 3 세트의 행 라인과 제 3 세트의 열 라인 사이를 연결한다. 제 1 및 제 2 컨트롤 세트들에 대해 위에서 설명된 것과 일치하게, 제 3 세트의 각각의 컨트롤은 제 3 트랜지스터 및 제 3 저항성 메모리 소자를 포함할 수 있다. 또한, 각 열 라인은 3 개의 상이한 행 라인에서 제 1 세트, 제 2 세트 및 제 3 세트의 접합부를 포함할 수 있다. 이 경우, 총합은 제 3 세트의 컨트롤로부터 수집된 전류를 사용하여 제 3 세트의 각 행렬 값 및 벡터 값에 대응하는 제 3 내적을 포함하도록 추가로 계산된다.
계산 방법
본 명세서에 기재된 어레이 또는 그러한 어레이를 포함하는 시스템은 본 명세서에 기재된 계산 동작을 얻기 위해 임의의 적절한 수의 동작을 수행하도록 채택될 수 있다. 동작은 머신 판독 가능 명령어를 실행하는 것일 수 있다. 예를 들어, 프로세서는 데이터 저장 장치로부터의 임의의 실행 가능 코드일 수 있는 머신 판독 가능 명령어를 검색하고 머신 판독 가능 명령어를 실행하기 위한 적절한 하드웨어 아키텍처를 포함할 수 있다. 머신은 컴퓨터와 같은 모든 유형의 프로세서가 될 수 있다. 머신 판독 가능 명령어는 또한 시스템의 다른 컴포넌트로 하여금 명령어를 실행하게 할 수 있다. 예를 들어, 명령어는 상이한 세트의 컨트롤이 독립적으로 각각의 컨트롤에서 복수의 프로그래밍 신호들을 수신하게 할 수 있으며, 프로그래밍 신호는 복수의 행렬 값을 정의한다. 명령어는 또한 상이한 세트의 컨트롤이 독립적으로 각각의 컨트롤에서 복수의 벡터 신호를 수신하도록 할 수 있으며, 벡터 신호는 각각의 컨트롤에 인가될 복수의 벡터 값들을 정의한다. 일 예시에서, 제 1 내적 및 제 2 내적의 합은 각자의 행렬 값 및 벡터 값에 대응하는 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 계산된다.
도 4는 본 명세서에 설명된 계산 방법의 일례에 관련된 프로세스를 나타내는 흐름도이다. 도 4에 도시된 바와 같이, 본 방법은 먼저 비 휘발성 메모리 크로스바 어레이 내의 제 1 세트의 행 라인에 제 1 세트의 전압을 인가하여 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이의 제 1 세트의 접합부에 위치한 대응하는 제 1 세트의 컨트롤에 대응하는 저항 값을 변경하는 것을 포함하고, 제 1 세트의 전압은 제 1 행렬 내의 대응하는 개수의 값을 정의하며, 제 1 세트의 각 컨트롤은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함한다(401). 이 방법은 비 휘발성 메모리 크로스바 어레이 내의 제 2 세트의 행 라인에 제 2 전압 세트를 인가하여 제 2 세트의 행 라인과 제 2 세트의 열 라인 사이의 제 2 세트의 접합부에 위치한 대응하는 제 2 세트의 컨트롤의 저항 값을 변경하는 것을 더 포함하고, 제 2 전압은 제 2 행렬 내의 대응하는 개수의 값을 정의하고, 제 2 세트의 각 컨트롤은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하며, 각각의 열 라인은 2 개의 상이한 행 라인 내에 제 1 세트의 접합부 및 제 2 세트의 접합부를 포함한다(402). 이들 전압은 각각의 행렬 내의 대응하는 개수의 값을 나타내는 프로그램 전압일 수 있다. 일 예시에서, 수학적 행렬은 각 컨트롤 세트(및 각 내적 곱)에 대한 다중 DPE 비 휘발성 메모리 어레이에 매핑되고, 내적 계산 프로세스에서 제 1 및 제 2 세트의 값으로서 처리되도록 준비된다.
이 방법은 제 1 세트 및 상기 제 2 세트의 행 라인에 각각 제 3 세트 및 제 4 세트의 전압을 인가하는 것을 더 포함할 수 있으며, 제 3 세트 및 제 4 세트의 전압은 각각 제 1 행렬 및 제 2 행렬에 인가된 대응하는 개수의 벡터 값을 정의한다(403). 제 3 및 제 4 세트의 전압은 각각 제 1 및 제 2 내적에 대한 행렬 값과 벡터 값의 내적을 얻기 위해 어레이에 프로그래밍된 행렬 값에 적용될 복수의 벡터 값을 나타낼 수 있다. 제 3 및 제 4세트의 전압은 멀티플렉스 DPE 비 휘발성 메모리 어레이에 인가될 때, 상이한 세트의 컨트롤(및 내부 저항 메모리 소자)은 저항성 메모리 소자를 통해 전류가 흐르게 하는 전압 입력(Vin_x_1, Vin_y_1, ..., Vin_x_n, Vin_y_n)을 살핀다(see).  흐르고 있는 전류 레벨은 저항성 메모리 소자의 컨덕턴스와 곱한 전압 입력(Vin_x_1, Vin_y_1, ..., Vin_x_n, Vin_y_n)의 값이고, 멤리스터의 컨덕턴스는 저항성 메모리 소자의 저항 값을 변화시키는 전술한 전압에 의해 정의된다. 벡터 신호는 판독 신호의 역할을 한다. 벡터 신호에 의해 인가된 전압 레벨은 저항성 메모리 소자를 프로그램하기 위해 사용된 제 1 및 제 2 전압보다 작기 때문에, 벡터 신호에 의해 인가된 전압 레벨은 제 1 및 제 2 전압에 의해 프로그램된 바와 같이 저항성 메모리 소자의 저항 값을 변화시키지 않는다. 따라서, 일례에서, 제 3 및 제 4 전압의 인가를 통해 개개의 저항성 메모리 소자로부터 획득된 전류는 개개의 내적에 대한 개개의 저항성 메모리 소자에서 벡터 신호에 의해 획득된 벡터 값을 이용하여 개개의 저항성 메모리 소자에 프로그램 신호에 의해 획득되는 행렬 값의 곱과 동일하다.
이 방법은 또한 제 1 및 제 2 행렬의 각 행렬 값 및 벡터 값에 대응하는 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤의 각 열 라인을 통해 전류를 수집하는 것을 포함할 수 있다(404). 마지막으로 이 방법은, 각 행렬 값 및 벡터 값에 대응하는 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 제 1 내적 및 제 2 내적의 합을 계산하는 것을 포함할 수 있다(405).
이 방법은 추가적인 프로세스를 포함할 수 있다. 예를 들어, 이 방법은 제 1 내적 및 제 2 내적을 독립적으로 계산하기 위해 (또는 2 개 이상의 내적이 계산되는 경우에) 머신 판독 가능 명령어를 사용하여 제 1 세트의 컨트롤 및 제 2 세트의 컨트롤을 제어하는 것을 포함할 수 있다. 이러한 계산은 이러한 두 개의 내적의 동시적인 합산과는 별개일 수 있다. 또한, 이러한 방법은 상이한 계산의 결과를 출력하는 것을 포함할 수 있다. 또한, 이 방법은 프로세서가 시스템 내의 복수의 잔여 하드웨어 유닛으로부터 입력을 수신하고 시스템의 잔여 하드웨어 유닛에 출력을 제공하는 것을 포함할 수 있다. 일례에서, 상이한 내적의 합을 계산하는 것은 행렬 값 및 벡터 값을 저장 메모리 회로에 저장하는 것을 포함하지 않는다. 전술한 바와 같이, 본 명세서에 설명된 방법에 관련된 임의의 프로세스는 단독으로 시스템의 다른 구성 요소와 함께 프로세서로 하여금 본 명세서에서 설명된 것과 같은 동작을 구현하게 하는 머신 판독 가능 명령어를 포함할 수 있다. 예를 들어, 상기 방법은 수집된 전류를 2 차 컴퓨터 프로그램에 입력하는 단계를 더 포함할 수 있다.
적어도 전술한 특징들의 결과로서, 본 명세서에 설명된 어레이는 복수의 이점들을 가질 수 있으며, 이러한 이점은 (1) 2개의 행렬의 합산은 내적을 수행하는 동안 동시에 행해질 수 있음(이는 동작 속도를 크게 개선할 것임) (2) 동작은 메모리 회로를 저장할 필요성을 제거함, (3) 아키텍처가 단일 행렬 내적, 2 개의 행렬 내적의 합 또는 서브 행렬 합산에 대해 가변적이라는 것을 포함한다.
추가적인 유의점
전술한 개념(그러한 개념이 서로 상충하지 않는 경우)의 모든 조합은 본 명세서에 개시된 발명의 대상의 일부로서 고려된다는 점에 유의해야 한다. 특히, 본 명세서의 끝 부분에 나타나는 청구된 발명의 대상의 모든 조합은 본 명세서에 개시된 발명의 대상의 일부로서 고려된다. 또한, 본 명세서에 명시적으로 사용되며 또한 참조로서 포함된 개시내용에 등장하는 용어에는 본 명세서에 개시된 특정 개념과 가장 일치하는 의미를 부여해야 한다. 
본 명세서의 암시가 다양한 예와 관련하여 설명되었지만, 본 암시가 그러한 예로 제한되는 것은 아니다. 상술한 예는 수많은 다양한 방식으로 구현될 수 있다. 예를 들어, 일부 예는 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 예시의 어떠한 측면이 적어도 부분적으로 소프트웨어로 구현되는 경우, 소프트웨어 코드는 임의의 적합한 프로세서 또는 프로세서의 집합(이들이 단일 컴퓨터에 제공되든 여러 컴퓨터에 분산되든 상관 없이)에서 실행될 수 있다.
본 명세서에 설명된 다양한 예는 적어도 하나의 머신 판독가능 명령어가 인코딩되는, 예를 들어, 컴퓨터 메모리, 플로피 디스크, 콤팩트 디스크, 광학 디스크, 자기 테이프, 플래시 메모리, 테이프, 플래시 메모리, 필드 프로그래머블 게이트 어레이의 회로 구성 또는 다른 반도체 장치 등과 같은 비 일시적 머신 판독 가능 저장 매체 (또는 다중 머신 판독 가능 저장 매체)로서 또는 다른 유형의 컴퓨터 저장 매체 또는 비 일시적인 매체로서 구현될 수 있으며, 명령어는 적어도 하나의 머신(컴퓨터 또는 다른 유형의 프로세서)에서 실행될 때, 적어도 하나의 머신으로 하여금 본 명세서에 논의된 기법의 다양한 예를 구현하는 방법을 수행하게 한다. 컴퓨터 판독가능 매체(들)는 운반 가능할 수 있으며 이에 따라 매체에 저장된 프로그램(들)이 적어도 하나의 컴퓨터나 다른 프로세서에 로딩되어 본 명세서에 설명된 다양한 예를 구현하게 할 수 있다.
"머신 판독 가능 명령어"라는 용어는 본 명세서에서 머신(컴퓨터 또는 다른 타입의 프로세서)으로 하여금 본 명세서에서 설명된 기술의 다양한 예를 구현하게 하도록 사용될 수 있는 머신 코드 또는 머신 실행가능 명령어의 세트라면 어느 것이나 지칭하는 일반적이 의미로서 사용된다. 머신 판독 가능 명령어는 소프트웨어 또는 프로그램을 포함할 수 있으나 이에 한정되지는 않는다. 머신은 설명된 기능(들)을 수행하도록 특별히 설계된 컴퓨터 또는 다른 유형의 프로세서를 지칭할 수 있다. 또한, 본 명세서에 설명된 방법을 수행하기 위해 실행될 때, 머신 판독 가능 명령어는 단일 머신 상에 존재할 필요는 없지만, 본 명세서에 설명된 다양한 예를 구현하기 위해 복수의 상이한 머신들 사이에서 모듈 형태로 분산될 수 있다.
머신 실행 가능 명령어는 적어도 하나의 머신(예를 들어, 컴퓨터 또는 다른 타입의 프로세서)에 의해 실행되는 프로그램 모듈과 같은 많은 형태를 가질 수 있다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성 요소, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 동작은 다양한 예에서 원하는 대로 결합되거나 분산될 수 있다.
또한, 본 명세서에 설명된 기술은 적어도 하나의 예가 제공되는 방법으로서 구현될 수 있다. 방법의 일부로 수행되는 동작은 임의의 적절한 방법으로 순서화될 수 있다. 따라서, 예시가 도시된 것과 다른 순서로 동작이 수행되는 예들이 구성될 수 있으며, 이 예에서 순차적인 동작으로 도시되어 있지만, 일부 동작은 동시에 수행될 수 있다.
본 명세서에서 정의되고 사용되는 모든 정의는 사전적 정의, 참조로 포함된 문헌의 정의 및/또는 정의된 용어의 통상적 의미를 컨트롤하는 것으로 이해되어야 한다.
청구 범위를 포함하여 본 명세서에서 사용된 "하나의" ("a" 및 "an")라는 표현은 명확하게 반대로 표시되지 않는 한 "적어도 하나"를 의미하는 것으로 이해되어야 한다. 본 명세서에 인용된 범위는 모두 포함된다.
청구 범위를 포함하여 본 명세서 전반에 걸쳐 사용된 "실질적으로" 및 "약"이라는 용어는 예를 들면 프로세싱의 변화로 인한 작은 변동을 표현하고 설명하는데 사용된다. 예를 들어, 이들은 ± 5 % 이하(가령, ± 2 % 이하, ± 1 % 이하, ± 0.5 % 이하, ± 0.2 % 이하, ± 0.1 % 이하, ± 0.05 % 이하 등)을 나타낼 수 있다. 
청구 범위를 포함하여 본 명세서에서 사용된 문구 "및/또는"은 이와 같이 결합된 요소 중 "어느 하나 또는 둘 모두" (즉, 일부의 경우에는 결합형으로 존재하고 다른 경우에는 분리형으로 존재하는 요소)를 의미하는 것으로 이해되어야 한다. "및/또는"과 함께 나열된 여러 요소도 동일한 방식으로, 즉 그와 같이 결합된 요소 중 "하나 이상"으로 해석되어야 한다. "및/또는"이라는 어구와 함께 구체적으로 언급된 요소 외에, 그러한 구체적으로 언급된 요소와의 관련성 여부와 상관없이, 다른 요소가 선택적으로 존재하는 것일 수 있다. 따라서, 비 제한적인 예로서, "A 및/또는 B"에 대한 언급은 "포함하다"와 같은 개방형 언어와 함께 사용될 때, 일례에서 A만을 지칭할 수 있고(선택적으로 B 이외의 요소를 포함함), 다른 예에서는 B만을 지칭할 수 있으며(선택적으로 A 이외의 요소를 포함함), 또 다른 예에서는, A 및 B 모두를 지칭(선택적으로 다른 요소들을 포함함)할 수 있다. 
청구 범위를 포함하여 본 명세서에서 사용되는 "또는"은 위에 정의된 바와 같은 "및/또는"과 동일한 의미를 갖는 것으로 이해되어야 한다. 예를 들어, 목록에서 항목을 분리할 때, "또는"이나 "및/또는"은 포괄적인 것으로 해석되어야 하며, 즉 복수의 요소 또는 요소의 리스트(선택적으로 열거되지 않은 추가 항목)중 적어도 하나의 요소뿐 아니라 하나 이상의 요소를 포함하는 것으로 해석되어야 한다. "단 하나" 또는 "정확히 하나" 등의 명확하게 다르게 표시된 용어(청구 범위에서 사용되는 경우 "~로 구성됨") 만이 복수의 요소 또는 요소의 목록 중 정확히 하나의 요소를 포함하는 것을 의미한다. 일반적으로, 본 명세서에서 사용된 "또는"이라는 용어는 "어느 한쪽", "~ 중 하나", "~ 중 단 하나" 또는 "~ 중 정확히 하나"와 같은 배타성의 조건이 선행될 때 배타적인 대안(즉, "둘 다가 아니라 둘 중 하나 또는 다른 하나")을 나타낸 것으로서 해석된다. 특허 청구 범위에서 사용되는 "본질적으로 구성되는"은 특허법 관련 분야에서 사용되는 것과 같은 통상적인 의미를 가진다.
청구 범위를 포함하여 본 개시 내용에서, "포함하다", "구성되다", "운반하다", "갖다", "내포하다", "수반하다", "보유하다", 및 "구성하다"와 같은 모든 과도적 어구는 개방형, 즉 포함하지만 이에 국한되지 않는 것을 의미하는 것으로 이해되어야 한다. "~ 로 구성된" 및 "~로 주로 구성된"과 같은 과도적 어구는 미국 특허청의 특허 심사 기준(§2111.03)에 명시된 바와 같이 각각 폐쇄 또는 반 폐쇄형 연결 어구이다.
청구 범위는 그 효과에 대해 언급되지 않는 한 설명된 순서 또는 요소에 제한되는 것으로 해석되어서는 안 된다. 첨부된 청구 범위의 사상 및 범주를 벗어나지 않는 범위에서 형태 및 세부 사항에서의 다양한 변화가 당업자에 의해 이루어질 수 있음을 이해해야 한다. 다음의 특허 청구 범위 및 그 균등물의 사상 및 범주 내에 있는 모든 예가 청구된다.

Claims (15)

  1. 비 휘발성 메모리 크로스바 어레이(nonvolatile memory cross-bar array)로서,
    복수의 열 라인과 교차하는 복수의 행 라인에 의해 형성되는 복수의 접합부(junctions)와,
    제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에 있는 제1 세트의 컨트롤 - 상기 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 과,
    제 2 세트의 행 라인과 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에 있는 제 2 세트의 컨트롤 - 상기 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하고, 각자의 열 라인은 2 개의 상이한 행 라인에서 상기 제 1 세트의 접합부와 상기 제 2 세트의 접합부를 포함함 -과,
    상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 각자의 열 라인을 통해 전류를 수집하고, 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 수집된 전류에 각각 대응하는 제 1 내적 및 제 2 내적의 합에 대응하는 결과 전류를 출력하는 전류 수집 라인(current collection line)
    을 포함하는
    비 휘발성 메모리 크로스바 어레이.
  2. 제 1 항에 있어서,
    상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤은 독립적으로,
    상기 각각의 컨트롤에서 복수의 행렬 값을 정의하는 복수의 프로그래밍 신호를 수신하고,
    상기 각각의 컨트롤에 인가될 복수의 벡터 값을 정의하는 복수의 벡터 신호를 각각의 컨트롤에서 수신하며,
    상기 비 휘발성 메모리 크로스바 어레이는 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 상기 각자의 행렬 값 및 벡터 값의 상기 제 1 내적 및 상기 제 2 내적을 계산하는
    비 휘발성 메모리 크로스바 어레이.
  3. 제 1 항에 있어서,
    상기 제 1 저항성 메모리 소자 및 상기 제 2 저항성 메모리 소자는 상이한 사전 설정된 컨덕턴스 값을 가지는
    비 휘발성 메모리 크로스바 어레이.
  4. 제 1 항에 있어서,
    상기 제 1 저항성 메모리 소자 및 상기 제 2 저항성 메모리 소자 중 하나 또는 모두는 저항성 랜덤 액세스 메모리인
    비 휘발성 메모리 크로스바 어레이.
  5. 제 1 항에 있어서,
    상기 제 1 저항성 메모리 소자 및 상기 제 2 저항성 메모리 소자 중 하나 또는 모두는 멤리스터(memristor)인
    비 휘발성 메모리 크로스바 어레이.
  6. 제 1 항에 있어서,
    상기 제 1 내적 및 제 2 내적의 각자의 합(sum) 및 곱(product)을 포함하는 계산은 상기 비 휘발성 메모리 크로스바 어레이에 의해 동시에 수행되는
    비 휘발성 메모리 크로스바 어레이.
  7. 제 1 항에 있어서,
    제 3 세트의 행 라인과 제 3 세트의 열 라인 사이를 연결하는 제 3 세트의 접합부에 있는 제 3 세트의 컨트롤을 더 포함하고,
    상기 제 3 세트의 컨트롤 각각은 제 3 트랜지스터 및 제 3 저항성 메모리 소자를 포함하며, 각자의 열 라인은 3 개의 상이한 행 라인에서 제 1 세트, 제 2 세트 및 제 3 세트의 접합부를 포함하고,
    상기 합은 상기 제 3 세트의 각자의 행렬 값 및 벡터 값에 대응하는 상기 제 3 세트의 컨트롤로부터 수집된 전류를 사용하여 제 3 내적을 포함하도록 더 계산되는
    비 휘발성 메모리 크로스바 어레이.
  8. 시스템으로서,
    프로세서와,
    상기 프로세서에 결합된 비 휘발성 메모리 크로스바 어레이를 포함하되,
    상기 비 휘발성 메모리 크로스바 어레이는,
    복수의 열 라인과 교차하는 복수의 행 라인에 의해 형성되는 복수의 접합부와,
    제 1 세트의 행 라인과 제 1 세트의 열 라인 사이를 연결하는 제 1 세트의 접합부에 있는 제 1 세트의 컨트롤 - 상기 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 과
    제 2 세트의 행 라인과 제 2 세트의 열 라인 사이를 연결하는 제 2 세트의 접합부에 있는 제 2 세트의 컨트롤 - 상기 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하고, 각자의 열 라인은 2 개의 상이한 행 라인에서 상기 제 1 세트의 접합부와 상기 제 2 세트의 접합부를 포함함 -
    를 포함하고,
    상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤은 독립적으로,
    각각의 컨트롤에서 복수의 행렬 값을 정의하는 복수의 프로그래밍 신호를 수신하고,
    상기 각각의 컨트롤에 인가될 복수의 벡터 값을 정의하는 복수의 벡터 신호를 각각의 컨트롤에서 수신하며,
    상기 각자의 행렬 값 및 벡터 값에 대응하여 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 제 1 내적 및 제 2 내적의 합이 계산되는
    시스템.
  9. 제 8 항에 있어서,
    상기 각자의 열 라인을 통해 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 전류를 수집하고, 상기 제 1 내적 및 상기 제 2 내적의 합에 대응하는 결과 전류를 출력하는 전류 수집 라인을 더 포함하는
    시스템.
  10. 제 8 항에 있어서,
    상기 합의 계산은 상기 시스템의 저장 메모리 회로에 상기 행렬 값 및 벡터 값을 저장하는 것을 포함하지 않는
    시스템.
  11. 제 8 항에 있어서,
    상기 제 1 저항성 메모리 소자 및 상기 제 2 저항성 메모리 소자 중 하나 또는 모두는 저항성 랜덤 액세스 메모리인
    시스템.
  12. 제 8 항에 있어서,
    상기 제 1 저항성 메모리 소자 및 상기 제 2 저항성 메모리 소자는 상이한 미리 설정된 컨덕턴스 값을 갖는
    시스템.
  13. 계산 방법으로서,
    비 휘발성 메모리 크로스바 어레이 내의 제 1 세트의 행 라인에 제 1 세트의 전압을 인가하여, 상기 제 1 세트의 행 라인과 제 1 세트의 열 라인 사이의 제 1 세트의 접합부에 위치한 대응하는 제 1 세트의 컨트롤의 저항 값을 변경 - 상기 제 1 세트의 전압은 제 1 행렬 내의 대응하는 개수의 값을 정의하고, 상기 제 1 세트의 컨트롤 각각은 제 1 트랜지스터 및 제 1 저항성 메모리 소자를 포함함 - 하는 단계와, 
    비 휘발성 메모리 크로스바 어레이 내의 제 2 세트의 행 라인에 제 2 세트의 전압을 인가하여, 상기 제 2 세트의 행 라인과 제 2 세트의 열 라인 사이의 제 2 세트의 접합부에 위치하는 대응하는 제 2 세트의 컨트롤의 저항 값을 변경 - 상기 제 2 세트의 전압은 제 2 행렬 내의 대응하는 개수의 값을 정의하고, 상기 제 2 세트의 컨트롤 각각은 제 2 트랜지스터 및 제 2 저항성 메모리 소자를 포함하며, 각자의 열 라인은 2 개의 상이한 행 라인에서 제 1 세트의 접합부와 제 2 세트의 접합부를 포함함 - 하는 단계와,
    제 1 세트의 행 라인 및 제 2 세트의 행 라인에 각각 제 3 세트의 전압 및 제 4 세트의 전압을 인가 - 상기 제 3 세트의 전압 및 상기 제 4 세트의 전압은 각각 상기 제 1 행렬 및 상기 제 2 행렬에 적용되는 대응하는 개수의 벡터 값을 정의함 - 하는 단계와,
    상기 제 1 행렬 및 상기 제 2 행렬의 각자의 행렬 값 및 벡터 값에 대응하는 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤의 각자의 열 라인을 통해 전류를 수집하는 단계와,
    각자의 행렬 값 및 벡터 값에 대응하는 상기 제 1 세트의 컨트롤 및 상기 제 2 세트의 컨트롤로부터 각각 수집된 전류를 사용하여 제 1 내적 및 제 2 내적의 합을 계산하는 단계
    를 포함하는
    계산 방법.
  14. 제 13 항에 있어서,
    상기 제 1 내적 및 상기 제 2 내적을 독립적으로 계산하기 위한 머신 판독 가능 명령어를 사용하여 상기 제 1 세트 및 상기 제 2 세트의 컨트롤을 제어하는 단계를 더 포함하는
    계산 방법.
  15. 제 13 항에 있어서,
    상기 제 1 내적 및 상기 제 2 내적의 합을 계산하는 단계는 상기 행렬 값 및 벡터 값을 저장 메모리 회로에 저장하는 단계를 포함하지 않는
    계산 방법.
KR1020177019732A 2014-12-15 2014-12-15 비 휘발성 메모리 크로스바 어레이 Ceased KR20170096152A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/070266 WO2016099438A1 (en) 2014-12-15 2014-12-15 Nonvolatile memory cross-bar array

Publications (1)

Publication Number Publication Date
KR20170096152A true KR20170096152A (ko) 2017-08-23

Family

ID=56127097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177019732A Ceased KR20170096152A (ko) 2014-12-15 2014-12-15 비 휘발성 메모리 크로스바 어레이

Country Status (4)

Country Link
US (2) US10181349B2 (ko)
EP (1) EP3234947B1 (ko)
KR (1) KR20170096152A (ko)
WO (1) WO2016099438A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021178109A1 (en) * 2020-03-04 2021-09-10 Micron Technology, Inc. Modified write voltage for memory devices
KR20220038277A (ko) * 2019-04-02 2022-03-28 김준성 투-터미널 스위칭 물질을 포함하는 크로스 포인트 타입의 메모리 어레이를 리딩하는 방법

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102578124B1 (ko) * 2016-12-16 2023-09-14 에스케이하이닉스 주식회사 신경망 장치의 정규화 장치 및 방법
US10037804B1 (en) 2017-01-27 2018-07-31 Hewlett Packard Enterprise Development Lp Adjusting target values of resistive memory devices
CN108667886B (zh) * 2017-04-01 2020-07-28 华为技术有限公司 提供PaaS服务的方法、管理系统和云计算服务架构
US10210138B2 (en) 2017-07-19 2019-02-19 International Business Machines Corporation Higher accuracy of non-volatile memory-based vector multiplication
US10418098B2 (en) 2017-12-28 2019-09-17 Intel Corporation Methods and systems for performing a calculation across a memory array
US10910061B2 (en) 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US10509167B2 (en) 2018-04-23 2019-12-17 Hewlett Packard Enterprise Development Lp Optical phase difference calculation using analog processing
US10418550B2 (en) * 2018-05-29 2019-09-17 Nanjing University High temperature resistant memristor based on two-dimensional covalent crystal and preparation method thereof
CN109542391A (zh) * 2018-11-09 2019-03-29 复旦大学 基于忆阻器的存储器内计算架构
US11275968B2 (en) * 2019-02-13 2022-03-15 Western Digital Technologies, Inc. Super-sparse image compression using cross-bar non-volatile memory device
US12050997B2 (en) 2020-05-27 2024-07-30 International Business Machines Corporation Row-by-row convolutional neural network mapping for analog artificial intelligence network training
CN112927738B (zh) * 2021-01-04 2022-10-25 清华大学 基于非易失器件的电路和电荷域存内计算方法
CN112885963B (zh) * 2021-01-13 2022-12-09 西安交通大学 一种忆阻器交叉阵列
US11942148B2 (en) 2021-04-23 2024-03-26 The Regents Of The University Of Michigan Mixed-signal interface circuit for non-volatile memory crossbar array
US20230317161A1 (en) * 2022-03-31 2023-10-05 Crossbar, Inc. Matrix multiplication with resistive memory circuit having good substrate density

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010144092A1 (en) 2009-06-12 2010-12-16 Hewlett-Packard Development Company, L.P. Capacitive crossbar arrays
US8675391B2 (en) * 2010-04-19 2014-03-18 Hewlett-Packard Development Company, L.P. Refreshing memristive systems
US8570785B2 (en) 2010-05-26 2013-10-29 Hewlett-Packard Development Company Reading a memory element within a crossbar array
US9269042B2 (en) * 2010-09-30 2016-02-23 International Business Machines Corporation Producing spike-timing dependent plasticity in a neuromorphic network utilizing phase change synaptic devices
KR101570187B1 (ko) 2010-11-19 2015-11-18 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 어레이 내의 저항성 스위칭 디바이스를 판독하기 위한 회로 및 방법
US8825730B1 (en) 2011-10-04 2014-09-02 Altera Corporation Matrix decomposition using dataflow techniques
US9224945B2 (en) * 2012-08-30 2015-12-29 Micron Technology, Inc. Resistive memory devices
US9152827B2 (en) * 2012-12-19 2015-10-06 The United States Of America As Represented By The Secretary Of The Air Force Apparatus for performing matrix vector multiplication approximation using crossbar arrays of resistive memory devices
US9804996B2 (en) 2012-12-21 2017-10-31 Advanced Micro Devices, Inc. Computation memory operations in a logic layer of a stacked memory
US9093148B2 (en) 2013-03-22 2015-07-28 Kabushiki Kaisha Toshiba Resistance change type memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220038277A (ko) * 2019-04-02 2022-03-28 김준성 투-터미널 스위칭 물질을 포함하는 크로스 포인트 타입의 메모리 어레이를 리딩하는 방법
WO2021178109A1 (en) * 2020-03-04 2021-09-10 Micron Technology, Inc. Modified write voltage for memory devices
US11170853B2 (en) 2020-03-04 2021-11-09 Micron Technology, Inc. Modified write voltage for memory devices
US11705197B2 (en) 2020-03-04 2023-07-18 Micron Technology, Inc. Modified write voltage for memory devices

Also Published As

Publication number Publication date
EP3234947B1 (en) 2023-04-05
US20190139605A1 (en) 2019-05-09
WO2016099438A1 (en) 2016-06-23
US10319441B2 (en) 2019-06-11
US20170358352A1 (en) 2017-12-14
EP3234947A1 (en) 2017-10-25
EP3234947A4 (en) 2017-12-06
US10181349B2 (en) 2019-01-15

Similar Documents

Publication Publication Date Title
US10319441B2 (en) Nonvolatile memory cross-bar array
JP6333477B2 (ja) ドット積を求めるためのメムリスティブクロスバーアレイ
TWI603331B (zh) 用以執行乘法累加運算之電阻式記憶體陣列
US10698975B2 (en) In situ transposition
US10580473B2 (en) Memcapacitive cross-bar array for determining a dot product
WO2016068953A1 (en) Double bias memristive dot product engine for vector processing
US9785615B1 (en) Memristive computation of a vector cross product
US10901939B2 (en) Computer architecture with resistive processing units
US11507761B2 (en) Performing complex multiply-accumulate operations
US10482940B2 (en) Computational accuracy in a crossbar array
US9947405B2 (en) Memristive dot product engine with a nulling amplifier
US10706922B2 (en) Memristive arrays with offset elements
KR20170075741A (ko) 벡터 프로세싱을 위한 멤리스티브 내적 엔진
KR20170116041A (ko) 비휘발성 메모리 크로스바 어레이
Parmar et al. Analysis of VMM computation strategies to implement BNN applications on RRAM arrays

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20170714

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20190201

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200115

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20200420

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20200115

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I