KR102462792B1 - 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 - Google Patents

아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 Download PDF

Info

Publication number
KR102462792B1
KR102462792B1 KR1020180013755A KR20180013755A KR102462792B1 KR 102462792 B1 KR102462792 B1 KR 102462792B1 KR 1020180013755 A KR1020180013755 A KR 1020180013755A KR 20180013755 A KR20180013755 A KR 20180013755A KR 102462792 B1 KR102462792 B1 KR 102462792B1
Authority
KR
South Korea
Prior art keywords
weight
input
output
lines
coupled
Prior art date
Application number
KR1020180013755A
Other languages
English (en)
Other versions
KR20190029406A (ko
Inventor
라이언 엠. 해처
보르나 제이. 오브라도빅
조지 에이. 키틀
티타시 락싯
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20190029406A publication Critical patent/KR20190029406A/ko
Application granted granted Critical
Publication of KR102462792B1 publication Critical patent/KR102462792B1/ko

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/4806Computations with complex numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • G06N3/065Analogue means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Logic Circuits (AREA)

Abstract

곱셈 누적 연산(multiply-accumulate operation)을 수행하는 하드웨어 디바이스 및 방법이 제공된다. 디바이스는 입력 라인, 웨이트 셀(weight cell) 및 출력 라인을 포함한다. 입력 라인은 입력 신호를 수신하고, 이들 각각은 크기 및 위상을 가지며 복소 값(complex value)을 나타낼 수 있다. 웨이트 셀은 입력 라인과 출력 라인을 연결한다. 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖는다. 전기적 어드미턴스는 프로그램 가능하며 복소 값이 될 수 있다. 입력 라인, 웨이트 셀 및 출력 라인은 크로스바 어레이(crossbar array)를 형성한다. 각각의 출력 라인은 출력 신호를 제공한다. 출력 라인에 대한 출력 신호는, 출력 라인에 연결된 입력 라인 각각에 대한 입력 신호와 각각의 웨이트 셀의 전기적 어드미턴스를 곱한 것들의 총합이고, 웨이트 셀은 입력 라인과 출력 라인을 연결한다.

Description

아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템{METHOD AND SYSTEM FOR PERFORMING ANALOG COMPLEX VECTOR-MATRIX MULTIPLICATION}
본 발명은 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 에 관한 것이다.
MAC(multiply and accumulate) 오퍼레이션이라고도 알려져 있는 벡터 매트릭스 곱셈 오퍼레이션은 다양한 분야에서 어플리케이션의 성능을 좌우한다. 예를 들어, 머신 러닝(maching learning)에 있어서, MAC 오퍼레이션의 다중 레이어가 수행될 수 있다. 입력 신호는 입력 벡터를 형성하는 것으로 간주될 수 있다. 입력 신호는 이미지, 바이트 스트림 또는 기타 데이터 세트에 대한 데이터일 수 있다. 입력 신호에는 값 또는 웨이트(weight)의 매트릭스(matrix)가 곱해진다. 출력 신호는 입력 신호와, 이에 대응하는 출력 벡터에 대한 MAC 오퍼레이션의 결과이다. 출력 벡터는 MAC 오퍼레이션의 다음 레이어에 대한 입력 벡터로서 제공될 수 있다. 이와 같은 처리는 다수의 레이어에 대해 반복될 수 있다. 다수의 MAC 오퍼레이션이 수행되기 때문에, 어플리케이션의 성능은 주로 MAC 오퍼레이션의 성능에 의해 결정된다. 따라서, 저 전력 및 고속에서 MAC 오퍼레이션을 효율적이고 신뢰성있게 수행하는 것이 바람직하다.
MAC 오퍼레이션은 디지털 방식으로 수행될 수 있다. 그러나, 아날로그 크로스바 어레이(analog corssbar array)는 디지털 회로보다 더 효율적으로 MAC 오퍼레이션을 수행할 수 있다. 이와 같은 아날로그 크로스바 어레이는 DC 신호와, 각각의 크로스포인트(crosspoint)에서의 저항기(resistor)를 이용한다. 각 저항기의 컨덕턴스(conductance)는 해당 위치의 매트릭스의 웨이트에 대응한다. 곱셈 및 누적(accumulation)은 입력 라인에 대한 포텐셜(potential)을 원하는 입력 값에 비례하도록, Vi ∝ ai 로 설정함으로써 수행된다. 여기서, Vi 는 포텐셜이고 ai 는 원하는 입력 값이다. 크로스바 네트워크(crossbar network)의 저항(resistance)은 웨이트의 역(inverse)에 비례하도록 설정된다. 따라서, wij ∝ 1/Rij 이고, 여기서 wij 는 원하는 웨이트이고, Rij 는 크로스포인트에 대해 원하는 저항이다. 그러면 MAC 출력은 출력 라인의 전류에 비례하여, bj ∝ ij 이고, 여기서 bj 는 출력이고 ij 는 출력 라인 상의 전류이다. MAC 출력에 활성화 기능(activation function)이 적용되어, 다시 전압으로 변환된다. 이 전압은 입력 벡터와, 매트릭스를 나타내는 웨이트의 어레이의 곱에 대응하는 출력 벡터이다. 결과적으로, 실수 입력 및 가중치에 대한 벡터 매트릭스 곱셈이 아날로그로 수행될 수 있다.
다양한 분야에서의 사용 가능성 때문에, 벡터 매트릭스 곱셈을 위한 더 빠르고, 더 유연하며, 더 전력 효율이 좋은 전용 하드웨어 구현이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템을 제공하기 위한 것이다.
곱셈 누적 연산(multiply-accumulate operation)을 수행하는 하드웨어 디바이스 및 방법이 제공된다. 디바이스는 입력 라인, 웨이트 셀(weight cell) 및 출력 라인을 포함한다. 입력 라인은 입력 신호를 수신하고, 이들 각각은 크기 및 위상을 갖는 AC 아날로그 고조파 신호(AC analog harmonic signal)이다. 이에 따라 입력 신호는 복소 값(complex value)을 나타낼 수 있다. 웨이트 셀은 입력 라인과 출력 라인을 연결한다. 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖는다. 전기적 어드미턴스는 프로그램 가능하며 복소 값이 될 수 있다. 입력 라인, 웨이트 셀 및 출력 라인은 크로스바 어레이(crossbar array)를 형성한다. 각각의 출력 라인은 출력 신호를 제공한다. 출력 라인에 대한 출력 신호는, 출력 라인에 연결된 입력 라인 각각에 대한 입력 신호와 각각의 웨이트 셀의 전기적 어드미턴스를 곱한 것들의 총합이고, 웨이트 셀은 입력 라인과 출력 라인을 연결한다.
하드웨어 디바이스는 복소 신호(complex signal)(복소 값 입력 벡터(complex valued input vector))와 복소 웨이트(complex weight)(복소 값 매트릭스(complex valued matrix))에 대해 벡터 매트릭스 곱셈을 수행할 수 있다. 결과적으로, 그러한 MAC 오퍼레이션의 속도, 유연성 및/또는 효율성이 개선될 수 있다.
도 1은 아날로그 복소 값 MAC 오퍼레이션(analog complex valued MAC operation)을 수행할 수 있는 하드웨어 크로스바 어레이(crossbar array)의 일부분에 대한 일 실시예를 설명하기 위한 도면이다.
도 2는 네거티브 웨이트(negative weight)를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 크로스바 어레이의 일부분에 대한 일 실시예를 설명하기 위한 도면이다.
도 3은 네거티브 웨이트를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 크로스바 어레이의 일부분에 대한 일 실시예를 설명하기 위한 도면이다.
도 4는 네거티브 웨이트를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 크로스바 어레이의 일부분에 대한 일 실시예를 설명하기 위한 도면이다.
도 5a 내지 도 5c는 아날로그 복소 값 MAC 오퍼레이션을 수행하는 하드웨어 크로스바 어레이에서 사용될 수 있는 웨이트 셀(weight cell), 프로그램 가능한 저항기(resistor) 및 프로그램 가능한 캐패시터(capacitor)의 일 실시예를 설명하기 위한 도면이다.
도 6은 아날로그 복소 값 MAC 오퍼레이션의 수행 방법의 일 실시예를 설명하기 위한 흐름도이다.
본 발명의 다양한 실시예들은 MAC(multiply and accumulate) 오퍼레이션 또는 벡터 매트릭스 곱셈 오퍼레이션을 수행하기 위한 하드웨어 디바이스에 관한 것이다. 본 명세서에서 설명되는 방법 및 시스템은, 머신 러닝(maching learning), 인공 지능, 신경망과 같은, 그러나 이에 한정되지 않는 다양한 분야에서 사용될 수 있다. 본 명세서에서 설명되는 방법 및 시스템은, 나아가, 신경망을 최적화하거나 다른 어플리케이션에 대해 유용할 수 있는, 복소 값(complex valued) 신호 및/또는 웨이트(weight)를 사용하는 것에 관한 것이다. 본 명세서에서 설명되는 방법 및 시스템은 복소 신호(complex signal)(예컨대 복소 벡터(complex vector)) 및/또는 복소 웨이트(complex weight)(복소 값 메트릭스(complex valued matrix))가 사용되는 다른 어플리케이션에까지 확장될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 동일한 도면 부호가 상이한 도면에 도시되어 있다 하더라도, 동일한 요소는 동일한 도면 부호로 표시된다는 점에 유의해야 한다. 이하의 설명에서, 상세한 구성 및 구성 요소와 같은 특정 세부 사항은 본 발명의 실시예의 전반적인 이해를 돕기 위해 제공된다. 따라서, 본 명세서에 기재된 실시예의 다양한 변경 및 수정이 본 개시의 범위 및 사상을 벗어나지 않고 이루어질 수 있다는 것은 해당 기술 분야의 통상의 기술자에게 명백할 것이다. 또한, 공지된 기능 및 구성에 대한 설명은 명료성 및 간결성을 위해 생략되었다. 이하에서 설명되는 용어는 본 발명의 기능을 고려하여 정의된 용어로서, 사용자, 사용자의 의도 또는 관습에 따라 달라질 수있다. 그러므로 용어의 정의는 본 명세서 전반에 걸친 내용을 기반으로 결정되어야한다.
본 개시는, 첨부된 도면을 참조하여 이하에서 상세하게 설명되는 실시예들 중에서 다양한 변형례 및 다양한 실시예를 가질 수 있다. 그러나, 본 발명은 실시예에 한정되지 않으며, 본 발명의 사상 및 범위 내에서 모든 수정, 균등물 및 변형을 포함하는 것으로 이해되어야한다.
제1, 제2 등과 같은 서수를 포함하는 용어가 다양한 요소를 설명하기 위해 사용될 수 있지만, 구조적 요소는 용어에 의해 제한되지 않는다. 이 용어는 한 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 본 개시의 범위를 벗어나지 않으면서, 제 1 구조 요소는 제 2 구조 요소로 지칭될 수 있다. 이와 유사하게, 제2 구조 요소는 제1 구조 요소로 지칭될 수도 있다. 본 명세서에에 사용된 바와 같이, "및/또는"이라는 용어는 하나 이상의 관련 아이템의 임의의 조합 및 모든 조합을 포함한다.
본 명세서에서 사용 된 용어는 본 개시의 다양한 실시예를 설명하기 위해 사용되었지만, 본 개시를 제한하고자 하는 것은 아니다. 단수 형태는 문맥에 달리 명시되지 않는 한 복수 형태를 포함한다. 본 개시에서, 용어 "포함하는(include)"또는 "가지는(have)"은 특징, 숫자, 단계, 동작, 구조적 요소, 부품 또는 이들의 조합의 존재를 나타내며, 하나 이상의 특징, 숫자, 단계, 동작, 구조적 요소, 부품 또는 이들의 조합의 추가적인 존재 또는 확률을 배제하지 않는다는 것을 이해해야한다.
다르게 정의되지 않는 한, 본 명세서에서 사용되는 모든 용어는 본 개시가 속하는 기술 분야의 통상의 기술자에 의해 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의된 것과 같은 용어는 관련 분야의 문맥 상의 의미와 동일한 의미를 갖는 것으로 해석되어야 하며, 본 개시에서 명확하게 정의되지 않는 한 이상적이거나 과도하게 공식적인 의미를 갖는 것으로 해석되어서는 안된다.
곱셈 누적 연산(multiply-accumulate operation)을 수행하는 하드웨어 디바이스 및 방법이 제공된다. 디바이스는 입력 라인, 웨이트 셀(weight cell) 및 출력 라인을 포함한다. 입력 라인은 입력 신호를 수신하고, 이들 각각은 크기 및 위상을 갖는 AC 아날로그 고조파 신호(AC analog harmonic signal)이다. 이에 따라 입력 신호는 복소 값(complex value)을 나타낼 수 있다. 웨이트 셀은 입력 라인과 출력 라인을 연결한다. 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖는다. 전기적 어드미턴스는 프로그램 가능하며 복소 값이 될 수 있다. 입력 라인, 웨이트 셀 및 출력 라인은 크로스바 어레이(crossbar array)를 형성한다. 각각의 출력 라인은 출력 신호를 제공한다. 출력 라인에 대한 출력 신호는, 출력 라인에 연결된 입력 라인 각각에 대한 입력 신호와 각각의 웨이트 셀의 전기적 어드미턴스를 곱한 것들의 총합이고, 웨이트 셀은 입력 라인과 출력 라인을 연결한다.
도 1은 아날로그 복소 값 MAC 오퍼레이션(analog complex valued multiply-accumulate (MAC) operation)/벡터 매트릭스 곱셈(vector-matrix multiplication)을 수행할 수 있는 하드웨어 디바이스(100)의 일부분에 대한 일 실시예를 설명하기 위한 도면이다. 단순화를 위해, 하드웨어 디바이스(100)의 일부분만이 도시되어 있다. 하드웨어 디바이스(100)는 하이브리드 아날로그 디지털 회로일 수 있다. 하드웨어 디바이스(100)는 입력 라인(110-1 내지 110-n)(집합적으로/일반적으로는 입력 라인(110)으로 나타냄), 웨이트 셀(120-11 내지 120-nm)(집합적으로/일반적으로는 웨이트 셀(120)로 나타냄), 출력 라인(130-1 내지 130-m)(집합적으로/일반적으로는 출력 라인(130)으로 나타냄) 및 선택적인 후 누적 처리 블록(post-accumulation processing block)(102)을 포함한다. 본 발명의 몇몇의 실시예에서, 각각의 입력 라인(110)은 사전 시냅스 라인(pre-synaptic line)으로 간주되고, 각각의 웨이트 셀(120)은 시냅스(synapse)로 간주되고, 각각의 출력 라인(130)은 사후 시냅스 라인(post-synaptic line)으로 간주될 수 있다. 입력 라인(110)은 웨이트 셀(120)의 어레이를 통해 출력 라인(130)에 연결된다. 예를 들어, 입력 라인(110-1)은 웨이트 셀(120-11)을 통해 출력 라인(130-1)에 연결되고, 웨이트 셀(120-12)을 통해 출력 라인(130-2)에 연결되고,..., 웨이트 셀(120-1m)을 통해 출력 라인(130-m)에 연결된다. 결과적으로, 입력 라인(110), 웨이트 라인(120) 및 출력 라인(130)은 크로스바 어레이를 형성한다.
입력 라인(130)은 복소 값에 해당하는 입력 신호를 수신한다. 각각의 입력 신호는 AC 아날로그 고조파 신호이다. AC 아날로그 고조파 신호는 크기 및 위상을 이용하여 복소 값을 나타낸다. 예를 들어, 입력 라인(110-i)에 대한 입력 신호는 Viejωt 로 주어지는 전압일 수 있고, 여기서 t 는 시간, ω 는 주파수, 그리고 Vi 는 포텐셜이다. 입력 신호는 또한 Vi,recosωt + jVi,imsinωt 로서 나타낼 수 있다. 여기서 Vi,im 는 Vi 의 실수 및 허수 부의 크기이다. Vi,re 또는 Vi,im 는 적어도 입력 라인(110)의 일부에 대해서는 0 일 수 있다. 입력 라인(130)에 제공되는 입력 신호는 매트릭스 벡터 곱셈 오퍼레이션의 벡터에 대응된다. 다르게 말하면, 입력 라인(130)에 제공되는 전압 신호의 크기는 입력 벡터의 원하는 입력 값에 비례한다. 이 입력 벡터는, 하드웨어 디바이스(100)와 유사할 수 있는 (도시되지 않은) 디바이스에 의해 수행될 수 있는 이전 MAC 오퍼레이션의 출력일 수 있다.
각각의 웨이트 셀(120)은 전기적 어드미턴스 Yij 를 가지며, 여기서 i 는 크로스포인트의 입력 라인 번호에 대응하고 j 는 크로스포인트의 출력 라인 넘버에 대응한다. 전기적 어드미턴스는 프로그램 가능하며 복소 값일 수 있고, 웨이트 셀(120)의 웨이트이다. 주어진 웨이트 셀(120)의 어드미턴스는 순전히 실수 값(real value)을 취하거나, 순전히 허수 값(imaginary value)을 취하거나, 실수 및 허수 값의 합을 취할 수 있다. 이와 같은 어드미턴스를 제공하기 위해, 웨이트 셀(120)은 저항기(resistor) 및 캐패시터(capacitor)와 같은 수동 전자 소자(passive electronic components)를 포함할 수 있다. 예를 들어, 웨이트 셀(120)은 캐패시터와 병렬로 연결된 저항기를 포함할 수 있다. 그러한 웨이트 셀에 대해, 어드미턴스는 Yij = Gij, + iCij 이고, 여기서 Gij = 1/Rij 이고, Gij 는 저항기의 컨덕턴스(conductance)이고, Rij 는 저항기의 저항(resistance)이고, Cij 는 캐패시터의 캐패시턴스(capacitance)이다. 본 발명의 다른 실시예에서, 복소 어드미턴스(complex admittance)를 갖는 다른 수동 소자 또는 추가적인 수동 소자가 사용될 수 있다. 웨이트 셀(120)의 어레이는 벡터 매트릭스 곱셈을 위한 매트릭스에 대응한다. 웨이트 셀(120-ij)의 어드미턴스 Yij 는, 입력 벡터와 곱해지는 매트릭스의 ij 번째 위치의 값에 비례한다.
각각의 출력 라인(130)은 출력 신호를 전류의 형태로 제공한다. 입력 라인(110), 웨이트 셀(120) 및 출력 라인(130)이 연결된 방식으로 인해, 각각의 출력 라인에 대한 출력 신호는, 출력 라인에 연결된 입력 라인(110) 각각에 대한 입력 신호와, 입력 라인(110)과 출려 라인(130)을 연결하는 각각의 웨이트 셀(120)의 전기적 어드미턴스를 곱한 것들의 총합이다. 따라서, 각각의 출력 라인(130)의 출력 신호는
Figure 112018012300740-pat00001
로 주어지는 복소 전류(complex current)가 된다.
Figure 112018012300740-pat00002
Figure 112018012300740-pat00003
후 누적 처리 블록(102)은 출력 신호에 대해 추가적인 처리를 수행하기 위해 사용된다. 예를 들어, 후 누적 처리 블록(102)은 출력 라인(130)의 전류를 전압으로 변환할 수 있다. 이러한 전압은, 하드웨어 디바이스(100)와 유사할 수 있는 후속의 하드웨어 MAC 오퍼레이션 디바이스(도시되지 않음) 입력 신호를 형성할 수 있다. 본 발명의 다른 실시예에서, 후 누적 처리 블록(102)은 생략될 수 있다.
동작 중, 웨이트 셀(120) 각각의 어드미턴스는 프로그램된다. 입력 벡터에 대응하는 복소 정현파 전압 신호(sinusoidal complex voltage signal)는 각각의 입력 라인(110)을 통해 구동된다. 출력 라인(130)을 통한 결과 전류는, 각각의 입력 라인을 통한 전압과, 입력 라인(110)과 출력 라인을 연결하는 웨이트 셀(120)의 어드미턴스에 의존적이다. j 번째 출력 라인(130) 상의 전류는
Figure 112018012300740-pat00004
로 주어지며, 여기서 i 는 입력 라인(110)에 대응하며 1 부터 n 까지의 값을 갖고, 각각의 웨이트 셀(120)은 저항기와 병렬로 연결된 캐패시터를 포함한다. 이 전류는 전압 또는 후 누적 처리 블록(102)에 의해 조작된 다른 것으로 변환될 수 있다. 아날로그 신호가 사용되기 때문에, 출력을 안정화하기 위해 필요한 사이클의 개수로 인한 지연 패널티(latency penalty)가 하드웨어 장치(100)에 대해 발생할 수 있다. 또한, 웨이트 셀(120) 내의 저항기 또는 캐패시터의 충분한 비선형성(nonlinearity)은 출력의 왜곡 및 오차를 초래할 수 있다. 하드웨어 디바이스(100)의 동작 동안, 이와 같은 비선형성은 감소됨이 바람직하고, 출력의 안정화를 위한 충분한 수의 사이클이 수행되는 것이 바람직하다.
하드웨어 디바이스(100)를 이용하여, MAC 오퍼레이션/벡터 매트릭스 곱셈은 복소 값 아날로그 신호에 대해 복소 값 웨이트를 이용하여 수행될 수 있다. 이것은 하드웨어로 구현되기 때문에, 아날로그 하드웨어 디바이스(100)는 낮은 전력을 소모하며 향상된 성능으로 MAC 오퍼레이션을 수행할 수 있다. 하드웨어 디바이스(100)의 특정 웨이트 셀(120)에 대한 웨이트/전기적 어드미턴스는 순전히 실수이거나, 순전히 허수이거나, 실수 성분과 허수 성분을 모두 포함할 수 있다. 이에 따라 하드웨어 디바이스(100)는, 오로지 실수 웨이트만을 채용하던 종래의 하드웨어 구현과 비교했을 때 그 유연성이 증가한다. 하드웨어 디바이스(100)는, 복소 값을 이용하는 신경망의 복소 값 MAC 오퍼레이션을 효율적으로 수행하기 위해 사용될 수 있다. 이와 같은 복소 값 신경망은 더 적은 뉴런 및/또는 수학적 오퍼레이션만으로 문제를 해결할 수 있다. 따라서, 신경망의 설계가 향상될 수 있고, 성능이 강화되고, 전력 소모가 감소된다. 복소 값 MAC 오퍼레이션을 이용하는 다른 어플리케이션에 대해서도 이와 유사한 이점을 얻을 수 있다. 따라서 하드웨어 디바이스(100)는 MAC 오퍼레이션에 의존하는 어플리케이션의 성능을 향상시킬 수 있다.
도 1에 도시된 하드웨어 디바이스(100)에서, 오로지 수동 소자만이 사용되는 경우에, 웨이트 셀(120)의 어드미턴스는 양의 값(positive value)만을 가질 수 있다. 이것은 본 명세서에서 상세하게 논의되는 저항, 캐패시턴스와 같은 수동 소자가 음이 아닌(non-negative) 어드미턴스를 갖기 때문이다. 그러나, 웨이트 셀(120)에 대한 웨이트는 (양 또는 음의) 일반적인 복소 값을 취하는 것이 바람직할 수 있다. 도 2 내지 도 4는, 웨이트가 양의 복소 값 또는 음의 복소 값일 수 있고 수동 소자를 이용하여 구현될 수 있는 하드웨어 디바이스의 예시적인 실시예를 도시한다. 본 발명의 다른 실시예에서, 전류 거울(current mirror)와 같은 능동 소자(active element)가 웨이트 셀(120)에 채용되어, 양의 복소 값 웨이트와 음의 복소 값 웨이트를 제공할 수 있다. 본 명세서에서, 양이라는 용어는 포지티브라는 용어와 함께 사용되고, 음이라는 용어는 네거티브 라는 용어와 함께 사용된다.
도 2는 네거티브 웨이트(negative weight)를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 디바이스(100A)의 일부분에 대한 일 실시예를 설명하기 위한 도면이다. 하드웨어 디바이스(100A)는 하드웨어 디바이스(100)와 유사하다. 이에 따라 하드웨어 디바이스(100A)는, 입력 라인(110), 웨이트 셀(120), 출력 라인(130) 및 선택적인 후 누적 처리 블록(102)에 각각 대응하는 입력 라인(110A), 웨이트 셀(120A), 출력 라인(130) 및 선택적인 후 누적 처리 블록(102)을 포함한다. 따라서, 입력 라인(110A), 웨이트 셀(120A) 및 출력 라인(130)은 앞서 설명한 것과 유사한 방식으로 인덱싱된다. 그러나, 도 2에서 알 수 있는 바와 같이, 각각의 입력 라인(110A-i)은 2 개의 입력 서브 라인(112-i 및 114-i)(일반적으로 서브 라인(112 및 114))을 포함한다. 예를 들어, 입력 라인(110A-1)은 서브 라인(112-1 및 114-1)을 포함한다. 각각의 웨이트 셀(120A-ij)은 2 개의 웨이트 서브 셀(122-ij 및 124-ij)을 포함한다. 예를 들어, 웨이트 셀(120A-11)는 서브 셀(122-11 및 124-11)을 포함한다.
입력 라인(110A)은 포지티브 입력 신호와 네거티브 입력 신호를 각각 캐리(carry)하기 위해 서브 라인(112 및 114)를 포함한다. 이와 유사하게, 웨이트 셀(120A-ij)은 포지티브 서브 라인(112)에 연결된 포지티브 서브 셀(122-ij)(일반적으로 서브 셀(122))과, 네거티브 서브 라인(114)에 연결된 네거티브 서브 셀(124-ij)(일반적으로 서브 셀(124))을 포함한다. 포지티브 서브 셀(122)은 어드미턴스 Yij + 를 갖고, 네거티브 서브 셀(124)은 어드미턴스 Yij - 를 갖는다. 서브 셀(122 및 124)는 대응되는 출력 라인(130)에 연결된다. 따라서, 양의 복소 입력 값과 음의 복소 입력 값(전압)은 원하는 웨이트(어드미턴스)와 곱해지고, 이들 모두는 적절한 출력 라인(130) 상에 누적된다. 하드웨어 디바이스(100A)에 의해 수행되는 MAC 오퍼레이션의 출력은 각각의 출력 라인(130) 상에 캐리된 전류가 된다.
하드웨어 디바이스(100A)는 하드웨어 디바이스(100)와 유사한 방식으로 동작한다. 웨이트 셀(120A) 각각의 어드미턴스가 설정된다. 또한, 포지티브 및 네거티브 웨이트에 대한 복소 정현파 전압이 각각의 입력 라인(112 및 114)을 통해 구동된다. 출력 라인(130)을 통한 결과 전류는 각각의 입력 라인(112 및 114)을 통한 전압과, 서브 셀(122 및 124)의 어드미턴스 각각에 의존적이다. j 번째 출력 라인(130) 상의 전류는
Figure 112018012300740-pat00005
로 주어지고, 여기서 i 는 입력 라인(110A)에 대응하고 1 부터 n 까지의 값을 갖는다. 이 전류는 후 처리 누적 블록(102)에 의해 전압으로 변환되어 후속의 MAC 오퍼레이션을 수행하는 후속의 하드웨어 디바이스에 제공될 수 있다.
하드웨어 디바이스(100A)를 이용하여, 하드웨어 디바이스(100)의 이점을 얻을 수 있다. 따라서, MAC 오퍼레이션/벡터 매트릭스 곱셈은 아날로그 신호와 복소 웨이트를 이용하여 낮은 전력 소모와 향상된 성능으로 수행될 수 있다. 이에 따라 하드웨어 디바이스(100A)의 유연성이 증가하고, 복소 값을 이용하는 신경망의 복소 MAC 오퍼레이션을 효율적으로 수행하기 위해 이용될 수 있다. 또한 하드웨어 디바이스(100A)는 복소 값이 바람직할 수 있는 다른 어플리케이션으로 확장될 수도 있다. 이에 따라 하드웨어 디바이스(100A)는 MAC 오퍼레이션에 의존하는 어플리케이션의 성능을 향상시킬 수 있다. 또한, MAC 오퍼레이션에 이용되는 웨이트는 양의 복소 값과 음의 복소 값을 취할 수 있다. 결과적으로, 하드웨어 디바이스(100A)는 확장될 수 있다.
도 3은 네거티브 웨이트를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 디바이스(100B)의 일부분에 대한 일 실시예를 설명하기 위한 도면이다. 하드웨어 디바이스(100B)는 하드웨어 디바이스(100, 100A)와 유사하다. 이에 따라 하드웨어 디바이스(100B)는, 입력 라인(110/110A), 웨이트 셀(120/120A), 출력 라인(130) 및 선택적인 후 누적 처리 블록(102)에 각각 대응하는 입력 라인(110), 웨이트 셀(120B), 출력 라인(130B) 및 선택적인 후 누적 처리 블록(102)을 포함한다. 따라서, 입력 라인(110), 웨이트 셀(120B) 및 출력 라인(130)은 앞서 설명한 것과 유사한 방식으로 인덱싱된다. 도 3에서 알 수 있는 바와 같이, 각각의 출력 라인(130B-i)은 2 개의 출력 서브 라인(132-i 및 134-i)(일반적으로 라인(132 및 134))을 포함한다. 예를 들어, 출력 라인(130B-1)은 서브 라인(132-1 및 134-1)을 포함한다. 또한, 각각의 웨이트 셀(120B-ij)은 2 개의 웨이트 서브 셀(122-ij 및 124-ij)을 포함한다.
웨이트 셀(120B-ij)은 모두 입력 라인(110)에 연결된 포지티브 서브 셀(122-ij)(일반적으로 서브 셀(122)) 및 네거티브 서브 셀(124-ij)(일반적으로 서브 셀(124))을 포함한다. 포지티브 서브 셀(122)은 포지티브 출력 서브 라인(132)에 연결된다. 네거티브 서브 셀(124)은 네거타브 출력 서브 라인(134)에 연결된다. 포지티브 서브 셀(122)은 어드미턴스 Yij + 를 갖고, 네거티브 서브 셀(124)은 어드미턴스 Yij - 를 갖는다. 따라서, 원하는 웨이트(어드미턴스)와 곱해진 복소 입력 값(전압)은 적절한 포지티브 출력 라인(132) 및 네거티브 출력 라인(134) 상에 누적된다. 따라서, 출력 라인(130B)은 서브 라인(132, 124)에 대해 포지티브 웨이트로 가중화된 출력 신호와 네거티브 웨이트로 가중화된 출력 신호를 각각 캐리한다.
하드웨어 디바이스(100B)는 하드웨어 디바이스(100, 100A)와 유사한 방식으로 동작한다. 웨이트 셀(120B) 각각의 어드미턴스가 설정된다. 또한, 복소 정현파 전압이 각각의 입력 라인(110)을 통해 구동된다. 각각의 출력 서브 라인(132, 134)을 통한 결과 전류는 입력 라인(110)을 통한 전압과, 서브 셀(122, 124)에 대응하는 웨이트의 어드미턴스 각각에 의존적이다. j 번째 출력 서브 라인(132-j, 134-j) 상의 전류는 각각
Figure 112018012300740-pat00006
Figure 112018012300740-pat00007
로 주어지고, 여기서 i 는 입력 라인(110A)에 대응하고 1 부터 n 까지의 값을 갖는다. 이 전류는 후 처리 누적 블록(102)에 의해 전압으로 변환되어 후속의 MAC 오퍼레이션을 수행하는 후속의 하드웨어 디바이스에 제공될 수 있다.
하드웨어 디바이스(100B)를 이용하여, 하드웨어 디바이스(100 및/또는 100A)의 이점을 얻을 수 있다. 따라서, MAC 오퍼레이션/벡터 매트릭스 곱셈은 아날로그 신호와 복소 웨이트를 이용하여 낮은 전력 소모와 향상된 성능으로 수행될 수 있다. 이에 따라 하드웨어 디바이스(100B)의 유연성이 증가하고, 복소 값을 이용하는 신경망의 복소 MAC 오퍼레이션을 효율적으로 수행하기 위해 이용될 수 있다. 또한 하드웨어 디바이스(100B)는 복소 값이 바람직할 수 있는 다른 어플리케이션으로 확장될 수도 있다. 이에 따라 하드웨어 디바이스(100B)는 MAC 오퍼레이션에 의존하는 어플리케이션의 성능을 향상시킬 수 있다. 또한, MAC 오퍼레이션에 이용되는 웨이트는 양의 복소 값과 음의 복소 값을 취할 수 있다. 결과적으로, 하드웨어 디바이스(100B)는 확장될 수 있다.
하드웨어 디바이스(100A 및 100B) 기능에도 불구하고, 이들 디바이스는 상당한 추가 회로를 필요로 한다. 더욱 구체적으로, 각각의 웨이트 셀에 대해 추가적인 입력 또는 출력 라인과 다중 서브 셀이 필요하다. 결과적으로 포지티브 및 네거티브 복소 웨이트를 이용할 수 있는 MAC 오퍼레이션을 수행하는 향상된 메커니즘이 바람직할 수 있다.
도 4는, 웨이트 셀 당 추가적인 서브 셀과 입력 또는 출력 라인이 필요 없는, 네거티브 웨이트를 포함하는 아날로그 복소 값 MAC 오퍼레이션을 수행할 수 있는 하드웨어 디바이스(100C)의 일부분에 대한 일 실시예를 설명하기 위한 도면이다. 하드웨어 디바이스(100C)는 하드웨어 디바이스(100, 100A, 100B)와 유사하다. 이에 따라 하드웨어 디바이스(100C)는, 입력 라인(110), 웨이트 셀(120), 출력 라인(130) 및 선택적인 후 누적 처리 블록(102)에 각각 대응하는 입력 라인(110), 웨이트 셀(120), 출력 라인(130) 및 선택적인 후 누적 처리 블록(102)을 포함한다. 따라서, 입력 라인(110), 웨이트 셀(120) 및 출력 라인(130)은 앞서 설명한 것과 유사한 방식으로 인덱싱된다. 또한, 각각의 입력 라인(110)에 대해 Roff - i 의 저항을 갖는 오프셋 저항기(150-i)(일반적으로 150)가 존재한다. 또한, 하드웨어 디바이스(100C)는 추가적인 오프셋 라인(140), 오프셋 라인(140)으로부터의 출력 전류를 처리할 수 있는 선택적인 오프셋 블록(160) 및 선택적인 오프셋 전압 라인(170)을 포함한다.
어드미턴스 Yij - 와 같은 음의 복소 값 웨이트는 입력(110-i)에 대한 총 어드미컨스를 오프셋하기 위한 고정 값으로 표현될 수 있다. 이 오프셋은 개별 웨이트 셀(120-ij) 각각에 포함될 필요는 없다. 대신, 오프셋은 각각의 입력 라인(110-i)에 대해 Roff - i 의 저항을 갖는 오프셋 저항기(150-i)에 의해 표현될 수 있다. 입력 전압이 곱해지는 이들 오프셋 저항에 대응하는 컨덕턴스의 총합은, 별도의 오프셋 라인(140) 상에 누적되고, 나머지 라인 상의 출력과 합쳐질 수 있다. 오프셋 블록(160)은 오프셋 전류를 전압으로 변환할 수 있다. 선택적인 전압 라인(170)은 오프셋 전압을 각각의 출력 라인(130)에 제공할 수 있다. 본 발명의 다른 실시예에서, 전압으로의 변환은 후 누적 처리 블록(102)에 의해 수행될 수 있다.
하드웨어 디바이스(100C)는 하드웨어 디바이스(100, 100A, 100B)와 유사한 방식으로 동작한다. 웨이트 셀(120) 각각의 어드미턴스가 설정된다. 또한, 복소 정현파 전압이 각각의 입력 라인(110)을 통해 구동된다. 각각의 출력 라인(130)을 통한 결과 전류는 하드웨어 디바이스(100)에 대해 설명한 것과 유사한 방식으로 누적된다. 또한, 오프셋 라인(140)에 연결된 저항기(150-i)에 대한 어드미턴스 1/Roff -i 는 누적 오프셋 전류 Ioff 를 생성한다. 오프셋 라인(140) 상의 오프셋 전류는
Figure 112018012300740-pat00008
로 주어지고, 여기서 i 는 입력 라인(110)에 대응하고 1 부터 n 까지의 값을 갖는다. 이 오프셋 전류는 출력 라인(130) 상의 출력 전류로부터 감산될 수 있다. 각각의 출력 라인(130)의 결과 전류는 후 누적 처리 블록(102)에 의해 전압으로 변환되어 후속의 MAC 오퍼레이션을 수행하는 후속의 하드웨어 디바이스에 제공될 수 있다. 이와 다르게, 오프셋 전류는 오프셋 전압으로 변환되어, 오프셋 라인(130)의 전류에 대응하는 전압으로부터 감산될 수 있다.
하드웨어 디바이스(100C)을 이용하여, 하드웨어 디바이스(100, 100A 및/또는 100B)의 이점을 얻을 수 있다. 따라서, MAC 오퍼레이션/벡터 매트릭스 곱셈은 아날로그 신호와 복소 웨이트를 이용하여 낮은 전력 소모와 향상된 성능으로 수행될 수 있다. 이에 따라 하드웨어 디바이스(100C)의 유연성이 증가하고, 복소 값을 이용하는 신경망의 복소 MAC 오퍼레이션을 효율적으로 수행하기 위해 이용될 수 있다. 또한 하드웨어 디바이스(100C)는 복소 값이 바람직할 수 있는 다른 어플리케이션으로 확장될 수도 있다. 이에 따라 하드웨어 디바이스(100C)는 MAC 오퍼레이션에 의존하는 어플리케이션의 성능을 향상시킬 수 있다. 또한, MAC 오퍼레이션에 이용되는 웨이트는 양의 복소 값과 음의 복소 값을 취할 수 있다. 나아가, 음의 복소 값은 보다 단순하고 보다 효율적이며 우아한 회로에 포함될 수 있다. 결과적으로, 하드웨어 디바이스(100, 100A 및/또는 100B)는 확장될 수 있다.
도 5a 내지 도 5c는, 웨이트 셀(120'), 프로그램 가능한 저항 회로(200A) 및 프로그램 가능한 캐패시턴스 회로(210A) 각각에 대한 일 실시예를 설명하기 위한 도면이다. 도 5a를 참조하면, 웨이트 셀(120')은 하드웨어 디바이스(100, 100A, 100B 및/또는 100C)의 웨이트 셀(120, 120A 및/또는 120B) 중 적어도 하나에 사용될 수 있다. 웨이트 셀(120')은 프로그램 가능한 캐패시터(210)과 병렬로 연결된 프로그램 가능한 저항기(200)를 포함한다. 본 발명의 몇몇의 실시예에서, 스위치(도시되지 않음)는 저항기(200) 및 캐패시터(210)와 직렬로 연결된다. 그러나, 도시된 실시예에서, 이러한 스위치는 생략된다. 프로그램 가능한 저항기(200)는 가변 컨덕턴스(variable conductance) Gp 를 갖는다. 프로그램 가능한 캐패시터(210)는 프로그램 가능한 캐패시턴스 Cp 를 갖는다. 웨이트 셀(120')의 프로그램 가능한 어드미턴스는 Gp + Cp 이다. 이에 따라, 웨이트 셀(120')은 순전히 저항성(resistive)일 수도 있고, 순전히 용량성(capacitive)일 수 있고, 또는 저항성 또는 용량성일 수 있다.
도 5b는 프로그램 가능한 저항기(200)에 사용될 수 있는 프로그램 가능한 저항 회로(200A)의 일 실시예를 설명하기 위한 것이다. 프로그램 가능한 저항 회로(200A)는 각각 병렬로 연결된 저항기(202, 204, 206) 및 스위치(203, 205, 207)를 포함한다. 저항기(202, 204, 206)는 각각 컨덕턴스 G1, G2 및 G3 를 갖는다. 본 발명의 일 실시예에서, 각각의 스위치(203, 205 및/또는 207)는 충분히 큰 온/오프 비율(on/off ratio)을 갖는 다른 디바이스를 포함할 수 있다. 예를 들어, 온/오프 비율은 적어도 105 일 수 있다. 이러한 디바이스는 MOSFET, 강 유전체 트랜지스터(ferroelectric transistor) 및/또는 저항성 랜덤 액세스 메모리(resistive random access memory, RRAM) 소자를 포함할 수 있으나, 이에 한정되는 것은 아니다. 저항기(200, 200A)는 다양한 방식으로 구현될 수 있다. 예를 들어, 자 자기 랜덤 액세스 메모리(magnetic random access memory (MRAM)), 자기 터널링 정션(magnetic tunneling junction), 플래시 디바이스, RRAM 소자, 상 변화 메모리(ferroelectric random access memory, FeRAM) 소자 및/또는 유사한 디바이스가 저항기(202, 204 및/또는 206)를 구성하기 위해 사용될 수 있다. 본 발명의 몇몇의 실시예에서, G2 는 G1 의 2 배이고, G3 는 G2 의 2배이다. 선택적으로 스위치(203, 205, 207)을 개폐함으로써, 프로그램 가능한 저항 회로(200A)의 저항은 8 개의 균일하게 분산된 값들 중 하나로 설정될 수 있다. 그러나, 다른 저항 값을 갖는 다른 설정도 가능하다.
도 5c는 웨이트 셀(120')의 프로그램 가능한 캐패시터(210)에 사용될 수 있는 프로그램 가능한 캐피시턴스 회로(210A)의 일 실시예를 설명하기 위한 것이다. 프로그램 가능한 캐피시턴스 회로(210A)는 각각 병렬로 연결된 캐패시터(212, 214, 216) 및 스위치(213, 215, 217)를 포함한다. 캐패시터(212, 214, 216)는 각각 캐피시턴스 C1, C2 및 C3 를 갖는다. 본 발명의 일 실시예에서, 각각의 스위치(213, 215 및/또는 217)는 충분히 큰 온/오프 비율을 갖는 다른 디바이스를 포함할 수 있다. 이러한 온/오프 비율은 적어도 105 일 수 있다. 이와 같은 기준을 충족하는 디바이스는 위에서 언급한 것들을 포함한다. 프로그램 가능한 캐패시터(210/210A)로서 동작할 수 있는 추가적인 디바이스는, 강 유전체 FET(ferroelectirc FETs (FeFETS)), 플래시 디바이스, MOS 캐패시터(MOS capacitors (MOSCAPs)) 또는 복소 임피던스(complex impedance)를 갖는 유사한 디바이스를 포함한다. 그러나, 이와 같은 대안적인 디바이스는 비교적 비선형적인 전류 전압 특성을 가질 수 있고, 이것은 MAC 오퍼레이션에서의 왜곡과 부정확성을 야기할 수 있다. 결과적으로, 이와 같은 디바이스는 적어도 일부 실시예에서는 사용되는 것이 바람직하지 않을 수 있다. 본 발명의 다른 실시예에서, 프로그램 가능한 캐패시터(210/210A)는 프로그램 가능한 인덕터에 의해 증대되거나 대체될 수 있다. 그러나, 간결한 프로그램 가능하고 제조 가능한 인덕터 디바이스는 획득하기 어려울 수 있다. 본 발명의 몇몇의 실시예에서, 본 발명의 몇몇의 실시예에서, C2 는 C1 의 2 배이고, C3 는 C2 의 2배이다. 그러나, 다른 설정도 가능하다. 선택적으로 스위치(213, 215, 217)을 개폐함으로써, 프로그램 가능한 캐패시터(210A)의 캐패시턴스는 8 개의 균일하게 분산된 값들 중 하나로 설정될 수 있다. 그러나, 다른 캐패시턴스 값을 갖는 다른 설정도 가능하다.
웨이트 셀(120')을 이용하여, 프로그램 가능한 저항 회로(200A) 및/또는 프로그램 가능한 캐패시턴스 회로(210A), 하드웨어 디바이스(100, 100A, 100B, 100C) 및/또는 유사한 디바이스가 구현될 수 있다. 본 발명의 다른 실시예에서는 다른 구현이 사용될 수 있다. 결과적으로, 하드웨어 디바이스(100, 100A, 100B 및/또는 100C)의 이점이 실현될 수 있다.
도 6은 아날로그 복소 값 MAC 오퍼레이션의 수행 방법(300)의 일 실시예를 설명하기 위한 흐름도이다. 단순화를 위해, 일부 단계는 생략되거나, 다른 순서로 수행되거나, 및/또는 결합될 수 있다. 방법(300)은 또한 하드웨어 디바이스(100)의 문맥으로 기술된다. 그러나, 방법(300)은, 디바이스(100A, 100B 및/또는 100C)와 같이 아날로그 복소 값 MAC 오퍼레이션을 수행하는 다른 하드웨어 디바이스와 관련하여 사용될 수도 있다.
웨이트 셀(120)에 대한 어드미턴스는, 단계(302)를 통해 프로그램된다. 따라서, 원하는 저항, 캐패시턴스, 인덕턴스 및/또는 웨이트 셀(120)의 다른 전기적 특성이 설정된다. 단계(302)는 하나 이상의 스위치(203, 205, 207, 213, 215 및/또는 217)를 개폐하여, 각각의 웨이트 셀(120)의 원하는 저항 및 캐패시턴스를 제공하는 것을 포함할 수 있다.
입력 신호는, 단계(304)를 통해 수신된다. 단계(304)는 각각의 입력 라인(110)에 대한 입력 신호를 생성하고, 신호를 수신하는 것을 포함한다. 따라서, 복소의, AC 고조파 전압 신호가 하드웨어 디바이스에 제공될 수 있다.
입력 신호는, 단계(306)를 통해, 하드웨어 디바이스(100)의 크로스바 어레이를 통해 패스(pass)된다. 입력 라인(110), 웨이트 셀(120) 및 출력 라인(13)의 설정으로 인해, MAC 오퍼레이션은 입력 신호에 대해 수행된다. 따라서, 출력 신호(130)에 대한 결과 전류는 MAC 오퍼레이션의 출력이 된다.
출력 라인(130) 상의 전류는, 단계(308)를 통해, 후 누적 처리 블록(102)에 의해 처리될 수 있다. 예를 들어, 출력 라인(130) 상의 전류는 전압으로 변환될 수 있다. 이에 따라, 입력 라인(11) 상의 입력 벡터와 웨이트 셀(120)에 의해 형성된 매트릭스의 곱셈으로부터 얻어진 출력 벡터가 제공될 수 있다.
따라서, 방법(300)을 이용하여, 하드웨어 디바이스(100, 100A, 100B, 100C 및/또는 유사한 디바이스가 사용될 수 있다. 결과적으로, 하나 이상의 하드웨어 디바이스(100, 100A, 100B, 100C)의 장점이 얻어질 수 있다.
이상 첨부된 도면을 참조하여 복소 값을 이용하는 MAC 오퍼레이션/벡터 매트릭스 곱셈을 수행하는 방법 및 시스템에 관한 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (12)

  1. 복수의 입력 신호를 수신하는 복수의 입력 라인;
    복수의 출력 라인; 및
    상기 복수의 입력 라인과 상기 복수의 출력 라인을 연결하는 복수의 웨이트 셀(weight cell)을 포함하되,
    상기 복수의 입력 신호 각각은 크기 및 위상을 갖는 AC 아날로그 고조파 신호(AC analog harmonic signal)이고, 상기 AC 아날로그 고조파 신호는 복소 값(complex value)을 나타내고,
    상기 복수의 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖고, 상기 복수의 웨이트 셀 각각의 상기 전기적 어드미턴스는 프로그램 가능하며 복소 값을 갖고,
    상기 복수의 입력 라인, 상기 복수의 웨이트 셀 및 상기 복수의 출력 라인은 크로스바 어레이(crossbar array)를 형성하고,
    상기 복수의 출력 라인 각각은 출력 신호를 제공하고, 상기 복수의 출력 라인 중 하나의 출력 라인에 대한 출력 신호는, 상기 출력 라인에 연결된 상기 복수의 입력 라인 각각에 대한 입력 신호와 상기 복수의 웨이트 셀 중 일부에 대한 각각의 상기 전기적 어드미턴스를 곱한 것들의 총합이고,
    상기 복수의 웨이트 셀은 상기 복수의 입력 라인과 상기 출력 라인을 연결하는 곱셈 누적 연산(multiply-accumulate operation)을 수행하고,
    적어도 하나 이상의 상기 복수의 웨이트 셀의 적어도 하나 이상의 웨이트는 음의 복소 값(negative complex value)를 갖고,
    상기 하나 이상의 웨이트 셀 각각은 포지티브 웨이트 서브 셀(positive weight sub-cell) 및 네거티브 웨이트 서브 셀(negative weight sub-cell)을 포함하고, 상기 복수의 입력 라인 중 2 개의 입력 라인에 연결되고, 상기 복수의 출력 라인 중 1 개의 출력 라인에 연결되는 하드웨어 디바이스.
  2. 제1항에 있어서,
    상기 복수의 입력 라인 각각은 상기 복수의 웨이트 셀 중 하나의 웨이트 셀에 의해 상기 복수의 출력 라인 각각에 연결되는, 하드웨어 디바이스.
  3. 제2항에 있어서,
    상기 복수의 웨이트 셀 각각은 프로그램 가능한 캐패시터(capacitor)와 병렬로 연결된 프로그램 가능한 저항기(resistor)를 포함하는, 하드웨어 디바이스.
  4. 제3항에 있어서,
    상기 프로그램 가능한 저항기는 병렬로 연결된 복수의 저항 회로(resistive circuit)를 포함하고, 각각의 저항 회로는 저항기과 직렬로 연결된 스위치를 포함하는, 하드웨어 디바이스.
  5. 제3항에 있어서,
    상기 프로그램 가능한 캐패시터는 스위치와 직렬로 연결된 복수의 캐패시터를 포함하는, 하드웨어 디바이스.
  6. 삭제
  7. 삭제
  8. 복수의 입력 신호를 수신하는 복수의 입력 라인;
    복수의 출력 라인; 및
    상기 복수의 입력 라인과 상기 복수의 출력 라인을 연결하는 복수의 웨이트 셀(weight cell)을 포함하되,
    상기 복수의 입력 신호 각각은 크기 및 위상을 갖는 AC 아날로그 고조파 신호(AC analog harmonic signal)이고, 상기 AC 아날로그 고조파 신호는 복소 값(complex value)을 나타내고,
    상기 복수의 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖고, 상기 복수의 웨이트 셀 각각의 상기 전기적 어드미턴스는 프로그램 가능하며 복소 값을 갖고,
    상기 복수의 입력 라인, 상기 복수의 웨이트 셀 및 상기 복수의 출력 라인은 크로스바 어레이(crossbar array)를 형성하고,
    상기 복수의 출력 라인 각각은 출력 신호를 제공하고, 상기 복수의 출력 라인 중 하나의 출력 라인에 대한 출력 신호는, 상기 출력 라인에 연결된 상기 복수의 입력 라인 각각에 대한 입력 신호와 상기 복수의 웨이트 셀 중 일부에 대한 각각의 상기 전기적 어드미턴스를 곱한 것들의 총합이고,
    상기 복수의 웨이트 셀은 상기 복수의 입력 라인과 상기 출력 라인을 연결하는 곱셈 누적 연산(multiply-accumulate operation)을 수행하고,
    적어도 하나 이상의 상기 복수의 웨이트 셀의 적어도 하나 이상의 웨이트는 음의 복소 값(negative complex value)를 갖고,
    상기 하나 이상의 웨이트 셀 각각은 포지티브 웨이트 서브 셀(positive weight sub-cell) 및 네거티브 웨이트 서브 셀(negative weight sub-cell)을 포함하고, 상기 각각의 웨이트 셀은 상기 복수의 출력 라인 중 2 개의 출력 라인에 연결되고, 상기 복수의 입력 라인 중 1 개의 입력 라인에 연결되는, 하드웨어 디바이스.
  9. 제1항에 있어서,
    실수 오프셋 임피던스(real offset impedance)를 갖는 수동 오프셋 소자(passive offset component)에 의해 상기 복수의 입력 라인의 각각에 연결되고, 상기 복수의 출력 라인의 각각에 연결된 오프셋 라인을 더 포함하는, 하드웨어 디바이스.
  10. 복수의 레이어의 하드웨어 디바이스를 포함하고,
    상기 하드웨어 디바이스 각각은 입력 벡터(input vector)와 매트릭스(matrix)에 대한 곱셈 누적 연산(multiply-accumulate operation)을 수행하고,
    상기 하드웨어 디바이스 각각은,
    상기 입력 벡터에 대응하는 복수의 입력 신호를 수신하는 복수의 입력 라인;
    상기 복수의 입력 라인과 연결된 복수의 출력 라인;
    상기 복수의 입력 라인과 상기 복수의 출력 라인을 연결하여 크로스바 어레이(crossbar array)를 형성하는 복수의 웨이트 셀(weight cell); 및
    오프셋 라인을 포함하고,
    상기 복수의 입력 신호 각각은 크기 및 위상을 갖는 AC 아날로그 고조파 신호(AC analog harmonic signal)이고, 상기 AC 아날로그 고조파 신호는 복소 값(complex value)을 나타내고,
    상기 복수의 웨이트 셀은 상기 매트릭스에 대응되고, 상기 복수의 웨이트 셀 각각은 웨이트(weight)에 대응하는 전기적 어드미턴스(electrical admittance)를 갖고, 상기 전기적 어드미턴스는 프로그램 가능하며 복소 값을 갖고, 상기 복수의 웨이트 셀 각각은 프로그램 가능한 캐패시터(capacitor)와 병렬로 연결된 프로그램 가능한 저항기(resistor)를 포함하고, 상기 프로그램 가능한 저항기는 병렬로 연결된 복수의 저항 회로(resistive circuit)를 포함하고, 각각의 저항 회로는 저항기와 직렬로 연결된 스위치를 포함하고, 상기 프로그램 가능한 캐패시터는 스위치와 직렬로 연결된 복수의 캐패시터를 포함하고,
    상기 오프셋 라인은 실수 오프셋 임피던스(real offset impedance)를 갖는 수동 오프셋 소자(passive offset component)에 의해 상기 복수의 입력 각각에 연결되고, 상기 복수의 출력 라인 각각에 연결되어, 상기 복수의 웨이트 각각은 음의 복소 값(negative complex value)을 갖고,
    상기 복수의 출력 라인 각각은 출력 신호를 제공하고, 상기 복수의 출력 라인 중 하나의 출력 라인에 대한 출력 신호는, 상기 출력 라인에 연결된 상기 복수의 입력 라인 각각에 대한 입력 신호와 상기 복수의 웨이트 셀 중 일부에 대한 각각의 상기 전기적 어드미턴스를 곱한 것들의 총합이고, 상기 복수의 웨이트 셀은 상기 복수의 입력 라인과 상기 출력 라인을 연결하고,
    마지막 레이어를 제외한 상기 복수의 레이어 각각에 대해, 상기 복수의 출력 라인 각각에 대한 출력 신호는, 상기 복수의 레이어의 하드웨어 디바이스 중 다음 레이어의 하드웨어 디바이스에 대해 입력되는 벡터의 요소에 대응하고,
    적어도 하나 이상의 상기 복수의 웨이트 셀의 적어도 하나 이상의 웨이트는 음의 복소 값(negative complex value)를 갖고,
    상기 하나 이상의 웨이트 셀 각각은 포지티브 웨이트 서브 셀(positive weight sub-cell) 및 네거티브 웨이트 서브 셀(negative weight sub-cell)을 포함하고, 상기 복수의 입력 라인 중 2 개의 입력 라인에 연결되고, 상기 복수의 출력 라인 중 1 개의 출력 라인에 연결되는, 복소 신경 망(complex valued neural network).
  11. 제8항에 있어서,
    상기 복수의 입력 라인 각각은 상기 복수의 웨이트 셀 중 하나의 웨이트 셀에 의해 상기 복수의 출력 라인 각각에 연결되고,
    상기 복수의 웨이트 셀 각각은 프로그램 가능한 캐패시터(capacitor)와 병렬로 연결된 프로그램 가능한 저항기(resistor)를 포함하는, 하드웨어 디바이스.
  12. 제8항에 있어서,
    실수 오프셋 임피던스(real offset impedance)를 갖는 수동 오프셋 소자(passive offset component)에 의해 상기 복수의 입력 라인의 각각에 연결되고, 상기 복수의 출력 라인의 각각에 연결된 오프셋 라인을 더 포함하는, 하드웨어 디바이스.
KR1020180013755A 2017-09-11 2018-02-05 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템 KR102462792B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762556842P 2017-09-11 2017-09-11
US62/556,842 2017-09-11
US15/849,106 2017-12-20
US15/849,106 US10878317B2 (en) 2017-09-11 2017-12-20 Method and system for performing analog complex vector-matrix multiplication

Publications (2)

Publication Number Publication Date
KR20190029406A KR20190029406A (ko) 2019-03-20
KR102462792B1 true KR102462792B1 (ko) 2022-11-02

Family

ID=65632162

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180013755A KR102462792B1 (ko) 2017-09-11 2018-02-05 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템

Country Status (3)

Country Link
US (1) US10878317B2 (ko)
KR (1) KR102462792B1 (ko)
CN (1) CN109492187B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190008051A (ko) * 2017-07-14 2019-01-23 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 동작 방법
IT201700108281A1 (it) * 2017-09-27 2019-03-27 Milano Politecnico "circuito di risoluzione di problemi matematici comprendente elementi resistivi."
WO2019246064A1 (en) * 2018-06-18 2019-12-26 The Trustees Of Princeton University Configurable in-memory computing engine, platform, bit cells and layouts therefore
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US11256778B2 (en) 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
JP2020160887A (ja) * 2019-03-27 2020-10-01 ソニー株式会社 演算装置及び積和演算システム
US20200320373A1 (en) * 2019-04-03 2020-10-08 Realtek Semiconductor Corp. Mixed-signal neurons for neuromorphic computing and method thereof
US11194886B2 (en) * 2019-05-09 2021-12-07 Applied Materials, Inc. Bit-ordered binary-weighted multiplier-accumulator
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11829729B2 (en) * 2019-09-05 2023-11-28 Micron Technology, Inc. Spatiotemporal fused-multiply-add, and related systems, methods and devices
US11693657B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems
US11397561B2 (en) 2019-09-05 2022-07-26 SK Hynix Inc. Nonvolatile memory device performing a multiplicaiton and accumulation operation
KR20210029071A (ko) 2019-09-05 2021-03-15 에스케이하이닉스 주식회사 Mac 연산 동작을 수행하는 비휘발성 메모리 장치
US11934824B2 (en) 2019-09-05 2024-03-19 Micron Technology, Inc. Methods for performing processing-in-memory operations, and related memory devices and systems
US11354383B2 (en) 2019-09-27 2022-06-07 Applied Materials, Inc Successive bit-ordered binary-weighted multiplier-accumulator
US11449577B2 (en) * 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
KR102419201B1 (ko) * 2019-12-27 2022-07-08 포항공과대학교 산학협력단 멀티 비트 특성을 갖는 뉴로모픽 시냅스 소자 및 이의 동작 방법
US11544037B2 (en) 2020-04-30 2023-01-03 International Business Machines Corporation Low area multiply and accumulate unit
US11500614B2 (en) 2020-05-11 2022-11-15 International Business Machines Corporation Stacked FET multiply and accumulate integrated circuit
US11520855B2 (en) 2020-05-15 2022-12-06 International Business Machines Corportation Matrix sketching using analog crossbar architectures
US11705922B2 (en) * 2020-06-03 2023-07-18 Joyson Safety Systems Acquisition Llc Apparatus and system for a programmable resistance circuit
US11537861B2 (en) 2020-06-23 2022-12-27 Micron Technology, Inc. Methods of performing processing-in-memory operations, and related devices and systems
US11200948B1 (en) * 2020-08-27 2021-12-14 Hewlett Packard Enterprise Development Lp System for a flexible conductance crossbar
US11681776B2 (en) 2020-10-08 2023-06-20 Applied Materials, Inc. Adaptive settling time control for binary-weighted charge redistribution circuits
US11922131B2 (en) 2020-10-08 2024-03-05 Applied Materials, Inc. Scalable, multi-precision, self-calibrated multiplier-accumulator architecture
KR20220148558A (ko) 2021-04-29 2022-11-07 삼성전자주식회사 뉴로모픽 컴퓨팅 장치 및 그 설계 방법
US11800698B2 (en) 2021-08-17 2023-10-24 International Business Machines Corporation Semiconductor structure with embedded capacitor
DE102021004453A1 (de) * 2021-09-01 2023-03-02 Semron Gmbh Anordnung zur Durchführung einer diskreten Fouriertransformation
KR20230079888A (ko) 2021-11-29 2023-06-07 삼성전자주식회사 메모리 어레이의 프로그램 방법 및 이를 수행하는 메모리 장치
WO2024095128A1 (en) * 2022-11-02 2024-05-10 Politecnico Di Milano Analogic artificial neuron and neural network comprising a plurality of analogic artificial neurons

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101425846B1 (ko) * 2006-07-17 2014-08-05 스캐니메트릭스 인크. 테스트 회로를 구비하는 박막 트랜지스터 어레이
WO2017131711A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Memristor crossbar array for performing a fourier transformation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8183554B2 (en) 2006-04-03 2012-05-22 Blaise Laurent Mouttet Symmetrical programmable memresistor crossbar structure
JP2008017300A (ja) * 2006-07-07 2008-01-24 Nec Electronics Corp 半導体集積回路装置および入力回路
US20110235227A1 (en) * 2010-03-26 2011-09-29 Hamilton Sundstrand Corporation Remote Power Controller with Parallel FETS
US9384168B2 (en) 2013-06-11 2016-07-05 Analog Devices Global Vector matrix product accelerator for microprocessor integration
US10169297B2 (en) * 2015-04-16 2019-01-01 Hewlett Packard Enterprise Development Lp Resistive memory arrays for performing multiply-accumulate operations
SG11201805489YA (en) * 2016-01-18 2018-07-30 Huawei Tech Co Ltd Memory device, and data processing method based on multi-layer rram crossbar array
US10216703B2 (en) * 2016-02-08 2019-02-26 Spero Devices, Inc. Analog co-processor
US9785615B1 (en) * 2016-06-24 2017-10-10 Hewlett Packard Enterprise Development Lp Memristive computation of a vector cross product
US9910827B2 (en) * 2016-07-01 2018-03-06 Hewlett Packard Enterprise Development Lp Vector-matrix multiplications involving negative values
US9646243B1 (en) 2016-09-12 2017-05-09 International Business Machines Corporation Convolutional neural networks using resistive processing unit array
CN106530210B (zh) * 2016-10-31 2019-09-06 北京大学 基于阻变存储器件阵列实现并行卷积计算的设备和方法
US11315009B2 (en) * 2017-03-03 2022-04-26 Hewlett Packard Enterprise Development Lp Analog multiplier-accumulators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101425846B1 (ko) * 2006-07-17 2014-08-05 스캐니메트릭스 인크. 테스트 회로를 구비하는 박막 트랜지스터 어레이
WO2017131711A1 (en) * 2016-01-28 2017-08-03 Hewlett Packard Enterprise Development Lp Memristor crossbar array for performing a fourier transformation

Also Published As

Publication number Publication date
US10878317B2 (en) 2020-12-29
CN109492187B (zh) 2023-03-24
CN109492187A (zh) 2019-03-19
KR20190029406A (ko) 2019-03-20
US20190080230A1 (en) 2019-03-14

Similar Documents

Publication Publication Date Title
KR102462792B1 (ko) 아날로그 복소 벡터 매트릭스 곱셈을 수행하는 방법 및 시스템
EP0242109B1 (en) Parallel computation network
EP3262571A1 (en) Hardware accelerators for calculating node values of neural networks
GB2583790A (en) Computing circuitry
WO2018173472A1 (ja) ニューラルネットワーク回路
WO2012006465A1 (en) Methods and systems for cmos implementation of neuron synapse
US20180373674A1 (en) Convolution accelerators
CN111353122A (zh) 可做内乘积运算的存储器储存装置及其操作方法
CN111125616A (zh) 一种二维离散傅里叶变换运算电路及运算方法
US20190026627A1 (en) Variable precision neuromorphic architecture
US20210342678A1 (en) Compute-in-memory architecture for neural networks
US20200218967A1 (en) Complex-Valued Neural Networks
US11755894B2 (en) Computing circuitry for configuration and operation of cells and arrays comprising memristor elements
US11783171B2 (en) Computing circuitry
Sah et al. Memristor circuit for artificial synaptic weighting of pulse inputs
KR20200100286A (ko) 효율적인 음수 가중치 구현이 가능한 뉴로모픽 회로 시스템
US5261035A (en) Neural network architecture based on summation of phase-coherent alternating current signals
CN114429199A (zh) 可扩展的仿神经电路
Sah et al. Memristor bridge circuit for neural synaptic weighting
CN113222131B (zh) 基于1t1r的可实现带符号权重系数的突触阵列电路
Lee et al. An investigation on local minima of a Hopfield network for optimization circuits
Laiho et al. Memristive analog arithmetic within cellular arrays
Halawani et al. A re-configurable memristor array structure for in-memory computing applications
Frátrik et al. Memristive sorting networks
EP0428716B1 (en) Neural net using differential capacitively coupled input and output lines

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant