KR20170074234A - 내적을 결정하기 위한 멤리스티브 크로스바 어레이 - Google Patents

내적을 결정하기 위한 멤리스티브 크로스바 어레이 Download PDF

Info

Publication number
KR20170074234A
KR20170074234A KR1020177010447A KR20177010447A KR20170074234A KR 20170074234 A KR20170074234 A KR 20170074234A KR 1020177010447 A KR1020177010447 A KR 1020177010447A KR 20177010447 A KR20177010447 A KR 20177010447A KR 20170074234 A KR20170074234 A KR 20170074234A
Authority
KR
South Korea
Prior art keywords
voltage
crossbar array
memristor
mems
array
Prior art date
Application number
KR1020177010447A
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 KR20170074234A publication Critical patent/KR20170074234A/ko

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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06G7/16Arrangements for performing computing operations, e.g. operational amplifiers 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/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/0023Address circuits or decoders
    • 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/0023Address circuits or decoders
    • G11C13/0026Bit-line or column circuits
    • 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/0023Address circuits or decoders
    • G11C13/0028Word-line or row circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/10Resistive cells; Technology aspects
    • G11C2213/15Current-voltage curve
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/77Array wherein the memory element being directly connected to the bit lines and word lines without any access device being used

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Operations Research (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Amplifiers (AREA)

Abstract

내적을 획득하는 방법은, 다수의 제 1 전압을 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인에 인가하여 행 라인과 다수의 열 라인 사이의 교차 지점에 위치한 대응하는 다수의 멤리스터의 저항값을 변화시키는 단계를 포함한다. 제 1 전압은 행렬 내의 대응하는 다수의 값을 각각 정의한다. 방법은 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인에 다수의 제 2 전압을 인가하는 단계를 더 포함한다. 제 2 전압은 대응하는 다수의 벡터 값을 정의한다. 방법은, 열 라인으로부터 출력 전류를 수집하는 단계를 더 포함한다. 수집된 출력 전류는 내적을 정의한다.

Description

내적을 결정하기 위한 멤리스티브 크로스바 어레이{MEMRISTIVE CROSS-BAR ARRAY FOR DETERMINING A DOT PRODUCT}
멤리스터라고 종종 불리는 저항성 메모리 소자는, 멤리스터에 전기 전압 또는 전류를 인가함으로써 상이한 저항 상태들로 프로그램될 수 있는 디바이스이다. 프로그래밍 후, 멤리스터의 상태, 멤리스터가 판독될 수 있다. 멤리스터의 상태는 디바이스를 비휘발성으로 간주할 만큼 충분히 긴 지정된 시간 동안 안정을 유지한다. 다수의 열 라인이 교차 지점에서 다수의 행 라인과 교차하는 크로스바 어레이 내에 다수의 멤리스터가 포함될 수 있으며, 멤리스터는 교차 지점에서 열 라인 및 행 라인에 연결된다.
첨부된 도면은 본 명세서에 설명된 원리의 다양한 예를 도시하고 명세서의 일부를 이룬다. 도시된 예들은 단지 예시를 위해 주어졌으며 청구 범위를 제한하지 않는다.
도 1은 본 명세서에서 설명된 원리의 일 예에 따라 내적(a dot product)을 결정하기 위한 컴퓨팅 시스템의 도면이다.
도 2는, 본 명세서에서 설명된 원리의 일 예에 따른, 도 1의 컴퓨팅 시스템의 차동 모드 내적 엔진(differential mode dot product engine; DPE) 멤리스터 어레이 내에 사용된 멤리스티브 크로스바 어레이의 도면이다.
도 3은, 본 명세서에서 설명된 원리의 일 예에 따른, 도 1 및 도 2의 차동 모드 내적 엔진(DPE) 멤리스터 어레이의 회로도이다.
도 4는, 본 명세서에서 설명된 원리의 일 예에 따른, 멤리스터의 전류 대 전압 루프를 묘사하는 도 3의 멤리스티브 디바이스의 함수 그래프이다.
도 5는 본 명세서에서 설명된 원리의 일 예에 따른, 도 1 및 도 3의 차동 모드 DPE 멤리스티브 어레이의 동작 방법을 도시하는 흐름도이다.
도면 전체에 걸쳐서, 동일한 참조 번호는 유사하지만 반드시 동일한 요소를 나타내는 것은 아니다.
멤리스터의 크로스바 어레이는 비휘발성 고체 상태 메모리, 프로그램 가능 로직, 신호 처리, 제어 시스템, 패턴 인식 및 다른 애플리케이션을 포함하는 다양한 애플리케이션에 사용될 수 있다. 본 출원은 예를 들어 다수의 입력 행렬 값 및 다수의 입력 벡터 값의 내적을 결정하기 위해 사용되는 멤리스티브 크로스바 어레이에 관한 것이다. 멤리스티브 크로스바 어레이는, 다수의 행 라인, 행 라인과 교차하여 다수의 교차 지점을 형성하는 다수의 열 라인, 및 교차 지점에서 행 라인과 열 라인 사이에 연결된 다수의 저항성 메모리 디바이스를 포함한다. 다수의 증폭기가 각 행 라인에 접속되어 기준 전압을 각 저항성 메모리 디바이스에 인가하여, 증폭기로 하여금 다른 영역에서 동작하게 하여 선형성을 개선하고 더 나은 신호 대 잡음 비 및 개선된 잡음 마진을 얻는다.
저항성 메모리 디바이스는 또한 다수의 프로그래밍 신호를 수신한다. 프로그래밍 신호는 행렬 내의 다수의 값을 정의한다. 저항성 메모리 디바이스는 또한 저항성 메모리 디바이스에서 다수의 벡터 신호를 수신하며, 벡터 신호는 저항성 메모리 디바이스에 인가될 다수의 벡터 값을 나타낸다. 저항성 메모리 디바이스들로부터 출력된 모든 전류들을 그들의 각 열 라인들을 통해 수집하기 위해 전류 수집 라인이 각 열 라인의 출력에 연결된다. 수집된 전류는 행렬 값과 벡터 값의 내적과 동일하다.
본 명세서 및 첨부된 청구항에서 사용된 바와 같이, "내적(dot product)"이라는 용어는 스칼라를 형성하기 위한 2개의 벡터의 곱으로 광범위하게 이해되는 것을 의미하며, 그 값은 벡터들의 크기들과 그들 사이 각의 코사인의 곱이다. 일 예에서, 벡터들은 내적을 얻기 위해 곱해질 수 있는 행렬로서 표현될 수 있다. 내적(dot product)을 칭하는 다른 기존 명칭들은 스칼라 곱 및 내적(inner product)을 포함한다. 내적 계산은 디지털 컴퓨터에서 계산하기에 비용이 많이 드는 작업이다. 밀집 행렬(dense matrices)의 경우와 같이, 행렬이 희소하거나 대칭이 아닌 경우 특히 그렇다. 대칭 행렬(a symmetric matrix)은 자신의 전치 행렬이 자신과 동일한 정사각형 행렬이다. 희소 행렬(sparse matrices)은 원소들의 대부분이 0인 행렬이다. 반대로, 행렬의 요소 대부분이 0이 아닌 경우, 행렬은 밀집 행렬로 간주된다.
심지어 더 나아가, 본 명세서 및 첨부된 청구항에서 사용된 바와 같이, "다수의(a number of)"라는 용어 또는 이와 유사한 언어는 1 내지 무한대를 포함하는 임의의 양수로서 광범위하게 이해되어야 한다; 제로는 수가 없는 것이지 숫자는 아님.
이하의 설명에서, 설명의 목적으로, 본 시스템 및 방법의 완전한 이해를 제공하기 위해 다수의 특정 세부 사항이 설명된다. 그러나, 본 장치, 시스템 및 방법이 이들 특정 세부 사항 없이 실시될 수 있다는 것은 당업자에게 명백할 것이다. 명세서에서 "예(an example)" 또는 이와 유사한 언어를 언급한다는 것은, 그 예와 관련하여 설명된 특정 특징, 구조 또는 특성이 설명된 바와 같이 포함되지만 다른 예들에는 포함되지 않을 수 있음을 의미한다.
이제 도면을 참조하면, 도 1은 본 명세서에서 설명된 원리의 일 예에 따른, 내적을 결정하기 위한 컴퓨팅 시스템(100)의 도면이다. 컴퓨팅 시스템(100)은 전자 디바이스에 구현될 수 있다. 전자 디바이스의 예들은 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 개인용 정보 단말기(PDAs), 모바일 디바이스, 스마트폰, 게임 시스템 및 태블릿, 그 외 다른 전자 디바이스를 포함한다.
컴퓨팅 시스템(100)은 독립형 하드웨어, 모바일 애플리케이션, 컴퓨팅 네트워크를 통한 또는 이들의 조합을 포함하는 임의의 데이터 처리 시나리오에서 이용될 수 있다. 또한, 컴퓨팅 시스템(100)은 컴퓨팅 네트워크, 공용 클라우드 네트워크, 사설 클라우드 네트워크, 하이브리드 클라우드 네트워크, 다른 형태의 네트워크, 또는 이들의 조합에 사용될 수 있다. 일 예에서, 컴퓨팅 시스템(100)에 의해 제공되는 방법은 예를 들어 제3자에 의한 네트워크를 통한 서비스로서 제공된다. 이 예에서, 서비스는 예를 들어: 다수의 애플리케이션을 호스팅하는 SaaS(a Software as a Service); 예컨대, 운영 체제, 하드웨어 및 스토리지, 그 외 다른 것을 포함하는 컴퓨팅 플랫폼을 호스팅하는 PaaS(a Platform as a Service); 예컨대, 서버, 스토리지 구성 요소, 네트워크 및 구성 요소, 그 외 다른 것과 같은 장비를 호스팅하는 IaaS(an 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) 및 네트워크 어댑터(104)는 버스(105)를 통해 통신 가능하게 연결될 수 있다.
프로세서(101)는 데이터 저장 디바이스(102)로부터 실행 가능한 코드를 검색하고 실행 코드를 실행하는 하드웨어 아키텍처를 포함할 수 있다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금, 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인들에 다수의 제 1 전압들을 인가하는 기능을 적어도 구현하게 하여 행 라인들 및 열 라인들 간의 교차 지점들에 위치한 대응하는 다수의 멤리스터들의 저항값들을 변화시키는데, 여기서 제 1 전압들은 행렬 내의 대응하는 다수의 값들을 나타낸다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금 또한, 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인들에 다수의 제 2 전압들을 인가하는 기능을 적어도 구현하게 할 수 있는데, 여기서 제 2 전압들은 대응하는 다수의 벡터 값들을 나타낸다. 실행 가능한 코드는, 프로세서(101)에 의해 실행될 때, 프로세서(101)로 하여금 추가로, 열 라인들로부터 출력 전류를 수집하는 기능을 적어도 구현하게 할 수 있는데, 여기서 수집된 출력 전류는 내적을 나타낸다. 컴퓨팅 시스템(100)의 기능은 여기에 설명된 본 명세서의 방법에 따른다. 코드를 실행하는 과정에서, 프로세서(101)는 다수의 나머지 하드웨어 유닛으로부터 입력을 수신하고 다수의 나머지 하드웨어 유닛에 출력을 제공할 수 있다.
데이터 저장 디바이스(102)는 프로세서(101) 또는 다른 처리 디바이스에 의해 실행되는 실행 가능한 프로그램 코드와 같은 데이터를 저장할 수 있다. 논의될 바와 같이, 데이터 저장 디바이스(102)는 특히, 프로세서(101)가 적어도 여기에 설명된 기능을 구현하기 위해 실행하는 다수의 애플리케이션을 나타내는 컴퓨터 코드를 저장할 수 있다.
데이터 저장 디바이스(102)는 휘발성 및 비휘발성 메모리를 포함하는 다양한 유형의 메모리 모듈을 포함할 수 있다. 예를 들어, 본 예의 데이터 저장 디바이스(102)는 랜덤 액세스 메모리(RAM)(106), 판독 전용 메모리(ROM)(107) 및 하드 디스크 드라이브(HDD) 메모리(108)를 포함한다. 많은 다른 유형의 메모리가 또한 이용될 수 있으며, 본 명세서는 본 명세서에서 설명된 원리의 특정 응용에 적합할 것 같은 데이터 저장 디바이스(102)에서의 많은 다양한 유형(들)의 메모리의 사용을 고려한다. 특정 예에서, 데이터 저장 디바이스(102)의 상이한 유형의 메모리가 상이한 데이터 저장 요구에 사용될 수 있다. 예를 들어, 특정 예에서, 프로세서(101)는, ROM(107)으로부터 부팅하고, HDD 메모리(108) 내에 비휘발성 저장을 유지하며, RAM(106) 내에 저장된 프로그램 코드를 실행시킬 수 있다.
데이터 저장 디바이스(102)는 컴퓨터 판독 가능 매체, 컴퓨터 판독 가능 저장 매체 또는 비일시적 컴퓨터 판독 가능 매체 등을 포함할 수 있다. 예를 들어, 데이터 저장 디바이스(102)는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치, 또는 디바이스, 또는 이들의 임의의 적절한 조합일 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 판독 가능 저장 매체의 보다 구체적인 예는 예를 들어 다수의 와이어를 갖는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 소거 가능 프로그램 가능 판독 전용 메모리(EPROM 또는 플래시 메모리), 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 디바이스, 자기 저장 디바이스 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 이 문서에서, 컴퓨터 판독 가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의한 사용을 위해 또는 그들과 관련하여 사용하기 위해 컴퓨터 이용 가능 프로그램 코드를 포함하거나 저장할 수 있는 임의의 유형의 매체일 수 있다. 다른 예에서, 컴퓨터 판독 가능 저장 매체는 명령 실행 시스템, 장치 또는 디바이스에 의한 사용을 위해 또는 그들과 관련하여 사용하기 위해 프로그램을 포함하거나 저장할 수 있는 임의의 비일시적 매체일 수 있다.
컴퓨팅 시스템(100)의 하드웨어 어댑터(103, 104)는 프로세서(101)가 컴퓨팅 시스템(100)의 외부 및 내부의 다양한 다른 하드웨어 요소와 인터페이스할 수 있게 한다. 예를 들어, 주변 디바이스 어댑터(103)는 예를 들어 디스플레이 디바이스(109), 마우스 또는 키보드와 같은 입/출력 디바이스에 인터페이스를 제공할 수 있다. 주변 디바이스 어댑터(103)는 또한, 외부 저장 디바이스, 예컨대 서버, 스위치 및 라우터와 같은 다수의 네트워크 디바이스, 클라이언트 디바이스, 다른 유형의 컴퓨팅 디바이스, 및 이들의 조합과 같은 다른 외부 디바이스로의 액세스를 제공할 수 있다.
디스플레이 디바이스(109)는 컴퓨팅 시스템(100)의 사용자가 컴퓨팅 시스템(100)과 상호 작용하고 그 기능을 구현할 수 있도록 제공될 수 있다. 또한, 주변 디바이스 어댑터(103)는 프로세서(101)와 디스플레이 디바이스(109), 프린터 또는 다른 매체 출력 디바이스 사이의 인터페이스를 생성할 수 있다. 네트워크 어댑터(104)는 예를 들어 네트워크 내의 다른 컴퓨팅 디바이스에 인터페이스를 제공하여, 컴퓨팅 시스템(100)과 네트워크 내에 위치한 다른 디바이스 사이에서 데이터의 송신을 가능하게 할 수 있다.
컴퓨팅 시스템(100)은 프로세서(101)에 의해 실행될 때, 실행 가능 프로그램 코드와 연관된 디스플레이 디바이스(109) 상에, 데이터 저장 디바이스(102)에 저장되어 있는 애플리케이션들의 개수를 나타내는 수의 그래픽 사용자 인터페이스들(GUIs)을 디스플레이할 수 있다. 아래 더 상세히 설명되는 바와 같이, GUI는 예를 들어 사용자가 컴퓨팅 시스템(100)과 상호 작용하여 차동 모드 내적 엔진(DPE) 멤리스터 어레이(110)와 관련하여 행렬 및 벡터 값을 입력할 수 있게 하는 대화형 스크린 샷을 디스플레이할 수 있다. 또한, 디스플레이 디바이스(109)의 GUI 상에 다수의 대화식 제스처를 생성함으로써, 사용자는 입력 데이터에 기초하여 내적 값을 얻을 수 있다. 디스플레이 디바이스(109)의 예는 다른 디스플레이 디바이스들 중에서도 컴퓨터 스크린, 랩탑 스크린, 모바일 디바이스 스크린, 개인 휴대 정보 단말기(PDA) 스크린 및 태블릿 스크린을 포함한다.
컴퓨팅 시스템(100)은 차동 모드 내적 엔진(DPE) 멤리스티브 어레이(110)를 더 포함할 수 있다. 이하 더 상세히 설명되는 바와 같이, 차동 모드 DPE 멤리스티브 어레이(110)는 다수의 입력들의 가중 합을 수행하기 위해 어레이 내에서 함께 기능하는 다수의 멤리스터들을 포함하는 다수의 소자들을 포함한다. 차동 모드 DPE 멤리스티브 어레이(110)는 다수의 애플리케이션에 사용될 수 있다. 예를 들어, 차동 모드 DPE 멤리스티브 어레이(110)는 임계 논리 게이트(a threshold logic gate; TLG)로서 사용되어, 행렬 곱을 수행하여, 출력을 임계치와 비교할 수 있다. 따라서, 차동 모드 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의 컴퓨팅 시스템의 차동 모드 내적 엔진(DPE) 멤리스터 어레이(110) 내에 사용된 멤리스티브 크로스바 어레이(200)의 도면이다. 멤리스티브 크로스바 어레이(200)는 다수의 전기 전도성 행 라인(201) 및 다수의 전기 전도성 열 라인(202)을 포함할 수 있다. 3개의 행 라인(201) 및 4개의 열 라인(202)이 도 2에 도시되어 있지만, 임의의 수의 행 라인(201) 및 열 라인(202)이 멤리스티브 크로스바 어레이(200)에 존재할 수 있다. 행 라인(201) 및 열 라인(202)은 점선(207)으로 표시된 교차 지점에서 교차한다. 다수의 저항성 메모리 디바이스 또는 "멤리스터"(203)는 교차 지점(207)에 위치하고 행 라인(201)을 열 라인(202)에 전기적으로 연결시킨다.
멤리스턴스는 멤리스터라고 불리는 전자 구성 요소의 특성이다. 회로를 통해 한 방향으로 전하가 흐르면 회로의 해당 구성 요소의 저항이 증가할 것이다. 회로에서 반대 방향으로 전하가 흐르면 저항이 감소할 것이다. 전압의 인가를 차단하여 전하의 흐름이 멈추게 되면 구성 요소는 자신이 갖는 마지막 저항을 "기억"할 것이고, 전하의 흐름이 다시 시작되면 회로의 저항은 마지막으로 활성화되었을 때의 저항이 된다. 멤리스터는 자신의 저항이 변할 수 있는 저항 디바이스이다.
멤리스터(203)의 컨덕턴스 채널은 각 멤리스터(203)에 형성될 수 있고 멤리스터(203)는 비트로 개별적으로 어드레싱될 수 있다. 크로스바는 제 1 세트의 병렬 와이어(201)의 각 와이어를 제 1 세트(201)와 교차하는 제 2 세트의 평행 와이어(202)의 모든 멤버에 접속시키는 스위치 어레이이다. 도 2의 예에서 행 라인(201)과 열 라인(202)은 서로 수직이지만, 행 라인(201)과 열 라인(202)은 임의의 각도로 교차할 수 있다.
멤리스터(203)는 마이크로-스케일 또는 나노-스케일로 제조될 수 있으며, 메모리 및 로직 회로를 위한 기초와 같은 다양한 폭의 전자 회로의 구성 요소로서 사용될 수 있다. 메모리를 위한 기초로 사용될 때, 멤리스터(203)는 1 또는 0의 비트 정보를 저장하는데 사용될 수 있다. 본 명세서에서 설명된 논리 회로로서 사용될 때, 멤리스터(203)는 유선 로직 프로그램 가능 로직 어레이의 기초로서, 또는 본원에 기술된 바와 같이, 내적 엔진으로서 필드 프로그램 가능 게이트 어레이 내의 비트를 표현하기 위해 사용될 수 있다. 본 명세서에 개시된 멤리스터(203)는 또한 다양한 폭의 다른 응용들에 사용될 수 있다. 멤리스터(203)는 예를 들어, 화학 기상 증착, 스퍼터링, 에칭, 리소그래피 또는 멤리스터를 형성하는 다른 방법과 같은 임의의 합리적으로 적합한 제조 공정을 통해 제조될 수 있다.
도 2의 멤리스티브 크로스바 어레이(200)는 V1, V2 및 V3로 표시된 다수의 입력 값(205)을 더 포함한다. 입력 값(205)은 크로스바 어레이 내의 각 교차 지점의 각각의 개별 멤리스터(203)에서 저항값을 변화시켜 수학적 행렬의 표현(예를 들어, 매핑)을 생성하는데 사용되는 프로그램 신호일 수 있는데, 여기서, 각 교차 지점에서의 각 값은 행렬 내의 값을 나타낸다. 개별 멤리스터들(203) 사이의 저항의 이러한 변화는 낮은 값에서 높은 값 또는 높은 값에서 낮은 값으로의 아날로그 변화이다. 이러한 방식으로, 멤리스터는 그들이 가진 마지막 저항을 "기억"한다는 점에서 "메모리 저항"이다.
입력 값(205)은 또한 크로스바 어레이의 각 교차 지점에서 각 개별 멤리스터(203)에서의 저항값을 판독하는데 사용되는 판독 신호일 수 있으며, 계산과 관련하여 각 멤리스터(203)에서의 벡터 값에 행렬 값 곱하는 방식이 후술될 것이다. 본 명세서에서 벡터 신호로 지칭되는 판독 신호는 제 2 입력 값(205)으로서 멤리스티브 크로스바 어레이(200)의 행 라인(201)에 인가될 수 있다. 벡터 신호는 프로그램 신호에 의해 표현된 행렬에 곱해질 벡터를 나타낼 수 있다. 일 예시에서, 벡터 신호는 멤리스터(203)를 프로그램하는데 사용된 제 1 전압보다 상대적으로 낮은 전압 값을 가지므로, 벡터 신호에 의해 인가되는 전압 레벨은 제 1 전압에 의해 프로그래밍된 멤리스터(203)의 저항값을 변화시키지 않는다. 벡터 신호는 멤리스터(203)의 저항값을 변화시키지 않음으로써 이러한 방식으로 판독 신호로서 역할을 한다.
벡터 신호는 제각기의 교차 지점(207)에서 멤리스터(203)와 상호 작용하고, 결과 전류는 206에서 각 열 라인(202)의 단부에서 수집된다. 각 열 라인(202)의 합은 도 2에 도시된 바와 같이
Figure pct00001
Figure pct00002
로 표시되는데, 여기서,
Figure pct00003
는 멤리스터(203) 컨덕턴스 값이다. 전압 값으로부터 얻은 합계는 열 벡터의 값을 나타낸다. 각 열 라인(202)의 이러한 합은 또한 도 3에 도시되고 이하 더 상세히 설명되는 것과 같이 단일 값
Figure pct00004
을 얻도록 변환 회로(313)를 통해 전류 수집 라인(311)에서 합산될 수 있다. 일 예에서, 멤리스터(203)의 저항을 알려진 값으로 설정하기 위해, 프로그램 신호 및 벡터 신호의 인가 전에 멤리스터(203)에 초기 신호가 인가될 수 있다.
도 3은, 본 명세서에서 설명된 원리의 일 예에 따른, 도 1 및 도 2의 차동 모드 DPE 멤리스티브 어레이(110)의 회로도(300)이다. 도 3의 차동 모드 DPE 멤리스티브 어레이(110)가 묘사된 회로 레이아웃을 갖는 것으로 도시되지만, 임의의 수의 회로 레이아웃이 본 시스템 및 방법의 기능을 달성하는데 사용될 수 있다. 도 3에 도시된 바와 같은 차동 모드 DPE 멤리스티브 어레이(110)는 도 2와 관련하여 전술한 것과 같은 행 라인(201), 열 라인(202) 및 멤리스터(203)를 포함한다. 상술한 바와 같이, 임의의 수의 행 라인(201) 및 열 라인(202)이 생략부호(301, 302)로 표시된 것처럼 차동 모드 DPE 멤리스티브 어레이(110) 내에 포함될 수 있다. 일 예에서, 차동 모드 DPE 멤리스티브 어레이(110) 내에 포함된 행 라인(201) 및 열 라인(202)의 수는 본 명세서에서 설명된 시스템 및 방법을 이용하여 계산될 내적의 행렬 사이즈와 같거나 클 수 있다.
차동 모드 DPE 멤리스티브 어레이(110)는 행 라인(201)의 입력 단자에서 예를 들어 연산 증폭기(op amp)(303)와 같은 다수의 차동 입력 회로를 더 포함할 수 있다. 연산 증폭기(303)가 도 3에 도시되어 있지만, 임의의 유형의 차동 입력 회로가 사용될 수 있다. 연산 증폭기(303)는 이득 안정성, 선형성, 주파수 응답 및 스텝 응답을 향상시키고 제조 또는 환경으로 인한 파라미터 변동에 대한 민감도를 줄이기 위해 입력으로부터 연산 증폭기(303)의 출력 부분을 빼는 네거티브 피드백으로 설계된다. 입력 전압들(Vin1, Vin2,..., Vinn) 및 기준 전압들(Vref1, Vref2,..., Vrefn)이 본 명세서에 설명된 바와 같이 연산 증폭기(303)에 인가되어 내적 값이 획득될 수 있다.
연산 증폭기(303)는 또한 DPE 멤리스티브 어레이(110)를 차동 모드 DPE 멤리스티브 어레이(110)로 만들기 위해 차동 증폭기가 되도록 설계된다. DPE 멤리스티브 어레이(110)의 각 출력에 대해 다음 관계가 성립한다:
Figure pct00005
수학식 1
여기서, Rf는 연산 증폭기(303) 피드백 저항이고 Ri는 내적 계산 전에 미리 정의된 멤리스터 다중 레벨 아날로그 저항이다.
멤리스터(203)는 더 큰 전압에서 더 높은 비선형성을 갖는 아날로그 디바이스이다. 멤리스터(203)는 작은 신호 동안 더 우수한 선형성을 가질 것이다. 예를 들어, [0V, 1V]의 영역(도 4의 404)에서 멤리스터를 조작하는 것은, [-1/2V, 1/2V] 영역(도 4의 405)에서 멤리스터(203)를 조작하는 것과 비교하여 더 높은 비선형성을 제공할 것이다. 이것은 도 4에 도시된다.
도 4는, 본 명세서에서 설명된 원리의 일 예에 따른, 멤리스터의 전류 대 전압 루프를 묘사하는 도 3의 멤리스티브 디바이스(203)의 함수 그래프이다. 도 4에서 도시된 바와 같이, x-축은 멤리스터(203)에 의해 보여지는 전압 값을 나타내고, y-축은 멤리스터(203)에 의해 보여지는 전류 값을 나타낸다. 도 4에 도시된 함수, 곡선 및 값은 단지 예일 뿐이며, 임의의 특정 값을 나타내기 위한 것은 아니다. 일부 예에서, 도 4의 전류 대 전압 루프는 핀치된 히스테리시스 곡선(a pinched hysteresis curve)으로 도시될 수 있다. 도 4에 도시된 바와 같이, 멤리스터(203) 전류/전압 루프(401)는, 상대적으로 비선형적으로 묘사된, 제 2 라인(403)으로 표시된 [0V, 1V] 영역(404)과 대조적으로 제 1 라인(402)으로 표시된 [-1/2V, 1/2V] 영역(405) 내에서 훨씬 더 선형적이다.
네거티브 저항이라는 용어는 네거티브 차동 저항(NDR)을 지칭하는데, 여기서
Figure pct00006
이다. NDR은 비선형성에 대한 여러 가지 원인 중 하나 일 수 있다. [0V, 1V] 의 영역(404)은 큰 신호 동작 영역으로 지칭될 수 있다. 멤리스터(203)는 [0V, 1V] 의 영역(404) 내에서는 더 비선형적일 수 있지만, [-1/2V, 1/2V] 영역(405)에서는 오믹(ohmic)으로 분류될 수 있다. 비선형적이기 때문에 네거티브 저항 디바이스는 전기 회로에서 일반적으로 발생하는 포지티브 오믹 저항보다 더 복잡한 동작을 한다.
내적 엔진(DPE) 멤리스터 어레이의 응용에 있어서, 멤리스터(203)의 선형 전류/전압 동작은 출력 에러를 감소시킨다. 공통 모드 DPE 멤리스터 어레이는 다양한 원(one) 저항(0T1R) 회로 아키텍처, 원 트랜지스터-원 저항(1T1R) 회로 아키텍처 및 원 스위치-원 저항(1S1R) 회로 아키텍처에서 사용된다. 그러나, 멤리스터(203)는 비선형 동작을 보여준다. 반면, 본 명세서에서 제안된 차동 모드 DPE 설계는 선형성에 관해 보다 우수한 성능을 제공한다.
따라서, 연산 증폭기(303)의 동작 영역을 시프트시키기 위해서, Vref1, Vref2,..., Vrefn으로 표시된 기준 전압이 입력을 구별하는 데 사용될 수 있다. 일 예에서, 주어진 연산 증폭기(303)에 대한 Vref 값은 Vin에서의 최대 전압 입력(Vin_max)의 절반이되도록 선택된다. 그러면 큰 신호의 동작 영역[0, V]은 작은 신호의 동작 영역[-1/2V, 1/2V]으로 시프트된다. 이러한 차동 시프트를 통해 개선된 선형성과 더 나은 신호 대 잡음 비와 개선된 잡음 마진이 획득되어 더 나은 정확도가 달성된다. 수학적으로, 비선형성은 dV/dI의 1차 미분으로 나타낼 수 있다. 2차 미분은 트렌드를 정의한다. 고정 차동을 가정하고, 2*dI 또는 2*dV와 같은 넓은 범위를 가정하면, 더 큰 값으로 이어질 것이다.
또한, 이하 보다 상세히 설명될 Vout은 원하는 양의 정수 값으로 쉽게 재매핑될 수 있다. 차동 모드 DPE 멤리스티브 어레이(110)는 모든 Vin1, Vin2,..., Vinn의 값이 -1/2V일 때조차 만족스럽게 동작할 것이다.
차동 모드 DPE 멤리스티브 어레이(110)는 열 라인들(202)을 따라 멤리스터들(203)로부터 수신된 전류를 각각의 출력 전압들(Vout1, Vout2, Vout3)로 변환하기위한 다수의 전류 증폭기들(310)을 더 포함한다. 일 예시에서, 전류 증폭기(310)는 트랜스 임피던스 증폭기(TIAs)이다. TIA는 도 3에 도시된 연산 증폭기를 사용하여 구현된 전류-전압 변환기이다. TIA는 차동 모드 DPE 멤리스티브 어레이(110)의 전류 출력을 사용 가능한 전압으로 증폭하는 데 사용된다.
열 라인(202)으로부터의 전류는 수집 라인(311)을 사용하여 수집될 수 있다. 수집된 전류(
Figure pct00007
)는 행렬 값과 벡터 값의 내적을 나타낸다. 도 3에 도시된 바와 같이, 변환 회로(313)는 전류 증폭기(310)와 수집 라인(311) 사이에 배치될 수 있다. 전류 증폭기(310)로부터 출력된 전압이 수집되면, 모든 전압은 키르히호프 전압 법칙 하에서 동일해 질 것이고, 내적 값은 손실될 것이다. 따라서, 멤리스터(203)로부터 얻어진 전류가 합산된다. 일 예에서, 전류 증폭기(310)는 전류 증폭기(310)에 의해 출력된 전압과는 대조적으로 전류의 수집을 허용하도록 제거될 수 있다. 다른 예에서 그리고 도 3에 도시된 바와 같이, 변환 회로(313)가 개별적인 전류 증폭기(310)로부터 출력된 전압을 수집하고, 전압을 전류로 변환하고, 그 전류를 합산한다. 그러나, 임의의 회로 설계가 내적을 얻기 위해 멤리스터(203)로부터의 전류의 합을 얻는데 사용될 수 있다.
도 3의 차동 모드 DPE 멤리스티브 어레이(110)가 연산 증폭기(303) 및 트랜스 임피던스 증폭기(310)를 포함하는 것으로 도시되었지만, 임의의 수의 회로 레이아웃이 본 명세서에 기재된 본 시스템 및 방법의 기능을 달성하는데 사용될 수 있다.
차동 모드 DPE 멤리스티브 어레이(110)는 다수의 선택기(312)를 더 포함할 수 있다. 몇몇 경우에, 누설 경로 전류(sneak path currents)는 프로그래밍 신호의 인가 동안 차동 모드 DPE 멤리스티브 어레이(110) 내에서 발생할 수 있다. 누설 경로 전류는 회로 내의 의도하지 않은 전기 전류 경로이다. 본 차동 모드 DPE 멤리스티브 어레이(110)의 예에서, 도 5의 블록 501 및 502과 관련하여 후술되는 바와 같이, 누설 경로 전류는 타겟 멤리스터가 프로그래밍되거나 판독될 때 다수의 이웃하는 멤리스터들(203)에 영향을 줄 수 있다. 일 예에서, 전압이 타겟 멤리스터(203)에 인가될 때, 이웃하는 멤리스터(203)는 차동 모드 DPE 멤리스티브 어레이(110) 내에 흐르는 누설 경로 전류를 통해 그 전압의 일부를 볼 수 있다. 누설 경로 전류는 이웃하는 멤리스터(203)가 실수로 또는 부정확하게 프로그래밍되거나 그렇지 않으면 부적절하게 활용되도록 한다.
일 예에서, 다수의 선택기(312)가 차동 모드 DPE 멤리스티브 어레이(110) 내에 포함될 수 있다. 선택기는 도 3에 도시된 바와 같이 각 교차 지점(207)에서 각 멤리스터(203)와 직렬로 배치될 수 있다. 도면 내에서 명확하게 하기 위해 하나의 선택기(302)가 도 3에 도시되어 있지만, 임의의 수의 선택기(312)가 각각의 멤리스터(302)와 직렬로 배치될 수 있다. 선택기는, 멤리스터(203)가 표시하는 선택된 비트들만이 판독되거나 프로그래밍되도록 보장하기 위해 누설 전류 경로로부터 멤리스터(203)를 차단하는 임의의 회로 소자이다. 선택기는 가끔 멀티플렉서(mux)라고도 한다. 이러한 방식으로, 전류는 이웃하는 멤리스터(203)에 영향을 미치지 않고 타겟 멤리스터(203)에 집중될 수 있다. 도 3에 도시된 바와 같이, 멤리스터(203) 및 선택기(312)는 원(one) 선택기-원 멤리스터(1S1M) 회로 아키텍처, 원 선택기-원 저항(1S1R) 회로 아키텍처, 원 트랜지스터-원 저항(1T1R) 회로 아키텍처(예를 들어, 트랜지스터는 선택기 대신에 사용됨), 또는 전술한 바와 같은 원 저항(0T1R) 회로 아키텍처를 형성할 수 있다.
도 5는 본 명세서에서 설명된 원리의 일 예에 따른, 도 1 및 도 3의 차동 모드 DPE 멤리스티브 어레이(110)의 동작 방법을 도시하는 흐름도이다. 도 5의 방법은 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인(201)에 다수의 제 1 전압을 인가하는 것으로 시작하여(블록 501), 행 라인(201)과 열 라인(202) 사이의 교차 지점(207)에 위치한 대응하는 다수의 멤리스터(203)의 저항값을 변경시킨다. 제 1 전압들은 대응하는 다수의 행렬 내 값들을 각각 나타내는 앞서 설명한 프로그램 전압이다. 이러한 방식으로, 수학적 행렬은 차동 모드 DPE 멤리스티브 어레이(110)에 매핑되고, 내적 수학 프로세스에서 제 1 값 세트로서 처리될 준비가 된다.
일 예에서, 2개 이상의 차동 모드 DPE 멤리스티브 어레이(들)(110) 또는 2배의 폭 및 길이를 갖는 차동 모드 DPE 멤리스티브 어레이(110)가 네거티브 값을 가진 수학적 행렬을 나타내는데 사용될 수 있다. 이 예에서는, 2개 이상의 차동 모드 DPE 멤리스티브 어레이(들)(110) 또는 2배의 폭 및 길이를 갖는 차동 모드 DPE 멤리스티브 어레이(110)가 위에 설명된 바와 같이 컴퓨팅 시스템(100)에 연결될 수 있다.
도 5의 방법은, 다수의 제 2 전압을 차동 모드 DPE 멤리스티브 어레이(110) 내의 대응하는 다수의 행 라인(201)에 인가(블록 502)함으로써 계속될 수 있다. 제 2 전압은 행렬 값과 벡터 값의 내적을 얻기 위해 멤리스터(203)에 프로그래밍된 행렬 값에 적용될 다수의 벡터 값을 나타낸다. 제 2 전압이 차동 모드 DPE 멤리스티브 어레이(110)의 멤리스터(203)에 인가될 때, 멤리스터(203)는, 전류가 멤리스터(203)를 통과하게 하는 전압 입력(Vin1, Vin2,..., Vinn)을 본다(see). 멤리스터(203)를 통해 흐르는 전류 레벨은 멤리스터(203)의 컨덕턴스가 곱해진 전압 입력(Vin1, Vin2,..., Vinn) 값이며, 멤리스터의 컨덕턴스는 멤리스터(203)의 저항값을 변화시킨 제 1 전압에 의해 정의된다. 벡터 신호는 판독 신호로서 역할을 한다. 벡터 신호에 의해 인가된 전압 레벨은 멤리스터(203)를 프로그래밍하는데 사용된 제 1 전압보다 상대적으로 작아서, 벡터 신호에 의해 인가된 전압 레벨은 제 1 전압에 의해 프로그래밍된 멤리스터(203)의 저항값을 변화시키지 않는다.
이러한 방식으로, 제 2 전압의 인가를 통해 개별 멤리스터(203)로부터 획득된 전류는, 해당 멤리스터(203)에서 벡터 신호에 의해 획득된 벡터 값과 해당 멤리스터(203)에서 프로그램 신호에 의해 획득된 행렬 값의 곱과 같다.
도 5의 방법은, 열 라인(202)으로부터의 출력 전류를 수집(블록 503)함으로써 계속될 수 있는데, 여기서 수집된 출력 전류는 내적을 나타낸다. 도 3에 도시된 바와 같이, 열 라인(202)에 의해 수집된 멤리스터(203)의 출력 전류는 수집 라인(311)을 사용하여 더 수집될 수 있다. 도 3의 차동 모드 DPE 멤리스티브 어레이(110)는 멤리스터(203)에 의해 출력된 전류를 해당 출력 전압(Vout1, Vout2, Voutm)으로 변환하기 위한 트랜스 임피던스 증폭기(310)를 포함하는 것으로 도시되었다. 그러나, 임의의 회로 토폴로지 또는 설계가 원하는 값을 얻도록 이용될 수 있다. 수집된 전류(
Figure pct00008
)와 같이 수집 라인(311)에서 얻은 수집된 신호는 행렬 값과 벡터 값의 내적을 나타낸다.
새로운 수학적 행렬 및 벡터를 나타내기 위해, 도 5의 프로세스는, 다수의 새로운 제 1 전압이 차동 모드 DPE 멤리스티브 어레이(110) 내의 대응하는 다수의 행 라인(201)에 인가(블록 501)되어 대응하는 다수의 멤리스터(203)의 저항값을 변화시키는 블록 501로 루프백할 수 있다. 이러한 방식으로, 새로운 저항값은, 새로운 수학적 행렬을 나타내는 멤리스티브 크로스바 어레이의 멤리스터(203)에 프로그래밍된다. 방법은, 차동 모드 DPE 멤리스티브 어레이(110) 내의 대응하는 다수의 행 라인(201)에, 멤리스터(203)로 프로그램되는 행렬 값에 적용될 대응하는 다수의 새로운 벡터 값을 나타내는 새로운 제 2 전압을 인가함으로써(블록 502) 위에 설명한 바와 같이 블록 502 및 503으로 계속될 수 있다.
본 시스템 및 방법 전반에 걸쳐, 전압 및 전류는 열 라인(202)의 단부에서 수집되고 수집 라인(311)을 사용하여 추가로 수집되는 것으로 설명된다. 그러나, 임의의 회로 토폴로지 또는 설계가 전압 값, 전류 값 또는 다른 회로 파라미터와 같은 원하는 출력을 얻도록 이용될 수 있다.
본 시스템 및 방법의 양상은 본 명세서에 설명된 원리의 예에 따른 방법, 장치 (시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 블록도를 참조하여 여기에 설명된다. 흐름도 및 블록도의 각 블록, 및 흐름도 및 블록도의 블록들의 조합은 컴퓨터 이용 가능 프로그램 코드에 의해 구현될 수 있다. 컴퓨터 이용 가능 프로그램 코드는 범용 컴퓨터, 특수 목적 컴퓨터의 프로세서 또는 다른 프로그램 가능 데이터 처리 장치에 제공되어 머신을 생성할 수 있으며, 컴퓨터 이용 가능 프로그램 코드는 예를 들어 컴퓨팅 시스템(100)의 프로세서(101) 또는 다른 프로그램 가능한 데이터 처리 장치를 통해 실행될 때 흐름도 및/또는 블록도의 블록 또는 블록들에서 특정된 기능 또는 동작을 구현한다. 일 예시에서, 컴퓨터 이용 가능 프로그램 코드는 컴퓨터 판독 가능 저장 매체 내에 구현될 수 있으며; 컴퓨터 판독 가능 저장 매체는 컴퓨터 프로그램 제품의 일부이다. 일 예에서, 컴퓨터 판독 가능 저장 매체는 비일시적 컴퓨터 판독 가능 매체이다.
명세서 및 도면은 내적을 결정하기 위한 컴퓨팅 디바이스 및 관련 방법을 설명한다. 컴퓨팅 디바이스는 프로세서 및 프로세서에 연결된 멤리스터 크로스바 어레이를 포함한다. 멤리스터 크로스바 어레이는 다수의 행 라인, 행 라인과 교차하여 다수의 교차 지점를 형성하는 다수의 열 라인, 및 교차 지점에서 행 라인과 열 라인 사이에 연결된 다수의 멤리스터 디바이스를 포함한다. 멤리스터 디바이스는 멤리스터 디바이스에서 다수의 프로그래밍 신호를 수신한다. 프로그래밍 신호는 행렬 내의 다수의 값을 정의한다. 멤리스터 디바이스는 또한 멤리스터 디바이스에서 다수의 벡터 신호를 수신한다. 벡터 신호는 멤리스터 디바이스에 인가될 다수의 벡터 값을 정의한다. 멤리스터 크로스바 어레이는 각각의 행 라인에 접속된 다수의 증폭기를 더 포함하여, 저항성 메모리 디바이스를 초기 저항으로 설정하기 위해 각각의 저항성 메모리 디바이스에 기준 전압을 인가한다. 증폭기는 증폭기에 입력되는 전압의 전압과 증폭기에 입력되는 기준 전압의 전압의 비율에 기초하여 멤리스티브 크로스바 어레이의 동작 영역을 시프트한다.
내적을 결정하기 위한 이러한 저항성 크로스바 어레이는, (1) 멤리스티브 디바이스를 사용하지 않는 다른 DPE와 비교하여 내적 계산이 보다 빨리 처리되고 에너지 효율이 더 크다는 것; (2) 멤리스터가 더 선형적인 영역에서 동작하고 더 나은 신호 대 잡음 비 및 잡음 마진을 제공하도록 차동 모드에서 DPE를 작동시키는 것; (3) 큰 신호([0V, 1V])에서 작은 신호([-1/2V, 1/2V])로 동작 영역을 시프트하여 실수로 멤리스터를 스위칭할 위험을 줄이고 결국 출력 에러를 감소시키는 것; (4) 감소된 동작 전압이 또한 전기적 스트레스에 의한 멤리스터 디바이스에 대한 충격을 감소시켜 디바이스 내구성을 증가시키는 것; 및 (5) 0T1R, 1T1R, 1S1R을 포함하는 다수의 스킴과 호환가능한 설계를 제공하는 것, 이 외 다른 이점들을 포함하는 다수의 장점을 가진다.
앞선 설명은 설명된 원리의 예를 도시하고 설명하기 위해 제공되었다. 이 설명은 모든 것을 망라하거나 이러한 원칙들을 개시된 정확한 형태로 제한하려는 의도는 아니다. 위 가르침에 비추어 많은 수정 및 변형이 가능하다.

Claims (15)

  1. 내적(dot product)을 결정하기 위한 멤리스티브 크로스바 어레이로서,
    다수의 행 라인과,
    상기 다수의 행 라인과 교차하여 다수의 교차 지점을 형성하는 다수의 열 라인과,
    상기 교차 지점에서 상기 행 라인과 상기 열 라인 사이에 연결된 다수의 저항성 메모리 디바이스 - 상기 저항성 메모리 디바이스는, 상기 저항성 메모리 디바이스에서, 행렬 내의 다수의 값을 정의하는 다수의 프로그래밍 신호를 수신하고, 상기 저항성 메모리 디바이스에서, 상기 저항성 메모리 디바이스에 인가될 다수의 벡터 값을 정의하는 다수의 벡터 신호를 수신함 - 와,
    상기 저항성 메모리 디바이스의 해당 열 라인을 통해 상기 저항성 메모리 디바이스로부터 출력된 모든 전류를 수집하는 전류 수집 라인 - 수집된 상기 전류는 상기 행렬 값 및 상기 벡터 값의 내적과 동일함 - 을 포함하는
    멤리스티브 크로스바 어레이.
  2. 제 1 항에 있어서,
    각각의 저항성 메모리 디바이스에 기준 전압을 인가하기 위해 각각의 행 라인에 접속된 다수의 회로를 더 포함하는
    멤리스티브 크로스바 어레이.
  3. 제 2 항에 있어서,
    상기 회로는 상기 멤리스티브 크로스바 어레이의 동작 영역을 시프트하며, 상기 동작 영역의 시프트는 상기 회로로 입력된 전압의 전압 및 상기 회로로 입력된 기준 전압의 전압의 비율(a ratio)에 기초하는
    멤리스티브 크로스바 어레이.
  4. 제 3 항에 있어서,
    상기 비율은 상기 기준 전압이 상기 입력된 전압의 최대 전압을 2로 나눈 것과 동일하게 되는 전압들을 포함하는
    멤리스티브 크로스바 어레이.
  5. 제 2 항에 있어서,
    상기 회로는 네거티브 피드백 동작 증폭기인
    멤리스티브 크로스바 어레이.
  6. 제 1 항에 있어서,
    상기 내적의 곱 및 합 모두는 상기 멤리스티브 크로스바 어레이에 의해 동시에 수행되는
    멤리스티브 크로스바 어레이.
  7. 제 1 항에 있어서,
    상기 멤리스티브 크로스바 어레이는 제 2 컴퓨터 프로그램과 관련되어 가속기로서 사용되어, 상기 멤리스티브 크로스바 어레이의 출력이 상기 제 2 컴퓨터 프로그램에 대한 입력으로서 처리 장치에 연결되는
    멤리스티브 크로스바 어레이.
  8. 내적을 획득하는 방법으로서,
    다수의 제 1 전압을 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인에 인가하여 상기 행 라인과 다수의 열 라인 사이의 교차 지점에 위치한 대응하는 다수의 멤리스터의 저항값을 변화시키는 단계 - 상기 제 1 전압은 행렬 내의 대응하는 다수의 값을 각각 정의함 - 와,
    상기 멤리스티브 크로스바 어레이 내의 대응하는 다수의 행 라인에 다수의 제 2 전압을 인가하는 단계 - 상기 제 2 전압은 대응하는 다수의 벡터 값을 정의함 - 와,
    상기 열 라인으로부터 출력 전류를 수집하는 단계 - 상기 수집된 출력 전류는 상기 내적을 정의함 - 를 포함하는
    내적 획득 방법.
  9. 제 8 항에 있어서,
    각각의 저항성 메모리 디바이스에 초기 전압을 인가하여 상기 저항성 메모리 디바이스를 초기 저항으로 설정하는 단계를 더 포함하는
    내적 획득 방법.
  10. 제 9 항에 있어서,
    상기 증폭기는 네거티브 피드백 동작 증폭기인
    내적 획득 방법.
  11. 제 9 항에 있어서,
    상기 멤리스티브 크로스바 어레이의 동작 영역을 시프트하는 단계를 더 포함하고,
    상기 동작 영역의 시프트는 증폭기에 입력된 전압의 전압 값과 상기 증폭기에 입력된 기준 전압의 전압 값의 비율에 기초하는
    내적 획득 방법.
  12. 제 11 항에 있어서,
    상기 비율은 상기 기준 전압이 상기 입력된 전압의 최대 전압을 2로 나눈 것과 동일하게 되는 전압들을 포함하는
    내적 획득 방법.
  13. 내적을 결정하기 위한 컴퓨팅 디바이스로서,
    프로세서와,
    상기 프로세서에 연결된 멤리스터 크로스바 어레이를 포함하되,
    상기 멤리스터 크로스바 어레이는,
    다수의 행 라인과,
    상기 다수의 행 라인과 교차하여 다수의 교차 지점을 형성하는 다수의 열 라인과,
    상기 교차 지점에서 상기 행 라인과 상기 열 라인 사이에 연결된 다수의 멤리스터 디바이스 - 상기 멤리스터 디바이스는, 상기 멤리스터 디바이스에서, 행렬 내의 다수의 값을 정의하는 다수의 프로그래밍 신호를 수신하고, 상기 멤리스터 디바이스에서, 상기 멤리스터 디바이스에 인가될 다수의 벡터 값을 정의하는 다수의 벡터 신호를 수신함 - 와,
    각각의 행 라인에 접속되어 각각의 멤리스터 디바이스에 기준 전압을 인가하여 상기 멤리스터 디바이스를 초기 저항으로 설정하는 다수의 회로를 포함하되,
    상기 회로는 상기 회로에 입력된 전압의 전압과 상기 회로에 입력된 기준 전압의 전압의 비율에 기초하여 상기 멤리스터 크로스바 어레이의 동작 영역을 시프트하는
    컴퓨팅 디바이스.
  14. 제 13 항에 있어서,
    상기 멤리스터 크로스바 어레이는 상기 멤리스터 디바이스의 해당 열 라인을 통해 상기 멤리스터 디바이스로부터 출력된 모든 전류를 수집하는 전류 수집 라인을 더 포함하고, 수집된 상기 전류는 상기 행렬 값 및 상기 벡터 값의 내적과 동일한
    컴퓨팅 디바이스.
  15. 제 13 항에 있어서,
    상기 프로세서는 상기 멤리스터 크로스바 어레이의 출력을 제 2 컴퓨터 프로그램으로 입력하는
    컴퓨팅 디바이스.
KR1020177010447A 2014-10-23 2014-10-23 내적을 결정하기 위한 멤리스티브 크로스바 어레이 KR20170074234A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2014/062010 WO2016064406A1 (en) 2014-10-23 2014-10-23 Memristive cross-bar array for determining a dot product

Publications (1)

Publication Number Publication Date
KR20170074234A true KR20170074234A (ko) 2017-06-29

Family

ID=55761272

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177010447A KR20170074234A (ko) 2014-10-23 2014-10-23 내적을 결정하기 위한 멤리스티브 크로스바 어레이

Country Status (4)

Country Link
US (1) US10008264B2 (ko)
JP (1) JP6333477B2 (ko)
KR (1) KR20170074234A (ko)
WO (1) WO2016064406A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018114023A1 (de) 2017-06-13 2018-12-13 Sk Innovation Co., Ltd. Kühlgehäuse für eine Batterie und ein dieses enthaltendes Batteriemodul
KR20190060314A (ko) * 2017-11-24 2019-06-03 광주과학기술원 비 휘발성 메모리
KR20190114212A (ko) 2018-03-29 2019-10-10 국민대학교산학협력단 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로
KR20200062278A (ko) * 2017-09-27 2020-06-03 폴리테크니코 디 밀라노 저항 요소를 포함하는 수학 문제 해결 회로

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170076676A (ko) 2014-10-28 2017-07-04 휴렛 팩커드 엔터프라이즈 디벨롭먼트 엘피 내적을 결정하기 위한 멤커패시티브 크로스바 어레이
JP6702596B2 (ja) 2016-01-18 2020-06-03 華為技術有限公司Huawei Technologies Co.,Ltd. 多層rramクロスバー・アレイに基づくメモリデバイス、およびデータ処理方法
US10496855B2 (en) 2016-01-21 2019-12-03 Hewlett Packard Enterprise Development Lp Analog sub-matrix computing from input matrixes
US10706922B2 (en) * 2016-01-26 2020-07-07 Hewlett Packard Enterprise Development Lp Memristive arrays with offset elements
US10664271B2 (en) * 2016-01-30 2020-05-26 Hewlett Packard Enterprise Development Lp Dot product engine with negation indicator
WO2017171771A1 (en) 2016-03-31 2017-10-05 Hewlett Packard Enterprise Development Lp Data processing using resistive memory arrays
US9785615B1 (en) * 2016-06-24 2017-10-10 Hewlett Packard Enterprise Development Lp Memristive computation of a vector cross product
US10929059B2 (en) 2016-07-26 2021-02-23 MemRay Corporation Resistance switching memory-based accelerator
US10248323B2 (en) * 2016-09-23 2019-04-02 International Business Machines Corporation Non-von neumann optimization based on approximate message passing
US10241971B2 (en) 2016-12-15 2019-03-26 Hewlett Packard Enterprise Development Lp Hierarchical computations on sparse matrix rows via a memristor array
JP6756287B2 (ja) * 2017-03-24 2020-09-16 株式会社デンソー ニューラルネットワーク回路
US10735753B2 (en) * 2017-10-27 2020-08-04 Khalifa University of Science and Technology Data compression using memristive crossbar
US10740125B2 (en) * 2018-01-30 2020-08-11 Hewlett Packard Enterprise Development Lp Memristive dot product engine virtualization
US10419346B1 (en) * 2018-04-30 2019-09-17 Hewlett Packard Enterprise Development L.P. Hash computation using memristor-implemented dot product engine
US11861429B2 (en) 2018-04-30 2024-01-02 Hewlett Packard Enterprise Development Lp Resistive and digital processing cores
KR102105936B1 (ko) * 2018-06-25 2020-05-28 포항공과대학교 산학협력단 웨이트 행렬 입력 회로 및 웨이트 행렬 회로
JP7070190B2 (ja) * 2018-07-18 2022-05-18 株式会社デンソー ニューラルネットワーク回路
US10489483B1 (en) * 2018-09-21 2019-11-26 National Technology & Engineering Solutions Of Sandia, Llc Circuit arrangement and technique for setting matrix values in three-terminal memory cells
US10497442B1 (en) * 2018-11-15 2019-12-03 Hewlett Packard Enterprise Development Lp Memristor arrays in crossbars
WO2020144761A1 (ja) * 2019-01-09 2020-07-16 Tdk株式会社 積和演算器、論理演算デバイス、ニューロモーフィックデバイス及び積和演算方法
US11042715B2 (en) 2019-04-11 2021-06-22 International Business Machines Corporation Electronic system for performing a multiplication of a matrix and vector
CN110473580B (zh) * 2019-08-21 2021-08-20 南京邮电大学 一种基于忆阻器芯片的可编程电路最小单元及其操作方法
JP7525656B2 (ja) * 2020-06-25 2024-07-30 レイン・ニューロモーフィックス・インコーポレーテッド リソグラフィックメモリスティブアレイ
DE102020211818A1 (de) 2020-09-22 2022-03-24 Robert Bosch Gesellschaft mit beschränkter Haftung Skalarproduktschaltung und Verfahren zum Berechnen binärer Skalarprodukte eines Eingangsvektors mit Gewichtsvektoren
CN113224236B (zh) * 2021-05-11 2022-09-16 山东大学 一种透明的双层结构忆阻器及其制备方法
DE102022211802A1 (de) 2022-11-08 2024-05-08 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur approximativen Bestimmung eines Skalarprodukts unter Verwendung einer Matrixschaltung
CN115862708A (zh) * 2022-11-23 2023-03-28 清华大学 忆阻器阵列的操作方法、数据处理装置
CN118136073A (zh) * 2024-03-20 2024-06-04 北京超弦存储器研究院 存储装置及其数据读取方法、电子设备

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185143B1 (en) 2000-02-04 2001-02-06 Hewlett-Packard Company Magnetic random access memory (MRAM) device including differential sense amplifiers
US6501697B1 (en) 2001-10-11 2002-12-31 Hewlett-Packard Company High density memory sense amplifier
JP2005251381A (ja) 2004-03-03 2005-09-15 Sharp Corp 電気的に書込み可能なクロスポイント型不揮発性可変抵抗記憶装置及びクロスポイント型可変抵抗メモリアレイの読み出し方法
US8559209B2 (en) 2011-06-10 2013-10-15 Unity Semiconductor Corporation Array voltage regulating technique to enable data operations on large cross-point memory arrays with resistive memory elements
US20070233761A1 (en) * 2006-04-03 2007-10-04 Mouttet Blaise L Crossbar arithmetic processor
US7688656B2 (en) 2007-10-22 2010-03-30 Freescale Semiconductor, Inc. Integrated circuit memory having dynamically adjustable read margin and method therefor
US7907456B2 (en) 2007-10-31 2011-03-15 Texas Instruments Incorporated Memory having circuitry controlling the voltage differential between the word line and array supply voltage
JP5160304B2 (ja) * 2008-05-22 2013-03-13 シャープ株式会社 抵抗変化型可変抵抗素子を備えた積演算装置、及び積和演算装置、これらの装置を各ニューロン素子に備えるニューラルネットワーク、並びに積演算方法
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
WO2011112201A1 (en) * 2010-03-12 2011-09-15 Hewlett-Packard Development Company, L.P. Coding for crossbar architecture
WO2011133139A1 (en) * 2010-04-19 2011-10-27 Hewlett-Packard Development Company, L.P. Refreshing memristive systems
EP2589084B1 (en) * 2010-06-30 2016-11-16 Life Technologies Corporation Transistor circuits for detection and measurement of chemical reactions and compounds
US8253443B2 (en) * 2010-10-26 2012-08-28 Hewlett-Packard Development Company, L.P. Interconnection architectures for multilayer crossbar circuits
US9367798B2 (en) * 2012-09-20 2016-06-14 Brain Corporation Spiking neuron network adaptive control apparatus and methods
US20150248248A1 (en) * 2012-10-31 2015-09-03 Hewlett-Packard Development Company, L.P. Writing standard tape format to memory
US9323499B2 (en) * 2012-11-15 2016-04-26 Elwha Llc Random number generator functions in memory
US9442854B2 (en) * 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
US9292790B2 (en) * 2012-11-20 2016-03-22 Qualcom Incorporated Piecewise linear neuron modeling
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
KR102133573B1 (ko) * 2013-02-26 2020-07-21 삼성전자주식회사 반도체 메모리 및 반도체 메모리를 포함하는 메모리 시스템
US9588882B2 (en) * 2013-12-02 2017-03-07 Intel Corporation Non-volatile memory sector rotation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018114023A1 (de) 2017-06-13 2018-12-13 Sk Innovation Co., Ltd. Kühlgehäuse für eine Batterie und ein dieses enthaltendes Batteriemodul
KR20200062278A (ko) * 2017-09-27 2020-06-03 폴리테크니코 디 밀라노 저항 요소를 포함하는 수학 문제 해결 회로
KR20190060314A (ko) * 2017-11-24 2019-06-03 광주과학기술원 비 휘발성 메모리
KR20190114212A (ko) 2018-03-29 2019-10-10 국민대학교산학협력단 이진값 기반 신경회로망을 위한 단일 컬럼 멤리스터 크로스바 및 cmos 활성화 함수 회로

Also Published As

Publication number Publication date
WO2016064406A1 (en) 2016-04-28
US10008264B2 (en) 2018-06-26
JP6333477B2 (ja) 2018-05-30
US20170316827A1 (en) 2017-11-02
JP2018501537A (ja) 2018-01-18

Similar Documents

Publication Publication Date Title
JP6333477B2 (ja) ドット積を求めるためのメムリスティブクロスバーアレイ
US10339202B2 (en) Resistive memory arrays for performing multiply-accumulate operations
US10643697B2 (en) Double bias memristive dot product engine for vector processing
US10541026B2 (en) Memristive dot product engine for vector processing
US10319441B2 (en) Nonvolatile memory cross-bar array
CN107533668B (zh) 用于计算神经网络的节点值的硬件加速器和方法
EP3221864B1 (en) Memristive dot product engine with a nulling amplifier
US10482940B2 (en) Computational accuracy in a crossbar array
US10698975B2 (en) In situ transposition
CN105390520B (zh) 忆阻器交叉阵列的参数配置方法
US10706922B2 (en) Memristive arrays with offset elements

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application